From 234b6cf8944ef95c415c4898f19b8fb4d12e898f Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期日, 13 十月 2024 22:44:46 +0800 Subject: [PATCH] 工艺路线增加完工节点 --- src/api/tigerapi/system.ts | 420 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 392 insertions(+), 28 deletions(-) diff --git a/src/api/tigerapi/system.ts b/src/api/tigerapi/system.ts index 579e8b0..dae8570 100644 --- a/src/api/tigerapi/system.ts +++ b/src/api/tigerapi/system.ts @@ -1,7 +1,7 @@ -import { UserConfigFn } from 'vite'; +import { useGlobSetting } from '/@/hooks/setting'; import { buildUUID } from '../../utils/uuid'; import { DateFormat } from '../../utils/dataformat'; -import { ApiAction,ApiActionJob, ApiActionPage } from '../model/baseModel'; +import { ApiAction, ApiActionJob, ApiActionPage } from '../model/baseModel'; import { MenuParams, RoleParams, @@ -25,9 +25,15 @@ LoginLogPageListGetResultModel, iSYS_ROLE_ORG, iSYS_ROLE_WH, + EntityParams, + EntityList, + iSYS_ROLE_PROD, + pParams, } from './model/systemModel'; import { defHttp } from '/@/utils/http/axios'; -import { isUnDef } from '/@/utils/is'; +import { isArray, isNullOrEmpty, isNullOrUnDef, isTimeViaRegExp8601 } from '/@/utils/is'; +import { isNumber } from 'xe-utils'; +import { dateUtil, formatToDateTime } from '/@/utils/dateUtil'; export enum Api { QueryUrl = '/Base/Query', @@ -35,10 +41,12 @@ EntitySqlList = '/Base/QuerySQL', EntityPageList = '/Base/QueryCustomPage', IsAccountExist = '/Base/IsExist', + AddAfterDelete = '/Base/AddAfterDelete', setRoleStatus = '/system/setRoleStatus', MenuList = '/SYS/getMenuListAll', SaveMenu = '/SYS/SaveMenu', SaveRole = '/SYS/SaveRole', + getSysParam = '/SYS/getSysParam', AddEntity = '/Base/Add', AddListEntity = '/Base/AddList', UpdateEntity = '/Base/Update', @@ -47,9 +55,10 @@ DeleteList = '/Base/DeleteList', DeleteWhere = '/Base/DeleteWhere', GetOrgTreeList = '/SYS/getOrgTreeList', + GetProdTreeList = '/SYS/getProdTreeList', GetHouseTreeList = '/WMS/GetHouseModel', GetHouseOrgTreeList = '/WMS/GetHouseModelOrg', - GetCreateBillCode = '/WMS/CreateBillCode', + GetCreateBillCode = '/WMS/CreateBillCode', GetCreateTFBillCode = '/WMS/CreateTFBillCode', GetAllRoleList = '/system/getAllRoleList', urlSetSysUserToGroup = '/SYS/SetSysUserToGroup', @@ -57,23 +66,29 @@ StartJob = '/Tsk/StartJob', StopJob = '/Tsk/PauseJob', AddJob = '/Tsk/AddJob', - UpdateJob= '/Tsk/UpdateJob', - urlQueryEnum= '/Base/QueryEnum', - DeleteWareHouse='/WMS/DelWareHouseModel', - AddLocation='/WMS/AddLoctionModel', - CheckLocation='/WMS/CheckLocation', - SummaryCount='/WMS/SummaryCount', - GenerateCount='/WMS/GenerateCount', - GetUpdateOrg='/WMS/GetUpdateOrg', - GetQrCode='/WMS/Item/GetQRCode', - UpdateReq='/WMS/UpdateReq', - MaterialResale='/WMS/MaterialResale', - GetProdctResult='/WMS/ProductInput/GetProdctResult', + UpdateJob = '/Tsk/UpdateJob', + urlQueryEnum = '/Base/QueryEnum', + DeleteWareHouse = '/WMS/DelWareHouseModel', + AddLocation = '/WMS/AddLoctionModel', + CheckLocation = '/WMS/CheckLocation', + SummaryCount = '/WMS/SummaryCount', + GenerateCount = '/WMS/GenerateCount', + GetUpdateOrg = '/WMS/GetUpdateOrg', + GetQrCode = '/WMS/Item/GetQRCode', + UpdateReq = '/WMS/UpdateReq', + MaterialResale = '/WMS/MaterialResale', + GetProdctResult = '/WMS/ProductInput/GetProdctResult', // 瀹屽伐鍏ュ簱鐘舵�佽繕鍘� GetStatusRestored = '/WMS/ProductInput/StatusRestored', // 鎵归噺鏇存柊鍐呭 - GetUpdateTime = '/MaterialInfo/UpdateTime' + GetUpdateTime = '/MaterialInfo/UpdateTime', + //瀵煎叆 + ValidateTableImport = '/SMT/ValidateTableImport', + SaveValidateTableImport = '/SMT/SaveValidateTableImport', + GetEntityNameList = '/System/Entitys/Get', } + +const globSetting = useGlobSetting(); /** * 鐢熸垚apiaction,甯﹀垎椤� @@ -83,12 +98,18 @@ * @param pageSize * @returns */ -export function genActionPage(datatype: string, sqlcmd: string, page: number, pageSize: number,option?:object) { +export function genActionPage( + datatype: string, + sqlcmd: string, + page: number, + pageSize: number, + option?: object, +) { const time = new Date(); const params: ApiActionPage = { id: buildUUID(), dataType: datatype, - Options:option, + Options: option, isAsync: true, timestamp: time.toDateString(), isSuccessed: true, @@ -113,12 +134,12 @@ /* * 鐢熸垚Action */ -export function genAction<T>(datatype: string, data: T,option?:object) { +export function genAction<T>(datatype: string, data: T, option?: object) { const time = new Date(); const params: ApiAction<T> = { ID: buildUUID(), - DataAssembly:'', - Options:option, + DataAssembly: '', + Options: option, DataType: datatype, IsAsync: true, Timestamp: time.toDateString(), @@ -126,14 +147,21 @@ Message: '', StatusCode: 0, Data: data, + LocaleMsg: undefined, }; return params; } -export function genActionjob<sting>(datatype: string, assembly: string, data: string,timeone:number,remark:string) { +export function genActionjob<sting>( + datatype: string, + assembly: string, + data: string, + timeone: number, + remark: string, +) { const time = new Date(); const params: ApiActionJob<string> = { ID: buildUUID(), - DataAssembly:assembly, + DataAssembly: assembly, DataType: datatype, IsAsync: true, Timestamp: time.toDateString(), @@ -141,9 +169,9 @@ Message: '', StatusCode: 0, Data: { - jobName:data, - period:timeone, - remark: remark + jobName: data, + period: timeone, + remark: remark, }, }; return params; @@ -249,6 +277,32 @@ temp = convertToTreeData(data, parentId, id, data[i][id]); if (temp.length > 0) { obj.children = temp; + } + result.push(obj); + } + } + return result; +} + +/** + * @description: 鏍戝舰琛ㄧ粨鏋勮浆鏍戝舰Json + * @param {T} data + * @param {string} parentField 鐖跺瓧娈靛悕 + * @param {string} idField 鍞竴key瀛楁鍚� + * @param {string} pid 鐖秈d鍊� + * @return {*} + */ +export function convertToTree<T>(data: T[], parentField: string, idField: string, pid?: string) { + const result: T[] = []; + let temp: T[] = []; + const _pid = isNullOrEmpty(pid) ? '' : pid; + for (let i = 0; i < data.length; i++) { + const currPid = data[i][parentField] == null ? '' : data[i][parentField]; + if (currPid === _pid) { + const obj = data[i] as T; + temp = convertToTree(data, parentField, idField, data[i][idField]); + if (temp.length > 0) { + obj['children'] = temp; } result.push(obj); } @@ -411,6 +465,24 @@ return data.Data; } +export function getProdList(params: string) { + const rmParams = genAction('SYS_ROLE_PROD', " ROLE_CODE = '" + params + "'"); + return getRoleProd(rmParams); +} +async function getRoleProd(params: ApiAction<string>) { + const data = await defHttp.post<ApiAction<iSYS_ROLE_PROD[]>>( + { + url: Api.EntityList, + params, + }, + { + errorMessageMode: 'modal', + isTransformResponse: false, + }, + ); + return data.Data; +} + /* * 鑾峰彇瑙掕壊浠撳簱鍒楄〃锛岀敤浜庤鑹叉巿鏉冧粨搴撳垪琛� */ @@ -491,7 +563,7 @@ }, ); - export const setBasStatus = (params: any) => +export const setBasStatus = (params: any) => defHttp.post( { url: Api.UpdateEntity, params: genAction('BAS_ITEM', params) }, { @@ -613,3 +685,295 @@ }; return model; } + +/* + *閫氱敤鏂规硶======================================================== + */ + +export const GetEnum = async (enumName: { name: string }) => { + const usParams = genAction(enumName.name, ''); + return await defHttp.post( + { url: Api.urlQueryEnum, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + //apiUrl: globSetting.taskApiUrl + }, + ); +}; + +/** + * @description: 閫氱敤鏌ヨ鍒嗛〉 + * @param {T} params + * @return {*} + */ +export async function getListByPage<T>(params: T) { + const sqlcmd = ReturnSqlcmd(params); + let order = ''; + if (!isNullOrEmpty(params['order'])) { + order = params['order'] == 'descend' ? params['field'] + ' desc' : params['field']; + } + const rParams = genAction( + params['TABLE_NAME'], + !isNullOrEmpty(params['apiUrl']) + ? params + : { + QueryAble_T: '', + where: sqlcmd, + order: order, + page: { + pageAble_T: 'string', + draw: 1, + pageIndex: params['page'], + pageSize: params['pageSize'], + }, + }, + params['option'], + ); + return getListByPageAsync(rParams, params['apiUrl']); //濡傛灉涓嶆兂鐢ㄩ粯璁ょ殑鍩虹鏂规硶鑾峰彇鍒嗛〉鏁版嵁锛屽彲浠ユ崲鍏朵粬鐨刟pi +} +async function getListByPageAsync(params: any, apiUrl: string | null | undefined) { + const data = await defHttp.post( + { url: !isNullOrEmpty(apiUrl) ? apiUrl : Api.QueryUrl, params, timeout: 50000 }, + { + isTransformResponse: false, + }, + ); + const model = { + items: data.Data.page.data, + total: data.Data.page.totals, + }; + return model; +} + +/** + * @description: 鏍规嵁鏌ヨ鏉′欢鍙傛暟鎷兼帴鏌ヨ鏉′欢 + * @param {T} params + * @return {*} + */ +export function ReturnSqlcmd<T>(params: T) { + const Keys = Object.getOwnPropertyNames(params); + let sqlcmd = '1=1 '; + for (const k in Keys) { + console.log(`${k}:${Keys[k]}`); + if ( + !isNullOrEmpty(params[Keys[k]]) && + Keys[k] != 'page' && + Keys[k] != 'pageSize' && + Keys[k] != 'TABLE_NAME' && + Keys[k] != 'order' && + Keys[k] != 'field' && + Keys[k] != 'option' && + Keys[k] != '0' && + Keys[k] != 'apiUrl' && + !Keys[k].toString().endsWith('PSelect_0') + ) { + if (!isNullOrEmpty(params[Keys[k]].length) && isTimeViaRegExp8601(params[Keys[k]][0])) { + sqlcmd += ` And ${Keys[k]} > '${params[Keys[k]][0]}'`; + sqlcmd += ` And ${Keys[k]} < '${params[Keys[k]][1]}'`; + } else if (isNumber(params[Keys[k]])) { + sqlcmd += `And ${Keys[k]} = ${params[Keys[k]]}`; + } else if (Keys[k] == 'sqlcmd') { + sqlcmd += ` And ${params[Keys[k]]}`; + } else { + sqlcmd += `And ${Keys[k]} like '%${params[Keys[k]]}%'`; + } + } + } + return sqlcmd; +} + +export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string, ...args) { + let data; + if (isUpdate) { + data = await defHttp.post( + { url: Api.UpdateEntity, params: genAction(entityName, params) }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + } else { + var check = await isExist(genAction(entityName, args[0])); + if (check.Data) { + check.IsSuccessed = false; + check.Message = '璁板綍宸茬粡瀛樺湪锛屼笉鑳芥柊澧烇紒'; + return check; + } + params['ID'] = args[1] == true ? params['ID'] : buildUUID(); //鐢熸垚GUID + data = await defHttp.post( + { url: Api.AddEntity, params: genAction(entityName, params) }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + } + return data; +} + +export async function AddListEntity<T>(params: T, entityName: string) { + let data = await defHttp.post( + { url: Api.AddListEntity, params: genAction(entityName, params) }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + return data; +} + +export async function DeleteEntity<T>(params: T, entityName: string) { + const usParams = genAction(entityName, [params]); + return await defHttp.post( + { url: Api.DeleteList, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); +} + +/** + * @description: 鍏堝垹闄ゅ悗娣诲姞Api + * @param {T} params + * @param {string} entityName + * @param {*} items + * @return {*} + */ +export async function AddAfterDelete(entityName: string, items: [], where: string) { + let data = await defHttp.post( + { + url: Api.AddAfterDelete, + params: genAction(entityName, { + QueryAble_T: '', + where: where, + Items: items, + }), + }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + return data; +} + +/** + * @description: 鏍规嵁鏉′欢鍒犻櫎 + * @param {string} sqlcmd + * @param {string} entityName + * @return {*} + */ +export const DeleteWhere = async (sqlcmd: string, entityName: string) => { + const usParams = genAction(entityName, sqlcmd); + return await defHttp.post( + { url: Api.DeleteWhere, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); +}; + +/** + * @description: 鑾峰彇鏈嶅姟鍣↗son鏂囦欢杩斿洖Json鏁版嵁 + * @param {string} url + * @return {*} + */ +export async function fetchJson(url: string) { + try { + const response = await fetch(url); + return await response.json(); + } catch (error) { + console.error('Error fetching columns:', error); + } +} + +// 娉涘瀷鍑芥暟锛岃幏鍙栫被鐨勫悕绉� +export function getClassName<T>(ctor: new () => T): string { + return ctor.name; +} + +export const getEntityList = (params?: EntityParams) => + defHttp.get<EntityList>( + { url: Api.GetEntityNameList, params }, + { + isTransformResponse: false, + apiUrl: globSetting.sysApiUrl, + }, + ); + +export async function getEntityNameList(params?: EntityParams) { + const data = await defHttp.get<EntityList>( + { url: Api.GetEntityNameList, params }, + { + isTransformResponse: false, + apiUrl: globSetting.sysApiUrl, + }, + ); + const model = { + items: data.Data, + total: data.Total, + }; + return model; +} + +export async function getEntityPropertieList(params?: EntityParams) { + const data = await defHttp.get<EntityList>( + { url: Api.GetEntityNameList, params }, + { + isTransformResponse: false, + apiUrl: globSetting.sysApiUrl, + }, + ); + const model = { + items: data.Data.filter((x) => x.Name == params?.StartWith)[0].Properties, + total: data.Total, + }; + return model; +} + +/* 閫氱敤鑾峰彇瀹炰綋璁板綍 */ +export const getEntity = async (params: { sqlcmd: string; entityName: string; order: string }) => { + const usParams = genAction(params.entityName, { + QueryAble_T: '', + where: params.sqlcmd, + order: params.order, + }); + return await defHttp.post( + { url: Api.QueryUrl, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); +}; + +/** + * @description: 鍒ゆ柇淇濆瓨鐨勫�煎鏋滄槸[]鏁扮粍鐨勶紝灏辩洿鎺ュ彇[0]绗竴涓�硷紝涓�鑸拡瀵逛笂浼犳ā鏉跨殑鍦板潃 + * @param {any} values + * @return {*} + */ +export function formatValues(values: any) { + const Keys = Object.getOwnPropertyNames(values); + for (const k in Keys) { + if (isArray(values[Keys[k]])) { + values[Keys[k]] = values[Keys[k]][0]; + } + } + return values; +} + +/** + * @description: 鑾峰彇鍙傛暟 + * @param {pParams} params + * @return {*} + */ +export const getSysParam = (params?: pParams) => + defHttp.get<ApiAction<treeParamsListItem[]>>( + { url: Api.getSysParam, params }, + { + isTransformResponse: false, + }, + ); -- Gitblit v1.9.3