From 6cc2d85787171281c269f4a6c3290b4a0762bcb6 Mon Sep 17 00:00:00 2001 From: YangYuGang <1378265336@qq.com> Date: 星期三, 05 三月 2025 16:21:43 +0800 Subject: [PATCH] 生产工具 --- src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts | 193 +++++++++++++++++++++++++++++------------------- 1 files changed, 117 insertions(+), 76 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts index 3bc1df4..5be5704 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 23:36:24 + * @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'; @@ -34,6 +34,7 @@ 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(); @@ -119,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; } @@ -179,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, @@ -331,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); @@ -347,43 +354,46 @@ } if (params['selectedNodes'][0].type == 'Node') { resetFieldsNode(); - const wonode = await getEntity({ - sqlcmd: `WORK_ORDER ='${params['objParams'].value['CODE']}' AND ID = '${res.Data.Items[0].NODE_ID}'`, - 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, - }); + // const wonode = await getEntity({ + // sqlcmd: `WORK_ORDER ='${params['objParams'].value['CODE']}' AND ID = '${res.Data.Items[0].NODE_ID}'`, + // entityName: 'MES_WO_NODE', + // order: '', + // }); + + 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, @@ -429,9 +439,11 @@ OpenSelectItem: (openItemModal: Fn, ...args) => { let config = {}; const openCrudModal = args[1]; - const record = args[2]; + const record = args[2]; //甯﹁繃鏉ョ殑璁板綍 const OrderNo = args[3]; - switch (args[0]) { + const WoRecord = args[4]; + /* args[0]鏄晫闈笂鐨剆lot鍚嶅瓧锛屾牴鎹畇lot鍚嶅瓧鏉ュ啓涓嶅悓鐨勯�昏緫瀹炵幇 */ + switch (args[0]) { case 'scanadd': config = ruleModalCfg; break; @@ -448,6 +460,7 @@ config = pkgModalCfg; break; } + /* 濡傛灉slot鏄�'labeladd'锛屾墦寮�澧炲垹鏀规ā鎬佺獥鍙o紝鍙紪杈戣 */ if (args[0] == 'labeladd') { openCrudModal(true, { isUpdate: true, //鏄惁鏇存柊鎿嶄綔 @@ -457,7 +470,12 @@ width: '1024px', //寮瑰嚭妗嗗搴� ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯 schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯 - others: { WORK_ORDER: OrderNo }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹� + others: { WORK_ORDER: OrderNo}, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹� + alertConfig: { + showAlert: true, + message: '閿�鍞鍗曞娉�', + description: WoRecord.SALES_REMARK, + }, /* 鍦ㄥ脊鍑虹獥鍙f渶涓婁綅缃樉绀烘彁閱掍俊鎭紝鏄剧ず閿�鍞鍗曞娉� */ searchInfo: { TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О LabelId: record.LABEL_CODE, //妯℃澘ID @@ -551,33 +569,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'), @@ -884,7 +888,7 @@ const webSocketStore = useWebSocketStore(); if (webSocketStore.GetSocketState == 1) { webSocketStore.sendMessage( - `wsGetNew ${param.values['LABEL_ID']}_#_${ param.values['WORK_ORDER']}`, + `wsGetNew ${param.values['LABEL_ID']}_#_${param.values['WORK_ORDER']}`, ); } } @@ -892,10 +896,10 @@ const webSocketStore = useWebSocketStore(); if (webSocketStore.GetSocketState == 1) { webSocketStore.sendMessage( - `wsGetNew ${param.values['LABEL_ID']}_#_${ param.values['WORK_ORDER']}`, + `wsGetNew ${param.values['LABEL_ID']}_#_${param.values['WORK_ORDER']}`, ); } - break; + break; } resolve('OK'); } catch (e) { @@ -1183,6 +1187,14 @@ field: 'LABEL_CODE', component: 'Input', label: '妯℃澘缂栫爜', + colProps: { + span: 12, + }, + }, + { + field: 'LABEL_NAME', + component: 'Input', + label: '妯℃澘鍚嶇О', colProps: { span: 12, }, @@ -1675,6 +1687,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', @@ -1852,6 +1887,7 @@ function handleTemplate(args, params: Recordable) { const openCrudModal = args[0]; const OrderNo = args[2]; + const WoRecord = params['mainRecord']; openCrudModal(true, { isUpdate: true, //鏄惁鏇存柊鎿嶄綔 entityName: 'WoRouteBinding', //鏄摢涓〉闈� @@ -1861,6 +1897,11 @@ ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯 schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯 others: { WORK_ORDER: OrderNo }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹� + alertConfig: { + showAlert: true, + message: '閿�鍞鍗曞娉�', + description: WoRecord.SALES_REMARK, + }, /* 鍦ㄥ脊鍑虹獥鍙f渶涓婁綅缃樉绀烘彁閱掍俊鎭紝鏄剧ず閿�鍞鍗曞娉� */ searchInfo: { TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О LabelId: params['record'].LABEL_ID, //妯℃澘ID -- Gitblit v1.9.3