Commit 9e35e15d authored by 麻笑宇's avatar 麻笑宇

feat(statistics): 新增人员和企业高级搜索功能

- 新增 CompanyAdvanceSearchEnum 和 PersonAdvanceSearchEnum 枚举类,用于定义高级搜索条件 - 在 ComprehensiveStatisticalAnalysisController 中添加新的 API接口: - queryZYXM: 查询作业项目 - queryUnitByOrgCode: 根据监管机构查询企业 - 在 ComprehensiveStatisticalAnalysisServiceImpl 中实现新的查询方法: - queryZYXM: 查询作业项目 - queryUnitByOrgCode: 根据监管机构查询企业 - 修改 queryAdvancedSearch 方法,支持企业和人员的高级搜索 - 更新 queryCompanySearchData 和 queryPersonSearchData 方法,增加新的搜索条件数据 - 重命名 AdvanceSearchEnum 为 EquipAdvanceSearchEnum,用于更清晰地表示设备相关的高级搜索条件
parent e63ee483
package com.yeejoin.amos.boot.module.statistics.api.enums;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.annotation.TechnicalParameter;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public enum CompanyAdvanceSearchEnum {
/**
* 高级搜索枚举
*/
ADDRESS("详细地址", "address", TechnicalParameter.ParamType.STRING,""),
EXPIRYDATE("许可有效期", "expiryDate",TechnicalParameter.ParamType.DATE,""),
UNIT_TYPE("企业类型", "unitType",null,""),
REGULATORY_LABELS("企业等级", "regulatoryLabels",null,""),
INDUSTRY_SUPERVISOR("行业主管部门", "industrySupervisor",null,""),
ITEM_CODE("许可项目", "itemCode",null,""),
SUB_ITEM_CODE("许可子项目", "subItemCode",null,""),
OPERATING_STATUS("经营状态", "operatingStatus",null,""),
EQUIP_CATEGORY("监管设备类型", "equipCategory",null,""),
;
private String name;
private String code;
private TechnicalParameter.ParamType paramType;
private String url;
public static JSONArray getAll(){
JSONArray jsonArray = new JSONArray();
for (CompanyAdvanceSearchEnum item : values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("label", item.name);
jsonObject.put("value", item.code);
jsonObject.put("key", item.code);
jsonObject.put("paramType", item.paramType);
jsonObject.put("isMulti", false);
if(TechnicalParameter.ParamType.BIG_DECIMAL.equals(item.paramType)){
jsonObject.put("type","inputNumber");
}else if(TechnicalParameter.ParamType.STRING.equals(item.paramType)){
jsonObject.put("type","input");
}else if(TechnicalParameter.ParamType.DATE.equals(item.paramType)){
jsonObject.put("type","date");
}else {
jsonObject.put("type","select");
}
jsonObject.put("conditions",ConditionEnum.getByCode(item.paramType));
jsonObject.put("url", item.url);
jsonArray.add(jsonObject);
}
return jsonArray;
}
}
...@@ -8,7 +8,7 @@ import lombok.Getter; ...@@ -8,7 +8,7 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
@Getter @Getter
public enum AdvanceSearchEnum { public enum EquipAdvanceSearchEnum {
/** /**
* 高级搜索枚举 * 高级搜索枚举
...@@ -48,7 +48,7 @@ public enum AdvanceSearchEnum { ...@@ -48,7 +48,7 @@ public enum AdvanceSearchEnum {
public static JSONArray getAll(){ public static JSONArray getAll(){
JSONArray jsonArray = new JSONArray(); JSONArray jsonArray = new JSONArray();
for (AdvanceSearchEnum item : values()) { for (EquipAdvanceSearchEnum item : values()) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("label", item.name); jsonObject.put("label", item.name);
jsonObject.put("value", item.code); jsonObject.put("value", item.code);
......
package com.yeejoin.amos.boot.module.statistics.api.enums;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.annotation.TechnicalParameter;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public enum PersonAdvanceSearchEnum {
/**
* 高级搜索枚举
*/
NAME("人员名称", "name", TechnicalParameter.ParamType.STRING,""),
NEWPOST("人员类型", "newPost",TechnicalParameter.ParamType.DATE,""),
SUBPOST("人员子类型", "subPost",null,""),
// REGULATORY_LABELS("有无资质", "regulatoryLabels",null,""),
// REGULATORY_LABELS("资质状态", "regulatoryLabels",null,""),
CERT_TYPE("证书类型", "certType",null,""),
PERMISSION_LEVEL("证书级别", "permissionLevel",null,""),
JOB_ITEM("作业项目", "jobItem",null,""),
ISSUE_DATE("发证日期", "issueDate",TechnicalParameter.ParamType.DATE,""),
EDUCATION("学历", "education",null,""),
ADDRESS("住址", "address",TechnicalParameter.ParamType.STRING,""),
EQUIP_TYPE("监管设备类型", "equipType",null,""),
;
private String name;
private String code;
private TechnicalParameter.ParamType paramType;
private String url;
public static JSONArray getAll(){
JSONArray jsonArray = new JSONArray();
for (PersonAdvanceSearchEnum item : values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("label", item.name);
jsonObject.put("value", item.code);
jsonObject.put("key", item.code);
jsonObject.put("paramType", item.paramType);
jsonObject.put("isMulti", false);
if(TechnicalParameter.ParamType.BIG_DECIMAL.equals(item.paramType)){
jsonObject.put("type","inputNumber");
}else if(TechnicalParameter.ParamType.STRING.equals(item.paramType)){
jsonObject.put("type","input");
}else if(TechnicalParameter.ParamType.DATE.equals(item.paramType)){
jsonObject.put("type","date");
}else {
jsonObject.put("type","select");
}
jsonObject.put("conditions",ConditionEnum.getByCode(item.paramType));
jsonObject.put("url", item.url);
jsonArray.add(jsonObject);
}
return jsonArray;
}
}
...@@ -43,7 +43,7 @@ public enum UnitTypeEnum { ...@@ -43,7 +43,7 @@ public enum UnitTypeEnum {
for (UnitTypeEnum e : UnitTypeEnum.values()) { for (UnitTypeEnum e : UnitTypeEnum.values()) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("label",e.name); jsonObject.put("label",e.name);
jsonObject.put("value",e.code); jsonObject.put("value",e.name);
jsonObject.put("key",e.code); jsonObject.put("key",e.code);
jsonArray.add(jsonObject); jsonArray.add(jsonObject);
} }
......
...@@ -128,10 +128,22 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController { ...@@ -128,10 +128,22 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryZZZT") @GetMapping(value = "/select/queryZYXM")
@ApiOperation(httpMethod = "GET", value = "查询资质状态", notes = "查询资质状态") @ApiOperation(httpMethod = "GET", value = "查询作业项目", notes = "查询作业项目")
public ResponseModel<JSONArray> queryZZZT() { public ResponseModel<JSONArray> queryZYXM(@RequestParam String type) {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryZZZT()); return ResponseHelper.buildResponse(statisticalAnalysisService.queryZYXM(type));
}
/**
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryUnitByOrgCode")
@ApiOperation(httpMethod = "GET", value = "根据监管机构查询企业", notes = "根据监管机构查询企业")
public ResponseModel<JSONArray> queryUnitByOrgCode(@RequestParam String orgCode) {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryUnitByOrgCode(orgCode));
} }
/** /**
......
...@@ -15,7 +15,7 @@ import com.yeejoin.amos.boot.module.common.biz.utils.TechParamUtil; ...@@ -15,7 +15,7 @@ import com.yeejoin.amos.boot.module.common.biz.utils.TechParamUtil;
import com.yeejoin.amos.boot.module.jg.api.enums.DPMapStatisticsItemEnum; import com.yeejoin.amos.boot.module.jg.api.enums.DPMapStatisticsItemEnum;
import com.yeejoin.amos.boot.module.statistcs.biz.utils.JsonUtils; import com.yeejoin.amos.boot.module.statistcs.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.statistcs.biz.utils.MinioUtils; import com.yeejoin.amos.boot.module.statistcs.biz.utils.MinioUtils;
import com.yeejoin.amos.boot.module.statistics.api.enums.AdvanceSearchEnum; import com.yeejoin.amos.boot.module.statistics.api.enums.EquipAdvanceSearchEnum;
import com.yeejoin.amos.boot.module.statistics.api.enums.ConditionEnum; import com.yeejoin.amos.boot.module.statistics.api.enums.ConditionEnum;
import com.yeejoin.amos.boot.module.statistics.api.enums.StatisticalAnalysisEnum; import com.yeejoin.amos.boot.module.statistics.api.enums.StatisticalAnalysisEnum;
import com.yeejoin.amos.boot.module.statistics.api.enums.UnitTypeEnum; import com.yeejoin.amos.boot.module.statistics.api.enums.UnitTypeEnum;
...@@ -24,8 +24,11 @@ import com.yeejoin.amos.boot.module.statistics.api.vo.EquipInfoVo; ...@@ -24,8 +24,11 @@ import com.yeejoin.amos.boot.module.statistics.api.vo.EquipInfoVo;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto; import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.join.ScoreMode; import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
...@@ -148,9 +151,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -148,9 +151,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
public JSONArray queryAdvancedSearch(String type) { public JSONArray queryAdvancedSearch(String type) {
JSONArray all = new JSONArray(); JSONArray all = new JSONArray();
if ("equip".equals(type)) { if("equip".equals(type)) {
all = AdvanceSearchEnum.getAll(); all = EquipAdvanceSearchEnum.getAll();
} else if ("company".equals(type)) { }else if("company".equals(type)){
} else if ("person".equals(type)) { } else if ("person".equals(type)) {
...@@ -765,7 +768,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -765,7 +768,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
public JSONObject queryCompanySearchData() { public JSONObject queryCompanySearchData() {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
//获取企业类型 //获取企业类型
result.put("UNIT_TYPE", UnitTypeEnum.getAll()); result.put("unitType", UnitTypeEnum.getAll());
//获取企业等级 //获取企业等级
result.put("regulatoryLabels", deployDictionary(dataDictionaryService.getByType("QYBQ"))); result.put("regulatoryLabels", deployDictionary(dataDictionaryService.getByType("QYBQ")));
...@@ -779,17 +782,17 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -779,17 +782,17 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
JSONArray permitStatusData = new JSONArray(); JSONArray permitStatusData = new JSONArray();
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
if (0 == i) { if(0==i){
object.put("key", "0"); object.put("key", "overdue");
object.put("value", "0"); object.put("value", "overdue");
object.put("label", "超期"); object.put("label", "超期");
} else if (1 == i) { }else if(1==i){
object.put("key", "1"); object.put("key", "near");
object.put("value", "1"); object.put("value", "near");
object.put("label", "临期"); object.put("label", "临期");
} else { }else{
object.put("key", "2"); object.put("key", "normal");
object.put("value", "2"); object.put("value", "normal");
object.put("label", "正常"); object.put("label", "正常");
} }
permitStatusData.add(object); permitStatusData.add(object);
...@@ -806,15 +809,82 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -806,15 +809,82 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
object.put("label", equipmentCategoryDtos.get(i).getName()); object.put("label", equipmentCategoryDtos.get(i).getName());
equipCategoryData.add(object); equipCategoryData.add(object);
} }
result.put("equipList", equipCategoryData); result.put("equipCategory", equipCategoryData);
return result; return result;
} }
public JSONObject queryPersonSearchData() { public JSONObject queryPersonSearchData() {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
//资质状态
JSONArray permissionStatus = new JSONArray();
for(int i=0;i<3;i++){
JSONObject object = new JSONObject();
if(0==i){
object.put("key", "noLicenses");
object.put("value", "noLicenses");
object.put("label", "无资质要求");
}else if(1==i){
object.put("key", "overdue");
object.put("value", "overdue");
object.put("label", "资质超期");
}else if(2==i){
object.put("key", "near");
object.put("value", "near");
object.put("label", "资质临期");
}else {
object.put("key", "normal");
object.put("value", "normal");
object.put("label", "正常");
}
permissionStatus.add(object);
}
result.put("expiryDate", permissionStatus);
//证书类型
List<DictionarieValueModel> certType = Systemctl.dictionarieClient.dictValues("CERT_TYPE").getResult();
JSONArray certTypeArray = new JSONArray();
for(int i=0;i<certType.size();i++){
JSONObject object = new JSONObject();
object.put("key", certType.get(i).getDictDataKey());
object.put("value", certType.get(i).getDictDataKey());
object.put("label", certType.get(i).getDictDataValue());
certTypeArray.add(object);
}
result.put("certType", certTypeArray);
//证书级别
List<DictionarieValueModel> RYJB_JC = Systemctl.dictionarieClient.dictValues("RYJB_JC").getResult();
List<DictionarieValueModel> RYJB_JY = Systemctl.dictionarieClient.dictValues("RYJB_JY").getResult();
JSONArray permissionLevelArray = new JSONArray();
for(int i=0;i<RYJB_JC.size();i++){
JSONObject object = new JSONObject();
object.put("key", RYJB_JC.get(i).getDictDataKey());
object.put("value", RYJB_JC.get(i).getDictDataKey());
object.put("label", RYJB_JC.get(i).getDictDataValue());
permissionLevelArray.add(object);
}
for(int i=0;i<RYJB_JY.size();i++){
JSONObject object = new JSONObject();
object.put("key", RYJB_JY.get(i).getDictDataKey());
object.put("value", RYJB_JY.get(i).getDictDataKey());
object.put("label", RYJB_JY.get(i).getDictDataValue());
permissionLevelArray.add(object);
}
result.put("permissionLevel", permissionLevelArray);
//学历
result.put("education", deployDictionary(dataDictionaryService.getByType("XLLX")));
//监管设备类型
List<EquipmentCategoryDto> equipmentCategoryDtos = equipmentCategoryMapper.selectClassify();
JSONArray equipCategoryData = new JSONArray();
for(int i=0;i<equipmentCategoryDtos.size();i++){
JSONObject object = new JSONObject();
object.put("key", equipmentCategoryDtos.get(i).getCode());
object.put("value", equipmentCategoryDtos.get(i).getCode());
object.put("label", equipmentCategoryDtos.get(i).getName());
equipCategoryData.add(object);
}
result.put("equipType", equipCategoryData);
//获取企业类型
result.put("unitType", UnitTypeEnum.getAll());
return result; return result;
} }
...@@ -924,9 +994,53 @@ public class ComprehensiveStatisticalAnalysisServiceImpl { ...@@ -924,9 +994,53 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
.fluentPut("time", new Date().getTime())); .fluentPut("time", new Date().getTime()));
} }
public JSONArray queryZZZT() { public JSONArray queryZYXM(String type) {
JSONArray array = new JSONArray(); JSONArray result = new JSONArray();
if("特种设备安全管理和作业人员证".equals(type)){
List<DictionarieValueModel> certType = Systemctl.dictionarieClient.dictValues("JOB_ITEM").getResult();
for (DictionarieValueModel certTypeModel : certType) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("key", certTypeModel.getDictDataKey());
jsonObject.put("value", certTypeModel.getDictDataKey());
jsonObject.put("label", certTypeModel.getDictDataValue());
result.add(jsonObject);
}
}else {
List<DictionarieValueModel> certType = Systemctl.dictionarieClient.dictValues("ZZXM_"+type).getResult();
for (DictionarieValueModel certTypeModel : certType) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("key", certTypeModel.getDictDataKey());
jsonObject.put("value", certTypeModel.getDictDataKey());
jsonObject.put("label", certTypeModel.getDictDataValue());
result.add(jsonObject);
}
}
return result;
}
public JSONArray queryUnitByOrgCode(String orgCode) {
SearchRequest searchRequest = new SearchRequest("idx_biz_enterprise_info");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(QueryBuilders.wildcardQuery("superviseOrgCode.keyword", QueryParser.escape(orgCode) + "*"));
searchSourceBuilder.query(boolQueryBuilder);
searchRequest.source(searchSourceBuilder);
return null; JSONArray result = new JSONArray();
try {
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
for (org.elasticsearch.search.SearchHit hit : searchResponse.getHits().getHits()) {
JSONObject jsonObject = ((JSONObject) JSONObject.toJSON(hit)).getJSONObject("sourceAsMap");
JSONObject dto = new JSONObject();
dto.put("key",jsonObject.getString("useCode"));
dto.put("value",jsonObject.getString("useCode"));
dto.put("label",jsonObject.getString("useUnit"));
result.add(dto);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
} }
} }
\ 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