廖井涛
2024-08-04 1ae5f2198b70aba54c49f1752e02dfe7b9d5a2e9
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
11个文件已修改
1525 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabelSemi.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintReplenishFlowCard.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 1157 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -121,10 +121,7 @@
            }
          }
          //处理同配置打印
          handleGetQRCode()
          handleSummary()
        } else {
@@ -175,7 +172,7 @@
      totalArea += collection.total_area * 1;
      totalWeight += collection.width * collection.height * collection.quantity / 1000000 * collection.separation * 2.5 * 1;
      //每个序号周长
      collection.perimeter = (collection.width * 2 + collection.height * 2) * collection.quantity / 1000
      collection.perimeter = parseFloat(((collection.width * 2 + collection.height * 2) * collection.quantity / 1000).toFixed(3))
    });
    // 输出每个集合中的总数量
    produceList.value[i].detail[0].quantity = totalQuantity
@@ -318,13 +315,13 @@
      </tr>
      <tr v-for="(itemtextarea,index) in item.detail" :key="index">
        <td v-if="like='1'" colspan="4" rowspan="6" style="width: 480px;height: 100px ">
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{company.printLabel.printFlowCard.processingNote(itemtextarea)}}</textarea>
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
          </div>
        </td>
        <td v-else colspan="6" rowspan="2" style="width: 480px;height: 100px ">
          <!--          <div style="width: 100%;height: 100%"><textarea style="height: 99%;width: 99%;font-size: 11px">{{ itemtextarea.processing_note }}</textarea>-->
          <!--          </div>-->
           <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{company.printLabel.printFlowCard.processingNote(itemtextarea)}}</textarea>
           <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
           </div>
        </td>
        <td>完工签名</td>
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -137,8 +137,7 @@
          }
          //处理同配置打印
          handleSummary()
          handleGetQRCode()
        } else {
          ElMessage.warning(res.msg)
north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabel.vue
@@ -38,7 +38,7 @@
data.value.printList = JSON.parse(props.list)
onMounted(() => {
      request.post(`/Replenish/getSelectPrintCustomLabel/${type}`, data.value).then((res) => {
      request.post(`/Replenish/getSelectPrintCustomLabel/${type}/${lableType}`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.title)
north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabelSemi.vue
@@ -39,7 +39,7 @@
data.value.printList = JSON.parse(props.list)
onMounted(() => {
      request.post(`/Replenish/getSelectPrintCustomLabel/${type}`, data.value).then((res) => {
      request.post(`/Replenish/getSelectPrintCustomLabel/${type}/${lableType}`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.title)
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintReplenishFlowCard.vue
@@ -113,7 +113,7 @@
//标签类型
let  filteredOptions=[]
const lableType = ref('1')
const lableType = ref('2')
const lableTypeOptions = [
  {
    value: '1',
@@ -160,7 +160,7 @@
//打印类型
const printType = ref()
const printType = ref('小片标签')
//定义接收加载表头下拉数据
const titleSelectJson = ref({
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -27,7 +27,7 @@
const dialogTableVisible = ref(false)
const dialogTableVisibleLabel = ref(false)
const dialogTableVisibleCustomLabel = ref(false)
const printVisible= ref(false)
const printVisible = ref(false)
let selectRecords = ref(null)
const selectRecordsData = ref({
@@ -35,32 +35,31 @@
})
const xGrid = ref(null)
const xGridDetail =ref(null)
const xGridDetail = ref(null)
//排序
let editRow = ref({
  processId:null,
  technologyNumber:null
  processId: null,
  technologyNumber: null
})
//打印
let  printRow = ref({
  list:null,
  printMergeVal:null,
  like:null
let printRow = ref({
  list: null,
  printMergeVal: null,
  like: null
})
//标签
let  labelRow = ref({
  list:null,//勾选的数据
  faceOrientation:null,//内外面
  type:null,//标签模板
  lableType:null//标签类型
let labelRow = ref({
  list: null,//勾选的数据
  faceOrientation: null,//内外面
  type: null,//标签模板
  lableType: null//标签类型
})
const getTableRow = (row,type) => {
const getTableRow = (row, type) => {
  switch (type) {
    case 'edit' : {
      editRow.value.processId = row.process_id
@@ -111,17 +110,17 @@
]
//标签类型
let  filteredOptions=[]
let filteredOptions = []
const lableType = ref('1')
const lableTypeOptions = [
  {
    value: '1',
    label: t('processCard.finishedProductLabel'),
  },
/*  {
    value: '2',
    label: t('processCard.halfProductLabel'),
  },*/
  /*  {
      value: '2',
      label: t('processCard.halfProductLabel'),
    },*/
  {
    value: `${company.printLabel.labelValue}`,
    label: `${company.printLabel.labelType}`,
@@ -133,21 +132,20 @@
]
let hidePrintLabels = company.printLabel.hideButton;
if (hidePrintLabels=='true'){
if (hidePrintLabels == 'true') {
  filteredOptions = lableTypeOptions.filter((option, index) => index !== 2);
}else {
} else {
  filteredOptions = lableTypeOptions;
}
//合片流程卡打印下拉选项
const printMerge = ref('')
const printMergeOptions=[{}]
const printMergeOptions = [{}]
const printContent = ref({
  id: 'child',
})
const printContentLabel = ref({
@@ -174,7 +172,7 @@
const route = currentRoute.value
let orderId = route.query.orderId
data.value.printList=JSON.parse(route.query.printList)
data.value.printList = JSON.parse(route.query.printList)
let inquiryMode = route.query.checkedValue
// 第一次加载查询
@@ -182,8 +180,8 @@
  if (res.code == 200) {
    let newDataCollection = [];
    for (let i = 0; i <res.data.data.length ; i++) {
      res.data.data[i].detail.forEach((item) =>{
    for (let i = 0; i < res.data.data.length; i++) {
      res.data.data[i].detail.forEach((item) => {
        newDataCollection.push(item);
      })
    }
@@ -234,7 +232,7 @@
    useKey: true
  },
  filterConfig: {   //筛选配置项
                    // remote: true
    // remote: true
  },
  customConfig: {
    storage: true
@@ -246,7 +244,7 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {title: t('basicData.operate'), width: 55, slots: { default: 'button_slot' },fixed:"left"},
    {title: t('basicData.operate'), width: 55, slots: {default: 'button_slot'}, fixed: "left"},
    {type: 'checkbox', fixed: "left", title: t('basicData.check'), width: 80},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
@@ -254,7 +252,7 @@
      title: t('order.orderId'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 120
      filterMethod: filterChanged, width: 120
    },
    {
      field: 'process_id',
@@ -262,39 +260,57 @@
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 140
      filterMethod: filterChanged, width: 140
    },
    {
      field: 'customer_name',
      title: t('customer.customerName'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 120
      filterMethod: filterChanged, width: 120
    },
    {
      field: 'project',
      title:  t('order.project'),
      title: t('order.project'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 120
      filterMethod: filterChanged,
      width: 120
    },
    {field: 'technology_number', title: t('processCard.technologyNumber'), showOverflow: "ellipsis",width: 90},
    {field: 'glass_address', title: t('processCard.glassAddress'),width: 90},
    {field: 'quantity', title:  t('order.quantity'),width: 90},
    {field: 'total_area', title:  t('order.area'),width: 90},
    {field: 'product_name', title: t('order.product'),width: 120},
    {field: 'glass_child', title: t('reportingWorks.glassChild'),width: 120,filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod: filterChanged},
    {field: 'founder', title: t('processCard.founder'),width: 120},
    {field: 'splitFrame_time', title: t('processCard.splitFrameTime'),width: 120},
    {field: 'process', title: t('craft.process'),filters: [{data: ''}],
    {
      field: 'technology_number',
      title: t('processCard.technologyNumber'),
      showOverflow: "ellipsis",
      width: 110,
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 160},
      filterMethod: filterChanged,
    },
    {field: 'glass_address', title: t('processCard.glassAddress'), width: 90},
    {field: 'quantity', title: t('order.quantity'), width: 90},
    {field: 'total_area', title: t('order.area'), width: 90},
    {field: 'product_name', title: t('order.product'), width: 120},
    {
      field: 'glass_child',
      title: t('reportingWorks.glassChild'),
      width: 120,
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {field: 'founder', title: t('processCard.founder'), width: 120},
    {field: 'splitFrame_time', title: t('processCard.splitFrameTime'), width: 120},
    {
      field: 'process', title: t('craft.process'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged, width: 160
    },
    {
      field: 'print_status',
      title: t('processCard.printStatus'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 120
      filterMethod: filterChanged, width: 120
    },
  ],//表头按钮
@@ -304,7 +320,7 @@
      {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'},
      {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'},
      {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'},
      {code: 'printLike', name: "同配置打印", status: 'primary'},
      // {code: 'printLike', name: "同配置打印", status: 'primary'},
    ],
    // import: false,
    // export: true,
@@ -314,13 +330,13 @@
  },
  data: null,//表格数据
  //脚部求和
  footerMethod ({ columns, data }) {//页脚函数
    return[
  footerMethod({columns, data}) {//页脚函数
    return [
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        const List = ["quantity",'total_area',]
        const List = ["quantity", 'total_area',]
        if (List.includes(column.field)) {
          return footSum(data, column.field)
        }
@@ -333,20 +349,20 @@
})
const gridEvents = {
  toolbarButtonClick ({ code}) {
  toolbarButtonClick({code}) {
    const $grid = xGrid.value
    selectRecords = $grid.getCheckboxRecords()
    // selectRecords.forEach(obj => {
    //   delete obj.print_status;
    // });
    let type=printType.value
    let faceOrientation=stateValue.value
    let lableTypes=lableType.value
    let lableTitle=lableType.text
    let type = printType.value
    let faceOrientation = stateValue.value
    let lableTypes = lableType.value
    let lableTitle = lableType.text
    if ($grid) {
      switch (code) {
        case 'print': {
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
          if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
@@ -360,15 +376,15 @@
            }
          }
          printRow.value.list = JSON.stringify(selectRecords)
          printRow.value.printMergeVal=printMerge.value
          printRow.value.like=null
        // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
          dialogTableVisible.value=true
          printRow.value.printMergeVal = printMerge.value
          printRow.value.like = null
          // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
          dialogTableVisible.value = true
          break
        }
        case 'printLabel': {
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
          if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
@@ -386,7 +402,7 @@
          break
        }
        case 'printLabel2': {
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
          if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
@@ -399,7 +415,10 @@
              id += selectRecords[i].id + "|"
            }
          }
          router.push({path: '/main/processCard/PrintCustomLabelSemi2', query: {printList: JSON.stringify(selectRecords)}})
          router.push({
            path: '/main/processCard/PrintCustomLabelSemi2',
            query: {printList: JSON.stringify(selectRecords)}
          })
          break
        }
@@ -421,7 +440,7 @@
              ElMessage.success(t('processCard.sortingSuccessful'))
              router.push({
                path: '/main/processCard/PrintFlowCard',
                query: {orderId: orderId,random: Math.random()}
                query: {orderId: orderId, random: Math.random()}
              })
              //location.reload();
@@ -432,11 +451,11 @@
          break
        }
        case 'customLabel': {
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
          if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          if (type===null||type===''||type===undefined){
          if (type === null || type === '' || type === undefined) {
            ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle'))
            return
          }
@@ -449,32 +468,54 @@
              id += selectRecords[i].id + "|"
            }
          }
          if (lableTypes==1){
          if (lableTypes == 1) {
            labelRow.value.list=JSON.stringify(selectRecords)
            labelRow.value.faceOrientation=faceOrientation
            labelRow.value.type=type
            labelRow.value.lableType= lableTypes
            if(company.label===1){
              dialogTableVisibleLabel.value=true
            }else if(company.label===2){
              router.push({path: '/main/processCard/PrintCustomLabel', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
            labelRow.value.list = JSON.stringify(selectRecords)
            labelRow.value.faceOrientation = faceOrientation
            labelRow.value.type = type
            labelRow.value.lableType = lableTypes
            if (company.label === 1) {
              dialogTableVisibleLabel.value = true
            } else if (company.label === 2) {
              router.push({
                path: '/main/processCard/PrintCustomLabel',
                query: {
                  type: type,
                  faceOrientation: faceOrientation,
                  lableType: lableTypes,
                  printList: JSON.stringify(selectRecords)
                }
              })
            }
          }
          else if (lableTypes==2) {
            labelRow.value.list=JSON.stringify(selectRecords)
            labelRow.value.faceOrientation=faceOrientation
            labelRow.value.type=type
            labelRow.value.lableType= lableTypes
            if(company.label===1){
              dialogTableVisibleCustomLabel.value=true
            }else if(company.label===2){
              router.push({path: '/main/processCard/PrintCustomLabelSemi', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
          } else if (lableTypes == 2) {
            labelRow.value.list = JSON.stringify(selectRecords)
            labelRow.value.faceOrientation = faceOrientation
            labelRow.value.type = type
            labelRow.value.lableType = lableTypes
            if (company.label === 1) {
              dialogTableVisibleCustomLabel.value = true
            } else if (company.label === 2) {
              router.push({
                path: '/main/processCard/PrintCustomLabelSemi',
                query: {
                  type: type,
                  faceOrientation: faceOrientation,
                  lableType: lableTypes,
                  printList: JSON.stringify(selectRecords)
                }
              })
            }
          }else
            if (lableTypes==3) {
            router.push({path: '/main/processCard/PrintLabel1', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
          } else if (lableTypes == 3) {
            router.push({
              path: '/main/processCard/PrintLabel1',
              query: {
                type: type,
                faceOrientation: faceOrientation,
                lableType: lableTypes,
                printList: JSON.stringify(selectRecords)
              }
            })
          }
@@ -482,11 +523,11 @@
          break
        }
        case 'printLike': {
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
          if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          if(printMerge.value===null ||printMerge.value===''){
          if (printMerge.value === null || printMerge.value === '') {
            ElMessage.warning('请填入需要合并的层')
            return
          }
@@ -500,10 +541,10 @@
            }
          }
          printRow.value.list = JSON.stringify(selectRecords)
          printRow.value.printMergeVal=printMerge.value
          printRow.value.like="1"
          printRow.value.printMergeVal = printMerge.value
          printRow.value.like = "1"
          // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
          dialogTableVisible.value=true
          dialogTableVisible.value = true
          break
        }
      }
@@ -513,29 +554,29 @@
const openedTable = () => {
  let detail =ref(produceDetailList.value)
  let detail = ref(produceDetailList.value)
  xGridDetail.value.reloadData(detail.value)
  addListener(xGridDetail.value, detailGridOptions)
}
const hideButton = () =>{
const hideButton = () => {
  // 根据条件值 hidePrintLabels 过滤按钮数组
  gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
    // 这里根据 hidePrintLabels 的值决定是否隐藏 printLabel 和 printLabel2
    if (hidePrintLabels=='true') {
      return button.code !== 'printLabel' && button.code !== 'printLabel2' ;
    if (hidePrintLabels == 'true') {
      return button.code !== 'printLabel' && button.code !== 'printLabel2';
    } else {
      return true && button.code !=='printLike'; // 显示该按钮
      return true && button.code !== 'printLike'; // 显示该按钮
    }
  })
}
// 监听打印完成事件
const printNumber = () =>{
const printNumber = () => {
  selectRecordsData.value.printList=selectRecords
  let printState=0
  selectRecordsData.value.printList = selectRecords
  let printState = 0
  request.post(`/processCard/updatePrintState/${printState}`, selectRecordsData.value).then((res) => {
    if (res.code == 200 && res.data === true) {
    } else {
@@ -550,10 +591,12 @@
<template>
  <div class="main-div-customer">
    <el-input clearable :placeholder="$t('processCard.mergePrinting')" v-model="printMerge" style="width: 90px"></el-input>
    <el-input v-show="isVisible" v-model="printMerge" :placeholder="$t('processCard.mergePrinting')" clearable
              style="width: 90px"></el-input>
    &nbsp;
    <label>{{$t('processCard.labelStyle')}}:</label>
    <el-select v-model="printType" clearable default-value="default_city" :placeholder="$t('processCard.pleaseSelect')" style="width: 120px">
    <label>{{ $t('processCard.labelStyle') }}:</label>
    <el-select v-model="printType" :placeholder="$t('processCard.pleaseSelect')" clearable default-value="default_city"
               style="width: 120px">
      <el-option
          v-for="item in titleSelectJson['dataType']"
          :key="item.id"
@@ -562,7 +605,7 @@
      />
    </el-select>
    &nbsp;
    <el-select v-model="lableType" class="m-2" :placeholder="lableTypeOptions[0].label" style="width: 140px">
    <el-select v-model="lableType" :placeholder="lableTypeOptions[0].label" class="m-2" style="width: 140px">
      <el-option
          v-for="item in filteredOptions"
          :key="item.value"
@@ -571,7 +614,8 @@
      />
    </el-select>
    &nbsp;
    <el-select v-model="stateValue" class="m-2" :placeholder="$t('processCard.pleaseSelect')" clearable allow-create filterable style="width: 140px">
    <el-select v-model="stateValue" :placeholder="$t('processCard.pleaseSelect')" allow-create class="m-2" clearable
               filterable style="width: 140px">
      <el-option
          v-for="item in stateOptions"
          :key="item.value"
@@ -602,12 +646,12 @@
      </template>
      <!--左边固定显示的插槽-->
<!--      v-if="userStore.user.permissions.indexOf('SelectProductionBasicData.edit') > -1"-->
      <!--      v-if="userStore.user.permissions.indexOf('SelectProductionBasicData.edit') > -1"-->
      <template #button_slot="{ row }">
        <el-button @click="getTableRow(row,'edit')"
                   link
        <el-button link
                   size="small"
                   type="primary"
                   size="small">
                   @click="getTableRow(row,'edit')">
          {{ $t('basicData.edit') }}
        </el-button>
@@ -616,8 +660,8 @@
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="text"
                   v-model="option.data"
            <input v-model="option.data"
                   type="text"
                   @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
@@ -625,7 +669,7 @@
    </vxe-grid>
<!--  流程卡打印  -->
    <!--  流程卡打印  -->
    <el-dialog
        id="sizePrintCalrd"
        v-model="dialogTableVisible"
@@ -633,60 +677,60 @@
        destroy-on-close
        style="width: 75%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContent" @click="printNumber"  :icon="Printer" circle />
        <el-button v-print="printContent" :icon="Printer" circle @click="printNumber"/>
      </template>
      <print-process
          id="child"
          :printLike="printRow.like"
          :printList="printRow.list"
          :printMerge="printRow.printMergeVal"
          :printLike="printRow.like"
          style="width: 100%;height: 100%" />
          style="width: 100%;height: 100%"/>
    </el-dialog>
<!--    成品标签-->
    <!--    成品标签-->
    <el-dialog
        id="sizeCustom"
        v-model="dialogTableVisibleLabel"
        destroy-on-close
        :title="$t('processCard.printLabel')"
        destroy-on-close
        style="width: 80%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContentLabel"   :icon="Printer" circle />
        <el-button v-print="printContentLabel" :icon="Printer" circle/>
      </template>
      <print-custom-label id="childLabel"
                          :list="labelRow.list"
                          :faceOrientation="labelRow.faceOrientation"
                          :type="labelRow.type"
                          :lableType="labelRow.lableType"
                  style="width: 100%;height: 100%" />
                          :list="labelRow.list"
                          :type="labelRow.type"
                          style="width: 100%;height: 100%"/>
    </el-dialog>
<!--   小片标签 -->
    <!--   小片标签 -->
    <el-dialog
        id="sizeCustomSemi"
        v-model="dialogTableVisibleCustomLabel"
        destroy-on-close
        :title="$t('processCard.labelStyle')"
        destroy-on-close
        style="width: 80%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContentLabelSemi"   :icon="Printer" circle />
        <el-button v-print="printContentLabelSemi" :icon="Printer" circle/>
      </template>
      <print-custom-label-semi id="childLabelSemi"
                               :list="labelRow.list"
                               :faceOrientation="labelRow.faceOrientation"
                               :type="labelRow.type"
                               :lableType="labelRow.lableType"
                  style="width: 100%;height: 100%" />
                               :list="labelRow.list"
                               :type="labelRow.type"
                               style="width: 100%;height: 100%"/>
    </el-dialog>
<!--    排序-->
    <!--    排序-->
    <el-dialog
        id="sizeCheck"
        v-model="printVisible"
        :title="$t('processCard.processCardDetails')"
        destroy-on-close
        style="width: 80%;height:75% ">
      <sort-detail id="child"  :processId="editRow.processId" :technologyNumber="editRow.technologyNumber" />
      <sort-detail id="child" :processId="editRow.processId" :technologyNumber="editRow.technologyNumber"/>
    </el-dialog>
@@ -700,24 +744,24 @@
}
:deep(#sizeCheck .el-dialog__body){
:deep(#sizeCheck .el-dialog__body) {
  height: 90%;
  width: 100%;
}
:deep(#sizePrintCalrd .el-dialog__body){
:deep(#sizePrintCalrd .el-dialog__body) {
  height: 85%;
  width: 100%;
  overflow-y: auto;
}
:deep(#sizeCustom .el-dialog__body){
:deep(#sizeCustom .el-dialog__body) {
  height: 85%;
  width: 100%;
  overflow-y: auto;
}
:deep(#sizeCustomSemi .el-dialog__body){
:deep(#sizeCustomSemi .el-dialog__body) {
  height: 85%;
  width: 100%;
  overflow-y: auto;
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue
@@ -12,15 +12,25 @@
import TagStyleDesigner from "@/components/pp/TagStyleDesigner.vue"
import OrderSortDetail from '@/components/pp/OrderSortDetail.vue'
import companyInfo from "@/stores/sd/companyInfo"
import useUserInfoStore from "@/stores/userInfo";
//语言获取
const {t} = useI18n()
const company = companyInfo()
let router = useRouter()
const printVisible= ref(false)
const userStore = useUserInfoStore()
const userId = userStore.user.userId
let inquiryMode = company.printLabel.getSelectFlowCard;
const checkedValue = ref(inquiryMode)
const checkedValue = ref("")
if (userId==="A071" || userId==="A107"){
   checkedValue.value = ref(2)
}
else {
   checkedValue.value = ref(inquiryMode)
}
//排序
let editRow = ref({
  orderId:null,
@@ -257,7 +267,7 @@
            }
          }
          let array = orderIdList.split('|');
         router.push({path: '/main/processCard/PrintFlowCard', query: {printList: JSON.stringify(selectRecords),checkedValue:checkedValue.value}})
         router.push({path: '/main/processCard/PrintFlowCard', query: {printList: JSON.stringify(selectRecords),checkedValue:checkedValue.value.value}})
          return;
        }
@@ -291,7 +301,7 @@
            :icon="Search"
            type="primary" @click="getWorkOrder">{{ $t('basicData.search') }}
        </el-button>
        <vxe-checkbox style="margin-top:6px;margin-left:10px " v-if="!(checkedValue === 2 && inquiryMode === 2)" v-model="checkedValue"  content="合并" :checked-value="1" :unchecked-value="2" ></vxe-checkbox>
        <vxe-checkbox style="margin-top:6px;margin-left:10px " v-if="!(checkedValue.value === 2 && inquiryMode === 2)" v-model="checkedValue.value"  content="合并" :checked-value="1" :unchecked-value="2" ></vxe-checkbox>
      </el-row>
    </div>
    <vxe-grid
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
@@ -70,10 +70,11 @@
    }
    @ApiOperation("补片打印自定义标签数据查询接口")
    @PostMapping("/getSelectPrintCustomLabel/{type}")
    @PostMapping("/getSelectPrintCustomLabel/{type}/{lableType}")
    public Result getSelectPrintCustomLabel( @PathVariable String type,
                                             @PathVariable Integer lableType,
                                             @RequestBody Map<String, Object> object) {
        return Result.seccess(replenishService.getSelectPrintCustomLabelSv(type,object));
        return Result.seccess(replenishService.getSelectPrintCustomLabelSv(type,lableType,object));
    }
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -141,4 +141,6 @@
    List<Map<String, String>> selectPrintNotMp(String orderId);
    List<Map<String, String>> selectPrintNotMergeMp(String orderId);
    List<Map<String, String>> getRepairPrintCustomDataSemi(String processId, Integer technologyNumber, String reportingWorkId);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
@@ -191,16 +191,23 @@
        return map;
    }
    public Map<String, Object> getSelectPrintCustomLabelSv(String type, Map<String, Object> object) {
    public Map<String, Object> getSelectPrintCustomLabelSv(String type, Integer lableType, Map<String, Object> object) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                if (lableType != 2){
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getRepairPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId()));
                    list.add(itemmap);
                }
                else{
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getRepairPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId()));
                    list.add(itemmap);
                }
                Map<String, Object> itemmap = new HashMap<>();
                itemmap.put("data", flowCardMapper.getRepairPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId()));
                list.add(itemmap);
            }
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -256,20 +256,16 @@
                 left join sd.order_glass_detail as ogd
                           on od.order_id = ogd.order_id and od.order_number = ogd.order_number
                 left join sd.product as p on od.product_name = p.product_name
                 left join (
            SELECT
                order_id,
                order_number,
                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S01' )) AS S01,
                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S02' )) AS S02,
                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S03' )) AS S03,
                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S04' )) AS S04,
                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S05' )) AS S05
            FROM
                sd.order_detail
            WHERE
                order_id = #{orderId}
        ) as ods on ods.order_id=od.order_id and ods.order_number=od.order_number
                 left join (SELECT order_id,
                                   order_number,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')) AS S01,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S02')) AS S02,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S03')) AS S03,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')) AS S04,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')) AS S05
                            FROM sd.order_detail
                            WHERE order_id = #{orderId}) as ods
                           on ods.order_id = od.order_id and ods.order_number = od.order_number
        where od.order_id = #{orderId}
          and ogd.production_id = #{productionId}
          and ogd.splitting_status = 0
@@ -450,7 +446,14 @@
    </delete>
    <select id="selectPrintFlowCardMp">
        select order_id,project,customer_name,quantity,area,order_type,pack_type,batch
        select order_id,
               project,
               customer_name,
               quantity,
               area,
               order_type,
               pack_type,
               batch
        from sd.order
        where create_time between #{selectTime1} and #{selectTime2}
          and position(#{orderId} in order_id)
@@ -468,161 +471,169 @@
    </select>
    <select id="selectPrintMp">
        select * from ((select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               ogdss.technology_number,
                               ogdss.concatenated_glass_child,
                               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,
                               od.product_name,
                               ogdss.concatenated_glass_child as glass_child,
                               fc.founder,
                               date(fc.splitFrame_time) as splitFrame_time,
                               fc.print_status,
                               processed_part as  process
        select *
        from ((select fc.id,
                      fc.order_id,
                      fc.process_id,
                      o.customer_name,
                      o.project,
                      ogdss.technology_number,
                      ogdss.concatenated_glass_child,
                      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,
                      od.product_name,
                      ogdss.concatenated_glass_child                                   as glass_child,
                      fc.founder,
                      date(fc.splitFrame_time)                                         as splitFrame_time,
                      fc.print_status,
                      processed_part                                                   as process
                        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
                                              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
                                 left join (
                            select
                                ogds.order_id,
                                ogds.order_number,
                                GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
                                ogds.glass_child AS concatenated_glass_child,
                                process AS processed_part
                            from sd.order_glass_detail as ogds
                            where ogds.order_id = #{orderId}
                            GROUP BY order_id, order_number,ogds.glass_child
                        ) as ogdss on fc.order_id=ogdss.order_id and ogdss.order_number=fc.order_number
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id,ogdss.concatenated_glass_child
                        order by fc.process_id,ogdss.technology_number)
               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
                                     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
                        left join (select ogds.order_id,
                                          ogds.order_number,
                                          GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
                                          ogds.glass_child                                  AS concatenated_glass_child,
                                          process                                           AS processed_part
                                   from sd.order_glass_detail as ogds
                                   where ogds.order_id = #{orderId}
                                   GROUP BY order_id, order_number, ogds.glass_child) as ogdss
                                  on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
               where fc.order_id = #{orderId}
               GROUP BY fc.process_id, ogdss.concatenated_glass_child
               order by fc.process_id, ogdss.technology_number)
                       UNION
              UNION
                       (select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               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,
                               od.product_name,
                               ogdss.concatenated_glass_child as glass_child,
                               fc.founder,
                               date(fc.splitFrame_time) as splitFrame_time,
                               fc.print_status,
                               processed_part as  process
              (select fc.id,
                      fc.order_id,
                      fc.process_id,
                      o.customer_name,
                      o.project,
                      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,
                      od.product_name,
                      ogdss.concatenated_glass_child                                   as glass_child,
                      fc.founder,
                      date(fc.splitFrame_time)                                         as splitFrame_time,
                      fc.print_status,
                      processed_part                                                   as process
                        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
                                              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
                                 left join (
                            select
                                ogds.order_id,
                                ogds.order_number,
                                GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
                                ogds.glass_child,
                                GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
                                SUBSTRING(process, LOCATE('夹胶', process)) AS processed_part
                            from sd.order_glass_detail as ogds
                            where ogds.order_id = #{orderId} and LOCATE('夹胶',ogds.process)>0
                            GROUP BY order_id, order_number,ogds.group
                        ) as ogdss on fc.order_id=ogdss.order_id and ogdss.order_number=fc.order_number
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id,ogdss.technology_number
                        order by fc.process_id)
                       UNION
                       (select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               ogdss.technology_number,
                               ogd.glass_address,
                               ROUND(sum(fc.quantity)/(count(DISTINCT fc.technology_number)))         as quantity,
                               sum(ogd.total_area)      as total_area,
                               od.product_name,
                               ogdss.concatenated_glass_child as glass_child,
                               fc.founder,
                               date(fc.splitFrame_time) as splitFrame_time,
                               fc.print_status,
                               processed_part as process
               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
                                     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
                        left join (select ogds.order_id,
                                          ogds.order_number,
                                          GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
                                          ogds.glass_child,
                                          GROUP_CONCAT(ogds.glass_child SEPARATOR ' ')      AS concatenated_glass_child,
                                          SUBSTRING(process, LOCATE('夹胶', process))       AS processed_part
                                   from sd.order_glass_detail as ogds
                                   where ogds.order_id = #{orderId}
                                     and LOCATE('夹胶', ogds.process) > 0
                                   GROUP BY order_id, order_number, ogds.group) as ogdss
                                  on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
               where fc.order_id = #{orderId}
               GROUP BY fc.process_id, ogdss.technology_number
               order by fc.process_id)
              UNION
              (select fc.id,
                      fc.order_id,
                      fc.process_id,
                      o.customer_name,
                      o.project,
                      ogdss.technology_number,
                      ogd.glass_address,
                      ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
                      sum(ogd.total_area)                                              as total_area,
                      od.product_name,
                      ogdss.concatenated_glass_child                                   as glass_child,
                      fc.founder,
                      date(fc.splitFrame_time)                                         as splitFrame_time,
                      fc.print_status,
                      processed_part                                                   as process
                        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
                                              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
                                 left join (
                            select
                                ogds.order_id,
                                ogds.order_number,
                                GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
                                ogds.glass_child,
                                GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
                                SUBSTRING(pds.process, LOCATE('中空', pds.process)) AS processed_part
                            from sd.order_glass_detail as ogds
                                     left join sd.order_detail as ods on ods.order_id=ogds.order_id and ods.order_number=ogds.order_number
                                     left join sd.product_detail as pds on pds.prod_id=ods.product_id and pds.glass_sort=ogds.technology_number
                            where ogds.order_id = #{orderId}
                            GROUP BY order_id, order_number
                        ) as ogdss on fc.order_id=ogdss.order_id and ogdss.order_number=fc.order_number
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id
                        order by fc.process_id)
                       ) AS combined_results where process is not null and process!=""
               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
                                     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
                        left join (select ogds.order_id,
                                          ogds.order_number,
                                          GROUP_CONCAT(pds.glass_sort SEPARATOR '')           AS technology_number,
                                          ogds.glass_child,
                                          GROUP_CONCAT(ogds.glass_child SEPARATOR ' ')        AS concatenated_glass_child,
                                          SUBSTRING(pds.process, LOCATE('中空', pds.process)) AS processed_part
                                   from sd.order_glass_detail as ogds
                                            left join sd.order_detail as ods
                                                      on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
                                            left join sd.product_detail as pds on pds.prod_id = ods.product_id and
                                                                                  pds.glass_sort =
                                                                                  ogds.technology_number
                                   where ogds.order_id = #{orderId}
                                   GROUP BY order_id, order_number) as ogdss
                                  on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
               where fc.order_id = #{orderId}
               GROUP BY fc.process_id
               order by fc.process_id)) AS combined_results
        where process is not null
          and process != ""
    </select>
    <select id="getPrimaryList">
        select o.customer_name,
               o.project,
               #{process} process,
               #{process}                                         process,
               od.edging_type,
               #{glassChild} as glass_child,
               #{glassChild}                                   as glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
               SUM(od.quantity)                                as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               concat("对应我司", TRIM(
                       SUBSTRING(
                               o.processing_note,
                               LOCATE('对应我司', o.processing_note) + CHAR_LENGTH('对应我司')
                           ))
                   )                                           AS otherRemarks
        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 = left(#{processId},10)
              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
                 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 = left(#{processId}, 10)
                              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
@@ -635,10 +646,10 @@
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
               concat(od.processing_note,od.remarks) as remarks,
               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,
               round(ogd.child_width)                                       as width,
               round(ogd.child_height)                                      as height,
               pd.separation,
               fc.technology_number
        from flow_card as fc
@@ -646,7 +657,8 @@
                           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 sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number
@@ -682,8 +694,8 @@
               o.project,
               od.building_number,
               od.processing_note,
               ogd.child_width as width,
               ogd.child_height as height,
               ogd.child_width         as width,
               ogd.child_height        as height,
               ogd.glass_child,
               ogd.process,
               e.type_name,
@@ -696,42 +708,45 @@
                 left join sd.order_detail od
                           on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number
                 left join sd.order_glass_detail ogd
                           on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and opd.layer=ogd.technology_number
                           on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and
                              opd.layer = ogd.technology_number
                 left join sd.product p on od.product_id = p.id
                 left join sd.basic_glass_type e on e.type_id = p.type_id
        left join sd.customer c on c.id=o.customer_id
                 left join sd.customer c on c.id = o.customer_id
        where opd.project_no = #{projectNo}
        order by opd.stock_id
    </select>
    <select id="getPrintLabel1">
        select o.order_id ,
        select o.order_id,
               o.project,
               o.customer_id ,
               ogd.child_width as width,
               ogd.child_height as height,
               o.customer_id,
               ogd.child_width                as width,
               ogd.child_height               as height,
               od.quantity,
               od.order_number as orderNumber,
               fc.technology_number as technologyNumber,
               od.order_number                as orderNumber,
               fc.technology_number           as technologyNumber,
               ogd.glass_child,
               ogd.process,
               c.customer_abbreviation as customer_name,
               ifnull(od.processing_note,'') as processing_note,
               c.customer_abbreviation        as customer_name,
               ifnull(od.processing_note, '') as processing_note,
               bgt.type_name,
               od.other_columns,
               od.building_number,
               od.bend_radius
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.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 sd.order_glass_detail as ogd
                           on ogd.order_id = od.order_id and ogd.order_number = od.order_number
                 left join pp.flow_card as fc on o.order_id = fc.order_id and
                                                 od.order_number = fc.order_number and fc.technology_number=ogd.technology_number
                 left join sd.product pt on pt.id=od.product_id
                 left join sd.customer c on c.id=o.customer_id
                 left join sd.basic_glass_type bgt on bgt.type_id=pt.type_id
                                                 od.order_number = fc.order_number and
                                                 fc.technology_number = ogd.technology_number
                 left join sd.product pt on pt.id = od.product_id
                 left join sd.customer c on c.id = o.customer_id
                 left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
        where fc.process_id = #{processId}
          and fc.technology_number=#{technologyNumber}
        group by od.order_number,od.width,od.height
          and fc.technology_number = #{technologyNumber}
        group by od.order_number, od.width, od.height
    </select>
    <select id="printFlowCardDetailsMp">
@@ -750,7 +765,7 @@
            AND fc.order_number = ogd.order_number
            AND fc.technology_number = ogd.technology_number
        where fc.process_id = #{processId}
          and  position(fc.technology_number in #{technologyNumber})
          and position(fc.technology_number in #{technologyNumber})
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
    </select>
@@ -805,58 +820,61 @@
    </resultMap>
    <select id="getPrintCustomData">
        select o.order_id           as orderId,
        select o.order_id                                            as orderId,
               project,
               customer_id          as customerId,
               o.customer_name        as customerName,
               order_type           as orderType,
               order_classify       as orderClassify,
               customer_id                                           as customerId,
               o.customer_name                                       as customerName,
               order_type                                            as orderType,
               order_classify                                        as orderClassify,
               batch,
               o.icon,
               pack_type            as packType,
               delivery_date        as deliveryDate,
               al_type              as alType,
               pack_type                                             as packType,
               delivery_date                                         as deliveryDate,
               al_type                                               as alType,
               money,
               contract_id          as contractId,
               customer_batch          customerBatch,
               contract_id                                           as contractId,
               customer_batch                                           customerBatch,
               contacts,
               delivery_address     as deliveryAddress,
               od.processing_note   as processingNote,
               delivery_address                                      as deliveryAddress,
               od.processing_note                                    as processingNote,
               width,
               height,
               od.quantity,
               od.order_number      as orderNumber,
               fc.technology_number as technologyNumber,
               od.building_number   as buildingNumber,
               od.product_name      as productName,
               od.edging_type       as edgingType,
               od.order_number                                       as orderNumber,
               fc.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
               od.product_name                                       as productName,
               od.edging_type                                        as edgingType,
               p.remarks,
               c.customer_abbreviation as customerAbbreviation,
               p.product_abbreviation as productAbbreviation,
               fc.process_id as processId,
               o.create_time as createTime,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S02' )) AS figureNumber,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S03' )) AS colourCeramicGlaze,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S04' )) AS remarks1,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S05' )) AS remarks2,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S06' )) AS remarks3,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S07' )) AS remarks4,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S08' )) AS remarks5,
                p.remarks as filmNumber,
                od.bend_radius as bendRadius,
                od.other_columns,
               ogd.glass_child as glassChild,
               ogd.glass_address as glassAddress,
               JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.color' )) AS color
               c.customer_abbreviation                               as customerAbbreviation,
               p.product_abbreviation                                as productAbbreviation,
               fc.process_id                                         as processId,
               o.create_time                                         as createTime,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
               p.remarks                                             as filmNumber,
               od.bend_radius                                        as bendRadius,
               od.other_columns,
               ogd.glass_child                                       as glassChild,
               ogd.glass_address                                     as glassAddress,
               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
                 left join flow_card as fc on o.order_id = fc.order_id and
                                              od.order_number = fc.order_number
                 left join sd.product as p on p.id=od.product_id
                 left join sd.product as p on p.id = od.product_id
                 left join sd.customer as c on c.id = o.customer_id
        left join sd.product_detail as pd  on pd.prod_id=p.id and pd.sort_num=od.order_number and pd.glass_sort=fc.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.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
                                                      pd.glass_sort = fc.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
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
        group by od.order_number, width, height
@@ -893,64 +911,65 @@
                 left join patch_log as pl on pl.order_id = fc.order_id and pl.process_id = fc.process_id and
                                              pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
        where pl.create_time between #{selectTime1} and #{selectTime2} and pl.review_status>0
        GROUP BY pl.id,fc.process_id, ogd.technology_number
        order by pl.id desc,fc.process_id, ogd.technology_number
        where pl.create_time between #{selectTime1} and #{selectTime2}
          and pl.review_status > 0
        GROUP BY pl.id, fc.process_id, ogd.technology_number
        order by pl.id desc, fc.process_id, ogd.technology_number
    </select>
    <select id="getRepairPrintCustomData">
        select o.order_id           as orderId,
        select o.order_id                                            as orderId,
               o.project,
               o.customer_id          as customerId,
               o.customer_name        as customerName,
               o.order_type           as orderType,
               o.order_classify       as orderClassify,
               o.customer_id                                         as customerId,
               o.customer_name                                       as customerName,
               o.order_type                                          as orderType,
               o.order_classify                                      as orderClassify,
               o.batch,
               o.icon,
               o.pack_type            as packType,
               o.delivery_date        as deliveryDate,
               o.al_type              as alType,
               o.pack_type                                           as packType,
               o.delivery_date                                       as deliveryDate,
               o.al_type                                             as alType,
               o.money,
               contract_id          as contractId,
               customer_batch          customerBatch,
               contract_id                                           as contractId,
               customer_batch                                           customerBatch,
               contacts,
               o.delivery_address     as deliveryAddress,
               od.processing_note   as processingNote,
               o.delivery_address                                    as deliveryAddress,
               od.processing_note                                    as processingNote,
               od.width,
               od.height,
               pl.patch_num         as quantity,
               pl.order_sort        as orderNumber,
               pl.technology_number as technologyNumber,
               od.building_number   as buildingNumber,
               od.product_name      as productName,
               od.edging_type       as edgingType,
                p.remarks,
                c.customer_abbreviation as customerAbbreviation,
               p.product_abbreviation as productAbbreviation,
               fc.process_id as processId,
               o.create_time as createTime,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S02' )) AS figureNumber,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S03' )) AS colourCeramicGlaze,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S04' )) AS remarks1,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S05' )) AS remarks2,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S06' )) AS remarks3,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S07' )) AS remarks4,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S08' )) AS remarks5,
               p.remarks as filmNumber,
               od.bend_radius as bendRadius
               pl.patch_num                                          as quantity,
               pl.order_sort                                         as orderNumber,
               pl.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
               od.product_name                                       as productName,
               od.edging_type                                        as edgingType,
               p.remarks,
               c.customer_abbreviation                               as customerAbbreviation,
               p.product_abbreviation                                as productAbbreviation,
               fc.process_id                                         as processId,
               o.create_time                                         as createTime,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
               p.remarks                                             as filmNumber,
               od.bend_radius                                        as bendRadius
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
                 left join flow_card as fc on o.order_id = fc.order_id and
                                              od.order_number = fc.order_number
                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
                 left join sd.product as p on p.id=od.product_id
                 left join sd.product as p on p.id = od.product_id
                 left join sd.customer as c on c.id = o.customer_id
                 left join sd.product_detail as pd  on pd.prod_id=p.id and pd.sort_num=od.order_number
                 left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
        where pl.process_id = #{processId}
          and pl.technology_number = #{technologyNumber}
        and pl.reporting_work_id=#{reportingWorkId}
          and pl.reporting_work_id = #{reportingWorkId}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, pl.order_sort)
    </select>
@@ -965,9 +984,10 @@
    </select>
    <update id="updatePrintStateMp">
        update  pp.flow_card
        set print_status = print_status+1
        where process_id = #{processId} and technology_number = #{technologyNumber}
        update pp.flow_card
        set print_status = print_status + 1
        where process_id = #{processId}
          and technology_number = #{technologyNumber}
    </update>
    <select id="printFlowCardOrderSortMp">
@@ -985,7 +1005,7 @@
                 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
        where fc.order_id=#{orderId}
        where fc.order_id = #{orderId}
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.technology_number)
    </select>
@@ -1002,13 +1022,13 @@
               o.project,
               ogd.process,
               od.edging_type,
               ogdc.concatenated_glass_child as glass_child,
               ogdc.concatenated_glass_child                   as glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
               SUM(od.quantity)                                as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
        from flow_card as fc
@@ -1017,25 +1037,28 @@
                              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 = left(#{processId},10)
              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
                 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 = left(#{processId}, 10)
                              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}) and ogdc.concatenated_glass_child is NOT null
          and position(fc.technology_number in #{technologyNumber})
          and ogdc.concatenated_glass_child is NOT null
        group by fc.process_id, fc.technology_number
    </select>
    <select id="selectorderOtherMoney">
        select * from sd.basic_other_money where id between 21 and 35
        select *
        from sd.basic_other_money
        where id between 21 and 35
    </select>
    <select id="selectReworkPrintMp">
@@ -1068,8 +1091,8 @@
                                           pl.order_sort = fc.order_number and
                                           pl.technology_number = fc.technology_number
        where pl.create_time between #{selectTime1} and #{selectTime2}
        GROUP BY fc.process_id, ogd.technology_number,pl.reporting_work_id
        order by pl.id desc,fc.process_id, ogd.technology_number
        GROUP BY fc.process_id, ogd.technology_number, pl.reporting_work_id
        order by pl.id desc, fc.process_id, ogd.technology_number
    </select>
    <select id="getDetailListLike">
@@ -1079,10 +1102,10 @@
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
               concat(od.processing_note,od.remarks) as remarks,
               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,
               round(ogd.child_width)                                       as width,
               round(ogd.child_height)                                      as height,
               pd.separation,
               fc.technology_number
        from flow_card as fc
@@ -1090,10 +1113,11 @@
                           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 sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number,fc.technology_number
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
    </select>
@@ -1102,13 +1126,13 @@
               o.project,
               ogd.process,
               od.edging_type,
               ogdc.concatenated_glass_child as glass_child,
               ogdc.concatenated_glass_child                   as glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
               pl.patch_num                                as quantity,
               pl.patch_num                                    as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
        from flow_card as fc
@@ -1117,36 +1141,39 @@
                              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 = left(#{processId},10)
              and ogd.order_number=#{orderNumber}
              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
                 left join patch_log as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
        where fc.process_id = #{processId} and fc.order_number=#{orderNumber}
          and position(fc.technology_number in #{technologyNumber}) and ogdc.concatenated_glass_child is NOT null
                 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 = left(#{processId}, 10)
                              and ogd.order_number = #{orderNumber}
                              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
                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and position(fc.technology_number in #{technologyNumber})
          and ogdc.concatenated_glass_child is NOT null
        group by fc.process_id, fc.technology_number
    </select>
    <select id="getDetailListRefund">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
               (pl.patch_num) as quantity,
               (pl.patch_num)                                               as quantity,
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
               concat(od.processing_note,od.remarks) as remarks,
               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,
               round(ogd.child_width)                                       as width,
               round(ogd.child_height)                                      as height,
               pd.separation,
               fc.technology_number
        from flow_card as fc
@@ -1154,13 +1181,15 @@
                           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 patch_log as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
                 left join sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          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.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
    </select>
@@ -1173,9 +1202,9 @@
               od.product_name,
               o.processing_note,
               fc.process_id,
               pl.patch_num                                as quantity,
               pl.patch_num                                    as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               dd.breakage_type,
@@ -1188,40 +1217,43 @@
                              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 = left(#{processId},10)
              and ogd.order_number = #{orderNumber}
              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
                 left join patch_log as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
        left join pp.reporting_work as rw on rw.order_id=fc.order_id and rw.process_id=fc.process_id
        left join pp.damage_details as dd on rw.reporting_work_id=dd.reporting_work_id and dd.order_number=fc.order_number and dd.technology_number=fc.technology_number
                 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 = left(#{processId}, 10)
                              and ogd.order_number = #{orderNumber}
                              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
                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
                 left join pp.reporting_work as rw on rw.order_id = fc.order_id and rw.process_id = fc.process_id
                 left join pp.damage_details as dd
                           on rw.reporting_work_id = dd.reporting_work_id and dd.order_number = fc.order_number and
                              dd.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and fc.technology_number = #{technologyNumber}
        and rw.reporting_work_id=#{reportingWorkId}
          and rw.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.technology_number
    </select>
    <select id="getDetailListLikeRefund">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
               pl.patch_num as quantity,
               pl.patch_num                                                 as quantity,
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
               concat(od.processing_note,od.remarks) as remarks,
               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,
               round(ogd.child_width)                                       as width,
               round(ogd.child_height)                                      as height,
               pd.separation,
               fc.technology_number
        from flow_card as fc
@@ -1229,13 +1261,15 @@
                           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 patch_log as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
                 left join sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          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.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
    </select>
@@ -1248,9 +1282,9 @@
               od.product_name,
               o.processing_note,
               fc.process_id,
               pl.rework_num                                as quantity,
               pl.rework_num                                   as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
        from flow_card as fc
@@ -1259,20 +1293,21 @@
                              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 = left(#{processId},10)
              and ogd.order_number = #{orderNumber}
              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
                 left join rework as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
                 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 = left(#{processId}, 10)
                              and ogd.order_number = #{orderNumber}
                              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
                 left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                           pl.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and fc.technology_number = #{technologyNumber}
@@ -1282,14 +1317,14 @@
    <select id="getDetailListRework">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
               (pl.rework_num) as quantity,
               (pl.rework_num)                                              as quantity,
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
               concat(od.processing_note,od.remarks) as remarks,
               concat(od.processing_note, od.remarks)                       as remarks,
               od.other_columns,
               round(ogd.child_width) as width,
               round(ogd.child_height) as height,
               round(ogd.child_width)                                       as width,
               round(ogd.child_height)                                      as height,
               pd.separation,
               fc.technology_number
        from flow_card as fc
@@ -1297,13 +1332,15 @@
                           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 rework as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
                 left join sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
                 left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                           pl.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          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.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
    </select>
@@ -1312,13 +1349,13 @@
               o.project,
               ogd.process,
               od.edging_type,
               ogdc.concatenated_glass_child as glass_child,
               ogdc.concatenated_glass_child                   as glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
               pl.rework_num                                as quantity,
               pl.rework_num                                   as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
        from flow_card as fc
@@ -1327,36 +1364,39 @@
                              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 = left(#{processId},10)
              and ogd.order_number=#{orderNumber}
              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
                 left join rework as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
        where fc.process_id = #{processId} and fc.order_number=#{orderNumber}
          and position(fc.technology_number in #{technologyNumber}) and ogdc.concatenated_glass_child is NOT null
                 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 = left(#{processId}, 10)
                              and ogd.order_number = #{orderNumber}
                              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
                 left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                           pl.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and position(fc.technology_number in #{technologyNumber})
          and ogdc.concatenated_glass_child is NOT null
        group by fc.process_id, fc.technology_number
    </select>
    <select id="getDetailListLikeRework">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
               pl.rework_num as quantity,
               pl.rework_num                                                as quantity,
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
               concat(od.processing_note,od.remarks) as remarks,
               concat(od.processing_note, od.remarks)                       as remarks,
               od.other_columns,
               round(ogd.child_width) as width,
               round(ogd.child_height) as height,
               round(ogd.child_width)                                       as width,
               round(ogd.child_height)                                      as height,
               pd.separation,
               fc.technology_number
        from flow_card as fc
@@ -1364,71 +1404,75 @@
                           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 rework as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
                 left join sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
                 left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                           pl.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          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.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
    </select>
    <select id="getPrintCustomDataSemi">
        select o.order_id           as orderId,
        select o.order_id                                            as orderId,
               project,
               customer_id          as customerId,
               o.customer_name        as customerName,
               order_type           as orderType,
               order_classify       as orderClassify,
               customer_id                                           as customerId,
               o.customer_name                                       as customerName,
               order_type                                            as orderType,
               order_classify                                        as orderClassify,
               batch,
               o.icon,
               pack_type            as packType,
               delivery_date        as deliveryDate,
               al_type              as alType,
               pack_type                                             as packType,
               delivery_date                                         as deliveryDate,
               al_type                                               as alType,
               money,
               contract_id          as contractId,
               customer_batch          customerBatch,
               contract_id                                           as contractId,
               customer_batch                                           customerBatch,
               contacts,
               delivery_address     as deliveryAddress,
               od.processing_note   as processingNote,
               width,
               height,
               delivery_address                                      as deliveryAddress,
               od.processing_note                                    as processingNote,
               round(ogd.child_width)                                as width,
               round(ogd.child_height)                               as height,
               od.quantity,
               od.order_number      as orderNumber,
               fc.technology_number as technologyNumber,
               od.building_number   as buildingNumber,
               od.product_name      as productName,
               od.edging_type       as edgingType,
               od.order_number                                       as orderNumber,
               fc.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
               od.product_name                                       as productName,
               od.edging_type                                        as edgingType,
               p.remarks,
               c.customer_abbreviation as customerAbbreviation,
               p.product_abbreviation as productAbbreviation,
               CONCAT(fc.process_id,'/',fc.technology_number) as processId,
               o.create_time as createTime,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S02' )) AS figureNumber,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S03' )) AS colourCeramicGlaze,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S04' )) AS remarks1,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S05' )) AS remarks2,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S06' )) AS remarks3,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S07' )) AS remarks4,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S08' )) AS remarks5,
               p.remarks as filmNumber,
               od.bend_radius as bendRadius,
               ogd.glass_child as glassChild,
               ogd.glass_address as glassAddress,
            JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.color' )) AS color
               c.customer_abbreviation                               as customerAbbreviation,
               p.product_abbreviation                                as productAbbreviation,
               CONCAT(fc.process_id, '/', fc.technology_number)      as processId,
               o.create_time                                         as createTime,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
               p.remarks                                             as filmNumber,
               od.bend_radius                                        as bendRadius,
               ogd.glass_child                                       as glassChild,
               ogd.glass_address                                     as glassAddress,
               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
                 left join flow_card as fc on o.order_id = fc.order_id and
                                              od.order_number = fc.order_number
                 left join sd.product as p on p.id=od.product_id
                 left join sd.product as p on p.id = od.product_id
                 left join sd.customer as c on c.id = o.customer_id
                 left join sd.product_detail as pd  on pd.prod_id=p.id and pd.sort_num=od.order_number
        left join sd.order_glass_detail ogd on ogd.order_id=o.order_id and ogd.order_number=od.order_number and ogd.technology_number=fc.technology_number
                 left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
                 left join sd.order_glass_detail ogd
                           on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
                              ogd.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
        group by od.order_number,ogd.technology_number, width, height
        group by od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
    </select>
@@ -1462,114 +1506,181 @@
    </select>
    <select id="selectPrintNotMergeMp">
        select * from ((select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               fc.order_number,
                               ogd.technology_number,
                               ogd.glass_address,
                               sum(od.quantity)         as quantity,
                               sum(ogd.total_area)      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 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
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id, ogd.technology_number
                        order by fc.process_id, ogd.technology_number)
        select *
        from ((select fc.id,
                      fc.order_id,
                      fc.process_id,
                      o.customer_name,
                      o.project,
                      fc.order_number,
                      ogd.technology_number,
                      ogd.glass_address,
                      sum(od.quantity)         as quantity,
                      sum(ogd.total_area)      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 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
               where fc.order_id = #{orderId}
               GROUP BY fc.process_id, ogd.technology_number
               order by fc.process_id, ogd.technology_number)
                       UNION
              UNION
                       (select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               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,
                               od.product_name,
                               ogdss.concatenated_glass_child as glass_child,
                               fc.founder,
                               date(fc.splitFrame_time) as splitFrame_time,
                               fc.print_status,
                               processed_part as  process
              (select fc.id,
                      fc.order_id,
                      fc.process_id,
                      o.customer_name,
                      o.project,
                      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,
                      od.product_name,
                      ogdss.concatenated_glass_child                                   as glass_child,
                      fc.founder,
                      date(fc.splitFrame_time)                                         as splitFrame_time,
                      fc.print_status,
                      processed_part                                                   as process
                        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
                                              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
                                 left join (
                            select
                                ogds.order_id,
                                ogds.order_number,
                                GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
                                ogds.glass_child,
                                GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
                                SUBSTRING(process, LOCATE('夹胶', process)) AS processed_part
                            from sd.order_glass_detail as ogds
                            where ogds.order_id = #{orderId} and LOCATE('夹胶',ogds.process)>0
                            GROUP BY order_id, order_number,ogds.group
                        ) as ogdss on fc.order_id=ogdss.order_id and ogdss.order_number=fc.order_number
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id,ogdss.technology_number
                        order by fc.process_id)
                       UNION
                       (select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               ogdss.technology_number,
                               ogd.glass_address,
                               ROUND(sum(fc.quantity)/(count(DISTINCT fc.technology_number)))         as quantity,
                               sum(ogd.total_area)      as total_area,
                               od.product_name,
                               ogdss.concatenated_glass_child as glass_child,
                               fc.founder,
                               date(fc.splitFrame_time) as splitFrame_time,
                               fc.print_status,
                               processed_part as process
               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
                                     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
                        left join (select ogds.order_id,
                                          ogds.order_number,
                                          GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
                                          ogds.glass_child,
                                          GROUP_CONCAT(ogds.glass_child SEPARATOR ' ')      AS concatenated_glass_child,
                                          SUBSTRING(process, LOCATE('夹胶', process))       AS processed_part
                                   from sd.order_glass_detail as ogds
                                   where ogds.order_id = #{orderId}
                                     and LOCATE('夹胶', ogds.process) > 0
                                   GROUP BY order_id, order_number, ogds.group) as ogdss
                                  on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
               where fc.order_id = #{orderId}
               GROUP BY fc.process_id, ogdss.technology_number
               order by fc.process_id)
              UNION
              (select fc.id,
                      fc.order_id,
                      fc.process_id,
                      o.customer_name,
                      o.project,
                      ogdss.technology_number,
                      ogd.glass_address,
                      ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
                      sum(ogd.total_area)                                              as total_area,
                      od.product_name,
                      ogdss.concatenated_glass_child                                   as glass_child,
                      fc.founder,
                      date(fc.splitFrame_time)                                         as splitFrame_time,
                      fc.print_status,
                      processed_part                                                   as process
                        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
                                              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
                                 left join (
                            select
                                ogds.order_id,
                                ogds.order_number,
                                GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
                                ogds.glass_child,
                                GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
                                SUBSTRING(pds.process, LOCATE('中空', pds.process)) AS processed_part
                            from sd.order_glass_detail as ogds
                                     left join sd.order_detail as ods on ods.order_id=ogds.order_id and ods.order_number=ogds.order_number
                                     left join sd.product_detail as pds on pds.prod_id=ods.product_id and pds.glass_sort=ogds.technology_number
                            where ogds.order_id = #{orderId}
                            GROUP BY order_id, order_number
                        ) as ogdss on fc.order_id=ogdss.order_id and ogdss.order_number=fc.order_number
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id
                        order by fc.process_id)
               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
                                     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
                        left join (select ogds.order_id,
                                          ogds.order_number,
                                          GROUP_CONCAT(pds.glass_sort SEPARATOR '')           AS technology_number,
                                          ogds.glass_child,
                                          GROUP_CONCAT(ogds.glass_child SEPARATOR ' ')        AS concatenated_glass_child,
                                          SUBSTRING(pds.process, LOCATE('中空', pds.process)) AS processed_part
                                   from sd.order_glass_detail as ogds
                                            left join sd.order_detail as ods
                                                      on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
                                            left join sd.product_detail as pds on pds.prod_id = ods.product_id and
                                                                                  pds.glass_sort =
                                                                                  ogds.technology_number
                                   where ogds.order_id = #{orderId}
                                   GROUP BY order_id, order_number) as ogdss
                                  on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
               where fc.order_id = #{orderId}
               GROUP BY fc.process_id
               order by fc.process_id)) AS combined_results
        where process is not null
          and process != ""
    </select>
                      ) AS combined_results where process is not null and process!=""
    <select id="getRepairPrintCustomDataSemi">
        select o.order_id                                            as orderId,
               o.project,
               o.customer_id                                         as customerId,
               o.customer_name                                       as customerName,
               o.order_type                                          as orderType,
               o.order_classify                                      as orderClassify,
               o.batch,
               o.icon,
               o.pack_type                                           as packType,
               o.delivery_date                                       as deliveryDate,
               o.al_type                                             as alType,
               o.money,
               contract_id                                           as contractId,
               customer_batch                                           customerBatch,
               contacts,
               o.delivery_address                                    as deliveryAddress,
               od.processing_note                                    as processingNote,
               round(ogd.child_width)                                as width,
               round(ogd.child_height)                               as height,
               pl.patch_num                                          as quantity,
               pl.order_sort                                         as orderNumber,
               pl.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
               od.product_name                                       as productName,
               od.edging_type                                        as edgingType,
               p.remarks,
               c.customer_abbreviation                               as customerAbbreviation,
               p.product_abbreviation                                as productAbbreviation,
               CONCAT(fc.process_id, '/', fc.technology_number)      as processId,
               o.create_time                                         as createTime,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
               p.remarks                                             as filmNumber,
               od.bend_radius                                        as bendRadius,
               ogd.glass_child                                       as glassChild,
               ogd.glass_address                                     as glassAddress,
               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
                 left join flow_card as fc on o.order_id = fc.order_id and
                                              od.order_number = fc.order_number
                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
                 left join sd.product as p on p.id = od.product_id
                 left join sd.customer as c on c.id = o.customer_id
                 left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
                 left join sd.order_glass_detail ogd
                           on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
                              ogd.technology_number = fc.technology_number
        where pl.process_id = #{processId}
          and pl.technology_number = #{technologyNumber}
          and pl.reporting_work_id = #{reportingWorkId}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, pl.order_sort)
    </select>
</mapper>