From 63b4909ac5d0b7355be211cc7080673b41cdb3cc Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei>
Date: 星期三, 04 三月 2026 14:46:02 +0800
Subject: [PATCH] refactor(module(qa)): 代码重构

---
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IStoreSilkInfoService.java             |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/FeedmatchTimeDataMapper.java            |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/StoreSilkInfoMapper.java                |    6 
 ruoyi-plus-soybean/src/views/analy/roller/index.vue                                                                     |  355 +-
 ruoyi-plus-soybean/src/views/qm/batch/modules/batch-operate-drawer.vue                                                  |  250 +
 ruoyi-plus-soybean/src/views/md/shift/index.vue                                                                         |  295 +-
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/FeedmatchTimeDataBo.java             |    5 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/MdShift.java                               |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/HoisterTimeDataController.java      |    8 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/PackerTimeDataController.java       |    8 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/mapper/QmBatchMapper.java                         |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/QmBatch.java                               |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/IQmBatchService.java                      |    6 
 ruoyi-plus-soybean/src/views/analy/packer/index.vue                                                                     |  429 +-
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/PackerTimeDataVo.java                |    4 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IRollerTimeDataService.java            |    6 
 ruoyi-plus-soybean/src/typings/api/analy.feed-match.api.d.ts                                                            |  211 
 ruoyi-plus-soybean/src/views/analy/feed-match/modules/feed-match-operate-drawer.vue                                     |  222 +
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/service/IMdShiftService.java                      |    6 
 ruoyi-plus-soybean/src/service/api/analy/hoister-data.ts                                                                |   46 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/FeedmatchTimeDataServiceImpl.java |   12 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/PackerTimeDataServiceImpl.java    |   12 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/vo/QmBatchVo.java                          |   10 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/md/MdShiftMapper.xml                                 |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IFeedmatchTimeDataService.java         |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/FeedmatchTimeDataController.java    |    8 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/RollerTimeDataServiceImpl.java    |   12 
 ruoyi-plus-soybean/src/service/api/analy/store-silk.ts                                                                  |   46 
 ruoyi-plus-soybean/src/service/api/qm/batch.ts                                                                          |   46 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/PackerTimeDataMapper.java               |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/HoisterTimeDataMapper.java              |    6 
 ruoyi-plus-soybean/src/views/analy/hoister/index.vue                                                                    |  607 ++--
 ruoyi-plus-soybean/src/views/analy/output-analy/index.vue                                                               |  260 +-
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/bo/MdShiftBo.java                          |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/TransTimeData.java                      |    2 
 ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-search.vue                                              |   20 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/controller/QmBatchController.java                 |    8 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/PackerTimeDataMapper.xml                       |    2 
 ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-operate-drawer.vue                                        |  123 
 ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-search.vue                                                |   16 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/RollerTimeDataVo.java                |    4 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/vo/MdShiftVo.java                          |   10 
 ruoyi-plus-soybean/src/views/analy/feed-match/index.vue                                                                 |  463 +-
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/FeedmatchTimeDataMapper.xml                    |    2 
 ruoyi-plus-soybean/src/service/api/analy/packer-data.ts                                                                 |   46 
 ruoyi-plus-soybean/src/typings/api/analy.hoister-data.api.d.ts                                                          |  284 +-
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/MakeupTimeData.java                     |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/FeedmatchTimeData.java                  |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/mapper/MdShiftMapper.java                         |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/RollerTimeDataMapper.java               |    8 
 ruoyi-plus-soybean/src/service/api/analy/feed-match.ts                                                                  |   46 
 ruoyi-plus-soybean/src/typings/api/analy.roller-data.api.d.ts                                                           |  226 
 ruoyi-plus-soybean/src/typings/api/qm.batch.api.d.ts                                                                    |  342 +-
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/HoisterTimeData.java                    |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/HoisterTimeDataServiceImpl.java   |   12 
 ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-operate-drawer.vue                                  |  128 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/BoxTimeData.java                        |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/RollerTimeDataBo.java                |    4 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/RollerTimeDataMapper.xml                       |    4 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/RollerTimeDataController.java       |    8 
 ruoyi-plus-soybean/src/service/api/analy/roller-data.ts                                                                 |   50 
 ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-operate-drawer.vue                                     |   72 
 ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-search.vue                                          |   16 
 ruoyi-plus-soybean/src/views/qm/batch/index.vue                                                                         |  709 +++---
 ruoyi-plus-soybean/src/typings/api/analy.store-silk.api.d.ts                                                            |  123 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/HoisterTimeDataBo.java               |    4 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/StoreSilkInfoBo.java                 |    5 
 ruoyi-plus-soybean/src/views/analy/store-silk/index.vue                                                                 |  264 +-
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/StoreSilkInfoServiceImpl.java     |   17 
 ruoyi-plus-soybean/src/typings/api/md.shift.api.d.ts                                                                    |  128 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/StoreSilkInfo.java                      |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IHoisterTimeDataService.java           |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/FeedmatchTimeDataVo.java             |   10 
 ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-operate-drawer.vue                                      |  221 +
 ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue                                             |   93 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/StoreSilkInfoController.java        |    9 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/HoisterTimeDataVo.java               |    4 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmBatchServiceImpl.java              |   12 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/StoreSilkInfoMapper.xml                        |    2 
 ruoyi-plus-soybean/src/views/md/shift/modules/shift-operate-drawer.vue                                                  |   80 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/controller/MdShiftController.java                 |    8 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IPackerTimeDataService.java            |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/bo/QmBatchBo.java                          |    6 
 ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-operate-drawer.vue                                        |  145 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/service/impl/MdShiftServiceImpl.java              |   12 
 /dev/null                                                                                                               |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/RollerTimeData.java                     |    2 
 ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-line-chart.vue                                      |    6 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/qm/QmBatchMapper.xml                                 |    2 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/StoreSilkInfoVo.java                 |   10 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/PackerTimeDataBo.java                |    4 
 ruoyi-plus-soybean/src/typings/api/analy.packer-data.api.d.ts                                                           |  242 +-
 ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-search.vue                                                |   16 
 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/PackerTimeData.java                     |    2 
 ruoyi-plus-soybean/src/service/api/md/shift.ts                                                                          |   46 
 95 files changed, 3,737 insertions(+), 3,293 deletions(-)

diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/FeedmatchTimeDataController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/FeedmatchTimeDataController.java
similarity index 93%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/FeedmatchTimeDataController.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/FeedmatchTimeDataController.java
index 40eff2c..4829c90 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/FeedmatchTimeDataController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/FeedmatchTimeDataController.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.controller;
+package org.dromara.qa.analy.controller;
 
 import java.util.Date;
 import java.util.List;
@@ -18,9 +18,9 @@
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.analy.domain.vo.FeedmatchTimeDataVo;
-import org.dromara.analy.domain.bo.FeedmatchTimeDataBo;
-import org.dromara.analy.service.IFeedmatchTimeDataService;
+import org.dromara.qa.analy.domain.vo.FeedmatchTimeDataVo;
+import org.dromara.qa.analy.domain.bo.FeedmatchTimeDataBo;
+import org.dromara.qa.analy.service.IFeedmatchTimeDataService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/HoisterTimeDataController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/HoisterTimeDataController.java
old mode 100755
new mode 100644
similarity index 93%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/HoisterTimeDataController.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/HoisterTimeDataController.java
index 38a1ec6..4446f51
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/HoisterTimeDataController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/HoisterTimeDataController.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.controller;
+package org.dromara.qa.analy.controller;
 
 import java.util.Date;
 import java.util.List;
@@ -18,9 +18,9 @@
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.analy.domain.vo.HoisterTimeDataVo;
-import org.dromara.analy.domain.bo.HoisterTimeDataBo;
-import org.dromara.analy.service.IHoisterTimeDataService;
+import org.dromara.qa.analy.domain.vo.HoisterTimeDataVo;
+import org.dromara.qa.analy.domain.bo.HoisterTimeDataBo;
+import org.dromara.qa.analy.service.IHoisterTimeDataService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/PackerTimeDataController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/PackerTimeDataController.java
old mode 100755
new mode 100644
similarity index 93%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/PackerTimeDataController.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/PackerTimeDataController.java
index 889bcab..2d43d86
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/PackerTimeDataController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/PackerTimeDataController.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.controller;
+package org.dromara.qa.analy.controller;
 
 import java.util.Date;
 import java.util.List;
@@ -18,9 +18,9 @@
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.analy.domain.vo.PackerTimeDataVo;
-import org.dromara.analy.domain.bo.PackerTimeDataBo;
-import org.dromara.analy.service.IPackerTimeDataService;
+import org.dromara.qa.analy.domain.vo.PackerTimeDataVo;
+import org.dromara.qa.analy.domain.bo.PackerTimeDataBo;
+import org.dromara.qa.analy.service.IPackerTimeDataService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/RollerTimeDataController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/RollerTimeDataController.java
old mode 100755
new mode 100644
similarity index 94%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/RollerTimeDataController.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/RollerTimeDataController.java
index 1a0aeba..c37c56e
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/RollerTimeDataController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/RollerTimeDataController.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.controller;
+package org.dromara.qa.analy.controller;
 
 import java.util.Date;
 import java.util.List;
@@ -18,9 +18,9 @@
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.analy.domain.vo.RollerTimeDataVo;
-import org.dromara.analy.domain.bo.RollerTimeDataBo;
-import org.dromara.analy.service.IRollerTimeDataService;
+import org.dromara.qa.analy.domain.vo.RollerTimeDataVo;
+import org.dromara.qa.analy.domain.bo.RollerTimeDataBo;
+import org.dromara.qa.analy.service.IRollerTimeDataService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/StoreSilkInfoController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/StoreSilkInfoController.java
similarity index 93%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/StoreSilkInfoController.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/StoreSilkInfoController.java
index e8c9fa4..12f83ac 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/controller/StoreSilkInfoController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/controller/StoreSilkInfoController.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.controller;
+package org.dromara.qa.analy.controller;
 
 import java.util.List;
 
@@ -17,9 +17,9 @@
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.analy.domain.vo.StoreSilkInfoVo;
-import org.dromara.analy.domain.bo.StoreSilkInfoBo;
-import org.dromara.analy.service.IStoreSilkInfoService;
+import org.dromara.qa.analy.domain.vo.StoreSilkInfoVo;
+import org.dromara.qa.analy.domain.bo.StoreSilkInfoBo;
+import org.dromara.qa.analy.service.IStoreSilkInfoService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**
@@ -42,7 +42,6 @@
     @SaCheckPermission("analy:storeSilk:list")
     @GetMapping("/list")
     public TableDataInfo<StoreSilkInfoVo> list(StoreSilkInfoBo bo, PageQuery pageQuery) {
-
         return storeSilkInfoService.queryPageList(bo, pageQuery);
     }
 
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/BoxTimeData.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/BoxTimeData.java
old mode 100755
new mode 100644
similarity index 96%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/BoxTimeData.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/BoxTimeData.java
index ce28789..50d2cba
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/BoxTimeData.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/BoxTimeData.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.domain;
+package org.dromara.qa.analy.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/FeedmatchTimeData.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/FeedmatchTimeData.java
similarity index 98%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/FeedmatchTimeData.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/FeedmatchTimeData.java
index a53d88a..89246a0 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/FeedmatchTimeData.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/FeedmatchTimeData.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.domain;
+package org.dromara.qa.analy.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/HoisterTimeData.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/HoisterTimeData.java
old mode 100755
new mode 100644
similarity index 98%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/HoisterTimeData.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/HoisterTimeData.java
index 657af87..9a61f68
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/HoisterTimeData.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/HoisterTimeData.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.domain;
+package org.dromara.qa.analy.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/MakeupTimeData.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/MakeupTimeData.java
old mode 100755
new mode 100644
similarity index 96%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/MakeupTimeData.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/MakeupTimeData.java
index 1d1ca3e..2aa5b2e
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/MakeupTimeData.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/MakeupTimeData.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.domain;
+package org.dromara.qa.analy.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/PackerTimeData.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/PackerTimeData.java
old mode 100755
new mode 100644
similarity index 98%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/PackerTimeData.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/PackerTimeData.java
index 5c0fa40..4e73c4d
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/PackerTimeData.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/PackerTimeData.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.domain;
+package org.dromara.qa.analy.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/RollerTimeData.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/RollerTimeData.java
old mode 100755
new mode 100644
similarity index 97%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/RollerTimeData.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/RollerTimeData.java
index 3d32fa6..1ac9359
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/RollerTimeData.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/RollerTimeData.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.domain;
+package org.dromara.qa.analy.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/StoreSilkInfo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/StoreSilkInfo.java
similarity index 96%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/StoreSilkInfo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/StoreSilkInfo.java
index 5732f7c..db4371a 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/StoreSilkInfo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/StoreSilkInfo.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.domain;
+package org.dromara.qa.analy.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/TransTimeData.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/TransTimeData.java
old mode 100755
new mode 100644
similarity index 98%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/TransTimeData.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/TransTimeData.java
index 71a79cd..a40b032
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/TransTimeData.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/TransTimeData.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.domain;
+package org.dromara.qa.analy.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/FeedmatchTimeDataBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/FeedmatchTimeDataBo.java
similarity index 95%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/FeedmatchTimeDataBo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/FeedmatchTimeDataBo.java
index 7cbf1c4..d9ed78b 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/FeedmatchTimeDataBo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/FeedmatchTimeDataBo.java
@@ -1,6 +1,6 @@
-package org.dromara.analy.domain.bo;
+package org.dromara.qa.analy.domain.bo;
 
-import org.dromara.analy.domain.FeedmatchTimeData;
+import org.dromara.qa.analy.domain.FeedmatchTimeData;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -9,7 +9,6 @@
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 鍠備笣鏈哄搴斿叧绯讳笟鍔″璞� feedmatch_time_data
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/HoisterTimeDataBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/HoisterTimeDataBo.java
old mode 100755
new mode 100644
similarity index 97%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/HoisterTimeDataBo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/HoisterTimeDataBo.java
index 1dc38d7..1d72002
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/HoisterTimeDataBo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/HoisterTimeDataBo.java
@@ -1,6 +1,6 @@
-package org.dromara.analy.domain.bo;
+package org.dromara.qa.analy.domain.bo;
 
-import org.dromara.analy.domain.HoisterTimeData;
+import org.dromara.qa.analy.domain.HoisterTimeData;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/PackerTimeDataBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/PackerTimeDataBo.java
old mode 100755
new mode 100644
similarity index 96%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/PackerTimeDataBo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/PackerTimeDataBo.java
index 3a9bebe..c50302d
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/PackerTimeDataBo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/PackerTimeDataBo.java
@@ -1,6 +1,6 @@
-package org.dromara.analy.domain.bo;
+package org.dromara.qa.analy.domain.bo;
 
-import org.dromara.analy.domain.PackerTimeData;
+import org.dromara.qa.analy.domain.PackerTimeData;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/RollerTimeDataBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/RollerTimeDataBo.java
old mode 100755
new mode 100644
similarity index 95%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/RollerTimeDataBo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/RollerTimeDataBo.java
index 96ee174..2f28f36
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/RollerTimeDataBo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/RollerTimeDataBo.java
@@ -1,6 +1,6 @@
-package org.dromara.analy.domain.bo;
+package org.dromara.qa.analy.domain.bo;
 
-import org.dromara.analy.domain.RollerTimeData;
+import org.dromara.qa.analy.domain.RollerTimeData;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/StoreSilkInfoBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/StoreSilkInfoBo.java
similarity index 91%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/StoreSilkInfoBo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/StoreSilkInfoBo.java
index 23a5268..9d61f4d 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/bo/StoreSilkInfoBo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/bo/StoreSilkInfoBo.java
@@ -1,6 +1,6 @@
-package org.dromara.analy.domain.bo;
+package org.dromara.qa.analy.domain.bo;
 
-import org.dromara.analy.domain.StoreSilkInfo;
+import org.dromara.qa.analy.domain.StoreSilkInfo;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -9,7 +9,6 @@
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 鍌ㄤ笣鏌滀骇閲忎笟鍔″璞� oracle_store_silk
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/FeedmatchTimeDataVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/FeedmatchTimeDataVo.java
similarity index 93%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/FeedmatchTimeDataVo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/FeedmatchTimeDataVo.java
index a34f951..1bd52f5 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/FeedmatchTimeDataVo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/FeedmatchTimeDataVo.java
@@ -1,19 +1,15 @@
-package org.dromara.analy.domain.vo;
+package org.dromara.qa.analy.domain.vo;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.analy.domain.FeedmatchTimeData;
+
+import org.dromara.qa.analy.domain.FeedmatchTimeData;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
-
 
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/HoisterTimeDataVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/HoisterTimeDataVo.java
old mode 100755
new mode 100644
similarity index 98%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/HoisterTimeDataVo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/HoisterTimeDataVo.java
index 5ba8112..409d25c
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/HoisterTimeDataVo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/HoisterTimeDataVo.java
@@ -1,9 +1,9 @@
-package org.dromara.analy.domain.vo;
+package org.dromara.qa.analy.domain.vo;
 
 import java.util.Date;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.dromara.analy.domain.HoisterTimeData;
+import org.dromara.qa.analy.domain.HoisterTimeData;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
 import io.github.linpeilie.annotations.AutoMapper;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/PackerTimeDataVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/PackerTimeDataVo.java
old mode 100755
new mode 100644
similarity index 97%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/PackerTimeDataVo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/PackerTimeDataVo.java
index 641d26f..b532154
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/PackerTimeDataVo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/PackerTimeDataVo.java
@@ -1,8 +1,8 @@
-package org.dromara.analy.domain.vo;
+package org.dromara.qa.analy.domain.vo;
 
 import java.util.Date;
 
-import org.dromara.analy.domain.PackerTimeData;
+import org.dromara.qa.analy.domain.PackerTimeData;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
 import org.dromara.common.excel.annotation.ExcelDictFormat;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/RollerTimeDataVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/RollerTimeDataVo.java
old mode 100755
new mode 100644
similarity index 96%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/RollerTimeDataVo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/RollerTimeDataVo.java
index c5303dc..fb345f1
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/RollerTimeDataVo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/RollerTimeDataVo.java
@@ -1,8 +1,8 @@
-package org.dromara.analy.domain.vo;
+package org.dromara.qa.analy.domain.vo;
 
 import java.util.Date;
 
-import org.dromara.analy.domain.RollerTimeData;
+import org.dromara.qa.analy.domain.RollerTimeData;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
 import io.github.linpeilie.annotations.AutoMapper;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/StoreSilkInfoVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/StoreSilkInfoVo.java
similarity index 86%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/StoreSilkInfoVo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/StoreSilkInfoVo.java
index 0622110..2613db3 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/domain/vo/StoreSilkInfoVo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/domain/vo/StoreSilkInfoVo.java
@@ -1,19 +1,15 @@
-package org.dromara.analy.domain.vo;
+package org.dromara.qa.analy.domain.vo;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.analy.domain.StoreSilkInfo;
+
+import org.dromara.qa.analy.domain.StoreSilkInfo;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
-
 
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/FeedmatchTimeDataMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/FeedmatchTimeDataMapper.java
similarity index 63%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/FeedmatchTimeDataMapper.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/FeedmatchTimeDataMapper.java
index 94940e1..aa8b465 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/FeedmatchTimeDataMapper.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/FeedmatchTimeDataMapper.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.mapper;
+package org.dromara.qa.analy.mapper;
 
-import org.dromara.analy.domain.FeedmatchTimeData;
-import org.dromara.analy.domain.vo.FeedmatchTimeDataVo;
+import org.dromara.qa.analy.domain.FeedmatchTimeData;
+import org.dromara.qa.analy.domain.vo.FeedmatchTimeDataVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/HoisterTimeDataMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/HoisterTimeDataMapper.java
old mode 100755
new mode 100644
similarity index 63%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/HoisterTimeDataMapper.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/HoisterTimeDataMapper.java
index c4740eb..0dc7087
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/HoisterTimeDataMapper.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/HoisterTimeDataMapper.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.mapper;
+package org.dromara.qa.analy.mapper;
 
-import org.dromara.analy.domain.HoisterTimeData;
-import org.dromara.analy.domain.vo.HoisterTimeDataVo;
+import org.dromara.qa.analy.domain.HoisterTimeData;
+import org.dromara.qa.analy.domain.vo.HoisterTimeDataVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/PackerTimeDataMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/PackerTimeDataMapper.java
old mode 100755
new mode 100644
similarity index 63%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/PackerTimeDataMapper.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/PackerTimeDataMapper.java
index dbff000..2c27254
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/PackerTimeDataMapper.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/PackerTimeDataMapper.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.mapper;
+package org.dromara.qa.analy.mapper;
 
-import org.dromara.analy.domain.PackerTimeData;
-import org.dromara.analy.domain.vo.PackerTimeDataVo;
+import org.dromara.qa.analy.domain.PackerTimeData;
+import org.dromara.qa.analy.domain.vo.PackerTimeDataVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/RollerTimeDataMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/RollerTimeDataMapper.java
old mode 100755
new mode 100644
similarity index 72%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/RollerTimeDataMapper.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/RollerTimeDataMapper.java
index 01c8e35..4da64a3
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/RollerTimeDataMapper.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/RollerTimeDataMapper.java
@@ -1,8 +1,8 @@
-package org.dromara.analy.mapper;
+package org.dromara.qa.analy.mapper;
 
-import org.dromara.analy.domain.RollerTimeData;
-import org.dromara.analy.domain.bo.RollerTimeDataBo;
-import org.dromara.analy.domain.vo.RollerTimeDataVo;
+import org.dromara.qa.analy.domain.RollerTimeData;
+import org.dromara.qa.analy.domain.bo.RollerTimeDataBo;
+import org.dromara.qa.analy.domain.vo.RollerTimeDataVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 import org.apache.ibatis.annotations.Param;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/StoreSilkInfoMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/StoreSilkInfoMapper.java
similarity index 63%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/StoreSilkInfoMapper.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/StoreSilkInfoMapper.java
index c988c3b..0821a32 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/mapper/StoreSilkInfoMapper.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/mapper/StoreSilkInfoMapper.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.mapper;
+package org.dromara.qa.analy.mapper;
 
-import org.dromara.analy.domain.StoreSilkInfo;
-import org.dromara.analy.domain.vo.StoreSilkInfoVo;
+import org.dromara.qa.analy.domain.StoreSilkInfo;
+import org.dromara.qa.analy.domain.vo.StoreSilkInfoVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IFeedmatchTimeDataService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IFeedmatchTimeDataService.java
similarity index 91%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IFeedmatchTimeDataService.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IFeedmatchTimeDataService.java
index aadf438..ee11892 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IFeedmatchTimeDataService.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IFeedmatchTimeDataService.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.service;
+package org.dromara.qa.analy.service;
 
-import org.dromara.analy.domain.vo.FeedmatchTimeDataVo;
-import org.dromara.analy.domain.bo.FeedmatchTimeDataBo;
+import org.dromara.qa.analy.domain.vo.FeedmatchTimeDataVo;
+import org.dromara.qa.analy.domain.bo.FeedmatchTimeDataBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IHoisterTimeDataService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IHoisterTimeDataService.java
old mode 100755
new mode 100644
similarity index 90%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IHoisterTimeDataService.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IHoisterTimeDataService.java
index 1481fe0..4aa3ccb
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IHoisterTimeDataService.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IHoisterTimeDataService.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.service;
+package org.dromara.qa.analy.service;
 
-import org.dromara.analy.domain.vo.HoisterTimeDataVo;
-import org.dromara.analy.domain.bo.HoisterTimeDataBo;
+import org.dromara.qa.analy.domain.vo.HoisterTimeDataVo;
+import org.dromara.qa.analy.domain.bo.HoisterTimeDataBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IPackerTimeDataService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IPackerTimeDataService.java
old mode 100755
new mode 100644
similarity index 91%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IPackerTimeDataService.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IPackerTimeDataService.java
index 022e20e..a6a4bce
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IPackerTimeDataService.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IPackerTimeDataService.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.service;
+package org.dromara.qa.analy.service;
 
-import org.dromara.analy.domain.vo.PackerTimeDataVo;
-import org.dromara.analy.domain.bo.PackerTimeDataBo;
+import org.dromara.qa.analy.domain.vo.PackerTimeDataVo;
+import org.dromara.qa.analy.domain.bo.PackerTimeDataBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IRollerTimeDataService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IRollerTimeDataService.java
old mode 100755
new mode 100644
similarity index 92%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IRollerTimeDataService.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IRollerTimeDataService.java
index b0900fa..885a39e
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IRollerTimeDataService.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IRollerTimeDataService.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.service;
+package org.dromara.qa.analy.service;
 
-import org.dromara.analy.domain.vo.RollerTimeDataVo;
-import org.dromara.analy.domain.bo.RollerTimeDataBo;
+import org.dromara.qa.analy.domain.vo.RollerTimeDataVo;
+import org.dromara.qa.analy.domain.bo.RollerTimeDataBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IStoreSilkInfoService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IStoreSilkInfoService.java
similarity index 90%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IStoreSilkInfoService.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IStoreSilkInfoService.java
index 10c5157..7c7115c 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/IStoreSilkInfoService.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/IStoreSilkInfoService.java
@@ -1,7 +1,7 @@
-package org.dromara.analy.service;
+package org.dromara.qa.analy.service;
 
-import org.dromara.analy.domain.vo.StoreSilkInfoVo;
-import org.dromara.analy.domain.bo.StoreSilkInfoBo;
+import org.dromara.qa.analy.domain.vo.StoreSilkInfoVo;
+import org.dromara.qa.analy.domain.bo.StoreSilkInfoBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/FeedmatchTimeDataServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/FeedmatchTimeDataServiceImpl.java
similarity index 91%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/FeedmatchTimeDataServiceImpl.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/FeedmatchTimeDataServiceImpl.java
index 6169935..4095578 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/FeedmatchTimeDataServiceImpl.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/FeedmatchTimeDataServiceImpl.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.service.impl;
+package org.dromara.qa.analy.service.impl;
 
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -10,11 +10,11 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.dromara.analy.domain.bo.FeedmatchTimeDataBo;
-import org.dromara.analy.domain.vo.FeedmatchTimeDataVo;
-import org.dromara.analy.domain.FeedmatchTimeData;
-import org.dromara.analy.mapper.FeedmatchTimeDataMapper;
-import org.dromara.analy.service.IFeedmatchTimeDataService;
+import org.dromara.qa.analy.domain.bo.FeedmatchTimeDataBo;
+import org.dromara.qa.analy.domain.vo.FeedmatchTimeDataVo;
+import org.dromara.qa.analy.domain.FeedmatchTimeData;
+import org.dromara.qa.analy.mapper.FeedmatchTimeDataMapper;
+import org.dromara.qa.analy.service.IFeedmatchTimeDataService;
 
 import java.util.Date;
 import java.util.List;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/HoisterTimeDataServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/HoisterTimeDataServiceImpl.java
old mode 100755
new mode 100644
similarity index 92%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/HoisterTimeDataServiceImpl.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/HoisterTimeDataServiceImpl.java
index 67a4dc3..eab06fb
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/HoisterTimeDataServiceImpl.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/HoisterTimeDataServiceImpl.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.service.impl;
+package org.dromara.qa.analy.service.impl;
 
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -10,11 +10,11 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.dromara.analy.domain.bo.HoisterTimeDataBo;
-import org.dromara.analy.domain.vo.HoisterTimeDataVo;
-import org.dromara.analy.domain.HoisterTimeData;
-import org.dromara.analy.mapper.HoisterTimeDataMapper;
-import org.dromara.analy.service.IHoisterTimeDataService;
+import org.dromara.qa.analy.domain.bo.HoisterTimeDataBo;
+import org.dromara.qa.analy.domain.vo.HoisterTimeDataVo;
+import org.dromara.qa.analy.domain.HoisterTimeData;
+import org.dromara.qa.analy.mapper.HoisterTimeDataMapper;
+import org.dromara.qa.analy.service.IHoisterTimeDataService;
 
 import java.util.Date;
 import java.util.List;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/PackerTimeDataServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/PackerTimeDataServiceImpl.java
old mode 100755
new mode 100644
similarity index 94%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/PackerTimeDataServiceImpl.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/PackerTimeDataServiceImpl.java
index dc5b6cf..64eee1a
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/PackerTimeDataServiceImpl.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/PackerTimeDataServiceImpl.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.service.impl;
+package org.dromara.qa.analy.service.impl;
 
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -10,11 +10,11 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.dromara.analy.domain.bo.PackerTimeDataBo;
-import org.dromara.analy.domain.vo.PackerTimeDataVo;
-import org.dromara.analy.domain.PackerTimeData;
-import org.dromara.analy.mapper.PackerTimeDataMapper;
-import org.dromara.analy.service.IPackerTimeDataService;
+import org.dromara.qa.analy.domain.bo.PackerTimeDataBo;
+import org.dromara.qa.analy.domain.vo.PackerTimeDataVo;
+import org.dromara.qa.analy.domain.PackerTimeData;
+import org.dromara.qa.analy.mapper.PackerTimeDataMapper;
+import org.dromara.qa.analy.service.IPackerTimeDataService;
 
 import java.util.Date;
 import java.util.List;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/RollerTimeDataServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/RollerTimeDataServiceImpl.java
old mode 100755
new mode 100644
similarity index 94%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/RollerTimeDataServiceImpl.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/RollerTimeDataServiceImpl.java
index 15af2f4..11e65c6
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/RollerTimeDataServiceImpl.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/RollerTimeDataServiceImpl.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.service.impl;
+package org.dromara.qa.analy.service.impl;
 
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -10,11 +10,11 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.dromara.analy.domain.bo.RollerTimeDataBo;
-import org.dromara.analy.domain.vo.RollerTimeDataVo;
-import org.dromara.analy.domain.RollerTimeData;
-import org.dromara.analy.mapper.RollerTimeDataMapper;
-import org.dromara.analy.service.IRollerTimeDataService;
+import org.dromara.qa.analy.domain.bo.RollerTimeDataBo;
+import org.dromara.qa.analy.domain.vo.RollerTimeDataVo;
+import org.dromara.qa.analy.domain.RollerTimeData;
+import org.dromara.qa.analy.mapper.RollerTimeDataMapper;
+import org.dromara.qa.analy.service.IRollerTimeDataService;
 
 import java.util.Date;
 import java.util.List;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/StoreSilkInfoServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/StoreSilkInfoServiceImpl.java
similarity index 91%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/StoreSilkInfoServiceImpl.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/StoreSilkInfoServiceImpl.java
index 389179e..5747535 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/analy/service/impl/StoreSilkInfoServiceImpl.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/analy/service/impl/StoreSilkInfoServiceImpl.java
@@ -1,4 +1,4 @@
-package org.dromara.analy.service.impl;
+package org.dromara.qa.analy.service.impl;
 
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -10,18 +10,16 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.dromara.analy.domain.bo.StoreSilkInfoBo;
-import org.dromara.analy.domain.vo.StoreSilkInfoVo;
-import org.dromara.analy.domain.StoreSilkInfo;
-import org.dromara.analy.mapper.StoreSilkInfoMapper;
-import org.dromara.analy.service.IStoreSilkInfoService;
-import org.dromara.analy.mapper.FeedmatchTimeDataMapper;
-import org.dromara.analy.domain.FeedmatchTimeData;
+import org.dromara.qa.analy.domain.bo.StoreSilkInfoBo;
+import org.dromara.qa.analy.domain.vo.StoreSilkInfoVo;
+import org.dromara.qa.analy.domain.StoreSilkInfo;
+import org.dromara.qa.analy.mapper.StoreSilkInfoMapper;
+import org.dromara.qa.analy.service.IStoreSilkInfoService;
+import org.dromara.qa.analy.mapper.FeedmatchTimeDataMapper;
 
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
-import java.util.HashMap;
 
 /**
  * 鍌ㄤ笣鏌滀骇閲廠ervice涓氬姟灞傚鐞�
@@ -71,6 +69,7 @@
         List<StoreSilkInfoVo> storeSilkInfoList = page.getRecords();
 
         for (int i = 0; i < storeSilkInfoList.size(); i++) {
+            //
             StoreSilkInfoVo storeSilkInfoVo = storeSilkInfoList.get(i);
 
         }
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/controller/MdShiftController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/controller/MdShiftController.java
similarity index 94%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/controller/MdShiftController.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/controller/MdShiftController.java
index f2dfddb..00510c0 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/controller/MdShiftController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/controller/MdShiftController.java
@@ -1,4 +1,4 @@
-package org.dromara.md.controller;
+package org.dromara.qa.md.controller;
 
 import java.util.List;
 
@@ -18,9 +18,9 @@
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.md.domain.vo.MdShiftVo;
-import org.dromara.md.domain.bo.MdShiftBo;
-import org.dromara.md.service.IMdShiftService;
+import org.dromara.qa.md.domain.vo.MdShiftVo;
+import org.dromara.qa.md.domain.bo.MdShiftBo;
+import org.dromara.qa.md.service.IMdShiftService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/MdShift.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/MdShift.java
similarity index 97%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/MdShift.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/MdShift.java
index 66a2245..f994d81 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/MdShift.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/MdShift.java
@@ -1,4 +1,4 @@
-package org.dromara.md.domain;
+package org.dromara.qa.md.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/bo/MdShiftBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/bo/MdShiftBo.java
similarity index 88%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/bo/MdShiftBo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/bo/MdShiftBo.java
index c2af352..8f1b2e2 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/bo/MdShiftBo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/bo/MdShiftBo.java
@@ -1,15 +1,13 @@
-package org.dromara.md.domain.bo;
+package org.dromara.qa.md.domain.bo;
 
-import org.dromara.md.domain.MdShift;
+import org.dromara.qa.md.domain.MdShift;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 鐝涓氬姟瀵硅薄 MD_SHIFT
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/vo/MdShiftVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/vo/MdShiftVo.java
similarity index 87%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/vo/MdShiftVo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/vo/MdShiftVo.java
index c456247..3677076 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/domain/vo/MdShiftVo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/domain/vo/MdShiftVo.java
@@ -1,19 +1,15 @@
-package org.dromara.md.domain.vo;
+package org.dromara.qa.md.domain.vo;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.md.domain.MdShift;
+
+import org.dromara.qa.md.domain.MdShift;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
-
 
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/mapper/MdShiftMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/mapper/MdShiftMapper.java
similarity index 64%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/mapper/MdShiftMapper.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/mapper/MdShiftMapper.java
index 836d099..0b63be4 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/mapper/MdShiftMapper.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/mapper/MdShiftMapper.java
@@ -1,7 +1,7 @@
-package org.dromara.md.mapper;
+package org.dromara.qa.md.mapper;
 
-import org.dromara.md.domain.MdShift;
-import org.dromara.md.domain.vo.MdShiftVo;
+import org.dromara.qa.md.domain.MdShift;
+import org.dromara.qa.md.domain.vo.MdShiftVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/service/IMdShiftService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/service/IMdShiftService.java
similarity index 91%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/service/IMdShiftService.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/service/IMdShiftService.java
index 9d38f20..a2593ca 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/service/IMdShiftService.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/service/IMdShiftService.java
@@ -1,7 +1,7 @@
-package org.dromara.md.service;
+package org.dromara.qa.md.service;
 
-import org.dromara.md.domain.vo.MdShiftVo;
-import org.dromara.md.domain.bo.MdShiftBo;
+import org.dromara.qa.md.domain.vo.MdShiftVo;
+import org.dromara.qa.md.domain.bo.MdShiftBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/service/impl/MdShiftServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/service/impl/MdShiftServiceImpl.java
similarity index 93%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/service/impl/MdShiftServiceImpl.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/service/impl/MdShiftServiceImpl.java
index ccfe635..018eb89 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/md/service/impl/MdShiftServiceImpl.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/md/service/impl/MdShiftServiceImpl.java
@@ -1,4 +1,4 @@
-package org.dromara.md.service.impl;
+package org.dromara.qa.md.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import org.dromara.common.core.utils.MapstructUtils;
@@ -11,11 +11,11 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.dromara.md.domain.bo.MdShiftBo;
-import org.dromara.md.domain.vo.MdShiftVo;
-import org.dromara.md.domain.MdShift;
-import org.dromara.md.mapper.MdShiftMapper;
-import org.dromara.md.service.IMdShiftService;
+import org.dromara.qa.md.domain.bo.MdShiftBo;
+import org.dromara.qa.md.domain.vo.MdShiftVo;
+import org.dromara.qa.md.domain.MdShift;
+import org.dromara.qa.md.mapper.MdShiftMapper;
+import org.dromara.qa.md.service.IMdShiftService;
 
 import java.util.List;
 import java.util.Map;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/controller/QmBatchController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/controller/QmBatchController.java
similarity index 94%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/controller/QmBatchController.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/controller/QmBatchController.java
index fba4085..8e7c62e 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/controller/QmBatchController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/controller/QmBatchController.java
@@ -1,4 +1,4 @@
-package org.dromara.qm.controller;
+package org.dromara.qa.qm.controller;
 
 import java.util.List;
 
@@ -17,9 +17,9 @@
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.qm.domain.vo.QmBatchVo;
-import org.dromara.qm.domain.bo.QmBatchBo;
-import org.dromara.qm.service.IQmBatchService;
+import org.dromara.qa.qm.domain.vo.QmBatchVo;
+import org.dromara.qa.qm.domain.bo.QmBatchBo;
+import org.dromara.qa.qm.service.IQmBatchService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/QmBatch.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/QmBatch.java
similarity index 98%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/QmBatch.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/QmBatch.java
index 709a2ae..d5ff6ca 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/QmBatch.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/QmBatch.java
@@ -1,4 +1,4 @@
-package org.dromara.qm.domain;
+package org.dromara.qa.qm.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/bo/QmBatchBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/bo/QmBatchBo.java
similarity index 95%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/bo/QmBatchBo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/bo/QmBatchBo.java
index 36bf7af..c3c4404 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/bo/QmBatchBo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/bo/QmBatchBo.java
@@ -1,15 +1,13 @@
-package org.dromara.qm.domain.bo;
+package org.dromara.qa.qm.domain.bo;
 
-import org.dromara.qm.domain.QmBatch;
+import org.dromara.qa.qm.domain.QmBatch;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 妫�楠屾壒娆′笟鍔″璞� qm_batch
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/vo/QmBatchVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/vo/QmBatchVo.java
similarity index 95%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/vo/QmBatchVo.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/vo/QmBatchVo.java
index ae17bed..4d3132f 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/domain/vo/QmBatchVo.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/domain/vo/QmBatchVo.java
@@ -1,19 +1,15 @@
-package org.dromara.qm.domain.vo;
+package org.dromara.qa.qm.domain.vo;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.qm.domain.QmBatch;
+
+import org.dromara.qa.qm.domain.QmBatch;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
-
 
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/mapper/QmBatchMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/mapper/QmBatchMapper.java
similarity index 64%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/mapper/QmBatchMapper.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/mapper/QmBatchMapper.java
index 0539e73..f14c8ff 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/mapper/QmBatchMapper.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/mapper/QmBatchMapper.java
@@ -1,7 +1,7 @@
-package org.dromara.qm.mapper;
+package org.dromara.qa.qm.mapper;
 
-import org.dromara.qm.domain.QmBatch;
-import org.dromara.qm.domain.vo.QmBatchVo;
+import org.dromara.qa.qm.domain.QmBatch;
+import org.dromara.qa.qm.domain.vo.QmBatchVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/service/IQmBatchService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/IQmBatchService.java
similarity index 91%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/service/IQmBatchService.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/IQmBatchService.java
index 5d99bea..ae7a291 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/service/IQmBatchService.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/IQmBatchService.java
@@ -1,7 +1,7 @@
-package org.dromara.qm.service;
+package org.dromara.qa.qm.service;
 
-import org.dromara.qm.domain.vo.QmBatchVo;
-import org.dromara.qm.domain.bo.QmBatchBo;
+import org.dromara.qa.qm.domain.vo.QmBatchVo;
+import org.dromara.qa.qm.domain.bo.QmBatchBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/service/impl/QmBatchServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmBatchServiceImpl.java
similarity index 94%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/service/impl/QmBatchServiceImpl.java
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmBatchServiceImpl.java
index afa7942..9e89b0e 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qm/service/impl/QmBatchServiceImpl.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmBatchServiceImpl.java
@@ -1,4 +1,4 @@
-package org.dromara.qm.service.impl;
+package org.dromara.qa.qm.service.impl;
 
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -10,11 +10,11 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.dromara.qm.domain.bo.QmBatchBo;
-import org.dromara.qm.domain.vo.QmBatchVo;
-import org.dromara.qm.domain.QmBatch;
-import org.dromara.qm.mapper.QmBatchMapper;
-import org.dromara.qm.service.IQmBatchService;
+import org.dromara.qa.qm.domain.bo.QmBatchBo;
+import org.dromara.qa.qm.domain.vo.QmBatchVo;
+import org.dromara.qa.qm.domain.QmBatch;
+import org.dromara.qa.qm.mapper.QmBatchMapper;
+import org.dromara.qa.qm.service.IQmBatchService;
 
 import java.util.List;
 import java.util.Map;
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/StoreSilkInfoMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/StoreSilkInfoMapper.xml
deleted file mode 100644
index 7ba13f7..0000000
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/StoreSilkInfoMapper.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?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="org.dromara.analy.mapper.StoreSilkInfoMapper">
-</mapper>
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/PackerTimeDataMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/FeedmatchTimeDataMapper.xml
old mode 100755
new mode 100644
similarity index 70%
copy from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/PackerTimeDataMapper.xml
copy to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/FeedmatchTimeDataMapper.xml
index df94b48..f04c4d5
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/PackerTimeDataMapper.xml
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/FeedmatchTimeDataMapper.xml
@@ -2,5 +2,5 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.analy.mapper.PackerTimeDataMapper">
+<mapper namespace="org.dromara.qa.analy.mapper.FeedmatchTimeDataMapper">
 </mapper>
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/FeedmatchTimeDataMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/PackerTimeDataMapper.xml
similarity index 73%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/FeedmatchTimeDataMapper.xml
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/PackerTimeDataMapper.xml
index 2c37079..1355691 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/FeedmatchTimeDataMapper.xml
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/PackerTimeDataMapper.xml
@@ -2,5 +2,5 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.analy.mapper.FeedmatchTimeDataMapper">
+<mapper namespace="org.dromara.qa.analy.mapper.PackerTimeDataMapper">
 </mapper>
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/RollerTimeDataMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/RollerTimeDataMapper.xml
old mode 100755
new mode 100644
similarity index 93%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/RollerTimeDataMapper.xml
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/RollerTimeDataMapper.xml
index c4d1793..4b9394d
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/RollerTimeDataMapper.xml
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/RollerTimeDataMapper.xml
@@ -2,9 +2,9 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.analy.mapper.RollerTimeDataMapper">
+<mapper namespace="org.dromara.qa.analy.mapper.RollerTimeDataMapper">
 
-    <select id="selectSampledList" resultType="org.dromara.analy.domain.vo.RollerTimeDataVo">
+    <select id="selectSampledList" resultType="org.dromara.qa.analy.domain.vo.RollerTimeDataVo">
         WITH roller_minute AS (
             SELECT
             *,
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/PackerTimeDataMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/StoreSilkInfoMapper.xml
old mode 100755
new mode 100644
similarity index 71%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/PackerTimeDataMapper.xml
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/StoreSilkInfoMapper.xml
index df94b48..5d9b83a
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/analy/PackerTimeDataMapper.xml
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/analy/StoreSilkInfoMapper.xml
@@ -2,5 +2,5 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.analy.mapper.PackerTimeDataMapper">
+<mapper namespace="org.dromara.qa.analy.mapper.StoreSilkInfoMapper">
 </mapper>
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/md/MdShiftMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/md/MdShiftMapper.xml
similarity index 74%
rename from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/md/MdShiftMapper.xml
rename to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/md/MdShiftMapper.xml
index 552cf76..ec2216e 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/md/MdShiftMapper.xml
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/md/MdShiftMapper.xml
@@ -2,5 +2,5 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.md.mapper.MdShiftMapper">
+<mapper namespace="org.dromara.qa.md.mapper.MdShiftMapper">
 </mapper>
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/md/MdShiftMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/qm/QmBatchMapper.xml
similarity index 74%
copy from RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/md/MdShiftMapper.xml
copy to RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/qm/QmBatchMapper.xml
index 552cf76..57d7570 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/md/MdShiftMapper.xml
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qa/qm/QmBatchMapper.xml
@@ -2,5 +2,5 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.md.mapper.MdShiftMapper">
+<mapper namespace="org.dromara.qa.qm.mapper.QmBatchMapper">
 </mapper>
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qm/QmBatchMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qm/QmBatchMapper.xml
deleted file mode 100644
index 0092e5f..0000000
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/resources/mapper/qm/QmBatchMapper.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?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="org.dromara.qm.mapper.QmBatchMapper">
-</mapper>
diff --git a/ruoyi-plus-soybean/src/service/api/analy/feed-match.ts b/ruoyi-plus-soybean/src/service/api/analy/feed-match.ts
index 5fa81eb..e542585 100644
--- a/ruoyi-plus-soybean/src/service/api/analy/feed-match.ts
+++ b/ruoyi-plus-soybean/src/service/api/analy/feed-match.ts
@@ -1,35 +1,35 @@
 import { request } from '@/service/request';
 
 /** 鑾峰彇鍠備笣鏈哄搴斿叧绯诲垪琛� */
-export function fetchGetFeedMatchList (params?: Api.Analy.FeedMatchSearchParams) {
-    return request<Api.Analy.FeedMatchList>({
-        url: '/analy/feedMatch/list',
-        method: 'get',
-        params
-    });
+export function fetchGetFeedMatchList(params?: Api.Analy.FeedMatchSearchParams) {
+  return request<Api.Analy.FeedMatchList>({
+    url: '/analy/feedMatch/list',
+    method: 'get',
+    params
+  });
 }
 /** 鏂板鍠備笣鏈哄搴斿叧绯� */
-export function fetchCreateFeedMatch (data: Api.Analy.FeedMatchOperateParams) {
-    return request<boolean>({
-        url: '/analy/feedMatch',
-        method: 'post',
-        data
-    });
+export function fetchCreateFeedMatch(data: Api.Analy.FeedMatchOperateParams) {
+  return request<boolean>({
+    url: '/analy/feedMatch',
+    method: 'post',
+    data
+  });
 }
 
 /** 淇敼鍠備笣鏈哄搴斿叧绯� */
-export function fetchUpdateFeedMatch (data: Api.Analy.FeedMatchOperateParams) {
-    return request<boolean>({
-        url: '/analy/feedMatch',
-        method: 'put',
-        data
-    });
+export function fetchUpdateFeedMatch(data: Api.Analy.FeedMatchOperateParams) {
+  return request<boolean>({
+    url: '/analy/feedMatch',
+    method: 'put',
+    data
+  });
 }
 
 /** 鎵归噺鍒犻櫎鍠備笣鏈哄搴斿叧绯� */
-export function fetchBatchDeleteFeedMatch (times: CommonType.IdType[]) {
-    return request<boolean>({
-        url: `/analy/feedMatch/${times.join(',')}`,
-        method: 'delete'
-    });
+export function fetchBatchDeleteFeedMatch(times: CommonType.IdType[]) {
+  return request<boolean>({
+    url: `/analy/feedMatch/${times.join(',')}`,
+    method: 'delete'
+  });
 }
diff --git a/ruoyi-plus-soybean/src/service/api/analy/hoister-data.ts b/ruoyi-plus-soybean/src/service/api/analy/hoister-data.ts
index 4acf04e..2581a94 100755
--- a/ruoyi-plus-soybean/src/service/api/analy/hoister-data.ts
+++ b/ruoyi-plus-soybean/src/service/api/analy/hoister-data.ts
@@ -1,35 +1,35 @@
 import { request } from '@/service/request';
 
 /** 鑾峰彇鎻愬崌鏈哄垎鏋愬垪琛� */
-export function fetchGetHoisterDataList (params?: Api.Qa.HoisterDataSearchParams) {
-    return request<Api.Qa.HoisterDataList>({
-        url: '/analy/hoister/list',
-        method: 'get',
-        params
-    });
+export function fetchGetHoisterDataList(params?: Api.Qa.HoisterDataSearchParams) {
+  return request<Api.Qa.HoisterDataList>({
+    url: '/analy/hoister/list',
+    method: 'get',
+    params
+  });
 }
 /** 鏂板鎻愬崌鏈哄垎鏋� */
-export function fetchCreateHoisterData (data: Api.Qa.HoisterDataOperateParams) {
-    return request<boolean>({
-        url: '/analy/hoister',
-        method: 'post',
-        data
-    });
+export function fetchCreateHoisterData(data: Api.Qa.HoisterDataOperateParams) {
+  return request<boolean>({
+    url: '/analy/hoister',
+    method: 'post',
+    data
+  });
 }
 
 /** 淇敼鎻愬崌鏈哄垎鏋� */
-export function fetchUpdateHoisterData (data: Api.Qa.HoisterDataOperateParams) {
-    return request<boolean>({
-        url: '/analy/hoister',
-        method: 'put',
-        data
-    });
+export function fetchUpdateHoisterData(data: Api.Qa.HoisterDataOperateParams) {
+  return request<boolean>({
+    url: '/analy/hoister',
+    method: 'put',
+    data
+  });
 }
 
 /** 鎵归噺鍒犻櫎鎻愬崌鏈哄垎鏋� */
-export function fetchBatchDeleteHoisterData (times: CommonType.IdType[]) {
-    return request<boolean>({
-        url: `/analy/hoister/${times.join(',')}`,
-        method: 'delete'
-    });
+export function fetchBatchDeleteHoisterData(times: CommonType.IdType[]) {
+  return request<boolean>({
+    url: `/analy/hoister/${times.join(',')}`,
+    method: 'delete'
+  });
 }
diff --git a/ruoyi-plus-soybean/src/service/api/analy/packer-data.ts b/ruoyi-plus-soybean/src/service/api/analy/packer-data.ts
index 24eb462..c787add 100755
--- a/ruoyi-plus-soybean/src/service/api/analy/packer-data.ts
+++ b/ruoyi-plus-soybean/src/service/api/analy/packer-data.ts
@@ -1,35 +1,35 @@
 import { request } from '@/service/request';
 
 /** 鑾峰彇鍖呰鏈哄垎鏋愬垪琛� */
-export function fetchGetPackerDataList (params?: Api.Qa.PackerDataSearchParams) {
-    return request<Api.Qa.PackerDataList>({
-        url: '/analy/packer/list',
-        method: 'get',
-        params
-    });
+export function fetchGetPackerDataList(params?: Api.Qa.PackerDataSearchParams) {
+  return request<Api.Qa.PackerDataList>({
+    url: '/analy/packer/list',
+    method: 'get',
+    params
+  });
 }
 /** 鏂板鍖呰鏈哄垎鏋� */
-export function fetchCreatePackerData (data: Api.Qa.PackerDataOperateParams) {
-    return request<boolean>({
-        url: '/analy/packer',
-        method: 'post',
-        data
-    });
+export function fetchCreatePackerData(data: Api.Qa.PackerDataOperateParams) {
+  return request<boolean>({
+    url: '/analy/packer',
+    method: 'post',
+    data
+  });
 }
 
 /** 淇敼鍖呰鏈哄垎鏋� */
-export function fetchUpdatePackerData (data: Api.Qa.PackerDataOperateParams) {
-    return request<boolean>({
-        url: '/analy/packer',
-        method: 'put',
-        data
-    });
+export function fetchUpdatePackerData(data: Api.Qa.PackerDataOperateParams) {
+  return request<boolean>({
+    url: '/analy/packer',
+    method: 'put',
+    data
+  });
 }
 
 /** 鎵归噺鍒犻櫎鍖呰鏈哄垎鏋� */
-export function fetchBatchDeletePackerData (times: CommonType.IdType[]) {
-    return request<boolean>({
-        url: `/analy/packer/${times.join(',')}`,
-        method: 'delete'
-    });
+export function fetchBatchDeletePackerData(times: CommonType.IdType[]) {
+  return request<boolean>({
+    url: `/analy/packer/${times.join(',')}`,
+    method: 'delete'
+  });
 }
diff --git a/ruoyi-plus-soybean/src/service/api/analy/roller-data.ts b/ruoyi-plus-soybean/src/service/api/analy/roller-data.ts
index f4166e5..97cff21 100755
--- a/ruoyi-plus-soybean/src/service/api/analy/roller-data.ts
+++ b/ruoyi-plus-soybean/src/service/api/analy/roller-data.ts
@@ -1,8 +1,7 @@
 import { request } from '@/service/request';
 
-
 /** 鑾峰彇鍗锋帴鏈哄垎鏋愬垪琛� */
-export function fetchGetRollerSampleDataList (params?: Api.Qa.RollerDataSearchParams) {
+export function fetchGetRollerSampleDataList(params?: Api.Qa.RollerDataSearchParams) {
   return request<Api.Qa.RollerDataList>({
     url: '/analy/roller/sampleList',
     method: 'get',
@@ -10,37 +9,36 @@
   });
 }
 
-
 /** 鑾峰彇鍗锋帴鏈哄垎鏋愬垪琛� */
-export function fetchGetRollerDataList (params?: Api.Qa.RollerDataSearchParams) {
-    return request<Api.Qa.RollerDataList>({
-        url: '/analy/roller/list',
-        method: 'get',
-        params
-    });
+export function fetchGetRollerDataList(params?: Api.Qa.RollerDataSearchParams) {
+  return request<Api.Qa.RollerDataList>({
+    url: '/analy/roller/list',
+    method: 'get',
+    params
+  });
 }
 /** 鏂板鍗锋帴鏈哄垎鏋� */
-export function fetchCreateRollerData (data: Api.Qa.RollerDataOperateParams) {
-    return request<boolean>({
-        url: '/analy/roller',
-        method: 'post',
-        data
-    });
+export function fetchCreateRollerData(data: Api.Qa.RollerDataOperateParams) {
+  return request<boolean>({
+    url: '/analy/roller',
+    method: 'post',
+    data
+  });
 }
 
 /** 淇敼鍗锋帴鏈哄垎鏋� */
-export function fetchUpdateRollerData (data: Api.Qa.RollerDataOperateParams) {
-    return request<boolean>({
-        url: '/analy/roller',
-        method: 'put',
-        data
-    });
+export function fetchUpdateRollerData(data: Api.Qa.RollerDataOperateParams) {
+  return request<boolean>({
+    url: '/analy/roller',
+    method: 'put',
+    data
+  });
 }
 
 /** 鎵归噺鍒犻櫎鍗锋帴鏈哄垎鏋� */
-export function fetchBatchDeleteRollerData (times: CommonType.IdType[]) {
-    return request<boolean>({
-        url: `/analy/roller/${times.join(',')}`,
-        method: 'delete'
-    });
+export function fetchBatchDeleteRollerData(times: CommonType.IdType[]) {
+  return request<boolean>({
+    url: `/analy/roller/${times.join(',')}`,
+    method: 'delete'
+  });
 }
diff --git a/ruoyi-plus-soybean/src/service/api/analy/store-silk.ts b/ruoyi-plus-soybean/src/service/api/analy/store-silk.ts
index 17a3a12..bd82849 100644
--- a/ruoyi-plus-soybean/src/service/api/analy/store-silk.ts
+++ b/ruoyi-plus-soybean/src/service/api/analy/store-silk.ts
@@ -1,35 +1,35 @@
 import { request } from '@/service/request';
 
 /** 鑾峰彇鍌ㄤ笣鏌滀骇閲忓垪琛� */
-export function fetchGetStoreSilkList (params?: Api.Analy.StoreSilkSearchParams) {
-    return request<Api.Analy.StoreSilkList>({
-        url: '/analy/storeSilk/list',
-        method: 'get',
-        params
-    });
+export function fetchGetStoreSilkList(params?: Api.Analy.StoreSilkSearchParams) {
+  return request<Api.Analy.StoreSilkList>({
+    url: '/analy/storeSilk/list',
+    method: 'get',
+    params
+  });
 }
 /** 鏂板鍌ㄤ笣鏌滀骇閲� */
-export function fetchCreateStoreSilk (data: Api.Analy.StoreSilkOperateParams) {
-    return request<boolean>({
-        url: '/analy/storeSilk',
-        method: 'post',
-        data
-    });
+export function fetchCreateStoreSilk(data: Api.Analy.StoreSilkOperateParams) {
+  return request<boolean>({
+    url: '/analy/storeSilk',
+    method: 'post',
+    data
+  });
 }
 
 /** 淇敼鍌ㄤ笣鏌滀骇閲� */
-export function fetchUpdateStoreSilk (data: Api.Analy.StoreSilkOperateParams) {
-    return request<boolean>({
-        url: '/analy/storeSilk',
-        method: 'put',
-        data
-    });
+export function fetchUpdateStoreSilk(data: Api.Analy.StoreSilkOperateParams) {
+  return request<boolean>({
+    url: '/analy/storeSilk',
+    method: 'put',
+    data
+  });
 }
 
 /** 鎵归噺鍒犻櫎鍌ㄤ笣鏌滀骇閲� */
-export function fetchBatchDeleteStoreSilk (ids: CommonType.IdType[]) {
-    return request<boolean>({
-        url: `/analy/storeSilk/${ids.join(',')}`,
-        method: 'delete'
-    });
+export function fetchBatchDeleteStoreSilk(ids: CommonType.IdType[]) {
+  return request<boolean>({
+    url: `/analy/storeSilk/${ids.join(',')}`,
+    method: 'delete'
+  });
 }
diff --git a/ruoyi-plus-soybean/src/service/api/md/shift.ts b/ruoyi-plus-soybean/src/service/api/md/shift.ts
index 11d2d1e..52e0d1c 100644
--- a/ruoyi-plus-soybean/src/service/api/md/shift.ts
+++ b/ruoyi-plus-soybean/src/service/api/md/shift.ts
@@ -1,35 +1,35 @@
 import { request } from '@/service/request';
 
 /** 鑾峰彇鐝鍒楄〃 */
-export function fetchGetShiftList (params?: Api.Md.ShiftSearchParams) {
-    return request<Api.Md.ShiftList>({
-        url: '/md/shift/list',
-        method: 'get',
-        params
-    });
+export function fetchGetShiftList(params?: Api.Md.ShiftSearchParams) {
+  return request<Api.Md.ShiftList>({
+    url: '/md/shift/list',
+    method: 'get',
+    params
+  });
 }
 /** 鏂板鐝 */
-export function fetchCreateShift (data: Api.Md.ShiftOperateParams) {
-    return request<boolean>({
-        url: '/md/shift',
-        method: 'post',
-        data
-    });
+export function fetchCreateShift(data: Api.Md.ShiftOperateParams) {
+  return request<boolean>({
+    url: '/md/shift',
+    method: 'post',
+    data
+  });
 }
 
 /** 淇敼鐝 */
-export function fetchUpdateShift (data: Api.Md.ShiftOperateParams) {
-    return request<boolean>({
-        url: '/md/shift',
-        method: 'put',
-        data
-    });
+export function fetchUpdateShift(data: Api.Md.ShiftOperateParams) {
+  return request<boolean>({
+    url: '/md/shift',
+    method: 'put',
+    data
+  });
 }
 
 /** 鎵归噺鍒犻櫎鐝 */
-export function fetchBatchDeleteShift (ids: CommonType.IdType[]) {
-    return request<boolean>({
-        url: `/md/shift/${ids.join(',')}`,
-        method: 'delete'
-    });
+export function fetchBatchDeleteShift(ids: CommonType.IdType[]) {
+  return request<boolean>({
+    url: `/md/shift/${ids.join(',')}`,
+    method: 'delete'
+  });
 }
diff --git a/ruoyi-plus-soybean/src/service/api/qm/batch.ts b/ruoyi-plus-soybean/src/service/api/qm/batch.ts
index 461638f..ad598ab 100644
--- a/ruoyi-plus-soybean/src/service/api/qm/batch.ts
+++ b/ruoyi-plus-soybean/src/service/api/qm/batch.ts
@@ -1,35 +1,35 @@
 import { request } from '@/service/request';
 
 /** 鑾峰彇妫�楠屾壒娆″垪琛� */
-export function fetchGetBatchList (params?: Api.Qm.BatchSearchParams) {
-    return request<Api.Qm.BatchList>({
-        url: '/qm/batch/list',
-        method: 'get',
-        params
-    });
+export function fetchGetBatchList(params?: Api.Qm.BatchSearchParams) {
+  return request<Api.Qm.BatchList>({
+    url: '/qm/batch/list',
+    method: 'get',
+    params
+  });
 }
 /** 鏂板妫�楠屾壒娆� */
-export function fetchCreateBatch (data: Api.Qm.BatchOperateParams) {
-    return request<boolean>({
-        url: '/qm/batch',
-        method: 'post',
-        data
-    });
+export function fetchCreateBatch(data: Api.Qm.BatchOperateParams) {
+  return request<boolean>({
+    url: '/qm/batch',
+    method: 'post',
+    data
+  });
 }
 
 /** 淇敼妫�楠屾壒娆� */
-export function fetchUpdateBatch (data: Api.Qm.BatchOperateParams) {
-    return request<boolean>({
-        url: '/qm/batch',
-        method: 'put',
-        data
-    });
+export function fetchUpdateBatch(data: Api.Qm.BatchOperateParams) {
+  return request<boolean>({
+    url: '/qm/batch',
+    method: 'put',
+    data
+  });
 }
 
 /** 鎵归噺鍒犻櫎妫�楠屾壒娆� */
-export function fetchBatchDeleteBatch (ids: CommonType.IdType[]) {
-    return request<boolean>({
-        url: `/qm/batch/${ids.join(',')}`,
-        method: 'delete'
-    });
+export function fetchBatchDeleteBatch(ids: CommonType.IdType[]) {
+  return request<boolean>({
+    url: `/qm/batch/${ids.join(',')}`,
+    method: 'delete'
+  });
 }
diff --git a/ruoyi-plus-soybean/src/typings/api/analy.feed-match.api.d.ts b/ruoyi-plus-soybean/src/typings/api/analy.feed-match.api.d.ts
index 36a8609..2a695e9 100644
--- a/ruoyi-plus-soybean/src/typings/api/analy.feed-match.api.d.ts
+++ b/ruoyi-plus-soybean/src/typings/api/analy.feed-match.api.d.ts
@@ -4,115 +4,110 @@
  * All backend api type
  */
 declare namespace Api {
-    /**
-     * namespace Analy
-     *
-     * backend api module: "Analy"
-     */
-    namespace Analy {
-        /** feed match */
-        type FeedMatch = Common.CommonRecord<{
-            /** 鏃堕棿鎴� */
-                time: string; 
-            /** 鐝+鏈哄彴 */
-                key: string; 
-            /** 鏁版嵁鏇存柊鏃堕棿 */
-                dacUpTime: string; 
-            /** 1#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖 */
-                fs11: string; 
-            /** 1#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖 */
-                fs12: string; 
-            /** 2#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖 */
-                fs21: string; 
-            /** 2#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖 */
-                fs22: string; 
-            /** 3#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖 */
-                fs31: string; 
-            /** 3#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖 */
-                fs32: string; 
-            /** 4#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖 */
-                fs41: string; 
-            /** 4#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖 */
-                fs42: string; 
-            /** 1#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe01: number; 
-            /** 2#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe02: number; 
-            /** 3#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe03: number; 
-            /** 4#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe04: number; 
-            /** 5#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe05: number; 
-            /** 6#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe06: number; 
-            /** 7#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe07: number; 
-            /** 8#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe08: number; 
-            /** 9#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe09: number; 
-            /** 10#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe10: number; 
-            /** 11#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe11: number; 
-            /** 12#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
-                pipe12: number; 
-            /** 鍠備笣鏈虹姸鎬� 1-杩炴帴 0-鏂紑 */
-                wsjState: number; 
-            /** 鐝 */
-                shift: number; 
-            /** 鏈哄彴 */
-                equNo: number; 
-            /** 澶囨敞 */
-                remark: string; 
-        }>;
+  /**
+   * namespace Analy
+   *
+   * backend api module: "Analy"
+   */
+  namespace Analy {
+    /** feed match */
+    type FeedMatch = Common.CommonRecord<{
+      /** 鏃堕棿鎴� */
+      time: string;
+      /** 鐝+鏈哄彴 */
+      key: string;
+      /** 鏁版嵁鏇存柊鏃堕棿 */
+      dacUpTime: string;
+      /** 1#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖 */
+      fs11: string;
+      /** 1#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖 */
+      fs12: string;
+      /** 2#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖 */
+      fs21: string;
+      /** 2#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖 */
+      fs22: string;
+      /** 3#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖 */
+      fs31: string;
+      /** 3#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖 */
+      fs32: string;
+      /** 4#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖 */
+      fs41: string;
+      /** 4#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖 */
+      fs42: string;
+      /** 1#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe01: number;
+      /** 2#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe02: number;
+      /** 3#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe03: number;
+      /** 4#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe04: number;
+      /** 5#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe05: number;
+      /** 6#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe06: number;
+      /** 7#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe07: number;
+      /** 8#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe08: number;
+      /** 9#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe09: number;
+      /** 10#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe10: number;
+      /** 11#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe11: number;
+      /** 12#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬� */
+      pipe12: number;
+      /** 鍠備笣鏈虹姸鎬� 1-杩炴帴 0-鏂紑 */
+      wsjState: number;
+      /** 鐝 */
+      shift: number;
+      /** 鏈哄彴 */
+      equNo: number;
+      /** 澶囨敞 */
+      remark: string;
+    }>;
 
-        /** feed match search params */
-        type FeedMatchSearchParams = CommonType.RecordNullable<
-            Pick<
-                Api.Analy.FeedMatch,
-                        | 'time'
-                        | 'key'
-            > &
-            Api.Common.CommonSearchParams
-        >;
+    /** feed match search params */
+    type FeedMatchSearchParams = CommonType.RecordNullable<
+      Pick<Api.Analy.FeedMatch, 'time' | 'key'> & Api.Common.CommonSearchParams
+    >;
 
-        /** feed match operate params */
-        type FeedMatchOperateParams = CommonType.RecordNullable<
-            Pick<
-                Api.Analy.FeedMatch,
-                        | 'time'
-                        | 'key'
-                        | 'dacUpTime'
-                        | 'fs11'
-                        | 'fs12'
-                        | 'fs21'
-                        | 'fs22'
-                        | 'fs31'
-                        | 'fs32'
-                        | 'fs41'
-                        | 'fs42'
-                        | 'pipe01'
-                        | 'pipe02'
-                        | 'pipe03'
-                        | 'pipe04'
-                        | 'pipe05'
-                        | 'pipe06'
-                        | 'pipe07'
-                        | 'pipe08'
-                        | 'pipe09'
-                        | 'pipe10'
-                        | 'pipe11'
-                        | 'pipe12'
-                        | 'wsjState'
-                        | 'shift'
-                        | 'equNo'
-                        | 'remark'
-            >
-        >;
+    /** feed match operate params */
+    type FeedMatchOperateParams = CommonType.RecordNullable<
+      Pick<
+        Api.Analy.FeedMatch,
+        | 'time'
+        | 'key'
+        | 'dacUpTime'
+        | 'fs11'
+        | 'fs12'
+        | 'fs21'
+        | 'fs22'
+        | 'fs31'
+        | 'fs32'
+        | 'fs41'
+        | 'fs42'
+        | 'pipe01'
+        | 'pipe02'
+        | 'pipe03'
+        | 'pipe04'
+        | 'pipe05'
+        | 'pipe06'
+        | 'pipe07'
+        | 'pipe08'
+        | 'pipe09'
+        | 'pipe10'
+        | 'pipe11'
+        | 'pipe12'
+        | 'wsjState'
+        | 'shift'
+        | 'equNo'
+        | 'remark'
+      >
+    >;
 
-        /** feed match list */
-        type FeedMatchList = Api.Common.PaginatingQueryRecord<FeedMatch>;
-    }
+    /** feed match list */
+    type FeedMatchList = Api.Common.PaginatingQueryRecord<FeedMatch>;
+  }
 }
diff --git a/ruoyi-plus-soybean/src/typings/api/analy.hoister-data.api.d.ts b/ruoyi-plus-soybean/src/typings/api/analy.hoister-data.api.d.ts
index 6906498..3158747 100755
--- a/ruoyi-plus-soybean/src/typings/api/analy.hoister-data.api.d.ts
+++ b/ruoyi-plus-soybean/src/typings/api/analy.hoister-data.api.d.ts
@@ -4,152 +4,146 @@
  * All backend api type
  */
 declare namespace Api {
-    /**
-     * namespace Qa
-     *
-     * backend api module: "Qa"
-     */
-    namespace Qa {
-        /** hoister data */
-        type HoisterData = Common.CommonRecord<{
-            /** 鏃堕棿 */
-                time: string; 
-            /** key */
-                key: string; 
-            /** 缃戠粶鐘舵��  0寮傚父锛�1姝e父 */
-                online: number; 
-            /** 浜ч噺 */
-                qty: number; 
-            /** 1#鎻愬崌鏈虹姸鎬� */
-                tState1: number; 
-            /** 2#鎻愬崌鏈虹姸鎬� */
-                tState2: number; 
-            /** 3#鎻愬崌鏈虹姸鎬� */
-                tState3: number; 
-            /** 4#鎻愬崌鏈虹姸鎬� */
-                tState4: number; 
-            /** 5#鎻愬崌鏈虹姸鎬� */
-                tState5: number; 
-            /** 6#鎻愬崌鏈虹姸鎬� */
-                tState6: number; 
-            /** 7#鎻愬崌鏈虹姸鎬� */
-                tState7: number; 
-            /** 8#鎻愬崌鏈虹姸鎬� */
-                tState8: number; 
-            /** 9#鎻愬崌鏈虹姸鎬� */
-                tState9: number; 
-            /** 10#鎻愬崌鏈虹姸鎬� */
-                tState10: number; 
-            /** 11#鎻愬崌鏈虹姸鎬� */
-                tState11: number; 
-            /** 12#鎻愬崌鏈虹姸鎬� */
-                tState12: number; 
-            /** 1#鎺掑寘鏈虹姸鎬� */
-                pState1: number; 
-            /** 2#鎺掑寘鏈虹姸鎬� */
-                pState2: number; 
-            /** 3#鎺掑寘鏈虹姸鎬� */
-                pState3: number; 
-            /** 4#鎺掑寘鏈虹姸鎬� */
-                pState4: number; 
-            /** 1#鎻愬崌鏈轰骇閲� */
-                tQty1: number; 
-            /** 2#鎻愬崌鏈轰骇閲� */
-                tQty2: number; 
-            /** 3#鎻愬崌鏈轰骇閲� */
-                tQty3: number; 
-            /** 4#鎻愬崌鏈轰骇閲� */
-                tQty4: number; 
-            /** 5#鎻愬崌鏈轰骇閲� */
-                tQty5: number; 
-            /** 6#鎻愬崌鏈轰骇閲� */
-                tQty6: number; 
-            /** 7#鎻愬崌鏈轰骇閲� */
-                tQty7: number; 
-            /** 8#鎻愬崌鏈轰骇閲� */
-                tQty8: number; 
-            /** 9#鎻愬崌鏈轰骇閲� */
-                tQty9: number; 
-            /** 10#鎻愬崌鏈轰骇閲� */
-                tQty10: number; 
-            /** 11#鎻愬崌鏈轰骇閲� */
-                tQty11: number; 
-            /** 12#鎻愬崌鏈轰骇閲� */
-                tQty12: number; 
-            /** 1#鎺掑寘鏈轰骇閲� */
-                pQty1: number; 
-            /** 2#鎺掑寘鏈轰骇閲� */
-                pQty2: number; 
-            /** 3#鎺掑寘鏈轰骇閲� */
-                pQty3: number; 
-            /** 4#鎺掑寘鏈轰骇閲� */
-                pQty4: number; 
-            /** 鐝 */
-                shift: number; 
-            /** 璁惧 */
-                equNo: number; 
-            /** 澶囨敞 */
-                remark: string; 
-        }>;
+  /**
+   * namespace Qa
+   *
+   * backend api module: "Qa"
+   */
+  namespace Qa {
+    /** hoister data */
+    type HoisterData = Common.CommonRecord<{
+      /** 鏃堕棿 */
+      time: string;
+      /** key */
+      key: string;
+      /** 缃戠粶鐘舵��  0寮傚父锛�1姝e父 */
+      online: number;
+      /** 浜ч噺 */
+      qty: number;
+      /** 1#鎻愬崌鏈虹姸鎬� */
+      tState1: number;
+      /** 2#鎻愬崌鏈虹姸鎬� */
+      tState2: number;
+      /** 3#鎻愬崌鏈虹姸鎬� */
+      tState3: number;
+      /** 4#鎻愬崌鏈虹姸鎬� */
+      tState4: number;
+      /** 5#鎻愬崌鏈虹姸鎬� */
+      tState5: number;
+      /** 6#鎻愬崌鏈虹姸鎬� */
+      tState6: number;
+      /** 7#鎻愬崌鏈虹姸鎬� */
+      tState7: number;
+      /** 8#鎻愬崌鏈虹姸鎬� */
+      tState8: number;
+      /** 9#鎻愬崌鏈虹姸鎬� */
+      tState9: number;
+      /** 10#鎻愬崌鏈虹姸鎬� */
+      tState10: number;
+      /** 11#鎻愬崌鏈虹姸鎬� */
+      tState11: number;
+      /** 12#鎻愬崌鏈虹姸鎬� */
+      tState12: number;
+      /** 1#鎺掑寘鏈虹姸鎬� */
+      pState1: number;
+      /** 2#鎺掑寘鏈虹姸鎬� */
+      pState2: number;
+      /** 3#鎺掑寘鏈虹姸鎬� */
+      pState3: number;
+      /** 4#鎺掑寘鏈虹姸鎬� */
+      pState4: number;
+      /** 1#鎻愬崌鏈轰骇閲� */
+      tQty1: number;
+      /** 2#鎻愬崌鏈轰骇閲� */
+      tQty2: number;
+      /** 3#鎻愬崌鏈轰骇閲� */
+      tQty3: number;
+      /** 4#鎻愬崌鏈轰骇閲� */
+      tQty4: number;
+      /** 5#鎻愬崌鏈轰骇閲� */
+      tQty5: number;
+      /** 6#鎻愬崌鏈轰骇閲� */
+      tQty6: number;
+      /** 7#鎻愬崌鏈轰骇閲� */
+      tQty7: number;
+      /** 8#鎻愬崌鏈轰骇閲� */
+      tQty8: number;
+      /** 9#鎻愬崌鏈轰骇閲� */
+      tQty9: number;
+      /** 10#鎻愬崌鏈轰骇閲� */
+      tQty10: number;
+      /** 11#鎻愬崌鏈轰骇閲� */
+      tQty11: number;
+      /** 12#鎻愬崌鏈轰骇閲� */
+      tQty12: number;
+      /** 1#鎺掑寘鏈轰骇閲� */
+      pQty1: number;
+      /** 2#鎺掑寘鏈轰骇閲� */
+      pQty2: number;
+      /** 3#鎺掑寘鏈轰骇閲� */
+      pQty3: number;
+      /** 4#鎺掑寘鏈轰骇閲� */
+      pQty4: number;
+      /** 鐝 */
+      shift: number;
+      /** 璁惧 */
+      equNo: number;
+      /** 澶囨敞 */
+      remark: string;
+    }>;
 
-        /** hoister data search params */
-        type HoisterDataSearchParams = CommonType.RecordNullable<
-            Pick<
-                Api.Qa.HoisterData,
-                        | 'time'
-                        | 'shift'
-                        | 'equNo'
-            > &
-            Api.Common.CommonSearchParams
-        >;
+    /** hoister data search params */
+    type HoisterDataSearchParams = CommonType.RecordNullable<
+      Pick<Api.Qa.HoisterData, 'time' | 'shift' | 'equNo'> & Api.Common.CommonSearchParams
+    >;
 
-        /** hoister data operate params */
-        type HoisterDataOperateParams = CommonType.RecordNullable<
-            Pick<
-                Api.Qa.HoisterData,
-                        | 'time'
-                        | 'key'
-                        | 'online'
-                        | 'qty'
-                        | 'tState1'
-                        | 'tState2'
-                        | 'tState3'
-                        | 'tState4'
-                        | 'tState5'
-                        | 'tState6'
-                        | 'tState7'
-                        | 'tState8'
-                        | 'tState9'
-                        | 'tState10'
-                        | 'tState11'
-                        | 'tState12'
-                        | 'pState1'
-                        | 'pState2'
-                        | 'pState3'
-                        | 'pState4'
-                        | 'tQty1'
-                        | 'tQty2'
-                        | 'tQty3'
-                        | 'tQty4'
-                        | 'tQty5'
-                        | 'tQty6'
-                        | 'tQty7'
-                        | 'tQty8'
-                        | 'tQty9'
-                        | 'tQty10'
-                        | 'tQty11'
-                        | 'tQty12'
-                        | 'pQty1'
-                        | 'pQty2'
-                        | 'pQty3'
-                        | 'pQty4'
-                        | 'shift'
-                        | 'equNo'
-                        | 'remark'
-            >
-        >;
+    /** hoister data operate params */
+    type HoisterDataOperateParams = CommonType.RecordNullable<
+      Pick<
+        Api.Qa.HoisterData,
+        | 'time'
+        | 'key'
+        | 'online'
+        | 'qty'
+        | 'tState1'
+        | 'tState2'
+        | 'tState3'
+        | 'tState4'
+        | 'tState5'
+        | 'tState6'
+        | 'tState7'
+        | 'tState8'
+        | 'tState9'
+        | 'tState10'
+        | 'tState11'
+        | 'tState12'
+        | 'pState1'
+        | 'pState2'
+        | 'pState3'
+        | 'pState4'
+        | 'tQty1'
+        | 'tQty2'
+        | 'tQty3'
+        | 'tQty4'
+        | 'tQty5'
+        | 'tQty6'
+        | 'tQty7'
+        | 'tQty8'
+        | 'tQty9'
+        | 'tQty10'
+        | 'tQty11'
+        | 'tQty12'
+        | 'pQty1'
+        | 'pQty2'
+        | 'pQty3'
+        | 'pQty4'
+        | 'shift'
+        | 'equNo'
+        | 'remark'
+      >
+    >;
 
-        /** hoister data list */
-        type HoisterDataList = Api.Common.PaginatingQueryRecord<HoisterData>;
-    }
+    /** hoister data list */
+    type HoisterDataList = Api.Common.PaginatingQueryRecord<HoisterData>;
+  }
 }
diff --git a/ruoyi-plus-soybean/src/typings/api/analy.packer-data.api.d.ts b/ruoyi-plus-soybean/src/typings/api/analy.packer-data.api.d.ts
index ee23b07..621469f 100755
--- a/ruoyi-plus-soybean/src/typings/api/analy.packer-data.api.d.ts
+++ b/ruoyi-plus-soybean/src/typings/api/analy.packer-data.api.d.ts
@@ -4,128 +4,128 @@
  * All backend api type
  */
 declare namespace Api {
-    /**
-     * namespace Qa
-     *
-     * backend api module: "Qa"
-     */
-    namespace Qa {
-        /** packer data */
-        type PackerData = Common.CommonRecord<{
-            /** 鏃堕棿 */
-                time: string; 
-            /** key */
-                key: string; 
-            /** 缃戠粶鐘舵��(0寮傚父锛�1姝e父) */
-                online: number; 
-            /** 浜ч噺 */
-                qty: number; 
-            /** 鍓旈櫎浜ч噺 */
-                badQty: number; 
-            /** 灏忕洅鑶滄秷鑰� */
-                xiaohemoVal: number; 
-            /** 鏉$洅鑶滄秷鑰� */
-                tiaohemoVal: number; 
-            /** 灏忕洅绾告秷鑰� */
-                xiaohezhiVal: number; 
-            /** 鏉$洅绾告秷鑰� */
-                tiaohezhiVal: number; 
-            /** 鍐呰‖绾告秷鑰� */
-                neichenzhiVal: number; 
-            /** 杩愯鏃堕棿 */
-                runTime: number; 
-            /** 鍋滄満鏃堕棿 */
-                stopTime: number; 
-            /** 鍋滄満娆℃暟 */
-                stopTimes: number; 
-            /** 杞﹂�� */
-                speed: number; 
-            /** 杩愯鐘舵��(-1 鏂綉 0鍋滄 1浣庨�熻繍琛� 2姝e父杩愯) */
-                runStatus: number; 
-            /** 鎻愬崌鏈轰骇閲� */
-                tsQty: number; 
-            /** 涓绘満浜ч噺锛堝皬鍖呮満锛� */
-                mainQty: number; 
-            /** 涓绘満鍓旈櫎閲� */
-                mainBadQty: number; 
-            /** 閫忓寘鏈轰骇閲� */
-                tbjQty: number; 
-            /** 閫忓寘鏈哄墧闄ゅソ鍖� */
-                tbjGdQty: number; 
-            /** 閫忓寘鏈哄墧闄ゅ潖鍖� */
-                tbjBadQty: number; 
-            /** 鎺掑寘鏈轰骇閲� */
-                pbjQty: number; 
-            /** 鐝 */
-                shift: number; 
-            /** 璁惧 */
-                equNo: number; 
-        }>;
+  /**
+   * namespace Qa
+   *
+   * backend api module: "Qa"
+   */
+  namespace Qa {
+    /** packer data */
+    type PackerData = Common.CommonRecord<{
+      /** 鏃堕棿 */
+      time: string;
+      /** key */
+      key: string;
+      /** 缃戠粶鐘舵��(0寮傚父锛�1姝e父) */
+      online: number;
+      /** 浜ч噺 */
+      qty: number;
+      /** 鍓旈櫎浜ч噺 */
+      badQty: number;
+      /** 灏忕洅鑶滄秷鑰� */
+      xiaohemoVal: number;
+      /** 鏉$洅鑶滄秷鑰� */
+      tiaohemoVal: number;
+      /** 灏忕洅绾告秷鑰� */
+      xiaohezhiVal: number;
+      /** 鏉$洅绾告秷鑰� */
+      tiaohezhiVal: number;
+      /** 鍐呰‖绾告秷鑰� */
+      neichenzhiVal: number;
+      /** 杩愯鏃堕棿 */
+      runTime: number;
+      /** 鍋滄満鏃堕棿 */
+      stopTime: number;
+      /** 鍋滄満娆℃暟 */
+      stopTimes: number;
+      /** 杞﹂�� */
+      speed: number;
+      /** 杩愯鐘舵��(-1 鏂綉 0鍋滄 1浣庨�熻繍琛� 2姝e父杩愯) */
+      runStatus: number;
+      /** 鎻愬崌鏈轰骇閲� */
+      tsQty: number;
+      /** 涓绘満浜ч噺锛堝皬鍖呮満锛� */
+      mainQty: number;
+      /** 涓绘満鍓旈櫎閲� */
+      mainBadQty: number;
+      /** 閫忓寘鏈轰骇閲� */
+      tbjQty: number;
+      /** 閫忓寘鏈哄墧闄ゅソ鍖� */
+      tbjGdQty: number;
+      /** 閫忓寘鏈哄墧闄ゅ潖鍖� */
+      tbjBadQty: number;
+      /** 鎺掑寘鏈轰骇閲� */
+      pbjQty: number;
+      /** 鐝 */
+      shift: number;
+      /** 璁惧 */
+      equNo: number;
+    }>;
 
-        /** packer data search params */
-        type PackerDataSearchParams = CommonType.RecordNullable<
-            Pick<
-                Api.Qa.PackerData,
-                        | 'time'
-                        | 'key'
-                        | 'online'
-                        | 'qty'
-                        | 'badQty'
-                        | 'xiaohemoVal'
-                        | 'tiaohemoVal'
-                        | 'xiaohezhiVal'
-                        | 'tiaohezhiVal'
-                        | 'neichenzhiVal'
-                        | 'runTime'
-                        | 'stopTime'
-                        | 'stopTimes'
-                        | 'speed'
-                        | 'runStatus'
-                        | 'tsQty'
-                        | 'mainQty'
-                        | 'mainBadQty'
-                        | 'tbjQty'
-                        | 'tbjGdQty'
-                        | 'tbjBadQty'
-                        | 'pbjQty'
-                        | 'shift'
-                        | 'equNo'
-            > &
-            Api.Common.CommonSearchParams
-        >;
+    /** packer data search params */
+    type PackerDataSearchParams = CommonType.RecordNullable<
+      Pick<
+        Api.Qa.PackerData,
+        | 'time'
+        | 'key'
+        | 'online'
+        | 'qty'
+        | 'badQty'
+        | 'xiaohemoVal'
+        | 'tiaohemoVal'
+        | 'xiaohezhiVal'
+        | 'tiaohezhiVal'
+        | 'neichenzhiVal'
+        | 'runTime'
+        | 'stopTime'
+        | 'stopTimes'
+        | 'speed'
+        | 'runStatus'
+        | 'tsQty'
+        | 'mainQty'
+        | 'mainBadQty'
+        | 'tbjQty'
+        | 'tbjGdQty'
+        | 'tbjBadQty'
+        | 'pbjQty'
+        | 'shift'
+        | 'equNo'
+      > &
+        Api.Common.CommonSearchParams
+    >;
 
-        /** packer data operate params */
-        type PackerDataOperateParams = CommonType.RecordNullable<
-            Pick<
-                Api.Qa.PackerData,
-                        | 'time'
-                        | 'key'
-                        | 'online'
-                        | 'qty'
-                        | 'badQty'
-                        | 'xiaohemoVal'
-                        | 'tiaohemoVal'
-                        | 'xiaohezhiVal'
-                        | 'tiaohezhiVal'
-                        | 'neichenzhiVal'
-                        | 'runTime'
-                        | 'stopTime'
-                        | 'stopTimes'
-                        | 'speed'
-                        | 'runStatus'
-                        | 'tsQty'
-                        | 'mainQty'
-                        | 'mainBadQty'
-                        | 'tbjQty'
-                        | 'tbjGdQty'
-                        | 'tbjBadQty'
-                        | 'pbjQty'
-                        | 'shift'
-                        | 'equNo'
-            >
-        >;
+    /** packer data operate params */
+    type PackerDataOperateParams = CommonType.RecordNullable<
+      Pick<
+        Api.Qa.PackerData,
+        | 'time'
+        | 'key'
+        | 'online'
+        | 'qty'
+        | 'badQty'
+        | 'xiaohemoVal'
+        | 'tiaohemoVal'
+        | 'xiaohezhiVal'
+        | 'tiaohezhiVal'
+        | 'neichenzhiVal'
+        | 'runTime'
+        | 'stopTime'
+        | 'stopTimes'
+        | 'speed'
+        | 'runStatus'
+        | 'tsQty'
+        | 'mainQty'
+        | 'mainBadQty'
+        | 'tbjQty'
+        | 'tbjGdQty'
+        | 'tbjBadQty'
+        | 'pbjQty'
+        | 'shift'
+        | 'equNo'
+      >
+    >;
 
-        /** packer data list */
-        type PackerDataList = Api.Common.PaginatingQueryRecord<PackerData>;
-    }
+    /** packer data list */
+    type PackerDataList = Api.Common.PaginatingQueryRecord<PackerData>;
+  }
 }
diff --git a/ruoyi-plus-soybean/src/typings/api/analy.roller-data.api.d.ts b/ruoyi-plus-soybean/src/typings/api/analy.roller-data.api.d.ts
index afcac20..e48fff3 100755
--- a/ruoyi-plus-soybean/src/typings/api/analy.roller-data.api.d.ts
+++ b/ruoyi-plus-soybean/src/typings/api/analy.roller-data.api.d.ts
@@ -4,120 +4,120 @@
  * All backend api type
  */
 declare namespace Api {
-    /**
-     * namespace Qa
-     *
-     * backend api module: "Qa"
-     */
-    namespace Qa {
-        /** roller data */
-        type RollerData = Common.CommonRecord<{
-            /** 鏃堕棿 */
-            time: string; 
-            /** key */
-            key: string; 
-            /** 鐝 */
-            shift: number;
-            /** 璁惧鍙� */
-            equNo: number;
-            /** 缃戠粶鐘舵�� */
-            online: number; 
-            /** 浜ч噺 */
-            qty: number; 
-            /** 鍓旈櫎浜ч噺 */
-            badQty: number; 
-            /** 婊ゆ娑堣�� */
-            lvbangVal: number; 
-            /** 鍗风儫绾告秷鑰� */
-            juanyanzhiVal: number; 
-            /** 姘存澗绾告秷鑰� */
-            shuisongzhiVal: number; 
-            /** 杩愯鏃堕棿 */
-            runTime: number; 
-            /** 鍋滄満鏃堕棿 */
-            stopTime: number; 
-            /** 鍋滄満娆℃暟 */
-            stopTimes: number; 
-            /** 杞﹂�� */
-            speed: number; 
-            /** 杩愯鐘舵�� */
-            runStatus: number; 
-            /** 鍌ㄧ儫璁惧鍌ㄩ噺 */
-            cy: number; 
-            /** 鍌ㄧ儫璁惧杞﹂�� */
-            cyCs: number; 
-            /** 鍌ㄧ儫璁惧缃戠粶 */
-            cyOnline: string; 
-            /** 鎺ユ敹鏈轰骇閲� */
-            recQty1: number; 
-            /** 鎺ユ敹鏈轰骇閲�2 */
-            recQty2: number; 
-            /** 鎻愬崌鏈轰骇閲� */
-            tsQty: number; 
-            /** 鍖呰鏈轰骇閲� */
-            packerQty: number;
-        }>;
+  /**
+   * namespace Qa
+   *
+   * backend api module: "Qa"
+   */
+  namespace Qa {
+    /** roller data */
+    type RollerData = Common.CommonRecord<{
+      /** 鏃堕棿 */
+      time: string;
+      /** key */
+      key: string;
+      /** 鐝 */
+      shift: number;
+      /** 璁惧鍙� */
+      equNo: number;
+      /** 缃戠粶鐘舵�� */
+      online: number;
+      /** 浜ч噺 */
+      qty: number;
+      /** 鍓旈櫎浜ч噺 */
+      badQty: number;
+      /** 婊ゆ娑堣�� */
+      lvbangVal: number;
+      /** 鍗风儫绾告秷鑰� */
+      juanyanzhiVal: number;
+      /** 姘存澗绾告秷鑰� */
+      shuisongzhiVal: number;
+      /** 杩愯鏃堕棿 */
+      runTime: number;
+      /** 鍋滄満鏃堕棿 */
+      stopTime: number;
+      /** 鍋滄満娆℃暟 */
+      stopTimes: number;
+      /** 杞﹂�� */
+      speed: number;
+      /** 杩愯鐘舵�� */
+      runStatus: number;
+      /** 鍌ㄧ儫璁惧鍌ㄩ噺 */
+      cy: number;
+      /** 鍌ㄧ儫璁惧杞﹂�� */
+      cyCs: number;
+      /** 鍌ㄧ儫璁惧缃戠粶 */
+      cyOnline: string;
+      /** 鎺ユ敹鏈轰骇閲� */
+      recQty1: number;
+      /** 鎺ユ敹鏈轰骇閲�2 */
+      recQty2: number;
+      /** 鎻愬崌鏈轰骇閲� */
+      tsQty: number;
+      /** 鍖呰鏈轰骇閲� */
+      packerQty: number;
+    }>;
 
-        /** roller data search params */
-        type RollerDataSearchParams = CommonType.RecordNullable<
-            Pick<
-                Api.Qa.RollerData,
-                        | 'time'
-                        | 'key'
-                        | 'shift'
-                        | 'equNo'
-                        | 'online'
-                        | 'qty'
-                        | 'badQty'
-                        | 'lvbangVal'
-                        | 'juanyanzhiVal'
-                        | 'shuisongzhiVal'
-                        | 'runTime'
-                        | 'stopTime'
-                        | 'stopTimes'
-                        | 'speed'
-                        | 'runStatus'
-                        | 'cy'
-                        | 'cyCs'
-                        | 'cyOnline'
-                        | 'recQty1'
-                        | 'recQty2'
-                        | 'tsQty'
-                        | 'packerQty'
-            > &
-            Api.Common.CommonSearchParams
-        >;
+    /** roller data search params */
+    type RollerDataSearchParams = CommonType.RecordNullable<
+      Pick<
+        Api.Qa.RollerData,
+        | 'time'
+        | 'key'
+        | 'shift'
+        | 'equNo'
+        | 'online'
+        | 'qty'
+        | 'badQty'
+        | 'lvbangVal'
+        | 'juanyanzhiVal'
+        | 'shuisongzhiVal'
+        | 'runTime'
+        | 'stopTime'
+        | 'stopTimes'
+        | 'speed'
+        | 'runStatus'
+        | 'cy'
+        | 'cyCs'
+        | 'cyOnline'
+        | 'recQty1'
+        | 'recQty2'
+        | 'tsQty'
+        | 'packerQty'
+      > &
+        Api.Common.CommonSearchParams
+    >;
 
-        /** roller data operate params */
-        type RollerDataOperateParams = CommonType.RecordNullable<
-            Pick<
-                Api.Qa.RollerData,
-                        | 'time'
-                        | 'key'
-                        | 'shift'
-                        | 'equNo'
-                        | 'online'
-                        | 'qty'
-                        | 'badQty'
-                        | 'lvbangVal'
-                        | 'juanyanzhiVal'
-                        | 'shuisongzhiVal'
-                        | 'runTime'
-                        | 'stopTime'
-                        | 'stopTimes'
-                        | 'speed'
-                        | 'runStatus'
-                        | 'cy'
-                        | 'cyCs'
-                        | 'cyOnline'
-                        | 'recQty1'
-                        | 'recQty2'
-                        | 'tsQty'
-                        | 'packerQty'
-            >
-        >;
+    /** roller data operate params */
+    type RollerDataOperateParams = CommonType.RecordNullable<
+      Pick<
+        Api.Qa.RollerData,
+        | 'time'
+        | 'key'
+        | 'shift'
+        | 'equNo'
+        | 'online'
+        | 'qty'
+        | 'badQty'
+        | 'lvbangVal'
+        | 'juanyanzhiVal'
+        | 'shuisongzhiVal'
+        | 'runTime'
+        | 'stopTime'
+        | 'stopTimes'
+        | 'speed'
+        | 'runStatus'
+        | 'cy'
+        | 'cyCs'
+        | 'cyOnline'
+        | 'recQty1'
+        | 'recQty2'
+        | 'tsQty'
+        | 'packerQty'
+      >
+    >;
 
-        /** roller data list */
-        type RollerDataList = Api.Common.PaginatingQueryRecord<RollerData>;
-    }
+    /** roller data list */
+    type RollerDataList = Api.Common.PaginatingQueryRecord<RollerData>;
+  }
 }
diff --git a/ruoyi-plus-soybean/src/typings/api/analy.store-silk.api.d.ts b/ruoyi-plus-soybean/src/typings/api/analy.store-silk.api.d.ts
index 3b11f30..e448905 100644
--- a/ruoyi-plus-soybean/src/typings/api/analy.store-silk.api.d.ts
+++ b/ruoyi-plus-soybean/src/typings/api/analy.store-silk.api.d.ts
@@ -4,71 +4,66 @@
  * All backend api type
  */
 declare namespace Api {
-    /**
-     * namespace Analy
-     *
-     * backend api module: "Analy"
-     */
-    namespace Analy {
-        /** store silk */
-        type StoreSilk = Common.CommonRecord<{
-            /** id */
-                id: CommonType.IdType; 
-            /** 鐗屽彿 */
-                materialname: string; 
-            /** 鎵规鍙� */
-                batchcode: string; 
-            /** 鎶曟枡鏃ユ湡 */
-                actualstarttime: string; 
-            /** 鎶曟枡閲嶉噺 */
-                jobinput: number; 
-            /** 鎹熻�楅噸閲� */
-                weightloss: number; 
-            /** 鍑哄彾涓濈巼 */
-                slkrate: number; 
-            /** 鍌ㄤ笣鏌滈噸閲� */
-                weight: number; 
-            /** 鍌ㄤ笣鏌滃嚭鏂欏紑濮嬫椂闂� */
-                distimebegin: string; 
-            /** 鍌ㄤ笣鏌滃嚭鏂欑粨鏉熸椂闂� */
-                distimeend: string; 
-            /** 鏌滃瓙鍙�(鏈綅) */
-                siloid: CommonType.IdType; 
-        }>;
+  /**
+   * namespace Analy
+   *
+   * backend api module: "Analy"
+   */
+  namespace Analy {
+    /** store silk */
+    type StoreSilk = Common.CommonRecord<{
+      /** id */
+      id: CommonType.IdType;
+      /** 鐗屽彿 */
+      materialname: string;
+      /** 鎵规鍙� */
+      batchcode: string;
+      /** 鎶曟枡鏃ユ湡 */
+      actualstarttime: string;
+      /** 鎶曟枡閲嶉噺 */
+      jobinput: number;
+      /** 鎹熻�楅噸閲� */
+      weightloss: number;
+      /** 鍑哄彾涓濈巼 */
+      slkrate: number;
+      /** 鍌ㄤ笣鏌滈噸閲� */
+      weight: number;
+      /** 鍌ㄤ笣鏌滃嚭鏂欏紑濮嬫椂闂� */
+      distimebegin: string;
+      /** 鍌ㄤ笣鏌滃嚭鏂欑粨鏉熸椂闂� */
+      distimeend: string;
+      /** 鏌滃瓙鍙�(鏈綅) */
+      siloid: CommonType.IdType;
+    }>;
 
-        /** store silk search params */
-        type StoreSilkSearchParams = CommonType.RecordNullable<
-            Pick<
-                Api.Analy.StoreSilk,
-                        | 'materialname'
-                        | 'batchcode'
-                        | 'actualstarttime'
-                        | 'distimebegin'
-                        | 'distimeend'
-                        | 'siloid'
-            > &
-            Api.Common.CommonSearchParams
-        >;
+    /** store silk search params */
+    type StoreSilkSearchParams = CommonType.RecordNullable<
+      Pick<
+        Api.Analy.StoreSilk,
+        'materialname' | 'batchcode' | 'actualstarttime' | 'distimebegin' | 'distimeend' | 'siloid'
+      > &
+        Api.Common.CommonSearchParams
+    >;
 
-        /** store silk operate params */
-        type StoreSilkOperateParams = CommonType.RecordNullable<
-            Pick<
-                Api.Analy.StoreSilk,
-                        | 'id'
-                        | 'materialname'
-                        | 'batchcode'
-                        | 'actualstarttime'
-                        | 'jobinput'
-                        | 'weightloss'
-                        | 'slkrate'
-                        | 'weight'
-                        | 'distimebegin'
-                        | 'distimeend'
-                        | 'siloid'
-            >
-        >;
+    /** store silk operate params */
+    type StoreSilkOperateParams = CommonType.RecordNullable<
+      Pick<
+        Api.Analy.StoreSilk,
+        | 'id'
+        | 'materialname'
+        | 'batchcode'
+        | 'actualstarttime'
+        | 'jobinput'
+        | 'weightloss'
+        | 'slkrate'
+        | 'weight'
+        | 'distimebegin'
+        | 'distimeend'
+        | 'siloid'
+      >
+    >;
 
-        /** store silk list */
-        type StoreSilkList = Api.Common.PaginatingQueryRecord<StoreSilk>;
-    }
+    /** store silk list */
+    type StoreSilkList = Api.Common.PaginatingQueryRecord<StoreSilk>;
+  }
 }
diff --git a/ruoyi-plus-soybean/src/typings/api/md.shift.api.d.ts b/ruoyi-plus-soybean/src/typings/api/md.shift.api.d.ts
index a5f6ce0..f6069b2 100644
--- a/ruoyi-plus-soybean/src/typings/api/md.shift.api.d.ts
+++ b/ruoyi-plus-soybean/src/typings/api/md.shift.api.d.ts
@@ -4,74 +4,68 @@
  * All backend api type
  */
 declare namespace Api {
-    /**
-     * namespace Md
-     *
-     * backend api module: "Md"
-     */
-    namespace Md {
-        /** shift */
-        type Shift = Common.CommonRecord<{
-            /** id */
-                id: CommonType.IdType;
-            /** 杞﹂棿澶栭敭 */
-                wsId: CommonType.IdType;
-            /** 缂栫爜 */
-                code: string;
-            /** 鍚嶇О */
-                name: string;
-            /** 鐝寮�濮嬫椂闂� */
-                stim: string;
-            /** 鐝缁撴潫鏃堕棿 */
-                etim: string;
-            /** 鎺掑簭 */
-                seq: number;
-            /** 鍚敤 */
-                enable: number;
-            /** 鍒犻櫎 */
-                del: number;
-            /** 鍒涘缓鐢ㄦ埛 */
-                createUserName: string;
-            /** 鍒涘缓鏃堕棿 */
-                createUserTime: string;
-            /** 鏇存柊鐢ㄦ埛 */
-                updateUserName: string;
-            /** 鏇存柊鏃堕棿 */
-                updateUserTime: string;
-        }>;
+  /**
+   * namespace Md
+   *
+   * backend api module: "Md"
+   */
+  namespace Md {
+    /** shift */
+    type Shift = Common.CommonRecord<{
+      /** id */
+      id: CommonType.IdType;
+      /** 杞﹂棿澶栭敭 */
+      wsId: CommonType.IdType;
+      /** 缂栫爜 */
+      code: string;
+      /** 鍚嶇О */
+      name: string;
+      /** 鐝寮�濮嬫椂闂� */
+      stim: string;
+      /** 鐝缁撴潫鏃堕棿 */
+      etim: string;
+      /** 鎺掑簭 */
+      seq: number;
+      /** 鍚敤 */
+      enable: number;
+      /** 鍒犻櫎 */
+      del: number;
+      /** 鍒涘缓鐢ㄦ埛 */
+      createUserName: string;
+      /** 鍒涘缓鏃堕棿 */
+      createUserTime: string;
+      /** 鏇存柊鐢ㄦ埛 */
+      updateUserName: string;
+      /** 鏇存柊鏃堕棿 */
+      updateUserTime: string;
+    }>;
 
-        /** shift search params */
-        type ShiftSearchParams = CommonType.RecordNullable<
-            Pick<
-                Api.Md.Shift,
-                        | 'code'
-                        | 'name'
-                        | 'enable'
-            > &
-            Api.Common.CommonSearchParams
-        >;
+    /** shift search params */
+    type ShiftSearchParams = CommonType.RecordNullable<
+      Pick<Api.Md.Shift, 'code' | 'name' | 'enable'> & Api.Common.CommonSearchParams
+    >;
 
-        /** shift operate params */
-        type ShiftOperateParams = CommonType.RecordNullable<
-            Pick<
-                Api.Md.Shift,
-                        | 'id'
-                        | 'wsId'
-                        | 'code'
-                        | 'name'
-                        | 'stim'
-                        | 'etim'
-                        | 'seq'
-                        | 'enable'
-                        | 'del'
-                        | 'createUserName'
-                        | 'createUserTime'
-                        | 'updateUserName'
-                        | 'updateUserTime'
-            >
-        >;
+    /** shift operate params */
+    type ShiftOperateParams = CommonType.RecordNullable<
+      Pick<
+        Api.Md.Shift,
+        | 'id'
+        | 'wsId'
+        | 'code'
+        | 'name'
+        | 'stim'
+        | 'etim'
+        | 'seq'
+        | 'enable'
+        | 'del'
+        | 'createUserName'
+        | 'createUserTime'
+        | 'updateUserName'
+        | 'updateUserTime'
+      >
+    >;
 
-        /** shift list */
-        type ShiftList = Api.Common.PaginatingQueryRecord<Shift>;
-    }
+    /** shift list */
+    type ShiftList = Api.Common.PaginatingQueryRecord<Shift>;
+  }
 }
diff --git a/ruoyi-plus-soybean/src/typings/api/qm.batch.api.d.ts b/ruoyi-plus-soybean/src/typings/api/qm.batch.api.d.ts
index 8998bcc..30b532f 100644
--- a/ruoyi-plus-soybean/src/typings/api/qm.batch.api.d.ts
+++ b/ruoyi-plus-soybean/src/typings/api/qm.batch.api.d.ts
@@ -4,182 +4,174 @@
  * All backend api type
  */
 declare namespace Api {
-    /**
-     * namespace Qm
-     *
-     * backend api module: "Qm"
-     */
-    namespace Qm {
-        /** batch */
-        type Batch = Common.CommonRecord<{
-            /** 缂栫爜 */
-                id: CommonType.IdType; 
-            /** 鎵规浠g爜 */
-                batchCode: string; 
-            /** 鎵规鍚嶇О */
-                batchName: string; 
-            /** A-鍒朵笣 B-鎴愬瀷 C-鍗峰寘 D-灏佺 E-绯栭鏂� */
-                typ: string; 
-            /** 鏈哄彴浠g爜 */
-                eqpCode: string; 
-            /** 鐗屽彿 */
-                matCode: string; 
-            /** 鍒ゅ畾渚濇嵁浠g爜 */
-                judgeCode: string; 
-            /** 鎵规鐢熸垚鏃ユ湡 */
-                batchDate: string; 
-            /** 浣跨敤鏍囧織 */
-                isflag: string; 
-            /** 鍚敤鏍囧織 */
-                enabled: string; 
-            /** 鍒拌揣鎬婚噺 */
-                totalNum: number; 
-            /** 缁煎悎鍒ゅ畾 */
-                results: string; 
-            /** 鎵瑰噯浜� */
-                approver: string; 
-            /** 瀹℃牳浜� */
-                auditor: string; 
-            /** 鍒涘缓浜� */
-                creater: string; 
-            /** 鍒惰〃鏃ユ湡 */
-                tabDate: string; 
-            /** 鐗堟湰鍚嶇О */
-                verName: string; 
-            /** 鐗堟湰缂栧彿 */
-                verCode: string; 
-            /** 淇濆瓨鏈� */
-                archDate: string; 
-            /** 0-鏈笂浼爉es,1-宸蹭笂浼�, 3-浠嶮ES涓嬭浇 */
-                flag: string; 
-            /** 涓婁紶MES鏃堕棿 */
-                toMesDate: string; 
-            /** 浠嶮ES鏃堕棿涓嬭浇 */
-                fromMesDate: string; 
-            /** 鍒犻櫎鏍囧織 */
-                deleted: number; 
-            /** 鎵规鎻忚堪 */
-                batchDes: string; 
-            /** 绫诲埆 0锛氭垚鍝� 1锛氳緟鏉� */
-                category: string; 
-            /** 鍗峰埗宸ュ彿 */
-                makeno: string; 
-            /** 鐝鏈哄彿 */
-                shifteqpno: string; 
-            /** 瑁呯鍙� */
-                boxno: string; 
-            /** 鐖舵壒娆″彿 */
-                pid: CommonType.IdType; 
-            /** 澶嶆牳浜� */
-                reviewer: string; 
-            /** 澶嶆娆℃暟 */
-                rvcount: number; 
-            /** 鎵规鐘舵�� */
-                state: string; 
-            /** 澶嶆牳鏃ユ湡 */
-                reviewTime: string; 
-            /** 瀹℃牳鏃ユ湡 */
-                auditTime: string; 
-            /** 瑙勬牸 */
-                spec: string; 
-            /** 鎵瑰噯鏃堕棿 */
-                approveTime: string; 
-            /** 鍒拌揣鍗曚綅 */
-                unit: string; 
-            /** 鍒拌揣鏃ユ湡 */
-                arrivalTime: string; 
-            /** 瀛樻斁鍦扮偣 */
-                storagePlace: string; 
-            /** 妫�楠屽憳 */
-                checker: string; 
-            /** 鎺ュ崟鏃ユ湡 */
-                receiveTime: string; 
-            /** 鎶ユ鏃ユ湡 */
-                inspTime: string; 
-            /** 浠撳簱淇濈鍛� */
-                storer: string; 
-            /** 鏄惁楠岃瘉 */
-                isverify: string; 
-            /** 鏄惁妫�楠� */
-                ischk: string; 
-            /** 澶囩敤1 */
-                bak1: string; 
-            /** 澶囩敤2 */
-                bak2: string; 
-        }>;
+  /**
+   * namespace Qm
+   *
+   * backend api module: "Qm"
+   */
+  namespace Qm {
+    /** batch */
+    type Batch = Common.CommonRecord<{
+      /** 缂栫爜 */
+      id: CommonType.IdType;
+      /** 鎵规浠g爜 */
+      batchCode: string;
+      /** 鎵规鍚嶇О */
+      batchName: string;
+      /** A-鍒朵笣 B-鎴愬瀷 C-鍗峰寘 D-灏佺 E-绯栭鏂� */
+      typ: string;
+      /** 鏈哄彴浠g爜 */
+      eqpCode: string;
+      /** 鐗屽彿 */
+      matCode: string;
+      /** 鍒ゅ畾渚濇嵁浠g爜 */
+      judgeCode: string;
+      /** 鎵规鐢熸垚鏃ユ湡 */
+      batchDate: string;
+      /** 浣跨敤鏍囧織 */
+      isflag: string;
+      /** 鍚敤鏍囧織 */
+      enabled: string;
+      /** 鍒拌揣鎬婚噺 */
+      totalNum: number;
+      /** 缁煎悎鍒ゅ畾 */
+      results: string;
+      /** 鎵瑰噯浜� */
+      approver: string;
+      /** 瀹℃牳浜� */
+      auditor: string;
+      /** 鍒涘缓浜� */
+      creater: string;
+      /** 鍒惰〃鏃ユ湡 */
+      tabDate: string;
+      /** 鐗堟湰鍚嶇О */
+      verName: string;
+      /** 鐗堟湰缂栧彿 */
+      verCode: string;
+      /** 淇濆瓨鏈� */
+      archDate: string;
+      /** 0-鏈笂浼爉es,1-宸蹭笂浼�, 3-浠嶮ES涓嬭浇 */
+      flag: string;
+      /** 涓婁紶MES鏃堕棿 */
+      toMesDate: string;
+      /** 浠嶮ES鏃堕棿涓嬭浇 */
+      fromMesDate: string;
+      /** 鍒犻櫎鏍囧織 */
+      deleted: number;
+      /** 鎵规鎻忚堪 */
+      batchDes: string;
+      /** 绫诲埆 0锛氭垚鍝� 1锛氳緟鏉� */
+      category: string;
+      /** 鍗峰埗宸ュ彿 */
+      makeno: string;
+      /** 鐝鏈哄彿 */
+      shifteqpno: string;
+      /** 瑁呯鍙� */
+      boxno: string;
+      /** 鐖舵壒娆″彿 */
+      pid: CommonType.IdType;
+      /** 澶嶆牳浜� */
+      reviewer: string;
+      /** 澶嶆娆℃暟 */
+      rvcount: number;
+      /** 鎵规鐘舵�� */
+      state: string;
+      /** 澶嶆牳鏃ユ湡 */
+      reviewTime: string;
+      /** 瀹℃牳鏃ユ湡 */
+      auditTime: string;
+      /** 瑙勬牸 */
+      spec: string;
+      /** 鎵瑰噯鏃堕棿 */
+      approveTime: string;
+      /** 鍒拌揣鍗曚綅 */
+      unit: string;
+      /** 鍒拌揣鏃ユ湡 */
+      arrivalTime: string;
+      /** 瀛樻斁鍦扮偣 */
+      storagePlace: string;
+      /** 妫�楠屽憳 */
+      checker: string;
+      /** 鎺ュ崟鏃ユ湡 */
+      receiveTime: string;
+      /** 鎶ユ鏃ユ湡 */
+      inspTime: string;
+      /** 浠撳簱淇濈鍛� */
+      storer: string;
+      /** 鏄惁楠岃瘉 */
+      isverify: string;
+      /** 鏄惁妫�楠� */
+      ischk: string;
+      /** 澶囩敤1 */
+      bak1: string;
+      /** 澶囩敤2 */
+      bak2: string;
+    }>;
 
-        /** batch search params */
-        type BatchSearchParams = CommonType.RecordNullable<
-            Pick<
-                Api.Qm.Batch,
-                        | 'batchCode'
-                        | 'typ'
-                        | 'eqpCode'
-                        | 'matCode'
-                        | 'batchDate'
-                        | 'flag'
-                        | 'deleted'
-                        | 'category'
-                        | 'state'
-            > &
-            Api.Common.CommonSearchParams
-        >;
+    /** batch search params */
+    type BatchSearchParams = CommonType.RecordNullable<
+      Pick<
+        Api.Qm.Batch,
+        'batchCode' | 'typ' | 'eqpCode' | 'matCode' | 'batchDate' | 'flag' | 'deleted' | 'category' | 'state'
+      > &
+        Api.Common.CommonSearchParams
+    >;
 
-        /** batch operate params */
-        type BatchOperateParams = CommonType.RecordNullable<
-            Pick<
-                Api.Qm.Batch,
-                        | 'id'
-                        | 'batchCode'
-                        | 'batchName'
-                        | 'typ'
-                        | 'eqpCode'
-                        | 'matCode'
-                        | 'judgeCode'
-                        | 'batchDate'
-                        | 'isflag'
-                        | 'enabled'
-                        | 'totalNum'
-                        | 'results'
-                        | 'approver'
-                        | 'auditor'
-                        | 'creater'
-                        | 'tabDate'
-                        | 'verName'
-                        | 'verCode'
-                        | 'archDate'
-                        | 'flag'
-                        | 'toMesDate'
-                        | 'fromMesDate'
-                        | 'deleted'
-                        | 'batchDes'
-                        | 'category'
-                        | 'makeno'
-                        | 'shifteqpno'
-                        | 'boxno'
-                        | 'pid'
-                        | 'reviewer'
-                        | 'rvcount'
-                        | 'state'
-                        | 'reviewTime'
-                        | 'auditTime'
-                        | 'spec'
-                        | 'approveTime'
-                        | 'unit'
-                        | 'arrivalTime'
-                        | 'storagePlace'
-                        | 'checker'
-                        | 'receiveTime'
-                        | 'inspTime'
-                        | 'storer'
-                        | 'isverify'
-                        | 'ischk'
-                        | 'bak1'
-                        | 'bak2'
-            >
-        >;
+    /** batch operate params */
+    type BatchOperateParams = CommonType.RecordNullable<
+      Pick<
+        Api.Qm.Batch,
+        | 'id'
+        | 'batchCode'
+        | 'batchName'
+        | 'typ'
+        | 'eqpCode'
+        | 'matCode'
+        | 'judgeCode'
+        | 'batchDate'
+        | 'isflag'
+        | 'enabled'
+        | 'totalNum'
+        | 'results'
+        | 'approver'
+        | 'auditor'
+        | 'creater'
+        | 'tabDate'
+        | 'verName'
+        | 'verCode'
+        | 'archDate'
+        | 'flag'
+        | 'toMesDate'
+        | 'fromMesDate'
+        | 'deleted'
+        | 'batchDes'
+        | 'category'
+        | 'makeno'
+        | 'shifteqpno'
+        | 'boxno'
+        | 'pid'
+        | 'reviewer'
+        | 'rvcount'
+        | 'state'
+        | 'reviewTime'
+        | 'auditTime'
+        | 'spec'
+        | 'approveTime'
+        | 'unit'
+        | 'arrivalTime'
+        | 'storagePlace'
+        | 'checker'
+        | 'receiveTime'
+        | 'inspTime'
+        | 'storer'
+        | 'isverify'
+        | 'ischk'
+        | 'bak1'
+        | 'bak2'
+      >
+    >;
 
-        /** batch list */
-        type BatchList = Api.Common.PaginatingQueryRecord<Batch>;
-    }
+    /** batch list */
+    type BatchList = Api.Common.PaginatingQueryRecord<Batch>;
+  }
 }
diff --git a/ruoyi-plus-soybean/src/views/analy/feed-match/index.vue b/ruoyi-plus-soybean/src/views/analy/feed-match/index.vue
index f76c41a..0c59e4b 100644
--- a/ruoyi-plus-soybean/src/views/analy/feed-match/index.vue
+++ b/ruoyi-plus-soybean/src/views/analy/feed-match/index.vue
@@ -15,7 +15,6 @@
   name: 'FeedMatchList'
 });
 
-
 const appStore = useAppStore();
 const { download } = useDownload();
 const { hasAuth } = useAuth();
@@ -30,242 +29,242 @@
 
 const { columns, columnChecks, data, getData, getDataByPage, loading, mobilePagination, scrollX } =
   useNaivePaginatedTable({
-  api: () => fetchGetFeedMatchList(searchParams.value),
-  transform: response => defaultTransform(response),
-  onPaginationParamsChange: params => {
-    searchParams.value.pageNum = params.page;
-    searchParams.value.pageSize = params.pageSize;
-  },
-  columns: () => [
-    {
-      type: 'selection',
-      align: 'center',
-      width: 48
+    api: () => fetchGetFeedMatchList(searchParams.value),
+    transform: response => defaultTransform(response),
+    onPaginationParamsChange: params => {
+      searchParams.value.pageNum = params.page;
+      searchParams.value.pageSize = params.pageSize;
     },
-    {
-      key: 'index',
-      title: $t('common.index'),
-      align: 'center',
-      width: 64,
-      render: (_, index) => index + 1
-    },
-    {
-      key: 'time',
-      title: '鏃堕棿鎴�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'key',
-      title: '鐝+鏈哄彴',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'dacUpTime',
-      title: '鏁版嵁鏇存柊鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fs11',
-      title: '1#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fs12',
-      title: '1#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fs21',
-      title: '2#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fs22',
-      title: '2#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fs31',
-      title: '3#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fs32',
-      title: '3#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fs41',
-      title: '4#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fs42',
-      title: '4#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe01',
-      title: '1#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe02',
-      title: '2#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe03',
-      title: '3#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe04',
-      title: '4#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe05',
-      title: '5#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe06',
-      title: '6#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe07',
-      title: '7#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe08',
-      title: '8#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe09',
-      title: '9#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe10',
-      title: '10#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe11',
-      title: '11#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pipe12',
-      title: '12#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'wsjState',
-      title: '鍠備笣鏈虹姸鎬� 1-杩炴帴 0-鏂紑',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'shift',
-      title: '鐝',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'equNo',
-      title: '鏈哄彴',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'remark',
-      title: '澶囨敞',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'operate',
-      title: $t('common.operate'),
-      align: 'center',
-      width: 130,
-      render: row => {
-        const divider = () => {
-          if (!hasAuth('analy:feedMatch:edit') || !hasAuth('analy:feedMatch:remove')) {
-            return null;
-          }
-          return <NDivider vertical />;
-        };
+    columns: () => [
+      {
+        type: 'selection',
+        align: 'center',
+        width: 48
+      },
+      {
+        key: 'index',
+        title: $t('common.index'),
+        align: 'center',
+        width: 64,
+        render: (_, index) => index + 1
+      },
+      {
+        key: 'time',
+        title: '鏃堕棿鎴�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'key',
+        title: '鐝+鏈哄彴',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'dacUpTime',
+        title: '鏁版嵁鏇存柊鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fs11',
+        title: '1#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fs12',
+        title: '1#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fs21',
+        title: '2#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fs22',
+        title: '2#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fs31',
+        title: '3#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fs32',
+        title: '3#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fs41',
+        title: '4#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fs42',
+        title: '4#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe01',
+        title: '1#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe02',
+        title: '2#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe03',
+        title: '3#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe04',
+        title: '4#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe05',
+        title: '5#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe06',
+        title: '6#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe07',
+        title: '7#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe08',
+        title: '8#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe09',
+        title: '9#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe10',
+        title: '10#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe11',
+        title: '11#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pipe12',
+        title: '12#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'wsjState',
+        title: '鍠備笣鏈虹姸鎬� 1-杩炴帴 0-鏂紑',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'shift',
+        title: '鐝',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'equNo',
+        title: '鏈哄彴',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'remark',
+        title: '澶囨敞',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'operate',
+        title: $t('common.operate'),
+        align: 'center',
+        width: 130,
+        render: row => {
+          const divider = () => {
+            if (!hasAuth('analy:feedMatch:edit') || !hasAuth('analy:feedMatch:remove')) {
+              return null;
+            }
+            return <NDivider vertical />;
+          };
 
-        const editBtn = () => {
-          if (!hasAuth('analy:feedMatch:edit')) {
-            return null;
-          }
+          const editBtn = () => {
+            if (!hasAuth('analy:feedMatch:edit')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="primary"
+                icon="material-symbols:drive-file-rename-outline-outline"
+                tooltipContent={$t('common.edit')}
+                onClick={() => edit(row.time)}
+              />
+            );
+          };
+
+          const deleteBtn = () => {
+            if (!hasAuth('analy:feedMatch:remove')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="error"
+                icon="material-symbols:delete-outline"
+                tooltipContent={$t('common.delete')}
+                popconfirmContent={$t('common.confirmDelete')}
+                onPositiveClick={() => handleDelete(row.time)}
+              />
+            );
+          };
+
           return (
-            <ButtonIcon
-              text
-              type="primary"
-              icon="material-symbols:drive-file-rename-outline-outline"
-              tooltipContent={$t('common.edit')}
-              onClick={() => edit(row.time)}
-            />
+            <div class="flex-center gap-8px">
+              {editBtn()}
+              {divider()}
+              {deleteBtn()}
+            </div>
           );
-        };
-
-        const deleteBtn = () => {
-          if (!hasAuth('analy:feedMatch:remove')) {
-            return null;
-          }
-          return (
-            <ButtonIcon
-              text
-              type="error"
-              icon="material-symbols:delete-outline"
-              tooltipContent={$t('common.delete')}
-              popconfirmContent={$t('common.confirmDelete')}
-              onPositiveClick={() => handleDelete(row.time)}
-            />
-          );
-        };
-
-        return (
-          <div class="flex-center gap-8px">
-            {editBtn()}
-            {divider()}
-            {deleteBtn()}
-          </div>
-        );
+        }
       }
-    }
-  ]
-});
+    ]
+  });
 
 const { drawerVisible, operateType, editingData, handleAdd, handleEdit, checkedRowKeys, onBatchDeleted, onDeleted } =
   useTableOperate(data, 'time', getData);
diff --git a/ruoyi-plus-soybean/src/views/analy/feed-match/modules/feed-match-operate-drawer.vue b/ruoyi-plus-soybean/src/views/analy/feed-match/modules/feed-match-operate-drawer.vue
index 77b0221..8f41345 100644
--- a/ruoyi-plus-soybean/src/views/analy/feed-match/modules/feed-match-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/analy/feed-match/modules/feed-match-operate-drawer.vue
@@ -45,45 +45,41 @@
 
 function createDefaultModel(): Model {
   return {
-      time: null,
-      key: '',
-      dacUpTime: '',
-      fs11: '',
-      fs12: '',
-      fs21: '',
-      fs22: '',
-      fs31: '',
-      fs32: '',
-      fs41: '',
-      fs42: '',
-      pipe01: null,
-      pipe02: null,
-      pipe03: null,
-      pipe04: null,
-      pipe05: null,
-      pipe06: null,
-      pipe07: null,
-      pipe08: null,
-      pipe09: null,
-      pipe10: null,
-      pipe11: null,
-      pipe12: null,
-      wsjState: null,
-      shift: null,
-      equNo: null,
-      remark: ''
+    time: null,
+    key: '',
+    dacUpTime: '',
+    fs11: '',
+    fs12: '',
+    fs21: '',
+    fs22: '',
+    fs31: '',
+    fs32: '',
+    fs41: '',
+    fs42: '',
+    pipe01: null,
+    pipe02: null,
+    pipe03: null,
+    pipe04: null,
+    pipe05: null,
+    pipe06: null,
+    pipe07: null,
+    pipe08: null,
+    pipe09: null,
+    pipe10: null,
+    pipe11: null,
+    pipe12: null,
+    wsjState: null,
+    shift: null,
+    equNo: null,
+    remark: ''
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'time'
-  | 'key'
->;
+type RuleKey = Extract<keyof Model, 'time' | 'key'>;
 
 const rules: Record<RuleKey, App.Global.FormRule> = {
   time: createRequiredRule('鏃堕棿鎴充笉鑳戒负绌�'),
-  key: createRequiredRule('鐝+鏈哄彴涓嶈兘涓虹┖'),
+  key: createRequiredRule('鐝+鏈哄彴涓嶈兘涓虹┖')
 };
 
 function handleUpdateModelWhenEdit() {
@@ -101,16 +97,100 @@
 async function handleSubmit() {
   await validate();
 
-  const { time, key, dacUpTime, fs11, fs12, fs21, fs22, fs31, fs32, fs41, fs42, pipe01, pipe02, pipe03, pipe04, pipe05, pipe06, pipe07, pipe08, pipe09, pipe10, pipe11, pipe12, wsjState, shift, equNo, remark } = model.value;
+  const {
+    time,
+    key,
+    dacUpTime,
+    fs11,
+    fs12,
+    fs21,
+    fs22,
+    fs31,
+    fs32,
+    fs41,
+    fs42,
+    pipe01,
+    pipe02,
+    pipe03,
+    pipe04,
+    pipe05,
+    pipe06,
+    pipe07,
+    pipe08,
+    pipe09,
+    pipe10,
+    pipe11,
+    pipe12,
+    wsjState,
+    shift,
+    equNo,
+    remark
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreateFeedMatch({ time, key, dacUpTime, fs11, fs12, fs21, fs22, fs31, fs32, fs41, fs42, pipe01, pipe02, pipe03, pipe04, pipe05, pipe06, pipe07, pipe08, pipe09, pipe10, pipe11, pipe12, wsjState, shift, equNo, remark });
+    const { error } = await fetchCreateFeedMatch({
+      time,
+      key,
+      dacUpTime,
+      fs11,
+      fs12,
+      fs21,
+      fs22,
+      fs31,
+      fs32,
+      fs41,
+      fs42,
+      pipe01,
+      pipe02,
+      pipe03,
+      pipe04,
+      pipe05,
+      pipe06,
+      pipe07,
+      pipe08,
+      pipe09,
+      pipe10,
+      pipe11,
+      pipe12,
+      wsjState,
+      shift,
+      equNo,
+      remark
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdateFeedMatch({ time, key, dacUpTime, fs11, fs12, fs21, fs22, fs31, fs32, fs41, fs42, pipe01, pipe02, pipe03, pipe04, pipe05, pipe06, pipe07, pipe08, pipe09, pipe10, pipe11, pipe12, wsjState, shift, equNo, remark });
+    const { error } = await fetchUpdateFeedMatch({
+      time,
+      key,
+      dacUpTime,
+      fs11,
+      fs12,
+      fs21,
+      fs22,
+      fs31,
+      fs32,
+      fs41,
+      fs42,
+      pipe01,
+      pipe02,
+      pipe03,
+      pipe04,
+      pipe05,
+      pipe06,
+      pipe07,
+      pipe08,
+      pipe09,
+      pipe10,
+      pipe11,
+      pipe12,
+      wsjState,
+      shift,
+      equNo,
+      remark
+    });
     if (error) return;
   }
 
@@ -140,84 +220,34 @@
           />
         </NFormItem>
         <NFormItem label="鐝+鏈哄彴" path="key">
-          <NInput
-            v-model:value="model.key"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏ョ彮娆�+鏈哄彴"
-          />
+          <NInput v-model:value="model.key" :rows="3" type="textarea" placeholder="璇疯緭鍏ョ彮娆�+鏈哄彴" />
         </NFormItem>
         <NFormItem label="鏁版嵁鏇存柊鏃堕棿" path="dacUpTime">
-          <NInput
-            v-model:value="model.dacUpTime"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏ユ暟鎹洿鏂版椂闂�"
-          />
+          <NInput v-model:value="model.dacUpTime" :rows="3" type="textarea" placeholder="璇疯緭鍏ユ暟鎹洿鏂版椂闂�" />
         </NFormItem>
         <NFormItem label="1#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖" path="fs11">
-          <NInput
-            v-model:value="model.fs11"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏�1#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖"
-          />
+          <NInput v-model:value="model.fs11" :rows="3" type="textarea" placeholder="璇疯緭鍏�1#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖" />
         </NFormItem>
         <NFormItem label="1#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖" path="fs12">
-          <NInput
-            v-model:value="model.fs12"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏�1#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖"
-          />
+          <NInput v-model:value="model.fs12" :rows="3" type="textarea" placeholder="璇疯緭鍏�1#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖" />
         </NFormItem>
         <NFormItem label="2#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖" path="fs21">
-          <NInput
-            v-model:value="model.fs21"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏�2#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖"
-          />
+          <NInput v-model:value="model.fs21" :rows="3" type="textarea" placeholder="璇疯緭鍏�2#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖" />
         </NFormItem>
         <NFormItem label="2#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖" path="fs22">
-          <NInput
-            v-model:value="model.fs22"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏�2#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖"
-          />
+          <NInput v-model:value="model.fs22" :rows="3" type="textarea" placeholder="璇疯緭鍏�2#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖" />
         </NFormItem>
         <NFormItem label="3#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖" path="fs31">
-          <NInput
-            v-model:value="model.fs31"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏�3#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖"
-          />
+          <NInput v-model:value="model.fs31" :rows="3" type="textarea" placeholder="璇疯緭鍏�3#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖" />
         </NFormItem>
         <NFormItem label="3#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖" path="fs32">
-          <NInput
-            v-model:value="model.fs32"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏�3#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖"
-          />
+          <NInput v-model:value="model.fs32" :rows="3" type="textarea" placeholder="璇疯緭鍏�3#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖" />
         </NFormItem>
         <NFormItem label="4#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖" path="fs41">
-          <NInput
-            v-model:value="model.fs41"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏�4#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖"
-          />
+          <NInput v-model:value="model.fs41" :rows="3" type="textarea" placeholder="璇疯緭鍏�4#鍠備笣鏈哄搴旂殑绗竴涓偍涓濇煖" />
         </NFormItem>
         <NFormItem label="4#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖" path="fs42">
-          <NInput
-            v-model:value="model.fs42"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏�4#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖"
-          />
+          <NInput v-model:value="model.fs42" :rows="3" type="textarea" placeholder="璇疯緭鍏�4#鍠備笣鏈哄搴旂殑绗簩涓偍涓濇煖" />
         </NFormItem>
         <NFormItem label="1#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�" path="pipe01">
           <NInput v-model:value="model.pipe01" placeholder="璇疯緭鍏�1#鏈虹粍瀵瑰簲鐨勫杺涓濇満鍜岀閬�" />
diff --git a/ruoyi-plus-soybean/src/views/analy/hoister/index.vue b/ruoyi-plus-soybean/src/views/analy/hoister/index.vue
index 9e83f57..b7b9926 100755
--- a/ruoyi-plus-soybean/src/views/analy/hoister/index.vue
+++ b/ruoyi-plus-soybean/src/views/analy/hoister/index.vue
@@ -15,7 +15,6 @@
   name: 'HoisterDataList'
 });
 
-
 const appStore = useAppStore();
 const { download } = useDownload();
 const { hasAuth } = useAuth();
@@ -34,314 +33,314 @@
 
 const { columns, columnChecks, data, getData, getDataByPage, loading, mobilePagination, scrollX } =
   useNaivePaginatedTable({
-  api: () => fetchGetHoisterDataList(searchParams.value),
-  transform: response => defaultTransform(response),
-  onPaginationParamsChange: params => {
-    searchParams.value.pageNum = params.page;
-    searchParams.value.pageSize = params.pageSize;
-  },
-  columns: () => [
-    {
-      type: 'selection',
-      align: 'center',
-      width: 48
+    api: () => fetchGetHoisterDataList(searchParams.value),
+    transform: response => defaultTransform(response),
+    onPaginationParamsChange: params => {
+      searchParams.value.pageNum = params.page;
+      searchParams.value.pageSize = params.pageSize;
     },
-    {
-      key: 'index',
-      title: $t('common.index'),
-      align: 'center',
-      width: 64,
-      render: (_, index) => index + 1
-    },
-    {
-      key: 'time',
-      title: '鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'key',
-      title: 'key',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'online',
-      title: '缃戠粶鐘舵��  0寮傚父锛�1姝e父',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'qty',
-      title: '浜ч噺',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState1',
-      title: '1#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState2',
-      title: '2#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState3',
-      title: '3#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState4',
-      title: '4#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState5',
-      title: '5#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState6',
-      title: '6#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState7',
-      title: '7#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState8',
-      title: '8#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState9',
-      title: '9#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState10',
-      title: '10#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState11',
-      title: '11#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tState12',
-      title: '12#鎻愬崌鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pState1',
-      title: '1#鎺掑寘鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pState2',
-      title: '2#鎺掑寘鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pState3',
-      title: '3#鎺掑寘鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pState4',
-      title: '4#鎺掑寘鏈虹姸鎬�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty1',
-      title: '1#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty2',
-      title: '2#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty3',
-      title: '3#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty4',
-      title: '4#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty5',
-      title: '5#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty6',
-      title: '6#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty7',
-      title: '7#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty8',
-      title: '8#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty9',
-      title: '9#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty10',
-      title: '10#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty11',
-      title: '11#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tQty12',
-      title: '12#鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pQty1',
-      title: '1#鎺掑寘鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pQty2',
-      title: '2#鎺掑寘鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pQty3',
-      title: '3#鎺掑寘鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pQty4',
-      title: '4#鎺掑寘鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'shift',
-      title: '鐝',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'equNo',
-      title: '璁惧',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'remark',
-      title: '澶囨敞',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'operate',
-      title: $t('common.operate'),
-      align: 'center',
-      width: 130,
-      render: row => {
-        const divider = () => {
-          if (!hasAuth('qa:hoisterData:edit') || !hasAuth('qa:hoisterData:remove')) {
-            return null;
-          }
-          return <NDivider vertical />;
-        };
+    columns: () => [
+      {
+        type: 'selection',
+        align: 'center',
+        width: 48
+      },
+      {
+        key: 'index',
+        title: $t('common.index'),
+        align: 'center',
+        width: 64,
+        render: (_, index) => index + 1
+      },
+      {
+        key: 'time',
+        title: '鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'key',
+        title: 'key',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'online',
+        title: '缃戠粶鐘舵��  0寮傚父锛�1姝e父',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'qty',
+        title: '浜ч噺',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState1',
+        title: '1#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState2',
+        title: '2#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState3',
+        title: '3#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState4',
+        title: '4#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState5',
+        title: '5#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState6',
+        title: '6#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState7',
+        title: '7#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState8',
+        title: '8#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState9',
+        title: '9#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState10',
+        title: '10#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState11',
+        title: '11#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tState12',
+        title: '12#鎻愬崌鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pState1',
+        title: '1#鎺掑寘鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pState2',
+        title: '2#鎺掑寘鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pState3',
+        title: '3#鎺掑寘鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pState4',
+        title: '4#鎺掑寘鏈虹姸鎬�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty1',
+        title: '1#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty2',
+        title: '2#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty3',
+        title: '3#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty4',
+        title: '4#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty5',
+        title: '5#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty6',
+        title: '6#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty7',
+        title: '7#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty8',
+        title: '8#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty9',
+        title: '9#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty10',
+        title: '10#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty11',
+        title: '11#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tQty12',
+        title: '12#鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pQty1',
+        title: '1#鎺掑寘鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pQty2',
+        title: '2#鎺掑寘鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pQty3',
+        title: '3#鎺掑寘鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pQty4',
+        title: '4#鎺掑寘鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'shift',
+        title: '鐝',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'equNo',
+        title: '璁惧',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'remark',
+        title: '澶囨敞',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'operate',
+        title: $t('common.operate'),
+        align: 'center',
+        width: 130,
+        render: row => {
+          const divider = () => {
+            if (!hasAuth('qa:hoisterData:edit') || !hasAuth('qa:hoisterData:remove')) {
+              return null;
+            }
+            return <NDivider vertical />;
+          };
 
-        const editBtn = () => {
-          if (!hasAuth('qa:hoisterData:edit')) {
-            return null;
-          }
+          const editBtn = () => {
+            if (!hasAuth('qa:hoisterData:edit')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="primary"
+                icon="material-symbols:drive-file-rename-outline-outline"
+                tooltipContent={$t('common.edit')}
+                onClick={() => edit(row.time)}
+              />
+            );
+          };
+
+          const deleteBtn = () => {
+            if (!hasAuth('qa:hoisterData:remove')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="error"
+                icon="material-symbols:delete-outline"
+                tooltipContent={$t('common.delete')}
+                popconfirmContent={$t('common.confirmDelete')}
+                onPositiveClick={() => handleDelete(row.time)}
+              />
+            );
+          };
+
           return (
-            <ButtonIcon
-              text
-              type="primary"
-              icon="material-symbols:drive-file-rename-outline-outline"
-              tooltipContent={$t('common.edit')}
-              onClick={() => edit(row.time)}
-            />
+            <div class="flex-center gap-8px">
+              {editBtn()}
+              {divider()}
+              {deleteBtn()}
+            </div>
           );
-        };
-
-        const deleteBtn = () => {
-          if (!hasAuth('qa:hoisterData:remove')) {
-            return null;
-          }
-          return (
-            <ButtonIcon
-              text
-              type="error"
-              icon="material-symbols:delete-outline"
-              tooltipContent={$t('common.delete')}
-              popconfirmContent={$t('common.confirmDelete')}
-              onPositiveClick={() => handleDelete(row.time)}
-            />
-          );
-        };
-
-        return (
-          <div class="flex-center gap-8px">
-            {editBtn()}
-            {divider()}
-            {deleteBtn()}
-          </div>
-        );
+        }
       }
-    }
-  ]
-});
+    ]
+  });
 
 const { drawerVisible, operateType, editingData, handleAdd, handleEdit, checkedRowKeys, onBatchDeleted, onDeleted } =
   useTableOperate(data, 'time', getData);
diff --git a/ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-operate-drawer.vue b/ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-operate-drawer.vue
index 0864f86..594cdd9 100755
--- a/ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-operate-drawer.vue
@@ -1,9 +1,9 @@
 <script setup lang="ts">
 import { computed, ref, watch } from 'vue';
-import { jsonClone } from '~/packages/utils';
 import { fetchCreateHoisterData, fetchUpdateHoisterData } from '@/service/api/analy/hoister-data';
 import { useFormRules, useNaiveForm } from '@/hooks/common/form';
 import { $t } from '@/locales';
+import { jsonClone } from '~/packages/utils';
 
 defineOptions({
   name: 'HoisterDataOperateDrawer'
@@ -45,57 +45,53 @@
 
 function createDefaultModel(): Model {
   return {
-      time: null,
-      key: '',
-      online: null,
-      qty: null,
-      tState1: null,
-      tState2: null,
-      tState3: null,
-      tState4: null,
-      tState5: null,
-      tState6: null,
-      tState7: null,
-      tState8: null,
-      tState9: null,
-      tState10: null,
-      tState11: null,
-      tState12: null,
-      pState1: null,
-      pState2: null,
-      pState3: null,
-      pState4: null,
-      tQty1: null,
-      tQty2: null,
-      tQty3: null,
-      tQty4: null,
-      tQty5: null,
-      tQty6: null,
-      tQty7: null,
-      tQty8: null,
-      tQty9: null,
-      tQty10: null,
-      tQty11: null,
-      tQty12: null,
-      pQty1: null,
-      pQty2: null,
-      pQty3: null,
-      pQty4: null,
-      shift: null,
-      equNo: null,
-      remark: ''
+    time: null,
+    key: '',
+    online: null,
+    qty: null,
+    tState1: null,
+    tState2: null,
+    tState3: null,
+    tState4: null,
+    tState5: null,
+    tState6: null,
+    tState7: null,
+    tState8: null,
+    tState9: null,
+    tState10: null,
+    tState11: null,
+    tState12: null,
+    pState1: null,
+    pState2: null,
+    pState3: null,
+    pState4: null,
+    tQty1: null,
+    tQty2: null,
+    tQty3: null,
+    tQty4: null,
+    tQty5: null,
+    tQty6: null,
+    tQty7: null,
+    tQty8: null,
+    tQty9: null,
+    tQty10: null,
+    tQty11: null,
+    tQty12: null,
+    pQty1: null,
+    pQty2: null,
+    pQty3: null,
+    pQty4: null,
+    shift: null,
+    equNo: null,
+    remark: ''
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'time'
-  | 'key'
->;
+type RuleKey = Extract<keyof Model, 'time' | 'key'>;
 
 const rules: Record<RuleKey, App.Global.FormRule> = {
   time: createRequiredRule('鏃堕棿涓嶈兘涓虹┖'),
-  key: createRequiredRule('key涓嶈兘涓虹┖'),
+  key: createRequiredRule('key涓嶈兘涓虹┖')
 };
 
 function handleUpdateModelWhenEdit() {
@@ -113,16 +109,136 @@
 async function handleSubmit() {
   await validate();
 
-  const { time, key, online, qty, tState1, tState2, tState3, tState4, tState5, tState6, tState7, tState8, tState9, tState10, tState11, tState12, pState1, pState2, pState3, pState4, tQty1, tQty2, tQty3, tQty4, tQty5, tQty6, tQty7, tQty8, tQty9, tQty10, tQty11, tQty12, pQty1, pQty2, pQty3, pQty4, shift, equNo, remark } = model.value;
+  const {
+    time,
+    key,
+    online,
+    qty,
+    tState1,
+    tState2,
+    tState3,
+    tState4,
+    tState5,
+    tState6,
+    tState7,
+    tState8,
+    tState9,
+    tState10,
+    tState11,
+    tState12,
+    pState1,
+    pState2,
+    pState3,
+    pState4,
+    tQty1,
+    tQty2,
+    tQty3,
+    tQty4,
+    tQty5,
+    tQty6,
+    tQty7,
+    tQty8,
+    tQty9,
+    tQty10,
+    tQty11,
+    tQty12,
+    pQty1,
+    pQty2,
+    pQty3,
+    pQty4,
+    shift,
+    equNo,
+    remark
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreateHoisterData({ time, key, online, qty, tState1, tState2, tState3, tState4, tState5, tState6, tState7, tState8, tState9, tState10, tState11, tState12, pState1, pState2, pState3, pState4, tQty1, tQty2, tQty3, tQty4, tQty5, tQty6, tQty7, tQty8, tQty9, tQty10, tQty11, tQty12, pQty1, pQty2, pQty3, pQty4, shift, equNo, remark });
+    const { error } = await fetchCreateHoisterData({
+      time,
+      key,
+      online,
+      qty,
+      tState1,
+      tState2,
+      tState3,
+      tState4,
+      tState5,
+      tState6,
+      tState7,
+      tState8,
+      tState9,
+      tState10,
+      tState11,
+      tState12,
+      pState1,
+      pState2,
+      pState3,
+      pState4,
+      tQty1,
+      tQty2,
+      tQty3,
+      tQty4,
+      tQty5,
+      tQty6,
+      tQty7,
+      tQty8,
+      tQty9,
+      tQty10,
+      tQty11,
+      tQty12,
+      pQty1,
+      pQty2,
+      pQty3,
+      pQty4,
+      shift,
+      equNo,
+      remark
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdateHoisterData({ time, key, online, qty, tState1, tState2, tState3, tState4, tState5, tState6, tState7, tState8, tState9, tState10, tState11, tState12, pState1, pState2, pState3, pState4, tQty1, tQty2, tQty3, tQty4, tQty5, tQty6, tQty7, tQty8, tQty9, tQty10, tQty11, tQty12, pQty1, pQty2, pQty3, pQty4, shift, equNo, remark });
+    const { error } = await fetchUpdateHoisterData({
+      time,
+      key,
+      online,
+      qty,
+      tState1,
+      tState2,
+      tState3,
+      tState4,
+      tState5,
+      tState6,
+      tState7,
+      tState8,
+      tState9,
+      tState10,
+      tState11,
+      tState12,
+      pState1,
+      pState2,
+      pState3,
+      pState4,
+      tQty1,
+      tQty2,
+      tQty3,
+      tQty4,
+      tQty5,
+      tQty6,
+      tQty7,
+      tQty8,
+      tQty9,
+      tQty10,
+      tQty11,
+      tQty12,
+      pQty1,
+      pQty2,
+      pQty3,
+      pQty4,
+      shift,
+      equNo,
+      remark
+    });
     if (error) return;
   }
 
@@ -153,12 +269,7 @@
           />
         </NFormItem>
         <NFormItem label="key" path="key">
-          <NInput
-            v-model:value="model.key"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏ey"
-          />
+          <NInput v-model:value="model.key" :rows="3" type="textarea" placeholder="璇疯緭鍏ey" />
         </NFormItem>
         <NFormItem label="缃戠粶鐘舵��  0寮傚父锛�1姝e父" path="online">
           <NInput v-model:value="model.online" placeholder="璇疯緭鍏ョ綉缁滅姸鎬�  0寮傚父锛�1姝e父" />
diff --git a/ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-search.vue b/ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-search.vue
index db26889..9abfdde 100755
--- a/ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-search.vue
+++ b/ruoyi-plus-soybean/src/views/analy/hoister/modules/hoister-data-search.vue
@@ -53,9 +53,7 @@
   { label: '鏅氱彮', value: 3 }
 ];
 
-const equNoOptions = [
-  { label: '1#鎻愬崌鏈�', value: 601 }
-];
+const equNoOptions = [{ label: '1#鎻愬崌鏈�', value: 601 }];
 
 function onTimeRangeUpdate(value: [string, string] | null) {
   if (!model.value.params) {
@@ -101,25 +99,15 @@
                 type="datetimerange"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 clearable
-                @update:formatted-value="onTimeRangeUpdate"
                 :default-time="['00:00:00', '23:59:59']"
+                @update:formatted-value="onTimeRangeUpdate"
               />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="璁惧" path="equNo" class="pr-24px">
-              <NSelect
-                v-model:value="model.equNo"
-                placeholder="璇烽�夋嫨璁惧鍙�"
-                :options="equNoOptions"
-                clearable
-              />
+              <NSelect v-model:value="model.equNo" placeholder="璇烽�夋嫨璁惧鍙�" :options="equNoOptions" clearable />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="鐝" path="shift" class="pr-24px">
-              <NSelect
-                v-model:value="model.shift"
-                placeholder="璇烽�夋嫨鐝"
-                :options="shiftOptions"
-                clearable
-              />
+              <NSelect v-model:value="model.shift" placeholder="璇烽�夋嫨鐝" :options="shiftOptions" clearable />
             </NFormItemGi>
             <NFormItemGi span="24" class="pr-24px">
               <NSpace class="w-full" justify="end">
diff --git a/ruoyi-plus-soybean/src/views/analy/output-analy/index.vue b/ruoyi-plus-soybean/src/views/analy/output-analy/index.vue
index 7d5d986..6a0d891 100755
--- a/ruoyi-plus-soybean/src/views/analy/output-analy/index.vue
+++ b/ruoyi-plus-soybean/src/views/analy/output-analy/index.vue
@@ -76,123 +76,124 @@
 const { columns, columnChecks, data, getData, loading, scrollX } = useNaiveTable({
   api: () => fetchGetRollerSampleDataList(searchParams.value),
   transform: (response: any) => response.data || [],
-  columns: () => ([
-    {
-      key: 'index',
-      title: '搴忓彿',
-      align: 'center',
-      width: 64,
-      render: (_: Api.Qa.RollerData, index: number) => index + 1
-    },
-    {
-      key: 'time',
-      title: '鏃堕棿',
-      align: 'center',
-      minWidth: 160
-    },
-    {
-      key: 'equNo',
-      title: '璁惧',
-      align: 'center',
-      minWidth: 120,
-      render: (row: Api.Qa.RollerData) => equNoMap[row.equNo] || row.equNo
-    },
-    {
-      key: 'shift',
-      title: '鐝',
-      align: 'center',
-      minWidth: 80,
-      render: (row: Api.Qa.RollerData) => <NTag type="info">{shiftMap[row.shift] || row.shift}</NTag>
-    },
-    {
-      key: 'qty',
-      title: '鍗锋帴鏈轰骇閲�(鍗冩敮)',
-      align: 'center',
-      minWidth: 100,
-      render: (row: Api.Qa.RollerData) => Number(row.qty ?? 0).toFixed(1)
-    },
-    {
-      key: 'qtyBox',
-      title: '鍗锋帴鏈轰骇閲�(绠�)',
-      align: 'center',
-      minWidth: 120,
-      render: (row: Api.Qa.RollerData) => {
-        const v = Number(row.qty ?? 0) / 50;
-        return v.toFixed(1);
+  columns: () =>
+    [
+      {
+        key: 'index',
+        title: '搴忓彿',
+        align: 'center',
+        width: 64,
+        render: (_: Api.Qa.RollerData, index: number) => index + 1
+      },
+      {
+        key: 'time',
+        title: '鏃堕棿',
+        align: 'center',
+        minWidth: 160
+      },
+      {
+        key: 'equNo',
+        title: '璁惧',
+        align: 'center',
+        minWidth: 120,
+        render: (row: Api.Qa.RollerData) => equNoMap[row.equNo] || row.equNo
+      },
+      {
+        key: 'shift',
+        title: '鐝',
+        align: 'center',
+        minWidth: 80,
+        render: (row: Api.Qa.RollerData) => <NTag type="info">{shiftMap[row.shift] || row.shift}</NTag>
+      },
+      {
+        key: 'qty',
+        title: '鍗锋帴鏈轰骇閲�(鍗冩敮)',
+        align: 'center',
+        minWidth: 100,
+        render: (row: Api.Qa.RollerData) => Number(row.qty ?? 0).toFixed(1)
+      },
+      {
+        key: 'qtyBox',
+        title: '鍗锋帴鏈轰骇閲�(绠�)',
+        align: 'center',
+        minWidth: 120,
+        render: (row: Api.Qa.RollerData) => {
+          const v = Number(row.qty ?? 0) / 50;
+          return v.toFixed(1);
+        }
+      },
+      {
+        key: 'tsQtyTiao',
+        title: '鎻愬崌鏈轰骇閲�(鏉�)',
+        align: 'center',
+        minWidth: 120,
+        render: (row: Api.Qa.RollerData) => {
+          if (row.tsQty === null || row.tsQty === undefined) return '-';
+          return Number(row.tsQty).toFixed(1);
+        }
+      },
+      {
+        key: 'tsQtyBox',
+        title: '鎻愬崌鏈轰骇閲�(绠�)',
+        align: 'center',
+        minWidth: 120,
+        render: (row: Api.Qa.RollerData) => {
+          if (row.tsQty === null || row.tsQty === undefined) return '-';
+          const v = Number(row.tsQty) / 250;
+          return v.toFixed(1);
+        }
+      },
+      {
+        key: 'packerQty',
+        title: '鍖呰鏈轰骇閲�(灏忓寘)',
+        align: 'center',
+        minWidth: 140,
+        render: (row: Api.Qa.RollerData) => {
+          if (row.packerQty === null || row.packerQty === undefined) return '-';
+          return Number(row.packerQty).toFixed(1);
+        }
+      },
+      {
+        key: 'packerQtyBox',
+        title: '鍖呰鏈轰骇閲�(绠�)',
+        align: 'center',
+        minWidth: 120,
+        render: (row: Api.Qa.RollerData) => {
+          if (row.packerQty === null || row.packerQty === undefined) return '-';
+          const v = Number(row.packerQty) / 10 / 250;
+          return v.toFixed(1);
+        }
+      },
+      {
+        key: 'lvbangVal',
+        title: '婊ゆ娑堣��(鏀�)',
+        align: 'center',
+        minWidth: 140,
+        render: (row: Api.Qa.RollerData) => Number(row.lvbangVal ?? 0).toFixed(1)
+      },
+      {
+        key: 'lvbangWan',
+        title: '婊ゆ娑堣��(涓囨敮)',
+        align: 'center',
+        minWidth: 140,
+        render: (row: Api.Qa.RollerData) => {
+          const v = Number(row.lvbangVal ?? 0) / 10000;
+          return v.toFixed(1);
+        }
+      },
+      {
+        key: 'danhao',
+        title: '婊ゆ鍗曡��(涓囨敮/绠�)',
+        align: 'center',
+        minWidth: 180,
+        render: (row: Api.Qa.RollerData) => {
+          const qtyBox = Number(row.qty ?? 0) / 50;
+          if (!qtyBox) return '-';
+          const v = Number(row.lvbangVal ?? 0) / 10000 / qtyBox;
+          return v.toFixed(1);
+        }
       }
-    },
-    {
-      key: 'tsQtyTiao',
-      title: '鎻愬崌鏈轰骇閲�(鏉�)',
-      align: 'center',
-      minWidth: 120,
-      render: (row: Api.Qa.RollerData) => {
-        if (row.tsQty === null || row.tsQty === undefined) return '-';
-        return Number(row.tsQty).toFixed(1);
-      }
-    },
-    {
-      key: 'tsQtyBox',
-      title: '鎻愬崌鏈轰骇閲�(绠�)',
-      align: 'center',
-      minWidth: 120,
-      render: (row: Api.Qa.RollerData) => {
-        if (row.tsQty === null || row.tsQty === undefined) return '-';
-        const v = Number(row.tsQty) / 250;
-        return v.toFixed(1);
-      }
-    },
-    {
-      key: 'packerQty',
-      title: '鍖呰鏈轰骇閲�(灏忓寘)',
-      align: 'center',
-      minWidth: 140,
-      render: (row: Api.Qa.RollerData) => {
-        if (row.packerQty === null || row.packerQty === undefined) return '-';
-        return Number(row.packerQty).toFixed(1);
-      }
-    },
-    {
-      key: 'packerQtyBox',
-      title: '鍖呰鏈轰骇閲�(绠�)',
-      align: 'center',
-      minWidth: 120,
-      render: (row: Api.Qa.RollerData) => {
-        if (row.packerQty === null || row.packerQty === undefined) return '-';
-        const v = Number(row.packerQty) / 10 / 250;
-        return v.toFixed(1);
-      }
-    },
-    {
-      key: 'lvbangVal',
-      title: '婊ゆ娑堣��(鏀�)',
-      align: 'center',
-      minWidth: 140,
-      render: (row: Api.Qa.RollerData) => Number(row.lvbangVal ?? 0).toFixed(1)
-    },
-    {
-      key: 'lvbangWan',
-      title: '婊ゆ娑堣��(涓囨敮)',
-      align: 'center',
-      minWidth: 140,
-      render: (row: Api.Qa.RollerData) => {
-        const v = Number(row.lvbangVal ?? 0) / 10000;
-        return v.toFixed(1);
-      }
-    },
-    {
-      key: 'danhao',
-      title: '婊ゆ鍗曡��(涓囨敮/绠�)',
-      align: 'center',
-      minWidth: 180,
-      render: (row: Api.Qa.RollerData) => {
-        const qtyBox = Number(row.qty ?? 0) / 50;
-        if (!qtyBox) return '-';
-        const v = (Number(row.lvbangVal ?? 0) / 10000) / qtyBox;
-        return v.toFixed(1);
-      }
-    }
-  ] as any)
+    ] as any
 });
 
 async function handleExport() {
@@ -202,18 +203,15 @@
 
 <template>
   <div class="h-full min-h-500px flex-col-stretch gap-16px overflow-hidden lt-sm:overflow-auto">
-    <RollerDataSearch
-      v-model:model="searchParams"
-      @search="getData"
-    />
+    <RollerDataSearch v-model:model="searchParams" @search="getData" />
     <NCard
-            v-if="!showTable"
-            title="鍗锋帴鏈哄垎鏋愯秼鍔垮浘"
-            :bordered="false"
-            size="small"
-            class="sm:flex-1-hidden card-wrapper flex flex-col"
-            content-style="flex: 1; min-height: 0; overflow: hidden;"
-          >
+      v-if="!showTable"
+      title="鍗锋帴鏈哄垎鏋愯秼鍔垮浘"
+      :bordered="false"
+      size="small"
+      class="flex flex-col card-wrapper sm:flex-1-hidden"
+      content-style="flex: 1; min-height: 0; overflow: hidden;"
+    >
       <template #header-extra>
         <NButton size="small" @click="showTable = true">
           <template #icon>
@@ -224,13 +222,7 @@
       </template>
       <RollerDataLineChart :data="(data as any)" class="h-full" />
     </NCard>
-    <NCard
-      v-else
-      title="鏁版嵁璇︽儏"
-      :bordered="false"
-      size="small"
-      class="sm:flex-1-hidden card-wrapper"
-    >
+    <NCard v-else title="鏁版嵁璇︽儏" :bordered="false" size="small" class="card-wrapper sm:flex-1-hidden">
       <template #header-extra>
         <TableHeaderOperation
           v-model:columns="columnChecks"
diff --git a/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-line-chart.vue b/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-line-chart.vue
index 77271ca..44e021d 100755
--- a/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-line-chart.vue
+++ b/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-line-chart.vue
@@ -258,7 +258,7 @@
 
 watch(
   () => props.data,
-  (newData) => {
+  newData => {
     if (!newData) return;
 
     // Process data
@@ -277,7 +277,7 @@
     });
     const packerQtys = sortedData.value.map(item => {
       // Assuming packerQty is in same unit as tsQty or similar
-      const v = Number(item.packerQty ?? 0)/ 10 / 250;
+      const v = Number(item.packerQty ?? 0) / 10 / 250;
       return Math.round(v * 10) / 10;
     });
     const lvbangVals = sortedData.value.map(item => {
@@ -287,7 +287,7 @@
     const danhaoVals = sortedData.value.map(item => {
       const qtyBox = Number(item.qty ?? 0) / 50;
       if (!qtyBox) return 0;
-      const v = (Number(item.lvbangVal ?? 0) / 10000) / qtyBox;
+      const v = Number(item.lvbangVal ?? 0) / 10000 / qtyBox;
       return Math.round(v * 10) / 10;
     });
 
diff --git a/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-operate-drawer.vue b/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-operate-drawer.vue
index 2b0ad65..fac69f2 100755
--- a/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-operate-drawer.vue
@@ -1,9 +1,9 @@
 <script setup lang="ts">
 import { computed, ref, watch } from 'vue';
-import { jsonClone } from '~/packages/utils';
 import { fetchCreateRollerData, fetchUpdateRollerData } from '@/service/api/analy/roller-data';
 import { useFormRules, useNaiveForm } from '@/hooks/common/form';
 import { $t } from '@/locales';
+import { jsonClone } from '~/packages/utils';
 
 defineOptions({
   name: 'RollerDataOperateDrawer'
@@ -45,37 +45,33 @@
 
 function createDefaultModel(): Model {
   return {
-      time: null,
-      key: '',
-      online: null,
-      qty: null,
-      badQty: null,
-      lvbangVal: null,
-      juanyanzhiVal: null,
-      shuisongzhiVal: null,
-      runTime: null,
-      stopTime: null,
-      stopTimes: null,
-      speed: null,
-      runStatus: null,
-      cy: null,
-      cyCs: null,
-      cyOnline: '',
-      recQty1: null,
-      recQty2: null,
-      tsQty: null
+    time: null,
+    key: '',
+    online: null,
+    qty: null,
+    badQty: null,
+    lvbangVal: null,
+    juanyanzhiVal: null,
+    shuisongzhiVal: null,
+    runTime: null,
+    stopTime: null,
+    stopTimes: null,
+    speed: null,
+    runStatus: null,
+    cy: null,
+    cyCs: null,
+    cyOnline: '',
+    recQty1: null,
+    recQty2: null,
+    tsQty: null
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'time'
-  | 'key'
->;
+type RuleKey = Extract<keyof Model, 'time' | 'key'>;
 
 const rules: Record<RuleKey, App.Global.FormRule> = {
   time: createRequiredRule('鏃堕棿涓嶈兘涓虹┖'),
-  key: createRequiredRule('key涓嶈兘涓虹┖'),
+  key: createRequiredRule('key涓嶈兘涓虹┖')
 };
 
 function handleUpdateModelWhenEdit() {
@@ -93,16 +89,76 @@
 async function handleSubmit() {
   await validate();
 
-  const { time, key, online, qty, badQty, lvbangVal, juanyanzhiVal, shuisongzhiVal, runTime, stopTime, stopTimes, speed, runStatus, cy, cyCs, cyOnline, recQty1, recQty2, tsQty } = model.value;
+  const {
+    time,
+    key,
+    online,
+    qty,
+    badQty,
+    lvbangVal,
+    juanyanzhiVal,
+    shuisongzhiVal,
+    runTime,
+    stopTime,
+    stopTimes,
+    speed,
+    runStatus,
+    cy,
+    cyCs,
+    cyOnline,
+    recQty1,
+    recQty2,
+    tsQty
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreateRollerData({ time, key, online, qty, badQty, lvbangVal, juanyanzhiVal, shuisongzhiVal, runTime, stopTime, stopTimes, speed, runStatus, cy, cyCs, cyOnline, recQty1, recQty2, tsQty });
+    const { error } = await fetchCreateRollerData({
+      time,
+      key,
+      online,
+      qty,
+      badQty,
+      lvbangVal,
+      juanyanzhiVal,
+      shuisongzhiVal,
+      runTime,
+      stopTime,
+      stopTimes,
+      speed,
+      runStatus,
+      cy,
+      cyCs,
+      cyOnline,
+      recQty1,
+      recQty2,
+      tsQty
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdateRollerData({ time, key, online, qty, badQty, lvbangVal, juanyanzhiVal, shuisongzhiVal, runTime, stopTime, stopTimes, speed, runStatus, cy, cyCs, cyOnline, recQty1, recQty2, tsQty });
+    const { error } = await fetchUpdateRollerData({
+      time,
+      key,
+      online,
+      qty,
+      badQty,
+      lvbangVal,
+      juanyanzhiVal,
+      shuisongzhiVal,
+      runTime,
+      stopTime,
+      stopTimes,
+      speed,
+      runStatus,
+      cy,
+      cyCs,
+      cyOnline,
+      recQty1,
+      recQty2,
+      tsQty
+    });
     if (error) return;
   }
 
@@ -132,12 +188,7 @@
           />
         </NFormItem>
         <NFormItem label="key" path="key">
-          <NInput
-            v-model:value="model.key"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏ey"
-          />
+          <NInput v-model:value="model.key" :rows="3" type="textarea" placeholder="璇疯緭鍏ey" />
         </NFormItem>
         <NFormItem label="缃戠粶鐘舵��" path="online">
           <NInputNumber v-model:value="model.online" placeholder="璇疯緭鍏ョ綉缁滅姸鎬�" class="w-full" />
@@ -186,12 +237,7 @@
           <NInputNumber v-model:value="model.cyCs" placeholder="璇疯緭鍏ュ偍鐑熻澶囪溅閫�" class="w-full" />
         </NFormItem>
         <NFormItem label="鍌ㄧ儫璁惧缃戠粶" path="cyOnline">
-          <NInput
-            v-model:value="model.cyOnline"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏ュ偍鐑熻澶囩綉缁�"
-          />
+          <NInput v-model:value="model.cyOnline" :rows="3" type="textarea" placeholder="璇疯緭鍏ュ偍鐑熻澶囩綉缁�" />
         </NFormItem>
         <NFormItem label="鎺ユ敹鏈轰骇閲�" path="recQty1">
           <NInputNumber v-model:value="model.recQty1" placeholder="璇疯緭鍏ユ帴鏀舵満浜ч噺" class="w-full" />
diff --git a/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-search.vue b/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-search.vue
index 2686174..407468f 100755
--- a/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-search.vue
+++ b/ruoyi-plus-soybean/src/views/analy/output-analy/modules/roller-data-search.vue
@@ -101,25 +101,15 @@
                 type="datetimerange"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 clearable
-                @update:formatted-value="onTimeRangeUpdate"
                 :default-time="['00:00:00', '23:59:59']"
+                @update:formatted-value="onTimeRangeUpdate"
               />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="璁惧" path="equNo" class="pr-24px">
-              <NSelect
-                v-model:value="model.equNo"
-                placeholder="璇烽�夋嫨璁惧鍙�"
-                :options="equNoOptions"
-                clearable
-              />
+              <NSelect v-model:value="model.equNo" placeholder="璇烽�夋嫨璁惧鍙�" :options="equNoOptions" clearable />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="鐝" path="shift" class="pr-24px">
-              <NSelect
-                v-model:value="model.shift"
-                placeholder="璇烽�夋嫨鐝"
-                :options="shiftOptions"
-                clearable
-              />
+              <NSelect v-model:value="model.shift" placeholder="璇烽�夋嫨鐝" :options="shiftOptions" clearable />
             </NFormItemGi>
             <NFormItemGi span="24" class="pr-24px">
               <NSpace class="w-full" justify="end">
diff --git a/ruoyi-plus-soybean/src/views/analy/packer/index.vue b/ruoyi-plus-soybean/src/views/analy/packer/index.vue
index b030ded..0f27005 100755
--- a/ruoyi-plus-soybean/src/views/analy/packer/index.vue
+++ b/ruoyi-plus-soybean/src/views/analy/packer/index.vue
@@ -15,7 +15,6 @@
   name: 'PackerDataList'
 });
 
-
 const appStore = useAppStore();
 const { download } = useDownload();
 const { hasAuth } = useAuth();
@@ -50,229 +49,229 @@
   params: {
     beginTime: `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, '0')}-${String(new Date().getDate()).padStart(2, '0')} 00:00:00`,
     endTime: `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, '0')}-${String(new Date().getDate()).padStart(2, '0')} 23:59:59`
-  },
+  }
 });
 
 const { columns, columnChecks, data, getData, getDataByPage, loading, mobilePagination, scrollX } =
   useNaivePaginatedTable({
-  api: () => fetchGetPackerDataList(searchParams.value),
-  transform: response => defaultTransform(response),
-  onPaginationParamsChange: params => {
-    searchParams.value.pageNum = params.page;
-    searchParams.value.pageSize = params.pageSize;
-  },
-  columns: () => [
-    {
-      type: 'selection',
-      align: 'center',
-      width: 48
+    api: () => fetchGetPackerDataList(searchParams.value),
+    transform: response => defaultTransform(response),
+    onPaginationParamsChange: params => {
+      searchParams.value.pageNum = params.page;
+      searchParams.value.pageSize = params.pageSize;
     },
-    {
-      key: 'index',
-      title: $t('common.index'),
-      align: 'center',
-      width: 64,
-      render: (_, index) => index + 1
-    },
-    {
-      key: 'time',
-      title: '鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'key',
-      title: 'key',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'online',
-      title: '缃戠粶鐘舵��(0寮傚父锛�1姝e父)',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'qty',
-      title: '浜ч噺',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'badQty',
-      title: '鍓旈櫎浜ч噺',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'xiaohemoVal',
-      title: '灏忕洅鑶滄秷鑰�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tiaohemoVal',
-      title: '鏉$洅鑶滄秷鑰�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'xiaohezhiVal',
-      title: '灏忕洅绾告秷鑰�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tiaohezhiVal',
-      title: '鏉$洅绾告秷鑰�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'neichenzhiVal',
-      title: '鍐呰‖绾告秷鑰�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'runTime',
-      title: '杩愯鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'stopTime',
-      title: '鍋滄満鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'stopTimes',
-      title: '鍋滄満娆℃暟',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'speed',
-      title: '杞﹂��',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'runStatus',
-      title: '杩愯鐘舵��(-1 鏂綉 0鍋滄 1浣庨�熻繍琛� 2姝e父杩愯)',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tsQty',
-      title: '鎻愬崌鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'mainQty',
-      title: '涓绘満浜ч噺锛堝皬鍖呮満锛�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'mainBadQty',
-      title: '涓绘満鍓旈櫎閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tbjQty',
-      title: '閫忓寘鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tbjGdQty',
-      title: '閫忓寘鏈哄墧闄ゅソ鍖�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tbjBadQty',
-      title: '閫忓寘鏈哄墧闄ゅ潖鍖�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pbjQty',
-      title: '鎺掑寘鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'shift',
-      title: '鐝',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'equNo',
-      title: '璁惧',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'operate',
-      title: $t('common.operate'),
-      align: 'center',
-      width: 130,
-      render: row => {
-        const divider = () => {
-          if (!hasAuth('qa:packerData:edit') || !hasAuth('qa:packerData:remove')) {
-            return null;
-          }
-          return <NDivider vertical />;
-        };
+    columns: () => [
+      {
+        type: 'selection',
+        align: 'center',
+        width: 48
+      },
+      {
+        key: 'index',
+        title: $t('common.index'),
+        align: 'center',
+        width: 64,
+        render: (_, index) => index + 1
+      },
+      {
+        key: 'time',
+        title: '鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'key',
+        title: 'key',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'online',
+        title: '缃戠粶鐘舵��(0寮傚父锛�1姝e父)',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'qty',
+        title: '浜ч噺',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'badQty',
+        title: '鍓旈櫎浜ч噺',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'xiaohemoVal',
+        title: '灏忕洅鑶滄秷鑰�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tiaohemoVal',
+        title: '鏉$洅鑶滄秷鑰�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'xiaohezhiVal',
+        title: '灏忕洅绾告秷鑰�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tiaohezhiVal',
+        title: '鏉$洅绾告秷鑰�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'neichenzhiVal',
+        title: '鍐呰‖绾告秷鑰�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'runTime',
+        title: '杩愯鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'stopTime',
+        title: '鍋滄満鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'stopTimes',
+        title: '鍋滄満娆℃暟',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'speed',
+        title: '杞﹂��',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'runStatus',
+        title: '杩愯鐘舵��(-1 鏂綉 0鍋滄 1浣庨�熻繍琛� 2姝e父杩愯)',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tsQty',
+        title: '鎻愬崌鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'mainQty',
+        title: '涓绘満浜ч噺锛堝皬鍖呮満锛�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'mainBadQty',
+        title: '涓绘満鍓旈櫎閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tbjQty',
+        title: '閫忓寘鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tbjGdQty',
+        title: '閫忓寘鏈哄墧闄ゅソ鍖�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tbjBadQty',
+        title: '閫忓寘鏈哄墧闄ゅ潖鍖�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pbjQty',
+        title: '鎺掑寘鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'shift',
+        title: '鐝',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'equNo',
+        title: '璁惧',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'operate',
+        title: $t('common.operate'),
+        align: 'center',
+        width: 130,
+        render: row => {
+          const divider = () => {
+            if (!hasAuth('qa:packerData:edit') || !hasAuth('qa:packerData:remove')) {
+              return null;
+            }
+            return <NDivider vertical />;
+          };
 
-        const editBtn = () => {
-          if (!hasAuth('qa:packerData:edit')) {
-            return null;
-          }
+          const editBtn = () => {
+            if (!hasAuth('qa:packerData:edit')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="primary"
+                icon="material-symbols:drive-file-rename-outline-outline"
+                tooltipContent={$t('common.edit')}
+                onClick={() => edit(row.time)}
+              />
+            );
+          };
+
+          const deleteBtn = () => {
+            if (!hasAuth('qa:packerData:remove')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="error"
+                icon="material-symbols:delete-outline"
+                tooltipContent={$t('common.delete')}
+                popconfirmContent={$t('common.confirmDelete')}
+                onPositiveClick={() => handleDelete(row.time)}
+              />
+            );
+          };
+
           return (
-            <ButtonIcon
-              text
-              type="primary"
-              icon="material-symbols:drive-file-rename-outline-outline"
-              tooltipContent={$t('common.edit')}
-              onClick={() => edit(row.time)}
-            />
+            <div class="flex-center gap-8px">
+              {editBtn()}
+              {divider()}
+              {deleteBtn()}
+            </div>
           );
-        };
-
-        const deleteBtn = () => {
-          if (!hasAuth('qa:packerData:remove')) {
-            return null;
-          }
-          return (
-            <ButtonIcon
-              text
-              type="error"
-              icon="material-symbols:delete-outline"
-              tooltipContent={$t('common.delete')}
-              popconfirmContent={$t('common.confirmDelete')}
-              onPositiveClick={() => handleDelete(row.time)}
-            />
-          );
-        };
-
-        return (
-          <div class="flex-center gap-8px">
-            {editBtn()}
-            {divider()}
-            {deleteBtn()}
-          </div>
-        );
+        }
       }
-    }
-  ]
-});
+    ]
+  });
 
 const { drawerVisible, operateType, editingData, handleAdd, handleEdit, checkedRowKeys, onBatchDeleted, onDeleted } =
   useTableOperate(data, 'time', getData);
diff --git a/ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-operate-drawer.vue b/ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-operate-drawer.vue
index 3696912..bce49be 100755
--- a/ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-operate-drawer.vue
@@ -1,9 +1,9 @@
 <script setup lang="ts">
 import { computed, ref, watch } from 'vue';
-import { jsonClone } from '~/packages/utils';
 import { fetchCreatePackerData, fetchUpdatePackerData } from '@/service/api/analy/packer-data';
 import { useFormRules, useNaiveForm } from '@/hooks/common/form';
 import { $t } from '@/locales';
+import { jsonClone } from '~/packages/utils';
 
 defineOptions({
   name: 'PackerDataOperateDrawer'
@@ -45,39 +45,34 @@
 
 function createDefaultModel(): Model {
   return {
-      time: null,
-      key: '',
-      online: null,
-      qty: null,
-      badQty: null,
-      xiaohemoVal: null,
-      tiaohemoVal: null,
-      xiaohezhiVal: null,
-      tiaohezhiVal: null,
-      neichenzhiVal: null,
-      runTime: null,
-      stopTime: null,
-      stopTimes: null,
-      speed: null,
-      runStatus: null,
-      tsQty: null,
-      mainQty: null,
-      mainBadQty: null,
-      tbjQty: null,
-      tbjGdQty: null,
-      tbjBadQty: null,
-      pbjQty: null,
-      shift: null,
-      equNo: null
+    time: null,
+    key: '',
+    online: null,
+    qty: null,
+    badQty: null,
+    xiaohemoVal: null,
+    tiaohemoVal: null,
+    xiaohezhiVal: null,
+    tiaohezhiVal: null,
+    neichenzhiVal: null,
+    runTime: null,
+    stopTime: null,
+    stopTimes: null,
+    speed: null,
+    runStatus: null,
+    tsQty: null,
+    mainQty: null,
+    mainBadQty: null,
+    tbjQty: null,
+    tbjGdQty: null,
+    tbjBadQty: null,
+    pbjQty: null,
+    shift: null,
+    equNo: null
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'time'
-  | 'shift'
-  | 'equNo'
->;
+type RuleKey = Extract<keyof Model, 'time' | 'shift' | 'equNo'>;
 
 const rules: Record<RuleKey, App.Global.FormRule> = {
   time: createRequiredRule('鏃堕棿涓嶈兘涓虹┖'),
@@ -100,16 +95,91 @@
 async function handleSubmit() {
   await validate();
 
-  const { time, key, online, qty, badQty, xiaohemoVal, tiaohemoVal, xiaohezhiVal, tiaohezhiVal, neichenzhiVal, runTime, stopTime, stopTimes, speed, runStatus, tsQty, mainQty, mainBadQty, tbjQty, tbjGdQty, tbjBadQty, pbjQty, shift, equNo } = model.value;
+  const {
+    time,
+    key,
+    online,
+    qty,
+    badQty,
+    xiaohemoVal,
+    tiaohemoVal,
+    xiaohezhiVal,
+    tiaohezhiVal,
+    neichenzhiVal,
+    runTime,
+    stopTime,
+    stopTimes,
+    speed,
+    runStatus,
+    tsQty,
+    mainQty,
+    mainBadQty,
+    tbjQty,
+    tbjGdQty,
+    tbjBadQty,
+    pbjQty,
+    shift,
+    equNo
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreatePackerData({ time, key, online, qty, badQty, xiaohemoVal, tiaohemoVal, xiaohezhiVal, tiaohezhiVal, neichenzhiVal, runTime, stopTime, stopTimes, speed, runStatus, tsQty, mainQty, mainBadQty, tbjQty, tbjGdQty, tbjBadQty, pbjQty, shift, equNo });
+    const { error } = await fetchCreatePackerData({
+      time,
+      key,
+      online,
+      qty,
+      badQty,
+      xiaohemoVal,
+      tiaohemoVal,
+      xiaohezhiVal,
+      tiaohezhiVal,
+      neichenzhiVal,
+      runTime,
+      stopTime,
+      stopTimes,
+      speed,
+      runStatus,
+      tsQty,
+      mainQty,
+      mainBadQty,
+      tbjQty,
+      tbjGdQty,
+      tbjBadQty,
+      pbjQty,
+      shift,
+      equNo
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdatePackerData({ time, key, online, qty, badQty, xiaohemoVal, tiaohemoVal, xiaohezhiVal, tiaohezhiVal, neichenzhiVal, runTime, stopTime, stopTimes, speed, runStatus, tsQty, mainQty, mainBadQty, tbjQty, tbjGdQty, tbjBadQty, pbjQty, shift, equNo });
+    const { error } = await fetchUpdatePackerData({
+      time,
+      key,
+      online,
+      qty,
+      badQty,
+      xiaohemoVal,
+      tiaohemoVal,
+      xiaohezhiVal,
+      tiaohezhiVal,
+      neichenzhiVal,
+      runTime,
+      stopTime,
+      stopTimes,
+      speed,
+      runStatus,
+      tsQty,
+      mainQty,
+      mainBadQty,
+      tbjQty,
+      tbjGdQty,
+      tbjBadQty,
+      pbjQty,
+      shift,
+      equNo
+    });
     if (error) return;
   }
 
@@ -139,12 +209,7 @@
           />
         </NFormItem>
         <NFormItem label="key" path="key">
-          <NInput
-            v-model:value="model.key"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏ey"
-          />
+          <NInput v-model:value="model.key" :rows="3" type="textarea" placeholder="璇疯緭鍏ey" />
         </NFormItem>
         <NFormItem label="缃戠粶鐘舵��(0寮傚父锛�1姝e父)" path="online">
           <NInput v-model:value="model.online" placeholder="璇疯緭鍏ョ綉缁滅姸鎬�(0寮傚父锛�1姝e父)" />
diff --git a/ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-search.vue b/ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-search.vue
index ac1b06a..9542480 100755
--- a/ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-search.vue
+++ b/ruoyi-plus-soybean/src/views/analy/packer/modules/packer-data-search.vue
@@ -101,25 +101,15 @@
                 type="datetimerange"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 clearable
-                @update:formatted-value="onTimeRangeUpdate"
                 :default-time="['00:00:00', '23:59:59']"
+                @update:formatted-value="onTimeRangeUpdate"
               />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="璁惧" path="equNo" class="pr-24px">
-              <NSelect
-                v-model:value="model.equNo"
-                placeholder="璇烽�夋嫨璁惧鍙�"
-                :options="equNoOptions"
-                clearable
-              />
+              <NSelect v-model:value="model.equNo" placeholder="璇烽�夋嫨璁惧鍙�" :options="equNoOptions" clearable />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="鐝" path="shift" class="pr-24px">
-              <NSelect
-                v-model:value="model.shift"
-                placeholder="璇烽�夋嫨鐝"
-                :options="shiftOptions"
-                clearable
-              />
+              <NSelect v-model:value="model.shift" placeholder="璇烽�夋嫨鐝" :options="shiftOptions" clearable />
             </NFormItemGi>
             <NFormItemGi span="24" class="pr-24px">
               <NSpace class="w-full" justify="end">
diff --git a/ruoyi-plus-soybean/src/views/analy/roller/index.vue b/ruoyi-plus-soybean/src/views/analy/roller/index.vue
index faf1d54..1573e1e 100755
--- a/ruoyi-plus-soybean/src/views/analy/roller/index.vue
+++ b/ruoyi-plus-soybean/src/views/analy/roller/index.vue
@@ -15,7 +15,6 @@
   name: 'RollerDataList'
 });
 
-
 const appStore = useAppStore();
 const { download } = useDownload();
 const { hasAuth } = useAuth();
@@ -51,188 +50,188 @@
 
 const { columns, columnChecks, data, getData, getDataByPage, loading, mobilePagination, scrollX } =
   useNaivePaginatedTable({
-  api: () => fetchGetRollerDataList(searchParams.value),
-  transform: response => defaultTransform(response),
-  onPaginationParamsChange: params => {
-    searchParams.value.pageNum = params.page;
-    searchParams.value.pageSize = params.pageSize;
-  },
-  columns: () => [
-    {
-      type: 'selection',
-      align: 'center',
-      width: 48
+    api: () => fetchGetRollerDataList(searchParams.value),
+    transform: response => defaultTransform(response),
+    onPaginationParamsChange: params => {
+      searchParams.value.pageNum = params.page;
+      searchParams.value.pageSize = params.pageSize;
     },
-    {
-      key: 'index',
-      title: $t('common.index'),
-      align: 'center',
-      width: 64,
-      render: (_, index) => index + 1
-    },
-    {
-      key: 'time',
-      title: '鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'key',
-      title: 'key',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'online',
-      title: '缃戠粶鐘舵��',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'qty',
-      title: '浜ч噺',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'badQty',
-      title: '鍓旈櫎浜ч噺',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'lvbangVal',
-      title: '婊ゆ娑堣��',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'juanyanzhiVal',
-      title: '鍗风儫绾告秷鑰�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'shuisongzhiVal',
-      title: '姘存澗绾告秷鑰�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'runTime',
-      title: '杩愯鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'stopTime',
-      title: '鍋滄満鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'stopTimes',
-      title: '鍋滄満娆℃暟',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'speed',
-      title: '杞﹂��',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'runStatus',
-      title: '杩愯鐘舵��',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'cy',
-      title: '鍌ㄧ儫璁惧鍌ㄩ噺',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'cyCs',
-      title: '鍌ㄧ儫璁惧杞﹂��',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'cyOnline',
-      title: '鍌ㄧ儫璁惧缃戠粶',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'recQty1',
-      title: '鎺ユ敹鏈轰骇閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'recQty2',
-      title: '鎺ユ敹鏈轰骇閲�2',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'operate',
-      title: $t('common.operate'),
-      align: 'center',
-      width: 130,
-      render: row => {
-        const divider = () => {
-          if (!hasAuth('qa:rollerData:edit') || !hasAuth('qa:rollerData:remove')) {
-            return null;
-          }
-          return <NDivider vertical />;
-        };
+    columns: () => [
+      {
+        type: 'selection',
+        align: 'center',
+        width: 48
+      },
+      {
+        key: 'index',
+        title: $t('common.index'),
+        align: 'center',
+        width: 64,
+        render: (_, index) => index + 1
+      },
+      {
+        key: 'time',
+        title: '鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'key',
+        title: 'key',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'online',
+        title: '缃戠粶鐘舵��',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'qty',
+        title: '浜ч噺',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'badQty',
+        title: '鍓旈櫎浜ч噺',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'lvbangVal',
+        title: '婊ゆ娑堣��',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'juanyanzhiVal',
+        title: '鍗风儫绾告秷鑰�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'shuisongzhiVal',
+        title: '姘存澗绾告秷鑰�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'runTime',
+        title: '杩愯鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'stopTime',
+        title: '鍋滄満鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'stopTimes',
+        title: '鍋滄満娆℃暟',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'speed',
+        title: '杞﹂��',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'runStatus',
+        title: '杩愯鐘舵��',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'cy',
+        title: '鍌ㄧ儫璁惧鍌ㄩ噺',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'cyCs',
+        title: '鍌ㄧ儫璁惧杞﹂��',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'cyOnline',
+        title: '鍌ㄧ儫璁惧缃戠粶',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'recQty1',
+        title: '鎺ユ敹鏈轰骇閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'recQty2',
+        title: '鎺ユ敹鏈轰骇閲�2',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'operate',
+        title: $t('common.operate'),
+        align: 'center',
+        width: 130,
+        render: row => {
+          const divider = () => {
+            if (!hasAuth('qa:rollerData:edit') || !hasAuth('qa:rollerData:remove')) {
+              return null;
+            }
+            return <NDivider vertical />;
+          };
 
-        const editBtn = () => {
-          if (!hasAuth('qa:rollerData:edit')) {
-            return null;
-          }
+          const editBtn = () => {
+            if (!hasAuth('qa:rollerData:edit')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="primary"
+                icon="material-symbols:drive-file-rename-outline-outline"
+                tooltipContent={$t('common.edit')}
+                onClick={() => edit(row.time)}
+              />
+            );
+          };
+
+          const deleteBtn = () => {
+            if (!hasAuth('qa:rollerData:remove')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="error"
+                icon="material-symbols:delete-outline"
+                tooltipContent={$t('common.delete')}
+                popconfirmContent={$t('common.confirmDelete')}
+                onPositiveClick={() => handleDelete(row.time)}
+              />
+            );
+          };
+
           return (
-            <ButtonIcon
-              text
-              type="primary"
-              icon="material-symbols:drive-file-rename-outline-outline"
-              tooltipContent={$t('common.edit')}
-              onClick={() => edit(row.time)}
-            />
+            <div class="flex-center gap-8px">
+              {editBtn()}
+              {divider()}
+              {deleteBtn()}
+            </div>
           );
-        };
-
-        const deleteBtn = () => {
-          if (!hasAuth('qa:rollerData:remove')) {
-            return null;
-          }
-          return (
-            <ButtonIcon
-              text
-              type="error"
-              icon="material-symbols:delete-outline"
-              tooltipContent={$t('common.delete')}
-              popconfirmContent={$t('common.confirmDelete')}
-              onPositiveClick={() => handleDelete(row.time)}
-            />
-          );
-        };
-
-        return (
-          <div class="flex-center gap-8px">
-            {editBtn()}
-            {divider()}
-            {deleteBtn()}
-          </div>
-        );
+        }
       }
-    }
-  ]
-});
+    ]
+  });
 
 const { drawerVisible, operateType, editingData, handleAdd, handleEdit, checkedRowKeys, onBatchDeleted, onDeleted } =
   useTableOperate(data, 'time', getData);
diff --git a/ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-operate-drawer.vue b/ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-operate-drawer.vue
index 3932afb..f96d778 100755
--- a/ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-operate-drawer.vue
@@ -1,9 +1,9 @@
 <script setup lang="ts">
 import { computed, ref, watch } from 'vue';
-import { jsonClone } from '~/packages/utils';
 import { fetchCreateRollerData, fetchUpdateRollerData } from '@/service/api/analy/roller-data';
 import { useFormRules, useNaiveForm } from '@/hooks/common/form';
 import { $t } from '@/locales';
+import { jsonClone } from '~/packages/utils';
 
 defineOptions({
   name: 'RollerDataOperateDrawer'
@@ -45,36 +45,32 @@
 
 function createDefaultModel(): Model {
   return {
-      time: null,
-      key: '',
-      online: null,
-      qty: null,
-      badQty: null,
-      lvbangVal: null,
-      juanyanzhiVal: null,
-      shuisongzhiVal: null,
-      runTime: null,
-      stopTime: null,
-      stopTimes: null,
-      speed: null,
-      runStatus: null,
-      cy: null,
-      cyCs: null,
-      cyOnline: '',
-      recQty1: null,
-      recQty2: null
+    time: null,
+    key: '',
+    online: null,
+    qty: null,
+    badQty: null,
+    lvbangVal: null,
+    juanyanzhiVal: null,
+    shuisongzhiVal: null,
+    runTime: null,
+    stopTime: null,
+    stopTimes: null,
+    speed: null,
+    runStatus: null,
+    cy: null,
+    cyCs: null,
+    cyOnline: '',
+    recQty1: null,
+    recQty2: null
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'time'
-  | 'key'
->;
+type RuleKey = Extract<keyof Model, 'time' | 'key'>;
 
 const rules: Record<RuleKey, App.Global.FormRule> = {
   time: createRequiredRule('鏃堕棿涓嶈兘涓虹┖'),
-  key: createRequiredRule('key涓嶈兘涓虹┖'),
+  key: createRequiredRule('key涓嶈兘涓虹┖')
 };
 
 function handleUpdateModelWhenEdit() {
@@ -92,16 +88,73 @@
 async function handleSubmit() {
   await validate();
 
-  const { time, key, online, qty, badQty, lvbangVal, juanyanzhiVal, shuisongzhiVal, runTime, stopTime, stopTimes, speed, runStatus, cy, cyCs, cyOnline, recQty1, recQty2 } = model.value;
+  const {
+    time,
+    key,
+    online,
+    qty,
+    badQty,
+    lvbangVal,
+    juanyanzhiVal,
+    shuisongzhiVal,
+    runTime,
+    stopTime,
+    stopTimes,
+    speed,
+    runStatus,
+    cy,
+    cyCs,
+    cyOnline,
+    recQty1,
+    recQty2
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreateRollerData({ time, key, online, qty, badQty, lvbangVal, juanyanzhiVal, shuisongzhiVal, runTime, stopTime, stopTimes, speed, runStatus, cy, cyCs, cyOnline, recQty1, recQty2 });
+    const { error } = await fetchCreateRollerData({
+      time,
+      key,
+      online,
+      qty,
+      badQty,
+      lvbangVal,
+      juanyanzhiVal,
+      shuisongzhiVal,
+      runTime,
+      stopTime,
+      stopTimes,
+      speed,
+      runStatus,
+      cy,
+      cyCs,
+      cyOnline,
+      recQty1,
+      recQty2
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdateRollerData({ time, key, online, qty, badQty, lvbangVal, juanyanzhiVal, shuisongzhiVal, runTime, stopTime, stopTimes, speed, runStatus, cy, cyCs, cyOnline, recQty1, recQty2 });
+    const { error } = await fetchUpdateRollerData({
+      time,
+      key,
+      online,
+      qty,
+      badQty,
+      lvbangVal,
+      juanyanzhiVal,
+      shuisongzhiVal,
+      runTime,
+      stopTime,
+      stopTimes,
+      speed,
+      runStatus,
+      cy,
+      cyCs,
+      cyOnline,
+      recQty1,
+      recQty2
+    });
     if (error) return;
   }
 
@@ -131,12 +184,7 @@
           />
         </NFormItem>
         <NFormItem label="key" path="key">
-          <NInput
-            v-model:value="model.key"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏ey"
-          />
+          <NInput v-model:value="model.key" :rows="3" type="textarea" placeholder="璇疯緭鍏ey" />
         </NFormItem>
         <NFormItem label="缃戠粶鐘舵��" path="online">
           <NInputNumber v-model:value="model.online" placeholder="璇疯緭鍏ョ綉缁滅姸鎬�" class="w-full" />
@@ -182,12 +230,7 @@
           <NInputNumber v-model:value="model.cyCs" placeholder="璇疯緭鍏ュ偍鐑熻澶囪溅閫�" class="w-full" />
         </NFormItem>
         <NFormItem label="鍌ㄧ儫璁惧缃戠粶" path="cyOnline">
-          <NInput
-            v-model:value="model.cyOnline"
-            :rows="3"
-            type="textarea"
-            placeholder="璇疯緭鍏ュ偍鐑熻澶囩綉缁�"
-          />
+          <NInput v-model:value="model.cyOnline" :rows="3" type="textarea" placeholder="璇疯緭鍏ュ偍鐑熻澶囩綉缁�" />
         </NFormItem>
         <NFormItem label="鎺ユ敹鏈轰骇閲�" path="recQty1">
           <NInputNumber v-model:value="model.recQty1" placeholder="璇疯緭鍏ユ帴鏀舵満浜ч噺" class="w-full" />
diff --git a/ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-search.vue b/ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-search.vue
index 88b6f8d..dad620a 100755
--- a/ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-search.vue
+++ b/ruoyi-plus-soybean/src/views/analy/roller/modules/roller-data-search.vue
@@ -101,25 +101,15 @@
                 type="datetimerange"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 clearable
-                @update:formatted-value="onTimeRangeUpdate"
                 :default-time="['00:00:00', '23:59:59']"
+                @update:formatted-value="onTimeRangeUpdate"
               />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="璁惧" path="equNo" class="pr-24px">
-              <NSelect
-                v-model:value="model.equNo"
-                placeholder="璇烽�夋嫨璁惧鍙�"
-                :options="equNoOptions"
-                clearable
-              />
+              <NSelect v-model:value="model.equNo" placeholder="璇烽�夋嫨璁惧鍙�" :options="equNoOptions" clearable />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="鐝" path="shift" class="pr-24px">
-              <NSelect
-                v-model:value="model.shift"
-                placeholder="璇烽�夋嫨鐝"
-                :options="shiftOptions"
-                clearable
-              />
+              <NSelect v-model:value="model.shift" placeholder="璇烽�夋嫨鐝" :options="shiftOptions" clearable />
             </NFormItemGi>
             <NFormItemGi span="24" class="pr-24px">
               <NSpace class="w-full" justify="end">
diff --git a/ruoyi-plus-soybean/src/views/analy/store-silk/index.vue b/ruoyi-plus-soybean/src/views/analy/store-silk/index.vue
index addf095..4419aaa 100644
--- a/ruoyi-plus-soybean/src/views/analy/store-silk/index.vue
+++ b/ruoyi-plus-soybean/src/views/analy/store-silk/index.vue
@@ -15,7 +15,6 @@
   name: 'StoreSilkList'
 });
 
-
 const appStore = useAppStore();
 const { download } = useDownload();
 const { hasAuth } = useAuth();
@@ -40,141 +39,141 @@
 
 const { columns, columnChecks, data, getData, getDataByPage, loading, mobilePagination, scrollX } =
   useNaivePaginatedTable({
-  api: () => fetchGetStoreSilkList(searchParams.value),
-  transform: response => defaultTransform(response),
-  onPaginationParamsChange: params => {
-    searchParams.value.pageNum = params.page;
-    searchParams.value.pageSize = params.pageSize;
-  },
-  columns: () => [
-    {
-      type: 'selection',
-      align: 'center',
-      width: 48
+    api: () => fetchGetStoreSilkList(searchParams.value),
+    transform: response => defaultTransform(response),
+    onPaginationParamsChange: params => {
+      searchParams.value.pageNum = params.page;
+      searchParams.value.pageSize = params.pageSize;
     },
-    {
-      key: 'index',
-      title: $t('common.index'),
-      align: 'center',
-      width: 64,
-      render: (_, index) => index + 1
-    },
-    {
-      key: 'materialname',
-      title: '鐗屽彿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'batchcode',
-      title: '鎵规鍙�',
-      align: 'center',
-      minWidth: 130
-    },
-    {
-      key: 'roller',
-      title: '鍗锋帴浜ч噺',
-      align: 'center',
-      minWidth: 100
-    },
-    {
-      key: 'packer',
-      title: '鍖呰浜ч噺',
-      align: 'center',
-      minWidth: 100
-    },
-    {
-      key: 'actualstarttime',
-      title: '鎶曟枡鏃ユ湡',
-      align: 'center',
-      width: 180
-    },
-    {
-      key: 'jobinput',
-      title: '鎶曟枡閲嶉噺',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'weight',
-      title: '鍌ㄤ笣鏌滈噸閲�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'distimebegin',
-      title: '鍌ㄤ笣鏌滃嚭鏂欏紑濮嬫椂闂�',
-      align: 'center',
-      width: 180
-    },
-    {
-      key: 'distimeend',
-      title: '鍌ㄤ笣鏌滃嚭鏂欑粨鏉熸椂闂�',
-      align: 'center',
-      width: 180
-    },
-    {
-      key: 'siloid',
-      title: '鏌滃瓙鍙�(鏈綅)',
-      align: 'center',
-      width: 160
-    },
-    {
-      key: 'operate',
-      title: $t('common.operate'),
-      align: 'center',
-      fixed: 'right',
-      width: 130,
-      render: row => {
-        const divider = () => {
-          if (!hasAuth('analy:storeSilk:edit') || !hasAuth('analy:storeSilk:remove')) {
-            return null;
-          }
-          return <NDivider vertical />;
-        };
+    columns: () => [
+      {
+        type: 'selection',
+        align: 'center',
+        width: 48
+      },
+      {
+        key: 'index',
+        title: $t('common.index'),
+        align: 'center',
+        width: 64,
+        render: (_, index) => index + 1
+      },
+      {
+        key: 'materialname',
+        title: '鐗屽彿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'batchcode',
+        title: '鎵规鍙�',
+        align: 'center',
+        minWidth: 130
+      },
+      {
+        key: 'roller',
+        title: '鍗锋帴浜ч噺',
+        align: 'center',
+        minWidth: 100
+      },
+      {
+        key: 'packer',
+        title: '鍖呰浜ч噺',
+        align: 'center',
+        minWidth: 100
+      },
+      {
+        key: 'actualstarttime',
+        title: '鎶曟枡鏃ユ湡',
+        align: 'center',
+        width: 180
+      },
+      {
+        key: 'jobinput',
+        title: '鎶曟枡閲嶉噺',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'weight',
+        title: '鍌ㄤ笣鏌滈噸閲�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'distimebegin',
+        title: '鍌ㄤ笣鏌滃嚭鏂欏紑濮嬫椂闂�',
+        align: 'center',
+        width: 180
+      },
+      {
+        key: 'distimeend',
+        title: '鍌ㄤ笣鏌滃嚭鏂欑粨鏉熸椂闂�',
+        align: 'center',
+        width: 180
+      },
+      {
+        key: 'siloid',
+        title: '鏌滃瓙鍙�(鏈綅)',
+        align: 'center',
+        width: 160
+      },
+      {
+        key: 'operate',
+        title: $t('common.operate'),
+        align: 'center',
+        fixed: 'right',
+        width: 130,
+        render: row => {
+          const divider = () => {
+            if (!hasAuth('analy:storeSilk:edit') || !hasAuth('analy:storeSilk:remove')) {
+              return null;
+            }
+            return <NDivider vertical />;
+          };
 
-        const editBtn = () => {
-          if (!hasAuth('analy:storeSilk:edit')) {
-            return null;
-          }
+          const editBtn = () => {
+            if (!hasAuth('analy:storeSilk:edit')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="primary"
+                icon="material-symbols:drive-file-rename-outline-outline"
+                tooltipContent={$t('common.edit')}
+                onClick={() => edit(row.id)}
+              />
+            );
+          };
+
+          const deleteBtn = () => {
+            if (!hasAuth('analy:storeSilk:remove')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="error"
+                icon="material-symbols:delete-outline"
+                tooltipContent={$t('common.delete')}
+                popconfirmContent={$t('common.confirmDelete')}
+                onPositiveClick={() => handleDelete(row.id)}
+              />
+            );
+          };
+
           return (
-            <ButtonIcon
-              text
-              type="primary"
-              icon="material-symbols:drive-file-rename-outline-outline"
-              tooltipContent={$t('common.edit')}
-              onClick={() => edit(row.id)}
-            />
+            <div class="flex-center gap-8px">
+              {editBtn()}
+              {divider()}
+              {deleteBtn()}
+            </div>
           );
-        };
-
-        const deleteBtn = () => {
-          if (!hasAuth('analy:storeSilk:remove')) {
-            return null;
-          }
-          return (
-            <ButtonIcon
-              text
-              type="error"
-              icon="material-symbols:delete-outline"
-              tooltipContent={$t('common.delete')}
-              popconfirmContent={$t('common.confirmDelete')}
-              onPositiveClick={() => handleDelete(row.id)}
-            />
-          );
-        };
-
-        return (
-          <div class="flex-center gap-8px">
-            {editBtn()}
-            {divider()}
-            {deleteBtn()}
-          </div>
-        );
+        }
       }
-    }
-  ]
-});
+    ]
+  });
 
 const { drawerVisible, operateType, editingData, handleAdd, handleEdit, checkedRowKeys, onBatchDeleted, onDeleted } =
   useTableOperate(data, 'id', getData);
@@ -252,7 +251,8 @@
         remote
         :row-key="row => row.id"
         :pagination="mobilePagination"
-        :class="['sm:h-full', tableSize === 'tiny' ? 'table-size-mini' : '']"
+        class="sm:h-full"
+        :class="[tableSize === 'tiny' ? 'table-size-mini' : '']"
       />
       <StoreSilkOperateDrawer
         v-model:visible="drawerVisible"
diff --git a/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-operate-drawer.vue b/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-operate-drawer.vue
index 523341c..169e340 100644
--- a/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-operate-drawer.vue
@@ -45,31 +45,26 @@
 
 function createDefaultModel(): Model {
   return {
-      id: null,
-      materialname: '',
-      batchcode: '',
-      actualstarttime: null,
-      jobinput: null,
-      weightloss: null,
-      slkrate: null,
-      weight: null,
-      distimebegin: null,
-      distimeend: null,
-      siloid: ''
+    id: null,
+    materialname: '',
+    batchcode: '',
+    actualstarttime: null,
+    jobinput: null,
+    weightloss: null,
+    slkrate: null,
+    weight: null,
+    distimebegin: null,
+    distimeend: null,
+    siloid: ''
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'id'
-  | 'materialname'
-  | 'batchcode'
->;
+type RuleKey = Extract<keyof Model, 'id' | 'materialname' | 'batchcode'>;
 
 const rules: Record<RuleKey, App.Global.FormRule> = {
   id: createRequiredRule('id涓嶈兘涓虹┖'),
   materialname: createRequiredRule('鐗屽彿涓嶈兘涓虹┖'),
-  batchcode: createRequiredRule('鎵规鍙蜂笉鑳戒负绌�'),
+  batchcode: createRequiredRule('鎵规鍙蜂笉鑳戒负绌�')
 };
 
 function handleUpdateModelWhenEdit() {
@@ -87,16 +82,51 @@
 async function handleSubmit() {
   await validate();
 
-  const { id, materialname, batchcode, actualstarttime, jobinput, weightloss, slkrate, weight, distimebegin, distimeend, siloid } = model.value;
+  const {
+    id,
+    materialname,
+    batchcode,
+    actualstarttime,
+    jobinput,
+    weightloss,
+    slkrate,
+    weight,
+    distimebegin,
+    distimeend,
+    siloid
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreateStoreSilk({ materialname, batchcode, actualstarttime, jobinput, weightloss, slkrate, weight, distimebegin, distimeend, siloid });
+    const { error } = await fetchCreateStoreSilk({
+      materialname,
+      batchcode,
+      actualstarttime,
+      jobinput,
+      weightloss,
+      slkrate,
+      weight,
+      distimebegin,
+      distimeend,
+      siloid
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdateStoreSilk({ id, materialname, batchcode, actualstarttime, jobinput, weightloss, slkrate, weight, distimebegin, distimeend, siloid });
+    const { error } = await fetchUpdateStoreSilk({
+      id,
+      materialname,
+      batchcode,
+      actualstarttime,
+      jobinput,
+      weightloss,
+      slkrate,
+      weight,
+      distimebegin,
+      distimeend,
+      siloid
+    });
     if (error) return;
   }
 
diff --git a/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue b/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue
index 2c64d93..1489ba2 100644
--- a/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue
+++ b/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue
@@ -1,5 +1,6 @@
 <script setup lang="ts">
-import { toRaw } from 'vue';
+import { onMounted, ref, toRaw, watch } from 'vue';
+import dayjs from 'dayjs';
 import { jsonClone } from '@sa/utils';
 import { useNaiveForm } from '@/hooks/common/form';
 import { $t } from '@/locales';
@@ -24,9 +25,50 @@
   Object.assign(model.value, defaultModel);
 }
 
+function getDefaultRange(): [string, string] {
+  const end = dayjs().format('YYYY-MM-DD');
+  const start = dayjs().subtract(3, 'day').format('YYYY-MM-DD');
+  return [start, end];
+}
+
+const dateRange = ref<[string, string]>(getDefaultRange());
+
+function isDateDisabled(ts: number) {
+  const min = dayjs().subtract(3, 'day').startOf('day').valueOf();
+  const max = dayjs().endOf('day').valueOf();
+  return ts < min || ts > max;
+}
+
+onMounted(() => {
+  if (!model.value.distimebegin || !model.value.distimeend) {
+    dateRange.value = getDefaultRange();
+    model.value.distimebegin = dateRange.value[0];
+    model.value.distimeend = dateRange.value[1];
+  } else {
+    dateRange.value = [model.value.distimebegin as string, model.value.distimeend as string];
+  }
+});
+
+watch(
+  dateRange,
+  val => {
+    if (val && val[0] && val[1]) {
+      model.value.distimebegin = val[0];
+      model.value.distimeend = val[1];
+    } else {
+      model.value.distimebegin = null;
+      model.value.distimeend = null;
+    }
+  },
+  { deep: true }
+);
+
 async function reset() {
   await restoreValidation();
   resetModel();
+  dateRange.value = getDefaultRange();
+  model.value.distimebegin = dateRange.value[0];
+  model.value.distimeend = dateRange.value[1];
   emit('search');
 }
 
@@ -42,13 +84,25 @@
       <NCollapseItem :title="$t('common.search')" name="analy-store-silk-search">
         <NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
           <NGrid responsive="screen" item-responsive>
-            <NFormItemGi span="24 s:12 m:6" label="鐗屽彿" label-width="auto" path="materialname" class="pr-24px">
+            <NFormItemGi
+              span="24 s:12 m:8 l:8 xl:8"
+              label="鐗屽彿"
+              label-width="auto"
+              path="materialname"
+              class="pr-24px"
+            >
               <NInput v-model:value="model.materialname" placeholder="璇疯緭鍏ョ墝鍙�" />
             </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:6" label="鎵规鍙�" label-width="auto" path="batchcode" class="pr-24px">
+            <NFormItemGi span="24 s:12 m:8 l:8 xl:8" label="鎵规鍙�" label-width="auto" path="batchcode" class="pr-24px">
               <NInput v-model:value="model.batchcode" placeholder="璇疯緭鍏ユ壒娆″彿" />
             </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:6" label="鎶曟枡鏃ユ湡" label-width="auto" path="actualstarttime" class="pr-24px">
+            <NFormItemGi
+              span="24 s:12 m:8 l:8 xl:8"
+              label="鎶曟枡鏃ユ湡"
+              label-width="auto"
+              path="actualstarttime"
+              class="pr-24px"
+            >
               <NDatePicker
                 v-model:formatted-value="model.actualstarttime"
                 type="datetime"
@@ -56,23 +110,28 @@
                 clearable
               />
             </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:6" label="鍌ㄤ笣鏌滃嚭鏂欏紑濮嬫椂闂�" label-width="auto" path="distimebegin" class="pr-24px">
+            <NFormItemGi
+              span="24 s:12 m:8 l:8 xl:8"
+              label="鍑烘枡鏃堕棿"
+              label-width="auto"
+              path="distimebegin"
+              class="pr-24px"
+            >
               <NDatePicker
-                v-model:formatted-value="model.distimebegin"
-                type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
+                v-model:formatted-value="dateRange"
+                type="daterange"
+                value-format="yyyy-MM-dd"
                 clearable
+                :is-date-disabled="isDateDisabled"
               />
             </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:6" label="鍌ㄤ笣鏌滃嚭鏂欑粨鏉熸椂闂�" label-width="auto" path="distimeend" class="pr-24px">
-              <NDatePicker
-                v-model:formatted-value="model.distimeend"
-                type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
-                clearable
-              />
-            </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:6" label="鏌滃瓙鍙�(鏈綅)" label-width="auto" path="siloid" class="pr-24px">
+            <NFormItemGi
+              span="24 s:12 m:8 l:8 xl:8"
+              label="鏌滃瓙鍙�(鏈綅)"
+              label-width="auto"
+              path="siloid"
+              class="pr-24px"
+            >
               <NInput v-model:value="model.siloid" placeholder="璇疯緭鍏ユ煖瀛愬彿(鏈綅)" />
             </NFormItemGi>
             <NFormItemGi :show-feedback="false" span="24" class="pr-24px">
diff --git a/ruoyi-plus-soybean/src/views/md/shift/index.vue b/ruoyi-plus-soybean/src/views/md/shift/index.vue
index c56d90a..7aa7cee 100644
--- a/ruoyi-plus-soybean/src/views/md/shift/index.vue
+++ b/ruoyi-plus-soybean/src/views/md/shift/index.vue
@@ -15,7 +15,6 @@
   name: 'ShiftList'
 });
 
-
 const appStore = useAppStore();
 const { download } = useDownload();
 const { hasAuth } = useAuth();
@@ -31,158 +30,158 @@
 
 const { columns, columnChecks, data, getData, getDataByPage, loading, mobilePagination, scrollX } =
   useNaivePaginatedTable({
-  api: () => fetchGetShiftList(searchParams.value),
-  transform: response => defaultTransform(response),
-  onPaginationParamsChange: params => {
-    searchParams.value.pageNum = params.page;
-    searchParams.value.pageSize = params.pageSize;
-  },
-  columns: () => [
-    {
-      type: 'selection',
-      align: 'center',
-      width: 48
+    api: () => fetchGetShiftList(searchParams.value),
+    transform: response => defaultTransform(response),
+    onPaginationParamsChange: params => {
+      searchParams.value.pageNum = params.page;
+      searchParams.value.pageSize = params.pageSize;
     },
-    {
-      key: 'index',
-      title: $t('common.index'),
-      align: 'center',
-      width: 64,
-      render: (_, index) => index + 1
-    },
-    {
-      key: 'id',
-      title: 'id',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'wsId',
-      title: '杞﹂棿澶栭敭',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'code',
-      title: '缂栫爜',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'name',
-      title: '鍚嶇О',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'stim',
-      title: '鐝寮�濮嬫椂闂�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'etim',
-      title: '鐝缁撴潫鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'seq',
-      title: '鎺掑簭',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'enable',
-      title: '鍚敤',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'del',
-      title: '鍒犻櫎',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'createUserName',
-      title: '鍒涘缓鐢ㄦ埛',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'createUserTime',
-      title: '鍒涘缓鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'updateUserName',
-      title: '鏇存柊鐢ㄦ埛',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'updateUserTime',
-      title: '鏇存柊鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'operate',
-      title: $t('common.operate'),
-      align: 'center',
-      width: 130,
-      render: row => {
-        const divider = () => {
-          if (!hasAuth('md:shift:edit') || !hasAuth('md:shift:remove')) {
-            return null;
-          }
-          return <NDivider vertical />;
-        };
+    columns: () => [
+      {
+        type: 'selection',
+        align: 'center',
+        width: 48
+      },
+      {
+        key: 'index',
+        title: $t('common.index'),
+        align: 'center',
+        width: 64,
+        render: (_, index) => index + 1
+      },
+      {
+        key: 'id',
+        title: 'id',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'wsId',
+        title: '杞﹂棿澶栭敭',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'code',
+        title: '缂栫爜',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'name',
+        title: '鍚嶇О',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'stim',
+        title: '鐝寮�濮嬫椂闂�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'etim',
+        title: '鐝缁撴潫鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'seq',
+        title: '鎺掑簭',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'enable',
+        title: '鍚敤',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'del',
+        title: '鍒犻櫎',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'createUserName',
+        title: '鍒涘缓鐢ㄦ埛',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'createUserTime',
+        title: '鍒涘缓鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'updateUserName',
+        title: '鏇存柊鐢ㄦ埛',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'updateUserTime',
+        title: '鏇存柊鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'operate',
+        title: $t('common.operate'),
+        align: 'center',
+        width: 130,
+        render: row => {
+          const divider = () => {
+            if (!hasAuth('md:shift:edit') || !hasAuth('md:shift:remove')) {
+              return null;
+            }
+            return <NDivider vertical />;
+          };
 
-        const editBtn = () => {
-          if (!hasAuth('md:shift:edit')) {
-            return null;
-          }
+          const editBtn = () => {
+            if (!hasAuth('md:shift:edit')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="primary"
+                icon="material-symbols:drive-file-rename-outline-outline"
+                tooltipContent={$t('common.edit')}
+                onClick={() => edit(row.id)}
+              />
+            );
+          };
+
+          const deleteBtn = () => {
+            if (!hasAuth('md:shift:remove')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="error"
+                icon="material-symbols:delete-outline"
+                tooltipContent={$t('common.delete')}
+                popconfirmContent={$t('common.confirmDelete')}
+                onPositiveClick={() => handleDelete(row.id)}
+              />
+            );
+          };
+
           return (
-            <ButtonIcon
-              text
-              type="primary"
-              icon="material-symbols:drive-file-rename-outline-outline"
-              tooltipContent={$t('common.edit')}
-              onClick={() => edit(row.id)}
-            />
+            <div class="flex-center gap-8px">
+              {editBtn()}
+              {divider()}
+              {deleteBtn()}
+            </div>
           );
-        };
-
-        const deleteBtn = () => {
-          if (!hasAuth('md:shift:remove')) {
-            return null;
-          }
-          return (
-            <ButtonIcon
-              text
-              type="error"
-              icon="material-symbols:delete-outline"
-              tooltipContent={$t('common.delete')}
-              popconfirmContent={$t('common.confirmDelete')}
-              onPositiveClick={() => handleDelete(row.id)}
-            />
-          );
-        };
-
-        return (
-          <div class="flex-center gap-8px">
-            {editBtn()}
-            {divider()}
-            {deleteBtn()}
-          </div>
-        );
+        }
       }
-    }
-  ]
-});
+    ]
+  });
 
 const { drawerVisible, operateType, editingData, handleAdd, handleEdit, checkedRowKeys, onBatchDeleted, onDeleted } =
   useTableOperate(data, 'id', getData);
diff --git a/ruoyi-plus-soybean/src/views/md/shift/modules/shift-operate-drawer.vue b/ruoyi-plus-soybean/src/views/md/shift/modules/shift-operate-drawer.vue
index e98ba6e..ded007d 100644
--- a/ruoyi-plus-soybean/src/views/md/shift/modules/shift-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/md/shift/modules/shift-operate-drawer.vue
@@ -45,29 +45,26 @@
 
 function createDefaultModel(): Model {
   return {
-      id: '',
-      wsId: '',
-      code: '',
-      name: '',
-      stim: '',
-      etim: '',
-      seq: null,
-      enable: null,
-      del: null,
-      createUserName: '',
-      createUserTime: null,
-      updateUserName: '',
-      updateUserTime: null
+    id: '',
+    wsId: '',
+    code: '',
+    name: '',
+    stim: '',
+    etim: '',
+    seq: null,
+    enable: null,
+    del: null,
+    createUserName: '',
+    createUserTime: null,
+    updateUserName: '',
+    updateUserTime: null
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'id'
->;
+type RuleKey = Extract<keyof Model, 'id'>;
 
 const rules: Record<RuleKey, App.Global.FormRule> = {
-  id: createRequiredRule('ud涓嶈兘涓虹┖'),
+  id: createRequiredRule('ud涓嶈兘涓虹┖')
 };
 
 function handleUpdateModelWhenEdit() {
@@ -85,16 +82,57 @@
 async function handleSubmit() {
   await validate();
 
-  const { id, wsId, code, name, stim, etim, seq, enable, del, createUserName, createUserTime, updateUserName, updateUserTime } = model.value;
+  const {
+    id,
+    wsId,
+    code,
+    name,
+    stim,
+    etim,
+    seq,
+    enable,
+    del,
+    createUserName,
+    createUserTime,
+    updateUserName,
+    updateUserTime
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreateShift({ wsId, code, name, stim, etim, seq, enable, del, createUserName, createUserTime, updateUserName, updateUserTime });
+    const { error } = await fetchCreateShift({
+      wsId,
+      code,
+      name,
+      stim,
+      etim,
+      seq,
+      enable,
+      del,
+      createUserName,
+      createUserTime,
+      updateUserName,
+      updateUserTime
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdateShift({ id, wsId, code, name, stim, etim, seq, enable, del, createUserName, createUserTime, updateUserName, updateUserTime });
+    const { error } = await fetchUpdateShift({
+      id,
+      wsId,
+      code,
+      name,
+      stim,
+      etim,
+      seq,
+      enable,
+      del,
+      createUserName,
+      createUserTime,
+      updateUserName,
+      updateUserTime
+    });
     if (error) return;
   }
 
diff --git a/ruoyi-plus-soybean/src/views/qm/batch/index.vue b/ruoyi-plus-soybean/src/views/qm/batch/index.vue
index 06ebbff..96d7c52 100644
--- a/ruoyi-plus-soybean/src/views/qm/batch/index.vue
+++ b/ruoyi-plus-soybean/src/views/qm/batch/index.vue
@@ -15,7 +15,6 @@
   name: 'BatchList'
 });
 
-
 const appStore = useAppStore();
 const { download } = useDownload();
 const { hasAuth } = useAuth();
@@ -44,365 +43,365 @@
 
 const { columns, columnChecks, data, getData, getDataByPage, loading, mobilePagination, scrollX } =
   useNaivePaginatedTable({
-  api: () => fetchGetBatchList(searchParams.value),
-  transform: response => defaultTransform(response),
-  onPaginationParamsChange: params => {
-    searchParams.value.pageNum = params.page;
-    searchParams.value.pageSize = params.pageSize;
-  },
-  columns: () => [
-    {
-      type: 'selection',
-      align: 'center',
-      width: 48
+    api: () => fetchGetBatchList(searchParams.value),
+    transform: response => defaultTransform(response),
+    onPaginationParamsChange: params => {
+      searchParams.value.pageNum = params.page;
+      searchParams.value.pageSize = params.pageSize;
     },
-    {
-      key: 'index',
-      title: $t('common.index'),
-      align: 'center',
-      width: 64,
-      render: (_, index) => index + 1
-    },
-    {
-      key: 'id',
-      title: '缂栫爜',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'batchCode',
-      title: '鎵规浠g爜',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'batchName',
-      title: '鎵规鍚嶇О',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'typ',
-      title: '绫诲瀷',
-      align: 'center',
-      minWidth: 120,
-      render: row => TYP_MAP[row.typ] ?? row.typ
-    },
-    {
-      key: 'eqpCode',
-      title: '鏈哄彴浠g爜',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'matCode',
-      title: '鐗屽彿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'judgeCode',
-      title: '鍒ゅ畾渚濇嵁浠g爜',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'batchDate',
-      title: '鎵规鐢熸垚鏃ユ湡',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'isflag',
-      title: '浣跨敤鏍囧織',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'enabled',
-      title: '鍚敤鏍囧織',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'totalNum',
-      title: '鍒拌揣鎬婚噺',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'results',
-      title: '缁煎悎鍒ゅ畾',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'approver',
-      title: '鎵瑰噯浜�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'auditor',
-      title: '瀹℃牳浜�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'creater',
-      title: '鍒涘缓浜�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'tabDate',
-      title: '鍒惰〃鏃ユ湡',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'verName',
-      title: '鐗堟湰鍚嶇О',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'verCode',
-      title: '鐗堟湰缂栧彿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'archDate',
-      title: '淇濆瓨鏈�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'flag',
-      title: '鍙嶉MES',
-      align: 'center',
-      minWidth: 120,
-      render: row => FLAG_MAP[String(row.flag)] ?? row.flag
-    },
-    {
-      key: 'toMesDate',
-      title: '涓婁紶MES鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'fromMesDate',
-      title: '浠嶮ES鏃堕棿涓嬭浇',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'deleted',
-      title: '鍒犻櫎鏍囧織',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'batchDes',
-      title: '鎵规鎻忚堪',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'category',
-      title: '绫诲埆',
-      align: 'center',
-      minWidth: 120,
-      render: row => CATEGORY_MAP[String(row.category)] ?? row.category
-    },
-    {
-      key: 'makeno',
-      title: '鍗峰埗宸ュ彿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'shifteqpno',
-      title: '鐝鏈哄彿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'boxno',
-      title: '瑁呯鍙�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'pid',
-      title: '鐖舵壒娆″彿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'reviewer',
-      title: '澶嶆牳浜�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'rvcount',
-      title: '澶嶆娆℃暟',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'state',
-      title: '鎵规鐘舵��',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'reviewTime',
-      title: '澶嶆牳鏃ユ湡',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'auditTime',
-      title: '瀹℃牳鏃ユ湡',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'spec',
-      title: '瑙勬牸',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'approveTime',
-      title: '鎵瑰噯鏃堕棿',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'unit',
-      title: '鍒拌揣鍗曚綅',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'arrivalTime',
-      title: '鍒拌揣鏃ユ湡',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'storagePlace',
-      title: '瀛樻斁鍦扮偣',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'checker',
-      title: '妫�楠屽憳',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'receiveTime',
-      title: '鎺ュ崟鏃ユ湡',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'inspTime',
-      title: '鎶ユ鏃ユ湡',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'storer',
-      title: '浠撳簱淇濈鍛�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'isverify',
-      title: '鏄惁楠岃瘉',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'ischk',
-      title: '鏄惁妫�楠�',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'bak1',
-      title: '澶囩敤1',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'bak2',
-      title: '澶囩敤2',
-      align: 'center',
-      minWidth: 120
-    },
-    {
-      key: 'operate',
-      title: $t('common.operate'),
-      align: 'center',
-      width: 130,
-      render: row => {
-        const divider = () => {
-          if (!hasAuth('qm:batch:edit') || !hasAuth('qm:batch:remove')) {
-            return null;
-          }
-          return <NDivider vertical />;
-        };
+    columns: () => [
+      {
+        type: 'selection',
+        align: 'center',
+        width: 48
+      },
+      {
+        key: 'index',
+        title: $t('common.index'),
+        align: 'center',
+        width: 64,
+        render: (_, index) => index + 1
+      },
+      {
+        key: 'id',
+        title: '缂栫爜',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'batchCode',
+        title: '鎵规浠g爜',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'batchName',
+        title: '鎵规鍚嶇О',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'typ',
+        title: '绫诲瀷',
+        align: 'center',
+        minWidth: 120,
+        render: row => TYP_MAP[row.typ] ?? row.typ
+      },
+      {
+        key: 'eqpCode',
+        title: '鏈哄彴浠g爜',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'matCode',
+        title: '鐗屽彿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'judgeCode',
+        title: '鍒ゅ畾渚濇嵁浠g爜',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'batchDate',
+        title: '鎵规鐢熸垚鏃ユ湡',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'isflag',
+        title: '浣跨敤鏍囧織',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'enabled',
+        title: '鍚敤鏍囧織',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'totalNum',
+        title: '鍒拌揣鎬婚噺',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'results',
+        title: '缁煎悎鍒ゅ畾',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'approver',
+        title: '鎵瑰噯浜�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'auditor',
+        title: '瀹℃牳浜�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'creater',
+        title: '鍒涘缓浜�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'tabDate',
+        title: '鍒惰〃鏃ユ湡',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'verName',
+        title: '鐗堟湰鍚嶇О',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'verCode',
+        title: '鐗堟湰缂栧彿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'archDate',
+        title: '淇濆瓨鏈�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'flag',
+        title: '鍙嶉MES',
+        align: 'center',
+        minWidth: 120,
+        render: row => FLAG_MAP[String(row.flag)] ?? row.flag
+      },
+      {
+        key: 'toMesDate',
+        title: '涓婁紶MES鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'fromMesDate',
+        title: '浠嶮ES鏃堕棿涓嬭浇',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'deleted',
+        title: '鍒犻櫎鏍囧織',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'batchDes',
+        title: '鎵规鎻忚堪',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'category',
+        title: '绫诲埆',
+        align: 'center',
+        minWidth: 120,
+        render: row => CATEGORY_MAP[String(row.category)] ?? row.category
+      },
+      {
+        key: 'makeno',
+        title: '鍗峰埗宸ュ彿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'shifteqpno',
+        title: '鐝鏈哄彿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'boxno',
+        title: '瑁呯鍙�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'pid',
+        title: '鐖舵壒娆″彿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'reviewer',
+        title: '澶嶆牳浜�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'rvcount',
+        title: '澶嶆娆℃暟',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'state',
+        title: '鎵规鐘舵��',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'reviewTime',
+        title: '澶嶆牳鏃ユ湡',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'auditTime',
+        title: '瀹℃牳鏃ユ湡',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'spec',
+        title: '瑙勬牸',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'approveTime',
+        title: '鎵瑰噯鏃堕棿',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'unit',
+        title: '鍒拌揣鍗曚綅',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'arrivalTime',
+        title: '鍒拌揣鏃ユ湡',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'storagePlace',
+        title: '瀛樻斁鍦扮偣',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'checker',
+        title: '妫�楠屽憳',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'receiveTime',
+        title: '鎺ュ崟鏃ユ湡',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'inspTime',
+        title: '鎶ユ鏃ユ湡',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'storer',
+        title: '浠撳簱淇濈鍛�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'isverify',
+        title: '鏄惁楠岃瘉',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'ischk',
+        title: '鏄惁妫�楠�',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'bak1',
+        title: '澶囩敤1',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'bak2',
+        title: '澶囩敤2',
+        align: 'center',
+        minWidth: 120
+      },
+      {
+        key: 'operate',
+        title: $t('common.operate'),
+        align: 'center',
+        width: 130,
+        render: row => {
+          const divider = () => {
+            if (!hasAuth('qm:batch:edit') || !hasAuth('qm:batch:remove')) {
+              return null;
+            }
+            return <NDivider vertical />;
+          };
 
-        const editBtn = () => {
-          if (!hasAuth('qm:batch:edit')) {
-            return null;
-          }
+          const editBtn = () => {
+            if (!hasAuth('qm:batch:edit')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="primary"
+                icon="material-symbols:drive-file-rename-outline-outline"
+                tooltipContent={$t('common.edit')}
+                onClick={() => edit(row.id)}
+              />
+            );
+          };
+
+          const deleteBtn = () => {
+            if (!hasAuth('qm:batch:remove')) {
+              return null;
+            }
+            return (
+              <ButtonIcon
+                text
+                type="error"
+                icon="material-symbols:delete-outline"
+                tooltipContent={$t('common.delete')}
+                popconfirmContent={$t('common.confirmDelete')}
+                onPositiveClick={() => handleDelete(row.id)}
+              />
+            );
+          };
+
           return (
-            <ButtonIcon
-              text
-              type="primary"
-              icon="material-symbols:drive-file-rename-outline-outline"
-              tooltipContent={$t('common.edit')}
-              onClick={() => edit(row.id)}
-            />
+            <div class="flex-center gap-8px">
+              {editBtn()}
+              {divider()}
+              {deleteBtn()}
+            </div>
           );
-        };
-
-        const deleteBtn = () => {
-          if (!hasAuth('qm:batch:remove')) {
-            return null;
-          }
-          return (
-            <ButtonIcon
-              text
-              type="error"
-              icon="material-symbols:delete-outline"
-              tooltipContent={$t('common.delete')}
-              popconfirmContent={$t('common.confirmDelete')}
-              onPositiveClick={() => handleDelete(row.id)}
-            />
-          );
-        };
-
-        return (
-          <div class="flex-center gap-8px">
-            {editBtn()}
-            {divider()}
-            {deleteBtn()}
-          </div>
-        );
+        }
       }
-    }
-  ]
-});
+    ]
+  });
 
 const { drawerVisible, operateType, editingData, handleAdd, handleEdit, checkedRowKeys, onBatchDeleted, onDeleted } =
   useTableOperate(data, 'id', getData);
diff --git a/ruoyi-plus-soybean/src/views/qm/batch/modules/batch-operate-drawer.vue b/ruoyi-plus-soybean/src/views/qm/batch/modules/batch-operate-drawer.vue
index 501cb94..12d91d0 100644
--- a/ruoyi-plus-soybean/src/views/qm/batch/modules/batch-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/qm/batch/modules/batch-operate-drawer.vue
@@ -67,63 +67,60 @@
 
 function createDefaultModel(): Model {
   return {
-      id: '',
-      batchCode: '',
-      batchName: '',
-      typ: '',
-      eqpCode: '',
-      matCode: '',
-      judgeCode: '',
-      batchDate: null,
-      isflag: '',
-      enabled: '',
-      totalNum: null,
-      results: '',
-      approver: '',
-      auditor: '',
-      creater: '',
-      tabDate: null,
-      verName: '',
-      verCode: '',
-      archDate: '',
-      flag: '',
-      toMesDate: null,
-      fromMesDate: null,
-      deleted: null,
-      batchDes: '',
-      category: '',
-      makeno: '',
-      shifteqpno: '',
-      boxno: '',
-      pid: '',
-      reviewer: '',
-      rvcount: null,
-      state: '',
-      reviewTime: null,
-      auditTime: null,
-      spec: '',
-      approveTime: null,
-      unit: '',
-      arrivalTime: null,
-      storagePlace: '',
-      checker: '',
-      receiveTime: null,
-      inspTime: null,
-      storer: '',
-      isverify: '',
-      ischk: '',
-      bak1: '',
-      bak2: ''
+    id: '',
+    batchCode: '',
+    batchName: '',
+    typ: '',
+    eqpCode: '',
+    matCode: '',
+    judgeCode: '',
+    batchDate: null,
+    isflag: '',
+    enabled: '',
+    totalNum: null,
+    results: '',
+    approver: '',
+    auditor: '',
+    creater: '',
+    tabDate: null,
+    verName: '',
+    verCode: '',
+    archDate: '',
+    flag: '',
+    toMesDate: null,
+    fromMesDate: null,
+    deleted: null,
+    batchDes: '',
+    category: '',
+    makeno: '',
+    shifteqpno: '',
+    boxno: '',
+    pid: '',
+    reviewer: '',
+    rvcount: null,
+    state: '',
+    reviewTime: null,
+    auditTime: null,
+    spec: '',
+    approveTime: null,
+    unit: '',
+    arrivalTime: null,
+    storagePlace: '',
+    checker: '',
+    receiveTime: null,
+    inspTime: null,
+    storer: '',
+    isverify: '',
+    ischk: '',
+    bak1: '',
+    bak2: ''
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'id'
->;
+type RuleKey = Extract<keyof Model, 'id'>;
 
 const rules: Record<RuleKey, App.Global.FormRule> = {
-  id: createRequiredRule('缂栫爜涓嶈兘涓虹┖'),
+  id: createRequiredRule('缂栫爜涓嶈兘涓虹┖')
 };
 
 function handleUpdateModelWhenEdit() {
@@ -141,16 +138,159 @@
 async function handleSubmit() {
   await validate();
 
-  const { id, batchCode, batchName, typ, eqpCode, matCode, judgeCode, batchDate, isflag, enabled, totalNum, results, approver, auditor, creater, tabDate, verName, verCode, archDate, flag, toMesDate, fromMesDate, deleted, batchDes, category, makeno, shifteqpno, boxno, pid, reviewer, rvcount, state, reviewTime, auditTime, spec, approveTime, unit, arrivalTime, storagePlace, checker, receiveTime, inspTime, storer, isverify, ischk, bak1, bak2 } = model.value;
+  const {
+    id,
+    batchCode,
+    batchName,
+    typ,
+    eqpCode,
+    matCode,
+    judgeCode,
+    batchDate,
+    isflag,
+    enabled,
+    totalNum,
+    results,
+    approver,
+    auditor,
+    creater,
+    tabDate,
+    verName,
+    verCode,
+    archDate,
+    flag,
+    toMesDate,
+    fromMesDate,
+    deleted,
+    batchDes,
+    category,
+    makeno,
+    shifteqpno,
+    boxno,
+    pid,
+    reviewer,
+    rvcount,
+    state,
+    reviewTime,
+    auditTime,
+    spec,
+    approveTime,
+    unit,
+    arrivalTime,
+    storagePlace,
+    checker,
+    receiveTime,
+    inspTime,
+    storer,
+    isverify,
+    ischk,
+    bak1,
+    bak2
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreateBatch({ batchCode, batchName, typ, eqpCode, matCode, judgeCode, batchDate, isflag, enabled, totalNum, results, approver, auditor, creater, tabDate, verName, verCode, archDate, flag, toMesDate, fromMesDate, deleted, batchDes, category, makeno, shifteqpno, boxno, pid, reviewer, rvcount, state, reviewTime, auditTime, spec, approveTime, unit, arrivalTime, storagePlace, checker, receiveTime, inspTime, storer, isverify, ischk, bak1, bak2 });
+    const { error } = await fetchCreateBatch({
+      batchCode,
+      batchName,
+      typ,
+      eqpCode,
+      matCode,
+      judgeCode,
+      batchDate,
+      isflag,
+      enabled,
+      totalNum,
+      results,
+      approver,
+      auditor,
+      creater,
+      tabDate,
+      verName,
+      verCode,
+      archDate,
+      flag,
+      toMesDate,
+      fromMesDate,
+      deleted,
+      batchDes,
+      category,
+      makeno,
+      shifteqpno,
+      boxno,
+      pid,
+      reviewer,
+      rvcount,
+      state,
+      reviewTime,
+      auditTime,
+      spec,
+      approveTime,
+      unit,
+      arrivalTime,
+      storagePlace,
+      checker,
+      receiveTime,
+      inspTime,
+      storer,
+      isverify,
+      ischk,
+      bak1,
+      bak2
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdateBatch({ id, batchCode, batchName, typ, eqpCode, matCode, judgeCode, batchDate, isflag, enabled, totalNum, results, approver, auditor, creater, tabDate, verName, verCode, archDate, flag, toMesDate, fromMesDate, deleted, batchDes, category, makeno, shifteqpno, boxno, pid, reviewer, rvcount, state, reviewTime, auditTime, spec, approveTime, unit, arrivalTime, storagePlace, checker, receiveTime, inspTime, storer, isverify, ischk, bak1, bak2 });
+    const { error } = await fetchUpdateBatch({
+      id,
+      batchCode,
+      batchName,
+      typ,
+      eqpCode,
+      matCode,
+      judgeCode,
+      batchDate,
+      isflag,
+      enabled,
+      totalNum,
+      results,
+      approver,
+      auditor,
+      creater,
+      tabDate,
+      verName,
+      verCode,
+      archDate,
+      flag,
+      toMesDate,
+      fromMesDate,
+      deleted,
+      batchDes,
+      category,
+      makeno,
+      shifteqpno,
+      boxno,
+      pid,
+      reviewer,
+      rvcount,
+      state,
+      reviewTime,
+      auditTime,
+      spec,
+      approveTime,
+      unit,
+      arrivalTime,
+      storagePlace,
+      checker,
+      receiveTime,
+      inspTime,
+      storer,
+      isverify,
+      ischk,
+      bak1,
+      bak2
+    });
     if (error) return;
   }
 

--
Gitblit v1.9.3