| | |
| | | // 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'), |
| | | }, |
| | | ] |
| | | |
| | |
| | | //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 |
| | |
| | | } |
| | | } |
| | | // getQuantity() |
| | | gridOptions.loading = false |
| | | inputDisabled.value = true |
| | | }) |
| | | } |
| | |
| | | }, |
| | | { |
| | | 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 |
| | |
| | | }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) //输入值 |
| | | |
| | |
| | | `) |
| | | } |
| | | if(titleUploadData.value.reportingWorkId!=null){ |
| | | |
| | | |
| | | if(row.completedQuantityComputed>=row.minQuantity ){ |
| | | if((val<(row.completedQuantityComputed-row.minQuantity || val>=row.completedQuantityComputed))){ |
| | | return new Error(`${row.completedQuantityComputed-row.minQuantity} |
| | | 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 |
| | | } |
| | | }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')}`) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | //层号 |
| | | let technologyStr = resultProcessId[2]; |
| | | if (last != titleUploadData.value.thisProcess){ |
| | | ElMessage.error('请选择最后工序报工入库') |
| | | ElMessage.error(t('reportingWorks.pleaseNumber16')) |
| | | return |
| | | } |
| | | storageBtn.value = true |
| | |
| | | } |
| | | } |
| | | }, |
| | | cellDblclick (params) {//表格内容双击打开产品界面 |
| | | cellDblclick (params) {//表格内容双击打开次破界面 |
| | | const { row } = params |
| | | brokenRow.value = row |
| | | if(brokenRow.value.damageDetails=== undefined){ |
| | |
| | | }, |
| | | { |
| | | field: 'responsiblePersonnel', |
| | | title: '责任信息', |
| | | title: t('rework.responsibilityInformation'), |
| | | editRender: {name: 'input', attrs: {placeholder: ''}} |
| | | |
| | | }, |
| | |
| | | } |
| | | } |
| | | } |
| | | const openedBrokenTable = () => { |
| | | |
| | | const brokenGridKey = ref(0) |
| | | const openedBrokenTable = async () => { |
| | | brokenGridKey.value++ |
| | | await nextTick() |
| | | console.log('breakageType:', titleSelectJson.value.breakageType) |
| | | console.log('breakageReason:', titleSelectJson.value.breakageReason) |
| | | //addListener(brokenGrid.value,brokenGridOptions) |
| | | let damage =ref(brokenRow.value.damageDetails) |
| | | brokenGrid.value.reloadData(damage.value) |
| | |
| | | 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中 |
| | |
| | | } |
| | | gridOptions.toolbarConfig.buttons[0].disabled=true |
| | | gridOptions.toolbarConfig.buttons[1].disabled=true |
| | | gridOptions.loading=true |
| | | //判断保存还是修改 |
| | | if(saveType==='save'){ |
| | | saveReportingWorkRequest(requestData) |
| | |
| | | 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) |
| | |
| | | +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 |
| | | }) |
| | | } |
| | | |
| | |
| | | |
| | | //判断早晚班 |
| | | 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 |
| | | |
| | | |
| | | //绑定下方表格 |
| | |
| | | // 使用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 { |
| | | // 其他情况保持不变 |
| | |
| | | orderId: titleUploadData.value.orderId |
| | | }, |
| | | processId:processIdStr, |
| | | orderNumber:item.order_number |
| | | orderNumber:item.order_number, |
| | | inventoryQuantity:item.completedQuantity |
| | | })); |
| | | let flowData = ref({ |
| | | decValue:company.decValue, |
| | |
| | | remark: remark.value, |
| | | container: container.value, |
| | | flowCard: resultData, |
| | | createTime: titleUploadData.value.reportingWorkTime |
| | | }) |
| | | //调用入库接口 |
| | | request.post("/finishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => { |
| | |
| | | +brokenRow.glass_child+'.'+brokenRow.order_number+'.'+brokenRow.technology_number" |
| | | style="width: 80%;height:75% "> |
| | | <vxe-grid |
| | | |
| | | :key="brokenGridKey" |
| | | height="400px" |
| | | ref="brokenGrid" |
| | | class="mytable-scrollbar" |
| | |
| | | </template> |
| | | <!-- 刺破类型breakageType --> |
| | | <template #breakageType="{ row }"> |
| | | <vxe-select v-model="row.breakageType " |
| | | <vxe-select v-model="row.breakageType" |
| | | clearable placeholder=" " allow-create filterable> |
| | | <vxe-option v-for="item in titleSelectJson.breakageType" :key="item.id" :label="item.basic_name" :value="item.basic_name"/> |
| | | </vxe-select> |
| | |
| | | |
| | | <!--次破原因--> |
| | | <template #breakageReason="{ row }"> |
| | | <vxe-select v-model="row.breakageReason " |
| | | <vxe-select v-model="row.breakageReason" |
| | | clearable placeholder=" " allow-create filterable> |
| | | <vxe-option v-for="item in titleSelectJson.breakageReason" :key="item.id" :label="item.basic_name" :value="item.basic_name"/> |
| | | </vxe-select> |
| | |
| | | } |
| | | |
| | | ::v-deep(.mytable-scrollbar .col-red) { |
| | | background-color: rgb(66,159,254); |
| | | color: #fff; |
| | | background-color: rgb(66,159,254)!important; |
| | | } |
| | | |
| | | |