Commit ca2742c5 authored by suhuiguang's avatar suhuiguang

feat(jg):更新null值调整

parent 416387db
......@@ -385,7 +385,7 @@ public class TzBaseEnterpriseInfoController extends BaseController {
@DeleteMapping(value = "/deleteBatch")
@ApiOperation(httpMethod = "DELETE", value = "批量删除企业", notes = "批量删除企业")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<Boolean> deleteBatch(@RequestParam String ids) {
public ResponseModel<List<TzBaseEnterpriseInfo>> deleteBatch(@RequestParam String ids) {
return ResponseHelper.buildResponse(enterpriseManageService.delete(Arrays.asList(ids.split(","))));
}
......
package com.yeejoin.amos.boot.module.tcm.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.common.api.dao.EsBaseEnterpriseInfoDao;
import com.yeejoin.amos.boot.module.common.api.dao.EsUserInfoDao;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseCert;
import com.yeejoin.amos.boot.module.common.api.entity.EsBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.common.api.entity.TzsDataRefreshMessage;
import com.yeejoin.amos.boot.module.common.api.mapper.BaseEnterpriseCertMapper;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.tcm.api.entity.BaseUnitLicence;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsBaseIndividuality;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsBaseInstitution;
import com.yeejoin.amos.boot.module.tcm.api.mapper.BaseUnitLicenceMapper;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsBaseIndividualityMapper;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsBaseInstitutionMapper;
import com.yeejoin.amos.boot.module.tcm.biz.refresh.handler.EnterpriseRefreshHandler;
import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.tcm.flc.api.mapper.RegUnitInfoMapper;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -24,13 +37,11 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......@@ -47,12 +58,28 @@ public class EnterpriseManageServiceImpl {
private final EnterpriseRefreshHandler refreshHandler;
private final EsUserInfoDao esUserInfoDao;
private final TzsBaseInstitutionMapper tzsBaseInstitutionMapper;
private final TzsBaseIndividualityMapper tzsBaseIndividualityMapper;
private final BaseEnterpriseCertMapper enterpriseCertMapper;
private final BaseUnitLicenceMapper unitLicenceMapper;
private final RegUnitInfoMapper regUnitInfoMapper;
/**
* 批量删除企业
*
* @param ids 企业ids
*/
public Boolean delete(List<String> ids) {
@Transactional(rollbackFor = Exception.class)
public List<TzBaseEnterpriseInfo> delete(List<String> ids) {
// 校验
List<TzBaseEnterpriseInfo> enterpriseInfos = enterpriseInfoService.getBaseMapper().selectBatchIds(ids);
Map<String, Long> useUnitCodeUserNumMap = this.countUserByUnit(enterpriseInfos);
......@@ -64,11 +91,29 @@ public class EnterpriseManageServiceImpl {
this.deleteEnterprise(e);
this.deleteAmosUser(e);
this.deleteAmosCompany(e);
this.deleteEsEnterpriseInfo(e);
this.deleteEsUser(e);
});
return true;
return enterpriseInfos;
}
/**
* 冗余删除es的人员(已经前置校验数据库没人、没设备才能删除,目的防止人员的数据库和es人员索引的人员不一致)
* @param e 企业
*/
private void deleteEsUser(TzBaseEnterpriseInfo e) {
esUserInfoDao.deleteAllByUnitCode(e.getUseCode());
}
private void deleteEsEnterpriseInfo(TzBaseEnterpriseInfo e) {
Optional<EsBaseEnterpriseInfo> op = esBaseEnterpriseInfoDao.findById(e.getSequenceNbr() + "");
op.ifPresent(v -> {
esBaseEnterpriseInfoDao.deleteById(v.getSequenceNbr());
});
}
/**
* 批量启用企业
*
* @param ids 企业ids
......@@ -80,6 +125,7 @@ public class EnterpriseManageServiceImpl {
this.checkForEnable(ids, enterpriseInfos);
enterpriseInfos.forEach(enterpriseInfo -> {
this.updateEnterpriseDeletedStatus(enterpriseInfo, false);
// 保留防止之前勿删除了
this.insertEnterprise2Es(enterpriseInfo);
this.unlockLoginAccount(enterpriseInfo);
});
......@@ -99,7 +145,6 @@ public class EnterpriseManageServiceImpl {
this.checkForDisable(ids, enterpriseInfos);
enterpriseInfos.forEach(enterpriseInfo -> {
this.updateEnterpriseDeletedStatus(enterpriseInfo, true);
this.deleteEnterpriseFromEs(enterpriseInfo);
this.lockLoginAccount(enterpriseInfo);
});
return true;
......@@ -119,10 +164,6 @@ public class EnterpriseManageServiceImpl {
refreshHandler.doRefresh(new TzsDataRefreshMessage().setDataId(enterpriseInfo.getSequenceNbr() + "").setOperation(DataRefreshEvent.Operation.INSERT.name()));
}
private void deleteEnterpriseFromEs(TzBaseEnterpriseInfo enterpriseInfo) {
esBaseEnterpriseInfoDao.deleteById(enterpriseInfo.getSequenceNbr() + "");
}
private void lockLoginAccount(TzBaseEnterpriseInfo enterpriseInfo) {
CompanyModel companyModel = FeignUtil.remoteCall(() -> Privilege.companyClient.queryByCompanyCode(enterpriseInfo.getUseCode()));
List<AgencyUserModel> userModels = FeignUtil.remoteCall(() -> Privilege.agencyUserClient.queryByCompanyId(companyModel.getSequenceNbr(), null, null, false));
......@@ -205,11 +246,23 @@ public class EnterpriseManageServiceImpl {
List<AgencyUserModel> userModels = FeignUtil.remoteCall(() -> Privilege.agencyUserClient.queryByCompanyId(companyModel.getSequenceNbr(), null, null, false));
if (!userModels.isEmpty()) {
List<String> userIds = userModels.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList());
Privilege.agencyUserClient.multDeleteUser(String.join(",", userIds), true);
Privilege.agencyUserClient.multDeleteUser(String.join(",", userIds), false);
}
}
private void deleteEnterprise(TzBaseEnterpriseInfo e) {
// 删除关系表
tzsBaseInstitutionMapper.delete(new LambdaQueryWrapper<TzsBaseInstitution>().eq(TzsBaseInstitution::getEnterpriseId, e.getSequenceNbr()));
tzsBaseIndividualityMapper.delete(new LambdaQueryWrapper<TzsBaseIndividuality>().eq(TzsBaseIndividuality::getEnterpriseId, e.getSequenceNbr()));
enterpriseCertMapper.delete(new LambdaQueryWrapper<BaseEnterpriseCert>().eq(BaseEnterpriseCert::getUnitCode, e.getUseUnitCode()));
unitLicenceMapper.delete(new LambdaQueryWrapper<BaseUnitLicence>().eq(BaseUnitLicence::getUnitCode, e.getUseUnitCode()));
regUnitInfoMapper.delete(new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, e.getUseUnitCode()));
// 删除主表
enterpriseInfoService.removeById(e.getSequenceNbr());
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment