From 2a78301791c91a5946fb49f9af5c9687adfd8f82 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Wed, 22 Mar 2023 09:38:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/thrsys/ThrProductsAddDiDao.xml | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml index 8f919f9b..7e9aedb5 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml @@ -115,11 +115,29 @@ AND tdi.customerId = #{customerId} - AND ( tdi.sptm = #{code} OR p.nameCode = #{code} OR tdi.ybbm=#{code}) + AND ( tdi.sptm = #{code} OR code = #{code} OR tdi.ybbm=#{code}) AND tdi.uuid = #{uuid} + + AND tdi.name = #{name} + + + AND tdi.spec = #{spec} + + + AND tdi.status = #{checkStatus} + + + AND tdi.customerId = #{customerId} + + + + + + + order by tdi.createTime DESC @@ -166,4 +184,4 @@ - \ No newline at end of file + From 1d506f43ff45ddcf016586ede08bbcb962616f02 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Wed, 22 Mar 2023 11:09:22 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=A2=84=E9=AA=8C=E6=94=B6=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/constant/ConstantStatus.java | 8 +++- .../inout/IoCodeLostController.java | 6 --- .../inout/IoCodeTempController.java | 6 +-- .../inv/InvPreinOrderController.java | 4 +- .../api/entity/inout/IoCodeLostEntity.java | 4 ++ .../glxp/api/entity/inout/IoOrderEntity.java | 2 +- .../api/entity/inv/InvPreinDetailEntity.java | 13 ++++++ .../req/inv/FilterInvPreinDetailRequest.java | 13 ++++++ .../api/res/inv/InvPreinDetailResponse.java | 12 +++++- .../service/inout/IoCheckInoutService.java | 17 +++++--- .../api/service/inout/IoGenInvService.java | 3 ++ .../service/inv/InvPreinDetailService.java | 9 ++++- .../inv/impl/InvPreinDetailServiceImpl.java | 34 ++++++++++++++-- .../mybatis/mapper/inv/InvPreinDetailDao.xml | 40 +++++++++++++++++-- src/main/resources/schemas/schema_v2.1.sql | 9 ++++- 15 files changed, 151 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index d9b5d021..7cc8a386 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -81,7 +81,6 @@ public class ConstantStatus { public static final Integer BUS_TYPE_INVOICE = 4; //退货单单据类型 - public static final Integer ACTION_TYPE_NORMAL = 1; //带票 public static final Integer ACTION_TYPE_PREIN = 2; //预验收 public static final Integer ACTION_TYPE_ADVANCE = 3; //寄售 @@ -270,4 +269,11 @@ public class ConstantStatus { public static final int PRINT_SUCCESS = 1; //已打印 + //预验收库存状态 1:在库,2:已退回;3.已使用 + + public static final int INVIN_IN = 1; + public static final int INVIN_BACK = 2; + public static final int INVIN_USE = 3; + + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeLostController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeLostController.java index dc95649b..0ca40054 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeLostController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeLostController.java @@ -1,18 +1,13 @@ package com.glxp.api.controller.inout; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; -import com.glxp.api.constant.ConstantStatus; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.inout.IoCodeLostEntity; import com.glxp.api.entity.inout.IoCodeTempEntity; -import com.glxp.api.req.inout.FilterOrderDetailResultRequest; -import com.glxp.api.res.inout.AcceptOrderResponse; -import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.service.inout.IoCodeLostService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -21,7 +16,6 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Date; -import java.util.List; @RestController public class IoCodeLostController extends BaseController { 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 de39dc1b..426c8112 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -448,7 +448,7 @@ public class IoCodeTempController extends BaseController { //校验预验收是否已存在 if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) { - List invProductDetailEntities = invPreinDetailService.findByCode(code); + List invProductDetailEntities = invPreinDetailService.findUseByCode(code); if (CollUtil.isNotEmpty(invProductDetailEntities)) { return ResultVOUtils.error(500, "预验收库存已存在此UDI码,请检查后重试!"); } @@ -457,7 +457,7 @@ public class IoCodeTempController extends BaseController { //校验预验收库存是否已存在 if (bussinessTypeEntity.isScanPreIn()) { - InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findOneByCode(code); + InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findUseOneByCode(code); if (invProductDetailEntity == null) { return ResultVOUtils.error(500, "预验收库存未存在此产品!"); } else { @@ -469,7 +469,7 @@ public class IoCodeTempController extends BaseController { if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 //无序列号,则可能存在多个预验收入库单 IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code); - List invPreinDetailEntities = invPreinDetailService.findByCode(code); + List invPreinDetailEntities = invPreinDetailService.findUseByCode(code); int count = 0; for (InvPreinDetailEntity temp : invPreinDetailEntities) { count = count + temp.getCount(); diff --git a/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java b/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java index 1325588a..9214c9a9 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java @@ -77,7 +77,7 @@ public class InvPreinOrderController extends BaseController { @AuthRuleAnnotation("") @GetMapping("spms/prein/inv/products/getDetaiByCode") public BaseResponse getDetaiByCode(FilterInvProductDetailRequest filterInvProductDetailRequest) { - InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findOneByCode(filterInvProductDetailRequest.getCode()); + InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findUseOneByCode(filterInvProductDetailRequest.getCode()); if (invProductDetailEntity == null) { return ResultVOUtils.error(500, "预验收库存未存在此产品!"); } else { @@ -88,7 +88,7 @@ public class InvPreinOrderController extends BaseController { UdiEntity udiEntity = FilterUdiUtils.getUdi(filterInvProductDetailRequest.getCode()); if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 //无序列号,则可能存在多个预验收入库单 - List invPreinDetailEntities = invPreinDetailService.findByCode(filterInvProductDetailRequest.getCode()); + List invPreinDetailEntities = invPreinDetailService.findUseByCode(filterInvProductDetailRequest.getCode()); int count = 0; for (InvPreinDetailEntity temp : invPreinDetailEntities) { count = count + temp.getCount(); diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeLostEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeLostEntity.java index 964590fb..bcd1a46a 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeLostEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeLostEntity.java @@ -72,6 +72,10 @@ public class IoCodeLostEntity { @TableField(value = "remark") private String remark; + + @TableField(value = "nameCode") + private String nameCode; + public static final String COL_ID = "id"; public static final String COL_CODE = "code"; diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java index e2ec5ebf..9ba457a3 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -223,7 +223,7 @@ public class IoOrderEntity { @TableField(value = "processStatus") private Integer processStatus; //退货单据处理状态 - @TableField(value = "processStatus") + @TableField(value = "inCodeStatus") private int inCodeStatus; //内部码生成状态 } diff --git a/src/main/java/com/glxp/api/entity/inv/InvPreinDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPreinDetailEntity.java index 6d9ee65c..52c5f353 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPreinDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPreinDetailEntity.java @@ -60,6 +60,19 @@ public class InvPreinDetailEntity { @TableField(value = "relId") private Long relId; + /** + * 扫码数量 + */ + @TableField(value = "`originCount`") + private int originCount; + + /** + * 实际数量 + */ + @TableField(value = "originReCount") + private int originReCount; + + /** * 扫码数量 */ diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvPreinDetailRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvPreinDetailRequest.java index 29a6396b..67b722ef 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterInvPreinDetailRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterInvPreinDetailRequest.java @@ -8,4 +8,17 @@ public class FilterInvPreinDetailRequest extends ListPageRequest { private String orderId; private String code; + private String productName; + private String ggxh; + private String manufactory; + private String zczbhhzbapzbh; + private String auditTime; + private String billNo; + private String invCode; + private String batchNo; + private String produceDate; + private String expireDate; + private String startAduditTime; + private String endAduditTime; + private String nameCode; } diff --git a/src/main/java/com/glxp/api/res/inv/InvPreinDetailResponse.java b/src/main/java/com/glxp/api/res/inv/InvPreinDetailResponse.java index a765fc1c..9b60912f 100644 --- a/src/main/java/com/glxp/api/res/inv/InvPreinDetailResponse.java +++ b/src/main/java/com/glxp/api/res/inv/InvPreinDetailResponse.java @@ -56,11 +56,21 @@ public class InvPreinDetailResponse { */ private int count; + + private Integer originReCount; + /** * 实际数量 */ private int reCount; - + private Integer status; private String productName; + private String ggxh; + private String manufactory; + private String zczbhhzbapzbh; + private String auditTime; + private String billNo; + private String invName; + } diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 6b4c9088..00e7fead 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -657,8 +657,12 @@ public class IoCheckInoutService { for (IoCodeEntity warehouseEntity : codeList) { List invProductDetailEntities = invPreinDetailService.findByCode(warehouseEntity.getCode()); if (invProductDetailEntities.size() > 0) { - for (InvPreinDetailEntity invPreinDetailEntity : invProductDetailEntities) + for (InvPreinDetailEntity invPreinDetailEntity : invProductDetailEntities) { preInOrder.put(invPreinDetailEntity.getOrderId(), invPreinDetailEntity.getOrderId()); + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_USE); + invPreinDetailService.update(invPreinDetailEntity); + } + } } if (preInOrder.size() > 0) { @@ -673,7 +677,8 @@ public class IoCheckInoutService { BasicBussinessTypeEntity preBusType = basicBussinessTypeService.findByAction(preInEntity.getAction()); //预验收不删除单号,方便后续查询 if (preBusType.isPreInBack()) { //预验收如果带回,则清空相关预验收库存; - invPreinDetailService.deleteByOrderId(preInEntity.getBillNo()); + invPreinDetailService.updateBack(preInEntity.getBillNo()); +// invPreinDetailService.deleteByOrderId(preInEntity.getBillNo()); } else { //预验收如果不带回,则清除已出库相关库存 for (IoCodeEntity codeEntity : codeList) { if (StrUtil.isEmpty(codeEntity.getSerialNo())) { @@ -688,15 +693,17 @@ public class IoCheckInoutService { if (count >= 0) { isBreak = true; if (count == 0) { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); } else { + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN); invPreinDetailEntity.setCount(count); invPreinDetailService.update(invPreinDetailEntity); } int reCount = invPreinDetailEntity.getReCount() - codeEntity.getMyReCount(); if (reCount == 0) { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); } else { + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN); invPreinDetailEntity.setReCount(reCount); invPreinDetailService.update(invPreinDetailEntity); } @@ -705,7 +712,7 @@ public class IoCheckInoutService { } } else { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); } } diff --git a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java index e1317469..e4cce5b1 100644 --- a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java @@ -186,6 +186,9 @@ public class IoGenInvService { InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity(); BeanUtils.copyProperties(codeEntity, invPreinDetailEntity); invPreinDetailEntity.setId(null); + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN); + invPreinDetailEntity.setOriginCount(codeEntity.getCount()); + invPreinDetailEntity.setOriginReCount(codeEntity.getReCount()); invPreinDetailEntities.add(invPreinDetailEntity); }); diff --git a/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java index b49123e5..2ded2a0c 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java @@ -17,7 +17,12 @@ public interface InvPreinDetailService { List findByCode(String code); - InvPreinDetailEntity findOneByCode(String code); +// InvPreinDetailEntity findOneByCode(String code); + + + List findUseByCode(String code); + + InvPreinDetailEntity findUseOneByCode(String code); int deleteByOrderId(String orderId); @@ -29,4 +34,6 @@ public interface InvPreinDetailService { int update(InvPreinDetailEntity invPreinDetailEntity); + int updateBack(String orderId); + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java index 5e6770a2..633a4e66 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java @@ -3,6 +3,7 @@ package com.glxp.api.service.inv.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.inv.InvPreinDetailDao; import com.glxp.api.dao.inv.InvPreinOrderDao; import com.glxp.api.entity.inv.InvPreProductDetailEntity; @@ -41,19 +42,34 @@ public class InvPreinDetailServiceImpl implements InvPreinDetailService { } @Override - public List findByCode(String code) { - return invPreinDetailDao.selectList(new QueryWrapper().eq("code", code)); + public List findUseByCode(String code) { + return invPreinDetailDao.selectList(new QueryWrapper().eq("code", code).eq("status", ConstantStatus.INVIN_IN)); } @Override - public InvPreinDetailEntity findOneByCode(String code) { - List invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper().eq("code", code).last("limit 1")); + public InvPreinDetailEntity findUseOneByCode(String code) { + List invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper().eq("code", code) + .eq("status", ConstantStatus.INVIN_IN).last("limit 1")); if (CollUtil.isNotEmpty(invPreinDetailEntities)) { return invPreinDetailEntities.get(0); } return null; } + @Override + public List findByCode(String code) { + return invPreinDetailDao.selectList(new QueryWrapper().eq("code", code)); + } +// +// @Override +// public InvPreinDetailEntity findOneByCode(String code) { +// List invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper().eq("code", code).last("limit 1")); +// if (CollUtil.isNotEmpty(invPreinDetailEntities)) { +// return invPreinDetailEntities.get(0); +// } +// return null; +// } + @Override public int deleteByOrderId(String orderId) { return invPreinDetailDao.delete(new QueryWrapper().eq("orderId", orderId)); @@ -81,8 +97,18 @@ public class InvPreinDetailServiceImpl implements InvPreinDetailService { @Override public int update(InvPreinDetailEntity invPreinDetailEntity) { + + return invPreinDetailDao.updateById(invPreinDetailEntity); } + @Override + public int updateBack(String orderId) { + InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity(); + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_BACK); + invPreinDetailDao.update(invPreinDetailEntity, new QueryWrapper().eq("orderId", orderId).ne("status", ConstantStatus.INVIN_USE)); + return 1; + } + } diff --git a/src/main/resources/mybatis/mapper/inv/InvPreinDetailDao.xml b/src/main/resources/mybatis/mapper/inv/InvPreinDetailDao.xml index 9d50c12c..e7f7944c 100644 --- a/src/main/resources/mybatis/mapper/inv/InvPreinDetailDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvPreinDetailDao.xml @@ -4,16 +4,48 @@