handlePause.js 3.19 KB
import * as commonUtils from "@/utils/utils";
import * as commonConfig from '@/utils/config';
import { postValueService, } from '../../../../services/services';

const handleOeeBtnEent = async ({ props, item }) => {
    const { masterData = {} } = props;
    const { config = {} } = item;
    const { sButtonParam } = config;

    let btn;
    try {
      if (!sButtonParam) return;
      btn = JSON.parse(sButtonParam);
    } catch (error) {
      return;
    }

    const sProName = btn.sproName;
    const inParams = [];
    const { inMap } = btn;
    const inlist = inMap.split(',');
    const masterArr = [];
    const slaveArr = [];

    if (inlist.length > 0) {
      inlist.forEach((item) => {
        const itemArr = item.split('.');
        if (itemArr.length > 0) {
          const sname = itemArr[0];
          const stype = itemArr[1];
          if (commonUtils.isNotEmptyStr(sname) && sname === 'master') {
            masterArr.push(stype);
          }
          if (commonUtils.isNotEmptyStr(sname) && sname === 'slave') {
            slaveArr.push(stype);
          }
        }
      });

      if (commonUtils.isNotEmptyArr(masterArr) && commonUtils.isNotEmptyObject(masterData)) {
        const addState = {};
        addState.key = 'master';
        const val = [];
        const currVal = {};
        masterArr.forEach((filed) => {
          currVal[`${filed}`] = masterData[`${filed}`];
        });
        val.push(currVal);
        addState.value = val;
        inParams.push({ ...addState });
      }
      if (commonUtils.isNotEmptyArr(slaveArr)) {
        const addState = handleProParams('slave', slaveArr, props, item);
        if (commonUtils.isNotEmptyObject(addState)) {
          inParams.push({ ...addState });
        }
      }
    }
    /* OEE模块调用OEE自定义按钮存储过程 */
    await handleOEEProcedureCall(config, sProName, JSON.stringify({ params: inParams }), {...props});
  };

  const handleOEEProcedureCall = async (btnConfig, proName, proInParam, props) => {
    const { app, sModelsId } = props;
    const value = {
      sProName: proName,
      paramsMap: {
        sMachineId: app.sMachineNameSId,
        sProInParam: proInParam,
      },
    };
    const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
    const returnData = (await postValueService(app.token, value, url)).data;
    if (returnData.code !== 1) {
      props.getServiceError(returnData);
      return;
    }
  };

   // 根据配置解析拼接具体参数
   const handleProParams = (sKey, arr, props, item) => {
    const {tableData, record = {} } = item;
    const { sId, sSlaveId } = record;
    const keyData = commonUtils.isNotEmptyArr(tableData) ? tableData.filter(item => sId.includes(item.sId) || sSlaveId.includes(item.sSlaveId)) : [];
    if (commonUtils.isNotEmptyArr(keyData)) {
      const addState = {};
      addState.key = sKey;
      const val = [];
      keyData.forEach((currData) => {
        const currVal = {};
        arr.forEach((filed) => {
          currVal[`${filed}`] = currData[`${filed}`];
        });
        val.push(currVal);
      });
      addState.value = val;
      return addState;
    } else {
      return undefined;
    }
  };

  export {
    handleOeeBtnEent,
  }