ouyj 7 месяцев назад
Родитель
Сommit
34502ad5ce

+ 11 - 0
ygtx-gxt/src/main/java/com/ygtx/gxt/controller/GxtRepairOrderController.java

@@ -211,4 +211,15 @@ public class GxtRepairOrderController extends BaseController
     {
         return toAjax(gxtRepairOrderService.ratingGxtRepairOrder(gxtRepairOrder));
     }
+    
+    /**
+     * 复运维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:restart')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/restart")
+    public AjaxResult restart(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.restartGxtRepairOrder(gxtRepairOrder));
+    }
 }

+ 36 - 2
ygtx-gxt/src/main/java/com/ygtx/gxt/domain/GxtRepairOrder.java

@@ -27,7 +27,7 @@ public class GxtRepairOrder extends BaseEntity
     @Excel(name = "工单编码")
     private String workOrderProjectNo;
 
-    /** 工单状态:draft-草稿,to_assign-待派单,assigned-待接单,accepted-已接单,processing-处理中,paused-暂停中,to_approve-待审批,suspended-已挂起,to_be_finalized-待结单,completed-已完成 */
+    /** 工单状态:draft-草稿,to_assign-待派单,assigned-待接单,accepted-已接单,processing-处理中,paused-暂停中,to_approve-待审批,suspended-已挂起,to_be_finalized-待结单,completed-已完成,to_issue-待下发,archived-已归档,to_archive-待归档 */
     @Excel(name = "工单状态")
     private String workOrderStatus;
 
@@ -134,7 +134,7 @@ public class GxtRepairOrder extends BaseEntity
     /** 点评 */
     private String reviewContent;
 
-    /** 检修消缺(A、B、C、D) */
+    /** 检修类型(A、B、C、D) */
     private String maintenanceType;
 
     /** 发生时间 */
@@ -167,8 +167,18 @@ public class GxtRepairOrder extends BaseEntity
     /** 维保内容 */
     private String relatedOrderContent;
 
+    /** MIS工单编码 */
+    private String misOrderNo;
+
+    /** 恢复时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "恢复时间")
+    private Date restartTime;
+
     private List<GxtRepairOrderPerson> repairOrderPersonList;
 
+    private List<GxtRepairOrderFlow> repairOrderFlowList;
+
     public void setId(Long id) 
     {
         this.id = id;
@@ -557,6 +567,30 @@ public class GxtRepairOrder extends BaseEntity
         this.repairOrderPersonList = repairOrderPersonList;
     }
 
+    public String getMisOrderNo() {
+        return misOrderNo;
+    }
+
+    public void setMisOrderNo(String misOrderNo) {
+        this.misOrderNo = misOrderNo;
+    }
+
+    public List<GxtRepairOrderFlow> getRepairOrderFlowList() {
+        return repairOrderFlowList;
+    }
+
+    public void setRepairOrderFlowList(List<GxtRepairOrderFlow> repairOrderFlowList) {
+        this.repairOrderFlowList = repairOrderFlowList;
+    }
+
+    public Date getRestartTime() {
+        return restartTime;
+    }
+
+    public void setRestartTime(Date restartTime) {
+        this.restartTime = restartTime;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 3 - 2
ygtx-gxt/src/main/java/com/ygtx/gxt/domain/GxtRepairOrderFlow.java

@@ -28,8 +28,8 @@ public class GxtRepairOrderFlow extends BaseEntity
     @Excel(name = "工单编码")
     private String orderCode;
 
-    /** 操作类型:create-创建,assign-派单,accept-接单,process-处理,pause-暂停,suspend-挂起,restart-重启,approve-审批,complete-完成 */
-    @Excel(name = "操作类型:create-创建,assign-派单,accept-接单,process-处理,pause-暂停,suspend-挂起,restart-重启,approve-审批,complete-完成")
+    /** 操作类型:create-创建工单,assign-下发工单,accept-接单,process-处理工单,pause-暂停,suspend-挂起,restart-重启,approve-审批,complete-完成工单,create_to_assign-创建并下发工单,to_approve-申请挂起工单,approved-挂起审批通过,rejected-挂起审批驳回,rating-工单评分,restart-设备复运 */
+    //@Excel(name = "操作类型:create-创建工单,assign-下发工单,accept-接单,process-处理工单,pause-暂停,suspend-挂起,restart-重启,approve-审批,complete-完成工单,create_to_assign-创建并下发工单,to_approve-申请挂起工单,approved-挂起审批通过,rejected-挂起审批驳回,rating-工单评分")
     private String actionType;
 
     /** 原状态 */
@@ -156,6 +156,7 @@ public class GxtRepairOrderFlow extends BaseEntity
         return actionRemark;
     }
 
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 8 - 1
ygtx-gxt/src/main/java/com/ygtx/gxt/service/IGxtRepairOrderService.java

@@ -2,7 +2,6 @@ package com.ygtx.gxt.service;
 
 import java.util.List;
 import com.ygtx.gxt.domain.GxtRepairOrder;
-import com.ygtx.gxt.domain.GxtWorkOrder;
 
 /**
  * 维修工单Service接口
@@ -139,4 +138,12 @@ public interface IGxtRepairOrderService
      * @return 结果
      */
     public int finalizeGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
+    
+    /**
+     * 复运维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    public int restartGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
 }

+ 146 - 44
ygtx-gxt/src/main/java/com/ygtx/gxt/service/impl/GxtRepairOrderServiceImpl.java

@@ -42,7 +42,15 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Override
     public GxtRepairOrder selectGxtRepairOrderById(Long id)
     {
-        return gxtRepairOrderMapper.selectGxtRepairOrderById(id);
+        GxtRepairOrder order = gxtRepairOrderMapper.selectGxtRepairOrderById(id);
+        if (order != null) {
+            // 查询工单流转记录
+            GxtRepairOrderFlow flowQuery = new GxtRepairOrderFlow();
+            flowQuery.setOrderId(id);
+            List<GxtRepairOrderFlow> flowList = gxtRepairOrderFlowService.selectGxtRepairOrderFlowList(flowQuery);
+            order.setRepairOrderFlowList(flowList);
+        }
+        return order;
     }
 
     /**
@@ -67,28 +75,34 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int insertGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+        if("assigned".equals(gxtRepairOrder.getWorkOrderStatus())){
+            gxtRepairOrder.setAssignTime(DateUtils.getNowDate());
+            gxtRepairOrder.setAssignUserId(SecurityUtils.getUserId());
+            gxtRepairOrder.setAssignUserName(nickName);
+        }
         gxtRepairOrder.setCreateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setCreateTime(DateUtils.getNowDate());
         int result = gxtRepairOrderMapper.insertGxtRepairOrder(gxtRepairOrder);
-        
+
         // 记录工单创建流转信息
         if (result > 0) {
             GxtRepairOrderFlow flow = new GxtRepairOrderFlow();
             flow.setOrderId(gxtRepairOrder.getId());
             flow.setOrderCode(gxtRepairOrder.getWorkOrderProjectNo());
-            if("draft".equals(gxtRepairOrder.getWorkOrderStatus())){
+            if("to_issue".equals(gxtRepairOrder.getWorkOrderStatus())){
                 flow.setActionType("create");
-            }else if("to_assign".equals(gxtRepairOrder.getWorkOrderStatus())){
+            }else if("assigned".equals(gxtRepairOrder.getWorkOrderStatus())){
                 flow.setActionType("create_to_assign");
             }
             flow.setFromStatus(null);
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
-            if("draft".equals(gxtRepairOrder.getWorkOrderStatus())){
+            if("to_issue".equals(gxtRepairOrder.getWorkOrderStatus())){
                 flow.setActionRemark("创建维修工单");
-            }else if("to_assign".equals(gxtRepairOrder.getWorkOrderStatus())){
+            }else if("assigned".equals(gxtRepairOrder.getWorkOrderStatus())){
                 flow.setActionRemark("创建并下发维修工单");
             }
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
@@ -107,26 +121,32 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int updateGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        if("assigned".equals(gxtRepairOrder.getWorkOrderStatus())){
+            gxtRepairOrder.setAssignTime(DateUtils.getNowDate());
+            gxtRepairOrder.setAssignUserId(SecurityUtils.getUserId());
+            gxtRepairOrder.setAssignUserName(nickName);
+        }
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
         int result = gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
-        
+
         // 如果工单状态发生变化,记录流转信息
         if (result > 0 && oldOrder != null &&
             !oldOrder.getWorkOrderStatus().equals(gxtRepairOrder.getWorkOrderStatus())) {
             GxtRepairOrderFlow flow = new GxtRepairOrderFlow();
             flow.setOrderId(gxtRepairOrder.getId());
             flow.setOrderCode(gxtRepairOrder.getWorkOrderProjectNo());
-            if("to_assign".equals(gxtRepairOrder.getWorkOrderStatus())){
-                flow.setActionType("to_assign");
+            if("assigned".equals(gxtRepairOrder.getWorkOrderStatus())){
+                flow.setActionType("assign");
             }
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
-            if("to_assign".equals(gxtRepairOrder.getWorkOrderStatus())){
+            if("assigned".equals(gxtRepairOrder.getWorkOrderStatus())){
                 flow.setActionRemark("下发维修工单");
             }
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
@@ -168,15 +188,16 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int assignGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
         gxtRepairOrder.setWorkOrderStatus("assigned");
         gxtRepairOrder.setAssignTime(DateUtils.getNowDate());
         gxtRepairOrder.setAssignUserId(SecurityUtils.getUserId());
-        gxtRepairOrder.setAssignUserName(SecurityUtils.getLoginUser().getUser().getNickName());
+        gxtRepairOrder.setAssignUserName(nickName);
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
         int result = gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
-        
+
         // 记录派单流转信息
         if (result > 0) {
             GxtRepairOrderFlow flow = new GxtRepairOrderFlow();
@@ -186,9 +207,9 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
-            flow.setActionRemark("发维修工单");
+            flow.setActionRemark("发维修工单");
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
         }
         
@@ -205,24 +226,28 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int acceptGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
-        gxtRepairOrder.setWorkOrderStatus("accepted");
+        //gxtRepairOrder.setWorkOrderStatus("accepted");
+        gxtRepairOrder.setWorkOrderStatus("processing");
         gxtRepairOrder.setAcceptTime(DateUtils.getNowDate());
         gxtRepairOrder.setAcceptUserId(SecurityUtils.getUserId());
-        gxtRepairOrder.setAcceptUserName(SecurityUtils.getLoginUser().getUser().getNickName());
+        gxtRepairOrder.setAcceptUserName(nickName);
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
-        String memberNames = null;
+        /*String memberNames = null;
         if(gxtRepairOrder.getRepairOrderPersonList() != null && !gxtRepairOrder.getRepairOrderPersonList().isEmpty()){
             memberNames = gxtRepairOrder.getRepairOrderPersonList().stream()
                     .map(GxtRepairOrderPerson::getNickName)
                     .collect(java.util.stream.Collectors.joining(","));
             gxtRepairOrder.setWorkGroupMemberName(memberNames);
-        }
+        } else {
+            memberNames = "无";
+        }*/
         int result = gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
         // 记录接单流转信息
         if (result > 0) {
-            gxtRepairOrderPersonMapper.deleteGxtRepairOrderPersonByOrderId(gxtRepairOrder.getId());
+            /*gxtRepairOrderPersonMapper.deleteGxtRepairOrderPersonByOrderId(gxtRepairOrder.getId());
             if(gxtRepairOrder.getRepairOrderPersonList() != null && !gxtRepairOrder.getRepairOrderPersonList().isEmpty()){
                 for (GxtRepairOrderPerson person : gxtRepairOrder.getRepairOrderPersonList())
                 {
@@ -233,17 +258,18 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
                     person.setCreateTime(DateUtils.getNowDate());
                     gxtRepairOrderPersonMapper.insertGxtRepairOrderPerson(person);
                 }
-            }
+            }*/
             GxtRepairOrderFlow flow = new GxtRepairOrderFlow();
             flow.setOrderId(gxtRepairOrder.getId());
             flow.setOrderCode(gxtRepairOrder.getWorkOrderProjectNo());
-            flow.setActionType("accept");
+            //flow.setActionType("accept");
+            flow.setActionType("process");
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
-            flow.setActionRemark("接收维修工单");
+            flow.setActionRemark("开始处理维修工单,负责人:" + gxtRepairOrder.getTeamLeaderName());
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
         }
         
@@ -260,10 +286,11 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int startGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
-        if(oldOrder.getRealStartTime() != null){
+        /*if(oldOrder.getRealStartTime() != null){
             gxtRepairOrder.setRealStartTime(DateUtils.getNowDate());
-        }
+        }*/
         gxtRepairOrder.setWorkOrderStatus("processing");
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
@@ -278,7 +305,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
             flow.setActionRemark("开始处理维修工单");
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
@@ -297,6 +324,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int pauseGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
@@ -311,7 +339,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
             flow.setActionRemark("暂停处理维修工单");
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
@@ -330,6 +358,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int resumeGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
@@ -344,7 +373,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
             flow.setActionRemark("恢复处理工单");
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
@@ -363,6 +392,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int processDoneGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
@@ -378,7 +408,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus("to_be_finalized");
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
             flow.setActionRemark("维修处理完成,等待结单");
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
@@ -397,7 +427,11 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int ratingGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        if (gxtRepairOrder.getRestartTime() != null) {
+            gxtRepairOrder.setWorkOrderStatus("to_archive");
+        }
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
         int result = gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
@@ -411,7 +445,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
             flow.setActionRemark("对维修工单进行评分");
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
@@ -430,6 +464,7 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int suspendGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
         gxtRepairOrder.setWorkOrderStatus("to_approve");
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
@@ -445,9 +480,9 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
-            flow.setActionRemark("申请挂起维修工单: " + gxtRepairOrder.getSuspendReason());
+            flow.setActionRemark("申请挂起维修工单。挂起原因: " + gxtRepairOrder.getSuspendReason());
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
         }
         
@@ -464,7 +499,13 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int approveSuspendGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        if ("approved".equals(gxtRepairOrder.getApprovalStatus())) {
+            gxtRepairOrder.setWorkOrderStatus("suspended");
+        }else if ("rejected".equals(gxtRepairOrder.getApprovalStatus())) {
+            gxtRepairOrder.setWorkOrderStatus("processing");
+        }
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
         int result = gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
@@ -475,21 +516,23 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
             flow.setOrderId(gxtRepairOrder.getId());
             flow.setOrderCode(gxtRepairOrder.getWorkOrderProjectNo());
             // 根据审批结果设置操作类型
-            String actionType = "审批";
-            if ("rejected".equals(gxtRepairOrder.getApprovalStatus())) {
-                actionType = "驳回";
+            String actionType = "";
+            if ("approved".equals(gxtRepairOrder.getApprovalStatus())) {
+                actionType = "approved";
+            }else if ("rejected".equals(gxtRepairOrder.getApprovalStatus())) {
+                actionType = "rejected";
             }
             flow.setActionType(actionType);
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
             String actionRemark = "审批挂起申请";
-            if ("suspended".equals(gxtRepairOrder.getWorkOrderStatus())) {
+            if ("approved".equals(gxtRepairOrder.getApprovalStatus())) {
                 actionRemark = "挂起申请审批通过";
-            } else if ("accepted".equals(gxtRepairOrder.getWorkOrderStatus())) {
-                actionRemark = "挂起申请被驳回";
+            }else if ("rejected".equals(gxtRepairOrder.getApprovalStatus())) {
+                actionRemark = "挂起申请被驳回。驳回原因:"+gxtRepairOrder.getRejectionReason();
             }
             flow.setActionRemark(actionRemark);
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
@@ -508,23 +551,82 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     @Transactional
     public int finalizeGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
         GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        String memberNames = null;
+        if(gxtRepairOrder.getRepairOrderPersonList() != null && !gxtRepairOrder.getRepairOrderPersonList().isEmpty()){
+            memberNames = gxtRepairOrder.getRepairOrderPersonList().stream()
+                    .map(GxtRepairOrderPerson::getNickName)
+                    .collect(java.util.stream.Collectors.joining(","));
+            gxtRepairOrder.setWorkGroupMemberName(memberNames);
+        } else {
+            memberNames = "无";
+        }
+        gxtRepairOrder.setWorkOrderStatus("completed");
         gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
         int result = gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
         
         // 记录结单流转信息
+        if (result > 0) {
+            gxtRepairOrderPersonMapper.deleteGxtRepairOrderPersonByOrderId(gxtRepairOrder.getId());
+            if(gxtRepairOrder.getRepairOrderPersonList() != null && !gxtRepairOrder.getRepairOrderPersonList().isEmpty()){
+                for (GxtRepairOrderPerson person : gxtRepairOrder.getRepairOrderPersonList())
+                {
+                    person.setOrderId(gxtRepairOrder.getId());
+                    person.setOrderCode(gxtRepairOrder.getWorkOrderProjectNo());
+                    person.setStatus(1);
+                    person.setCreateBy(SecurityUtils.getUsername());
+                    person.setCreateTime(DateUtils.getNowDate());
+                    gxtRepairOrderPersonMapper.insertGxtRepairOrderPerson(person);
+                }
+            }
+            GxtRepairOrderFlow flow = new GxtRepairOrderFlow();
+            flow.setOrderId(gxtRepairOrder.getId());
+            flow.setOrderCode(gxtRepairOrder.getWorkOrderProjectNo());
+            flow.setActionType("complete");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(nickName);
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("完成维修工单");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        return result;
+    }
+    
+    /**
+     * 复运维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int restartGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        if (gxtRepairOrder.getScore() != null) {
+            gxtRepairOrder.setWorkOrderStatus("to_archive");
+        }
+        gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
+        gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
+        int result = gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
+        
+        // 记录复运流转信息
         if (result > 0) {
             GxtRepairOrderFlow flow = new GxtRepairOrderFlow();
             flow.setOrderId(gxtRepairOrder.getId());
             flow.setOrderCode(gxtRepairOrder.getWorkOrderProjectNo());
-            flow.setActionType("finalize");
+            flow.setActionType("restart");
             flow.setFromStatus(oldOrder.getWorkOrderStatus());
             flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
             flow.setOperatorId(SecurityUtils.getUserId());
-            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setOperatorName(nickName);
             flow.setActionTime(DateUtils.getNowDate());
-            flow.setActionRemark("正式结单维修工单");
+            flow.setActionRemark("复运维修工单");
             gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
         }
         

+ 7 - 1
ygtx-gxt/src/main/resources/mapper/gxt/GxtRepairOrderMapper.xml

@@ -50,10 +50,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="finalizationRemark"    column="finalization_remark"    />
         <result property="relatedOrderCode"    column="related_order_code"    />
         <result property="relatedOrderContent"    column="related_order_content"    />
+        <result property="misOrderNo"    column="mis_order_no"    />
     </resultMap>
 
     <sql id="selectGxtRepairOrderVo">
-        select id, work_order_project_no, work_order_status, gxt_center_id, gxt_center, pcs_station_id, pcs_station_name, pcs_device_id, pcs_device_name, brand, model, fault_code, fault_desc, assign_time, assign_user_id, assign_user_name, accept_time, accept_user_id, accept_user_name, real_start_time, real_end_time, team_leader_id, team_leader_name, work_group_member_id, work_group_member_name, create_by, create_time, update_by, update_time, remark, content, plan_hour, priority_type, score, review_content, maintenance_type, occur_time, fault_barcode, suspend_reason, suspend_description, approval_status, rejection_reason, finalization_remark, related_order_code, related_order_content from gxt_repair_order
+        select id, work_order_project_no, work_order_status, gxt_center_id, gxt_center, pcs_station_id, pcs_station_name, pcs_device_id, pcs_device_name, brand, model, fault_code, fault_desc, assign_time, assign_user_id, assign_user_name, accept_time, accept_user_id, accept_user_name, real_start_time, real_end_time, team_leader_id, team_leader_name, work_group_member_id, work_group_member_name, create_by, create_time, update_by, update_time, remark, content, plan_hour, priority_type, score, review_content, maintenance_type, occur_time, fault_barcode, suspend_reason, suspend_description, approval_status, rejection_reason, finalization_remark, related_order_code, related_order_content, mis_order_no from gxt_repair_order
     </sql>
 
     <select id="selectGxtRepairOrderList" parameterType="GxtRepairOrder" resultMap="GxtRepairOrderResult">
@@ -98,7 +99,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="finalizationRemark != null  and finalizationRemark != ''"> and finalization_remark = #{finalizationRemark}</if>
             <if test="relatedOrderCode != null  and relatedOrderCode != ''"> and related_order_code = #{relatedOrderCode}</if>
             <if test="relatedOrderContent != null  and relatedOrderContent != ''"> and related_order_content = #{relatedOrderContent}</if>
+            <if test="misOrderNo != null  and misOrderNo != ''"> and mis_order_no = #{misOrderNo}</if>
         </where>
+        order by id desc
     </select>
     
     <select id="selectGxtRepairOrderById" parameterType="Long" resultMap="GxtRepairOrderResult">
@@ -153,6 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="finalizationRemark != null">finalization_remark,</if>
             <if test="relatedOrderCode != null">related_order_code,</if>
             <if test="relatedOrderContent != null">related_order_content,</if>
+            <if test="misOrderNo != null">mis_order_no,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="workOrderProjectNo != null and workOrderProjectNo != ''">#{workOrderProjectNo},</if>
@@ -199,6 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="finalizationRemark != null">#{finalizationRemark},</if>
             <if test="relatedOrderCode != null">#{relatedOrderCode},</if>
             <if test="relatedOrderContent != null">#{relatedOrderContent},</if>
+            <if test="misOrderNo != null">#{misOrderNo},</if>
          </trim>
     </insert>
 
@@ -249,6 +254,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="finalizationRemark != null">finalization_remark = #{finalizationRemark},</if>
             <if test="relatedOrderCode != null">related_order_code = #{relatedOrderCode},</if>
             <if test="relatedOrderContent != null">related_order_content = #{relatedOrderContent},</if>
+            <if test="misOrderNo != null">mis_order_no = #{misOrderNo},</if>
         </trim>
         where id = #{id}
     </update>

+ 8 - 0
ygtx-ui/src/api/gxt/repairOrder.js

@@ -134,3 +134,11 @@ export function ratingRepairOrder(data) {
   })
 }
 
+// 复运维修工单
+export function restartRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/restart',
+    method: 'put',
+    data: data
+  })
+}

Разница между файлами не показана из-за своего большого размера
+ 524 - 118
ygtx-ui/src/views/gxt/repairOrder/index.vue


Некоторые файлы не были показаны из-за большого количества измененных файлов