From 6e438a67e865a02e5eb22949a1989a8f1abac5b2 Mon Sep 17 00:00:00 2001 From: mashuai Date: Sat, 5 Jul 2025 13:22:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=8Abug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/material/basic/domain/BmUnit.java | 12 +++ .../vo/MaterialRetainedEquipmentInfo.java | 7 ++ .../common/controller/SelectController.java | 30 +++++++ .../material/common/mapper/SelectMapper.java | 19 +++++ .../common/service/SelectService.java | 14 ++++ .../service/impl/SelectServiceImpl.java | 75 +++++++++++++++++- .../material/clz/MaterialMachineMapper.xml | 79 ++++++++----------- .../mapper/material/common/SelectMapper.xml | 51 ++++++++++-- 8 files changed, 233 insertions(+), 54 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnit.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnit.java index fc4e2826..65dcad83 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnit.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnit.java @@ -93,4 +93,16 @@ public class BmUnit extends BaseEntity */ private Boolean enableFilter; + @ApiModelProperty(value = "领用申请id") + private Long leaseId; + + @ApiModelProperty(value = "授权人") + private String leasePerson; + + @ApiModelProperty(value = "授权人身份证号") + private String idCard; + + /** 班组ID */ + private Long teamId; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedEquipmentInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedEquipmentInfo.java index 8302c9c1..ff1ffb1b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedEquipmentInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedEquipmentInfo.java @@ -198,4 +198,11 @@ public class MaterialRetainedEquipmentInfo { * 班组长账号 */ private String teamLeaderIdCard; + + @ApiModelProperty(value = "工程id") + private String proId; + + @ApiModelProperty(value = "工程名称") + @Excel(name = "工程名称") + private String proName; } \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java index d78c7d0e..f7eeda6f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java @@ -31,6 +31,36 @@ public class SelectController { return service.getUnitList(bmUnit); } + /** + * todo 领用申请往来单位下拉选专用 + * @param bmUnit + * @return + */ + @ApiOperation(value = "领用申请往来单位下拉选") + @PostMapping("getUnitListLease") + public AjaxResult getUnitListLease(@RequestBody BmUnit bmUnit) { + try { + return service.getUnitListLease(bmUnit); + } catch (Exception e) { + return AjaxResult.error("获取数据失败"); + } + } + + /** + * todo 领用申请往来单位授权人员下拉 + * @param bmUnit + * @return + */ + @ApiOperation(value = "领用申请往来单位授权人员下拉") + @PostMapping("getUnitListLeasePerson") + public AjaxResult getUnitListLeasePerson(@RequestBody BmUnit bmUnit) { + try { + return service.getUnitListLeasePerson(bmUnit); + } catch (Exception e) { + return AjaxResult.error("获取数据失败"); + } + } + @ApiOperation(value = "工程下拉选") @PostMapping("getProjectList") public AjaxResult getProjectList(@RequestBody BmProject bmProject) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java index 58681aea..6865fe78 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java @@ -200,4 +200,23 @@ public interface SelectMapper { * @return */ List getAgreementInfoBy(SelectDto dto); + + /** + * 获取班组下拉选 + * @return + */ + List getTeam(); + + /** + * 获取领用申请单位下拉 + * @return + */ + List getTeamLeaseList(BmUnit bmUnit); + + /** + * 获取领用申请单位下拉 + * @param bmUnit + * @return + */ + List getUnitListLeasePerson(BmUnit bmUnit); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java index c317ae0b..a00699d4 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java @@ -227,4 +227,18 @@ public interface SelectService { * @return */ AjaxResult getProjectInfo(BmProject bmProject); + + /** + * 领用申请往来单位下拉选专用 + * @param bmUnit + * @return + */ + AjaxResult getUnitListLease(BmUnit bmUnit); + + /** + * 领用申请往来单位授权人员下拉 + * @param bmUnit + * @return + */ + AjaxResult getUnitListLeasePerson(BmUnit bmUnit); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java index f0e21180..81ad82db 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java @@ -56,11 +56,24 @@ public class SelectServiceImpl implements SelectService { List list; try { list = mapper.getUnitList(bmUnit); + list = list.stream() + .filter(Objects::nonNull) + .filter(unit -> unit.getId() != null && unit.getParentId() != null) + .collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(list)) { // 创建树形结构(数据集合作为参数) ProjectTreeBuild treeBuild = new ProjectTreeBuild(list); // 原查询结果转换树形结构 - groupList = treeBuild.buildTree(); + if (bmUnit.getDeptId() != null) { + groupList = treeBuild.buildTree(); + } else { + groupList = treeBuild.buildTree(); + // 获取已授权班组,进行数据拼接 + List newList = mapper.getTeam(); + if (CollectionUtils.isNotEmpty(newList)) { + groupList.addAll(newList); + } + } } } catch (Exception e) { log.error("单位类型树-查询失败", e); @@ -177,6 +190,66 @@ public class SelectServiceImpl implements SelectService { return AjaxResult.success(list); } + /** + * 领用申请往来单位下拉选专用 + * @param bmUnit + * @return + */ + @Override + public AjaxResult getUnitListLease(BmUnit bmUnit) { + // 获取登陆用户的组织ID + Long thisLoginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); + if (null == thisLoginUserDeptId || 0 == thisLoginUserDeptId) { + return AjaxResult.success(Collections.emptyList()); + } + // 判断是否开启过滤 + if (Objects.nonNull(bmUnit) && Objects.nonNull(bmUnit.getEnableFilter()) && bmUnit.getEnableFilter()) { + bmUnit.setDeptId(thisLoginUserDeptId); + } + + if (bmUnit.getIsApp() != null && bmUnit.getIsApp()) { + List list = mapper.getUnitListApp(bmUnit); + return AjaxResult.success(list); + } + List groupList = new ArrayList<>(); + List list; + try { + list = mapper.getUnitList(bmUnit); + list = list.stream() + .filter(Objects::nonNull) + .filter(unit -> unit.getId() != null && unit.getParentId() != null) + .collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(list)) { + // 创建树形结构(数据集合作为参数) + ProjectTreeBuild treeBuild = new ProjectTreeBuild(list); + // 原查询结果转换树形结构 + if (bmUnit.getDeptId() != null) { + groupList = treeBuild.buildTree(); + } else if (bmUnit.getProjectId() != null && bmUnit.getLeaseId() != null) { + groupList = treeBuild.buildTree(); + // 获取已授权班组,进行数据拼接 + List newList = mapper.getTeamLeaseList(bmUnit); + if (CollectionUtils.isNotEmpty(newList)) { + groupList.addAll(newList); + } + } + } + } catch (Exception e) { + log.error("单位类型树-查询失败", e); + } + return AjaxResult.success(groupList); + } + + /** + * 领用申请往来单位授权人员下拉 + * @param bmUnit + * @return + */ + @Override + public AjaxResult getUnitListLeasePerson(BmUnit bmUnit) { + return AjaxResult.success(mapper.getUnitListLeasePerson(bmUnit)); + } + // @Override // public AjaxResult getDictByPidCbx(SelectDto dto) { // List list = new ArrayList<>(); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml index 086393ad..18ade262 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml @@ -58,11 +58,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mt2.type_id AS thirdTypeId, mt.type_name AS typeModelName, mt.unit_name AS unit, - IFNULL(mt.lease_price, 0) AS buyPrice, + IFNULL(mt.lease_price, 0) AS buyPrice, + subquery3.proId AS proId, + subquery3.proName AS proName, IFNULL(subquery1.usNum, 0) AS storeNum, IFNULL(subquery3.usNum, 0) AS usNum, IFNULL(subquery1.usNum, 0) + IFNULL(subquery3.usNum, 0) - AS allNum, + AS allNum, CASE mt.manage_type WHEN 0 THEN '编码' @@ -80,71 +82,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mt2.type_name AS typeName, mt2.type_id AS thirdTypeId, mt.type_name AS typeModelName, - SUM(IFNULL( sai.num, 0 )) AS usNum + SUM(IFNULL( sai.num, 0 )) AS usNum, + bp.pro_name as proName, + bp.pro_id as proId FROM slt_agreement_info sai LEFT JOIN ma_type mt ON mt.type_id = sai.type_id LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id + LEFT JOIN bm_agreement_info bai ON sai.agreement_id = bai.agreement_id + LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id WHERE sai.`status` = '0' AND sai.end_time IS NULL AND sai.back_id IS NULL - GROUP BY mt.type_id + GROUP BY mt.type_id, bp.pro_id ) AS subquery1 ON mt.type_id = subquery1.type_id LEFT JOIN ( SELECT - subquery3.type_id, - subquery3.typeName, - subquery3.typeModelName, - IFNULL(subquery3.outNum, 0) AS outNum, - IFNULL(subquery4.backNum, 0) AS backNum, - CASE - - WHEN IFNULL(subquery3.outNum, 0) - IFNULL(subquery4.backNum, 0) > 0 THEN - IFNULL(subquery3.outNum, 0) - IFNULL(subquery4.backNum, 0) - ELSE 0 - END AS usNum - FROM ( - SELECT - mt.type_id, - mt4.type_name AS constructionType, - mt4.type_id AS firstTypeId, - mt3.type_name AS materialType, - mt3.type_id AS secondTypeId, - mt2.type_name AS typeName, - mt2.type_id AS thirdTypeId, - mt.type_name AS typeModelName, - SUM(IFNULL(lod.out_num, 0)) AS outNum - FROM clz_lease_out_details lod - LEFT JOIN ma_type mt ON mt.type_id = lod.type_id - LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id - LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id - LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id - WHERE lod.is_finished = '1' - GROUP BY mt.type_id) AS subquery3 - LEFT JOIN ( - SELECT mt.type_id, mt4.type_name AS constructionType, - mt4.type_id AS firstTypeId, + mt4.type_id AS firstTypeId, mt3.type_name AS materialType, - mt3.type_id AS secondTypeId, - mt2.type_name AS typeName, - mt2.type_id AS thirdTypeId, - mt.type_name AS typeModelName, - SUM(IFNULL(bcd.back_num, 0)) backNum - FROM clz_back_check_details bcd - LEFT JOIN ma_type mt ON mt.type_id = bcd.type_id + mt3.type_id AS secondTypeId, + mt2.type_name AS typeName, + mt2.type_id AS thirdTypeId, + mt.type_name AS typeModelName, + SUM(IFNULL( sai.num, 0 )) AS usNum, + bp.pro_name as proName, + bp.pro_id as proId + FROM + clz_slt_agreement_info sai + LEFT JOIN ma_type mt ON mt.type_id = sai.type_id LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id - LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id - WHERE bcd.is_finished = '1' - GROUP BY mt.type_id) AS subquery4 - ON subquery3.type_id = subquery4.type_id) AS subquery3 + LEFT JOIN clz_bm_agreement_info bai ON sai.agreement_id = bai.agreement_id + LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id + WHERE + sai.`status` = '0' + AND sai.end_time IS NULL + AND sai.back_id IS NULL + GROUP BY mt.type_id, bp.pro_id + ) AS subquery3 ON mt.type_id = subquery3.type_id LEFT JOIN ma_type mt2 on mt2.type_id = mt.parent_id LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id @@ -172,6 +154,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mt.type_name like concat('%',#{typeModelName},'%') + GROUP BY + mt.type_id, + subquery3.proId @@ -477,9 +478,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND bu.type_id = 36 AND bai.project_id = #{projectId} - - - - - + + + + + +