From befc2c71a29f225aaa707c90effc03c67c8ac964 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期三, 09 四月 2025 11:38:41 +0800
Subject: [PATCH] 维修工单

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java         |    5 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java                  |    1 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java |   99 +++++++++++++++++++++++++++++++-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java    |   64 +++------------------
 4 files changed, 109 insertions(+), 60 deletions(-)

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 e30c5b6..3b830f4 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
@@ -22,6 +22,7 @@
 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;
@@ -44,12 +45,6 @@
     @Resource
     private IEamRepairOrderService eamRepairOrderService;
 
-    @Resource
-    private ISysBusinessCodeRuleService businessCodeRuleService;
-
-    @Resource
-    private IEamReportRepairService eamReportRepairService;
-
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
      *
@@ -58,7 +53,6 @@
      * @param pageSize
      * @return
      */
-    @AutoLog(value = "缁翠慨宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ")
     @ApiOperation(value = "缁翠慨宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ", notes = "缁翠慨宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ")
     @GetMapping(value = "/list")
     public Result<?> queryPageList(EamRepairOrder eamRepairOrder,
@@ -82,63 +76,23 @@
         if (StringUtils.isBlank(eamRepairOrder.getReportId())) {
             return Result.error("棰嗗彇澶辫触,璇烽�夋嫨缁翠慨璁板綍锛�");
         }
-        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
-        eamRepairOrder.setRepairCode(codeSeq);
-        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
-        eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
-        eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
-        eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name());
-        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
-        eamRepairOrder.setActualStartTime(DateUtils.getNow());
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        eamRepairOrder.setRepairer(user.getRealname());
-        eamReportRepairService.updateById(eamReportRepair);
-        eamRepairOrderService.save(eamRepairOrder);
-        // TODO 鍚姩娴佺▼
-
+        eamRepairOrderService.saveRepairOrder(eamRepairOrder);
         return Result.OK("娣诲姞鎴愬姛锛�");
     }
 
     /**
-     * 缂栬緫
+     * 鎵ц缁翠慨
      *
      * @param eamRepairOrder
      * @return
      */
-    @AutoLog(value = "缁翠慨宸ュ崟-缂栬緫")
-    @ApiOperation(value = "缁翠慨宸ュ崟-缂栬緫", notes = "缁翠慨宸ュ崟-缂栬緫")
-    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
-    public Result<?> edit(@RequestBody EamRepairOrder eamRepairOrder) {
-        eamRepairOrderService.updateById(eamRepairOrder);
-        return Result.OK("缂栬緫鎴愬姛!");
-    }
+    @AutoLog(value = "缁翠慨宸ュ崟-鎵ц")
+    @ApiOperation(value = "缁翠慨宸ュ崟-鎵ц", notes = "缁翠慨宸ュ崟-鎵ц")
+    @PostMapping(value = "/perform")
+    public Result<?> perform(@RequestBody EamRepairOrder eamRepairOrder) {
 
-    /**
-     * 閫氳繃id鍒犻櫎
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "缁翠慨宸ュ崟-閫氳繃id鍒犻櫎")
-    @ApiOperation(value = "缁翠慨宸ュ崟-閫氳繃id鍒犻櫎", notes = "缁翠慨宸ュ崟-閫氳繃id鍒犻櫎")
-    @DeleteMapping(value = "/delete")
-    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
-        eamRepairOrderService.removeById(id);
-        return Result.OK("鍒犻櫎鎴愬姛!");
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎
-     *
-     * @param ids
-     * @return
-     */
-    @AutoLog(value = "缁翠慨宸ュ崟-鎵归噺鍒犻櫎")
-    @ApiOperation(value = "缁翠慨宸ュ崟-鎵归噺鍒犻櫎", notes = "缁翠慨宸ュ崟-鎵归噺鍒犻櫎")
-    @DeleteMapping(value = "/deleteBatch")
-    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        this.eamRepairOrderService.removeByIds(Arrays.asList(ids.split(",")));
-        return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�");
+//        eamRepairOrderService.updateById(eamRepairOrder);
+        return Result.OK("鎵ц鎴愬姛!");
     }
 
     /**
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
index ad67170..9d50b04 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
@@ -58,6 +58,7 @@
      */
     @Excel(name = "缁翠慨鐘舵��", width = 15)
     @ApiModelProperty(value = "缁翠慨鐘舵��")
+    @Dict(dicCode = "report_repair_status")
     private String repairStatus;
     /**
      * 缁翠慨寮�濮嬫椂闂�
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 0382d2c..c04f23e 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
@@ -20,4 +20,9 @@
      */
     IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrder eamRepairOrder);
 
+    /**
+     * 棰嗗彇宸ュ崟锛屽惎鍔ㄧ淮淇祦绋�
+     * @param eamRepairOrder
+     */
+    void saveRepairOrder(EamRepairOrder eamRepairOrder);
 }
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 5612c98..314cd31 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
@@ -4,25 +4,54 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.vo.LoginUser;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.ReportRepairEnum;
+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.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.service.FlowCallBackServiceI;
+import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
+import org.jeecg.modules.flowable.service.IFlowDefinitionService;
+import org.jeecg.modules.mdc.util.DateUtils;
+import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import javax.annotation.Resource;
+import java.util.*;
 
 /**
  * @Description: 缁翠慨宸ュ崟
  * @Author: Lius
  * @Date: 2025-04-03
  */
-@Service
-public class EamRepairOrderServiceImpl extends ServiceImpl<EamRepairOrderMapper, EamRepairOrder> implements IEamRepairOrderService {
+@Service("IEamRepairOrderService")
+public class EamRepairOrderServiceImpl extends ServiceImpl<EamRepairOrderMapper, EamRepairOrder> implements IEamRepairOrderService, FlowCallBackServiceI {
+
+    @Resource
+    private FlowCommonService flowCommonService;
+
+    @Resource
+    private ISysBusinessCodeRuleService businessCodeRuleService;
+
+    @Resource
+    private IEamReportRepairService eamReportRepairService;
+
+    @Resource
+    private IFlowDefinitionService flowDefinitionService;
+
+    @Resource
+    private IEamEquipmentService eamEquipmentService;
 
     /**
      * 鍒嗛〉鍒楄〃
@@ -45,4 +74,64 @@
         }
         return this.baseMapper.pageList(page, eamRepairOrder, sysUser.getId(), equipmentIds);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRepairOrder(EamRepairOrder eamRepairOrder) {
+        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
+        eamRepairOrder.setRepairCode(codeSeq);
+        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+        eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
+        eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
+        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
+        eamRepairOrder.setActualStartTime(DateUtils.getNow());
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        eamRepairOrder.setRepairer(user.getRealname());
+        super.save(eamRepairOrder);
+        EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
+        // 鍚姩缁翠慨娴佺▼
+        flowCommonService.initActBusiness("缁翠慨宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + "寮�濮嬬淮淇�",
+                eamRepairOrder.getId(),
+                "IEamRepairOrderService",
+                "eam_repair",
+                null);
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("dataId", eamRepairOrder.getId());
+        variables.put("organization", "缁翠慨宸ュ崟鍚姩娴佺▼");
+        variables.put("comment", "缁翠慨宸ュ崟鍚姩娴佺▼");
+        variables.put("proofreading", true);
+        List<String> usernames = new ArrayList<>();
+        usernames.add(user.getUsername());
+        variables.put("NextAssignee", usernames);
+        Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables);
+        if (!result.isSuccess()) {
+            super.removeById(eamRepairOrder);
+        } else {
+            eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name());
+            eamReportRepairService.updateById(eamReportRepair);
+        }
+    }
+
+
+    @Override
+    public void afterFlowHandle(FlowMyBusiness business) {
+
+    }
+
+    @Override
+    public Object getBusinessDataById(String dataId) {
+        return null;
+    }
+
+    @Override
+    public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) {
+        return Collections.emptyMap();
+    }
+
+    @Override
+    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
+        //鑾峰彇涓嬩竴姝ュ鐞嗕汉
+        Object object=values.get("NextAssignee");
+        return (List<String>) object;
+    }
 }

--
Gitblit v1.9.3