|  |  | @ -122,30 +122,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS | 
			
		
	
		
		
			
				
					
					|  |  |  |                 splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getAvailableCount()) + IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())); |  |  |  |                 splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getAvailableCount()) + IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 updateById(splitFifoInv); |  |  |  |                 updateById(splitFifoInv); | 
			
		
	
		
		
			
				
					
					|  |  |  |             } else { |  |  |  |             } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 splitFifoInv = IoSplitFifoInv.builder() |  |  |  |                 splitFifoInv = IoSplitFifoInv.builder().id(IdUtil.getSnowflakeNextId()).workPlaceCode(ioSplitFifoCodeEntity.getWorkPlaceCode()).deptCode(ioSplitFifoCodeEntity.getDeptCode()).invCode(ioSplitFifoCodeEntity.getInvCode()).productType(ioSplitFifoCodeEntity.getProductType()).fifoSplit(ioSplitFifoCodeEntity.getFifoSplit()).relId(ioSplitFifoCodeEntity.getRelId()).inCodeCount(ioSplitFifoCodeEntity.getScanCount()).batchNo(ioSplitFifoCodeEntity.getBatchNo()).produceDate(ioSplitFifoCodeEntity.getProduceDate()).expireDate(ioSplitFifoCodeEntity.getExpireDate()).supId(ioSplitFifoCodeEntity.getSupId()).inCount(ioSplitFifoCodeEntity.getTotalCount()).outCount(0).reCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())).availableCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())).lockCount(0).createTime(new Date()).updateTime(new Date()).remark(null).enableRemind(false).invRemindCount(0).workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser()) : orderEntity.getWorkPlaceQueueCode()).build(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         .id(IdUtil.getSnowflakeNextId()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .workPlaceCode(ioSplitFifoCodeEntity.getWorkPlaceCode()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .deptCode(ioSplitFifoCodeEntity.getDeptCode()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .invCode(ioSplitFifoCodeEntity.getInvCode()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .productType(ioSplitFifoCodeEntity.getProductType()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .fifoSplit(ioSplitFifoCodeEntity.getFifoSplit()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .relId(ioSplitFifoCodeEntity.getRelId()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .inCodeCount(ioSplitFifoCodeEntity.getScanCount()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .batchNo(ioSplitFifoCodeEntity.getBatchNo()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .produceDate(ioSplitFifoCodeEntity.getProduceDate()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .expireDate(ioSplitFifoCodeEntity.getExpireDate()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .supId(ioSplitFifoCodeEntity.getSupId()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .inCount(ioSplitFifoCodeEntity.getTotalCount()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .outCount(0) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .reCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .availableCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .lockCount(0) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .createTime(new Date()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .updateTime(new Date()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .remark(null) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .enableRemind(false) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .invRemindCount(0) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser()) : orderEntity.getWorkPlaceQueueCode()).build(); |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | //                if (isOnlyInv) {
 |  |  |  | //                if (isOnlyInv) {
 | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
 |  |  |  | //                    splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
 | 
			
		
	
		
		
			
				
					
					|  |  |  | //                }
 |  |  |  | //                }
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -184,16 +161,10 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         SysWorkplaceQueue workplaceQueue = queues.get(0); |  |  |  |         SysWorkplaceQueue workplaceQueue = queues.get(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |         // 使用流来过滤掉匹配的元素
 |  |  |  |         // 使用流来过滤掉匹配的元素
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         List<SysWorkplaceQueue> filteredQueues = queues.stream() |  |  |  |         List<SysWorkplaceQueue> filteredQueues = queues.stream().filter(queue -> { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 .filter(queue -> { |  |  |  |             IoSplitFifoInv one = getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode())); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     IoSplitFifoInv one = getOne( |  |  |  |             return one == null; // 只保留那些没有匹配的槽位
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                             new LambdaQueryWrapper<IoSplitFifoInv>() |  |  |  |         }).sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode())).collect(Collectors.toList()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                                     .eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     ); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     return one == null; // 只保留那些没有匹配的槽位
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 }) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode())) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .collect(Collectors.toList()); |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if (filteredQueues.size() > 0) { |  |  |  |         if (filteredQueues.size() > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             //还有剩余的槽位 可分配
 |  |  |  |             //还有剩余的槽位 可分配
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             SysWorkplaceQueue sysWorkplaceQueue = filteredQueues.get(0); |  |  |  |             SysWorkplaceQueue sysWorkplaceQueue = filteredQueues.get(0); | 
			
		
	
	
		
		
			
				
					|  |  | @ -248,8 +219,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS | 
			
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |                         } | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } else { |  |  |  |                 } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if (ioSplitFifoCodeEntity != null) |  |  |  |                     if (ioSplitFifoCodeEntity != null) splitCodeEntities.add(ioSplitFifoCodeEntity); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         splitCodeEntities.add(ioSplitFifoCodeEntity); |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
	
		
		
			
				
					|  |  | @ -268,14 +238,37 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public void removeByCodes(List<String> codes, Long workPlaceCode) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         for (String code : codes) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(code, workPlaceCode); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (ioSplitFifoCodeEntity == null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 throw new JsonException(500, "工位队列不存在!"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             splitCodeEntities.add(ioSplitFifoCodeEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (CollUtil.isNotEmpty(splitCodeEntities)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             splitFifoCodeService.removeBatchByIds(splitCodeEntities); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             for (IoSplitFifoCodeEntity ioSplitFifoCodeEntity : splitCodeEntities) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 IoSplitFifoInv splitFifoInv = findByFifoCode(ioSplitFifoCodeEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (splitFifoInv != null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + 1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     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.getOutCount()) - IntUtil.value(splitFifoInv.getLockCount())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     updateById(splitFifoInv); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public IoSplitFifoInv findByFifoCode(IoSplitFifoCodeEntity ioSplitFifoCodeEntity) { |  |  |  |     public IoSplitFifoInv findByFifoCode(IoSplitFifoCodeEntity ioSplitFifoCodeEntity) { | 
			
		
	
		
		
			
				
					
					|  |  |  | //        Boolean isOnlyInv = sysWorkplaceDocumentService.isOnlyInv(ioSplitFifoCodeEntity.getWorkPlaceCode(), ioSplitFifoCodeEntity.getBusType());
 |  |  |  | //        Boolean isOnlyInv = sysWorkplaceDocumentService.isOnlyInv(ioSplitFifoCodeEntity.getWorkPlaceCode(), ioSplitFifoCodeEntity.getBusType());
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         IoSplitFifoInv splitFifoInv = getOne(new LambdaQueryWrapper<IoSplitFifoInv>() |  |  |  |         IoSplitFifoInv splitFifoInv = getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getRelId, ioSplitFifoCodeEntity.getRelId()).eq(IoSplitFifoInv::getWorkPlaceCode, ioSplitFifoCodeEntity.getWorkPlaceCode()).eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBatchNo()), IoSplitFifoInv::getBatchNo, ioSplitFifoCodeEntity.getBatchNo()).eq(ioSplitFifoCodeEntity.getSupId() != null, IoSplitFifoInv::getSupId, ioSplitFifoCodeEntity.getSupId()).last("limit 1")); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 .eq(IoSplitFifoInv::getRelId, ioSplitFifoCodeEntity.getRelId()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .eq(IoSplitFifoInv::getWorkPlaceCode, ioSplitFifoCodeEntity.getWorkPlaceCode()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBatchNo()), IoSplitFifoInv::getBatchNo, ioSplitFifoCodeEntity.getBatchNo()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .eq(ioSplitFifoCodeEntity.getSupId() != null, IoSplitFifoInv::getSupId, ioSplitFifoCodeEntity.getSupId()).last("limit 1")); |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | //          .eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBusType()) && isOnlyInv, IoSplitFifoInv::getBusType, ioSplitFifoCodeEntity.getBusType())
 |  |  |  | //          .eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBusType()) && isOnlyInv, IoSplitFifoInv::getBusType, ioSplitFifoCodeEntity.getBusType())
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         return splitFifoInv; |  |  |  |         return splitFifoInv; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
	
		
		
			
				
					|  |  | @ -337,7 +330,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS | 
			
		
	
		
		
			
				
					
					|  |  |  |                     t.setRemindState(1); |  |  |  |                     t.setRemindState(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Integer suggestOutCount = t.getSuggestOutCount(); |  |  |  |                 Integer suggestOutCount = t.getSuggestOutCount(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (suggestOutCount != null && suggestOutCount <0){ |  |  |  |                 if (suggestOutCount != null && suggestOutCount < 0) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     t.setSuggestOutCount(0); |  |  |  |                     t.setSuggestOutCount(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |             }); |  |  |  |             }); | 
			
		
	
	
		
		
			
				
					|  |  | @ -357,12 +350,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS | 
			
		
	
		
		
			
				
					
					|  |  |  |         Assert.notNull(ioSplitFifoInvRequest.getId(), "Id不能为空"); |  |  |  |         Assert.notNull(ioSplitFifoInvRequest.getId(), "Id不能为空"); | 
			
		
	
		
		
			
				
					
					|  |  |  |         IoSplitFifoInv old = this.getById(ioSplitFifoInvRequest.getId()); |  |  |  |         IoSplitFifoInv old = this.getById(ioSplitFifoInvRequest.getId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |         Assert.notNull(old, "不存在该库存预警设置"); |  |  |  |         Assert.notNull(old, "不存在该库存预警设置"); | 
			
		
	
		
		
			
				
					
					|  |  |  |         this.lambdaUpdate() |  |  |  |         this.lambdaUpdate().set(ioSplitFifoInvRequest.getEnableRemind() != null, IoSplitFifoInv::getEnableRemind, ioSplitFifoInvRequest.getEnableRemind() ? 1 : 0).set(ioSplitFifoInvRequest.getInvRemindCount() != null, IoSplitFifoInv::getInvRemindCount, ioSplitFifoInvRequest.getInvRemindCount()).set(IoSplitFifoInv::getUpdateTime, new Date()).eq(IoSplitFifoInv::getId, ioSplitFifoInvRequest.getId()).update(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 .set(ioSplitFifoInvRequest.getEnableRemind() != null, IoSplitFifoInv::getEnableRemind, ioSplitFifoInvRequest.getEnableRemind() ? 1 : 0) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .set(ioSplitFifoInvRequest.getInvRemindCount() != null, IoSplitFifoInv::getInvRemindCount, ioSplitFifoInvRequest.getInvRemindCount()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .set(IoSplitFifoInv::getUpdateTime, new Date()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .eq(IoSplitFifoInv::getId, ioSplitFifoInvRequest.getId()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 .update(); |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |