From 0ad13cb4bf387d4f2db2d62540ebb73a376087f5 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期二, 22 四月 2025 17:08:25 +0800
Subject: [PATCH] 巡检标准 巡检计划 巡检任务

---
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InspectionPlanPageVo.java              |   34 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionTaskMapper.java                 |   17 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/WorkOrderService.java                    |    8 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceSerialMapper.java     |   15 
 platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceStandardMapper.xml                             |   25 
 platformx-device-biz/src/main/resources/mapper/WorkOrderMapper.xml                                                |   25 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlan.java                       |   50 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java                     |    5 
 platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceMapper.xml                                     |   17 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InspectionTaskQueryDTO.java                  |   10 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionTaskItem.java                   |   39 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceRepairPageVo.java                |    2 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionTaskServiceImpl.java      |   64 ++
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/WorkOrder.java                            |   59 ++
 platformx-device-biz/src/main/resources/mapper/InspectionStandardsMapper.xml                                      |   17 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java        |   21 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceMapper.java           |   11 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionTaskController.java         |  132 ++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java           |   10 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDeviceSerial.java           |   30 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InspectionTaskPageVo.java              |   34 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionTask.java                       |   53 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanMapper.java                 |   17 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionTaskItemMapper.java             |   11 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/WorkOrderMapper.java                      |   11 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionPlanController.java         |  131 ++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionStandardsServiceImpl.java |   24 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceStandardMapper.java   |   15 
 platformx-device-biz/src/main/resources/mapper/InspectionTaskMapper.xml                                           |   40 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionStandards.java                  |   30 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionStandardsMapper.java            |   11 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/WorkOrderServiceImpl.java           |   16 
 platformx-device-biz/src/main/resources/mapper/InspectionPlanMapper.xml                                           |   40 +
 platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceSerialMapper.xml                               |   26 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionStandardsController.java    |  151 +++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionStandardsService.java          |   10 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionPlanServiceImpl.java      |  252 ++++++++
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java                         |    8 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/WorkOrderController.java              |  123 ++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionPlanService.java               |   21 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java                 |    2 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDeviceStandards.java        |   27 
 platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml                                             |    3 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionTaskService.java               |   18 
 platformx-device-biz/src/main/resources/mapper/InspectionTaskItemMapper.xml                                       |   20 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDevice.java                 |   37 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InspectionPlanQueryDTO.java                  |   10 
 47 files changed, 1,730 insertions(+), 2 deletions(-)

diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java
index 0265a11..dc24a4a 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java
@@ -42,7 +42,10 @@
 	 * 璁惧閲囪喘璁″垝缂栧彿
 	 */
 	String DEVICE_PURCHASE_CODE = "DEVICE_PURCHASE_CODE";
-
+	/**
+	 * 宸ュ崟缂栧彿
+	 */
+	String WORK_ORDER_CODE = "WORK_ORDER_CODE";
 
 
 }
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InspectionPlanQueryDTO.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InspectionPlanQueryDTO.java
new file mode 100644
index 0000000..b086b61
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InspectionPlanQueryDTO.java
@@ -0,0 +1,10 @@
+package com.by4cloud.platformx.device.dto;
+
+import lombok.Data;
+
+@Data
+public class InspectionPlanQueryDTO {
+
+	private String planName;
+
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InspectionTaskQueryDTO.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InspectionTaskQueryDTO.java
new file mode 100644
index 0000000..eb489e1
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InspectionTaskQueryDTO.java
@@ -0,0 +1,10 @@
+package com.by4cloud.platformx.device.dto;
+
+import lombok.Data;
+
+@Data
+public class InspectionTaskQueryDTO {
+
+	private String taskName;
+
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java
index de9b0fb..4357fb2 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java
@@ -50,4 +50,12 @@
 	@Schema(description = "缁翠慨缁撴潫鏃ユ湡")
 	@Column(columnDefinition = "datetime comment '缁翠慨缁撴潫鏃ユ湡'")
 	private Date repairEndDate;
+
+	@Schema(description = "闂鎻忚堪")
+	@Column(columnDefinition="VARCHAR(256) comment '闂鎻忚堪'")
+	private String repairDesc;
+
+	@Schema(description = "鐢熸垚宸ュ崟鏍囪瘑")
+	@Column(columnDefinition="int comment '鐢熸垚宸ュ崟鏍囪瘑 0 鏈敓鎴� 1 宸茬敓鎴�'")
+	private Integer woFlag;
 }
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlan.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlan.java
new file mode 100644
index 0000000..8093c9a
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlan.java
@@ -0,0 +1,50 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@Entity
+@TableName("inspection_plan")
+@javax.persistence.Table(name = "inspection_plan")
+@Table(appliesTo = "inspection_plan", comment = "宸℃璁″垝")
+public class InspectionPlan extends BaseModel<InspectionPlan> {
+
+	@Schema(description = "宸℃璁″垝鍚嶇О")
+	@Column(columnDefinition="VARCHAR(128) comment '宸℃璁″垝鍚嶇О'")
+	private String planName;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@Schema(description = "宸℃璁″垝寮�濮嬫椂闂�")
+	@Column(columnDefinition="datetime comment '宸℃璁″垝寮�濮嬫椂闂�'")
+	private Date startTime;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@Schema(description = "宸℃璁″垝缁撴潫鏃堕棿")
+	@Column(columnDefinition="datetime comment '宸℃璁″垝缁撴潫鏃堕棿'")
+	private Date endTime;
+
+	@Schema(description = "宸℃浜哄憳")
+	@Column(columnDefinition="bigint comment '宸℃浜哄憳'")
+	private Long inspectionUserId;
+
+	@Schema(description = "鏄惁宸茬敓鎴愬贰妫�浠诲姟")
+	@Column(columnDefinition="int comment '鏄惁宸茬敓鎴愬贰妫�浠诲姟 0 鏈敓鎴� 1 宸茬敓鎴�'")
+	private Integer taskFlag;
+
+	@Transient
+	@TableField(exist = false)
+	private List<InspectionPlanDevice> deviceList;
+
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDevice.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDevice.java
new file mode 100644
index 0000000..997964a
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDevice.java
@@ -0,0 +1,37 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+import java.util.List;
+
+@Data
+@Entity
+@TableName("inspection_plan_device")
+@javax.persistence.Table(name = "inspection_plan_device")
+@Table(appliesTo = "inspection_plan_device", comment = "宸℃璁″垝鍏宠仈璁惧")
+public class InspectionPlanDevice extends BaseModel<InspectionPlanDevice> {
+
+	@Schema(description = "宸℃璁″垝")
+	@Column(columnDefinition="bigint comment '宸℃璁″垝'")
+	private Long planId;
+
+	@Schema(description = "璁惧ID")
+	@Column(columnDefinition="bigint comment '璁惧ID'")
+	private Long deviceId;
+
+	@Transient
+	@TableField(exist = false)
+	private List<String> serialList;
+
+	@Transient
+	@TableField(exist = false)
+	private List<Long> standardsList;
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDeviceSerial.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDeviceSerial.java
new file mode 100644
index 0000000..3cb97d8
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDeviceSerial.java
@@ -0,0 +1,30 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+import java.util.List;
+
+@Data
+@Entity
+@TableName("inspection_plan_device_serial")
+@javax.persistence.Table(name = "inspection_plan_device_serial")
+@Table(appliesTo = "inspection_plan_device_serial", comment = "宸℃璁″垝鍏宠仈璁惧搴忓垪鍙�")
+public class InspectionPlanDeviceSerial extends BaseModel<InspectionPlanDeviceSerial> {
+
+	@Schema(description = "宸℃璁″垝缁戝畾璁惧Id")
+	@Column(columnDefinition="bigint comment '宸℃璁″垝缁戝畾璁惧Id'")
+	private Long planDeviceId;
+
+	@Schema(description = "璁惧搴忓垪鍙�")
+	@Column(columnDefinition="VARCHAR(128) comment '璁惧搴忓垪鍙�'")
+	private String serialNo;
+
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDeviceStandards.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDeviceStandards.java
new file mode 100644
index 0000000..8fb5473
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionPlanDeviceStandards.java
@@ -0,0 +1,27 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+
+@Data
+@Entity
+@TableName("inspection_plan_device_standard")
+@javax.persistence.Table(name = "inspection_plan_device_standard")
+@Table(appliesTo = "inspection_plan_device_standard", comment = "宸℃璁″垝鍏宠仈宸℃鏍囧噯")
+public class InspectionPlanDeviceStandards extends BaseModel<InspectionPlanDeviceStandards> {
+
+	@Schema(description = "璁″垝鍏宠仈璁惧ID")
+	@Column(columnDefinition="bigint comment '璁″垝鍏宠仈璁惧ID'")
+	private Long planDeviceId;
+
+	@Schema(description = "宸℃鏍囧噯")
+	@Column(columnDefinition="bigint comment '宸℃鏍囧噯'")
+	private Long standardId;
+
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionStandards.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionStandards.java
new file mode 100644
index 0000000..ce9fce5
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionStandards.java
@@ -0,0 +1,30 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+
+@Data
+@Entity
+@TableName("inspection_standards")
+@javax.persistence.Table(name = "inspection_standards")
+@Table(appliesTo = "inspection_standards", comment = "宸℃鏍囧噯")
+public class InspectionStandards extends BaseModel<InspectionStandards> {
+
+	@Schema(description = "宸℃鏍囧噯鍚嶇О")
+	@Column(columnDefinition="VARCHAR(128) comment '宸℃鏍囧噯鍚嶇О'")
+	private String standardsName;
+
+	@Schema(description = "宸℃鏍囧噯鍐呭")
+	@Column(columnDefinition="text comment '宸℃鏍囧噯鍐呭'")
+	private String standardsContent;
+
+	@Schema(description = "鏄惁鍚敤")
+	@Column(columnDefinition="int comment '鏄惁鍚敤 0 鍚� 1 鏄�'")
+	private Integer status;
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionTask.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionTask.java
new file mode 100644
index 0000000..48ffcb7
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionTask.java
@@ -0,0 +1,53 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@Entity
+@TableName("inspection_task")
+@javax.persistence.Table(name = "inspection_task")
+@Table(appliesTo = "inspection_task", comment = "宸℃浠诲姟")
+public class InspectionTask extends BaseModel<InspectionTask> {
+
+	@Schema(description = "宸℃浠诲姟鍚嶇О")
+	@Column(columnDefinition="VARCHAR(128) comment '宸℃璁″垝鍚嶇О'")
+	private String taskName;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@Schema(description = "宸℃浠诲姟寮�濮嬫椂闂�")
+	@Column(columnDefinition="datetime comment '宸℃浠诲姟寮�濮嬫椂闂�'")
+	private Date startTime;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@Schema(description = "宸℃浠诲姟缁撴潫鏃堕棿")
+	@Column(columnDefinition="datetime comment '宸℃浠诲姟缁撴潫鏃堕棿'")
+	private Date endTime;
+
+	@Schema(description = "宸℃浜哄憳")
+	@Column(columnDefinition="bigint comment '宸℃浜哄憳'")
+	private Long inspectionUserId;
+
+	@Schema(description = "宸℃浠诲姟鐘舵��")
+	@Column(columnDefinition="int comment '宸℃浠诲姟鐘舵�� 0 鏈紑濮� 1 宸℃涓� 2 宸插畬鎴�'")
+	private Integer taskStatus;
+
+	@Schema(description = "宸℃璁″垝")
+	@Column(columnDefinition="bigint comment '宸℃璁″垝'")
+	private Long planId;
+
+	@Transient
+	@TableField(exist = false)
+	private List<InspectionTaskItem> itemList;
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionTaskItem.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionTaskItem.java
new file mode 100644
index 0000000..71e290e
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InspectionTaskItem.java
@@ -0,0 +1,39 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+
+@Data
+@Entity
+@TableName("inspection_task_item")
+@javax.persistence.Table(name = "inspection_task_item")
+@Table(appliesTo = "inspection_task_item", comment = "宸℃浠诲姟鏄庣粏")
+public class InspectionTaskItem extends BaseModel<InspectionTaskItem> {
+
+	@Schema(description = "浠诲姟ID")
+	@Column(columnDefinition="bigint comment '浠诲姟ID'")
+	private Long taskId;
+
+	@Schema(description = "璁惧ID")
+	@Column(columnDefinition="bigint comment '璁惧ID'")
+	private Long deviceId;
+
+	@Schema(description = "璁惧搴忓垪鍙�")
+	@Column(columnDefinition="VARCHAR(128) comment '璁惧搴忓垪鍙�'")
+	private String serialNo;
+
+	@Schema(description = "宸℃鏍囧噯")
+	@Column(columnDefinition="bigint comment '宸℃鏍囧噯'")
+	private Long standardId;
+
+	@Schema(description = "宸℃缁撴灉")
+	@Column(columnDefinition="VARCHAR(256) comment '宸℃缁撴灉'")
+	private String inspectionResults;
+
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/WorkOrder.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/WorkOrder.java
new file mode 100644
index 0000000..1bfa6f0
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/WorkOrder.java
@@ -0,0 +1,59 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import java.util.Date;
+
+@Data
+@Entity
+@TableName("work_order")
+@javax.persistence.Table(name = "work_order")
+@Table(appliesTo = "work_order", comment = "宸ュ崟")
+public class WorkOrder extends BaseModel<WorkOrder> {
+
+	@Schema(description = "宸ュ崟缂栧彿")
+	@Column(columnDefinition="VARCHAR(64) comment '宸ュ崟缂栧彿'")
+	private String woCode;
+
+	@Schema(description = "宸ュ崟鎻忚堪")
+	@Column(columnDefinition="VARCHAR(256) comment '宸ュ崟鎻忚堪'")
+	private String woDesc;
+
+	@Schema(description = "宸ュ崟绫诲瀷")
+	@Column(columnDefinition="int comment '宸ュ崟绫诲瀷 1 鎶ヤ慨 2 鍏朵粬'")
+	private Integer woType;
+
+	@Schema(description = "宸ュ崟鐘舵��")
+	@Column(columnDefinition="int comment '宸ュ崟鐘舵�� 1 寰呭垎閰� 2 澶勭悊涓� 3 宸插叧闂�'")
+	private Integer woStatus;
+
+	@Schema(description = "澶勭悊浜�")
+	@Column(columnDefinition="bigint comment '澶勭悊浜�'")
+	private Long handleUserId;
+
+	@Schema(description = "澶勭悊浜�")
+	@Column(columnDefinition="VARCHAR(64) comment '澶勭悊浜�'")
+	private String handleUserName;
+
+	@Schema(description = "澶勭悊鏃堕棿")
+	@Column(columnDefinition="datetime comment '澶勭悊鏃堕棿'")
+	private Date handleTime;
+
+	@Schema(description = "澶勭悊璇存槑")
+	@Column(columnDefinition="VARCHAR(256) comment '澶勭悊璇存槑'")
+	private String handleDesc;
+
+	@Schema(description = "澶勭悊鍚庣収鐗�")
+	@Column(columnDefinition="VARCHAR(256) comment '澶勭悊鍚庣収鐗�'")
+	private String handlePic;
+
+	@Schema(description = "鍏宠仈缁翠慨ID")
+	@Column(columnDefinition="bigint comment '鍏宠仈缁翠慨ID'")
+	private Long repairId;
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceRepairPageVo.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceRepairPageVo.java
index e31f789..801781c 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceRepairPageVo.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DeviceRepairPageVo.java
@@ -25,4 +25,6 @@
 
 	private String status;
 
+	private Integer woFlag;
+
 }
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InspectionPlanPageVo.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InspectionPlanPageVo.java
new file mode 100644
index 0000000..d32859d
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InspectionPlanPageVo.java
@@ -0,0 +1,34 @@
+package com.by4cloud.platformx.device.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class InspectionPlanPageVo {
+
+	private Long id;
+
+	@Schema(description = "宸℃璁″垝鍚嶇О")
+	private String planName;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@Schema(description = "宸℃璁″垝寮�濮嬫椂闂�")
+	private Date startTime;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@Schema(description = "宸℃璁″垝缁撴潫鏃堕棿")
+	private Date endTime;
+
+	@Schema(description = "宸℃浜哄憳")
+	private Long inspectionUserId;
+
+	@Schema(description = "宸℃浜哄憳")
+	private String inspectionUserName;
+
+	@Schema(description = "鏄惁宸茬敓鎴愬贰妫�浠诲姟")
+	private Integer taskFlag;
+
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InspectionTaskPageVo.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InspectionTaskPageVo.java
new file mode 100644
index 0000000..5c6912e
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InspectionTaskPageVo.java
@@ -0,0 +1,34 @@
+package com.by4cloud.platformx.device.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class InspectionTaskPageVo {
+
+	private Long id;
+
+	@Schema(description = "宸℃浠诲姟鍚嶇О")
+	private String taskName;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@Schema(description = "宸℃浠诲姟寮�濮嬫椂闂�")
+	private Date startTime;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@Schema(description = "宸℃浠诲姟缁撴潫鏃堕棿")
+	private Date endTime;
+
+	@Schema(description = "宸℃浜哄憳")
+	private Long inspectionUserId;
+
+	@Schema(description = "宸℃浜哄憳")
+	private String inspectionUserName;
+
+	@Schema(description = "鏄惁宸茬敓鎴愬贰妫�浠诲姟")
+	private Integer taskStatus;
+
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java
index 2fba759..fcc610d 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java
@@ -75,6 +75,7 @@
     @PreAuthorize("@pms.hasPermission('device_deviceRepair_add')" )
     public R save(@RequestBody DeviceRepair deviceRepair) {
 		deviceRepair.setStatus(1);
+		deviceRepair.setWoFlag(0);
         return R.ok(deviceRepairService.save(deviceRepair));
     }
 
@@ -137,4 +138,13 @@
 	public R complete(@PathVariable("id")Long id) {
 		return deviceRepairService.complete(id);
 	}
+
+	/**
+	 * 璁惧缁翠慨瀹屾垚
+	 * @return
+	 */
+	@GetMapping("/genWorkOrder/{id}" )
+	public R genWorkOrder(@PathVariable("id")Long id) {
+		return deviceRepairService.genWorkOrder(id);
+	}
 }
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionPlanController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionPlanController.java
new file mode 100644
index 0000000..dcf5f7a
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionPlanController.java
@@ -0,0 +1,131 @@
+package com.by4cloud.platformx.device.controller;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.log.annotation.SysLog;
+import com.by4cloud.platformx.device.dto.InspectionPlanQueryDTO;
+import com.by4cloud.platformx.device.entity.InspectionPlan;
+import com.by4cloud.platformx.device.service.InspectionPlanService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springdoc.api.annotations.ParameterObject;
+import org.springframework.http.HttpHeaders;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 宸℃璁″垝
+ *
+ * @author syt
+ * @date 2025-04-22 09:06:43
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/inspectionPlan" )
+@Tag(description = "inspectionPlan" , name = "宸℃璁″垝绠$悊" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class InspectionPlanController {
+
+    private final  InspectionPlanService inspectionPlanService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page 鍒嗛〉瀵硅薄
+     * @param queryDTO 宸℃璁″垝
+     * @return
+     */
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @GetMapping("/page" )
+    @PreAuthorize("@pms.hasPermission('device_inspectionPlan_view')" )
+    public R getInspectionPlanPage(@ParameterObject Page page, @ParameterObject InspectionPlanQueryDTO queryDTO) {
+        return R.ok(inspectionPlanService.pageNew(page, queryDTO));
+    }
+
+
+    /**
+     * 閫氳繃id鏌ヨ宸℃璁″垝
+     * @param id id
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+    @GetMapping("/{id}" )
+    @PreAuthorize("@pms.hasPermission('device_inspectionPlan_view')" )
+    public R getById(@PathVariable("id" ) Long id) {
+        return R.ok(inspectionPlanService.getByIdNew(id));
+    }
+
+    /**
+     * 鏂板宸℃璁″垝
+     * @param inspectionPlan 宸℃璁″垝
+     * @return R
+     */
+    @Operation(summary = "鏂板宸℃璁″垝" , description = "鏂板宸℃璁″垝" )
+    @SysLog("鏂板宸℃璁″垝" )
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionPlan_add')" )
+    public R save(@RequestBody InspectionPlan inspectionPlan) {
+        return R.ok(inspectionPlanService.saveDeep(inspectionPlan));
+    }
+
+    /**
+     * 淇敼宸℃璁″垝
+     * @param inspectionPlan 宸℃璁″垝
+     * @return R
+     */
+    @Operation(summary = "淇敼宸℃璁″垝" , description = "淇敼宸℃璁″垝" )
+    @SysLog("淇敼宸℃璁″垝" )
+    @PutMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionPlan_edit')" )
+    public R updateById(@RequestBody InspectionPlan inspectionPlan) {
+        return R.ok(inspectionPlanService.updateByIdNew(inspectionPlan));
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎宸℃璁″垝
+     * @param ids id鍒楄〃
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鍒犻櫎宸℃璁″垝" , description = "閫氳繃id鍒犻櫎宸℃璁″垝" )
+    @SysLog("閫氳繃id鍒犻櫎宸℃璁″垝" )
+    @DeleteMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionPlan_del')" )
+    public R removeById(@RequestBody Long[] ids) {
+        return R.ok(inspectionPlanService.removeBatchByIds(CollUtil.toList(ids)));
+    }
+
+
+    /**
+     * 瀵煎嚭excel 琛ㄦ牸
+     * @param inspectionPlan 鏌ヨ鏉′欢
+   	 * @param ids 瀵煎嚭鎸囧畾ID
+     * @return excel 鏂囦欢娴�
+     */
+    @ResponseExcel
+    @GetMapping("/export")
+    @PreAuthorize("@pms.hasPermission('device_inspectionPlan_export')" )
+    public List<InspectionPlan> export(InspectionPlan inspectionPlan,Long[] ids) {
+        return inspectionPlanService.list(Wrappers.lambdaQuery(inspectionPlan).in(ArrayUtil.isNotEmpty(ids), InspectionPlan::getId, ids));
+    }
+
+	/**
+	 * 閫氳繃id鐢熸垚宸℃浠诲姟
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id鐢熸垚宸℃浠诲姟" , description = "閫氳繃id鐢熸垚宸℃浠诲姟" )
+	@GetMapping("/genTask/{id}" )
+	public R gentTask(@PathVariable("id" ) Long id) {
+		return inspectionPlanService.gentTask(id);
+	}
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionStandardsController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionStandardsController.java
new file mode 100644
index 0000000..fb0c770
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionStandardsController.java
@@ -0,0 +1,151 @@
+package com.by4cloud.platformx.device.controller;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.log.annotation.SysLog;
+import com.by4cloud.platformx.device.entity.InspectionStandards;
+import com.by4cloud.platformx.device.service.InspectionStandardsService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springdoc.api.annotations.ParameterObject;
+import org.springframework.http.HttpHeaders;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 宸℃鏍囧噯
+ *
+ * @author syt
+ * @date 2025-04-22 09:13:46
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/inspectionStandards" )
+@Tag(description = "inspectionStandards" , name = "宸℃鏍囧噯绠$悊" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class InspectionStandardsController {
+
+    private final  InspectionStandardsService inspectionStandardsService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page 鍒嗛〉瀵硅薄
+     * @param inspectionStandards 宸℃鏍囧噯
+     * @return
+     */
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @GetMapping("/page" )
+    @PreAuthorize("@pms.hasPermission('device_inspectionStandards_view')" )
+    public R getInspectionStandardsPage(@ParameterObject Page page, @ParameterObject InspectionStandards inspectionStandards) {
+        LambdaQueryWrapper<InspectionStandards> wrapper = Wrappers.lambdaQuery();
+		wrapper.like(StrUtil.isNotBlank(inspectionStandards.getStandardsContent()),InspectionStandards::getStandardsContent,inspectionStandards.getStandardsContent());
+		wrapper.like(StrUtil.isNotBlank(inspectionStandards.getStandardsName()),InspectionStandards::getStandardsName,inspectionStandards.getStandardsName());
+        wrapper.orderByDesc(InspectionStandards::getCreateTime);
+		return R.ok(inspectionStandardsService.page(page, wrapper));
+    }
+
+
+    /**
+     * 閫氳繃id鏌ヨ宸℃鏍囧噯
+     * @param id id
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+    @GetMapping("/{id}" )
+    @PreAuthorize("@pms.hasPermission('device_inspectionStandards_view')" )
+    public R getById(@PathVariable("id" ) Long id) {
+        return R.ok(inspectionStandardsService.getById(id));
+    }
+
+    /**
+     * 鏂板宸℃鏍囧噯
+     * @param inspectionStandards 宸℃鏍囧噯
+     * @return R
+     */
+    @Operation(summary = "鏂板宸℃鏍囧噯" , description = "鏂板宸℃鏍囧噯" )
+    @SysLog("鏂板宸℃鏍囧噯" )
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionStandards_add')" )
+    public R save(@RequestBody InspectionStandards inspectionStandards) {
+		inspectionStandards.setStatus(0);
+        return R.ok(inspectionStandardsService.save(inspectionStandards));
+    }
+
+    /**
+     * 淇敼宸℃鏍囧噯
+     * @param inspectionStandards 宸℃鏍囧噯
+     * @return R
+     */
+    @Operation(summary = "淇敼宸℃鏍囧噯" , description = "淇敼宸℃鏍囧噯" )
+    @SysLog("淇敼宸℃鏍囧噯" )
+    @PutMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionStandards_edit')" )
+    public R updateById(@RequestBody InspectionStandards inspectionStandards) {
+        return R.ok(inspectionStandardsService.updateById(inspectionStandards));
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎宸℃鏍囧噯
+     * @param ids id鍒楄〃
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鍒犻櫎宸℃鏍囧噯" , description = "閫氳繃id鍒犻櫎宸℃鏍囧噯" )
+    @SysLog("閫氳繃id鍒犻櫎宸℃鏍囧噯" )
+    @DeleteMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionStandards_del')" )
+    public R removeById(@RequestBody Long[] ids) {
+        return R.ok(inspectionStandardsService.removeBatchByIds(CollUtil.toList(ids)));
+    }
+
+
+    /**
+     * 瀵煎嚭excel 琛ㄦ牸
+     * @param inspectionStandards 鏌ヨ鏉′欢
+   	 * @param ids 瀵煎嚭鎸囧畾ID
+     * @return excel 鏂囦欢娴�
+     */
+    @ResponseExcel
+    @GetMapping("/export")
+    @PreAuthorize("@pms.hasPermission('device_inspectionStandards_export')" )
+    public List<InspectionStandards> export(InspectionStandards inspectionStandards,Long[] ids) {
+        return inspectionStandardsService.list(Wrappers.lambdaQuery(inspectionStandards).in(ArrayUtil.isNotEmpty(ids), InspectionStandards::getId, ids));
+    }
+
+	/**
+	 * 閫氳繃id鍚敤/鍋滅敤宸℃鏍囧噯
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id鍚敤/鍋滅敤宸℃鏍囧噯" , description = "閫氳繃id鍚敤/鍋滅敤宸℃鏍囧噯" )
+	@GetMapping("/{id}/{status}" )
+	public R openOrOffById(@PathVariable("id" ) Long id,@PathVariable("status")Integer status) {
+		return inspectionStandardsService.openOrOffById(id,status);
+	}
+
+	/**
+	 * 閫氳繃id鍚敤/鍋滅敤宸℃鏍囧噯
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "涓嬫媺鎵�鏈夋暟鎹�" , description = "閫氳繃id鍚敤/鍋滅敤宸℃鏍囧噯" )
+	@GetMapping("/dropdownnList" )
+	public R dropdownnList() {
+		QueryWrapper<InspectionStandards> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("status",1);
+		List<InspectionStandards> list = inspectionStandardsService.list(queryWrapper);
+		return R.ok(list);
+	}
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionTaskController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionTaskController.java
new file mode 100644
index 0000000..899542f
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InspectionTaskController.java
@@ -0,0 +1,132 @@
+package com.by4cloud.platformx.device.controller;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.log.annotation.SysLog;
+import com.by4cloud.platformx.device.dto.InspectionTaskQueryDTO;
+import com.by4cloud.platformx.device.entity.InspectionTask;
+import com.by4cloud.platformx.device.service.InspectionTaskService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springdoc.api.annotations.ParameterObject;
+import org.springframework.http.HttpHeaders;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 宸℃浠诲姟
+ *
+ * @author syt
+ * @date 2025-04-22 09:15:32
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/inspectionTask" )
+@Tag(description = "inspectionTask" , name = "宸℃浠诲姟绠$悊" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class InspectionTaskController {
+
+    private final  InspectionTaskService inspectionTaskService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page 鍒嗛〉瀵硅薄
+     * @param queryDTO 宸℃浠诲姟
+     * @return
+     */
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @GetMapping("/page" )
+    @PreAuthorize("@pms.hasPermission('device_inspectionTask_view')" )
+    public R getInspectionTaskPage(@ParameterObject Page page, @ParameterObject InspectionTaskQueryDTO queryDTO) {
+        return R.ok(inspectionTaskService.pageNew(page, queryDTO));
+    }
+
+
+    /**
+     * 閫氳繃id鏌ヨ宸℃浠诲姟
+     * @param id id
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+    @GetMapping("/{id}" )
+    @PreAuthorize("@pms.hasPermission('device_inspectionTask_view')" )
+    public R getById(@PathVariable("id" ) Long id) {
+        return R.ok(inspectionTaskService.getByIdNew(id));
+    }
+
+    /**
+     * 鏂板宸℃浠诲姟
+     * @param inspectionTask 宸℃浠诲姟
+     * @return R
+     */
+    @Operation(summary = "鏂板宸℃浠诲姟" , description = "鏂板宸℃浠诲姟" )
+    @SysLog("鏂板宸℃浠诲姟" )
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionTask_add')" )
+    public R save(@RequestBody InspectionTask inspectionTask) {
+        return R.ok(inspectionTaskService.save(inspectionTask));
+    }
+
+    /**
+     * 淇敼宸℃浠诲姟
+     * @param inspectionTask 宸℃浠诲姟
+     * @return R
+     */
+    @Operation(summary = "淇敼宸℃浠诲姟" , description = "淇敼宸℃浠诲姟" )
+    @SysLog("淇敼宸℃浠诲姟" )
+    @PutMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionTask_edit')" )
+    public R updateById(@RequestBody InspectionTask inspectionTask) {
+        return R.ok(inspectionTaskService.updateByIdNew(inspectionTask));
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎宸℃浠诲姟
+     * @param ids id鍒楄〃
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鍒犻櫎宸℃浠诲姟" , description = "閫氳繃id鍒犻櫎宸℃浠诲姟" )
+    @SysLog("閫氳繃id鍒犻櫎宸℃浠诲姟" )
+    @DeleteMapping
+    @PreAuthorize("@pms.hasPermission('device_inspectionTask_del')" )
+    public R removeById(@RequestBody Long[] ids) {
+        return R.ok(inspectionTaskService.removeBatchByIds(CollUtil.toList(ids)));
+    }
+
+
+    /**
+     * 瀵煎嚭excel 琛ㄦ牸
+     * @param inspectionTask 鏌ヨ鏉′欢
+   	 * @param ids 瀵煎嚭鎸囧畾ID
+     * @return excel 鏂囦欢娴�
+     */
+    @ResponseExcel
+    @GetMapping("/export")
+    @PreAuthorize("@pms.hasPermission('device_inspectionTask_export')" )
+    public List<InspectionTask> export(InspectionTask inspectionTask,Long[] ids) {
+        return inspectionTaskService.list(Wrappers.lambdaQuery(inspectionTask).in(ArrayUtil.isNotEmpty(ids), InspectionTask::getId, ids));
+    }
+
+	/**
+	 * 閫氳繃id寮�濮嬪贰妫�浠诲姟
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id寮�濮嬪贰妫�浠诲姟" , description = "閫氳繃id寮�濮嬪贰妫�浠诲姟" )
+	@GetMapping("/taskStartById/{id}" )
+	public R taskStartById(@PathVariable("id" ) Long id) {
+		return R.ok(inspectionTaskService.taskStartById(id));
+	}
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/WorkOrderController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/WorkOrderController.java
new file mode 100644
index 0000000..4d1beab
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/WorkOrderController.java
@@ -0,0 +1,123 @@
+package com.by4cloud.platformx.device.controller;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.log.annotation.SysLog;
+import com.by4cloud.platformx.device.entity.WorkOrder;
+import com.by4cloud.platformx.device.service.WorkOrderService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springdoc.api.annotations.ParameterObject;
+import org.springframework.http.HttpHeaders;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 宸ュ崟
+ *
+ * @author syt
+ * @date 2025-04-22 16:01:37
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/workOrder" )
+@Tag(description = "workOrder" , name = "宸ュ崟绠$悊" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class WorkOrderController {
+
+    private final  WorkOrderService workOrderService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page 鍒嗛〉瀵硅薄
+     * @param workOrder 宸ュ崟
+     * @return
+     */
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @GetMapping("/page" )
+    @PreAuthorize("@pms.hasPermission('device_workOrder_view')" )
+    public R getWorkOrderPage(@ParameterObject Page page, @ParameterObject WorkOrder workOrder) {
+        LambdaQueryWrapper<WorkOrder> wrapper = Wrappers.lambdaQuery();
+		wrapper.like(StrUtil.isNotBlank(workOrder.getWoCode()),WorkOrder::getWoCode,workOrder.getWoCode());
+		wrapper.like(StrUtil.isNotBlank(workOrder.getWoDesc()),WorkOrder::getWoDesc,workOrder.getWoDesc());
+		wrapper.eq(Objects.nonNull(workOrder.getWoStatus()),WorkOrder::getWoStatus,workOrder.getWoStatus());
+        return R.ok(workOrderService.page(page, wrapper));
+    }
+
+
+    /**
+     * 閫氳繃id鏌ヨ宸ュ崟
+     * @param id id
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+    @GetMapping("/{id}" )
+    @PreAuthorize("@pms.hasPermission('device_workOrder_view')" )
+    public R getById(@PathVariable("id" ) Long id) {
+        return R.ok(workOrderService.getById(id));
+    }
+
+    /**
+     * 鏂板宸ュ崟
+     * @param workOrder 宸ュ崟
+     * @return R
+     */
+    @Operation(summary = "鏂板宸ュ崟" , description = "鏂板宸ュ崟" )
+    @SysLog("鏂板宸ュ崟" )
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('device_workOrder_add')" )
+    public R save(@RequestBody WorkOrder workOrder) {
+        return R.ok(workOrderService.save(workOrder));
+    }
+
+    /**
+     * 淇敼宸ュ崟
+     * @param workOrder 宸ュ崟
+     * @return R
+     */
+    @Operation(summary = "淇敼宸ュ崟" , description = "淇敼宸ュ崟" )
+    @SysLog("淇敼宸ュ崟" )
+    @PutMapping
+    @PreAuthorize("@pms.hasPermission('device_workOrder_edit')" )
+    public R updateById(@RequestBody WorkOrder workOrder) {
+        return R.ok(workOrderService.updateById(workOrder));
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎宸ュ崟
+     * @param ids id鍒楄〃
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鍒犻櫎宸ュ崟" , description = "閫氳繃id鍒犻櫎宸ュ崟" )
+    @SysLog("閫氳繃id鍒犻櫎宸ュ崟" )
+    @DeleteMapping
+    @PreAuthorize("@pms.hasPermission('device_workOrder_del')" )
+    public R removeById(@RequestBody Long[] ids) {
+        return R.ok(workOrderService.removeBatchByIds(CollUtil.toList(ids)));
+    }
+
+
+    /**
+     * 瀵煎嚭excel 琛ㄦ牸
+     * @param workOrder 鏌ヨ鏉′欢
+   	 * @param ids 瀵煎嚭鎸囧畾ID
+     * @return excel 鏂囦欢娴�
+     */
+    @ResponseExcel
+    @GetMapping("/export")
+    @PreAuthorize("@pms.hasPermission('device_workOrder_export')" )
+    public List<WorkOrder> export(WorkOrder workOrder,Long[] ids) {
+        return workOrderService.list(Wrappers.lambdaQuery(workOrder).in(ArrayUtil.isNotEmpty(ids), WorkOrder::getId, ids));
+    }
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceMapper.java
new file mode 100644
index 0000000..d2566ce
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceMapper.java
@@ -0,0 +1,11 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.entity.InspectionPlanDevice;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface InspectionPlanDeviceMapper extends PlatformxBaseMapper<InspectionPlanDevice> {
+
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceSerialMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceSerialMapper.java
new file mode 100644
index 0000000..ec0f1e4
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceSerialMapper.java
@@ -0,0 +1,15 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.entity.InspectionPlanDeviceSerial;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface InspectionPlanDeviceSerialMapper extends PlatformxBaseMapper<InspectionPlanDeviceSerial> {
+
+
+    List<String> selectSerialList(@Param("id") Long id);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceStandardMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceStandardMapper.java
new file mode 100644
index 0000000..857cd0b
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanDeviceStandardMapper.java
@@ -0,0 +1,15 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.entity.InspectionPlanDeviceStandards;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface InspectionPlanDeviceStandardMapper extends PlatformxBaseMapper<InspectionPlanDeviceStandards> {
+
+
+    List<Long> selectStandardIdList(@Param("id")Long id);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanMapper.java
new file mode 100644
index 0000000..fc32227
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionPlanMapper.java
@@ -0,0 +1,17 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.dto.InspectionPlanQueryDTO;
+import com.by4cloud.platformx.device.entity.InspectionPlan;
+import com.by4cloud.platformx.device.entity.vo.InspectionPlanPageVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface InspectionPlanMapper extends PlatformxBaseMapper<InspectionPlan> {
+
+
+    IPage<InspectionPlanPageVo> page(Page page, @Param("queryDTO") InspectionPlanQueryDTO queryDTO);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionStandardsMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionStandardsMapper.java
new file mode 100644
index 0000000..fd64332
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionStandardsMapper.java
@@ -0,0 +1,11 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.entity.InspectionStandards;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface InspectionStandardsMapper extends PlatformxBaseMapper<InspectionStandards> {
+
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionTaskItemMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionTaskItemMapper.java
new file mode 100644
index 0000000..bfa9592
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionTaskItemMapper.java
@@ -0,0 +1,11 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.entity.InspectionTaskItem;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface InspectionTaskItemMapper extends PlatformxBaseMapper<InspectionTaskItem> {
+
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionTaskMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionTaskMapper.java
new file mode 100644
index 0000000..d12d1bf
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InspectionTaskMapper.java
@@ -0,0 +1,17 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.dto.InspectionTaskQueryDTO;
+import com.by4cloud.platformx.device.entity.InspectionTask;
+import com.by4cloud.platformx.device.entity.vo.InspectionTaskPageVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface InspectionTaskMapper extends PlatformxBaseMapper<InspectionTask> {
+
+
+    IPage<InspectionTaskPageVo> page(Page page, @Param("queryDTO") InspectionTaskQueryDTO queryDTO);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/WorkOrderMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/WorkOrderMapper.java
new file mode 100644
index 0000000..071cb30
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/WorkOrderMapper.java
@@ -0,0 +1,11 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.entity.WorkOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface WorkOrderMapper extends PlatformxBaseMapper<WorkOrder> {
+
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java
index a88b0c4..cd97f12 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java
@@ -14,4 +14,6 @@
 	R complete(Long id);
 
     IPage pageNew(Page page, DeviceRepairQueryDTO queryDTO);
+
+    R genWorkOrder(Long id);
 }
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionPlanService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionPlanService.java
new file mode 100644
index 0000000..5aa75c0
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionPlanService.java
@@ -0,0 +1,21 @@
+package com.by4cloud.platformx.device.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.device.dto.InspectionPlanQueryDTO;
+import com.by4cloud.platformx.device.entity.InspectionPlan;
+
+public interface InspectionPlanService extends IService<InspectionPlan> {
+
+    boolean saveDeep(InspectionPlan inspectionPlan);
+
+	IPage pageNew(Page page, InspectionPlanQueryDTO queryDTO);
+
+	InspectionPlan getByIdNew(Long id);
+
+	boolean updateByIdNew(InspectionPlan inspectionPlan);
+
+	R gentTask(Long id);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionStandardsService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionStandardsService.java
new file mode 100644
index 0000000..2fa1baa
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionStandardsService.java
@@ -0,0 +1,10 @@
+package com.by4cloud.platformx.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.device.entity.InspectionStandards;
+
+public interface InspectionStandardsService extends IService<InspectionStandards> {
+
+	R openOrOffById(Long id, Integer status);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionTaskService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionTaskService.java
new file mode 100644
index 0000000..cf2d0d9
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InspectionTaskService.java
@@ -0,0 +1,18 @@
+package com.by4cloud.platformx.device.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.device.dto.InspectionTaskQueryDTO;
+import com.by4cloud.platformx.device.entity.InspectionTask;
+
+public interface InspectionTaskService extends IService<InspectionTask> {
+
+	IPage pageNew(Page page, InspectionTaskQueryDTO queryDTO);
+
+	InspectionTask getByIdNew(Long id);
+
+	boolean updateByIdNew(InspectionTask inspectionTask);
+
+	boolean taskStartById(Long id);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/WorkOrderService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/WorkOrderService.java
new file mode 100644
index 0000000..19159fe
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/WorkOrderService.java
@@ -0,0 +1,8 @@
+package com.by4cloud.platformx.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.device.entity.WorkOrder;
+
+public interface WorkOrderService extends IService<WorkOrder> {
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java
index 8171bb7..b4d5526 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java
@@ -4,12 +4,16 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.device.constant.MaxSizeContant;
 import com.by4cloud.platformx.device.dto.DeviceRepairQueryDTO;
 import com.by4cloud.platformx.device.entity.DeviceInventory;
 import com.by4cloud.platformx.device.entity.DeviceRepair;
+import com.by4cloud.platformx.device.entity.WorkOrder;
 import com.by4cloud.platformx.device.mapper.DeviceInventoryMapper;
 import com.by4cloud.platformx.device.mapper.DeviceRepairMapper;
+import com.by4cloud.platformx.device.mapper.WorkOrderMapper;
 import com.by4cloud.platformx.device.service.DeviceRepairService;
+import com.by4cloud.platformx.device.service.JcMaxSizeService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 /**
@@ -23,6 +27,8 @@
 public class DeviceRepairServiceImpl extends ServiceImpl<DeviceRepairMapper, DeviceRepair> implements DeviceRepairService {
 
 	private final DeviceInventoryMapper inventoryMapper;
+	private final JcMaxSizeService maxSizeService;
+	private final WorkOrderMapper workOrderMapper;
 
 	@Override
 	public R approved(Long id) {
@@ -50,4 +56,19 @@
 	public IPage pageNew(Page page, DeviceRepairQueryDTO queryDTO) {
 		return baseMapper.pageNew(page,queryDTO);
 	}
+
+	@Override
+	public R genWorkOrder(Long id) {
+		DeviceRepair repair = baseMapper.selectById(id);
+		WorkOrder workOrder = new WorkOrder();
+		workOrder.setRepairId(id);
+		workOrder.setWoCode(maxSizeService.nextNo(MaxSizeContant.DEVICE_PURCHASE_CODE));
+		workOrder.setWoDesc(repair.getRepairDesc());
+		workOrder.setWoType(1);
+		workOrder.setWoStatus(1);
+		workOrderMapper.insert(workOrder);
+		repair.setWoFlag(1);
+		baseMapper.updateById(repair);
+		return R.ok();
+	}
 }
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionPlanServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionPlanServiceImpl.java
new file mode 100644
index 0000000..4b55f15
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionPlanServiceImpl.java
@@ -0,0 +1,252 @@
+package com.by4cloud.platformx.device.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.device.dto.InspectionPlanQueryDTO;
+import com.by4cloud.platformx.device.entity.*;
+import com.by4cloud.platformx.device.mapper.*;
+import com.by4cloud.platformx.device.service.InspectionPlanService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 宸℃璁″垝
+ *
+ * @author syt
+ * @date 2025-04-22 09:06:43
+ */
+@Service
+@AllArgsConstructor
+public class InspectionPlanServiceImpl extends ServiceImpl<InspectionPlanMapper, InspectionPlan> implements InspectionPlanService {
+
+	private final InspectionPlanDeviceMapper planDeviceMapper;
+	private final InspectionPlanDeviceSerialMapper planDeviceSerialMapper;
+	private final InspectionPlanDeviceStandardMapper planDeviceStandardMapper;
+	private final InspectionTaskMapper taskMapper;
+	private final InspectionTaskItemMapper taskItemMapper;
+
+	@Override
+	public boolean saveDeep(InspectionPlan inspectionPlan) {
+		baseMapper.insert(inspectionPlan);
+
+		//璁″垝涓庤澶囧叧鑱�
+		if (inspectionPlan.getDeviceList()!=null&&inspectionPlan.getDeviceList().size()>0){
+			for (InspectionPlanDevice planDevice:inspectionPlan.getDeviceList()
+				 ) {
+				planDevice.setPlanId(inspectionPlan.getId());
+				planDeviceMapper.insert(planDevice);
+				//宸℃璁″垝璁惧鍏蜂綋搴忓垪鍙�
+				if (planDevice.getSerialList()!=null&&planDevice.getSerialList().size()>0){
+					planDevice.getSerialList().stream().forEach(item->{
+						InspectionPlanDeviceSerial serial = new InspectionPlanDeviceSerial();
+						serial.setSerialNo(item);
+						serial.setPlanDeviceId(planDevice.getId());
+						planDeviceSerialMapper.insert(serial);
+					});
+				}
+				//宸℃璁″垝宸℃鏍囧噯
+				if (planDevice.getStandardsList()!=null&&planDevice.getStandardsList().size()>0){
+					planDevice.getStandardsList().stream().forEach(item->{
+						InspectionPlanDeviceStandards standards = new InspectionPlanDeviceStandards();
+						standards.setStandardId(item);
+						standards.setPlanDeviceId(planDevice.getId());
+						planDeviceStandardMapper.insert(standards);
+					});
+				}
+			}
+		}
+
+		//鏍规嵁鏄惁鐢熸垚浠诲姟鏍囪瘑鐢熸垚浠诲姟
+		if (inspectionPlan.getTaskFlag()==1){
+			InspectionTask task = BeanUtil.copyProperties(inspectionPlan, InspectionTask.class);
+			task.setId(null);
+			task.setTaskStatus(0);
+			task.setTaskName(inspectionPlan.getPlanName()+"鐨勪换鍔�");
+			task.setPlanId(inspectionPlan.getId());
+			taskMapper.insert(task);
+
+			//浠诲姟鏄庣粏
+			if (inspectionPlan.getDeviceList()!=null&&inspectionPlan.getDeviceList().size()>0){
+				for (InspectionPlanDevice planDevice:inspectionPlan.getDeviceList()
+				) {
+					//宸℃璁″垝璁惧鍏蜂綋搴忓垪鍙�
+					if (planDevice.getSerialList()!=null&&planDevice.getSerialList().size()>0){
+						for (String serial:planDevice.getSerialList()
+							 ) {
+							//宸℃璁″垝宸℃鏍囧噯
+							if (planDevice.getStandardsList()!=null&&planDevice.getStandardsList().size()>0){
+								for (Long standardId:planDevice.getStandardsList()
+								) {
+									InspectionTaskItem item = new InspectionTaskItem();
+									item.setDeviceId(planDevice.getDeviceId());
+									item.setTaskId(task.getId());
+									item.setStandardId(standardId);
+									item.setSerialNo(serial);
+									taskItemMapper.insert(item);
+								}
+							}
+						}
+
+					}
+
+				}
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public IPage pageNew(Page page, InspectionPlanQueryDTO queryDTO) {
+		return baseMapper.page(page,queryDTO);
+	}
+
+	@Override
+	public InspectionPlan getByIdNew(Long id) {
+		InspectionPlan plan = baseMapper.selectById(id);
+		QueryWrapper<InspectionPlanDevice> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("plan_id",id);
+		List<InspectionPlanDevice> planDeviceList = planDeviceMapper.selectList(queryWrapper);
+		if (planDeviceList.size()>0){
+			planDeviceList.stream().forEach(device->{
+				List<String> serials = planDeviceSerialMapper.selectSerialList(device.getId());
+				if (serials.size()>0) {
+					device.setSerialList(serials);
+				}
+				List<Long> standardIdList = planDeviceStandardMapper.selectStandardIdList(device.getId());
+				if (standardIdList.size()>0) {
+					device.setStandardsList(standardIdList);
+				}
+			});
+		}
+		plan.setDeviceList(planDeviceList);
+		return plan;
+	}
+
+	@Override
+	public boolean updateByIdNew(InspectionPlan inspectionPlan) {
+		baseMapper.updateById(inspectionPlan);
+
+		//璁″垝涓庤澶囧叧鑱�
+		if (inspectionPlan.getDeviceList()!=null&&inspectionPlan.getDeviceList().size()>0){
+			for (InspectionPlanDevice planDevice:inspectionPlan.getDeviceList()
+			) {
+				planDevice.setPlanId(inspectionPlan.getId());
+
+				if (planDevice.getId()!=null){
+					planDeviceMapper.updateById(planDevice);
+				}else {
+					planDeviceMapper.insert(planDevice);
+				}
+				//宸℃璁″垝璁惧鍏蜂綋搴忓垪鍙�
+				if (planDevice.getSerialList()!=null&&planDevice.getSerialList().size()>0){
+					QueryWrapper<InspectionPlanDeviceSerial> queryWrapper = new QueryWrapper<>();
+					queryWrapper.eq("plan_device_id",planDevice.getId());
+					planDeviceSerialMapper.delete(queryWrapper);
+					planDevice.getSerialList().stream().forEach(item->{
+						InspectionPlanDeviceSerial serial = new InspectionPlanDeviceSerial();
+						serial.setSerialNo(item);
+						serial.setPlanDeviceId(planDevice.getId());
+						planDeviceSerialMapper.insert(serial);
+					});
+				}
+				//宸℃璁″垝宸℃鏍囧噯
+				if (planDevice.getStandardsList()!=null&&planDevice.getStandardsList().size()>0){
+					QueryWrapper<InspectionPlanDeviceStandards> queryWrapper = new QueryWrapper<>();
+					queryWrapper.eq("plan_device_id",planDevice.getId());
+					planDeviceStandardMapper.delete(queryWrapper);
+					planDevice.getStandardsList().stream().forEach(item->{
+						InspectionPlanDeviceStandards standards = new InspectionPlanDeviceStandards();
+						standards.setStandardId(item);
+						standards.setPlanDeviceId(planDevice.getId());
+						planDeviceStandardMapper.insert(standards);
+					});
+				}
+			}
+		}
+
+		//鏍规嵁鏄惁鐢熸垚浠诲姟鏍囪瘑鐢熸垚浠诲姟
+		if (inspectionPlan.getTaskFlag()==1){
+			InspectionTask task = BeanUtil.copyProperties(inspectionPlan, InspectionTask.class);
+			task.setId(null);
+			task.setTaskStatus(0);
+			task.setTaskName(inspectionPlan.getPlanName()+"鐨勪换鍔�");
+			task.setPlanId(inspectionPlan.getId());
+			taskMapper.insert(task);
+
+			//浠诲姟鏄庣粏
+			if (inspectionPlan.getDeviceList()!=null&&inspectionPlan.getDeviceList().size()>0){
+				for (InspectionPlanDevice planDevice:inspectionPlan.getDeviceList()
+				) {
+					//宸℃璁″垝璁惧鍏蜂綋搴忓垪鍙�
+					if (planDevice.getSerialList()!=null&&planDevice.getSerialList().size()>0){
+						for (String serial:planDevice.getSerialList()
+						) {
+							//宸℃璁″垝宸℃鏍囧噯
+							if (planDevice.getStandardsList()!=null&&planDevice.getStandardsList().size()>0){
+								for (Long standardId:planDevice.getStandardsList()
+								) {
+									InspectionTaskItem item = new InspectionTaskItem();
+									item.setDeviceId(planDevice.getDeviceId());
+									item.setTaskId(task.getId());
+									item.setStandardId(standardId);
+									item.setSerialNo(serial);
+									taskItemMapper.insert(item);
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public R gentTask(Long id) {
+		InspectionPlan plan = getByIdNew(id);
+		InspectionTask task = BeanUtil.copyProperties(plan, InspectionTask.class);
+		task.setId(null);
+		task.setTaskStatus(0);
+		task.setTaskName(plan.getPlanName()+"鐨勪换鍔�");
+		task.setPlanId(plan.getId());
+		taskMapper.insert(task);
+
+		//浠诲姟鏄庣粏
+		if (plan.getDeviceList()!=null&&plan.getDeviceList().size()>0){
+			for (InspectionPlanDevice planDevice:plan.getDeviceList()
+			) {
+				//宸℃璁″垝璁惧鍏蜂綋搴忓垪鍙�
+				if (planDevice.getSerialList()!=null&&planDevice.getSerialList().size()>0){
+					for (String serial:planDevice.getSerialList()
+					) {
+						//宸℃璁″垝宸℃鏍囧噯
+						if (planDevice.getStandardsList()!=null&&planDevice.getStandardsList().size()>0){
+							for (Long standardId:planDevice.getStandardsList()
+							) {
+								InspectionTaskItem item = new InspectionTaskItem();
+								item.setDeviceId(planDevice.getDeviceId());
+								item.setTaskId(task.getId());
+								item.setStandardId(standardId);
+								item.setSerialNo(serial);
+								taskItemMapper.insert(item);
+							}
+						}
+					}
+
+				}
+
+			}
+		}
+
+		//璺熸柊璁″垝鏍囪瘑
+		plan.setTaskFlag(1);
+		baseMapper.updateById(plan);
+		return R.ok();
+	}
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionStandardsServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionStandardsServiceImpl.java
new file mode 100644
index 0000000..d265031
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionStandardsServiceImpl.java
@@ -0,0 +1,24 @@
+package com.by4cloud.platformx.device.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.device.entity.InspectionStandards;
+import com.by4cloud.platformx.device.mapper.InspectionStandardsMapper;
+import com.by4cloud.platformx.device.service.InspectionStandardsService;
+import org.springframework.stereotype.Service;
+/**
+ * 宸℃鏍囧噯
+ *
+ * @author syt
+ * @date 2025-04-22 09:13:46
+ */
+@Service
+public class InspectionStandardsServiceImpl extends ServiceImpl<InspectionStandardsMapper, InspectionStandards> implements InspectionStandardsService {
+	@Override
+	public R openOrOffById(Long id, Integer status) {
+		InspectionStandards standards = baseMapper.selectById(id);
+		standards.setStatus(status);
+		baseMapper.updateById(standards);
+		return R.ok();
+	}
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionTaskServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionTaskServiceImpl.java
new file mode 100644
index 0000000..631c268
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InspectionTaskServiceImpl.java
@@ -0,0 +1,64 @@
+package com.by4cloud.platformx.device.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.admin.api.entity.SysUser;
+import com.by4cloud.platformx.device.dto.InspectionTaskQueryDTO;
+import com.by4cloud.platformx.device.entity.InspectionTask;
+import com.by4cloud.platformx.device.entity.InspectionTaskItem;
+import com.by4cloud.platformx.device.mapper.InspectionTaskItemMapper;
+import com.by4cloud.platformx.device.mapper.InspectionTaskMapper;
+import com.by4cloud.platformx.device.service.InspectionTaskService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 宸℃浠诲姟
+ *
+ * @author syt
+ * @date 2025-04-22 09:15:32
+ */
+@Service
+@AllArgsConstructor
+public class InspectionTaskServiceImpl extends ServiceImpl<InspectionTaskMapper, InspectionTask> implements InspectionTaskService {
+
+	private final InspectionTaskItemMapper itemMapper;
+
+	@Override
+	public IPage pageNew(Page page, InspectionTaskQueryDTO queryDTO) {
+		return baseMapper.page(page,queryDTO);
+	}
+
+	@Override
+	public InspectionTask getByIdNew(Long id) {
+		InspectionTask task = baseMapper.selectById(id);
+		QueryWrapper<InspectionTaskItem> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("task_id",id);
+		List<InspectionTaskItem> taskItemList = itemMapper.selectList(queryWrapper);
+		task.setItemList(taskItemList);
+		return task;
+	}
+
+	@Override
+	public boolean updateByIdNew(InspectionTask inspectionTask) {
+		inspectionTask.getItemList().stream().forEach(item->{
+			itemMapper.updateById(item);
+		});
+		inspectionTask.setTaskStatus(2);
+		baseMapper.updateById(inspectionTask);
+		return true;
+	}
+
+	@Override
+	public boolean taskStartById(Long id) {
+		InspectionTask task = baseMapper.selectById(id);
+		task.setTaskStatus(1);
+		baseMapper.updateById(task);
+		return true;
+	}
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/WorkOrderServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/WorkOrderServiceImpl.java
new file mode 100644
index 0000000..2f05f68
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/WorkOrderServiceImpl.java
@@ -0,0 +1,16 @@
+package com.by4cloud.platformx.device.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.device.entity.WorkOrder;
+import com.by4cloud.platformx.device.mapper.WorkOrderMapper;
+import com.by4cloud.platformx.device.service.WorkOrderService;
+import org.springframework.stereotype.Service;
+/**
+ * 宸ュ崟
+ *
+ * @author syt
+ * @date 2025-04-22 16:01:37
+ */
+@Service
+public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml
index 4b53857..d644fdc 100644
--- a/platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml
+++ b/platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml
@@ -27,7 +27,8 @@
 			dr.serial_no,
 			dr.repair_start_date,
 			dr.repair_end_date,
-			dr.status
+			dr.status,
+		    dr.wo_flag
 		from
 			device_repair dr
 		join device d on
diff --git a/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceMapper.xml b/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceMapper.xml
new file mode 100644
index 0000000..f3c9777
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceMapper.xml
@@ -0,0 +1,17 @@
+<?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="com.by4cloud.platformx.device.mapper.InspectionPlanDeviceMapper">
+
+	<resultMap id="inspectionPlanDeviceMap" type="com.by4cloud.platformx.device.entity.InspectionPlanDevice">
+		<id property="id" column="id"/>
+		<result property="compId" column="comp_id"/>
+		<result property="deviceId" column="device_id"/>
+		<result property="planId" column="plan_id"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createTime" column="create_time"/>
+		<result property="updateBy" column="update_by"/>
+		<result property="updateTime" column="update_time"/>
+		<result property="delFlag" column="del_flag"/>
+	</resultMap>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceSerialMapper.xml b/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceSerialMapper.xml
new file mode 100644
index 0000000..4f12656
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceSerialMapper.xml
@@ -0,0 +1,26 @@
+<?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="com.by4cloud.platformx.device.mapper.InspectionPlanDeviceSerialMapper">
+
+	<resultMap id="inspectionPlanDeviceSerialMap" type="com.by4cloud.platformx.device.entity.InspectionPlanDeviceSerial">
+		<id property="id" column="id"/>
+		<result property="compId" column="comp_id"/>
+		<result property="planDeviceId" column="plan_device_id"/>
+		<result property="serialNo" column="serial_no"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createTime" column="create_time"/>
+		<result property="updateBy" column="update_by"/>
+		<result property="updateTime" column="update_time"/>
+		<result property="delFlag" column="del_flag"/>
+	</resultMap>
+    <select id="selectSerialList" resultType="java.lang.String">
+		select
+			serial_no
+		from
+			inspection_plan_device_serial
+		where
+			del_flag = '0'
+		and plan_device_id = #{id}
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceStandardMapper.xml b/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceStandardMapper.xml
new file mode 100644
index 0000000..6e40b39
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InspectionPlanDeviceStandardMapper.xml
@@ -0,0 +1,25 @@
+<?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="com.by4cloud.platformx.device.mapper.InspectionPlanDeviceStandardMapper">
+
+	<resultMap id="inspectionPlanDeviceStandardMap" type="com.by4cloud.platformx.device.entity.InspectionPlanDeviceStandards">
+		<id property="id" column="id"/>
+		<result property="compId" column="comp_id"/>
+		<result property="standardId" column="standard_id"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createTime" column="create_time"/>
+		<result property="updateBy" column="update_by"/>
+		<result property="updateTime" column="update_time"/>
+		<result property="delFlag" column="del_flag"/>
+	</resultMap>
+    <select id="selectStandardIdList" resultType="java.lang.Long">
+		select
+			standard_id
+		from
+			inspection_plan_device_standard
+		where
+			del_flag = '0'
+		and plan_device_id = #{id}
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/InspectionPlanMapper.xml b/platformx-device-biz/src/main/resources/mapper/InspectionPlanMapper.xml
new file mode 100644
index 0000000..922b33a
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InspectionPlanMapper.xml
@@ -0,0 +1,40 @@
+<?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="com.by4cloud.platformx.device.mapper.InspectionPlanMapper">
+
+  <resultMap id="inspectionPlanMap" type="com.by4cloud.platformx.device.entity.InspectionPlan">
+        <id property="id" column="id"/>
+        <result property="compId" column="comp_id"/>
+        <result property="endTime" column="end_time"/>
+        <result property="inspectionUserId" column="inspection_user_id"/>
+        <result property="planName" column="plan_name"/>
+        <result property="startTime" column="start_time"/>
+        <result property="taskFlag" column="task_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+  </resultMap>
+    <select id="page" resultType="com.by4cloud.platformx.device.entity.vo.InspectionPlanPageVo">
+		select
+			ip.id,
+			ip.plan_name,
+			ip.inspection_user_id,
+			ip.start_time,
+			ip.end_time,
+			ip.task_flag,
+			su.name inspectionUserName
+		from
+			inspection_plan ip
+				join platformxx_boot.sys_user su on
+				su.user_id = ip.inspection_user_id
+		where
+			ip.del_flag = '0'
+		<if test="queryDTO.planName != null and queryDTO.planName != ''">
+			and ip.plan_name like CONCAT('%', #{queryDTO.planName}, '%')
+		</if>
+			order by ip.create_time desc
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/InspectionStandardsMapper.xml b/platformx-device-biz/src/main/resources/mapper/InspectionStandardsMapper.xml
new file mode 100644
index 0000000..176797e
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InspectionStandardsMapper.xml
@@ -0,0 +1,17 @@
+<?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="com.by4cloud.platformx.device.mapper.InspectionStandardsMapper">
+
+  <resultMap id="inspectionStandardsMap" type="com.by4cloud.platformx.device.entity.InspectionStandards">
+        <id property="id" column="id"/>
+        <result property="compId" column="comp_id"/>
+        <result property="standardsContent" column="standards_content"/>
+        <result property="standardsName" column="standards_name"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+  </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/InspectionTaskItemMapper.xml b/platformx-device-biz/src/main/resources/mapper/InspectionTaskItemMapper.xml
new file mode 100644
index 0000000..8b6d687
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InspectionTaskItemMapper.xml
@@ -0,0 +1,20 @@
+<?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="com.by4cloud.platformx.device.mapper.InspectionTaskItemMapper">
+
+	<resultMap id="inspectionTaskItemMap" type="com.by4cloud.platformx.device.entity.InspectionTaskItem">
+		<id property="id" column="id"/>
+		<result property="compId" column="comp_id"/>
+		<result property="deviceId" column="device_id"/>
+		<result property="inspectionResults" column="inspection_results"/>
+		<result property="serialNo" column="serial_no"/>
+		<result property="standardId" column="standard_id"/>
+		<result property="taskId" column="task_id"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createTime" column="create_time"/>
+		<result property="updateBy" column="update_by"/>
+		<result property="updateTime" column="update_time"/>
+		<result property="delFlag" column="del_flag"/>
+	</resultMap>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/InspectionTaskMapper.xml b/platformx-device-biz/src/main/resources/mapper/InspectionTaskMapper.xml
new file mode 100644
index 0000000..37b7539
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InspectionTaskMapper.xml
@@ -0,0 +1,40 @@
+<?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="com.by4cloud.platformx.device.mapper.InspectionTaskMapper">
+
+  <resultMap id="inspectionTaskMap" type="com.by4cloud.platformx.device.entity.InspectionTask">
+        <id property="id" column="id"/>
+        <result property="compId" column="comp_id"/>
+        <result property="endTime" column="end_time"/>
+        <result property="inspectionUserId" column="inspection_user_id"/>
+        <result property="startTime" column="start_time"/>
+        <result property="taskName" column="task_name"/>
+        <result property="taskStatus" column="task_status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+  </resultMap>
+    <select id="page" resultType="com.by4cloud.platformx.device.entity.vo.InspectionTaskPageVo">
+		select
+			it.id,
+			it.task_name ,
+			it.inspection_user_id,
+			it.start_time,
+			it.end_time,
+			it.task_status ,
+			su.name inspectionUserName
+		from
+			inspection_task it
+				join platformxx_boot.sys_user su on
+				su.user_id = it.inspection_user_id
+		where
+			it.del_flag = '0'
+		<if test="queryDTO.taskName != null and queryDTO.taskName != ''">
+			and ip.task_name like CONCAT('%', #{queryDTO.taskName}, '%')
+		</if>
+		order by it.create_time desc
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/WorkOrderMapper.xml b/platformx-device-biz/src/main/resources/mapper/WorkOrderMapper.xml
new file mode 100644
index 0000000..335cd0e
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/WorkOrderMapper.xml
@@ -0,0 +1,25 @@
+<?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="com.by4cloud.platformx.device.mapper.WorkOrderMapper">
+
+  <resultMap id="workOrderMap" type="com.by4cloud.platformx.device.entity.WorkOrder">
+        <id property="id" column="id"/>
+        <result property="compId" column="comp_id"/>
+        <result property="handleDesc" column="handle_desc"/>
+        <result property="handlePic" column="handle_pic"/>
+        <result property="handleTime" column="handle_time"/>
+        <result property="handleUserId" column="handle_user_id"/>
+        <result property="handleUserName" column="handle_user_name"/>
+        <result property="woType" column="wo_type"/>
+        <result property="repairId" column="repair_id"/>
+        <result property="woCode" column="wo_code"/>
+        <result property="woDesc" column="wo_desc"/>
+        <result property="woStatus" column="wo_status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+  </resultMap>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1