diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackApplyInfoServiceImpl.java index 489e256a..3690b0dc 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackApplyInfoServiceImpl.java @@ -125,12 +125,9 @@ public class MaterialBackApplyInfoServiceImpl implements MaterialBackApplyInfoSe if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item -> StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); - } /*else { - // 材料员权限 - list = filterList(list, username); - }*/ + } } if (!CollectionUtils.isEmpty(list)) { for (MaterialBackApplyInfo materialRetainedEquipmentInfo : list) { @@ -269,12 +266,9 @@ public class MaterialBackApplyInfoServiceImpl implements MaterialBackApplyInfoSe if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); - } /*else { - // 材料员权限 - list = filterList(list, username); - }*/ + } } long time7 = System.currentTimeMillis(); System.err.println("过滤数据耗时time7 - time6:" + (time7 - time6)); @@ -683,7 +677,7 @@ public class MaterialBackApplyInfoServiceImpl implements MaterialBackApplyInfoSe if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackAppointmentServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackAppointmentServiceImpl.java index 7341ecad..47aa7af6 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackAppointmentServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackAppointmentServiceImpl.java @@ -142,7 +142,7 @@ public class MaterialBackAppointmentServiceImpl implements MaterialBackAppointme if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } @@ -308,7 +308,7 @@ public class MaterialBackAppointmentServiceImpl implements MaterialBackAppointme if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialLeaseInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialLeaseInfoServiceImpl.java index 161ffe26..63768712 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialLeaseInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialLeaseInfoServiceImpl.java @@ -140,7 +140,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 sortedList = sortedList.stream() - .filter(item -> StringUtils.isBlank(item.getTeamLeaderIdCard()) || username.equals(item.getTeamLeaderIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getTeamLeaderIdCard())) .collect(Collectors.toList()); } } @@ -307,7 +307,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 sortedList = sortedList.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } @@ -484,7 +484,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 sortedList = sortedList.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } @@ -957,7 +957,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { if (teamData != null) { // 将list中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } /*else { // 材料员权限 @@ -1464,7 +1464,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { List list = materialLeaseInfoMapper.getLeaseInfoDetails(info); if (!hasSpecialRole) { Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); - if (!CollectionUtils.isEmpty(list) && deptId != null) { + if (!CollectionUtils.isEmpty(list) && deptId != null && teamData == null) { // 删除元素 list.removeIf(m -> !deptId.toString().equals(m.getImpUnit())); } @@ -1474,7 +1474,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { if (teamData != null) { // 将list中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item ->StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } 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 d2e52ea1..b6b6fed7 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 @@ -76,7 +76,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 mergedList = mergedList.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item -> StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } @@ -182,7 +182,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { if (teamData != null) { // 将 usList 中班组身份证号与 username 相同的元素过滤处理 usList = usList.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item -> StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } @@ -341,7 +341,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item -> StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } @@ -439,7 +439,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item -> StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } } @@ -523,7 +523,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { if (teamData != null) { // 将sortedList中班组身份证号与username相同的元素过滤处理 list = list.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item -> StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(list)) { return getMaterialRetainedEquipmentInfo(list); @@ -1396,7 +1396,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { if (teamData != null){ // 将sortedList中班组身份证号与username相同的元素过滤处理 recordList = recordList.stream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item -> StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } for (MaterialStorageAndUseNumInfo record : recordList) { @@ -1460,7 +1460,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { // 1. 过滤数据(并行流加速大集合过滤) if (teamData != null) { recordList = recordList.parallelStream() - .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) + .filter(item -> StringUtils.isNotBlank(item.getIdCard()) && username.equals(item.getIdCard())) .collect(Collectors.toList()); } 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 e4849252..3fdaf2c5 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 @@ -11,6 +11,7 @@ import com.bonus.material.basic.domain.BmProject; import com.bonus.material.basic.domain.BmUnit; import com.bonus.material.basic.mapper.BmUnitMapper; import com.bonus.material.clz.domain.BmTeam; +import com.bonus.material.clz.domain.vo.MaterialRetainedEquipmentInfo; import com.bonus.material.clz.service.MaterialLeaseInfoService; import com.bonus.material.common.domain.dto.SelectDto; import com.bonus.material.common.domain.vo.AgreementVo; @@ -324,6 +325,30 @@ public class SelectServiceImpl implements SelectService { list = list.stream().filter(info -> projectIdList.contains(info.getProjectId())).collect(Collectors.toList()); } } + // 查询所有未结算的工程 + List projectIdList = mapper.getUnsettledProId(); + // 使用 HashSet 来加速查找过程 + Set unsettledProjectIds = new HashSet<>(projectIdList); + // 过滤掉不在未结算工程集合内的工程 + Iterator iterator = list.iterator(); + while (iterator.hasNext()) { + BmProject info = iterator.next(); + String proId = info.getProId() != null ? + info.getProId().toString() : null; + + if (proId == null || !unsettledProjectIds.contains(proId)) { + iterator.remove(); + continue; + } + // 根据工程去机具协议表查询关联协议数据 + List agreementIdList = mapper.getAgreementId(info.getProId().toString()); + // 根据工程去材料站协议表查询关联协议数据 + List storageAgreementIdList = mapper.getStorageAgreementId(info.getProId().toString()); + // 如果获取的协议数据为空,则移除该行数据 + if (com.alibaba.nacos.common.utils.CollectionUtils.isEmpty(agreementIdList) && com.alibaba.nacos.common.utils.CollectionUtils.isEmpty(storageAgreementIdList)) { + iterator.remove(); + } + } } } } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml index 307ec1cb..b795277f 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml @@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bai.unit_id,bai.project_id,bu.unit_name, bp.pro_name, bai.agreement_code, tt.task_status as taskStatus, sda.dict_label as taskStatusName, IFNULL(sum(lad.pre_num),0) as preCountNum, - IFNULL(sum(lod.num),0) as alNum, + IFNULL(sum(lad.al_num),0) as alNum, GROUP_CONCAT(DISTINCT mt1.type_name) as maTypeNames, bp.contract_part as contractPart, sd.dept_name as impUnitName, @@ -67,8 +67,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" lease_apply_info lai left join tm_task tt on lai.task_id = tt.task_id left join lease_apply_details lad on lai.id = lad.parent_id - LEFT JOIN (SELECT parent_id,type_id ,IFNULL( sum( out_num ), 0 ) as num FROM lease_out_details - GROUP BY parent_id,type_id) lod ON lai.id = lod.parent_id and lad.type_id = lod.type_id left join tm_task_agreement tta on lai.task_id = tta.task_id left join bm_agreement_info bai on tta.agreement_id = bai.agreement_id left join bm_unit bu on bu.unit_id = bai.unit_id