From f5e0ae6c3e2d4b7367389315bf24596446280430 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 09 九月 2024 18:35:09 +0800
Subject: [PATCH] 工单详情:工单信息、报备信息

---
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml                    |   36 ++++++++
 ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java               |    8 ++
 ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java    |    9 ++
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java               |    4 
 ycl-server/src/main/resources/application-dev.yml                                |    4 
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java         |    2 
 ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java          |    8 ++
 ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java    |   15 +++
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderDetailVO.java         |   79 +++++++++++++++++++
 ycl-server/src/main/java/com/ycl/platform/service/ReportService.java             |    8 ++
 ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java       |    7 +
 ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml                       |   28 +++++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   11 ++
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java            |    9 ++
 14 files changed, 221 insertions(+), 7 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
index 1712e99..0249df5 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
@@ -24,7 +24,7 @@
     /**
      * 宸ュ崟鍙�
      */
-    private String workOrderNo;
+    private String keyword;
 
     /**
      * 杩愮淮澶勭悊鏃堕棿
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderDetailVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderDetailVO.java
new file mode 100644
index 0000000..7e5c654
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderDetailVO.java
@@ -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;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
index 4d730b9..38acde9 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
+++ b/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;
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java b/ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java
index bf5d5ef..197de36 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java
+++ b/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);
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
index 39216f0..16e8e69 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
+++ b/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);
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java
index f61f978..544aa1d 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java
+++ b/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);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
index 1625fb5..c37308f 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
+++ b/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);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ReportService.java b/ycl-server/src/main/java/com/ycl/platform/service/ReportService.java
index bcea92c..02eef8c 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ReportService.java
+++ b/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);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index 0f3bf8b..0c54687 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/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);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
index a4e0441..b9df674 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
+++ b/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);
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index edc2c11..f662ccf 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/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);
+    }
 }
diff --git a/ycl-server/src/main/resources/application-dev.yml b/ycl-server/src/main/resources/application-dev.yml
index cdc2747..137d862 100644
--- a/ycl-server/src/main/resources/application-dev.yml
+++ b/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
 
diff --git a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml
index 1b7816b..1877141 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml
+++ b/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
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 4717be2..d2959dd 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/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>

--
Gitblit v1.8.0