|
|
|
@ -86,22 +86,13 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<IoSplitCodeEntity> findSplitCodes(Long relId, String batchNo, Long workPlaceCode) {
|
|
|
|
|
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
|
|
|
|
|
.eq(IoSplitCodeEntity::getRelId, relId)
|
|
|
|
|
.eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo)
|
|
|
|
|
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
|
|
|
|
|
.gt(IoSplitCodeEntity::getRemainCount, 0)
|
|
|
|
|
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
|
|
|
|
|
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(IoSplitCodeEntity::getRelId, relId).eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo).eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode).gt(IoSplitCodeEntity::getRemainCount, 0).in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
|
|
|
|
|
return ioSplitCodeEntities;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<IoSplitCodeEntity> findSplitCodes(String ybbm, String batchNo, Long workPlaceCode) {
|
|
|
|
|
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
|
|
|
|
|
.eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo)
|
|
|
|
|
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
|
|
|
|
|
.gt(IoSplitCodeEntity::getRemainCount, 0)
|
|
|
|
|
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
|
|
|
|
|
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo).eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode).gt(IoSplitCodeEntity::getRemainCount, 0).in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
|
|
|
|
|
return ioSplitCodeEntities;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -109,18 +100,13 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
if (workPlaceCode == null) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
|
|
|
|
|
.eq(IoSplitCodeEntity::getCode, code)
|
|
|
|
|
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
|
|
|
|
|
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
|
|
|
|
|
if (CollUtil.isNotEmpty(ioSplitCodeEntities))
|
|
|
|
|
return ioSplitCodeEntities.get(0);
|
|
|
|
|
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(IoSplitCodeEntity::getCode, code).eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode).in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
|
|
|
|
|
if (CollUtil.isNotEmpty(ioSplitCodeEntities)) return ioSplitCodeEntities.get(0);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IoSplitCodeEntity findByCode(String code) {
|
|
|
|
|
return splitCodeMapper.selectOne(new LambdaQueryWrapper<IoSplitCodeEntity>()
|
|
|
|
|
.eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
|
|
|
|
|
return splitCodeMapper.selectOne(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder, Long putWorkPlaceCode, Boolean isAuto, String confirmSplitCode) {
|
|
|
|
@ -138,20 +124,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())
|
|
|
|
|
.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()).build());
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
ioSplitCodeEntity.setRemainCount(count);
|
|
|
|
|
unCount = 0;
|
|
|
|
@ -174,8 +147,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
//预出库队列数量不足
|
|
|
|
|
collectOrderBiz.setTagStatus(2);
|
|
|
|
|
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
|
|
|
|
|
if (isAuto)
|
|
|
|
|
throw new JsonException(500, "提交失败,工位库存数量不足!");
|
|
|
|
|
if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!");
|
|
|
|
|
else return;
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
@ -184,20 +156,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(1)
|
|
|
|
|
.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(1).createTime(new Date()).updateTime(new Date()).build());
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
ioSplitCodeEntity.setRemainCount(count);
|
|
|
|
|
splitCodeMapper.updateById(ioSplitCodeEntity);
|
|
|
|
@ -217,8 +176,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
if (unCount > 0) {
|
|
|
|
|
collectOrderBiz.setTagStatus(2);
|
|
|
|
|
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
|
|
|
|
|
if (isAuto)
|
|
|
|
|
throw new JsonException(500, "工位库存数量不足!");
|
|
|
|
|
if (isAuto) throw new JsonException(500, "工位库存数量不足!");
|
|
|
|
|
else return;
|
|
|
|
|
} else {
|
|
|
|
|
collectOrderBiz.setTagStatus(3);
|
|
|
|
@ -239,8 +197,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
|
|
|
|
|
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
|
|
|
|
|
Long putWorkPlaceCode = null;
|
|
|
|
|
if (sysWorkplacePutRel != null)
|
|
|
|
|
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
|
|
|
|
|
|
|
|
|
|
//如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除
|
|
|
|
@ -271,11 +228,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
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());
|
|
|
|
|
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) {
|
|
|
|
@ -328,23 +281,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);
|
|
|
|
|
}
|
|
|
|
@ -364,29 +301,15 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
if (quotient > 0) {
|
|
|
|
|
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
|
|
|
|
|
if (ioSplitFifoCodeEntities.size() < quotient) {
|
|
|
|
|
if (isAuto)
|
|
|
|
|
throw new JsonException(500, "提交失败,工位库存数量不足!");
|
|
|
|
|
if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!");
|
|
|
|
|
// else return;
|
|
|
|
|
}
|
|
|
|
|
if (ioSplitFifoCodeEntities.size() > 0) {
|
|
|
|
|
Integer indexFlag = ioSplitFifoCodeEntities.size() < quotient ?ioSplitFifoCodeEntities.size():quotient;
|
|
|
|
|
Integer indexFlag = ioSplitFifoCodeEntities.size() < quotient ? ioSplitFifoCodeEntities.size() : quotient;
|
|
|
|
|
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) {
|
|
|
|
@ -422,6 +345,47 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 完成销售出库自动扣工位库存
|
|
|
|
|
*/
|
|
|
|
|
public void finishSellOrder(IoCollectOrder collectOrder, Long workPlace) {
|
|
|
|
|
List<IoCollectOrderCodeMan> collectOrderCodeMENs = collectOrderCodeManService.listByBillNo(collectOrder.getBillNo());
|
|
|
|
|
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMENs) {
|
|
|
|
|
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), workPlace);
|
|
|
|
|
if (splitFifoCodeEntity != null) {
|
|
|
|
|
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()));
|
|
|
|
|
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
|
|
|
|
|
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
|
|
|
|
|
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()));
|
|
|
|
|
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
|
|
|
|
|
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
|
|
|
|
|
splitFifoInvService.updateById(splitFifoInv);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
IoCollectOrderService collectOrderService;
|
|
|
|
|
|
|
|
|
@ -434,8 +398,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
}
|
|
|
|
|
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
|
|
|
|
|
Long putWorkPlaceCode = null;
|
|
|
|
|
if (sysWorkplacePutRel != null)
|
|
|
|
|
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
|
|
filterUdiRelRequest.setId(collectOrderBiz.getRelId());
|
|
|
|
|
filterUdiRelRequest.setPackLevel("1");
|
|
|
|
@ -497,8 +460,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
// .limit(totalNeededCount) // 只取需要的数量
|
|
|
|
|
.map(code -> {
|
|
|
|
|
return code.getCode();
|
|
|
|
|
})
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
if (CollUtil.isNotEmpty(codeInfoList)) {
|
|
|
|
|
confirmResponse.setNeedSplitConfirm(true);
|
|
|
|
|
confirmResponse.setNeedSplitCodes(codeInfoList);
|
|
|
|
@ -516,20 +478,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) {
|
|
|
|
@ -578,11 +527,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
public List<Long> findInvIdFk(IoCollectOrder collectOrder) {
|
|
|
|
|
List<IoSplitFifoInvRel> ioSplitFifoInvRels = splitFifoInvRelService.findInvIdFk(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
|
|
|
|
|
if (CollUtil.isNotEmpty(ioSplitFifoInvRels)) {
|
|
|
|
|
return ioSplitFifoInvRels.stream()
|
|
|
|
|
.map(IoSplitFifoInvRel::getInvIdFk)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
} else
|
|
|
|
|
return null;
|
|
|
|
|
return ioSplitFifoInvRels.stream().map(IoSplitFifoInvRel::getInvIdFk).collect(Collectors.toList());
|
|
|
|
|
} else return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<IoCollectOrderCodeMan> filterCode(List<IoCollectOrderCodeMan> collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse udiRelevanceResponse) {
|
|
|
|
@ -633,36 +579,26 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
Long putWorkPlaceCode = null;
|
|
|
|
|
//获取上货工位
|
|
|
|
|
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
|
|
|
|
|
if (sysWorkplacePutRel != null)
|
|
|
|
|
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
|
|
|
|
|
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
|
|
|
|
|
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
|
|
|
|
|
splitFifoCodeService.findByRelId(putWorkPlaceCode,
|
|
|
|
|
collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
|
|
|
|
|
int total = splitFifoCodeEntities.stream()
|
|
|
|
|
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
|
|
|
|
|
.sum();
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
|
|
|
|
|
int total = splitFifoCodeEntities.stream().mapToInt(IoSplitFifoCodeEntity::getTotalCount).sum();
|
|
|
|
|
collectOrderBiz.setTempWorkPlaceCount(total);
|
|
|
|
|
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId()
|
|
|
|
|
, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
|
|
|
|
|
int splitTotal = splitCodeEntities.stream()
|
|
|
|
|
.mapToInt(IoSplitCodeEntity::getRemainCount)
|
|
|
|
|
.sum();
|
|
|
|
|
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
|
|
|
|
|
int splitTotal = splitCodeEntities.stream().mapToInt(IoSplitCodeEntity::getRemainCount).sum();
|
|
|
|
|
collectOrderBiz.setTempSplitCount(splitTotal);
|
|
|
|
|
total = total + splitTotal;
|
|
|
|
|
if (total >= IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
collectOrderBiz.setAutoTagStatus(2);
|
|
|
|
|
} else if (total > 0) {
|
|
|
|
|
collectOrderBiz.setAutoTagStatus(3);
|
|
|
|
|
} else
|
|
|
|
|
collectOrderBiz.setAutoTagStatus(1);
|
|
|
|
|
} else collectOrderBiz.setAutoTagStatus(1);
|
|
|
|
|
}
|
|
|
|
|
ThreadUtil.execAsync(() -> {
|
|
|
|
|
ioCollectLedGroupService.openLed(collectOrderBizs);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
ioCollectLedGroupService.openLed(collectOrderBizs);
|
|
|
|
|
});
|
|
|
|
|
collectOrderBizService.updateBatchById(collectOrderBizs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -675,31 +611,22 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
Long putWorkPlaceCode = null;
|
|
|
|
|
//获取上货工位
|
|
|
|
|
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
|
|
|
|
|
if (sysWorkplacePutRel != null)
|
|
|
|
|
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
|
|
|
|
|
|
|
|
|
|
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
|
|
|
|
|
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
|
|
|
|
|
splitFifoCodeService.findByCheckCode(putWorkPlaceCode,
|
|
|
|
|
collectOrderBiz.getYbbm(), collectOrderBiz.getBatchNo(), queueCode);
|
|
|
|
|
int total = splitFifoCodeEntities.stream()
|
|
|
|
|
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
|
|
|
|
|
.sum();
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitFifoCodeEntities = splitFifoCodeService.findByCheckCode(putWorkPlaceCode, collectOrderBiz.getYbbm(), collectOrderBiz.getBatchNo(), queueCode);
|
|
|
|
|
int total = splitFifoCodeEntities.stream().mapToInt(IoSplitFifoCodeEntity::getTotalCount).sum();
|
|
|
|
|
collectOrderBiz.setTempWorkPlaceCount(total);
|
|
|
|
|
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId()
|
|
|
|
|
, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
|
|
|
|
|
int splitTotal = splitCodeEntities.stream()
|
|
|
|
|
.mapToInt(IoSplitCodeEntity::getRemainCount)
|
|
|
|
|
.sum();
|
|
|
|
|
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
|
|
|
|
|
int splitTotal = splitCodeEntities.stream().mapToInt(IoSplitCodeEntity::getRemainCount).sum();
|
|
|
|
|
collectOrderBiz.setTempSplitCount(splitTotal);
|
|
|
|
|
total = total + splitTotal;
|
|
|
|
|
if (total >= IntUtil.value(collectOrderBiz.getCount())) {
|
|
|
|
|
collectOrderBiz.setAutoTagStatus(2);
|
|
|
|
|
} else if (total > 0) {
|
|
|
|
|
collectOrderBiz.setAutoTagStatus(3);
|
|
|
|
|
} else
|
|
|
|
|
collectOrderBiz.setAutoTagStatus(1);
|
|
|
|
|
} else collectOrderBiz.setAutoTagStatus(1);
|
|
|
|
|
}
|
|
|
|
|
collectOrderBizService.updateBatchById(collectOrderBizs);
|
|
|
|
|
}
|
|
|
|
@ -731,20 +658,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitFifoCodeEntities;
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(confirmSplitCode)) {
|
|
|
|
|
splitFifoCodeEntities = splitFifoCodeService
|
|
|
|
|
.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
|
|
|
|
|
.eq(IoSplitFifoCodeEntity::getCode, confirmSplitCode)
|
|
|
|
|
.eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode)
|
|
|
|
|
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
|
|
|
|
|
);
|
|
|
|
|
splitFifoCodeEntities = splitFifoCodeService.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>().eq(IoSplitFifoCodeEntity::getCode, confirmSplitCode).eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode).orderByAsc(IoSplitFifoCodeEntity::getInBactchNo));
|
|
|
|
|
} else {
|
|
|
|
|
splitFifoCodeEntities = splitFifoCodeService
|
|
|
|
|
.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
|
|
|
|
|
.eq(IoSplitFifoCodeEntity::getRelId, relId)
|
|
|
|
|
.eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo)
|
|
|
|
|
.eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode)
|
|
|
|
|
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
|
|
|
|
|
);
|
|
|
|
|
splitFifoCodeEntities = splitFifoCodeService.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>().eq(IoSplitFifoCodeEntity::getRelId, relId).eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo).eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode).orderByAsc(IoSplitFifoCodeEntity::getInBactchNo));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Integer count = 0;
|
|
|
|
@ -852,37 +768,12 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
IoSplitDesOrder collectOrder;
|
|
|
|
|
List<IoSplitDesOrderDetail> splitDesOrderDetails = new ArrayList<>();
|
|
|
|
|
List<Long> removeByIds = new ArrayList<>();
|
|
|
|
|
collectOrder = IoSplitDesOrder.builder()
|
|
|
|
|
.id(IdUtil.getSnowflakeNextId())
|
|
|
|
|
.billNo(gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SPLIT_DES_ORDER, "yyyyMMdd")))
|
|
|
|
|
.busType(null)
|
|
|
|
|
.workPlaceCode(null)
|
|
|
|
|
.createTime(new Date())
|
|
|
|
|
.billTime(new Date())
|
|
|
|
|
.remark(null)
|
|
|
|
|
.status(2)
|
|
|
|
|
.createUser("1")
|
|
|
|
|
.updateTime(new Date())
|
|
|
|
|
.updateUser("1")
|
|
|
|
|
.build();
|
|
|
|
|
collectOrder = IoSplitDesOrder.builder().id(IdUtil.getSnowflakeNextId()).billNo(gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SPLIT_DES_ORDER, "yyyyMMdd"))).busType(null).workPlaceCode(null).createTime(new Date()).billTime(new Date()).remark(null).status(2).createUser("1").updateTime(new Date()).updateUser("1").build();
|
|
|
|
|
splitDesOrderService.save(collectOrder);
|
|
|
|
|
|
|
|
|
|
ioSplitCodeEntities.forEach(splitCodeEntity -> {
|
|
|
|
|
//损耗详细表
|
|
|
|
|
IoSplitDesOrderDetail splitDesOrderDetail = IoSplitDesOrderDetail.builder()
|
|
|
|
|
.id(IdUtil.getSnowflakeNextId())
|
|
|
|
|
.workPlaceCode(collectOrder.getWorkPlaceCode())
|
|
|
|
|
.orderIdFk(collectOrder.getBillNo())
|
|
|
|
|
.relId(splitCodeEntity.getRelId())
|
|
|
|
|
.batchNo(splitCodeEntity.getBatchNo())
|
|
|
|
|
.produceDate(splitCodeEntity.getProduceDate())
|
|
|
|
|
.expireDate(splitCodeEntity.getExpireDate())
|
|
|
|
|
.supId(splitCodeEntity.getSupId())
|
|
|
|
|
.count(splitCodeEntity.getRemainCount())
|
|
|
|
|
.reCount(splitCodeEntity.getRemainCount())
|
|
|
|
|
.createTime(new Date())
|
|
|
|
|
.updateTime(new Date())
|
|
|
|
|
.remark("").build();
|
|
|
|
|
IoSplitDesOrderDetail splitDesOrderDetail = IoSplitDesOrderDetail.builder().id(IdUtil.getSnowflakeNextId()).workPlaceCode(collectOrder.getWorkPlaceCode()).orderIdFk(collectOrder.getBillNo()).relId(splitCodeEntity.getRelId()).batchNo(splitCodeEntity.getBatchNo()).produceDate(splitCodeEntity.getProduceDate()).expireDate(splitCodeEntity.getExpireDate()).supId(splitCodeEntity.getSupId()).count(splitCodeEntity.getRemainCount()).reCount(splitCodeEntity.getRemainCount()).createTime(new Date()).updateTime(new Date()).remark("").build();
|
|
|
|
|
splitDesOrderDetails.add(splitDesOrderDetail);
|
|
|
|
|
removeByIds.add(splitCodeEntity.getId());
|
|
|
|
|
});
|
|
|
|
|