|  |  |  | @ -65,6 +65,7 @@ import com.glxp.api.util.GennerOrderUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.IntUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.OrderNoTypeBean; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.udi.FilterUdiUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.udi.UdiCalCountUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.beans.BeanUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.validation.BindingResult; | 
			
		
	
	
		
			
				
					|  |  |  | @ -689,6 +690,11 @@ public class IoOrderDetailBizController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |     AlihealthBusService alihealthBusService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     UdiRelevanceDao udiRelevanceDao; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCodeLostService ioCodeLostService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     UdiCalCountUtil udiCalCountUtil; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     //录入阿里送货单的业务单据详情
 | 
			
		
	
		
			
				
					|  |  |  |  |     @AuthRuleAnnotation("") | 
			
		
	
	
		
			
				
					|  |  |  | @ -722,65 +728,99 @@ public class IoOrderDetailBizController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error("单据码明细为空!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         String code = aliYljgBillDetailDrugCodeList.get(0).getCode(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isEmpty(code)) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error("单据码为空!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         UdiEntity drugInfo = FilterUdiUtils.getDrugInfo(code); | 
			
		
	
		
			
				
					|  |  |  |  |         if (drugInfo == null) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error("单据码解析药品信息错误!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //获取药品信息
 | 
			
		
	
		
			
				
					|  |  |  |  |         String nameCode = drugInfo.getUdi(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isEmpty(nameCode)) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error("单据码解析药品标识错误!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         filterUdiRelRequest.setNameCode(nameCode); | 
			
		
	
		
			
				
					|  |  |  |  |         List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isEmpty(udiRelevanceResponses)) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error("未通过药品标识获取详情信息!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //1、直接模拟增加biz一行
 | 
			
		
	
		
			
				
					|  |  |  |  |         addBizProductReqeust.setProductId(String.valueOf(udiRelevanceResponse.getProductId())); | 
			
		
	
		
			
				
					|  |  |  |  |         addBizProductReqeust.setRelId(udiRelevanceResponse.getRelId()); | 
			
		
	
		
			
				
					|  |  |  |  |         addBizProductReqeust.setZczbhhzbapzbh(udiRelevanceResponse.getZczbhhzbapzbh()); | 
			
		
	
		
			
				
					|  |  |  |  |         addBizProductReqeust.setSupId(udiRelevanceResponse.getSupId()); | 
			
		
	
		
			
				
					|  |  |  |  |         addBizProductReqeust.setDatas(null); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         IoOrderEntity ioOrderEntity = addBizProductReqeust.getOrderEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |         for (int i = 0; i < aliYljgBillDetailDrugList.size(); i++) { | 
			
		
	
		
			
				
					|  |  |  |  |             AliYljgBillDetailDrug aliYljgBillDetailDrug = aliYljgBillDetailDrugList.get(i); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             String code = aliYljgBillDetailDrug.getAliYljgBillDetailDrugCodeList().get(0).getCode(); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isEmpty(code)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error("单据码为空!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             UdiEntity drugInfo = FilterUdiUtils.getDrugInfo(code); | 
			
		
	
		
			
				
					|  |  |  |  |             if (drugInfo == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error("单据码解析药品信息错误!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //获取药品信息
 | 
			
		
	
		
			
				
					|  |  |  |  |             String nameCode = drugInfo.getUdi(); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isEmpty(nameCode)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error("单据码解析药品标识错误!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             filterUdiRelRequest.setNameCode(nameCode); | 
			
		
	
		
			
				
					|  |  |  |  |             List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             if (CollUtil.isEmpty(udiRelevanceResponses)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error("未通过药品标识获取详情信息!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |             List<AliYljgBillDetailDrugCode> aliYljgBillDetailDrugCodeList1 = aliYljgBillDetailDrug.getAliYljgBillDetailDrugCodeList(); | 
			
		
	
		
			
				
					|  |  |  |  |             //1、直接模拟增加biz一行
 | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setProductId(String.valueOf(udiRelevanceResponse.getProductId())); | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setRelId(udiRelevanceResponse.getRelId()); | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setZczbhhzbapzbh(udiRelevanceResponse.getZczbhhzbapzbh()); | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setSupId(udiRelevanceResponse.getSupId()); | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setDatas(null); | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setCount(aliYljgBillDetailDrugCodeList1.size() * udiCalCountUtil.getCirActCount(udiRelevanceResponse)); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setBatchNo(aliYljgBillDetailDrug.getProduceBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setProductDate(aliYljgBillDetailDrug.getProduceDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setExpireDate(aliYljgBillDetailDrug.getProduceDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             addBizProductReqeust.setOrderEntity(ioOrderEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(aliYljgBillDetailDrug.getProduceDate())){ | 
			
		
	
		
			
				
					|  |  |  |  |                 addBizProductReqeust.setProductDate(aliYljgBillDetailDrug.getProduceDate().substring(2).replace(" 00:00:00", "").replace("-", "")); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isNotEmpty(aliYljgBillDetailDrug.getValidEndDate())){ | 
			
		
	
		
			
				
					|  |  |  |  |                 addBizProductReqeust.setExpireDate(aliYljgBillDetailDrug.getValidEndDate().substring(2).replace(" 00:00:00", "").replace("-", "")); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (i == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                 addBizProductReqeust.setOrderEntity(ioOrderEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             BaseResponse response = orderDetailBizService.addBizProduct(addBizProductReqeust); | 
			
		
	
		
			
				
					|  |  |  |  |             if (response.getCode() != 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return response; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (i == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                 ioOrderEntity = JSONObject.parseObject(JSONObject.toJSONString(response.getData()), IoOrderEntity.class); | 
			
		
	
		
			
				
					|  |  |  |  |                 addBizProductReqeust.setOrderEntity(ioOrderEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         AddOrderRequest addOrderRequest = new AddOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         BeanUtils.copyProperties(ioOrderEntity, addOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         for (int i = 0; i < aliYljgBillDetailDrugCodeList.size(); i++) { | 
			
		
	
		
			
				
					|  |  |  |  |             AddOrderRequest addOrderRequest = new AddOrderRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             BeanUtils.copyProperties(ioOrderEntity, addOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             for (int j = 0; j < aliYljgBillDetailDrugCodeList1.size(); j++) { | 
			
		
	
		
			
				
					|  |  |  |  |                 AliYljgBillDetailDrugCode aliYljgBillDetailDrugCode = aliYljgBillDetailDrugCodeList.get(j); | 
			
		
	
		
			
				
					|  |  |  |  |                 addOrderRequest.setCode(aliYljgBillDetailDrugCode.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 IoCodeLostEntity codeLostEntity = ioCodeLostService.findByCode(code); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (codeLostEntity == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                     codeLostEntity = new IoCodeLostEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |                     codeLostEntity.setId(IdUtil.getSnowflakeNextId()); | 
			
		
	
		
			
				
					|  |  |  |  |                     codeLostEntity.setNameCode(nameCode); | 
			
		
	
		
			
				
					|  |  |  |  |                     codeLostEntity.setCode(code); | 
			
		
	
		
			
				
					|  |  |  |  |                     codeLostEntity.setBatchNo(aliYljgBillDetailDrug.getProduceBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (StrUtil.isNotEmpty(aliYljgBillDetailDrug.getProduceDate())){ | 
			
		
	
		
			
				
					|  |  |  |  |                         codeLostEntity.setProduceDate(aliYljgBillDetailDrug.getProduceDate().substring(2).replace(" 00:00:00", "").replace("-", "")); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     if (StrUtil.isNotEmpty(aliYljgBillDetailDrug.getValidEndDate())){ | 
			
		
	
		
			
				
					|  |  |  |  |                         codeLostEntity.setExpireDate(aliYljgBillDetailDrug.getValidEndDate().substring(2).replace(" 00:00:00", "").replace("-", "")); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 }else { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     codeLostEntity.setBatchNo(aliYljgBillDetailDrug.getProduceBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (StrUtil.isNotEmpty(aliYljgBillDetailDrug.getProduceDate())){ | 
			
		
	
		
			
				
					|  |  |  |  |                         codeLostEntity.setProduceDate(aliYljgBillDetailDrug.getProduceDate().substring(2).replace(" 00:00:00", "").replace("-", "")); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     if (StrUtil.isNotEmpty(aliYljgBillDetailDrug.getValidEndDate())){ | 
			
		
	
		
			
				
					|  |  |  |  |                         codeLostEntity.setExpireDate(aliYljgBillDetailDrug.getValidEndDate().substring(2).replace(" 00:00:00", "").replace("-", "")); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 ioCodeLostService.insertOrUpdate(codeLostEntity); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | //            IoCodeLostEntity ioCodeLostEntity = new IoCodeLostEntity();
 | 
			
		
	
		
			
				
					|  |  |  |  | //            ioCodeLostEntity.set
 | 
			
		
	
		
			
				
					|  |  |  |  | //            todo 补三期进扫码补齐表
 | 
			
		
	
		
			
				
					|  |  |  |  |             AliYljgBillDetailDrugCode aliYljgBillDetailDrugCode = aliYljgBillDetailDrugCodeList.get(i); | 
			
		
	
		
			
				
					|  |  |  |  |             addOrderRequest.setCode(aliYljgBillDetailDrugCode.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             BaseResponse response = ioCodeTempService.addDrugOrderWeb(addOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |             if (response.getCode() != 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return response; | 
			
		
	
		
			
				
					|  |  |  |  |                 BaseResponse response2 = ioCodeTempService.addDrugOrderWeb(addOrderRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (response2.getCode() != 20000) { | 
			
		
	
		
			
				
					|  |  |  |  |                     return response2; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |