From 00d54db361d697cf8fdf2f15940f4650b21b3185 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 21 四月 2025 15:05:35 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java | 212 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 199 insertions(+), 13 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java index efd5f6c..60e5c20 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java @@ -1,15 +1,37 @@ package com.dy.pipIrrRemote.common; -import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; +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.QueryResultVo; +import com.dy.pipIrrGlobal.command.ComSupport; +import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper; +import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper; +import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; +import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveLastMapper; +import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; +import com.dy.pipIrrGlobal.pojoSe.SeClientCard; +import com.dy.pipIrrGlobal.voRm.VoCommand; +import com.dy.pipIrrGlobal.voRm.VoRtuAndVc; +import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; +import com.dy.pipIrrGlobal.voSe.VoVirtualCard; +import com.dy.pipIrrRemote.common.qo.QoCommand; import lombok.RequiredArgsConstructor; 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.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @author ZhuBaoMin @@ -21,18 +43,50 @@ @Slf4j @Service @RequiredArgsConstructor -public class CommandSv { +public class CommandSv extends ComSupport { private final RmCommandHistoryMapper rmCommandHistoryMapper; - private final PrControllerMapper prControllerMapper; private final SeVirtualCardMapper seVirtualCardMapper; + private final PrIntakeMapper prIntakeMapper; + private final PrWaterPriceMapper prWaterPriceMapper; + private final PrIntakeVcMapper prIntakeVcMapper; + private final SeClientCardMapper seClientCardMapper; + private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper; /** - * 鏍规嵁鍙栨按鍙D鑾峰彇闃�鎺у櫒鍦板潃 - * @param intakeId 鍙栨按鍙D - * @return 闃�鎺у櫒鍦板潃 + * pro_mw锛氬睘鎬� + * tag浠庢帶鍒跺櫒涓幏鍙� + * key_mw锛歶rl鐨刱ey */ - public String getRtuAddrByIntakeId(Long intakeId) { - return prControllerMapper.getRtuAddrByIntakeId(intakeId); + private Environment env = null; + private String pro_mw = "mw"; + private String key_mw = "comSendUrl"; + @Autowired + public CommandSv(RmCommandHistoryMapper rmCommandHistoryMapper,RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper, SeVirtualCardMapper seVirtualCardMapper, PrIntakeMapper prIntakeMapper, PrWaterPriceMapper prWaterPriceMapper, PrIntakeVcMapper prIntakeVcMapper, SeClientCardMapper seClientCardMapper, Environment env) { + this.rmCommandHistoryMapper = rmCommandHistoryMapper; + this.rmOpenCloseValveLastMapper = rmOpenCloseValveLastMapper; + this.seVirtualCardMapper = seVirtualCardMapper; + this.prIntakeMapper = prIntakeMapper; + this.prWaterPriceMapper = prWaterPriceMapper; + this.prIntakeVcMapper = prIntakeVcMapper; + this.seClientCardMapper = seClientCardMapper; + this.env = env; + } + + /** + * 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄 + * @param vcId + * @return + */ + public VoVirtualCard getVcById(Long vcId) { + return seVirtualCardMapper.getVcById(vcId); + } + + /** + * 鑾峰彇姘翠环 + * @return + */ + public Double getPrice() { + return prWaterPriceMapper.getPrice(); } /** @@ -40,9 +94,9 @@ * @param po 鍛戒护鏃ュ織瀵硅薄 * @return 瀛楃涓茬被鍨嬬殑涓婚敭 */ - public String insert(RmCommandHistory po) { + public Long insert(RmCommandHistory po) { rmCommandHistoryMapper.insert(po); - return (po.getId()).toString(); + return po.getComId(); } /** @@ -54,15 +108,147 @@ return rmCommandHistoryMapper.updateByPrimaryKeySelective(po); } - /** - * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍 + * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級 * @param operator * @return */ public List<VoUnclosedValve> getUnclosedValves(Long operator) { - return rmCommandHistoryMapper.getUnclosedValves(operator); + 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); + }); + } + //System.out.println(jsonArray); + } + + /** + * 鑾峰彇鏈叧闃�鐨凴TU鍦板潃鍜岃櫄鎷熷崱缂栧彿瀵规暟缁� + * 閬嶅巻鏁扮粍鑾峰彇鏈�鍚庡懡浠ゆ棩蹇桰D闆嗗悎 + */ + List<VoRtuAndVc> rtus = rmCommandHistoryMapper.getUnclosedRtus(operator); + String comIds = ""; + if(rtus != null && rtus.size() > 0) { + for (int i = 0; i < rtus.size(); i++) { + Long comId = rmCommandHistoryMapper.getLastComId(rtus.get(i).getRtuAddr(), rtus.get(i).getVcNum()); + if(comId > 0) { + comIds = comIds + "\"" + comId + "\","; + } + } + } + + if(comIds.length() > 0) { + comIds = comIds.substring(0, comIds.length()-1); + List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), comIds); + if(res != null) { + return res; + } + } + return new ArrayList<>(); } + /** + * 涓烘寚瀹氾紙闃�鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀� + * @param rtuAddr + * @param icCardNo + * @return + */ + public Integer addClostTime(String rtuAddr, String icCardNo) { + return rmOpenCloseValveLastMapper.addCloseTime(rtuAddr, icCardNo); + } + /** + * 淇敼鍛戒护鏃ュ織璁板綍锛屽洖璋冩姤閿欐椂灏嗗懡浠よ褰曠殑鎵ц缁撴灉鏀逛负澶辫触 + * @param po + * @return + */ + public Integer updateCommandResult(RmCommandHistory po) { + return rmCommandHistoryMapper.updateByPrimaryKeySelective(po); + } + + /** + * 鏍规嵁鍙栨按鍙D鑾峰彇涓庝箣缁戝畾铏氭嫙鍗D + * @param intakeId + * @return + */ + public Long getVcIdByIntakeId(Long intakeId) { + return prIntakeVcMapper.getVcIdByIntakeId(intakeId); + } + + /** + * 鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟锛屽钩鍙伴�夋嫨鍙栨按鍙e叧闃�浣跨敤 + * @param intakeId + * @return + */ + public VoUnclosedParam getUncloseParam(Long intakeId) { + 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); + }); + } + // System.out.println(jsonArray); + //} else { + // VoUnclosedParam voUnclosedParam = new VoUnclosedParam(); + // return voUnclosedParam; + } + return rmCommandHistoryMapper.getUncloseParam(jsonArray.toJSONString(), intakeId); + } + + /** + * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱瀵硅薄锛岃繙绋嬪厖鍊间娇鐢� + * @param cardId + * @return + */ + public SeClientCard geClientCardByCardId(Long cardId) { + return seClientCardMapper.selectByPrimaryKey(cardId); + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍 + * @param query + * @return + */ + public QueryResultVo<List<VoCommand>> getCommandHistories(QoCommand query) { + // 瀹屽杽鏌ヨ璧锋鏃堕棿 + query.completionTime(); + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(query); + + Long itemTotal = rmCommandHistoryMapper.getCommandHistoriesCount(params); + + QueryResultVo<List<VoCommand>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = query.pageSize ; + rsVo.pageCurr = query.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmCommandHistoryMapper.getCommandHistories(params); + return rsVo ; + } } -- Gitblit v1.8.0