Bladeren bron

维修工单撤回

HD_wangm 5 maanden geleden
bovenliggende
commit
f7d756407a

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

@@ -339,4 +339,15 @@ public class GxtRepairOrderController extends BaseController
         result.setHasCenter(gxtWorkOrderService.hasCenter());
         return success(result);
     }
+
+    /**
+     * 撤回维修工单
+     */
+    @PreAuthorize("@ss.hasPermi('gxt:repairOrder:revoke')")
+    @Log(title = "维修工单", businessType = BusinessType.UPDATE)
+    @PutMapping("/revoke")
+    public AjaxResult revoke(@RequestBody GxtRepairOrder gxtRepairOrder)
+    {
+        return toAjax(gxtRepairOrderService.revokeGxtRepairOrder(gxtRepairOrder));
+    }
 }

+ 2 - 0
ygtx-gxt/src/main/java/com/ygtx/gxt/service/IGxtRepairOrderService.java

@@ -206,4 +206,6 @@ public interface IGxtRepairOrderService
     public GxtOrderData selectHomePageData();
 
     public int getUnfinishedOrder();
+
+    public int revokeGxtRepairOrder(GxtRepairOrder gxtRepairOrder);
 }

+ 34 - 0
ygtx-gxt/src/main/java/com/ygtx/gxt/service/impl/GxtRepairOrderServiceImpl.java

@@ -229,6 +229,40 @@ public class GxtRepairOrderServiceImpl implements IGxtRepairOrderService
         return result;
     }
 
+    /**
+     * 撤回维修工单
+     *
+     * @param gxtRepairOrder 维修工单
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int revokeGxtRepairOrder(GxtRepairOrder gxtRepairOrder)
+    {
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+        GxtRepairOrder oldOrder = gxtRepairOrderMapper.selectGxtRepairOrderById(gxtRepairOrder.getId());
+        gxtRepairOrder.setUpdateBy(SecurityUtils.getUsername());
+        gxtRepairOrder.setUpdateTime(DateUtils.getNowDate());
+        int result = gxtRepairOrderMapper.updateGxtRepairOrder(gxtRepairOrder);
+
+        // 记录撤回流转信息
+        if (result > 0) {
+            GxtRepairOrderFlow flow = new GxtRepairOrderFlow();
+            flow.setOrderId(oldOrder.getId());
+            flow.setOrderCode(oldOrder.getWorkOrderProjectNo());
+            flow.setActionType("revoke");
+            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;
+    }
+
     /**
      * 递归获取部门信息,查找父部门直到level为3
      * @param deptId 部门ID

+ 10 - 1
ygtx-ui/src/api/gxt/repairOrder.js

@@ -116,6 +116,15 @@ export function resumeRepairOrder(data) {
   })
 }
 
+// 恢复维修工单
+export function revokeRepairOrder(data) {
+  return request({
+    url: '/gxt/repairOrder/revoke',
+    method: 'put',
+    data: data
+  })
+}
+
 // 维修工单处理完成(进入待结单状态)
 export function processDoneRepairOrder(data) {
   return request({
@@ -158,4 +167,4 @@ export function selectHomePageData() {
     url: '/gxt/repairOrder/selectHomePageData',
     method: 'get'
   })
-}
+}

+ 30 - 4
ygtx-ui/src/views/gxt/repairOrder/index.vue

@@ -255,6 +255,13 @@
               @click="handleAccept(scope.row)"
               v-hasPermi="['gxt:repairOrder:accept']"
           ><i class="fa fa-check"></i>接单</el-button>
+          <el-button
+              v-if="scope.row.workOrderStatus === 'assigned'"
+              type="warning"
+              link
+              @click="handleRevoke(scope.row)"
+              v-hasPermi="['gxt:repairOrder:revoke']"
+          ><i class="fa fa-reply"></i>撤回</el-button>
           <el-button
               v-if="scope.row.workOrderStatus === 'suspended'"
               type="primary"
@@ -1519,7 +1526,8 @@ import {
   approveSuspendRepairOrder,
   finalizeRepairOrder,
   restartRepairOrder,
-  getRepairOrderByMisOrderNo
+  getRepairOrderByMisOrderNo,
+  revokeRepairOrder
 } from "@/api/gxt/repairOrder";
 import { listDept,getDept } from "@/api/system/dept";
 import { listFaultCodes } from "@/api/gxt/faultCodes"
@@ -1737,10 +1745,10 @@ const loadQuickTeamLeaderList = async () => {
     quickTeamLeaderList.value = allUserList.value;
     return;
   }
-  
+
   // 记录当前维保中心ID
   lastLoadedCenterId.value = acceptForm.value.gxtCenterId;
-  
+
   teamLeaderLoading.value = true
   try {
     // 加载当前部门下的用户列表
@@ -2518,7 +2526,7 @@ function handleAccept(row) {
     if (lastLoadedCenterId.value !== acceptForm.value.gxtCenterId) {
       allUserList.value = [];
     }
-    
+
     // 预加载工作负责人列表
     loadQuickTeamLeaderList()
     acceptDialogVisible.value = true
@@ -2614,6 +2622,24 @@ async function handleResume(row) {
   }).catch(() => {})
 }
 
+/** 撤回工单 */
+async function handleRevoke(row) {
+  ElMessageBox.confirm('确定要撤回工单"' + row.workOrderProjectNo + '"吗?', '提示', {
+    confirmButtonText: '确认撤回',
+    cancelButtonText: '取消',
+    type: 'warning'
+  }).then(function() {
+    const updateData = {
+      id: row.id,
+      workOrderStatus: "to_issue"
+    };
+    revokeRepairOrder(updateData);
+  }).then(() => {
+    getList()
+    proxy.$modal.msgSuccess("撤回成功")
+  }).catch(() => {})
+}
+
 /** 驳回工单 */
 function handleReject(row) {
   approveForm.value = {