|  |  |  | @ -42,6 +42,8 @@ import com.glxp.api.service.inout.IoCheckInoutService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.inout.IoOrderService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.system.SystemParamConfigService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.*; | 
			
		
	
		
			
				
					|  |  |  |  | import lombok.extern.slf4j.Slf4j; | 
			
		
	
		
			
				
					|  |  |  |  | import org.jfree.util.Log; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.beans.BeanUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.beans.factory.annotation.Value; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.context.annotation.Lazy; | 
			
		
	
	
		
			
				
					|  |  |  | @ -52,6 +54,7 @@ import javax.annotation.Resource; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.*; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.stream.Collectors; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | @Slf4j | 
			
		
	
		
			
				
					|  |  |  |  | @Service | 
			
		
	
		
			
				
					|  |  |  |  | public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBackupMapper, IoCollectOrderBackup> { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -247,71 +250,9 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 updateReview(authAdmin, orderEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (IntUtil.value(sysWorkplaceDocumentEntity.getIsMatching()) == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             //todo  根据单据类型上传医保或者第三方系统
 | 
			
		
	
		
			
				
					|  |  |  |  |             PostCollectOrderRequest orderRequest = new PostCollectOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             orderRequest.setThirdSys("thirdId"); | 
			
		
	
		
			
				
					|  |  |  |  |             orderRequest.setWebTitle(WEB_TITLE); | 
			
		
	
		
			
				
					|  |  |  |  |             CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBizRequest.setOrderIdFk(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             List<CollectOrderBizResponse> collectOrderBizResponses = combieOrderDetail(collectOrderBizRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrder.setCollectOrderBizResponseList(collectOrderBizResponses); | 
			
		
	
		
			
				
					|  |  |  |  |             List<IoCollectCodeBackup> list = ioCollectCodeBackService.list(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBillNo, collectOrder.getBillNo())); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrder.setCodeList(list); | 
			
		
	
		
			
				
					|  |  |  |  |             List<IoCollectOrderBackup> collectOrderList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderList.add(collectOrder); | 
			
		
	
		
			
				
					|  |  |  |  |             orderRequest.setCollectOrderList(collectOrderList); | 
			
		
	
		
			
				
					|  |  |  |  |             // 判断此单据 有没有码已经上传过了一个有上传就进行错误返回
 | 
			
		
	
		
			
				
					|  |  |  |  |             String paramValue = systemParamConfigService.selectValueByParamKey("checkCodeUploading"); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("0")) { | 
			
		
	
		
			
				
					|  |  |  |  |                 List<String> codeList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |                 for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |                     String[] codes = collectOrderBizResponse.getFinishUdiCode().split(","); | 
			
		
	
		
			
				
					|  |  |  |  |                     // 遍历fruits数组
 | 
			
		
	
		
			
				
					|  |  |  |  |                     for (String code : codes) { | 
			
		
	
		
			
				
					|  |  |  |  |                         if (StrUtil.isNotBlank(code)) { | 
			
		
	
		
			
				
					|  |  |  |  |                             List<RelCodeDetail> relCodeDetailList = relCodeDetailService.getAllNext(code); | 
			
		
	
		
			
				
					|  |  |  |  |                             if (relCodeDetailList != null && relCodeDetailList.size() > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 for (RelCodeDetail relCodeDetail : relCodeDetailList) { | 
			
		
	
		
			
				
					|  |  |  |  |                                     codeList.add(relCodeDetail.getCurCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 BaseResponse<List> baseResponseCheckCode = erpBasicClient.collectOrderCheckCodeUploading(codeList); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (baseResponseCheckCode.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |                     List listCheckCode = baseResponseCheckCode.getData(); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (listCheckCode == null || listCheckCode.size() > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                         log.error("单据的所有码有已经传输过医保的,请核实"); | 
			
		
	
		
			
				
					|  |  |  |  |                         throw new JsonException("此单据的所有码有已经传输过医保的,请核实" + baseResponseCheckCode.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     throw new JsonException("查询码关联关系服务出错," + baseResponseCheckCode.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             // 医保上传
 | 
			
		
	
		
			
				
					|  |  |  |  |             BaseResponse<BasicSkPrescribeResponse> baseResponse = erpBasicClient.postOrder(orderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             log.debug("单据返回=========" + baseResponse); | 
			
		
	
		
			
				
					|  |  |  |  |             if (baseResponse.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |                 // 触发上传 转发至中继服务 到外网 再到国家同步库
 | 
			
		
	
		
			
				
					|  |  |  |  |                 ThreadUtil.execAsync(() -> { | 
			
		
	
		
			
				
					|  |  |  |  |                     BaseResponse<String> stringBaseResponse = new BaseResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |                     try { | 
			
		
	
		
			
				
					|  |  |  |  |                         stringBaseResponse = erpBasicClient.collectOrderUpload(orderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                     } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |                         throw new JsonException("触发上传 转发至中继服务 到外网 再到国家同步库 接口服务出错:" + stringBaseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 }); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 throw new JsonException("连接第三方系统接口服务出错," + baseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         uploadThrid(collectOrder); | 
			
		
	
		
			
				
					|  |  |  |  | //        //插入处方备份表
 | 
			
		
	
		
			
				
					|  |  |  |  | //        IoCollectOrderBackup ioCollectOrderBackup = new IoCollectOrderBackup();
 | 
			
		
	
		
			
				
					|  |  |  |  | //        BeanUtils.copyProperties(collectOrder, ioCollectOrderBackup);
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -330,6 +271,72 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku | 
			
		
	
		
			
				
					|  |  |  |  | //        }
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public void uploadThrid(IoCollectOrderBackup collectOrder) { | 
			
		
	
		
			
				
					|  |  |  |  |         //todo  根据单据类型上传医保或者第三方系统
 | 
			
		
	
		
			
				
					|  |  |  |  |         PostCollectOrderRequest orderRequest = new PostCollectOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         orderRequest.setThirdSys("thirdId"); | 
			
		
	
		
			
				
					|  |  |  |  |         orderRequest.setWebTitle(WEB_TITLE); | 
			
		
	
		
			
				
					|  |  |  |  |         CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         collectOrderBizRequest.setOrderIdFk(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |         List<CollectOrderBizResponse> collectOrderBizResponses = combieOrderDetail(collectOrderBizRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         collectOrder.setCollectOrderBizResponseList(collectOrderBizResponses); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCollectCodeBackup> list = ioCollectCodeBackService.list(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBillNo, collectOrder.getBillNo())); | 
			
		
	
		
			
				
					|  |  |  |  |         collectOrder.setCodeList(list); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCollectOrderBackup> collectOrderList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         collectOrderList.add(collectOrder); | 
			
		
	
		
			
				
					|  |  |  |  |         orderRequest.setCollectOrderList(collectOrderList); | 
			
		
	
		
			
				
					|  |  |  |  |         // 判断此单据 有没有码已经上传过了一个有上传就进行错误返回
 | 
			
		
	
		
			
				
					|  |  |  |  |         String paramValue = systemParamConfigService.selectValueByParamKey("checkCodeUploading"); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("0")) { | 
			
		
	
		
			
				
					|  |  |  |  |             List<String> codeList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |             for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |                 String[] codes = collectOrderBizResponse.getFinishUdiCode().split(","); | 
			
		
	
		
			
				
					|  |  |  |  |                 // 遍历fruits数组
 | 
			
		
	
		
			
				
					|  |  |  |  |                 for (String code : codes) { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (StrUtil.isNotBlank(code)) { | 
			
		
	
		
			
				
					|  |  |  |  |                         List<RelCodeDetail> relCodeDetailList = relCodeDetailService.getAllNext(code); | 
			
		
	
		
			
				
					|  |  |  |  |                         if (relCodeDetailList != null && relCodeDetailList.size() > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                             for (RelCodeDetail relCodeDetail : relCodeDetailList) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 codeList.add(relCodeDetail.getCurCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                             } | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             BaseResponse<List> baseResponseCheckCode = erpBasicClient.collectOrderCheckCodeUploading(codeList); | 
			
		
	
		
			
				
					|  |  |  |  |             if (baseResponseCheckCode.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |                 List listCheckCode = baseResponseCheckCode.getData(); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (listCheckCode == null || listCheckCode.size() > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                     log.error("单据的所有码有已经传输过医保的,请核实"); | 
			
		
	
		
			
				
					|  |  |  |  |                     throw new JsonException("此单据的所有码有已经传输过医保的,请核实" + baseResponseCheckCode.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 throw new JsonException("查询码关联关系服务出错," + baseResponseCheckCode.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         // 医保上传
 | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse<BasicSkPrescribeResponse> baseResponse = erpBasicClient.postOrder(orderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         log.debug("单据返回=========" + baseResponse); | 
			
		
	
		
			
				
					|  |  |  |  |         if (baseResponse.getCode() == 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |             // 触发上传 转发至中继服务 到外网 再到国家同步库
 | 
			
		
	
		
			
				
					|  |  |  |  |             ThreadUtil.execAsync(() -> { | 
			
		
	
		
			
				
					|  |  |  |  |                 BaseResponse<String> stringBaseResponse = new BaseResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |                 try { | 
			
		
	
		
			
				
					|  |  |  |  |                     stringBaseResponse = erpBasicClient.collectOrderUpload(orderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                 } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |                     throw new JsonException("触发上传 转发至中继服务 到外网 再到国家同步库 接口服务出错:" + stringBaseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         if (baseResponse.getCode() == 520) { | 
			
		
	
		
			
				
					|  |  |  |  |             Log.error("上传失败," + baseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             throw new JsonException("连接第三方系统接口服务出错," + baseResponse.getMessage()); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     UdiRlSupService udiRlSupService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |