bug修复
This commit is contained in:
parent
57a649e67e
commit
0475466f76
@ -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);
|
||||
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user