From ef4b45719929e67fb5587fa0cb890ca4c6de3719 Mon Sep 17 00:00:00 2001 From: x_z Date: Thu, 30 Mar 2023 15:42:19 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E7=9B=98=E7=82=B9=E5=8D=95?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inv/InvCountOrderDetailController.java | 16 ++++++++++++++ .../req/inv/AddInvCountOrderSaveRequest.java | 6 +++++ .../inv/InvCountOrderDetailService.java | 8 +++++++ .../impl/InvCountOrderDetailServiceImpl.java | 22 +++++++++++++++++++ .../mybatis/mapper/inv/invProductDao.xml | 1 + 5 files changed, 53 insertions(+) diff --git a/src/main/java/com/glxp/api/controller/inv/InvCountOrderDetailController.java b/src/main/java/com/glxp/api/controller/inv/InvCountOrderDetailController.java index 08da1dedd..18b9f2e69 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvCountOrderDetailController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvCountOrderDetailController.java @@ -1,11 +1,13 @@ package com.glxp.api.controller.inv; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; 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.entity.inv.InvCountOrderDetailEntity; +import com.glxp.api.req.inv.AddInvCountOrderSaveRequest; import com.glxp.api.req.inv.FilterInvCountOrderDetailRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inv.InvCountOrderDetailResponse; @@ -72,4 +74,18 @@ public class InvCountOrderDetailController { return invCountOrderDetailService.addCountOrderDetail(invCountOrderDetail); } + /** + * 批量添加盘点单据详情 + * + * @param addInvCountOrderSaveRequest + * @return + */ + @PostMapping("/inv/count/order/detail/batchAddDetail") + public BaseResponse batchAddDetail(@RequestBody AddInvCountOrderSaveRequest addInvCountOrderSaveRequest) { + if (null == addInvCountOrderSaveRequest || CollUtil.isEmpty(addInvCountOrderSaveRequest.getCountOrderDetailList())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return invCountOrderDetailService.batchAddDetail(addInvCountOrderSaveRequest.getOrderId(), addInvCountOrderSaveRequest.getCountOrderDetailList()); + } + } diff --git a/src/main/java/com/glxp/api/req/inv/AddInvCountOrderSaveRequest.java b/src/main/java/com/glxp/api/req/inv/AddInvCountOrderSaveRequest.java index 0f76d674a..a5f4b16d7 100644 --- a/src/main/java/com/glxp/api/req/inv/AddInvCountOrderSaveRequest.java +++ b/src/main/java/com/glxp/api/req/inv/AddInvCountOrderSaveRequest.java @@ -1,6 +1,7 @@ package com.glxp.api.req.inv; import com.glxp.api.entity.inv.InvCountCodesEntity; +import com.glxp.api.entity.inv.InvCountOrderDetailEntity; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -25,4 +26,9 @@ public class AddInvCountOrderSaveRequest { @NotEmpty(message = "盘点产品不能为空") private List countCodeList; + /** + * 盘点单据详情列表 + */ + private List countOrderDetailList; + } diff --git a/src/main/java/com/glxp/api/service/inv/InvCountOrderDetailService.java b/src/main/java/com/glxp/api/service/inv/InvCountOrderDetailService.java index 175dc30b5..4ea805b87 100644 --- a/src/main/java/com/glxp/api/service/inv/InvCountOrderDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvCountOrderDetailService.java @@ -37,4 +37,12 @@ public interface InvCountOrderDetailService { */ BaseResponse addCountOrderDetail(InvCountOrderDetailEntity invCountOrderDetail); + /** + * 批量添加盘点单据详情 + * + * @param orderId + * @param countOrderDetailList + * @return + */ + BaseResponse batchAddDetail(String orderId, List countOrderDetailList); } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvCountOrderDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvCountOrderDetailServiceImpl.java index d234fa1fc..5cdc997dd 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvCountOrderDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvCountOrderDetailServiceImpl.java @@ -14,6 +14,10 @@ import com.glxp.api.req.inv.FilterInvCountOrderDetailRequest; import com.glxp.api.res.inv.InvCountOrderDetailResponse; import com.glxp.api.service.inv.InvCountOrderDetailService; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.session.TransactionIsolationLevel; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,6 +36,8 @@ public class InvCountOrderDetailServiceImpl implements InvCountOrderDetailServic private InvCountOrderDao invCountOrderDao; @Resource private InvProductDao invProductDao; + @Resource + private SqlSessionFactory sqlSessionFactory; @Override public List filterList(FilterInvCountOrderDetailRequest detailRequest) { @@ -78,4 +84,20 @@ public class InvCountOrderDetailServiceImpl implements InvCountOrderDetailServic invCountOrderDetailDao.insert(invCountOrderDetail); return ResultVOUtils.success(); } + + @Override + public BaseResponse batchAddDetail(String orderId, List countOrderDetailList) { + InvCountOrderEntity invCountOrder = invCountOrderDao.selectByOrderId(orderId); + SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED); + InvCountOrderDetailDao mapper = sqlSession.getMapper(InvCountOrderDetailDao.class); + for (InvCountOrderDetailEntity orderDetailEntity : countOrderDetailList) { + InvProductEntity invProductEntity = invProductDao.selectProductInfo(orderDetailEntity.getRelId(), orderDetailEntity.getBatchNo(), invCountOrder.getDeptCode(), invCountOrder.getInvCode(), invCountOrder.getInvSpaceCode()); + orderDetailEntity.setInvNum(invProductEntity.getReCount()); + orderDetailEntity.setCountNum(0); + mapper.insert(orderDetailEntity); + } + sqlSession.commit(); + sqlSession.close(); + return ResultVOUtils.success(); + } } diff --git a/src/main/resources/mybatis/mapper/inv/invProductDao.xml b/src/main/resources/mybatis/mapper/inv/invProductDao.xml index 712f960e1..ec7b354e0 100644 --- a/src/main/resources/mybatis/mapper/inv/invProductDao.xml +++ b/src/main/resources/mybatis/mapper/inv/invProductDao.xml @@ -205,6 +205,7 @@ AND ipd.invSpaceCode = #{invSpaceCode} + group by ip.id