拆零逻辑修改

workplace
yewj 10 months ago
parent 296fe0a93e
commit 5e2638f4ca

@ -19,6 +19,7 @@ import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.collect.IoCollectOrderCodeAuto;
import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.exception.JsonException;
@ -33,6 +34,7 @@ import com.glxp.api.service.auth.SysWorkplaceService;
import com.glxp.api.service.basic.BasicCollectBustypeService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoSplitCodeService;
import com.glxp.api.service.thrsys.IThrBusTypeOriginService;
import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.GennerOrderUtils;
@ -207,6 +209,13 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse);
}
if (actCount > IntUtil.value(collectOrderBiz.getCount())) {
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
if (needCount > 0) {
if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) {
throw new JsonException(502, "当前拆零数量还有剩余,是否继续扫码?");
}
}
throw new JsonException(500, "扫码数量超出!");
}
collectOrderBiz.setScanCount(count);
@ -224,6 +233,12 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse);
}
if (actCount1 > collectOrderBiz.getCount()) {
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
if (needCount > 0) {
if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) {
throw new JsonException(502, "当前拆零数量还有剩余,是否继续扫码?");
}
}
throw new JsonException(502, "扫码数量超出!");
}
collectOrderBiz.setScanCount(count1);
@ -252,12 +267,6 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
if (collectOrder == null)
throw new JsonException(500, "单据不存在!");
//3.校验该UDI码是否已经出库是否在预出库队列
// Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
// if (!b1) {
// return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
// }
//按单不校验三期
collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
switch (sysWorkplaceDocumentEntity.getCheckInsert()) {
@ -285,6 +294,12 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse);
}
if (actCount > IntUtil.value(collectOrderBiz.getCount())) {
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
if (needCount > 0) {
if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) {
throw new JsonException(502, "当前拆零数量还有剩余,是否继续扫码?");
}
}
throw new JsonException(500, "扫码数量超出!");
}
collectOrderBiz.setScanCount(count);
@ -304,6 +319,12 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + calCountUtil.getUseActCount(udiRelevanceResponse);
}
if (actCount1 > collectOrderBiz.getCount()) {
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
if (needCount > 0) {
if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) {
throw new JsonException(502, "当前拆零数量还有剩余,是否继续扫码?");
}
}
throw new JsonException(502, "扫码数量超出!");
}
collectOrderBiz.setScanCount(count1);
@ -359,6 +380,21 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
return collectOrder;
}
@Resource
IoSplitCodeService splitCodeService;
/**
*
*/
public Boolean vailInSplit(IoCollectOrderBiz collectOrderBiz, Long workPlaceCode, Integer needCount) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), workPlaceCode);
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
if (IntUtil.value(ioSplitCodeEntity.getRemainCount()) > needCount) {
return true;
}
}
return false;
}
public IoCollectOrderBiz scanGenOrder(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity, IoCollectOrder collectOrder) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {

@ -389,7 +389,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount()));
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.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInvService.updateById(splitFifoInv);
@ -432,7 +433,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (IntUtil.value(udiRelevanceEntity.getUseLeverCount()) > -unTagCount) {
Optional<IoCollectOrderCodeMan> firstMatch = collectOrderCodeMEN.stream()
.filter(item -> !IntUtil.value(item.getRemoveFlag()))
.filter(item -> IntUtil.value(item.getRemoveFlag()))
.findFirst();
if (firstMatch.isPresent()) {
IoCollectOrderCodeMan result = firstMatch.get();
@ -498,7 +499,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
/**
*
*
@ -510,11 +510,16 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
splitFifoCodeService.findByRelId(collectOrder.getWorkPlaceCode(), collectOrder.getBusType(),
collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo());
int total = splitFifoCodeEntities.stream()
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
.sum();
//todo 拆零表里取数据
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId()
, collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
int splitTotal = splitCodeEntities.stream()
.mapToInt(IoSplitCodeEntity::getRemainCount)
.sum();
total = total + splitTotal;
if (total >= IntUtil.value(collectOrderBiz.getCount())) {
collectOrderBiz.setAutoTagStatus(2);
} else if (total > 0) {
@ -522,7 +527,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
} else
collectOrderBiz.setAutoTagStatus(1);
}
collectOrderBizService.updateBatchById(collectOrderBizs);
}

Loading…
Cancel
Save