吉安感知网项目-后端
xiebin
2026-01-17 c1a0c94ecd6e357b39e2aa8dbde01a25781e5ac3
update-维修计划
3 files modified
49 ■■■■ changed files
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/controller/FwDeviceMaintainPlanController.java 8 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMaintainPlanMapper.xml 35 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/vo/FwDeviceMaintainPlanVO.java 6 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/controller/FwDeviceMaintainPlanController.java
@@ -99,6 +99,14 @@
        if (null == fwDeviceMaintainPlan.getDeviceId()) {
            return R.fail("参数错误");
        }
        long count = fwDeviceMaintainPlanService.count(new QueryWrapper<FwDeviceMaintainPlanEntity>().lambda()
                .eq(FwDeviceMaintainPlanEntity::getDeviceId, fwDeviceMaintainPlan.getDeviceId()));
        if (count > 0) {
            return R.fail("该设备已建立维护计划");
        }
        return R.status(fwDeviceMaintainPlanService.saveOrUpdate(FwDeviceMaintainPlanWrapper.build().entityDTO(fwDeviceMaintainPlan)));
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMaintainPlanMapper.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.sxkj.fw.device.mapper.FwDeviceMaintainPlanMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="fwDeviceMaintainPlanResultMap" type="org.sxkj.fw.device.vo.FwDeviceMaintainPlanVO">
        <result column="id" property="id"/>
@@ -20,6 +19,8 @@
        <result column="purpose" property="purpose"/>
        <result column="charger" property="charger"/>
        <result column="device_create_time" property="createTime"/>
        <result column="maintain_status" property="maintainStatus"/>
        <result column="last_maintain_time" property="lastMaintainTime"/>
    </resultMap>
    <sql id="deviceFields">
@@ -36,9 +37,30 @@
        b.create_time as device_create_time
    </sql>
    <sql id="maintainStatusCalculation">
        CASE
            WHEN (
                SELECT COUNT(1)
                FROM ja_fw_device_maintain_record r
                WHERE r.device_id = a.device_id
                  AND r.is_deleted = 0
                  AND r.maintain_time IS NOT NULL
                  AND (
                      (a.plan_cycle_type = '1' AND FIND_IN_SET(DATE_FORMAT(r.maintain_time, '%m月%d号'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
                      OR (a.plan_cycle_type = '2' AND FIND_IN_SET(DATE_FORMAT(r.maintain_time, '%d号'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
                      OR (a.plan_cycle_type = '3' AND FIND_IN_SET(ELT(DAYOFWEEK(r.maintain_time), '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
                  )
            ) > 0 THEN '已维护'
            ELSE '未维护'
        END AS maintain_status,
        (SELECT MAX(r.maintain_time) FROM ja_fw_device_maintain_record r WHERE r.device_id = a.device_id AND r.is_deleted = 0) AS last_maintain_time
    </sql>
    <select id="getFwDeviceMaintainPlanById" resultMap="fwDeviceMaintainPlanResultMap">
        select
            <include refid="deviceFields"/>,a.*
        <include refid="deviceFields"/>,a.*
        from
        ja_fw_device_maintain_plan a
        left join ja_fw_device b on (a.device_id = b.id)
@@ -53,9 +75,10 @@
    <select id="selectFwDeviceMaintainPlanPage" resultMap="fwDeviceMaintainPlanResultMap">
        select
            <include refid="deviceFields"/>,a.*
        <include refid="deviceFields"/>,a.*,
        <include refid="maintainStatusCalculation"/>
        from
            ja_fw_device_maintain_plan a
        ja_fw_device_maintain_plan a
        left join ja_fw_device b on (a.device_id = b.id)
        <where>
            a.is_deleted = 0
@@ -76,7 +99,7 @@
    <select id="exportFwDeviceMaintainPlan" resultType="org.sxkj.fw.device.excel.FwDeviceMaintainPlanExcel">
        SELECT * FROM ja_fw_device_maintain_plan ${ew.customSqlSegment}
        SELECT *
        FROM ja_fw_device_maintain_plan ${ew.customSqlSegment}
    </select>
</mapper>
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/vo/FwDeviceMaintainPlanVO.java
@@ -118,6 +118,12 @@
    @ApiModelProperty("入库时间")
    private Date createTime;
    @ApiModelProperty(value = "维修状态")
    private String maintainStatus;
    @ApiModelProperty(value = "最后维修时间")
    private String lastMaintainTime;
    @ApiModelProperty(value = "所属部门名称")
    public String getBelongDeptName() {
        if (belongDept == null) {