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 83ca997c3..facf33ee0 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1070,7 +1070,7 @@ public class IoCodeTempController extends BaseController { BeanUtils.copyProperties(codeEnttity, ioCodeEntity); String supId = transInoutService.checkInvExitSup(ioCodeEntity); if (supId == null) { - supId = transInoutService.checkExitSup(codeEnttity.getRelId()); + supId = transInoutService.checkExitSup(codeEnttity); } if (supId == null) { codeEnttity.setSupId(null); diff --git a/src/main/java/com/glxp/api/dao/inv/InvProductDao.java b/src/main/java/com/glxp/api/dao/inv/InvProductDao.java index c0bf72cad..f200caa1c 100644 --- a/src/main/java/com/glxp/api/dao/inv/InvProductDao.java +++ b/src/main/java/com/glxp/api/dao/inv/InvProductDao.java @@ -92,4 +92,12 @@ public interface InvProductDao extends BaseMapperPlus filterReCount(Long relId, String batchNo, List unitFks); } diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index 6f3a06d2b..96ded973e 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -7,6 +7,7 @@ import com.glxp.api.service.BasicSkPrescribeDiService; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.impl.InvProductDetailService; +import com.glxp.api.service.inv.impl.InvProductService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import cn.hutool.core.collection.CollUtil; @@ -76,6 +77,8 @@ public class IoAddInoutService { private IoOrderDetailCodeDao orderDetailCodeDao; @Resource InvWarehouseService invWarehouseService; + @Resource + InvProductService invProductService; //新增扫码单据处理 public void dealProcess(IoOrderEntity orderEntity) { @@ -652,7 +655,10 @@ public class IoAddInoutService { //校验条码关联供应商 - public String checkExitSup(Long relId) { + public String checkExitSup(IoCodeTempEntity ioCodeTempEntity) { + Long relId = ioCodeTempEntity.getRelId(); + String batchNo = ioCodeTempEntity.getBatchNo(); + FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest(); filterCompanyProductRelevanceRequest.setUdiRlIdFk(relId + ""); List companyProductRelevanceEntities = udiRlSupService.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest); @@ -660,22 +666,32 @@ public class IoAddInoutService { UdiRlSupEntity udiRlSupEntity = companyProductRelevanceEntities.get(0); return udiRlSupEntity.getUnitFk(); } else if (companyProductRelevanceEntities != null && companyProductRelevanceEntities.size() > 1) { + //携带供应商号列表 + List unitFks = new ArrayList<>(companyProductRelevanceEntities.size()); String unitFk = companyProductRelevanceEntities.get(0).getUnitFk(); boolean isMuti = false; for (UdiRlSupEntity udiRlSupEntity : companyProductRelevanceEntities) { + unitFks.add(udiRlSupEntity.getUnitFk()); if (!unitFk.equals(udiRlSupEntity.getUnitFk())) { isMuti = true; break; } } - if (isMuti) + if (isMuti){ + //过滤掉库存数量为0的供应商 + if (relId != null && StrUtil.isNotEmpty(batchNo)){ + unitFks = invProductService.filterReCount(relId,batchNo,unitFks); + if (unitFks!=null && unitFks.size() == 1){ + return unitFks.get(0); + } + } return "MUTI"; //绑定多个供应商 - else - return unitFk; + }else return unitFk; } return null; } + public String checkInvExitSup(IoCodeEntity codeEnttity) { String supId = checkNorInv(codeEnttity); if (supId == null) { diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvProductService.java b/src/main/java/com/glxp/api/service/inv/impl/InvProductService.java index 7f228d4d0..2fc4ed99e 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvProductService.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductService.java @@ -174,4 +174,15 @@ public class InvProductService extends ServiceImpl filterReCount(Long relId, String batchNo, List unitFks){ + return invProductDao.filterReCount(relId,batchNo,unitFks); + } + } diff --git a/src/main/resources/mybatis/mapper/inv/invProductDao.xml b/src/main/resources/mybatis/mapper/inv/invProductDao.xml index e084b45d6..8c3b9db21 100644 --- a/src/main/resources/mybatis/mapper/inv/invProductDao.xml +++ b/src/main/resources/mybatis/mapper/inv/invProductDao.xml @@ -533,4 +533,24 @@ + +