From 63998f305e26b10676dad4f836b0987c55160489 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期一, 21 四月 2025 15:07:06 +0800
Subject: [PATCH] 维修流程处理

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java         |   80 +++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java         |   11 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java          |   67 +++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java            |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java |  188 ++++++++++++++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java    |   44 +++---
 lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java        |    4 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java     |    4 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java       |   11 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeComputeVo.java                     |    4 
 10 files changed, 385 insertions(+), 30 deletions(-)

diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
index 1d770de..91ff967 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
@@ -7,4 +7,15 @@
     WAIT_CONFIRM, // 寰呯‘璁�
     COMPLETE, // 宸插畬鎴�
     ABOLISH, // 宸蹭綔搴�
+    ;
+
+    public static ReportRepairEnum getInstance(String code) {
+        ReportRepairEnum[] values = ReportRepairEnum.values();
+        for (ReportRepairEnum value : values) {
+            if (value.name().equals(code)) {
+                return value;
+            }
+        }
+        return null;
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
index 51e38a0..2378ea9 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
@@ -1,32 +1,21 @@
 package org.jeecg.modules.eam.controller;
 
-import java.util.Arrays;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import cn.hutool.core.util.StrUtil;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.constant.CommonConstant;
-import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.eam.constant.BusinessCodeConst;
-import org.jeecg.modules.eam.constant.ReportRepairEnum;
 import org.jeecg.modules.eam.entity.EamRepairOrder;
-import org.jeecg.modules.eam.entity.EamReportRepair;
 import org.jeecg.modules.eam.request.EamRepairOrderQuery;
+import org.jeecg.modules.eam.request.EamRepairOrderRequest;
+import org.jeecg.modules.eam.request.EamRepairOrderResponse;
 import org.jeecg.modules.eam.service.IEamRepairOrderService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.modules.eam.service.IEamReportRepairService;
-import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
-import org.jeecg.modules.mdc.util.DateUtils;
-import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 import io.swagger.annotations.Api;
@@ -82,18 +71,27 @@
     }
 
     /**
-     * 鎵ц缁翠慨
+     * 鎴戠殑寰呭姙 鎵ц/瀹℃壒
      *
-     * @param eamRepairOrder
+     * @param request
      * @return
      */
-    @AutoLog(value = "缁翠慨宸ュ崟-鎵ц")
-    @ApiOperation(value = "缁翠慨宸ュ崟-鎵ц", notes = "缁翠慨宸ュ崟-鎵ц")
+    @AutoLog(value = "缁翠慨宸ュ崟-鎵ц/瀹℃壒")
+    @ApiOperation(value = "缁翠慨宸ュ崟-鎵ц/瀹℃壒", notes = "缁翠慨宸ュ崟-鎵ц/瀹℃壒")
     @PostMapping(value = "/perform")
-    public Result<?> perform(@RequestBody EamRepairOrder eamRepairOrder) {
-
-//        eamRepairOrderService.updateById(eamRepairOrder);
-        return Result.OK("鎵ц鎴愬姛!");
+    public Result<?> perform(@RequestBody EamRepairOrderRequest request) {
+        if (request == null) {
+            return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒");
+        }
+        // 妫�鏌ヨ姹傚弬鏁�
+        if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
+            return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�");
+        }
+        EamRepairOrder b = eamRepairOrderService.perform(request);
+        if(b == null) {
+            return Result.error("鎿嶄綔澶辫触锛�");
+        }
+        return Result.OK("鎿嶄綔鎴愬姛!");
     }
 
     /**
@@ -106,7 +104,7 @@
     @ApiOperation(value = "缁翠慨宸ュ崟-閫氳繃id鏌ヨ", notes = "缁翠慨宸ュ崟-閫氳繃id鏌ヨ")
     @GetMapping(value = "/queryById")
     public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
-        EamRepairOrder eamRepairOrder = eamRepairOrderService.getById(id);
+        EamRepairOrderResponse eamRepairOrder = eamRepairOrderService.findById(id);
         return Result.OK(eamRepairOrder);
     }
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java
index 9726bcc..45a6ad2 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.eam.request;
 
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -24,5 +25,6 @@
     /**
      * 璁惧缂栫爜
      */
+    @ApiModelProperty(value = "璁惧缂栫爜")
     private String equipmentCode;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
new file mode 100644
index 0000000..957b2ec
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
@@ -0,0 +1,67 @@
+package org.jeecg.modules.eam.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+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.flowable.domain.vo.FlowTaskVo;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-04-21
+ * @Description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class EamRepairOrderRequest extends FlowTaskVo implements Serializable {
+
+    private static final long serialVersionUID = 3844096033304425984L;
+
+    /**涓婚敭*/
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+
+    /**璁惧ID*/
+    @ApiModelProperty(value = "璁惧ID")
+    private String equipmentId;
+
+    /**
+     * 缁翠慨鐘舵��
+     */
+    @ApiModelProperty(value = "缁翠慨鐘舵��")
+    private String repairStatus;
+
+    /**
+     * 鏄惁闇�瑕侀鐢ㄥ浠�  1:鏄�  0:鍚�
+     */
+    @ApiModelProperty(value = "鏄惁闇�瑕侀鐢ㄥ浠�")
+    private Integer status;
+
+    /**
+     * 鏁呴殰鍘熷洜
+     */
+    @ApiModelProperty(value = "鏁呴殰鍘熷洜")
+    private String faultReason;
+    /**
+     * 缁翠慨缁撴灉鎻忚堪
+     */
+    @ApiModelProperty(value = "缁翠慨缁撴灉鎻忚堪")
+    private String repairDescription;
+
+    /**
+     * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧
+     */
+    @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧")
+    private String imageFiles;
+
+    /**缁翠慨鍥剧墖*/
+    @ApiModelProperty(value = "缁翠慨鍥剧墖闆嗗悎")
+    private List<FileUploadResult> imageFilesResult;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java
new file mode 100644
index 0000000..15b0dd3
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java
@@ -0,0 +1,80 @@
+package org.jeecg.modules.eam.request;
+
+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.eam.entity.EamRepairOrder;
+import org.jeecg.modules.eam.entity.EamReportRepair;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.beans.BeanUtils;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-04-21
+ * @Description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="杩斿洖瀵硅薄", description="缁翠慨宸ュ崟璇︾粏")
+public class EamRepairOrderResponse extends EamRepairOrder implements Serializable {
+
+    private static final long serialVersionUID = 367152649525625307L;
+
+    /**
+     * 鏁呴殰寮�濮嬫椂闂�
+     */
+    @ApiModelProperty(value = "鏁呴殰寮�濮嬫椂闂�")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date faultStartTime;
+    /**
+     * 鏄惁鍋滄満
+     */
+    @ApiModelProperty(value = "鏄惁鍋滄満")
+    @Dict(dicCode = "breakdown_flag")
+    private String breakdownFlag;
+    /**
+     * 鏁呴殰绠�绉�
+     */
+    @ApiModelProperty(value = "鏁呴殰绠�绉�")
+    private String faultName;
+    /**
+     * 鏁呴殰鍒嗙被
+     */
+    @ApiModelProperty(value = "鏁呴殰鍒嗙被")
+    @Dict(dicCode = "fault_reason_category")
+    private String faultType;
+    /**
+     * 鏁呴殰鎻忚堪
+     */
+    @ApiModelProperty(value = "鏁呴殰鎻忚堪")
+    private String faultDescription;
+    /**
+     * 鎶ヤ慨鐘舵��
+     */
+    @ApiModelProperty(value = "鎶ヤ慨鐘舵��")
+    @Dict(dicCode = "report_repair_status")
+    private String reportStatus;
+    /**
+     * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧
+     */
+    @ApiModelProperty(value = "鎶ヤ慨鐓х墖")
+    private String reportImageFiles;
+
+    /**
+     * 澶囨敞
+     */
+    @Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
index 6af321b..547bccb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
@@ -5,6 +5,8 @@
 import org.jeecg.modules.eam.entity.EamRepairOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.eam.request.EamRepairOrderQuery;
+import org.jeecg.modules.eam.request.EamRepairOrderRequest;
+import org.jeecg.modules.eam.request.EamRepairOrderResponse;
 
 /**
  * @Description: 缁翠慨宸ュ崟
@@ -26,4 +28,13 @@
      * @param eamRepairOrder
      */
     void saveRepairOrder(EamRepairOrder eamRepairOrder);
+
+    /**
+     * 娴佺▼鎿嶄綔
+     * @param request
+     * @return
+     */
+    EamRepairOrder perform(EamRepairOrderRequest request);
+
+    EamRepairOrderResponse findById(String id);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
index 5bcf4b8..d3f73f0 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -1,28 +1,48 @@
 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.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.aspect.annotation.EquipmentHistoryLog;
 import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
 import org.jeecg.modules.eam.constant.ReportRepairEnum;
+import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
 import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamRepairOrder;
 import org.jeecg.modules.eam.entity.EamReportRepair;
 import org.jeecg.modules.eam.mapper.EamRepairOrderMapper;
 import org.jeecg.modules.eam.request.EamRepairOrderQuery;
+import org.jeecg.modules.eam.request.EamRepairOrderRequest;
+import org.jeecg.modules.eam.request.EamRepairOrderResponse;
 import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IEamRepairOrderService;
 import org.jeecg.modules.eam.service.IEamReportRepairService;
 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.mdc.util.DateUtils;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,6 +73,18 @@
 
     @Resource
     private IEamEquipmentService eamEquipmentService;
+
+    @Resource
+    private IFlowMyBusinessService flowMyBusinessService;
+
+    @Resource
+    private TaskService taskService;
+
+    @Resource
+    private IFlowTaskService flowTaskService;
+
+    @Resource
+    private ISysUserService sysUserService;
 
     /**
      * 鍒嗛〉鍒楄〃
@@ -113,6 +145,160 @@
         }
     }
 
+    /**
+     * 娴佺▼鎿嶄綔
+     *
+     * @param request
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPAIRED, businessTable = "eam_repair_order")
+    public EamRepairOrder perform(EamRepairOrderRequest request) {
+        EamRepairOrder eamRepairOrder = this.baseMapper.selectById(request.getId());
+        if (eamRepairOrder == null) {
+            throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
+        }
+        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (user == null || StrUtil.isBlank(user.getId())) {
+            throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒");
+        }
+        request.setAssignee(user.getUsername());
+        // 鑾峰彇娴佺▼涓氬姟璁板綍
+        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId());
+        if (flowMyBusiness == null) {
+            throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�");
+        }
+        boolean userAuthorized = isUserAuthorized(flowMyBusiness, user);
+        if (!userAuthorized) {
+            throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�");
+        }
+        // 璁ら浠诲姟
+        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
+            throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒");
+        }
+        EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
+        }
+
+        ReportRepairEnum status = ReportRepairEnum.getInstance(request.getRepairStatus());
+        if (status == null) {
+            return null;
+        }
+        //娴佺▼鍙橀噺
+        Map<String, Object> values = new HashMap<>();
+        switch (status) {
+            case UNDER_REPAIR:
+                //缁翠慨涓細涓嬩竴姝� 鍒ゆ柇鏄惁闇�瑕佸浠�, 闇�瑕佸浠惰浆璁惧绠$悊鍛橀鐢ㄥ浠�, 涓嶉渶瑕佸垯杞埌璁惧鎶ヤ慨鍛樼‘璁ょ淮淇畬鎴�
+                if (request.getStatus() == 1) {
+                    // 闇�瑕�
+                    List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
+                    if (CollectionUtil.isEmpty(userSelectors)) {
+                        throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+                    }
+                    values.put("dataId", eamRepairOrder.getId());
+                    values.put("organization", "缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
+                    values.put("comment", "缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
+                    values.put("NextAssignee", userSelectors);
+                    values.put("status", 1);
+                    request.setComment("缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
+                    eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_SPARES.name());
+                } else {
+                    // 涓嶉渶瑕�
+                    EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+                    values.put("dataId", eamRepairOrder.getId());
+                    values.put("organization", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                    values.put("comment", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                    values.put("NextAssignee", eamReportRepair.getCreateBy());
+                    values.put("status", 0);
+                    request.setComment("缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                    eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                    eamRepairOrder.setFaultReason(request.getFaultReason());
+                    eamRepairOrder.setRepairDescription(request.getRepairDescription());
+                    // 澶勭悊闄勪欢
+                    if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                        List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                        ObjectMapper mapper = new ObjectMapper();
+                        try {
+                            String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                            eamRepairOrder.setImageFiles(referenceFile);
+                        } catch (JsonProcessingException e) {
+                            log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                        }
+                    }
+                }
+                break;
+            case WAIT_SPARES:
+                // 绛夊浠�, 绠$悊鍛樼‘璁ゅ浠跺埌浣嶏紝娴佺▼杞埌缁翠慨鍛樼户缁淮淇�,鐘舵�佽浆涓虹淮淇腑
+                values.put("dataId", eamRepairOrder.getId());
+                values.put("organization", "缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�");
+                values.put("comment", "缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�");
+                values.put("NextAssignee", eamRepairOrder.getRepairer());
+                values.put("status", 0);
+                request.setComment("缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�");
+                eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
+                break;
+            case WAIT_CONFIRM:
+                // 寰呯‘璁�, 缁翠慨鍛樼淮淇畬鎴愶紝鎶ヤ慨浜虹‘璁ょ粨鏉熸祦绋�
+                EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+                values.put("dataId", eamRepairOrder.getId());
+                values.put("organization", "缁翠慨宸ュ崟娴佺▼缁撴潫");
+                values.put("comment", "缁翠慨宸ュ崟娴佺▼缁撴潫");
+                values.put("NextAssignee", eamReportRepair.getCreateBy());
+                values.put("status", 0);
+                request.setComment("缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                eamRepairOrder.setRepairStatus(ReportRepairEnum.COMPLETE.name());
+                eamRepairOrder.setActualEndTime(new Date());
+                break;
+        }
+        request.setValues(values);
+
+        // 瀹屾垚娴佺▼浠诲姟
+        Result result = flowTaskService.complete(request);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
+        }
+        //淇濆瓨宸ュ崟
+        this.baseMapper.updateById(eamRepairOrder);
+        return eamRepairOrder;
+    }
+
+    @Override
+    public EamRepairOrderResponse findById(String id) {
+        EamRepairOrderResponse eamRepairOrderResponse = new EamRepairOrderResponse();
+        EamRepairOrder eamRepairOrder = this.baseMapper.selectById(id);
+        BeanUtils.copyProperties(eamRepairOrder, eamRepairOrderResponse);
+        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+        BeanUtils.copyProperties(eamReportRepair, eamRepairOrderResponse);
+        eamRepairOrderResponse.setReportImageFiles(eamReportRepair.getImageFiles());
+        return eamRepairOrderResponse;
+    }
+
+    private boolean claimTask(String taskId, LoginUser user) {
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        if (task == null) {
+            return false;
+        }
+        if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) {
+            return false;
+        }
+        taskService.claim(taskId, user.getUsername());
+        return true;
+    }
+
+    /**
+     * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁姝ゆ潈闄�
+     * @param flowMyBusiness
+     * @param user
+     * @return
+     */
+    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
+        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
+        return todoUsers != null && todoUsers.contains(user.getUsername());
+    }
+
 
     @Override
     public void afterFlowHandle(FlowMyBusiness business) {
@@ -132,7 +318,7 @@
     @Override
     public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
         //鑾峰彇涓嬩竴姝ュ鐞嗕汉
-        Object object=values.get("NextAssignee");
+        Object object = values.get("NextAssignee");
         return (List<String>) object;
     }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
index 550d3f4..8a0648b 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
@@ -169,8 +169,8 @@
     @Transactional(rollbackFor = Exception.class)
     public void computeOee(MdcOeeComputeVo mdcOeeComputeVo) {
         List<MdcOeeInfo> result = new ArrayList<>();
-        String startDate = mdcOeeComputeVo.getStartDate();
-        String endDate = mdcOeeComputeVo.getEndDate();
+        String startDate = mdcOeeComputeVo.getStartTime();
+        String endDate = mdcOeeComputeVo.getEndTime();
         List<String> dateList = DateUtils.getDatesStringList(DateUtils.getShortDate(startDate), DateUtils.getShortDate(endDate));
         if (!dateList.isEmpty()) {
             //鑾峰彇璁惧鍒楄〃
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeComputeVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeComputeVo.java
index b23a4c9..bc8f5f4 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeComputeVo.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeComputeVo.java
@@ -8,6 +8,6 @@
  */
 @Data
 public class MdcOeeComputeVo {
-    private String startDate;
-    private String endDate;
+    private String startTime;
+    private String endTime;
 }
diff --git a/lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java b/lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java
index 2e783c1..50f161e 100644
--- a/lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java
+++ b/lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java
@@ -1,7 +1,7 @@
 package org.jeecg;
 
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
 import lombok.extern.slf4j.Slf4j;
-import org.flowable.spring.boot.eventregistry.EventRegistryServicesAutoConfiguration;
 import org.jeecg.common.util.oConvertUtils;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration;
@@ -21,7 +21,7 @@
 */
 @Slf4j
 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class,
-        ManagementWebSecurityAutoConfiguration.class, EventRegistryServicesAutoConfiguration.class})
+        ManagementWebSecurityAutoConfiguration.class, DruidDataSourceAutoConfigure.class})
 public class JeecgSystemApplication extends SpringBootServletInitializer {
 
     @Override

--
Gitblit v1.9.3