From f306557dbcfc1583a45e26d86fdfe0aa4b446fb4 Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期三, 14 五月 2025 18:45:04 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.50.149:8085/r/aps-backend into dev

---
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java                         |   13 
 aps-modules/aps-system/src/main/resources/mapper/system/SysMenuMapper.xml                                   |    4 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml                                        |   10 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessShopPlanStat.java                     |   59 ++
 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java                        |    7 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteMapper.xml                               |    8 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsResourceDateStat.java                             |    9 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml                                  |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteTempMapper.xml                           |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml                   |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsProfessionalFixedCycleManagementMapper.xml           |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlantMapper.xml                                      |    6 
 aps-modules/aps-system/src/main/resources/mapper/system/SysConfigMapper.xml                                 |    4 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkEventMapper.xml                                  |    8 
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java                |   55 +
 aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml                 |    8 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java                       |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasMaterialUsageMapper.xml                           |    8 
 aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml                                 |    3 
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java        |   10 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanTempMapper.xml                              |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml                              |   12 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupTempMapper.xml                          |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamTempMapper.xml                               |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsShopMapper.xml                                       |    8 
 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireService.java                |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml                  |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsMapper.xml                         |    8 
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWorkCalendarMapper.java                           |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialManagementMapper.xml                         |    8 
 aps-modules/aps-system/src/main/resources/mapper/system/SysOperLogMapper.xml                                |    6 
 aps-modules/aps-system/src/main/resources/mapper/system/SysNoticeMapper.xml                                 |    4 
 aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsWorkCalendarController.java         |   63 +
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteHeaderJobServiceImpl.java |    6 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessShopStatMapper.xml                       |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanTempMapper.xml                          |    8 
 aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java                              |   58 +
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java          |  289 +++++++++++
 aps-modules/aps-system/src/main/resources/mapper/system/SysDictDataMapper.xml                               |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml                              |   10 
 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateOrderPlanManagerController.java |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml                                   |    8 
 aps-modules/aps-system/src/main/resources/mapper/system/SysLogininforMapper.xml                             |    4 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java                                          |    2 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java                                    |   67 +-
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessStatMapper.xml                           |   14 
 aps-modules/aps-system/src/main/resources/mapper/system/SysPostMapper.xml                                   |    4 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessCapacityManagementMapper.xml                  |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml                                  |   11 
 aps-modules/aps-system/pom.xml                                                                              |   14 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml                    |    8 
 aps-modules/aps-core/src/main/java/com/aps/core/controller/CoreController.java                              |   38 +
 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java             |    2 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java                                     |   20 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessStat.java                             |  375 +++++++------
 aps-modules/aps-job/pom.xml                                                                                 |   27 +
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingRouteStat.java                           |    3 
 aps-modules/aps-system/src/main/resources/mapper/system/SysDictTypeMapper.xml                               |    4 
 aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml                                 |    5 
 aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java      |   12 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml                               |   38 +
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java                  |    6 
 aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml                                   |    3 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java                        |    1 
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java                                 |   35 +
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml         |    2 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml                         |   10 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml         |   10 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessMapper.xml                            |    8 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml                  |   12 
 aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupMapper.xml                              |    8 
 aps-modules/aps-system/src/main/resources/mapper/system/SysRoleMapper.xml                                   |    4 
 aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml                                   |    2 
 aps-modules/aps-system/src/main/resources/mapper/system/SysUserMapper.xml                                   |   12 
 74 files changed, 1,097 insertions(+), 460 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/CoreController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/CoreController.java
index 5c5a95a..a04db47 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/CoreController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/CoreController.java
@@ -1,15 +1,19 @@
 package com.aps.core.controller;
 
+import com.aps.common.core.domain.R;
+import com.aps.common.core.utils.file.FileUtils;
+import com.aps.common.core.web.domain.AjaxResult;
+import com.aps.core.service.IApsBomHeaderService;
+import com.aps.core.service.IApsMaterialStorageManagementService;
+import com.aps.core.service.IApsStandardProcessRouteHeaderService;
 import com.aps.core.service.ICoreService;
+import com.aps.system.api.domain.SysFile;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
-import com.aps.common.core.domain.R;
-import com.aps.common.core.utils.file.FileUtils;
-import com.aps.system.api.domain.SysFile;
 
 /**
  * 鏂囦欢璇锋眰澶勭悊
@@ -23,6 +27,15 @@
 
     @Autowired
     private ICoreService coreService;
+
+    @Autowired
+    private IApsBomHeaderService apsBomHeaderService;
+
+    @Autowired
+    private IApsStandardProcessRouteHeaderService apsStandardProcessRouteHeaderService;
+
+    @Autowired
+    private IApsMaterialStorageManagementService apsMaterialStorageManagementService;
 
     /**
      * 鏂囦欢涓婁紶璇锋眰
@@ -45,4 +58,23 @@
             return R.fail(e.getMessage());
         }
     }
+
+    /**
+     * 鍒锋柊BOM鍜屽伐鑹鸿矾绾垮拰搴撳瓨缂撳瓨
+     * @param orgCode
+     * @return
+     */
+    @PostMapping("refreshBomPrcessrouteStorageData")
+    public AjaxResult refreshBomRouteStorageData(String orgCode)
+    {
+        try {
+            apsBomHeaderService.setBomDataToRedis(orgCode);
+            apsStandardProcessRouteHeaderService.setProcessRouteDataToRedis(orgCode);
+            apsMaterialStorageManagementService.setStorageDataToRedis(orgCode);
+        }catch (Exception e){
+            e.printStackTrace();
+            return AjaxResult.error(e.getMessage());
+        }
+        return AjaxResult.success();
+    }
 }
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java
index 9571d12..396f46a 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java
@@ -129,4 +129,16 @@
             return AjaxResult.error("妯℃澘鍐呭涓虹┖");
         }
     }
+
+    /**
+     * 鏍规嵁杞﹂棿鏌ヨ鏍囧噯宸ュ簭鍒楄〃
+     */
+    @Operation(summary = "鏍规嵁杞﹂棿鏌ヨ鏍囧噯宸ュ簭鍒楄〃", description = "鍏ㄩ噺鏌ヨ")
+    @RequiresPermissions("aps:standardProcess:listByWorkShop")
+    @GetMapping("/listByWorkShop")
+    public TableDataInfo listByWorkShop(ApsStandardProcess apsStandardProcess)
+    {
+        List<ApsStandardProcess> list = apsStandardProcessService.selectApsStandardProcessList(apsStandardProcess);
+        return getDataTable(list);
+    }
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsWorkCalendarController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsWorkCalendarController.java
index 07371ca..70da1b4 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsWorkCalendarController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsWorkCalendarController.java
@@ -71,35 +71,49 @@
     @PostMapping
     public AjaxResult add(@RequestBody ApsWorkCalendar apsWorkCalendar)
     {
-        ApsWorkCalendar tempCheck = new ApsWorkCalendar();
-        tempCheck.setEffectiveDate(apsWorkCalendar.getEffectiveDate());
-        tempCheck.setExpiringDate(apsWorkCalendar.getExpiringDate());
-        tempCheck.setApplicableFactory(apsWorkCalendar.getApplicableFactory());
-        List<ApsWorkCalendar> list = apsWorkCalendarService.selectApsWorkCalendarList(tempCheck);
-        if(!list.isEmpty()){
-            return AjaxResult.error("璇ユ椂闂存鏃ュ巻宸插瓨鍦�",  list);
-        }else{
-            return toAjax(apsWorkCalendarService.insertApsWorkCalendar(apsWorkCalendar));
+        try {
+            ApsWorkCalendar tempCheck = new ApsWorkCalendar();
+            tempCheck.setEffectiveDate(apsWorkCalendar.getEffectiveDate());
+            tempCheck.setExpiringDate(apsWorkCalendar.getExpiringDate());
+            tempCheck.setApplicableFactory(apsWorkCalendar.getApplicableFactory());
+            tempCheck.setType(apsWorkCalendar.getType());
+            List<ApsWorkCalendar> list = apsWorkCalendarService.selectApsWorkCalendarList(tempCheck);
+            if(!list.isEmpty()){
+                return AjaxResult.error("璇ユ椂闂存鏃ュ巻宸插瓨鍦�",  list);
+            }else{
+                apsWorkCalendarService.insertApsWorkCalendar(apsWorkCalendar);
+                return success();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return error();
         }
     }
 
     /**
      * 淇敼鏃ュ巻绠$悊
      */
-    @RequiresPermissions("aps:calendar:edit")
+//    @RequiresPermissions("aps:calendar:edit")
     @Log(title = "鏃ュ巻绠$悊", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody ApsWorkCalendar apsWorkCalendar)
     {
-        ApsWorkCalendar tempCheck = new ApsWorkCalendar();
-        tempCheck.setEffectiveDate(apsWorkCalendar.getEffectiveDate());
-        tempCheck.setExpiringDate(apsWorkCalendar.getExpiringDate());
-        tempCheck.setApplicableFactory(apsWorkCalendar.getApplicableFactory());
-        List<ApsWorkCalendar> list = apsWorkCalendarService.selectApsWorkCalendarList(tempCheck);
-        if(!list.isEmpty()){
-            return AjaxResult.error("璇ユ椂闂存鏃ュ巻宸插瓨鍦�",  list);
-        }else{
-            return toAjax(apsWorkCalendarService.updateApsWorkCalendar(apsWorkCalendar));
+        try {
+//            ApsWorkCalendar tempCheck = new ApsWorkCalendar();
+//            tempCheck.setEffectiveDate(apsWorkCalendar.getEffectiveDate());
+//            tempCheck.setExpiringDate(apsWorkCalendar.getExpiringDate());
+//            tempCheck.setApplicableFactory(apsWorkCalendar.getApplicableFactory());
+//            tempCheck.setType(apsWorkCalendar.getType());
+//            List<ApsWorkCalendar> list = apsWorkCalendarService.selectApsWorkCalendarList(tempCheck);
+//            if(!list.isEmpty()){
+//                return AjaxResult.error("璇ユ椂闂存鏃ュ巻宸插瓨鍦�",  list);
+//            }else{
+            apsWorkCalendarService.updateApsWorkCalendar(apsWorkCalendar);
+            return success();
+//            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return error();
         }
     }
 
@@ -115,6 +129,17 @@
     }
 
     /**
+     * 鍒犻櫎鏃ュ巻绠$悊
+     */
+    @RequiresPermissions("aps:calendar:delete")
+    @Log(title = "鍒犻櫎鏃ュ巻绠$悊", businessType = BusinessType.DELETE)
+    @PostMapping("/deleteApsWorkCalendar")
+    public AjaxResult deleteApsWorkCalendar(@RequestBody ApsWorkCalendar apsWorkCalendar)
+    {
+        return toAjax(apsWorkCalendarService.deleteApsWorkCalendar(apsWorkCalendar));
+    }
+
+    /**
      * 鏌ヨ鏃ュ巻绠$悊鍒楄〃
      */
     @RequiresPermissions("aps:calendar:list")
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java
index a7f2f25..433c072 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java
@@ -120,7 +120,7 @@
         R<Boolean> res = remoteJobService.refreshBomData(SecurityConstants.INNER);
         if (R.isSuccess(res))
         {
-            apsBomHeaderService.setBomDataToRedis("");
+            apsBomHeaderService.setBomDataToRedis("FORTUNA");
             return success();
         }
         return error();
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateOrderPlanManagerController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateOrderPlanManagerController.java
index f99af31..9fe3134 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateOrderPlanManagerController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateOrderPlanManagerController.java
@@ -34,7 +34,7 @@
     /**
      * 鏌ヨ閽i噾宸ュ崟璁″垝
      */
-    @RequiresPermissions("ApsPlatOrderPlanManager:list")
+    /*@RequiresPermissions("ApsPlatOrderPlanManager:list")*/
     @GetMapping("/list")
     public TableDataInfo list(ApsPlateOrderPlanManager apsPlateOrderPlanManager)
     {
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java
index 50a10ef..624d390 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java
@@ -58,7 +58,7 @@
 
     /** 鎬绘暟閲� */
     @Excel(name = "鎬绘暟閲�")
-    private BigDecimal total_num;
+    private BigDecimal totalNum;
 
     /** 鍑嗗宸ユ椂 */
     @Excel(name = "鍑嗗宸ユ椂")
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingRouteStat.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingRouteStat.java
index 36b831d..a803376 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingRouteStat.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingRouteStat.java
@@ -123,6 +123,9 @@
     @Excel(name = "鎵规鍙�")
     private String batchNumber;
 
+    /** 宸ュ巶 */
+    private String plant;
+
     @Transient
     private String searchStartDate;
 
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java
index 341d233..0796a29 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java
@@ -177,6 +177,26 @@
     @Excel(name = "涓嬩竴宸ュ簭鍚嶇О")
     private String nextOpName;
 
+    public BigDecimal getUnmatchedQuantity() {
+        return unmatchedQuantity;
+    }
+
+    public void setUnmatchedQuantity(BigDecimal unmatchedQuantity) {
+        this.unmatchedQuantity = unmatchedQuantity;
+    }
+
+    public String getProfessionalAffiliation() {
+        return professionalAffiliation;
+    }
+
+    public void setProfessionalAffiliation(String professionalAffiliation) {
+        this.professionalAffiliation = professionalAffiliation;
+    }
+
+    /** 鏈尮閰嶇殑鐢熶骇鏁伴噺*/
+    private BigDecimal unmatchedQuantity;
+    /** 涓撲笟褰掑睘*/
+    private String professionalAffiliation;
 
     public String getOpStatus() {
         return opStatus;
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java
index e190310..28b0904 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java
@@ -27,6 +27,7 @@
 
     /** 闇�姹侷D */
     @Excel(name = "闇�姹侷D")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long requireId;
 
     /** 闇�姹傝拷婧疘D */
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java
index 087713f..b92f664 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java
@@ -5,8 +5,6 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 
 import java.io.Serial;
 import java.math.BigDecimal;
@@ -29,16 +27,16 @@
     private Long id;
 
     /** 涓昏鍒掑憳 */
-    @Excel(name = "涓昏鍒�")
+//    @Excel(name = "涓昏鍒�")
     private String masterPlanner;
 
     /** 鍛ㄦ棩 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "鍛ㄦ棩", width = 30, dateFormat = "yyyy-MM-dd")
+//    @Excel(name = "鍛ㄦ棩", width = 30, dateFormat = "yyyy-MM-dd")
     private Date weekDay;
 
     /** 鍛ㄥ害 */
-    @Excel(name = "鍛ㄥ害")
+//    @Excel(name = "鍛ㄥ害")
     private String weekCycle;
 
     /** 涓讳欢鏂欏彿 */
@@ -46,7 +44,7 @@
     private String mainPartNumber;
 
     /** 涓讳欢鍥惧彿 */
-    @Excel(name = "涓讳欢鍥惧彿")
+//    @Excel(name = "涓讳欢鍥惧彿")
     private String mainPartDrawingNumber;
 
     /** 瀹㈡埛鍚嶇О */
@@ -78,7 +76,7 @@
     private String drawingNo;
 
     /** 鐗堟湰鍙� */
-    @Excel(name = "鐗堟湰鍙�")
+//    @Excel(name = "鐗堟湰鍙�")
     private String versionNumber;
 
     /** 鐢熶骇鏁伴噺 */
@@ -86,7 +84,7 @@
     private BigDecimal productionQuantity;
 
     /** 鑹搧鏁伴噺 */
-    @Excel(name = "鑹搧鏁伴噺")
+//    @Excel(name = "鑹搧鏁伴噺")
     private BigDecimal goodProductsQuantity;
 
     /** 宸ュ簭鍙� */
@@ -98,12 +96,12 @@
     private String workCenter;
 
     /** 鎵�灞為儴闂� */
-    @Excel(name = "鎵�灞為儴闂�")
+//    @Excel(name = "鎵�灞為儴闂�")
     private String department;
 
     /** 璁″垝寮�宸ユ棩 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "璁″垝寮�宸ユ棩", width = 30, dateFormat = "yyyy-MM-dd")
+//    @Excel(name = "璁″垝寮�宸ユ棩", width = 30, dateFormat = "yyyy-MM-dd")
     private Date planStartDay;
 
     /** 璁″垝瀹屽伐鏃� */
@@ -112,27 +110,27 @@
     private Date planEndDay;
 
     /** 澶囨枡鏂欏彿 */
-    @Excel(name = "澶囨枡鏂欏彿")
+//    @Excel(name = "澶囨枡鏂欏彿")
     private String standbyNumber;
 
     /** 澶囨枡鍚嶇О */
-    @Excel(name = "澶囨枡鍚嶇О")
+//    @Excel(name = "澶囨枡鍚嶇О")
     private String standbyName;
 
     /** 澶囨枡搴撳瓨 */
-    @Excel(name = "澶囨枡搴撳瓨")
+//    @Excel(name = "澶囨枡搴撳瓨")
     private Integer standbyStock;
 
     /** 涓嬮亾宸ュ簭鎵�灞為儴闂� */
-    @Excel(name = "涓嬮亾宸ュ簭鎵�灞為儴闂�")
+//    @Excel(name = "涓嬮亾宸ュ簭鎵�灞為儴闂�")
     private String nextProcessDeparment;
 
     /** 鏄惁鎸傝捣 */
-    @Excel(name = "鏄惁鎸傝捣")
+//    @Excel(name = "鏄惁鎸傝捣")
     private String isSuspended;
 
     /** 澶栧崗鏍囪瘑 */
-    @Excel(name = "澶栧崗鏍囪瘑")
+//    @Excel(name = "澶栧崗鏍囪瘑")
     private String isOutsourcing;
 
     /** 璐﹀ */
@@ -140,36 +138,36 @@
     private String account;
 
     /** 涓婇樁鐗╂枡 */
-    @Excel(name = "涓婇樁鐗╂枡")
+//    @Excel(name = "涓婇樁鐗╂枡")
     private String advancedMaterials;
 
     /** 涓婇樁鍗曟嵁鍙� */
-    @Excel(name = "涓婇樁鍗曟嵁鍙�")
+//    @Excel(name = "涓婇樁鍗曟嵁鍙�")
     private String advancedDocumentNumber;
 
     /** 涓婇樁闇�姹傛棩鏈� */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "涓婇樁闇�姹傛棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+//    @Excel(name = "涓婇樁闇�姹傛棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
     private Date advancedRequirementDay;
 
     /** 璁″垝榻愬 */
-    @Excel(name = "璁″垝榻愬")
+//    @Excel(name = "璁″垝榻愬")
     private Integer isPlanComplete;
 
     /** 搴撳瓨榻愬 */
-    @Excel(name = "搴撳瓨榻愬")
+//    @Excel(name = "搴撳瓨榻愬")
     private Integer isStockComplete;
 
     /** 鏄惁鏈夋姌杩斿伐搴� */
-    @Excel(name = "鏄惁鏈夋姌杩斿伐搴�")
+//    @Excel(name = "鏄惁鏈夋姌杩斿伐搴�")
     private Integer hasTurnback;
 
     /** 椋庨櫓鏍囪瘑 */
-    @Excel(name = "椋庨櫓鏍囪瘑")
+//    @Excel(name = "椋庨櫓鏍囪瘑")
     private Integer hasRisk;
 
     /** 浣滀笟锛堝伐搴忓悕绉帮級 */
-    @Excel(name = "浣滀笟")
+//    @Excel(name = "浣滀笟")
     private String stdOp;
 
     /** 宸ュ巶 */
@@ -177,16 +175,16 @@
     private String plant;
 
     /** 褰撳墠宸ュ簭鐘舵�� */
-    @Excel(name = "褰撳墠宸ュ簭鐘舵��")
+//    @Excel(name = "褰撳墠宸ュ簭鐘舵��")
     private String opStatus;
 
     /** 涓嬩竴宸ュ簭鍚嶇О */
-    @Excel(name = "涓嬩竴宸ュ簭鍚嶇О")
+//    @Excel(name = "涓嬩竴宸ュ簭鍚嶇О")
     private String nextOpName;
 
     /** 宸ュ崟鍒涘缓鏃堕棿 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "宸ュ崟鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+//    @Excel(name = "宸ュ崟鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date orderCreateTime;
 
     /** 鑷畾涔夋椂闂� */
@@ -195,8 +193,18 @@
 //    private Date customTime;
 
     /** 鐢熶骇鍩哄湴 */
-    @Excel(name = "鐢熶骇鍩哄湴")
+//    @Excel(name = "鐢熶骇鍩哄湴")
     private String productionBase;
+
+    /** 宸ュ崟瀹℃牳鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    @Excel(name = "宸ュ崟瀹℃牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date approveOn;
+
+    /** 宸ュ崟寮�宸ユ椂闂� */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    @Excel(name = "宸ュ崟寮�宸ユ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date startWorkDate;
 
     /** 鏈尮閰嶇殑鐢熶骇鏁伴噺*/
     private BigDecimal unmatchedQuantity;
@@ -207,6 +215,9 @@
     private String requireId;
 
     private Integer version;
+
+    /** 浣庨樁鐮�*/
+    private String lowOrderCode;
 /*
     public String getOpStatus() {
         return opStatus;
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessShopPlanStat.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessShopPlanStat.java
index c172b1d..9dbc55b 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessShopPlanStat.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessShopPlanStat.java
@@ -8,6 +8,7 @@
 import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -27,10 +28,25 @@
     @Excel(name = "涓讳欢鏂欏彿")
     private String mainPartNumber;
 
+    /** 涓讳欢瀹㈡埛 */
+    @Schema(description = "涓讳欢瀹㈡埛锛屾潵鑷狤RP", type = "String")
+    @Excel(name = "涓讳欢瀹㈡埛")
+    private String customer;
+
+    /** 涓讳欢璁㈠崟浜ゆ湡 */
+    @Schema(description = "涓讳欢璁㈠崟浜ゆ湡锛屾潵鑷狤RP", type = "String")
+    @Excel(name = "涓讳欢璁㈠崟浜ゆ湡")
+    private BigInteger mainOrderDelivery;
+
     /** 涓氬姟绫诲瀷 */
     @Schema(description = "涓氬姟绫诲瀷", type = "String")
     @Excel(name = "涓氬姟绫诲瀷")
     private String businessType;
+
+    /** 鐣彿 */
+    @Schema(description = "闇�姹傝拷婧彿锛岀敱APS浜х敓", type = "String")
+    @Excel(name = "鐣彿")
+    private String designation;
 
     /** 鍗曟嵁鍙� */
     @Schema(description = "鍗曟嵁鍙�", type = "String")
@@ -73,11 +89,51 @@
     @Excel(name = "鐢熶骇鏁伴噺")
     private BigDecimal productionQuantity;
 
+    /** 宸ュ崟鍒涘缓鏃堕棿 */
+    @Schema(description = "宸ュ崟鍒涘缓鏃堕棿锛屾潵鑷狤RP", type = "String")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "宸ュ崟鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date orderCreateTime;
+
+    /** 宸ュ崟瀹℃牳鏃堕棿 */
+    @Schema(description = "宸ュ崟瀹℃牳鏃堕棿锛屾潵鑷狤RP", type = "String")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "宸ュ崟瀹℃牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date approveOn;
+
+    /** 宸ュ崟寮�宸ユ椂闂� */
+    @Schema(description = "宸ュ崟寮�宸ユ椂闂达紝鏉ヨ嚜ERP", type = "String")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "宸ュ崟寮�宸ユ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date startWorkDate;
+
+    /** 鍐嶆纭瀹屽伐鏃堕棿 */
+    @Schema(description = "鍐嶆纭瀹屽伐鏃堕棿锛屾潵鑷狝PS", type = "String")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍐嶆纭瀹屽伐鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date workOrderConfirmTime;
+
     /** 璁″垝瀹屽伐鏃� */
     @Schema(description = "璁″垝瀹屽伐鏃�", type = "String")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "璁″垝瀹屽伐鏃�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date planEndDay;
+
+    /** 鐗堟湰鍙� */
+    @Schema(description = "鐢熶骇宸ュ巶锛屾潵鑷狤RP", type = "String")
+    @Excel(name = "鐢熶骇宸ュ巶")
+    private String productionBase;
+
+    /** 鐗堟湰鍙� */
+    @Schema(description = "榻愬鐘跺喌锛屾潵鑷狤RP", type = "String")
+    @Excel(name = "榻愬鐘跺喌")
+    private String kittingCondition;
+
+    /** 璁″垝榻愬鏃堕棿 */
+    @Schema(description = "璁″垝榻愬鏃堕棿锛屾潵鑷狤RP", type = "String")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "璁″垝榻愬鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date planKittingTime;
 
     /** 宸ュ簭鍙� */
     @Excel(name = "宸ュ簭鍙�")
@@ -98,6 +154,9 @@
     @Excel(name = "涓嬩竴宸ュ簭鍚嶇О")
     private String nextOpName;
 
+    /** 浣庨樁鐮�*/
+    @Excel(name = "浣庨樁鐮�")
+    private String lowOrderCode;
 
     private List<ApsPlateProcessShopStat> deptPlans=new ArrayList<>();
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessStat.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessStat.java
index 7190995..30c438d 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessStat.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessStat.java
@@ -3,6 +3,7 @@
 import java.math.BigDecimal;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.aps.common.core.annotation.Excel;
@@ -14,6 +15,7 @@
  * @author zhl
  * @date 2025-04-15
  */
+@Data
 public class ApsPlateProcessStat extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -71,6 +73,9 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date computePlanEndDay;
 
+    @Excel(name = "寮傚父鐘舵��", width = 50)
+    private String exceptionStatus;
+
     /** 璁捐宸ユ椂 */
 
     private Long designTimes;
@@ -86,185 +91,193 @@
 
     private Boolean warning;
 
-    public void setId(String id) 
-    {
-        this.id = id;
-    }
-
-    public String getId() 
-    {
-        return id;
-    }
-
-    public void setWorkOrderNo(String workOrderNo) 
-    {
-        this.workOrderNo = workOrderNo;
-    }
-
-    public String getWorkOrderNo() 
-    {
-        return workOrderNo;
-    }
-
-    public void setProcessName(String processName) 
-    {
-        this.processName = processName;
-    }
-
-    public String getProcessName() 
-    {
-        return processName;
-    }
-
-    public void setNum(Integer num) 
-    {
-        this.num = num;
-    }
-
-    public Integer getNum() 
-    {
-        return num;
-    }
-
-    public void setRouteProcessNumber(BigDecimal routeProcessNumber) 
-    {
-        this.routeProcessNumber = routeProcessNumber;
-    }
-
-    public BigDecimal getRouteProcessNumber() 
-    {
-        return routeProcessNumber;
-    }
-
-    public void setCurrentProcessNumber(BigDecimal currentProcessNumber) 
-    {
-        this.currentProcessNumber = currentProcessNumber;
-    }
-
-    public BigDecimal getCurrentProcessNumber() 
-    {
-        return currentProcessNumber;
-    }
-
-    public void setProductionQuantity(BigDecimal productionQuantity)
-    {
-        this.productionQuantity = productionQuantity;
-    }
-
-    public BigDecimal getProductionQuantity()
-    {
-        return productionQuantity;
-    }
-
-    public void setStandardTime(BigDecimal standardTime)
-    {
-        this.standardTime = standardTime;
-    }
-
-    public BigDecimal getStandardTime()
-    {
-        return standardTime;
-    }
-
-    public void setProcessTotalTime(BigDecimal processTotalTime)
-    {
-        this.processTotalTime = processTotalTime;
-    }
-
-    public BigDecimal getProcessTotalTime()
-    {
-        return processTotalTime;
-    }
-
-    public void setProcessPlanEndDay(Date processPlanEndDay)
-    {
-        this.processPlanEndDay = processPlanEndDay;
-    }
-
-    public Date getProcessPlanEndDay()
-    {
-        return processPlanEndDay;
-    }
-
-    public void setComputePlanEndDay(Date computePlanEndDay)
-    {
-        this.computePlanEndDay = computePlanEndDay;
-    }
-
-    public Date getComputePlanEndDay()
-    {
-        return computePlanEndDay;
-    }
-
-    public void setDesignTimes(Long designTimes) 
-    {
-        this.designTimes = designTimes;
-    }
-
-    public Long getDesignTimes() 
-    {
-        return designTimes;
-    }
-
-    public void setBatchNumber(String batchNumber) 
-    {
-        this.batchNumber = batchNumber;
-    }
-
-    public String getBatchNumber() 
-    {
-        return batchNumber;
-    }
-    public Date getProcessPlanStartDay() {
-        return processPlanStartDay;
-    }
-
-    public void setProcessPlanStartDay(Date processPlanStartDay) {
-        this.processPlanStartDay = processPlanStartDay;
-    }
-
-    public Date getOrderPlanEndDay() {
-        return orderPlanEndDay;
-    }
-
-    public void setOrderPlanEndDay(Date orderPlanEndDay) {
-        this.orderPlanEndDay = orderPlanEndDay;
-    }
-    public void setDelFlag(String delFlag) 
-    {
-        this.delFlag = delFlag;
-    }
-
-    public String getDelFlag() 
-    {
-        return delFlag;
-    }
-    public Boolean getWarning() {
-        return warning;
-    }
-
-    public void setWarning(Boolean warning) {
-        this.warning = warning;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("workOrderNo", getWorkOrderNo())
-            .append("processName", getProcessName())
-            .append("num", getNum())
-            .append("routeProcessNumber", getRouteProcessNumber())
-            .append("currentProcessNumber", getCurrentProcessNumber())
-            .append("productionQuantity", getProductionQuantity())
-            .append("standardTime", getStandardTime())
-            .append("processTotalTime", getProcessTotalTime())
-            .append("processPlanEndDay", getProcessPlanEndDay())
-            .append("computePlanEndDay", getComputePlanEndDay())
-            .append("designTimes", getDesignTimes())
-            .append("batchNumber", getBatchNumber())
-            .append("createBy", getCreateBy())
-            .append("delFlag", getDelFlag())
-            .toString();
-    }
+//    public void setId(String id)
+//    {
+//        this.id = id;
+//    }
+//
+//    public String getId()
+//    {
+//        return id;
+//    }
+//
+//    public void setWorkOrderNo(String workOrderNo)
+//    {
+//        this.workOrderNo = workOrderNo;
+//    }
+//
+//    public String getWorkOrderNo()
+//    {
+//        return workOrderNo;
+//    }
+//
+//    public void setProcessName(String processName)
+//    {
+//        this.processName = processName;
+//    }
+//
+//    public String getProcessName()
+//    {
+//        return processName;
+//    }
+//
+//    public void setNum(Integer num)
+//    {
+//        this.num = num;
+//    }
+//
+//    public Integer getNum()
+//    {
+//        return num;
+//    }
+//
+//    public void setRouteProcessNumber(BigDecimal routeProcessNumber)
+//    {
+//        this.routeProcessNumber = routeProcessNumber;
+//    }
+//
+//    public BigDecimal getRouteProcessNumber()
+//    {
+//        return routeProcessNumber;
+//    }
+//
+//    public void setCurrentProcessNumber(BigDecimal currentProcessNumber)
+//    {
+//        this.currentProcessNumber = currentProcessNumber;
+//    }
+//
+//    public BigDecimal getCurrentProcessNumber()
+//    {
+//        return currentProcessNumber;
+//    }
+//
+//    public void setProductionQuantity(BigDecimal productionQuantity)
+//    {
+//        this.productionQuantity = productionQuantity;
+//    }
+//
+//    public BigDecimal getProductionQuantity()
+//    {
+//        return productionQuantity;
+//    }
+//
+//    public void setStandardTime(BigDecimal standardTime)
+//    {
+//        this.standardTime = standardTime;
+//    }
+//
+//    public BigDecimal getStandardTime()
+//    {
+//        return standardTime;
+//    }
+//
+//    public void setProcessTotalTime(BigDecimal processTotalTime)
+//    {
+//        this.processTotalTime = processTotalTime;
+//    }
+//
+//    public BigDecimal getProcessTotalTime()
+//    {
+//        return processTotalTime;
+//    }
+//
+//    public void setProcessPlanEndDay(Date processPlanEndDay)
+//    {
+//        this.processPlanEndDay = processPlanEndDay;
+//    }
+//
+//    public Date getProcessPlanEndDay()
+//    {
+//        return processPlanEndDay;
+//    }
+//
+//    public void setComputePlanEndDay(Date computePlanEndDay)
+//    {
+//        this.computePlanEndDay = computePlanEndDay;
+//    }
+//
+//    public Date getComputePlanEndDay()
+//    {
+//        return computePlanEndDay;
+//    }
+//
+//    public void setDesignTimes(Long designTimes)
+//    {
+//        this.designTimes = designTimes;
+//    }
+//
+//    public Long getDesignTimes()
+//    {
+//        return designTimes;
+//    }
+//
+//    public void setBatchNumber(String batchNumber)
+//    {
+//        this.batchNumber = batchNumber;
+//    }
+//
+//    public String getBatchNumber()
+//    {
+//        return batchNumber;
+//    }
+//    public Date getProcessPlanStartDay() {
+//        return processPlanStartDay;
+//    }
+//
+//    public void setProcessPlanStartDay(Date processPlanStartDay) {
+//        this.processPlanStartDay = processPlanStartDay;
+//    }
+//
+//    public Date getOrderPlanEndDay() {
+//        return orderPlanEndDay;
+//    }
+//
+//    public void setOrderPlanEndDay(Date orderPlanEndDay) {
+//        this.orderPlanEndDay = orderPlanEndDay;
+//    }
+//    public void setDelFlag(String delFlag)
+//    {
+//        this.delFlag = delFlag;
+//    }
+//
+//    public String getDelFlag()
+//    {
+//        return delFlag;
+//    }
+//    public Boolean getWarning() {
+//        return warning;
+//    }
+//
+//    public void setWarning(Boolean warning) {
+//        this.warning = warning;
+//    }
+//
+//    public String getExceptionStatus() {
+//        return exceptionStatus;
+//    }
+//
+//    public void setExceptionStatus(String exceptionStatus) {
+//        this.exceptionStatus = exceptionStatus;
+//    }
+//
+//    @Override
+//    public String toString() {
+//        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+//            .append("id", getId())
+//            .append("workOrderNo", getWorkOrderNo())
+//            .append("processName", getProcessName())
+//            .append("num", getNum())
+//            .append("routeProcessNumber", getRouteProcessNumber())
+//            .append("currentProcessNumber", getCurrentProcessNumber())
+//            .append("productionQuantity", getProductionQuantity())
+//            .append("standardTime", getStandardTime())
+//            .append("processTotalTime", getProcessTotalTime())
+//            .append("processPlanEndDay", getProcessPlanEndDay())
+//            .append("computePlanEndDay", getComputePlanEndDay())
+//            .append("designTimes", getDesignTimes())
+//            .append("batchNumber", getBatchNumber())
+//            .append("createBy", getCreateBy())
+//            .append("delFlag", getDelFlag())
+//            .toString();
+//    }
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java
index 315a4cd..379ccec 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java
@@ -43,7 +43,7 @@
     private String bomLineCode;
 
     /** BOM浣庨樁鐮� */
-    @Excel(name = "BOM浣庨樁鐮�")
+//    @Excel(name = "浣庨樁鐮�")
     private Long bomLineLevel;
 
     /** BOM鐢ㄩ噺 */
@@ -68,17 +68,17 @@
 
     /** 璁″垝寮�宸ユ棩 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "璁″垝寮�宸ユ棩")
+    @Excel(name = "璁″垝寮�宸ユ棩", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date startDate;
 
     /** 璁″垝瀹屽伐鏃� */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "璁″垝瀹屽伐鏃�")
+    @Excel(name = "璁″垝瀹屽伐鏃�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date completeDate;
 
     /** 闇�姹傛棩鏈� */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "闇�姹傛棩鏈�")
+    @Excel(name = "闇�姹傛棩鏈�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date demandDate;
 
     /** 閫傜敤宸ュ巶 */
@@ -90,11 +90,11 @@
     private String productionBase;
 
     /** 鍖归厤鐘舵�� */
-    @Excel(name = "鍖归厤鐘舵��")
+//    @Excel(name = "鍖归厤鐘舵��")
     private String matchState;
 
     /** 鍖归厤妯″紡 */
-    @Excel(name = "鍖归厤妯″紡")
+//    @Excel(name = "鍖归厤妯″紡")
     private String matchMode;
 
     /** 鏈尮閰嶉渶姹傛暟閲� */
@@ -107,6 +107,7 @@
     private Date suggestedCompletionDate;
 
     /** 寤惰繜椋庨櫓鏍囪瘑 */
+    @Excel(name = "寤惰繜椋庨櫓鏍囪瘑")
     private String hasDelayRisk;
 
     private String batchNumber;
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsResourceDateStat.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsResourceDateStat.java
index b2c00e9..c5fda2d 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsResourceDateStat.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsResourceDateStat.java
@@ -57,10 +57,19 @@
         this.resourceGroupName = resourceGroupName;
     }
 
+    public String getPlant() {
+        return plant;
+    }
+
+    public void setPlant(String plant) {
+        this.plant = plant;
+    }
+
     private LocalDate planDay;
     private String resourceName;
     private BigDecimal requireTimes;
     private BigDecimal designTimes;
     private BigDecimal capacityLoad;
     private String resourceGroupName;
+    private String plant;
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java
index 7064fa4..907b4ff 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java
@@ -55,7 +55,40 @@
     @Excel(name = "閫傜敤宸ュ簭")
     private String applicableProcess;
 
-    public void setId(Long id) 
+    /** 鑺傚亣鏃� */
+    private Object holidays;
+
+    /** 閫傜敤宸ュ巶/杞﹂棿/宸ュ簭鏁扮粍 */
+    private Object applicable;
+
+    /** 閫傜敤宸ュ巶/杞﹂棿/宸ュ簭鏁扮粍 鍥炴樉 */
+    private String applicableTranslate;
+
+    public String getApplicableTranslate() {
+        return applicableTranslate;
+    }
+
+    public void setApplicableTranslate(String applicableTranslate) {
+        this.applicableTranslate = applicableTranslate;
+    }
+
+    public Object getHolidays() {
+        return holidays;
+    }
+
+    public void setHolidays(Object holidays) {
+        this.holidays = holidays;
+    }
+
+    public Object getApplicable() {
+        return applicable;
+    }
+
+    public void setApplicable(Object applicable) {
+        this.applicable = applicable;
+    }
+
+    public void setId(Long id)
     {
         this.id = id;
     }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java
index 038becc..f1ae70d 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java
@@ -23,7 +23,7 @@
     private String documentNumber;
 
     /** 瀛愪欢鏂欏彿 */
-    @Excel(name = "瀛愪欢鏂欏彿", sort = 2)
+    @Excel(name = "鏂欏彿", sort = 2)
     private String itemNumber;
 
     /** 鐢熶骇鏁伴噺 */
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWorkCalendarMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWorkCalendarMapper.java
index 1d1e91a..4123a3e 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWorkCalendarMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsWorkCalendarMapper.java
@@ -59,4 +59,12 @@
      * @return 缁撴灉
      */
     public int deleteApsWorkCalendarByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎鏃ュ巻绠$悊
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteApsWorkCalendar(ApsWorkCalendar apsWorkCalendar);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireService.java
index 51b05ea..5806541 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireService.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateStandardRequireService.java
@@ -68,6 +68,6 @@
      */
     public List<ApsPlateStandardRequire> selectPlateSupplyGapList(ApsPlateStandardRequire apsPlateStandardRequire);
 
-    @Transactional
+
     void generatorPlan();
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java
index 95d639f..fe13d24 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java
@@ -75,4 +75,11 @@
      * @return JSONArray
      */
     JSONArray selectCalendarView(ApsWorkCalendar apsWorkCalendar);
+
+    /**
+     * 鍒犻櫎鏃ュ巻鏁版嵁
+     * @param apsWorkCalendar
+     * @return
+     */
+    public int deleteApsWorkCalendar(ApsWorkCalendar apsWorkCalendar);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
index 3a71bcf..8bbf341 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
@@ -32,6 +32,7 @@
 import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static java.util.stream.Collectors.groupingBy;
 
@@ -251,8 +252,7 @@
         return true;
     }
 
-    @Override
-    public JSONObject getCapacityPlanData(ApsGasPipingRouteStat apsGasPipingRouteStat) {
+    public JSONObject getCapacityPlanDataBackup(ApsGasPipingRouteStat apsGasPipingRouteStat) {
         JSONObject result = new JSONObject();
         YearMonth yearMonth = YearMonth.parse(apsGasPipingRouteStat.getSearchEndDate());
         int daysInMonth = yearMonth.lengthOfMonth();
@@ -422,6 +422,291 @@
     }
 
     @Override
+    public JSONObject getCapacityPlanData(ApsGasPipingRouteStat apsGasPipingRouteStat) {
+        JSONObject result = new JSONObject();
+        YearMonth yearMonth = YearMonth.parse(apsGasPipingRouteStat.getSearchEndDate());
+        int daysInMonth = yearMonth.lengthOfMonth();
+        LinkedHashSet<String> startPlanTimeSet = new LinkedHashSet<>();
+        //宸ュ簭鍒嗙粍缁熻
+        LinkedHashMap<String, List<ApsResourceDateStat>> processMap = new LinkedHashMap<>();
+        List<HashMap<String, List<ApsResourceDateStat>>> processList = new ArrayList<>();
+        try {
+            //鑾峰彇鏍囧噯宸ュ簭鍚嶇О
+            ApsStandardProcess apsStandardProcess = new ApsStandardProcess();
+            apsStandardProcess.setMajor(apsGasPipingRouteStat.getMajor().equals("gas")?"姘旀煖":"绠¤矾");
+            List<ApsStandardProcess> apsStandardProcessList = apsStandardProcessService.selectApsStandardProcessList(apsStandardProcess);
+            apsStandardProcessList.sort((a, b)->a.getProcessName().compareTo(b.getProcessName()));
+            for(ApsStandardProcess temp:apsStandardProcessList){
+                processMap.put(temp.getProcessName(), new ArrayList<ApsResourceDateStat>());
+            }
+            //鑾峰彇宸ュ簭璁″垝浜ц兘鏁版嵁
+            HashMap<String, ApsGasPipelineCapacityPlan> apsGasPipingPlanMap = new HashMap<>();
+            ApsGasPipelineCapacityPlan searchCapacityPlan = new ApsGasPipelineCapacityPlan();
+            searchCapacityPlan.setMajor(apsGasPipingRouteStat.getMajor().equals("gas")?"姘旀煖":"绠¤矾");
+            if("day".equals(apsGasPipingRouteStat.getSearchType())){
+                searchCapacityPlan.setYear(yearMonth.getYear()+"");
+                searchCapacityPlan.setMonth(yearMonth.getMonthValue()+"");
+                for(int i=1;i<=daysInMonth;i++){
+                    startPlanTimeSet.add(yearMonth +"-"+ (i<10?"0"+i:i));
+                }
+            }else if("month".equals(apsGasPipingRouteStat.getSearchType())){
+                searchCapacityPlan.setYear(yearMonth.getYear()+"");
+                YearMonth start = YearMonth.of(Integer.parseInt(apsGasPipingRouteStat.getSearchStartDate().split("-")[0]), Integer.parseInt(apsGasPipingRouteStat.getSearchStartDate().split("-")[1]));
+                YearMonth end = YearMonth.of(Integer.parseInt(apsGasPipingRouteStat.getSearchEndDate().split("-")[0]), Integer.parseInt(apsGasPipingRouteStat.getSearchEndDate().split("-")[1]));
+                List<String> yearMonths = getYearMonthsInRange(start, end);
+                startPlanTimeSet.addAll(yearMonths);
+            }
+            List<ApsGasPipelineCapacityPlan> apsGasPipelineCapacityPlanList = apsGasPipelineCapacityPlanMapper.selectApsGasPipelineCapacityPlanList(searchCapacityPlan);
+            apsGasPipelineCapacityPlanList.forEach(apsGasPipelineCapacityPlan -> {
+                String key = apsGasPipelineCapacityPlan.getProcessName() + "-" + apsGasPipelineCapacityPlan.getOrgCode() + "-" + apsGasPipelineCapacityPlan.getYear() + "-" + (Integer.parseInt(apsGasPipelineCapacityPlan.getMonth())<10?"0"+apsGasPipelineCapacityPlan.getMonth():apsGasPipelineCapacityPlan.getMonth());
+                apsGasPipingPlanMap.put(key, apsGasPipelineCapacityPlan);
+            });
+            //璁$畻鏃ヤ骇鑳芥暟鎹�
+            DateTimeFormatter formatter = null;
+            List<ApsGasPipingRouteStat> apsGasPipingRouteStats;
+            SimpleDateFormat simpleDateFormat = null;
+            apsGasPipingRouteStat.setSearchStartDate(apsGasPipingRouteStat.getSearchStartDate()+"-01 00:00:00");
+            apsGasPipingRouteStat.setSearchEndDate(apsGasPipingRouteStat.getSearchEndDate()+"-"+ daysInMonth +" 23:59:59");
+            if("day".equals(apsGasPipingRouteStat.getSearchType())){
+                formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            }else if("month".equals(apsGasPipingRouteStat.getSearchType())){
+                formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                simpleDateFormat = new SimpleDateFormat("yyyy-MM");
+            }
+            ApsGasPipingRouteStat queryStatParam = new ApsGasPipingRouteStat();
+            BeanUtils.copyProperties(apsGasPipingRouteStat,queryStatParam);
+            queryStatParam.setMajor("");
+            apsGasPipingRouteStats = apsGasPipingRouteStatMapper.selectApsGasPipingRouteStatList(queryStatParam);
+            //鏍规嵁寮�宸ユ棩杩涜鍗囧簭鎺掑簭
+            apsGasPipingRouteStats.sort((a, b)->a.getProcessPlanStartDay().compareTo(b.getProcessPlanStartDay()));
+            //宸ュ簭寮�宸ユ棩鏈�
+            String planStartDate = "";
+            //缁熻鎵�鏈夊伐搴忓搴旂殑寮�宸ユ椂闂�
+            for (ApsGasPipingRouteStat apsGasPipingRouteStatTemp : apsGasPipingRouteStats) {
+                if(processMap.containsKey(apsGasPipingRouteStatTemp.getProcessName())){
+                    planStartDate = simpleDateFormat.format(apsGasPipingRouteStatTemp.getProcessPlanStartDay());
+                    if("month".equals(apsGasPipingRouteStat.getSearchType())){
+                        planStartDate = planStartDate+"-01";
+                    }
+                    ApsResourceDateStat apsResourceDateStat = new ApsResourceDateStat();
+                    apsResourceDateStat.setPlanDay(LocalDate.parse(planStartDate, formatter));
+                    apsResourceDateStat.setResourceName(apsGasPipingRouteStatTemp.getProcessName());
+                    apsResourceDateStat.setPlant(apsGasPipingRouteStatTemp.getPlant());
+                    //鏌ヨ姘旀煖绠¤矾浜ц兘瑙勫垝琛�
+                    String capacityKey = apsGasPipingRouteStatTemp.getProcessName() + "-" + apsGasPipingRouteStatTemp.getPlant() + "-" + planStartDate.substring(0, 7);
+                    apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(capacityKey)!=null?apsGasPipingPlanMap.get(capacityKey).getDayProduceAllNum():new BigDecimal(0));
+                    //鏌ヨ鏂欏彿宸ュ簭浜ц兘琛�
+                    apsResourceDateStat.setRequireTimes(apsGasPipingRouteStatTemp.getProcessTotalTime());
+                    if(apsResourceDateStat.getDesignTimes().compareTo(BigDecimal.ZERO)>0){
+                        apsResourceDateStat.setCapacityLoad(apsResourceDateStat.getRequireTimes()
+                                .divide(apsResourceDateStat.getDesignTimes(), 2, RoundingMode.HALF_UP)
+                                .multiply(new BigDecimal(100)));
+                    }else{
+                        apsResourceDateStat.setCapacityLoad(BigDecimal.valueOf(0));
+                    }
+
+                    List<ApsResourceDateStat> apsResourceDateStatList = processMap.get(apsGasPipingRouteStatTemp.getProcessName());
+                    apsResourceDateStatList.add(apsResourceDateStat);
+                    processMap.put(apsGasPipingRouteStatTemp.getProcessName(), apsResourceDateStatList);
+                }
+            }
+            //鑱氬悎姣忛亾宸ュ簭鐨勫紑宸ユ椂闂村拰浜ц兘
+            for (Map.Entry<String, List<ApsResourceDateStat>> entry : processMap.entrySet()) {
+                String processName = entry.getKey();
+                List<ApsResourceDateStat> apsResourceDateStatList = entry.getValue();
+
+                if("day".equals(apsGasPipingRouteStat.getSearchType())) {
+                    // 鎸夊ぉ缁熻鏃朵繚鎸佸師鏈夐�昏緫锛屼笉鎸夊伐鍘傚垎缁�
+                    LinkedHashMap<String, ApsResourceDateStat> dayMap = new LinkedHashMap<>();
+
+                    // 棣栧厛锛屼负鎵�鏈夋棩鏈熷垱寤哄垵濮嬭褰�
+                    for(String date : startPlanTimeSet) {
+                        ApsResourceDateStat initStat = new ApsResourceDateStat();
+                        initStat.setPlanDay(LocalDate.parse(date, formatter));
+                        initStat.setResourceName(processName);
+                        initStat.setResourceGroupName(processName);
+                        initStat.setRequireTimes(new BigDecimal(0));
+                        String capacityKey = processName + "-" + date.substring(0,7);
+                        initStat.setDesignTimes(apsGasPipingPlanMap.get(capacityKey)!=null?apsGasPipingPlanMap.get(capacityKey).getDayProduceAllNum():new BigDecimal(0));
+                        initStat.setCapacityLoad(new BigDecimal(0));
+                        dayMap.put(date, initStat);
+                    }
+
+                    // 鐒跺悗澶勭悊瀹為檯鏁版嵁
+                    for (ApsResourceDateStat apsResourceDateStat : apsResourceDateStatList) {
+                        String dateKey = apsResourceDateStat.getPlanDay().toString();
+                        if(dayMap.containsKey(dateKey)){
+                            ApsResourceDateStat apsResourceDateStatTemp = dayMap.get(dateKey);
+                            String capacityKey = processName + "-" + dateKey.substring(0,7);
+                            apsResourceDateStatTemp.setDesignTimes(apsGasPipingPlanMap.get(capacityKey)!=null?apsGasPipingPlanMap.get(capacityKey).getDayProduceAllNum():new BigDecimal(0));
+                            apsResourceDateStatTemp.setRequireTimes(apsResourceDateStatTemp.getRequireTimes().add(apsResourceDateStat.getRequireTimes()));
+                            if(apsResourceDateStatTemp.getDesignTimes().compareTo(BigDecimal.ZERO) > 0){
+                                apsResourceDateStatTemp.setCapacityLoad(apsResourceDateStatTemp.getRequireTimes()
+                                        .divide(apsResourceDateStatTemp.getDesignTimes(), 2, RoundingMode.HALF_UP)
+                                        .multiply(new BigDecimal(100)));
+                            }else{
+                                apsResourceDateStatTemp.setCapacityLoad(new BigDecimal(0));
+                            }
+                            apsResourceDateStatTemp.setResourceGroupName(processName);
+                            apsResourceDateStatTemp.setPlanDay(apsResourceDateStat.getPlanDay());
+                            dayMap.put(dateKey, apsResourceDateStatTemp);
+                        }
+                    }
+
+                    List<ApsResourceDateStat> tempList = new ArrayList<>(dayMap.values());
+                    HashMap<String, List<ApsResourceDateStat>> temp = new HashMap<>();
+                    temp.put(processName, tempList);
+                    processList.add(temp);
+                } else {
+                    // 鎸夋湀缁熻鏃舵墠鎸夊伐鍘傚垎缁�
+                    if (apsResourceDateStatList.isEmpty()) {
+                        // 浠庝骇鑳借鍒掓暟鎹腑鑾峰彇鎵�鏈夌殑宸ュ巶
+                        Set<String> plants = apsGasPipelineCapacityPlanList.stream()
+                                .filter(plan -> plan.getProcessName().equals(processName))
+                                .map(ApsGasPipelineCapacityPlan::getOrgCode)
+                                .filter(orgCode -> orgCode != null && !orgCode.trim().isEmpty())
+                                .collect(Collectors.toSet());
+
+                        // 濡傛灉娌℃湁鎵惧埌浠讳綍鏈夋晥宸ュ巶锛岃烦杩囪繖涓伐搴�
+                        if (plants.isEmpty()) {
+                            continue;
+                        }
+
+                        // 涓烘瘡涓伐鍘傚垱寤虹┖璁板綍
+                        for (String plant : plants) {
+                            LinkedHashMap<String, ApsResourceDateStat> dayMap = new LinkedHashMap<>();
+                            // 涓烘瘡涓湀浠藉垱寤鸿褰�
+                            for(String monthDate : startPlanTimeSet) {
+                                String tempTime = monthDate + "-01";
+                                ApsResourceDateStat apsResourceDateStat = new ApsResourceDateStat();
+                                apsResourceDateStat.setPlanDay(LocalDate.parse(tempTime, formatter));
+                                apsResourceDateStat.setResourceName(processName);
+                                apsResourceDateStat.setResourceGroupName(processName + "-" + plant);
+                                apsResourceDateStat.setPlant(plant);
+                                apsResourceDateStat.setRequireTimes(new BigDecimal(0));
+                                String capacityKey = processName + "-" + plant + "-" + monthDate;
+                                apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(capacityKey)!=null?apsGasPipingPlanMap.get(capacityKey).getMonthProduceAllNum():new BigDecimal(0));
+                                apsResourceDateStat.setCapacityLoad(new BigDecimal(0));
+                                dayMap.put(monthDate, apsResourceDateStat);
+                            }
+                            List<ApsResourceDateStat> tempList = new ArrayList<>(dayMap.values());
+                            HashMap<String, List<ApsResourceDateStat>> temp = new HashMap<>();
+                            temp.put(processName + "-" + plant, tempList);
+                            processList.add(temp);
+                        }
+                    } else {
+                        // 鎸夊伐鍘傚垎缁勶紝骞惰繃婊ゆ帀plant涓簄ull鎴栫┖瀛楃涓茬殑璁板綍
+                        Map<String, List<ApsResourceDateStat>> plantGroups = apsResourceDateStatList.stream()
+                                .filter(stat -> stat.getPlant() != null && !stat.getPlant().trim().isEmpty())
+                                .collect(groupingBy(ApsResourceDateStat::getPlant));
+
+                        // 濡傛灉杩囨护鍚庢病鏈夋湁鏁堢殑宸ュ巶鏁版嵁锛岃烦杩囪繖涓伐搴�
+                        if (plantGroups.isEmpty()) {
+                            continue;
+                        }
+
+                        // 瀵规瘡涓伐鍘傜殑鏁版嵁杩涜澶勭悊
+                        for (Map.Entry<String, List<ApsResourceDateStat>> plantEntry : plantGroups.entrySet()) {
+                            String plant = plantEntry.getKey();
+                            // 鍐嶆纭plant涓嶄负绌�
+                            if (plant == null || plant.trim().isEmpty()) {
+                                continue;
+                            }
+                            List<ApsResourceDateStat> plantStats = plantEntry.getValue();
+                            LinkedHashMap<String, ApsResourceDateStat> dayMap = new LinkedHashMap<>();
+
+                            // 棣栧厛涓烘墍鏈夋湀浠藉垱寤哄垵濮嬭褰�
+                            for(String monthDate : startPlanTimeSet) {
+                                String tempTime = monthDate + "-01";
+                                ApsResourceDateStat initStat = new ApsResourceDateStat();
+                                initStat.setPlanDay(LocalDate.parse(tempTime, formatter));
+                                initStat.setResourceName(processName);
+                                initStat.setResourceGroupName(processName + "-" + plant);
+                                initStat.setPlant(plant);
+                                initStat.setRequireTimes(new BigDecimal(0));
+                                String capacityKey = processName + "-" + plant + "-" + monthDate;
+                                initStat.setDesignTimes(apsGasPipingPlanMap.get(capacityKey)!=null?apsGasPipingPlanMap.get(capacityKey).getMonthProduceAllNum():new BigDecimal(0));
+                                initStat.setCapacityLoad(new BigDecimal(0));
+                                dayMap.put(monthDate, initStat);
+                            }
+
+                            // 鐒跺悗澶勭悊瀹為檯鏁版嵁
+                            for (ApsResourceDateStat stat : plantStats) {
+                                String monthKey = stat.getPlanDay().toString().substring(0, 7);
+                                if (dayMap.containsKey(monthKey)) {
+                                    ApsResourceDateStat existingStat = dayMap.get(monthKey);
+                                    String capacityKey = processName + "-" + plant + "-" + monthKey;
+                                    existingStat.setDesignTimes(apsGasPipingPlanMap.get(capacityKey)!=null?apsGasPipingPlanMap.get(capacityKey).getMonthProduceAllNum():new BigDecimal(0));
+                                    existingStat.setRequireTimes(existingStat.getRequireTimes().add(stat.getRequireTimes()));
+                                    if(existingStat.getDesignTimes().compareTo(BigDecimal.ZERO) > 0){
+                                        existingStat.setCapacityLoad(existingStat.getRequireTimes()
+                                                .divide(existingStat.getDesignTimes(), 2, RoundingMode.HALF_UP)
+                                                .multiply(new BigDecimal(100)));
+                                    }
+                                }
+                            }
+
+                            List<ApsResourceDateStat> tempList = new ArrayList<>(dayMap.values());
+                            HashMap<String, List<ApsResourceDateStat>> temp = new HashMap<>();
+                            temp.put(processName + "_" + plant, tempList);
+                            processList.add(temp);
+                        }
+                    }
+                }
+            }
+            //鎺掑簭鏃堕棿鏍囬
+            List<String> sortedStartPlanTimeList = new ArrayList<>(startPlanTimeSet);
+            Collections.sort(sortedStartPlanTimeList);
+            for (int i=0;i<processList.size();i++){
+                HashMap<String, List<ApsResourceDateStat>> temp = processList.get(i);
+                for (Map.Entry<String, List<ApsResourceDateStat>> entry : temp.entrySet()){
+                    List<ApsResourceDateStat> apsResourceDateStatList = entry.getValue();
+                    String key = entry.getKey();
+                    List<ApsResourceDateStat> crtList = new ArrayList<>();
+                    for(String tempTime:sortedStartPlanTimeList) {
+                        if("month".equals(apsGasPipingRouteStat.getSearchType())){
+                            tempTime += "-01";
+                        }
+                        LocalDate crtDate = LocalDate.parse(tempTime, formatter);
+                        Optional<ApsResourceDateStat> first = apsResourceDateStatList.stream().filter(x -> x.getPlanDay().equals(crtDate)).findFirst();
+                        if (first.isPresent()) {
+                            ApsResourceDateStat apsResourceDateStat = first.get();
+                            crtList.add(apsResourceDateStat);
+                        } else {
+                            ApsResourceDateStat apsResourceDateStat = new ApsResourceDateStat();
+                            apsResourceDateStat.setPlanDay(LocalDate.parse(tempTime, formatter));
+                            String[] keyParts = key.split("-");
+                            String processNamePart = keyParts[0];
+                            String plantPart = keyParts[1];
+                            String capacityKey = processNamePart + "-" + plantPart + "-" + tempTime.substring(0,7);
+                            if ("month".equals(apsGasPipingRouteStat.getSearchType())) {
+                                apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(capacityKey) != null ? apsGasPipingPlanMap.get(capacityKey).getMonthProduceAllNum() : new BigDecimal(0));
+                            } else {
+                                apsResourceDateStat.setDesignTimes(apsGasPipingPlanMap.get(capacityKey) != null ? apsGasPipingPlanMap.get(capacityKey).getDayProduceAllNum() : new BigDecimal(0));
+                            }
+                            apsResourceDateStat.setRequireTimes(new BigDecimal(0));
+                            apsResourceDateStat.setCapacityLoad(new BigDecimal(0));
+                            apsResourceDateStat.setResourceName(processNamePart);
+                            apsResourceDateStat.setResourceGroupName(key);
+                            apsResourceDateStat.setPlant(plantPart);
+                            apsResourceDateStatList.add(apsResourceDateStat);
+                            crtList.add(apsResourceDateStat);
+                        }
+                        temp.put(entry.getKey(), crtList);
+                        processList.set(i, temp);
+                    }
+                }
+            }
+            result.put("planTable", processList);
+            result.put("planTitle", sortedStartPlanTimeList);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    @Override
     public void exportExcel(HttpServletResponse response, ApsGasPipingRouteStat apsGasPipingRouteStat) {
         SXSSFWorkbook wb = new SXSSFWorkbook(500);
         wb.createSheet();
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
index 437569f..2ab9146 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
@@ -175,7 +175,7 @@
         String batchNum= requireBatchService.getNewBatchNumber();
         /*鑾峰彇閽i噾涓诲崟淇℃伅*/
         List<ApsPlatePlan> mainPlans = platePlanMapper.selectPlatePlanByPlantMajor(plantCode,mainOrderType);
-        Hashtable<String, ApsMaterialStorageManagement> usedStorage = new Hashtable<>();
+        Hashtable<String, BigDecimal> usedStorage = new Hashtable<>();
         log.info("寮�濮嬬敓鎴愰渶姹傦細");
         for (ApsPlatePlan mainPlan : mainPlans) {
             String itemNumber = mainPlan.getItemNumber();
@@ -228,6 +228,10 @@
             }*/
 
         }
+        usedStorage.forEach((key,value)->{
+            log.info("鏂欏彿锛�"+key+"锛屽簱瀛橈細"+value);
+        });
+
     }
 
     /**
@@ -251,7 +255,7 @@
                                 List<ApsPlateStandardRequire> allRequires,
                                 Long level,List<ApsPlateStandardRequireBomStockDetail> stockDetailsList,
                                 List<ApsPlateStandardRequireBomOrderDetail> orderDetailsList,
-                                 Hashtable<String, ApsMaterialStorageManagement> usedStorage
+                                 Hashtable<String, BigDecimal> usedStorage
     ) {
         /*鏋勫缓闇�姹備俊鎭�*/
         ApsPlateStandardRequire require = new ApsPlateStandardRequire();
@@ -316,7 +320,7 @@
                         , afterStockAmount, require.getId(), stockDetailsList
                 );
                 /*鏇存柊鍐呭瓨涓殑搴撳瓨浣跨敤淇℃伅*/
-               // usedStorage.put(itemCode, storage);
+               usedStorage.put(itemCode, afterStockAmount);
             }
         }
         /*鏈尮閰嶆暟閲忥紝榛樿涓哄噣闇�姹�*/
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java
index 1137c2b..51c0189 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java
@@ -158,33 +158,33 @@
             List<ApsWorkCalendar> list = apsWorkCalendarMapper.selectApsWorkCalendarList(apsWorkCalendar);
             for (ApsWorkCalendar apsWorkCalendarTemp : list) {
                 //宸ヤ綔鏃�
-                if("1".equals(apsWorkCalendarTemp.getType())){
-                    //鑾峰彇鏃ュ巻瑙勫垯
-                    org.postgresql.util.PGobject pgObject = (org.postgresql.util.PGobject) apsWorkCalendarTemp.getContent();
-                    JSONArray weekdays = (JSON.parseObject(pgObject.getValue())).getJSONArray("weekdays");
-                    HashMap<String, String> weekdaysMap = new HashMap<>();
-                    for (int i = 0; i < weekdays.size(); i++) {
-                        weekdaysMap.put(weekdays.getJSONObject(i).getString("day"), weekdays.getJSONObject(i).getString("work"));
-                    }
-                    //鏍规嵁effectiveDate鍜宔xpiringDate绠楀嚭鏃ユ湡鑼冨洿鍐呯殑姣忎竴澶�
-                    List<LocalDate> datesTemp = getDatesBetween(apsWorkCalendarTemp.getEffectiveDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), apsWorkCalendarTemp.getExpiringDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
-                    for (LocalDate dateTemp: datesTemp) {
-                        if(baseCalendar.containsKey(dateTemp+"")){
-                            if ("y".equals(weekdaysMap.get(dateTemp.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH)))) {
-                                baseCalendar.put(dateTemp+"", "宸ヤ綔鏃�");
-                            } else if("n".equals(weekdaysMap.get(dateTemp.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH)))) {
-                                baseCalendar.put(dateTemp+"", "浼戞伅鏃�");
-                            }
+                org.postgresql.util.PGobject pgObjectWeekdays = (org.postgresql.util.PGobject) apsWorkCalendarTemp.getContent();
+                JSONArray weekdays = (JSON.parseObject(pgObjectWeekdays.getValue())).getJSONArray("weekdays");
+                HashMap<String, String> weekdaysMap = new HashMap<>();
+                for (int i = 0; i < weekdays.size(); i++) {
+                    weekdaysMap.put(weekdays.getJSONObject(i).getString("day"), weekdays.getJSONObject(i).getString("work"));
+                }
+                List<LocalDate> datesTempWeekdays = getDatesBetween(apsWorkCalendarTemp.getEffectiveDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), apsWorkCalendarTemp.getExpiringDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                for (LocalDate dateTemp: datesTempWeekdays) {
+                    if(baseCalendar.containsKey(dateTemp+"")){
+                        if ("y".equals(weekdaysMap.get(dateTemp.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH)))) {
+                            baseCalendar.put(dateTemp+"", "宸ヤ綔鏃�");
+                        } else if("n".equals(weekdaysMap.get(dateTemp.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH)))) {
+                            baseCalendar.put(dateTemp+"", "浼戞伅鏃�");
                         }
                     }
-                }else if("2".equals(apsWorkCalendarTemp.getType())){
-                    //浼戞伅鏃�
-                    org.postgresql.util.PGobject pgObject = (org.postgresql.util.PGobject) apsWorkCalendarTemp.getContent();
-                    JSONObject holidays = (JSON.parseObject(pgObject.getValue())).getJSONObject("holidays");
-                    List<LocalDate> datesTemp = getDatesBetween(holidays.getObject("startdate", LocalDate.class), holidays.getObject("enddate", LocalDate.class));
-                    for (LocalDate dateTemp: datesTemp) {
-                        if(baseCalendar.containsKey(dateTemp+"")){
-                            baseCalendar.put(dateTemp+"", "鑺傚亣鏃�");
+                }
+                //浼戞伅鏃�
+                org.postgresql.util.PGobject pgObjectHolidays = (org.postgresql.util.PGobject) apsWorkCalendarTemp.getHolidays();
+                if(pgObjectHolidays!=null){
+                    JSONArray holidays = (JSON.parseObject(pgObjectHolidays.getValue())).getJSONArray("holidays");
+                    for (int i = 0; i < holidays.size(); i++){
+                        JSONObject h = holidays.getJSONObject(i);
+                        List<LocalDate> datesTempHolidays = getDatesBetween(h.getObject("startdate", LocalDate.class), h.getObject("enddate", LocalDate.class));
+                        for (LocalDate dateTemp: datesTempHolidays) {
+                            if(baseCalendar.containsKey(dateTemp+"")){
+                                baseCalendar.put(dateTemp+"", "鑺傚亣鏃�");
+                            }
                         }
                     }
                 }
@@ -202,6 +202,11 @@
         return res;
     }
 
+    @Override
+    public int deleteApsWorkCalendar(ApsWorkCalendar apsWorkCalendar){
+        return apsWorkCalendarMapper.deleteApsWorkCalendar(apsWorkCalendar);
+    }
+
     private List<LocalDate> getCalendarData(int year, int month) {
         // 鑾峰彇4鏈�1鍙风殑褰撳懆鐨勫懆鏃�
         LocalDate startDate = LocalDate.of(year, month, 1)
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml
index fe78db3..aaa2a8e 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsBomHeaderMapper">
     
-    <resultMap type="ApsBomHeader" id="ApsBomHeaderResult">
+    <resultMap type="com.aps.core.domain.ApsBomHeader" id="ApsBomHeaderResult">
         <result property="id"    column="id"    />
         <result property="bomHeaderId"    column="bom_header_id"    />
         <result property="itemCode"    column="item_code"    />
@@ -25,7 +25,7 @@
         from aps_bom_header
     </sql>
 
-    <select id="selectApsBomHeaderList" parameterType="ApsBomHeader" resultMap="ApsBomHeaderResult">
+    <select id="selectApsBomHeaderList" parameterType="com.aps.core.domain.ApsBomHeader" resultMap="ApsBomHeaderResult">
         <include refid="selectApsBomHeaderVo"/>
         <where>  
             <if test="bomHeaderId != null  and bomHeaderId != ''"> and bom_header_id = #{bomHeaderId}</if>
@@ -42,7 +42,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsBomHeader" parameterType="ApsBomHeader">
+    <insert id="insertApsBomHeader" parameterType="com.aps.core.domain.ApsBomHeader">
         insert into aps_bom_header
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -74,7 +74,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsBomHeader" parameterType="ApsBomHeader">
+    <update id="updateApsBomHeader" parameterType="com.aps.core.domain.ApsBomHeader">
         update aps_bom_header
         <trim prefix="SET" suffixOverrides=",">
             <if test="bomHeaderId != null">bom_header_id = #{bomHeaderId},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml
index a25b782..2cac72f 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsBomMapper">
     
-    <resultMap type="ApsBom" id="ApsBomResult">
+    <resultMap type="com.aps.core.domain.ApsBom" id="ApsBomResult">
         <result property="id"    column="id"    />
         <result property="bomLineId"    column="bom_line_id"    />
         <result property="bomHeaderId"    column="bom_header_id"    />
@@ -34,7 +34,7 @@
         from aps_bom_line
     </sql>
 
-    <select id="selectApsBomList" parameterType="ApsBom" resultMap="ApsBomResult">
+    <select id="selectApsBomList" parameterType="com.aps.core.domain.ApsBom" resultMap="ApsBomResult">
         <include refid="selectApsBomVo"/>
         <where>  
             <if test="bomLineId != null  and bomLineId != ''"> and bom_line_id = #{bomLineId}</if>
@@ -55,7 +55,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsBom" parameterType="ApsBom" useGeneratedKeys="true" keyProperty="id">
+    <insert id="insertApsBom" parameterType="com.aps.core.domain.ApsBom" useGeneratedKeys="true" keyProperty="id">
         insert into aps_bom_line
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="bomLineId != null">bom_line_id,</if>
@@ -101,7 +101,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsBom" parameterType="ApsBom">
+    <update id="updateApsBom" parameterType="com.aps.core.domain.ApsBom">
         update aps_bom_line
         <trim prefix="SET" suffixOverrides=",">
             <if test="bomLineId != null">bom_line_id = #{bomLineId},</if>
@@ -138,7 +138,7 @@
         </foreach>
     </delete>
 
-    <resultMap type="ApsBom" id="ApsBomLineResult">
+    <resultMap type="com.aps.core.domain.ApsBom" id="ApsBomLineResult">
         <result property="id"    column="id"    />
         <result property="bomLineId"    column="bom_line_id"    />
         <result property="itemCode"    column="item_code"    />
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasMaterialUsageMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasMaterialUsageMapper.xml
index 277d982..10ae43f 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasMaterialUsageMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasMaterialUsageMapper.xml
@@ -3,7 +3,7 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsGasMaterialUsageMapper">
-    <resultMap type="ApsGasMaterialUsage" id="ApsGasMaterialUsageResult">
+    <resultMap type="com.aps.core.domain.ApsGasMaterialUsage" id="ApsGasMaterialUsageResult">
         <result property="id"    column="id"    />
         <result property="itemNumber"    column="item_number"    />
         <result property="drawingNo"    column="drawing_no"    />
@@ -20,7 +20,7 @@
         select id, item_number, drawing_no, version, process_name, standard_amount, org_code, create_by, create_time, del_flag from aps_gas_material_usage
     </sql>
 
-    <select id="selectApsGasMaterialUsageList" parameterType="ApsGasMaterialUsage" resultMap="ApsGasMaterialUsageResult">
+    <select id="selectApsGasMaterialUsageList" parameterType="com.aps.core.domain.ApsGasMaterialUsage" resultMap="ApsGasMaterialUsageResult">
         <include refid="selectApsGasMaterialUsageVo"/>
         <where>
             <if test="itemNumber != null  and itemNumber != ''"> and item_number = #{itemNumber}</if>
@@ -38,7 +38,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsGasMaterialUsage" parameterType="ApsGasMaterialUsage" useGeneratedKeys="true" keyProperty="id">
+    <insert id="insertApsGasMaterialUsage" parameterType="com.aps.core.domain.ApsGasMaterialUsage" useGeneratedKeys="true" keyProperty="id">
         insert into aps_gas_material_usage
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="itemNumber != null">item_number,</if>
@@ -64,7 +64,7 @@
         </trim>
     </insert>
 
-    <update id="updateApsGasMaterialUsage" parameterType="ApsGasMaterialUsage">
+    <update id="updateApsGasMaterialUsage" parameterType="com.aps.core.domain.ApsGasMaterialUsage">
         update aps_gas_material_usage
         <trim prefix="SET" suffixOverrides=",">
             <if test="itemNumber != null">item_number = #{itemNumber},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml
index 45731fd..329ee58 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsGasPipelineCapacityPlanMapper">
     
-    <resultMap type="ApsGasPipelineCapacityPlan" id="ApsGasPipelineCapacityPlanResult">
+    <resultMap type="com.aps.core.domain.ApsGasPipelineCapacityPlan" id="ApsGasPipelineCapacityPlanResult">
         <result property="id"    column="id"    />
         <result property="processName"    column="process_name"    />
         <result property="year"    column="year"    />
@@ -29,7 +29,7 @@
         select id, process_name, year, month, major, day_produce_type, day_produce_num, day_produce_unit, personnel_number, day_produce_all_num, days, month_produce_all_num, remark, create_by, create_time, update_by, update_time, org_code from aps_gas_pipeline_capacity_plan
     </sql>
 
-    <select id="selectApsGasPipelineCapacityPlanList" parameterType="ApsGasPipelineCapacityPlan" resultMap="ApsGasPipelineCapacityPlanResult">
+    <select id="selectApsGasPipelineCapacityPlanList" parameterType="com.aps.core.domain.ApsGasPipelineCapacityPlan" resultMap="ApsGasPipelineCapacityPlanResult">
         <include refid="selectApsGasPipelineCapacityPlanVo"/>
         <where>  
             <if test="processName != null  and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
@@ -55,7 +55,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsGasPipelineCapacityPlan" parameterType="ApsGasPipelineCapacityPlan">
+    <insert id="insertApsGasPipelineCapacityPlan" parameterType="com.aps.core.domain.ApsGasPipelineCapacityPlan">
         insert into aps_gas_pipeline_capacity_plan
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -99,7 +99,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsGasPipelineCapacityPlan" parameterType="ApsGasPipelineCapacityPlan">
+    <update id="updateApsGasPipelineCapacityPlan" parameterType="com.aps.core.domain.ApsGasPipelineCapacityPlan">
         update aps_gas_pipeline_capacity_plan
         <trim prefix="SET" suffixOverrides=",">
             <if test="processName != null">process_name = #{processName},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml
index 2dfe64a..6d57b8e 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsGasPipingPlanMapper">
     
-    <resultMap type="ApsGasPipingPlan" id="ApsGasPipingPlanResult">
+    <resultMap type="com.aps.core.domain.ApsGasPipingPlan" id="ApsGasPipingPlanResult">
         <result property="id"    column="id"    />
         <result property="masterPlanner"    column="master_planner"    />
         <result property="weekDay"    column="week_day"    />
@@ -71,7 +71,7 @@
 <!--        </collection>-->
     </resultMap>
 
-    <resultMap type="ApsGasPipingPlan" id="ApsGasPipingPlanResultWithProcess">
+    <resultMap type="com.aps.core.domain.ApsGasPipingPlan" id="ApsGasPipingPlanResultWithProcess">
         <result property="documentNumber"    column="document_number"    />
         <result property="itemNumber"    column="item_number"    />
         <result property="productionQuantity"    column="production_quantity"    />
@@ -99,7 +99,7 @@
         from aps_gas_piping_plan
     </sql>
 
-    <select id="selectApsGasPipingPlanList" parameterType="ApsGasPipingPlan" resultMap="ApsGasPipingPlanResult">
+    <select id="selectApsGasPipingPlanList" parameterType="com.aps.core.domain.ApsGasPipingPlan" resultMap="ApsGasPipingPlanResult">
         <include refid="selectApsGasPipingPlanVo"/>
         <where>  
             <if test="masterPlanner != null  and masterPlanner != ''"> and master_planner like concat('%', #{masterPlanner}, '%')</if>
@@ -144,7 +144,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsGasPipingPlan" parameterType="ApsGasPipingPlan">
+    <insert id="insertApsGasPipingPlan" parameterType="com.aps.core.domain.ApsGasPipingPlan">
         insert into aps_gas_piping_plan
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null and id != ''">id,</if>
@@ -228,7 +228,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsGasPipingPlan" parameterType="ApsGasPipingPlan">
+    <update id="updateApsGasPipingPlan" parameterType="com.aps.core.domain.ApsGasPipingPlan">
         update aps_gas_piping_plan
         <trim prefix="SET" suffixOverrides=",">
             <if test="masterPlanner != null">master_planner = #{masterPlanner},</if>
@@ -287,7 +287,7 @@
         update  aps_gas_piping_plan  set del_flag='1' where del_flag ='0'
     </update>
 
-    <select id="selectApsGasPipingPlanWithProcess" parameterType="ApsGasPipingPlan" resultMap="ApsGasPipingPlanResultWithProcess">
+    <select id="selectApsGasPipingPlanWithProcess" parameterType="com.aps.core.domain.ApsGasPipingPlan" resultMap="ApsGasPipingPlanResultWithProcess">
         select c.* from (select a.document_number,a.item_number,a.process_number,a.production_quantity,a.plan_type,a.plan_end_day,a.std_op,b.process_name,b.process_number as process_number_sub,b.standard_time,b.process_plan_start_day,b.process_plan_end_day from aps_gas_piping_plan a
            left join aps_process_route b on a.document_number = b.work_order_no
         where a.document_status in ('0','1','2','4') and a.op_status!='瀹屽伐' and b.process_plan_start_day is not null and b.process_name in(select process_name from aps_standard_process where major='姘旀煖' or major='绠¤矾') ORDER BY a.document_number,b.process_number) c GROUP BY c.document_number,c.item_number,c.process_number,c.production_quantity,c.process_name,c.process_number_sub,c.standard_time,c.process_plan_start_day,c.plan_type,c.process_plan_end_day,c.plan_end_day,c.std_op
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanTempMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanTempMapper.xml
index a25f221..dc0c9d7 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanTempMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanTempMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsGasPipingPlanTempMapper">
     
-    <resultMap type="ApsGasPipingPlanTemp" id="ApsGasPipingPlanTempResult">
+    <resultMap type="com.aps.core.domain.ApsGasPipingPlanTemp" id="ApsGasPipingPlanTempResult">
         <result property="id"    column="id"    />
         <result property="masterPlanner"    column="master_planner"    />
         <result property="weekDay"    column="week_day"    />
@@ -47,7 +47,7 @@
         select id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, customer, business_type, document_number, requirement_type, document_status, item_number, drawing_no, version_number, production_quantity, good_products_quantity, process_number, work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, standby_stock, next_process_deparment, is_suspended, is_outsourcing, account, advanced_materials, advanced_document_number, advanced_requirement_day, is_plan_complete, is_stock_complete, has_turnback, has_risk, batch_number from aps_gas_piping_plan_temp
     </sql>
 
-    <select id="selectApsGasPipingPlanTempList" parameterType="ApsGasPipingPlanTemp" resultMap="ApsGasPipingPlanTempResult">
+    <select id="selectApsGasPipingPlanTempList" parameterType="com.aps.core.domain.ApsGasPipingPlanTemp" resultMap="ApsGasPipingPlanTempResult">
         <include refid="selectApsGasPipingPlanTempVo"/>
         <where>  
             <if test="batchNumber != null  and batchNumber != ''"> and batch_number = #{batchNumber}</if>
@@ -60,7 +60,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsGasPipingPlanTemp" parameterType="ApsGasPipingPlanTemp">
+    <insert id="insertApsGasPipingPlanTemp" parameterType="com.aps.core.domain.ApsGasPipingPlanTemp">
         insert into aps_gas_piping_plan_temp
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null and id != ''">id,</if>
@@ -140,7 +140,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsGasPipingPlanTemp" parameterType="ApsGasPipingPlanTemp">
+    <update id="updateApsGasPipingPlanTemp" parameterType="com.aps.core.domain.ApsGasPipingPlanTemp">
         update aps_gas_piping_plan_temp
         <trim prefix="SET" suffixOverrides=",">
             <if test="masterPlanner != null">master_planner = #{masterPlanner},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml
index 16fac43..250e09d 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsGasPipingRouteStatMapper">
     
-    <resultMap type="ApsGasPipingRouteStat" id="ApsGasPipingRouteStatResult">
+    <resultMap type="com.aps.core.domain.ApsGasPipingRouteStat" id="ApsGasPipingRouteStatResult">
         <result property="id"    column="id"    />
         <result property="workOrderNo"    column="work_order_no"    />
         <result property="roadProcessNumber"    column="road_process_number"    />
@@ -38,11 +38,11 @@
                process_plan_start_day, design_times, del_flag, create_by,
                process_name, create_time, item_number, standard_dosage,
                process_total_dosage, design_capacity, major, plan_start_year,
-               plan_start_month, plan_start_day , warning
+               plan_start_month, plan_start_day , warning, plant
         from aps_gas_piping_route_stat
     </sql>
 
-    <select id="selectApsGasPipingRouteStatList" parameterType="ApsGasPipingRouteStat" resultMap="ApsGasPipingRouteStatResult">
+    <select id="selectApsGasPipingRouteStatList" parameterType="com.aps.core.domain.ApsGasPipingRouteStat" resultMap="ApsGasPipingRouteStatResult">
         <include refid="selectApsGasPipingRouteStatVo"/>
         <where>  
             <if test="workOrderNo != null  and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if>
@@ -75,7 +75,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsGasPipingRouteStat" parameterType="ApsGasPipingRouteStat">
+    <insert id="insertApsGasPipingRouteStat" parameterType="com.aps.core.domain.ApsGasPipingRouteStat">
         insert into aps_gas_piping_route_stat
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -133,7 +133,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsGasPipingRouteStat" parameterType="ApsGasPipingRouteStat">
+    <update id="updateApsGasPipingRouteStat" parameterType="com.aps.core.domain.ApsGasPipingRouteStat">
         update aps_gas_piping_route_stat
         <trim prefix="SET" suffixOverrides=",">
             <if test="workOrderNo != null">work_order_no = #{workOrderNo},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialManagementMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialManagementMapper.xml
index 6a5ebe5..7482975 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialManagementMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialManagementMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsMaterialManagementMapper">
     
-    <resultMap type="ApsMaterialManagement" id="ApsMaterialManagementResult">
+    <resultMap type="com.aps.core.domain.ApsMaterialManagement" id="ApsMaterialManagementResult">
         <result property="id"    column="id"    />
         <result property="itemNumber"    column="item_number"    />
         <result property="materialDescription"    column="material_description"    />
@@ -31,7 +31,7 @@
         select id, item_number, material_description, material_status, material_type, professional_affiliation, drawing_no, version_number, advance_production_days, split_batch, self_made, applicable_factories, applicable_workshop, effective_date, expiring_date, integration_date, create_by, create_time, update_by, update_time from aps_material_management
     </sql>
 
-    <select id="selectApsMaterialManagementList" parameterType="ApsMaterialManagement" resultMap="ApsMaterialManagementResult">
+    <select id="selectApsMaterialManagementList" parameterType="com.aps.core.domain.ApsMaterialManagement" resultMap="ApsMaterialManagementResult">
         <include refid="selectApsMaterialManagementVo"/>
         <where>  
             <if test="itemNumber != null "> and item_number = #{itemNumber}</if>
@@ -43,7 +43,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsMaterialManagement" parameterType="ApsMaterialManagement">
+    <insert id="insertApsMaterialManagement" parameterType="com.aps.core.domain.ApsMaterialManagement">
         insert into aps_material_management
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -91,7 +91,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsMaterialManagement" parameterType="ApsMaterialManagement">
+    <update id="updateApsMaterialManagement" parameterType="com.aps.core.domain.ApsMaterialManagement">
         update aps_material_management
         <trim prefix="SET" suffixOverrides=",">
             <if test="itemNumber != null">item_number = #{itemNumber},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml
index fe547a9..e16c809 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialStorageManagementMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsMaterialStorageManagementMapper">
     
-    <resultMap type="ApsMaterialStorageManagement" id="ApsMaterialStorageManagementResult">
+    <resultMap type="com.aps.core.domain.ApsMaterialStorageManagement" id="ApsMaterialStorageManagementResult">
         <result property="id"    column="id"    />
         <result property="itemNumber"    column="item_number"    />
         <result property="num"    column="num"    />
@@ -26,7 +26,7 @@
         from aps_material_storage_management
     </sql>
 
-    <select id="selectApsMaterialStorageManagementList" parameterType="ApsMaterialStorageManagement" resultMap="ApsMaterialStorageManagementResult">
+    <select id="selectApsMaterialStorageManagementList" parameterType="com.aps.core.domain.ApsMaterialStorageManagement" resultMap="ApsMaterialStorageManagementResult">
         <include refid="selectApsMaterialStorageManagementVo"/>
         <where>  
             <if test="itemNumber != null  and itemNumber != ''"> and item_number = #{itemNumber}</if>
@@ -39,7 +39,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsMaterialStorageManagement" parameterType="ApsMaterialStorageManagement">
+    <insert id="insertApsMaterialStorageManagement" parameterType="com.aps.core.domain.ApsMaterialStorageManagement">
         insert into aps_material_storage_management
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -67,7 +67,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsMaterialStorageManagement" parameterType="ApsMaterialStorageManagement">
+    <update id="updateApsMaterialStorageManagement" parameterType="com.aps.core.domain.ApsMaterialStorageManagement">
         update aps_material_storage_management
         <trim prefix="SET" suffixOverrides=",">
             <if test="itemNumber != null">item_number = #{itemNumber},</if>
@@ -93,7 +93,7 @@
             #{id}
         </foreach>
     </delete>
-    <update id="updateMaterialStorageByVersion" parameterType="ApsMaterialStorageManagement">
+    <update id="updateMaterialStorageByVersion" parameterType="com.aps.core.domain.ApsMaterialStorageManagement">
         update aps_material_storage_management
         set remainder_stock=#{remainderStock},version=version+1
         where id=#{id} and version=#{version}
@@ -105,7 +105,7 @@
         where 1=1
     </update>
 
-    <update id="updateRemainderStock" parameterType="ApsMaterialStorageManagement">
+    <update id="updateRemainderStock" parameterType="com.aps.core.domain.ApsMaterialStorageManagement">
         update aps_material_storage_management
         set remainder_stock=#{remainderStock},version=#{version}
         where id=#{id}
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml
index 77781d3..2aef848 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsPartRouteStatMapper">
     
-    <resultMap type="ApsPartRouteStat" id="ApsPartRouteStatResult">
+    <resultMap type="com.aps.core.domain.ApsPartRouteStat" id="ApsPartRouteStatResult">
         <result property="id"    column="id"    />
         <result property="workOrderNo"    column="work_order_no"    />
         <result property="roadProcessNumber"    column="road_process_number"    />
@@ -24,7 +24,7 @@
         select id, work_order_no, road_process_number, current_process_number, production_quantity, standard_time, process_total_time, process_plan_start_day, design_times, del_flag, create_by, batch_number ,resource_group_name from aps_part_route_stat
     </sql>
 
-    <select id="selectApsPartRouteStatList" parameterType="ApsPartRouteStat" resultMap="ApsPartRouteStatResult">
+    <select id="selectApsPartRouteStatList" parameterType="com.aps.core.domain.ApsPartRouteStat" resultMap="ApsPartRouteStatResult">
         <include refid="selectApsPartRouteStatVo"/>
         <where>  
             <if test="workOrderNo != null  and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if>
@@ -44,7 +44,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsPartRouteStat" parameterType="ApsPartRouteStat">
+    <insert id="insertApsPartRouteStat" parameterType="com.aps.core.domain.ApsPartRouteStat">
         insert into aps_part_route_stat
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -78,7 +78,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsPartRouteStat" parameterType="ApsPartRouteStat">
+    <update id="updateApsPartRouteStat" parameterType="com.aps.core.domain.ApsPartRouteStat">
         update aps_part_route_stat
         <trim prefix="SET" suffixOverrides=",">
             <if test="workOrderNo != null">work_order_no = #{workOrderNo},</if>
@@ -128,7 +128,7 @@
             order by rt.work_order_no,process_plan_start_day
     </select>
 
-    <resultMap type="ApsResourceDateStat" id="ApsResourceDateStatResult">
+    <resultMap type="com.aps.core.domain.ApsResourceDateStat" id="ApsResourceDateStatResult">
         <result property="planDay"    column="plan_day"    />
         <result property="resourceName"    column="resource_name"    />
         <result property="requireTimes"    column="require_times"    />
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlantMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlantMapper.xml
index bfb3a43..8d34ca9 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlantMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlantMapper.xml
@@ -19,7 +19,7 @@
         select id, plant_name, plant_code, status, create_by, create_time, update_by, update_time from aps_plant
     </sql>
 
-    <select id="selectApsPlantList" parameterType="ApsPlant" resultMap="ApsPlantResult">
+    <select id="selectApsPlantList" parameterType="com.aps.core.domain.ApsPlant" resultMap="ApsPlantResult">
         <include refid="selectApsPlantVo"/>
         <where>  
             <if test="plantName != null  and plantName != ''"> and plant_name = #{plantName}</if>
@@ -33,7 +33,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsPlant" parameterType="ApsPlant" useGeneratedKeys="true" keyProperty="id">
+    <insert id="insertApsPlant" parameterType="com.aps.core.domain.ApsPlant" useGeneratedKeys="true" keyProperty="id">
         insert into aps_plant
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null  and id != ''" >id,</if>
@@ -57,7 +57,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsPlant" parameterType="ApsPlant">
+    <update id="updateApsPlant" parameterType="com.aps.core.domain.ApsPlant">
         update aps_plant
         <trim prefix="SET" suffixOverrides=",">
             <if test="plantName != null">plant_name = #{plantName},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
index 30ad4ac..f60cecf 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
@@ -49,6 +49,9 @@
         <result property="professionalAffiliation"    column="professional_affiliation"    />
         <result property="requireId"    column="require_id"    />
         <result property="version"    column="version"    />
+        <result property="approveOn" column="approve_on"    />
+        <result property="startWorkDate" column="start_work_date"    />
+        <result property="lowOrderCode" column="low_order_code"    />
     </resultMap>
 
     <sql id="selectApsPlatePlanVo">
@@ -59,7 +62,7 @@
                standby_stock, next_process_deparment, is_suspended, is_outsourcing, account, advanced_materials,
                advanced_document_number, advanced_requirement_day, is_plan_complete, is_stock_complete,
                has_turnback, has_risk, std_op, op_status, next_op_name ,unmatched_quantity,professional_affiliation,
-                   require_id, version,production_base, order_create_time
+                   require_id, version,production_base, order_create_time, approve_on, start_work_date, low_order_code
         from aps_plate_plan
     </sql>
 
@@ -104,6 +107,7 @@
             <if test="stdOp != null "> and std_op = #{stdOp}</if>
             <if test="opStatus != null  and opStatus != ''"> and op_status = #{opStatus}</if>
             <if test="nextOpName != null  and nextOpName != ''"> and next_op_name = #{nextOpName}</if>
+            <if test="lowOrderCode != null  and lowOrderCode != ''"> and low_order_code = #{lowOrderCode}</if>
              and del_flag='0'
         </where>
     </select>
@@ -155,6 +159,7 @@
             <if test="opStatus != null">op_status,</if>
             <if test="nextOpName != null">next_op_name,</if>
             <if test="unmatchedQuantity != null">unmatched_quantity,</if>
+            <if test="lowOrderCode != null">low_order_code,</if>
             create_time,
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -197,6 +202,7 @@
             <if test="opStatus != null">#{opStatus},</if>
             <if test="nextOpName != null">#{nextOpName},</if>
             <if test="unmatchedQuantity != null">#{unmatchedQuantity},</if>
+            <if test="lowOrderCode != null">#{lowOrderCode},</if>
             #{createTime},
          </trim>
     </insert>
@@ -242,6 +248,7 @@
             <if test="opStatus != null"> op_status= #{opStatus},</if>
             <if test="nextOpName != null"> next_op_name= #{nextOpName},</if>
             <if test="unmatchedQuantity != null"> unmatched_quantity = #{unmatchedQuantity},</if>
+            <if test="lowOrderCode != null"> low_order_code = #{lowOrderCode},</if>
         </trim>
         where id = #{id}
     </update>
@@ -271,7 +278,7 @@
 
     <select id="selectPlatePlanByPlantMajor" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
         select  id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,require_id,
-        unmatched_quantity,version, production_base,plan_end_day,order_create_time
+        unmatched_quantity,version, production_base,plan_end_day,order_create_time,low_order_code
         from aps_plate_plan
         <where>
             <if test="plant != null "> and plant = #{plant} </if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanTempMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanTempMapper.xml
index ea3ecbe..1a7b8de 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanTempMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanTempMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsPlatePlanTempMapper">
     
-    <resultMap type="ApsPlatePlanTemp" id="ApsPlatePlanTempResult">
+    <resultMap type="com.aps.core.domain.ApsPlatePlanTemp" id="ApsPlatePlanTempResult">
         <result property="id"    column="id"    />
         <result property="masterPlanner"    column="master_planner"    />
         <result property="weekDay"    column="week_day"    />
@@ -47,7 +47,7 @@
         select id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, customer, business_type, document_number, requirement_type, document_status, item_number, drawing_no, version_number, production_quantity, good_products_quantity, process_number, work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, standby_stock, next_process_deparment, is_suspended, is_outsourcing, account, advanced_materials, advanced_document_number, advanced_requirement_day, is_plan_complete, is_stock_complete, has_turnback, has_risk, batch_number from aps_plate_plan_temp
     </sql>
 
-    <select id="selectApsPlatePlanTempList" parameterType="ApsPlatePlanTemp" resultMap="ApsPlatePlanTempResult">
+    <select id="selectApsPlatePlanTempList" parameterType="com.aps.core.domain.ApsPlatePlanTemp" resultMap="ApsPlatePlanTempResult">
         <include refid="selectApsPlatePlanTempVo"/>
         <where>  
             <if test="nextProcessDeparment != null  and nextProcessDeparment != ''"> and next_process_deparment = #{nextProcessDeparment}</if>
@@ -70,7 +70,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsPlatePlanTemp" parameterType="ApsPlatePlanTemp">
+    <insert id="insertApsPlatePlanTemp" parameterType="com.aps.core.domain.ApsPlatePlanTemp">
         insert into aps_plate_plan_temp
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null and id != ''">id,</if>
@@ -150,7 +150,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsPlatePlanTemp" parameterType="ApsPlatePlanTemp">
+    <update id="updateApsPlatePlanTemp" parameterType="com.aps.core.domain.ApsPlatePlanTemp">
         update aps_plate_plan_temp
         <trim prefix="SET" suffixOverrides=",">
             <if test="masterPlanner != null">master_planner = #{masterPlanner},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessShopStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessShopStatMapper.xml
index f78c192..8951097 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessShopStatMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessShopStatMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsPlateProcessShopStatMapper">
     
-    <resultMap type="ApsPlateProcessShopStat" id="ApsPlateProcessShopStatResult">
+    <resultMap type="com.aps.core.domain.ApsPlateProcessShopStat" id="ApsPlateProcessShopStatResult">
         <result property="id"    column="id"    />
         <result property="docNo"    column="doc_no"    />
         <result property="shopCode"    column="shop_code"    />
@@ -27,7 +27,7 @@
         from aps_plate_process_shop_stat
     </sql>
 
-    <select id="selectApsPlateProcessShopStatList" parameterType="ApsPlateProcessShopStat" resultMap="ApsPlateProcessShopStatResult">
+    <select id="selectApsPlateProcessShopStatList" parameterType="com.aps.core.domain.ApsPlateProcessShopStat" resultMap="ApsPlateProcessShopStatResult">
         <include refid="selectApsPlateProcessShopStatVo"/>
         <where>  
             <if test="docNo != null  and docNo != ''"> and doc_no = #{docNo}</if>
@@ -47,7 +47,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsPlateProcessShopStat" parameterType="ApsPlateProcessShopStat" useGeneratedKeys="true" keyProperty="id">
+    <insert id="insertApsPlateProcessShopStat" parameterType="com.aps.core.domain.ApsPlateProcessShopStat" useGeneratedKeys="true" keyProperty="id">
         insert into aps_plate_process_shop_stat
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="docNo != null">doc_no,</if>
@@ -79,7 +79,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsPlateProcessShopStat" parameterType="ApsPlateProcessShopStat">
+    <update id="updateApsPlateProcessShopStat" parameterType="com.aps.core.domain.ApsPlateProcessShopStat">
         update aps_plate_process_shop_stat
         <trim prefix="SET" suffixOverrides=",">
             <if test="docNo != null">doc_no = #{docNo},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessStatMapper.xml
index 9f9a7ca..97d1d08 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessStatMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessStatMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsPlateProcessStatMapper">
     
-    <resultMap type="ApsPlateProcessStat" id="ApsPlateProcessStatResult">
+    <resultMap type="com.aps.core.domain.ApsPlateProcessStat" id="ApsPlateProcessStatResult">
         <result property="id"    column="id"    />
         <result property="workOrderNo"    column="work_order_no"    />
         <result property="processName"    column="process_name"    />
@@ -23,16 +23,18 @@
         <result property="createBy"    column="create_by"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="warning"    column="warning"    />
+        <result property="exceptionStatus"    column="exception_status"    />
     </resultMap>
 
     <sql id="selectApsPlateProcessStatVo">
         select id, work_order_no, process_name, num, route_process_number, current_process_number, production_quantity,
                standard_time, process_total_time, process_plan_end_day,process_plan_start_day, order_plan_end_day, design_times,
-               batch_number, create_by, del_flag, warning
+               batch_number, create_by, del_flag, warning,
+               CASE WHEN <![CDATA[ process_plan_start_day <= NOW() OR process_plan_end_day <= NOW() ]]> THEN '鏄�' ELSE '鍚�' END as exception_status
         from aps_plate_process_stat
     </sql>
 
-    <select id="selectApsPlateProcessStatList" parameterType="ApsPlateProcessStat" resultMap="ApsPlateProcessStatResult">
+    <select id="selectApsPlateProcessStatList" parameterType="com.aps.core.domain.ApsPlateProcessStat" resultMap="ApsPlateProcessStatResult">
         <include refid="selectApsPlateProcessStatVo"/>
         <where>  
             <if test="workOrderNo != null  and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if>
@@ -56,7 +58,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsPlateProcessStat" parameterType="ApsPlateProcessStat">
+    <insert id="insertApsPlateProcessStat" parameterType="com.aps.core.domain.ApsPlateProcessStat">
         insert into aps_plate_process_stat
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -98,7 +100,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsPlateProcessStat" parameterType="ApsPlateProcessStat">
+    <update id="updateApsPlateProcessStat" parameterType="com.aps.core.domain.ApsPlateProcessStat">
         update aps_plate_process_stat
         <trim prefix="SET" suffixOverrides=",">
             <if test="workOrderNo != null">work_order_no = #{workOrderNo},</if>
@@ -151,7 +153,7 @@
         delete from aps_plate_process_stat where batch_number != #{batchNumber}
     </update>
 
-    <insert id="batchInsertPlateStat" parameterType="ApsPlateProcessStat">
+    <insert id="batchInsertPlateStat" parameterType="com.aps.core.domain.ApsPlateProcessStat">
         insert into aps_plate_process_stat
         (
             id,
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml
index 7b8f502..d96af89 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBatchMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsPlateStandardRequireBatchMapper">
     
-    <resultMap type="ApsPlateStandardRequireBatch" id="ApsPlateStandardRequireBatchResult">
+    <resultMap type="com.aps.core.domain.ApsPlateStandardRequireBatch" id="ApsPlateStandardRequireBatchResult">
         <result property="id"    column="id"    />
         <result property="batchNumber"    column="batch_number"    />
         <result property="delFlag"    column="del_flag"    />
@@ -18,7 +18,7 @@
         select id, batch_number, del_flag, create_time, create_by, update_by, update_time from aps_plate_standard_require_batch
     </sql>
 
-    <select id="selectApsPlateStandardRequireBatchList" parameterType="ApsPlateStandardRequireBatch" resultMap="ApsPlateStandardRequireBatchResult">
+    <select id="selectApsPlateStandardRequireBatchList" parameterType="com.aps.core.domain.ApsPlateStandardRequireBatch" resultMap="ApsPlateStandardRequireBatchResult">
         <include refid="selectApsPlateStandardRequireBatchVo"/>
         <where>  
             <if test="batchNumber != null  and batchNumber != ''"> and batch_number = #{batchNumber}</if>
@@ -30,7 +30,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsPlateStandardRequireBatch" parameterType="ApsPlateStandardRequireBatch">
+    <insert id="insertApsPlateStandardRequireBatch" parameterType="com.aps.core.domain.ApsPlateStandardRequireBatch">
         insert into aps_plate_standard_require_batch
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -52,7 +52,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsPlateStandardRequireBatch" parameterType="ApsPlateStandardRequireBatch">
+    <update id="updateApsPlateStandardRequireBatch" parameterType="com.aps.core.domain.ApsPlateStandardRequireBatch">
         update aps_plate_standard_require_batch
         <trim prefix="SET" suffixOverrides=",">
             <if test="batchNumber != null">batch_number = #{batchNumber},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml
index 815a171..0454793 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml
@@ -166,7 +166,7 @@
         )
         select *
         from cp
--- where require_level is not null
+         where requirement_type is not null and doc_no is not null
         order by bom_line_level;
     </select>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml
index 2f94f10..ab44a47 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomStockDetailMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsPlateStandardRequireBomStockDetailMapper">
     
-    <resultMap type="ApsPlateStandardRequireBomStockDetail" id="ApsPlateStandardRequireBomStockDetailResult">
+    <resultMap type="com.aps.core.domain.ApsPlateStandardRequireBomStockDetail" id="ApsPlateStandardRequireBomStockDetailResult">
         <result property="id"    column="id"    />
         <result property="requireId"    column="require_id"    />
         <result property="requireTrackId"    column="require_track_id"    />
@@ -29,7 +29,7 @@
         from aps_plate_standard_require_bom_stock_detail
     </sql>
 
-    <select id="selectApsPlateStandardRequireBomStockDetailList" parameterType="ApsPlateStandardRequireBomStockDetail" resultMap="ApsPlateStandardRequireBomStockDetailResult">
+    <select id="selectApsPlateStandardRequireBomStockDetailList" parameterType="com.aps.core.domain.ApsPlateStandardRequireBomStockDetail" resultMap="ApsPlateStandardRequireBomStockDetailResult">
         <include refid="selectApsPlateStandardRequireBomStockDetailVo"/>
         <where>  
             <if test="requireId != null  and requireId != ''"> and require_id = #{requireId}</if>
@@ -49,7 +49,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsPlateStandardRequireBomStockDetail" parameterType="ApsPlateStandardRequireBomStockDetail">
+    <insert id="insertApsPlateStandardRequireBomStockDetail" parameterType="com.aps.core.domain.ApsPlateStandardRequireBomStockDetail">
         insert into aps_plate_standard_require_bom_stock_detail
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -87,7 +87,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsPlateStandardRequireBomStockDetail" parameterType="ApsPlateStandardRequireBomStockDetail">
+    <update id="updateApsPlateStandardRequireBomStockDetail" parameterType="com.aps.core.domain.ApsPlateStandardRequireBomStockDetail">
         update aps_plate_standard_require_bom_stock_detail
         <trim prefix="SET" suffixOverrides=",">
             <if test="requireId != null">require_id = #{requireId},</if>
@@ -123,7 +123,7 @@
         update aps_plate_standard_require_bom_stock_detail set del_flag = '1' where batch_number = #{batchNumber}
     </update>
 
-    <insert id="batchInsert" parameterType="ApsPlateStandardRequireBomStockDetail">
+    <insert id="batchInsert" parameterType="com.aps.core.domain.ApsPlateStandardRequireBomStockDetail">
         insert into aps_plate_standard_require_bom_stock_detail
         (id,require_id, require_track_id, bom_line_id, bom_line_code, before_stock_amount, deduction_amount
         , after_stock_amount, org_code, batch_number, del_flag, create_time, create_by)
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessCapacityManagementMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessCapacityManagementMapper.xml
index bb1d7ca..50ba572 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessCapacityManagementMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessCapacityManagementMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsProcessCapacityManagementMapper">
     
-    <resultMap type="ApsProcessCapacityManagement" id="ApsProcessCapacityManagementResult">
+    <resultMap type="com.aps.core.domain.ApsProcessCapacityManagement" id="ApsProcessCapacityManagementResult">
         <result property="id"    column="id"    />
         <result property="itemNumber"    column="item_number"    />
         <result property="capacityType"    column="capacity_type"    />
@@ -25,7 +25,7 @@
         select id, item_number, capacity_type, process_number, process_name, process_route_id, work_time, effective_date, expiring_date, integration_date, create_by, create_time, update_by, update_time from aps_process_capacity_management
     </sql>
 
-    <select id="selectApsProcessCapacityManagementList" parameterType="ApsProcessCapacityManagement" resultMap="ApsProcessCapacityManagementResult">
+    <select id="selectApsProcessCapacityManagementList" parameterType="com.aps.core.domain.ApsProcessCapacityManagement" resultMap="ApsProcessCapacityManagementResult">
         <include refid="selectApsProcessCapacityManagementVo"/>
         <where>  
             <if test="itemNumber != null  and itemNumber != ''"> and item_number = #{itemNumber}</if>
@@ -37,7 +37,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsProcessCapacityManagement" parameterType="ApsProcessCapacityManagement">
+    <insert id="insertApsProcessCapacityManagement" parameterType="com.aps.core.domain.ApsProcessCapacityManagement">
         insert into aps_process_capacity_management
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -73,7 +73,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsProcessCapacityManagement" parameterType="ApsProcessCapacityManagement">
+    <update id="updateApsProcessCapacityManagement" parameterType="com.aps.core.domain.ApsProcessCapacityManagement">
         update aps_process_capacity_management
         <trim prefix="SET" suffixOverrides=",">
             <if test="itemNumber != null and itemNumber != ''">item_number = #{itemNumber},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteMapper.xml
index cfac9e3..5d6a41f 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteMapper.xml
@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsProcessRouteMapper">
 
-    <resultMap type="ApsProcessRoute" id="ApsProcessRouteResult">
+    <resultMap type="com.aps.core.domain.ApsProcessRoute" id="ApsProcessRouteResult">
         <result property="id"    column="id"    />
         <result property="itemNo"    column="item_no"    />
         <result property="workOrderNo"    column="work_order_no"    />
@@ -35,7 +35,7 @@
         select id, item_no, work_order_no, process_number, process_name, process_plan_start_day, process_plan_end_day, not_start_work_count, completed_count, discard_count, integration_day, plant, del_flag, create_by, create_time, update_by, update_time,standard_time,process_order,work_center from aps_process_route
     </sql>
 
-    <select id="selectApsProcessRouteList" parameterType="ApsProcessRoute" resultMap="ApsProcessRouteResult">
+    <select id="selectApsProcessRouteList" parameterType="com.aps.core.domain.ApsProcessRoute" resultMap="ApsProcessRouteResult">
         <include refid="selectApsProcessRouteVo"/>
         <where>
             <if test="itemNo != null  and itemNo != ''"> and item_no like  '%' || #{itemNo} || '%' </if>
@@ -58,7 +58,7 @@
     <select id="selectApsProcessRouteById" parameterType="String" resultMap="ApsProcessRouteResult">
     </select>
 
-    <insert id="insertApsProcessRoute" parameterType="ApsProcessRoute">
+    <insert id="insertApsProcessRoute" parameterType="com.aps.core.domain.ApsProcessRoute">
         insert into aps_process_route
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -106,7 +106,7 @@
         </trim>
     </insert>
 
-    <update id="updateApsProcessRoute" parameterType="ApsProcessRoute">
+    <update id="updateApsProcessRoute" parameterType="com.aps.core.domain.ApsProcessRoute">
         update aps_process_route
         <trim prefix="SET" suffixOverrides=",">
             <if test="itemNo != null">item_no = #{itemNo},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteTempMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteTempMapper.xml
index aec77c7..adc27dc 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteTempMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsProcessRouteTempMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsProcessRouteTempMapper">
 
-    <resultMap type="ApsProcessRouteTemp" id="ApsProcessRouteTempResult">
+    <resultMap type="com.aps.core.domain.ApsProcessRouteTemp" id="ApsProcessRouteTempResult">
         <result property="id"    column="id"    />
         <result property="itemNo"    column="item_no"    />
         <result property="workOrderNo"    column="work_order_no"    />
@@ -31,7 +31,7 @@
         select id, item_no, work_order_no, process_number, process_name, process_plan_start_day, process_plan_end_day, not_start_work_count, completed_count, discard_count, integration_day, batch_number, plant, del_flag, create_by, create_time, update_by, update_time,standard_time,process_order from aps_process_route_temp
     </sql>
 
-    <select id="selectApsProcessRouteTempList" parameterType="ApsProcessRouteTemp" resultMap="ApsProcessRouteTempResult">
+    <select id="selectApsProcessRouteTempList" parameterType="com.aps.core.domain.ApsProcessRouteTemp" resultMap="ApsProcessRouteTempResult">
         <include refid="selectApsProcessRouteTempVo"/>
         <where>
             <if test="itemNo != null  and itemNo != ''"> and item_no = #{itemNo}</if>
@@ -52,7 +52,7 @@
     <select id="selectApsProcessRouteTempById" parameterType="String" resultMap="ApsProcessRouteTempResult">
     </select>
 
-    <insert id="insertApsProcessRouteTemp" parameterType="ApsProcessRouteTemp">
+    <insert id="insertApsProcessRouteTemp" parameterType="com.aps.core.domain.ApsProcessRouteTemp">
         insert into aps_process_route_temp
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -100,7 +100,7 @@
         </trim>
     </insert>
 
-    <update id="updateApsProcessRouteTemp" parameterType="ApsProcessRouteTemp">
+    <update id="updateApsProcessRouteTemp" parameterType="com.aps.core.domain.ApsProcessRouteTemp">
         update aps_process_route_temp
         <trim prefix="SET" suffixOverrides=",">
             <if test="itemNo != null">item_no = #{itemNo},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsProfessionalFixedCycleManagementMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsProfessionalFixedCycleManagementMapper.xml
index 3da6a4d..4fd113d 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsProfessionalFixedCycleManagementMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsProfessionalFixedCycleManagementMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsProfessionalFixedCycleManagementMapper">
     
-    <resultMap type="ApsProfessionalFixedCycleManagement" id="ApsProfessionalFixedCycleManagementResult">
+    <resultMap type="com.aps.core.domain.ApsProfessionalFixedCycleManagement" id="ApsProfessionalFixedCycleManagementResult">
         <result property="id"    column="id"    />
         <result property="itemNumber"    column="item_number"    />
         <result property="professionalDescription"    column="professional_description"    />
@@ -22,7 +22,7 @@
         select id, item_number, professional_description, professional, professional_fixed_cycle, integration_date, applicable_factories, create_by, create_time, update_by, update_time from aps_professional_fixed_cycle_management
     </sql>
 
-    <select id="selectApsProfessionalFixedCycleManagementList" parameterType="ApsProfessionalFixedCycleManagement" resultMap="ApsProfessionalFixedCycleManagementResult">
+    <select id="selectApsProfessionalFixedCycleManagementList" parameterType="com.aps.core.domain.ApsProfessionalFixedCycleManagement" resultMap="ApsProfessionalFixedCycleManagementResult">
         <include refid="selectApsProfessionalFixedCycleManagementVo"/>
         <where>  
             <if test="itemNumber != null  and itemNumber != ''"> and item_number = #{itemNumber}</if>
@@ -34,7 +34,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsProfessionalFixedCycleManagement" parameterType="ApsProfessionalFixedCycleManagement">
+    <insert id="insertApsProfessionalFixedCycleManagement" parameterType="com.aps.core.domain.ApsProfessionalFixedCycleManagement">
         insert into aps_professional_fixed_cycle_management
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -64,7 +64,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsProfessionalFixedCycleManagement" parameterType="ApsProfessionalFixedCycleManagement">
+    <update id="updateApsProfessionalFixedCycleManagement" parameterType="com.aps.core.domain.ApsProfessionalFixedCycleManagement">
         update aps_professional_fixed_cycle_management
         <trim prefix="SET" suffixOverrides=",">
             <if test="itemNumber != null">item_number = #{itemNumber},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupMapper.xml
index c5dd261..27b10fa 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsResourceGroupMapper">
     
-    <resultMap type="ApsResourceGroup" id="ApsResourceGroupResult">
+    <resultMap type="com.aps.core.domain.ApsResourceGroup" id="ApsResourceGroupResult">
         <result property="id"    column="id"    />
         <result property="resourceGroupName"    column="resource_group_name"    />
         <result property="devicesQuantity"    column="devices_quantity"    />
@@ -24,7 +24,7 @@
         select id, resource_group_name, devices_quantity, theory_hours, rest_days, theory_capacity, request_date, del_flag, create_by, create_time, update_by, update_time, plant from aps_resource_group
     </sql>
 
-    <select id="selectApsResourceGroupList" parameterType="ApsResourceGroup" resultMap="ApsResourceGroupResult">
+    <select id="selectApsResourceGroupList" parameterType="com.aps.core.domain.ApsResourceGroup" resultMap="ApsResourceGroupResult">
         <include refid="selectApsResourceGroupVo"/>
         <where>  
             <if test="resourceGroupName != null  and resourceGroupName != ''"> and resource_group_name like '%' || #{resourceGroupName}|| '%'</if>
@@ -44,7 +44,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsResourceGroup" parameterType="ApsResourceGroup">
+    <insert id="insertApsResourceGroup" parameterType="com.aps.core.domain.ApsResourceGroup">
         insert into aps_resource_group
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -78,7 +78,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsResourceGroup" parameterType="ApsResourceGroup">
+    <update id="updateApsResourceGroup" parameterType="com.aps.core.domain.ApsResourceGroup">
         update aps_resource_group
         <trim prefix="SET" suffixOverrides=",">
             <if test="resourceGroupName != null">resource_group_name = #{resourceGroupName},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupTempMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupTempMapper.xml
index 931d88b..306c3f2 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupTempMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsResourceGroupTempMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsResourceGroupTempMapper">
     
-    <resultMap type="ApsResourceGroupTemp" id="ApsResourceGroupTempResult">
+    <resultMap type="com.aps.core.domain.ApsResourceGroupTemp" id="ApsResourceGroupTempResult">
         <result property="id"    column="id"    />
         <result property="resourceGroupName"    column="resource_group_name"    />
         <result property="devicesQuantity"    column="devices_quantity"    />
@@ -25,7 +25,7 @@
         select id, resource_group_name, devices_quantity, theory_hours, rest_days, theory_capacity, request_date, del_flag, create_by, create_time, update_by, update_time, batch_number, plant from aps_resource_group_temp
     </sql>
 
-    <select id="selectApsResourceGroupTempList" parameterType="ApsResourceGroupTemp" resultMap="ApsResourceGroupTempResult">
+    <select id="selectApsResourceGroupTempList" parameterType="com.aps.core.domain.ApsResourceGroupTemp" resultMap="ApsResourceGroupTempResult">
         <include refid="selectApsResourceGroupTempVo"/>
         <where>  
             <if test="resourceGroupName != null  and resourceGroupName != ''"> and resource_group_name like concat('%', #{resourceGroupName}, '%')</if>
@@ -45,7 +45,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsResourceGroupTemp" parameterType="ApsResourceGroupTemp">
+    <insert id="insertApsResourceGroupTemp" parameterType="com.aps.core.domain.ApsResourceGroupTemp">
         insert into aps_resource_group_temp
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -81,7 +81,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsResourceGroupTemp" parameterType="ApsResourceGroupTemp">
+    <update id="updateApsResourceGroupTemp" parameterType="com.aps.core.domain.ApsResourceGroupTemp">
         update aps_resource_group_temp
         <trim prefix="SET" suffixOverrides=",">
             <if test="resourceGroupName != null">resource_group_name = #{resourceGroupName},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsShopMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsShopMapper.xml
index b2f285d..c86e304 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsShopMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsShopMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsShopMapper">
     
-    <resultMap type="ApsShop" id="ApsShopResult">
+    <resultMap type="com.aps.core.domain.ApsShop" id="ApsShopResult">
         <result property="id"    column="id"    />
         <result property="shopName"    column="shop_name"    />
         <result property="shopCode"    column="shop_code"    />
@@ -20,7 +20,7 @@
         select id, shop_name, shop_code, plant_code, status, create_by, create_time, update_by, update_time from aps_shop
     </sql>
 
-    <select id="selectApsShopList" parameterType="ApsShop" resultMap="ApsShopResult">
+    <select id="selectApsShopList" parameterType="com.aps.core.domain.ApsShop" resultMap="ApsShopResult">
         <include refid="selectApsShopVo"/>
         <where>  
             <if test="shopName != null  and shopName != ''"> and shop_name = #{shopName}</if>
@@ -37,7 +37,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsShop" parameterType="ApsShop">
+    <insert id="insertApsShop" parameterType="com.aps.core.domain.ApsShop">
         insert into aps_shop
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -63,7 +63,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsShop" parameterType="ApsShop">
+    <update id="updateApsShop" parameterType="com.aps.core.domain.ApsShop">
         update aps_shop
         <trim prefix="SET" suffixOverrides=",">
             <if test="shopName != null">shop_name = #{shopName},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessMapper.xml
index 87c3b77..8fe7b9a 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsStandardProcessMapper">
     
-    <resultMap type="ApsStandardProcess" id="ApsStandardProcessResult">
+    <resultMap type="com.aps.core.domain.ApsStandardProcess" id="ApsStandardProcessResult">
         <result property="id"    column="id"    />
         <result property="processNumber"    column="process_number"    />
         <result property="processName"    column="process_name"    />
@@ -30,7 +30,7 @@
         select id, process_number, process_name, resource_group_name, model, design_capacity, plant_id, plant, work_shop_id, work_shop, work_calender_id, del_flag, create_by, create_time, update_by, update_time, model_id, work_calender,major from aps_standard_process
     </sql>
 
-    <select id="selectApsStandardProcessList" parameterType="ApsStandardProcess" resultMap="ApsStandardProcessResult">
+    <select id="selectApsStandardProcessList" parameterType="com.aps.core.domain.ApsStandardProcess" resultMap="ApsStandardProcessResult">
         <include refid="selectApsStandardProcessVo"/>
         <where>  
             <if test="processNumber != null  and processNumber != ''"> and process_number = #{processNumber}</if>
@@ -54,7 +54,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsStandardProcess" parameterType="ApsStandardProcess">
+    <insert id="insertApsStandardProcess" parameterType="com.aps.core.domain.ApsStandardProcess">
         insert into aps_standard_process
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="processNumber != null">process_number,</if>
@@ -98,7 +98,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsStandardProcess" parameterType="ApsStandardProcess">
+    <update id="updateApsStandardProcess" parameterType="com.aps.core.domain.ApsStandardProcess">
         update aps_standard_process
         <trim prefix="SET" suffixOverrides=",">
             <if test="processNumber != null">process_number = #{processNumber},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml
index 4246e11..afc8436 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsStandardProcessRouteHeaderMapper">
     
-    <resultMap type="ApsStandardProcessRouteHeader" id="ApsStandardProcessRouteHeaderResult">
+    <resultMap type="com.aps.core.domain.ApsStandardProcessRouteHeader" id="ApsStandardProcessRouteHeaderResult">
         <result property="id"    column="id"    />
         <result property="itemCode"    column="item_code"    />
         <result property="drawingNumber"    column="drawing_number"    />
@@ -27,7 +27,7 @@
         from aps_standard_process_route_header
     </sql>
 
-    <select id="selectApsStandardProcessRouteHeaderList" parameterType="ApsStandardProcessRouteHeader" resultMap="ApsStandardProcessRouteHeaderResult">
+    <select id="selectApsStandardProcessRouteHeaderList" parameterType="com.aps.core.domain.ApsStandardProcessRouteHeader" resultMap="ApsStandardProcessRouteHeaderResult">
         <include refid="selectApsStandardProcessRouteHeaderVo"/>
         <where>  
             <if test="routeId != null  and routeId != ''"> and route_id = #{routeId}</if>
@@ -47,7 +47,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsStandardProcessRouteHeader" parameterType="ApsStandardProcessRouteHeader">
+    <insert id="insertApsStandardProcessRouteHeader" parameterType="com.aps.core.domain.ApsStandardProcessRouteHeader">
         insert into aps_standard_process_route_header
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -77,7 +77,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsStandardProcessRouteHeader" parameterType="ApsStandardProcessRouteHeader">
+    <update id="updateApsStandardProcessRouteHeader" parameterType="com.aps.core.domain.ApsStandardProcessRouteHeader">
         update aps_standard_process_route_header
         <trim prefix="SET" suffixOverrides=",">
             <if test="routeId != null">route_id = #{routeId},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml
index 1965e12..15adac9 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteLineMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsStandardProcessRouteLineMapper">
     
-    <resultMap type="ApsStandardProcessRouteLine" id="ApsStandardProcessRouteLineResult">
+    <resultMap type="com.aps.core.domain.ApsStandardProcessRouteLine" id="ApsStandardProcessRouteLineResult">
         <result property="id"    column="id"    />
         <result property="routeId"    column="route_id"    />
         <result property="routeNum"    column="route_num"    />
@@ -31,7 +31,7 @@
         from aps_standard_process_route_line
     </sql>
 
-    <select id="selectApsStandardProcessRouteLineList" parameterType="ApsStandardProcessRouteLine" resultMap="ApsStandardProcessRouteLineResult">
+    <select id="selectApsStandardProcessRouteLineList" parameterType="com.aps.core.domain.ApsStandardProcessRouteLine" resultMap="ApsStandardProcessRouteLineResult">
         <include refid="selectApsStandardProcessRouteLineVo"/>
         <where>
             <if test="routeId != null  and routeId != ''"> and route_id = #{routeId}</if>
@@ -53,7 +53,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsStandardProcessRouteLine" parameterType="ApsStandardProcessRouteLine">
+    <insert id="insertApsStandardProcessRouteLine" parameterType="com.aps.core.domain.ApsStandardProcessRouteLine">
         insert into aps_standard_process_route_line
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -91,7 +91,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsStandardProcessRouteLine" parameterType="ApsStandardProcessRouteLine">
+    <update id="updateApsStandardProcessRouteLine" parameterType="com.aps.core.domain.ApsStandardProcessRouteLine">
         update aps_standard_process_route_line
         <trim prefix="SET" suffixOverrides=",">
             <if test="routeId != null">route_id = #{routeId},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml
index 5770b88..af28ae3 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsWeldSeamMapper">
     
-    <resultMap type="ApsWeldSeam" id="ApsWeldSeamResult">
+    <resultMap type="com.aps.core.domain.ApsWeldSeam" id="ApsWeldSeamResult">
         <result property="id"    column="id"    />
         <result property="workOrderType"    column="work_order_type"    />
         <result property="materialCode"    column="material_code"    />
@@ -32,7 +32,7 @@
         select id, work_order_type, material_code, customer_drawing_number, organize_number, production_base, classification, produce_year, produce_month, production_quantity, customer, single_weld_seam, total_weld_seam, this_feedback_day, materials_requirement_day, sale_order_no, sale_order_line, main_work_order_no, superior_work_order_no, work_order_no, plant from aps_weld_seam
     </sql>
 
-    <select id="selectApsWeldSeamList" parameterType="ApsWeldSeam" resultMap="ApsWeldSeamResult">
+    <select id="selectApsWeldSeamList" parameterType="com.aps.core.domain.ApsWeldSeam" resultMap="ApsWeldSeamResult">
         <include refid="selectApsWeldSeamVo"/>
         <where>  
             <if test="workOrderType != null  and workOrderType != ''"> and work_order_type = #{workOrderType}</if>
@@ -66,7 +66,7 @@
         <include refid="selectApsWeldSeamVo"/>
         where work_order_no = #{workOrderNo}
     </select>
-    <insert id="insertApsWeldSeam" parameterType="ApsWeldSeam">
+    <insert id="insertApsWeldSeam" parameterType="com.aps.core.domain.ApsWeldSeam">
         insert into aps_weld_seam
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -116,7 +116,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsWeldSeam" parameterType="ApsWeldSeam">
+    <update id="updateApsWeldSeam" parameterType="com.aps.core.domain.ApsWeldSeam">
         update aps_weld_seam
         <trim prefix="SET" suffixOverrides=",">
             <if test="workOrderType != null">work_order_type = #{workOrderType},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsMapper.xml
index 0829f08..8d5459f 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsWeldSeamStatisticsMapper">
     
-    <resultMap type="ApsWeldSeamStatistics" id="ApsWeldSeamStatisticsResult">
+    <resultMap type="com.aps.core.domain.ApsWeldSeamStatistics" id="ApsWeldSeamStatisticsResult">
         <result property="id"    column="id"    />
         <result property="year"    column="year"    />
         <result property="month"    column="month"    />
@@ -30,7 +30,7 @@
         select id, year, month, production_base, piping_order_requirement, gas_order_requirement, piping_prediction_requirement, gas_prediction_requirement, reserve_emergency_order_output, total, days, requirement_day_weld_seam, production_day_weld_seam, is_satisfy, del_flag, create_by, create_time, update_by, update_time from aps_weld_seam_statistics
     </sql>
 
-    <select id="selectApsWeldSeamStatisticsList" parameterType="ApsWeldSeamStatistics" resultMap="ApsWeldSeamStatisticsResult">
+    <select id="selectApsWeldSeamStatisticsList" parameterType="com.aps.core.domain.ApsWeldSeamStatistics" resultMap="ApsWeldSeamStatisticsResult">
         <include refid="selectApsWeldSeamStatisticsVo"/>
         <where>  
             <if test="params.beginYear != null and params.beginYear != '' and params.endYear != null and params.endYear != ''"> and year between #{params.beginYear} and #{params.endYear}</if>
@@ -46,7 +46,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsWeldSeamStatistics" parameterType="ApsWeldSeamStatistics">
+    <insert id="insertApsWeldSeamStatistics" parameterType="com.aps.core.domain.ApsWeldSeamStatistics">
         insert into aps_weld_seam_statistics
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -92,7 +92,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsWeldSeamStatistics" parameterType="ApsWeldSeamStatistics">
+    <update id="updateApsWeldSeamStatistics" parameterType="com.aps.core.domain.ApsWeldSeamStatistics">
         update aps_weld_seam_statistics
         <trim prefix="SET" suffixOverrides=",">
             <if test="year != null">year = #{year},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamTempMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamTempMapper.xml
index fffeb24..2afb54d 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamTempMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamTempMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsWeldSeamTempMapper">
     
-    <resultMap type="ApsWeldSeamTemp" id="ApsWeldSeamTempResult">
+    <resultMap type="com.aps.core.domain.ApsWeldSeamTemp" id="ApsWeldSeamTempResult">
         <result property="id"    column="id"    />
         <result property="workOrderType"    column="work_order_type"    />
         <result property="materialCode"    column="material_code"    />
@@ -33,7 +33,7 @@
         select id, work_order_type, material_code, customer_drawing_number, organize_number, production_base, classification, produce_year, produce_month, production_quantity, customer, single_weld_seam, total_weld_seam, this_feedback_day, materials_requirement_day, sale_order_no, sale_order_line, main_work_order_no, superior_work_order_no, work_order_no, plant, batch_number from aps_weld_seam_temp
     </sql>
 
-    <select id="selectApsWeldSeamTempList" parameterType="ApsWeldSeamTemp" resultMap="ApsWeldSeamTempResult">
+    <select id="selectApsWeldSeamTempList" parameterType="com.aps.core.domain.ApsWeldSeamTemp" resultMap="ApsWeldSeamTempResult">
         <include refid="selectApsWeldSeamTempVo"/>
         <where>  
             <if test="workOrderType != null  and workOrderType != ''"> and work_order_type = #{workOrderType}</if>
@@ -65,7 +65,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsWeldSeamTemp" parameterType="ApsWeldSeamTemp">
+    <insert id="insertApsWeldSeamTemp" parameterType="com.aps.core.domain.ApsWeldSeamTemp">
         insert into aps_weld_seam_temp
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -117,7 +117,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsWeldSeamTemp" parameterType="ApsWeldSeamTemp">
+    <update id="updateApsWeldSeamTemp" parameterType="com.aps.core.domain.ApsWeldSeamTemp">
         update aps_weld_seam_temp
         <trim prefix="SET" suffixOverrides=",">
             <if test="workOrderType != null">work_order_type = #{workOrderType},</if>
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml
index 642ac4c..3a80553 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsWorkCalendarMapper">
 
-    <resultMap type="ApsWorkCalendar" id="ApsWorkCalendarResult">
+    <resultMap type="com.aps.core.domain.ApsWorkCalendar" id="ApsWorkCalendarResult">
         <result property="id"    column="id"    />
         <result property="description"    column="description"    />
         <result property="type"    column="type"    />
@@ -18,20 +18,29 @@
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="holidays"    column="holidays"    />
+        <result property="applicable"    column="applicable"    />
+        <result property="applicableTranslate"    column="applicable_translate"    />
     </resultMap>
 
     <sql id="selectApsWorkCalendarVo">
-        select id, description, type, effective_date, expiring_date, content, applicable_factory, applicable_workshop, applicable_process, create_by, create_time, update_by, update_time from aps_work_calendar
+        select id, description, type, effective_date, expiring_date, content, applicable_factory, applicable_workshop, applicable_process, create_by, create_time, update_by, update_time, holidays, applicable, applicable_translate from aps_work_calendar
     </sql>
 
-    <select id="selectApsWorkCalendarList" parameterType="ApsWorkCalendar" resultMap="ApsWorkCalendarResult">
+    <select id="selectApsWorkCalendarList" parameterType="com.aps.core.domain.ApsWorkCalendar" resultMap="ApsWorkCalendarResult">
         <include refid="selectApsWorkCalendarVo"/>
         <where>  
             <if test="description != null  and description != ''"> and description like '%' || #{description} || '%'</if>
             <if test="type != null  and type != ''"> and type = #{type}</if>
             <if test="effectiveDate != null and expiringDate != null"> and ((effective_date &gt;= #{effectiveDate} and effective_date &lt;= #{expiringDate}) or (expiring_date &gt;= #{effectiveDate} and expiring_date &lt;= #{expiringDate}))</if>
 <!--            <if test="content != null  and content != ''"> and content = #{content}</if>-->
-            <if test="applicableFactory != null  and applicableFactory != ''"> and applicable_factory = #{applicableFactory}</if>
+            <if test="applicableFactory != null  and applicableFactory != ''">
+              and EXISTS (
+                SELECT 1
+                FROM jsonb_array_elements(applicable) AS obj
+                WHERE obj ->> 'factory' = #{applicableFactory}
+                )
+            </if>
             <if test="applicableWorkshop != null  and applicableWorkshop != ''"> and applicable_workshop = #{applicableWorkshop}</if>
             <if test="applicableProcess != null  and applicableProcess != ''"> and applicable_process = #{applicableProcess}</if>
         </where>
@@ -42,7 +51,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsWorkCalendar" parameterType="ApsWorkCalendar">
+    <insert id="insertApsWorkCalendar" parameterType="com.aps.core.domain.ApsWorkCalendar">
         insert into aps_work_calendar
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -58,6 +67,9 @@
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
+            <if test="holidays != null">holidays,</if>
+            <if test="applicable != null">applicable,</if>
+            <if test="applicableTranslate != null">applicable_translate,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -73,10 +85,13 @@
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="holidays != null">#{holidays, typeHandler=com.aps.core.typeHandler.JsonTypeHandler, jdbcType=OTHER},</if>
+            <if test="applicable != null">#{applicable, typeHandler=com.aps.core.typeHandler.JsonTypeHandler, jdbcType=OTHER},</if>
+            <if test="applicableTranslate != null">#{applicableTranslate},</if>
          </trim>
     </insert>
 
-    <update id="updateApsWorkCalendar" parameterType="ApsWorkCalendar">
+    <update id="updateApsWorkCalendar" parameterType="com.aps.core.domain.ApsWorkCalendar">
         update aps_work_calendar
         <trim prefix="SET" suffixOverrides=",">
             <if test="description != null">description = #{description},</if>
@@ -91,6 +106,9 @@
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="holidays != null">holidays = #{holidays, typeHandler=com.aps.core.typeHandler.JsonTypeHandler, jdbcType=OTHER},</if>
+            <if test="applicable != null">applicable = #{applicable, typeHandler=com.aps.core.typeHandler.JsonTypeHandler, jdbcType=OTHER},</if>
+            <if test="applicableTranslate != null">applicable_translate = #{applicableTranslate},</if>
         </trim>
         where id = #{id}
     </update>
@@ -99,10 +117,14 @@
         delete from aps_work_calendar where id = #{id}
     </delete>
 
-    <delete id="deleteApsWorkCalendarByIds" parameterType="String">
-        delete from aps_work_calendar where id in 
+    <delete id="deleteApsWorkCalendarByIds" parameterType="com.aps.core.domain.ApsWorkCalendar">
+        delete from aps_work_calendar where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
     </delete>
+
+    <delete id="deleteApsWorkCalendar" parameterType="com.aps.core.domain.ApsWorkCalendar">
+        delete from aps_work_calendar where effective_date=#{effectiveDate} and expiring_date=#{expiringDate} and applicable_factory=#{applicableFactory} and applicable_workshop=#{applicableWorkshop} and applicable_process=#{applicableProcess}
+    </delete>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkEventMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkEventMapper.xml
index a6592c4..067dab1 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkEventMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkEventMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsWorkEventMapper">
     
-    <resultMap type="ApsWorkEvent" id="ApsWorkEventResult">
+    <resultMap type="com.aps.core.domain.ApsWorkEvent" id="ApsWorkEventResult">
         <result property="id"    column="id"    />
         <result property="description"    column="description"    />
         <result property="duration"    column="duration"    />
@@ -26,7 +26,7 @@
         select id, description, duration, start_date, end_date, start_time, end_time, applicable_factory, applicable_workshop, applicable_process, applicable_calendar, create_by, create_time, update_by, update_time from aps_work_event
     </sql>
 
-    <select id="selectApsWorkEventList" parameterType="ApsWorkEvent" resultMap="ApsWorkEventResult">
+    <select id="selectApsWorkEventList" parameterType="com.aps.core.domain.ApsWorkEvent" resultMap="ApsWorkEventResult">
         <include refid="selectApsWorkEventVo"/>
         <where>  
             <if test="description != null  and description != ''"> and description like '%' || #{description} || '%'</if>
@@ -47,7 +47,7 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsWorkEvent" parameterType="ApsWorkEvent">
+    <insert id="insertApsWorkEvent" parameterType="com.aps.core.domain.ApsWorkEvent">
         insert into aps_work_event
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
@@ -85,7 +85,7 @@
          </trim>
     </insert>
 
-    <update id="updateApsWorkEvent" parameterType="ApsWorkEvent">
+    <update id="updateApsWorkEvent" parameterType="com.aps.core.domain.ApsWorkEvent">
         update aps_work_event
         <trim prefix="SET" suffixOverrides=",">
             <if test="description != null and description != ''">description = #{description},</if>
diff --git a/aps-modules/aps-job/pom.xml b/aps-modules/aps-job/pom.xml
index 8bc980c..126b12b 100644
--- a/aps-modules/aps-job/pom.xml
+++ b/aps-modules/aps-job/pom.xml
@@ -76,6 +76,33 @@
             <scope>provided</scope>
         </dependency>
 
+        <!-- 鐢熸垚鏁版嵁瀛楀吀 -->
+        <dependency>
+            <groupId>cn.smallbun.screw</groupId>
+            <artifactId>screw-core</artifactId>
+            <version>1.0.5</version>
+        </dependency>
+
+        <!-- RuoYi Api System -->
+<!--        <dependency>-->
+<!--            <groupId>com.aps</groupId>-->
+<!--            <artifactId>aps-api-system</artifactId>-->
+<!--        </dependency>-->
+
+        <!-- mybatis-plus -->
+        <dependency>
+            <groupId>org.mybatis</groupId>
+            <artifactId>mybatis-spring</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-jsqlparser</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java b/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java
index d508059..7f76358 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java
@@ -12,7 +12,6 @@
 import com.aps.common.log.enums.BusinessType;
 import com.aps.common.security.utils.SecurityUtils;
 import com.aps.job.domain.SysJob;
-import com.aps.job.param.ApsWorkOrderJobParam;
 import com.aps.job.service.*;
 import com.aps.job.util.CronUtils;
 import com.aps.job.util.ScheduleUtils;
@@ -30,7 +29,6 @@
 import java.time.ZoneId;
 import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -217,15 +215,35 @@
     }
 
     @PostMapping("/refreshBomData")
-    public Boolean refreshBomData() throws SchedulerException, TaskException
+    public AjaxResult refreshBomData() throws SchedulerException, TaskException
     {
-        return apsBomHeaderJobService.syncBomDataJob(1, 1000, "", "");
+        try {
+            boolean res = apsBomHeaderJobService.syncBomDataJob(1, 1000, "", "");
+            if(res){
+                return success();
+            }else {
+                return error();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return error();
+        }
     }
 
     @PostMapping("/refreshProcessRouteData")
-    public Boolean refreshProcessRouteData() throws SchedulerException, TaskException
+    public AjaxResult refreshProcessRouteData() throws SchedulerException, TaskException
     {
-        return apsStandardProcessRouteHeaderJobService.syncProcessRouteDataJob(1, 1000, "", "");
+        try {
+            boolean res = apsStandardProcessRouteHeaderJobService.syncProcessRouteDataJob(1, 1000, "", "");
+            if(res){
+                return success();
+            }else {
+                return error();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return error();
+        }
     }
 
     @PutMapping("/test")
@@ -233,19 +251,19 @@
     {
         System.out.println("start");
         //鍚屾宸ュ崟鏁版嵁
-        boolean continueFlag = true;
-        Integer currentPage = 1;
-        ApsWorkOrderJobParam param=new ApsWorkOrderJobParam();
-        param.setPageIndex(currentPage);
-        param.setDocState(Arrays.asList(0,1,2,4));
-        param.setPageSize(500);
-        while (continueFlag){
-            param.setPageIndex(currentPage);
-            continueFlag= apsWorkOrderJobService.batchSaveByPager(param);
-            currentPage++;
-        }
+//        boolean continueFlag = true;
+//        Integer currentPage = 1;
+//        ApsWorkOrderJobParam param=new ApsWorkOrderJobParam();
+//        param.setPageIndex(currentPage);
+//        param.setDocState(Arrays.asList(0,1,2,4));
+//        param.setPageSize(500);
+//        while (continueFlag){
+//            param.setPageIndex(currentPage);
+//            continueFlag= apsWorkOrderJobService.batchSaveByPager(param);
+//            currentPage++;
+//        }
         //鍚屾鐗╂枡鏁版嵁
-//        apsMaterialManagementJobService.syncApsMaterialData(1, 1000, "FORTUNA", "");
+//        apsMaterialManagementJobService.syncApsMaterialData(1, 1000, "", "");
         //鍚屾宸ヨ壓璺嚎鏁版嵁
 //        apsStandardProcessRouteHeaderJobService.syncProcessRouteData(1, 1000, "", "");
         //鑾峰彇Redis缂撳瓨涓殑BOM鏁版嵁
@@ -253,9 +271,9 @@
         //灏咮OM鏁版嵁瀛樿繘Redis涓�
 //        remoteCoreService.setBomDataToRedis(SecurityConstants.INNER);
         //鍚屾鐗╂枡搴撳瓨鏁版嵁
-//        apsMaterialStorageManagementJobService.syncApsMaterialStorageData(1, 1000, "", "");
+        apsMaterialStorageManagementJobService.syncApsMaterialStorageData(1, 1000, "", "");
         //鍚屾BOM鏁版嵁
-//        apsBomHeaderJobService.syncBomData(1, 1000,  "FORTUNA", "");
+//        apsBomHeaderJobService.syncBomData(1, 1000,  "", "");
 
 //        System.out.println(sequence.nextId());
 //        List<String> docNos = new ArrayList<>();
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java
index b3133b2..5f71212 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.aps.common.core.constant.SecurityConstants;
 import com.aps.common.core.utils.DateUtils;
 import com.aps.common.core.utils.StringUtils;
 import com.aps.common.core.utils.uuid.IdUtils;
@@ -13,6 +14,7 @@
 import com.aps.job.mapper.ApsBomLineJobMapper;
 import com.aps.job.mapper.ApsWorkOrderJobLogMapper;
 import com.aps.job.service.IApsBomHeaderJobService;
+import com.aps.system.api.RemoteCoreService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
@@ -49,6 +51,9 @@
 
     @Autowired
     private RestTemplate restTemplate;
+
+    @Autowired
+    private RemoteCoreService remoteCoreService;
 
     /**
      * 鏌ヨBOM Header 鏁版嵁绠$悊
@@ -259,6 +264,7 @@
             if(!res){
                 return false;
             }
+            remoteCoreService.setBomDataToRedis(SecurityConstants.INNER);
             apsBomHeaderJobMapper.deleteApsBomHeader();
             apsBomLineJobMapper.deleteApsBomLine();
             apsBomHeaderJobMapper.insertIntoApsBomHeader();
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteHeaderJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteHeaderJobServiceImpl.java
index dabc6c8..00d6248 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteHeaderJobServiceImpl.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteHeaderJobServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.aps.common.core.constant.SecurityConstants;
 import com.aps.common.core.utils.DateUtils;
 import com.aps.common.core.utils.StringUtils;
 import com.aps.common.core.utils.uuid.IdUtils;
@@ -13,6 +14,7 @@
 import com.aps.job.mapper.ApsStandardProcessRouteLineJobMapper;
 import com.aps.job.mapper.ApsWorkOrderJobLogMapper;
 import com.aps.job.service.IApsStandardProcessRouteHeaderJobService;
+import com.aps.system.api.RemoteCoreService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
@@ -49,6 +51,9 @@
 
     @Autowired
     private RestTemplate restTemplate;
+
+    @Autowired
+    private RemoteCoreService remoteCoreService;
 
     /**
      * 鏌ヨ鏍囧噯宸ヨ壓璺嚎Header
@@ -251,6 +256,7 @@
             if(!res){
                 return false;
             }
+            remoteCoreService.setProcessRouteDataToRedis(SecurityConstants.INNER);
             apsStandardProcessRouteHeaderJobMapper.deleteProcessRouteHeader();
             apsStandardProcessRouteLineJobMapper.deleteProcessRouteLine();
             apsStandardProcessRouteHeaderJobMapper.insertIntoProcessRouteHeader();
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml
index 1e0e925..a3bf3fc 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml
@@ -152,6 +152,9 @@
             create_by,
             now()
         FROM aps_bom_header_job
+--         FROM aps_bom_header_job as a
+--         LEFT JOIN aps_material_storage_management as b ON a.item_code = b.item_number
+--         where b.material_type='鍒堕�犱欢'
     </insert>
 
     <!-- 鍒犻櫎 aps_bom_header 琛ㄤ腑鐨勬暟鎹� -->
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml
index be153bf..63e181e 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml
@@ -200,6 +200,9 @@
             create_by,
             now()
         FROM aps_bom_line_job
+--         FROM aps_bom_line_job as a
+--         LEFT JOIN aps_material_storage_management as b ON a.item_code = b.item_number
+--         where b.material_type='鍒堕�犱欢'
     </insert>
 
     <!-- 鍒犻櫎 aps_bom_line 琛ㄤ腑鐨勬暟鎹� -->
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
index b99c35d..02d5ed6 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
@@ -407,7 +407,7 @@
             plan_start_day,plan_end_day,next_process_deparment,
             is_suspended,is_outsourcing,account,
             id,create_time,del_flag,plant,order_status,std_op,op_status,next_op_name,
-            professional_affiliation,order_create_time,approve_on,start_work_date
+            professional_affiliation,order_create_time,approve_on,start_work_date,low_order_code
         )
         select
             doc_no,mainitem_code,mainitem_figure,
@@ -421,7 +421,8 @@
             (case when low_order_code='0' then 'main' else 'sub' end ) as professional_affiliation,
             order_create_time,
             approve_on,
-            start_work_date
+            start_work_date,
+            low_order_code
         from aps_work_order_job
         where ( doc_status in (0,1,2,4) and is_hold_release='0'
                 and (item_code like 'M03%' or item_code like 'M04%'or item_code like 'A75%')
diff --git a/aps-modules/aps-system/pom.xml b/aps-modules/aps-system/pom.xml
index f7dacb0..f010c88 100644
--- a/aps-modules/aps-system/pom.xml
+++ b/aps-modules/aps-system/pom.xml
@@ -73,6 +73,20 @@
             <artifactId>aps-common-swagger</artifactId>
         </dependency>
 
+        <!-- mybatis-plus -->
+        <dependency>
+            <groupId>org.mybatis</groupId>
+            <artifactId>mybatis-spring</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-jsqlparser</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysConfigMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysConfigMapper.xml
index 4825725..2baf673 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysConfigMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysConfigMapper.xml
@@ -42,13 +42,13 @@
         <include refid="selectConfigVo"/>
         <where>
 			<if test="configName != null and configName != ''">
-				AND config_name like concat('%', #{configName}, '%')
+				AND config_name like '%' || #{configName} || '%'
 			</if>
 			<if test="configType != null and configType != ''">
 				AND config_type = #{configType}
 			</if>
 			<if test="configKey != null and configKey != ''">
-				AND config_key like concat('%', #{configKey}, '%')
+				AND config_key like '%' || #{configKey} || '%'
 			</if>
 			<if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
 				and date_format(create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml
index cb98780..76e6110 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -40,7 +40,7 @@
 			AND parent_id = #{parentId}
 		</if>
 		<if test="deptName != null and deptName != ''">
-			AND dept_name like concat('%', #{deptName}, '%')
+			AND dept_name like '%' || #{deptName} '%'
 		</if>
 		<if test="status != null and status != ''">
 			AND status = #{status}
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysDictDataMapper.xml
index 82044e0..88d8803 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysDictDataMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysDictDataMapper.xml
@@ -32,7 +32,7 @@
 				AND dict_type = #{dictType}
 			</if>
 			<if test="dictLabel != null and dictLabel != ''">
-				AND dict_label like concat('%', #{dictLabel}, '%')
+				AND dict_label like '%' || #{dictLabel} || '%'
 			</if>
 			<if test="status != null and status != ''">
 				AND status = #{status}
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
index ebc8ee5..be69fa6 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
@@ -24,13 +24,13 @@
 	    <include refid="selectDictTypeVo"/>
 		<where>
 		    <if test="dictName != null and dictName != ''">
-				AND dict_name like concat('%', cast(#{dictName} as varchar), '%')
+				AND dict_name like '%' || #{dictName} || '%'
 			</if>
 			<if test="status != null and status != ''">
 				AND status = #{status}
 			</if>
 			<if test="dictType != null and dictType != ''">
-				AND dict_type like concat('%', cast(#{dictType} as varchar), '%')
+				AND dict_type like '%' || #{dictType} || '%'
 			</if>
 			<if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
 				and date_format(create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysLogininforMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysLogininforMapper.xml
index 8c3f3ff..150db83 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysLogininforMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysLogininforMapper.xml
@@ -22,13 +22,13 @@
 		select info_id, user_name, ipaddr, status, msg, access_time from sys_logininfor
 		<where>
 			<if test="ipaddr != null and ipaddr != ''">
-				AND ipaddr like concat('%', #{ipaddr}, '%')
+				AND ipaddr like '%' || #{ipaddr} || '%'
 			</if>
 			<if test="status != null and status != ''">
 				AND status = #{status}
 			</if>
 			<if test="userName != null and userName != ''">
-				AND user_name like concat('%', #{userName}, '%')
+				AND user_name like '%' || #{userName} || '%'
 			</if>
 			<if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
 				AND access_time &gt;= #{params.beginTime}
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysMenuMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysMenuMapper.xml
index 4abe231..3454e67 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysMenuMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -37,7 +37,7 @@
 		<include refid="selectMenuVo"/>
 		<where>
 			<if test="menuName != null and menuName != ''">
-				AND menu_name like concat('%', #{menuName}, '%')
+				AND menu_name like '%' || #{menuName} || '%'
 			</if>
 			<if test="visible != null and visible != ''">
 				AND visible = #{visible}
@@ -63,7 +63,7 @@
 		left join sys_role ro on ur.role_id = ro.role_id
 		where ur.user_id = #{params.userId}
 		<if test="menuName != null and menuName != ''">
-            AND m.menu_name like concat('%', #{menuName}, '%')
+            AND m.menu_name like '%' || #{menuName} || '%'
 		</if>
 		<if test="visible != null and visible != ''">
             AND m.visible = #{visible}
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysNoticeMapper.xml
index 0a41e5d..322af0c 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysNoticeMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysNoticeMapper.xml
@@ -31,13 +31,13 @@
         <include refid="selectNoticeVo"/>
         <where>
 			<if test="noticeTitle != null and noticeTitle != ''">
-				AND notice_title like concat('%', #{noticeTitle}, '%')
+				AND notice_title like '%' || #{noticeTitle} || '%'
 			</if>
 			<if test="noticeType != null and noticeType != ''">
 				AND notice_type = #{noticeType}
 			</if>
 			<if test="createBy != null and createBy != ''">
-				AND create_by like concat('%', #{createBy}, '%')
+				AND create_by like '%' || #{createBy} || '%'
 			</if>
 		</where>
     </select>
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysOperLogMapper.xml
index e37f793..cbe3983 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysOperLogMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysOperLogMapper.xml
@@ -37,10 +37,10 @@
 		<include refid="selectOperLogVo"/>
 		<where>
 			<if test="operIp != null and operIp != ''">
-				AND oper_ip like concat('%', #{operIp}, '%')
+				AND oper_ip like '%' || #{operIp} || '%'
 			</if>
 			<if test="title != null and title != ''">
-				AND title like concat('%', #{title}, '%')
+				AND title like '%' || #{title} || '%'
 			</if>
 			<if test="businessType != null">
 				AND business_type = #{businessType}
@@ -55,7 +55,7 @@
 				AND status = #{status}
 			</if>
 			<if test="operName != null and operName != ''">
-				AND oper_name like concat('%', #{operName}, '%')
+				AND oper_name like '%' || #{operName} || '%'
 			</if>
 			<if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
 				AND oper_time &gt;= #{params.beginTime}
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysPostMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysPostMapper.xml
index 830e8fe..3a68bd2 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysPostMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysPostMapper.xml
@@ -26,13 +26,13 @@
 	    <include refid="selectPostVo"/>
 		<where>
 			<if test="postCode != null and postCode != ''">
-				AND post_code like concat('%', #{postCode}, '%')
+				AND post_code like '%' || #{postCode} || '%'
 			</if>
 			<if test="status != null and status != ''">
 				AND status = #{status}
 			</if>
 			<if test="postName != null and postName != ''">
-				AND post_name like concat('%', #{postName}, '%')
+				AND post_name like '%' || #{postName} || '%'
 			</if>
 		</where>
 	</select>
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysRoleMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysRoleMapper.xml
index 3ff7826..72a9ded 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -37,13 +37,13 @@
 			AND r.role_id = #{roleId}
 		</if>
 		<if test="roleName != null and roleName != ''">
-			AND r.role_name like concat('%', #{roleName}, '%')
+			AND r.role_name like '%' || #{roleName} || '%'
 		</if>
 		<if test="status != null and status != ''">
 			AND r.status = #{status}
 		</if>
 		<if test="roleKey != null and roleKey != ''">
-			AND r.role_key like concat('%', #{roleKey}, '%')
+			AND r.role_key like '%' || #{roleKey} || '%'
 		</if>
 		<if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
 			and date_format(r.create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')
diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysUserMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysUserMapper.xml
index 5e80f08..84f48cb 100644
--- a/aps-modules/aps-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -64,13 +64,13 @@
 			AND u.user_id = #{userId}
 		</if>
 		<if test="userName != null and userName != ''">
-			AND u.user_name like concat('%', #{userName}, '%')
+			AND u.user_name like '%' || #{userName} || '%'
 		</if>
 		<if test="status != null and status != ''">
 			AND u.status = #{status}
 		</if>
 		<if test="phonenumber != null and phonenumber != ''">
-			AND u.phonenumber like concat('%', #{phonenumber}, '%')
+			AND u.phonenumber like '%' || #{phonenumber} || '%'
 		</if>
 		<if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
 			AND date_format(u.create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')
@@ -93,10 +93,10 @@
 			 left join sys_role r on r.role_id = ur.role_id
 	    where u.del_flag = '0' and r.role_id = #{roleId}
 	    <if test="userName != null and userName != ''">
-			AND u.user_name like concat('%', #{userName}, '%')
+			AND u.user_name like '%' || #{userName} || '%'
 		</if>
 		<if test="phonenumber != null and phonenumber != ''">
-			AND u.phonenumber like concat('%', #{phonenumber}, '%')
+			AND u.phonenumber like '%' || #{phonenumber} || '%'
 		</if>
 		<!-- 鏁版嵁鑼冨洿杩囨护 -->
 		${params.dataScope}
@@ -111,10 +111,10 @@
 	    where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
 	    and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and ur.role_id = #{roleId})
 	    <if test="userName != null and userName != ''">
-			AND u.user_name like concat('%', #{userName}, '%')
+			AND u.user_name like '%' || #{userName} || '%'
 		</if>
 		<if test="phonenumber != null and phonenumber != ''">
-			AND u.phonenumber like concat('%', #{phonenumber}, '%')
+			AND u.phonenumber like '%' || #{phonenumber} || '%'
 		</if>
 		<!-- 鏁版嵁鑼冨洿杩囨护 -->
 		${params.dataScope}

--
Gitblit v1.9.3