guoshilong
2023-05-23 1df02b011c951ed5f57e40663e014fd913cbbe20
巡检报表接口
6 files modified
225 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java 16 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java 24 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml 119 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java 4 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java 45 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskReport.java 17 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskController.java
@@ -290,9 +290,19 @@
     */
    @PostMapping("getTaskReport")
    @ApiOperation(value = "巡查任务报表")
    public R getTaskReport(@RequestBody PatrolTaskReport patrolTaskReport) {
        List<PatrolTaskReport> list = patrolTaskService.getTaskReport(patrolTaskReport);
        return R.data(list);
    public R getTaskReport( PatrolTaskReport patrolTaskReport , Query query) {
        IPage<PatrolTaskReport> pageList = patrolTaskService.getTaskReport(Condition.getPage(query),patrolTaskReport);
        return R.data(pageList);
    }
    /**
     * 巡查任务报表
     */
    @PostMapping("getTaskReportDetail")
    @ApiOperation(value = "巡查任务报表")
    public R getTaskReportDetail( PatrolTaskReport patrolTaskReport , Query query) {
        IPage<PatrolTaskReport> pageList = patrolTaskService.getTaskReportDetail(Condition.getPage(query),patrolTaskReport);
        return R.data(pageList);
    }
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.java
@@ -58,16 +58,32 @@
    PatrolTask customizeGetById(@Param("id") String id);
    /**
     * 巡查报表,获取区域
     * 巡查报表,市拿区
     * @param patrolTaskReport
     * @return
     */
    List<PatrolTaskReport> getTaskReportRegion(@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
    List<PatrolTaskReport> getTaskReportRegion(IPage<PatrolTaskReport> page,@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
    /**
     * 巡查报表,获取水库
     * 巡查报表,区拿水库
     * @param patrolTaskReport
     * @return
     */
    List<PatrolTaskReport> getTaskReportReservoir(@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
    List<PatrolTaskReport> getTaskReportReservoir(IPage<PatrolTaskReport> page,@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
    /**
     * 巡查报表,省拿市
     * @param page
     * @param patrolTaskReport
     * @return
     */
    List<PatrolTaskReport> getTaskReportProvince(IPage<PatrolTaskReport> page,@Param("patrolTaskReport") PatrolTaskReport patrolTaskReport);
    /**
     * 巡查报表详情 获取行政区下的水库
     * @param page
     * @param patrolTaskReport
     * @return
     */
    List<PatrolTaskReport> getTaskReportDetailRegion(IPage<PatrolTaskReport> page,@Param("patrolTaskReport")PatrolTaskReport patrolTaskReport);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
@@ -182,41 +182,48 @@
        WHERE T.ID = #{id}
        AND T.IS_DELETED = 0
    </select>
    <!--市查区-->
    <select id="getTaskReportRegion" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
        SELECT
            aab."ad_name" AS adName,
            aab."guid" AS adCode,
            to_char(t.start_time,'yyyy-mm-dd') AS statisticsTime,
            COUNT(*) AS need,
            SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
            SUM(CASE WHEN t.state = 1 THEN 1 ELSE 0 END) AS todo
        aab."ad_name" AS adName,
        aab."guid" AS adCode,
        #{patrolTaskReport.startTime} AS startTime,
        #{patrolTaskReport.endTime} AS endTime,
        COUNT(*) AS need,
        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
        FROM SM_PATROL_TASK t
            LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
            LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
        LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
        LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
        WHERE t.IS_DELETED = 0
        <if test="patrolTaskReport.padCode !=null and patrolTaskReport.padCode !=''">
            AND aab."p_ad_code" = #{patrolTaskReport.padCode}
        </if>
        <if test="patrolTaskReport.statisticsTime !=null and patrolTaskReport.statisticsTime !=''">
            AND to_char(t.start_time,'yyyy-mm-dd') = #{patrolTaskReport.statisticsTime}
        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
        </if>
        GROUP BY (aab."ad_name",aab."guid",to_char(t.start_time,'yyyy-mm-dd'))
        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
        </if>
        GROUP BY (aab."ad_name",aab."guid")
    </select>
    <!--区查水库-->
    <select id="getTaskReportReservoir" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
        SELECT
            arb."guid" AS reservoirId,
            arb."name" AS reservoirName,
            aab."guid" AS adCode,
            aab."ad_name" AS adName,
            COUNT(*) AS need,
            SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
            SUM(CASE WHEN t.state = 1 THEN 1 ELSE 0 END) AS todo
        arb."guid" AS reservoirId,
        arb."name" AS reservoirName,
        aab."guid" AS adCode,
        aab."ad_name" AS adName,
        #{patrolTaskReport.startTime} AS startTime,
        #{patrolTaskReport.endTime} AS endTime,
        COUNT(*) AS need,
        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
        FROM SK002.SM_PATROL_TASK t
            LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
            LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
        LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
        LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
        WHERE
            t.IS_DELETED = 0
        t.IS_DELETED = 0
        <if test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !=''">
            AND aab."ad_code" = #{patrolTaskReport.adCode}
        </if>
@@ -228,5 +235,73 @@
        </if>
        GROUP BY (arb."guid",arb."name",aab."guid",aab."ad_name")
    </select>
    <!--省查市-->
    <select id="getTaskReportProvince" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
        SELECT
        a."p_ad_code" adCode,
        a."p_ad_name" adName,
        sum(a.need) AS need,
        sum(a.finish) AS finish,
        sum(a.todo) AS todo,
        #{patrolTaskReport.startTime} AS startTime,
        #{patrolTaskReport.endTime} AS endTime
        FROM (
            SELECT
                aab."p_ad_code",aab."p_ad_name",
                COUNT(*) AS need,
                SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
                SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
            FROM SK002.SM_PATROL_TASK t
                LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = t.project_id
                LEFT JOIN SJZT_MD."att_ad_base" aab on aab."guid" = CONCAT(arb."ad_guid",'000000')
                where t.is_deleted = 0 AND aab."p_ad_code" != '420000000000'
                <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
                    AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
                </if>
                <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
                    AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
                </if>
                GROUP BY (aab."p_ad_code",aab."p_ad_name")
            ) A
        GROUP BY (a."p_ad_code",a."p_ad_name") order by a."p_ad_code"
    </select>
    <!--获取市下的所有水库巡查-->
    <select id="getTaskReportDetailRegion" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
        SELECT
            arb."guid" AS reservoirId,
            arb."name" AS reservoirName,
            aab."ad_name" AS adName,
            aab."guid" AS adCode,
            t.start_time,
            u.real_name patrolUserName,
            t.state,
            (
                CASE t.state
                WHEN '1' THEN '未完成'
                WHEN '2' THEN '进行中'
                ELSE '已完成'
                END
            )stateName
        FROM SM_PATROL_TASK T
            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = t.project_id
            LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = CONCAT(arb."ad_guid",'000000')
            LEFT JOIN BLADE_USER u ON u.id = t.to_user_id
        WHERE T.IS_DELETED = 0
        <if test="patrolTaskReport.adCode !=null and patrolTaskReport.adCode !=''">
            AND aab."guid" LIKE CONCAT('%',#{patrolTaskReport.adCode},'%')
        </if>
        <if test="patrolTaskReport.reservoirName !=null and patrolTaskReport.reservoirName !=''">
            AND arb."name" LIKE CONCAT('%',#{patrolTaskReport.reservoirName},'%')
        </if>
        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
        </if>
        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
        </if>
        <if test="patrolTaskReport.reservoirId !=null and patrolTaskReport.reservoirId !=''">
            AND arb."guid" =  #{patrolTaskReport.reservoirId}
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/IPatrolTaskService.java
@@ -71,5 +71,7 @@
     * @param patrolTaskReport
     * @return
     */
    List<PatrolTaskReport> getTaskReport(PatrolTaskReport patrolTaskReport);
    IPage<PatrolTaskReport> getTaskReport(IPage<PatrolTaskReport> page,PatrolTaskReport patrolTaskReport);
    IPage<PatrolTaskReport> getTaskReportDetail(IPage<PatrolTaskReport> page, PatrolTaskReport patrolTaskReport);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
@@ -33,10 +33,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.net.http.HttpRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
@@ -212,14 +209,40 @@
    }
    @Override
    public List<PatrolTaskReport> getTaskReport(PatrolTaskReport patrolTaskReport) {
        if (Func.equals(patrolTaskReport.getRegionFlag(),"2")){
            return baseMapper.getTaskReportReservoir(patrolTaskReport);
        }else {
            return baseMapper.getTaskReportRegion(patrolTaskReport);
    public IPage<PatrolTaskReport> getTaskReport(IPage<PatrolTaskReport> page,PatrolTaskReport patrolTaskReport) {
        List<PatrolTaskReport> list = new ArrayList();
        if (Func.equals(patrolTaskReport.getRegionFlag(),"0")){
            //省  返回市
            list =  baseMapper.getTaskReportProvince(page,patrolTaskReport);
        }else if (Func.equals(patrolTaskReport.getRegionFlag(),"1")){
            //市 返回区
            list = baseMapper.getTaskReportRegion(page,patrolTaskReport);
        }else if (Func.equals(patrolTaskReport.getRegionFlag(),"2")){
            //区 返回水库
            list = baseMapper.getTaskReportReservoir(page,patrolTaskReport);
        }
        return page.setRecords(list);
    }
    @Override
    public IPage<PatrolTaskReport> getTaskReportDetail(IPage<PatrolTaskReport> page, PatrolTaskReport patrolTaskReport) {
        List<PatrolTaskReport> list = new ArrayList();
        if (Func.isNotEmpty(patrolTaskReport.getReservoirId())){
            //获取该水库的巡查
            list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport);
        }else {
            String code = patrolTaskReport.getAdCode();
            if (code.substring(0,4).indexOf("00") > -1) {
                //前4位包含00 =》省
                patrolTaskReport.setAdCode(code.substring(0,2));
            } else if (code.substring(0,6).indexOf("00") > -1) {
                //前六位包含00 =》市
                patrolTaskReport.setAdCode(code.substring(0,4));
            }
            list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport);
        }
        return page.setRecords(list);
    }
    public void saveReport(PatrolTask patrolTask){
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/vo/PatrolTaskReport.java
@@ -59,7 +59,7 @@
    private String todo;
    /**
     * 0、省;1、市;2、区
     * 0、省;1、市;2、区  3、水库
     */
    private String regionFlag;
@@ -72,4 +72,19 @@
     * 结束时间
     */
    private String endTime;
    /**
     * 巡查责任人名字
     */
    private String patrolUserName;
    /**
     * 任务状态名
     */
    private String stateName;
    /**
     * 任务状态
     */
    private String state;
}