diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 653600525..eb838fa11 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1193,9 +1193,9 @@ public class IoCodeTempController extends BaseController { //计算实际数量 if (bussinessTypeEntity.isUse()) { - codeEnttity.setReCount(codeEnttity.getMyCount() + udiCalCountUtil.getUseActCount(udiRelevanceResponses.get(0))); + codeEnttity.setReCount(codeEnttity.getMyReCount() + udiCalCountUtil.getUseActCount(udiRelevanceResponses.get(0))); } else { - codeEnttity.setReCount(codeEnttity.getMyCount() + udiCalCountUtil.getCirActCount(udiRelevanceResponses.get(0))); + codeEnttity.setReCount(codeEnttity.getMyReCount() + udiCalCountUtil.getCirActCount(udiRelevanceResponses.get(0))); } } else if (udiRelevanceResponses.size() == 0) { if (unitFk == null) diff --git a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java index e824c7229..33c6e478e 100644 --- a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java @@ -117,7 +117,7 @@ public class SysWorkplaceDocumentEntity { private Integer orderCirType; /** - * 管理设备:: 1:是; 2:否 + * 出入库方式:: 1:是; 2:否 */ @TableField(value = "inoutType") private Integer inoutType; @@ -135,7 +135,11 @@ public class SysWorkplaceDocumentEntity { private Integer workplaceType; - + /** + * 管理设备(是否自动赋码):: 1:是; 0:否 + */ + @TableField(value = "autoTag") + private Integer autoTag; } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrder.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrder.java index 19645a33a..2f8ce1bfc 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrder.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrder.java @@ -127,7 +127,7 @@ public class IoCollectOrder implements Serializable { @ApiModelProperty(value = "更新人") private Long updateUser; /** - * 赋码状态 0:原始单据未处理,1:已分配工位待处理;2:处理中;3:已完成;4:处理异常,-1:草稿,挂起状态 + * 赋码状态 0:原始单据未处理,1:已分配工位待处理;2:处理中;3:已完成;4:处理异常,-1:草稿,挂起状态,5:库存不足 */ @TableField(value = "tagStatus") private Integer tagStatus; diff --git a/src/main/java/com/glxp/api/res/basic/SysWorkplaceDocumentResponse.java b/src/main/java/com/glxp/api/res/basic/SysWorkplaceDocumentResponse.java index b4bc9edf7..b63f0667f 100644 --- a/src/main/java/com/glxp/api/res/basic/SysWorkplaceDocumentResponse.java +++ b/src/main/java/com/glxp/api/res/basic/SysWorkplaceDocumentResponse.java @@ -127,6 +127,7 @@ public class SysWorkplaceDocumentResponse { private String innerBusName; private String outBusName; private String thrBusName; + private Integer autoTag; public String getThrBusName() { if (StrUtil.isNotEmpty(innerBusName)) diff --git a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java index 0d93a0959..c0e8aab23 100644 --- a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java +++ b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java @@ -124,4 +124,6 @@ public class CollectOrderBizResponse { private String finishUdiCode; private String bzgg; + + private Integer autoResCount; } diff --git a/src/main/java/com/glxp/api/res/inout/IoSplitInvResponse.java b/src/main/java/com/glxp/api/res/inout/IoSplitInvResponse.java index 3971544d9..df04ec6c1 100644 --- a/src/main/java/com/glxp/api/res/inout/IoSplitInvResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoSplitInvResponse.java @@ -130,6 +130,7 @@ public class IoSplitInvResponse { private String nameCode; private Integer remindState; private String busName; + private Integer availableCount; } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index 0ba7650eb..a0518eb16 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -213,9 +213,6 @@ public class IoCollectOrderService extends ServiceImpl().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { continue; } -// BasicCollectBustypeEntity collectBustypeEntity = collectBustypeService.findByAddr(ioOrderEntity.getAction()); -// if (collectBustypeEntity == null) -// continue; SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(ioOrderEntity.getAction()); if (sysWorkplaceDocumentEntity == null) continue; @@ -263,8 +260,7 @@ public class IoCollectOrderService extends ServiceImpl orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); List collectOrderBizs = new ArrayList<>(); @@ -296,10 +292,15 @@ public class IoCollectOrderService extends ServiceImpl sysWorkplaceMap = new HashMap<>(); // for (SysWorkplaceResponse sysWorkplace : allWorksList) { @@ -373,7 +374,8 @@ public class IoCollectOrderService extends ServiceImpl basicSkPrescribeItemEntities = basicSkPrescirbeDetailService.findByPrescribeNum(basicSkPrescribeEntity.getCode()); List collectOrderBizs = new ArrayList<>(); for (BasicSkPrescribeItemEntity bizEntity : basicSkPrescribeItemEntities) { @@ -400,11 +402,16 @@ public class IoCollectOrderService extends ServiceImpl sysWorkplaceMap = new HashMap<>(); // for (SysWorkplaceResponse sysWorkplace : allWorksList) { // sysWorkplaceMap.put(sysWorkplace.getId(), sysWorkplace); @@ -480,7 +487,7 @@ public class IoCollectOrderService extends ServiceImpl codeList = codeService.findByOrderId(orderEntity.getBillNo()); fifoInvService.insertInv(codeList, orderEntity.getWorkPlaceCode()); + //更新待处理库存不足单据 + splitFifoCodeService.updateAllInvAlert(orderEntity.getWorkPlaceCode()); } else if (orderEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { //拆零预出库退回 List codeList = codeService.findByOrderId(orderEntity.getBillNo()); diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index 80c5c2ae4..4c97e3f52 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -13,6 +13,7 @@ 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.inout.IoSplitFifoCodeEntity; +import com.glxp.api.entity.inout.IoSplitFifoInv; import com.glxp.api.req.inout.IoSplitCodeRequest; import com.glxp.api.service.basic.BasicSkPrescribeDiService; import com.glxp.api.service.basic.BasicSkPrescribeService; @@ -271,6 +272,8 @@ public class IoSplitCodeService extends ServiceImpl= needCount) { break; } diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java index 6559a0b98..dff928515 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java @@ -12,6 +12,7 @@ import com.glxp.api.dao.inout.IoSplitFifoCodeMapper; import com.glxp.api.dao.inout.IoSplitFifoInvMapper; import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; import com.glxp.api.entity.inout.IoSplitFifoInv; import com.glxp.api.exception.JsonException; @@ -25,6 +26,7 @@ import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.inout.IoSplitCodeResponse; import com.glxp.api.res.inout.IoSplitInvResponse; import com.glxp.api.service.auth.SysWorkplaceService; +import com.glxp.api.util.IntUtil; import io.swagger.models.auth.In; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -111,16 +113,16 @@ public class IoSplitFifoCodeService extends ServiceImpl { Boolean enableRemind = item.getEnableRemind(); - if (enableRemind){ + if (enableRemind) { Integer reCount = item.getReCount(); Integer invRemindCount = item.getInvRemindCount(); if (reCount < invRemindCount) { String cpmctymc = item.getCpmctymc(); String batchNo = item.getBatchNo(); if (StrUtil.isBlank(batchNo)) { - msg[0] = msg[0] + cpmctymc + "存量为:" + reCount+";"; + msg[0] = msg[0] + cpmctymc + "存量为:" + reCount + ";"; } else { - msg[0] = msg[0] + cpmctymc + "[" + batchNo + "]存量为:" + reCount+";"; + msg[0] = msg[0] + cpmctymc + "[" + batchNo + "]存量为:" + reCount + ";"; } } } @@ -159,8 +161,6 @@ public class IoSplitFifoCodeService extends ServiceImpl> splitInvMap = ioSplitInvResponses.stream().collect(Collectors.groupingBy(IoSplitInvResponse::getRelId)); if (CollUtil.isNotEmpty(bizList)) { - if (lockType == 1){ + if (lockType == 1) { //自动分配 工位存量、更新splitMap、更新 bizList上的 缺少存量数 Integer invAlert = autoAllocationBillNoInv(splitInvMap, bizList); collectOrderMapper.updateInvAlert(order.getId(), invAlert); - if (invAlert == 2){ + if (invAlert == 2) { return false; - }else { + } else { return true; } - }else if (lockType == 2){ + } else if (lockType == 2) { unAutoAllocationBillNoInv(splitInvMap, bizList); collectOrderMapper.updateInvAlert(order.getId(), 3); } @@ -219,7 +219,6 @@ public class IoSplitFifoCodeService extends ServiceImpl> splitMap, List bizList) { Integer invAlert = 1; @@ -316,27 +314,33 @@ public class IoSplitFifoCodeService extends ServiceImpl ioSplitInvResponses = splitMap.get(relId); List newioSplitCodeResponses = new ArrayList<>(ioSplitInvResponses.size()); - if (CollUtil.isNotEmpty(newioSplitCodeResponses)) { - for (int j = 0; j < newioSplitCodeResponses.size(); j++) { - IoSplitInvResponse ioSplit = newioSplitCodeResponses.get(j); + if (CollUtil.isNotEmpty(ioSplitInvResponses)) { + for (int j = 0; j < ioSplitInvResponses.size(); j++) { + IoSplitInvResponse ioSplit = ioSplitInvResponses.get(j); Integer reCount = ioSplit.getReCount(); Integer lockCount = ioSplit.getLockCount(); - Integer totalCount = reCount-lockCount;//剩余可分配数量 + Integer totalCount = reCount - lockCount;//剩余可分配数量 if ((StrUtil.isBlank(batchNo) || batchNo.equals(ioSplit.getBatchNo())) && count > 0 && totalCount > 0) { Integer resCount = totalCount - count;//预分配后剩余 工位存量 if (resCount >= 0) {//足够分配 - count = 0; - ioSplit.setLockCount( lockCount + count ); + ioSplit.setLockCount(lockCount + count); IoSplitFifoInv bean = new IoSplitFifoInv(); - BeanUtils.copyProperties(ioSplit,bean); + ioSplit.setAvailableCount(ioSplit.getInCount() - ioSplit.getOutCount() - ioSplit.getLockCount()); + BeanUtils.copyProperties(ioSplit, bean); updateIoSplitFifoInv.add(bean); + count = 0; } else {//不够分配 count = -resCount; } @@ -353,11 +357,9 @@ public class IoSplitFifoCodeService extends ServiceImpl ioSplitInvResponses = splitMap.get(relId); List newioSplitCodeResponses = new ArrayList<>(ioSplitInvResponses.size()); - if (CollUtil.isNotEmpty(newioSplitCodeResponses)) { - for (int j = 0; j < newioSplitCodeResponses.size(); j++) { - IoSplitInvResponse ioSplit = newioSplitCodeResponses.get(j); + if (CollUtil.isNotEmpty(ioSplitInvResponses)) { + for (int j = 0; j < ioSplitInvResponses.size(); j++) { + IoSplitInvResponse ioSplit = ioSplitInvResponses.get(j); Integer lockCount = ioSplit.getLockCount(); - if ((StrUtil.isBlank(batchNo) || batchNo.equals(ioSplit.getBatchNo())) && count > 0 ) { - ioSplit.setLockCount( lockCount - count ); - IoSplitFifoInv bean = new IoSplitFifoInv(); - BeanUtils.copyProperties(ioSplit,bean); - updateIoSplitFifoInv.add(bean); - } + if ((StrUtil.isBlank(batchNo) || batchNo.equals(ioSplit.getBatchNo())) && count > 0) { + ioSplit.setLockCount(lockCount - count); + ioSplit.setAvailableCount(ioSplit.getInCount() - ioSplit.getOutCount() - ioSplit.getLockCount()); + IoSplitFifoInv bean = new IoSplitFifoInv(); + BeanUtils.copyProperties(ioSplit, bean); + updateIoSplitFifoInv.add(bean); + } newioSplitCodeResponses.add(ioSplit); } splitMap.put(relId, newioSplitCodeResponses); @@ -394,9 +397,29 @@ public class IoSplitFifoCodeService extends ServiceImpl collectOrderList = + collectOrderMapper.selectList(new LambdaQueryWrapper() + .eq(IoCollectOrder::getWorkPlaceCode, workPlaceCode) + .eq(IoCollectOrder::getInvAlert, 2) + ); + if (CollUtil.isNotEmpty(collectOrderList)) { + for (IoCollectOrder ioCollectOrder : collectOrderList) { + lockInventoryByOrder(ioCollectOrder.getBillNo(), 1); + } + } + } + + } diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java index 7f3c75c35..9db883c59 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java @@ -121,6 +121,14 @@ public class IoSplitFifoInvService extends ServiceImpl { @@ -129,9 +137,20 @@ public class IoSplitFifoInvService extends ServiceImpl() + .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")); + + return splitFifoInv; + } + /** * 库存查询 * 若开启了库存预警,需要在库存上有一个状态显示预警状态 1:正常;2:低库存;3:负库存 + * * @param ioSplitFifoInvRequest * @return */ @@ -144,39 +163,40 @@ public class IoSplitFifoInvService extends ServiceImpl ioSplitInvResponses = this.baseMapper.filterList(ioSplitFifoInvRequest); - if(CollUtil.isNotEmpty(ioSplitInvResponses)){ - ioSplitInvResponses.forEach( t ->{ - if(t.getEnableRemind()){ + if (CollUtil.isNotEmpty(ioSplitInvResponses)) { + ioSplitInvResponses.forEach(t -> { + if (t.getEnableRemind()) { int count = t.getReCount() - t.getInvRemindCount(); - if(count >= 0){ + if (count >= 0) { t.setRemindState(1); - }else{ + } else { t.setRemindState(2); } - }else { + } else { t.setRemindState(1); } }); return ioSplitInvResponses; - }else{ + } else { return Collections.emptyList(); } } /** * 库存预警设置 + * * @param ioSplitFifoInvRequest */ @Transactional(rollbackFor = Exception.class) public void remindSet(IoSplitFifoInvRequest ioSplitFifoInvRequest) { - Assert.notNull(ioSplitFifoInvRequest.getId(),"Id不能为空"); + Assert.notNull(ioSplitFifoInvRequest.getId(), "Id不能为空"); IoSplitFifoInv old = this.getById(ioSplitFifoInvRequest.getId()); - Assert.notNull(old,"不存在该库存预警设置"); + 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()) + .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(); } diff --git a/src/main/resources/mybatis/mapper/basic/SysWorkplaceDocumentDao.xml b/src/main/resources/mybatis/mapper/basic/SysWorkplaceDocumentDao.xml index 8b5cd5813..94893d719 100644 --- a/src/main/resources/mybatis/mapper/basic/SysWorkplaceDocumentDao.xml +++ b/src/main/resources/mybatis/mapper/basic/SysWorkplaceDocumentDao.xml @@ -3,9 +3,9 @@