Ben Lin
2024-06-03 8f5009a3d57821c2c97690b8419e428967b5e981
src/api/tigerapi/system.ts
@@ -1,7 +1,8 @@
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 +26,11 @@
  LoginLogPageListGetResultModel,
  iSYS_ROLE_ORG,
  iSYS_ROLE_WH,
  EntityParams,
  EntityList,
} from './model/systemModel';
import { defHttp } from '/@/utils/http/axios';
import { isUnDef } from '/@/utils/is';
import { isNullOrEmpty, isTimeType } from '/@/utils/is';
export enum Api {
  QueryUrl = '/Base/Query',
@@ -49,7 +52,7 @@
  GetOrgTreeList = '/SYS/getOrgTreeList',
  GetHouseTreeList = '/WMS/GetHouseModel',
  GetHouseOrgTreeList = '/WMS/GetHouseModelOrg',
  GetCreateBillCode = '/WMS/CreateBillCode',
  GetCreateBillCode = '/WMS/CreateBillCode',
  GetCreateTFBillCode = '/WMS/CreateTFBillCode',
  GetAllRoleList = '/system/getAllRoleList',
  urlSetSysUserToGroup = '/SYS/SetSysUserToGroup',
@@ -57,23 +60,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 +92,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 +128,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 +141,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 +163,9 @@
    Message: '',
    StatusCode: 0,
    Data: {
      jobName:data,
      period:timeone,
      remark: remark
      jobName: data,
      period: timeone,
      remark: remark,
    },
  };
  return params;
@@ -491,7 +513,7 @@
    },
  );
  export const setBasStatus = (params: any) =>
export const setBasStatus = (params: any) =>
  defHttp.post(
    { url: Api.UpdateEntity, params: genAction('BAS_ITEM', params) },
    {
@@ -613,3 +635,177 @@
  };
  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
    },
  );
};
/* 通用查询分页 */
export async function getListByPage<T>(params: T) {
  const Keys = Object.getOwnPropertyNames(params);
  let sqlcmd = '1=1 ';
  let order = '';
  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] != '0'
    ) {
      if (!isNullOrEmpty(params[Keys[k]].length) && isTimeType(params[Keys[k]][0])) {
        sqlcmd += ` And ${Keys[k]} > '${params[Keys[k]][0]}'`;
        sqlcmd += ` And ${Keys[k]} < '${params[Keys[k]][1]}'`;
      } else {
        sqlcmd += `And ${Keys[k]} like '%${params[Keys[k]]}%'`;
      }
    }
  }
  if (!isNullOrEmpty(params['order'])) {
    order = params['order'] == 'descend' ? params['field'] + ' desc' : params['field'];
  }
  const rParams = genAction(params['TABLE_NAME'], {
    QueryAble_T: '',
    where: sqlcmd,
    order: order,
    page: {
      pageAble_T: 'string',
      draw: 1,
      pageIndex: params['page'],
      pageSize: params['pageSize'],
    },
  });
  return getListByPageAsync(rParams);
}
async function getListByPageAsync(params: any) {
  const data = await defHttp.post(
    { url: Api.QueryUrl, params },
    {
      isTransformResponse: false,
    },
  );
  const model = {
    items: data.Data.page.data,
    total: data.Data.page.totals,
  };
  return model;
}
export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string) {
  let data;
  if (isUpdate) {
    data = await defHttp.post(
      { url: Api.UpdateEntity, params: genAction(entityName, params) },
      {
        errorMessageMode: 'none',
        isTransformResponse: false,
      },
    );
  } else {
    params.ID = buildUUID(); //生成GUID
    data = await defHttp.post(
      { url: Api.AddEntity, 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,
    },
  );
}
//获取服务器Json文件返回Json数据
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 }) => {
  const usParams = genAction(params.entityName, {
    QueryAble_T: '',
    where: params.sqlcmd,
    order: '',
  });
  return await defHttp.post(
    { url: Api.QueryUrl, params: usParams },
    {
      errorMessageMode: 'none',
      isTransformResponse: false,
    },
  );
};