进度报表筛选功能修复,产量报表查询修改,修改补片流程卡打印查询问题
| | |
| | | <br> |
| | | <el-button type="primary" @click="createProcessCard">{{ $t('processCard.establishProcessCards') }} |
| | | </el-button> |
| | | <br> |
| | | <br> |
| | | <br><br><br><br><br> |
| | | <el-button type="primary" @click="createProcessCardNo">按序号创建 |
| | | </el-button> |
| | | </el-main> |
| | |
| | | total.dataTotal = res.data.total.total * 1 |
| | | total.pageTotal = res.data.total.pageTotal |
| | | pageTotal.value = res.data.total |
| | | console.log(res.data.data) |
| | | xGrid.value.loadData(res.data.data) |
| | | gridOptions.loading = false |
| | | if (selectState==1){ |
| | |
| | | processingNote: '', |
| | | } |
| | | }) |
| | | const columns = [ |
| | | // {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'product_name', width: 150, |
| | | title: t('order.product'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'order_type', width: 120,title: t('order.orderType'),filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'process_id',width: 150, title: t('processCard.processId'),filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | // {field: 'order_number', width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis",filters: [{data: ''}], |
| | | // slots: {filter: 'num1_filter'}, |
| | | // filterMethod: filterChanged}, |
| | | // {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}], |
| | | // slots: {filter: 'num1_filter'}, |
| | | // filterMethod: filterChanged}, |
| | | {field: 'technology_number', width: 110,title: t('processCard.technologyNumber'),showOverflow:"ellipsis",filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'quantity', width: 90,title: t('order.quantity')}, |
| | | {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')}, |
| | | // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')}, |
| | | {field: 'inventory',width: 120, title: t('report.inventoryNum')}, |
| | | {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')}, |
| | | ] |
| | | |
| | | //需要合并的列 |
| | | let column = [1,3,8] |
| | | //点击查询 |
| | |
| | | ElMessage.warning(t('report.noDataFoundForThisOrder')) |
| | | return |
| | | } |
| | | gridOptions.columns = JSON.parse(JSON.stringify(columns)) |
| | | //gridOptions.columns = JSON.parse(JSON.stringify(columns)) |
| | | res.data.title.forEach(item =>{ |
| | | let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process} |
| | | gridOptions.columns.push(column) |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | // remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | mode: 'row', |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns:[],//表头按钮 |
| | | columns : [ |
| | | // {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'product_name', width: 150, |
| | | title: t('order.product'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'order_type', width: 120,title: t('order.orderType'),filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'process_id',width: 150, title: t('processCard.processId'),filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'order_number', width: 100,title: t('order.OrderNum'),showOverflow:"ellipsis",filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'technology_number', width: 110,title: t('processCard.technologyNumber'),showOverflow:"ellipsis",filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'quantity', width: 90,title: t('order.quantity')}, |
| | | {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')}, |
| | | // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')}, |
| | | {field: 'inventory',width: 120, title: t('report.inventoryNum')}, |
| | | {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')}, |
| | | ], |
| | | |
| | | toolbarConfig: { |
| | | // buttons: [{ |
| | |
| | | return count.toFixed(2) |
| | | } |
| | | |
| | | //定义滚动条高度 |
| | | let scrollTop = ref(null) |
| | | let scrollHeight = ref(null) |
| | | let clientHeight = ref(null) |
| | | const scrollEvnt = (row) => { |
| | | // 内容高度 |
| | | scrollTop.value = row.$event.target.scrollTop |
| | | scrollHeight.value = row.$event.target.scrollHeight |
| | | clientHeight.value = row.$event.target.clientHeight |
| | | } |
| | | //筛选条件,有外键需要先定义明细里面的数据 |
| | | let filterData = ref({ |
| | | order: { |
| | |
| | | processingNote: '', |
| | | } |
| | | }) |
| | | const columns = [ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'order_number', width: 150, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | //{field: 'shape',width: 130, title: t('order.shape') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'product_name', width: 120,title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'child_width',width: 110, title: t('order.width')}, |
| | | {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis"}, |
| | | {field: 'quantity', width: 90,title: t('order.quantity')}, |
| | | {field: 'technology_number',width: 90, title: t('processCard.technologyNumber')}, |
| | | {field: 'glass_child',width: 120, title: t('reportingWorks.glassChild')}, |
| | | {field: 'inventoryNum',width: 120, title: t('report.inventoryNum')}, |
| | | {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')}, |
| | | // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')}, |
| | | // {field: 'area',width: 120, title: t('report.area')}, |
| | | ] |
| | | |
| | | //需要合并的列 |
| | | let column = [1,2,3] |
| | | //点击查询 |
| | |
| | | ElMessage.warning(t('report.noDataFoundForThisOrder')) |
| | | return |
| | | } |
| | | gridOptions.columns = JSON.parse(JSON.stringify(columns)) |
| | | //gridOptions.columns = JSON.parse(JSON.stringify(columns)) |
| | | res.data.title.forEach(item =>{ |
| | | let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process} |
| | | gridOptions.columns.push(column) |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | // remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | mode: 'row', |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns:[],//表头按钮 |
| | | columns : [ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'order_number', width: 150, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | //{field: 'shape',width: 130, title: t('order.shape') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'product_name', width: 120,title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'child_width',width: 110, title: t('order.width')}, |
| | | {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis"}, |
| | | {field: 'quantity', width: 90,title: t('order.quantity')}, |
| | | {field: 'technology_number',width: 90, title: t('processCard.technologyNumber')}, |
| | | {field: 'glass_child',width: 120, title: t('reportingWorks.glassChild')}, |
| | | {field: 'inventoryNum',width: 120, title: t('report.inventoryNum')}, |
| | | {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')}, |
| | | // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')}, |
| | | // {field: 'area',width: 120, title: t('report.area')}, |
| | | ], |
| | | |
| | | toolbarConfig: { |
| | | // buttons: [{ |
| | | // |
| | | // }], |
| | | // import: false, |
| | | // export: true, |
| | | print: true, |
| | | zoom: true, |
| | | custom: true |
| | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/> |
| | | <input v-model="option.data" |
| | | type="text" |
| | | @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | @TableField(select = false,exist = false) |
| | | private Integer merge; |
| | | |
| | | //补片原因 |
| | | @TableField(select = false,exist = false) |
| | | private String patchReason; |
| | | |
| | | //外键订单表 |
| | | @TableField(select = false,exist= false) |
| | | private Order order; |
| | |
| | | |
| | | List<Map<String, String>> getPrimaryListMergeRefund(String processId, String technologyNumber, Integer orderNumber); |
| | | |
| | | List<Map<String, Object>> getDetailListRefund(String processId, Integer technologyNumber, Integer orderNumber, String reportingWorkId); |
| | | List<Map<String, Object>> getDetailListRefund(String processId, Integer technologyNumber, Integer orderNumber, String reportingWorkId, String patchReason); |
| | | |
| | | List<Map<String, String>> getPrimaryListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId, String mergeTechnologyNumber); |
| | | List<Map<String, String>> getPrimaryListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId, String mergeTechnologyNumber, String patchReason); |
| | | |
| | | List<Map<String, Object>> getDetailListLikeRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId); |
| | | |
| | |
| | | //流程卡表头表尾数据 |
| | | //是否传入合并层数 |
| | | if (printMerge.equals("")||printMerge.equals("null") ){ |
| | | 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("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),mergeTechnologyNumber,flowCard.getPatchReason())); |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),flowCard.getPatchReason()); |
| | | itemmap.put("detailList", detailList); |
| | | } |
| | | else { |
| | |
| | | if (printLike.equals("")||printLike.equals("null") ){ |
| | | itemmap.put("detail", flowCardMapper.getPrimaryListMergeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber())); |
| | | |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId()); |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getPatchReason()); |
| | | itemmap.put("detailList", detailList); |
| | | } |
| | | else { |
| | | itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber)); |
| | | itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber, flowCard.getPatchReason())); |
| | | |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId()); |
| | | itemmap.put("detailList", detailList); |
| | |
| | | and fc.order_number = #{orderNumber} |
| | | and position(fc.technology_number in #{technologyNumber}) |
| | | and pl.reporting_work_id = #{reportingWorkId} |
| | | group by fc.process_id, fc.order_number, fc.technology_number |
| | | and pl.patch_reason = #{patchReason} |
| | | group by fc.process_id, fc.order_number, fc.technology_number,pl.id |
| | | order by IF(sort != NULL and sort != '', sort, fc.order_number) |
| | | </select> |
| | | |
| | |
| | | and fc.order_number = #{orderNumber} |
| | | and fc.technology_number = #{technologyNumber} |
| | | and rw.reporting_work_id = #{reportingWorkId} |
| | | and dd.breakage_reason = #{patchReason} |
| | | group by fc.process_id, fc.technology_number |
| | | </select> |
| | | |
| | |
| | | left join mm.finished_goods_inventory as f |
| | | on c.order_id = f.order_id and f.order_number = c.order_number |
| | | left join (SELECT process_id, |
| | | order_number, |
| | | technology_number, |
| | | sum(a.broken_num) as broken_num, |
| | | concat('{', |
| | |
| | | '}' |
| | | ) as reportWorkQuantity, |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num, "\"")), |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num_count, "\"")), |
| | | '}' |
| | | ) as reportWorkQuantityCount |
| | | FROM sd.order_process_detail as a |
| | | where a.order_id = #{orderId} |
| | | GROUP BY process_id, a.technology_number) as e |
| | | GROUP BY process_id, a.order_number,a.technology_number) as e |
| | | on e.process_id = c.process_id |
| | | and e.order_number=c.order_number |
| | | and e.technology_number = c.technology_number |
| | | left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number |
| | | where a.order_id = #{orderId} |
| | | group by c.order_number,c.technology_number |
| | | ORDER BY a.order_number |
| | | </select> |
| | | |
| | |
| | | MAX( ogd.child_width ) as width, |
| | | MAX( ogd.child_height ) as height, |
| | | od.edging_type, |
| | | opd.reporting_work_num as completed_quantity, |
| | | ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*opd.reporting_work_num/1000000,2) as area, |
| | | rwd.completed_quantity as completed_quantity, |
| | | ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*rwd.completed_quantity/1000000,2) as area, |
| | | od.product_name, |
| | | JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code |
| | | FROM |
| | | sd.`order` as o left join sd.order_detail as od on od.order_id=o.order_id |
| | | left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number |
| | | left join flow_card as fc on fc.order_id=ogd.order_id and fc.order_number=ogd.order_number and fc.technology_number=ogd.technology_number |
| | | left join reporting_work as rw on rw.order_id=od.order_id and rw.process_id=fc.process_id |
| | | left join sd.order_process_detail as opd on opd.order_id = o.order_id AND opd.process_id = rw.process_id |
| | | AND opd.order_number = fc.order_number AND opd.technology_number = fc.technology_number and opd.process=rw.this_process |
| | | reporting_work as rw left join reporting_work_detail as rwd on rwd.reporting_work_id=rw.reporting_work_id |
| | | left join flow_card as fc on fc.order_id=rw.order_id and fc.process_id=rw.process_id and fc.order_number=rwd.order_number and fc.technology_number=rwd.technology_number |
| | | left join sd.order_glass_detail as ogd on ogd.order_id=fc.order_id and ogd.order_number=fc.order_number and ogd.technology_number=fc.technology_number |
| | | left join sd.order_detail as od on od.order_id=ogd.order_id and od.order_number=ogd.order_number |
| | | left join sd.`order` as o on o.order_id=od.order_id |
| | | left join sd.product_detail as pd on pd.prod_id = od.product_id and pd.glass_sort = fc.technology_number and detail_type = "glass" |
| | | where opd.reporting_work_num > 0 and rw.reviewed_state=1 and rw.reporting_work_time between #{selectTime1} and #{selectTime2} |
| | | where o.create_order>0 and rw.reviewed_state>=0 and rw.reporting_work_time between #{selectTime1} and #{selectTime2} |
| | | and position(#{selectProcesses} in rw.this_process) |
| | | <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''"> |
| | | and rw.this_process regexp #{teamOutputDTO.thisProcess} |
| | |
| | | </if> |
| | | |
| | | GROUP BY |
| | | rw.order_id, |
| | | rw.reporting_work_id, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | rw.process_id, |
| | | fc.order_number |
| | | rwd.order_number |
| | | ORDER BY |
| | | rw.this_process, |
| | | rw.process_id, |