From 46e63eaf895ce15a662c6b4e4e22b1ae59da4569 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 18 Apr 2023 10:26:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A2=84=E9=AA=8C=E6=94=B6?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=AD=97=E6=AE=B5,=E9=A2=84=E9=AA=8C?= =?UTF-8?q?=E6=94=B6=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 10 +- .../sync/SpsSyncDownloadController.java | 2 +- .../basic/BasicBussinessTypeEntity.java | 9 +- .../req/basic/BussinessTypeSaveRequest.java | 1 + .../res/basic/BasicBussinessTypeResponse.java | 1 + .../service/inout/IoCheckInoutService.java | 314 +++++++++--------- .../inv/InvPreinProductDetailService.java | 5 + .../InvPreInProductDetailServiceImpl.java | 35 ++ .../mapper/basic/BasicBussinessTypeDao.xml | 4 +- src/main/resources/schemas/schema_v2.1.sql | 2 + 10 files changed, 224 insertions(+), 159 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 dafe6455..01fee584 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -20,6 +20,7 @@ import com.glxp.api.entity.basic.BasicCorpEntity; 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.InvPreinDetailEntity; import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.req.basic.CompanyProductRelevanceRequest; @@ -35,6 +36,7 @@ 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.InvPreinDetailService; +import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.service.inv.InvProductDetailService; import com.glxp.api.service.purchase.SupProductService; import com.glxp.api.service.system.SystemParamConfigService; @@ -85,7 +87,7 @@ public class IoCodeTempController extends BaseController { @Resource IoCheckInoutService ioCheckInoutService; @Resource - InvPreinDetailService invPreinDetailService; + InvPreinProductDetailService invPreinProductDetailService; @Resource InvProductDetailService invProductDetailService; @@ -452,7 +454,7 @@ public class IoCodeTempController extends BaseController { //校验预验收是否已存在 if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) { - int count = invPreinDetailService.findCountByCode(code); + int count = invPreinProductDetailService.findCountByCode(code); if (count > 0) { return ResultVOUtils.error(500, "预验收库存已存在此UDI码,请检查后重试!"); } @@ -461,8 +463,8 @@ public class IoCodeTempController extends BaseController { //校验预验收库存是否已存在 if (bussinessTypeEntity.isScanPreIn()) { - int preInCount = invPreinDetailService.findCountByCode(code); - InvPreinDetailEntity invPreinDetailEntity = invPreinDetailService.findUseOneByCode(code); + int preInCount = invPreinProductDetailService.findCountByCode(code); + InvPreInProductDetailEntity invPreinDetailEntity = invPreinProductDetailService.findUseOneByCode(code); if (preInCount <= 0) { return ResultVOUtils.error(500, "预验收库存数量不足!"); } else { diff --git a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java index f1a65170..a84ee85d 100644 --- a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java +++ b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java @@ -427,7 +427,7 @@ public class SpsSyncDownloadController { // 部门信息 if (CollUtil.isNotEmpty(syncDataResponse.getDeptEntityList())) { for (DeptEntity deptEntity : syncDataResponse.getDeptEntityList()) { - deptDao.insertInvWarehouse(deptEntity); + deptDao.insertOrUpdate(deptEntity); } } // 部门信息关联用户信息 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 62c8e854..7e1a423a 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -315,7 +315,7 @@ public class BasicBussinessTypeEntity { // @TableField(value = "preIn") // private boolean preIn; - +// 预验收剩余库存自动退库 @TableField(value = "preInBack") private boolean preInBack; @@ -396,9 +396,10 @@ public class BasicBussinessTypeEntity { @TableField(value = "checkCertExpire") private boolean checkCertExpire; - + // 预验收退库单据类型 @TableField(value = "preInBackAction") private String preInBackAction; - - + // 预验收剩余库存退库方式 + @TableField(value = "backPreinType") + private Integer backPreinType; } diff --git a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java index 0184d7cd..3a27bc1a 100644 --- a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java @@ -299,6 +299,7 @@ public class BussinessTypeSaveRequest { private boolean checkExpire; private boolean checkCertExpire; private String preInBackAction; + private Integer backPreinType; } diff --git a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java index 1daad368..eeb39b1d 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java @@ -148,4 +148,5 @@ public class BasicBussinessTypeResponse { private boolean checkExpire; private boolean checkCertExpire; private String preInBackAction; + private Integer backPreinType; } 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 6d229505..44ea84fa 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -19,11 +19,13 @@ import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inv.InvPreinDetailService; import com.glxp.api.service.inv.InvPreinOrderService; +import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.JasperUtils; import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.udi.FilterUdiUtils; +import com.glxp.api.util.udi.UdiCalCountUtil; import net.sf.jasperreports.engine.JRException; import org.springframework.beans.BeanUtils; import org.springframework.scheduling.annotation.Async; @@ -731,6 +733,10 @@ public class IoCheckInoutService { @Resource IoChangeInoutService changeInoutService; + @Resource + InvPreinProductDetailService invPreinProductDetailService; + @Resource + UdiCalCountUtil udiCalCountUtil; //校验完成后生成库存 public void genInv(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) { @@ -738,163 +744,175 @@ public class IoCheckInoutService { if (bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT) && bussinessTypeEntity.isScanPreIn()) { ThreadUtil.execAsync(() -> { - + List backCodeList = new ArrayList<>(); List codeList = codeService.findByOrderId(orderEntity.getBillNo()); - //找出UDI码对应的预验收入库单号 - Map preInOrder = new HashMap<>(); - for (IoCodeEntity warehouseEntity : codeList) { - List invProductDetailEntities = invPreinDetailService.findByCode(warehouseEntity.getCode()); - if (invProductDetailEntities.size() > 0) { - for (InvPreinDetailEntity invPreinDetailEntity : invProductDetailEntities) - preInOrder.put(invPreinDetailEntity.getOrderId(), invPreinDetailEntity.getOrderId()); + for (IoCodeEntity codeEntity : codeList) { + int count = invPreinProductDetailService.findCountByCode(codeEntity.getCode()); + if (count > 0) { + codeEntity.setCount(count); + codeEntity.setReCount(udiCalCountUtil.getActCount(codeEntity.getNameCode())); + backCodeList.add(codeEntity); } } - if (preInOrder.size() > 0) { - String preInBillNo = ""; - boolean isBreak = false; - List backCodeList = new ArrayList<>(); - for (String key : preInOrder.keySet()) { - if (!isBreak) { - preInBillNo = preInBillNo + "," + key; - IoOrderEntity preInEntity = orderService.findByBillNo(key); - preInEntity.setPreOutBillNo(orderEntity.getBillNo()); - orderService.update(preInEntity); - BasicBussinessTypeEntity preBusType = basicBussinessTypeService.findByAction(preInEntity.getAction()); - //预验收不删除单号,方便后续查询 - if (preBusType.isPreInBack()) { //预验收如果带回,则清空相关预验收库存; - invPreinDetailService.deleteByOrderId(preInEntity.getBillNo()); - //剩余UDI码生成退货单 todo - List codeEntities = codeService.findByOrderId(preInBillNo); - backCodeList.addAll(codeEntities); - } else { //预验收如果不带回,则清除已出库相关库存 - for (IoCodeEntity codeEntity : codeList) { - if (StrUtil.isEmpty(codeEntity.getSerialNo())) { - InvPreinDetailEntity invPreinDetailEntity = invPreinDetailService.findByCode(key, codeEntity.getCode()); - if (invPreinDetailEntity != null) { - int count = 0; - if (invPreinDetailEntity.getCount() < codeEntity.getCount()) { - count = 0; - } else { - count = invPreinDetailEntity.getCount() - codeEntity.getCount(); - } - if (count >= 0) { - isBreak = true; - if (count == 0) { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); - } else { - invPreinDetailEntity.setCount(count); - invPreinDetailService.update(invPreinDetailEntity); - } - int reCount = invPreinDetailEntity.getReCount() - codeEntity.getMyReCount(); - if (reCount == 0) { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); - } else { - invPreinDetailEntity.setReCount(reCount); - invPreinDetailService.update(invPreinDetailEntity); - } - } - } - } else { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); - } - } - - } - } - - - } - orderEntity.setPreInBillNo(preInBillNo.substring(1)); + BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + if (StrUtil.isNotEmpty(basicBussinessTypeEntity.getPreInBackAction())) { + IoOrderEntity outOrder = new IoOrderEntity(); +// BeanUtils.copyProperties(orderEntity, outOrder); + outOrder.setId(null); + outOrder.setMainAction(ConstantType.TYPE_OUT); + outOrder.setAction(basicBussinessTypeEntity.getAction()); + outOrder.setCreateTime(new Date()); + outOrder.setFromType(ConstantStatus.FROM_CHANGE); + String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(basicBussinessTypeEntity.getPrefix()), "yyyyMMdd")); + outOrder.setBillNo(orderNo); + outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); + outOrder.setCorpOrderId(CustomUtil.getId() + "x"); + outOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + orderEntity.setUllageSupNo(outOrder.getBillNo()); + orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); + outOrder.setOriginUllageSupNo(orderEntity.getBillNo()); + outOrder.setCreateUser(null); + outOrder.setReviewUser(null); + orderService.insertOrder(outOrder); + + //生成条码 + List codeTempEntities = new ArrayList<>(); + for (IoCodeEntity warehouseEntity : backCodeList) { + IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); + BeanUtils.copyProperties(warehouseEntity, codeTempEntity); + codeTempEntity.setId(null); + codeTempEntity.setOrderId(outOrder.getBillNo()); + codeTempEntity.setAction(outOrder.getAction()); + codeTempEntity.setMainAction(outOrder.getMainAction()); + codeTempEntity.setCreateTime(new Date()); + codeTempEntity.setUpdateTime(new Date()); + codeTempEntities.add(codeTempEntity); + } + codeTempService.insertBatch(codeTempEntities); + addInoutService.dealProcess(outOrder); + if (!checkManual(outOrder.getBillNo())) { + check(outOrder.getBillNo()); + } - //生成退货单 1.查出所有关联的单据条码,2.扣减当前出库数量;3.生成单据类型对应绑定的出库单 - if (CollUtil.isNotEmpty(backCodeList)) { - List realBackCodeList = new ArrayList<>(); - for (IoCodeEntity backCodeEntity : backCodeList) { - for (IoCodeEntity codeEntity : codeList) { - if (codeEntity.getCount() != 0 && backCodeEntity.getCode().equals(codeEntity.getCode())) { - int count = backCodeEntity.getCount() - codeEntity.getCount(); - int reCount = backCodeEntity.getReCount() - codeEntity.getReCount(); - if (count > 0) { - codeEntity.setCount(0); - codeEntity.setReCount(0); - backCodeEntity.setCount(count); - backCodeEntity.setReCount(reCount); - realBackCodeList.add(backCodeEntity); - } else if (count == 0) { - codeEntity.setCount(0); - codeEntity.setReCount(0); - } else if (count < 0) { - codeEntity.setCount(-count); - codeEntity.setReCount(-reCount); - } - } - } - - } - if (CollUtil.isNotEmpty(realBackCodeList)) { - Map> backPreInOrder = new HashMap<>(); - for (IoCodeEntity codeEntity : codeList) { - List codeEntities = backPreInOrder.get(codeEntity.getOrderId()); - if (CollUtil.isEmpty(codeEntities)) { - codeEntities = new ArrayList<>(); - } - codeEntities.add(codeEntity); - backPreInOrder.put(codeEntity.getOrderId(), codeEntities); - } - - for (String key : backPreInOrder.keySet()) { - IoOrderEntity originOrder = orderService.findByBillNo(key); - BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(originOrder.getAction()); - if (StrUtil.isNotEmpty(basicBussinessTypeEntity.getPreInBackAction())) { - IoOrderEntity outOrder = new IoOrderEntity(); - BeanUtils.copyProperties(originOrder, outOrder); - outOrder.setId(null); - outOrder.setMainAction(ConstantType.TYPE_OUT); - outOrder.setAction(basicBussinessTypeEntity.getAction()); - outOrder.setCreateTime(new Date()); - outOrder.setFromType(ConstantStatus.FROM_CHANGE); - String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(basicBussinessTypeEntity.getPrefix()), "yyyyMMdd")); - outOrder.setBillNo(orderNo); - outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); - outOrder.setCorpOrderId(CustomUtil.getId() + "x"); - outOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); - originOrder.setUllageSupNo(outOrder.getBillNo()); - originOrder.setUpdateTime(new Date()); - orderService.update(originOrder); - outOrder.setOriginUllageSupNo(originOrder.getBillNo()); - outOrder.setCreateUser(null); - outOrder.setReviewUser(null); - orderService.insertOrder(outOrder); - - //生成条码 - List codeTempEntities = new ArrayList<>(); - for (IoCodeEntity warehouseEntity : backPreInOrder.get(key)) { - IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); - BeanUtils.copyProperties(warehouseEntity, codeTempEntity); - codeTempEntity.setId(null); - codeTempEntity.setOrderId(outOrder.getBillNo()); - codeTempEntity.setAction(outOrder.getAction()); - codeTempEntity.setMainAction(outOrder.getMainAction()); - codeTempEntity.setCreateTime(new Date()); - codeTempEntity.setUpdateTime(new Date()); - codeTempEntities.add(codeTempEntity); - } - codeTempService.insertBatch(codeTempEntities); - addInoutService.dealProcess(outOrder); - if (!checkManual(outOrder.getBillNo())) { - check(outOrder.getBillNo()); - } - - - } - } - } - } } +// //找出UDI码对应的预验收入库单号 +// Map preInOrder = new HashMap<>(); +// for (IoCodeEntity warehouseEntity : codeList) { +// List invProductDetailEntities = invPreinDetailService.findByCode(warehouseEntity.getCode()); +// if (invProductDetailEntities.size() > 0) { +// for (InvPreinDetailEntity invPreinDetailEntity : invProductDetailEntities) +// preInOrder.put(invPreinDetailEntity.getOrderId(), invPreinDetailEntity.getOrderId()); +// } +// } +// if (preInOrder.size() > 0) { +// String preInBillNo = ""; +// boolean isBreak = false; +// +// for (String key : preInOrder.keySet()) { +// if (!isBreak) { +// preInBillNo = preInBillNo + "," + key; +// IoOrderEntity preInEntity = orderService.findByBillNo(key); +// preInEntity.setPreOutBillNo(orderEntity.getBillNo()); +// orderService.update(preInEntity); +// BasicBussinessTypeEntity preBusType = basicBussinessTypeService.findByAction(preInEntity.getAction()); +// //预验收不删除单号,方便后续查询 +// if (preBusType.isPreInBack()) { //预验收如果带回,则清空相关预验收库存; +// invPreinDetailService.deleteByOrderId(preInEntity.getBillNo()); +// //剩余UDI码生成退货单 todo +// List codeEntities = codeService.findByOrderId(key); +// backCodeList.addAll(codeEntities); +// } else { //预验收如果不带回,则清除已出库相关库存 +// for (IoCodeEntity codeEntity : codeList) { +// if (StrUtil.isEmpty(codeEntity.getSerialNo())) { +// InvPreinDetailEntity invPreinDetailEntity = invPreinDetailService.findByCode(key, codeEntity.getCode()); +// if (invPreinDetailEntity != null) { +// int count = 0; +// if (invPreinDetailEntity.getCount() < codeEntity.getCount()) { +// count = 0; +// } else { +// count = invPreinDetailEntity.getCount() - codeEntity.getCount(); +// } +// if (count >= 0) { +// isBreak = true; +// if (count == 0) { +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// } else { +// invPreinDetailEntity.setCount(count); +// invPreinDetailService.update(invPreinDetailEntity); +// } +// int reCount = invPreinDetailEntity.getReCount() - codeEntity.getMyReCount(); +// if (reCount == 0) { +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// } else { +// invPreinDetailEntity.setReCount(reCount); +// invPreinDetailService.update(invPreinDetailEntity); +// } +// } +// } +// } else { +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// } +// } +// +// } +// } +// +// +// } +// orderEntity.setPreInBillNo(preInBillNo.substring(1)); +// orderService.update(orderEntity); +// +// +// //生成退货单 1.查出所有关联的单据条码,2.扣减当前出库数量;3.生成单据类型对应绑定的出库单 +// if (CollUtil.isNotEmpty(backCodeList)) { +// List realBackCodeList = new ArrayList<>(); +// for (IoCodeEntity backCodeEntity : backCodeList) { +// for (IoCodeEntity codeEntity : codeList) { +// if (codeEntity.getCount() != 0 && backCodeEntity.getCode().equals(codeEntity.getCode())) { +// int count = backCodeEntity.getCount() - codeEntity.getCount(); +// int reCount = backCodeEntity.getReCount() - codeEntity.getReCount(); +// if (count > 0) { +// codeEntity.setCount(0); +// codeEntity.setReCount(0); +// backCodeEntity.setCount(count); +// backCodeEntity.setReCount(reCount); +// realBackCodeList.add(backCodeEntity); +// } else if (count == 0) { +// codeEntity.setCount(0); +// codeEntity.setReCount(0); +// } else if (count < 0) { +// codeEntity.setCount(-count); +// codeEntity.setReCount(-reCount); +// } +// } +// } +// +// } +// if (CollUtil.isNotEmpty(realBackCodeList)) { +// Map> backPreInOrder = new HashMap<>(); +// for (IoCodeEntity codeEntity : codeList) { +// List codeEntities = backPreInOrder.get(codeEntity.getOrderId()); +// if (CollUtil.isEmpty(codeEntities)) { +// codeEntities = new ArrayList<>(); +// } +// codeEntities.add(codeEntity); +// backPreInOrder.put(codeEntity.getOrderId(), codeEntities); +// } +// +// for (String key : backPreInOrder.keySet()) { +// IoOrderEntity originOrder = orderService.findByBillNo(key); +// BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(originOrder.getAction()); +// +// } +// } +// } +// } + + }); } diff --git a/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java index e595b7c4..ecf3dc25 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java @@ -2,6 +2,7 @@ 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.InvPreinDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.res.inv.InvPreProductDetailResponse; @@ -19,6 +20,8 @@ public interface InvPreinProductDetailService { List selectByOrderIdFk(String billNo); + List findByCode(String code); + InvPreInProductDetailEntity selectByCode(String billNo, String code); boolean update(InvPreInProductDetailEntity invPreInProductDetailEntity); @@ -49,5 +52,7 @@ public interface InvPreinProductDetailService { */ boolean deleteInvPreProductDetail(FilterInvProductDetailRequest detailRequest); + int findCountByCode(String code); + InvPreInProductDetailEntity findUseOneByCode(String code); } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java index e4b7c1be..598e0e36 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.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; @@ -13,6 +14,7 @@ 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.InvPreinDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.res.inv.InvPreProductDetailResponse; @@ -59,6 +61,12 @@ public class InvPreInProductDetailServiceImpl implements InvPreinProductDetailSe return invProductDetailEntities; } + @Override + public List findByCode(String code) { + List invPreinDetailEntities = invPreInProductDetailDao.selectList(new QueryWrapper().eq("code", code)); + return invPreinDetailEntities; + } + @Override public InvPreInProductDetailEntity selectByCode(String billNo, String code) { List invProductDetailEntities = invPreInProductDetailDao.selectList @@ -132,4 +140,31 @@ public class InvPreInProductDetailServiceImpl implements InvPreinProductDetailSe return invPreInProductDetailDao.deleteInvPreProductDetail(detailRequest); } + @Override + public int findCountByCode(String code) { + List invPreinDetailEntities = invPreInProductDetailDao.selectList(new QueryWrapper().eq("code", code)); + int count = 0; + if (CollUtil.isNotEmpty(invPreinDetailEntities)) { + for (InvPreInProductDetailEntity invProductDetailEntity : invPreinDetailEntities) { + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) + count = count + invProductDetailEntity.getReCount(); + else { + count = count - invProductDetailEntity.getReCount(); + } + } + } + return count; + } + + @Override + public InvPreInProductDetailEntity findUseOneByCode(String code) { + List invPreinDetailEntities = invPreInProductDetailDao.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/basic/BasicBussinessTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml index 16b81750..3e3ad211 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml @@ -70,7 +70,7 @@ vailGroupBuy, busType, inStock, actionType, thrCheckEnable, thrCheckWebNew, thrCheckPdaUn, thrCheckPdaEd, thrCheckUdims, thrCheckPc, thrCheckSp, thrCheckChange, thrCheckBalance, thrCheckCopy, fillCodeRel, checkVailDate, - checkExpire, checkCertExpire,preInBackAction) + checkExpire, checkCertExpire,preInBackAction, backPreinType) values (#{mainAction}, #{action}, #{name}, #{enable}, #{remark}, #{thirdSysFk}, #{genUnit}, #{innerOrder}, #{secCheckEnable}, #{checkEnable}, #{checkUdims}, #{checkPdaEd}, #{checkPdaUn}, #{checkPc}, #{checkWebNew}, #{checkSp}, #{checkChange}, #{secCheckUdims}, #{secCheckPdaEd}, #{secCheckPdaUn}, @@ -82,7 +82,7 @@ #{vailGroupBuy}, #{busType}, #{inStock}, #{actionType}, #{thrCheckEnable}, #{thrCheckWebNew}, #{thrCheckPdaUn}, #{thrCheckPdaEd}, #{thrCheckUdims}, #{thrCheckPc}, #{thrCheckSp}, #{thrCheckChange}, #{thrCheckBalance}, #{thrCheckCopy}, #{fillCodeRel}, #{checkVailDate}, - #{checkExpire}, #{checkCertExpire},#{preInBackAction}) + #{checkExpire}, #{checkCertExpire},#{preInBackAction},#{backPreinType})