diff --git a/sgzb-modules/sgzb-base/src/main/resources/mapper/base/MaMachineMapper.xml b/sgzb-modules/sgzb-base/src/main/resources/mapper/base/MaMachineMapper.xml index 528d3b75..4c92454d 100644 --- a/sgzb-modules/sgzb-base/src/main/resources/mapper/base/MaMachineMapper.xml +++ b/sgzb-modules/sgzb-base/src/main/resources/mapper/base/MaMachineMapper.xml @@ -362,6 +362,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE a.parentId is not null \ No newline at end of file diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseMacodeInfoController.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseMacodeInfoController.java index bbf4927e..62dd225e 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseMacodeInfoController.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseMacodeInfoController.java @@ -53,8 +53,9 @@ public class PurchaseMacodeInfoController extends BaseController { @ApiOperation(value = "查询单个新购验收编号管理列表详情") @GetMapping("/details") public AjaxResult details(PurchaseMacodeInfo purchaseMacodeInfo) throws Exception { - if (purchaseMacodeInfo.getTaskId() == null || purchaseMacodeInfo.getTaskId() == 0) { - throw new Exception("任务taskId为空!!!"); + if (purchaseMacodeInfo.getTaskId() == null || purchaseMacodeInfo.getTaskId() == 0 + || purchaseMacodeInfo.getTypeId() == null || purchaseMacodeInfo.getTypeId() == 0) { + throw new Exception("任务taskId或者类型typeId为空!!!"); } List list = purchaseMacodeInfoService.selectPurchaseMacodeInfoListDetails(purchaseMacodeInfo); return AjaxResult.success(list); diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/PurchaseMacodeInfoServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/PurchaseMacodeInfoServiceImpl.java index 3b850d0b..811a1490 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/PurchaseMacodeInfoServiceImpl.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/PurchaseMacodeInfoServiceImpl.java @@ -2,13 +2,9 @@ package com.bonus.sgzb.material.service.impl; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; -import com.alibaba.fastjson.JSONObject; import com.bonus.sgzb.base.api.domain.*; import com.bonus.sgzb.common.core.utils.StringUtils; import com.bonus.sgzb.common.core.web.domain.AjaxResult; @@ -18,7 +14,6 @@ import com.bonus.sgzb.material.mapper.*; import com.bonus.sgzb.material.service.IPurchaseCheckInfoService; import com.bonus.sgzb.material.service.IPurchaseMacodeInfoService; import com.bonus.sgzb.common.core.utils.DateUtils; -import com.bonus.sgzb.material.vo.EquipmentNumberVO; import com.bonus.sgzb.material.vo.GlobalContants; import com.bonus.sgzb.material.vo.MaInputVO; import lombok.extern.slf4j.Slf4j; @@ -74,21 +69,32 @@ public class PurchaseMacodeInfoServiceImpl implements IPurchaseMacodeInfoService */ @Override public List selectPurchaseMacodeInfoList(PurchaseMacodeInfo purchaseMacodeInfo) { - List purchaseMacodeInfoList = purchaseMacodeInfoMapper.selectPurchaseMacodeInfoList(purchaseMacodeInfo); //判断有没有绑定固定资产 if (purchaseMacodeInfoList.size() > 0 && purchaseMacodeInfoList.get(0).getFixCode()!=null){ - Map groupCounts = purchaseMacodeInfoList.stream().map(PurchaseMacodeInfo::getFixCode).collect(Collectors.groupingBy(String::valueOf, Collectors.counting())); - //去重 - purchaseMacodeInfoList = purchaseMacodeInfoList.stream().distinct().collect(Collectors.toList()); - for (PurchaseMacodeInfo purchaseMacodeInfo1 : purchaseMacodeInfoList) { - groupCounts.forEach((fixCode, count) -> { - if (purchaseMacodeInfo1.getFixCode().equals(fixCode)) { - purchaseMacodeInfo1.setBindNum(count.intValue()); - } - }); - } - } + Map groupCounts = purchaseMacodeInfoList.stream().map(PurchaseMacodeInfo::getTypeId).collect(Collectors.groupingBy(String::valueOf, Collectors.counting())); + // 根据 typeId 进行去重 + purchaseMacodeInfoList = purchaseMacodeInfoList.stream() + // 指定键为 typeId + .collect(Collectors.toMap(PurchaseMacodeInfo::getTypeId, + // 指定值为对象本身 + maCodeInfo -> maCodeInfo, + // 如果存在重复的 typeId,则保留已存在的对象 + (existing, replacement) -> existing)) + .values().stream().collect(Collectors.toList()); + //遍历purchaseMaCodeInfoList集合,非空判断取值 + purchaseMacodeInfoList.stream() + .forEach(purchaseMaCodeInfo1 -> { + Optional.ofNullable(groupCounts.get(String.valueOf(purchaseMaCodeInfo1.getFixCode()))) + .ifPresent(count -> purchaseMaCodeInfo1.setBindNum(count.intValue())); + }); + } + //根据fixCode固定资产编号判断是否绑定,未绑定,绑定数量设置为0 + for (PurchaseMacodeInfo maCodeInfo : purchaseMacodeInfoList) { + if (maCodeInfo.getFixCode() == null) { + maCodeInfo.setBindNum(0); + } + } return purchaseMacodeInfoList; } diff --git a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseMacodeInfoMapper.xml b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseMacodeInfoMapper.xml index d78130ca..dfcdd3f3 100644 --- a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseMacodeInfoMapper.xml +++ b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseMacodeInfoMapper.xml @@ -45,7 +45,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and pmi.code_type = #{codeType} and pmi.status = #{status} and pmi.company_id = #{companyId} - GROUP BY pcd.type_id