|
|
|
|
@ -4,9 +4,12 @@ import cn.hutool.json.JSONUtil; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.dtflys.forest.exceptions.ForestNetworkException; |
|
|
|
|
import com.dtflys.forest.exceptions.ForestRuntimeException; |
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
|
|
import com.sinosoft.print.domain.ClientInfoReturn; |
|
|
|
|
import com.sinosoft.print.domain.ContPrintRequestReturn; |
|
|
|
|
import com.sinosoft.print.domain.InputData; |
|
|
|
|
import com.sinosoft.print.domain.bo.BiliCard; |
|
|
|
|
import com.sinosoft.print.domain.bo.ContPrintCallbackReqBo; |
|
|
|
|
import com.sinosoft.print.domain.bo.ContPrintCallbackReturnBo; |
|
|
|
|
import com.sinosoft.print.domain.PrintConttrackLog; |
|
|
|
|
@ -56,7 +59,7 @@ public class ContPrintCallbackServiceImpl implements IContPrintCallbackService { |
|
|
|
|
for (Map.Entry<String, JsonNode> entry : callbackReqMap.entrySet()) { |
|
|
|
|
String fileName = entry.getKey(); |
|
|
|
|
JsonNode jsonNode = entry.getValue(); |
|
|
|
|
if (jsonNode == null || !jsonNode.has("PrintDate") || !jsonNode.has("PrintTime") || !jsonNode.has("PrintFlag") || !jsonNode.has("ContType")) { |
|
|
|
|
if (jsonNode == null) { |
|
|
|
|
log.warn("文件:[{}] 数据或关键字段为空", fileName); |
|
|
|
|
resultList.add(new PrintResultNotifyInfoObj(ResultProcStatusEnum.EMPTY_FILE_NAME, fileName)); |
|
|
|
|
continue; |
|
|
|
|
@ -74,11 +77,23 @@ public class ContPrintCallbackServiceImpl implements IContPrintCallbackService { |
|
|
|
|
private ResultProcStatusEnum processSingleData(String fileName, JsonNode jsonNode) { |
|
|
|
|
ContPrintCallbackReqBo callbackReq = new ContPrintCallbackReqBo(); |
|
|
|
|
callbackReq.setPringName(fileName); |
|
|
|
|
callbackReq.setPrintDate(jsonNode.get("PrintDate").asText()); |
|
|
|
|
callbackReq.setPrintTime(jsonNode.get("PrintTime").asText()); |
|
|
|
|
callbackReq.setPrintResult(jsonNode.get("PrintFlag").asText()); |
|
|
|
|
callbackReq.setContType(jsonNode.get("ContType").asText()); |
|
|
|
|
callbackReq.setPrintDate(jsonNode.get("PRINT_DATE").asText()); |
|
|
|
|
callbackReq.setPrintResult(jsonNode.get("PRINT_STATUS").asText()); |
|
|
|
|
callbackReq.setContType(jsonNode.get("DM").asText()); |
|
|
|
|
callbackReq.setErrorMsg(jsonNode.has("ErrorMsg") ? jsonNode.get("ErrorMsg").asText() : null); |
|
|
|
|
callbackReq.setGrpContNo(jsonNode.get("POLICY_NO").asText()); |
|
|
|
|
callbackReq.setSerialNo(jsonNode.get("PRINT_ID").asText()); |
|
|
|
|
callbackReq.setPrintSize(jsonNode.get("PRINT_SIZE").asText()); |
|
|
|
|
|
|
|
|
|
JsonNode bilcardNode = jsonNode.get("BILCARD_LIST"); |
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper(); |
|
|
|
|
List<BiliCard> biliCards = objectMapper.convertValue( |
|
|
|
|
bilcardNode, |
|
|
|
|
new TypeReference<List<BiliCard>>() {} |
|
|
|
|
); |
|
|
|
|
callbackReq.setBiliCardList(biliCards); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据文件名查询数据库,获取业务流水号和保单号
|
|
|
|
|
LambdaQueryWrapper<PrintConttrackLog> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
queryWrapper.eq(PrintConttrackLog::getXmlfileName, fileName); |
|
|
|
|
@ -88,7 +103,7 @@ public class ContPrintCallbackServiceImpl implements IContPrintCallbackService { |
|
|
|
|
return ResultProcStatusEnum.ERROR; |
|
|
|
|
} |
|
|
|
|
callbackReq.setSerialNo(printConttrackLog.getBussinessNo()); |
|
|
|
|
callbackReq.setGrpContNo(printConttrackLog.getContNo()); |
|
|
|
|
// callbackReq.setGrpContNo(printConttrackLog.getContNo());
|
|
|
|
|
log.info("文件:[{}] 查询到业务流水号:[{}],保单号:[{}]", fileName, printConttrackLog.getBussinessNo(), printConttrackLog.getContNo()); |
|
|
|
|
|
|
|
|
|
return processCallbackReq(callbackReq); |
|
|
|
|
@ -108,7 +123,8 @@ public class ContPrintCallbackServiceImpl implements IContPrintCallbackService { |
|
|
|
|
contPrintRequestReturn.setPrintFlag(callbackReq.getPrintResult()); |
|
|
|
|
contPrintRequestReturn.setErrorMsg(callbackReq.getErrorMsg()); |
|
|
|
|
contPrintRequestReturn.setPrintDate(callbackReq.getPrintDate()); |
|
|
|
|
contPrintRequestReturn.setPrintTime(callbackReq.getPrintTime()); |
|
|
|
|
contPrintRequestReturn.setPrintSize(callbackReq.getPrintSize()); |
|
|
|
|
contPrintRequestReturn.setBiliCardList(callbackReq.getBiliCardList()); |
|
|
|
|
//保单打印请求体
|
|
|
|
|
InputData inputData = new InputData(); |
|
|
|
|
inputData.setResponse(List.of(contPrintRequestReturn)); |
|
|
|
|
|