pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeIssueReportMapper.java
@@ -2,7 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport; import com.dy.pipIrrGlobal.voOp.VoIssueReport; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; /** * @author ZhuBaoMin @@ -24,4 +29,38 @@ int updateByPrimaryKeySelective(OpeIssueReport record); int updateByPrimaryKey(OpeIssueReport record); /** * 根据指定条件获取巡检员问题上报数量 * @param params * @return */ Long getIssueReportsCount(Map<?, ?> params); /** * 根据指定条件获取巡检员问题上报 * @param params * @return */ List<VoIssueReport> getIssueReports(Map<?, ?> params); /** * 根据上报ID及巡检员ID获取未删除的上报,删除上报判断使用 * @param issueReportId * @param inspectorId * @return */ OpeIssueReport getReport(@Param("issueReportId")Long issueReportId, @Param("inspectorId")Long inspectorId); /** * 逻辑删除一个农户问题上报 * @param issueReportId * @return */ /** * 逻辑删除一个巡检员问题上报 * @param issueReportId * @return */ Integer deleteIssueReport(Long issueReportId); } pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
@@ -5,9 +5,9 @@ #name: ym type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://8.130.130.233:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull # url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: dysql,;.abc!@# druid: pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -77,7 +77,7 @@ pipIrr: global: dev: true #是否开发阶段,true或false dev: false #是否开发阶段,true或false dsName: ym #开发阶段,设置临时的数据库名称 nginx: webPort: 54321 @@ -329,7 +329,7 @@ #监测控制模块回调地址 rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive" #rtu远程升级模块回调地址 ugCallbackUrl_rm: "http://127.0.0.1:8081/remote/rtuUpgradeStateReceiver/receive ugCallbackUrl_rm: "http://127.0.0.1:8081/remote/rtuUpgradeStateReceiver/receive" #微信小程序回调地址 rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive" pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml
@@ -170,4 +170,96 @@ `state` = #{state,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} </update> <!--根据指定条件获取巡检员问题上报数量--> <select id="getIssueReportsCount" resultType="java.lang.Long"> SELECT COUNT(*) AS recordCount FROM ope_issue_report rpt LEFT JOIN ba_user us ON us.id = rpt.inspector_id LEFT JOIN ope_report_reply rpy ON rpy.report_id = rpt.id <where> AND rpt.state != 3 <if test="inspectorId != null"> AND rpt.inspector_id = #{inspectorId} </if> <if test="inspectorName != null and inspectorName != ''"> AND us.name like CONCAT('%', #{inspectorName}, '%') </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.voOp.VoIssueReport"> SELECT rpt.id AS issueReportId, us.name AS inspectorName, rpt.phone, rpt.report_time AS reportTime, rpt.content, rpt.images, rpt.audios, rpt.videos, rpy.reply_time AS replyTime, rpt.state AS stateId, CASE WHEN rpt.state = 1 THEN '未受理' WHEN rpt.state = 2 THEN '已受理' END AS state FROM ope_issue_report rpt LEFT JOIN ba_user us ON us.id = rpt.inspector_id LEFT JOIN ope_report_reply rpy ON rpy.report_id = rpt.id <where> AND rpt.state != 3 <if test="inspectorId != null"> AND rpt.inspector_id = #{inspectorId} </if> <if test="inspectorName != null and inspectorName != ''"> AND us.name like CONCAT('%', #{inspectorName}, '%') </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> <!--根据上报ID及巡检员ID获取未删除的上报,删除上报判断使用--> <select id="getReport" resultType="com.dy.pipIrrGlobal.pojoOp.OpeIssueReport"> SELECT * FROM ope_issue_report WHERE state != 3 AND id = #{issueReportId} AND inspector_id = #{inspectorId} </select> <!--逻辑删除一个农户问题上报--> <update id="deleteIssueReport"> UPDATE ope_issue_report SET state = 3 WHERE id = #{issueReportId} </update> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueCtrl.java
@@ -3,17 +3,19 @@ import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrApp.issue.dto.DtoDeleteParam; import com.dy.pipIrrApp.issue.qo.QoIssueReport; import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport; import com.dy.pipIrrGlobal.voOp.VoIssueReport; 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.util.List; import java.util.Objects; /** @@ -52,4 +54,42 @@ return BaseResponseUtils.buildSuccess(true) ; } /** * 获取巡检员问题上报记录 * @param vo * @return */ @GetMapping(path = "/getIssueReports") @SsoAop() 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 po * @param bindingResult * @return */ @PostMapping(path = "deleteIssueReport") public BaseResponse<Boolean> deleteIssueReport(@RequestBody @Valid DtoDeleteParam po, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } String result = issueSv.deleteIssueReport(po); if(!result.equals("success")) { return BaseResponseUtils.buildErrorMsg(result); } return BaseResponseUtils.buildSuccess(); } } pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java
@@ -1,12 +1,19 @@ package com.dy.pipIrrApp.issue; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrApp.issue.dto.DtoDeleteParam; import com.dy.pipIrrApp.issue.qo.QoIssueReport; import com.dy.pipIrrGlobal.daoOp.OpeIssueReportMapper; import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport; import com.dy.pipIrrGlobal.voOp.VoIssueReport; 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.Date; import java.util.List; import java.util.Map; /** * @author ZhuBaoMin @@ -39,13 +46,53 @@ } /** * 添加巡检员问题上报信息 * 根据条件获取巡检员问题上报记录 * @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 = opeIssueReportMapper.getIssueReportsCount(params); QueryResultVo<List<VoIssueReport>> rsVo = new QueryResultVo<>(); rsVo.pageSize = queryVo.pageSize; rsVo.pageCurr = queryVo.pageCurr; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = opeIssueReportMapper.getIssueReports(params); return rsVo; } /** * 逻辑删除巡检员问题上报,删除前先判断要删除的上报是否存在 * @param po * @return */ //public Long insertIssueReport(OpeIssueReport po) { // opeIssueReportMapper.insert(po); // return po.getId(); //} public String deleteIssueReport(DtoDeleteParam po) { // 根据上报ID及巡检员ID获取未删除的上报,删除上报判断使用 OpeIssueReport opeIssueReport = opeIssueReportMapper.getReport(po.getIssueReportId(), po.getInspectorId()); if(opeIssueReport == null) { return "您要删除的问题上报不存在"; } if(opeIssueReportMapper.deleteIssueReport(po.getIssueReportId()) == 0) { return "巡检员问题上报删除失败"; } return "success"; } } pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/dto/DtoDeleteParam.java
New file @@ -0,0 +1,28 @@ package com.dy.pipIrrApp.issue.dto; import jakarta.validation.constraints.NotNull; import lombok.Data; /** * @author ZhuBaoMin * @date 2024-11-12 16:18 * @LastEditTime 2024-11-12 16:18 * @Description 巡检员问题上报删除参数对象 */ @Data public class DtoDeleteParam { public static final long serialVersionUID = 202411121619001L; /** * 巡检员问题上报ID */ @NotNull(message = "请选择要删除的问题上报") private Long issueReportId; /** * 巡检员ID */ @NotNull(message = "巡检员编号不能为空") private Long inspectorId; } pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
@@ -1,6 +1,5 @@ package com.dy.pipIrrWechat.issue; import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; @@ -45,7 +44,6 @@ */ @PostMapping(path = "addIssueReport") @Transactional(rollbackFor = Exception.class) @SsoAop() public BaseResponse<Boolean> addIssueReport(@RequestBody @Valid SeIssueReport po, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());