| | |
| | | let produceList = ref([]) |
| | | let labelList = ref([]) |
| | | let list = ref() |
| | | const details = ref([]) |
| | | |
| | | |
| | | const data = ref({ |
| | |
| | | <template> |
| | | <el-button id="printButton" @click="printFlowCard();">打印</el-button> |
| | | <div id="printFlowCard" > |
| | | <div id="entirety" v-for="(item,id) in labelList" > |
| | | <div id="entirety" v-for="(item,id) in labelList" style="border: 1px solid black"> |
| | | <div class="row1">{{ item.customer_name }}</div> |
| | | <div class="row2">{{ item.order_id }} {{ item.type_name }}</div> |
| | | |
| | | <div class="row4">{{item.project}} {{ item.remarks }}</div> |
| | | <div class="row5">{{item.child_width}}*{{item.child_height}}={{item.quantity}}</div> |
| | | <div class="row2">{{ item.order_id }} {{ item.type_name }} {{ item.remarks }}</div> |
| | | <div class="row5">{{item.project}} {{item.child_width}}*{{item.child_height}}={{item.quantity}}</div> |
| | | <div class="row6">{{item.glass_child}}</div> |
| | | </div> |
| | | </div> |
| | |
| | | } |
| | | |
| | | #printButton { |
| | | margin-top: -30px; |
| | | margin-top: -20px; |
| | | width: 100px; |
| | | } |
| | | |
| | | #printFlowCard { |
| | | margin-left: 25px; |
| | | margin-left: 20px; |
| | | display: flex; |
| | | justify-content: left; |
| | | flex-wrap: wrap; |
| | |
| | | font-size: 9pt; |
| | | } |
| | | .row5 { |
| | | margin-left: 5px; |
| | | font-weight: bold; |
| | | font-size: 9pt; |
| | | } |
| | |
| | | |
| | | @page { |
| | | size: auto; /* auto is the initial value */ |
| | | margin: 2mm 0mm 0mm 0mm /* this affects the margin in the printer settings */ |
| | | margin: 5mm 2mm 0mm 0mm /* this affects the margin in the printer settings */ |
| | | |
| | | } |
| | | |
| | | @media print { |
| | | |
| | | div { |
| | | display: table-footer-group; |
| | | page-break-inside: avoid; |
| | | text-align: center; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | </style> |
| | |
| | | import {reactive, ref} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import request from "@/utils/request"; |
| | | import deepClone from "@/utils/deepClone"; |
| | | import {ElDatePicker, ElMessage} from "element-plus"; |
| | | import {useI18n} from 'vue-i18n' |
| | |
| | | {field: 'technology_number', width: 90,title: '小片顺序',showOverflow:"ellipsis"}, |
| | | {field: 'quantity', width: 90,title: '数量'}, |
| | | {field: 'broken_num',width: 90, title: '次破数量'}, |
| | | {field: 'shippedQuantity',width: 120, title: '发货数量'}, |
| | | {field: 'inventory',width: 120, title: '入库数量'}, |
| | | {field: 'inventoryArea',width: 120, title: '入库面积'}, |
| | | ] |
| | | //需要合并的列 |
| | |
| | | import {ElDatePicker, ElMessage} from "element-plus"; |
| | | import {useI18n} from 'vue-i18n' |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | import exportExcel from "@/hook/exportExcel"; |
| | | //语言获取 |
| | | const {t} = useI18n() |
| | | let router = useRouter() |
| | |
| | | {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, |
| | | {type: 'seq', fixed: "left", title: '自序', width: 50}, |
| | | { |
| | | field: 'process_id', width: 120, title: '流程卡号', filters: [{data: ''}], |
| | | field: 'processId', width: 120, title: '流程卡号', filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | | }, |
| | | { |
| | | field: 'order_number', |
| | | field: 'orderNumber', |
| | | width: 120, |
| | | title: '订单序号', |
| | | showOverflow: "ellipsis", |
| | |
| | | filterMethod: filterChanged |
| | | }, |
| | | { |
| | | field: 'technology_number', width: 130, title: '小片顺序', filters: [{data: ''}], |
| | | field: 'technologyNumber', width: 130, title: '小片顺序', filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | | }, |
| | |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | | }, |
| | | {field: 'child_width', width: 120, title: '宽'}, |
| | | {field: 'child_height', width: 120, title: '高'}, |
| | | {field: 'childWidth', width: 120, title: '宽'}, |
| | | {field: 'childHeight', width: 120, title: '高'}, |
| | | {field: 'quantity', width: 120, title: '订单数'}, |
| | | |
| | | {field: 'area', width: 100, title: '面积'}, |
| | |
| | | // import: false, |
| | | // export: true, |
| | | // print: true, |
| | | slots: { |
| | | tools: 'toolbar_buttons' |
| | | }, |
| | | |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | |
| | | } |
| | | |
| | | }) |
| | | |
| | | |
| | | </script> |
| | | |
| | |
| | | </div> |
| | | </template> |
| | | |
| | | <template #toolbar_buttons> |
| | | <vxe-button style="margin-right: 0.5rem" |
| | | @click="exportExcel('/report/exportSplittingDetailsOutside', |
| | | '分架明细报表', |
| | | form.date1)"> |
| | | 导出</vxe-button> |
| | | </template> |
| | | |
| | | |
| | | </vxe-grid> |
| | |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | |
| | | import { useI18n } from 'vue-i18n' |
| | | import exportExcel from "@/hook/exportExcel"; |
| | | //语言获取 |
| | | const { t } = useI18n() |
| | | let router=useRouter() |
| | |
| | | }) |
| | | const columns = [ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'customer_name', width: 150, title: '客户名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'customerName', width: 150, title: '客户名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'project',width: 130, title: '项目名称' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'batch', width: 120,title: '批次',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'order_id',width: 110, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'orderId',width: 110, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'quantity', width: 90,title: '订单数量',showOverflow:"ellipsis"}, |
| | | {field: 'area', width: 90,title: '订单面积'}, |
| | | {field: 'shippedQuantity',width: 90, title: '发货数量'}, |
| | |
| | | // }], |
| | | // import: false, |
| | | // export: true, |
| | | print: true, |
| | | // print: true, |
| | | slots: { |
| | | tools: 'toolbar_buttons' |
| | | }, |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | |
| | | <template #quantitySum="{ row,column }"> |
| | | <span>{{ quantitySum(row,column) }} </span> |
| | | </template> |
| | | |
| | | <template #toolbar_buttons> |
| | | <vxe-button style="margin-right: 0.5rem" |
| | | @click="exportExcel('/report/exportTaskCompletionStatus', |
| | | '任务完成情况报表', |
| | | form.date1)"> |
| | | 导出</vxe-button> |
| | | </template> |
| | | |
| | | </vxe-grid> |
| | | </div> |
| | |
| | | DownExcel.download(response, WorkInProgressDTO.class, reportService.exportWorkInProgressSv(dates), "WorkInProgress"); |
| | | } |
| | | |
| | | @ApiOperation("分架明细报表导出") |
| | | @PostMapping("/exportSplittingDetailsOutside") |
| | | public void exportSplittingDetailsOutside(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException { |
| | | @ApiOperation("任务完成情况导出") |
| | | @PostMapping("/exportTaskCompletionStatus") |
| | | public void exportTaskCompletionStatus(HttpServletResponse response, |
| | | @RequestBody Map<String,Object> dates) |
| | | throws IOException, IllegalAccessException, InstantiationException { |
| | | //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字 |
| | | DownExcel.download(response, SplittingDetailsOutsideDTO.class, reportService.exportOrderPlanDecompositionSv(dates), "OrderPlanDecomposition"); |
| | | DownExcel.download(response, WorkInProgressDTO.class, reportService.exportWorkInProgressSv(dates), "WorkInProgress"); |
| | | } |
| | | |
| | | } |
| | |
| | | List<WorkInProgressDTO> exportWorkInProgressMp(List<LocalDate> date, String process, String inputVal, String project); |
| | | |
| | | |
| | | |
| | | // Map<String, Integer> getWorkInProgressTotal( |
| | | // @Param("selectTime1") Date selectTime1, @Param("selectTime2") Date selectTime2, |
| | | // @Param("orderId") String orderId, @Param("inputProject") String inputProject, |
| | |
| | | } |
| | | return reportMapper.exportWorkInProgressMp(date,process,inputVal,project); |
| | | } |
| | | |
| | | } |
| | |
| | | e.reportWorkQuantity, |
| | | e.reportWorkQuantityCount, |
| | | e.broken_num, |
| | | round(ifnull(f.inventory,0)*a.area,2) as inventoryArea |
| | | |
| | | ifnull(f.inventory,0) as inventory , |
| | | round(ifnull(f.inventory,0)*a.area,2) as inventoryArea, |
| | | ifnull(dd.quantity,0) as shippedQuantity |
| | | from |
| | | flow_card as c |
| | | left join |
| | |
| | | on c.order_id = d.order_id |
| | | left join mm.finished_goods_inventory as f |
| | | on c.order_id = f.order_id and f.order_number = c.order_number |
| | | left join sd.delivery_detail as dd on dd.order_id=a.order_id and dd.order_number=a.order_number |
| | | left join ( |
| | | SELECT process_id, |
| | | technology_number, |
| | |
| | | where a.order_id=#{orderId} |
| | | GROUP BY process_id,a.technology_number |
| | | ) as e |
| | | |
| | | on e.process_id = c.process_id |
| | | and e.technology_number = c.technology_number |
| | | |
| | |
| | | |
| | | <select id="splittingDetailsOutsideMp"> |
| | | SELECT |
| | | fc.process_id, |
| | | fc.order_number, |
| | | fc.technology_number, |
| | | fc.process_id processId, |
| | | fc.order_number orderNumber, |
| | | fc.technology_number as technologyNumber, |
| | | o.project, |
| | | o.batch, |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | ogd.child_width as childWidth, |
| | | ogd.child_height as childHeight, |
| | | fc.quantity, |
| | | round( ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2 ) as area, |
| | | od.shape, |
| | |
| | | c.quantity, |
| | | c.technology_number, |
| | | b.glass_child, |
| | | e.reportWorkQuantity, |
| | | e.reportWorkQuantityCount, |
| | | ifnull(e.reportWorkQuantity,0) as reportWorkQuantity, |
| | | ifnull(e.reportWorkQuantityCount,0) as reportWorkQuantityCount, |
| | | ifnull(f.inventory,0) as inventoryNum, |
| | | round(ifnull(f.inventory,0)*a.area,2) as inventoryArea, |
| | | dd.quantity as shippedQuantity, |
| | | dd.area |
| | | ifnull(dd.quantity,0) as shippedQuantity, |
| | | ifnull(dd.area,0) as area |
| | | |
| | | from |
| | | flow_card as c |
| | |
| | | </select> |
| | | |
| | | <select id="taskCompletionStatusMp"> |
| | | select d.customer_name, |
| | | select d.customer_name as customerName, |
| | | d.project, |
| | | d.batch, |
| | | c.order_id, |
| | | c.order_id as orderId, |
| | | d.quantity, |
| | | d.area, |
| | | dd.quantity as shippedQuantity, |
| | |
| | | group by fc.process_id, fc.order_number, fc.technology_number |
| | | order by fc.process_id, fc.order_number, fc.technology_number |
| | | </select> |
| | | |
| | | </mapper> |