diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java index 546d84e1f..e13dcb6da 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java @@ -69,6 +69,8 @@ public interface ISystemUserService extends IService { void delete(Map map); + public void deleteTenantOrSupplier(String userId, String projectSn); + boolean isSubProject(); List getSystemUserList(Map map); diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java index d4b22d196..269c17674 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java @@ -1214,62 +1214,69 @@ public class SystemUserServiceImpl extends ServiceImpl companyMap = new HashMap<>(); - HashMap 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 deleteSnList = new ArrayList<>(); - deleteSnList.add(projectSn); - List objects = ListUtils.treeToListWithChildren(snTreeJa, "companyId", "parentId", "list", "0"); - List 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 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() - .in(XzSystemUserToCompanyProject::getSn, deleteSnList) - .eq(XzSystemUserToCompanyProject::getUserId, systemUser.getUserId()) - ); - Integer count = xzSystemUserToCompanyProjectMapper.selectCount(new LambdaQueryWrapper() - .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 companyMap = new HashMap<>(); + HashMap 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 deleteSnList = new ArrayList<>(); + deleteSnList.add(projectSn); + List objects = ListUtils.treeToListWithChildren(snTreeJa, "companyId", "parentId", "list", "0"); + List 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 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() + .in(XzSystemUserToCompanyProject::getSn, deleteSnList) + .eq(XzSystemUserToCompanyProject::getUserId, userId) + ); + Integer count = xzSystemUserToCompanyProjectMapper.selectCount(new LambdaQueryWrapper() + .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); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/EnterpriseInfoController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/EnterpriseInfoController.java index b5d6df0ef..2a0290d99 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/EnterpriseInfoController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/EnterpriseInfoController.java @@ -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"), }) diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/EnterpriseInfoMapper.java b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/EnterpriseInfoMapper.java index a0b63d5e5..c43fcb51d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/EnterpriseInfoMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/EnterpriseInfoMapper.java @@ -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 { List selectByPy(@Param("py") String py, @Param("projectSn") String projectSn); Page countSupplier(Page page, @Param("param") Map paramMap); + + List getSupplierUserIdByProjectSnAndEnterpriseId(@Param("projectSn") String projectSn, @Param("enterpriseId") String enterpriseId); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/EnterpriseInfoMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/EnterpriseInfoMapper.xml index 2c8f36745..204ea15e6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/EnterpriseInfoMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/EnterpriseInfoMapper.xml @@ -175,31 +175,41 @@ + + diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java index 72fed23ab..f66824420 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java @@ -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() - .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 xzUserToSuppliers = baseMapper.getSupplierUserIdByProjectSnAndEnterpriseId(projectSn, enterpriseId); + for (XzUserToSupplier xzUserToSupplier : xzUserToSuppliers) { + systemUserService.deleteTenantOrSupplier(String.valueOf(xzUserToSupplier.getUserId()), projectSn); + } //同步海康 asyncHikvision.deleteEnterpriseInfoForHikvision(enterpriseId, projectSn);