From 0475466f767eb7b42a943c78d9d54ee72ed6d1e4 Mon Sep 17 00:00:00 2001 From: guo Date: Thu, 11 Apr 2024 22:36:44 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basicdata/mapper/CompanyMapper.java | 4 + .../basicdata/mapper/xml/CompanyMapper.xml | 17 +++++ .../service/impl/CompanyServiceImpl.java | 76 ++++++++++++++----- 3 files changed, 77 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/CompanyMapper.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/CompanyMapper.java index 79fd4e92e..4588d3007 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/CompanyMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/CompanyMapper.java @@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -60,4 +61,7 @@ public interface CompanyMapper extends BaseMapper { */ @Select("SELECT company_sn id, company_name `name`, 'dept' AS 'type' FROM company WHERE parent_id=#{deptId}") List selectByDept(@Param("deptId") String deptId); + + EntityMap getCompanyInfosByProjectSn(String projectSn); + } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/CompanyMapper.xml b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/CompanyMapper.xml index d8c670dbf..062bc0ebb 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/CompanyMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/CompanyMapper.xml @@ -281,4 +281,21 @@ + + diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyServiceImpl.java index b7a7203fe..cca998c99 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyServiceImpl.java @@ -729,29 +729,65 @@ public class CompanyServiceImpl extends ServiceImpl impl if (systemUser == null) { throw new OpenAlertException("未找到对应实体"); } - HashMap qm = new HashMap<>(); - qm.put("sn", systemUser.getHeadquartersSn()); - qm.put("projectType", "1"); - Map companyMap = getCompanyStatisticsList(qm); - JSONArray clJa = JSON.parseArray(JSON.toJSONString(MapUtils.getObject(companyMap, "companyList"))); - JSONArray rtJa = new JSONArray(); - if (CollUtil.isEmpty(clJa)) { - return null; + if (Objects.equals(systemUser.getAccountType(), 10)) { + HashMap qm = new HashMap<>(); + qm.put("sn", systemUser.getHeadquartersSn()); + qm.put("projectType", "1"); + Map companyMap = getCompanyStatisticsList(qm); + JSONArray clJa = JSON.parseArray(JSON.toJSONString(MapUtils.getObject(companyMap, "companyList"))); + JSONArray rtJa = new JSONArray(); + if (CollUtil.isEmpty(clJa)) { + return null; + } + List companyProjects = xzSystemUserToCompanyProjectMapper.selectList(new LambdaQueryWrapper() + .eq(XzSystemUserToCompanyProject::getUserId, userId)); + if (CollUtil.isEmpty(companyProjects)) { + return null; + } + Map existSnMap = companyProjects.stream().collect(Collectors.toMap(XzSystemUserToCompanyProject::getSn, a -> a, (t, t2) -> t)); + for (int i = 0; i < clJa.size(); i++) { + JSONObject clJo = clJa.getJSONObject(i); + recursionFilterData(existSnMap, clJo, rtJa); + } + return rtJa; + } else if (Objects.equals(systemUser.getAccountType(), 6) || Objects.equals(systemUser.getAccountType(), 5)) { + Project project = projectMapper.selectOne(new LambdaQueryWrapper() + .eq(Project::getProjectSn, systemUser.getSn())); + Company company = companyMapper.selectOne(new LambdaQueryWrapper() + .eq(Company::getCompanySn, project.getCompanySn())); + if (company == null) { + throw new OpenAlertException("公司不存在"); + } + String headquartersSn = company.getHeadquartersSn(); + HashMap qm = new HashMap<>(); + qm.put("sn", headquartersSn); + qm.put("projectType", "1"); + Map companyMap = getCompanyStatisticsList(qm); + JSONArray clJa = JSON.parseArray(JSON.toJSONString(MapUtils.getObject(companyMap, "companyList"))); + JSONArray rtJa = new JSONArray(); + if (CollUtil.isEmpty(clJa)) { + return null; + } + EntityMap snMap = companyMapper.getCompanyInfosByProjectSn(project.getProjectSn()); + if (snMap == null) { + return null; + } + Map existSnMap = new HashMap<>(); + existSnMap.put(snMap.get("companySn2"), 0); + existSnMap.put(snMap.get("companySn3"), 0); + existSnMap.put(snMap.get("companySn4"), 0); + existSnMap.put(snMap.get("projectSn"), 0); + for (int i = 0; i < clJa.size(); i++) { + JSONObject clJo = clJa.getJSONObject(i); + recursionFilterData(existSnMap, clJo, rtJa); + } + return rtJa; + } - List companyProjects = xzSystemUserToCompanyProjectMapper.selectList(new LambdaQueryWrapper() - .eq(XzSystemUserToCompanyProject::getUserId, userId)); - if (CollUtil.isEmpty(companyProjects)) { - return null; - } - Map existSnMap = companyProjects.stream().collect(Collectors.toMap(XzSystemUserToCompanyProject::getSn, a -> a, (t, t2) -> t)); - for (int i = 0; i < clJa.size(); i++) { - JSONObject clJo = clJa.getJSONObject(i); - recursionFilterData(existSnMap, clJo, rtJa); - } - return rtJa; + return null; } - private void recursionFilterData(Map existSnMap, JSONObject clJo, JSONArray rtJa) { + private void recursionFilterData(Map existSnMap, JSONObject clJo, JSONArray rtJa) { String sn = getSn(clJo); if (!existSnMap.containsKey(sn)) { return;