liurunyu
2024-11-12 471c449df219f2be0a67dadf9ea2946cc3edfce7
Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
7个文件已修改
1个文件已添加
274 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeIssueReportMapper.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueCtrl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/dto/DtoDeleteParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());