From 7ea92579a621e4946b19eb3905ad705f7d354e49 Mon Sep 17 00:00:00 2001 From: mashuai Date: Mon, 17 Nov 2025 18:14:24 +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 --- .../bonus/material/basic/domain/BmUnit.java | 3 + .../controller/MaterialMachineController.java | 21 +- .../machine/MaterialStorageExportInfo.java | 126 ++++++++ .../clz/domain/machine/StockExportParam.java | 23 ++ .../material/clz/domain/machine/StockKey.java | 19 ++ .../clz/mapper/MaterialMachineMapper.java | 31 ++ .../clz/service/MaterialMachineService.java | 8 + .../impl/MaterialMachineServiceImpl.java | 100 ++++++- .../common/controller/SelectController.java | 12 + .../material/common/mapper/SelectMapper.java | 23 +- .../common/service/SelectService.java | 14 + .../service/impl/SelectServiceImpl.java | 66 ++++- .../material/clz/MaterialMachineMapper.xml | 279 +++++++++++++++++- .../mapper/material/common/SelectMapper.xml | 94 ++++++ 14 files changed, 805 insertions(+), 14 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/MaterialStorageExportInfo.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/StockExportParam.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/StockKey.java 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 ade84fe9..d1bc627a 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 @@ -110,4 +110,7 @@ public class BmUnit extends BaseEntity */ private boolean enableFilterTeam; + @ApiModelProperty(value = "工程名称") + private String projectName; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/controller/MaterialMachineController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/controller/MaterialMachineController.java index 1d409375..dfffe23d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/controller/MaterialMachineController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/controller/MaterialMachineController.java @@ -10,6 +10,7 @@ import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.clz.domain.TeamVo; import com.bonus.material.clz.domain.machine.MaterialStorageDto; +import com.bonus.material.clz.domain.machine.MaterialStorageExportInfo; import com.bonus.material.clz.domain.machine.MaterialUseStorageInfo; import com.bonus.material.clz.domain.vo.*; import com.bonus.material.ma.domain.Machine; @@ -25,7 +26,6 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; import java.util.List; import java.util.stream.Collectors; @@ -106,6 +106,25 @@ public class MaterialMachineController extends BaseController { util.exportExcel(response, list, "工器具台账", title); } + /** + * 导出工期具台账明细 + * @param bean + * @return + */ + @ApiOperation(value = "综合查询--导出工期具台账明细") + @PostMapping("/exportRetainedEquipmentDetails") + public void exportRetainedEquipmentDetails(HttpServletResponse response, MaterialRetainedEquipmentInfo bean) { + List list = materialMachineService.getRetainedEquipmentDetails(bean); + // 根据list集合数,去填充序号 + for (int i = 0; i < list.size(); i++) { + list.get(i).setSeq(i + 1); + } + ExcelUtil util = new ExcelUtil<>(MaterialStorageExportInfo.class); + // 获取当前年月日时分秒导出时间,用括号拼接在后面 + String title = "工器具台账明细" + "(" + "导出时间:" + DateUtils.getTime() + ")"; + util.exportExcel(response, list, "工器具台账明细", title); + } + /** * 查询在库机具设备详情 * @param bean diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/MaterialStorageExportInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/MaterialStorageExportInfo.java new file mode 100644 index 00000000..d81f5fbc --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/MaterialStorageExportInfo.java @@ -0,0 +1,126 @@ +package com.bonus.material.clz.domain.machine; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 机具入库查询详情 + * @Author ma_sh + * @create 2024/12/19 9:50 + */ +@Data +public class MaterialStorageExportInfo { + + @ApiModelProperty(value = "主键id") + private Integer id; + + @ApiModelProperty(value = "序号") + @Excel(name = "序号", width = 5, cellType = Excel.ColumnType.NUMERIC) + private Integer seq; + + @ApiModelProperty(value = "分公司") + @Excel(name = "分公司") + private String impUnitName; + + @ApiModelProperty(value = "项目部") + @Excel(name = "项目部", width = 25) + private String departName; + + @ApiModelProperty(value = "项目部id") + private String departId; + + @ApiModelProperty(value = "班组id") + private String teamId; + + @ApiModelProperty(value = "班组名称") + @Excel(name = "班组名称") + private String teamName; + + @ApiModelProperty(value = "分包单位") + @Excel(name = "分包单位", width = 25) + private String subUnitName; + + @ApiModelProperty(value = "工程名称") + @Excel(name = "工程名称", width = 60) + private String proName; + + @ApiModelProperty(value = "机具名称") + @Excel(name = "机具名称") + private String typeName; + + @ApiModelProperty(value = "规格ID") + private Integer typeId; + + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号") + private String typeModelName; + + @ApiModelProperty(value = "入库数量") + @Excel(name = "数量", cellType = Excel.ColumnType.NUMERIC) + private BigDecimal storeNum; + + @ApiModelProperty(value = "购置单价") + //@Excel(name = "租赁价(元)") + private BigDecimal buyPrice; + + @ApiModelProperty(value = "设备编码") + @Excel(name = "设备编码") + private String maCode; + + @ApiModelProperty(value = "库管员") + private String maKeeper; + + @ApiModelProperty(value = "操作人") + //@Excel(name = "操作人") + private String inputUser; + + @ApiModelProperty(value = "操作人") + //@Excel(name = "操作人") + private String creator; + + @ApiModelProperty(value = "出库时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + //@Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date outTime; + + @ApiModelProperty(value = "创建时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + //@Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date inputTime; + + @ApiModelProperty(value = "入库方式") + private String inputType; + + @ApiModelProperty(value = "关键字") + private String keyWord; + + @ApiModelProperty(value = "领料id") + private String leaseId; + + @ApiModelProperty(value = "领料编码") + private String code; + + @ApiModelProperty(value = "工程id") + private String proId; + + @ApiModelProperty(value = "编码ID") + private String maId; + + @ApiModelProperty(value = "管理方式(0编号 1计数)") + private String manageType; + + @ApiModelProperty(value = "是否分包直领标志(0 是 1 否)") + private String subFlag; + + @ApiModelProperty(value = "是否直转标志(0 是 1 否)") + @Excel(name = "是否直转", width = 10, readConverterExp = "0=是,1=否") + private String directFlag; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/StockExportParam.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/StockExportParam.java new file mode 100644 index 00000000..a4c42a2e --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/StockExportParam.java @@ -0,0 +1,23 @@ +package com.bonus.material.clz.domain.machine; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Author ma_sh + * @create 2025/11/17 16:47 + */ +@Data +public class StockExportParam { + private String proId; + private Integer typeId; + private BigDecimal allNum; + + public StockExportParam(String proId, Integer typeId, BigDecimal allNum) { + this.proId = proId; + this.typeId = typeId; + this.allNum = allNum; + } + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/StockKey.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/StockKey.java new file mode 100644 index 00000000..ddab3bf8 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/machine/StockKey.java @@ -0,0 +1,19 @@ +package com.bonus.material.clz.domain.machine; + +import lombok.Data; + +/** + * @Author ma_sh + * @create 2025/11/17 16:49 + */ +@Data +public class StockKey { + + private String proId; + private Integer typeId; + + public StockKey(String proId, Integer typeId) { + this.proId = proId; + this.typeId = typeId; + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/mapper/MaterialMachineMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/mapper/MaterialMachineMapper.java index 0a28a339..7d9b1b96 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/mapper/MaterialMachineMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/mapper/MaterialMachineMapper.java @@ -3,7 +3,9 @@ package com.bonus.material.clz.mapper; import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.basic.domain.BmQrcodeInfo; import com.bonus.material.clz.domain.TeamVo; +import com.bonus.material.clz.domain.machine.MaterialStorageExportInfo; import com.bonus.material.clz.domain.machine.MaterialUseStorageInfo; +import com.bonus.material.clz.domain.machine.StockExportParam; import com.bonus.material.clz.domain.vo.*; import com.bonus.material.ma.domain.Machine; import com.bonus.material.clz.domain.BmTeam; @@ -349,4 +351,33 @@ public interface MaterialMachineMapper { * @return */ int updateMachine(BmQrcodeInfo bmQrcodeInfo); + + /** + * 批量查询领用数据 + * @param bean + * @return + */ + List getUseDetailsList(MaterialRetainedEquipmentInfo bean); + + /** + * 分包领用明细 + * @param bean + * @return + */ + List getSubInfoDetailsList(MaterialRetainedEquipmentInfo bean); + + + /** + * 批量查询库存量 + * @param queryParams + * @return + */ + List batchGetMaCodeExportList(List queryParams); + + /** + * 批量查询在用量 + * @param queryParams + * @return + */ + List batchGetMaCodeDetails(List queryParams); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/MaterialMachineService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/MaterialMachineService.java index 4a3f327f..4aaa2637 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/MaterialMachineService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/MaterialMachineService.java @@ -2,6 +2,7 @@ package com.bonus.material.clz.service; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.clz.domain.TeamVo; +import com.bonus.material.clz.domain.machine.MaterialStorageExportInfo; import com.bonus.material.clz.domain.machine.MaterialUseStorageInfo; import com.bonus.material.clz.domain.vo.*; import com.bonus.material.ma.domain.Machine; @@ -198,4 +199,11 @@ public interface MaterialMachineService { * @return */ List getUseDemandAndSupply(MaterialRetainedEquipmentInfo bean); + + /** + * 导出工期具台账明细 + * @param bean + * @return + */ + List getRetainedEquipmentDetails(MaterialRetainedEquipmentInfo bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java index 37bdcb3c..7779dafa 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java @@ -8,15 +8,13 @@ import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.basic.domain.BmProject; import com.bonus.material.clz.domain.TeamVo; import com.bonus.material.clz.domain.lease.MaterialLeaseApplyInfo; -import com.bonus.material.clz.domain.machine.MaterialUseStorageInfo; +import com.bonus.material.clz.domain.machine.*; import com.bonus.material.clz.domain.vo.*; -import com.bonus.material.clz.mapper.IwsTeamUserMapper; import com.bonus.material.common.domain.dto.SelectDto; import com.bonus.material.common.domain.vo.AgreementVo; import com.bonus.material.common.mapper.SelectMapper; import com.bonus.material.ma.domain.Machine; import com.bonus.material.clz.domain.BmTeam; -import com.bonus.material.clz.domain.machine.MaterialStorageInfo; import com.bonus.material.clz.mapper.MaterialMachineMapper; import com.bonus.material.clz.service.MaterialMachineService; import lombok.extern.slf4j.Slf4j; @@ -1610,6 +1608,102 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { return totalList; } + /** + * 导出工期具台账明细 + * @param bean + * @return + */ + @Override + public List getRetainedEquipmentDetails(MaterialRetainedEquipmentInfo bean) { + String username = SecurityUtils.getLoginUser().getUsername(); + // 根据用户名判断用户是否为班组长 + BmTeam teamData = materialMachineMapper.getTeamData(username); + Set userRoles = SecurityUtils.getLoginUser().getRoles(); + // 检查用户是否具有特殊角色 + boolean hasSpecialRole = hasSpecialRole(userRoles); + if (!hasSpecialRole) { + if (teamData == null) { + // 根据用户名查询项目部信息 + List departId = mapper.getDepartId(username); + if (CollectionUtils.isNotEmpty(departId)) { + // 根据项目部id查询工程信息 + List projectIdList = mapper.getProjectId(departId); + if (!org.springframework.util.CollectionUtils.isEmpty(projectIdList)) { + bean.setProjectIdList(projectIdList); + } + } + // 部门查询赋值 + extractedDept(bean); + } + } + ArrayList resultList = new ArrayList<>(); + // 2. 批量查询三类设备原始数据 + // 在用明细 + List usingEquipList = materialMachineMapper.getUseDetailsList(bean); + + if (CollectionUtils.isNotEmpty(usingEquipList)) { + resultList.addAll(usingEquipList); + } + // 站内库存明细 + List recordList = materialMachineMapper.getRetainInfoList(bean); + if (CollectionUtils.isNotEmpty(recordList)) { + // 1. 批量收集查询参数(proId+typeId+allNum) + List queryParams = recordList.stream() + .map(equip -> new StockExportParam( + equip.getProId(), + equip.getTypeId(), + equip.getAllNum() + )) + .collect(Collectors.toList()); + + // 2. 批量查询:库存列表 + 已使用列表 + List allStockList = materialMachineMapper.batchGetMaCodeExportList(queryParams); + List allUsedList = materialMachineMapper.batchGetMaCodeDetails(queryParams); + + // 3. 分组:按 (proId+typeId) 分组,便于快速匹配 + Map> stockGroupMap = allStockList.stream() + .collect(Collectors.groupingBy(stock -> new StockKey(stock.getProId(), stock.getTypeId()))); + + Map> usedMaIdGroupMap = allUsedList.stream() + // 过滤有效maId + .filter(used -> StringUtils.hasText(used.getMaId())) + .collect(Collectors.groupingBy( + used -> new StockKey(used.getProId(), used.getTypeId()), + // 每组已使用设备只保留maId集合(用于过滤) + Collectors.mapping(MaterialStorageInfo::getMaId, Collectors.toSet()) + )); + + // 4. 统一处理:赋值库存数量 + 过滤已使用设备(无循环) + List processedStockList = queryParams.stream() + // 按参数的proId+typeId获取对应库存列表 + .flatMap(param -> { + StockKey key = new StockKey(param.getProId(), param.getTypeId()); + List stockList = stockGroupMap.getOrDefault(key, Collections.emptyList()); + Set usedMaIds = usedMaIdGroupMap.getOrDefault(key, Collections.emptySet()); + + // 处理单组库存:赋值数量 + 过滤已使用 + return stockList.stream() + // 赋值库存数量(按manageType判断) + .peek(item -> { + item.setStoreNum("0".equals(item.getManageType()) ? BigDecimal.ONE : param.getAllNum()); + item.setTeamName("站内库存"); + }) + // 过滤已使用的设备(maId不在已使用集合中) + .filter(item -> !usedMaIds.contains(item.getMaId())); + }) + .collect(Collectors.toList()); + + // 5. 结果整合 + resultList.addAll(processedStockList); + } + // 分包领用明细 + List subEquipList = materialMachineMapper.getSubInfoDetailsList(bean); + if (CollectionUtils.isNotEmpty(subEquipList)) { + resultList.addAll(subEquipList); + } + return resultList; + } + /** * 设置分公司名称(如果有) * @param impUnit 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 345abb0d..2f635dd7 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 @@ -43,6 +43,18 @@ public class SelectController { return AjaxResult.success(list); } + @ApiOperation(value = "根据工程名称查询所属项目部下拉选") + @PostMapping("getDepartList") + public AjaxResult getDepartList(@RequestBody BmUnit bmUnit) { + return service.getDepartList(bmUnit); + } + + @ApiOperation(value = "协议往来单位下拉选") + @PostMapping("getAgreementUnitList") + public AjaxResult getAgreementUnitList(@RequestBody BmUnit bmUnit) { + return service.getAgreementUnitList(bmUnit); + } + @ApiOperation(value = "往来单位下拉选") @PostMapping("getUnitList") public AjaxResult getUnitList(@RequestBody BmUnit bmUnit) { 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 f9f9a71a..5d3dabb6 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 @@ -219,7 +219,7 @@ public interface SelectMapper { * 获取班组下拉选 * @return */ - List getTeam(); + List getTeam(List teamIds); /** * 获取领用申请单位下拉 @@ -478,4 +478,25 @@ public interface SelectMapper { * @return */ List getMaterialUnitList(BmUnit bmUnit); + + /** + * 根据工程id想查询已授权班组id + * @param projectId + * @return + */ + List getTeamIds(Long projectId); + + /** + * 获取项目部下拉选 + * @param bmUnit + * @return + */ + List getDepartInfo(BmUnit bmUnit); + + /** + * 根据工程名称查询所属项目部 + * @param bmUnit + * @return + */ + String getDepartName(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 c39f6f72..cb94001c 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 @@ -311,4 +311,18 @@ public interface SelectService { * @return */ AjaxResult getMaterialUnitList(BmUnit bmUnit); + + /** + * 根据工程名称查询所属项目部下拉选 + * @param bmUnit + * @return + */ + AjaxResult getDepartList(BmUnit bmUnit); + + /** + * 协议往来单位下拉选 + * @param bmUnit + * @return + */ + AjaxResult getAgreementUnitList(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 ea283d89..615fdaae 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 @@ -117,7 +117,7 @@ public class SelectServiceImpl implements SelectService { // 步骤7: 获取班组数据(可选) if (bmUnit.getDeptId() == null) { long teamStart = System.currentTimeMillis(); - List newList = mapper.getTeam(); + List newList = mapper.getTeam(new ArrayList<>()); stepTimes.put("获取班组数据", System.currentTimeMillis() - teamStart); if (CollectionUtils.isNotEmpty(newList) && !bmUnit.isEnableFilterTeam()) { @@ -703,7 +703,7 @@ public class SelectServiceImpl implements SelectService { if (CollectionUtils.isNotEmpty(list)) { groupList = buildTreeEfficiently(list); - List newList = mapper.getTeam(); + List newList = mapper.getTeam(new ArrayList<>()); if (CollectionUtils.isNotEmpty(newList) && !bmUnit.isEnableFilterTeam()) { groupList.addAll(newList); } @@ -715,6 +715,68 @@ public class SelectServiceImpl implements SelectService { return AjaxResult.success(groupList); } + /** + * 根据工程名称查询所属项目部下拉选 + * @param bmUnit + * @return + */ + @Override + public AjaxResult getDepartList(BmUnit bmUnit) { + // 根据工程名称查询所属项目部 + String departName = mapper.getDepartName(bmUnit); + List groupList = new ArrayList<>(); + List list; + try { + bmUnit.setUnitName(departName); + list = mapper.getDepartInfo(bmUnit); + if (list != null) { + list = list.stream() + .filter(Objects::nonNull) + .filter(unit -> unit.getId() != null && unit.getParentId() != null) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(list)) { + groupList = buildTreeEfficiently(list); + } + } catch (Exception e) { + log.error("单位类型树-查询失败", e); + } + return AjaxResult.success(groupList); + } + + /** + * 协议往来单位下拉选 + * @param bmUnit + * @return + */ + @Override + public AjaxResult getAgreementUnitList(BmUnit bmUnit) { + List groupList = new ArrayList<>(); + List list; + try { + list = mapper.getUnitList(bmUnit); + if (list != null) { + list = list.stream() + .filter(Objects::nonNull) + .filter(unit -> unit.getId() != null && unit.getParentId() != null) + .collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(list)) { + groupList = buildTreeEfficiently(list); + List teamIds = new ArrayList<>(); + // 根据工程id想查询已授权班组id + if (bmUnit.getProjectId() != null) { + teamIds = mapper.getTeamIds(bmUnit.getProjectId()); + } + List newList = mapper.getTeam(teamIds); + groupList.addAll(newList); + } + } 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/resources/mapper/material/clz/MaterialMachineMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml index ffd25a37..62468eda 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 @@ -246,7 +246,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" CASE WHEN lai.direct_id IS NULL THEN '1' ELSE '0' - END AS directFlag + END AS directFlag, + mt.manage_type AS manageType FROM slt_agreement_info sai LEFT JOIN ma_type mt ON mt.type_id = sai.type_id @@ -1359,7 +1360,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND sd.dept_name = #{impUnitName} - AND bp.pro_name = #{proName} + AND bp.pro_name LIKE CONCAT('%', #{proName}, '%') AND bp.pro_center = #{departName} @@ -1432,7 +1433,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND sd.dept_name = #{impUnitName} - AND bp.pro_name = #{proName} + AND bp.pro_name LIKE CONCAT('%', #{proName}, '%') AND bp.pro_center = #{departName} @@ -1528,7 +1529,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND sd.dept_name = #{impUnitName} - AND bp.pro_name = #{proName} + AND bp.pro_name LIKE CONCAT('%', #{proName}, '%') AND bp.pro_center = #{departName} @@ -1558,7 +1559,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND mt.jiju_type = #{jiJuType} GROUP BY - mt.type_id, bu.unit_name, bp.pro_name + mt.type_id, bu.unit_id, bp.pro_id + + + + + + + + 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 ce806ec3..5d81ddea 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 @@ -565,6 +565,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE bu.del_flag = '0' AND bu.type_id = 1731 + + AND bu.unit_id IN + + #{item} + + + + + + + +