From 7ae0b81529626b9b86ba53bc9b8f6117525cd4cb Mon Sep 17 00:00:00 2001 From: x_z Date: Wed, 21 Dec 2022 17:32:56 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E7=9B=98=E7=82=B9=E8=BD=AC?= =?UTF-8?q?=E5=8D=95=E6=95=B0=E9=87=8F=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E5=BA=93=E5=AD=98=E7=BB=9F=E8=AE=A1=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inventory/InvMAOrderDetailController.java | 8 ++- .../impl/InvCountOrderServiceImpl.java | 10 ++++ .../inventory/impl/InvProductServiceImpl.java | 60 ++++--------------- .../mapper/inventory/InvProductDao.xml | 5 +- 4 files changed, 30 insertions(+), 53 deletions(-) diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvMAOrderDetailController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvMAOrderDetailController.java index 3e905834..6be0d63d 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvMAOrderDetailController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvMAOrderDetailController.java @@ -3,6 +3,7 @@ package com.glxp.api.admin.controller.inventory; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity; import com.glxp.api.admin.req.inventory.AddMAOrderDetailRequest; import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest; @@ -38,6 +39,7 @@ public class InvMAOrderDetailController { * @param filterInvMAOrderDetailRequest * @return */ + @AuthRuleAnnotation("") @GetMapping("/inv/MA/order/detail/filterList") public BaseResponse filterList(FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest) { List list = invMAOrderDetailService.filterList(filterInvMAOrderDetailRequest); @@ -55,7 +57,8 @@ public class InvMAOrderDetailController { * @param bindingResult * @return */ - @PostMapping(" /inv/MA/order/detail/addOrderDetail") + @AuthRuleAnnotation("") + @PostMapping("/inv/MA/order/detail/addOrderDetail") public BaseResponse addOrderDetail(@RequestBody InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); @@ -72,6 +75,7 @@ public class InvMAOrderDetailController { * @param invProductIds * @return */ + @AuthRuleAnnotation("") @PostMapping("/inv/MA/order/detail/batchAddDetail") public BaseResponse batchAddDetail(@RequestBody AddMAOrderDetailRequest addMAOrderDetailRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { @@ -89,6 +93,7 @@ public class InvMAOrderDetailController { * @param filterInvMAOrderDetailRequest * @return */ + @AuthRuleAnnotation("") @PostMapping("/inv/MA/order/detail/delete") public BaseResponse delete(@RequestBody FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { @@ -106,6 +111,7 @@ public class InvMAOrderDetailController { * @param invMaintenanceOrderDetailEntity * @return */ + @AuthRuleAnnotation("") @PostMapping("/inv/MA/order/detail/update") public BaseResponse update(@RequestBody InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvCountOrderServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvCountOrderServiceImpl.java index a7a0f8c2..d044f49f 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvCountOrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvCountOrderServiceImpl.java @@ -315,6 +315,11 @@ public class InvCountOrderServiceImpl implements InvCountOrderService { int codeNum = invCountOrderDetail.getLossNum() / actCount; warehouseEntity.setCount(codeNum); warehouseEntity.setReCount(codeNum); + } else { + //修改实际数量 + int actCount = invCountCodesService.getActCount(udi.getUdi()); + warehouseEntity.setCount(actCount); + warehouseEntity.setReCount(actCount); } //设置供应商信息 @@ -377,6 +382,11 @@ public class InvCountOrderServiceImpl implements InvCountOrderService { int codeNum = invCountOrderDetail.getProfitNum() / actCount; warehouseEntity.setCount(codeNum); warehouseEntity.setReCount(codeNum); + } else { + //修改实际数量 + int actCount = invCountCodesService.getActCount(udi.getUdi()); + warehouseEntity.setCount(actCount); + warehouseEntity.setReCount(actCount); } setSupInfo(warehouseEntity); inOrderCodes.add(warehouseEntity); diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvProductServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvProductServiceImpl.java index dd8e1e12..c4d6a35a 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvProductServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvProductServiceImpl.java @@ -12,8 +12,8 @@ import com.glxp.api.admin.service.inventory.InvProductService; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; +import java.util.Collections; +import java.util.List; @Service public class InvProductServiceImpl implements InvProductService { @@ -86,58 +86,18 @@ public class InvProductServiceImpl implements InvProductService { if (filterInvProductRequest == null) { return Collections.emptyList(); } + + if (null != filterInvProductRequest.getPage() && null != filterInvProductRequest.getLimit()) { + PageHelper.offsetPage((filterInvProductRequest.getPage() - 1) * filterInvProductRequest.getLimit(), filterInvProductRequest.getLimit()); + } + List data = invProductDao.stockStatistics(filterInvProductRequest); if (CollUtil.isNotEmpty(data)) { - //默认根据产品id分组 - Set relIdFkSet = new HashSet<>(); - data.forEach(invProductResponse -> { - relIdFkSet.add(invProductResponse.getRelIdFk()); + data.forEach(item -> { + item.setReCount(item.getInCount() - item.getOutCount()); }); - - //按照产品批次分组 - Set batchNoSet = new HashSet<>(); - data.forEach(invProductResponse -> { - batchNoSet.add(invProductResponse.getBatchNo()); - }); - - List result = new ArrayList<>(); - - for (String relIdFk : relIdFkSet) { - if (CollUtil.isNotEmpty(batchNoSet)) { - for (String batchNo : batchNoSet) { - List list = - data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)) - .filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo))) - .collect(Collectors.toList()); - if (CollUtil.isNotEmpty(list)) { - InvProductResponse invProductResponse = list.get(0); - int inCount = data.stream() - .filter(product -> product.getRelIdFk().equals(relIdFk)) - .filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo))) - .mapToInt(InvProductResponse::getInCount).sum(); - int outCount = data.stream() - .filter(product -> product.getRelIdFk().equals(relIdFk)) - .filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo))) - .mapToInt(InvProductResponse::getOutCount).sum(); - invProductResponse.setInCount(inCount); - invProductResponse.setOutCount(outCount); - invProductResponse.setReCount(inCount - outCount); - result.add(invProductResponse); - } - } - } else { - InvProductResponse invProductResponse = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).collect(Collectors.toList()).get(0); - int inCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).mapToInt(InvProductResponse::getInCount).sum(); - int outCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).mapToInt(InvProductResponse::getOutCount).sum(); - invProductResponse.setInCount(inCount); - invProductResponse.setOutCount(outCount); - invProductResponse.setReCount(inCount - outCount); - result.add(invProductResponse); - } - } - return result; } - return Collections.emptyList(); + return data; } @Override diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvProductDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvProductDao.xml index 45221d5b..e58a9b20 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inventory/InvProductDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvProductDao.xml @@ -222,8 +222,8 @@ ip.supId, ip.price, iw.name invStorageName, - inCount, - outCount + sum(ip.inCount) inCount, + sum(ip.outCount) outCount from inv_product ip inner join basic_udirel bu on ip.relIdFk = bu.id inner join basic_products bp on bu.uuid = bp.uuid @@ -259,6 +259,7 @@ AND ip.batchNo like concat('%', #{batchNo,jdbcType=VARCHAR}, '%') + group by ip.relIdFk, ip.batchNo