From 76d4ed516122db433859648d58bc971c7b0ce581 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 05 七月 2024 17:23:55 +0800 Subject: [PATCH] 修改取水口名称(编号)重复验证 --- pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 202 insertions(+), 26 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java index 7261b2c..e3080e5 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java @@ -1,18 +1,30 @@ package com.dy.pipIrrProject.intake; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.dy.common.mw.protocol.Command; +import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.daoPr.PrDivideMapper; import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper; import com.dy.pipIrrGlobal.pojoPr.PrIntake; import com.dy.pipIrrGlobal.voPr.VoIntake; +import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; +import com.dy.pipIrrProject.intake.qo.OnLineIntakesQO; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponentsBuilder; - -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author wuzeyu @@ -27,6 +39,15 @@ @Autowired private PrIntakeMapper prIntakeMapper; + @Autowired + private PrDivideMapper prDivideMapper; + + @Autowired + private RestTemplate restTemplate; + + protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ; + + /** * 娣诲姞鍙栨按鍙� * @@ -35,41 +56,47 @@ */ @Transactional Integer addIntake(PrIntake po) { - if (po.getTownId()==null||po.getTownId()==0) - { - Long townId=getSupperByVillageId(po.getVillageId()); - po.setTownId(townId); + Long villageId = Optional.ofNullable(po.getVillageId()).orElse(0L); + + if (villageId != 0){ + if (po.getTownId() == null || po.getTownId() == 0) { + Long townId = getSupperByVillageId(po.getVillageId()); + po.setTownId(townId); + } + if (po.getCountyId() == null || po.getCountyId() == 0) { + Long countyId = getSupperByVillageId(getSupperByVillageId(po.getVillageId())); + po.setCountyId(countyId); + } } - if (po.getCountyId()==null||po.getCountyId()==0) - { - Long countyId=getSupperByVillageId(getSupperByVillageId(po.getVillageId())); - po.setCountyId(countyId); + if (po.getBlockId() == null || po.getBlockId() == 0) { + Long blockId = prDivideMapper.getBlockIdById(po.getDivideId()); + po.setBlockId(blockId); } return prIntakeMapper.insertSelective(po); } - public Long getSupperByVillageId(long vaId){ + + public Long getSupperByVillageId(long vaId) { return prIntakeMapper.getSupperByVillageId(vaId); } /** * 淇濆瓨淇敼瀹炰綋 + * * @param po 瀹炰綋 * @return 鏁伴噺 */ - public int update(PrIntake po){ - if (po.getTownId()==null||po.getTownId()==0) - { - Long townId=getSupperByVillageId(po.getVillageId()); + public int update(PrIntake po) { + if (po.getTownId() == null || po.getTownId() == 0) { + Long townId = getSupperByVillageId(po.getVillageId()); po.setTownId(townId); } - if (po.getCountyId()==null||po.getCountyId()==0) - { - Long countyId=getSupperByVillageId(getSupperByVillageId(po.getVillageId())); + if (po.getCountyId() == null || po.getCountyId() == 0) { + Long countyId = getSupperByVillageId(getSupperByVillageId(po.getVillageId())); po.setCountyId(countyId); } - return this.prIntakeMapper.updateByPrimaryKeySelective(po) ; + return this.prIntakeMapper.updateByPrimaryKeySelective(po); // return this.prIntakeMapper.updateByPrimaryKey(po); } @@ -80,6 +107,12 @@ * @return 鍙栨按鍙h褰曞垪琛� */ public QueryResultVo<List<VoIntake>> getIntakes(QueryVo queryVo) { +// String isBinded = queryVo.getIsBinded(); +// +// if(isBinded == null || isBinded.length() <= 0) { +// +// } + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); Long itemTotal = prIntakeMapper.getRecordCount(params); @@ -105,30 +138,173 @@ /** * 寰楀埌鎵�鏈夊彇姘村彛 + * * @return 鎵�鏈夊彇姘村彛闆嗗悎 */ public QueryResultVo<List<PrIntake>> selectAll() { - QueryResultVo<List<PrIntake>> rsVo = new QueryResultVo<>() ; - rsVo.obj = this.prIntakeMapper.selectAll() ; - return rsVo ; + QueryResultVo<List<PrIntake>> rsVo = new QueryResultVo<>(); + rsVo.obj = this.prIntakeMapper.selectAll(); + return rsVo; } /** * 寰楀埌涓�涓彇姘村彛 + * * @param id 鍙栨按鍙D * @return 鍙栨按鍙e疄浣� */ public PrIntake selectById(Long id) { - return this.prIntakeMapper.selectByPrimaryKey(id) ; + return this.prIntakeMapper.selectByPrimaryKey(id); } /** * 閫昏緫鍒犻櫎瀹炰綋 + * * @param id 瀹炰綋ID * @return 鏁伴噺 */ @Transactional - public int delete(Long id){ - return this.prIntakeMapper.deleteLogicById(id) ; + public int delete(Long id) { + return this.prIntakeMapper.deleteLogicById(id); } + + /** + * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺 + * + * @param intakeId + * @return + */ + public Integer getRecordCountOfIntake(Long intakeId) { + return prIntakeMapper.getRecordCountOfIntake(intakeId); + } + + /** + * 鏍规嵁鏉慖d鑾峰彇鍏ㄩ儴鍦板潃 + * + * @param villageId 鏉慖d + * @return address 鍏ㄩ儴浜旂骇鍦板潃 + */ + public String getAddressByVillageId(long villageId) { + return prIntakeMapper.getAddressByVillageId(villageId); + } + + /** + * 鏍规嵁鍖哄煙Id鑾峰彇鍖哄煙绛夌骇 + * + * @param regionId 鍖哄煙Id + * @return Level 鍖哄煙绛夌骇 + */ + public int getLevelByRegionId(long regionId) { + return prIntakeMapper.getLevelByRegionId(regionId); + } + + /** + * 鑾峰彇鍙栨按鍙e垪琛� + * @return + */ + public QueryResultVo<List<VoOnLineIntake>> selectOnLineIntakes(OnLineIntakesQO qo) { + Command com = new Command() ; + com.id = Command.defaultId; + com.code = "LCD0001"; + com.type = "innerCommand"; + + JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); + + if(response != null && response.getString("code").equals("0001")) { + JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap"); + HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class); + + JSONArray jsonArray = new JSONArray(); + for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("rtuAddr", entry.getKey()); + jsonObject.put("isOnLine", entry.getValue()); + jsonArray.add(jsonObject); + } + + qo.setOnLineMap(jsonArray.toJSONString()); + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + Long itemTotal = prIntakeMapper.getOnLineIntakesCount(params); + + QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = prIntakeMapper.getOnLineIntakes(params); + return rsVo; + } else { + QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>(); + return rsVo; + } + } + + /** + * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛 + * @param operator + * @return + */ + public List<VoOnLineIntake> getUsedIntakes(Long operator) { + Command com = new Command() ; + com.id = Command.defaultId; + com.code = "LCD0001"; + com.type = "innerCommand"; + JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); + + if(response != null && response.getString("code").equals("0001")) { + JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap"); + HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class); + + JSONArray jsonArray = new JSONArray(); + for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("rtuAddr", entry.getKey()); + jsonObject.put("isOnLine", entry.getValue()); + jsonArray.add(jsonObject); + } + return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operator); + } else { + return new ArrayList<>(); + } + } + + /** + * 鍙戦�佸懡浠� + * @return + */ + protected BaseResponse sendCom2Mw(Command com){ + String url = UriComponentsBuilder.fromUriString(mwUrlSendCom) + .build() + .toUriString(); + HttpHeaders headers = new HttpHeaders(); + HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers); + ResponseEntity<BaseResponse> response = null; + try { + // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛 + response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class); + } catch (Exception e) { + e.printStackTrace(); + } + return response.getBody(); + } + + + /** + * 鍙栨按鍙e悕绉版崲鍙栨按鍙D锛岄獙璇佹槸鍚﹂噸澶嶅悕绉颁娇鐢� + * @param intakeName + * @return + */ + public List<Long> getIntakeIdsByName(String intakeName) { + return prIntakeMapper.getIntakeIdsByName(intakeName); + } + + /** + * 鍙栨按鍙e悕绉版崲鍙栨按鍙D锛岄獙璇佹槸鍚﹂噸澶嶅悕绉颁娇鐢� + * @param intakeName + * @return + */ + public List<Long> getIntakeIdByNameExcludeId(Long id, String intakeName) { + return prIntakeMapper.getIntakeIdByNameExcludeId(id, intakeName); + } + + } -- Gitblit v1.8.0