xiangpei
2024-09-09 f5e0ae6c3e2d4b7367389315bf24596446280430
工单详情:工单信息、报备信息
13个文件已修改
1个文件已添加
228 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderDetailVO.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/ReportService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/application-dev.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
@@ -24,7 +24,7 @@
    /**
     * 工单号
     */
    private String workOrderNo;
    private String keyword;
    /**
     * 运维处理时间
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderDetailVO.java
New file
@@ -0,0 +1,79 @@
package com.ycl.platform.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.base.AbsVo;
import com.ycl.platform.domain.entity.WorkOrder;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import org.springframework.lang.NonNull;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
 * 工单展示
 *
 * @author xp
 * @since 2024-03-05
 */
@Data
public class WorkOrderDetailVO extends AbsVo {
    /** 工单号 */
    private String workOrderNo;
    /** 状态 */
    private String status;
    /** 运维单位 */
    private Integer unitId;
    private String unitName;
    private String unitContact;
    private String unitContactPhone;
    /** 工单来源/设备名称 */
    private String source;
    /**
     * 设备编号
     */
    private String serialNumber;
    /**
     * 处理时限
     */
    private Integer processingPeriod;
    /**
     * 是否重点点位
     */
    private Boolean important;
    /** 故障类型 */
    private List<String> errorTypeList;
    /** 故障类型 */
    private String errorType;
    /** 0未超时 1超时 */
    private Integer overtime;
    /** 下发时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date distributeTime;
    /**
     * 是否报备
     */
    private Boolean hasReport;
    public static WorkOrderDetailVO getVoByEntity(@NonNull WorkOrder entity, WorkOrderDetailVO vo) {
        if(vo == null) {
            vo = new WorkOrderDetailVO();
        }
        BeanUtils.copyProperties(entity, vo);
        return vo;
    }
}
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
@@ -7,6 +7,8 @@
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import enumeration.general.WorkOrderStatusEnum;
import org.springframework.lang.NonNull;
import org.springframework.beans.BeanUtils;
import io.swagger.annotations.ApiModel;
@@ -27,7 +29,7 @@
    private String workOrderNo;
    /** 状态 */
    private String status;
    private WorkOrderStatusEnum status;
    /** 运维单位 */
    private Integer unitId;
ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java
@@ -127,4 +127,11 @@
        ExcelUtil<ReportVO> util = new ExcelUtil<>(ReportVO.class);
        util.exportExcel(response, list, "运维单位");
    }
    @GetMapping("/list/{gb}")
    @ApiOperation(value = "根据国标码查报备", notes = "根据国标码查报备")
    public Result getListByGb(@PathVariable("gb") String gb)
    {
        return reportService.getListByGb(gb);
    }
}
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -143,4 +143,13 @@
    public Result list() {
        return workOrderService.all();
    }
    @GetMapping("/detail/info/{workOrderNo}")
    @ApiOperation(value = "详情", notes = "详情")
    @PreAuthorize("@ss.hasPermi('work:order:detail')")
    public Result detailByNo(@PathVariable("workOrderNo") String workOrderNo) {
        return workOrderService.detailByNo(workOrderNo);
    }
}
ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java
@@ -49,4 +49,12 @@
     * @return
     */
    List<Report> getTogether(@Param("pid") String pid);
    /**
     * 国标码查设备
     *
     * @param gb
     * @return
     */
    List<ReportVO> getListByGb(@Param("gb") String gb);
}
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
@@ -5,6 +5,7 @@
import com.ycl.platform.domain.entity.WorkOrder;
import com.ycl.platform.domain.query.*;
import com.ycl.platform.domain.vo.DeviceInfoVO;
import com.ycl.platform.domain.vo.WorkOrderDetailVO;
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.YwPointJobVO;
import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
@@ -92,4 +93,12 @@
     * @return
     */
    List<WorkOrder> getNotFinishedWorkOrders(@Param("list") List<String> serialNumberList);
    /**
     * 工单号查详情
     *
     * @param workOrderNo
     * @return
     */
    WorkOrderDetailVO detailByNo(@Param("workOrderNo") String workOrderNo);
}
ycl-server/src/main/java/com/ycl/platform/service/ReportService.java
@@ -109,4 +109,12 @@
     * @return
     */
    Result getTogether(String pid);
    /**
     * 国标码查报备记录
     *
     * @param gb
     * @return
     */
    Result getListByGb(String gb);
}
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -216,4 +216,12 @@
     * @return
     */
    Result processImg(String workOrderNo);
    /**
     * 工单详情
     *
     * @param workOrderNo
     * @return
     */
    Result detailByNo(String workOrderNo);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.platform.domain.dto.ReportImportDTO;
import com.ycl.platform.domain.entity.*;
@@ -386,4 +387,18 @@
        }
        return Result.ok("操作成功");
    }
    @Override
    public Result getListByGb(String gb) {
        List<ReportVO> list = baseMapper.getListByGb(gb);
        for (ReportVO report : list) {
            List<ReportErrorType> errors = new LambdaQueryChainWrapper<>(reportErrorTypeService.getBaseMapper())
                    .eq(ReportErrorType::getReportId, report.getId())
                    .orderByDesc(ReportErrorType::getCreateTime)
                    .list();
            String err = errors.stream().map(ReportErrorType::getErrorType).collect(Collectors.joining(","));
            report.setErrorType(err);
        }
        return Result.ok().data(list);
    }
}
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -782,4 +782,15 @@
        }
        return Result.ok().data(process);
    }
    @Override
    public Result detailByNo(String workOrderNo) {
        WorkOrderDetailVO workOrder = baseMapper.detailByNo(workOrderNo);
        // 是否报备
        boolean hasReport = new LambdaQueryChainWrapper<>(reportMapper)
                .eq(Report::getSerialNumber, workOrder.getSerialNumber())
                .exists();
        workOrder.setHasReport(hasReport);
        return Result.ok().data(workOrder);
    }
}
ycl-server/src/main/resources/application-dev.yml
@@ -37,9 +37,9 @@
spring:
  # 数据源配置
  datasource:
    url: jdbc:mysql://localhost:3306/zgyw?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true&allowPublicKeyRetrieval=true
    url: jdbc:mysql://101.35.247.188:3306/zgyw?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true&allowPublicKeyRetrieval=true
    username: root
    password: 1234
    password: ycl@202466
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml
@@ -61,6 +61,34 @@
        ORDER BY r.update_time DESC
    </select>
    <select id="getListByGb"  resultType="com.ycl.platform.domain.vo.ReportVO">
        SELECT
           DISTINCT
            r.id,
            r.report_materials,
            r.create_time,
            r.report_type,
            r.report_content,
            r.status,
            r.serial_number as pointId,
            r.begin_create_time,
            r.end_create_time,
            r.import_batch_number,
            r.update_time,
            u.unit_name,
            p.yw_person_name as peopleName,
            pt.point_name
        FROM
            t_report r
                INNER JOIN t_report_error_type ret ON ret.report_id = r.id and ret.deleted = 0
                LEFT JOIN t_yw_unit u ON r.unit_id = u.id and u.deleted = 0
                LEFT JOIN t_yw_people p ON r.people_id = p.id and p.deleted = 0
                LEFT JOIN t_yw_point pt ON r.serial_number = pt.serial_number and pt.deleted = 0
        WHERE
            r.serial_number = #{gb} AND r.deleted = 0
        ORDER BY r.update_time DESC
    </select>
    <select id="examineRecord" resultMap="BaseResultMap">
        SELECT
            r.*, u.unit_name, p.yw_person_name as peopleName, pt.point_name, ar.result, ar.result_remark, ar.create_time as auditing_time
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -32,7 +32,17 @@
    <select id="page" resultMap="BaseResultMap">
        SELECT
        wo.id,wo.status, wo.work_order_no, wo.serial_number,wo.create_time, wo.unit_id, wo.yw_people_id, wo.yw_handle_time, wo.yw_result, wo.yw_check_result, wo.overtime, wo.deduct,
        wo.id,wo.status,
        wo.work_order_no,
        wo.serial_number,
        wo.create_time,
        wo.unit_id,
        wo.yw_people_id,
        wo.yw_handle_time,
        wo.yw_result,
        wo.yw_check_result,
        wo.overtime,
        wo.deduct,
        u.unit_name,
        p.yw_person_name,
        tm.name as source,
@@ -52,8 +62,8 @@
        <if test="query.unitId != null">
            AND wo.unit_id = #{query.unitId}
        </if>
        <if test="query.workOrderNo != null and query.workOrderNo != ''">
            AND wo.work_order_no = #{query.workOrderNo}
        <if test="query.keyword != null and query.keyword != ''">
            AND (wo.work_order_no like concat('%', #{query.keyword}, '%') or tm.name like concat('%', #{query.keyword}, '%'))
        </if>
        <if test="query.status != null and query.status != ''">
            AND wo.status = #{query.status}
@@ -289,4 +299,24 @@
        <result column="status" property="status" typeHandler="com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler"/>
        <result column="error_names" property="errorType"/>
    </resultMap>
    <select id="detailByNo" resultType="com.ycl.platform.domain.vo.WorkOrderDetailVO">
        SELECT
            wo.id,
            wo.work_order_no,
            wo.serial_number,
            dr.create_time as distributeTime,
            m.name as source,
            yw.unit_name,
            yw.unit_contact,
            yw.unit_contact_phone,
            wo.overtime,
            wo.processing_period,
            wo.status
        FROM
          t_work_order wo
              INNER JOIN t_work_order_distribute_record dr ON wo.work_order_no = dr.work_order_no AND dr.deleted = 0 AND wo.work_order_no = #{workOrderNo}
              INNER JOIN t_monitor m ON m.serial_number = wo.serial_number
              LEFT JOIN t_yw_unit yw ON yw.id = wo.unit_id AND yw.deleted = 0
    </select>
</mapper>