|  |  |  | @ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
			
		
	
		
			
				
					|  |  |  |  | import com.github.pagehelper.PageHelper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.constant.Constant; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.collect.IoCollectCodeBackMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.collect.IoCollectErrorLogMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.collect.IoCollectOrderBackupMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.inout.IoCodeLostMapper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.inout.IoSplitCodeMapper; | 
			
		
	
	
		
			
				
					|  |  |  | @ -130,23 +131,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |         unCount = IntUtil.value(collectOrderBiz.getUnTagCount()); | 
			
		
	
		
			
				
					|  |  |  |  |         for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |             count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount; | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderCodeAutoService.save( | 
			
		
	
		
			
				
					|  |  |  |  |                     IoCollectOrderCodeAuto.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                             .codeIdFk(ioSplitCodeEntity.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .udiCode(ioSplitCodeEntity.getCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .orderIdFk(collectOrder.getBillNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .batchNo(ioSplitCodeEntity.getBatchNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .productDate(ioSplitCodeEntity.getProduceDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .expireDate(ioSplitCodeEntity.getExpireDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .serialNo(ioSplitCodeEntity.getSerialNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .relId(collectOrderBiz.getRelId()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .bizIdFk(collectOrderBiz.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .fifoSplit(1) | 
			
		
	
		
			
				
					|  |  |  |  |                             .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .updateTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                             .count(count > 0 ? count : 0) | 
			
		
	
		
			
				
					|  |  |  |  |                             .reCount(unCount) | 
			
		
	
		
			
				
					|  |  |  |  |                             .build()); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder().codeIdFk(ioSplitCodeEntity.getId()).udiCode(ioSplitCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(ioSplitCodeEntity.getBatchNo()).productDate(ioSplitCodeEntity.getProduceDate()).expireDate(ioSplitCodeEntity.getExpireDate()).serialNo(ioSplitCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(1).createTime(new Date()).updateTime(new Date()).count(count > 0 ? count : 0).reCount(unCount).build()); | 
			
		
	
		
			
				
					|  |  |  |  |             if (count > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                 ioSplitCodeEntity.setRemainCount(count); | 
			
		
	
		
			
				
					|  |  |  |  |                 unCount = 0; | 
			
		
	
	
		
			
				
					|  |  |  | @ -169,7 +154,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |                 //预出库队列数量不足
 | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderBiz.setTagStatus(2); | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!"); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!"); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (isAuto) | 
			
		
	
		
			
				
					|  |  |  |  |                     throw new JsonException(500, "提交失败," + collectOrderBiz.getCpmctymc() + "工位库存数量不足!"); | 
			
		
	
		
			
				
					|  |  |  |  |                 else return; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
	
		
			
				
					|  |  |  | @ -178,21 +164,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |                 for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (IntUtil.value(ioSplitCodeEntity.getRemainCount()) > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                         count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount; | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                                 .codeIdFk(ioSplitCodeEntity.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .udiCode(ioSplitCodeEntity.getCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .orderIdFk(collectOrder.getBillNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .batchNo(ioSplitCodeEntity.getBatchNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .productDate(ioSplitCodeEntity.getProduceDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .expireDate(ioSplitCodeEntity.getExpireDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .serialNo(ioSplitCodeEntity.getSerialNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .relId(collectOrderBiz.getRelId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .bizIdFk(collectOrderBiz.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .fifoSplit(count > 0 ? count : 0) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .reCount(count) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .updateTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .build()); | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder().codeIdFk(ioSplitCodeEntity.getId()).udiCode(ioSplitCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(ioSplitCodeEntity.getBatchNo()).productDate(ioSplitCodeEntity.getProduceDate()).expireDate(ioSplitCodeEntity.getExpireDate()).serialNo(ioSplitCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(count > 0 ? count : 0).reCount(count).createTime(new Date()).updateTime(new Date()).build()); | 
			
		
	
		
			
				
					|  |  |  |  |                         if (count > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                             ioSplitCodeEntity.setRemainCount(count); | 
			
		
	
		
			
				
					|  |  |  |  |                             splitCodeMapper.updateById(ioSplitCodeEntity); | 
			
		
	
	
		
			
				
					|  |  |  | @ -239,7 +211,12 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |         //如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCollectOrderCodeMan> collectOrderCodeMEN = collectOrderCodeManService.listByBillNo(collectOrder.getBillNo()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(collectOrderCodeMEN)) { | 
			
		
	
		
			
				
					|  |  |  |  | //            replaceCode(collectOrderCodeMEN, collectOrder);
 | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (IntUtil.value(collectOrderCodeMan.getRemoveFlag())) { | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), putWorkPlaceCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (splitFifoCodeEntity != null) { | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderCodeMan.setRemoveFlag(true); | 
			
		
	
	
		
			
				
					|  |  |  | @ -321,13 +298,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |                                 splitCodeEntity.setRemainCount(-unTagCount); | 
			
		
	
		
			
				
					|  |  |  |  |                                 splitCodeService.updateById(splitCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                                 IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                                         .code(item.getUdiCode()).errUdiCode(item.getUdiCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                                         .orderId(item.getOrderIdFk()) | 
			
		
	
		
			
				
					|  |  |  |  |                                         .action(collectOrder.getBusType()).relId(item.getRelId()).nameCode(item.getNameCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                                         .batchNo(item.getBatchNo()).produceDate(item.getProductDate()).expireDate(item.getExpireDate()).serialNo(item.getSerialNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                         .scanCount(item.getScanCount()).totalCount(item.getScanCount()).workPlaceCode(putWorkPlaceCode) | 
			
		
	
		
			
				
					|  |  |  |  |                                         .status(2).fifoSplit(1).createTime(new Date()).updateTime(new Date()).remainCount(item.getRemainCount()).build(); | 
			
		
	
		
			
				
					|  |  |  |  |                                 IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder().code(item.getUdiCode()).errUdiCode(item.getUdiCode()).orderId(item.getOrderIdFk()).action(collectOrder.getBusType()).relId(item.getRelId()).nameCode(item.getNameCode()).batchNo(item.getBatchNo()).produceDate(item.getProductDate()).expireDate(item.getExpireDate()).serialNo(item.getSerialNo()).scanCount(item.getScanCount()).totalCount(item.getScanCount()).workPlaceCode(putWorkPlaceCode).status(2).fifoSplit(1).createTime(new Date()).updateTime(new Date()).remainCount(item.getRemainCount()).build(); | 
			
		
	
		
			
				
					|  |  |  |  |                                 this.decorateUnpackExpireTime(ioSplitCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                                 splitCodeService.save(ioSplitCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                             } | 
			
		
	
	
		
			
				
					|  |  |  | @ -354,20 +325,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |                     for (int i = 0; i < indexFlag; i++) { | 
			
		
	
		
			
				
					|  |  |  |  |                         IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i); | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl())); | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                                 .codeIdFk(splitFifoCodeEntity.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .udiCode(splitFifoCodeEntity.getCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .orderIdFk(collectOrder.getBillNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .batchNo(splitFifoCodeEntity.getBatchNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .productDate(splitFifoCodeEntity.getProduceDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .expireDate(splitFifoCodeEntity.getExpireDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .serialNo(splitFifoCodeEntity.getSerialNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .relId(collectOrderBiz.getRelId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .bizIdFk(collectOrderBiz.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .fifoSplit(2) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .updateTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .build()); | 
			
		
	
		
			
				
					|  |  |  |  |                         collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder().codeIdFk(splitFifoCodeEntity.getId()).udiCode(splitFifoCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(splitFifoCodeEntity.getBatchNo()).productDate(splitFifoCodeEntity.getProduceDate()).expireDate(splitFifoCodeEntity.getExpireDate()).serialNo(splitFifoCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(2).createTime(new Date()).updateTime(new Date()).build()); | 
			
		
	
		
			
				
					|  |  |  |  |                         splitFifoCodeService.removeById(splitFifoCodeEntity.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |                         IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                         if (splitFifoInv != null) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -416,85 +374,74 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |         for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeManList) { | 
			
		
	
		
			
				
					|  |  |  |  |             // 1. 查找已完成成单据扫码是否已被分配
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             List<IoCollectCodeBackup> collectCodeBackups = collectCodeBackMapper.selectList(new LambdaQueryWrapper<IoCollectCodeBackup>() | 
			
		
	
		
			
				
					|  |  |  |  |                     .eq(IoCollectCodeBackup::getBusType, collectOrder.getBusType()) | 
			
		
	
		
			
				
					|  |  |  |  |                     .eq(IoCollectCodeBackup::getCode, collectOrderCodeMan.getUdiCode()) | 
			
		
	
		
			
				
					|  |  |  |  |             ); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             List<IoCollectCodeBackup> collectCodeBackups = collectCodeBackMapper.selectList(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBusType, collectOrder.getBusType()).eq(IoCollectCodeBackup::getCode, collectOrderCodeMan.getUdiCode())); | 
			
		
	
		
			
				
					|  |  |  |  |             if (CollUtil.isNotEmpty(collectCodeBackups)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 IoCollectCodeBackup collectCodeBackup = collectCodeBackups.get(0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (IntUtil.value(collectCodeBackup.getFifoSplit()) == 3) { | 
			
		
	
		
			
				
					|  |  |  |  |                     throw new JsonException(500, collectCodeBackup.getCode() + "重复扫码,请盘查后重试!"); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 IoCollectOrderBackup collectOrderBackup = collectOrderBackupMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderBackup>().eq(IoCollectOrderBackup::getBillNo, collectCodeBackup.getBillNo())); | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderCodeMan.setRemoveFlag(true); | 
			
		
	
		
			
				
					|  |  |  |  |                 // 单据已被上传至医保
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (IntUtil.value(collectOrderBackup.getUploadStatus()) == 2) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     IoSplitFifoCodeEntity splitFifoCodeEntity = removeInvByCode(collectOrderCodeMan, collectOrder.getWorkPlaceCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (splitFifoCodeEntity == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                         throw new JsonException(500, "工位存量不足!"); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     IoCollectErrorLog ioCollectErrorLog = IoCollectErrorLog.builder().orderId(collectOrder.getId()).autoCode(splitFifoCodeEntity.getCode()).manuCode(collectOrderCodeMan.getUdiCode()).type(2)    //未上传医保替换码
 | 
			
		
	
		
			
				
					|  |  |  |  |                             .updateTime(new Date()).build(); | 
			
		
	
		
			
				
					|  |  |  |  |                     collectErrorLogMapper.insert(ioCollectErrorLog); | 
			
		
	
		
			
				
					|  |  |  |  |                     collectCodeBackup.setCode(splitFifoCodeEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                     collectCodeBackMapper.updateById(collectCodeBackup); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     //单据未上传医保,上传医保失败
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     IoSplitFifoCodeEntity splitFifoCodeEntity = removeInvByCode(collectOrderCodeMan, collectOrder.getWorkPlaceCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (splitFifoCodeEntity == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                         throw new JsonException(500, "工位存量不足!"); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     IoCollectErrorLog ioCollectErrorLog = IoCollectErrorLog.builder().orderId(collectOrder.getId()).autoCode(splitFifoCodeEntity.getCode()).manuCode(collectOrderCodeMan.getUdiCode()).type(1)    //未上传医保替换码
 | 
			
		
	
		
			
				
					|  |  |  |  |                             .updateTime(new Date()).build(); | 
			
		
	
		
			
				
					|  |  |  |  |                     collectErrorLogMapper.insert(ioCollectErrorLog); | 
			
		
	
		
			
				
					|  |  |  |  |                     //替换已完成单据的码
 | 
			
		
	
		
			
				
					|  |  |  |  |                     collectCodeBackup.setCode(splitFifoCodeEntity.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                     collectCodeBackMapper.updateById(collectCodeBackup); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // 2. 查找已完成单据码是否已被上传
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // 3. 查找已完成码,标记该码已被手动赋码
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // 4. 查找码库未被使用的码,赋码至已完成的码,插入码表记录
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // 5. 如果已被上传,则标记该码已被上传,从码库查出未被使用的码,插入码表记录,标记该码已被上传,替换成已码库的码
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // 5. 查找
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCollectErrorLogMapper collectErrorLogMapper; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 工位查找未使用码进行抠库 | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     public void removeInvByCode(IoCollectOrderCodeMan collectOrderCodeMan, Long putWorkPlaceCode) { | 
			
		
	
		
			
				
					|  |  |  |  |     public IoSplitFifoCodeEntity removeInvByCode(IoCollectOrderCodeMan collectOrderCodeMan, Long putWorkPlaceCode) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoSplitFifoCodeEntity> splitFifoCodeEntitys = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderCodeMan.getRelId(), collectOrderCodeMan.getBatchNo(), null); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(splitFifoCodeEntitys)) { | 
			
		
	
		
			
				
					|  |  |  |  |             IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeEntitys.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |             collectOrderCodeMan.setRemoveFlag(true); | 
			
		
	
		
			
				
					|  |  |  |  |             if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) { | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoCodeService.removeById(splitFifoCodeEntity.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |                 IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (splitFifoInv != null) { | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + IntUtil.value(splitFifoCodeEntity.getScanCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInvService.updateById(splitFifoInv); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 //队列码数量大于扫码数量更新数量(一般指无序列号)
 | 
			
		
	
		
			
				
					|  |  |  |  |                 FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |                 filterUdiRelRequest.setId(collectOrderCodeMan.getRelId()); | 
			
		
	
		
			
				
					|  |  |  |  |                 filterUdiRelRequest.setPackLevel("1"); | 
			
		
	
		
			
				
					|  |  |  |  |                 UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                 int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceResponse.getBhxjsl(); | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder().id(splitFifoCodeEntity.getId()).scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount())).totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount).build()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (splitFifoInv != null) { | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + removeCount); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + IntUtil.value(collectOrderCodeMan.getScanCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - removeCount; | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoInvService.updateById(splitFifoInv); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             splitFifoCodeService.removeById(splitFifoCodeEntity.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |             IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |             if (splitFifoInv != null) { | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + IntUtil.value(splitFifoCodeEntity.getScanCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                 int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0); | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoInvService.updateById(splitFifoInv); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return splitFifoCodeEntity; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return null; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -542,8 +489,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |     IoCollectOrderService collectOrderService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
			
				
					|  |  |  |  |     public ConfirmResponse confirmBizAutiTagCode(IoCollectOrderBiz collectOrderBiz, String queueCode, String | 
			
		
	
		
			
				
					|  |  |  |  |             confirmSplitCode, Boolean skipSplitConfirm) { | 
			
		
	
		
			
				
					|  |  |  |  |     public ConfirmResponse confirmBizAutiTagCode(IoCollectOrderBiz collectOrderBiz, String queueCode, String confirmSplitCode, Boolean skipSplitConfirm) { | 
			
		
	
		
			
				
					|  |  |  |  |         ConfirmResponse confirmResponse = new ConfirmResponse(); | 
			
		
	
		
			
				
					|  |  |  |  |         IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderBiz.getOrderIdFk()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (collectOrder == null) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -631,21 +577,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |             for (int i = 0; i < quotient; i++) { | 
			
		
	
		
			
				
					|  |  |  |  |                 IoSplitFifoCodeEntity splitFifoCodeEntity = availableCodes.get(i); | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl())); | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderCodeAutoService.save( | 
			
		
	
		
			
				
					|  |  |  |  |                         IoCollectOrderCodeAuto.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                                 .codeIdFk(splitFifoCodeEntity.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .udiCode(splitFifoCodeEntity.getCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .orderIdFk(collectOrder.getBillNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .batchNo(splitFifoCodeEntity.getBatchNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .productDate(splitFifoCodeEntity.getProduceDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .expireDate(splitFifoCodeEntity.getExpireDate()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .serialNo(splitFifoCodeEntity.getSerialNo()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .relId(collectOrderBiz.getRelId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .bizIdFk(collectOrderBiz.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .fifoSplit(2) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .createTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .updateTime(new Date()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .build()); | 
			
		
	
		
			
				
					|  |  |  |  |                 collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder().codeIdFk(splitFifoCodeEntity.getId()).udiCode(splitFifoCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(splitFifoCodeEntity.getBatchNo()).productDate(splitFifoCodeEntity.getProduceDate()).expireDate(splitFifoCodeEntity.getExpireDate()).serialNo(splitFifoCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(2).createTime(new Date()).updateTime(new Date()).build()); | 
			
		
	
		
			
				
					|  |  |  |  |                 splitFifoCodeService.removeById(splitFifoCodeEntity.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |                 IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (splitFifoInv != null) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -698,9 +630,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |         } else return null; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public List<IoCollectOrderCodeMan> filterCode | 
			
		
	
		
			
				
					|  |  |  |  |             (List<IoCollectOrderCodeMan> collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse | 
			
		
	
		
			
				
					|  |  |  |  |                     udiRelevanceResponse) { | 
			
		
	
		
			
				
					|  |  |  |  |     public List<IoCollectOrderCodeMan> filterCode(List<IoCollectOrderCodeMan> collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse udiRelevanceResponse) { | 
			
		
	
		
			
				
					|  |  |  |  |         int unTagCount = IntUtil.value(collectOrderBiz.getScanActCount()) - collectOrderBiz.getCount(); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCollectOrderCodeMan> newList = new ArrayList<IoCollectOrderCodeMan>(); | 
			
		
	
		
			
				
					|  |  |  |  |         int count = 0; | 
			
		
	
	
		
			
				
					|  |  |  | @ -770,11 +700,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (CollUtil.isNotEmpty(splitFifoCodeEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeEntities.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |                 IoCodeLostEntity ioCodeLostEntity = ioCodeLostMapper.selectOne( | 
			
		
	
		
			
				
					|  |  |  |  |                         new QueryWrapper<IoCodeLostEntity>() | 
			
		
	
		
			
				
					|  |  |  |  |                                 .eq("code", ioSplitFifoCodeEntity.getCode()) | 
			
		
	
		
			
				
					|  |  |  |  |                                 .last("limit 1") | 
			
		
	
		
			
				
					|  |  |  |  |                 ); | 
			
		
	
		
			
				
					|  |  |  |  |                 IoCodeLostEntity ioCodeLostEntity = ioCodeLostMapper.selectOne(new QueryWrapper<IoCodeLostEntity>().eq("code", ioSplitFifoCodeEntity.getCode()).last("limit 1")); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (ioCodeLostEntity != null && StringUtils.isNotEmpty(ioCodeLostEntity.getBatchNo())) { | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderBiz.setBatchNo(ioCodeLostEntity.getBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                     collectOrderBiz.setProductDate(ioCodeLostEntity.getProduceDate()); | 
			
		
	
	
		
			
				
					|  |  |  | @ -840,8 +766,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 从预出库队列里面取出数据,添加至拆零表 | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     public Integer addFifoCode(Long relId, String batchNo, Integer needCount, Long putWorkPlaceCode, String | 
			
		
	
		
			
				
					|  |  |  |  |             confirmSplitCode) { | 
			
		
	
		
			
				
					|  |  |  |  |     public Integer addFifoCode(Long relId, String batchNo, Integer needCount, Long putWorkPlaceCode, String confirmSplitCode) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoSplitFifoCodeEntity> splitFifoCodeEntities; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |