| fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SnapReplyService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-web/src/main/java/com/fzzy/appwx/controller/WeChatController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-web/src/main/java/com/fzzy/appwx/manager/WeChatManager.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-web/src/main/java/com/fzzy/appwx/param/WeChatBaseParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-web/src/main/resources/templates/wx/warn-detail.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-web/src/main/resources/templates/wx/warn-list.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SnapReplyService.java
@@ -42,11 +42,12 @@ } //æ¯å¦å¤çæ£ç´¢ if (StringUtils.isNotBlank(param.getName())) { queryWrapper.eq("is_handle", param.getName()); if (StringUtils.isNotBlank(param.getKey())) { queryWrapper.eq("is_handle", param.getKey()); } queryWrapper.orderByDesc("create_time"); queryWrapper.orderByDesc("id"); snapReplyMapper.selectPage(page, queryWrapper); } fzzy-igdss-web/src/main/java/com/fzzy/appwx/controller/WeChatController.java
@@ -1,11 +1,13 @@ package com.fzzy.appwx.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.appwx.constant.WeChatConst; import com.fzzy.appwx.manager.WeChatManager; import com.fzzy.appwx.param.WeChatBaseParam; import com.fzzy.igds.data.ConfigData; import com.fzzy.igds.data.PageResponse; import com.fzzy.igds.domain.SnapReply; import com.ruoyi.common.core.domain.entity.SysUser; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -43,7 +45,7 @@ if (StringUtils.isEmpty(tag)) { tag = "home"; } // String newUrl = WeChatConst.USER_AUTH_UPR .replace("APPID", configData.getWxAppId()) .replace("REDIRECT_URI", URLEncoder.encode(url, "UTF-8")) @@ -99,7 +101,7 @@ } mv.setViewName("/wx/" + state); // //æµè¯ä»£ç å¼å¯ //// //æµè¯ä»£ç å¼å¯ // String openid = "testOpenId"; // mv.addObject("openid", openid); // SysUser user = weChatManager.getUser(openid); @@ -108,7 +110,11 @@ // userName = user.getUserName(); // } // } // //æµè¯ä»£ç ç»æ // // if (StringUtils.isNotEmpty(userName)) { // mv.addObject("userName", userName); // } //// //æµè¯ä»£ç ç»æ return mv; } @@ -154,4 +160,45 @@ return weChatManager.unBandOpenId(param); } /** * è·ååºå ¥åºåè¦æ¹å¤åé¡µæ°æ® * * @param param * @author sgj * @since 2026/04/11 */ @PostMapping(value = "/getSnapReplyPage") @ResponseBody public PageResponse<Page<SnapReply>> getSnapReplyPage(@RequestBody WeChatBaseParam param) { return weChatManager.getSnapReplyPage(param); } /** * æ ¹æ®idè·ååè¦æ¹å¤è¯¦ç»å 容 * * @param param * @author sgj * @since 2026/04/11 */ @PostMapping(value = "/getSnapReplyInfoById") @ResponseBody public PageResponse<SnapReply> getSnapReplyInfoById(@RequestBody WeChatBaseParam param) { return weChatManager.getSnapReplyInfoById(param); } /** * æ ¹æ®idè·ååè¦æ¹å¤è¯¦ç»å 容 * * @param param * @author sgj * @since 2026/04/11 */ @PostMapping(value = "/handleSnapReply") @ResponseBody public PageResponse<String> handleSnapReply(@RequestBody WeChatBaseParam param) { return weChatManager.handleSnapReply(param); } } fzzy-igdss-web/src/main/java/com/fzzy/appwx/manager/WeChatManager.java
@@ -1,14 +1,22 @@ package com.fzzy.appwx.manager; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.appwx.param.WeChatBaseParam; import com.fzzy.appwx.util.WeChatUtil; import com.fzzy.igds.constant.Constant; import com.fzzy.igds.constant.RespCodeEnum; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.data.PageResponse; import com.fzzy.igds.domain.SnapReply; import com.fzzy.igds.service.SnapReplyService; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.service.ISysUserService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Date; @Component public class WeChatManager { @@ -17,6 +25,8 @@ private WeChatUtil weChatUtil; @Autowired private ISysUserService sysUserService; @Resource private SnapReplyService snapReplyService; public String getOpenid(String code) { @@ -150,4 +160,87 @@ } public PageResponse<Page<SnapReply>> getSnapReplyPage(WeChatBaseParam param) { if (null == param) { return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_1007.getCode(), "åæ°ä¸å®æ´ï¼è¯·æ ¸æ¥"); } SysUser user; //å¾®ä¿¡å ¬ä¼å· if (StringUtils.isEmpty(param.getOpenid())) { return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_1007.getCode(), "åæ°ä¸å®æ´ï¼è¯·æ ¸æ¥"); } //æ ¹æ®openidæ¥è¯¢ç¨æ·æ¯å¦å·²ç»ç»å® user = sysUserService.selectUserByOpenId(param.getOpenid()); if (user == null) { return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_1006.getCode(), "å°æªç»å®æå¡ï¼è¯·å ç»å®ï¼"); } //åé¡µæ¼æ¥ Page<SnapReply> page = new Page<>(param.getPageNo(), param.getPageSize()); //æ¥è¯¢åæ°ç»è£ IgdsBaseParam queryParam = new IgdsBaseParam(); queryParam.setDeptId(String.valueOf(user.getDeptId())); queryParam.setCompanyId(user.getCompanyId()); queryParam.setKey(Constant.YN_N); snapReplyService.listPage(page, queryParam); return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_0000.getCode(), "è¯·æ±æå", page); } public PageResponse<SnapReply> getSnapReplyInfoById(WeChatBaseParam param) { //夿忰 if (null == param || StringUtils.isEmpty(param.getId())) { return new PageResponse<SnapReply>(RespCodeEnum.CODE_1007.getCode(), "åæ°ä¸å®æ´ï¼è¯·æ ¸æ¥"); } SnapReply warn = snapReplyService.getById(param.getId()); if (warn == null) { return new PageResponse<SnapReply>(RespCodeEnum.CODE_1007.getCode(), "æªè·åå°è¯¥è¦åä¿¡æ¯ï¼"); } return new PageResponse<SnapReply>(RespCodeEnum.CODE_0000.getCode(), "è¯·æ±æå", warn); } public PageResponse<String> handleSnapReply(WeChatBaseParam param) { //夿忰 if (null == param || StringUtils.isEmpty(param.getId())) { return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "åæ°ä¸å®æ´ï¼è¯·æ ¸æ¥"); } //å¤çæ¶é´ Date date = new Date(); // if(StringUtils.isEmpty(companyId)){ // companyId = ShiroUtils.getLoginUserCompanyId(); // } String info = (String) param.getRemark(); String id = param.getId(); String userName = param.getUserName(); //åè¦å¤ç SnapReply warn = snapReplyService.getById(id); if(Constant.YN_N.equals(warn.getIsHandle())){ return new PageResponse<String>(RespCodeEnum.CODE_1008.getCode(), "æ¹åè¦å·²å¤çï¼æ éé夿¹å¤ï¼"); } warn.setId(id); warn.setUpdateBy(userName); warn.setUpdateTime(date); warn.setIsHandle(Constant.YN_Y); warn.setReplyText(info); warn.setDays(param.getDays()); snapReplyService.updateData(warn); return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "è¯·æ±æå"); } } fzzy-igdss-web/src/main/java/com/fzzy/appwx/param/WeChatBaseParam.java
@@ -32,4 +32,9 @@ */ private String id; private String remark; private Integer days; } fzzy-igdss-web/src/main/resources/templates/wx/warn-detail.html
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,216 @@ <!DOCTYPE html> <html lang="zh-cn" xmlns:th=http://www.thymeleaf.org> <head> <meta charset="utf-8"> <title>è¦å详ç»</title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/> <link rel="stylesheet" th:href="@{/ajax/libs/mui/css/mui.min.css}"> <style> .mui-content { margin: 0 5px; } .mui-table-view { position: unset; margin-top: 10px; border-radius: 6px; } .mui-table-view-chevron .mui-table-view-cell { padding-right: 10px; } .mui-table-view-cell { padding: 10px 10px; } .mui-table-view-cell p { font-size: 17px; } .mui-ellipsis { margin-top: 5px; margin-bottom: 10px; font-size: 18px; } .first { font-size: 15px; float: right; } .sec { border-radius: 6px; margin-top: 10px; margin-bottom: 10px; list-style: none; background: #FFFFFF; } .four { padding: 7px 10px; } .sec-2 { margin-top: 10px; margin-bottom: 10px; font-size: 18px; } input[type=color], input[type=date], input[type=datetime-local], input[type=datetime], input[type=email], input[type=month], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], input[type=week], select, textarea { border-radius: 4px; padding: 10px 10px; margin-bottom: unset; background-color: #eee; border: 1px solid #eee; } .title { text-align: center; background: #8bd2f5; border-radius: 6px 6px 0 0; font-size: 15px; } .mui-btn { font-size: 22px; padding: 6px 20px; border-radius: 6px; } .mui-button-row { margin-bottom: 10px; } .head { margin-top: 44px; } </style> </head> <body> <div id="head"> <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h1 class="mui-title">è¦å详ç»</h1> </header> </div> <div id="content" class="mui-content head"> <div> <ul class="mui-table-view mui-table-view-chevron"> <div class="title">è¦åä¿¡æ¯</div> <li id="handle1" class="mui-table-view-cell"> <!-- <h4 class="mui-ellipsis">髿¸©è¦å<span class="first">æªå¤ç</span></h4>--> <!-- <h5 class="mui-ellipsis">温湿度#1</h5>--> <!-- <h5 class="mui-ellipsis">2020-10-10 10:10:10</h5>--> <!-- <p >æ¨å¥½ï¼ä½ çè®¾å¤æ¸©æ¹¿åº¦#1äº2020-10-10 10:10:10触å髿¸©åè¦ï¼è¯·åæ¶å¤çï¼</p>--> </li> </ul> </div> <div class="sec"> <div class="title">å¤çä¿¡æ¯</div> <div id="handle2" class="four"> <!-- <h5 class="sec-2">å¼ ä¸</h5>--> <!-- <h5 class="sec-2">2020-10-10 10:10:10</h5>--> <!-- <textarea id="textarea" rows="5" placeholder="å¤ç说æ"></textarea>--> </div> </div> <div class="mui-button-row"> <button id="btn1" type="button" class="mui-btn mui-btn-primary" onclick="toHandle()">å¤ç</button> <button type="button" class="mui-btn mui-btn-danger" onclick="toPage()">è¿å</button> </div> </div> <script th:src="@{/js/jquery.min.js}"></script> <script th:src="@{/wx/wx-common.js}"></script> <script th:src="@{/ajax/libs/mui/js/mui.js}"></script> <script th:inline="javascript"> var warnId = [[${id}]]; //设å¤id var companyId = [[${companyId}]]; //ç»ç»ç¼ç var userName = [[${userName}]]; //å½åæä½äººè´¦å· var loginType = [[${loginType}]]; //ç»å½æ¹å¼ $(function () { mui.init(); try { getDeviceList(); } catch (e) { mui.alert(e, 'æç¤º', ["ç¡®å®"], function () { }, "div"); } // getDeviceList() }); //è·åç¨æ·è®¾å¤ä¿¡æ¯ function getDeviceList() { var data = { "id": warnId, }; wxCommon.postJson("../wx/getSnapReplyInfoById", data, function (result) { if (result.code == "0000") { initData(result.data); } else { $("#listData").html(''); mui.alert(result.msg, 'æç¤º', ["ç¡®å®"], function () { }, "div"); } }); } //åå§å页颿°æ® function initData(data) { var html1 = ''; var html2 = ''; html1 += '<h4 class="mui-ellipsis">' + data.id; html1 += '<span class="first">' + data.deptId + '</span></h4>'; html1 += '<h5 class="mui-ellipsis">' + data.createTime + '</h5>'; html1 += '<p>' + data.content + '</p>'; //æªå¤ç if(data.isHandle && data.isHandle == "N"){ html2 += '<input id="days" type="number" min="1" step="1" placeholder="æªæ¥æ£å¸¸å¤©æ°" style="width: 100%; margin-top: 10px;margin-bottom: 10px" oninput="this.value = this.value.replace(/\\D|^0/g, \'\')" />'; html2 += '<textarea id="remark" rows="5" placeholder="å¤ç说æ"></textarea>'; }else{ html2 += '<p>' + 'æªæ¥æ£å¸¸å¤©æ°ï¼'+ data.days + '</p>'; html2 += '<p>' + 'å¤ç说æï¼'+ data.remark + '</p>'; } $("#handle1").html(html1); $("#handle2").html(html2); } //è¦åå¤çæäº¤ function toHandle() { var remarkDetail = $("#remark").val(); var days = $("#days").val(); var data = { "id": warnId, "userName": userName, "remark": remarkDetail, "days": days }; wxCommon.postJson("../wx/handleSnapReply", data, function (result) { if (result.code == "0000") { mui.toast("å¤çæåï¼"); toPage(); } else { mui.alert(result.msg, 'æç¤º', ["ç¡®å®"], function () { }, "div"); } }); } //è¿åè¦æ¥å表 function toPage() { location.reload(); // è¿åä¸ä¸é¡µ // 微信 H5 ç¯å¢ï¼ä½¿ç¨ localStorage æ è®° localStorage.setItem('needRefresh', 'true'); mui.back(); } </script> </body> </html> fzzy-igdss-web/src/main/resources/templates/wx/warn-list.html
@@ -72,7 +72,6 @@ <script th:src="@{/wx/wx-common.js}"></script> <script th:src="@{/ajax/libs/mui/js/mui.js}"></script> <script th:inline="javascript"> var loginType = [[${loginType}]]; //ç»å½æ¹å¼ var userName = [[${userName}]]; openid = [[${openid}]]; //ç¨æ·çopenid @@ -82,6 +81,17 @@ var total; var pageCount; //æ»é¡µç æ° var warnList; //æ¯é¡µæ°æ® $(function () { // çå¬é¡µé¢æ¾ç¤ºäºä»¶ï¼å¾®ä¿¡ H5 ç¯å¢ï¼ window.addEventListener('pageshow', function() { if (localStorage.getItem('needRefresh') === 'true') { localStorage.removeItem('needRefresh'); refreshData(); } }); }); mui.init({ pullRefresh: { @@ -101,12 +111,22 @@ } }); //åå§åºå è½½é¡µé¢æ°æ® function pullupRefresh() { $("#pullrefresh").addClass("head1"); //请æ±è·åæ°æ® getWarnData(); } function refreshData() { // éç½®å页忰 pageNo = 1; // è°ç¨æµè§å¨å·æ° location.reload(); } //åå§å页颿°æ® function initData() { @@ -123,15 +143,10 @@ li.className = 'mui-table-view-cell'; var html = ''; html += '<div onclick="toWarnDetail(\'' + warnList[i].id +'\',\'' + warnList[i].companyId + '\')" class="mui-table">'; html += '<div class="mui-table-cell mui-col-xs-10"><h4 class="mui-ellipsis">' + warnList[i].warnTitle; // if(warnList[i].warnStatus == '10' || warnList[i].warnStatus == '20'){ // html += '<span class="first1">' + warnList[i].warnStatusName; // }else { // html += '<span class="first2">' + warnList[i].warnStatusName; // } html += '</span></h4><h5>æå±åºåºï¼<span>' + warnList[i].deviceName; html += '</span></h5><h5>è¦åæ¶é´ï¼<span>' + warnList[i].warnTime; html += '</span></h5><p class="mui-h6 mui-ellipsis">è¦å说æï¼' +warnList[i].warnInfo; html += '<div class="mui-table-cell mui-col-xs-10"><h4 class="mui-ellipsis">' + warnList[i].id; html += '</span></h4><h5>æå±åºåºï¼<span>' + warnList[i].deptId; html += '</span></h5><h5>è¦åæ¶é´ï¼<span>' + warnList[i].createTime; html += '</span></h5><p class="mui-h6 mui-ellipsis">è¦å说æï¼' +warnList[i].content; li.innerHTML = html; table.appendChild(li); } @@ -140,26 +155,14 @@ //请æ±è·åè¦åæ°æ® function getWarnData() { var data = JSON.stringify({ "interfaceId": "app_1008", "sign": "01", "outId": "01-01", "reqDateTime": new Date(), "data": { var data = { "userName": userName, "loginType": loginType, "openid": openid, "pageSize": pageSize, "pageNo": pageNo } }); $.ajax({ type: "POST", url: "../wx/gateway", dataType: "json", contentType: "application/json;charset=UTF-8", data: data, success: function (result) { }; wxCommon.postJson("../wx/getSnapReplyPage", data,function (result) { if (result.code == "0000") { warnList = null; warnList = result.data.records; @@ -167,7 +170,6 @@ initData(); } else { mui.toast("æ²¡ææ´å¤æ°æ®äºï¼"); } } }); }