廖井涛
2024-06-19 a944fc9a5bfaac1e2367f6ce398f09eafbcb53a5
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
1个文件已添加
10个文件已修改
549 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/router/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi.vue 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/QualityInspectionReview.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/router/index.js
@@ -373,6 +373,11 @@
              component: () => import('../views/pp/processCard/PrintCustomLabel.vue'),
            },
            {
              path: 'printCustomLabelSemi',
              name: 'printCustomLabelSemi',
              component: () => import('../views/pp/processCard/PrintCustomLabelSemi.vue'),
            },
            {
              path: 'productionScheduling',
              name: 'productionScheduling',
              component: () => import('../views/pp/processCard/ProductionScheduling.vue'),
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel.vue
@@ -29,28 +29,25 @@
data.value.printList = JSON.parse(route.query.printList)
const type = route.query.type
const faceOrientation = route.query.faceOrientation
const lableType = route.query.lableType
onMounted(() => {
      request.post(`/processCard/getSelectPrintCustomLabel/${type}`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.title)
          list.value = deepClone(res.data.data)
          const quantity = res.data.quantity
          console.log(quantity)
          const data = produceList.value[0].value
          dataList = JSON.parse(`[${data}]`);
          labelList = dataList[0]
          for (let i = 0; i < list.value.length; i++) {
            let count= list.value[i].quantity
            for (let j = 0; j < quantity; j++) {
              lastList.value.push(list.value[i])
            let count= list.value[i].data.length
            for (let j = 0; j < count; j++) {
              for (let k = 0; k < list.value[i].data[j].quantity; k++){
                lastList.value.push(list.value[i].data[j])
              }
            }
          }
          console.log(lastList.value)
          console.log(labelList)
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
@@ -58,13 +55,14 @@
      })
    }
)
// 打印方法
const printFlowCard = () => {
  // 需要打印的局部区域赋予"print-wrap"的id
  let el = document.getElementById("printFlowCard");
  let el = document.getElementById("print");
  let doc = document;
  let body = doc.body || doc.getElementsByTagName("body")[0];
  let printId = "print-" + Date.now();
@@ -101,15 +99,16 @@
<template>
  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>
  <div id="printFlowCard">
    <div v-for="(item1,id) in lastList" id="entirety">
      <div class="row4">{{faceOrientation}}</div>
      <div v-for="(item,id) in labelList" class="contentRow">
        <div class="row1">{{ item.title }}:</div>
        <div class="row2">{{ item1.order[item.name] }}</div>
  <div class="printFlowCard_finished" id="print">
    <div v-for="(item1,id) in lastList"   class="entirety_finished">
        <div class="row4">{{faceOrientation}}</div>
        <div v-for="(item,id) in labelList"  class="contentRow">
          <div class="row1">{{ item.title }}:</div>
          <div class="row2">{{ item1.order[item.name] }}</div>
      </div>
      <div class="row3"><label>W:</label>{{ item1.width }} <label>H:</label>{{ item1.height }}</div>
        </div>
        <div class="row3"><label>W:</label>{{ item1.width }} <label>H:</label>{{ item1.height }}</div>
    </div>
  </div>
@@ -121,31 +120,41 @@
  padding: 0;
}
body{
  overflow: hidden;
}
#printButton {
  margin-top: -20px;
  width: 100px;
}
#printFlowCard {
/*成*/
.printFlowCard_finished {
  flex-wrap: wrap;
  font-size: 20px;
  margin-left: 5px;
  margin-top: 15px;
  font-size: 16px;
  margin-left: 6px;
  display: flex;
  flex-direction:column;
}
#entirety {
/*成*/
.entirety_finished {
  display: flex;
  text-align: center;
  width: 250px;
  margin-bottom: 10px;
  flex-direction:column;
}
.row3{
  text-align: center;
}
.contentRow{
  display: flex;
  text-align: center;
  border: red solid 1px;
}
label{
@@ -153,6 +162,7 @@
}
.row1{
  width: 20%;
  font-weight: bolder;
}
@@ -167,14 +177,19 @@
@page {
  size: auto;  /* auto is the initial value */
  margin: 7mm 2mm 2mm 0mm  /* this affects the margin in the printer settings */
  margin: 12mm 4mm 0mm 2mm;  /* this affects the margin in the printer settings */
}
@media print {
  div {
    page-break-inside: avoid;
  }
  .entirety_finished {
    page-break-before: always;
    page-break-after: always;
  }
}
</style>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi.vue
New file
@@ -0,0 +1,192 @@
<script setup>
import request from "@/utils/request"
import {ElDatePicker, ElMessage} from "element-plus"
import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue"
import {Search} from "@element-plus/icons-vue"
import {useRouter} from 'vue-router'
import {changeFilterEvent, filterChanged} from "@/hook"
import {useI18n} from 'vue-i18n'
import deepClone from "@/utils/deepClone";
//语言获取
const {t} = useI18n()
let router = useRouter()
let produceList = ref([])
let labelList = ref([])
let titleList = ref([])
let dataList = ref([])
let list = ref([])
let lastList=ref([])
let filterData = ref({})
const data = ref({
  printList: []
})
const {currentRoute} = useRouter()
const route = currentRoute.value
data.value.printList = JSON.parse(route.query.printList)
const type = route.query.type
const faceOrientation = route.query.faceOrientation
const lableType = route.query.lableType
onMounted(() => {
      request.post(`/processCard/getSelectPrintCustomLabel/${type}`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.title)
          list.value = deepClone(res.data.data)
          const data = produceList.value[0].value
          dataList = JSON.parse(`[${data}]`);
          labelList = dataList[0]
          for (let i = 0; i < list.value.length; i++) {
            let count= list.value[i].data.length
            for (let j = 0; j < count; j++) {
              for (let k = 0; k < list.value[i].data[j].quantity; k++){
                lastList.value.push(list.value[i].data[j])
              }
            }
          }
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
        }
      })
    }
)
// 打印方法
const printFlowCard = () => {
  // 需要打印的局部区域赋予"print-wrap"的id
  let el = document.getElementById("print");
  let doc = document;
  let body = doc.body || doc.getElementsByTagName("body")[0];
  let printId = "print-" + Date.now();
  // 创建无副作用的打印容器(因不确定页面的打印元素有无其它样式)
  let content = doc.createElement("div");
  content.id = printId;
  // 样式控制与打印无关的元素隐藏
  let style = doc.createElement("style");
  style.innerHTML =
      "body>#" +
      printId +
      "{display:none}@media print{body>:not(#" +
      printId +
      "){display:none !important}body>#" +
      printId +
      "{display:block;padding-top:1px}}";
  //
  content.innerHTML = el.outerHTML;
  // // console.log("el.outerHTML", el.outerHTML);
  body.appendChild(style);
  // 与style元素设置的样式相配合
  // 把打印内容的元素添加到body(作为body的子元素,可用body的子选择器 '>' 控制打印样式)
  body.appendChild(content);
  setTimeout(() => {
    window.print();
    body.removeChild(content);
    body.removeChild(style);
  }, 20);
}
</script>
<template>
  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>
  <div class="printFlowCard_semi" id="print">
    <div v-for="(item1,id) in lastList"   class="entirety_semi">
        <div class="row4">{{faceOrientation}}</div>
        <div v-for="(item,id) in labelList"  class="contentRow">
          <div class="row1">{{ item.title }}:</div>
          <div class="row2">{{ item1.order[item.name] }}</div>
        </div>
        <div class="row3"><label>W:</label>{{ item1.width }} <label>H:</label>{{ item1.height }}</div>
    </div>
  </div>
</template>
<style scoped>
* {
  margin: 0;
  padding: 0;
}
body{
  overflow: hidden;
}
#printButton {
  margin-top: -20px;
  width: 100px;
}
/*半*/
.printFlowCard_semi {
  flex-wrap: wrap;
  font-size: 10px;
  display: flex;
}
/*半*/
.entirety_semi {
  width: 45%;
  display: flex;
  text-align: center;
  flex-direction:column;
  margin: 8px;
}
.row3{
  text-align: center;
}
.contentRow{
  display: flex;
  text-align: center;
}
label{
  font-weight: bolder;
}
.row1{
  width: 30%;
  font-weight: bolder;
}
.row4{
  font-weight: bolder;
  text-align: right;
}
.row1,.row2{
  text-align: left;
}
@page {
  size: auto;  /* auto is the initial value */
  margin: 0mm 2mm 2mm 2mm;  /* this affects the margin in the printer settings */
}
@media print {
  div {
    page-break-inside: avoid;
  }
}
</style>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -86,6 +86,19 @@
  },
]
//室内室外面
const lableType = ref('1')
const lableTypeOptions = [
  {
    value: '1',
    label: '成品标签',
  },
  {
    value: '2',
    label: '半品标签',
  },
]
//打印类型
const printType = ref()
@@ -181,14 +194,6 @@
      filterMethod: filterChanged
    },
    {
      field: 'order_number',
      title: '序号',
      showOverflow: "ellipsis",
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'customer_name',
      title: t('customer.customerName'),
      filters: [{data: ''}],
@@ -216,7 +221,7 @@
    buttons: [
      {code: 'print', name: t('processCard.print'), status: 'primary'},
      {code: 'printLabel', name: t('processCard.printLabel'), status: 'primary'},
      // {code: 'customLabel', name: '自定义标签打印', status: 'primary'},
      {code: 'customLabel', name: '自定义标签打印', status: 'primary'},
    ],
    // import: false,
@@ -249,6 +254,7 @@
    selectRecords = $grid.getCheckboxRecords()
    let type=printType.value
    let faceOrientation=stateValue.value
    let lableTypes=lableType.value
    if ($grid) {
      switch (code) {
        case 'print': {
@@ -329,7 +335,15 @@
            }
          }
          router.push({path: '/main/processCard/PrintCustomLabel', query: {type:type,faceOrientation:faceOrientation,  printList: JSON.stringify(selectRecords)}})
          if (lableTypes==1){
            router.push({path: '/main/processCard/PrintCustomLabel', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
          }
          else {
            router.push({path: '/main/processCard/PrintCustomLabelSemi', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
          }
          break
        }
@@ -474,23 +488,33 @@
<template>
  <div class="main-div-customer">
<!--    <label>标签样式:</label>-->
<!--    <el-select v-model="printType" clearable default-value="default_city" style="width: 120px">-->
<!--      <el-option-->
<!--          v-for="item in titleSelectJson['dataType']"-->
<!--          :key="item.id"-->
<!--          :label="item.name"-->
<!--          :value="item.name"-->
<!--      />-->
<!--    </el-select>-->
<!--    <el-select v-model="stateValue" class="m-2" placeholder="室内外面" style="width: 140px">-->
<!--      <el-option-->
<!--          v-for="item in stateOptions"-->
<!--          :key="item.value"-->
<!--          :label="item.label"-->
<!--          :value="item.value"-->
<!--      />-->
<!--    </el-select>-->
    <label>标签样式:</label>
    <el-select v-model="printType" clearable default-value="default_city" style="width: 120px">
      <el-option
          v-for="item in titleSelectJson['dataType']"
          :key="item.id"
          :label="item.name"
          :value="item.name"
      />
    </el-select>
    &nbsp;
    <el-select v-model="lableType" class="m-2" placeholder="成品标签" style="width: 140px">
      <el-option
          v-for="item in lableTypeOptions"
          :key="item.value"
          :label="item.label"
          :value="item.value"
      />
    </el-select>
    &nbsp;
    <el-select v-model="stateValue" class="m-2" placeholder="室内外面" style="width: 140px">
      <el-option
          v-for="item in stateOptions"
          :key="item.value"
          :label="item.label"
          :value="item.value"
      />
    </el-select>
    <vxe-grid
        ref="xGrid"
        class="mytable-scrollbar"
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -12,7 +12,7 @@
let router = useRouter()
let produceList = ref([])
let labelList = ref([])
let list = ref()
let list = ref([])
const data = ref({
@@ -29,13 +29,19 @@
        if (res.code == 200) {
          produceList.value = deepClone(res.data.data)
          console.log(produceList.value)
          for (let i = 0; i < produceList.value.length; i++) {
           let count= produceList.value[i].quantity
           let count= produceList.value[i].data.length
            for (let j = 0; j < count; j++) {
              labelList.value.push(produceList.value[i])
              for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
                labelList.value.push(produceList.value[i].data[j])
              }
            }
          }
          console.log(labelList.value)
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
@@ -90,20 +96,39 @@
<template>
  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>
  <div id="printFlowCard" >
<!--    <div id="entirety" v-for="(items,id) in produceList" >
      <div v-for="(item,index) in items.data" :key="index">
        <div class="row1">{{ item.customer_name }}</div>
        <div  class="row2">
          <span>{{ item.order_id }}</span>
          <span>{{ item.type_name }}</span>
        </div>
        <div class="row3">{{item.child_width}}*{{item.child_height}}={{item.quantity}}</div>
        <div class="row5">
          <span>{{item.project}}</span>
          <span>{{ item.remarks }}</span>
        </div>
        <div class="row6">
          <span>{{item.glass_child}}</span>
          <span>{{item.processing_note}}</span>
        </div>
      </div>
    </div>-->
    <div id="entirety" v-for="(item,id) in labelList" >
      <div class="row1">{{ item.customer_name }}</div>
      <div  class="row2">
        <span>{{ item.order_id }}</span>
        <span>{{ item.type_name }}</span>
      </div>
      <div class="row3">{{item.child_width}}*{{item.child_height}}={{item.quantity}}</div>
      <div class="row5">
        <span>{{item.project}}</span>
        <span>{{ item.remarks }}</span>
      </div>
      <div class="row6">
        <span>{{item.glass_child}}</span>
        <span>{{item.processing_note}}</span></div>
        <div class="row1">{{ item.customer_name }}</div>
        <div  class="row2">
          <span>{{ item.order_id }}</span>
          <span>{{ item.type_name }}</span>
        </div>
        <div class="row3">{{item.child_width}}*{{item.child_height}}={{item.quantity}}</div>
        <div class="row5">
          <span>{{item.project}}</span>
          <span>{{ item.remarks }}</span>
        </div>
        <div class="row6">
          <span>{{item.glass_child}}</span>
          <span>{{item.processing_note}}</span>
        </div>
    </div>
  </div>
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
@@ -141,7 +141,7 @@
    {field: 'process_id', width: 140, title: t('processCard.processId') ,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'order_number', title: t('order.OrderNum') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },},
    {field: 'technology_number', title: t('processCard.technologyNumber') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },},
    {field: 'quantity', title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 80},
    {field: 'quantity', title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 80},
    {field: 'child_width', title: t('order.width'), },
    {field: 'child_height', title: t('order.height'), },
    {field: 'area', title: t('order.area') ,showOverflow:"ellipsis"},
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/QualityInspectionReview.vue
@@ -176,7 +176,19 @@
      total.dataTotal = res.data.total.total*1
      total.pageTotal= res.data.total.pageTotal
      pageTotal.value = res.data.total
      xGrid.value.loadData(res.data.data)
      produceList = deepClone(res.data.data)
      produceList.forEach(item => {
        if (item.damageDetails.qualityInsStatus === 2) {
          item.damageDetails.qualityInsStatus = '已质检';
        }
        else if (item.damageDetails.qualityInsStatus === 1){
          item.damageDetails.qualityInsStatus = '待质检';
        }
        else if (item.damageDetails.qualityInsStatus === 0){
          item.damageDetails.qualityInsStatus = '无需质检';
        }
      });
      xGrid.value.reloadData(produceList)
      gridOptions.loading = false
    } else {
      ElMessage.warning(res.msg)
@@ -395,8 +407,8 @@
                   size="small">
          {{ $t('basicData.edit') }}
        </el-button>
        <el-button v-if="row.damageDetails.qualityInsStatus===1" @click="getTableRow(row,'setType')" link type="primary" size="small">{{ $t('basicData.review') }}</el-button>
        <el-button v-else disabled @click="getTableRow(row,'setType')" link type="primary" size="small">{{ $t('basicData.review') }}</el-button>
        <el-button v-if="row.damageDetails.qualityInsStatus==='已质检'||row.damageDetails.qualityInsStatus==='无需质检'" disabled @click="getTableRow(row,'setType')" link type="primary" size="small">{{ $t('basicData.review') }}</el-button>
        <el-button v-else  @click="getTableRow(row,'setType')" link type="primary" size="small">{{ $t('basicData.review') }}</el-button>
      </template>
      <template #num1_filter="{ column, $panel }">
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue
@@ -116,7 +116,23 @@
    total.pageTotal= res.data.total.pageTotal
    pageTotal.value = res.data.total
    produceList = produceList.value.concat(deepClone(res.data.data))
    xGrid.value.reloadData(produceList)
    // 使用map方法来处理每个对象
    let modifiedCollection = produceList.map(item => {
      if (item.reviewedState === 1) {
        return { ...item, reviewedState: "已审核" };
      }
      else if (item.reviewedState === 0) {
        return { ...item, reviewedState: "未审核" };
      }
      else if (item.reviewedState === 2){
        return { ...item, reviewedState: "审核不通过" };
      }
      else {
        // 其他情况保持不变
        return item;
      }
    });
    xGrid.value.reloadData(modifiedCollection)
    gridOptions.loading = false
  } else {
    ElMessage.warning(res.msg)
@@ -136,7 +152,23 @@
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
      // 使用map方法来处理每个对象
      let modifiedCollection = produceList.map(item => {
        if (item.reviewedState === 1) {
          return { ...item, reviewedState: "已审核" };
        }
        else if (item.reviewedState === 0) {
          return { ...item, reviewedState: "未审核" };
        }
        else if (item.reviewedState === 2){
          return { ...item, reviewedState: "审核不通过" };
        }
        else {
          // 其他情况保持不变
          return item;
        }
      });
      xGrid.value.reloadData(modifiedCollection)
    }else{
      ElMessage.warning(res.msg)
    }
@@ -157,7 +189,24 @@
      total.dataTotal = res.data.total.total*1
      total.pageTotal= res.data.total.pageTotal
      pageTotal.value = res.data.total
      xGrid.value.loadData(res.data.data)
      produceList=res.data.data
      // 使用map方法来处理每个对象
      let modifiedCollection = produceList.map(item => {
        if (item.reviewedState === 1) {
          return { ...item, reviewedState: "已审核" };
        }
        else if (item.reviewedState === 0) {
          return { ...item, reviewedState: "未审核" };
        }
        else if (item.reviewedState === 2){
          return { ...item, reviewedState: "审核不通过" };
        }
        else {
          // 其他情况保持不变
          return item;
        }
      });
      xGrid.value.reloadData(modifiedCollection)
      gridOptions.loading = false
    } else {
      ElMessage.warning(res.msg)
@@ -203,7 +252,23 @@
      total.pageTotal=parseInt(res.data.total)
      pageNum.value=1
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
      // 使用map方法来处理每个对象
      let modifiedCollection = produceList.map(item => {
        if (item.reviewedState === 1) {
          return { ...item, reviewedState: "已审核" };
        }
        else if (item.reviewedState === 0) {
          return { ...item, reviewedState: "未审核" };
        }
        else if (item.reviewedState === 2){
          return { ...item, reviewedState: "审核不通过" };
        }
        else {
          // 其他情况保持不变
          return item;
        }
      });
      xGrid.value.reloadData(modifiedCollection)
      gridOptions.loading=false
    }else{
      ElMessage.warning(res.msg)
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -93,5 +93,7 @@
    List<Map<String, Object>> getCustomLabelDetailMp(String name, String form, String id, FlowCard flowCard);
    List<Order> getPrintCustomData(String orderId, Integer orderNumber);
    List<Order> getPrintCustomData(String processId, Integer technologyNumber);
    Integer getPrintLabelCount(String processId, Integer technologyNumber);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -257,16 +257,21 @@
    public Map<String, Object> getSelectPrintLabelSv(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) {
                Integer count=flowCard.getQuantity();
                for (int i = 0; i < count; i++) {
                    map.put("data", flowCardMapper.getPrintLabel(flowCard.getProcessId(), flowCard.getTechnologyNumber()));
                    System.out.println(flowCardMapper.getPrintLabel(flowCard.getProcessId(), flowCard.getTechnologyNumber()));
                }
               // Integer count=flowCardMapper.getPrintLabelCount(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                Map<String, Object> itemmap = new HashMap<>();
               // for (int i = 0; i < count; i++) {
                    itemmap.put("data", flowCardMapper.getPrintLabel(flowCard.getProcessId(), flowCard.getTechnologyNumber()));
                    list.add(itemmap);
                //}
            }
        }
        map.put("data", list);
        return map;
    }
@@ -293,12 +298,16 @@
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                map.put("data", flowCardMapper.getPrintCustomData(flowCard.getOrderId(),flowCard.getOrderNumber()));
                map.put("quantity", flowCard.getQuantity());
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber()));
                    list.add(itemmap);
            }
        }
       map.put("title", flowCardMapper.getPrintTitle(type));
        map.put("data", list);
        map.put("title", flowCardMapper.getPrintTitle(type));
        return map;
    }
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -615,7 +615,7 @@
               order_type,
               order_classify,
               batch,
               icon,
               o.icon,
               pack_type,
               delivery_date,
               al_type,
@@ -625,15 +625,23 @@
               contacts,
               delivery_address,
               od.processing_note,
               width,
               height,
               od.quantity
                width,
                height,
               od.quantity,
               od.order_number,
               fc.technology_number
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
        where o.order_id = #{orderId}
          and od.order_number = #{orderNumber}
        left join flow_card as fc on o.order_id = fc.order_id and
                                                    od.order_number = fc.order_number
        where fc.process_id = #{processId}
        and fc.technology_number=#{technologyNumber}
       group by od.order_number,width,height
    </select>
    <select id="getPrintLabelCount">
    </select>