From c4df5d2cfaa12a1c8a72ef25934fdc31d5be65a1 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期日, 29 九月 2024 11:21:21 +0800
Subject: [PATCH] 工单导出
---
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 48 ++++++++++++++++
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java | 16 +++++
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderExportQuery.java | 53 +++++++++++++++++
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java | 15 ++++
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 24 +++++++
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java | 1
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java | 1
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java | 3 +
8 files changed, 158 insertions(+), 3 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderExportQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderExportQuery.java
new file mode 100644
index 0000000..7f677da
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderExportQuery.java
@@ -0,0 +1,53 @@
+package com.ycl.platform.domain.query;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.platform.base.AbsQuery;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 宸ュ崟鏌ヨ
+ *
+ * @author xp
+ * @since 2024-03-05
+ */
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "WorkOrder瀵煎嚭", description = "宸ュ崟瀵煎嚭")
+public class WorkOrderExportQuery{
+
+ /**
+ * 宸ュ崟鍙�
+ */
+ private String keyword;
+
+ /**
+ * 杩愮淮澶勭悊鏃堕棿
+ */
+ private String start;
+
+ /**
+ * 杩愮淮澶勭悊鏃堕棿
+ */
+ private String end;
+
+ /**
+ * 鏁呴殰绫诲瀷
+ */
+ private List<String> errorTypeList;
+
+ /**
+ * 鐘舵��
+ */
+ private String status;
+
+ /**
+ * 鍗曚綅id
+ */
+ private Integer unitId;
+}
+
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 84855dc..88992c7 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
@@ -1,5 +1,6 @@
package com.ycl.platform.domain.query;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.base.AbsQuery;
import enumeration.general.WorkOrderStatusEnum;
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 dcc4579..95fbeb0 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
@@ -1,5 +1,6 @@
package com.ycl.platform.domain.vo;
+import annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.base.AbsVo;
import com.ycl.platform.domain.entity.WorkOrder;
@@ -23,26 +24,35 @@
* @since 2024-03-05
*/
@Data
-public class WorkOrderVO extends AbsVo {
+public class WorkOrderVO{
/** 宸ュ崟鍙� */
+ @Excel(name = "宸ュ崟鍙�",sort = 1)
private String workOrderNo;
-
+ private Integer id;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "鏁呴殰鏃堕棿",sort = 6,dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
/** 鐘舵�� */
private WorkOrderStatusEnum status;
/** 杩愮淮鍗曚綅 */
private Integer unitId;
+ @Excel(name = "杩愮淮鍗曚綅",sort = 4)
private String unitName;
private String unitContact;
private String unitContactPhone;
/** 宸ュ崟鏉ユ簮/璁惧鍚嶇О */
+ @Excel(name = "璁惧鍚嶇О",sort = 3)
private String source;
/**
* 璁惧缂栧彿
*/
+ @Excel(name = "璁惧缂栧彿",sort = 2)
private String serialNumber;
private Boolean provinceTag;
@@ -60,6 +70,7 @@
private List<String> errorTypeList;
/** 鏁呴殰绫诲瀷 */
+ @Excel(name = "鏁呴殰绫诲瀷")
private String errorType;
/** 宸ュ崟妫�娴嬪浘鐗� */
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 2a21f9f..803340f 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
@@ -1,18 +1,25 @@
package com.ycl.platform.controller;
+import annotation.Log;
import com.ycl.platform.domain.entity.WorkOrderAuditingRecord;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
+import com.ycl.platform.domain.query.WorkOrderExportQuery;
import com.ycl.platform.domain.query.WorkOrderQuery;
+import com.ycl.platform.domain.vo.ContractResultVO;
import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
+import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.system.Result;
import com.ycl.system.domain.group.Add;
import com.ycl.system.domain.group.Update;
import com.ycl.utils.PageUtils;
+import com.ycl.utils.poi.ExcelUtil;
+import enumeration.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -111,6 +118,15 @@
return workOrderService.page(query);
}
+ @PostMapping("/export")
+ @ApiOperation(value = "瀵煎嚭", notes = "瀵煎嚭")
+ @Log(title = "瀵煎嚭宸ュ崟", businessType = BusinessType.EXPORT)
+ public void export(HttpServletResponse response, WorkOrderExportQuery query) {
+ List<WorkOrderVO> results = workOrderService.export(query);
+ ExcelUtil<WorkOrderVO> util = new ExcelUtil<>(WorkOrderVO.class);
+ util.exportExcel(response, results, "宸ュ崟");
+ }
+
@PostMapping("/distribute/page")
@ApiOperation(value = "涓嬪彂鍒嗛〉", notes = "涓嬪彂鍒嗛〉")
@PreAuthorize("@ss.hasPermi('work:order:distribute:page')")
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 119e63e..378fd6c 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
@@ -29,6 +29,7 @@
public interface WorkOrderMapper extends BaseMapper<WorkOrder> {
IPage<WorkOrderVO> page(IPage page, @Param("query") WorkOrderQuery query);
+ List<WorkOrderVO> export(@Param("query") WorkOrderExportQuery query);
IPage<WorkOrderVO> distributePage(IPage page, @Param("query") DistributeWorkOrderQuery query);
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 881aa00..88fb056 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
@@ -7,6 +7,7 @@
import com.ycl.platform.domain.query.*;
import com.ycl.platform.domain.vo.DeviceInfoVO;
import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
+import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
import com.ycl.platform.domain.vo.screen.WorkOrderRegionVO;
import com.ycl.platform.domain.vo.screen.WorkOrderTotalVO;
@@ -233,4 +234,6 @@
* @return
*/
Result detailByNo(String workOrderNo);
+
+ List<WorkOrderVO> export(WorkOrderExportQuery query);
}
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 6f47e90..32536ae 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
@@ -1,5 +1,6 @@
package com.ycl.platform.service.impl;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -55,6 +56,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
+import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
@@ -93,7 +95,6 @@
@Override
@Transactional(rollbackFor = Exception.class)
- //TODO锛氭竻绌篟edis瀹氭椂浠诲姟
public synchronized Boolean innerAddWorkOrder(List<WorkOrder> workOrderList) {
int total = workOrderList.size();
workOrderList.stream().filter(item -> {
@@ -942,4 +943,25 @@
workOrder.setImgList(imgList);
return Result.ok().data(workOrder);
}
+
+ @Override
+ public List<WorkOrderVO> export(WorkOrderExportQuery query) {
+ query.setUnitId(SecurityUtils.getUnitId());
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ if (query.getStart() == null) {
+ query.setStart(format.format(DateUtils.getDayStart(new Date())));
+ } else {
+ query.setStart(query.getStart() + " 00:00:00");
+ }
+ if (query.getEnd() == null) {
+ query.setStart(format.format(DateUtils.getDayEnd(new Date())));
+ } else {
+ query.setEnd(query.getEnd() + " 23:59:59");
+ }
+
+ List<WorkOrderVO> export = baseMapper.export(query);
+
+ System.out.println(export);
+ return export;
+ }
}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 10b5140..b9d5398 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -78,6 +78,54 @@
ORDER BY wo.work_order_no DESC
</select>
+ <select id="export" 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,
+ u.unit_name,
+ p.yw_person_name,
+ tm.name as source,
+ GROUP_CONCAT(DISTINCT da.dict_label ORDER BY da.dict_label SEPARATOR ',') AS errorType,
+ GROUP_CONCAT(DISTINCT ci.img_url ORDER BY ci.create_time DESC SEPARATOR ',') AS imgListStr
+ FROM
+ t_work_order wo
+ INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number
+ INNER JOIN t_work_order_error_type et ON wo.work_order_no = et.work_order_no
+ INNER JOIN t_yw_unit u ON wo.unit_id = u.id AND u.deleted = 0
+ INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' <if test="query.errorTypeList != null and query.errorTypeList.size() > 0">AND da.dict_value in <foreach
+ collection="query.errorTypeList" open="(" separator="," close=")" item="errorType">#{errorType}</foreach> </if>
+ LEFT JOIN t_work_order_check_img ci ON ci.work_order_no = wo.work_order_no
+ LEFT JOIN t_yw_people p ON wo.yw_people_id = p.id AND p.deleted = 0
+ WHERE
+ wo.deleted = 0
+ <if test="query.unitId != null">
+ AND wo.unit_id = #{query.unitId}
+ </if>
+ <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}
+ </if>
+ <if test="query.start != null and query.end != null">
+ AND wo.create_time BETWEEN #{query.start} AND #{query.end}
+ </if>
+ GROUP BY
+ wo.id, wo.status, wo.work_order_no, wo.serial_number,wo.create_time, wo.unit_id, wo.yw_people_id,tm.name, wo.yw_handle_time, wo.yw_result, wo.yw_check_result, wo.overtime, wo.deduct,
+ u.unit_name,
+ p.yw_person_name
+ ORDER BY wo.work_order_no DESC
+ </select>
+
<select id="distributePage" resultType="com.ycl.platform.domain.vo.WorkOrderVO">
SELECT
wo.id,wo.status, wo.work_order_no,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,
--
Gitblit v1.8.0