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 |  248 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 181 insertions(+), 67 deletions(-)

diff --git a/src/api/tigerapi/system.ts b/src/api/tigerapi/system.ts
index 6166ba1..dae8570 100644
--- a/src/api/tigerapi/system.ts
+++ b/src/api/tigerapi/system.ts
@@ -1,4 +1,3 @@
-import { UserConfigFn } from 'vite';
 import { useGlobSetting } from '/@/hooks/setting';
 import { buildUUID } from '../../utils/uuid';
 import { DateFormat } from '../../utils/dataformat';
@@ -29,10 +28,12 @@
   EntityParams,
   EntityList,
   iSYS_ROLE_PROD,
+  pParams,
 } from './model/systemModel';
 import { defHttp } from '/@/utils/http/axios';
-import { isNullOrEmpty, isTimeType } from '/@/utils/is';
-import { MES_ROUTE_EDGE, MES_ROUTE_NODE } from './model/router';
+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',
@@ -40,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',
@@ -274,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);
     }
@@ -679,48 +708,33 @@
  * @return {*}
  */
 export async function getListByPage<T>(params: T) {
-  const Keys = Object.getOwnPropertyNames(params);
-  let sqlcmd = '1=1 ';
+  const sqlcmd = ReturnSqlcmd(params);
   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' &&
-      !Keys[k].toString().endsWith('PSelect_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);
+  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) {
+async function getListByPageAsync(params: any, apiUrl: string | null | undefined) {
   const data = await defHttp.post(
-    { url: Api.QueryUrl, params },
+    { url: !isNullOrEmpty(apiUrl) ? apiUrl : Api.QueryUrl, params, timeout: 50000 },
     {
       isTransformResponse: false,
     },
@@ -732,7 +746,44 @@
   return model;
 }
 
-export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string) {
+/**
+ * @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(
@@ -743,7 +794,13 @@
       },
     );
   } else {
-    params.ID = buildUUID(); //鐢熸垚GUID
+    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) },
       {
@@ -752,6 +809,17 @@
       },
     );
   }
+  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;
 }
 
@@ -766,7 +834,53 @@
   );
 }
 
-//鑾峰彇鏈嶅姟鍣↗son鏂囦欢杩斿洖Json鏁版嵁
+/**
+ * @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);
@@ -821,11 +935,11 @@
 }
 
 /* 閫氱敤鑾峰彇瀹炰綋璁板綍 */
-export const getEntity = async (params: { sqlcmd: string; entityName: string }) => {
+export const getEntity = async (params: { sqlcmd: string; entityName: string; order: string }) => {
   const usParams = genAction(params.entityName, {
     QueryAble_T: '',
     where: params.sqlcmd,
-    order: '',
+    order: params.order,
   });
   return await defHttp.post(
     { url: Api.QueryUrl, params: usParams },
@@ -836,30 +950,30 @@
   );
 };
 
-/*
- * 杞崲宸ヨ壓璺嚎涓烘爲褰son
+/**
+ * @description: 鍒ゆ柇淇濆瓨鐨勫�煎鏋滄槸[]鏁扮粍鐨勶紝灏辩洿鎺ュ彇[0]绗竴涓�硷紝涓�鑸拡瀵逛笂浼犳ā鏉跨殑鍦板潃
+ * @param {any} values
+ * @return {*}
  */
-function convertRouteToTreeData(
-  nodes: MES_ROUTE_NODE[],
-  edges: MES_ROUTE_EDGE[],
-  parentId: string,
-  id: string,
-  pid?: string,
-) {
-  const result: treeParamsListItem[] = [];
-  let temp: treeParamsListItem[] = [];
-  const _pid = pid == undefined ? '' : pid;
-  for (let i = 0; i < nodes.length; i++) {
-    const currPid = data[i][parentId] == null ? '' : data[i][parentId];
-    if (currPid === _pid) {
-      const obj: treeParamsListItem = data[i];
-      obj.PARAM_TYPE = _pid == '' ? '0' : '1'; //澧炲姞绫诲瀷
-      temp = convertToTreeData(data, parentId, id, data[i][id]);
-      if (temp.length > 0) {
-        obj.children = temp;
-      }
-      result.push(obj);
+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 result;
+  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