From 263e5d0dacc30b8b3c19ff24d68a1939d7876879 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 18 Apr 2023 16:58:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=84=E5=94=AE=E5=BA=93=E5=AD=98=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=EF=BC=8C=E4=BB=93=E5=BA=93=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 35 +++++++++++++++++-- .../basic/BasicBussinessTypeEntity.java | 2 +- .../inv/InvPreProductDetailService.java | 5 +++ .../impl/InvPreProductDetailServiceImpl.java | 29 +++++++++++++++ .../resources/mybatis/mapper/auth/DeptDao.xml | 2 +- 5 files changed, 68 insertions(+), 5 deletions(-) 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 f07945a0..2c3cefc7 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -22,6 +22,7 @@ import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.InvPreInProductDetailEntity; +import com.glxp.api.entity.inv.InvPreProductDetailEntity; import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.req.basic.CompanyProductRelevanceRequest; @@ -36,6 +37,7 @@ import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.*; +import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreinDetailService; import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.service.inv.InvProductDetailService; @@ -90,6 +92,8 @@ public class IoCodeTempController extends BaseController { @Resource InvPreinProductDetailService invPreinProductDetailService; @Resource + InvPreProductDetailService invPreProductDetailService; + @Resource InvProductDetailService invProductDetailService; @Resource @@ -437,7 +441,7 @@ public class IoCodeTempController extends BaseController { //失效期提醒 SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip"); long recent = Long.parseLong(recentParamConfigEntity.getParamValue()); - if (bussinessTypeEntity.getCheckVailDate()==1 && recent > 0 && !addOrderRequest.isIgnoreRecentExpire()) { + if (bussinessTypeEntity.getCheckVailDate() == 1 && recent > 0 && !addOrderRequest.isIgnoreRecentExpire()) { if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { String expireDate = "20" + udiEntity.getExpireDate(); long expireTime = DateUtil.parseDateExpire(expireDate); @@ -527,9 +531,34 @@ public class IoCodeTempController extends BaseController { } - // 是否检验寄售库存 - + if (bussinessTypeEntity.isAdvancePreIn()) { + int preInCount = invPreProductDetailService.findCountByCode(code); + InvPreProductDetailEntity invPreinDetailEntity = invPreProductDetailService.findUseOneByCode(code); + if (preInCount <= 0) { + return ResultVOUtils.error(500, "寄售库存数量不足!"); + } else { + if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(addOrderRequest.getBatchNo()) + && !invPreinDetailEntity.getBatchNo().equals(addOrderRequest.getBatchNo())) { + return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); + } + if (StrUtil.isNotEmpty(orderId)) {//非首次添加 + if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 + //无序列号,则可能存在多个预验收入库单 + IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code); + if (codeTempEntity != null) { + if (preInCount < (codeTempEntity.getMyCount() + 1)) { + return ResultVOUtils.error(500, "超出寄售存数量"); + } + } + } else { + if (preInCount < 1) { + return ResultVOUtils.error(500, "寄售库存数量不足"); + } + } + } + } + } if (addOrderRequest.getFromCorp() == null) { diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java index 7508133b..a57ba74e 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -407,5 +407,5 @@ public class BasicBussinessTypeEntity { // 寄售使用禁止无库存出库 @TableField(value = "advancePreIn") - private Integer advancePreIn; + private boolean advancePreIn; } diff --git a/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java index 16581fda..258f161e 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inv; +import com.glxp.api.entity.inv.InvPreInProductDetailEntity; import com.glxp.api.entity.inv.InvPreProductDetailEntity; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; @@ -49,5 +50,9 @@ public interface InvPreProductDetailService { */ boolean deleteInvPreProductDetail(FilterInvProductDetailRequest detailRequest); + int findCountByCode(String code); + + InvPreProductDetailEntity findUseOneByCode(String code); + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java index 5329d5f7..83208de7 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.dao.basic.BasicBussinessTypeDao; import com.glxp.api.dao.basic.UdiProductDao; @@ -11,6 +12,7 @@ import com.glxp.api.dao.inout.IoOrderDao; import com.glxp.api.dao.inv.InvPreProductDetailDao; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.inv.InvPreInProductDetailEntity; import com.glxp.api.entity.inv.InvPreProductDetailEntity; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; @@ -132,4 +134,31 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic return invPreProductDetailDao.deleteInvPreProductDetail(detailRequest); } + + @Override + public int findCountByCode(String code) { + List invPreinDetailEntities = invPreProductDetailDao.selectList(new QueryWrapper().eq("code", code)); + int count = 0; + if (CollUtil.isNotEmpty(invPreinDetailEntities)) { + for (InvPreProductDetailEntity invProductDetailEntity : invPreinDetailEntities) { + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) + count = count + invProductDetailEntity.getReCount(); + else { + count = count - invProductDetailEntity.getReCount(); + } + } + } + return count; + } + + @Override + public InvPreProductDetailEntity findUseOneByCode(String code) { + List invPreinDetailEntities = invPreProductDetailDao.selectList(new QueryWrapper().eq("code", code) + .eq("status", ConstantStatus.INVIN_IN).last("limit 1")); + if (CollUtil.isNotEmpty(invPreinDetailEntities)) { + return invPreinDetailEntities.get(0); + } + return null; + } + } diff --git a/src/main/resources/mybatis/mapper/auth/DeptDao.xml b/src/main/resources/mybatis/mapper/auth/DeptDao.xml index 3fbaaef2..5c14ac9c 100644 --- a/src/main/resources/mybatis/mapper/auth/DeptDao.xml +++ b/src/main/resources/mybatis/mapper/auth/DeptDao.xml @@ -72,7 +72,7 @@ AND pcode = #{pcode} - + AND auth_warehouse_user.userId = #{userId}