chenlu
2024-07-18 9ff9b247ca85699610e04712fec92749757a8456
返工补片流程卡打印修改
14个文件已修改
309 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintRepairCustomLabel.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintRepairProcess.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintReplenishFlowCard.vue 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/rework/PrintReworkCustomLabel.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/rework/PrintReworkFlowCard.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -39,7 +39,6 @@
if (like == '') {
  like = null
}
console.log(like)
data.value.printList = JSON.parse(props.printList)
let flowCardCount = data.value.printList.length
onMounted(() => {
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -40,6 +40,20 @@
  like = null
}
data.value.printList = JSON.parse(props.printList)
//去除重复对象
// let uniqueObjects = {};
// // 遍历原始数据数组
// data.value.printList.forEach(obj => {
//   // 构建一个唯一键,例如 'NG24071502A001_1'
//   let key = `${obj.process_id}_${obj.technology_number}_${obj.order_number}`;
//
//   // 如果该键不存在于 uniqueObjects 中,则将该对象添加到 uniqueObjects 中
//   if (!uniqueObjects[key]) {
//     uniqueObjects[key] = obj;
//   }
// });
// data.value.printList = Object.values(uniqueObjects);
let flowCardCount = data.value.printList.length
onMounted(() => {
  request.post(`/processCard/getSelectPrintingRefund/${merge}/${like}`, data.value).then((res) => {
north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue
@@ -42,7 +42,7 @@
data.value.printList = JSON.parse(props.printList)
let flowCardCount = data.value.printList.length
onMounted(() => {
  request.post(`/processCard/getSelectPrintingRefund/${merge}/${like}`, data.value).then((res) => {
  request.post(`/processCard/getSelectPrinRework/${merge}/${like}`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.data)
          //处理单片厚度
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintRepairCustomLabel.vue
@@ -43,7 +43,6 @@
          for (let i = 0; i < list.value.length; i++) {
            let count= list.value[i].data.length
            for (let j = 0; j < count; j++) {
              console.log(list.value[i].data[j])
              for (let k = 0; k < list.value[i].data[j].quantity; k++){
                lastList.value.push(list.value[i].data[j])
              }
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintRepairProcess.vue
@@ -41,7 +41,6 @@
            });
          }
          let technologyNumberMerge = printMerge.split('').join(',');
          console.log(technologyNumberMerge)
          produceList.value[0].detail[0].technologyNumberMerge = technologyNumberMerge
          const s01Values = [];
          for (let i = 0; i < produceList.value.length; i++) {
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintReplenishFlowCard.vue
@@ -192,6 +192,7 @@
  request.post(`/Replenish/selectPrint/${startTime}/${endTime}`, filterData.value).then((res) => {
    if (res.code == 200) {
      xGrid.value.loadData(res.data.data)
      titleSelectJson.value.dataType = res.data.type
      gridOptions.loading = false
@@ -259,49 +260,58 @@
      title: t('order.orderId'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,
      width:110
    },
    {
      field: 'process_id',
      title: t('processCard.processId'),
      showOverflow: "ellipsis",
      sortable: true,
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,
      width:140
    },
    {
      field: 'customer_name',
      title: t('customer.customerName'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,
      width:110
    },
    {
      field: 'project',
      title:  t('order.project'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,
      width:110
    },
    {
      field: 'order_number',
      title:  t('order.OrderNum'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,
      width:100
    },
    {field: 'technology_number', title: t('processCard.technologyNumber'), showOverflow: "ellipsis"},
    {field: 'glass_address', title: t('processCard.glassAddress'),},
    {field: 'patch_num', title:  t('order.quantity'),},
    {field: 'patch_area', title:  t('order.area'),},
    {field: 'responsible_team', title:  t('reportingWorks.responsibleTeam'),},
    {field: 'responsible_equipment', title:  t('reportingWorks.responsibleEquipment'),},
    {field: 'responsible_personnel', title:  t('reportingWorks.responsiblePersonnel'),},
    {field: 'patch_type', title:  t('reportingWorks.breakageType'),},
    {field: 'patch_reason', title:  t('reportingWorks.breakageReason'),},
    {field: 'patch_processes', title:  t('reportingWorks.responsibleProcess'),},
    {field: 'product_name', title: t('order.product'),},
    {field: 'glass_child', title: t('reportingWorks.glassChild'),},
    {field: 'technology_number', title: t('processCard.technologyNumber'), showOverflow: "ellipsis",
      width:90},
    {field: 'glass_address', title: t('processCard.glassAddress'),
      width:110},
    {field: 'patch_num', title:  t('order.quantity'),
    width:70},
    {field: 'patch_area', title:  t('order.area'),width:80},
    {field: 'responsible_team', title:  t('reportingWorks.responsibleTeam'),width:110},
    {field: 'responsible_equipment', title:  t('reportingWorks.responsibleEquipment'),width:110},
    {field: 'responsible_personnel', title:  t('reportingWorks.responsiblePersonnel'),width:110},
    {field: 'patch_type', title:  t('reportingWorks.breakageType'),width:110},
    {field: 'patch_reason', title:  t('reportingWorks.breakageReason'),width:110},
    {field: 'patch_processes', title:  t('reportingWorks.responsibleProcess'),width:110},
    {field: 'product_name', title: t('order.product'),width:110},
    {field: 'glass_child', title: t('reportingWorks.glassChild'),width:110},
  ],//表头按钮
  toolbarConfig: {
@@ -325,7 +335,7 @@
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        const List = ["quantity",'total_area',]
        const List = ["patch_num",'patch_area',]
        if (List.includes(column.field)) {
          return footSum(data, column.field)
        }
@@ -650,8 +660,8 @@
    </el-button>
    &nbsp;&nbsp;
    <el-input clearable :placeholder="$t('processCard.mergePrinting')" v-model="printMerge" style="width: 90px"></el-input>
    &nbsp;
<!--    <el-input clearable :placeholder="$t('processCard.mergePrinting')" v-model="printMerge" 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">
      <el-option
@@ -682,8 +692,7 @@
    <vxe-grid
        ref="xGrid"
        class="mytable-scrollbar"
        height="600px"
        max-height="100%"
        height="100%"
        v-bind="gridOptions"
        v-on="gridEvents"
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue
@@ -47,7 +47,6 @@
        }
      }
      console.log(labelList.value)
    } else {
      ElMessage.warning(res.msg)
      router.push("/login")
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -29,7 +29,6 @@
    request.post(`/processCard/getSelectPrintLabel/${projectNo.value}`).then((res) => {
      if (res.code == 200) {
        labelList.value = deepClone(res.data.data)
        console.log(labelList.value)
      } else {
        ElMessage.warning(res.msg)
        router.push("/login")
north-glass-erp/northglass-erp/src/views/pp/rework/PrintReworkCustomLabel.vue
@@ -43,7 +43,6 @@
          for (let i = 0; i < list.value.length; i++) {
            let count= list.value[i].data.length
            for (let j = 0; j < count; j++) {
              console.log(list.value[i].data[j])
              for (let k = 0; k < list.value[i].data[j].quantity; k++){
                lastList.value.push(list.value[i].data[j])
              }
north-glass-erp/northglass-erp/src/views/pp/rework/PrintReworkFlowCard.vue
@@ -190,7 +190,6 @@
  let endTime = form.date1[1]
// 第一次加载查询
  request.post(`/rework/selectPrint/${startTime}/${endTime}`, filterData.value).then((res) => {
    if (res.code == 200) {
      xGrid.value.loadData(res.data.data)
      titleSelectJson.value.dataType = res.data.type
@@ -654,8 +653,8 @@
        type="primary" @click="getWorkOrder">{{ $t('basicData.search') }}
    </el-button>
    &nbsp;&nbsp;
    <el-input clearable :placeholder="$t('processCard.mergePrinting')" v-model="printMerge" style="width: 90px"></el-input>
<!--    &nbsp;&nbsp;-->
<!--    <el-input clearable :placeholder="$t('processCard.mergePrinting')" v-model="printMerge" 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">
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -283,7 +283,7 @@
        }
    }
    @ApiOperation("打印流程卡补片返工数据查询接口")
    @ApiOperation("打印流程卡补片数据查询接口")
    @PostMapping("/getSelectPrintingRefund/{printMerge}/{printLike}")
    public Result getSelectPrintingRefund(
            @PathVariable String printMerge,
@@ -291,4 +291,13 @@
            @RequestBody Map<String, Object> object) {
        return Result.seccess(flowCardService.getSelectPrintingRefundSv(object,printMerge,printLike));
    }
    @ApiOperation("打印流程卡返工数据查询接口")
    @PostMapping("/getSelectPrinRework/{printMerge}/{printLike}")
    public Result getSelectPrinRework(
            @PathVariable String printMerge,
            @PathVariable String printLike,
            @RequestBody Map<String, Object> object) {
        return Result.seccess(flowCardService.getSelectPrinReworkSv(object,printMerge,printLike));
    }
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -127,4 +127,12 @@
    List<Map<String, String>> getPrimaryListRefund(String processId, String technologyNumber, Integer orderNumber);
    List<Map<String, Object>> getDetailListLikeRefund(String processId, String technologyNumber, Integer orderNumber);
    List<Map<String, Object>> getPrimaryListRework(String processId, String technologyNumber, Integer orderNumber);
    List<Map<String, Object>> getDetailListRework(String processId, Integer technologyNumber, Integer orderNumber);
    List<Map<String, Object>> getPrimaryListMergeRework(String processId, String printMerge, Integer orderNumber);
    List<Map<String, Object>> getDetailListLikeRework(String processId, String printMerge, Integer orderNumber);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -476,6 +476,58 @@
        printLike=null;
        return map;
    }
    public Map<String, Object> getSelectPrinReworkSv(Map<String, Object> object, String printMerge, String printLike) {
        if (printMerge == null){
            printMerge= "";
        }
        if (printLike == null){
            printLike= "";
        }
        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) {
                Map<String, Object> itemmap = new HashMap<>();
                //流程卡表头表尾数据
                //是否传入合并层数
                if (printMerge.equals("")||printMerge.equals("null") ){
                    itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber()));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber());
                    itemmap.put("detailList", detailList);
                }
                else {
                    //流程卡明细数据
                    if (printLike.equals("")||printLike.equals("null") ){
                        itemmap.put("detail", flowCardMapper.getPrimaryListMergeRework(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRework(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber());
                        itemmap.put("detailList", detailList);
                    }
                }
                //工艺流程
                List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                itemmap.put("processList", processList);
                //  itemmap.put("numberList", numberList);
                list.add(itemmap);
            }
        }
        map.put("data", list);
        //初始化值
        printLike=null;
        return map;
    }
}
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -767,7 +767,8 @@
               pl.patch_reason,
               pl.patch_processes,
               od.product_name,
               ogd.glass_child
               ogd.glass_child,
               fc.print_status
        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
@@ -777,9 +778,9 @@
                 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}
        GROUP BY fc.process_id, ogd.technology_number
        order by pl.id,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">
@@ -931,9 +932,9 @@
                 left join rework 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}
        where pl.create_time between #{selectTime1} and #{selectTime2} and pl.review_status>0
        GROUP BY fc.process_id, ogd.technology_number
        order by pl.id,fc.process_id, ogd.technology_number
        order by pl.id desc,fc.process_id, ogd.technology_number
    </select>
    <select id="getDetailListLike">
@@ -970,7 +971,7 @@
               od.product_name,
               o.processing_note,
               fc.process_id,
               SUM(od.quantity)                                as quantity,
               pl.patch_num                                as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               #{technologyNumber}                             as technologyNumber,
@@ -994,6 +995,7 @@
              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
@@ -1002,7 +1004,7 @@
    <select id="getDetailListRefund">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
               od.quantity,
               (pl.patch_num) as quantity,
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
@@ -1018,6 +1020,7 @@
                              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
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and position(fc.technology_number in #{technologyNumber})
@@ -1034,7 +1037,7 @@
               od.product_name,
               o.processing_note,
               fc.process_id,
               SUM(od.quantity)                                as quantity,
               pl.patch_num                                as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               #{technologyNumber}                             as technologyNumber,
@@ -1058,6 +1061,7 @@
              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 fc.technology_number = #{technologyNumber}
@@ -1067,7 +1071,7 @@
    <select id="getDetailListLikeRefund">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
               od.quantity,
               pl.patch_num as quantity,
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
@@ -1083,6 +1087,140 @@
                              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
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number,fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
    </select>
    <select id="getPrimaryListRework">
        select o.customer_name,
               o.project,
               ogd.process,
               od.edging_type,
               ogd.glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
               pl.rework_num                                as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
        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 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}
        group by fc.process_id, fc.technology_number
    </select>
    <select id="getDetailListRework">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
               (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,
               od.other_columns,
               round(ogd.child_width) as width,
               round(ogd.child_height) as height,
               pd.separation,
               fc.technology_number
        from flow_card as fc
                 left join sd.order_glass_detail as ogd
                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
                              fc.technology_number = ogd.technology_number
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.product_detail as pd on pd.prod_id=od.product_id and pd.glass_sort=ogd.technology_number
                 left join 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})
        group by fc.process_id, fc.order_number,fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
    </select>
    <select id="getPrimaryListMergeRework">
        select o.customer_name,
               o.project,
               ogd.process,
               od.edging_type,
               ogdc.concatenated_glass_child as glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
               pl.rework_num                                as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                   as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
        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 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,
               round(ogd.total_area, 2)                                     as total_area,
               od.perimeter,
               od.bend_radius,
               concat(od.processing_note,od.remarks) as remarks,
               od.other_columns,
               round(ogd.child_width) as width,
               round(ogd.child_height) as height,
               pd.separation,
               fc.technology_number
        from flow_card as fc
                 left join sd.order_glass_detail as ogd
                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
                              fc.technology_number = ogd.technology_number
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.product_detail as pd on pd.prod_id=od.product_id and pd.glass_sort=ogd.technology_number
                 left join 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})