Commit ef460ce4 authored by 韩桐桐's avatar 韩桐桐

fix(jg):撬装式承压设备的新增/查询接口修改

parent 7284bc56
......@@ -116,7 +116,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@GetMapping(value = "/category/list")
@ApiOperation(httpMethod = "GET", value = "查询不同单位类型可新增的设备种类列表", notes = "查询不同单位类型可新增的设备种类列表")
public ResponseModel<List<DictionarieValueModel>> equCategoryListByCompanyType() {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.equCategoryListByCompanyType(getSelectedOrgInfo(), null));
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.equCategoryListByCompanyType(getSelectedOrgInfo(), null, null));
}
......@@ -125,7 +125,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@ApiOperation(httpMethod = "GET", value = "按照人员身份、设备种类查询设备类别", notes = "按照人员身份、设备种类查询设备类别")
public ResponseModel<List<DictionarieValueModel>> equCategoryList(@RequestParam(value = "equList") String equList,
@RequestParam(value = "businessScenarios") String businessScenarios) {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.equCategoryListByCompanyType(getSelectedOrgInfo(), equList,businessScenarios));
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.equCategoryListByCompanyType(getSelectedOrgInfo(), equList, businessScenarios));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
......
......@@ -47,6 +47,7 @@ import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -97,8 +98,6 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
private static final String EQUIP_PROTECTIONDEVICES_FORM_ID = "protectionDevices";
private static final String EQUSTATE = "EQU_STATE";
private static final String CONSTRUCTIONTYPE = "CONSTRUCTION_TYPE";
private static final String EQUDEFINE = "EQU_DEFINE";
private static final String EQUDEFINECODE = "EQU_DEFINE_CODE";
// 新增修改标识
private static final String OPERATESAVE = "save";
private static final String OPERATEEDIT = "edit";
......@@ -106,11 +105,23 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
private static final String MANAGE_TYPE_UNIT = "unit";
private static final String RECORD = "RECORD";
private static final String MANAGE_TYPE = "manageType";
// 设备代码
private static final String EQU_CODE = "EQU_CODE";
private static final String SEQUENCE_NBR = "SEQUENCE_NBR";
private static final String FACTORY_NUM = "FACTORY_NUM";
// 新增设备是否复制而来
private static final String IS_COPY = "isCopy";
// 设备种类
public static final String EQU_LIST = "EQU_LIST";
// 设备类别
public static final String EQU_CATEGORY = "EQU_CATEGORY";
// 设备品种
public static final String EQU_DEFINE = "EQU_DEFINE";
// 是否车用气瓶
public static final String WHETHER_VEHICLE_CYLINDER = "WHETHER_VEHICLE_CYLINDER";
// 是否撬装式压力容器
public static final String WHETHER_SKID_MOUNTED_PRESSURE_VESSEL = "WHETHER_SKID_MOUNTED_PRESSURE_VESSEL";
// 需要转化成jsonObject的附件字段
public static String[] jsonFields = {"insOtherAccessories", "installContractAttachment", "installProxyStatementAttachment"};
@Autowired
RestHighLevelClient restHighLevelClient;
......@@ -401,14 +412,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
resultMap.put(EQUIP_INFO_FORM_ID, equipInfoMap);
}
// 设备参数
if (equIpClassMap.containsKey("EQU_LIST") && !ValidationUtil.isEmpty(equIpClassMap.get("EQU_LIST").toString())) {
Map<String, Object> equipParamsMap = this.getEquipParamsMap(record, "", equIpClassMap.get("EQU_LIST").toString());
if (equIpClassMap.containsKey(EQU_LIST) && !ValidationUtil.isEmpty(equIpClassMap.get(EQU_LIST).toString())) {
Map<String, Object> equipParamsMap = this.getEquipParamsMap(record, "", equIpClassMap.get(EQU_LIST).toString());
if (!ValidationUtil.isEmpty(equipParamsMap)) {
// 给技术参数中添加设备种类,标记技术参数属于那个设备
equipParamsMap.put("EQU_LIST", String.valueOf(equIpClassMap.get("EQU_LIST")));
equipParamsMap.put("EQU_CATEGORY", String.valueOf(equIpClassMap.get("EQU_CATEGORY")));
equipParamsMap.put("EQU_DEFINE", String.valueOf(equIpClassMap.get("EQU_DEFINE")));
equipParamsMap.put(EQU_LIST, String.valueOf(equIpClassMap.get(EQU_LIST)));
equipParamsMap.put(EQU_CATEGORY, String.valueOf(equIpClassMap.get(EQU_CATEGORY)));
equipParamsMap.put(EQU_DEFINE, String.valueOf(equIpClassMap.get(EQU_DEFINE)));
resultMap.put(EQUIP_PARAMS_FORM_ID, equipParamsMap);
}
}
......@@ -437,8 +448,8 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
resultMap.putAll(equipInfoMap);
}
// 设备参数
if (equIpClassMap.containsKey("EQU_LIST") && !ValidationUtil.isEmpty(equIpClassMap.get("EQU_LIST").toString())) {
Map<String, Object> equipParamsMap = this.getEquipParamsMap(record, "", equIpClassMap.get("EQU_LIST").toString());
if (equIpClassMap.containsKey(EQU_LIST) && !ValidationUtil.isEmpty(equIpClassMap.get(EQU_LIST).toString())) {
Map<String, Object> equipParamsMap = this.getEquipParamsMap(record, "", equIpClassMap.get(EQU_LIST).toString());
if (!ValidationUtil.isEmpty(equipParamsMap)) {
resultMap.putAll(equipParamsMap);
......@@ -490,7 +501,15 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
String dictCode = String.format("%s_%s", dictCodePrefix, equipAddDictCodeSuffix);
List<DictionarieValueModel> result = FeignUtil.remoteCall(() -> Systemctl.dictionarieClient.dictValues(dictCode));
return result;
// 初始化collect列表
List<DictionarieValueModel> collect = new ArrayList<>();
// 使用单位 && 业务场景businessScenarios为1(场景选择)&& 设备种类为2000(压力容器) =》 设备类别只保留固定式压力容器(2100)
// 使用单位 && 业务场景businessScenarios为0(场景选择)&& 设备种类为2000(压力容器) =》 设备类别排除固定式压力容器(2100)
boolean shouldInclude2100 = CompanyTypeEnum.USE.getName().equals(companyType) && "1".equals(businessScenarios) && "2000".equals(equList);
collect = result.stream()
.filter(x -> shouldInclude2100 ? "2100".equals(x.getDictDataKey()) : !"2100".equals(x.getDictDataKey()))
.collect(Collectors.toList());
return collect;
}
private String getDictCodePrefix(String companyType, String equList) {
......@@ -544,7 +563,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
String[] fields = {"PRODUCT_PHOTO"};
registerInfoMap = convertCamelToUnderscore(registerInfo, fields);
registerInfoMap.put("REGISTERINFO_SEQ", registerInfo.getSequenceNbr());
registerInfoMap.put("SEQUENCE_NBR", registerInfo.getSequenceNbr());
registerInfoMap.put(SEQUENCE_NBR, registerInfo.getSequenceNbr());
if (CollectionUtils.isNotEmpty(categoryList1)) {
registerInfoMap.put("EQU_CATEGORY_DESC", categoryList1.get(0).getName());
}
......@@ -773,7 +792,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
String[] fields = {"PRODUCT_PHOTO", "OTHER_ACCESSORIES_REG"};
registerInfoMap = convertCamelToUnderscore(registerInfo, fields);
registerInfoMap.put("REGISTERINFO_SEQ", registerInfo.getSequenceNbr());
registerInfoMap.put("SEQUENCE_NBR", registerInfo.getSequenceNbr());
registerInfoMap.put(SEQUENCE_NBR, registerInfo.getSequenceNbr());
if (CollectionUtils.isNotEmpty(categoryList1)) {
registerInfoMap.put("EQU_CATEGORY_DESC", categoryList1.get(0).getName());
}
......@@ -1214,7 +1233,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
// 根据当前登录用户类型及管辖机构筛选条件添加对应参数
if (ObjectUtils.isEmpty(map.getString("SEQUENCE_NBR")) && ObjectUtils.isEmpty(map.getString("useUnitCreditCode"))) {
if (ObjectUtils.isEmpty(map.getString(SEQUENCE_NBR)) && ObjectUtils.isEmpty(map.getString("useUnitCreditCode"))) {
if (!ValidationUtil.isEmpty(type) && type.contains("使用单位")) {
if (ValidationUtil.isEmpty(map.getString("USE_UNIT_CREDIT_CODE"))) {
map.put("USE_UNIT_CREDIT_CODE", companyCode);
......@@ -1266,17 +1285,17 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
// 通用匹配规则,其他条件构建
if (!ObjectUtils.isEmpty(map.getString("SEQUENCE_NBR"))) {
if (!ObjectUtils.isEmpty(map.getString(SEQUENCE_NBR))) {
BoolQueryBuilder seqBuilder = QueryBuilders.boolQuery();
String param = map.getString("SEQUENCE_NBR");
String param = map.getString(SEQUENCE_NBR);
List<String> strings = Arrays.asList(param.split(","));
seqBuilder.must(QueryBuilders.termsQuery("SEQUENCE_NBR.keyword", strings));
boolMust.must(seqBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("EQU_CATEGORY"))) {
if (!ObjectUtils.isEmpty(map.getString(EQU_CATEGORY))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String param = QueryParser.escape(map.getString("EQU_CATEGORY"));
pBuilder.must(QueryBuilders.matchPhraseQuery("EQU_CATEGORY", "*" + param + "*"));
String param = QueryParser.escape(map.getString(EQU_CATEGORY));
pBuilder.must(QueryBuilders.matchPhraseQuery(EQU_CATEGORY, "*" + param + "*"));
boolMust.must(pBuilder);
}
......@@ -1345,10 +1364,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
boolMust.must(elcBuilder);
}
// 设备种类名称
if (!ObjectUtils.isEmpty(map.getString("EQU_LIST"))) {
if (!ObjectUtils.isEmpty(map.getString(EQU_LIST))) {
BoolQueryBuilder elBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString("EQU_LIST"));
elBuilder.must(QueryBuilders.matchPhraseQuery("EQU_LIST", "*" + test + "*"));
String test = QueryParser.escape(map.getString(EQU_LIST));
elBuilder.must(QueryBuilders.matchPhraseQuery(EQU_LIST, "*" + test + "*"));
boolMust.must(elBuilder);
}
......@@ -1360,17 +1379,24 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
boolMust.must(pBuilder);
}
// 是否车用气瓶
if (!ObjectUtils.isEmpty(map.getString("WHETHER_VEHICLE_CYLINDER"))) {
if (!ObjectUtils.isEmpty(map.getString(WHETHER_VEHICLE_CYLINDER))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString("WHETHER_VEHICLE_CYLINDER"));
pBuilder.must(QueryBuilders.termQuery("WHETHER_VEHICLE_CYLINDER", test));
String test = QueryParser.escape(map.getString(WHETHER_VEHICLE_CYLINDER));
pBuilder.must(QueryBuilders.termQuery(WHETHER_VEHICLE_CYLINDER, test));
boolMust.must(pBuilder);
}
// 是否撬装式压力容器
if (!ObjectUtils.isEmpty(map.getString(WHETHER_SKID_MOUNTED_PRESSURE_VESSEL))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString(WHETHER_SKID_MOUNTED_PRESSURE_VESSEL));
pBuilder.must(QueryBuilders.termQuery(WHETHER_SKID_MOUNTED_PRESSURE_VESSEL, test));
boolMust.must(pBuilder);
}
// 设备代码模糊查询
if (!ObjectUtils.isEmpty(map.getString("EQU_CODE"))) {
if (!ObjectUtils.isEmpty(map.getString(EQU_CODE))) {
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString("EQU_CODE"));
pBuilder.must(QueryBuilders.wildcardQuery("EQU_CODE", "*" + test.toLowerCase() + "*"));
String test = QueryParser.escape(map.getString(EQU_CODE));
pBuilder.must(QueryBuilders.wildcardQuery(EQU_CODE, "*" + test.toLowerCase() + "*"));
boolMust.must(pBuilder);
}
// 单位内部编号模糊查询
......@@ -1406,7 +1432,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (org.elasticsearch.search.SearchHit hit : response.getHits().getHits()) {
for (SearchHit hit : response.getHits().getHits()) {
System.out.println(hit);
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
JSONObject dto2 = jsonObject.getJSONObject("sourceAsMap");
......@@ -1421,13 +1447,13 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
String status = EquimentEnum.getName.get(integer);
dto2.put(EQUSTATE, status);
}
dto2.put("record", dto2.get("SEQUENCE_NBR"));
dto2.put("record", dto2.get(SEQUENCE_NBR));
list.add(dto2);
}
// 获取所有设备的Id
List<String> equIds = null;
if (!ValidationUtil.isEmpty(list)) {
equIds = list.stream().map(item -> item.get("SEQUENCE_NBR").toString()).collect(Collectors.toList());
equIds = list.stream().map(item -> item.get(SEQUENCE_NBR).toString()).collect(Collectors.toList());
}
if (!ValidationUtil.isEmpty(equIds)) {
// 查询设备地址
......@@ -1459,10 +1485,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
// 更新设备使用情况和设备地址
for (JSONObject item : list) {
String fullAddress = equAddressMap.get(item.getString("SEQUENCE_NBR"));
String fullAddress = equAddressMap.get(item.getString(SEQUENCE_NBR));
item.put("ADDRESS", !ValidationUtil.isEmpty(fullAddress) ? fullAddress : "");
item.put("CAN_EDIT", this.checkEquipIsCanEdit(item.getString("SEQUENCE_NBR")));
item.put("CAN_DELETE", this.checkEquipIsCanDelete(item.getString("SEQUENCE_NBR")));
item.put("CAN_EDIT", this.checkEquipIsCanEdit(item.getString(SEQUENCE_NBR)));
item.put("CAN_DELETE", this.checkEquipIsCanDelete(item.getString(SEQUENCE_NBR)));
}
}
totle = response.getInternalResponse().hits().getTotalHits().value;
......@@ -1533,6 +1559,16 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
Date date = new Date();
String record = null;
// 设备种类
String equList = String.valueOf(equipmentClassForm.get(EQU_LIST));
// 设备类别
String equCategory = String.valueOf(equipmentClassForm.get(EQU_CATEGORY));
// 设备品种
String equDefine = String.valueOf(equipmentClassForm.get(EQU_DEFINE));
// 业务场景
String businessScenarios = String.valueOf(equipmentClassForm.get("businessScenarios"));
// 操作类型
String operateType = ValidationUtil.isEmpty(equipmentInfoForm.get(SEQUENCE_NBR)) ? OPERATESAVE : OPERATEEDIT;
// 设备是否复制而来,复制来的设备走新增
......@@ -1638,10 +1674,11 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
registerInfo.setSequenceNbr(OPERATESAVE.equals(operateType) ? null : String.valueOf(equipmentInfoForm.get("REGISTERINFO_SEQ")));
// 补丁:saveOrUpdate在update数据时不会更新字段为null的字段,但是编辑设备的代码时,从有改成无,equCode解析成null,但是此时需要将equcode删掉
registerInfo.setEquCode(ObjectUtils.isEmpty(registerInfo.getEquCode()) ? "" : registerInfo.getEquCode());
if (isCopy) {
// 使用登记证号置空
registerInfo.setUseOrgCode(null);
}
// 判断是否是撬装式压力容器,条件:使用单位提交的+业务类型为场景选择(1)+ 设备种类为压力容器(2000) +设备类别为固定式压力容器(2100)
boolean whetherSkidMountedPressureVesselFlag = "1".equals(businessScenarios) && EquipmentClassifityEnum.YLRQ.getCode().equals(equList) && "2100".equals(equCategory);
registerInfo.setWhetherSkidMountedPressureVessel(whetherSkidMountedPressureVesselFlag ? "1" : "0");
// copy设备 =》 使用登记证号置空
registerInfo.setUseOrgCode(isCopy ? null : registerInfo.getUseOrgCode());
this.saveOrUpdate(registerInfo);
// 维保备案
......@@ -1678,8 +1715,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 八大类技术参数和主要零部件和安全附件表
List<IdxBizJgMainParts> mainPartsList = new ArrayList<>();
List<IdxBizJgProtectionDevices> protectionDevicesList = new ArrayList<>();
// 设备种类
String equList = equipmentClassForm.get("EQU_LIST").toString();
// 电梯
if (EquipmentClassifityEnum.DT.getCode().equals(equList)) {
IdxBizJgTechParamsElevator elevator = JSON.parseObject(JSON.toJSONString(equipmentParamsForm), IdxBizJgTechParamsElevator.class);
......
......@@ -132,4 +132,7 @@ public class ESEquipmentCategoryDto {
@Field(type = FieldType.Text)
private String WHETHER_VEHICLE_CYLINDER;
@Field(type = FieldType.Text)
private String WHETHER_SKID_MOUNTED_PRESSURE_VESSEL;
}
......@@ -177,5 +177,13 @@ public class IdxBizJgRegisterInfo extends TzsBaseEntity {
@TableField("\"WHETHER_VEHICLE_CYLINDER\"")
private String whetherVehicleCylinder;
/**
* 是否撬装式压力容器(压力容器用于区分普通压力容器(安装改造维修单位新增的)和撬装式压力容器(使用单位新增的))
* 1:是
* 0:不是
*/
@TableField("\"WHETHER_SKID_MOUNTED_PRESSURE_VESSEL\"")
private String whetherSkidMountedPressureVessel;
}
......@@ -102,6 +102,7 @@
EQU_TYPE,
DATA_SOURCE,
WHETHER_VEHICLE_CYLINDER,
WHETHER_SKID_MOUNTED_PRESSURE_VESSEL,
DATE_FORMAT(PRODUCE_DATE, '%Y-%m-%d %H:%i:%s') as PRODUCE_DATE
from idx_biz_view_jg_all
WHERE SEQUENCE_NBR = #{id}
......
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