Commit f206fb0c authored by hcing's avatar hcing

fix(tzs): 风险报送人员调整

parent ac0a35f2
...@@ -28,7 +28,5 @@ public interface IDataDictionaryService { ...@@ -28,7 +28,5 @@ public interface IDataDictionaryService {
List<DataDictionary> getByParent(String parent); List<DataDictionary> getByParent(String parent);
List<DataDictionary> getByTypeAndDesc(String type, String group);
DataDictionary getByExtend(String groupId, String type); DataDictionary getByExtend(String groupId, String type);
} }
...@@ -180,14 +180,6 @@ public class DataDictionaryServiceImpl extends BaseService<DataDictionaryDto, Da ...@@ -180,14 +180,6 @@ public class DataDictionaryServiceImpl extends BaseService<DataDictionaryDto, Da
} }
@Override @Override
public List<DataDictionary> getByTypeAndDesc(String type, String typeDesc) {
LambdaQueryWrapper<DataDictionary> wrapper = new LambdaQueryWrapper<>();
wrapper.likeRight(DataDictionary::getType,type);
wrapper.likeRight(DataDictionary::getTypeDesc,typeDesc);
return this.list(wrapper);
}
@Override
public DataDictionary getByExtend(String groupId, String type) { public DataDictionary getByExtend(String groupId, String type) {
LambdaQueryWrapper<DataDictionary> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DataDictionary> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DataDictionary::getExtend, groupId); wrapper.eq(DataDictionary::getExtend, groupId);
......
{ {
"检验检测机构": { "检验机构": {
"6660": [], "6660": [],
"6667": [], "6667": [],
"66151": [], "66151": [],
...@@ -7,7 +7,19 @@ ...@@ -7,7 +7,19 @@
"6546": [], "6546": [],
"6616": [], "6616": [],
"6761": [], "6761": [],
"6762": [] "6762": [],
"6766": []
},
"检测机构": {
"6660": [],
"6667": [],
"66151": [],
"66152": [],
"6546": [],
"6616": [],
"6761": [],
"6762": [],
"6766": []
}, },
"设计单位": { "设计单位": {
"6660": [], "6660": [],
...@@ -21,7 +33,8 @@ ...@@ -21,7 +33,8 @@
"6548": [], "6548": [],
"6550": [], "6550": [],
"6551": [], "6551": [],
"6616": [] "6616": [],
"6766": []
}, },
"制造单位": { "制造单位": {
"6660": [], "6660": [],
...@@ -35,7 +48,8 @@ ...@@ -35,7 +48,8 @@
"6548": [], "6548": [],
"6550": [], "6550": [],
"6551": [], "6551": [],
"6616": [] "6616": [],
"6766": []
}, },
"充装单位": { "充装单位": {
"6660": [], "6660": [],
...@@ -46,7 +60,8 @@ ...@@ -46,7 +60,8 @@
"6548": [], "6548": [],
"6616": [], "6616": [],
"6763": [], "6763": [],
"6549": [] "6549": [],
"6766": []
}, },
"安装改造维修单位": { "安装改造维修单位": {
"6660": [], "6660": [],
...@@ -58,12 +73,14 @@ ...@@ -58,12 +73,14 @@
"6552": [], "6552": [],
"66151": [], "66151": [],
"66152": [], "66152": [],
"6667": [],
"6546": [], "6546": [],
"6548": [], "6548": [],
"6550": [], "6550": [],
"6551": [], "6551": [],
"6616": [], "6616": [],
"6553": [] "6553": [],
"6766": []
}, },
"使用单位": { "使用单位": {
"6552": ["6713"], "6552": ["6713"],
...@@ -72,7 +89,11 @@ ...@@ -72,7 +89,11 @@
"6548": [], "6548": [],
"6616": [], "6616": [],
"6617": [], "6617": [],
"6549": [] "6549": [],
"66151": [],
"66152": [],
"6667": [],
"6766": []
}, },
"个人主体": { "个人主体": {
"6552": ["6713"], "6552": ["6713"],
...@@ -81,6 +102,13 @@ ...@@ -81,6 +102,13 @@
"6548": [], "6548": [],
"6616": [], "6616": [],
"6617": [], "6617": [],
"6549": [] "6549": [],
"66151": [],
"66152": [],
"6667": [],
"6766": []
},
"监管机构": {
"6766": []
} }
} }
...@@ -3,6 +3,10 @@ package com.yeejoin.amos.boot.module.common.biz.service.impl; ...@@ -3,6 +3,10 @@ package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.NestedQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
...@@ -15,6 +19,8 @@ import java.util.HashMap; ...@@ -15,6 +19,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static org.elasticsearch.index.query.QueryBuilders.existsQuery;
@Slf4j @Slf4j
@Service @Service
public class TZSCommonServiceImpl { public class TZSCommonServiceImpl {
...@@ -62,11 +68,11 @@ public class TZSCommonServiceImpl { ...@@ -62,11 +68,11 @@ public class TZSCommonServiceImpl {
String licensesStatus = null; String licensesStatus = null;
if (esUserInfoJson.containsKey("licenses")) { if (esUserInfoJson.containsKey("licenses")) {
// 以下人员类型有资质要求 // 以下人员类型有资质要求
// 人员类型(newPost):检验人员:66151、检测人员:66152 // 人员类型(newPost):检验人员:66151、检测人员:66152 ,检验检测区域负责人 :6667
// 人员子类型(subPost): 持证人员:6713、持证人员(P):6764、持证人员(R2):6765 // 人员子类型(subPost): 持证人员:6713、持证人员(P):6764、持证人员(R2):6765
String newPost = ObjectUtils.isEmpty(esUserInfoJson.getString("newPost")) ? "" : esUserInfoJson.getString("newPost"); String newPost = ObjectUtils.isEmpty(esUserInfoJson.getString("newPost")) ? "" : esUserInfoJson.getString("newPost");
String subPost = ObjectUtils.isEmpty(esUserInfoJson.getString("subPost")) ? "" : esUserInfoJson.getString("subPost"); String subPost = ObjectUtils.isEmpty(esUserInfoJson.getString("subPost")) ? "" : esUserInfoJson.getString("subPost");
if (newPost.contains("66151") || newPost.contains("66152") || subPost.contains("6713") || subPost.contains("6764") || subPost.contains("6765")) { if (newPost.contains("66151") || newPost.contains("66152") || newPost.contains("6667") || subPost.contains("6713") || subPost.contains("6764") || subPost.contains("6765")) {
JSONArray licenses = esUserInfoJson.getJSONArray("licenses"); JSONArray licenses = esUserInfoJson.getJSONArray("licenses");
String overdueStr = licensesStatusMap.get(overdue); String overdueStr = licensesStatusMap.get(overdue);
String nearStr = licensesStatusMap.get(near); String nearStr = licensesStatusMap.get(near);
...@@ -119,4 +125,119 @@ public class TZSCommonServiceImpl { ...@@ -119,4 +125,119 @@ public class TZSCommonServiceImpl {
} }
return licensesStatus; return licensesStatus;
} }
/**
* 需要资质的人员查询构造条件
* 无资质:需要资质但是没有填写
*
* @return
*/
public BoolQueryBuilder getNotLicencesBuilderWithPerson() {
return QueryBuilders.boolQuery()
.should(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.should(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.should(QueryBuilders.wildcardQuery("newPost", "*6667*"))
.should(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.must(QueryBuilders.wildcardQuery("subPost", "*6713*")))
.should(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6765*"))
.minimumShouldMatch(1)
)
.minimumShouldMatch(1);
}
/**
* 无资质要求的人员查询构造条件
* 无资质要求:不需要资质
*
* @return
*/
public BoolQueryBuilder getNotNeedLicencesBuilderWithPerson() {
return QueryBuilders.boolQuery()
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*6667*"))
.mustNot(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.must(QueryBuilders.wildcardQuery("subPost", "*6713*")))
.mustNot(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6765*"))
.minimumShouldMatch(1)
);
}
/**
* 人员资质状态查询构造条件
*
* @param boolMust
* @param licensesStatus
* @param path
* @param nestedField
*/
public void buildExpiryDateQueryBuilder(BoolQueryBuilder boolMust, String licensesStatus, String path, String nestedField) {
if (licensesStatus.equals(overdue)) {
// 不需要资质的人员查询构造条件
BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson();
boolMust.must(notNeedLicensesQueryBuilder);
// 超期:小于当前日期
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.rangeQuery(nestedField).lt(LocalDate.now().format(formatter)),
ScoreMode.None
);
boolMust.must(nestedQuery);
} else if (licensesStatus.equals(near)) {
// 不需要资质的人员查询构造条件
BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson();
boolMust.must(notNeedLicensesQueryBuilder);
// 临期:小于等于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.rangeQuery(nestedField).lte(LocalDate.now().plusDays(30).format(formatter)).gte(LocalDate.now().format(formatter)),
ScoreMode.None
);
boolMust.must(nestedQuery);
} else if (licensesStatus.equals(normal)) {
// 不需要资质的人员查询构造条件
BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson();
boolMust.must(notNeedLicensesQueryBuilder);
// 正常:大于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.rangeQuery(nestedField).gt(LocalDate.now().plusDays(30).format(formatter)),
ScoreMode.None
);
boolMust.must(nestedQuery);
} else if (licensesStatus.equals(none)) {
// 不需要资质的人员查询构造条件
BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson();
boolMust.must(notNeedLicensesQueryBuilder);
// 无有效期
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.boolQuery().mustNot(existsQuery(nestedField)),
ScoreMode.None
);
boolMust.must(nestedQuery);
}
// 只在人员列表处用到
// 综合统计处未用到下面的条件,理论上走不到下面俩条件
else if (licensesStatus.equals(noLicense)) {
// 无资质
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
existsQuery(path + "." + "certNo"),
ScoreMode.None
);
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(this.getNotLicencesBuilderWithPerson());
meBuilder.must(QueryBuilders.boolQuery().mustNot(nestedQuery));
boolMust.must(meBuilder);
} else if (licensesStatus.equals(noLicenseReq)) {
// 无资质要求
boolMust.must(this.getNotNeedLicencesBuilderWithPerson());
}
}
} }
\ No newline at end of file
...@@ -411,57 +411,28 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -411,57 +411,28 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
existsQuery(nestedField), existsQuery(nestedField),
ScoreMode.None ScoreMode.None
); );
// ***********************************************************************************************************************************
// 注意 : 若要修改下面的【无资质】和【无资质要求】逻辑,请同步修改 tzsCommonService.buildExpiryDateQueryBuilder()方法中的后半部分 ***************
// ***********************************************************************************************************************************
// 以下人员类型有资质要求 // 以下人员类型有资质要求
// 人员类型(newPost):检验人员:66151、检测人员:66152、作业人员:6552、检查人员:6763 // 人员类型(newPost):检验人员:66151、检测人员:66152、作业人员:6552、检查人员:6763、检验检测区域负责人:6667
// 人员子类型(subPost): 持证人员:6713、持证人员(P):6764、持证人员(R2):6765 // 人员子类型(subPost): 持证人员:6713、持证人员(P):6764、持证人员(R2):6765
if (item.equals("1")) { if (item.equals("1")) {
licencesQueryBuilder.add(nestedQuery, or); licencesQueryBuilder.add(nestedQuery, or);
} else if (item.equals("0")) { } else if (item.equals("0")) {
// 无资质 // 无资质
DynamicQueryBuilder queryBuilder = new DynamicQueryBuilder(); DynamicQueryBuilder queryBuilder = new DynamicQueryBuilder();
queryBuilder.and(this.getNotLicencesBuilderWithPerson()); queryBuilder.and(tzsCommonService.getNotLicencesBuilderWithPerson());
queryBuilder.and(QueryBuilders.boolQuery().mustNot(nestedQuery)); queryBuilder.and(QueryBuilders.boolQuery().mustNot(nestedQuery));
licencesQueryBuilder.add(queryBuilder.build(), or); licencesQueryBuilder.add(queryBuilder.build(), or);
} else { } else {
// 无资质要求 // 无资质要求
licencesQueryBuilder.add(this.getNotNeedLicencesBuilderWithPerson(), or); licencesQueryBuilder.add(tzsCommonService.getNotNeedLicencesBuilderWithPerson(), or);
} }
} else if (k.equals("expiryDate")) { } else if (k.equals("expiryDate")) {
// 不需要资质的人员查询构造条件 // 无有效期 / 资质正常 / 资质临期 / 资质超期
BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson(); tzsCommonService.buildExpiryDateQueryBuilder(boolMust, item.toString(), path, nestedField);
boolMust.must(notNeedLicensesQueryBuilder);
if (item.equals(overdue)) {
// 超期:小于当前日期
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.rangeQuery(nestedField).lt(LocalDate.now().format(formatter)),
ScoreMode.None
);
boolMust.must(nestedQuery);
} else if (item.equals(near)) {
// 临期:小于等于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.rangeQuery(nestedField).lte(LocalDate.now().plusDays(30).format(formatter)).gte(LocalDate.now().format(formatter)),
ScoreMode.None
);
boolMust.must(nestedQuery);
} else if (item.equals(normal)) {
// 正常:大于当前日期加上30天
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.rangeQuery(nestedField).gt(LocalDate.now().plusDays(30).format(formatter)),
ScoreMode.None
);
boolMust.must(nestedQuery);
} else if (item.equals(none)) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path,
QueryBuilders.boolQuery().mustNot(existsQuery(nestedField)),
ScoreMode.None
);
boolMust.must(nestedQuery);
}
} else if (k.equals("certType") || k.equals("permissionLevel")) { } else if (k.equals("certType") || k.equals("permissionLevel")) {
NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery(
path, path,
...@@ -1700,9 +1671,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1700,9 +1671,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
ScoreMode.None ScoreMode.None
); );
// 无资质查询 // 无资质查询
BoolQueryBuilder noCertQuery = this.getNotLicencesBuilderWithPerson(); BoolQueryBuilder noCertQuery = tzsCommonService.getNotLicencesBuilderWithPerson();
// 无资质要求查询 // 无资质要求查询
BoolQueryBuilder noCertRequestQuery = this.getNotNeedLicencesBuilderWithPerson(); BoolQueryBuilder noCertRequestQuery = tzsCommonService.getNotNeedLicencesBuilderWithPerson();
if (value.equals("1")) { if (value.equals("1")) {
if (itemCondition.equals("eq") || itemCondition.equals("in")) { if (itemCondition.equals("eq") || itemCondition.equals("in")) {
...@@ -1858,45 +1829,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -1858,45 +1829,6 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
} }
} }
/**
* 需要资质的人员查询构造条件
* 无资质:需要资质但是没有填写
*
* @return
*/
private BoolQueryBuilder getNotLicencesBuilderWithPerson() {
return QueryBuilders.boolQuery()
.should(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.should(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.should(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.must(QueryBuilders.wildcardQuery("subPost", "*6713*")))
.should(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6765*"))
.minimumShouldMatch(1)
)
.minimumShouldMatch(1);
}
/**
* 无资质要求的人员查询构造条件
* 无资质要求:不需要资质
*
* @return
*/
private BoolQueryBuilder getNotNeedLicencesBuilderWithPerson() {
return QueryBuilders.boolQuery()
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66151*"))
.mustNot(QueryBuilders.wildcardQuery("newPost", "*66152*"))
.mustNot(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6552*"))
.must(QueryBuilders.wildcardQuery("subPost", "*6713*")))
.mustNot(QueryBuilders.boolQuery().must(QueryBuilders.wildcardQuery("newPost", "*6763*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6764*"))
.should(QueryBuilders.wildcardQuery("subPost", "*6765*"))
.minimumShouldMatch(1)
);
}
private void companyFieldHandle(String field, String itemCondition, Object value, String isOr, EnhancedDynamicQueryBuilder builder) { private void companyFieldHandle(String field, String itemCondition, Object value, String isOr, EnhancedDynamicQueryBuilder builder) {
if (field.equals("itemCode") || field.equals("subItemCode") || field.equals("permitStatus") || field.equals("expiryDate")) { if (field.equals("itemCode") || field.equals("subItemCode") || field.equals("permitStatus") || field.equals("expiryDate")) {
String path = "licenses"; String path = "licenses";
...@@ -3627,7 +3559,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3627,7 +3559,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
String path = "licenses"; String path = "licenses";
String nestedField = path + ".expiryDate"; String nestedField = path + ".expiryDate";
// 需要资质的人员必须条件 // 需要资质的人员必须条件
BoolQueryBuilder needLicensesQueryBuilder = this.getNotLicencesBuilderWithPerson(); BoolQueryBuilder needLicensesQueryBuilder = tzsCommonService.getNotLicencesBuilderWithPerson();
// 资质正常 // 资质正常
BoolQueryBuilder normalBoolQuery = QueryBuilderUtils.copyBoolQuery(boolQuery); BoolQueryBuilder normalBoolQuery = QueryBuilderUtils.copyBoolQuery(boolQuery);
NestedQueryBuilder normalNestedQuery = QueryBuilders.nestedQuery( NestedQueryBuilder normalNestedQuery = QueryBuilders.nestedQuery(
...@@ -3700,7 +3632,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -3700,7 +3632,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
// 无资质要求查询 // 无资质要求查询
// BoolQueryBuilder notNeedLicensesBoolQuery = QueryBuilderUtils.copyBoolQuery(boolQuery); // BoolQueryBuilder notNeedLicensesBoolQuery = QueryBuilderUtils.copyBoolQuery(boolQuery);
// // 不需要资质的人员查询构造条件 // // 不需要资质的人员查询构造条件
// BoolQueryBuilder notNeedLicensesQueryBuilder = this.getNotNeedLicencesBuilderWithPerson(); // BoolQueryBuilder notNeedLicensesQueryBuilder = tzsCommonService.getNotNeedLicencesBuilderWithPerson();
// DynamicQueryBuilder mainBuilderNotNeed = new DynamicQueryBuilder(); // DynamicQueryBuilder mainBuilderNotNeed = new DynamicQueryBuilder();
// EnhancedDynamicQueryBuilder dynamicQueryBuilder = new EnhancedDynamicQueryBuilder(); // EnhancedDynamicQueryBuilder dynamicQueryBuilder = new EnhancedDynamicQueryBuilder();
// //
......
...@@ -145,4 +145,7 @@ public class TzsUserInfoDto extends BaseDto { ...@@ -145,4 +145,7 @@ public class TzsUserInfoDto extends BaseDto {
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
protected Date createDate; protected Date createDate;
@ApiModelProperty(value = "人员所在企业类型:监管/行政审批局supervision;企业:company")
protected String companyType;
} }
...@@ -242,4 +242,10 @@ public class TzsUserInfo extends BaseEntity { ...@@ -242,4 +242,10 @@ public class TzsUserInfo extends BaseEntity {
*/ */
@TableField(value = "create_date") @TableField(value = "create_date")
protected Date createDate; protected Date createDate;
/**
* 人员所在企业类型:监管/行政审批局supervision;企业:company
*/
@TableField(value = "company_type")
protected String companyType;
} }
...@@ -9,6 +9,7 @@ import com.yeejoin.amos.boot.module.tcm.api.dto.TzsUserInfoDto; ...@@ -9,6 +9,7 @@ import com.yeejoin.amos.boot.module.tcm.api.dto.TzsUserInfoDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo; import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.tcm.api.vo.SortVo; import com.yeejoin.amos.boot.module.tcm.api.vo.SortVo;
import com.yeejoin.amos.boot.module.tcm.api.vo.UserInfoVo; import com.yeejoin.amos.boot.module.tcm.api.vo.UserInfoVo;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
...@@ -44,6 +45,8 @@ public interface TzsUserInfoMapper extends BaseMapper<TzsUserInfo> { ...@@ -44,6 +45,8 @@ public interface TzsUserInfoMapper extends BaseMapper<TzsUserInfo> {
String selectCompanyTypeById(Long companySeq); String selectCompanyTypeById(Long companySeq);
CompanyModel selectPrivilegeCompanyByCompanyCode(@Param("companyCode") String companyCode);
/** /**
* 已资质为维度查询人 * 已资质为维度查询人
* @param page 分页对象 * @param page 分页对象
......
...@@ -96,7 +96,7 @@ public interface ITzsUserInfoService extends IService<TzsUserInfo> { ...@@ -96,7 +96,7 @@ public interface ITzsUserInfoService extends IService<TzsUserInfo> {
String deletePersonSubtypeHistoricalData(); String deletePersonSubtypeHistoricalData();
List<DataDictionary> postByUnitType(CompanyBo company); List<DataDictionary> postByUnitType(CompanyBo company,String formType);
List<DataDictionary> subPostByUnitType(CompanyBo company, String parentCode); List<DataDictionary> subPostByUnitType(CompanyBo company, String parentCode);
......
...@@ -261,6 +261,14 @@ ...@@ -261,6 +261,14 @@
<select id="selectCompanyTypeById" resultType="java.lang.String"> <select id="selectCompanyTypeById" resultType="java.lang.String">
select company_type from privilege_company where sequence_nbr = #{companySeq} select company_type from privilege_company where sequence_nbr = #{companySeq}
</select> </select>
<select id="selectPrivilegeCompanyByCompanyCode" resultType="com.yeejoin.amos.feign.privilege.model.CompanyModel">
select *
from privilege_company
where company_code = #{companyCode}
</select>
<select id="queryUserByPermissionOfOneCompany" resultType="com.yeejoin.amos.boot.module.common.api.dto.UserPermissionDto"> <select id="queryUserByPermissionOfOneCompany" resultType="com.yeejoin.amos.boot.module.common.api.dto.UserPermissionDto">
SELECT SELECT
COALESCE (p.sequence_nbr, u.sequence_nbr) as sequence_nbr, COALESCE (p.sequence_nbr, u.sequence_nbr) as sequence_nbr,
......
...@@ -29,6 +29,7 @@ import com.yeejoin.amos.feign.systemctl.Systemctl; ...@@ -29,6 +29,7 @@ import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert; import org.springframework.util.Assert;
...@@ -464,9 +465,10 @@ public class TzsUserInfoController extends BaseController { ...@@ -464,9 +465,10 @@ public class TzsUserInfoController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/postByUnitType") @GetMapping(value = "/postByUnitType")
@ApiOperation(httpMethod = "GET", value = "根据单位类型查询对应的人员类型", notes = "根据单位类型查询对应的人员类型") @ApiOperation(httpMethod = "GET", value = "根据单位类型查询对应的人员类型", notes = "根据单位类型查询对应的人员类型")
public ResponseModel<List<DataDictionary>> postByUnitType() { public ResponseModel<List<DataDictionary>> postByUnitType(@ApiParam(value = "表单类型:add/edit/detail,用于过滤监管单位查询人员类型,详情页面查询所有(可能是查看其他单位的人员详情),新增编辑页面只过滤自己类型下的,限制添加的人员类型", required = true, defaultValue = "detail")
@RequestParam(value = "formType", defaultValue = "") String formType) {
CompanyBo company = getSelectedOrgInfo().getCompany(); CompanyBo company = getSelectedOrgInfo().getCompany();
return ResponseHelper.buildResponse(tzsUserInfoService.postByUnitType(company)); return ResponseHelper.buildResponse(tzsUserInfoService.postByUnitType(company, formType));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
......
...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.tcm.biz.refresh.handler; ...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.tcm.biz.refresh.handler;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; 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.EsBaseEnterpriseInfoDao;
import com.yeejoin.amos.boot.module.common.api.dao.EsUserInfoDao; import com.yeejoin.amos.boot.module.common.api.dao.EsUserInfoDao;
...@@ -17,6 +18,7 @@ import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo; ...@@ -17,6 +18,7 @@ import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseEnterpriseInfoMapper; import com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper; import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.boot.module.tcm.biz.refresh.CommonRefreshService; import com.yeejoin.amos.boot.module.tcm.biz.refresh.CommonRefreshService;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -71,12 +73,21 @@ public class UserRefreshHandler implements IDataRefreshHandler { ...@@ -71,12 +73,21 @@ public class UserRefreshHandler implements IDataRefreshHandler {
esUserInfo.setEquipTypeName(RefreshDataUtils.castEquCategory2Name(esUserInfo.getEquipType())); esUserInfo.setEquipTypeName(RefreshDataUtils.castEquCategory2Name(esUserInfo.getEquipType()));
// 绑定设备状态 // 绑定设备状态
esUserInfo.setBindEquStatus(commonRefreshService.queryUserBindEquStatus(userInfo.getSequenceNbr())); esUserInfo.setBindEquStatus(commonRefreshService.queryUserBindEquStatus(userInfo.getSequenceNbr()));
// 监管机构
if (userInfo.getCompanyType().equals(BaseController.COMPANY_TYPE_SUPERVISION)) {
CompanyModel result = userInfoMapper.selectPrivilegeCompanyByCompanyCode(userInfo.getUnitCode());
esUserInfo.setUnitType(result.getCompanyType());
esUserInfo.setSuperviseOrgName(result.getCompanyName());
esUserInfo.setSuperviseOrgCode(result.getOrgCode());
} else {
// 企业
Optional<EsBaseEnterpriseInfo> esBaseEnterpriseInfo = esBaseEnterpriseInfoDao.findById(unit.getSequenceNbr() + ""); Optional<EsBaseEnterpriseInfo> esBaseEnterpriseInfo = esBaseEnterpriseInfoDao.findById(unit.getSequenceNbr() + "");
// 人员类型暂时取esBaseEnterpriseInfo按照资质分开后的,等检验和检测分开后,按照实际情况取就即可:unit.getUnitType() // 人员类型暂时取esBaseEnterpriseInfo按照资质分开后的,等检验和检测分开后,按照实际情况取就即可:unit.getUnitType()
String unitType = esBaseEnterpriseInfo.map(EsBaseEnterpriseInfo::getUnitType).orElse(unit.getUnitType()); String unitType = esBaseEnterpriseInfo.map(EsBaseEnterpriseInfo::getUnitType).orElse(unit.getUnitType());
esUserInfo.setUnitType(unitType); esUserInfo.setUnitType(unitType);
esUserInfo.setSuperviseOrgName(unit.getSuperviseOrgName()); esUserInfo.setSuperviseOrgName(unit.getSuperviseOrgName());
esUserInfo.setSuperviseOrgCode(unit.getSuperviseOrgCode()); esUserInfo.setSuperviseOrgCode(unit.getSuperviseOrgCode());
}
esUserInfo.setLicenses(commonRefreshService.buildUserLicenses(userInfo.getSequenceNbr())); esUserInfo.setLicenses(commonRefreshService.buildUserLicenses(userInfo.getSequenceNbr()));
esUserInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesUser(esUserInfo.getLicenses())); esUserInfo.setLicenseMinExpiryDate(RefreshCmService.getMinDateFromLicensesUser(esUserInfo.getLicenses()));
esUserInfoDao.save(esUserInfo); esUserInfoDao.save(esUserInfo);
......
...@@ -124,6 +124,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -124,6 +124,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
private final String UNLOCK = "UNLOCK"; private final String UNLOCK = "UNLOCK";
private final String LOCK = "LOCK"; private final String LOCK = "LOCK";
private final String TOTALTYPESTEMPLATE = "{\"records\":[{\"name\":\"人员总数(人)\",\"value\":%s}]}"; private final String TOTALTYPESTEMPLATE = "{\"records\":[{\"name\":\"人员总数(人)\",\"value\":%s}]}";
// 详情表单类型的集合
private final List<String> FROM_TYPES_DETAIL = Arrays.asList("detail", "look");
@Autowired @Autowired
DataDictionaryServiceImpl iDataDictionaryService; DataDictionaryServiceImpl iDataDictionaryService;
@Autowired @Autowired
...@@ -281,10 +283,10 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -281,10 +283,10 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
if (dictIds == null || dictIds.isEmpty()) { if (dictIds == null || dictIds.isEmpty()) {
return ""; return "";
} }
LambdaQueryWrapper<DataDictionary> lambda = new QueryWrapper<DataDictionary>().lambda(); List<DataDictionary> dataDictionaries = this.getAllUserType();
lambda.in(DataDictionary::getSequenceNbr, dictIds); List<DataDictionary> postDataList = dataDictionaries.stream()
List<DataDictionary> dataDictionaries = iDataDictionaryService.getByTypeAndDesc(QYRYGW, QYRYGW_NAME); .filter(d -> dictIds.stream().anyMatch(id -> id.toString().equals(d.getCode())))
List<DataDictionary> postDataList = dataDictionaries.stream().filter(d -> dictIds.stream().anyMatch(id -> id.toString().equals(d.getCode()))).collect(Collectors.toList()); .collect(Collectors.toList());
return postDataList.stream().map(DataDictionary::getName).collect(Collectors.joining(",")); return postDataList.stream().map(DataDictionary::getName).collect(Collectors.joining(","));
} }
...@@ -373,8 +375,9 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -373,8 +375,9 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
// 2:多种单位类型的企业编辑另一种单位类型下的人员 // 2:多种单位类型的企业编辑另一种单位类型下的人员
// 监管机构查看所有 // 监管机构查看所有
List<String> unitTypeAllPostCode; List<String> unitTypeAllPostCode;
if (!reginParams.getCompany().getCompanyType().equals("监管机构")) { String companyType = this.getLoginCompanyType();
unitTypeAllPostCode = this.postByUnitType(reginParams.getCompany()).stream().map(DataDictionary::getCode).collect(Collectors.toList()); if (companyType.equals(BaseController.COMPANY_TYPE_COMPANY)) {
unitTypeAllPostCode = this.postByUnitType(reginParams.getCompany(), "").stream().map(DataDictionary::getCode).collect(Collectors.toList());
} else { } else {
unitTypeAllPostCode = this.getAllUserType().stream().map(DataDictionary::getCode).collect(Collectors.toList()); unitTypeAllPostCode = this.getAllUserType().stream().map(DataDictionary::getCode).collect(Collectors.toList());
} }
...@@ -420,8 +423,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -420,8 +423,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
tzsUserInfoVo.setPracticeRegistration(ObjectUtils.isEmpty(tzsUserInfo.getPracticeRegistration()) ? null : JSON.parseArray(tzsUserInfo.getPracticeRegistration())); tzsUserInfoVo.setPracticeRegistration(ObjectUtils.isEmpty(tzsUserInfo.getPracticeRegistration()) ? null : JSON.parseArray(tzsUserInfo.getPracticeRegistration()));
tzsUserInfoVo.setLaborContract(ObjectUtils.isEmpty(tzsUserInfo.getLaborContract()) ? null : JSON.parseArray(tzsUserInfo.getLaborContract())); tzsUserInfoVo.setLaborContract(ObjectUtils.isEmpty(tzsUserInfo.getLaborContract()) ? null : JSON.parseArray(tzsUserInfo.getLaborContract()));
tzsUserInfoVo.setOtherAccessories(ObjectUtils.isEmpty(tzsUserInfo.getOtherAccessories()) ? null : JSON.parseArray(tzsUserInfo.getOtherAccessories())); tzsUserInfoVo.setOtherAccessories(ObjectUtils.isEmpty(tzsUserInfo.getOtherAccessories()) ? null : JSON.parseArray(tzsUserInfo.getOtherAccessories()));
String companyType = getUnitType(); String unitType = getUnitType();
tzsUserInfoVo.setCompanyType(companyType.contains("个人主体") ? "individual" : "no-individual"); tzsUserInfoVo.setCompanyType(unitType.contains("个人主体") ? "individual" : "no-individual");
Map<String, Object> userInfoMap = BeanUtil.beanToMap(tzsUserInfoVo); Map<String, Object> userInfoMap = BeanUtil.beanToMap(tzsUserInfoVo);
// userInfoMap.putAll(this.getPermissionDataJson(tzsUserInfo.getPermissionData())); // userInfoMap.putAll(this.getPermissionDataJson(tzsUserInfo.getPermissionData()));
// 填充资质信息 // 填充资质信息
...@@ -1159,6 +1162,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -1159,6 +1162,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
tzsUserInfo.setSubPostName(subPostNames); tzsUserInfo.setSubPostName(subPostNames);
} }
tzsUserInfo.setCreateDate(new Date()); tzsUserInfo.setCreateDate(new Date());
tzsUserInfo.setCompanyType(this.getLoginCompanyType());
tzsUserInfo = this.createWithModel(tzsUserInfo); tzsUserInfo = this.createWithModel(tzsUserInfo);
// 保存资质 // 保存资质
tzsUserPermissionServiceImpl.savePermissionData(tzsUserInfo); tzsUserPermissionServiceImpl.savePermissionData(tzsUserInfo);
...@@ -1309,9 +1313,11 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -1309,9 +1313,11 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
// 更新资质 // 更新资质
tzsUserPermissionServiceImpl.updatePermissionData(tzsUserInfoDto); tzsUserPermissionServiceImpl.updatePermissionData(tzsUserInfoDto);
tzsUserInfoDto.setQrCodeState("1"); tzsUserInfoDto.setQrCodeState("1");
tzsUserInfoDto.setCompanyType(this.getLoginCompanyType());
this.updateWithModel(tzsUserInfoDto); this.updateWithModel(tzsUserInfoDto);
// 更新人员信息同步平台 // 更新人员信息同步平台
syncNewPost(tzsUserInfoDto); syncNewPost(tzsUserInfoDto);
publisher.publish(new DataRefreshEvent(this, Collections.singletonList(tzsUserInfoDto.getSequenceNbr() + ""), DataRefreshEvent.DataType.user.name(), DataRefreshEvent.Operation.UPDATE));
return tzsUserInfoDto; return tzsUserInfoDto;
} }
...@@ -1324,10 +1330,10 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -1324,10 +1330,10 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
"QYRYGW-INSPECTION" "QYRYGW-INSPECTION"
)); ));
return iDataDictionaryService.lambdaQuery() return iDataDictionaryService.lambdaQuery()
.select(DataDictionary::getName, DataDictionary::getCode)
.eq(DataDictionary::getIsDelete, false) .eq(DataDictionary::getIsDelete, false)
.isNull(DataDictionary::getParent) .isNull(DataDictionary::getParent)
.in(DataDictionary::getType, type) .in(DataDictionary::getType, type)
.orderByAsc(DataDictionary::getSortNum)
.list(); .list();
} }
...@@ -1617,7 +1623,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -1617,7 +1623,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
certificateNumOnly.put(userItems.getCertificateNum(), userItems.getName()); certificateNumOnly.put(userItems.getCertificateNum(), userItems.getName());
} }
// 4.登录账号的单位类型和人员类型校验 // 4.登录账号的单位类型和人员类型校验
Map<String, String> allPostNames = this.postByUnitType(company).stream().collect(Collectors.toMap(DataDictionary::getName, DataDictionary::getCode)); Map<String, String> allPostNames = this.postByUnitType(company, "").stream().collect(Collectors.toMap(DataDictionary::getName, DataDictionary::getCode));
String postNameStr = userItems.getPost(); String postNameStr = userItems.getPost();
if (!ValidationUtil.isEmpty(postNameStr)) { if (!ValidationUtil.isEmpty(postNameStr)) {
List<String> postNameList = Arrays.asList(postNameStr.replace(",", ",").replace("-", ",").replace("\n", "").split(",")); List<String> postNameList = Arrays.asList(postNameStr.replace(",", ",").replace("-", ",").replace("\n", "").split(","));
...@@ -1642,7 +1648,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -1642,7 +1648,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
if (!ValidationUtil.isEmpty(subPost)) { if (!ValidationUtil.isEmpty(subPost)) {
String subPostStr = subPost.replace(",", ",").replace("-", ",").replace("\n", ""); String subPostStr = subPost.replace(",", ",").replace("-", ",").replace("\n", "");
List<String> subPostList = Arrays.asList(subPostStr.split(",")); List<String> subPostList = Arrays.asList(subPostStr.split(","));
String postCode = this.postByUnitType(company).stream().filter(item -> item.getName().equals(postName)).map(DataDictionary::getCode).findFirst().orElse(""); String postCode = this.postByUnitType(company, "").stream().filter(item -> item.getName().equals(postName)).map(DataDictionary::getCode).findFirst().orElse("");
Map<String, String> allSubPostNames = this.subPostByUnitType(company, postCode).stream().collect(Collectors.toMap(DataDictionary::getName, DataDictionary::getCode)); Map<String, String> allSubPostNames = this.subPostByUnitType(company, postCode).stream().collect(Collectors.toMap(DataDictionary::getName, DataDictionary::getCode));
if (ValidationUtil.isEmpty(allSubPostNames)) { if (ValidationUtil.isEmpty(allSubPostNames)) {
return; return;
...@@ -2185,17 +2191,32 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2185,17 +2191,32 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
} }
} }
// 接口用于人员详情界面 企业 + 监管单位 都会看到 // 接口用于人员详情界面 企业 + 监管机构 都会看到
@Override @Override
public List<DataDictionary> postByUnitType(CompanyBo company) { public List<DataDictionary> postByUnitType(CompanyBo company, String formType) {
List<String> unitTypes = new ArrayList<>();
ArrayList<String> postDictCodeList = new ArrayList<>(); ArrayList<String> postDictCodeList = new ArrayList<>();
if (company.getCompanyType().equals("监管机构")) { String companyType = this.getLoginCompanyType();
// 监管机构
if (companyType.equals(BaseController.COMPANY_TYPE_SUPERVISION)) {
if (!FROM_TYPES_DETAIL.contains(formType)) {
// 新增/编辑 限制人员类型
unitTypes = Collections.singletonList("监管机构");
} else {
// 详情 / 默认 返回所有岗位
return this.getAllUserType(); return this.getAllUserType();
} }
}
// 企业
if (companyType.equals(BaseController.COMPANY_TYPE_COMPANY)) {
TzBaseEnterpriseInfo enterpriseInfo = baseEnterpriseInfoService.lambdaQuery() TzBaseEnterpriseInfo enterpriseInfo = baseEnterpriseInfoService.lambdaQuery()
.eq(TzBaseEnterpriseInfo::getUseCode, company.getCompanyCode()) .eq(TzBaseEnterpriseInfo::getUseCode, company.getCompanyCode())
.one(); .one();
List<String> unitTypes = Arrays.asList(enterpriseInfo.getUnitType().split("#")); unitTypes = Arrays.asList(enterpriseInfo.getUnitType().split("#"));
}
unitTypes.forEach(unitType -> { unitTypes.forEach(unitType -> {
JsonNode companyTypeNode = postData.get(unitType); JsonNode companyTypeNode = postData.get(unitType);
if (companyTypeNode != null && companyTypeNode.isObject()) { if (companyTypeNode != null && companyTypeNode.isObject()) {
...@@ -2207,6 +2228,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2207,6 +2228,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
} }
} }
}); });
return this.getAllUserType().stream() return this.getAllUserType().stream()
.filter(item -> postDictCodeList.contains(item.getCode())) .filter(item -> postDictCodeList.contains(item.getCode()))
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -2224,8 +2246,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2224,8 +2246,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
public List<DataDictionary> subPostByUnitType(CompanyBo company, String parentCode) { public List<DataDictionary> subPostByUnitType(CompanyBo company, String parentCode) {
ArrayList<String> parentCodeList = new ArrayList<>(Arrays.asList(parentCode.split(","))); ArrayList<String> parentCodeList = new ArrayList<>(Arrays.asList(parentCode.split(",")));
String companyType = this.getLoginCompanyType();
if (company.getCompanyType().equals("监管机构")) { if (companyType.equals(BaseController.COMPANY_TYPE_SUPERVISION)) {
return iDataDictionaryService.lambdaQuery() return iDataDictionaryService.lambdaQuery()
.in(DataDictionary::getParent, parentCodeList) .in(DataDictionary::getParent, parentCodeList)
.like(DataDictionary::getType, "QYRYGW") .like(DataDictionary::getType, "QYRYGW")
...@@ -2521,7 +2543,6 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2521,7 +2543,6 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
} }
} }
@Override @Override
public IPage<JSONObject> queryESForPage(ReginParams reginParams, String current, String size, public IPage<JSONObject> queryESForPage(ReginParams reginParams, String current, String size,
String sort, Map<String, String> map) { String sort, Map<String, String> map) {
...@@ -2540,11 +2561,10 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2540,11 +2561,10 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
BoolQueryBuilder boolMust = QueryBuilders.boolQuery(); BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
CompanyBo company = reginParams.getCompany(); CompanyBo company = reginParams.getCompany();
String companyType = company.getCompanyType(); String companyType = this.getLoginCompanyType();
String companyLevel = company.getLevel();
// 监管查询自己单位下 + 管辖辖区下的数据 // 监管查询自己单位下 + 管辖辖区下的数据
if (companyLevel.equals(BaseController.COMPANY_TYPE_SUPERVISION)) { if (companyType.equals(BaseController.COMPANY_TYPE_SUPERVISION)) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.should(QueryBuilders.termQuery("unitCode", company.getCompanyCode())); meBuilder.should(QueryBuilders.termQuery("unitCode", company.getCompanyCode()));
meBuilder.should(QueryBuilders.prefixQuery("superviseOrgCode", company.getOrgCode())); meBuilder.should(QueryBuilders.prefixQuery("superviseOrgCode", company.getOrgCode()));
...@@ -2553,7 +2573,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2553,7 +2573,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
} }
// 企业只查询自己单位下的 // 企业只查询自己单位下的
if (companyLevel.equals(BaseController.COMPANY_TYPE_COMPANY)) { if (companyType.equals(BaseController.COMPANY_TYPE_COMPANY)) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.termQuery("unitCode", company.getCompanyCode())); meBuilder.must(QueryBuilders.termQuery("unitCode", company.getCompanyCode()));
boolMust.must(meBuilder); boolMust.must(meBuilder);
...@@ -2623,8 +2643,30 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2623,8 +2643,30 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
boolMust.must(meBuilder); boolMust.must(meBuilder);
} }
builder.query(boolMust); // 属地监管部门
if (!ObjectUtils.isEmpty(map.get("superviseOrgCode"))) {
String superviseOrgCode = map.get("superviseOrgCode");
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.prefixQuery("superviseOrgCode", superviseOrgCode));
boolMust.must(meBuilder);
}
// 资质状态
if (!ObjectUtils.isEmpty(map.get("licensesStatus"))) {
String licensesStatus = licensesStatusStr = map.get("licensesStatus");
String path = "licenses";
String nestedField = path + "." + "expiryDate";
tzsCommonService.buildExpiryDateQueryBuilder(boolMust, licensesStatus, path, nestedField);
}
// 排序
if (StringUtils.isNotEmpty(sort)) {
String[] sortSplit = sort.split(",");
builder.sort(sortSplit[0], sortSplit[1].startsWith("asc") ? SortOrder.ASC : SortOrder.DESC);
} else {
builder.sort("createDate", SortOrder.DESC); builder.sort("createDate", SortOrder.DESC);
}
builder.query(boolMust);
builder.from((pageNumber - 1) * pageSize); builder.from((pageNumber - 1) * pageSize);
builder.size(pageSize); builder.size(pageSize);
request.source(builder); request.source(builder);
...@@ -2634,16 +2676,18 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2634,16 +2676,18 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT); SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits().getHits()) { for (SearchHit hit : response.getHits().getHits()) {
JSONObject esUserInfo = JSON.parseObject(JSON.toJSONString(hit.getSourceAsMap())); JSONObject esUserInfo = JSON.parseObject(JSON.toJSONString(hit.getSourceAsMap()));
// 个人照片
Optional.ofNullable(esUserInfo.getString("identification")).filter(StringUtils::isNotEmpty).map(jsonString -> JSON.parseArray(jsonString, CommonFile.class)).filter(list -> !ObjectUtils.isEmpty(list)).map(list -> list.get(0)).map(CommonFile::getUrl).ifPresent(photoUrl -> esUserInfo.put("photoUrl", photoUrl));
// 设备绑定状态 // 设备绑定状态
esUserInfo.put("bindEquStatus", Optional.ofNullable(esUserInfo.get("bindEquStatus")) esUserInfo.put("bindEquStatus", Optional.ofNullable(esUserInfo.get("bindEquStatus")).map(String::valueOf).map("1"::equals).map(b -> b ? "是" : "否").orElse("否"));
.map(String::valueOf)
.map("1"::equals)
.map(b -> b ? "是" : "否")
.orElse("否"));
// 创建时间格式转化 // 创建时间格式转化
esUserInfo.put("createDate", LocalDateTime.parse(esUserInfo.getString("createDate"), DateTimeFormatter.ISO_LOCAL_DATE_TIME).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); esUserInfo.put("createDate", LocalDateTime.parse(esUserInfo.getString("createDate"), DateTimeFormatter.ISO_LOCAL_DATE_TIME).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// 资质状态 // 资质状态
esUserInfo.put("licensesStatus", tzsCommonService.getLicensesStatusWithEsUserInfo(esUserInfo, "")); esUserInfo.put("licensesStatus", tzsCommonService.getLicensesStatusWithEsUserInfo(esUserInfo, licensesStatusStr));
// 单位类型 supervision/company
esUserInfo.put("companyType", companyType);
// 当前登录人的单位code
esUserInfo.put("loginCompanyCode", company.getCompanyCode());
esUserInfoList.add(esUserInfo); esUserInfoList.add(esUserInfo);
} }
result.setTotal(Objects.requireNonNull(response.getHits().getTotalHits()).value); result.setTotal(Objects.requireNonNull(response.getHits().getTotalHits()).value);
...@@ -2654,4 +2698,15 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -2654,4 +2698,15 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
return result; return result;
} }
/**
* 获取当前登录人的单位类型
*
* @return supervision / company
*/
private String getLoginCompanyType() {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
return BaseController.COMPANY_TYPE_COMPANY.equals(reginParams.getCompany().getLevel()) ?
BaseController.COMPANY_TYPE_COMPANY : BaseController.COMPANY_TYPE_SUPERVISION;
}
} }
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