bug修复

This commit is contained in:
guo 2024-04-11 22:36:44 +08:00
parent 57a649e67e
commit 0475466f76
3 changed files with 77 additions and 20 deletions

View File

@ -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<Company> {
*/
@Select("SELECT company_sn id, company_name `name`, 'dept' AS 'type' FROM company WHERE parent_id=#{deptId}")
List<OrgTreeVo> selectByDept(@Param("deptId") String deptId);
EntityMap getCompanyInfosByProjectSn(String projectSn);
}

View File

@ -281,4 +281,21 @@
</if>
</where>
</select>
<select id="getCompanyInfosByProjectSn" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
SELECT
a.project_name project_name,
a.project_sn project_sn,
cp.company_sn company_sn4,
b.company_sn company_sn3,
f.company_sn company_sn2
FROM
project a
INNER JOIN company cp ON a.company_sn = cp.company_sn
INNER JOIN company b ON cp.parent_id = b.company_id
LEFT JOIN company f ON b.parent_id = f.company_id
<where>
and a.project_sn=#{projectSn}
</where>
</select>
</mapper>

View File

@ -729,29 +729,65 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
if (systemUser == null) {
throw new OpenAlertException("未找到对应实体");
}
HashMap<String, Object> qm = new HashMap<>();
qm.put("sn", systemUser.getHeadquartersSn());
qm.put("projectType", "1");
Map<String, Object> 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<String, Object> qm = new HashMap<>();
qm.put("sn", systemUser.getHeadquartersSn());
qm.put("projectType", "1");
Map<String, Object> companyMap = getCompanyStatisticsList(qm);
JSONArray clJa = JSON.parseArray(JSON.toJSONString(MapUtils.getObject(companyMap, "companyList")));
JSONArray rtJa = new JSONArray();
if (CollUtil.isEmpty(clJa)) {
return null;
}
List<XzSystemUserToCompanyProject> companyProjects = xzSystemUserToCompanyProjectMapper.selectList(new LambdaQueryWrapper<XzSystemUserToCompanyProject>()
.eq(XzSystemUserToCompanyProject::getUserId, userId));
if (CollUtil.isEmpty(companyProjects)) {
return null;
}
Map<String, Object> 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<Project>()
.eq(Project::getProjectSn, systemUser.getSn()));
Company company = companyMapper.selectOne(new LambdaQueryWrapper<Company>()
.eq(Company::getCompanySn, project.getCompanySn()));
if (company == null) {
throw new OpenAlertException("公司不存在");
}
String headquartersSn = company.getHeadquartersSn();
HashMap<String, Object> qm = new HashMap<>();
qm.put("sn", headquartersSn);
qm.put("projectType", "1");
Map<String, Object> 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<String, Object> 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<XzSystemUserToCompanyProject> companyProjects = xzSystemUserToCompanyProjectMapper.selectList(new LambdaQueryWrapper<XzSystemUserToCompanyProject>()
.eq(XzSystemUserToCompanyProject::getUserId, userId));
if (CollUtil.isEmpty(companyProjects)) {
return null;
}
Map<String, XzSystemUserToCompanyProject> 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<String, XzSystemUserToCompanyProject> existSnMap, JSONObject clJo, JSONArray rtJa) {
private void recursionFilterData(Map<String, Object> existSnMap, JSONObject clJo, JSONArray rtJa) {
String sn = getSn(clJo);
if (!existSnMap.containsKey(sn)) {
return;