diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvMaintenanceOrderDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvMaintenanceOrderDao.java
new file mode 100644
index 00000000..d80217e3
--- /dev/null
+++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvMaintenanceOrderDao.java
@@ -0,0 +1,18 @@
+package com.glxp.api.admin.dao.inventory;
+
+import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderEntity;
+
+public interface InvMaintenanceOrderDao {
+
+ int deleteByPrimaryKey(Integer id);
+
+ int insert(InvMaintenanceOrderEntity record);
+
+ int insertSelective(InvMaintenanceOrderEntity record);
+
+ InvMaintenanceOrderEntity selectByPrimaryKey(Integer id);
+
+ int updateByPrimaryKeySelective(InvMaintenanceOrderEntity record);
+
+ int updateByPrimaryKey(InvMaintenanceOrderEntity record);
+}
\ No newline at end of file
diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvMaintenanceOrderDetailDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvMaintenanceOrderDetailDao.java
new file mode 100644
index 00000000..5c178f4f
--- /dev/null
+++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvMaintenanceOrderDetailDao.java
@@ -0,0 +1,18 @@
+package com.glxp.api.admin.dao.inventory;
+
+import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity;
+
+public interface InvMaintenanceOrderDetailDao {
+
+ int deleteByPrimaryKey(Integer id);
+
+ int insert(InvMaintenanceOrderDetailEntity record);
+
+ int insertSelective(InvMaintenanceOrderDetailEntity record);
+
+ InvMaintenanceOrderDetailEntity selectByPrimaryKey(Integer id);
+
+ int updateByPrimaryKeySelective(InvMaintenanceOrderDetailEntity record);
+
+ int updateByPrimaryKey(InvMaintenanceOrderDetailEntity record);
+}
\ No newline at end of file
diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvMaintenanceOrderDetailEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvMaintenanceOrderDetailEntity.java
new file mode 100644
index 00000000..8bb2b3bd
--- /dev/null
+++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvMaintenanceOrderDetailEntity.java
@@ -0,0 +1,67 @@
+package com.glxp.api.admin.entity.inventory;
+
+import lombok.Data;
+
+/**
+ * 养护单据详情表
+ */
+@Data
+public class InvMaintenanceOrderDetailEntity {
+
+ private Integer id;
+
+ /**
+ * 养护记录号
+ */
+ private String orderIdFk;
+
+ /**
+ * 条码
+ */
+ private String code;
+
+ /**
+ * 产品ID
+ */
+ private String productId;
+
+ /**
+ * DI标识
+ */
+ private String nameCode;
+
+ /**
+ * 批次号
+ */
+ private String batchNo;
+
+ /**
+ * 生产日期
+ */
+ private String produceDate;
+
+ /**
+ * 失效日期
+ */
+ private String expireDate;
+
+ /**
+ * 养护数量
+ */
+ private Integer count;
+
+ /**
+ * 养护状态
+ */
+ private Boolean maintenanceStatus;
+
+ /**
+ * 设备状态
+ */
+ private Boolean deviceStatus;
+
+ /**
+ * 备注
+ */
+ private String remark;
+}
\ No newline at end of file
diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvMaintenanceOrderEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvMaintenanceOrderEntity.java
new file mode 100644
index 00000000..1c506cd4
--- /dev/null
+++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvMaintenanceOrderEntity.java
@@ -0,0 +1,62 @@
+package com.glxp.api.admin.entity.inventory;
+
+import lombok.Data;
+
+/**
+ * 养护记录表
+ */
+@Data
+public class InvMaintenanceOrderEntity {
+
+ private Integer id;
+
+ /**
+ * 养护记录号
+ */
+ private String orderId;
+
+ /**
+ * 分库码
+ */
+ private String invWarehouseCode;
+
+ /**
+ * 货位码
+ */
+ private String invSpaceCode;
+
+ /**
+ * 状态 0:草稿 1:未审核 2:已完成
+ */
+ private Boolean status;
+
+ /**
+ * 养护日期
+ */
+ private String createTime;
+
+ /**
+ * 更新时间
+ */
+ private String updateTime;
+
+ /**
+ * 审核时间
+ */
+ private String auditTime;
+
+ /**
+ * 养护人
+ */
+ private String createUser;
+
+ /**
+ * 审核人
+ */
+ private String auditUser;
+
+ /**
+ * 备注
+ */
+ private String remark;
+}
\ No newline at end of file
diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvMaintenanceOrderDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvMaintenanceOrderDao.xml
new file mode 100644
index 00000000..f43cc62f
--- /dev/null
+++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvMaintenanceOrderDao.xml
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,
+ orderId,
+ invWarehouseCode,
+ invSpaceCode,
+ `status`,
+ createTime,
+ updateTime,
+ auditTime,
+ `createUser`,
+ auditUser,
+ remark
+
+
+
+
+
+ delete
+ from inv_maintenance_order
+ where id = #{id,jdbcType=INTEGER}
+
+
+
+ insert into inv_maintenance_order (orderId, invWarehouseCode, invSpaceCode,
+ `status`, createTime, updateTime,
+ auditTime, `createUser`, auditUser,
+ remark)
+ values (#{orderId,jdbcType=VARCHAR}, #{invWarehouseCode,jdbcType=VARCHAR}, #{invSpaceCode,jdbcType=VARCHAR},
+ #{status,jdbcType=BOOLEAN}, #{createTime,jdbcType=VARCHAR}, #{updateTime,jdbcType=VARCHAR},
+ #{auditTime,jdbcType=VARCHAR}, #{createUser,jdbcType=VARCHAR}, #{auditUser,jdbcType=VARCHAR},
+ #{remark,jdbcType=VARCHAR})
+
+
+
+ insert into inv_maintenance_order
+
+
+ orderId,
+
+
+ invWarehouseCode,
+
+
+ invSpaceCode,
+
+
+ `status`,
+
+
+ createTime,
+
+
+ updateTime,
+
+
+ auditTime,
+
+
+ `createUser`,
+
+
+ auditUser,
+
+
+ remark,
+
+
+
+
+ #{orderId,jdbcType=VARCHAR},
+
+
+ #{invWarehouseCode,jdbcType=VARCHAR},
+
+
+ #{invSpaceCode,jdbcType=VARCHAR},
+
+
+ #{status,jdbcType=BOOLEAN},
+
+
+ #{createTime,jdbcType=VARCHAR},
+
+
+ #{updateTime,jdbcType=VARCHAR},
+
+
+ #{auditTime,jdbcType=VARCHAR},
+
+
+ #{createUser,jdbcType=VARCHAR},
+
+
+ #{auditUser,jdbcType=VARCHAR},
+
+
+ #{remark,jdbcType=VARCHAR},
+
+
+
+
+
+ update inv_maintenance_order
+
+
+ orderId = #{orderId,jdbcType=VARCHAR},
+
+
+ invWarehouseCode = #{invWarehouseCode,jdbcType=VARCHAR},
+
+
+ invSpaceCode = #{invSpaceCode,jdbcType=VARCHAR},
+
+
+ `status` = #{status,jdbcType=BOOLEAN},
+
+
+ createTime = #{createTime,jdbcType=VARCHAR},
+
+
+ updateTime = #{updateTime,jdbcType=VARCHAR},
+
+
+ auditTime = #{auditTime,jdbcType=VARCHAR},
+
+
+ `createUser` = #{createUser,jdbcType=VARCHAR},
+
+
+ auditUser = #{auditUser,jdbcType=VARCHAR},
+
+
+ remark = #{remark,jdbcType=VARCHAR},
+
+
+ where id = #{id,jdbcType=INTEGER}
+
+
+
+ update inv_maintenance_order
+ set orderId = #{orderId,jdbcType=VARCHAR},
+ invWarehouseCode = #{invWarehouseCode,jdbcType=VARCHAR},
+ invSpaceCode = #{invSpaceCode,jdbcType=VARCHAR},
+ `status` = #{status,jdbcType=BOOLEAN},
+ createTime = #{createTime,jdbcType=VARCHAR},
+ updateTime = #{updateTime,jdbcType=VARCHAR},
+ auditTime = #{auditTime,jdbcType=VARCHAR},
+ `createUser` = #{createUser,jdbcType=VARCHAR},
+ auditUser = #{auditUser,jdbcType=VARCHAR},
+ remark = #{remark,jdbcType=VARCHAR}
+ where id = #{id,jdbcType=INTEGER}
+
+
+
\ No newline at end of file
diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvMaintenanceOrderDetailDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvMaintenanceOrderDetailDao.xml
new file mode 100644
index 00000000..3ab15d67
--- /dev/null
+++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvMaintenanceOrderDetailDao.xml
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,
+ orderIdFk,
+ code,
+ productId,
+ nameCode,
+ batchNo,
+ produceDate,
+ expireDate,
+ `count`,
+ maintenanceStatus,
+ deviceStatus,
+ remark
+
+
+
+
+
+ delete
+ from inv_maintenance_order_detail
+ where id = #{id,jdbcType=INTEGER}
+
+
+
+ insert into inv_maintenance_order_detail (orderIdFk, code, productId,
+ nameCode, batchNo, produceDate,
+ expireDate, `count`, maintenanceStatus,
+ deviceStatus, remark)
+ values (#{orderIdFk,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR}, #{productId,jdbcType=VARCHAR},
+ #{nameCode,jdbcType=VARCHAR}, #{batchNo,jdbcType=VARCHAR}, #{produceDate,jdbcType=VARCHAR},
+ #{expireDate,jdbcType=VARCHAR}, #{count,jdbcType=INTEGER}, #{maintenanceStatus,jdbcType=BOOLEAN},
+ #{deviceStatus,jdbcType=BOOLEAN}, #{remark,jdbcType=VARCHAR})
+
+
+
+ insert into inv_maintenance_order_detail
+
+
+ orderIdFk,
+
+
+ code,
+
+
+ productId,
+
+
+ nameCode,
+
+
+ batchNo,
+
+
+ produceDate,
+
+
+ expireDate,
+
+
+ `count`,
+
+
+ maintenanceStatus,
+
+
+ deviceStatus,
+
+
+ remark,
+
+
+
+
+ #{orderIdFk,jdbcType=VARCHAR},
+
+
+ #{code,jdbcType=VARCHAR},
+
+
+ #{productId,jdbcType=VARCHAR},
+
+
+ #{nameCode,jdbcType=VARCHAR},
+
+
+ #{batchNo,jdbcType=VARCHAR},
+
+
+ #{produceDate,jdbcType=VARCHAR},
+
+
+ #{expireDate,jdbcType=VARCHAR},
+
+
+ #{count,jdbcType=INTEGER},
+
+
+ #{maintenanceStatus,jdbcType=BOOLEAN},
+
+
+ #{deviceStatus,jdbcType=BOOLEAN},
+
+
+ #{remark,jdbcType=VARCHAR},
+
+
+
+
+
+ update inv_maintenance_order_detail
+
+
+ orderIdFk = #{orderIdFk,jdbcType=VARCHAR},
+
+
+ code = #{code,jdbcType=VARCHAR},
+
+
+ productId = #{productId,jdbcType=VARCHAR},
+
+
+ nameCode = #{nameCode,jdbcType=VARCHAR},
+
+
+ batchNo = #{batchNo,jdbcType=VARCHAR},
+
+
+ produceDate = #{produceDate,jdbcType=VARCHAR},
+
+
+ expireDate = #{expireDate,jdbcType=VARCHAR},
+
+
+ `count` = #{count,jdbcType=INTEGER},
+
+
+ maintenanceStatus = #{maintenanceStatus,jdbcType=BOOLEAN},
+
+
+ deviceStatus = #{deviceStatus,jdbcType=BOOLEAN},
+
+
+ remark = #{remark,jdbcType=VARCHAR},
+
+
+ where id = #{id,jdbcType=INTEGER}
+
+
+
+ update inv_maintenance_order_detail
+ set orderIdFk = #{orderIdFk,jdbcType=VARCHAR},
+ code = #{code,jdbcType=VARCHAR},
+ productId = #{productId,jdbcType=VARCHAR},
+ nameCode = #{nameCode,jdbcType=VARCHAR},
+ batchNo = #{batchNo,jdbcType=VARCHAR},
+ produceDate = #{produceDate,jdbcType=VARCHAR},
+ expireDate = #{expireDate,jdbcType=VARCHAR},
+ `count` = #{count,jdbcType=INTEGER},
+ maintenanceStatus = #{maintenanceStatus,jdbcType=BOOLEAN},
+ deviceStatus = #{deviceStatus,jdbcType=BOOLEAN},
+ remark = #{remark,jdbcType=VARCHAR}
+ where id = #{id,jdbcType=INTEGER}
+
+
\ No newline at end of file
diff --git a/scripts/库存养护功能表.sql b/scripts/库存养护功能表.sql
new file mode 100644
index 00000000..065eec21
--- /dev/null
+++ b/scripts/库存养护功能表.sql
@@ -0,0 +1,37 @@
+DROP TABLE IF EXISTS `inv_maintenance_order`;
+CREATE TABLE `inv_maintenance_order` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `orderId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '养护记录号',
+ `invWarehouseCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分库码',
+ `invSpaceCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '货位码',
+ `status` tinyint(1) NULL DEFAULT NULL COMMENT '状态 0:草稿 1:未审核 2:已完成',
+ `createTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '养护日期',
+ `updateTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新时间',
+ `auditTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审核时间',
+ `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '养护人',
+ `auditUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审核人',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '养护记录表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Table structure for inv_maintenance_order_detail
+-- ----------------------------
+DROP TABLE IF EXISTS `inv_maintenance_order_detail`;
+CREATE TABLE `inv_maintenance_order_detail` (
+ `id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `orderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '养护记录号',
+ `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '条码',
+ `productId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '产品ID',
+ `nameCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'DI标识',
+ `batchNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '批次号',
+ `produceDate` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生产日期',
+ `expireDate` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '失效日期',
+ `count` int NULL DEFAULT NULL COMMENT '养护数量',
+ `maintenanceStatus` tinyint(1) NULL DEFAULT NULL COMMENT '养护状态',
+ `deviceStatus` tinyint(1) NULL DEFAULT NULL COMMENT '设备状态',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '养护单据详情表' ROW_FORMAT = Dynamic;
+
+SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file