From 914c18aa66a7fbde2d54a05cdf583138bf7f230b Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期日, 27 十月 2024 16:59:19 +0800
Subject: [PATCH] 计划任务更新

---
 src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts |   21 ++--
 src/api/tigerapi/tsk/tsk_job.ts                                     |  109 ++++++++++++++++----------
 src/views/tigerprojects/tsk/tsk_job/index.vue                       |   22 +++++
 src/api/tigerapi/system.ts                                          |   26 +++++-
 src/api/tigerapi/model/tskModel.ts                                  |   15 +++
 src/views/tigerprojects/tsk/tsk_job/jobDrawer.vue                   |    7 -
 6 files changed, 136 insertions(+), 64 deletions(-)

diff --git a/src/api/tigerapi/model/tskModel.ts b/src/api/tigerapi/model/tskModel.ts
index 65d32fa..2c391ad 100644
--- a/src/api/tigerapi/model/tskModel.ts
+++ b/src/api/tigerapi/model/tskModel.ts
@@ -178,11 +178,14 @@
 
 export type Tsk_TrigPageListGetResultModel = BasicFetchResult<Tsk_TrigListItem>;
 
-export interface TskParameter {
+export interface TskParameter extends TrigArgs {
   JobName: string;
   JobType: string;
   AssemblyName: string;
   Remark: string;
+}
+
+export interface TrigArgs {
   NonReentrant: string;
   ToRunOnceAtDt: Dayjs;
   runType: number;
@@ -190,7 +193,17 @@
   NowAddMinutes: number; //涓婇潰鏃堕棿鍔犲灏戝垎閽燂紝琛ㄧず寤惰繜澶氬皯鍒嗛挓杩愯
   ToRunEvery: number; //姣忛殧澶氬皯杩愯涓�鍥�
   ToRunOnceIn: number; //鍦ㄥ灏戝悗杩愯涓�娆�
+  Milliseconds: number;
+  Seconds: number;
   Minutes: number;
   Hours: number;
   Days: number;
+  Weekday: number;
+}
+
+export interface FluentJobParam {
+  AssemblyName: string;
+  DataType: string;
+  JobName: string;
+  Args: TrigArgs;
 }
diff --git a/src/api/tigerapi/system.ts b/src/api/tigerapi/system.ts
index 3dababe..069cfb2 100644
--- a/src/api/tigerapi/system.ts
+++ b/src/api/tigerapi/system.ts
@@ -31,9 +31,8 @@
   pParams,
 } from './model/systemModel';
 import { defHttp } from '/@/utils/http/axios';
-import { isArray, isNullOrEmpty, isNullOrUnDef, isTimeViaRegExp8601 } from '/@/utils/is';
+import { isArray, isNullOrEmpty, isTimeViaRegExp8601 } from '/@/utils/is';
 import { isNumber } from 'xe-utils';
-import { dateUtil, formatToDateTime } from '/@/utils/dateUtil';
 
 export enum Api {
   QueryUrl = '/Base/Query',
@@ -66,6 +65,8 @@
   StartJob = '/Tsk/StartJob',
   StopJob = '/Tsk/PauseJob',
   AddJob = '/Tsk/AddJob',
+  AddTskJob = '/Tsk/AddTskJob',
+  RemoveTskJob = '/Tsk/RemoveTskJob',
   UpdateJob = '/Tsk/UpdateJob',
   SaveTskJob = '/Tsk/SaveTskJob',
   urlQueryEnum = '/Base/QueryEnum',
@@ -151,6 +152,21 @@
     LocaleMsg: undefined,
     NeedInclude: isNullOrEmpty(NeedInclude) ? false : NeedInclude,
   };
+  return params;
+}
+
+/**
+ * @desc 鐢熸垚Action
+ */
+export function generateAction<T>(
+  datatype: string,
+  DataAssembly: string,
+  data: T,
+  option?: object,
+  NeedInclude?: boolean,
+) {
+  const params = genAction(datatype, data, option, NeedInclude);
+  params.DataAssembly = DataAssembly;
   return params;
 }
 export function genActionjob<sting>(
@@ -824,7 +840,7 @@
       },
     );
   } else {
-    var check = await isExist(genAction(entityName, args[0]));
+    const check = await isExist(genAction(entityName, args[0]));
     if (check.Data) {
       check.IsSuccessed = false;
       check.Message = '璁板綍宸茬粡瀛樺湪锛屼笉鑳芥柊澧烇紒';
@@ -843,7 +859,7 @@
 }
 
 export async function AddListEntity<T>(params: T, entityName: string) {
-  let data = await defHttp.post(
+  const data = await defHttp.post(
     { url: Api.AddListEntity, params: genAction(entityName, params) },
     {
       errorMessageMode: 'none',
@@ -872,7 +888,7 @@
  * @return {*}
  */
 export async function AddAfterDelete(entityName: string, items: [], where: string) {
-  let data = await defHttp.post(
+  const data = await defHttp.post(
     {
       url: Api.AddAfterDelete,
       params: genAction(entityName, {
diff --git a/src/api/tigerapi/tsk/tsk_job.ts b/src/api/tigerapi/tsk/tsk_job.ts
index 3f25fb4..189c9bf 100644
--- a/src/api/tigerapi/tsk/tsk_job.ts
+++ b/src/api/tigerapi/tsk/tsk_job.ts
@@ -1,13 +1,12 @@
-import { buildUUID } from '../../../utils/uuid';
 import { ApiAction, ApiActionPage } from '../../model/baseModel';
 import {
-  Tsk_JobListItem,
+  FluentJobParam,
   Tsk_JobPageListGetResultModel,
   Tsk_JobPageParams,
   Tsk_TrigListItem,
   TskParameter,
 } from '../model/tskModel';
-import { genAction,genActionjob, Api, genActionPage } from '../system';
+import { genAction, Api, genActionPage, generateAction } from '../system';
 import { defHttp } from '/@/utils/http/axios';
 import { useGlobSetting } from '/@/hooks/setting';
 
@@ -16,41 +15,40 @@
  * 鑾峰彇瑙掕壊鍒嗛〉鍒楄〃
  */
 export const getTsk_JobListByPage = async (params: Tsk_JobPageParams) => {
-  var id='';
-  if(params?.Status != undefined && params?.Status != ''){
-    let sqlcmdt='';
-    sqlcmdt += " STATUS = '" + params?.Status + "'";;
+  const id = '';
+  if (params?.Status != undefined && params?.Status != '') {
+    let sqlcmdt = '';
+    sqlcmdt += " STATUS = '" + params?.Status + "'";
     const _data = await defHttp.post<ApiAction<Tsk_TrigListItem[]>>(
       { url: Api.EntityList, params: genAction('TSK_TRIG', sqlcmdt, undefined, true) },
       {
         isTransformResponse: false,
-        apiUrl: globSetting.taskApiUrl
+        apiUrl: globSetting.taskApiUrl,
       },
     );
-   let sqlcmd='';
-   _data.Data.forEach((item,index) => {
-    if(index==0){
-      sqlcmd+="and ID='"+item.JobId+"'"
-    }else{
-      sqlcmd+="Or ID='"+item.JobId+"'"
-    }
-    
-   });
-   const rParams = genActionPage('TSK_JOB', sqlcmd, params.page, params.pageSize);
-   return getTsk_JobListByPageAsync(rParams);
-  }else{
     let sqlcmd = '';
-    if (id!= undefined && id != '') {
+    _data.Data.forEach((item, index) => {
+      if (index == 0) {
+        sqlcmd += "and ID='" + item.JobId + "'";
+      } else {
+        sqlcmd += "Or ID='" + item.JobId + "'";
+      }
+    });
+    const rParams = genActionPage('TSK_JOB', sqlcmd, params.page, params.pageSize);
+    return getTsk_JobListByPageAsync(rParams);
+  } else {
+    let sqlcmd = '';
+    if (id != undefined && id != '') {
       sqlcmd += " And ID = '" + id + "'";
     }
     if (params?.JobName != undefined && params?.JobName != '') {
       sqlcmd += " And JobName like '%" + params?.JobName + "%'";
     }
     if (params?.CREATE_TIME != undefined && params?.CREATE_TIME != '') {
-      sqlcmd += "And CREATE_TIME > '" + params?.CREATE_TIME[0]+"'";
+      sqlcmd += "And CREATE_TIME > '" + params?.CREATE_TIME[0] + "'";
     }
     if (params?.CREATE_TIME != undefined && params?.CREATE_TIME != '') {
-      sqlcmd += "And CREATE_TIME < '" + params?.CREATE_TIME[1]+"'";
+      sqlcmd += "And CREATE_TIME < '" + params?.CREATE_TIME[1] + "'";
     }
     const rParams = genActionPage('TSK_JOB', sqlcmd, params.page, params.pageSize);
     return getTsk_JobListByPageAsync(rParams);
@@ -61,7 +59,7 @@
     { url: Api.EntityPageList, params },
     {
       isTransformResponse: false,
-      apiUrl: globSetting.taskApiUrl
+      apiUrl: globSetting.taskApiUrl,
     },
   );
   const model: Tsk_JobPageListGetResultModel = {
@@ -69,7 +67,7 @@
     total: data.Data.totals,
   };
   // data.Data.data.forEach(function(item) {
-    
+
   //   defHttp.post(
   //     { url: Api.AddJob, params: genActionjob(item.JobType, item.AssemblyName,item.JobName,item.Triggers[0].Args) },
   //     {
@@ -91,30 +89,54 @@
     {
       errorMessageMode: 'none',
       isTransformResponse: false,
-      apiUrl: globSetting.taskApiUrl
+      apiUrl: globSetting.taskApiUrl,
     },
   );
 };
-//鍒犻櫎
-export const DeleteTsk_Job = async (params: Recordable) => {
-  const usParams = genAction('TSK_JOB', [params]);
-  const usParamstrig = genAction('TSK_TRIG', [params.Triggers]);
-  defHttp.post({ url: Api.DeleteList, params: usParamstrig },
+
+/**
+ * @desc 娣诲姞浠诲姟
+ * @param {FluentJobParam} params - 鍙傛暟鍒楄〃
+ */
+export const AddTskJob = async (params: FluentJobParam) => {
+  const usParams = generateAction(params.DataType, params.AssemblyName, params);
+  return await defHttp.post(
+    { url: Api.AddTskJob, params: usParams },
     {
       errorMessageMode: 'none',
       isTransformResponse: false,
-      apiUrl: globSetting.taskApiUrl
-    },);
+      apiUrl: globSetting.taskApiUrl,
+    },
+  );
+};
+
+/**
+ * @desc 鍒犻櫎
+ * @param {Recordable} params - 璁板綍
+ */
+export const DeleteTsk_Job = async (params: Recordable) => {
+  const usParams = genAction('TSK_JOB', [params]);
+  const usParamstrig = genAction('TSK_TRIG', [params.Triggers]);
+  defHttp.post(
+    { url: Api.DeleteList, params: usParamstrig },
+    {
+      errorMessageMode: 'none',
+      isTransformResponse: false,
+      apiUrl: globSetting.taskApiUrl,
+    },
+  );
   return await defHttp.post(
     { url: Api.DeleteList, params: usParams },
     {
       errorMessageMode: 'none',
       isTransformResponse: false,
-      apiUrl: globSetting.taskApiUrl
+      apiUrl: globSetting.taskApiUrl,
     },
   );
 };
-//寮�濮嬩换鍔�
+/**
+ * @desc 寮�濮嬩换鍔�
+ */
 export const StartTsk_Job = async (params: Recordable) => {
   const usParams = genAction('TSK_JOB', params.JobName);
   return await defHttp.post(
@@ -122,31 +144,34 @@
     {
       errorMessageMode: 'none',
       isTransformResponse: false,
-      apiUrl: globSetting.taskApiUrl
+      apiUrl: globSetting.taskApiUrl,
     },
   );
 };
-//鍋滄浠诲姟
+
+/**
+ * @desc 鍋滄浠诲姟
+ */
 export const StopTsk_Job = async (params: Recordable) => {
   const usParams = genAction('TSK_JOB', params.JobName);
   return await defHttp.post(
-    { url: Api.StopJob, params: usParams },
+    { url: Api.RemoveTskJob, params: usParams },
     {
       errorMessageMode: 'none',
       isTransformResponse: false,
-      apiUrl: globSetting.taskApiUrl
+      apiUrl: globSetting.taskApiUrl,
     },
   );
 };
 //涓嬫媺鍒楄〃
-export const optionsListApi = async (params: Recordable) => {
-  const usParams = genAction('TSK_TRIG+Statuss', "");
+export const optionsListApi = async () => {
+  const usParams = genAction('TSK_TRIG+Statuss', '');
   return await defHttp.post(
     { url: Api.urlQueryEnum, params: usParams },
     {
       errorMessageMode: 'none',
       isTransformResponse: false,
-      apiUrl: globSetting.taskApiUrl
+      apiUrl: globSetting.taskApiUrl,
     },
   );
 };
diff --git a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
index 1b8ed42..60af179 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
@@ -1,3 +1,5 @@
+/* eslint-disable no-var */
+/* eslint-disable no-fallthrough */
 /*
  * @Description: 浜у搧宸ヨ壓璺嚎鐩稿叧
  * @Author: Ben Lin
@@ -7,13 +9,12 @@
  * @LastEditTime: 2024-10-24 01:21:57
  */
 
-import { Ref, h, ref, render, unref } from 'vue';
+import { Ref, unref } from 'vue';
 import {
   DeleteProdRoute,
   GetRoutePTree,
   RouteToCust,
   RouteToProd,
-  SetDefaultRoute,
 } from '/@/api/tigerapi/mes/router';
 import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system';
 import { useLocale } from '/@/locales/useLocale';
@@ -92,12 +93,12 @@
      * @return {*}
      */
     fetchTreeData: async (type: string, itemCode: string) => {
-      let data = { title: '', treeData: [] as any[], fieldNames: {} };
-      let prodTreeData = (await GetRoutePTree({
+      const data = { title: '', treeData: [] as any[], fieldNames: {} };
+      const prodTreeData = (await GetRoutePTree({
         prodCode: itemCode,
         orgCode: useUserStore().getUserInfo.orgCode,
       })) as unknown as MesRotTree[];
-      let _treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root');
+      const _treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root');
       data.title = '宸ヨ壓璺嚎';
       data.fieldNames = { key: 'tid', title: 'name' };
       if (
@@ -171,7 +172,7 @@
     nodeChange: (params: { useForms: Ref<any>; objParams: Ref<any>; selectedNodes: any[] }) =>
       new Promise<any>(async (resolve, reject) => {
         // params['useForms'].value = methods.GetUseForm();
-        let result = { isShow: {} };
+        const result = { isShow: {} };
         let sqlcmd = ' 1=1 ';
         if (!isNullOrEmpty(params['objParams'].value['CODE'])) {
           sqlcmd += `And PROD_CODE = '${params['objParams'].value['CODE']}'`;
@@ -394,7 +395,7 @@
           break;
         case 'assyadd':
           const items = d.values['val'].split(',');
-          let data: any[] = [];
+          const data: any[] = [];
           if (!isNullOrEmpty(items) && items.length > 0) {
             items.map((x) => {
               data.push({
@@ -445,7 +446,7 @@
             });
             return;
           }
-          let codes = d.values.id.split(',');
+          const codes = d.values.id.split(',');
           var i;
           for (i = 0; i < codes.length; i++) {
             if (d.which == 'addRoute') {
@@ -463,7 +464,7 @@
             });
             return;
           }
-          let rotIds = d.ROT_ID.split(',');
+          const rotIds = d.ROT_ID.split(',');
           var i;
           for (i = 0; i < rotIds.length; i++) {
             RouteToCust({ rotId: rotIds[i], prodCode: args[1]['CODE'], custCode: d.CUST_CODE });
@@ -626,7 +627,7 @@
      * @return {*}
      */
     SelectNode: (selectedNodes: Ref<any[]>, code: string) => {
-      let result = {
+      const result = {
         showConfig: false,
         showNav: false,
         type: selectedNodes.value[0].type,
diff --git a/src/views/tigerprojects/tsk/tsk_job/index.vue b/src/views/tigerprojects/tsk/tsk_job/index.vue
index ecaab7e..32b7d5c 100644
--- a/src/views/tigerprojects/tsk/tsk_job/index.vue
+++ b/src/views/tigerprojects/tsk/tsk_job/index.vue
@@ -54,13 +54,18 @@
 <script lang="ts" setup>
   import { columns, searchFormSchema } from './job.data';
   import jobDrawer from './jobDrawer.vue';
+  import { FluentJobParam } from '/@/api/tigerapi/model/tskModel';
   import { getListByPage } from '/@/api/tigerapi/system';
-  import { DeleteTsk_Job, StartTsk_Job, StopTsk_Job } from '/@/api/tigerapi/tsk/tsk_job';
+  import { AddTskJob, DeleteTsk_Job, StopTsk_Job } from '/@/api/tigerapi/tsk/tsk_job';
   import { useDrawer } from '/@/components/Drawer';
   import { BasicTable, TableAction, useTable } from '/@/components/Table';
+  import { useMessage } from '/@/hooks/web/useMessage';
   import { useGo } from '/@/hooks/web/usePage';
+  import { useI18n } from '/@/hooks/web/useI18n';
 
   const go = useGo();
+  const { t } = useI18n();
+  const { createErrorModal } = useMessage();
   const [registerDrawer, { openDrawer }] = useDrawer();
 
   const [registerTable, { reload }] = useTable({
@@ -95,6 +100,7 @@
       fixed: undefined,
     },
   });
+
   /**
    * 娣诲姞浠诲姟
    */
@@ -125,10 +131,22 @@
    * @return {*}
    */
   function handleStart(record: Recordable) {
-    const apiAction = StartTsk_Job(record);
+    const param: FluentJobParam = {
+      AssemblyName: record.AssemblyName,
+      Args: JSON.parse(record.Triggers[0].Args),
+      DataType: record.JobName,
+      JobName: record.JobName,
+    };
+    const apiAction = AddTskJob(param);
     apiAction.then((action) => {
       if (action.IsSuccessed) {
         reload();
+      } else {
+        createErrorModal({
+          title: t('sys.api.errorTip'),
+          content: apiAction.Message,
+          getContainer: () => document.body,
+        });
       }
     });
   }
diff --git a/src/views/tigerprojects/tsk/tsk_job/jobDrawer.vue b/src/views/tigerprojects/tsk/tsk_job/jobDrawer.vue
index a7523ff..a2592c8 100644
--- a/src/views/tigerprojects/tsk/tsk_job/jobDrawer.vue
+++ b/src/views/tigerprojects/tsk/tsk_job/jobDrawer.vue
@@ -18,10 +18,9 @@
   import { useI18n } from '/@/hooks/web/useI18n';
   import { useMessage } from '/@/hooks/web/useMessage';
   //api
-  import { SaveEntity } from '/@/api/tigerapi/system';
   import { SaveTskJob } from '/@/api/tigerapi/tsk/tsk_job';
-import { TskParameter } from '/@/api/tigerapi/model/tskModel';
-import { dateUtil } from '/@/utils/dateUtil';
+  import { TskParameter } from '/@/api/tigerapi/model/tskModel';
+  import { dateUtil } from '/@/utils/dateUtil';
 
   const { t } = useI18n();
   const { notification, createErrorModal } = useMessage();
@@ -56,7 +55,7 @@
       tskParam.ToRunOnceIn = args.ToRunOnceIn;
       tskParam.runType = args.runType;
       tskParam.type = args.Type;
-      
+
       setFieldsValue({
         ...tskParam,
       });

--
Gitblit v1.9.3