Ben Lin
2025-02-27 8a12783afd1d6c4881d90e66bb0a52010a1598ae
src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts
@@ -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,
@@ -332,7 +340,7 @@
                : JSON.parse(res.Data.Items[0].OPTION_1);
              /* 如果OPTION_1字段为空就把包装信息转JSON存到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';
@@ -346,46 +354,45 @@
          }
          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: '',
            });
            const values = {
              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,
            };
            setFieldsValueNode(values);
            // 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(values, true, 'MES_WO_OPER');
            SaveEntity(res.Data.Items[0], true, 'MES_WO_OPER');
            result['name'] = 'Node';
            result['isShow'] = {
@@ -432,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]是界面上的slot名字,根据slot名字来写不同的逻辑实现 */
      switch (args[0]) {
        case 'scanadd':
          config = ruleModalCfg;
          break;
@@ -451,6 +460,7 @@
          config = pkgModalCfg;
          break;
      }
      /* 如果slot是'labeladd',打开增删改模态窗口,可编辑行 */
      if (args[0] == 'labeladd') {
        openCrudModal(true, {
          isUpdate: true, //是否更新操作
@@ -460,7 +470,12 @@
          width: '1024px', //弹出框宽度
          ItemColumns: TemplateBasColumn, //弹出框中表格字段结构
          schemas: [], //查询条件字段结构
          others: { WORK_ORDER: OrderNo }, //需要带到弹出窗口中的数据
          others: { WORK_ORDER: OrderNo}, //需要带到弹出窗口中的数据
          alertConfig: {
            showAlert: true,
            message: '销售订单备注',
            description: WoRecord.SALES_REMARK,
          },  /* 在弹出窗口最上位置显示提醒信息,显示销售订单备注 */
          searchInfo: {
            TABLE_NAME: 'BAS_LABEL_VAR_WO', //实体名称
            LabelId: record.LABEL_CODE, //模板ID
@@ -555,14 +570,15 @@
          }
          /* 更新工单状态并生成工单的工艺路线 */
          ProdRouteToWo({
            rotId: d.values.id, wo: args[1]['CODE'],
            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) {
              args[2]();
@@ -1175,6 +1191,14 @@
          span: 12,
        },
      },
      {
        field: 'LABEL_NAME',
        component: 'Input',
        label: '模板名称',
        colProps: {
          span: 12,
        },
      },
    ],
    ItemColumns: [
      {
@@ -1663,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',
@@ -1840,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', //是哪个页面
@@ -1849,6 +1897,11 @@
      ItemColumns: TemplateBasColumn, //弹出框中表格字段结构
      schemas: [], //查询条件字段结构
      others: { WORK_ORDER: OrderNo }, //需要带到弹出窗口中的数据
      alertConfig: {
        showAlert: true,
        message: '销售订单备注',
        description: WoRecord.SALES_REMARK,
      }, /* 在弹出窗口最上位置显示提醒信息,显示销售订单备注 */
      searchInfo: {
        TABLE_NAME: 'BAS_LABEL_VAR_WO', //实体名称
        LabelId: params['record'].LABEL_ID, //模板ID