From a7485c9f9b16ece4f12f0b3f6d6a8c90370f5ae4 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期三, 09 四月 2025 16:08:30 +0800 Subject: [PATCH] 灌溉计划详情信息增加取水口命令发布失败数量 --- pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java | 262 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 262 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java new file mode 100644 index 0000000..33bb871 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java @@ -0,0 +1,262 @@ +package com.dy.pipIrrWechat.intake; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.dy.common.multiDataSource.DataSourceContext; +import com.dy.common.mw.protocol.Command; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper; +import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper; +import com.dy.pipIrrGlobal.pojoPr.PrIntake; +import com.dy.pipIrrGlobal.voPr.VoAllIntake; +import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; +import com.dy.pipIrrGlobal.voRm.VoOpenClostWechat; +import com.dy.pipIrrWechat.intake.qo.OnLineIntakesQO; +import com.dy.pipIrrWechat.intake.qo.QoOpenClose; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; +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.web.client.RestTemplate; +import org.springframework.web.util.UriComponentsBuilder; + +import java.util.List; +import java.util.Map; + +/** + * @author ZhuBaoMin + * @date 2024-06-20 8:37 + * @LastEditTime 2024-06-20 8:37 + * @Description + */ + +@Slf4j +@Service +public class IntakeSv { + @Autowired + private PrIntakeMapper prIntakeMapper; + + @Autowired + private RestTemplate restTemplate; + + @Autowired + private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper; + + //protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ; + protected String comSendUrl; + /** + * pro_mw锛氬睘鎬� + * tag浠庢帶鍒跺櫒涓幏鍙� + * key_mw锛歶rl鐨刱ey + */ + private Environment env = null; + private String pro_mw = "mw"; + private String key_mw = "comSendUrl"; + @Autowired + public IntakeSv(Environment env) { + this.env = env; + } + + /** + * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄 + * @return + */ + public VoOnLineIntake selectOneIntake(OnLineIntakesQO qo) { + //Command com = new Command() ; + //com.id = Command.defaultId; + //com.code = "LCD0001"; + //com.type = "innerCommand"; + //comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); + // + //JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); + // + //JSONArray jsonArray = new JSONArray(); + //if(response != null && response.getString("code").equals("0001")) { + // JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment"); + // if(attachment != null) { + // attachment.forEach((key, value) -> { + // JSONObject jsonObject = new JSONObject(); + // jsonObject.put("rtuAddr", key); + // jsonObject.put("isOnLine", value); + // jsonArray.add(jsonObject); + // }); + // } + //} + //qo.setOnLineMap(jsonArray.toJSONString()); + + // 濡傛灉 intakeNum 涓嶄负绌猴紝鍒欒浆涓哄皬鍐欏啀鍐欏叆qo瀵硅薄 + String intakeNum = qo.getIntakeNum(); + if(intakeNum != null) { + qo.setIntakeNum(intakeNum.toLowerCase()); + } + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + return prIntakeMapper.getIntakeByName(params); + } + + /** + * 鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄧ嚎锛� + * @return + */ + public QueryResultVo<List<VoOnLineIntake>> selectAllIntakes(OnLineIntakesQO qo) { + //Command com = new Command() ; + //com.id = Command.defaultId; + //com.code = "LCD0001"; + //com.type = "innerCommand"; + //comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); + // + //JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); + // + //JSONArray jsonArray = new JSONArray(); + //if(response != null && response.getString("code").equals("0001")) { + // JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment"); + // if(attachment != null) { + // attachment.forEach((key, value) -> { + // JSONObject jsonObject = new JSONObject(); + // jsonObject.put("rtuAddr", key); + // jsonObject.put("isOnLine", value); + // jsonArray.add(jsonObject); + // }); + // } + //} + //qo.setOnLineMap(jsonArray.toJSONString()); + + // 濡傛灉 intakeNum 涓嶄负绌猴紝鍒欒浆涓哄皬鍐欏啀鍐欏叆qo瀵硅薄 + String intakeNum = qo.getIntakeNum(); + if(intakeNum != null) { + qo.setIntakeNum(intakeNum.toLowerCase()); + } + + 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; + + } + + /** + * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛 + * @param operatorId + * @return + */ + public List<VoOnLineIntake> getUsedIntakes(Long operatorId) { + Command com = new Command() ; + com.id = Command.defaultId; + com.code = "LCD0001"; + com.type = "innerCommand"; + comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); + + JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); + //String response_Str = "{\"code\": \"0001\",\"content\": {\"attachment\": {\"530115059980\": true,\"620201000030\": true},\"code\": \"LCD0001\",\"id\": \"999999999\",\"param\": {\"message\": \"鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌缁撴灉\",\"success\": true},\"protocol\": \"\",\"rtuAddr\": \"\",\"rtuResultSendWebUrl\": \"\",\"type\": \"resultCommand\"},\"msg\": \"璇锋眰鎴愬姛\",\"success\": true}"; + //JSONObject response = JSON.parseObject(response_Str); + //String test = response.toJSONString(); + + JSONArray jsonArray = new JSONArray(); + if(response != null && response.getString("code").equals("0001")) { + JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment"); + if(attachment != null) { + attachment.forEach((key, value) -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("rtuAddr", key); + jsonObject.put("isOnLine", value); + jsonArray.add(jsonObject); + + }); + } + + System.out.println(jsonArray.toJSONString()); + //return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId); + //} else { + // return new ArrayList<>(); + } + + return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId); + } + + /** + * 鍙戦�佸懡浠� + * @return + */ + protected BaseResponse sendCom2Mw(Command com){ + String url = UriComponentsBuilder.fromUriString(comSendUrl) + .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(); + } + + if(response == null) { + return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�"); + } + + return response.getBody(); + } + + /** + * 鑾峰彇鐗╃悊鍗″紑鍏抽榾璁板綍锛屽井淇″皬绋嬪簭浣跨敤 + * @param queryVo + * @return + */ + public QueryResultVo<List<VoOpenClostWechat>> getCardOpenClose(QoOpenClose queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = rmOpenCloseValveHistoryMapper.getCardOpenCloseCount(params); + + QueryResultVo<List<VoOpenClostWechat>> rsVo = new QueryResultVo<>(); + rsVo.pageSize = queryVo.pageSize; + rsVo.pageCurr = queryVo.pageCurr; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmOpenCloseValveHistoryMapper.getCardOpenClose(params); + return rsVo; + } + + /** + * 鑾峰彇铏氭嫙鍗″紑鍏抽榾璁板綍锛屽井淇″皬绋嬪簭浣跨敤 + * @param queryVo + * @return + */ + public QueryResultVo<List<VoOpenClostWechat>> getVcCardOpenClose(QoOpenClose queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = rmOpenCloseValveHistoryMapper.getVcCardOpenCloseCount(params); + + QueryResultVo<List<VoOpenClostWechat>> rsVo = new QueryResultVo<>(); + rsVo.pageSize = queryVo.pageSize; + rsVo.pageCurr = queryVo.pageCurr; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmOpenCloseValveHistoryMapper.getVcCardOpenClose(params); + return rsVo; + } + + /** + * 寰楀埌鎵�鏈夊彇姘村彛 + * + * @return 鎵�鏈夊彇姘村彛闆嗗悎 + */ + public QueryResultVo<List<VoAllIntake>> selectAll() { + QueryResultVo<List<VoAllIntake>> rsVo = new QueryResultVo<>(); + rsVo.obj = this.prIntakeMapper.selectAll(); + return rsVo; + } +} -- Gitblit v1.8.0