Commit 60a91d94 authored by 廖旭伟's avatar 廖旭伟

微中台数据转换功能:食品经营许可证转证照,企业法人查询

parent 88bec448
package com.mortals.xhx.module.mid.pdu;
import lombok.Data;
/**
* 业务回执数据
*/
@Data
public class BizRet {
/** 结果编码 */
private String ifResult;
/** 结果信息JSON字符串 */
private String ifResultInfo;
}
package com.mortals.xhx.module.mid.pdu;
import lombok.Data;
/**
* 微中台证照接口返回证照信息
*/
@Data
public class CertificateSurface {
/** 项目列名称 */
private String columnName;
/** 项目名称 */
private String name;
/** 项目值 */
private String value;
/** 值类型 */
private String valueType;
}
package com.mortals.xhx.module.mid.pdu;
import lombok.Data;
import java.util.List;
/**
* 微中台证照接口返回证照数据
*/
@Data
public class MidCertificateDataVO {
/** 证照类型 */
private String certificateType;
/** 证照名称 */
private String certificateName;
/** 证照持有者 */
private String certificateHolder;
/** 证照持有者编码 */
private String certificateHolderCode;
/** 证照持有者类型 */
private String certificateHolderType;
/** 发证机关 */
private String issueDept;
/** 发证机关单位编码 */
private String issueDeptCode;
/** 证照编号 */
private String certificateNumber;
/** 证照类型编码 */
private String certificateTypeCode;
/** 发证时间 */
private String issueDate;
/** 证照有效期开始时间 */
private String certificateValidateStart;
/** 证照有效期截止时间 */
private String certificateValidateEnd;
/** 证照照面信息 */
private List<CertificateSurface> surface;
}
package com.mortals.xhx.module.mid.pdu;
import lombok.Data;
@Data
public class MidCertificatePdu {
/** 证照持有者编码 */
private String certificateHolderCode;
/** 证照持有者类型 */
private String certificateHolderType;
/** 证照类型 */
private String certificateType;
/** 证照编号 */
private String certificateNumber;
/** 使用说明 */
private String useFor;
/*** 取件人姓名 */
private String pickerName;
/** 取件人证件号码 */
private String pickerIDCardNo;
/** 二维码地址 */
private String qRCodeUrl;
}
package com.mortals.xhx.module.mid.pdu;
import lombok.Data;
@Data
public class MidIfResultInfo {
private MidIfResultInfoHead head;
private MidIfResultInfoData data;
}
package com.mortals.xhx.module.mid.pdu;
import com.alibaba.fastjson.JSONPObject;
import lombok.Data;
import java.util.List;
@Data
public class MidIfResultInfoData {
private int total;
private List<MidCertificateDataVO> dataList;
private List<JSONPObject> detail;
}
package com.mortals.xhx.module.mid.pdu;
import lombok.Data;
@Data
public class MidIfResultInfoHead {
private String message;
private String status;
}
package com.mortals.xhx.module.mid.pdu;
import lombok.Data;
/**
* 微中台响应数据
*/
@Data
public class MidResponseData {
/** 响应编码 */
private String code;
/** 响应消息 */
private String msg;
/** 业务回执数据 */
private BizRet bizRet;
}
......@@ -58,4 +58,12 @@ public interface ApplyLogService extends ICRUDService<ApplyLogEntity,Long>{
* @throws AppException
*/
void apiSaveApplyLog(ApplyLogPdu pdu) throws AppException;
/***
* 微中台接口数据转存
* @param pdu
* @param classifyId
* @throws AppException
*/
void midSaveApplyLog(ApplyLogPdu pdu,Long classifyId) throws AppException;
}
\ No newline at end of file
......@@ -23,6 +23,7 @@ import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.common.code.*;
import com.mortals.xhx.common.utils.*;
import com.mortals.xhx.module.certificate.model.CertificateCatalogEntity;
import com.mortals.xhx.module.certificate.model.CertificateCatalogQuery;
import com.mortals.xhx.module.certificate.model.CertificateClassifyEntity;
import com.mortals.xhx.module.certificate.pdu.ApplyLogPdu;
import com.mortals.xhx.module.certificate.service.CertificateCatalogService;
......@@ -32,6 +33,7 @@ import com.mortals.xhx.module.record.model.ApplyLogQuery;
import com.mortals.xhx.module.record.model.DocTemplateVO;
import com.mortals.xhx.module.record.model.RecordEntity;
import com.mortals.xhx.module.record.service.PrintWaitQueueService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.http.entity.ContentType;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -567,4 +569,70 @@ public class ApplyLogServiceImpl extends AbstractCRUDServiceImpl<ApplyLogDao, Ap
}
}
@Override
public void midSaveApplyLog(ApplyLogPdu pdu, Long classifyId) throws AppException {
List<CertificateCatalogEntity> catalogEntityList = this.certificateCatalogService.find(new CertificateCatalogQuery().classifyId(classifyId));
if(CollectionUtils.isNotEmpty(catalogEntityList)){
for(CertificateCatalogEntity catalogEntity:catalogEntityList){
ApplyLogEntity entity = new ApplyLogEntity();
entity.setCatalogId(catalogEntity.getId());
entity.setCatalogCode(catalogEntity.getCatalogCode());
entity.setCatalogName(catalogEntity.getCatalogName());
entity.setCertificateCode(pdu.getCertificateCode());
entity.setCertificateName(pdu.getCertificateName());
entity.setHolderName(pdu.getHolderName());
entity.setHolderType(pdu.getHolderType());
entity.setHolderIdType(pdu.getHolderIdType());
entity.setHolderIDCardNo(pdu.getHolderIDCardNo());
entity.setPickerName(pdu.getPickerName());
entity.setPickerIDCardNo(pdu.getPickerIDCardNo());
entity.setIssueTime(pdu.getIssueTime());
entity.setPrivateID(pdu.getPrivateID());
entity.setEnterpriseName(pdu.getEnterpriseName());
entity.setCreateUserId(1L);
JSONObject formContent = JSONObject.parseObject(pdu.getFormContent());
Map<String,String> formMap = new HashMap<>();
formContent.forEach((key, value) -> {
//图片处理
if (key.indexOf("@image") != -1) {
String base64 = String.valueOf(value);
if(StringUtils.isEmpty(base64)){
throw new AppException("图片不能为空");
}
String imageName = new Date().getTime() + ".png";
String imagePath = "/file/uploadfile/"+imageName;
String filePath = this.filePath.endsWith("/") ? this.filePath : this.filePath + "/" + imagePath;
try{
ImageBase64.convertImg(base64.trim(),filePath);
formMap.put(key,imagePath);
}catch (Exception e){
log.error("base64图片转换异常",e.fillInStackTrace());
formMap.put(key,"");
}
}else {
formMap.put(key,String.valueOf(value));
}
});
entity.setFormContent(JSONObject.toJSONString(formMap));
JSONObject formTemplate = JSONObject.parseObject(catalogEntity.getFormContent());
JSONArray formList = formTemplate.getJSONArray("list");
JSONObject json = new JSONObject();
for (int j = 0; j < formList.size(); j++) {
JSONObject jsonObject = formList.getJSONObject(j);
String key = jsonObject.getString("id");
json.put(key,formMap.get(key));
}
entity.setFormTemplate(formTemplate.toJSONString());
try {
this.generateOriginal(entity, null);
}catch (Exception e){
log.error("微中台数据生成证照失败",e.fillInStackTrace());
throw new AppException("微中台数据生成证照失败");
}
}
}else {
throw new AppException("目录类型不正确,无法找到相应证照目录");
}
}
}
\ No newline at end of file
package com.mortals.xhx.common.pdu.mid;
import lombok.Data;
/**
* 微中台请求接口
* @author:
* @date: 2023/3/2 18:08
*/
@Data
public class MidReq{
private String method;
private String body;
private String path;
//1 sha加密 2 rsa加密提交
private Integer type;
}
package com.mortals.xhx.feign.mid;
import com.mortals.framework.common.Rest;
import com.mortals.xhx.common.pdu.RespData;
import com.mortals.xhx.common.pdu.mid.MidReq;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = "base-manager", path = "/base", fallbackFactory = MidFeignFallbackFactory.class)
public interface IMidFeign {
/**
* 微中台透传接口
* @param midReq
* @return
*/
@PostMapping(value = "/mid/trans")
Rest<String> trans(@RequestBody MidReq midReq);
}
@Slf4j
@Component
class MidFeignFallbackFactory implements FallbackFactory<IMidFeign> {
@Override
public IMidFeign create(Throwable cause) {
return new IMidFeign(){
@Override
public Rest<String> trans(MidReq midReq) {
return Rest.fail("暂时无法获取微中台透传接口,请稍后再试!");
}
};
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment