From 21a4e09672b1177d40c2bb5b937a8780c5eaa7fb Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 08 三月 2025 15:03:34 +0800
Subject: [PATCH] 一些更新

---
 src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts |  299 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 221 insertions(+), 78 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
index 1f43d2f..c121589 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
@@ -4,15 +4,13 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-21 18:40:06
+ * @LastEditTime: 2024-10-23 20:48:14
  */
 
 import { Ref, h, ref, render, unref } from 'vue';
 import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system';
 import { useLocale } from '/@/locales/useLocale';
-import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
 import { useI18n } from '/@/hooks/web/useI18n';
-import { NavItem } from '/@/api/tigerapi/model/basModel';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { useModal } from '/@/components/Modal';
 import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table';
@@ -22,24 +20,16 @@
 import { CustModalParams, FunctionType } from '/@/api/tigerapi/model/systemModel';
 import { SaveMesBatchWo } from '/@/api/tigerapi/mes/wo';
 import { useForm } from '/@/components/Form/index';
-import { uploadApi } from '/@/api/sys/upload';
-import { initRoute } from '../data';
-import { SP_MES_PROD2WO } from '/@/api/tigerapi/mes/router';
+import { cloneDeep } from 'lodash-es';
+import { useProdRouteStore } from '/@/store/modules/prodRoute';
+import { Tag, Tooltip } from 'ant-design-vue';
 
 const { t } = useI18n();
 const { createErrorModal } = useMessage();
 const { getLocale } = useLocale();
 function _default() {
-  /* 瀹氫箟鍙橀噺 */
-  const isNormal = (type: number) => type === 0;
-  const isScan = (type: number) => type === 1;
-  const isAssy = (type: number) => type === 2;
-  const isTest = (type: number) => type === 3;
-  const isAudit = (type: number) => type === 4;
-  const isPrint = (type: number) => type === 5;
-  const isPackage = (type: number) => type === 6;
   const ActionColumn: BasicColumn = {
-    width: 220,
+    width: 180,
     title: '鎿嶄綔',
     dataIndex: 'action',
     slots: { customRender: 'action' },
@@ -54,10 +44,104 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
-      return {
-        action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
-      };
+    CreateAction: (type: string, fnName: string) => {
+      let action = {} as any;
+      switch (fnName) {
+        case 'ImportExcel':
+          action = {
+            action: 'importModal', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘)
+            params: {
+              tmpHeader: ['宸ュ崟鍙�', '璁″垝鏃ユ湡', '璁″垝鏁伴噺'] /* 涓嬭浇妯℃澘鐨勬爣棰樺瓧娈� */,
+              filename: '宸ュ崟璁″垝妯℃澘.xlsx' /* 涓嬭浇妯℃澘鐨勬枃浠跺悕 */,
+              entityName: 'BIZ_MES_WO_BATCH' /* 瀵煎叆琛ㄧ殑琛ㄥ悕 */,
+              checkJson: ['ORDER_NO', 'PLAN_DATE', 'PLAN_QTY'] /* 瀵煎叆琛ㄩ渶瑕佹鏌ョ殑瀛楁鍒楄〃 */,
+              where: ['ORDER_NO'] /* 瀵煎叆琛ㄩ渶瑕佹煡璇㈢殑瀛楁鍒楄〃 */,
+              typeFullName:
+                'Tiger.IBusiness.MES.IImportWoPlan,Tiger.IBusiness.MES' /* 瀵煎叆鐨勬柟娉曞叏鍚嶏紝閫氱敤瀵煎叆鐢ㄨ繖涓細Tiger.IBusiness.ICommonImportExcel,Tiger.IBusiness */,
+              baseColumns: [
+                /* 瀵煎叆鏃剁晫闈㈡樉绀烘暟鎹殑瀛楁 */
+                {
+                  title: '宸ュ崟鍙�',
+                  dataIndex: 'ORDER_NO',
+                  ifShow: true,
+                  width: 180,
+                },
+                // {
+                //   title: '宸ュ崟鎵规鍙�',
+                //   dataIndex: 'BATCH_NO',
+                //   ifShow: true,
+                //   width: 180,
+                //   // customRender: ({ record }) => {
+                //   //   record.BATCH_NO = record.ORDER_NO+'-01'
+                //   //   return record.BATCH_NO
+                //   // },
+                // },
+                {
+                  title: '璁″垝鏃ユ湡',
+                  dataIndex: 'PLAN_DATE',
+                  ifShow: true,
+                  width: 180,
+                },
+                {
+                  title: '璁″垝鏁伴噺',
+                  dataIndex: 'PLAN_QTY',
+                  ifShow: true,
+                  width: 100,
+                },
+                {
+                  title: '澶勭悊鏂瑰紡',
+                  dataIndex: 'VALIDATION_TYPE',
+                  ifShow: true,
+                  width: 100,
+                  customRender: ({ record }) => {
+                    const status = record.VALIDATION_TYPE;
+                    var text = '';
+                    var color = 'green';
+                    if (status == '寮傚父') {
+                      color = 'red';
+                      text = status;
+                    } else if (status == '鏇存柊') {
+                      color = 'orange';
+                      text = status;
+                    } else {
+                      text = status;
+                    }
+                    return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text));
+                  },
+                },
+                {
+                  title: '澶勭悊鎻愮ず',
+                  dataIndex: 'VALIDATION_RESULT',
+                  ifShow: true,
+                  width: 280,
+                  customRender: ({ record }) => {
+                    const status = record.VALIDATION_TYPE;
+                    var text = record.VALIDATION_RESULT;
+                    var color = 'green';
+                    if (status == '寮傚父') {
+                      color = 'red';
+                    } else if (status == '鏇存柊') {
+                      color = 'orange';
+                    }
+                    return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text));
+                  },
+                },
+              ],
+            },
+          };
+          break;
+        case 'ToPrint':
+          action = {
+            action: 'ToPrint', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘)
+          };
+        break;
+        default:
+          action = {
+            action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘)
+          };
+          break;
+      }
+      return action;
     },
     /**
      * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽�
@@ -76,6 +160,9 @@
         if (x.name == 'handleRelease') {
           x.onClick = handleRelease.bind(null, args, params);
           x.tooltip = '涓嬪彂';
+        }
+        if (x.name == 'ToPrint') {
+          x.tooltip = '鎵撳嵃娴佺▼鍗�';
         }
       });
       return data;
@@ -99,6 +186,14 @@
           showActionButtonGroup: false,
         }),
         prodinfo: useForm({
+          labelWidth: 120,
+          schemas: prodCfgformSchema,
+          actionColOptions: {
+            span: 24,
+          },
+          showActionButtonGroup: false,
+        }),
+        tmpinfo: useForm({
           labelWidth: 120,
           schemas: prodCfgformSchema,
           actionColOptions: {
@@ -255,10 +350,21 @@
           });
           break;
         case 'set':
-        case 'setRot':
           openRvModal(true, { rotId: selectVals.value['ROUTE_CODE'], slotName: slotName });
           break;
+        case 'setRot':
+          break;
       }
+    },
+    /**
+     * @description: 鑾峰彇鏍囬淇℃伅
+     * @param {string} type
+     * @return {*}
+     */
+    GetTitle: () => {
+      return {
+        importTitle: '宸ュ崟璁″垝瀵煎叆' /* 鎵撳紑妯℃�佺獥鍙f樉绀虹殑鏍囬 */,
+      };
     },
   };
 
@@ -280,12 +386,17 @@
         try {
           const form = param.values['prodinfo'];
           const wo = param.values['mValues'];
-          wo.ROUTE_STATUS = 1;
-          wo.ROUTE_CODE = form.ROUTE_CODE;
-          SaveEntity(wo, true, 'BIZ_MES_WO').then((action) => {
+          const _wo = cloneDeep(wo);
+          _wo.ROUTE_STATUS = 1;
+          _wo.ROUTE_CODE = form.ROUTE_CODE;
+          SaveEntity(_wo, true, 'BIZ_MES_WO').then((action) => {
             if (action.IsSuccessed) {
-              SP_MES_PROD2WO({ rotId: form.ROT_ID, wo: wo.ORDER_NO });
-              resolve(action);
+              SP_MES_PROD2WO({ rotId: form.ROT_ID, wo: wo.ORDER_NO }).then((res) => {
+                if (!res.IsSuccessed) {
+                  SaveEntity(wo, true, 'BIZ_MES_WO');
+                }
+                resolve(res);
+              });
             } else {
               reject(action);
             }
@@ -305,8 +416,7 @@
         try {
           const form = param.values['forminfo'];
           const wo = param.values['mValues'];
-          wo.ROUTE_CODE = form.ROUTE_CODE;
-          wo.STATUS = 2;
+          wo.STATUS = wo.STATUS == 3 ? wo.STATUS : 2;
           let input: SaveWoBatchInput = {
             Wo: wo,
             WoBatch: {
@@ -325,7 +435,7 @@
               CUST_CODE: wo.CUST_CODE,
               FACTORY: wo.FACTORY,
               WS_CODE: wo.WS_CODE,
-              ACT_LINE: form.PLAN_LINE,
+              ACT_LINE: form.ACT_LINE,
               STD_WORKER_QTY: wo.STD_WORKER_QTY,
               ACT_WORKER_QTY: wo.ACT_WORKER_QTY,
               RELEASE_TIME: new Date(),
@@ -342,6 +452,7 @@
               ACT_END_TIME: wo.ACT_END_TIME,
               BATCH_NO: '',
             },
+            IfToCust: form.IfToCust,
           };
           SaveMesBatchWo(input).then((action) => {
             resolve(action);
@@ -364,16 +475,27 @@
       ID: params['record'].ID,
       CODE: params['record']['ORDER_NO'],
       Name: 'BIZ_MES_WO_BATCH',
-      firstTabName: '宸ュ崟鎵规',
-      secondTabName: '', //'鏍囩杩囩▼鍙橀噺',
-      firstTitle: '鎵规',
-      secondTitle: '', //'杩囩▼鍙橀噺',
+      Tabs: [
+        {
+          name: '宸ュ崟鎵规',
+          tableTitle: '鎵规',
+          entityName: 'BIZ_MES_WO_BATCH',
+          key: 'batch'
+        },
+        // {
+        //   name: '宸ュ崟鎵规2',
+        //   tableTitle: '鎵规2',
+        //   entityName: 'BIZ_U9_ASN_DTL',
+        //   key: 'batch2'
+        // }
+      ],
       pageTitle: '宸ュ崟璇︽儏', //璇︽儏椤甸潰鏍囬
       contentStr: '杩欓噷鏄伐鍗曟壒娆$鐞嗛〉闈紝鍙互鏄剧ず宸ュ崟涓嬪彂鐨勬墍鏈夋壒娆¤鎯�',
       detailName: `宸ュ崟[${params['record'].ORDER_NO}]鎵规璇︽儏`,
       keyFieldValues: { ORDER_NO: params['record']['ORDER_NO'] },
       colSlots: params['colSlots'].value,
       SessionName: 'BIZ_MES_WO_BATCH_update',
+      ifSave: false,
     };
     // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
     sessionStorage.removeItem(`${id.SessionName}_params`);
@@ -388,26 +510,37 @@
    * @return {*}
    */
   function handleConfig(args, params: Recordable) {
-    const openCustModal = args[7];
-    // rotSchema.value = getFormSchema('rotinfo');
-    params['routeData'].value = {
-      nodes: [],
-      edges: [],
+    const go = args[5];
+    const id = {
+      ID: params['record'].ID,
+      Name: 'WoRouteBinding',
+      CODE: params['record'].ORDER_NO,
+      Title: `宸ュ崟[${params['record'].ORDER_NO}]宸ヨ壓缁戝畾`,
+      colSlots:
+        params['colSlots'].value /* 琛ㄦ牸鍐呯殑鏌ヨ琛ㄥ崟瀛楁鐨勬彃妲藉垪琛紝涓�鑸敤浜庡脊鍑洪�夋嫨妗嗘寜閽� */,
+      crudColSlots: {
+        BAS_PKG_DTL: ['BAS_LABEL_TEMP1add'],
+        ItemCode: ['BAS_CODE_RULE1add'],
+      } /* 澧炲垹鏀硅〃鍗曞瓧娈电殑鎻掓Ы鍒楄〃锛屼竴鑸敤浜庡脊鍑洪�夋嫨妗嗘寜閽� */,
+      OtherTableName: [
+        'BAS_PKG_DTL',
+        'ItemCode',
+      ] /* 鑷畾涔夋樉绀哄垪琛ㄧ殑琛ㄥ悕锛岃窡涓婇潰澧炲垹鏀圭殑琛ㄥ悕涓�鑷达紝鏈夊涓氨鏀惧垪琛ㄤ腑 */,
+      record: params['record'],
+      dense: true,
+      pageTitle: `宸ュ崟宸ヨ壓缁戝畾`,
+      pageContent: `杩欓噷鏄鐞嗗伐鍗曠殑宸ヨ壓缁戝畾锛屼竴涓伐鍗曞彲浠ョ粦瀹氫竴涓伐鑹鸿矾绾匡紝骞跺彲浠ヤ繚瀛樹负瀹㈡埛涓撶敤鐨勫伐鑹鸿矾绾縛,
+      SessionName: 'WoRouteBinding_update',
+      ifSave: false,
+      rotType: 'Wo',
     };
-    initRoute(params['currlf'], params['record'].ROUTE_CODE, params['routeData'], params['currlf']);
-    params['selectVals'].value['ROUTE_CODE'] = params['record'].ROUTE_CODE;
-    openCustModal(true, {
-      isUpdate: true,
-      ctype: 'BIZ_MES_WO_Config',
-      title: '宸ヨ壓閰嶇疆',
-      width: '1200px',
-      formEl: params['useFormData'].value, //濡傛灉鏄涓〃鍗曪紝澧炲姞澶氫釜鎻掓Ы
-      formElName: ['woinfo', 'prodinfo', 'rotinfo'], //琛ㄥ崟鎻掓Ы鍚嶇О锛屾敮鎸佸涓〃鍗�
-      RowKey: '',
-      fnName: 'SaveCofig', //淇濆瓨鏂规硶鍚�
-      others: params['routeData'].value,
-      values: params['record'], //琛ㄥ崟璁板綍
-    });
+    // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+    sessionStorage.removeItem(`${id.SessionName}_params`);
+    sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id)));
+    /* 璁剧疆鏍囧織锛屼互鏍规嵁缂撳瓨鏁版嵁鍙栨暟鎹� */
+    const useProdRoute = useProdRouteStore();
+    useProdRoute.setChangeToCPPage(true);
+    go(`/WoRouteBinding/CP/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`);
   }
 
   /**
@@ -454,8 +587,8 @@
       },
     },
     {
-      label: '璁″垝浜х嚎',
-      field: 'PLAN_LINE',
+      label: '瀹為檯浜х嚎',
+      field: 'ACT_LINE',
       component: 'ApiSelect',
       required: true,
       colProps: {
@@ -470,34 +603,44 @@
       },
     },
     {
-      label: '宸ヨ壓璺嚎',
-      field: 'ROUTE_CODE',
-      component: 'Input',
-      required: true,
+      field: 'IfToCust',
+      component: 'Switch',
+      label: '鏄惁淇濆瓨宸ヨ壓璺嚎鍒板鎴�',
+      defaultValue: true,
       colProps: {
-        span: 22,
+        span: 8,
       },
+      labelWidth: 200,
     },
-    {
-      field: 'add',
-      component: 'Input',
-      label: '1',
-      colSlot: 'add',
-      defaultValue: 'MES_ROUTE',
-      colProps: {
-        span: 1,
-      },
-    },
-    {
-      field: 'set',
-      component: 'Input',
-      label: '1',
-      colSlot: 'set',
-      defaultValue: 'MES_ROUTE',
-      colProps: {
-        span: 1,
-      },
-    },
+    // {
+    //   label: '宸ヨ壓璺嚎',
+    //   field: 'ROUTE_CODE',
+    //   component: 'Input',
+    //   required: true,
+    //   colProps: {
+    //     span: 22,
+    //   },
+    // },
+    // {
+    //   field: 'add',
+    //   component: 'Input',
+    //   label: '1',
+    //   colSlot: 'add',
+    //   defaultValue: 'MES_ROUTE',
+    //   colProps: {
+    //     span: 1,
+    //   },
+    // },
+    // {
+    //   field: 'set',
+    //   component: 'Input',
+    //   label: '1',
+    //   colSlot: 'set',
+    //   defaultValue: 'MES_ROUTE',
+    //   colProps: {
+    //     span: 1,
+    //   },
+    // },
   ];
 
   const woCfgformSchema: FormSchema[] = [

--
Gitblit v1.9.3