|  |  |  | @ -6,7 +6,10 @@ import com.github.pagehelper.PageInfo; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.enums.ResultEnum; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.res.BaseResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.util.ResultVOUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.constant.WorkOperType; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.controller.BaseController; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.auth.SysWorkplace; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.BasicCollectBustypeEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.UdiEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.collect.IoCollectOrder; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.collect.IoCollectOrderBiz; | 
			
		
	
	
		
			
				
					|  |  |  | @ -16,6 +19,8 @@ import com.glxp.api.req.inout.AddTagCodeReqeust; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.PageSimpleResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.basic.UdiRelevanceResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.res.collect.CollectOrderCodeManResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.auth.SysWorkplaceService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.basic.BasicCollectBustypeService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.basic.UdiRelevanceService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.collect.IoCollectOrderBizService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.service.collect.IoCollectOrderCodeManService; | 
			
		
	
	
		
			
				
					|  |  |  | @ -74,6 +79,10 @@ public class IoCollectOrderCodeManController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(pageSimpleResponse); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     BasicCollectBustypeService bustypeService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     SysWorkplaceService sysWorkPlaceService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 器械拆零处方赋码(手动赋码) | 
			
		
	
	
		
			
				
					|  |  |  | @ -88,6 +97,9 @@ public class IoCollectOrderCodeManController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         IoCollectOrder collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |         BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(collectOrder.getBusType()); | 
			
		
	
		
			
				
					|  |  |  |  |         SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(collectOrder.getWorkPlaceCode()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (collectOrder == null) | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "单据不存在!"); | 
			
		
	
		
			
				
					|  |  |  |  |         //1.校验UDI码完整性
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -105,18 +117,49 @@ public class IoCollectOrderCodeManController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "耗材字典不存在此产品!"); | 
			
		
	
		
			
				
					|  |  |  |  |         else | 
			
		
	
		
			
				
					|  |  |  |  |             udiRelevanceResponse = udiRelevanceResponses.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |         //2.校验是否处方单UDI码
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         IoCollectOrderBiz collectOrderBiz = null; | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |         IoCollectOrderBiz collectOrderBiz = vailPrescribeProduct(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |         if (collectOrderBiz == null) | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "非此单据UDI码!"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //3.校验该UDI码是否已经出库(是否在预出库队列)
 | 
			
		
	
		
			
				
					|  |  |  |  |         Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (!b1) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "该UDI码未出库,无法使用!"); | 
			
		
	
		
			
				
					|  |  |  |  |         //2.校验是否处方单UDI码
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) { | 
			
		
	
		
			
				
					|  |  |  |  |             //直接扫码单生成业务单
 | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBizService.saveOrUpdate(collectOrderBiz); | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //3.校验该UDI码是否已经出库(是否在预出库队列)
 | 
			
		
	
		
			
				
					|  |  |  |  |             Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (!b1) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //按单校验三期
 | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             if (collectOrderBiz == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "非此单据追溯码!"); | 
			
		
	
		
			
				
					|  |  |  |  |             else { | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //3.校验该UDI码是否已经出库(是否在预出库队列)
 | 
			
		
	
		
			
				
					|  |  |  |  |             Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (!b1) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //按单不校验三期
 | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs); | 
			
		
	
		
			
				
					|  |  |  |  |             if (collectOrderBiz == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 return ResultVOUtils.error(500, "非此单据追溯码!"); | 
			
		
	
		
			
				
					|  |  |  |  |             else { | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         //4.
 | 
			
		
	
		
			
				
					|  |  |  |  |         collectOrderBizService.updateById(collectOrderBiz); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         IoCollectOrderCodeMan exitCode = collectOrderCodeManService.findByCode(collectOrderBiz.getOrderIdFk(), code); | 
			
		
	
		
			
				
					|  |  |  |  |         if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1); | 
			
		
	
	
		
			
				
					|  |  |  | @ -127,8 +170,12 @@ public class IoCollectOrderCodeManController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |             IoCollectOrderCodeMan collectOrderCodeMan = | 
			
		
	
		
			
				
					|  |  |  |  |                     IoCollectOrderCodeMan.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                             .udiCode(code) | 
			
		
	
		
			
				
					|  |  |  |  |                             .orderIdFk(collectOrder.getBillNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .relId(collectOrderBiz.getRelId()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .nameCode(udiRelevanceResponse.getNameCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .batchNo(udiEntity.getBatchNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .productDate(udiEntity.getProduceDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .expireDate(udiEntity.getExpireDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .createUser(getUserId()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .updateTime(new Date()) | 
			
		
	
	
		
			
				
					|  |  |  | @ -141,10 +188,46 @@ public class IoCollectOrderCodeManController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public IoCollectOrderBiz vailPrescribeProduct(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) { | 
			
		
	
		
			
				
					|  |  |  |  |     public IoCollectOrderBiz scanGenOrder(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) { | 
			
		
	
		
			
				
					|  |  |  |  |         for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && | 
			
		
	
		
			
				
					|  |  |  |  |                         (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) | 
			
		
	
		
			
				
					|  |  |  |  |                 ) { | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderBiz.setCount(IntUtil.value(collectOrderBiz.getCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); | 
			
		
	
		
			
				
					|  |  |  |  |                     return collectOrderBiz; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |         return IoCollectOrderBiz.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                 .relId(udiRelevanceResponse.getRelId()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .thrCode(udiRelevanceResponse.getMainId()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .ybbm(udiRelevanceResponse.getYbbm()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .payFeeCode(udiRelevanceResponse.getPayFeeCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .cpmctymc(udiRelevanceResponse.getCpmctymc()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .nameCode(udiRelevanceResponse.getNameCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .ggxh(udiRelevanceResponse.getGgxh()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .batchNo(udiEntity.getBatchNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .productDate(udiEntity.getProduceDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .expireDate(udiEntity.getExpireDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .count(1) | 
			
		
	
		
			
				
					|  |  |  |  |                 .actCount(1) | 
			
		
	
		
			
				
					|  |  |  |  |                 .scanCount(1) | 
			
		
	
		
			
				
					|  |  |  |  |                 .scanActCount(1) | 
			
		
	
		
			
				
					|  |  |  |  |                 .measureUnit(udiRelevanceResponse.getMeasname()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .updateTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .build(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public IoCollectOrderBiz vailByBatchNo(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) { | 
			
		
	
		
			
				
					|  |  |  |  |         for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (udiRelevanceResponse.getId().equals(collectOrderBiz) && | 
			
		
	
		
			
				
					|  |  |  |  |                 if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && | 
			
		
	
		
			
				
					|  |  |  |  |                         (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) | 
			
		
	
		
			
				
					|  |  |  |  |                 ) { | 
			
		
	
		
			
				
					|  |  |  |  |                     return collectOrderBiz; | 
			
		
	
	
		
			
				
					|  |  |  | @ -156,4 +239,18 @@ public class IoCollectOrderCodeManController extends BaseController { | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public IoCollectOrderBiz vailNoBatchNo(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs) { | 
			
		
	
		
			
				
					|  |  |  |  |         for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) | 
			
		
	
		
			
				
					|  |  |  |  |                 ) { | 
			
		
	
		
			
				
					|  |  |  |  |                     return collectOrderBiz; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return null; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |