From aa913f67dc68ef2a67d838fb0c080a1e50b01ca1 Mon Sep 17 00:00:00 2001 From: mashuai Date: Tue, 11 Nov 2025 11:21:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/controller/SelectController.java | 13 ++- .../material/common/mapper/SelectMapper.java | 7 ++ .../common/service/SelectService.java | 7 ++ .../service/impl/SelectServiceImpl.java | 61 +++++++++++++ .../impl/LeaseApplyInfoServiceImpl.java | 6 +- .../material/back/BackApplyInfoMapper.xml | 3 +- .../mapper/material/common/SelectMapper.xml | 88 +++++++++++++++++++ 7 files changed, 182 insertions(+), 3 deletions(-) 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 16088b8c..2b050913 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 @@ -49,6 +49,17 @@ public class SelectController { return service.getUnitList(bmUnit); } + /** + * todo 领料申请往来单位下拉选,剔除已结算单位数据 + * @param bmUnit + * @return + */ + @ApiOperation(value = "领料申请往来单位下拉选") + @PostMapping("getMaterialUnitList") + public AjaxResult getMaterialUnitList(@RequestBody BmUnit bmUnit) { + return service.getMaterialUnitList(bmUnit); + } + @ApiOperation(value = "单位下拉选--项目部--过滤班组") @PostMapping("getUnitProDepList") public AjaxResult getUnitProDepList(@RequestBody BmUnit bmUnit) { @@ -106,7 +117,7 @@ public class SelectController { } /** - * 领料工程下拉选 + * todo 领料申请工程下拉选,剔除已结算工程数据 * @param bmProject * @return */ 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 026c7644..f9f9a71a 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 @@ -471,4 +471,11 @@ public interface SelectMapper { * @return */ List selectMaterialProjectList(BmProject bmProject); + + /** + * 获取单位下拉选 + * @param bmUnit + * @return + */ + List getMaterialUnitList(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 094ce5a8..c39f6f72 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 @@ -304,4 +304,11 @@ public interface SelectService { * @return */ AjaxResult getMaterialProjectList(BmProject bmProject); + + /** + * 领料单位下拉选 + * @param bmUnit + * @return + */ + AjaxResult getMaterialUnitList(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 6b96c668..bb490620 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 @@ -650,6 +650,67 @@ public class SelectServiceImpl implements SelectService { return AjaxResult.success(groupList); } + /** + * 领料单位下拉选 + * @param bmUnit + * @return + */ + @Override + public AjaxResult getMaterialUnitList(BmUnit bmUnit) { + // 性能监控开始 + long startTime = System.currentTimeMillis(); + Map stepTimes = new LinkedHashMap<>(); + + log.info("=== getUnitList开始执行,参数: {}", bmUnit); + + // 步骤1: 获取登陆用户的组织ID + long step1Start = System.currentTimeMillis(); + Long thisLoginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); + stepTimes.put("获取用户组织ID", System.currentTimeMillis() - step1Start); + + if (null == thisLoginUserDeptId || 0 == thisLoginUserDeptId) { + long totalTime = System.currentTimeMillis() - startTime; + log.info("用户组织ID为空,直接返回空列表,总耗时: {}ms", totalTime); + return AjaxResult.success(Collections.emptyList()); + } + + // 步骤3: 判断是否是app模式 + if (bmUnit.getIsApp() != null && bmUnit.getIsApp()) { + long appStart = System.currentTimeMillis(); + List list = mapper.getUnitListApp(bmUnit); + stepTimes.put("App模式查询", System.currentTimeMillis() - appStart); + + return AjaxResult.success(list); + } + + List groupList = new ArrayList<>(); + List list; + try { + // 步骤4: 数据库查询 + list = mapper.getMaterialUnitList(bmUnit); + + // 步骤5: 数据过滤 + if (list != null) { + list = list.stream() + .filter(Objects::nonNull) + .filter(unit -> unit.getId() != null && unit.getParentId() != null) + .collect(Collectors.toList()); + + if (bmUnit.isEnableFilterTeam()) { + list.removeIf(item -> Objects.equals("0101", item.getTypeKey())); + } + } + + if (CollectionUtils.isNotEmpty(list)) { + groupList = buildTreeEfficiently(list); + } + } catch (Exception e) { + log.error("单位类型树-查询失败", e); + } + + return AjaxResult.success(groupList); + } + @Override public AjaxResult getDeviceTypeTree(SelectDto dto) { List groupList = new ArrayList<>(); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java index 5287030d..9a075f2f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java @@ -787,7 +787,11 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { || leaseApplyInfo.getStatusList().containsAll(Arrays.asList(3, 4, 5))) { // 过滤sortedList中leaseSignUrl或者leaseSignId不为空的数据 sortedList = sortedList.stream() - .filter(item -> StringUtils.isNotBlank(item.getSignUrl()) || item.getSignId() != null) + .filter(item -> + // 状态等于4时,为出库完成,直接保留 + item.getTaskStatus() == 4 + // 状态不等于4时,需满足 signUrl非空 或 signId非空 + || (StringUtils.isNotBlank(item.getSignUrl()) || item.getSignId() != null)) .collect(Collectors.toList()); } } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml index 27a0f187..fe9cf549 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml @@ -1509,7 +1509,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material, car_code as carCode, add_date as addDate, - code as code + code as code, + remark as remark FROM bm_exit_permit WHERE diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml index 570d817a..87fddeca 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml @@ -1458,4 +1458,92 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY level + +