Commit e31eb24d authored by tianbo's avatar tianbo

Merge remote-tracking branch 'origin/develop_tzs_new_jyjc' into develop_tzs_register

parents 846aa03a 83d03cac
...@@ -107,6 +107,12 @@ public class UserPermissionDto { ...@@ -107,6 +107,12 @@ public class UserPermissionDto {
private String superviseOrgCode; private String superviseOrgCode;
/** /**
* 管辖机构CompanyCode
*/
@JsonIgnore
private String superviseCompanyCode;
/**
* 使用单位统一信用代码 * 使用单位统一信用代码
*/ */
private String useCode; private String useCode;
......
...@@ -172,6 +172,12 @@ public class EsUserInfo { ...@@ -172,6 +172,12 @@ public class EsUserInfo {
private String superviseOrgCode; private String superviseOrgCode;
/** /**
* 管辖机构office_region--来源企业表
*/
@Field(type = FieldType.Keyword)
private String officeRegion;
/**
* 管辖机构名称--来源企业表 * 管辖机构名称--来源企业表
*/ */
@Field(type = FieldType.Text) @Field(type = FieldType.Text)
......
...@@ -1506,7 +1506,8 @@ public class DataHandlerServiceImpl { ...@@ -1506,7 +1506,8 @@ public class DataHandlerServiceImpl {
TzBaseEnterpriseInfo::getUseUnit, TzBaseEnterpriseInfo::getUseUnit,
TzBaseEnterpriseInfo::getUnitType, TzBaseEnterpriseInfo::getUnitType,
TzBaseEnterpriseInfo::getSuperviseOrgCode, TzBaseEnterpriseInfo::getSuperviseOrgCode,
TzBaseEnterpriseInfo::getSuperviseOrgName TzBaseEnterpriseInfo::getSuperviseOrgName,
TzBaseEnterpriseInfo::getOfficeRegion
).eq(BaseEntity::getIsDelete, false)); ).eq(BaseEntity::getIsDelete, false));
Map<String, TzBaseEnterpriseInfo> useCodeEnterpriseMap = units.stream().collect(Collectors.toMap(TzBaseEnterpriseInfo::getUseCode, Function.identity(), (k1, k2) -> k2)); Map<String, TzBaseEnterpriseInfo> useCodeEnterpriseMap = units.stream().collect(Collectors.toMap(TzBaseEnterpriseInfo::getUseCode, Function.identity(), (k1, k2) -> k2));
Iterable<EsBaseEnterpriseInfo> esBaseEnterpriseInfoIterable = enterpriseInfoDao.findAll(); Iterable<EsBaseEnterpriseInfo> esBaseEnterpriseInfoIterable = enterpriseInfoDao.findAll();
...@@ -1535,6 +1536,7 @@ public class DataHandlerServiceImpl { ...@@ -1535,6 +1536,7 @@ public class DataHandlerServiceImpl {
esUserInfo.setUnitType(unitType); esUserInfo.setUnitType(unitType);
esUserInfo.setSuperviseOrgName(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getSuperviseOrgName()); esUserInfo.setSuperviseOrgName(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getSuperviseOrgName());
esUserInfo.setSuperviseOrgCode(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getSuperviseOrgCode()); esUserInfo.setSuperviseOrgCode(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getSuperviseOrgCode());
esUserInfo.setOfficeRegion(useCodeEnterpriseMap.getOrDefault(u.getUnitCode(), new TzBaseEnterpriseInfo()).getOfficeRegion());
esUserInfo.setLicenses(this.buildUserLicenses(u.getSequenceNbr())); esUserInfo.setLicenses(this.buildUserLicenses(u.getSequenceNbr()));
esUserInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesUser(esUserInfo.getLicenses())); esUserInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesUser(esUserInfo.getLicenses()));
return esUserInfo; return esUserInfo;
......
...@@ -12,4 +12,6 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -12,4 +12,6 @@ import org.apache.ibatis.annotations.Mapper;
public interface CommonBaseMapper { public interface CommonBaseMapper {
String getOrgCodeByCompanyCode(String companyCode); String getOrgCodeByCompanyCode(String companyCode);
String getCompanyCodeByOrgCode(String orgCode);
} }
...@@ -5,4 +5,8 @@ ...@@ -5,4 +5,8 @@
<select id="getOrgCodeByCompanyCode" resultType="java.lang.String"> <select id="getOrgCodeByCompanyCode" resultType="java.lang.String">
select org_code from privilege_company where company_code = #{companyCode} limit 1 select org_code from privilege_company where company_code = #{companyCode} limit 1
</select> </select>
<select id="getCompanyCodeByOrgCode" resultType="java.lang.String">
select company_code from privilege_company where org_code = #{orgCode} limit 1
</select>
</mapper> </mapper>
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{regionCode}, '%'))) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{regionCode}, '%')))
AND (b.unit_type LIKE '%检验机构%' OR b.unit_type LIKE '%检测机构%') AND (b.unit_type LIKE '%检验机构%' OR b.unit_type LIKE '%检测机构%')
AND b.unit_type NOT LIKE '%检验检测机构%' AND b.unit_type NOT LIKE '%检验检测机构%'
AND b.is_delete = 0
</select> </select>
<select id="countAllRegThirdInspectCompany" resultType="java.lang.Long"> <select id="countAllRegThirdInspectCompany" resultType="java.lang.Long">
SELECT SELECT
...@@ -27,6 +28,7 @@ ...@@ -27,6 +28,7 @@
</foreach> </foreach>
AND (b.unit_type LIKE '%检验机构%' OR b.unit_type LIKE '%检测机构%') AND (b.unit_type LIKE '%检验机构%' OR b.unit_type LIKE '%检测机构%')
AND b.unit_type NOT LIKE '%检验检测机构%' AND b.unit_type NOT LIKE '%检验检测机构%'
AND b.is_delete = 0
</select> </select>
<select id="countAllOpenBizInspectCompany" resultType="java.lang.Long"> <select id="countAllOpenBizInspectCompany" resultType="java.lang.Long">
SELECT SELECT
......
...@@ -30,6 +30,7 @@ import com.yeejoin.amos.boot.module.statistcs.biz.utils.QueryBuilderUtils; ...@@ -30,6 +30,7 @@ import com.yeejoin.amos.boot.module.statistcs.biz.utils.QueryBuilderUtils;
import com.yeejoin.amos.boot.module.statistcs.factory.DynamicQueryBuilder; import com.yeejoin.amos.boot.module.statistcs.factory.DynamicQueryBuilder;
import com.yeejoin.amos.boot.module.statistcs.factory.EnhancedDynamicQueryBuilder; import com.yeejoin.amos.boot.module.statistcs.factory.EnhancedDynamicQueryBuilder;
import com.yeejoin.amos.boot.module.statistics.api.enums.*; import com.yeejoin.amos.boot.module.statistics.api.enums.*;
import com.yeejoin.amos.boot.module.statistics.api.mapper.CommonBaseMapper;
import com.yeejoin.amos.boot.module.statistics.api.mapper.TzsCustomFilterMapper; import com.yeejoin.amos.boot.module.statistics.api.mapper.TzsCustomFilterMapper;
import com.yeejoin.amos.boot.module.statistics.api.vo.CompanyInfoVo; import com.yeejoin.amos.boot.module.statistics.api.vo.CompanyInfoVo;
import com.yeejoin.amos.boot.module.statistics.api.vo.EquipInfoVo; import com.yeejoin.amos.boot.module.statistics.api.vo.EquipInfoVo;
...@@ -142,6 +143,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -142,6 +143,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
private final IdxBizJgUseInfoMapper idxBizJgUseInfoMapper; private final IdxBizJgUseInfoMapper idxBizJgUseInfoMapper;
private final TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper; private final TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
private final TzsUserInfoMapper tzsUserInfoMapper; private final TzsUserInfoMapper tzsUserInfoMapper;
private final CommonBaseMapper commonMapper;
private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
...@@ -301,10 +303,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -301,10 +303,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
SearchSourceBuilder builder = new SearchSourceBuilder(); SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true); builder.trackTotalHits(true);
BoolQueryBuilder boolMust = QueryBuilders.boolQuery(); BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
String orgCode = filter.getString("orgCode");
boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode", orgCode));
JSONObject filterParams = null; JSONObject filterParams = null;
String licensesStatusStr = ""; String licensesStatusStr = "";
String filterType = filter.getString("filterType"); String filterType = filter.getString("filterType");
...@@ -321,6 +319,8 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -321,6 +319,8 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
} }
// 组装人员过滤条件 // 组装人员过滤条件
String orgCode = filter.getString("orgCode");
personOrgCodeBoolMust(orgCode, boolMust);
this.getPersonBoolQueryBuilder(filterParams, boolMust, filterType); this.getPersonBoolQueryBuilder(filterParams, boolMust, filterType);
if ("custom".equals(filterType)) { if ("custom".equals(filterType)) {
JSONArray leftGroup = filterParams.getJSONArray("group1"); JSONArray leftGroup = filterParams.getJSONArray("group1");
...@@ -401,6 +401,20 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -401,6 +401,20 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
return result; return result;
} }
private void personOrgCodeBoolMust(String orgCode, BoolQueryBuilder boolMust) {
String officeRegion = commonMapper.getCompanyCodeByOrgCode(orgCode);
BoolQueryBuilder queryBuilder1 = QueryBuilders.boolQuery();
BoolQueryBuilder queryBuilder2 = QueryBuilders.boolQuery();
EnhancedDynamicQueryBuilder enhancedDynamicQueryBuilder = new EnhancedDynamicQueryBuilder();
queryBuilder1.must(QueryBuilders.termQuery("superviseOrgCode", "50"))
.must(QueryBuilders.wildcardQuery("officeRegion", "*" + officeRegion + "*"));
queryBuilder2.mustNot(QueryBuilders.termQuery("superviseOrgCode", "50"))
.must(QueryBuilders.prefixQuery("superviseOrgCode", orgCode));
enhancedDynamicQueryBuilder.add(queryBuilder1, or);
enhancedDynamicQueryBuilder.add(queryBuilder2, or);
boolMust.must(enhancedDynamicQueryBuilder.build());
}
/** /**
* 组装人员过滤条件 * 组装人员过滤条件
*/ */
...@@ -3067,13 +3081,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3067,13 +3081,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode.keyword", orgCode)); boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode.keyword", orgCode));
data = queryDpCompanyStatistics(filter, request, builder, boolMust, tabTotalMap); data = queryDpCompanyStatistics(filter, request, builder, boolMust, tabTotalMap);
} else if (StatisticalAnalysisEnum.person.getCode().equals(businessType)) { } else if (StatisticalAnalysisEnum.person.getCode().equals(businessType)) {
boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode", orgCode)); personOrgCodeBoolMust(orgCode, boolMust);
data = queryDpPersonStatistics(filter, request, builder, boolMust, tabTotalMap); data = queryDpPersonStatistics(filter, request, builder, boolMust, tabTotalMap);
} else if (StatisticalAnalysisEnum.inspectionCompany.getCode().equals(businessType)) { } else if (StatisticalAnalysisEnum.inspectionCompany.getCode().equals(businessType)) {
boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode.keyword", orgCode)); boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode.keyword", orgCode));
data = queryDpInspectionCompanyStatistics(filter, request, builder, boolMust, tabTotalMap); data = queryDpInspectionCompanyStatistics(filter, request, builder, boolMust, tabTotalMap);
} else { } else {
boolMust.must(QueryBuilders.prefixQuery("superviseOrgCode", orgCode)); personOrgCodeBoolMust(orgCode, boolMust);
data = queryDpInspectionPersonStatistics(filter, request, builder, boolMust, tabTotalMap); data = queryDpInspectionPersonStatistics(filter, request, builder, boolMust, tabTotalMap);
} }
...@@ -3178,7 +3192,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3178,7 +3192,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
companyBoolMust.must(companyUnitTypeBoolMust); companyBoolMust.must(companyUnitTypeBoolMust);
BoolQueryBuilder personBoolMust = QueryBuilders.boolQuery(); BoolQueryBuilder personBoolMust = QueryBuilders.boolQuery();
personBoolMust.must(QueryBuilders.prefixQuery("superviseOrgCode", orgCode)); personOrgCodeBoolMust(orgCode, personBoolMust);
personBoolMust.must(companyUnitTypeBoolMust); personBoolMust.must(companyUnitTypeBoolMust);
BoolQueryBuilder inspectionCompanyBoolMust = QueryBuilders.boolQuery(); BoolQueryBuilder inspectionCompanyBoolMust = QueryBuilders.boolQuery();
...@@ -3188,7 +3202,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3188,7 +3202,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
BoolQueryBuilder inspectionPersonBoolMust = QueryBuilders.boolQuery(); BoolQueryBuilder inspectionPersonBoolMust = QueryBuilders.boolQuery();
inspectionPersonBoolMust.must(QueryBuilders.prefixQuery("superviseOrgCode", orgCode)); personOrgCodeBoolMust(orgCode, inspectionPersonBoolMust);
inspectionPersonBoolMust.must(inspectionUnitTypeBoolMust); inspectionPersonBoolMust.must(inspectionUnitTypeBoolMust);
inspectionPersonBoolMust.mustNot(QueryBuilders.wildcardQuery("unitType.keyword", "*检验检测机构*")); inspectionPersonBoolMust.mustNot(QueryBuilders.wildcardQuery("unitType.keyword", "*检验检测机构*"));
...@@ -3951,13 +3965,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3951,13 +3965,13 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
String orgCode = filter.getString("orgCode"); String orgCode = filter.getString("orgCode");
boolQuery.must(QueryBuilders.prefixQuery("superviseOrgCode", orgCode)); // boolQuery.must(QueryBuilders.prefixQuery("superviseOrgCode", orgCode));
JSONObject filterParams = JSONObject.parseObject(JSONObject.toJSONString(filter.get("filterParams"))); JSONObject filterParams = JSONObject.parseObject(JSONObject.toJSONString(filter.get("filterParams")));
String filterType = "advanced"; String filterType = "advanced";
// 组装人员过滤条件 // 组装人员过滤条件
personOrgCodeBoolMust(orgCode, boolQuery);
this.getPersonBoolQueryBuilder(filterParams, boolQuery, filterType); this.getPersonBoolQueryBuilder(filterParams, boolQuery, filterType);
// 查询 // 查询
JSONObject expiryDateStatus = this.getExpiryDateStatusGroupStatistics(boolQuery); JSONObject expiryDateStatus = this.getExpiryDateStatusGroupStatistics(boolQuery);
JSONObject personType = this.getPersonTypeGroupStatistics(boolQuery); JSONObject personType = this.getPersonTypeGroupStatistics(boolQuery);
......
...@@ -152,6 +152,10 @@ public class StCommonServiceImpl { ...@@ -152,6 +152,10 @@ public class StCommonServiceImpl {
return orgCode; return orgCode;
} }
public String getCompanyCode(String orgCode) {
return commonMapper.getOrgCodeByCompanyCode(orgCode);
}
public List<RegionModel> getUserRegionCode(ReginParams selectedOrgInfo) { public List<RegionModel> getUserRegionCode(ReginParams selectedOrgInfo) {
String regionCode = selectedOrgInfo.getCompany().getCompanyCode(); String regionCode = selectedOrgInfo.getCompany().getCompanyCode();
Optional<RegionModel> op = regionModels.stream().filter(e -> e.getRegionCode().toString().equals(regionCode)).findFirst(); Optional<RegionModel> op = regionModels.stream().filter(e -> e.getRegionCode().toString().equals(regionCode)).findFirst();
......
...@@ -320,6 +320,9 @@ public class TzBaseEnterpriseInfoDto extends BaseDto { ...@@ -320,6 +320,9 @@ public class TzBaseEnterpriseInfoDto extends BaseDto {
@ApiModelProperty(value = "省内办公地址省#市#区") @ApiModelProperty(value = "省内办公地址省#市#区")
private List<Integer> officeRegion; private List<Integer> officeRegion;
@ApiModelProperty(value = "省内办公地址省#市#区")
private String officeRegionStr;
@ApiModelProperty(value = "省内详细办公地址") @ApiModelProperty(value = "省内详细办公地址")
private String officeAddress; private String officeAddress;
......
...@@ -50,7 +50,7 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI ...@@ -50,7 +50,7 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
IPage<TzBaseEnterpriseInfoDto> page(Page<TzBaseEnterpriseInfoDto> page, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto); IPage<TzBaseEnterpriseInfoDto> page(Page<TzBaseEnterpriseInfoDto> page, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto);
IPage<TzBaseEnterpriseInfoDto> pageList(Page<TzBaseEnterpriseInfoDto> page, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto, List orgCodeList, @Param("sort") SortVo sortMap); IPage<TzBaseEnterpriseInfoDto> pageList(Page<TzBaseEnterpriseInfoDto> page, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto, String orgCode, @Param("sort") SortVo sortMap,String officeRegion);
/** /**
* 查询未生成二维码的企业 * 查询未生成二维码的企业
......
...@@ -107,6 +107,18 @@ ...@@ -107,6 +107,18 @@
<if test="tzBaseEnterpriseInfoDto.unitType!=null and tzBaseEnterpriseInfoDto.unitType!='' "> <if test="tzBaseEnterpriseInfoDto.unitType!=null and tzBaseEnterpriseInfoDto.unitType!='' ">
AND unit_type LIKE CONCAT('%',#{tzBaseEnterpriseInfoDto.unitType},'%') AND unit_type LIKE CONCAT('%',#{tzBaseEnterpriseInfoDto.unitType},'%')
</if> </if>
<choose>
<when test="( tzBaseEnterpriseInfoDto.unitType == '检验机构'
or tzBaseEnterpriseInfoDto.unitType == '检测机构'
or tzBaseEnterpriseInfoDto.unitType == ''
or tzBaseEnterpriseInfoDto.unitType == null ) and tzBaseEnterpriseInfoDto.orgCode!= '' ">
and ((supervise_org_code != '50' and supervise_org_code LIKE CONCAT (#{orgCode}, '%'))
or (supervise_org_code = '50' and office_region LIKE CONCAT ('%', #{regionCode}, '%')))
</when>
<otherwise>
and supervise_org_code LIKE CONCAT(#{orgCode}, '%')
</otherwise>
</choose>
<if test="tzBaseEnterpriseInfoDto.unitTypeList != null and !tzBaseEnterpriseInfoDto.unitTypeList.isEmpty()"> <if test="tzBaseEnterpriseInfoDto.unitTypeList != null and !tzBaseEnterpriseInfoDto.unitTypeList.isEmpty()">
AND ( AND (
<foreach collection="tzBaseEnterpriseInfoDto.unitTypeList" item="unit" separator=" OR "> <foreach collection="tzBaseEnterpriseInfoDto.unitTypeList" item="unit" separator=" OR ">
...@@ -139,6 +151,18 @@ ...@@ -139,6 +151,18 @@
AND contact_phone LIKE CONCAT('%',#{tzBaseEnterpriseInfoDto.contactPhone},'%') AND contact_phone LIKE CONCAT('%',#{tzBaseEnterpriseInfoDto.contactPhone},'%')
</if> </if>
<if test="tzBaseEnterpriseInfoDto.superviseOrgCode!=null and tzBaseEnterpriseInfoDto.superviseOrgCode!='' "> <if test="tzBaseEnterpriseInfoDto.superviseOrgCode!=null and tzBaseEnterpriseInfoDto.superviseOrgCode!='' ">
<choose>
<when test="tzBaseEnterpriseInfoDto.unitType == '检验机构'
or tzBaseEnterpriseInfoDto.unitType == '检测机构'
or tzBaseEnterpriseInfoDto.unitType == ''
or tzBaseEnterpriseInfoDto.unitType == null">
and ((supervise_org_code != '50' and supervise_org_code LIKE CONCAT (#{tzBaseEnterpriseInfoDto.superviseOrgCode}, '%'))
or (supervise_org_code = '50' and office_region LIKE CONCAT ('%', #{tzBaseEnterpriseInfoDto.OfficeRegionStr}, '%')))
</when>
<otherwise>
and supervise_org_code LIKE CONCAT(#{orgCode}, '%')
</otherwise>
</choose>
AND supervise_org_code LIKE CONCAT('%',#{tzBaseEnterpriseInfoDto.superviseOrgCode},'%') AND supervise_org_code LIKE CONCAT('%',#{tzBaseEnterpriseInfoDto.superviseOrgCode},'%')
</if> </if>
<if test="tzBaseEnterpriseInfoDto.address!=null and tzBaseEnterpriseInfoDto.address!='' "> <if test="tzBaseEnterpriseInfoDto.address!=null and tzBaseEnterpriseInfoDto.address!='' ">
......
...@@ -343,7 +343,6 @@ ...@@ -343,7 +343,6 @@
<foreach collection="postList" item="item" separator=","> <foreach collection="postList" item="item" separator=",">
#{item} #{item}
</foreach> </foreach>
]
</if> </if>
<if test="filter.postCode != null and filter.postCode != ''"> <if test="filter.postCode != null and filter.postCode != ''">
and u.new_post like concat('%',#{filter.postCode}, '%') and u.new_post like concat('%',#{filter.postCode}, '%')
...@@ -352,7 +351,8 @@ ...@@ -352,7 +351,8 @@
and u.sub_post like concat('%',#{filter.subPostCode}, '%') and u.sub_post like concat('%',#{filter.subPostCode}, '%')
</if> </if>
<if test="filter.superviseOrgCode != null and filter.superviseOrgCode != ''"> <if test="filter.superviseOrgCode != null and filter.superviseOrgCode != ''">
and e.supervise_org_code like concat('%',#{filter.superviseOrgCode}, '%') and ((e.supervise_org_code != '50' and e.supervise_org_code LIKE CONCAT (#{filter.superviseOrgCode}, '%'))
or (e.supervise_org_code = '50' and e.office_region LIKE CONCAT ('%', #{regionCode}, '%')))
</if> </if>
<if test="filter.createDateStart != null and filter.createDateEnd != null"> <if test="filter.createDateStart != null and filter.createDateEnd != null">
and (u.create_date between #{filter.createDateStart} and #{filter.createDateEnd}) and (u.create_date between #{filter.createDateStart} and #{filter.createDateEnd})
......
...@@ -98,6 +98,7 @@ public class EnterpriseRefreshHandler implements IDataRefreshHandler { ...@@ -98,6 +98,7 @@ public class EnterpriseRefreshHandler implements IDataRefreshHandler {
esUserInfo.setUnitType(esBaseEnterpriseInfo.getUnitType()); esUserInfo.setUnitType(esBaseEnterpriseInfo.getUnitType());
esUserInfo.setSuperviseOrgName(esBaseEnterpriseInfo.getSuperviseOrgName()); esUserInfo.setSuperviseOrgName(esBaseEnterpriseInfo.getSuperviseOrgName());
esUserInfo.setSuperviseOrgCode(esBaseEnterpriseInfo.getSuperviseOrgCode()); esUserInfo.setSuperviseOrgCode(esBaseEnterpriseInfo.getSuperviseOrgCode());
esUserInfo.setOfficeRegion(esBaseEnterpriseInfo.getOfficeRegion());
}); });
if (userInfosEs.iterator().hasNext()) { if (userInfosEs.iterator().hasNext()) {
esUserInfoDao.saveAll(userInfosEs); esUserInfoDao.saveAll(userInfosEs);
......
...@@ -87,6 +87,7 @@ public class UserRefreshHandler implements IDataRefreshHandler { ...@@ -87,6 +87,7 @@ public class UserRefreshHandler implements IDataRefreshHandler {
esUserInfo.setUnitType(unitType); esUserInfo.setUnitType(unitType);
esUserInfo.setSuperviseOrgName(unit.getSuperviseOrgName()); esUserInfo.setSuperviseOrgName(unit.getSuperviseOrgName());
esUserInfo.setSuperviseOrgCode(unit.getSuperviseOrgCode()); esUserInfo.setSuperviseOrgCode(unit.getSuperviseOrgCode());
esUserInfo.setOfficeRegion(unit.getOfficeRegion());
} }
esUserInfo.setLicenses(commonRefreshService.buildUserLicenses(userInfo.getSequenceNbr())); esUserInfo.setLicenses(commonRefreshService.buildUserLicenses(userInfo.getSequenceNbr()));
esUserInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesUser(esUserInfo.getLicenses())); esUserInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesUser(esUserInfo.getLicenses()));
......
...@@ -205,26 +205,34 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -205,26 +205,34 @@ public class TzBaseEnterpriseInfoServiceImpl
@Override @Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto, String sort) { public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto, String sort) {
try { try {
List<String> orgCodeList = new ArrayList<>(); // List<String> orgCodeList = new ArrayList<>();
if (tzBaseEnterpriseInfoDto.getSuperviseKey() != null) { if (tzBaseEnterpriseInfoDto.getSuperviseKey() != null) {
FeignClientResult<CompanyModel> result = Privilege.companyClient FeignClientResult<CompanyModel> result = Privilege.companyClient
.seleteOne(Long.valueOf(tzBaseEnterpriseInfoDto.getSuperviseKey())); .seleteOne(Long.valueOf(tzBaseEnterpriseInfoDto.getSuperviseKey()));
if (result.getResult() != null) { if (result.getResult() != null) {
tzBaseEnterpriseInfoDto.setSuperviseOrgCode(result.getResult().getOrgCode()); tzBaseEnterpriseInfoDto.setSuperviseOrgCode(result.getResult().getOrgCode());
tzBaseEnterpriseInfoDto.setOfficeRegionStr(result.getResult().getCompanyCode());
} }
} }
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize()); Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
List<JSONObject> companyType1 = equipmentCategoryService.getCompanyType(); List<JSONObject> companyType1 = equipmentCategoryService.getCompanyType();
String orgCode = null;
String officeRegion = null;
if (!ValidationUtil.isEmpty(companyType1)) { if (!ValidationUtil.isEmpty(companyType1)) {
for (JSONObject jsonObject : companyType1) { JSONObject companyTypeJson = companyType1.get(0);
String orgCode = jsonObject.getString("orgCode"); orgCode = companyTypeJson.getString("orgCode");
if (!ValidationUtil.isEmpty(orgCode)) { officeRegion = companyTypeJson.getString("companyCode");
orgCodeList.add(orgCode); }
} // if (!ValidationUtil.isEmpty(companyType1)) {
} // for (JSONObject jsonObject : companyType1) {
} // String orgCode = jsonObject.getString("orgCode");
// if (!ValidationUtil.isEmpty(orgCode)) {
// orgCodeList.add(orgCode);
// }
// }
// }
SortVo sortMap = userInfoService.sortFieldConversion(sort); SortVo sortMap = userInfoService.sortFieldConversion(sort);
return this.baseMapper.pageList(page, tzBaseEnterpriseInfoDto, orgCodeList, sortMap); return this.baseMapper.pageList(page, tzBaseEnterpriseInfoDto, orgCode, sortMap, officeRegion);
} catch (Exception ex) { } catch (Exception ex) {
String msg = ex.getMessage() == null ? "" : ex.getMessage(); String msg = ex.getMessage() == null ? "" : ex.getMessage();
if (msg.contains("eyibc decrypt error") if (msg.contains("eyibc decrypt error")
......
...@@ -54,6 +54,7 @@ import com.yeejoin.amos.boot.module.tcm.api.vo.SortVo; ...@@ -54,6 +54,7 @@ import com.yeejoin.amos.boot.module.tcm.api.vo.SortVo;
import com.yeejoin.amos.boot.module.tcm.api.vo.TzsUserInfoVo; import com.yeejoin.amos.boot.module.tcm.api.vo.TzsUserInfoVo;
import com.yeejoin.amos.boot.module.tcm.api.vo.UserInfoVo; import com.yeejoin.amos.boot.module.tcm.api.vo.UserInfoVo;
import com.yeejoin.amos.boot.module.tcm.biz.refresh.handler.UserRefreshHandler; import com.yeejoin.amos.boot.module.tcm.biz.refresh.handler.UserRefreshHandler;
import com.yeejoin.amos.boot.module.tcm.biz.utils.EnhancedDynamicQueryBuilder;
import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo; import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl; import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl;
import com.yeejoin.amos.component.feign.config.InnerInvokException; import com.yeejoin.amos.component.feign.config.InnerInvokException;
...@@ -1089,6 +1090,12 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -1089,6 +1090,12 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
Page<UserPermissionDto> permissionDtoPage = new Page<>(current, size); Page<UserPermissionDto> permissionDtoPage = new Page<>(current, size);
List<String> post = this.getPostByType(type); List<String> post = this.getPostByType(type);
SortVo sortMap = this.sortFieldConversion(sort); SortVo sortMap = this.sortFieldConversion(sort);
if (!ObjectUtils.isEmpty(filter.getSuperviseOrgCode())) {
HashMap<String, Object> parentMessage = (HashMap<String, Object>) Privilege.companyClient.queryByOrgcode(filter.getSuperviseOrgCode()).getResult();
// 目前平台返回key为compnay(存在拼写错误)
CompanyModel parentModel = JSON.parseObject(JSON.toJSONString(parentMessage.get("compnay")), CompanyModel.class);
filter.setSuperviseCompanyCode(parentModel.getCompanyCode());
}
Page<UserPermissionDto> result = this.getBaseMapper().queryUserByPermissionPage(permissionDtoPage, post, filter, sortMap); Page<UserPermissionDto> result = this.getBaseMapper().queryUserByPermissionPage(permissionDtoPage, post, filter, sortMap);
result.getRecords().forEach(d -> { result.getRecords().forEach(d -> {
if (StringUtils.isNotEmpty(d.getIdentificationStr())) { if (StringUtils.isNotEmpty(d.getIdentificationStr())) {
...@@ -2835,9 +2842,20 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2835,9 +2842,20 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
// 属地监管部门 // 属地监管部门
if (!ObjectUtils.isEmpty(map.get("superviseOrgCode"))) { if (!ObjectUtils.isEmpty(map.get("superviseOrgCode"))) {
String superviseOrgCode = map.get("superviseOrgCode"); String superviseOrgCode = map.get("superviseOrgCode");
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery(); HashMap<String, Object> parentMessage = (HashMap<String, Object>) Privilege.companyClient.queryByOrgcode(superviseOrgCode).getResult();
meBuilder.must(QueryBuilders.prefixQuery("superviseOrgCode", superviseOrgCode)); // 目前平台返回key为compnay(存在拼写错误)
boolMust.must(meBuilder); CompanyModel parentModel = JSON.parseObject(JSON.toJSONString(parentMessage.get("compnay")), CompanyModel.class);
String companyCode = parentModel.getCompanyCode();
BoolQueryBuilder queryBuilder1 = QueryBuilders.boolQuery();
BoolQueryBuilder queryBuilder2 = QueryBuilders.boolQuery();
EnhancedDynamicQueryBuilder enhancedDynamicQueryBuilder = new EnhancedDynamicQueryBuilder();
queryBuilder1.must(QueryBuilders.termQuery("superviseOrgCode", "50"))
.must(QueryBuilders.wildcardQuery("officeRegion", "*" + companyCode + "*"));
queryBuilder2.mustNot(QueryBuilders.termQuery("superviseOrgCode", "50"))
.must(QueryBuilders.prefixQuery("superviseOrgCode", superviseOrgCode));
enhancedDynamicQueryBuilder.add(queryBuilder1, "or");
enhancedDynamicQueryBuilder.add(queryBuilder2, "or");
boolMust.must(enhancedDynamicQueryBuilder.build());
} }
// 资质状态 // 资质状态
......
package com.yeejoin.amos.boot.module.tcm.biz.utils;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import java.util.ArrayList;
import java.util.List;
public class EnhancedDynamicQueryBuilder {
private final List<QueryBuilder> initialClauses = new ArrayList<>();
private String groupLogic; // "AND" 或 "OR"
private final List<QueryBuilder> mustClauses = new ArrayList<>();
private final List<QueryBuilder> shouldClauses = new ArrayList<>();
private final List<QueryBuilder> mustNotClauses = new ArrayList<>();
public EnhancedDynamicQueryBuilder() {
this("AND"); // 默认组间关系为AND
}
public EnhancedDynamicQueryBuilder(String groupLogic) {
this.groupLogic = groupLogic != null ? groupLogic : "AND";
}
/**
* 添加条件,自动处理第一个条件为null的情况
* @param query 查询条件
* @param logic 逻辑关系 (AND/OR/NOT),第一个条件可为null
*/
public EnhancedDynamicQueryBuilder add(QueryBuilder query, String logic) {
if (logic == null) {
if (isEmpty()) {
// 第一个条件,默认作为must条件
mustClauses.add(query);
} else {
// 后续条件未指定逻辑,使用组间默认逻辑
if ("OR".equalsIgnoreCase(groupLogic)) {
shouldClauses.add(query);
} else {
mustClauses.add(query);
}
}
} else {
switch (logic.toUpperCase()) {
case "AND":
mustClauses.add(query);
break;
case "OR":
shouldClauses.add(query);
break;
case "NOT":
mustNotClauses.add(query);
break;
default:
throw new IllegalArgumentException("Unsupported logic: " + logic);
}
}
return this;
}
public BoolQueryBuilder build() {
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
// 处理must条件
mustClauses.forEach(boolQuery::must);
// 处理should条件
if (!shouldClauses.isEmpty()) {
shouldClauses.forEach(boolQuery::should);
// 如果没有must条件,至少满足一个should
if (mustClauses.isEmpty()) {
boolQuery.minimumShouldMatch(1);
}
}
// 处理mustNot条件
mustNotClauses.forEach(boolQuery::mustNot);
return boolQuery;
}
private boolean isEmpty() {
return mustClauses.isEmpty() && shouldClauses.isEmpty() && mustNotClauses.isEmpty();
}
}
\ No newline at end of file
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