bug修改
This commit is contained in:
parent
e3ca372c86
commit
aed6febfd6
@ -69,6 +69,8 @@ public interface ISystemUserService extends IService<SystemUser> {
|
||||
|
||||
void delete(Map<String, Object> map);
|
||||
|
||||
public void deleteTenantOrSupplier(String userId, String projectSn);
|
||||
|
||||
boolean isSubProject();
|
||||
|
||||
List<SystemUser> getSystemUserList(Map<String, Object> map);
|
||||
|
||||
@ -1214,62 +1214,69 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
|
||||
}
|
||||
if (systemUser.getAccountType() == 10) {
|
||||
//新用户
|
||||
//查tree
|
||||
if (StrUtil.isBlank(projectSn)) {
|
||||
throw new OpenAlertException("projectSn不能为空");
|
||||
}
|
||||
HashMap<String, Object> companyMap = new HashMap<>();
|
||||
HashMap<String, Object> getHeadMap = new HashMap<>();
|
||||
getHeadMap.put("companyType", 4);
|
||||
getHeadMap.put("sn", projectSn);
|
||||
Company headquarterCompany = companyMapper.getHeadquarterCompany(getHeadMap);
|
||||
if (headquarterCompany == null) {
|
||||
throw new OpenAlertException("总公司为空");
|
||||
}
|
||||
companyMap.put("headquartersSn", headquarterCompany.getHeadquartersSn());
|
||||
companyMap.put("userId", systemUser.getUserId());
|
||||
JSONArray snTreeJa = companyService.getTenantOrgTreeList(companyMap);
|
||||
if (snTreeJa == null) {
|
||||
throw new OpenAlertException("组织架构为空");
|
||||
}
|
||||
//往上删除
|
||||
List<String> deleteSnList = new ArrayList<>();
|
||||
deleteSnList.add(projectSn);
|
||||
List<Object> objects = ListUtils.treeToListWithChildren(snTreeJa, "companyId", "parentId", "list", "0");
|
||||
List<JSONObject> snList = objects.stream().map(o -> ((JSONObject) o)).collect(Collectors.toList());
|
||||
JSONObject projectSnJo = snList.stream().filter(o -> Objects.equals(o.getString("projectSn"), projectSn)).findFirst().get();
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
String companySn = projectSnJo.getString("companySn");
|
||||
JSONObject companyJo;
|
||||
companyJo = snList.stream().filter(o -> Objects.equals(o.getString("companySn"), companySn)).findFirst().get();
|
||||
if (companyJo.getJSONArray("list").size() <= 1) {
|
||||
do {
|
||||
deleteSnList.add(companyJo.getString("sn"));
|
||||
String parentId = companyJo.getString("parentId");
|
||||
Optional<JSONObject> companyOp = snList.stream().filter(o -> Objects.equals(o.getString("companyId"), parentId)).findFirst();
|
||||
if (!companyOp.isPresent()) {
|
||||
break;
|
||||
}
|
||||
companyJo = companyOp.get();
|
||||
jsonArray = companyJo.getJSONArray("list");
|
||||
} while (jsonArray.size() <= 1);
|
||||
}
|
||||
//再查一次无结果,就删除账号
|
||||
xzSystemUserToCompanyProjectMapper.delete(new LambdaQueryWrapper<XzSystemUserToCompanyProject>()
|
||||
.in(XzSystemUserToCompanyProject::getSn, deleteSnList)
|
||||
.eq(XzSystemUserToCompanyProject::getUserId, systemUser.getUserId())
|
||||
);
|
||||
Integer count = xzSystemUserToCompanyProjectMapper.selectCount(new LambdaQueryWrapper<XzSystemUserToCompanyProject>()
|
||||
.eq(XzSystemUserToCompanyProject::getUserId, systemUser.getUserId())
|
||||
);
|
||||
if (count == 0) {
|
||||
deleteUser(id);
|
||||
}
|
||||
deleteTenantOrSupplier(id, projectSn);
|
||||
} else {
|
||||
deleteUser(id);
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteTenantOrSupplier(String userId, String projectSn) {
|
||||
//查tree
|
||||
if (StrUtil.isBlank(projectSn)) {
|
||||
throw new OpenAlertException("projectSn不能为空");
|
||||
}
|
||||
HashMap<String, Object> companyMap = new HashMap<>();
|
||||
HashMap<String, Object> getHeadMap = new HashMap<>();
|
||||
getHeadMap.put("companyType", 4);
|
||||
getHeadMap.put("sn", projectSn);
|
||||
Company headquarterCompany = companyMapper.getHeadquarterCompany(getHeadMap);
|
||||
if (headquarterCompany == null) {
|
||||
throw new OpenAlertException("总公司为空");
|
||||
}
|
||||
companyMap.put("headquartersSn", headquarterCompany.getHeadquartersSn());
|
||||
companyMap.put("userId", userId);
|
||||
JSONArray snTreeJa = companyService.getTenantOrgTreeList(companyMap);
|
||||
if (snTreeJa == null) {
|
||||
throw new OpenAlertException("组织架构为空");
|
||||
}
|
||||
//往上删除
|
||||
List<String> deleteSnList = new ArrayList<>();
|
||||
deleteSnList.add(projectSn);
|
||||
List<Object> objects = ListUtils.treeToListWithChildren(snTreeJa, "companyId", "parentId", "list", "0");
|
||||
List<JSONObject> snList = objects.stream().map(o -> ((JSONObject) o)).collect(Collectors.toList());
|
||||
JSONObject projectSnJo = snList.stream().filter(o -> Objects.equals(o.getString("projectSn"), projectSn)).findFirst().get();
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
String companySn = projectSnJo.getString("companySn");
|
||||
JSONObject companyJo;
|
||||
companyJo = snList.stream().filter(o -> Objects.equals(o.getString("companySn"), companySn)).findFirst().get();
|
||||
if (companyJo.getJSONArray("list").size() <= 1) {
|
||||
do {
|
||||
deleteSnList.add(companyJo.getString("sn"));
|
||||
String parentId = companyJo.getString("parentId");
|
||||
Optional<JSONObject> companyOp = snList.stream().filter(o -> Objects.equals(o.getString("companyId"), parentId)).findFirst();
|
||||
if (!companyOp.isPresent()) {
|
||||
break;
|
||||
}
|
||||
companyJo = companyOp.get();
|
||||
jsonArray = companyJo.getJSONArray("list");
|
||||
} while (jsonArray.size() <= 1);
|
||||
}
|
||||
//再查一次无结果,就删除账号
|
||||
xzSystemUserToCompanyProjectMapper.delete(new LambdaQueryWrapper<XzSystemUserToCompanyProject>()
|
||||
.in(XzSystemUserToCompanyProject::getSn, deleteSnList)
|
||||
.eq(XzSystemUserToCompanyProject::getUserId, userId)
|
||||
);
|
||||
Integer count = xzSystemUserToCompanyProjectMapper.selectCount(new LambdaQueryWrapper<XzSystemUserToCompanyProject>()
|
||||
.eq(XzSystemUserToCompanyProject::getUserId, userId)
|
||||
);
|
||||
SystemUser systemUser = baseMapper.selectById(userId);
|
||||
if (count == 0) {
|
||||
if (systemUser.getAccountType() == 10) {
|
||||
deleteUser(String.valueOf(userId));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteUser(String id) {
|
||||
removeById(id);
|
||||
qualityRegionMapper.updateDutyNull(id);
|
||||
|
||||
@ -210,7 +210,7 @@ public class EnterpriseInfoController {
|
||||
|
||||
@ApiOperation(value = "统计企业的供应商信息", notes = "统计企业的供应商信息", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "sn", value = "企业sn", paramType = "body", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "body", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
||||
})
|
||||
|
||||
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wflow.bean.vo.OrgTreeVo;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.project.entity.XzUserToSupplier;
|
||||
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -62,4 +63,6 @@ public interface EnterpriseInfoMapper extends BaseMapper<EnterpriseInfo> {
|
||||
List<OrgTreeVo> selectByPy(@Param("py") String py, @Param("projectSn") String projectSn);
|
||||
|
||||
Page<EnterpriseInfo> countSupplier(Page page, @Param("param") Map<String, Object> paramMap);
|
||||
|
||||
List<XzUserToSupplier> getSupplierUserIdByProjectSnAndEnterpriseId(@Param("projectSn") String projectSn, @Param("enterpriseId") String enterpriseId);
|
||||
}
|
||||
|
||||
@ -175,31 +175,41 @@
|
||||
</select>
|
||||
|
||||
<select id="countSupplier" resultType="com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo">
|
||||
SELECT distinct ei.*,(SELECT count(*) projectNum,pe.enterprise_id from project_enterprise pe join project p on
|
||||
p.project_sn=pe.project_sn group by pe.enterprise_id) projectNum
|
||||
SELECT distinct ei.*,(SELECT
|
||||
count(*) projectNum
|
||||
FROM
|
||||
project_enterprise pe
|
||||
WHERE pe.enterprise_id = ei.id and a.project_sn=pe.project_sn) projectNum
|
||||
FROM enterprise_info ei
|
||||
join project_enterprise pe on pe.enterprise_id = ei.id
|
||||
join project a on pe.project_sn = ei.id
|
||||
join project a on pe.project_sn = a.project_sn
|
||||
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
|
||||
<!--1总部,2区域,3城市,4一个项目,5项目部-->
|
||||
<where>
|
||||
<if test="companyType == '1'.toString()">
|
||||
and f.headquarters_sn = #{sn}
|
||||
<if test="param.companyType == '1'.toString()">
|
||||
and f.headquarters_sn = #{param.sn}
|
||||
</if>
|
||||
<if test="companyType == '2'.toString()">
|
||||
and f.company_sn = #{sn}
|
||||
<if test="param.companyType == '2'.toString()">
|
||||
and f.company_sn = #{param.sn}
|
||||
</if>
|
||||
<if test="companyType == '3'.toString()">
|
||||
and b.company_sn = #{sn}
|
||||
<if test="param.companyType == '3'.toString()">
|
||||
and b.company_sn = #{param.sn}
|
||||
</if>
|
||||
<if test="companyType == '4'.toString()">
|
||||
and a.project_sn = #{sn}
|
||||
<if test="param.companyType == '4'.toString()">
|
||||
and a.project_sn = #{param.sn}
|
||||
</if>
|
||||
<if test="companyType == '5'.toString()">
|
||||
and cp.company_sn = #{sn}
|
||||
<if test="param.companyType == '5'.toString()">
|
||||
and cp.company_sn = #{param.sn}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getSupplierUserIdByProjectSnAndEnterpriseId"
|
||||
resultType="com.zhgd.xmgl.modules.project.entity.XzUserToSupplier">
|
||||
select distinct ts.* from xz_user_to_supplier ts
|
||||
join xz_system_user_to_company_project xsutcp on ts.user_id = xsutcp.user_id
|
||||
where ts.xz_supplier_id =#{enterpriseId} and xsutcp.sn = #{projectSn}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -18,6 +18,7 @@ import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.impl.CompanyServiceImpl;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise;
|
||||
import com.zhgd.xmgl.modules.project.entity.XzUserToSupplier;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectEnterpriseMapper;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
|
||||
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
|
||||
@ -177,7 +178,9 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
|
||||
throw new OpenAlertException(MessageUtil.get("notDeleteEnterpriseErr"));
|
||||
}
|
||||
Integer dCount = departmentInfoMapper.selectCount(new LambdaQueryWrapper<DepartmentInfo>()
|
||||
.eq(DepartmentInfo::getEnterpriseId, enterpriseId));
|
||||
.eq(DepartmentInfo::getEnterpriseId, enterpriseId)
|
||||
.eq(DepartmentInfo::getProjectSn, projectSn)
|
||||
);
|
||||
if (dCount > 0) {
|
||||
throw new OpenAlertException("企业下存在部门,不允许删除");
|
||||
}
|
||||
@ -190,6 +193,10 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
|
||||
asyncWorker.removeEnterpriseInfo(projectEnterprise);
|
||||
asyncJiLianDa.removeEnterpriseInfo(projectEnterprise);
|
||||
}
|
||||
List<XzUserToSupplier> xzUserToSuppliers = baseMapper.getSupplierUserIdByProjectSnAndEnterpriseId(projectSn, enterpriseId);
|
||||
for (XzUserToSupplier xzUserToSupplier : xzUserToSuppliers) {
|
||||
systemUserService.deleteTenantOrSupplier(String.valueOf(xzUserToSupplier.getUserId()), projectSn);
|
||||
}
|
||||
|
||||
//同步海康
|
||||
asyncHikvision.deleteEnterpriseInfoForHikvision(enterpriseId, projectSn);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user