chenlu
2025-11-24 1e31f9f7fe6f04236e97f72c0df3ce051d5f867e
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -119,16 +119,16 @@
  //   label: t('reportingWorks.nightShift'),
  // },
   {
    value: '木箱',
    label: '木箱',
    value: t('reportingWorks.woodenBox'),
    label: t('reportingWorks.woodenBox'),
  },
  {
    value: '铁架',
    label: '铁架',
    value: t('reportingWorks.brandreth'),
    label: t('reportingWorks.brandreth'),
  },
  {
    value: '倒架',
    label: '倒架',
    value: t('reportingWorks.tilting'),
    label: t('reportingWorks.tilting'),
  },
]
@@ -152,6 +152,7 @@
   //route.query.reportingWorkId = 'BG2403150004'
  //判断是否传入报工编号
  if(route.query.reportingWorkId !== '' && route.query.reportingWorkId!=null){
    gridOptions.loading = true
    request.post(`reportingWork/selectUpdateReportingWork/${route.query.reportingWorkId}`).then(res=>{
      if(res.code === '200'){
        titleUploadData.value = res.data.reportingWork
@@ -206,6 +207,7 @@
        }
      }
     // getQuantity()
      gridOptions.loading = false
      inputDisabled.value = true
    })
  }
@@ -305,14 +307,14 @@
          },
          {
            code: 'SecondaryBreakage',
            name: "序号次破相同",
            name: t('reportingWorks.secondaryBreakage'),
            prefixIcon: 'vxe-icon-indicator',
            visible: true,
            disabled: false
          },
          {
            code: 'checkedBreakage',
            name: "选中次破相同",
            name: t('reportingWorks.checkedBreakage'),
            prefixIcon: 'vxe-icon-indicator',
            visible: true,
            disabled: false
@@ -431,8 +433,15 @@
          }else  if(row.quantity_card<row.completedQuantity){
            return new Error(t('reportingWorks.pleaseNumber10'))
          }
          const nextProcess = titleUploadData.value.nextProcess//下工序
          const completedSum = Number(row.thisQuantitySum) //总完工数量
          const nextQuantitySum = Number(row.nextQuantitySum) //总下工序完工数量
          let nextQuantitySum = ''
          if (nextProcess!=''){
             nextQuantitySum = Number(row.nextQuantitySum) //总下工序完工数量
          }else {
             nextQuantitySum = Number(row.received_quantity) //总下工序完工数量
          }
          const totalQuantity = Number(row.quantity) //可完工数量
          const val = Number(cellValue) //输入值
@@ -440,19 +449,48 @@
          const completedNum =
              (row.completedQuantity === undefined || row.completedQuantity===null || row.completedQuantity==='') ? 0 : row.completedQuantity
          //
          const okVal = completedSum - totalQuantity
          const okVal = completedSum - totalQuantity + row.breakageQuantity
          //当可操作数量为0,并且完工数量不等于可完工数量时
          if(row.minQuantity===0 && val!==totalQuantity ){
          if(row.minQuantity===0 && val!==(totalQuantity-row.breakageQuantity) ){
            return new Error(`${t('reportingWorks.pleaseNumber12')} ${okVal}+${val}=${okVal+val}\n
                              ${t('reportingWorks.pleaseNumber13')} ${nextQuantitySum}\n
                              ${t('reportingWorks.pleaseNumber14')}
            `)
          }
          if(titleUploadData.value.reportingWorkId!=null  && (val>totalQuantity ||  val<(row.quantity-row.minQuantity) )){
            return new Error(`${row.quantity-row.minQuantity}
            <=val<=
            ${row.quantity}`)
          if(titleUploadData.value.reportingWorkId!=null){
            if (nextProcess!=''){//非最后一道工序
              if(row.completedQuantityComputed>=row.minQuantity ){
                if((val<(row.completedQuantityComputed-row.minQuantity || val>=row.completedQuantityComputed))){
                  return new Error(`${row.completedQuantityComputed-row.minQuantity}
                                  <=val<=
                                  ${row.completedQuantityComputed}`)
                }
              }else{
                if((val>row.completedQuantityComputed)){
                  return new Error(`val
                                  <=
                                  ${row.completedQuantityComputed}`)
                }
              }
            }else {//最后一道工序
              if (val<row.completedQuantityComputed){
                         //库存数量、已入库数量
                if (val>(row.inventory_quantity-row.received_quantity)){
                  return new Error(`val
                                  <=
                                  ${row.inventory_quantity-row.received_quantity}`)
                }else {
                  if (val < (row.inventory_quantity-row.received_quantity)){
                        //完工总数、本次完工数、已入库数量
                    if (completedSum-row.completedQuantityComputed <row.received_quantity){
                      return new Error(`${t('reportingWorks.pleaseNumber15')}`)
                    }
                  }
                }
              }
            }
          }
        }
      }
@@ -572,7 +610,7 @@
          //层号
          let technologyStr = resultProcessId[2];
          if (last != titleUploadData.value.thisProcess){
            ElMessage.error('请选择最后工序报工入库')
            ElMessage.error(t('reportingWorks.pleaseNumber16'))
            return
          }
          storageBtn.value = true
@@ -784,7 +822,7 @@
    },
    {
      field: 'responsiblePersonnel',
      title: '责任信息',
      title: t('rework.responsibilityInformation'),
      editRender: {name: 'input', attrs: {placeholder: ''}}
    },
@@ -988,6 +1026,23 @@
    return
  }
  const reportingWorkTime = titleUploadData.value.reportingWorkTime
    const currentTime = new Date()
    const targetTime = new Date(reportingWorkTime)
    //未来时间
    if (targetTime > currentTime) {
      ElMessage.error(t('reportingWorks.futureTime'))
      return
    }
    // 两个时间的毫秒差
    const diffMs = currentTime - targetTime
    // 转换为天数
    const diffDays = diffMs / (1000 * 60 * 60 * 24)
    if (diffDays > 396 && saveType!="update") {
      ElMessage.error(t('reportingWorks.longTime'))
      return
    }
  const seenIds = {}
  const uniqueByOrderNum = xGrid.value.getTableData().fullData.filter(item => {
    // 检查item的id是否已经在seenIds中
@@ -1038,6 +1093,7 @@
  }
  gridOptions.toolbarConfig.buttons[0].disabled=true
  gridOptions.toolbarConfig.buttons[1].disabled=true
  gridOptions.loading=true
  //判断保存还是修改
  if(saveType==='save'){
    saveReportingWorkRequest(requestData)
@@ -1055,6 +1111,7 @@
      if(storageBtn.value == true){
        getStorageWork();
      }
      gridOptions.loading=false
      router.push({path:'/main/reportingWorks/AddReportingWork',query:{processId:titleUploadData.value.processId,random:Math.random()}})
    }else{
      const errorObj = JSON.parse(res.msg)
@@ -1063,15 +1120,16 @@
          +t('reportingWorks.pleaseNumber3')+':'+errorObj.processNum+'<'+
          +t('reportingWorks.pleaseNumber4')+':'+errorObj.sumNum+'\n'
          +t('reportingWorks.pleaseNumber5')
      gridOptions.loading=false
      ElMessage.error(msg)
    }
  }).catch(err =>{
    ElMessage.error('提交失败,请刷新后重试')
    ElMessage.error(t('basicData.msg.ServerConnectionError'))
    gridOptions.loading=false
  }).finally(()=>{
    gridOptions.toolbarConfig.buttons[0].disabled=false
    gridOptions.toolbarConfig.buttons[1].disabled=false
    gridOptions.loading=false
  })
}
@@ -1266,28 +1324,7 @@
      //判断早晚班
      titleUploadData.value.classes=t('reportingWorks.early')
      titleUploadData.value.reportingWorkTime = formatCurrentTime()
      //处理编号列
      //定义存放编号数组
      const s01Values = [];
      for (let i = 0; i < res.data.Detail.length; i++) {
        const s01Values = [];
        // 遍历 detailList 数组,提取 S01 值到 s01Values 数组
        if (res.data.Detail[i].other_columns!=null|| res.data.Detail[i].other_columns!=undefined){
          res.data.Detail.forEach(element => {
            const otherColumnsObject = JSON.parse(element.other_columns);
            const s01Value = otherColumnsObject.S01;
            s01Values.push(s01Value || ''); // 如果 S01 值为空,添加空字符串或者其他默认值
          });
          // 将 s01Values 中的值赋给每个订单详情对象的 s01Value 属性
          res.data.Detail.forEach((detail, index) => {
            detail.s01Value = index < s01Values.length ? s01Values[index] : ''; // 赋值给 s01Value 属性
          });
        }
      }
      titleUploadData.value.reportingWorkTime = res.data.reportingWorkTiem
      //绑定下方表格
@@ -1295,10 +1332,10 @@
      // 使用map方法来处理每个对象
      let modifiedCollection = res.data.Detail.map(item => {
        if (item.reviewed_state === 1) {
          return { ...item, reviewed_state: "已审核" };
          return { ...item, reviewed_state: t('productStock.approved') };
        }
        else if (item.reviewed_state === 0) {
          return { ...item, reviewed_state: "未审核" };
          return { ...item, reviewed_state: t('reportingWorks.unreviewed') };
        }
        else {
          // 其他情况保持不变
@@ -1514,7 +1551,8 @@
      orderId: titleUploadData.value.orderId
    },
    processId:processIdStr,
    orderNumber:item.order_number
    orderNumber:item.order_number,
    inventoryQuantity:item.completedQuantity
  }));
  let flowData = ref({
    decValue:company.decValue,
@@ -1524,6 +1562,7 @@
    remark: remark.value,
    container: container.value,
    flowCard: resultData,
    createTime: titleUploadData.value.reportingWorkTime
  })
  //调用入库接口
  request.post("/finishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => {
@@ -2032,8 +2071,7 @@
}
::v-deep(.mytable-scrollbar .col-red) {
  background-color: rgb(66,159,254);
  color: #fff;
  background-color: rgb(66,159,254)!important;
}