spring
8 天以前 6c2a0e8132eb77429e26518c0f4dbec50036d018
src/pages/outbound/materialOutbound.vue
@@ -189,36 +189,53 @@
      }
      outPutId = scanData.id;
      monofilamentNumber = scanData.monofilamentNumber;
      if (!outPutId) {
        toast.error("二维码格式错误,缺少id信息");
      if (outPutId) {
        //TODO兼容目前已打印的二维码
        // 有 id:按 id 查重并调 getTagByIdAll(返回数组)
        const exists = goodsList.value.some((item) => {
          const itemId = item.id;
          return itemId && itemId === outPutId && itemId !== "-";
        });
        if (exists) {
          toast.error("该条码已存在,请勿重复扫码");
          return;
        }
        const { data } = await OutboundApi.getTagByIdAll({
          outPutId: outPutId,
        });
        const list = data || [];
        if (!list.length) {
          toast.error("未查询到条码信息");
          return;
        }
        tagData = list[0];
        needContractCheck = true;
      } else if (monofilamentNumber) {
        // 有 monofilamentNumber:按单丝号查重并调 getTagByMonofilamentNumber(返回对象)
        const exists = goodsList.value.some((item) => {
          const itemMono = item.monofilamentNumber;
          return itemMono && itemMono === monofilamentNumber && itemMono !== "-";
        });
        if (exists) {
          toast.error("该条码已存在,请勿重复扫码");
          return;
        }
        const { data } = await OutboundApi.getTagByMonofilamentNumber({
          monofilamentNumber,
        });
        if (!data || (Array.isArray(data) && !data.length)) {
          toast.error("未查询到条码信息");
          return;
        }
        tagData = Array.isArray(data) ? data[0] : data;
        outPutId = tagData?.id || monofilamentNumber;
        needContractCheck = true;
      } else {
        toast.error("二维码格式错误,缺少id或单丝编号信息");
        return;
      }
      // 检查是否已存在(根据 id 判断)
      const exists = goodsList.value.some((item) => {
        const itemId = item.id;
        return itemId && itemId === outPutId && itemId !== "-";
      });
      if (exists) {
        toast.error("该条码已存在,请勿重复扫码");
        return;
      }
      // 调用接口获取绞线/拉丝详细信息(含出库状态)
      const { data } = await OutboundApi.getTagByIdAll({
        outPutId: outPutId,
      });
      const list = data || [];
      if (!list.length) {
        toast.error("未查询到条码信息");
        return;
      }
      tagData = list[0];
      needContractCheck = true; // 只有绞线需要做合同号校验
    } else {
      // ===== 单丝拉丝二维码逻辑(纯字符串) =====
      // 示例:ZD7z30202616101201#[@]01,Φ5.6,-,750826011001001,600.6
@@ -242,10 +259,10 @@
        return;
      }
      // 调用拉丝接口:GET /mes/app/getTagByLsMonofilamentNumber?monofilamentNumber=xxxx
      // 调用拉丝接口:GET /mes/app/getTagByMonofilamentNumber?monofilamentNumber=xxxx
      let data;
      try {
        const response = await OutboundApi.getTagByLsMonofilamentNumber({
        const response = await OutboundApi.getTagByMonofilamentNumber({
          monofilamentNumber,
        });
        data = response.data;