补片流程卡合并二维码,流程卡、标签打印数量查询修改
| | |
| | | technologyNumber = produceList.value[i].detail[0].qrcode.toString(); // 转换为字符串以便处理每个字符,合并标签 |
| | | }else { |
| | | technologyNumber = produceList.value[i].detail[0].technologyNumber.toString(); // 转换为字符串以便处理每个字符 |
| | | console.log(produceList.value[i].detail[0]) |
| | | } |
| | | produceList.value[i].detail[0]["qrcodeList"] = []; // 初始化一个空数组用来存储 QR Code |
| | | |
| | |
| | | let props = defineProps({ |
| | | printList:null, |
| | | printMerge:null, |
| | | printLike: null |
| | | printLike: null, |
| | | mergeTechnologyNumber:null |
| | | }) |
| | | |
| | | const {currentRoute} = useRouter() |
| | | const route = currentRoute.value |
| | | const printMerge = props.printMerge |
| | | let mergeTechnologyNumber=props.mergeTechnologyNumber |
| | | let merge=props.printMerge |
| | | if (merge == '') { |
| | | merge = null |
| | |
| | | // data.value.printList = Object.values(uniqueObjects); |
| | | let flowCardCount = null |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintingRefund/${merge}/${like}`, data.value).then((res) => { |
| | | request.post(`/processCard/getSelectPrintingRefund/${merge}/${like}/${mergeTechnologyNumber}`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | //处理单片厚度 |
| | |
| | | return acc; |
| | | }, {}); |
| | | |
| | | // 将合并后的对象转换回数组 |
| | | // 将合并后的对象转换回数组 |
| | | produceList.value = Object.values(mergedData); |
| | | |
| | | flowCardCount=produceList.value.length |
| | |
| | | |
| | | |
| | | const handleGetQRCode = async () => { |
| | | let technologyNumber='' |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | const technologyNumber = produceList.value[i].detail[0].technologyNumber.toString(); // 转换为字符串以便处理每个字符 |
| | | const technologyNumber = produceList.value[i].detail[0].mergeTechnologyNumber.toString(); // 转换为字符串以便处理每个字符 |
| | | produceList.value[i].detail[0]["qrcodeList"] = []; // 初始化一个空数组用来存储 QR Code |
| | | |
| | | for (let j = 0; j < technologyNumber.length; j++) { |
| | | const processId = produceList.value[i].detail[0].process_id; |
| | | const url = `${processId}/${technologyNumber[j]}`; |
| | | |
| | | // 生成 QR Code 并存储到数组中 |
| | | const qrcodeData = await QRCode.toDataURL(url); |
| | | produceList.value[i].detail[0]["qrcodeList"].push({ |
| | | qrcode: qrcodeData, |
| | | technologyNumber: technologyNumber[j] |
| | | }); |
| | | |
| | | } |
| | | const processId = produceList.value[i].detail[0].process_id; |
| | | const url = `${processId}/${technologyNumber}`; |
| | | // 生成 QR Code 并存储到数组中 |
| | | const qrcodeData = await QRCode.toDataURL(url); |
| | | produceList.value[i].detail[0]["qrcodeList"].push({ |
| | | qrcode: qrcodeData, |
| | | technologyNumber: technologyNumber |
| | | }); |
| | | } |
| | | }; |
| | | |
| | |
| | | //打印 |
| | | let printRow = ref({ |
| | | list:null, |
| | | printMergeVal:null |
| | | printMergeVal:null, |
| | | mergeTechnologyNumber:null, |
| | | }) |
| | | |
| | | //标签 |
| | |
| | | }, |
| | | {field: 'technology_number', title: t('processCard.technologyNumber'), showOverflow: "ellipsis", |
| | | width:90}, |
| | | { |
| | | field: 'glassNumber', |
| | | title: t('reportingWorks.glassNumber'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged, |
| | | width:100 |
| | | }, |
| | | {field: 'glass_address', title: t('processCard.glassAddress'), |
| | | width:110}, |
| | | {field: 'patch_num', title: t('order.quantity'), |
| | |
| | | } |
| | | |
| | | let id = "" |
| | | let technologyNumber = "" |
| | | for (let i = 0; i < selectRecords.length; i++) { |
| | | if (i + 1 === selectRecords.length) { |
| | | id += selectRecords[i].id |
| | | technologyNumber+=selectRecords[i].technology_number |
| | | } else { |
| | | id += selectRecords[i].id + "|" |
| | | technologyNumber+=selectRecords[i].technology_number |
| | | } |
| | | } |
| | | printRow.value.list = JSON.stringify(selectRecords) |
| | | printRow.value.printMergeVal=printMerge.value |
| | | printRow.value.mergeTechnologyNumber=technologyNumber |
| | | // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}}) |
| | | dialogTableVisible.value=true |
| | | break |
| | |
| | | <el-button v-print="printContent" :icon="Printer" circle /> |
| | | </template> |
| | | <print-process id="child" :printList="printRow.list" :printMerge="printRow.printMergeVal" :printLike="printRow.like" |
| | | :mergeTechnologyNumber="printRow.mergeTechnologyNumber" |
| | | style="width: 100%;height: 100%" /> |
| | | </el-dialog> |
| | | |
| | |
| | | 'name': t('basicData.review'),status: 'primary', |
| | | 'code':'add' |
| | | }, |
| | | // { |
| | | // 'name': t('basicData.delete'),status: 'primary', |
| | | // 'code':'delete' |
| | | // } |
| | | { |
| | | 'name': t('basicData.delete'),status: 'primary', |
| | | 'code':'delete' |
| | | } |
| | | ], |
| | | /*import: false, |
| | | export: true, |
| | |
| | | width:100 |
| | | }, |
| | | {field: 'technology_number', title: t('processCard.technologyNumber'), showOverflow: "ellipsis",width:90}, |
| | | { |
| | | field: 'glassNumber', |
| | | title: t('reportingWorks.glassNumber'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged, |
| | | width:100 |
| | | }, |
| | | {field: 'glass_address', title: t('processCard.glassAddress'),width:90}, |
| | | {field: 'rework_num', title: t('order.quantity'),width:70}, |
| | | {field: 'rework_area', title: t('order.area'),width:70}, |
| | |
| | | 'name': t('basicData.review'),status: 'primary', |
| | | 'code':'add' |
| | | }, |
| | | // { |
| | | // 'name': t('basicData.delete'),status: 'primary', |
| | | // 'code':'delete' |
| | | // } |
| | | { |
| | | 'name': t('basicData.delete'),status: 'primary', |
| | | 'code':'delete' |
| | | } |
| | | ], |
| | | /*import: false, |
| | | export: true, |
| | |
| | | } |
| | | |
| | | @ApiOperation("打印流程卡补片数据查询接口") |
| | | @PostMapping("/getSelectPrintingRefund/{printMerge}/{printLike}") |
| | | @PostMapping("/getSelectPrintingRefund/{printMerge}/{printLike}/{mergeTechnologyNumber}") |
| | | public Result getSelectPrintingRefund( |
| | | @PathVariable String printMerge, |
| | | @PathVariable String printLike, |
| | | @PathVariable String mergeTechnologyNumber, |
| | | @RequestBody Map<String, Object> object) { |
| | | return Result.seccess(flowCardService.getSelectPrintingRefundSv(object,printMerge,printLike)); |
| | | return Result.seccess(flowCardService.getSelectPrintingRefundSv(object,printMerge,printLike,mergeTechnologyNumber)); |
| | | } |
| | | |
| | | @ApiOperation("打印流程卡返工数据查询接口") |
| | |
| | | |
| | | List<Map<String, Object>> getDetailListRefund(String processId, Integer technologyNumber, Integer orderNumber, String reportingWorkId); |
| | | |
| | | List<Map<String, String>> getPrimaryListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId); |
| | | List<Map<String, String>> getPrimaryListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId, String mergeTechnologyNumber); |
| | | |
| | | List<Map<String, Object>> getDetailListLikeRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId); |
| | | |
| | |
| | | return true; |
| | | } |
| | | |
| | | public Map<String, Object> getSelectPrintingRefundSv(Map<String, Object> object, String printMerge, String printLike) { |
| | | public Map<String, Object> getSelectPrintingRefundSv(Map<String, Object> object, String printMerge, String printLike, String mergeTechnologyNumber) { |
| | | if (printMerge == null){ |
| | | printMerge= ""; |
| | | } |
| | |
| | | //流程卡表头表尾数据 |
| | | //是否传入合并层数 |
| | | if (printMerge.equals("")||printMerge.equals("null") ){ |
| | | itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId())); |
| | | itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),mergeTechnologyNumber)); |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId()); |
| | | itemmap.put("detailList", detailList); |
| | | } |
| | |
| | | itemmap.put("detailList", detailList); |
| | | } |
| | | else { |
| | | itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId())); |
| | | itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber)); |
| | | |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId()); |
| | | itemmap.put("detailList", detailList); |
| | |
| | | ogdss.technology_number, |
| | | ogd.glass_address, |
| | | ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity, |
| | | sum(ogd.total_area) as total_area, |
| | | # SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area, |
| | | # sum(ogd.total_area) as total_area, |
| | | ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area, |
| | | od.product_name, |
| | | ogdss.concatenated_glass_child as glass_child, |
| | | fc.founder, |
| | |
| | | ogdss.technology_number, |
| | | ogd.glass_address, |
| | | ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity, |
| | | sum(ogd.total_area) as total_area, |
| | | # SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area, |
| | | # sum(ogd.total_area) as total_area, |
| | | ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area, |
| | | od.product_name, |
| | | ogdss.concatenated_glass_child as glass_child, |
| | | fc.founder, |
| | |
| | | ogdss.technology_number, |
| | | ogd.glass_address, |
| | | ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity, |
| | | sum(ogd.total_area) as total_area, |
| | | ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area, |
| | | od.product_name, |
| | | ogdss.concatenated_glass_child as glass_child, |
| | | fc.founder, |
| | |
| | | o.customer_id, |
| | | ogd.child_width as width, |
| | | ogd.child_height as height, |
| | | od.quantity, |
| | | fc.quantity, |
| | | od.order_number as orderNumber, |
| | | fc.technology_number as technologyNumber, |
| | | ogd.glass_child, |
| | |
| | | od.product_name, |
| | | ogd.glass_child, |
| | | fc.print_status, |
| | | pl.reporting_work_id |
| | | pl.reporting_work_id, |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber |
| | | |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | | on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and |
| | |
| | | pl.rework_processes, |
| | | od.product_name, |
| | | ogd.glass_child, |
| | | pl.reporting_work_id |
| | | pl.reporting_work_id, |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | | on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and |
| | |
| | | <select id="getDetailListRefund"> |
| | | select fc.order_number, |
| | | concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width, |
| | | (pl.patch_num) as quantity, |
| | | sum(pl.patch_num) as quantity, |
| | | round(ogd.total_area, 2) as total_area, |
| | | od.perimeter, |
| | | od.bend_radius, |
| | |
| | | dd.responsible_process, |
| | | dd.responsible_team, |
| | | concat('对应我司单号', o.batch) AS otherRemarks, |
| | | dd.responsible_personnel |
| | | dd.responsible_personnel, |
| | | #{mergeTechnologyNumber} as mergeTechnologyNumber |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | | on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and |
| | |
| | | od.processing_note as processingNote, |
| | | round(ogd.child_width) as width, |
| | | round(ogd.child_height) as height, |
| | | od.quantity, |
| | | fc.quantity, |
| | | od.order_number as orderNumber, |
| | | fc.technology_number as technologyNumber, |
| | | od.building_number as buildingNumber, |
| | |
| | | and fcs.process = #{process} |
| | | where fc.process_id = #{processId} |
| | | and position(fc.technology_number in #{technologyNumber}) |
| | | group by od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height |
| | | group by fc.process_id,od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height |
| | | order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number) |
| | | </select> |
| | | |
| | |
| | | fc.order_number, |
| | | ogd.technology_number, |
| | | ogd.glass_address, |
| | | sum(od.quantity) as quantity, |
| | | sum(ogd.total_area) as total_area, |
| | | sum(fc.quantity) as quantity, |
| | | round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area, |
| | | od.product_name, |
| | | ogd.glass_child, |
| | | fc.founder, |