From ade28823d17bfe510dc5a080b411039181609d3e Mon Sep 17 00:00:00 2001 From: siontion Date: Tue, 9 Jul 2024 18:45:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E8=A3=85=E8=8E=B7=E5=8F=96=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projectorder/ProjectOrderController.java | 10 ++++++ .../projectorder/ProjectOrderSubMapper.java | 16 ++++++++++ .../projectorder/ProjectOrderService.java | 1 + .../projectorder/ProjectOrderServiceImpl.java | 32 +++++++++++++++++++ 4 files changed, 59 insertions(+) diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/projectorder/ProjectOrderController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/projectorder/ProjectOrderController.java index 3b0f0ab8..7d1da345 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/projectorder/ProjectOrderController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/projectorder/ProjectOrderController.java @@ -165,6 +165,16 @@ public class ProjectOrderController { return success(projectOrderService.getProjectOrderSubListByProjectOrderId(projectOrderId)); } + @GetMapping("/project-order-sub/list-by-project-order-id-subName-spec") + @Operation(summary = "获得项目订单子项目列表") + @Parameter(name = "projectOrderId", description = "项目订单id") + @PreAuthorize("@ss.hasPermission('biz:project-order:query')") + public CommonResult> getProjectOrderSubListByProjectOrderIdSubNameSpec(@RequestParam("projectOrderId") Long projectOrderId,@RequestParam("projectSubName") String projectSubName,@RequestParam("spec") String spec) { + return success(projectOrderService.getProjectOrderSubListByProjectOrderIdSubNameSpec(projectOrderId,projectSubName,spec)); + } + + + @DeleteMapping("/project-order-sub/delete") @Operation(summary = "删除项目订单子项目") @Parameter(name = "id", description = "编号", required = true) diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/projectorder/ProjectOrderSubMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/projectorder/ProjectOrderSubMapper.java index 26393e44..183e72cc 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/projectorder/ProjectOrderSubMapper.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/projectorder/ProjectOrderSubMapper.java @@ -47,6 +47,22 @@ public interface ProjectOrderSubMapper extends BaseMapperX { return selectList(query); } + default List selectListByProjectOrderIdSubNameSpec(Long projectOrderId,String projectSubName,String spec) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(ProjectOrderSubDO.class) + .select("a.code as projectOrderCode") + .select("b.code as projectSubCode", "b.name projectSubName", "b.spec", "b.unit","ifNull(b.available_quantity,0) as availableQuantity") + .select("ifNull(b.inv_safe,0) as invSafe") + .leftJoin(ProjectOrderDO.class, "a", ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId) + .leftJoin(MaterialDO.class, "b", MaterialDO::getId, ProjectOrderSubDO::getMaterialId) + .disableSubLogicDel() + .orderByAsc(ProjectOrderSubDO::getId) + .eq(ProjectOrderSubDO::getProjectOrderId, projectOrderId) + .like(!StringUtils.isEmpty(projectSubName),ProjectOrderSubDO::getName,projectSubName) + .like(!StringUtils.isEmpty(spec),MaterialDO::getSpec,spec); + return selectList(query); + } + default int deleteByProjectOrderId(Long projectOrderId) { return delete(ProjectOrderSubDO::getProjectOrderId, projectOrderId); } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/projectorder/ProjectOrderService.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/projectorder/ProjectOrderService.java index b2eebde8..eb97ec9a 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/projectorder/ProjectOrderService.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/projectorder/ProjectOrderService.java @@ -65,6 +65,7 @@ public interface ProjectOrderService { * @return 项目订单子项目列表 */ List getProjectOrderSubListByProjectOrderId(Long projectOrderId); + List getProjectOrderSubListByProjectOrderIdSubNameSpec(Long projectOrderId,String projectSubName,String spec); MaterialDO getProjectOrderMaterial(String code,Long whId); /** diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/projectorder/ProjectOrderServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/projectorder/ProjectOrderServiceImpl.java index 54d7b6f9..827f23bd 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/projectorder/ProjectOrderServiceImpl.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/projectorder/ProjectOrderServiceImpl.java @@ -257,6 +257,38 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { } return projectOrderSubDOList; } + @Override + public List getProjectOrderSubListByProjectOrderIdSubNameSpec(Long projectOrderId,String projectSubName,String spec) { + List projectOrderSubDOList = projectOrderSubMapper.selectListByProjectOrderIdSubNameSpec(projectOrderId,projectSubName,spec); + + ProjectOrderDO projectOrderDO = projectOrderMapper.selectById(projectOrderId); + List matCodes = new ArrayList<>(); + + projectOrderSubDOList.forEach(vo->{ + if(!matCodes.contains(vo.getProjectSubCode())){ + matCodes.add(vo.getProjectSubCode()); + } + }); + + try { + List stockMatDatas = chanjetManager.queryStock(matCodes,projectOrderDO.getWarehouseId()); + projectOrderSubDOList.forEach(vo->{ + if(stockMatDatas.stream().filter(mo->mo.getInventoryCode().equals(vo.getProjectSubCode())).count()>0){ + QueryCurrentStockResVO queryCurrentStockResVO = stockMatDatas.stream().filter(mo->mo.getInventoryCode().equals(vo.getProjectSubCode())).collect(Collectors.toList()).get(0); + if(queryCurrentStockResVO.getAvailableQuantity()!= null){ + vo.setAvailableQuantity(new BigDecimal(queryCurrentStockResVO.getAvailableQuantity())); + }else { + vo.setAvailableQuantity(new BigDecimal(0)); + } + }else{ + vo.setAvailableQuantity(new BigDecimal(0)); + } + }); + } catch (ChanjetApiException e) { + throw new RuntimeException(e); + } + return projectOrderSubDOList; + } @SneakyThrows @Override public MaterialDO getProjectOrderMaterial(String code, Long whId){