Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
| | |
| | | data.value.printList = JSON.parse(props.printList) |
| | | let flowCardCount = '' |
| | | onMounted(() => { |
| | | console.log(printProject) |
| | | if(props.printProject!=null){ |
| | | request.post(`/processCard/getSelectPrintProject/${printProject}`).then((res) => { |
| | | if (res.code == 200) { |
| | | console.log(res.data.data) |
| | | load(res.data.data) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | |
| | | dataForGlassInventory.value = data; |
| | | }; |
| | | |
| | | //获取GlassInventory的值 |
| | | const sendDataGlassInventory = ref() |
| | | |
| | | const handleInventoyData = (selectedLabel1,selectedLabel2) => { |
| | | sendDataGlassInventory.value = { |
| | | selectedLabel1, selectedLabel2 |
| | | }; |
| | | }; |
| | | |
| | | </script> |
| | | |
| | | <template > |
| | | <div style="width: 100%;height: 100%"> |
| | | <div id="main-body"> |
| | | <project-detail @changeDialog="changeDialog" @forward-data-to-grandparent="handleProjectDetailData"/> |
| | | <project-detail @changeDialog="changeDialog" @forward-data-to-grandparent="handleProjectDetailData" @send-inventory-to-op="handleInventoyData"/> |
| | | </div> |
| | | <div id="main-footer"> |
| | | <glass-inventory :receivedData="dataForGlassInventory"/> |
| | | <glass-inventory :receivedData="dataForGlassInventory" :InventoryData="sendDataGlassInventory"/> |
| | | </div> |
| | | |
| | | |
| | |
| | | <script setup> |
| | | import {ref} from "vue"; |
| | | import {defineEmits, ref} from "vue"; |
| | | |
| | | const value1 = ref('') |
| | | const value2 = ref('') |
| | |
| | | label: 'Low-e', |
| | | }, |
| | | ] |
| | | |
| | | const emit = defineEmits(['send-data-inventory',]); |
| | | const props = defineProps({ |
| | | closeDialog: Function |
| | | }); |
| | | |
| | | const CheckInventory = () => { |
| | | const selectedLabel1 = options1.find((option) => option.value === value1.value)?.label || ''; |
| | | const selectedLabel2 = options2.find((option) => option.value === value2.value)?.label || ''; |
| | | // 判断两个值是否都被选择了,如果有一个为空字符串,则提示并返回,不执行后续操作 |
| | | if (!selectedLabel1 ||!selectedLabel2) { |
| | | window.alert('请选择相关选项'); |
| | | return; |
| | | } |
| | | props.closeDialog(1); |
| | | emit('send-data-inventory', selectedLabel1,selectedLabel2); |
| | | }; |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | </div> |
| | | |
| | | <div style="float: right; margin:-55px 35px 0 0;"> |
| | | <el-button type="primary">查询</el-button> |
| | | <el-button type="primary" @click="CheckInventory">查询</el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | } |
| | | }, { immediate: true }); |
| | | |
| | | watch(() => props.InventoryData, (newInventoryData) => { |
| | | if (newInventoryData) { |
| | | thickness.value = newInventoryData.selectedLabel1; |
| | | model.value = newInventoryData.selectedLabel2; |
| | | // 由于 thickness 和 model 的值改变了,更新表格,调用 selectMaterialStore 重新获取数据 |
| | | selectMaterialStore(); |
| | | } |
| | | }); |
| | | |
| | | const props = defineProps({ |
| | | receivedData : { |
| | | type: Object, |
| | |
| | | quicksetBottom: { type: Number }, |
| | | quicksetRight: { type: Number }, |
| | | quicksetTop: { type: Number } |
| | | }} |
| | | } |
| | | }, |
| | | InventoryData : { |
| | | type: Object, |
| | | required: false, |
| | | properties: { |
| | | selectedLabel1: { type: String }, |
| | | selectedLabel2: { type: String }, |
| | | } |
| | | } |
| | | }); |
| | | |
| | | //接受SetTrimming的值 (修边) |
| | | const Trimming = (receivedData) => { |
| | | nextTick(() => { |
| | | const data = gridOptions.data; |
| | | console.log('接收到的receivedData:', receivedData); |
| | | console.log('表格原始数据:', data); |
| | | if (data) { |
| | | try { |
| | | const updatedData = []; |
| | |
| | | import SetTrimming from "@/views/pp/glassOptimize/page/SetTrimming.vue"; |
| | | import CheckInventory from "@/views/pp/glassOptimize/page/CheckInventory.vue"; |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import { useRoute } from 'vue-router'; |
| | | import {ElMessage, ElMessageBox} from "element-plus"; |
| | | import {useRoute} from 'vue-router'; |
| | | |
| | | |
| | | const {t} = useI18n() |
| | |
| | | columns: [ |
| | | {field: 'order_number', title: '订序', width: 70}, |
| | | {field: 'child_width', width: 100, title: t('order.width'), filters: [{data: ''}], slots: {filter: 'num2_filter'}}, |
| | | {field: 'child_height', width: 100, title: t('order.height'),filters: [{data: ''}],slots: {filter: 'num2_filter'}}, |
| | | {field: 'quantity', width: 150, title: t('order.quantity'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | {field: 'longGrind1', width: 150, title: '长磨1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | {field: 'longGrind2', width: 150, title: '长磨2', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | {field: 'shortGrind1', width: 150, title: '短磨1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | {field: 'shortGrind2', width: 150, title: '短磨2', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | { |
| | | field: 'child_height', |
| | | width: 100, |
| | | title: t('order.height'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num2_filter'} |
| | | }, |
| | | { |
| | | field: 'quantity', |
| | | width: 150, |
| | | title: t('order.quantity'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'longGrind1', |
| | | width: 150, |
| | | title: '长磨1', |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'longGrind2', |
| | | width: 150, |
| | | title: '长磨2', |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'shortGrind1', |
| | | width: 150, |
| | | title: '短磨1', |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'shortGrind2', |
| | | width: 150, |
| | | title: '短磨2', |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'shape', |
| | | width: 150, |
| | |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | {field: 'process_cards', width: 150, title: '流程卡号', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | { |
| | | field: 'process_cards', |
| | | width: 150, |
| | | title: '流程卡号', |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'product_name', |
| | | width: 150, |
| | |
| | | }, |
| | | ],//表头参数 |
| | | data: null,//表格数据 |
| | | //右键菜单 |
| | | menuConfig: { |
| | | body: { |
| | | options: [ |
| | | [ |
| | | {code: 'setAmount', name: '设置统一磨量',}, |
| | | {code: 'displayProcessCard', name: '显示流程卡',}, |
| | | {code: 'hideProcessCard', name: '隐藏流程卡',}, |
| | | {code: 'setShape', name: '设置图形',}, |
| | | {code: 'Export', name: '数据导出', prefixIcon: 'vxe-icon-download', visible: true, disabled: false}, |
| | | {code: '', name: '图形另存为DXF',}, |
| | | {code: '', name: '导出数据到OPTIMA',}, |
| | | ], |
| | | [] |
| | | ] |
| | | }, |
| | | }, |
| | | toolbarConfig: { |
| | | buttons: [], |
| | | slots: { |
| | | buttons: "toolbar" |
| | | }, |
| | | |
| | | }, |
| | | |
| | | }) |
| | | // 右键菜单 |
| | | const operationConfigs = [ |
| | | { |
| | | code: 'setAmount', // 设置统一磨量 |
| | | successMsg: '已打开!', |
| | | gridRef: xGrid, |
| | | requiresRow: false, |
| | | openAmount: async () => { |
| | | dialogVisible.value[2] = true; |
| | | } |
| | | }, |
| | | { |
| | | code: 'displayProcessCard', |
| | | successMsg: '操作成功!', |
| | | gridRef: xGrid, |
| | | requiresRow: false, |
| | | }, |
| | | { |
| | | code: 'hideProcessCard', |
| | | successMsg: '操作成功!', |
| | | gridRef: xGrid, |
| | | requiresRow: false, |
| | | }, |
| | | { |
| | | code: 'setShape', |
| | | successMsg: '操作成功!', |
| | | gridRef: xGrid, |
| | | requiresRow: false, |
| | | }, |
| | | { |
| | | code: 'Export', // 导出文件操作的配置 |
| | | successMsg: '文件导出成功!', |
| | | gridRef: xGrid, |
| | | requiresRow: false, |
| | | }, |
| | | ] |
| | | |
| | | // 右键菜单点击逻辑 |
| | | const gridEvents = { |
| | | menuClick({menu}) { |
| | | const $grid = xGrid.value; |
| | | if ($grid) { |
| | | const config = operationConfigs.find(c => c.code === menu.code); |
| | | if (config) { |
| | | if (config.code === 'Export') { |
| | | config.gridRef.value.exportData(); |
| | | ElMessage.success(config.successMsg); |
| | | return; |
| | | } |
| | | // 添加确认提示弹窗,询问用户是否进行当前操作 |
| | | ElMessageBox.confirm('是否进行当前操作?', '确认操作', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | if (config.code === 'setAmount') { |
| | | config.openAmount(); |
| | | ElMessage.success(config.successMsg); |
| | | } |
| | | }).catch(() => { |
| | | // 用户点击取消后执行的逻辑 |
| | | ElMessage.info('已取消操作'); |
| | | }); |
| | | } else { |
| | | console.error(`未找到操作选项 ${menu.code} 对应的配置,请检查配置项`); |
| | | } |
| | | } |
| | | }, |
| | | }; |
| | | |
| | | const handleCommand = async (command) => { |
| | | await emit('changeDialog', command) |
| | |
| | | const Amount = (amountData) => { |
| | | nextTick(() => { |
| | | const data = gridOptions.data; |
| | | console.log('接收到的amountData:', amountData); |
| | | console.log('表格原始数据:', data); |
| | | if (data) { |
| | | try { |
| | | const updatedData = []; |
| | |
| | | }); |
| | | }; |
| | | |
| | | //中转站接受SetTrimming的值 |
| | | //中转站接受SetTrimming的值(设置修边) |
| | | const emit = defineEmits([ |
| | | 'changeDialog', |
| | | 'forward-data-to-grandparent' |
| | | 'forward-data-to-grandparent', |
| | | 'send-inventory-to-op' |
| | | ]); |
| | | |
| | | const handleTrimmingData = (data) => { |
| | | emit('forward-data-to-grandparent', data); |
| | | }; |
| | | |
| | | //中转站接受CheckInventory的值(查询库存) |
| | | const handleInventory = (selectedLabel1, selectedLabel2) => { |
| | | emit('send-inventory-to-op', selectedLabel1, selectedLabel2); |
| | | } |
| | | |
| | | </script> |
| | | |
| | |
| | | <div id="header"> |
| | | <div id="title"> |
| | | <span>工程编号:</span> |
| | | <el-input disabled placeholder="" style="width: 150px" v-model="projectNo"></el-input> |
| | | <el-input disabled placeholder="" style="width: 150px" v-model="projectNo"></el-input> |
| | | <span>工程名称:</span> |
| | | <el-input disabled placeholder="" style="width: 150px; margin-right: 350px" v-model="projectName"></el-input> |
| | | <el-input disabled placeholder="" style="width: 150px; margin-right: 350px" |
| | | v-model="projectName"></el-input> |
| | | <el-button id="checkinventory" type="primary" @click="openDialog(1)">查询库存</el-button> |
| | | <el-dialog |
| | | v-model="dialogVisible[1]" |
| | | title="查询库存" |
| | | destroy-on-close |
| | | style="width: 35%;height:35%;"> |
| | | <check-inventory /> |
| | | <check-inventory :closeDialog="closeDialog" @send-data-inventory="handleInventory"/> |
| | | </el-dialog> |
| | | |
| | | <el-button id="button" type="primary" @click="openDialog(2)">设置磨量</el-button> |
| | |
| | | title="设置磨量" |
| | | destroy-on-close |
| | | style="width: 35%;height:80%;margin-top: 3vh;"> |
| | | <set-amount :closeDialog="closeDialog" @set-amount="Amount"/> |
| | | <set-amount :closeDialog="closeDialog" @set-amount="Amount"/> |
| | | </el-dialog> |
| | | |
| | | <el-button id="button" type="primary" @click="openDialog(3)">设置修边</el-button> |
| | |
| | | > |
| | | <optimize-compute/> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | <!--工程文件菜单--> |
| | | <el-dropdown @command="handleCommand"> |
| | |
| | | margin-top: 8px; |
| | | } |
| | | |
| | | #button{ |
| | | #button { |
| | | margin-left: 10px; |
| | | } |
| | | |
| | |
| | | } |
| | | case 'edit3' :{ |
| | | printRow.value.project=row.project_no |
| | | console.log(printRow.value.project) |
| | | dialogTableVisible.value = true |
| | | } |
| | | } |
| | |
| | | //小片数量 |
| | | @TableField(select = false,exist = false) |
| | | private String glassCount; |
| | | //补片状态 |
| | | @TableField(select = false,exist = false) |
| | | private Integer patchState; |
| | | |
| | | //外键订单表 |
| | | @TableField(select = false,exist= false) |
| | |
| | | |
| | | List<Map<String, String>> getPrimaryList(String processId, String technologyNumber, String glassChild, String process, String orderId); |
| | | |
| | | List<Map<String, String>> getPrimaryLists(String processId, String technologyNumber, String glassChild, String process, String orderId,Integer quantity); |
| | | |
| | | List<Map<String, Object>> getDetailList(String processId, String technologyNumber, String process); |
| | | |
| | | List<Map<String, Object>> getDetailLists(String processId, String technologyNumber, String process,Integer orderNumber); |
| | | |
| | | List<Map<String, Object>> getProcessList(String processId, String technologyNumber); |
| | | |
| | |
| | | |
| | | List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber, String process); |
| | | |
| | | List<Map<String, Object>> getDetailListLikes(String processId, String technologyNumber, String process,Integer orderNumber,Integer quantity); |
| | | |
| | | List<Map<String, String>> getPrimaryListMergeRefund(String processId, String technologyNumber, Integer orderNumber, String orderId); |
| | | |
| | | List<Map<String, Object>> getDetailListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId, String patchReason); |
| | |
| | | String processSub=flowCard.getProcess().substring(0, 2); |
| | | if(processSub.equals("夹胶") || processSub.equals("中空")){ |
| | | itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId())); |
| | | if(flowCard.getPatchState().equals(0)){ |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess()); |
| | | itemmap.put("detailList", detailList); |
| | | }else{ |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailLists(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess(),flowCard.getOrderNumber()); |
| | | itemmap.put("detailList", detailList); |
| | | } |
| | | |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess()); |
| | | itemmap.put("detailList", detailList); |
| | | } |
| | | else { |
| | | itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId())); |
| | | |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess()); |
| | | itemmap.put("detailList", detailList); |
| | | if(flowCard.getPatchState().equals(0)){ |
| | | itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId())); |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess()); |
| | | itemmap.put("detailList", detailList); |
| | | }else{ |
| | | itemmap.put("detail", flowCardMapper.getPrimaryLists(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId(),flowCard.getQuantity())); |
| | | List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikes(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess(),flowCard.getOrderNumber(),flowCard.getQuantity()); |
| | | itemmap.put("detailList", detailList); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | itemmap.put("processList", processList); |
| | | // itemmap.put("numberList", numberList); |
| | | itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId())); |
| | | |
| | | if(flowCard.getPatchState().equals(0)){ |
| | | itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId())); |
| | | }else{ |
| | | itemmap.put("count", flowCardList.size()); |
| | | } |
| | | itemmap.put("state", flowCard.getPatchState()); |
| | | itemmap.put("remarkList", flowCardMapper.remakList(flowCard.getProcessId())); |
| | | list.add(itemmap); |
| | | |
| | |
| | | group by fc.process_id |
| | | </select> |
| | | |
| | | <select id="getPrimaryLists"> |
| | | select o.customer_name, |
| | | o.project, |
| | | #{process} process, |
| | | od.edging_type, |
| | | #{glassChild} as glass_child, |
| | | od.product_name, |
| | | o.processing_note, |
| | | fc.process_id, |
| | | #{quantity} as quantity, |
| | | round(od.width*od.height*#{quantity}/1000000, 2) as gross_area, |
| | | sum(od.weight) as weight, |
| | | #{technologyNumber} as technologyNumber, |
| | | concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber, |
| | | concat('对应我司单号', o.batch) AS otherRemarks, |
| | | '' as qrcode |
| | | 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 |
| | | fc.technology_number = ogd.technology_number |
| | | left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number |
| | | left join sd.`order` as o on o.order_id = fc.order_id |
| | | left join sd.product as p on p.id = od.product_id |
| | | left join (select ogd.order_id, |
| | | ogd.order_number, |
| | | ogd.technology_number, |
| | | ogd.glass_child, |
| | | GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child |
| | | from sd.order_glass_detail as ogd |
| | | where ogd.order_id = #{orderId} |
| | | and position(ogd.technology_number in #{technologyNumber}) |
| | | GROUP BY order_id, order_number) as ogdc |
| | | on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and |
| | | ogdc.technology_number = ogd.technology_number |
| | | where fc.process_id = #{processId} |
| | | and position(fc.technology_number in #{technologyNumber}) |
| | | group by fc.process_id |
| | | </select> |
| | | |
| | | <select id="getDetailList"> |
| | | select fc.order_number, |
| | | concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width, |
| | |
| | | and fcs.process = #{process} |
| | | where fc.process_id = #{processId} |
| | | and position(fc.technology_number in #{technologyNumber}) |
| | | group by fc.process_id, fc.order_number |
| | | order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number) |
| | | </select> |
| | | |
| | | <select id="getDetailLists"> |
| | | select fc.order_number, |
| | | concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width, |
| | | fc.quantity, |
| | | round(ogd.total_area, 2) as total_area, |
| | | od.perimeter, |
| | | if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius, |
| | | concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks, |
| | | od.other_columns, |
| | | round(ogd.child_width) as width, |
| | | round(ogd.child_height) as height, |
| | | pd.separation, |
| | | fc.technology_number, |
| | | IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber, |
| | | od.building_number |
| | | 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 |
| | | fc.technology_number = ogd.technology_number |
| | | left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number |
| | | left join sd.product_detail as pd |
| | | on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number |
| | | left join flow_card_sort as fcs |
| | | on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and |
| | | fcs.technology_number = fc.technology_number |
| | | and fcs.process = #{process} |
| | | where fc.process_id = #{processId} |
| | | and position(fc.technology_number in #{technologyNumber}) |
| | | and fc.order_sort = #{orderNumber} |
| | | group by fc.process_id, fc.order_number |
| | | order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number) |
| | | </select> |
| | |
| | | and fcs.process = #{process} |
| | | where fc.process_id = #{processId} |
| | | and position(fc.technology_number in #{technologyNumber}) |
| | | group by fc.process_id, fc.order_number, fc.technology_number |
| | | order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number) |
| | | </select> |
| | | |
| | | <select id="getDetailListLikes"> |
| | | select fc.order_number, |
| | | concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width, |
| | | #{quantity} as quantity, |
| | | round(ogd.child_width*ogd.child_height*#{quantity}/1000000, 2) as total_area, |
| | | round((ogd.child_width+ogd.child_height)*2*#{quantity}/1000, 2) as perimeter, |
| | | if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius, |
| | | concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks, |
| | | od.other_columns, |
| | | round(ogd.child_width) as width, |
| | | round(ogd.child_height) as height, |
| | | pd.separation, |
| | | fc.technology_number, |
| | | IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber, |
| | | od.building_number |
| | | 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 |
| | | fc.technology_number = ogd.technology_number |
| | | left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number |
| | | left join sd.product_detail as pd |
| | | on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number |
| | | left join flow_card_sort as fcs |
| | | on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and |
| | | fcs.technology_number = fc.technology_number |
| | | and fcs.process = #{process} |
| | | where fc.process_id = #{processId} |
| | | and position(fc.technology_number in #{technologyNumber}) |
| | | and fc.order_number=#{orderNumber} |
| | | group by fc.process_id, fc.order_number, fc.technology_number |
| | | order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number) |
| | | </select> |
| | |
| | | </update> |
| | | |
| | | <select id="getFlowCardListPrintProject"> |
| | | select fc.id, |
| | | fc.order_id, |
| | | fc.process_id, |
| | | o.customer_name, |
| | | o.project, |
| | | fc.order_number, |
| | | ogd.technology_number, |
| | | ogd.glass_address, |
| | | 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, |
| | | date(fc.splitFrame_time) as splitFrame_time, |
| | | /* if(fc.print_status=0,'未打印','已打印') as print_status*/ |
| | | fc.print_status, |
| | | ogd.process |
| | | from pp.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 |
| | | ogd.technology_number = fc.technology_number |
| | | left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number |
| | | left join sd.`order` as o on o.order_id = fc.order_id |
| | | select |
| | | od.order_id, |
| | | fc.process_id, |
| | | o.customer_name, |
| | | o.project, |
| | | od.order_number, |
| | | ogd.technology_number, |
| | | ogd.glass_address, |
| | | fc.quantity , |
| | | round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area, |
| | | od.product_name, |
| | | ogd.glass_child, |
| | | fc.patch_state, |
| | | ogd.process |
| | | from (select process_id,count(*) as quantity,order_sort,project_no,layer,patch_state from pp.optimize_detail where project_no = #{printProject} group by process_id,layer) as fc |
| | | left join sd.order_glass_detail as ogd |
| | | on ogd.order_id = SUBSTRING(fc.process_id,1,10) and ogd.order_number = fc.order_sort and |
| | | ogd.technology_number = fc.layer |
| | | left join sd.order_detail as od on od.order_id = SUBSTRING(fc.process_id,1,10) and od.order_number = fc.order_sort |
| | | left join sd.`order` as o on o.order_id = SUBSTRING(fc.process_id,1,10) |
| | | where fc.project_no = #{printProject} |
| | | GROUP BY fc.process_id, ogd.technology_number |
| | | order by fc.process_id, ogd.technology_number |