|
|
|
@ -122,30 +122,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getAvailableCount()) + IntUtil.value(ioSplitFifoCodeEntity.getTotalCount()));
|
|
|
|
|
updateById(splitFifoInv);
|
|
|
|
|
} else {
|
|
|
|
|
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();
|
|
|
|
|
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();
|
|
|
|
|
// if (isOnlyInv) {
|
|
|
|
|
// splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
|
|
|
|
|
// }
|
|
|
|
@ -184,16 +161,10 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
}
|
|
|
|
|
SysWorkplaceQueue workplaceQueue = queues.get(0);
|
|
|
|
|
// 使用流来过滤掉匹配的元素
|
|
|
|
|
List<SysWorkplaceQueue> filteredQueues = queues.stream()
|
|
|
|
|
.filter(queue -> {
|
|
|
|
|
IoSplitFifoInv one = getOne(
|
|
|
|
|
new LambdaQueryWrapper<IoSplitFifoInv>()
|
|
|
|
|
.eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode())
|
|
|
|
|
);
|
|
|
|
|
return one == null; // 只保留那些没有匹配的槽位
|
|
|
|
|
})
|
|
|
|
|
.sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode()))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
List<SysWorkplaceQueue> filteredQueues = queues.stream().filter(queue -> {
|
|
|
|
|
IoSplitFifoInv one = getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode()));
|
|
|
|
|
return one == null; // 只保留那些没有匹配的槽位
|
|
|
|
|
}).sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode())).collect(Collectors.toList());
|
|
|
|
|
if (filteredQueues.size() > 0) {
|
|
|
|
|
//还有剩余的槽位 可分配
|
|
|
|
|
SysWorkplaceQueue sysWorkplaceQueue = filteredQueues.get(0);
|
|
|
|
@ -248,8 +219,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (ioSplitFifoCodeEntity != null)
|
|
|
|
|
splitCodeEntities.add(ioSplitFifoCodeEntity);
|
|
|
|
|
if (ioSplitFifoCodeEntity != null) 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) {
|
|
|
|
|
// Boolean isOnlyInv = sysWorkplaceDocumentService.isOnlyInv(ioSplitFifoCodeEntity.getWorkPlaceCode(), ioSplitFifoCodeEntity.getBusType());
|
|
|
|
|
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"));
|
|
|
|
|
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(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBusType()) && isOnlyInv, IoSplitFifoInv::getBusType, ioSplitFifoCodeEntity.getBusType())
|
|
|
|
|
return splitFifoInv;
|
|
|
|
|
}
|
|
|
|
@ -337,7 +330,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
t.setRemindState(1);
|
|
|
|
|
}
|
|
|
|
|
Integer suggestOutCount = t.getSuggestOutCount();
|
|
|
|
|
if (suggestOutCount != null && suggestOutCount <0){
|
|
|
|
|
if (suggestOutCount != null && suggestOutCount < 0) {
|
|
|
|
|
t.setSuggestOutCount(0);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -357,12 +350,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
Assert.notNull(ioSplitFifoInvRequest.getId(), "Id不能为空");
|
|
|
|
|
IoSplitFifoInv old = this.getById(ioSplitFifoInvRequest.getId());
|
|
|
|
|
Assert.notNull(old, "不存在该库存预警设置");
|
|
|
|
|
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();
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|