skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/constant/HkConstant.java
@@ -140,6 +140,11 @@ */ public static final String batchAddURLs = "/api/resource/v1/region/batch/add"; /** * 查询区域列表v2 */ public static final String regionNodesByParamsURLs = "/api/irds/v2/region/nodesByParams"; skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
@@ -5,8 +5,11 @@ import cn.gistack.sm.hk.service.HkService; import cn.gistack.sm.hk.vo.HkVO; import cn.gistack.sm.hk.vo.VideoVO; import cn.gistack.sm.sjztmd.service.IAttResBaseService; import cn.gistack.sm.sjztmd.vo.AttResAdVO; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.protobuf.ServiceException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -34,6 +37,8 @@ public class HkController { private final HkService hkService; private final IAttResBaseService attResBaseService; /** * 分页列表查询 @@ -322,23 +327,36 @@ @ApiOperation(value = "海康设备-同步水库设备信息", notes = "海康设备-同步水库设备信息") @PostMapping(value = "/syncVideo") public R syncVideo(@RequestBody HkVO hk) { /** * 组装请求参数 */ List<VideoVO> list = new ArrayList<>(); VideoVO video = new VideoVO(); video.setRegionName(hk.getRegionName()); video.setRegionIndexCode(hk.getRegionIndexCode()); video.setParentIndexCode("root000000"); video.setRegionType(10); list.add(video); String body = JSON.toJSONString(list); // 通过水库编号获取区域(区县)名称 AttResAdVO info = attResBaseService.getWaterRegionInfoByResGuid(hk.getRegionIndexCode()); hk.setRegionName(info.getCountyName()); // 通过区域名称查询对应的区域编号 String rootRegionId = hkService.regionNodesByParams(hk); if (null!= rootRegionId && !rootRegionId.equals("")){ // 更新 /** * 组装请求参数 */ List<VideoVO> list = new ArrayList<>(); VideoVO video = new VideoVO(); video.setRegionName(hk.getRegionName()); video.setRegionIndexCode(hk.getRegionIndexCode()); video.setParentIndexCode(rootRegionId); video.setRegionType(10); list.add(video); String body = JSON.toJSONString(list); /** * 调用接口并返回数据 * post请求application/json类型参数; */ return R.data(JSONObject.parseObject(common(null==hk.getType()?2:hk.getType(),HkConstant.batchAddURLs, body))); /** * 调用接口并返回数据 * post请求application/json类型参数; */ JSONObject jsonObject = JSONObject.parseObject(common(null == hk.getType() ? 2 : hk.getType(), HkConstant.batchAddURLs, body)); // 返回 return R.data(200,jsonObject,null); }else { // 当前水库行政区域不匹配 return R.data(400,null,"当前水库行政区域不匹配"); } } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/HkService.java
@@ -27,4 +27,11 @@ * @return */ Map<String, Object> getHkStatisticData(HkVO hk, Query query); /** * 查询区域列表v2 * @param hk * @return */ String regionNodesByParams(HkVO hk); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/service/impl/HkServiceImpl.java
@@ -179,11 +179,11 @@ * 获取根节点区域信息 * @param hk */ private String getRootRegionId(HkVO hk) { public String getRootRegionId(HkVO hk) { // 组装请求参数 JSONObject jsonBody = new JSONObject(); String body = jsonBody.toJSONString(); String result = GetCameraUtils.common(hk.getType(),regionsRootUrls, body); String result = GetCameraUtils.common(null==hk.getType()?1:hk.getType(),regionsRootUrls, body); // 数据处理 JSONObject jsonObject = JSONObject.parseObject(result); JSONObject data = (JSONObject) jsonObject.get("data"); @@ -191,4 +191,30 @@ // 返回 return indexCode; } /** * 查询区域列表v2 * @param hk */ public String regionNodesByParams(HkVO hk) { String indexCode = ""; // 组装请求参数 JSONObject jsonBody = new JSONObject(); jsonBody.put("resourceType", "region"); jsonBody.put("regionName", hk.getRegionName()); jsonBody.put("pageNo", 1); jsonBody.put("pageSize", 10); String body = jsonBody.toJSONString(); String result = GetCameraUtils.common(null==hk.getType()?1:hk.getType(),regionNodesByParamsURLs, body); // 数据处理 JSONObject jsonObject = JSONObject.parseObject(result); JSONObject data = jsonObject.getJSONObject("data"); JSONArray list = data.getJSONArray("list"); if (list.size()>0){ indexCode = list.getJSONObject(0).getString("indexCode"); } // 返回 return indexCode; } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResBaseController.java
@@ -91,4 +91,14 @@ return R.data(attResBaseService.updateResBaseByGuid(attResBase)); } /** * 根据水库编码获取行政区数据 * @param guid * @return */ @GetMapping(value = "/getWaterRegionInfoByResGuid") public R getWaterRegionInfoByResGuid(String guid) { return R.data(attResBaseService.getWaterRegionInfoByResGuid(guid)); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
@@ -2,6 +2,7 @@ import cn.gistack.sm.sjztmd.dto.AttResBaseUserDTO; import cn.gistack.sm.sjztmd.entity.AttResBase; import cn.gistack.sm.sjztmd.vo.AttResAdVO; import cn.gistack.sm.sjztmd.vo.AttResBaseVO; import cn.gistack.sm.sjztmd.vo.ManagePersonVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -51,4 +52,11 @@ * @return */ AttResBaseVO getCityCountyCodeByResGuid(@Param("guid") String res_cd); /** * 根据水库编码获取行政区数据 * @param guid * @return */ AttResAdVO getWaterRegionInfoByResGuid(@Param("guid") String guid); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
@@ -159,4 +159,27 @@ where a."guid" = #{guid} </select> <!--查询当前水库对应的市级编号和县区编号--> <select id="getWaterRegionInfoByResGuid" resultType="cn.gistack.sm.sjztmd.vo.AttResAdVO"> SELECT a."guid" as resGuid, case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS townCode, case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS townName, case when b."ad_grad" = 3 THEN b."ad_code" when c."ad_grad" = 3 THEN c."ad_code" END AS countyCode, case when b."ad_grad" = 3 THEN b."ad_name" when c."ad_grad" = 3 THEN C."ad_name" END AS countyName, case when b."ad_grad" = 2 THEN b."ad_code" when c."ad_grad" = 2 THEN c."ad_code" ELSE d."ad_code" END AS cityCode, case when b."ad_grad" = 2 THEN b."ad_name" when c."ad_grad" = 2 THEN c."ad_name" ELSE d."ad_name" END AS cityName FROM sjzt_md."att_res_base" a LEFT JOIN sjzt_md."att_ad_base" b ON a."interior_ad_guid" = b."guid" LEFT JOIN sjzt_md."att_ad_base" c ON b."p_ad_code" = c."guid" LEFT JOIN sjzt_md."att_ad_base" d ON c."p_ad_code" = d."guid" where a."guid" = #{guid} </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
@@ -4,6 +4,7 @@ import cn.gistack.sm.sjztmd.entity.AttAdBase; import cn.gistack.sm.sjztmd.entity.AttResBase; import cn.gistack.sm.sjztmd.vo.AttAdBaseVO; import cn.gistack.sm.sjztmd.vo.AttResAdVO; import cn.gistack.sm.sjztmd.vo.AttResBaseVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -42,4 +43,11 @@ * @return */ AttResBaseVO getCityCountyCodeByResGuid(String res_cd); /** * 根据水库编码获取行政区数据 * @param guid * @return */ AttResAdVO getWaterRegionInfoByResGuid(String guid); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
@@ -5,6 +5,7 @@ import cn.gistack.sm.sjztmd.entity.AttResBase; import cn.gistack.sm.sjztmd.mapper.AttResBaseMapper; import cn.gistack.sm.sjztmd.service.IAttResBaseService; import cn.gistack.sm.sjztmd.vo.AttResAdVO; import cn.gistack.sm.sjztmd.vo.AttResBaseVO; import cn.gistack.sm.sjztmd.vo.ManagePersonVO; import com.baomidou.dynamic.datasource.annotation.DS; @@ -82,4 +83,14 @@ public AttResBaseVO getCityCountyCodeByResGuid(String res_cd) { return baseMapper.getCityCountyCodeByResGuid(res_cd); } /** * 根据水库编码获取行政区数据 * @param guid * @return */ @Override public AttResAdVO getWaterRegionInfoByResGuid(String guid) { return baseMapper.getWaterRegionInfoByResGuid(guid); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java
New file @@ -0,0 +1,48 @@ package cn.gistack.sm.sjztmd.vo; import lombok.Data; import java.io.Serializable; /** * 水库及行政区数据 * * @author Chill */ @Data public class AttResAdVO implements Serializable { /** * 水库编号 */ private String resGuid; /** * 市州编号 */ private String cityCode; /** * 市州名称 */ private String cityName; /** * 区县编号 */ private String countyCode; /** * 区县名称 */ private String countyName; /** * 乡镇编号 */ private String townCode; /** * 乡镇名称 */ private String townName; }