소스 검색

fix:停止工单时停止循环任务

ly 11 달 전
부모
커밋
1b832b2054
1개의 변경된 파일64개의 추가작업 그리고 5개의 파일을 삭제
  1. 64 5
      src/main/java/cn/ezhizao/project/business/upgrade/controller/BizWorkOrderUpdateController.java

+ 64 - 5
src/main/java/cn/ezhizao/project/business/upgrade/controller/BizWorkOrderUpdateController.java

@@ -76,6 +76,12 @@ public class BizWorkOrderUpdateController extends BaseController
     private IBizFinancialSalaryService bizFinancialSalaryService;
     @Resource
     private IBizWorkOrderService bizWorkOrderService;
+    final String[] reportTaskTableNames = {"biz_financial_individual_income_tax", "biz_financial_keep_account", "biz_financial_receive_ticket", "biz_financial_report_tax", "biz_financial_salary"};
+
+    final String[] housingFundTaskTableNames = {"biz_housing_fund_confirm", "biz_housing_fund_declare"};
+
+    final String[] socialSecurityTaskTableNames = {"biz_social_security_confirm", "biz_social_security_declare"};
+
     /**
      * 查询工单信息列表
      */
@@ -288,11 +294,64 @@ public class BizWorkOrderUpdateController extends BaseController
     @PostMapping("/OrderDisable")
     public AjaxResult OrderDisable(@RequestBody List<Long> ids) throws NoSuchFieldException, IllegalAccessException {
         bizWorkOrderService.updateByWorkOrderId(ids);
-        financialKeepAccountService.updateByWorkOrderId(ids);
-        bizHousingFundConfirmService.updateByWorkOrderId(ids);
-        bizFinancialReportTaxService.updateByWorkOrderId(ids);
-        bizSocialSecurityConfirmService.updateByWorkOrderId(ids);
-        bizFinancialSalaryService.updateByWorkOrderId(ids);
+        List<BizWorkOrder> workOrderList = bizWorkOrderService.query().in("id",ids).list();
+//        financialKeepAccountService.updateByWorkOrderId(ids);
+//        bizHousingFundConfirmService.updateByWorkOrderId(ids);
+//        bizFinancialReportTaxService.updateByWorkOrderId(ids);
+//        bizSocialSecurityConfirmService.updateByWorkOrderId(ids);
+//        bizFinancialSalaryService.updateByWorkOrderId(ids);
+        workOrderList.forEach(workOrder -> {
+            stopLoopTasks(workOrder);
+        });
         return success("成功");
     }
+
+    // 停止循环任务
+    public boolean stopLoopTasks(BizWorkOrder workOrder) {
+        if (workOrder.getTaskTypeId() == 1L) {
+            return stopReportTask(workOrder);
+        } else if (workOrder.getTaskTypeId() == 2L) {
+            return stopSocialSecurity(workOrder);
+        } else if (workOrder.getTaskTypeId() == 3L) {
+            return stopHousingFund(workOrder);
+        }
+        return true;
+    }
+
+    private boolean stopHousingFund(BizWorkOrder workOrder) {
+        List<Map<String, Object>> maps = Arrays.stream(housingFundTaskTableNames).map(v -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put("tableName", v);
+            map.put("workOrderId", workOrder.getId());
+            map.put("is_continue", 0);
+            map.put("is_stop", 1);
+            return map;
+        }).collect(Collectors.toList());
+        bizWorkOrderService.stopTasks(maps);
+        return true;
+    }
+    private boolean stopSocialSecurity(BizWorkOrder workOrder) {
+        List<Map<String, Object>> maps = Arrays.stream(socialSecurityTaskTableNames).map(v -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put("tableName", v);
+            map.put("workOrderId", workOrder.getId());
+            map.put("is_continue", 0);
+            map.put("is_stop", 1);
+            return map;
+        }).collect(Collectors.toList());
+        bizWorkOrderService.stopTasks(maps);
+        return true;
+    }
+    private boolean stopReportTask(BizWorkOrder workOrder) {
+        List<Map<String, Object>> maps = Arrays.stream(reportTaskTableNames).map(v -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put("tableName", v);
+            map.put("workOrderId", workOrder.getId());
+            map.put("is_continue", 0);
+            map.put("is_stop", 1);
+            return map;
+        }).collect(Collectors.toList());
+        bizWorkOrderService.stopTasks(maps);
+        return true;
+    }
 }