From a70c4bfde4a52a598a270901e41b8c253dd0bb89 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 04 七月 2025 21:02:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java           |    3 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java           |   18 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java         |    7 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java                         |   70 ++++
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java |   25 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java        |  307 ++++++++++++++++++++-----
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java                     |    5 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java                   |    6 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml                |    3 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java                           |   95 +++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java                 |    8 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java         |    9 
 lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java                                      |    5 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java            |   34 +-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java                 |   13 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java                |   18 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java            |   11 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java                  |   28 +-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java           |   46 +-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java                        |    6 
 20 files changed, 546 insertions(+), 171 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java
index ee72256..1d479ed 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java
@@ -52,8 +52,9 @@
     /**
      * 瀹氫箟鍒囩偣Pointcut
      */
-    @Pointcut("execution(public * org.jeecg.modules.base.*Controller.*(..)) || @annotation(org.jeecg.common.aspect.annotation.AutoDict)")
-    public void excudeService() {
+    @Pointcut("(execution(public * org.jeecg.modules..*Controller.*(..)) " +
+            "&& !execution(public * org.jeecg.modules.eam..*.*Controller.*(..)) ) " +
+            "|| @annotation(org.jeecg.common.aspect.annotation.AutoDict)") public void excudeService() {
     }
 
     @Around("excudeService()")
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
index 0ab95d0..d615687 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -68,5 +68,8 @@
     String PCR0006 = "PCR0006";
     //澶囦欢绠$悊鍛�
     String PCR0007 = "PCR0007";
-
+    //缁翠慨瀹や富浠�
+    String PCR0008 = "PCR0008";
+    //鎶�鏈富绠�
+    String PCR0009 = "PCR0009";
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java
index 709577c..4526256 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java
@@ -4,6 +4,9 @@
  * 淇濆吇鏍囧噯鐘舵��
  */
 public enum MaintenanceStandardStatusEnum {
-    NORMAL,
-    ABOLISH,;
+    WAIT_SUBMIT,
+    WAIT_REPAIR_DIRECTOR,
+    WAIT_TECHNICAL_DIRECTOR,
+    START,
+    ABOLISH;
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
index efd0f47..755b231 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
@@ -8,6 +8,7 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.modules.eam.dto.MaintenanceStandardImport;
 import org.jeecg.modules.eam.dto.SecondMaintenanceStandardImport;
 import org.jeecg.modules.eam.dto.ThirdMaintenanceStandardImport;
@@ -27,7 +28,7 @@
 @Accessors(chain = true)
 @ApiModel(value="eam_maintenance_standard_detail瀵硅薄", description="淇濆吇鏍囧噯鏄庣粏")
 public class EamMaintenanceStandardDetail implements Serializable {
-    
+
 	/**涓婚敭*/
 	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "涓婚敭")
@@ -44,30 +45,26 @@
 	/**鏇存柊鏃堕棿*/
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
 	private Date updateTime;
-	/**淇濆吇鏍囧噯ID*/
-	@ApiModelProperty(value = "淇濆吇鏍囧噯ID")
+	/**瑙勮寖id*/
+	@ApiModelProperty(value = "瑙勮寖id")
 	private String standardId;
-	/**淇濆吇椤瑰簭鍙�*/
-	@ApiModelProperty(value = "淇濆吇椤瑰簭鍙�")
+	/**淇濆吇椤瑰垎绫�*/
+	@ApiModelProperty(value = "淇濆吇椤瑰垎绫�")
+	@Dict(dicCode = "maintenance_item_category")
+	private String itemCategory;
+	/**椤圭洰搴忓彿*/
+	@ApiModelProperty(value = "椤圭洰搴忓彿")
 	private Integer itemCode;
 	/**閮ㄤ綅*/
 	@ApiModelProperty(value = "閮ㄤ綅")
 	private String itemPart;
-	/**淇濆吇椤�*/
-    @ApiModelProperty(value = "淇濆吇椤�")
+	/**淇濆吇椤圭洰*/
+    @ApiModelProperty(value = "淇濆吇椤圭洰")
 	private String itemName;
-	/**瀛愪繚鍏婚」*/
-	@ApiModelProperty(value = "瀛愪繚鍏婚」")
-	private String subItemName;
 	/**妫�鏌ユ爣鍑嗘垨瑕佹眰*/
     @ApiModelProperty(value = "妫�鏌ユ爣鍑嗘垨瑕佹眰")
 	private String itemDemand;
-	/**淇濆吇瑕佹眰2*/
-	@ApiModelProperty(value = "淇濆吇瑕佹眰2")
-	private String itemDemandAlias;
-	/**妫�鏌ユ柟娉�*/
-	@ApiModelProperty(value = "妫�鏌ユ柟娉�")
-	private String checkMethod;
+
 
 
 	public EamMaintenanceStandardDetail(){}
@@ -82,7 +79,6 @@
 	public EamMaintenanceStandardDetail(WeekMaintenanceStandardImport dto) {
 		this.itemCode = dto.getItemCode();
 		this.itemName = dto.getItemName();
-		this.subItemName = dto.getSubItemName() + " " + (dto.getItemPart() == null ? "" : dto.getItemPart());
 		this.itemDemand = dto.getItemDemand();
 	}
 
@@ -91,8 +87,6 @@
 		this.itemName = dto.getItemName();
 		this.itemPart = dto.getItemPart();
 		this.itemDemand = dto.getItemDemand();
-		this.itemDemandAlias = dto.getItemDemandAlias();
-		this.checkMethod = dto.getCheckMethod();
 	}
 
 	public EamMaintenanceStandardDetail(ThirdMaintenanceStandardImport dto) {
@@ -100,7 +94,5 @@
 		this.itemName = dto.getItemName();
 		this.itemPart = dto.getItemPart();
 		this.itemDemand = dto.getItemDemand();
-		this.itemDemandAlias = dto.getItemDemandAlias();
-		this.checkMethod = dto.getCheckMethod();
 	}
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
index 0d010bb..c8de2a8 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
@@ -23,7 +23,7 @@
 @Accessors(chain = true)
 @ApiModel(value="eam_week_maintenance_order_detail瀵硅薄", description="鍛ㄤ繚宸ュ崟鏄庣粏")
 public class EamWeekMaintenanceOrderDetail implements Serializable {
-    
+
 	/**涓婚敭*/
 	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "涓婚敭")
@@ -70,7 +70,6 @@
 	public EamWeekMaintenanceOrderDetail(EamMaintenanceStandardDetail detail) {
 		this.itemCode = detail.getItemCode();
 		this.itemName = detail.getItemName();
-		this.subItemName = detail.getSubItemName();
 		this.itemDemand = detail.getItemDemand();
 	}
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
index 570ee6a..cfb5b96 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -148,7 +148,6 @@
                 List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                 queryWrapper.in("e.factory_code", factoryCode);
             }
-
         }
         //鏌ヨ鏉′欢杩囨护
         if (eamEquipment != null) {
@@ -224,14 +223,21 @@
         if (sysUser == null) {
             return Collections.emptyList();
         }
-        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
+        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
-            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
-            queryWrapper.in("equipment_code", equipArr);
+            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
+            queryWrapper.in("e.equipment_code", equipArr);
         } else {
-            //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
-            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=org_id", sysUser.getId());
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶�
+            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
+                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
+            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
+                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
+                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
+                queryWrapper.in("e.factory_code", factoryCode);
+            }
         }
+
         if (StringUtils.isNotBlank(keyword)) {
             queryWrapper.like("equipment_code", keyword);
             queryWrapper.or().like("equipment_name", keyword);
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
index 48d0bef..f714e0a 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -32,6 +32,7 @@
 import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
 import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
+import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.entity.ImportParams;
@@ -65,6 +66,28 @@
     private ISysBusinessCodeRuleService businessCodeRuleService;
     @Autowired
     private IEamEquipmentService eamEquipmentService;
+
+    /**
+     * 娴佺▼鍚姩,淇濆瓨瀵瑰簲鐨勬暟鎹�
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "淇濆吇鏍囧噯-娴佺▼鍚姩淇濆瓨瀵瑰簲鐨勬暟鎹�", notes = "淇濆吇鏍囧噯-娴佺▼鍚姩淇濆瓨瀵瑰簲鐨勬暟鎹�")
+    @GetMapping(value = "/saveEamMaintenanceStandardProcess")
+    public Result<?> saveEamMaintenanceStandardProcess(String id){
+        return Result.OK(eamMaintenanceStandardService.saveEamMaintenanceStandardProcess(id));
+    }
+
+    /**
+     * 娴佺▼瀹℃牳
+     * @param eamMaintenanceStandardVo
+     * @return
+     */
+    @ApiOperation(value = "淇濆吇鏍囧噯-娴佺▼瀹℃牳", notes = "淇濆吇鏍囧噯-娴佺▼瀹℃牳")
+    @PostMapping(value = "/audit")
+    public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo){
+        return Result.OK(eamMaintenanceStandardService.auditEamMaintenanceStandard(eamMaintenanceStandardVo));
+    }
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -541,29 +564,6 @@
             //鏂囦欢缂栫爜
             Cell fileCode = row.getCell(13);
             request.setFileCode(fileCode.getStringCellValue());
-
-            Map<String, PictureData> pictures;
-            if (isXSSFWorkbook) {
-                pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(0), (XSSFWorkbook) book);
-            } else {
-                pictures = PoiPublicUtil.getSheetPictrues03((HSSFSheet) book.getSheetAt(0), (HSSFWorkbook) book);
-            }
-
-            if (CollectionUtil.isNotEmpty(pictures)) {
-                //鍙細瀛樺湪涓�寮犲浘鐗�
-                PictureData pictureData = pictures.get(pictures.keySet().iterator().next());
-                byte[] data = pictureData.getData();
-                String fileName = request.getEquipmentCode() + "[" + request.getFileCode() + "]" + "." + pictureData.suggestFileExtension();
-                FileUploadResult fileUploadResult = FileUtil.uploadFile(data, fileName);
-                if(fileUploadResult != null) {
-                    List<FileUploadResult> fileList = request.getFileList();
-                    if(fileList == null) {
-                        fileList = new ArrayList<FileUploadResult>();
-                    }
-                    fileList.add(fileUploadResult);
-                    request.setFileList(fileList);
-                }
-            }
         } catch (Exception e) {
             log.error("璇诲彇Excel淇℃伅澶辫触锛歿}", e.getMessage(), e);
         }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
index 5dabd18..b6be351 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
@@ -11,6 +11,7 @@
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
@@ -76,6 +77,12 @@
     @ApiModelProperty(value = "淇濆吇鍛ㄦ湡;鍗曚綅:澶�")
     private Integer maintenancePeriod;
     /**
+     * 淇濆吇鍛ㄦ湡鍗曚綅
+     */
+    @ApiModelProperty(value = "淇濆吇鍛ㄦ湡鍗曚綅")
+    @Dict(dicCode = "period_unit")
+    private String periodUnit;
+    /**
      * 鍒濆鏃ユ湡 浠庡摢涓�澶╁紑濮嬭绠椾笅娆′繚鍏绘棩鏈�
      */
     @ApiModelProperty(value = "鍒濆鏃ユ湡")
@@ -106,22 +113,61 @@
     @ApiModelProperty(value = "鏍囧噯鐗堟湰")
     private Integer standardVersion;
     /**
-     * 鏂囦欢缂栧彿
+     * 缂栧埗浜�
      */
-    @ApiModelProperty(value = "鏂囦欢缂栧彿")
-    private String fileCode;
+    @ApiModelProperty(value = "缂栧埗浜�")
+    private String designer;
     /**
-     * 鍙傝�冩枃浠�
+     * 缂栧埗鏃ユ湡
      */
-    @ApiModelProperty(value = "鍙傝�冩枃浠�")
-    private String referenceFile;
+    @ApiModelProperty(value = "缂栧埗鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date designTime;
     /**
-     * 鏈�鏂扮敓鎴愬伐鍗曟椂闂�
-     * 涓嬩竴娆$敓鎴愭椂闂翠负姝ゆ椂闂� + 淇濆吇鍛ㄦ湡
+     * 缁翠慨涓讳换
      */
-    @ApiModelProperty(value = "鏈�鏂扮敓鎴愬伐鍗曟椂闂�")
-    private Date lastGenerateTime;
-
+    @ApiModelProperty(value = "缁翠慨涓讳换")
+    private String repairManager;
+    /**
+     * 缁翠慨涓讳换瀹℃壒缁撴灉
+     */
+    @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒缁撴灉")
+    private String repairManagerApproveResult;
+    /**
+     * 缁翠慨涓讳换瀹℃壒鏃堕棿
+     */
+    @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒鏃堕棿")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date repairManagerApproveTime;
+    /**
+     * 缁翠慨涓讳换瀹℃壒鎰忚
+     */
+    @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒鎰忚")
+    private String repairManagerApproveComment;
+    /**
+     * 鎶�鏈富绠�
+     */
+    @ApiModelProperty(value = "鎶�鏈富绠�")
+    private String technicalManager;
+    /**
+     * 鎶�鏈富绠″鎵圭粨鏋�
+     */
+    @ApiModelProperty(value = "鎶�鏈富绠″鎵圭粨鏋�")
+    private String technicalManagerApproveResult;
+    /**
+     * 鎶�鏈富绠″鎵规椂闂�
+     */
+    @ApiModelProperty(value = "鎶�鏈富绠″鎵规椂闂�")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date technicalManagerApproveTime;
+    /**
+     * 鎶�鏈富绠″鎵规剰瑙�
+     */
+    @ApiModelProperty(value = "鎶�鏈富绠″鎵规剰瑙�")
+    private String technicalManagerApproveComment;
     //鍒楄〃灞曠ず
     @TableField(exist = false)
     private String equipmentCode;
@@ -129,6 +175,8 @@
     private String equipmentName;
     @TableField(exist = false)
     private String keyword;
+    @TableField(exist = false)
+    private String equipmentModel;
     /**
      * 璁惧缂栧彿鎷兼帴
      */
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
index 3d105e1..c0ada13 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
@@ -85,9 +85,9 @@
                     standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                 }
                 LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
-                if (standard.getLastGenerateTime() != null) {
-                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
-                }
+//                if (standard.getLastGenerateTime() != null) {
+//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
+//                }
                 //鍔犲懆鏈�
                 do {
                     //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java
index 17ae5d6..be828db 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java
@@ -82,9 +82,9 @@
                     standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                 }
                 LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
-                if (standard.getLastGenerateTime() != null) {
-                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
-                }
+//                if (standard.getLastGenerateTime() != null) {
+//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
+//                }
                 //鍔犲懆鏈�
                 do {
                     //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
@@ -122,7 +122,7 @@
                 request.setTableDetailList(tableDetailList);
                 eamSecondMaintenanceOrderService.addMaintenance(request);
 
-                standard.setLastGenerateTime(new Date());
+//                standard.setLastGenerateTime(new Date());
                 eamMaintenanceStandardService.updateById(standard);
             }
             quartzLog.setIsSuccess(0);
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java
index 389b45f..b57a350 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java
@@ -81,19 +81,19 @@
                     //璁剧疆鍒濆鏃ユ湡涓哄墠涓�澶�
                     standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                 }
-                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
-                if (standard.getLastGenerateTime() != null) {
-                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
-                }
+//                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
+//                if (standard.getLastGenerateTime() != null) {
+//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
+//                }
                 //鍔犲懆鏈�
-                do {
-                    //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
-                    generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
-                } while (now.isAfter(generateDate));
-                if(!now.isEqual(generateDate)) {
-                    //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц
-                    continue;
-                }
+//                do {
+//                    //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
+//                    generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
+//                } while (now.isAfter(generateDate));
+//                if(!now.isEqual(generateDate)) {
+//                    //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц
+//                    continue;
+//                }
                 //鑾峰彇淇濆吇椤规槑缁�
                 List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId());
                 if(CollectionUtil.isEmpty(standardDetailList)) {
@@ -105,7 +105,7 @@
                 EamThirdMaintenanceRequest request = new EamThirdMaintenanceRequest();
                 request.setEquipmentId(standard.getEquipmentId());
                 request.setStandardId(standard.getId());
-                request.setMaintenanceDate(DateUtils.localDateToDate(generateDate));
+//                request.setMaintenanceDate(DateUtils.localDateToDate(generateDate));
                 String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.THIRD_MAINTENANCE_CODE_RULE);
                 request.setOrderNum(codeSeq);
                 request.setCreationMethod(OrderCreationMethodEnum.AUTO.name());
@@ -138,7 +138,7 @@
                 }
                 eamThirdMaintenanceOrderService.addMaintenance(request);
 
-                standard.setLastGenerateTime(new Date());
+//                standard.setLastGenerateTime(new Date());
                 eamMaintenanceStandardService.updateById(standard);
             }
             quartzLog.setIsSuccess(0);
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
index 76c5711..806c6af 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
@@ -85,9 +85,9 @@
                     standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                 }
                 LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
-                if (standard.getLastGenerateTime() != null) {
-                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
-                }
+//                if (standard.getLastGenerateTime() != null) {
+//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
+//                }
                 //鍔犲懆鏈�
                 do {
                     //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
index 68f0ef2..ddec816 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
@@ -2,7 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper">
     <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard">
-        select ems.*, e.equipment_code, e.equipment_name
+        select ems.*, e.equipment_code, e.equipment_name,
+               e.equipment_model
         from eam_maintenance_standard ems
         inner join eam_equipment e
         on ems.equipment_id = e.id
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java
index d12e2ff..c392904 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java
@@ -7,6 +7,7 @@
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.jeecg.common.api.vo.FileUploadResult;
+import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -52,12 +53,12 @@
     /**鏂囦欢缂栧彿*/
     @ApiModelProperty(value = "鏂囦欢缂栧彿")
     private String fileCode;
-    /**鍙傝�冩枃浠�*/
-    @ApiModelProperty(value = "鍙傝�冩枃浠�")
-    private String referenceFile;
-    /**涓婁紶鏂囦欢瀵圭郴*/
-    @ApiModelProperty(value = "涓婁紶鏂囦欢瀵硅薄")
-    private List<FileUploadResult> fileList;
+    /**
+     * 淇濆吇鍛ㄦ湡鍗曚綅
+     */
+    @ApiModelProperty(value = "淇濆吇鍛ㄦ湡鍗曚綅")
+    @Dict(dicCode = "period_unit")
+    private String periodUnit;
     /**鍒楄〃 淇濆吇椤规槑缁�*/
     @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�")
     private List<EamMaintenanceStandardDetail> tableDetailList;
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
index c136e81..ba2d94e 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
@@ -3,8 +3,10 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
 import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
+import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo;
 
 import java.util.List;
 
@@ -64,4 +66,20 @@
      * @return
      */
     List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory);
+
+    /**
+     * 娴佺▼鍚姩,淇濆瓨瀵瑰簲鐨勬暟鎹�
+     * @param id
+     * @return
+     */
+    Result<?> saveEamMaintenanceStandardProcess(String id);
+
+
+    /**
+     * 瀹℃壒鎿嶄綔
+     * @param eamMaintenanceStandardVo
+     * @return
+     */
+    Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo);
+
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
index 14dfe0a..24de739 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -166,17 +166,6 @@
             });
             eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
         }
-        //澶勭悊闄勪欢
-        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) {
-            FileUploadResult fileUploadResult = eamInspectionOrderRequest.getFileList().get(0);
-            ObjectMapper mapper = new ObjectMapper();
-            try {
-                String referenceFile = mapper.writeValueAsString(fileUploadResult);
-                eamInspectionOrder.setImageFiles(referenceFile);
-            } catch (JsonProcessingException e) {
-                log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-            }
-        }
         if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
             triggerProcess(eamInspectionOrder);
         }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
index 6d30e4b..d69efd8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -1,35 +1,55 @@
 package org.jeecg.modules.eam.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.flowable.engine.TaskService;
+import org.flowable.task.api.Task;
 import org.jeecg.common.api.vo.FileUploadResult;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.eam.base.entity.BaseFactory;
+import org.jeecg.modules.eam.base.entity.BaseFactoryUser;
+import org.jeecg.modules.eam.base.service.IBaseFactoryService;
+import org.jeecg.modules.eam.base.service.IBaseFactoryUserService;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
 import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
+import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
 import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper;
 import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
+import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo;
+import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
+import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
+import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
+import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
+import org.jeecg.modules.flowable.service.IFlowDefinitionService;
+import org.jeecg.modules.flowable.service.IFlowTaskService;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.system.vo.UserSelector;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -38,15 +58,31 @@
  * @Date:   2025-03-26
  * @Version: V1.0
  */
-@Service
-public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService {
+@Service("IEamMaintenanceStandardService")
+public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService , FlowCallBackServiceI {
 
     @Resource
     private EamMaintenanceStandardMapper eamMaintenanceStandardMapper;
-
     @Autowired
     private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
-
+    @Autowired
+    private IBaseFactoryUserService baseFactoryUserService;
+    @Autowired
+    private IBaseFactoryService baseFactoryService;
+    @Resource
+    private FlowCommonService flowCommonService;
+    @Resource
+    private IFlowDefinitionService flowDefinitionService;
+    @Autowired
+    private IFlowTaskService flowTaskService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private IFlowMyBusinessService flowMyBusinessService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private IEamEquipmentService eamEquipmentService;
     @Override
     public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) {
         QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>();
@@ -56,13 +92,19 @@
         if (sysUser == null) {
             return page;
         }
-        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
+        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
-            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
             queryWrapper.in("e.equipment_code", equipArr);
         } else {
-            //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
-            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶�
+            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
+                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
+            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
+                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
+                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
+                queryWrapper.in("e.factory_code", factoryCode);
+            }
         }
         if(eamMaintenanceStandard != null) {
             //缂栫爜 妯$硦鏌ヨ
@@ -71,7 +113,7 @@
             }
             //鍚嶇О 妯$硦鏌ヨ
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) {
-                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode());
+                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardName());
             }
             //璁惧
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) {
@@ -100,13 +142,8 @@
     @Transactional(rollbackFor = Exception.class)
     public boolean addMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) {
         EamMaintenanceStandard entity = new EamMaintenanceStandard();
-        entity.setStandardCode(standardRequest.getStandardCode());
-        entity.setStandardName(standardRequest.getStandardName());
-        entity.setMaintenanceCategory(standardRequest.getMaintenanceCategory());
-        entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod());
-        entity.setInitialDate(standardRequest.getInitialDate());
-        entity.setFileCode(standardRequest.getFileCode());
-        entity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name());
+        BeanUtils.copyProperties(standardRequest, entity);
+        entity.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
         //鐗堟湰閫掑
         entity.setStandardVersion(CommonConstant.OPERATE_TYPE_1);
         //璁惧澶勭悊
@@ -117,17 +154,6 @@
         EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory());
         if(exist != null){
             throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�");
-        }
-        //澶勭悊闄勪欢
-        if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) {
-            FileUploadResult fileUploadResult = standardRequest.getFileList().get(0);
-            ObjectMapper mapper = new ObjectMapper();
-            try {
-                String referenceFile = mapper.writeValueAsString(fileUploadResult);
-                entity.setReferenceFile(referenceFile);
-            } catch (JsonProcessingException e) {
-                log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-            }
         }
         eamMaintenanceStandardMapper.insert(entity);
         //澶勭悊鏄庣粏鏁版嵁
@@ -149,20 +175,6 @@
         }
         entity.setStandardName(standardRequest.getStandardName());
         entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod());
-        entity.setFileCode(standardRequest.getFileCode());
-        //澶勭悊闄勪欢
-        if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) {
-            FileUploadResult fileUploadResult = standardRequest.getFileList().get(0);
-            ObjectMapper mapper = new ObjectMapper();
-            try {
-                String referenceFile = mapper.writeValueAsString(fileUploadResult);
-                entity.setReferenceFile(referenceFile);
-            } catch (JsonProcessingException e) {
-                log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-            }
-        }else {
-            entity.setReferenceFile(null);
-        }
         eamMaintenanceStandardMapper.updateById(entity);
         //澶勭悊璇︽儏
         if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) {
@@ -208,8 +220,7 @@
         newEntity.setMaintenanceCategory(standardRequest.getMaintenanceCategory());
         newEntity.setMaintenancePeriod(standardRequest.getMaintenancePeriod());
         newEntity.setInitialDate(standardRequest.getInitialDate());
-        newEntity.setFileCode(standardRequest.getFileCode());
-        newEntity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name());
+        newEntity.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
         //鐗堟湰閫掑
         newEntity.setStandardVersion(entity.getStandardVersion() + 1);
         //璁惧澶勭悊
@@ -220,17 +231,6 @@
         EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory());
         if(exist != null){
             throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�");
-        }
-        //澶勭悊闄勪欢
-        if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) {
-            FileUploadResult fileUploadResult = standardRequest.getFileList().get(0);
-            ObjectMapper mapper = new ObjectMapper();
-            try {
-                String referenceFile = mapper.writeValueAsString(fileUploadResult);
-                newEntity.setReferenceFile(referenceFile);
-            } catch (JsonProcessingException e) {
-                log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-            }
         }
         eamMaintenanceStandardMapper.insert(newEntity);
         //澶勭悊鏄庣粏鏁版嵁
@@ -254,7 +254,7 @@
         queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId);
         queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
         queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
-        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
+        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
         queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion);
 
         List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper);
@@ -277,7 +277,7 @@
         query.setEquipmentId(equipmentId);
         query.setKeyword(keyword);
         query.setMaintenanceCategory(maintenanceCategory);
-        query.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name());
+        query.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
         IPage<EamMaintenanceStandard> pageData = this.queryPageList(page, query);
         return pageData.getRecords();
     }
@@ -287,7 +287,192 @@
         LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
         queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
-        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
+        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
         return eamMaintenanceStandardMapper.selectList(queryWrapper);
     }
+
+
+    /*娴佺▼涓氬姟浠g爜--------------------------寮�濮�*/
+
+    /**
+     * 娴佺▼鍚姩,淇濆瓨瀵瑰簲鐨勬暟鎹�
+     * @param id
+     * @return
+     */
+    @Override
+    public Result<?> saveEamMaintenanceStandardProcess(String id){
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        EamMaintenanceStandard maintenanceStandard=this.getById(id);
+        if (maintenanceStandard==null){
+            return Result.error("鏈壘鍒板搴斾繚鍏绘爣鍑�");
+        }
+        System.out.println("淇濆吇瑙勮寖娴佺▼锛�" + maintenanceStandard.getId());
+        flowCommonService.initActBusiness(maintenanceStandard.getStandardName()+"瑙勮寖杩涜娴佺▼瀹℃牳",
+                maintenanceStandard.getId(), "IEamMaintenanceStandardService", "eam_maintenance_standard", null);
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("dataId", maintenanceStandard.getId());
+        variables.put("organization", "淇濆吇瑙勮寖鍚姩娴佺▼");
+        variables.put("comment", "淇濆吇瑙勮寖鍚姩娴佺▼");
+        variables.put("proofreading",true);
+        Result result= flowDefinitionService.startProcessInstanceByKey("eam_maintenance_standard", variables);
+        if (!result.isSuccess()) {
+            super.removeById(maintenanceStandard.getId());
+        }else {
+            maintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_REPAIR_DIRECTOR.name());
+            maintenanceStandard.setDesigner(user.getUsername());
+            maintenanceStandard.setDesignTime(new Date());
+            eamMaintenanceStandardMapper.updateById(maintenanceStandard);
+            //鑾峰彇flow鐨勬祦绋嬪疄渚媔d,璁剧疆涓嬩竴姝ョ殑澶勭悊浜哄憳
+            List<FlowMyBusiness> businessList = flowMyBusinessService.list(
+                    new QueryWrapper<FlowMyBusiness>()
+                            .eq("data_id", maintenanceStandard.getId())
+            );
+            if (businessList.isEmpty()) {
+                return Result.error("娴佺▼璁板綍涓嶅瓨鍦�");
+            }
+            FlowMyBusiness flowMyBusiness = businessList.get(0);
+            EamEquipment eamEquipment=eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
+            BaseFactory baseFactory=baseFactoryService.getOne(new QueryWrapper<BaseFactory>().eq("org_code", eamEquipment.getFactoryOrgCode()));
+            List<UserSelector> userSelectorList=sysUserService.selectOperatorFactoryList(eamEquipment.getEquipmentCode(),baseFactory.getId(), BusinessCodeConst.PCR0007);
+            if (!CollectionUtils.isEmpty(userSelectorList)) {
+                List<String> usernameList=userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                flowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList));
+                flowMyBusinessService.updateById(flowMyBusiness);
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 瀹℃壒鎿嶄綔
+     * @param eamMaintenanceStandardVo
+     * @return
+     */
+    @Override
+    public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo){
+        try {
+            // 鍙傛暟鏍¢獙
+            if (StrUtil.isEmpty(eamMaintenanceStandardVo.getTaskId()) || StrUtil.isEmpty(eamMaintenanceStandardVo.getDataId())) {
+                return Result.error("鍙傛暟閿欒");
+            }
+            LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+            String userId = user.getId();
+            eamMaintenanceStandardVo.setAssignee(user.getUsername());
+            if (StrUtil.isEmpty(userId)) {
+                return Result.error("鏈壘鍒板搴旂敤鎴�");
+            }
+
+            // 鏁版嵁鏌ヨ
+            EamMaintenanceStandard eamMaintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId());
+            if (eamMaintenanceStandard == null) {
+                return Result.error("鏈壘鍒板搴斾繚鍏绘爣鍑�");
+            }
+
+            // 2. 鏌ヨ娴佺▼涓氬姟璁板綍锛堝鐞嗙┖缁撴灉锛�
+            List<FlowMyBusiness> businessList = flowMyBusinessService.list(
+                    new QueryWrapper<FlowMyBusiness>()
+                            .eq("process_instance_id", eamMaintenanceStandardVo.getInstanceId())
+            );
+            if (businessList.isEmpty()) {
+                return Result.error("娴佺▼璁板綍涓嶅瓨鍦�");
+            }
+            FlowMyBusiness flowMyBusiness = businessList.get(0);
+
+            // 3. 鏍¢獙鐢ㄦ埛鏄惁涓哄�欓�夊鐞嗕汉
+            List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
+            if (todoUsers == null || !todoUsers.contains(user.getUsername())) {
+                return Result.error("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�");
+            }
+
+            // 4. 璁ら浠诲姟锛堝鐞嗗凡琚棰嗙殑鎯呭喌锛�
+            String taskId = flowMyBusiness.getTaskId();
+            Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+            if (task == null) {
+                return Result.error("浠诲姟涓嶅瓨鍦ㄦ垨宸插畬鎴�");
+            }
+            if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) {
+                return Result.error("浠诲姟宸茶浠栦汉璁ら");
+            }
+            taskService.claim(taskId, user.getUsername());
+
+            // 璁剧疆娴佺▼鍙橀噺
+            Map<String, Object> values = setProcessVariables(eamMaintenanceStandard, userId, eamMaintenanceStandardVo);
+            eamMaintenanceStandardVo.setValues(values);
+
+            // 瀹屾垚娴佺▼浠诲姟
+            Result result = flowTaskService.complete(eamMaintenanceStandardVo);
+            if (result.isSuccess()) {
+                if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
+                    if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")){
+                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_TECHNICAL_DIRECTOR.name());
+                    }else {
+                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
+                    }
+                    eamMaintenanceStandard.setRepairManager(user.getUsername());
+                    eamMaintenanceStandard.setRepairManagerApproveResult(eamMaintenanceStandardVo.getRepairManagerApproveResult());
+                    eamMaintenanceStandard.setRepairManagerApproveTime(new Date());
+                    eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment());
+                }
+                if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) {
+                    if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")){
+                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name());
+                    }else {
+                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
+                    }
+                    eamMaintenanceStandard.setTechnicalManager(user.getUsername());
+                    eamMaintenanceStandard.setTechnicalManagerApproveResult(eamMaintenanceStandardVo.getTechnicalManagerApproveResult());
+                    eamMaintenanceStandard.setTechnicalManagerApproveTime(new Date());
+                    eamMaintenanceStandard.setTechnicalManagerApproveComment(eamMaintenanceStandardVo.getComment());
+                }
+                this.updateById(eamMaintenanceStandard);
+            } else {
+                return result;
+            }
+
+            return Result.OK("鎿嶄綔鎴愬姛");
+        } catch (Exception e) {
+            return Result.error("鎿嶄綔澶辫触锛�" + e.getMessage());
+        }
+    }
+
+    private Map<String, Object> setProcessVariables(EamMaintenanceStandard eamMaintenanceStandard, String userId, EamMaintenanceStandardVo eamMaintenanceStandardVo) {
+        Map<String, Object> values = new HashMap<>();
+        values.put("dataId", eamMaintenanceStandard.getId());
+        values.put("assignee", userId);
+        values.put("organization", eamMaintenanceStandardVo.getComment());
+        values.put("comment", eamMaintenanceStandardVo.getComment());
+        if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
+            values.put("repairManagerApproveResult", eamMaintenanceStandardVo.getRepairManagerApproveResult());
+        }
+        if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) {
+            values.put("technicalManagerApproveResult", eamMaintenanceStandardVo.getTechnicalManagerApproveResult());
+        }
+        return values;
+    }
+
+
+    @Override
+    public void afterFlowHandle(FlowMyBusiness business) {
+        business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣
+        business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟
+        business.getActStatus();
+    }
+
+    @Override
+    public Object getBusinessDataById(String dataId) {
+        return this.getById(dataId);
+    }
+
+    @Override
+    public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) {
+        return null;
+    }
+
+    @Override
+    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
+        //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞�
+        return null;
+    }
+
+    /*娴佺▼涓氬姟浠g爜--------------------------缁撴潫*/
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java
new file mode 100644
index 0000000..f29eeff
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java
@@ -0,0 +1,95 @@
+package org.jeecg.modules.eam.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 淇濆吇鏍囧噯
+ * @Author: jeecg-boot
+ * @Date: 2025-03-26
+ * @Version: V1.0
+ */
+@Data
+@ApiModel(description = "淇濆吇鏍囧噯---宸ヤ綔娴佺浉鍏�")
+public class EamMaintenanceStandardVo extends FlowTaskVo {
+
+    /**
+     * 缂栧埗浜�
+     */
+    @ApiModelProperty(value = "缂栧埗浜�")
+    private String designer;
+    /**
+     * 缂栧埗鏃ユ湡
+     */
+    @ApiModelProperty(value = "缂栧埗鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date designTime;
+    /**
+     * 缁翠慨涓讳换
+     */
+    @ApiModelProperty(value = "缁翠慨涓讳换")
+    private String repairManager;
+    /**
+     * 缁翠慨涓讳换瀹℃壒缁撴灉
+     */
+    @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒缁撴灉")
+    private String repairManagerApproveResult;
+    /**
+     * 缁翠慨涓讳换瀹℃壒鏃堕棿
+     */
+    @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒鏃堕棿")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date repairManagerApproveTime;
+    /**
+     * 缁翠慨涓讳换瀹℃壒鎰忚
+     */
+    @ApiModelProperty(value = "缁翠慨涓讳换瀹℃壒鎰忚")
+    private String repairManagerApproveComment;
+    /**
+     * 鎶�鏈富绠�
+     */
+    @ApiModelProperty(value = "鎶�鏈富绠�")
+    private String technicalManager;
+    /**
+     * 鎶�鏈富绠″鎵圭粨鏋�
+     */
+    @ApiModelProperty(value = "鎶�鏈富绠″鎵圭粨鏋�")
+    private String technicalManagerApproveResult;
+    /**
+     * 鎶�鏈富绠″鎵规椂闂�
+     */
+    @ApiModelProperty(value = "鎶�鏈富绠″鎵规椂闂�")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date technicalManagerApproveTime;
+    /**
+     * 鎶�鏈富绠″鎵规剰瑙�
+     */
+    @ApiModelProperty(value = "鎶�鏈富绠″鎵规剰瑙�")
+    private String technicalManagerApproveComment;
+    //鍒楄〃灞曠ず
+    @TableField(exist = false)
+    private String equipmentCode;
+    @TableField(exist = false)
+    private String equipmentName;
+    @TableField(exist = false)
+    private String keyword;
+    @TableField(exist = false)
+    private String equipmentModel;
+}
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
index 573a864..7f4bc94 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
@@ -352,6 +352,15 @@
 
 	/**
 	 * 閫夋嫨鐢ㄦ埛
+	 * @param equipmentCode 閫夋嫨鐨勮澶嘔D
+	 * @param factoryId 閫夋嫨鐨勮溅闂碔D
+	 * @param positionCode 宀椾綅缂栧彿
+	 * @return
+	 */
+	List<UserSelector> selectOperatorFactoryList(String equipmentCode, String factoryId, String positionCode);
+
+	/**
+	 * 閫夋嫨鐢ㄦ埛
 	 * @param positionCode 宀椾綅缂栧彿
 	 * @return
 	 */
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
index 064343b..7f1e65b 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -791,6 +791,31 @@
 		return collect;
 	}
 
+	/**
+	 * 閫夋嫨鐢ㄦ埛
+	 * @param equipmentCode 閫夋嫨鐨勮澶嘔D
+	 * @param factoryId 閫夋嫨鐨勫伐鍘侷D
+	 * @param positionCode 宀椾綅缂栧彿
+	 * @return
+	 */
+	@Override
+	public List<UserSelector> selectOperatorFactoryList(String equipmentCode, String factoryId, String positionCode){
+		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(SysUser::getPost, positionCode);
+//		if(StringUtils.isNotBlank(equipmentCode)) {
+//			queryWrapper.and(q -> q.isNull(SysUser::getEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEquipmentIds, equipmentCode));
+//		}
+//		if(StringUtils.isNotBlank(factoryId)) {
+//			queryWrapper.exists("select 1 from eam_base_factory_user t where t.user_id=sys_user.id and t.factory_id={0}", factoryId);
+//		}
+		queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
+		queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1);
+		queryWrapper.orderByDesc(SysUser::getId);
+		List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
+		List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
+		return collect;
+	}
+
 	@Override
 	public List<UserSelector> selectOperatorList(String positionCode) {
 		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();

--
Gitblit v1.9.3