补片流程卡添加是否合并打印配置,次破汇总报表添加平方毫米列
| | |
| | | //æµç¨å¡ |
| | | request.post(`/processCard/getSelectPrinting/${merge}/${like}/${merges}/${props.flashback}/${compound}/${props.landingSequence}`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | console.log(res.data.data) |
| | | load(res.data.data) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | |
| | | <td v-if="name=='天津åç»ç»çå·¥ä¸ææ¯æéå
¬å¸ï¼TJBB-QR7.1-01ï¼'" colspan="4">{{ itemTr.other_remarks }}</td> |
| | | <td v-else colspan="4">{{ itemTr.edging_type }}</td> |
| | | <td class="tdNowrap">åçåç§°ï¼</td> |
| | | <td colspan="3">{{ itemTr.glass_child }}</td> |
| | | <td v-if="!company.processFontSize" colspan="3">{{ itemTr.glass_child }}</td> |
| | | <td v-else colspan="3" style="font-size: 18px;">{{ itemTr.glass_child }}</td> |
| | | <td class="tdNowrap">产ååç§°ï¼</td> |
| | | |
| | | <td v-if="!company.processFontSize" :colspan="2+item.processList.length*2">{{ itemTr.product_name }}</td> |
| | |
| | | |
| | | let name=company.companyName |
| | | let replenishQRCode=company.replenishQRCode |
| | | //å»é¤éå¤å¯¹è±¡ |
| | | // let uniqueObjects = {}; |
| | | // // éååå§æ°æ®æ°ç» |
| | | // data.value.printList.forEach(obj => { |
| | | // // æå»ºä¸ä¸ªå¯ä¸é®ï¼ä¾å¦ 'NG24071502A001_1' |
| | | // let key = `${obj.process_id}_${obj.technology_number}_${obj.order_number}`; |
| | | // |
| | | // // å¦æè¯¥é®ä¸åå¨äº uniqueObjects ä¸ï¼åå°è¯¥å¯¹è±¡æ·»å å° uniqueObjects ä¸ |
| | | // if (!uniqueObjects[key]) { |
| | | // uniqueObjects[key] = obj; |
| | | // } |
| | | // }); |
| | | // data.value.printList = Object.values(uniqueObjects); |
| | | |
| | | let flowCardCount = null |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintingRefund/${merge}/${like}/${mergeTechnologyNumber}`, data.value).then((res) => { |
| | |
| | | }); |
| | | produceList.value[j].detail[0].weight = sumWeight |
| | | } |
| | | //å¤çåå¹¶æå° |
| | | // if (printMerge !== null && printMerge !== undefined && printMerge !== "") { |
| | | // |
| | | // produceList.value.forEach(item => { |
| | | // item.detail[0].technologyNumber = printMerge; |
| | | // }); |
| | | // |
| | | // //åå¹¶æå°å·¥èºæµç¨å¤ç |
| | | // if (like == null) { |
| | | // let process = produceList.value[0].detail[0].process |
| | | // console.log(process) |
| | | // let indexOfJiaJiao = process.indexOf('夹è¶'); |
| | | // if (indexOfJiaJiao !== -1) { |
| | | // // ä½¿ç¨ substring æªå "夹è¶" åé¢çé¨åï¼å
æ¬ "夹è¶" æ¬èº« |
| | | // let afterJiaJiao = process.substring(indexOfJiaJiao).trim(); |
| | | // produceList.value.forEach(item => { |
| | | // item.detail[0].process = afterJiaJiao |
| | | // }) |
| | | // } |
| | | // |
| | | // let indexOfProceList = produceList.value[0].processList |
| | | // let getProceList = indexOfProceList.findIndex(item => item.process === '夹è¶'); |
| | | // |
| | | // if (getProceList !== -1) { |
| | | // // ä½¿ç¨ filter æ¹æ³è¿æ»¤åº "夹è¶" åå
¶ä¹åç对象 |
| | | // produceList.value[0].processList = indexOfProceList.filter((item, index) => index >= getProceList); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | |
| | | produceList.value.forEach(item => { |
| | | let technologyNumberMerge = printMerge.split('').join(','); |
| | | item.detail[0].technologyNumberMerge = technologyNumberMerge |
| | | }) |
| | | //å¤çç¼å·å |
| | | //å®ä¹åæ¾ç¼å·æ°ç» |
| | | //å®ä¹åæ¾ç¼å·æ°ç» 天津 |
| | | const s01Values = []; |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | const s01Values = []; |
| | |
| | | }, {}); |
| | | |
| | | // å°åå¹¶åç对象转æ¢åæ°ç» |
| | | produceList.value = Object.values(mergedData); |
| | | |
| | | if (company.printReplenishMerge){ |
| | | produceList.value = Object.values(mergedData); |
| | | } |
| | | flowCardCount=produceList.value.length |
| | | |
| | | handleSummary() |
| | |
| | | } |
| | | ) |
| | | |
| | | const techNumberLength = ref() |
| | | const qrcodeLength =ref() |
| | | const handleGetQRCode = async () => { |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | const detailItem = produceList.value[i].detail[0]; |
| | | const detailList = produceList.value[i].detailList; |
| | | |
| | | const mergeTechNumber = detailItem.mergeTechnologyNumber.toString(); |
| | | |
| | | const processId = detailItem.process_id; |
| | | |
| | | detailItem.qrcodeList = []; |
| | |
| | | <span v-if="name=='天津åç»ç»çå·¥ä¸ææ¯æéå
¬å¸ï¼TJBB-QR7.1-01ï¼'" style="font-size: 10px">{{itemFlow.otherRemarks}}</span> |
| | | æµç¨å¡å·ï¼ {{ |
| | | itemFlow.process_id |
| | | }}/{{ itemFlow.technologyNumber }} å
± {{ item.count }} æ¶ |
| | | }}/{{ itemFlow.technologyNumber }} |
| | | </div> |
| | | </div> |
| | | </td> |
| | |
| | | <td class="tdNowrap">磨边类åï¼</td> |
| | | <td colspan="3">{{ itemTr.edging_type }}</td> |
| | | <td class="tdNowrap">åçåç§°ï¼</td> |
| | | <td colspan="8">{{ itemTr.glass_child }}</td> |
| | | <td v-if="itemTr.qrcodeList.length*1>1" colspan="8">å¤å±åå¹¶ï¼è¯¦æ
è§äº§ååç§°</td> |
| | | <td v-else colspan="8">{{ itemTr.glass_child }}</td> |
| | | <td class="tdNowrap">产ååç§°ï¼</td> |
| | | <td :colspan="2+item.processList.length*2">{{ itemTr.product_name }}</td> |
| | | <td v-if="!company.processFontSize" :colspan="2+item.processList.length*2">{{ itemTr.product_name }}</td> |
| | | <td v-else :colspan="2+item.processList.length*2" style="font-size: 18px;">{{ itemTr.product_name }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td rowspan='2'>åºå·</td> |
| | |
| | | soleQRCode:false,//æµç¨å¡åå¹¶äºç»´ç æ¾ç¤ºåå±ï¼ä¹ä¹true.å
¶å®false |
| | | reportTime:"08:00",//æ¬¡ç ´ãäº§éæ¥è¡¨é»è®¤æ¶é´ |
| | | processFontSize:false,//æµç¨å¡å å·¥è¦æ±åä½å 大 |
| | | printReplenishMerge:true,//è¡¥çæµç¨å¡æå°æ¯å¦åæµç¨å¡åå¹¶ |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | soleQRCode:false,//æµç¨å¡åå¹¶äºç»´ç æ¾ç¤ºåå±ï¼ä¹ä¹true.å
¶å®false |
| | | reportTime:"08:00",//æ¬¡ç ´ãäº§éæ¥è¡¨é»è®¤æ¶é´ |
| | | processFontSize:false,//æµç¨å¡å å·¥è¦æ±åä½å 大 |
| | | printReplenishMerge:true,//è¡¥çæµç¨å¡æå°æ¯å¦åæµç¨å¡åå¹¶ |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | soleQRCode:false,//æµç¨å¡åå¹¶äºç»´ç æ¾ç¤ºåå±ï¼ä¹ä¹true.å
¶å®false |
| | | reportTime:"08:00",//æ¬¡ç ´ãäº§éæ¥è¡¨é»è®¤æ¶é´ |
| | | processFontSize:false,//æµç¨å¡å å·¥è¦æ±åä½å 大 |
| | | printReplenishMerge:true,//è¡¥çæµç¨å¡æå°æ¯å¦åæµç¨å¡åå¹¶ |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | soleQRCode:false,//æµç¨å¡åå¹¶äºç»´ç æ¾ç¤ºåå±ï¼ä¹ä¹true.å
¶å®false |
| | | reportTime:"08:00",//æ¬¡ç ´ãäº§éæ¥è¡¨é»è®¤æ¶é´ |
| | | processFontSize:false,//æµç¨å¡å å·¥è¦æ±åä½å 大 |
| | | printReplenishMerge:true,//è¡¥çæµç¨å¡æå°æ¯å¦åæµç¨å¡åå¹¶ |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | soleQRCode:false,//æµç¨å¡åå¹¶äºç»´ç æ¾ç¤ºåå±ï¼ä¹ä¹true.å
¶å®false |
| | | reportTime:"08:00",//æ¬¡ç ´ãäº§éæ¥è¡¨é»è®¤æ¶é´ |
| | | processFontSize:false,//æµç¨å¡å å·¥è¦æ±åä½å 大 |
| | | printReplenishMerge:true,//è¡¥çæµç¨å¡æå°æ¯å¦åæµç¨å¡åå¹¶ |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | soleQRCode:false,//æµç¨å¡åå¹¶äºç»´ç æ¾ç¤ºåå±ï¼ä¹ä¹true.å
¶å®false |
| | | reportTime:"07:30",//æ¬¡ç ´ãäº§éæ¥è¡¨é»è®¤æ¶é´ |
| | | processFontSize:true,//æµç¨å¡å å·¥è¦æ±åä½å 大 |
| | | printReplenishMerge:false,//è¡¥çæµç¨å¡æå°æ¯å¦åæµç¨å¡åå¹¶ |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | soleQRCode:true,//æµç¨å¡åå¹¶äºç»´ç æ¾ç¤ºåå±ï¼ä¹ä¹true.å
¶å®false |
| | | reportTime:"08:00",//æ¬¡ç ´ãäº§éæ¥è¡¨é»è®¤æ¶é´ |
| | | processFontSize:false,//æµç¨å¡å å·¥è¦æ±åä½å 大 |
| | | printReplenishMerge:true,//è¡¥çæµç¨å¡æå°æ¯å¦åæµç¨å¡åå¹¶ |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | filterMethod: filterChanged, |
| | | width:100 |
| | | }, |
| | | {field: 'technology_number', title: t('processCard.technologyNumber'), showOverflow: "ellipsis", |
| | | width:90}, |
| | | {field: 'technology_number', title: t('processCard.technologyNumber'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged, showOverflow: "ellipsis", |
| | | width:100}, |
| | | {field: 'child_width', title: t('order.width'), width:90,filters: [{data: ''}],slots: {filter: 'num1_filter'}, filterMethod: filterChanged,}, |
| | | {field: 'child_height', title: t('order.height'), width:90,filters: [{data: ''}],slots: {filter: 'num1_filter'}, filterMethod: filterChanged,}, |
| | | { |
| | |
| | | {field: 'childWidth', width: 100, title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'childHeight', width: 100, title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'thickness',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')}, |
| | | {field: 'pingfang', width: 90, title: t('report.thicknessArea')}, |
| | | {field: 'breakageQuantity', width: 120, title: t('reportingWorks.quantityBroken')}, |
| | | {field: 'area', width: 120, title: t('reportingWorks.wornArea')}, |
| | | {field: 'personnel', width: 120, title: t('reportingWorks.responsiblePersonnel')}, |
| | |
| | | url :'/report/damageReport', |
| | | exportUrl :'/report/exportDamageReport', |
| | | exportName:t('report.secondaryBrokenTotal'), |
| | | footList:['breakageQuantity','area'] |
| | | footList:['breakageQuantity','area','pingfang'] |
| | | }) |
| | | |
| | | </script> |
| | |
| | | private Double childHeight; |
| | | @ExcelProperty("å度") |
| | | private String thickness; |
| | | @ExcelProperty("å¹³æ¹æ¯«ç±³") |
| | | private String pingfang; |
| | | @ExcelProperty("æ¥å·¥å·¥åº") |
| | | private String thisProcess; |
| | | @ExcelProperty("å建人") |
| | |
| | | List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber()); |
| | | //å·¥åºå表 |
| | | List<Map<String, Object>> processNameList = flowCardMapper.getProcessNameList(); |
| | | itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId())); |
| | | itemmap.put("processList", processList); |
| | | itemmap.put("processNameList", processNameList); |
| | | // itemmap.put("numberList", numberList); |
| | | list.add(itemmap); |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | map.put("data", list); |
| | | //åå§åå¼ |
| | | printLike = null; |
| | |
| | | rw.this_process, |
| | | rw.creator, |
| | | rw.reporting_work_id, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness, |
| | | ROUND(round( ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2 ) |
| | | * SUBSTRING_INDEX(IFNULL(JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')), '0'), 'mm', 1),2) AS pingfang |
| | | FROM |
| | | sd.ORDER AS o |
| | | LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id |
| | |
| | | rw.this_process, |
| | | rw.creator, |
| | | rw.reporting_work_id, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness, |
| | | ROUND(round( ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2 ) |
| | | * SUBSTRING_INDEX(IFNULL(JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')), '0'), 'mm', 1),2) AS pingfang |
| | | FROM sd.ORDER AS o |
| | | LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id |
| | | LEFT JOIN reporting_work AS rw ON rw.order_id = o.order_id |
| | |
| | | <select id="damageReportFootSum"> |
| | | SELECT |
| | | SUM(dd.breakage_quantity) AS breakageQuantity, |
| | | ROUND(SUM(ogd.child_width * ogd.child_height * dd.breakage_quantity) / 1000000, 2) AS area |
| | | ROUND(SUM(ogd.child_width * ogd.child_height * dd.breakage_quantity) / 1000000, 2) AS area, |
| | | SUM(ROUND(round( ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2 ) |
| | | * SUBSTRING_INDEX(IFNULL(JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')), '0'), 'mm', 1),2)) AS pingfang |
| | | FROM |
| | | sd.ORDER AS o |
| | | LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id |