Commit a0d5bb2c authored by 刘林's avatar 刘林

fix(jg):榆林电梯对接接口开发

parent 000a83f9
package com.yeejoin.amos.api.openapi.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.api.openapi.face.model.ElevatorModel;
import com.yeejoin.amos.api.openapi.feign.TzsJgServiceFeignClient;
import com.yeejoin.amos.boot.module.cylinder.api.dto.PageParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Date;
/**
* 特种设备监管controller
*/
@RestController
@Api(tags = "榆林数据对接Api")
@RequestMapping(value = "/yulin")
public class YuLinDataDockController {
@Autowired
private TzsJgServiceFeignClient jgServiceFeignClient;
/**
* 根据时间范围查询电梯数据
* @param equCode 设备代码
* @param startTime 开始时间
* @param endTime 结束时间
* @param pageParam 分页参数
* @return 电梯数据
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getElevatorInfo")
@ApiOperation(httpMethod = "GET", value = "查询电梯信息列表", notes = "查询电梯信息列表")
public ResponseModel<IPage<ElevatorModel>> getElevatorInfo(@RequestParam(value = "equCode", required = false) String equCode,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
PageParam pageParam) {
return ResponseHelper.buildResponse(jgServiceFeignClient.getElevatorInfo(equCode, startTime, endTime, pageParam));
}
}
package com.yeejoin.amos.api.openapi.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.api.openapi.face.model.ElevatorModel;
import com.yeejoin.amos.boot.biz.common.feign.FeignConfiguration;
import com.yeejoin.amos.boot.module.cylinder.api.dto.PageParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Date;
@FeignClient(name = "TZS-JG", path = "/jg",url = "172.16.3.70:11007", configuration = {FeignConfiguration.class})
public interface TzsJgServiceFeignClient {
/**
* 根据企业统一信用代码询许可信息
*
* @param unitCode 企业唯一编码
* @return
*/
@RequestMapping(value = "/baseEnterprise/getUnitLicenceMessage", method = RequestMethod.GET)
ResponseModel<Object> getLicenceByUnitCode(@RequestParam String unitCode);
/**
* 字段列表查询
* @param dictCode 字段类型
* @return 列表
*/
@RequestMapping(value = "/getDataDictionary/{dictCode}", method = RequestMethod.GET)
ResponseModel<Object> getDataDictionary(@PathVariable String dictCode);
/**
* 根据时间范围查询
* @param equCode 设备代码
* @param startTime 开始时间
* @param endTime 结束时间
* @return 电梯数据
*/
@RequestMapping(value = "/equipment-register/getElevatorInfo", method = RequestMethod.GET)
IPage<ElevatorModel> getElevatorInfo(@RequestParam("equCode") String equCode,
@RequestParam("startTime") Date startTime,
@RequestParam("startTime") Date endTime,
PageParam pageParam);
}
...@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto; ...@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto; import com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration; import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.vo.ElevatorModelVo;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo; import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -89,4 +90,6 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> { ...@@ -89,4 +90,6 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> {
List<EquipBizCountDto> queryNewDeviceStaticListData(DPFilterParamDto dpFilterParamDto); List<EquipBizCountDto> queryNewDeviceStaticListData(DPFilterParamDto dpFilterParamDto);
Integer getUseRegisterCount(@Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto); Integer getUseRegisterCount(@Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
List<ElevatorModelVo> getElevatorModeList(@Param("equIds") List<String> equIds);
} }
...@@ -728,4 +728,31 @@ ...@@ -728,4 +728,31 @@
GROUP BY GROUP BY
C.equ_category C.equ_category
</select> </select>
<select id="getElevatorModeList" resultType="com.yeejoin.amos.boot.module.jg.api.vo.ElevatorModelVo">
SELECT
ri."USE_ORG_CODE" useCertNumber,
ri."EQU_CODE" deviceNumber,
ri."ORGANIZATION_NAME" registerOrg,
ri."ORGANIZATION_NAME" certIssueOrg,
(select tec.name from amos_tzs_biz.tz_equipment_category tec WHERE ri."EQU_CATEGORY"::text = tec.code::text) AS deviceCategory,
ri."PRODUCT_NAME" deviceName,
ui.ADDRESS deviceAddress,
ui."USE_INNER_CODE" innerCode,
ui."USE_UNIT_NAME" useCompanyName,
ui."ESTATE_UNIT_CREDIT_CODE" ownerCode,
ui."ESTATE_UNIT_NAME" ownerName,
ui.SAFETY_MANAGE_DT safetyDept,
ui.SAFETY_MANAGER safetyAdmin,
ui.PHONE safetyAdminPhone
FROM idx_biz_jg_use_info ui
LEFT JOIN idx_biz_jg_supervision_info si ON ui."RECORD" = si."RECORD"
LEFT JOIN idx_biz_jg_register_info ri ON ri."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_design_info di ON di."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_factory_info fi ON fi."RECORD" = ui."RECORD"
WHERE ui."RECORD" in
<foreach collection="equIds" separator="," item="record" open="(" close=")">
#{record}
</foreach>
</select>
</mapper> </mapper>
package com.yeejoin.amos.boot.module.jg.biz.controller; package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo; import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jg.api.vo.ElevatorModelVo;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService; import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService;
import com.yeejoin.amos.boot.module.ymt.api.entity.PageParam;
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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
...@@ -253,4 +257,22 @@ public class IdxBizJqEquipmentRegisterController extends BaseController { ...@@ -253,4 +257,22 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
String unitCreditCode = getSelectedOrgInfo().getCompany().getCompanyCode(); String unitCreditCode = getSelectedOrgInfo().getCompany().getCompanyCode();
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.getProjectContraptionList(unitCreditCode)); return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.getProjectContraptionList(unitCreditCode));
} }
/**
* 根据时间范围查询电梯数据
* @param equCode 设备代码
* @param startTime 开始时间
* @param endTime 结束时间
* @return 电梯数据
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getElevatorInfo")
@ApiOperation(httpMethod = "GET", value = "查询电梯信息列表", notes = "查询电梯信息列表")
public ResponseModel<IPage<ElevatorModelVo>> getElevatorInfo(@RequestParam(value = "equCode",required = false) String equCode,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
PageParam pageParam) {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.getElevatorInfo(equCode, startTime, endTime, pageParam));
}
} }
...@@ -3,9 +3,12 @@ package com.yeejoin.amos.boot.module.jg.biz.service; ...@@ -3,9 +3,12 @@ package com.yeejoin.amos.boot.module.jg.biz.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.jg.api.vo.ElevatorModelVo;
import com.yeejoin.amos.boot.module.ymt.api.entity.PageParam;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -56,4 +59,6 @@ public interface IIdxBizJgRegisterInfoService { ...@@ -56,4 +59,6 @@ public interface IIdxBizJgRegisterInfoService {
* @return 查询单位下工程装置信息 * @return 查询单位下工程装置信息
*/ */
List<Map<String, Object>> getProjectContraptionList(String useUnitCreditCode); List<Map<String, Object>> getProjectContraptionList(String useUnitCreditCode);
Page<ElevatorModelVo> getElevatorInfo(String equCode, Date startTime, Date endTime, PageParam pageParam);
} }
...@@ -32,6 +32,7 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper; ...@@ -32,6 +32,7 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.SafetyProblemTracingMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.SafetyProblemTracingMapper;
import com.yeejoin.amos.boot.module.jg.api.vo.ElevatorModelVo;
import com.yeejoin.amos.boot.module.jg.biz.config.PressureVesselListener; import com.yeejoin.amos.boot.module.jg.biz.config.PressureVesselListener;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext; import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
...@@ -83,6 +84,7 @@ import java.time.LocalDate; ...@@ -83,6 +84,7 @@ import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.alibaba.fastjson.JSON.toJSONString; import static com.alibaba.fastjson.JSON.toJSONString;
...@@ -161,7 +163,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -161,7 +163,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
List<String> useInnerCodeList = new ArrayList<>();// 单位内部编号集合 List<String> useInnerCodeList = new ArrayList<>();// 单位内部编号集合
List<String> equCodeList = new ArrayList<>();// 设备代码集合 List<String> equCodeList = new ArrayList<>();// 设备代码集合
List<String> factoryNumList = new ArrayList<>();// 出厂编码集合 List<String> factoryNumList = new ArrayList<>();// 出厂编码集合
private static final Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
/** /**
* 业务类型 0:单个新增 1:批量导入 * 业务类型 0:单个新增 1:批量导入
*/ */
...@@ -3202,6 +3204,76 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -3202,6 +3204,76 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
return this.baseMapper.getProjectContraptionList(useUnitCreditCode); return this.baseMapper.getProjectContraptionList(useUnitCreditCode);
} }
@Override
public Page<ElevatorModelVo> getElevatorInfo(String equCode, Date startTime, Date endTime, PageParam pageParam) {
Page<ElevatorModelVo> result = new Page<>(pageParam.getCurrent(), pageParam.getSize());
SearchRequest request = new SearchRequest();
request.indices("idx_biz_view_jg_all");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true);
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
//榆林市审批局
String orgCode = this.getAndSetOrgCode("610581");
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
//默认查询电梯
BoolQueryBuilder query = QueryBuilders.boolQuery();
query.must(QueryBuilders.matchPhraseQuery("EQU_LIST_CODE", QueryParser.escape("3000")));
boolMust.must(query);
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
String param = QueryParser.escape("true");
pBuilder.must(QueryBuilders.matchQuery(IS_INTO_MANAGEMENT, param));
boolMust.must(pBuilder);
boolMust.must(QueryBuilders.rangeQuery("REC_DATE").gte(startTime.getTime()).lte(endTime.getTime()));
if (!ObjectUtils.isEmpty(equCode)) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(equCode);
meBuilder.must(QueryBuilders.matchPhraseQuery("EQU_CODE", "*" + test + "*"));
boolMust.must(meBuilder);
}
builder.query(boolMust);
builder.sort("REC_DATE", SortOrder.DESC);
builder.from((pageParam.getCurrent() - 1) * pageParam.getSize());
builder.size(pageParam.getSize());
request.source(builder);
List<ElevatorModelVo> elevatorModelVoList = Collections.emptyList();
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
List<String> equIds = Arrays.stream(response.getHits().getHits())
.map(hit -> {
JSONObject dto2 = ((JSONObject) JSONObject.toJSON(hit)).getJSONObject("sourceAsMap");
dto2.put("record", dto2.getString(SEQUENCE_NBR));
return dto2.getString(SEQUENCE_NBR);
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (!equIds.isEmpty()) {
elevatorModelVoList = jgUseRegistrationMapper.getElevatorModeList(equIds);
}
result.setRecords(elevatorModelVoList);
result.setTotal(response.getHits().getTotalHits().value);
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
}
public String getAndSetOrgCode(String cityCode) {
String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode == null) {
orgCode = commonMapper.getOrgCodeByCompanyCode(cityCode);
if (orgCode != null) {
regionCodeOrgCodeMap.put(cityCode, orgCode);
}
}
return orgCode;
}
private ReginParams getSelectedOrgInfo() { private ReginParams getSelectedOrgInfo() {
return JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class); return JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
} }
......
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