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