ouyj пре 7 месеци
родитељ
комит
e577e94134

+ 78 - 1
ygtx-gxt/src/main/java/com/ygtx/gxt/controller/GxtRepairOrderController.java

@@ -101,4 +101,81 @@ public class GxtRepairOrderController extends BaseController
     {
         return toAjax(gxtRepairOrderService.deleteGxtRepairOrderByIds(ids));
     }
-}
+
+    /**
+     * 派单维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:assign')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/assign")
+    public AjaxResult assign(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.assignGxtRepairOrder(gxtRepairOrder));
+    }
+
+    /**
+     * 接单维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:accept')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/accept")
+    public AjaxResult accept(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.acceptGxtRepairOrder(gxtRepairOrder));
+    }
+
+    /**
+     * 开始维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:start')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/start")
+    public AjaxResult start(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.startGxtRepairOrder(gxtRepairOrder));
+    }
+
+    /**
+     * 暂停维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:pause')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/pause")
+    public AjaxResult pause(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.pauseGxtRepairOrder(gxtRepairOrder));
+    }
+
+    /**
+     * 恢复维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:resume')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/resume")
+    public AjaxResult resume(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.resumeGxtRepairOrder(gxtRepairOrder));
+    }
+
+    /**
+     * 完成维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:complete')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/complete")
+    public AjaxResult complete(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.completeGxtRepairOrder(gxtRepairOrder));
+    }
+
+    /**
+     * 评分维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:rating')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/rating")
+    public AjaxResult rating(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.ratingGxtRepairOrder(gxtRepairOrder));
+    }
+}

+ 25 - 1
ygtx-gxt/src/main/java/com/ygtx/gxt/controller/GxtRepairOrderFlowController.java

@@ -101,4 +101,28 @@ public class GxtRepairOrderFlowController extends BaseController
     {
         return toAjax(gxtRepairOrderFlowService.deleteGxtRepairOrderFlowByIds(ids));
     }
-}
+    
+    /**
+     * 根据工单ID查询流转记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrderFlow:list')")
+    @GetMapping("/listByOrderId/{orderId}")
+    public AjaxResult listByOrderId(@PathVariable("orderId") Long orderId)
+    {
+        GxtRepairOrderFlow gxtRepairOrderFlow = new GxtRepairOrderFlow();
+        gxtRepairOrderFlow.setOrderId(orderId);
+        List<GxtRepairOrderFlow> list = gxtRepairOrderFlowService.selectGxtRepairOrderFlowList(gxtRepairOrderFlow);
+        return success(list);
+    }
+    
+    /**
+     * 记录工单流转
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrderFlow:add')")
+    @Log(title = "维修工单流转记录", businessType = BusinessType.INSERT)
+    @PostMapping("/record")
+    public AjaxResult record(@RequestBody GxtRepairOrderFlow gxtRepairOrderFlow)
+    {
+        return toAjax(gxtRepairOrderFlowService.insertGxtRepairOrderFlow(gxtRepairOrderFlow));
+    }
+}

+ 48 - 21
ygtx-gxt/src/main/java/com/ygtx/gxt/domain/GxtRepairOrder.java

@@ -26,11 +26,10 @@ public class GxtRepairOrder extends BaseEntity
     private String workOrderProjectNo;
 
     /** 工单状态:draft-草稿,to_assign-待派单,assigned-已派单,accepted-已接单,processing-处理中,paused-暂停中,to_approve-待审批,suspended-已挂起,completed-已完成 */
-    @Excel(name = "工单状态:draft-草稿,to_assign-待派单,assigned-已派单,accepted-已接单,processing-处理中,paused-暂停中,to_approve-待审批,suspended-已挂起,completed-已完成")
+    @Excel(name = "工单状态")
     private String workOrderStatus;
 
     /** 维保中心ID */
-    @Excel(name = "维保中心ID")
     private Long gxtCenterId;
 
     /** 维保中心 */
@@ -38,7 +37,6 @@ public class GxtRepairOrder extends BaseEntity
     private String gxtCenter;
 
     /** 风电场ID */
-    @Excel(name = "风电场ID")
     private Long pcsStationId;
 
     /** 风电场 */
@@ -46,7 +44,6 @@ public class GxtRepairOrder extends BaseEntity
     private String pcsStationName;
 
     /** 风机设备ID */
-    @Excel(name = "风机设备ID")
     private Long pcsDeviceId;
 
     /** 风机编号 */
@@ -70,12 +67,11 @@ public class GxtRepairOrder extends BaseEntity
     private String faultDesc;
 
     /** 派单时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "派单时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "派单时间")
     private Date assignTime;
 
     /** 派单人ID */
-    @Excel(name = "派单人ID")
     private Long assignUserId;
 
     /** 派单人姓名 */
@@ -83,12 +79,11 @@ public class GxtRepairOrder extends BaseEntity
     private String assignUserName;
 
     /** 接单时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "接单时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "接单时间")
     private Date acceptTime;
 
     /** 接单人ID */
-    @Excel(name = "接单人ID")
     private Long acceptUserId;
 
     /** 接单人姓名 */
@@ -96,17 +91,16 @@ public class GxtRepairOrder extends BaseEntity
     private String acceptUserName;
 
     /** 实际开始时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "实际开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "实际开始时间")
     private Date realStartTime;
 
     /** 实际结束时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "实际结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "实际结束时间")
     private Date realEndTime;
 
     /** 班组组长ID */
-    @Excel(name = "班组组长ID")
     private Long teamLeaderId;
 
     /** 班组组长姓名 */
@@ -114,7 +108,6 @@ public class GxtRepairOrder extends BaseEntity
     private String teamLeaderName;
 
     /** 工作组成员ID */
-    @Excel(name = "工作组成员ID")
     private Long workGroupMemberId;
 
     /** 工作组成员姓名 */
@@ -130,17 +123,27 @@ public class GxtRepairOrder extends BaseEntity
     private BigDecimal planHour;
 
     /** 优先级 */
-    @Excel(name = "优先级")
-    private Long priorityType;
+    private String priorityType;
 
     /** 评分 */
     @Excel(name = "评分")
     private BigDecimal score;
 
     /** 点评 */
-    @Excel(name = "点评")
     private String reviewContent;
 
+    /** 检修消缺(A、B、C、D) */
+    private String maintenanceType;
+
+    /** 发生时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "发生时间")
+    private Date occurTime;
+
+    /** 故障条纹 */
+    @Excel(name = "故障条纹")
+    private String faultBarcode;
+
     public void setId(Long id) 
     {
         this.id = id;
@@ -411,12 +414,12 @@ public class GxtRepairOrder extends BaseEntity
         return planHour;
     }
 
-    public void setPriorityType(Long priorityType) 
+    public void setPriorityType(String priorityType) 
     {
         this.priorityType = priorityType;
     }
 
-    public Long getPriorityType() 
+    public String getPriorityType() 
     {
         return priorityType;
     }
@@ -441,6 +444,30 @@ public class GxtRepairOrder extends BaseEntity
         return reviewContent;
     }
 
+    public String getMaintenanceType() {
+        return maintenanceType;
+    }
+
+    public void setMaintenanceType(String maintenanceType) {
+        this.maintenanceType = maintenanceType;
+    }
+
+    public Date getOccurTime() {
+        return occurTime;
+    }
+
+    public void setOccurTime(Date occurTime) {
+        this.occurTime = occurTime;
+    }
+
+    public String getFaultBarcode() {
+        return faultBarcode;
+    }
+
+    public void setFaultBarcode(String faultBarcode) {
+        this.faultBarcode = faultBarcode;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

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

@@ -49,8 +49,7 @@ public class GxtRepairOrderFlow extends BaseEntity
     private String operatorName;
 
     /** 操作时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @Excel(name = "操作时间")
     private Date actionTime;
 
     /** 操作备注 */

+ 9 - 1
ygtx-gxt/src/main/java/com/ygtx/gxt/mapper/GxtRepairOrderFlowMapper.java

@@ -58,4 +58,12 @@ public interface GxtRepairOrderFlowMapper
      * @return 结果
      */
     public int deleteGxtRepairOrderFlowByIds(Long[] ids);
-}
+    
+    /**
+     * 根据工单ID查询流转记录列表
+     * 
+     * @param orderId 工单ID
+     * @return 维修工单流转记录集合
+     */
+    public List<GxtRepairOrderFlow> selectGxtRepairOrderFlowListByOrderId(Long orderId);
+}

+ 9 - 1
ygtx-gxt/src/main/java/com/ygtx/gxt/service/IGxtRepairOrderFlowService.java

@@ -58,4 +58,12 @@ public interface IGxtRepairOrderFlowService
      * @return 结果
      */
     public int deleteGxtRepairOrderFlowById(Long id);
-}
+    
+    /**
+     * 根据工单ID查询流转记录列表
+     * 
+     * @param orderId 工单ID
+     * @return 维修工单流转记录集合
+     */
+    public List<GxtRepairOrderFlow> selectGxtRepairOrderFlowListByOrderId(Long orderId);
+}

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

@@ -58,4 +58,60 @@ public interface IGxtRepairOrderService
      * @return 结果
      */
     public int deleteGxtRepairOrderById(Long id);
-}
+    
+    /**
+     * 派单维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    public int assignGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
+    
+    /**
+     * 接单维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    public int acceptGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
+    
+    /**
+     * 开始维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    public int startGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
+    
+    /**
+     * 暂停维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    public int pauseGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
+    
+    /**
+     * 恢复维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    public int resumeGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
+    
+    /**
+     * 完成维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    public int completeGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
+    
+    /**
+     * 评分维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    public int ratingGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
+}

+ 15 - 1
ygtx-gxt/src/main/java/com/ygtx/gxt/service/impl/GxtRepairOrderFlowServiceImpl.java

@@ -92,4 +92,18 @@ public class GxtRepairOrderFlowServiceImpl implements IGxtRepairOrderFlowService
     {
         return gxtRepairOrderFlowMapper.deleteGxtRepairOrderFlowById(id);
     }
-}
+    
+    /**
+     * 根据工单ID查询流转记录列表
+     * 
+     * @param orderId 工单ID
+     * @return 维修工单流转记录集合
+     */
+    @Override
+    public List<GxtRepairOrderFlow> selectGxtRepairOrderFlowListByOrderId(Long orderId)
+    {
+        GxtRepairOrderFlow gxtRepairOrderFlow = new GxtRepairOrderFlow();
+        gxtRepairOrderFlow.setOrderId(orderId);
+        return gxtRepairOrderFlowMapper.selectGxtRepairOrderFlowList(gxtRepairOrderFlow);
+    }
+}

+ 265 - 3
ygtx-gxt/src/main/java/com/ygtx/gxt/service/impl/GxtRepairOrderServiceImpl.java

@@ -7,6 +7,10 @@ import org.springframework.stereotype.Service;
 import com.ygtx.gxt.mapper.GxtRepairOrderMapper;
 import com.ygtx.gxt.domain.GxtRepairOrder;
 import com.ygtx.gxt.service.IGxtRepairOrderService;
+import com.ygtx.gxt.service.IGxtRepairOrderFlowService;
+import com.ygtx.gxt.domain.GxtRepairOrderFlow;
+import com.ygtx.common.utils.SecurityUtils;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 维修工单Service业务层处理
@@ -19,6 +23,9 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
 {
     @Autowired
     private GxtRepairOrderMapper gxtRepairOrderMapper;
+    
+    @Autowired
+    private IGxtRepairOrderFlowService gxtRepairOrderFlowService;
 
     /**
      * 查询维修工单
@@ -51,10 +58,28 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
      * @return 结果
      */
     @Override
+    @Transactional
     public int insertGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
         gxtRepairOrder.setCreateTime(DateUtils.getNowDate());
-        return gxtRepairOrderMapper.insertGxtRepairOrder(gxtRepairOrder);
+        int result = gxtRepairOrderMapper.insertGxtRepairOrder(gxtRepairOrder);
+        
+        // 记录工单创建流转信息
+        if (result > 0) {
+            GxtRepairOrderFlow flow = new GxtRepairOrderFlow();
+            flow.setOrderId(gxtRepairOrder.getId());
+            flow.setOrderCode(gxtRepairOrder.getWorkOrderProjectNo());
+            flow.setActionType("create");
+            flow.setFromStatus(null);
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("创建维修工单");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
     }
 
     /**
@@ -64,10 +89,30 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
      * @return 结果
      */
     @Override
+    @Transactional
     public int updateGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
     {
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
         gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
-        return gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
+        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());
+            flow.setActionType("update");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("更新维修工单状态");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
     }
 
     /**
@@ -93,4 +138,221 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
     {
         return gxtRepairOrderMapper.deleteGxtRepairOrderById(id);
     }
-}
+    
+    /**
+     * 派单维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    public int assignGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        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("assign");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("派发维修工单");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
+    }
+    
+    /**
+     * 接单维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    public int acceptGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        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("accept");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("接收维修工单");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
+    }
+    
+    /**
+     * 开始维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    public int startGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        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("process");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("开始处理维修工单");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
+    }
+    
+    /**
+     * 暂停维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    public int pauseGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        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("pause");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("暂停处理维修工单");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
+    }
+    
+    /**
+     * 恢复维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    public int resumeGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        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("restart");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("恢复处理维修工单");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
+    }
+    
+    /**
+     * 完成维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    public int completeGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        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("complete");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("完成维修工单");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
+    }
+    
+    /**
+     * 评分维修工单
+     * 
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    public int ratingGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        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("rating");
+            flow.setFromStatus(oldOrder.getWorkOrderStatus());
+            flow.setToStatus(gxtRepairOrder.getWorkOrderStatus());
+            flow.setOperatorId(SecurityUtils.getUserId());
+            flow.setOperatorName(SecurityUtils.getUsername());
+            flow.setActionTime(DateUtils.getNowDate());
+            flow.setActionRemark("对维修工单进行评分");
+            gxtRepairOrderFlowService.insertGxtRepairOrderFlow(flow);
+        }
+        
+        return result;
+    }
+}

+ 5 - 0
ygtx-gxt/src/main/resources/mapper/gxt/GxtRepairOrderFlowMapper.xml

@@ -38,6 +38,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
     
+    <select id="selectGxtRepairOrderFlowListByOrderId" parameterType="Long" resultMap="GxtRepairOrderFlowResult">
+        <include refid="selectGxtRepairOrderFlowVo"/>
+        where order_id = #{orderId}
+    </select>
+    
     <select id="selectGxtRepairOrderFlowById" parameterType="Long" resultMap="GxtRepairOrderFlowResult">
         <include refid="selectGxtRepairOrderFlowVo"/>
         where id = #{id}

+ 18 - 3
ygtx-gxt/src/main/resources/mapper/gxt/GxtRepairOrderMapper.xml

@@ -40,10 +40,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="priorityType"    column="priority_type"    />
         <result property="score"    column="score"    />
         <result property="reviewContent"    column="review_content"    />
+        <result property="maintenanceType"    column="maintenance_type"    />
+        <result property="occurTime"    column="occur_time"    />
+        <result property="faultBarcode"    column="fault_barcode"    />
     </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 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 from gxt_repair_order
     </sql>
 
     <select id="selectGxtRepairOrderList" parameterType="GxtRepairOrder" resultMap="GxtRepairOrderResult">
@@ -54,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="gxtCenterId != null "> and gxt_center_id = #{gxtCenterId}</if>
             <if test="gxtCenter != null  and gxtCenter != ''"> and gxt_center = #{gxtCenter}</if>
             <if test="pcsStationId != null "> and pcs_station_id = #{pcsStationId}</if>
-            <if test="pcsStationName != null  and pcsStationName != ''"> and pcs_station_name like concat('%', #{pcsStationName}, '%')</if>
+            <if test="pcsStationName != null  and pcsStationName != ''"> and pcs_station_name = #{pcsStationName} </if>
             <if test="pcsDeviceId != null "> and pcs_device_id = #{pcsDeviceId}</if>
             <if test="pcsDeviceName != null  and pcsDeviceName != ''"> and pcs_device_name like concat('%', #{pcsDeviceName}, '%')</if>
             <if test="brand != null  and brand != ''"> and brand = #{brand}</if>
@@ -78,6 +81,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="priorityType != null "> and priority_type = #{priorityType}</if>
             <if test="score != null "> and score = #{score}</if>
             <if test="reviewContent != null  and reviewContent != ''"> and review_content = #{reviewContent}</if>
+            <if test="maintenanceType != null  and maintenanceType != ''"> and maintenance_type = #{maintenanceType}</if>
+            <if test="occurTime != null "> and occur_time = #{occurTime}</if>
+            <if test="faultBarcode != null  and faultBarcode != ''"> and fault_barcode = #{faultBarcode}</if>
         </where>
     </select>
     
@@ -123,6 +129,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="priorityType != null">priority_type,</if>
             <if test="score != null">score,</if>
             <if test="reviewContent != null">review_content,</if>
+            <if test="maintenanceType != null">maintenance_type,</if>
+            <if test="occurTime != null">occur_time,</if>
+            <if test="faultBarcode != null">fault_barcode,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="workOrderProjectNo != null and workOrderProjectNo != ''">#{workOrderProjectNo},</if>
@@ -159,6 +168,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="priorityType != null">#{priorityType},</if>
             <if test="score != null">#{score},</if>
             <if test="reviewContent != null">#{reviewContent},</if>
+            <if test="maintenanceType != null">#{maintenanceType},</if>
+            <if test="occurTime != null">#{occurTime},</if>
+            <if test="faultBarcode != null">#{faultBarcode},</if>
          </trim>
     </insert>
 
@@ -199,6 +211,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="priorityType != null">priority_type = #{priorityType},</if>
             <if test="score != null">score = #{score},</if>
             <if test="reviewContent != null">review_content = #{reviewContent},</if>
+            <if test="maintenanceType != null">maintenance_type = #{maintenanceType},</if>
+            <if test="occurTime != null">occur_time = #{occurTime},</if>
+            <if test="faultBarcode != null">fault_barcode = #{faultBarcode},</if>
         </trim>
         where id = #{id}
     </update>
@@ -208,7 +223,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteGxtRepairOrderByIds" parameterType="String">
-        delete from gxt_repair_order where id in 
+        delete from gxt_repair_order where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>

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

@@ -42,3 +42,66 @@ export function delRepairOrder(id) {
     method: 'delete'
   })
 }
+
+// 派单维修工单
+export function assignRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/assign',
+    method: 'put',
+    data: data
+  })
+}
+
+// 接单维修工单
+export function acceptRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/accept',
+    method: 'put',
+    data: data
+  })
+}
+
+// 开始维修工单
+export function startRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/start',
+    method: 'put',
+    data: data
+  })
+}
+
+// 暂停维修工单
+export function pauseRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/pause',
+    method: 'put',
+    data: data
+  })
+}
+
+// 恢复维修工单
+export function resumeRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/resume',
+    method: 'put',
+    data: data
+  })
+}
+
+// 完成维修工单
+export function completeRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/complete',
+    method: 'put',
+    data: data
+  })
+}
+
+// 评分维修工单
+export function ratingRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/rating',
+    method: 'put',
+    data: data
+  })
+}

+ 26 - 0
ygtx-ui/src/api/gxt/repairOrderFlow.js

@@ -9,6 +9,14 @@ export function listRepairOrderFlow(query) {
   })
 }
 
+// 根据工单ID查询流转记录列表
+export function listRepairOrderFlowByOrderId(orderId) {
+  return request({
+    url: `/gxt/repairOrderFlow/listByOrderId/${orderId}`,
+    method: 'get'
+  })
+}
+
 // 查询维修工单流转记录详细
 export function getRepairOrderFlow(id) {
   return request({
@@ -42,3 +50,21 @@ export function delRepairOrderFlow(id) {
     method: 'delete'
   })
 }
+
+// 记录工单流转
+export function recordRepairOrderFlow(orderId, orderCode, actionType, fromStatus, toStatus, operatorId, operatorName, actionRemark) {
+  return request({
+    url: '/gxt/repairOrderFlow/record',
+    method: 'post',
+    data: {
+      orderId: orderId,
+      orderCode: orderCode,
+      actionType: actionType,
+      fromStatus: fromStatus,
+      toStatus: toStatus,
+      operatorId: operatorId,
+      operatorName: operatorName,
+      actionRemark: actionRemark
+    }
+  })
+}

Разлика између датотеке није приказан због своје велике величине
+ 772 - 375
ygtx-ui/src/views/gxt/repairOrder/index.vue


Неке датотеке нису приказане због велике количине промена