From e77ae508afddfd24d8e713a63dfe2b3f46e9f070 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期四, 31 十月 2024 10:25:34 +0800 Subject: [PATCH] 2024-10-31 农户问题上报添加接口、查询接口、删除接口,在线查询代码优化 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java | 4 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/qo/QoIssueReport.java | 45 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java | 48 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java | 21 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml | 3 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java | 36 +-- pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java | 93 ++++---- pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml | 75 +++--- pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml | 83 ++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java | 25 ++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java | 13 + pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java | 19 - pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoIssueReport.java | 70 +++++++ pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java | 53 ++++ 14 files changed, 461 insertions(+), 127 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java index 7cc909c..54646cf 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java @@ -254,6 +254,10 @@ } catch (Exception e) { e.printStackTrace(); } + + if(response == null) { + return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�"); + } return response.getBody(); } diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java index 5d1f9ac..cc4e746 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java @@ -2,7 +2,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoSe.SeIssueReport; +import com.dy.pipIrrGlobal.voSe.VoIssueReport; import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; /** * @author ZhuBaoMin @@ -24,4 +28,25 @@ int updateByPrimaryKeySelective(SeIssueReport record); int updateByPrimaryKey(SeIssueReport record); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤鏁伴噺 + * @param params + * @return + */ + Long getIssueReportsCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤 + * @param params + * @return + */ + List<VoIssueReport> getIssueReports(Map<?, ?> params); + + /** + * 閫昏緫鍒犻櫎涓�涓啘鎴烽棶棰樹笂鎶� + * @param issueReportId + * @return + */ + Integer deleteIssueReport(Long issueReportId); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoIssueReport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoIssueReport.java new file mode 100644 index 0000000..e5ca60d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoIssueReport.java @@ -0,0 +1,70 @@ +package com.dy.pipIrrGlobal.voSe; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.dy.common.po.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +import java.util.Date; + +/** + * @author ZhuBaoMin + * @date 2024-10-30 13:51 + * @LastEditTime 2024-10-30 13:51 + * @Description 鍐滄埛闂涓婃姤瑙嗗浘瀵硅薄 + */ + +@Data +@JsonPropertyOrder({"issueReportId", "clientName", "phone", "reportTime", "content", "images", "audios", "videos", "state"}) +public class VoIssueReport implements BaseEntity { + private static final long serialVersionUID = 202410301354001L; + + /** + * 鍐滄埛闂涓婃姤ID + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private Long issueReportId; + + /** + * 鍐滄埛濮撳悕 + */ + private String clientName; + + /** + * 鑱旂郴鐢佃瘽 + */ + private String phone; + + /** + * 涓婃姤鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date reportTime; + + /** + * 涓婃姤鍐呭 + */ + private String content; + + /** + * 鐓х墖鍒楄〃 + */ + private String images; + + /** + * 闊抽鍒楄〃 + */ + private String audios; + + /** + * 瑙嗛鍒楄〃 + */ + private String videos; + + /** + * 鐘舵�� + */ + private String state; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml index a75444d..5c02036 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml @@ -438,44 +438,45 @@ <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�--> <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> - SELECT inta.id AS intakeId, - con.rtuAddr, - inta.name AS intakeNum, - inta.lng, - inta.lat, - IFNULL(hou.total_amount, 0) AS totalAmount, - (CASE - WHEN con.rtuAddr IS NULL THEN false - WHEN con.rtuAddr IS NOT NULL THEN true - END) AS isBinded, - rtus.isOnLine, - alarm.alarm + SELECT + inta.id AS intakeId, + con.rtuAddr, + inta.name AS intakeNum, + inta.lng, + inta.lat, + IFNULL(hou.total_amount, 0) AS totalAmount, + (CASE + WHEN con.rtuAddr IS NULL THEN false + WHEN con.rtuAddr IS NOT NULL THEN true + END) AS isBinded, + rtus.isOnLine, + alarm.alarm FROM pr_intake inta - LEFT JOIN pr_controller con ON con.intakeId = inta.id - LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id - LEFT JOIN( - SELECT intake_id AS intakeId, - CONCAT( - IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''), - IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')), - IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''), - IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')), - IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''), - IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')), - IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '') - ) AS alarm - FROM rm_alarm_state_last - WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1) - AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR) - ) alarm ON alarm.intakeId = inta.id - LEFT JOIN JSON_TABLE( - <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> - #{onLineMap}, - '$[*]' COLUMNS ( - rtuAddr VARCHAR(20) PATH '$.rtuAddr', - isOnLine BOOLEAN PATH '$.isOnLine' - ) - ) rtus ON con.rtuAddr = rtus.rtuAddr + LEFT JOIN pr_controller con ON con.intakeId = inta.id + LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id + LEFT JOIN( + SELECT intake_id AS intakeId, + CONCAT( + IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''), + IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')), + IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''), + IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')), + IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''), + IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')), + IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '') + ) AS alarm + FROM rm_alarm_state_last + WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1) + AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR) + ) alarm ON alarm.intakeId = inta.id + LEFT JOIN JSON_TABLE( + <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> + #{onLineMap}, + '$[*]' COLUMNS ( + rtuAddr VARCHAR(20) PATH '$.rtuAddr', + isOnLine BOOLEAN PATH '$.isOnLine' + ) + ) rtus ON con.rtuAddr = rtus.rtuAddr <where> <if test="isOnLine != null"> rtus.isOnLine = #{isOnLine} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml index 2f95192..66a399f 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml @@ -199,7 +199,8 @@ <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve"> SELECT inta.name AS intakeNum, - rtus.isOnLine, +<!-- rtus.isOnLine,--> + IFNULL(rtus.isOnLine,'鏈煡') AS isOnLine, com.rtu_addr AS rtuAddr, com.param ->> '$.icCardNo' AS vcNum, ( diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml index 1d9065f..8e8c84f 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml @@ -169,4 +169,87 @@ `state` = #{state,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} </update> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤鏁伴噺--> + <select id="getIssueReportsCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM se_issue_report rpt + LEFT JOIN se_client cli ON cli.id = rpt.client_id + <where> + AND rpt.state != 3 + + <if test="clientId != null"> + AND rpt.client_id = #{clientId} + </if> + + <if test="clientName != null and clientName != ''"> + AND cli.name like CONCAT('%', #{clientName}, '%') + </if> + + <if test="content != null and content != ''"> + AND rpt.content like CONCAT('%', #{content}, '%') + </if> + + <if test="timeStart != null and timeStop != null "> + AND rpt.report_time BETWEEN #{timeStart} AND #{timeStop} + </if> + + <if test="state != null"> + AND rpt.state = #{state} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤--> + <select id="getIssueReports" resultType="com.dy.pipIrrGlobal.voSe.VoIssueReport" > + SELECT + rpt.id AS issueReportId, + cli.name AS clientName, + rpt.phone, + rpt.report_time AS reportTime, + rpt.content, + rpt.images, + rpt.audios, + rpt.videos, + CASE + WHEN rpt.state = 1 THEN '鏈彈鐞�' + WHEN rpt.state = 2 THEN '宸插彈鐞�' + END AS state + FROM se_issue_report rpt + LEFT JOIN se_client cli ON cli.id = rpt.client_id + <where> + AND rpt.state != 3 + + <if test="clientId != null"> + AND rpt.client_id = #{clientId} + </if> + + <if test="clientName != null and clientName != ''"> + AND cli.name like CONCAT('%', #{clientName}, '%') + </if> + + <if test="content != null and content != ''"> + AND rpt.content like CONCAT('%', #{content}, '%') + </if> + + <if test="timeStart != null and timeStop != null "> + AND rpt.report_time BETWEEN #{timeStart} AND #{timeStop} + </if> + + <if test="state != null"> + AND rpt.state = #{state} + </if> + </where> + ORDER BY rpt.report_time DESC + <trim prefix="limit "> + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> + + <!--閫昏緫鍒犻櫎涓�涓啘鎴烽棶棰樹笂鎶�--> + <update id="deleteIssueReport"> + UPDATE se_issue_report SET state = 3 WHERE id = #{issueReportId} + </update> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java index 9dd4755..edec64e 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java @@ -6,6 +6,7 @@ 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.PrControllerMapper; import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper; @@ -25,7 +26,10 @@ import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; /** * @author ZhuBaoMin @@ -80,6 +84,8 @@ comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw); JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); + + if (response != null && response.getString("code").equals("0001")) { JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment"); @@ -256,6 +262,11 @@ } catch (Exception e) { e.printStackTrace(); } + + if(response == null) { + return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�"); + } + return response.getBody(); } } 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 e5c9295..1c3e486 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 @@ -6,6 +6,7 @@ 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.config.DingTalk; import com.dy.pipIrrGlobal.daoPr.PrDivideMapper; @@ -26,7 +27,9 @@ import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Optional; /** * @author wuzeyu @@ -272,23 +275,22 @@ com.code = "LCD0001"; com.type = "innerCommand"; 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"); - - JSONArray jsonArray = new JSONArray(); if(attachment != null) { attachment.forEach((key, value) -> { JSONObject jsonObject = new JSONObject(); jsonObject.put("rtuAddr", key); jsonObject.put("isOnLine", value); jsonArray.add(jsonObject); - }); } - return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operator); - } else { - return new ArrayList<>(); + //} else { + // return new ArrayList<>(); } + return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operator); } /** @@ -309,6 +311,11 @@ } catch (Exception e) { e.printStackTrace(); } + + if(response == null) { + return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�"); + } + return response.getBody(); } 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 9cbb39f..c706351 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 @@ -16,7 +16,6 @@ import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; -import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; import com.dy.pipIrrGlobal.voRm.VoCommand; import com.dy.pipIrrGlobal.voRm.VoUnclosedParam; import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; @@ -121,29 +120,27 @@ 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"); - - JSONArray jsonArray = new JSONArray(); 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); - List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator); - if(res != null) { - return res; - } else { - return new ArrayList<>(); - } + //} else { + // return new ArrayList<>(); + } + + List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator); + if(res != null) { + return res; } else { - QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>(); return new ArrayList<>(); } } @@ -189,27 +186,24 @@ 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"); - - JSONArray jsonArray = new JSONArray(); 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); - return rmCommandHistoryMapper.getUncloseParam(jsonArray.toJSONString(), intakeId); - } else { - QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>(); - VoUnclosedParam voUnclosedParam = new VoUnclosedParam(); - return voUnclosedParam; + //} else { + // VoUnclosedParam voUnclosedParam = new VoUnclosedParam(); + // return voUnclosedParam; } - + return rmCommandHistoryMapper.getUncloseParam(jsonArray.toJSONString(), intakeId); } /** diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java index 218b9ef..21df891 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java @@ -17,7 +17,6 @@ import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; -import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; import com.dy.pipIrrGlobal.voRm.VoIrrigaterProfile; import com.dy.pipIrrGlobal.voRm.VoUnclosedValve; import com.dy.pipIrrGlobal.voSe.VoVirtualCard; @@ -102,29 +101,25 @@ 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"); - - JSONArray jsonArray = new JSONArray(); 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()); - List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator); - if(res != null) { - return res; - } else { - return new ArrayList<>(); - } + } + + List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator); + if(res != null) { + return res; } else { - QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>(); return new ArrayList<>(); } } 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 index ec68ff5..f8ce89c 100644 --- 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 @@ -6,6 +6,7 @@ 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; @@ -25,7 +26,6 @@ import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -75,32 +75,31 @@ 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"); - - JSONArray jsonArray = new JSONArray(); 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); - } else { - return new VoOnLineIntake(); + //} else { + // return new VoOnLineIntake(); } + + 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); } /** @@ -115,40 +114,40 @@ 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"); - - JSONArray jsonArray = new JSONArray(); 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; - } else { - QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>(); - return rsVo; + //} else { + // QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>(); + // return rsVo; } + + 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; + } /** @@ -168,10 +167,9 @@ //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"); - - JSONArray jsonArray = new JSONArray(); if(attachment != null) { attachment.forEach((key, value) -> { JSONObject jsonObject = new JSONObject(); @@ -183,10 +181,12 @@ } System.out.println(jsonArray.toJSONString()); - return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId); - } else { - return new ArrayList<>(); + //return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId); + //} else { + // return new ArrayList<>(); } + + return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId); } /** @@ -206,6 +206,11 @@ } catch (Exception e) { e.printStackTrace(); } + + if(response == null) { + return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�"); + } + return response.getBody(); } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java index 3c18226..8ea2eec 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java @@ -3,19 +3,21 @@ import com.alibaba.fastjson2.JSONArray; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.pojoSe.SeIssueReport; +import com.dy.pipIrrGlobal.voSe.VoIssueReport; import com.dy.pipIrrWechat.issue.dto.DtoIssueReport; +import com.dy.pipIrrWechat.issue.qo.QoIssueReport; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; +import java.util.Date; +import java.util.List; import java.util.Objects; import java.util.Optional; @@ -64,6 +66,8 @@ seIssueReport.setImages(images); seIssueReport.setAudios(audios); seIssueReport.setVideos(videos); + seIssueReport.setReportTime(new Date()); + seIssueReport.setState((byte)1); Long issueReportId = issueSv.insertIssueReport(seIssueReport); if(issueReportId == null) { return BaseResponseUtils.buildErrorMsg("鍐滄埛闂涓婃姤澶辫触"); @@ -71,4 +75,45 @@ return BaseResponseUtils.buildSuccess(true) ; } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤 + * @param vo + * @return + */ + @GetMapping(path = "/getIssueReports") + public BaseResponse<QueryResultVo<List<VoIssueReport>>> getIssueReports(QoIssueReport vo) { + try { + QueryResultVo<List<VoIssueReport>> res = issueSv.getIssueReports(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇鍐滄埛闂涓婃姤璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + } + + /** + * 閫昏緫鍒犻櫎鍐滄埛闂涓婃姤 + * @param issueReportId + * @return + */ + @PostMapping(path = "deleteIssueReport") + public BaseResponse<Boolean> deleteIssueReport(@RequestParam("issueReportId") Long issueReportId) { + if (issueReportId == null) { + return BaseResponseUtils.buildErrorMsg("鏈�夋嫨瑕佸垹闄ょ殑鍐滄埛闂涓婃姤"); + } + + try { + //鍙栨按鍙D + Integer recordCount = Optional.ofNullable(issueSv.deleteIssueReport(issueReportId)).orElse(0); + if (recordCount == 0) { + return BaseResponseUtils.buildErrorMsg("鍐滄埛闂涓婃姤鍒犻櫎澶辫触"); + } else { + return BaseResponseUtils.buildSuccess(true); + } + } catch (Exception e) { + log.error("鍐滄埛闂涓婃姤鍒犻櫎澶辫触", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java index 44b313d..dc3836c 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java @@ -1,10 +1,17 @@ package com.dy.pipIrrWechat.issue; +import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoSe.SeIssueReportMapper; import com.dy.pipIrrGlobal.pojoSe.SeIssueReport; +import com.dy.pipIrrGlobal.voSe.VoIssueReport; +import com.dy.pipIrrWechat.issue.qo.QoIssueReport; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; /** * @author ZhuBaoMin @@ -28,4 +35,45 @@ seIssueReportMapper.insert(po); return po.getId(); } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤 + * @param queryVo + * @return + */ + public QueryResultVo<List<VoIssueReport>> getIssueReports(QoIssueReport queryVo) { + //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿 + String timeStart = queryVo.getTimeStart(); + String timeStop = queryVo.getTimeStop(); + if (timeStart != null) { + timeStart = timeStart + " 00:00:00"; + queryVo.setTimeStart(timeStart); + } + if (timeStop != null) { + timeStop = timeStop + " 23:59:59"; + queryVo.setTimeStop(timeStop); + } + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = seIssueReportMapper.getIssueReportsCount(params); + QueryResultVo<List<VoIssueReport>> rsVo = new QueryResultVo<>(); + + rsVo.pageSize = queryVo.pageSize; + rsVo.pageCurr = queryVo.pageCurr; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = seIssueReportMapper.getIssueReports(params); + return rsVo; + } + + /** + * 鍒犻櫎鍐滄埛闂涓婃姤 + * @param issueReportId + * @return + */ + public Integer deleteIssueReport(Long issueReportId) { + return seIssueReportMapper.deleteIssueReport(issueReportId); + } + } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/qo/QoIssueReport.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/qo/QoIssueReport.java new file mode 100644 index 0000000..1574948 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/qo/QoIssueReport.java @@ -0,0 +1,45 @@ +package com.dy.pipIrrWechat.issue.qo; + +import com.dy.common.webUtil.QueryConditionVo; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2024-10-30 21:51 + * @LastEditTime 2024-10-30 21:51 + * @Description 鍐滄埛闂涓婃姤鏌ヨ瀵硅薄 + */ + +@Data +public class QoIssueReport extends QueryConditionVo { + + /** + * 鍐滄埛ID + */ + private Long clientId; + + /** + * 鍐滄埛濮撳悕 + */ + private String clientName; + + /** + * 涓婃姤鍐呭 + */ + private String content; + + /** + * 鏌ヨ寮�濮嬫椂闂� + */ + private String timeStart; + + /** + * 鏌ヨ缁撴潫鏃堕棿 + */ + private String timeStop; + + /** + * 鐘舵�� + */ + private Integer state; +} -- Gitblit v1.8.0