From e844e4a0a3372b1dba1a0fb002e39bf5b8202496 Mon Sep 17 00:00:00 2001 From: mashuai Date: Tue, 30 Sep 2025 19:15:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=90=E6=96=99=E7=AB=99=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BmQrcodeInfoController.java | 2 +- .../vo/MaterialRetainedTeamTotalVo.java | 3 +- .../clz/mapper/MaterialMachineMapper.java | 7 ++ .../impl/MaterialMachineServiceImpl.java | 118 +++++++++--------- .../material/clz/MaterialMachineMapper.xml | 96 +++++++++++++- 5 files changed, 161 insertions(+), 65 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmQrcodeInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmQrcodeInfoController.java index 2e39c878..927aa767 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmQrcodeInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmQrcodeInfoController.java @@ -88,7 +88,7 @@ public class BmQrcodeInfoController extends BaseController */ @ApiOperation(value = "新增二维码管理") @PreventRepeatSubmit - @RequiresPermissions("basic:info:add") + //@RequiresPermissions("basic:info:add") @SysLog(title = "二维码管理", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增二维码管理") @PostMapping("/add") public AjaxResult add(@RequestBody BmQrcodeInfo bmQrcodeInfo) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedTeamTotalVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedTeamTotalVo.java index 19e4450d..09c4dbad 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedTeamTotalVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedTeamTotalVo.java @@ -4,6 +4,7 @@ import com.bonus.common.core.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.apache.poi.ss.usermodel.HorizontalAlignment; import java.math.BigDecimal; @@ -30,7 +31,7 @@ public class MaterialRetainedTeamTotalVo { private String teamLeaderIdCard; @ApiModelProperty(value = "在用数量") - @Excel(name = "库存") + @Excel(name = "库存", cellType = Excel.ColumnType.NUMERIC, align = HorizontalAlignment.RIGHT) private BigDecimal usNum; @ApiModelProperty(value = "关键字") 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 7f8a74db..8c883b4a 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 @@ -306,4 +306,11 @@ public interface MaterialMachineMapper { * @return */ List batchQueryUseDemand(@Param("list") List> queryParams); + + /** + * 查询分包商领用数据 + * @param bean + * @return + */ + List getSubInfoList(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 518ba52a..f6ac58d1 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 @@ -168,13 +168,18 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { // 查询目前在用的设备信息 List usList = materialMachineMapper.getUsInfoList(bean); - // 查询目前还有库存的设备 + // 查询目前还有库存的设备,仅查单位类型为项目部的 List recordList = materialMachineMapper.getRetainInfoList(bean); + // 查询分包商领用数据,不作为库存,作为再用数据 + List subList = materialMachineMapper.getSubInfoList(bean); // 数据合并 if (!CollectionUtils.isEmpty(recordList)) { usList.addAll(recordList); } + if (!CollectionUtils.isEmpty(subList)) { + usList.addAll(subList); + } if (!CollectionUtils.isEmpty(usList)) { if (teamData != null) { @@ -305,9 +310,11 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { } List list = materialMachineMapper.getTeamUseNumList(bean); Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); - if (!CollectionUtils.isEmpty(list) && deptId != null) { - // 删除元素 - list.removeIf(m -> !deptId.toString().equals(m.getImpUnit())); + if (teamData == null) { + if (!CollectionUtils.isEmpty(list) && deptId != null) { + // 删除元素 + list.removeIf(m -> !deptId.toString().equals(m.getImpUnit())); + } } if (!org.springframework.util.CollectionUtils.isEmpty(list)) { if (teamData != null) { @@ -315,9 +322,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { list = list.stream() .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) .collect(Collectors.toList()); - } /*else { - list = filterInfo(list, username); - }*/ + } } if (CollectionUtils.isNotEmpty(list)) { @@ -415,16 +420,12 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { list = list.stream() .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) .collect(Collectors.toList()); - } /*else { - list = filterInfoTools(list, username); - }*/ + } } // 根据用户名判断用户是否为班组长 if (CollectionUtils.isNotEmpty(list)) { list1 = groupByThirdTypeId(list); - } /*else if (CollectionUtils.isNotEmpty(totalList)) { - list1 = groupByThirdTypeId(totalList); - }*/ + } return list1; } catch (Exception e){ log.error("获取设备台账列表失败,参数:{}", bean, e); @@ -488,9 +489,11 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { // 查询clz_slt_agreement_info数据 List list = materialMachineMapper.getTeamUseNumDetailsList(bean); Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); - if (!CollectionUtils.isEmpty(primaryList) && deptId != null) { - // 删除元素 - primaryList.removeIf(m -> !deptId.toString().equals(m.getImpUnit())); + if (teamData == null) { + if (!CollectionUtils.isEmpty(primaryList) && deptId != null) { + // 删除元素 + primaryList.removeIf(m -> !deptId.toString().equals(m.getImpUnit())); + } } if (CollectionUtils.isEmpty(primaryList)) { return new MaterialRetainedEquipmentInfo(); @@ -851,18 +854,13 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { BigDecimal inRopeNum = BigDecimal.ZERO; // 获取在用量 - List useInfoList = materialMachineMapper.getRetainTotalInfo(bean); + //List useInfoList = materialMachineMapper.getRetainTotalInfo(bean); + List useInfoList = materialMachineMapper.getUsInfoList(bean); // 分别获取useInfoList中以unitValue分组的usNum数量,展示出来 if (!CollectionUtils.isEmpty(useInfoList)) { // 过滤掉不在未结算工程集合内的设备 - Iterator iterator = useInfoList.iterator(); - while (iterator.hasNext()) { - MaterialRetainedEquipmentInfo infos = iterator.next(); - if (infos.getProId() == null || !unsettledProjectIds.contains(infos.getProId())) { - // 如果 proId 不在未结算集合中,则移除 - iterator.remove(); - } - } + // 如果 proId 不在未结算集合中,则移除 + useInfoList.removeIf(infos -> infos.getProId() == null || !unsettledProjectIds.contains(infos.getProId())); useCountNum = useInfoList.stream() .filter(item -> "0".equals(item.getUnitValue())) @@ -880,40 +878,20 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { List recordList = materialMachineMapper.getRetainInfoList(bean); if (CollectionUtils.isNotEmpty(recordList)) { // 过滤掉不在未结算工程集合内的设备 - Iterator iterator = recordList.iterator(); - while (iterator.hasNext()) { - MaterialRetainedEquipmentInfo infos = iterator.next(); - if (infos.getProId() == null || !unsettledProjectIds.contains(infos.getProId())) { - // 如果 proId 不在未结算集合中,则移除 - iterator.remove(); - } - } + // 如果 proId 不在未结算集合中,则移除 + recordList.removeIf(infos -> infos.getProId() == null || !unsettledProjectIds.contains(infos.getProId())); inCountNum = recordList.stream() - .filter(item -> "0".equals(item.getUnitValue()) && !"32".equals(item.getUnitType())) + .filter(item -> "0".equals(item.getUnitValue())) .map(MaterialRetainedEquipmentInfo::getAllNum) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); inRopeNum = recordList.stream() - .filter(item -> "1".equals(item.getUnitValue()) && !"32".equals(item.getUnitType()) ) + .filter(item -> "1".equals(item.getUnitValue())) .map(MaterialRetainedEquipmentInfo::getAllNum) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); - - useCountNumSub = recordList.stream() - .filter(item -> "0".equals(item.getUnitValue()) && "32".equals(item.getUnitType())) - .map(MaterialRetainedEquipmentInfo::getAllNum) - .reduce(BigDecimal::add) - .orElse(BigDecimal.ZERO); - - useRopeNumSub = recordList.stream() - .filter(item -> "1".equals(item.getUnitValue()) && "32".equals(item.getUnitType())) - .map(MaterialRetainedEquipmentInfo::getAllNum) - .reduce(BigDecimal::add) - .orElse(BigDecimal.ZERO); - - // 获取到recordList中externalId不为null且去重的总数(转换为Integer类型) info.setProNum((int) recordList.stream() .map(MaterialRetainedEquipmentInfo::getProName) @@ -923,18 +901,32 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { } else { info.setProNum(0); } + + // 查询分包商领用数据,不作为库存,作为再用数据 + List subList = materialMachineMapper.getSubInfoList(bean); + if (CollectionUtils.isNotEmpty(subList)) { + // 过滤掉不在未结算工程集合内的设备 + // 如果 proId 不在未结算集合中,则移除 + subList.removeIf(infos -> infos.getProId() == null || !unsettledProjectIds.contains(infos.getProId())); + + useCountNumSub = subList.stream() + .filter(item -> "0".equals(item.getUnitValue())) + .map(MaterialRetainedEquipmentInfo::getAllNum) + .reduce(BigDecimal::add) + .orElse(BigDecimal.ZERO); + + useRopeNumSub = subList.stream() + .filter(item -> "1".equals(item.getUnitValue())) + .map(MaterialRetainedEquipmentInfo::getAllNum) + .reduce(BigDecimal::add) + .orElse(BigDecimal.ZERO); + } // 查询目前在用的设备信息 List usList = materialMachineMapper.getUsInfoList(bean); if (CollectionUtils.isNotEmpty(usList)) { // 过滤掉不在未结算工程集合内的设备 - Iterator iterator = usList.iterator(); - while (iterator.hasNext()) { - MaterialRetainedEquipmentInfo infos = iterator.next(); - if (infos.getProId() == null || !unsettledProjectIds.contains(infos.getProId())) { - // 如果 proId 不在未结算集合中,则移除 - iterator.remove(); - } - } + // 如果 proId 不在未结算集合中,则移除 + usList.removeIf(infos -> infos.getProId() == null || !unsettledProjectIds.contains(infos.getProId())); // 获取usList中的班组id,且去重的数量 info.setTeamNum((int) usList.stream() @@ -1148,7 +1140,11 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { // 部门查询赋值 extractedDept(bean); } - return materialMachineMapper.getTeamList(bean); + MaterialRetainedEquipmentInfo materialRetainedEquipmentInfo = new MaterialRetainedEquipmentInfo(); + materialRetainedEquipmentInfo.setTeamName("站内库存"); + List teamList = materialMachineMapper.getTeamList(bean); + teamList.add(0, materialRetainedEquipmentInfo); + return teamList; } /** @@ -1175,7 +1171,11 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { // 部门查询赋值 extractedDept(bean); } - return materialMachineMapper.getSubUnitList(bean); + MaterialRetainedEquipmentInfo materialRetainedEquipmentInfo = new MaterialRetainedEquipmentInfo(); + materialRetainedEquipmentInfo.setSubUnitName("分包直领"); + List list = materialMachineMapper.getSubUnitList(bean); + list.add(0, materialRetainedEquipmentInfo); + return list; } /** 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 5e9c7694..0c2f7720 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 @@ -346,6 +346,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sai.status = '0' AND sai.end_time IS NULL AND sai.back_id IS NULL + AND sai.ma_id IS NOT NULL and mt2.type_id = #{typeId} @@ -1321,8 +1322,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" '数量' END manageType, subquery1.teamName AS teamName, - subquery1.unitType as unitType, - IF( subquery1.unitType= 32,"机具分包领用",'/' )AS subUnitName, + '/' AS subUnitName, mt.unit_value AS unitValue, CASE mt.jiju_type WHEN 2 THEN @@ -1349,8 +1349,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bu.bzz_idcard AS idCard, df.project_dept AS proCenter, sd.dept_name AS departName, - bu.type_id AS unitType, - if(bu.type_id=32,bu.unit_name,'站内库存' ) AS teamName + '站内库存' AS teamName FROM slt_agreement_info sai LEFT JOIN ma_type mt ON mt.type_id = sai.type_id @@ -1369,6 +1368,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND sai.end_time IS NULL AND sai.back_id IS NULL AND bp.external_id IS NOT NULL + AND bu.type_id = 36 AND sd.dept_name like concat('%',#{impUnitName},'%') @@ -1387,6 +1387,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND '站内库存' like concat('%',#{teamName},'%') + + AND '站内库存' like concat('%',#{subUnitName},'%') + and bp.external_id in @@ -1452,6 +1455,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND '站内库存' like concat('%',#{teamName},'%') + + AND '站内库存' like concat('%',#{subUnitName},'%') + AND mt.type_name like concat('%',#{typeModelName},'%') @@ -2303,4 +2309,86 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" lpd.project_id, lpd.type_id + +