From 547c91649da47f4dd8c6706e632797dbd9d79d87 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 07 十二月 2024 16:26:49 +0800
Subject: [PATCH] 工艺路线工序节点保存更新

---
 src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts |  172 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 106 insertions(+), 66 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts
index 85649a2..5ae4fdb 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts
@@ -4,14 +4,14 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-10-22 09:56:57
+ * @LastEditTime: 2024-10-23 23:55:56
  */
 
-import { Ref, h, ref, render, unref } from 'vue';
+import { Ref, unref } from 'vue';
 import {
   DeleteWoRoute,
   GetWoPTree,
-  SP_MES_PROD2WO,
+  ProdRouteToWo,
   SP_MES_WO2CUST,
 } from '/@/api/tigerapi/mes/router';
 import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system';
@@ -32,11 +32,15 @@
 import { buildUUID } from '/@/utils/uuid';
 import { mesApi } from '/@/api/tigerapi/mes/mesApi';
 import { useProdRouteStore } from '/@/store/modules/prodRoute';
+import { useWebSocketStore } from '/@/store/modules/websocket';
+import { useGlobSetting } from '/@/hooks/setting';
+import { cloneDeep } from 'vue-json-pretty/types/utils';
 
 const { t } = useI18n();
 const { createErrorModal } = useMessage();
 const useProdRoute = useProdRouteStore();
 const { getLocale } = useLocale();
+const globSetting = useGlobSetting();
 function _default() {
   /* 瀹氫箟鍙橀噺 */
   const isNormal = (type: number) => type === 0;
@@ -116,6 +120,8 @@
           treeInfo: _treeData as unknown as MesRotTree[],
         });
       }
+      useProdRoute.setWo(wo);
+      useProdRoute.setname(wo);
       if (useProdRoute.curProdRotTree.some((q) => q.name == wo)) {
         data.treeData = useProdRoute.curProdRotTree.filter((q) => q.name == wo)[0].treeInfo;
       }
@@ -176,12 +182,17 @@
      * @return {*}
      */
     GetUseTables: (data: Ref<{}>, ...args) => {
+      let sortData = isNullOrUnDef(data.value['BAS_PKG_DTL']) 
+        ? data.value['BAS_PKG_DTL']
+        : data.value['BAS_PKG_DTL'].sort((a, b) => {
+            return a.PKG_LEVEL - b.PKG_LEVEL;
+          });
       return {
         BAS_PKG_DTL: useTable({
           title: '鍒楄〃淇℃伅',
           // api: getListByPage,
           // searchInfo: { TABLE_NAME: 'V_BAS_PKG_DTL' },
-          dataSource: data.value['BAS_PKG_DTL'],
+          dataSource: sortData,
           columns: GetBaseColumns('BAS_PKG_DTL', args[0], data),
           // maxHeight: 520,
           useSearchForm: false,
@@ -328,10 +339,9 @@
                 ? ents.Data.Items
                 : JSON.parse(res.Data.Items[0].OPTION_1);
               /* 濡傛灉OPTION_1瀛楁涓虹┖灏辨妸鍖呰淇℃伅杞琂SON瀛樺埌OPTION_1瀛楁 */
-              res.Data.Items[0].OPTION_1 = isNullOrEmpty(res.Data.Items[0].OPTION_1)
-                ? JSON.stringify(ents.Data.Items)
-                : res.Data.Items[0].OPTION_1;
-            } /* 濡傛灉鏄粍瑁呬笂鏂� */
+              res.Data.Items[0].OPTION_1 = JSON.stringify(result['BAS_PKG_DTL']);
+            }
+            /* 濡傛灉鏄粍瑁呬笂鏂� */
             if (res.Data.Items[0].ACT_TYPE == 2) {
               result['name'] = 'ItemCode';
               result['ItemCode'] = JSON.parse(res.Data.Items[0].OPTION_1);
@@ -349,38 +359,41 @@
               entityName: 'MES_WO_NODE',
               order: '',
             });
-            setFieldsValueNode({
-              ID: res.Data.Items[0].ID,
-              OPER_CODE: res.Data.Items[0].OPER_CODE,
-              ROT_ID: res.Data.Items[0].ROT_ID,
-              NODE_ID: res.Data.Items[0].NODE_ID,
-              NODE_NAME: res.Data.Items[0].NODE_NAME,
-              IS_ACTIVE: isNullOrEmpty(res.Data.Items[0].IS_ACTIVE)
-                ? 'N'
-                : res.Data.Items[0].IS_ACTIVE,
-              IS_CALC_FPY: isNullOrEmpty(res.Data.Items[0].IS_CALC_FPY)
-                ? 'N'
-                : res.Data.Items[0].IS_CALC_FPY,
-              CAN_SKIP: isNullOrEmpty(res.Data.Items[0].CAN_SKIP)
-                ? 'N'
-                : res.Data.Items[0].CAN_SKIP,
-              IS_INPUT:
-                wonode.Data.Items[0].IS_FIRST_NODE == 'Y'
-                  ? 'Y'
-                  : isNullOrEmpty(res.Data.Items[0].IS_INPUT)
-                    ? 'N'
-                    : res.Data.Items[0].IS_INPUT,
-              IS_OUTPUT: isNullOrEmpty(res.Data.Items[0].IS_OUTPUT)
-                ? 'N'
-                : res.Data.Items[0].IS_OUTPUT,
-              ALLOW_DFT_IN: isNullOrEmpty(res.Data.Items[0].ALLOW_DFT_IN)
-                ? 'N'
-                : res.Data.Items[0].ALLOW_DFT_IN,
-              REMARK: res.Data.Items[0].REMARK,
-              WORK_ORDER: params['objParams'].value['CODE'],
-              CUST_CODE: params['selectedNodes'][0].cust,
-              PROD_CODE: params['selectedNodes'][0].prod,
-            });
+            
+            if(isNullOrEmpty(res.Data.Items[0].IS_ACTIVE)){
+              res.Data.Items[0].IS_ACTIVE = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].IS_CALC_FPY)){
+              res.Data.Items[0].IS_CALC_FPY = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].CAN_SKIP)){
+              res.Data.Items[0].CAN_SKIP = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].IS_INPUT)){
+              res.Data.Items[0].IS_INPUT = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].IS_OUTPUT)){
+              res.Data.Items[0].IS_OUTPUT = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].ALLOW_DFT_IN)){
+              res.Data.Items[0].ALLOW_DFT_IN = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].IF_DFT_OFFLINE)){
+              res.Data.Items[0].IF_DFT_OFFLINE = 'N'
+            }
+            if(!isNullOrEmpty(params['objParams'].value['CODE'])){
+              res.Data.Items[0].WORK_ORDER = params['objParams'].value['CODE']
+            }
+            if(!isNullOrEmpty(params['selectedNodes'][0].prod)){
+              res.Data.Items[0].PROD_CODE = params['selectedNodes'][0].prod
+            }
+            if(!isNullOrEmpty(params['selectedNodes'][0].cust)){
+              res.Data.Items[0].CUST_CODE = params['selectedNodes'][0].cust
+            }
+            setFieldsValueNode(res.Data.Items[0]);
+            /* 榛樿淇濆瓨 */
+            SaveEntity(res.Data.Items[0], true, 'MES_WO_OPER');
+
             result['name'] = 'Node';
             result['isShow'] = {
               BAS_PKG_DTL: false,
@@ -548,33 +561,19 @@
             return;
           }
           /* 鏇存柊宸ュ崟鐘舵�佸苟鐢熸垚宸ュ崟鐨勫伐鑹鸿矾绾� */
-          UpdateWoStatus({
-            UserId: useUserStore().getUserInfo.userId as string,
-            WorkOrder: args[1]['CODE'],
-            Status: -1,
-            RouteStatus: 1,
-            WoBatch: '',
-            ActLine: '',
+          ProdRouteToWo({
+            rotId: d.values.id,
+            wo: args[1]['CODE'],
+            rotCode: '',
+            options: {
+              //鏍规嵁鎹偣鏌ヨ锛屽繀闇�甯﹁繖涓弬鏁�
+              UserId: useUserStore().getUserInfo.userId,
+              ByOrg: true,
+              CurOrg: useUserStore().getUserInfo.orgCode,
+            },
           }).then((action) => {
             if (action.IsSuccessed) {
-              SP_MES_PROD2WO({ rotId: d.values.id, wo: args[1]['CODE'] }).then((action) => {
-                if (action.IsSuccessed) {
-                  args[2]();
-                } else {
-                  UpdateWoStatus({
-                    UserId: useUserStore().getUserInfo.userId as string,
-                    WorkOrder: args[1]['CODE'],
-                    Status: -1,
-                    RouteStatus: 0,
-                    WoBatch: '',
-                    ActLine: '',
-                  });
-                  createErrorModal({
-                    title: t('sys.api.errorTip'),
-                    content: t(action.LocaleMsg),
-                  });
-                }
-              });
+              args[2]();
             } else {
               createErrorModal({
                 title: t('sys.api.errorTip'),
@@ -874,7 +873,25 @@
               param.values['WORK_ORDER'] = param.others['WORK_ORDER'];
               param.values['ID'] = buildUUID();
 
-              await AddOrEditLabelVarByWorkOrder(param.values as unknown as BAS_LABEL_VAR_WO);
+              const apiaction = await AddOrEditLabelVarByWorkOrder(
+                param.values as unknown as BAS_LABEL_VAR_WO,
+              );
+              if (apiaction.IsSuccessed) {
+                const webSocketStore = useWebSocketStore();
+                if (webSocketStore.GetSocketState == 1) {
+                  webSocketStore.sendMessage(
+                    `wsGetNew ${param.values['LABEL_ID']}_#_${param.values['WORK_ORDER']}`,
+                  );
+                }
+              }
+            case 'delete':
+              const webSocketStore = useWebSocketStore();
+              if (webSocketStore.GetSocketState == 1) {
+                webSocketStore.sendMessage(
+                  `wsGetNew ${param.values['LABEL_ID']}_#_${param.values['WORK_ORDER']}`,
+                );
+              }
+              break;
           }
           resolve('OK');
         } catch (e) {
@@ -1654,6 +1671,29 @@
       },
     },
     {
+      field: 'IF_DFT_OFFLINE',
+      label: '鍒ゆ柇涓嶈壇鍚庢槸鍚︿笅绾�',
+      required: true,
+      defaultValue: 'N',
+      component: 'Select',
+      colProps: { span: 12 },
+      componentProps: {
+        options: [
+          {
+            label: '鏄�',
+            value: 'Y',
+            key: 'Y',
+          },
+          {
+            label: '鍚�',
+            value: 'N',
+            key: 'N',
+          },
+        ],
+      },
+      ifShow: ({ values }) => values.OPER_CODE == 'TestNode',
+    },
+    {
       field: 'REMARK',
       label: '澶囨敞',
       component: 'Input',

--
Gitblit v1.9.3