wuyouming666
2025-03-04 f0968dbdfd956ae035cbc994ccb4eb374b6c8074
Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
57个文件已修改
1个文件已添加
18801 ■■■■■ 已修改文件
.gitignore 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/package-lock.json 15842 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcessStraight.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/SelectProcessCardDetail.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/TagStyleDesigner.vue 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/ar.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/en.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/ru.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/router/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/天津北玻.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/常州吉利.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/新疆恒鑫.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/金华天成.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/stockReport/MaterialOutboundReport.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/Optimize.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeMove.vue 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue 1530 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/RectRenderer.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/TagStyleController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/dto/sd/CustomerDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/entity/mm/MaterialLog.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/PatchLogMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/TagStyleService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/PatchLogMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -15,3 +15,6 @@
**/.idea/
../idea/*
**/target/
/north-glass-erp/erp.iml
/north-glass-erp/src/main
/north-glass-erp/src/test/test.iml
north-glass-erp/northglass-erp/package-lock.json
Diff too large
north-glass-erp/northglass-erp/package.json
@@ -25,6 +25,7 @@
    "vue-i18n": "^9.10.1",
    "vue-plugin-hiprint": "^0.0.56",
    "vue-router": "^4.2.4",
    "vue3-grid-layout": "^1.0.0",
    "vue3-print-nb": "^0.1.4",
    "vxe-pc-ui": "^4.0.78",
    "vxe-table": "^4.7.57",
north-glass-erp/northglass-erp/src/components/pp/PrintProcessStraight.vue
@@ -266,7 +266,7 @@
              æ—¶é—´ï¼š{{formattedTime}}
                
            </div>
            <div>{{itemFlow.rack}}
            <div><span v-if="item.detailList[0].merge===1">合</span>{{itemFlow.rack}}
              æµç¨‹å¡å·ï¼š {{
                itemFlow.process_id
              }}/{{ itemFlow.technologyNumber }} å…± {{ item.count }} æž¶
north-glass-erp/northglass-erp/src/components/pp/SelectProcessCardDetail.vue
@@ -297,6 +297,6 @@
.main-table{
  width: 100%;
  height: 600px;
  height: 540px;
}
</style>
north-glass-erp/northglass-erp/src/components/pp/TagStyleDesigner.vue
@@ -148,7 +148,7 @@
  {
    tid: '此面为室内面', title: '此面为室内面', data: '', type: 'text',
    options: {
      field: 'inner',
      field: '',
      testData: '',
      width:100,
      height: 16,
@@ -160,7 +160,7 @@
  {
    tid: '此面为室外面', title: '此面为室外面', data: '', type: 'text',
    options: {
      field: 'outside',
      field: '',
      testData: '',
      width:100,
      height: 16,
@@ -597,7 +597,7 @@
  {
    tid: 'custom1', title: '自定义1', data: '', type: 'text',
    options: {
      field: 'custom1',
      field: '',
      testData: '',
      width:270,
      height: 16,
@@ -609,7 +609,7 @@
  {
    tid: 'custom2', title: '自定义2', data: '', type: 'text',
    options: {
      field: 'custom2',
      field: '',
      testData: '',
      width:270,
      height: 16,
@@ -621,7 +621,7 @@
  {
    tid: 'custom3', title: '自定义3', data: '', type: 'text',
    options: {
      field: 'custom3',
      field: '',
      testData: '',
      width:270,
      height: 16,
@@ -633,7 +633,7 @@
  {
    tid: 'custom4', title: '自定义4', data: '', type: 'text',
    options: {
      field: 'custom4',
      field: '',
      testData: '',
      width:270,
      height: 16,
@@ -645,7 +645,7 @@
  {
    tid: 'custom5', title: '自定义5', data: '', type: 'text',
    options: {
      field: 'custom5',
      field: '',
      testData: '',
      width:270,
      height: 16,
@@ -962,6 +962,21 @@
}
const selectRecordsData = ref({
  printList: []
})
// ç›‘听打印次数事件
const printNumber = () => {
  selectRecordsData.value.printList = JSON.parse(props.list)
  request.post(`/tagStyle/updatePrintNumber`, selectRecordsData.value).then((res) => {
    if (res.code == 200 && res.data === true) {
    } else {
      ElMessage.warning(t('basicData.msg.saveFail'))
    }
  })
}
</script>
<template>
@@ -1053,8 +1068,8 @@
      destroy-on-close
      style="width: 80%;height:75% ">
    <template #header="{ close, titleId, titleClass }">
      <el-button @click="printOrder(2)" :icon="View" circle/>
      <el-button @click="printOrder(1)" :icon="Printer" circle/>
      <el-button @click="printOrder(2);printNumber()" :icon="View" circle/>
      <el-button @click="printOrder(1);printNumber()" :icon="Printer" circle/>
    </template>
    <print-custom-label id="childLabel"
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
@@ -171,8 +171,8 @@
              <tr v-if="index===0">
                <th style="width: 6%;font-weight: bold;">序</th>
                <th style="width: 15%;font-weight: bold;" >楼层编号</th>
                <th style="width: 20%;font-weight: bold;" colspan="3">宽X高</th>
                <th style="width: 12%;font-weight: bold;">数量</th>
                <th style="width: 25%;font-weight: bold;" colspan="3">宽X高</th>
                <th style="width: 8%;font-weight: bold;">数量</th>
                <th style="width: 12%;font-weight: bold;">面积</th>
                <th style="width: 17%;font-weight: bold;" colspan="2">加工要求</th>
              </tr>
@@ -189,9 +189,9 @@
                <td>{{items.orderNumber}}</td>
                <td>{{items.buildingNumber}}</td>
                <td colspan="3" style="font-size: 20px;font-weight: bold;" v-if="items.otherColumns?.S02">{{items.otherColumns?.S02}}</td>
                <td colspan="3" style="font-size: 20px;font-weight: bold;" v-else-if="items.differentSize===1 && items.bendRadius==null">
                <td colspan="3" style="font-size: 17px;white-space:nowrap;font-weight: bold;" v-else-if="items.differentSize===1 && items.bendRadius==null">
                  <template v-for="(orderGlassDetail, index1) in items.orderGlassDetails" >
                  ({{orderGlassDetail.childWidth}}x{{orderGlassDetail.childHeight}})
                   ({{orderGlassDetail.childWidth}}x{{orderGlassDetail.childHeight}})
                  </template>
                </td>
                <td colspan="3" style="font-size: 20px;font-weight: bold;" v-else>{{items.width}}x{{items.height}}</td>
north-glass-erp/northglass-erp/src/lang/ar.js
@@ -414,6 +414,7 @@
        composingOk:'يمكن Ø§Ø¯Ø±Ø§Ø¬Ù‡Ø§ ',
        composingNo:'لا ÙŠÙ…كن Ø§Ø¯Ø±Ø§Ø¬Ù‡Ø§',
        typesetter:'المدخل',
        revoke:'撤销可排版',
        scheduledStartTime:'وقت Ø§Ù„بدء Ø§Ù„جدولة',
        planEndTime:'وقت Ø§Ù†ØªÙ‡Ø§Ø¡ Ø§Ù„جدولة',
        customerId:'رمز Ø§Ù„عميل',
@@ -435,6 +436,7 @@
        deleteNo:'فشل Ø§Ù„حذف، ØªØ­Ù‚Ù‚ Ù…ما Ø¥Ø°Ø§ ÙƒØ§Ù† Ù‚د ØªÙ… Ø§Ù„إبلاغ Ø¹Ù† Ø¨Ø·Ø§Ù‚Ø© Ø§Ù„عملية Ù„لعمل (ملاحظات)',
        deleteNoProcedure:'فشل Ø§Ù„حذف، ØªØ­Ù‚Ù‚ Ù…ما Ø¥Ø°Ø§ ÙƒØ§Ù† Ù‚د ØªÙ… Ø§Ù„إبلاغ Ø¹Ù† Ø§Ù„عملية Ø§Ù„تالية Ù„لعمل',
        pleaseCheckTheRequiredData:'برجاء Ø§Ù„تأكد Ù…Ù† Ø§Ù„بيانات Ø§Ù„مطلوبة',
        notSelectTheOptionData:'请勿勾选已排版数据',
        landingSequence:'落架顺序',
        labelStyle:'نمط Ø§Ù„ملصق',
north-glass-erp/northglass-erp/src/lang/en.js
@@ -413,6 +413,7 @@
        composingOk:'Can Be Typesetter',
        composingNo:'Non Typesetting',
        typesetter:'typesetter',
        revoke:'撤销可排版',
        scheduledStartTime:'Scheduled Start Time',
        planEndTime:'Plan End Time',
        customerId:'Customer Id',
@@ -434,6 +435,7 @@
        deleteNo:'Failed to delete Check whether the flow card has been reported (feedback)',
        deleteNoProcedure:'Delete failed Check whether the next operation has been reported',
        pleaseCheckTheRequiredData:'Please check the required data',
        notSelectTheOptionData:'请勿勾选已排版数据',
        landingSequence:'Landing sequence',
        labelStyle:'Label Style',
north-glass-erp/northglass-erp/src/lang/ru.js
@@ -414,6 +414,7 @@
        composingOk:'ТипограммаOK',
        composingNo:'ТипограммаNO',
        typesetter:'Наборщик',
        revoke:'撤销可排版',
        scheduledStartTime:'Планируемое Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°',
        planEndTime:'Планируемое Ð²Ñ€ÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ',
        customerId:'Код ÐºÐ»Ð¸ÐµÐ½Ñ‚а',
@@ -435,6 +436,7 @@
        deleteNo:'Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ, Ð¿Ñ€Ð¾Ð²ÐµÑ€ÑŒÑ‚е Ð¾Ð±Ñ€Ð°Ñ‚ную ÑÐ²ÑÐ·ÑŒ ÐºÐ°Ñ€Ñ‚Ñ‹ Ð¿Ñ€Ð¾Ñ†ÐµÑÑÐ°',
        deleteNoProcedure:'Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ, Ð¿Ñ€Ð¾Ð²ÐµÑ€ÑŒÑ‚е Ð¾Ð±Ñ€Ð°Ñ‚ную ÑÐ²ÑÐ·ÑŒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸',
        pleaseCheckTheRequiredData:'Выберите Ð½ÐµÐ¾Ð±Ñ…одимые Ð´Ð°Ð½Ð½Ñ‹Ðµ.',
        notSelectTheOptionData:'请勿勾选已排版数据',
        landingSequence:'Landing sequence',
        labelStyle:'Стиль Ð¼ÐµÑ‚ки',
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -414,6 +414,7 @@
        composingOk:'可排版',
        composingNo:'不可排版',
        typesetter:'已排版',
        revoke:'撤销可排版',
        scheduledStartTime:'计划开始时间',
        planEndTime:'计划结束时间',
        customerId:'客户编码',
@@ -435,6 +436,7 @@
        deleteNo:'删除失败,检查流程卡是否已报工',
        deleteNoProcedure:'删除失败,请检查下工序是否已报工或者已补片返工',
        pleaseCheckTheRequiredData:'请勾选需要的数据',
        notSelectTheOptionData:'请勿勾选已排版数据',
        landingSequence:'落架顺序',
        labelStyle:'标签样式',
north-glass-erp/northglass-erp/src/router/index.js
@@ -337,6 +337,11 @@
              component: () => import('../views/pp/glassOptimize/OptimizePrint.vue'),
            },
            {
              path: 'optimizeMove',
              name: 'optimizeMove',
              component: () => import('../views/pp/glassOptimize/OptimizeMove.vue'),
            },
            {
              path: '/optimizeProject/:projectNo/:thickNess/:model',
              name: 'optimizeInfo',
              component: () => import('../views/pp/glassOptimize/OptimizeProject.vue')
north-glass-erp/northglass-erp/src/stores/sd/companySet/Ìì½ò±±²£.js
@@ -15,6 +15,7 @@
        },
        orderIdType:'year',//后端生成订单号类型,day:每天生成,month:每月生成,year:每年生成
        deliveryIdType:'day',
        deliveryDate:7,//订单创建送货日期 å¤©æ´¥7天,常州7天,义乌15天,新疆15天
        columnName:'图号',
        selectOrderReviewShow:true, //订单首页加工单审核按钮是否显示
        productName:"product_name",//产品创建查重字段
@@ -31,6 +32,7 @@
        deliveryRemark: ['备注:本批玻璃为优等合格品,请在卸货时,当面消点验收、如有质量问题在一周内与本公司联系,否则概不负责!'],
        deliveryOutbound: false,//发货默认出库
        flowCardMerge: 0,//流程卡合片打印
        printBtn:1,//打印界面三个按钮中是否显示标签打印相关按钮,0显示常州,1天津其它不显示
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/stores/sd/companySet/³£ÖݼªÀû.js
@@ -15,6 +15,7 @@
        },
        orderIdType:'month',//后端生成订单号类型,day:每天生成,month:每月生成
        deliveryIdType:'month',//后端生成发货单号类型,day:每天生成,month:每月生成
        deliveryDate:7,//订单创建送货日期 å¤©æ´¥7天,常州7天,义乌15天,新疆15天
        columnName:'异形参数',
        selectOrderReviewShow:false, //订单首页加工单审核按钮是否显示
        productName:"product_abbreviation", //产品创建查重字段
@@ -31,6 +32,7 @@
        deliveryRemark: ['备注:本批玻璃为优等合格品,请在卸货时,当面消点验收、如有质量问题在一周内与本公司联系,否则概不负责!'],
        deliveryOutbound: true,//发货默认出库
        flowCardMerge: 1,//流程卡合片打印
        printBtn:0,//打印界面三个按钮中是否显示标签打印相关按钮,0显示常州,1天津其它不显示
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/stores/sd/companySet/н®ºãöÎ.js
@@ -15,6 +15,7 @@
        },
        orderIdType:'year',//后端生成订单号类型,day:每天生成,month:每月生成,year:按年生成
        deliveryIdType:'day',//后端生成发货单号类型,day:每天生成,month:每月生成
        deliveryDate:15,//订单创建送货日期 å¤©æ´¥7天,常州7天,义乌15天,新疆15天
        columnName:'图号',
        selectOrderReviewShow:true, //订单首页加工单审核按钮是否显示
        productName:"product_name",//产品创建时重复验证,‘product_abbreviation’
@@ -31,6 +32,7 @@
        deliveryRemark: ['备注:本批玻璃为优等合格品,请在卸货时,当面消点验收、如有质量问题在一周内与本公司联系,否则概不负责!'],
        deliveryOutbound: false,//发货默认出库
        flowCardMerge: 0,//流程卡合片打印
        printBtn:1,//打印界面三个按钮中是否显示标签打印相关按钮,0显示常州,1天津其它不显示
        //天津
        printLabel: {
north-glass-erp/northglass-erp/src/stores/sd/companySet/½ð»ªÌì³É.js
@@ -5,7 +5,7 @@
    state: () => ({
        companyName: '金华福喜天成玻璃有限公司',
        address:'浙江省金华市金东区曹宅镇工业功能区鹤岩街28号2号',
        telephone:'189 3119 1362 èµ–厂长',
        telephone:'153 8178 1915 ç¦å–œå¤©æˆ',
        fax:'',
        errorArea:0.3,
        widHeiLength:{//订单宽高长度
@@ -15,6 +15,7 @@
        },
        orderIdType:'year',//后端生成订单号类型,day:每天生成,month:每月生成,year:每年生成
        deliveryIdType:'day',
        deliveryDate:15,//订单创建送货日期 å¤©æ´¥7天,常州7天,义乌15天,新疆15天
        columnName:'图号',
        selectOrderReviewShow:true, //订单首页加工单审核按钮是否显示
        productName:"product_name",
@@ -33,6 +34,7 @@
            '收货时需验收产品数量、规格及有无破损,如发现问题需于收货三日内,以书面通知并附上现场证明材料(如破损照片等),相关证明资料不足,或在上述日期内未提出质量异议的,逾期视为产品合格,我司将不予承担任何责任。敬请留意!'],
        deliveryOutbound: false,//发货默认出库
        flowCardMerge: 0,//流程卡合片打印
        printBtn:1,//打印界面三个按钮中是否显示标签打印相关按钮,0显示常州,1天津其它不显示
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/views/mm/stockReport/MaterialOutboundReport.vue
@@ -14,6 +14,7 @@
    {field: 'operationOrderNumber', width:'150', title: t('productStock.operationOrderNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'operationNumber', width: '100',title: t('order.OrderNum'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'operateType', width: '120',title:t('warehouseBasicData.type'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'projectNo', width: '120',title:t('ingredientsStock.projectNo'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'quantity', width: '140',title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'inventoryId',width: '100', title: t('ingredientsStock.id'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialCode',width: '140', title: t('ingredients.materialCode'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/Optimize.vue
@@ -21,11 +21,11 @@
        <el-breadcrumb-item v-show="false" @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/order/createOrder' }">{{$t('order.page.createOrder')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizePrint' }">打印
        </el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizePrint' }">调整
        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizeMove' }">调整
        </el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizePrint' }">数控
        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizeMove' }">数控
        </el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(6)" :class="indexFlag===6?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizePrint' }">设置
        <el-breadcrumb-item @click="changeRouter(6)" :class="indexFlag===6?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizeMove' }">设置
        </el-breadcrumb-item>
        <el-breadcrumb-item></el-breadcrumb-item>
      </el-breadcrumb>
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeMove.vue
New file
@@ -0,0 +1,159 @@
<template>
    <div style="width:100%;height:2000px;">
        <div class="layoutJSON">
            Displayed as <code>[x, y, w, h]</code>:
            <div class="columns">
              <div v-for="item in layout" :key="item.i">
                    <b>{{item.i}}</b>: [{{item.x}}, {{item.y}}, {{item.w}}, {{item.h}}]
                </div>
            </div>
        </div>
        <hr/>
        <input type="checkbox" v-model="draggable"/> Draggable
        <input type="checkbox" v-model="resizable"/> Resizable
        <input type="checkbox" v-model="responsive"/> Responsive
        <br/>
        <div style="width:100%;margin-top: 10px;height:100%;">
          <grid-layout v-model:layout="layout"
               :col-num="12"
               :row-height="30"
               :is-draggable="draggable"
               :is-resizable="resizable"
               :vertical-compact="true"
               :use-css-transforms="true"
  >
            <grid-item v-for="item in layout"
             :key="item.i"
             :static="item.static"
             :x="item.x"
             :y="item.y"
             :w="item.w"
             :h="item.h"
             :i="item.i"
  >
      <span class="text">{{item.i}}</span>
  </grid-item>
            </grid-layout>
        </div>
    </div>
  </template>
  <script>
  import { GridLayout, GridItem } from 'vue3-grid-layout';
  export default {
    components: {
      GridLayout,
      GridItem,
    },
    data() {
        return {
            layout: [
                {"x":0,"y":0,"w":2,"h":2,"i":"0666*343"},
                {"x":2,"y":0,"w":2,"h":4,"i":"1"},
                {"x":4,"y":0,"w":2,"h":5,"i":"2"},
                {"x":6,"y":0,"w":2,"h":3,"i":"3"},
                {"x":8,"y":0,"w":2,"h":3,"i":"4"},
                {"x":10,"y":0,"w":2,"h":3,"i":"5"},
                {"x":0,"y":5,"w":2,"h":5,"i":"6"},
                {"x":2,"y":5,"w":2,"h":5,"i":"7"},
                {"x":4,"y":5,"w":2,"h":5,"i":"8"},
                {"x":6,"y":4,"w":2,"h":4,"i":"9"},
                {"x":8,"y":4,"w":2,"h":4,"i":"10"},
                {"x":10,"y":4,"w":2,"h":4,"i":"11"},
                {"x":0,"y":10,"w":2,"h":5,"i":"12"},
                {"x":2,"y":10,"w":2,"h":5,"i":"13"},
                {"x":4,"y":8,"w":2,"h":4,"i":"14"},
                {"x":6,"y":8,"w":2,"h":4,"i":"15"},
                {"x":8,"y":10,"w":2,"h":5,"i":"16"},
                {"x":10,"y":4,"w":2,"h":2,"i":"17"},
                {"x":0,"y":9,"w":2,"h":3,"i":"18"},
                {"x":2,"y":6,"w":2,"h":2,"i":"19"}
            ],
            draggable: true,
            resizable: true,
            responsive: true,
            index: 0
        }
    },
    methods: {
    }
  }
  </script>
  <style scoped>
  .vue-grid-layout {
    background: #eee;
  }
  .vue-grid-item:not(.vue-grid-placeholder) {
    background: #ccc;
    border: 1px solid black;
  }
  .vue-grid-item .resizing {
    opacity: 0.9;
  }
  .vue-grid-item .static {
    background: #cce;
  }
  .vue-grid-item .text {
    font-size: 24px;
    text-align: center;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: 100%;
    width: 100%;
  }
  .vue-grid-item .no-drag {
    height: 100%;
    width: 100%;
  }
  .vue-grid-item .minMax {
    font-size: 12px;
  }
  .vue-grid-item .add {
    cursor: pointer;
  }
  .vue-draggable-handle {
    position: absolute;
    width: 20px;
    height: 20px;
    top: 0;
    left: 0;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'><circle cx='5' cy='5' r='5' fill='#999999'/></svg>") no-repeat;
    background-position: bottom right;
    padding: 0 8px 8px 0;
    background-repeat: no-repeat;
    background-origin: content-box;
    box-sizing: border-box;
    cursor: pointer;
  }
  .layoutJSON {
    background: #ddd;
    border: 1px solid black;
    margin-top: 10px;
    padding: 10px;
  }
  .columns {
    -moz-columns: 120px;
    -webkit-columns: 120px;
    columns: 120px;
  }
  </style>
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue
@@ -4,7 +4,7 @@
  :layoutData="layoutData" 
  :gw="1200" 
  :gh="900" 
  style="width: 1200px; height: 900px; position: relative;"
  style="width: 1200px; height: 800px; position: relative;"
/>
@@ -19,1533 +19,7 @@
  
    "result": "ok",
    "data": {
        "Layouts": [{
            "mnumber": 1,
            "width": 4500,
            "rects": [{
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "60",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2310,
                "x": 0,
                "y": 1715,
                "rownumber": 60
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "22",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2310,
                "y": 1715,
                "rownumber": 22
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "23",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2080,
                "x": 0,
                "y": 990,
                "rownumber": 23
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "71",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2080,
                "x": 0,
                "y": 265,
                "rownumber": 71
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "63",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2180,
                "x": 2080,
                "y": 990,
                "rownumber": 63
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "22",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2080,
                "y": 265,
                "rownumber": 22
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 120,
                "x": 4380,
                "y": 1715,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 2080,
                "x": 0,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2080,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 990,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 110,
                "x": 4150,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 1715,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 240,
                "x": 4260,
                "y": 0,
                "rownumber": 0
            }],
            "wuliao": "KC2006145",
            "SameCount": 1,
            "height": 2440
        }, {
            "mnumber": 2,
            "width": 4500,
            "rects": [{
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "22",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 1715,
                "rownumber": 22
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "22",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 990,
                "rownumber": 22
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "22",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 265,
                "rownumber": 22
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "22",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2070,
                "y": 1715,
                "rownumber": 22
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "22",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2070,
                "y": 990,
                "rownumber": 22
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "22",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2070,
                "y": 265,
                "rownumber": 22
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 360,
                "x": 4140,
                "y": 1715,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2070,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 1715,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 360,
                "x": 4140,
                "y": 0,
                "rownumber": 0
            }],
            "wuliao": "KC2006145",
            "SameCount": 1,
            "height": 2440
        }, {
            "mnumber": 3,
            "width": 4500,
            "rects": [{
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "61",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 1715,
                "rownumber": 61
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "61",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 990,
                "rownumber": 61
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "61",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 265,
                "rownumber": 61
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "61",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2070,
                "y": 1715,
                "rownumber": 61
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "61",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2070,
                "y": 990,
                "rownumber": 61
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "61",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2070,
                "y": 265,
                "rownumber": 61
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 2070,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 2440,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 360,
                "x": 4140,
                "y": 0,
                "rownumber": 0
            }],
            "wuliao": "KC2006145",
            "SameCount": 1,
            "height": 2440
        }, {
            "mnumber": 4,
            "width": 4500,
            "rects": [{
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "61",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2070,
                "x": 0,
                "y": 1715,
                "rownumber": 61
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "27",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 1989,
                "x": 0,
                "y": 990,
                "rownumber": 27
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "25",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 1956,
                "x": 0,
                "y": 265,
                "rownumber": 25
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "26",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 2065,
                "x": 2070,
                "y": 1715,
                "rownumber": 26
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "64",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1700,
                "x": 2070,
                "y": 990,
                "rownumber": 64
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "68",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1630,
                "x": 2070,
                "y": 265,
                "rownumber": 68
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "36",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 710,
                "x": 3770,
                "y": 990,
                "rownumber": 36
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "35",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 710,
                "x": 3770,
                "y": 265,
                "rownumber": 35
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 1956,
                "x": 0,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 990,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 33,
                "x": 1956,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 1715,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 81,
                "x": 1989,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 365,
                "x": 4135,
                "y": 1715,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 70,
                "x": 3700,
                "y": 265,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 1700,
                "x": 2070,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 710,
                "x": 3770,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 1715,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 20,
                "x": 4480,
                "y": 0,
                "rownumber": 0
            }],
            "wuliao": "KC2006145",
            "SameCount": 1,
            "height": 2440
        }, {
            "mnumber": 5,
            "width": 4500,
            "rects": [{
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "37",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 1770,
                "x": 0,
                "y": 1715,
                "rownumber": 37
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "34",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1408,
                "x": 0,
                "y": 990,
                "rownumber": 34
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "37",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 1770,
                "x": 0,
                "y": 265,
                "rownumber": 37
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "72",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2060,
                "x": 1770,
                "y": 1715,
                "rownumber": 72
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "66",
                "DM1": 0,
                "liuchengka": "NG22091408A07",
                "JiaHao": "A07",
                "LM2": 0,
                "LM1": 0,
                "w": 627,
                "x": 3830,
                "y": 1715,
                "rownumber": 66
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "59",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2060,
                "x": 1770,
                "y": 990,
                "rownumber": 59
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "70",
                "DM1": 0,
                "liuchengka": "NG22091408A07",
                "JiaHao": "A07",
                "LM2": 0,
                "LM1": 0,
                "w": 598,
                "x": 3830,
                "y": 990,
                "rownumber": 70
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "59",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2060,
                "x": 1770,
                "y": 265,
                "rownumber": 59
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "32",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 595,
                "x": 3830,
                "y": 265,
                "rownumber": 32
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 362,
                "x": 1408,
                "y": 990,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 1770,
                "x": 0,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 43,
                "x": 4457,
                "y": 1715,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 72,
                "x": 4428,
                "y": 990,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 2060,
                "x": 1770,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 75,
                "x": 4425,
                "y": 265,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 670,
                "x": 3830,
                "y": 0,
                "rownumber": 0
            }],
            "wuliao": "KC2006145",
            "SameCount": 1,
            "height": 2440
        }, {
            "mnumber": 6,
            "width": 4500,
            "rects": [{
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "62",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 2055,
                "x": 0,
                "y": 1715,
                "rownumber": 62
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "28",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 1992,
                "x": 2055,
                "y": 1715,
                "rownumber": 28
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "42",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 1892,
                "x": 0,
                "y": 990,
                "rownumber": 42
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "42",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 1892,
                "x": 0,
                "y": 265,
                "rownumber": 42
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "68",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1630,
                "x": 1892,
                "y": 990,
                "rownumber": 68
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "69",
                "DM1": 0,
                "liuchengka": "NG22091408A07",
                "JiaHao": "A07",
                "LM2": 0,
                "LM1": 0,
                "w": 950,
                "x": 3522,
                "y": 990,
                "rownumber": 69
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "65",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1970,
                "x": 1892,
                "y": 265,
                "rownumber": 65
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "31",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 590,
                "x": 3862,
                "y": 265,
                "rownumber": 31
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 453,
                "x": 4047,
                "y": 1715,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 1892,
                "x": 0,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 28,
                "x": 4472,
                "y": 990,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 48,
                "x": 4452,
                "y": 265,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 2608,
                "x": 1892,
                "y": 0,
                "rownumber": 0
            }],
            "wuliao": "KC2006145",
            "SameCount": 1,
            "height": 2440
        }, {
            "mnumber": 7,
            "width": 4500,
            "rects": [{
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "68",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1630,
                "x": 0,
                "y": 1715,
                "rownumber": 68
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "68",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1630,
                "x": 0,
                "y": 990,
                "rownumber": 68
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "68",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1630,
                "x": 0,
                "y": 265,
                "rownumber": 68
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "73",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1670,
                "x": 1630,
                "y": 1715,
                "rownumber": 73
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "68",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1630,
                "x": 1630,
                "y": 990,
                "rownumber": 68
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "67",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1620,
                "x": 1630,
                "y": 265,
                "rownumber": 67
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "43",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1148,
                "x": 3300,
                "y": 1715,
                "rownumber": 43
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "30",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1165,
                "x": 3300,
                "y": 990,
                "rownumber": 30
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "29",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1150,
                "x": 3300,
                "y": 265,
                "rownumber": 29
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 1630,
                "x": 0,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 40,
                "x": 3260,
                "y": 990,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 1620,
                "x": 1630,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 990,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 50,
                "x": 3250,
                "y": 0,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 52,
                "x": 4448,
                "y": 1715,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 35,
                "x": 4465,
                "y": 990,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 50,
                "x": 4450,
                "y": 265,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 1200,
                "x": 3300,
                "y": 0,
                "rownumber": 0
            }],
            "wuliao": "KC2006145",
            "SameCount": 1,
            "height": 2440
        }, {
            "mnumber": 8,
            "width": 4500,
            "rects": [{
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "65",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1970,
                "x": 0,
                "y": 1715,
                "rownumber": 65
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "33",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1413,
                "x": 1970,
                "y": 1715,
                "rownumber": 33
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "38",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1052,
                "x": 3383,
                "y": 1715,
                "rownumber": 38
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "37",
                "DM1": 0,
                "liuchengka": "NG22091408A03",
                "JiaHao": "A03",
                "LM2": 0,
                "LM1": 0,
                "w": 1770,
                "x": 0,
                "y": 990,
                "rownumber": 37
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "67",
                "DM1": 0,
                "liuchengka": "NG22091408A06",
                "JiaHao": "A06",
                "LM2": 0,
                "LM1": 0,
                "w": 1620,
                "x": 1770,
                "y": 990,
                "rownumber": 67
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "69",
                "DM1": 0,
                "liuchengka": "NG22091408A07",
                "JiaHao": "A07",
                "LM2": 0,
                "LM1": 0,
                "w": 950,
                "x": 3390,
                "y": 990,
                "rownumber": 69
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "40",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1599,
                "x": 0,
                "y": 265,
                "rownumber": 40
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "39",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1578,
                "x": 1599,
                "y": 265,
                "rownumber": 39
            }, {
                "isRemain": false,
                "h": 725,
                "DM2": 0,
                "xuhao": "43",
                "DM1": 0,
                "liuchengka": "NG22091408A04",
                "JiaHao": "A04",
                "LM2": 0,
                "LM1": 0,
                "w": 1148,
                "x": 3177,
                "y": 265,
                "rownumber": 43
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 65,
                "x": 4435,
                "y": 1715,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 160,
                "x": 4340,
                "y": 990,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 725,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 175,
                "x": 4325,
                "y": 265,
                "rownumber": 0
            }, {
                "isRemain": true,
                "h": 265,
                "DM2": 0,
                "xuhao": "null",
                "DM1": 0,
                "liuchengka": "null",
                "JiaHao": "null",
                "LM2": 0,
                "LM1": 0,
                "w": 4500,
                "x": 0,
                "y": 0,
                "rownumber": 0
            }],
            "wuliao": "KC2006145",
            "SameCount": 1,
            "height": 2440
        }, {
        "Layouts": [ {
            "mnumber": 9,
            "width": 4500,
            "rects": [{
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/RectRenderer.vue
@@ -112,6 +112,7 @@
<style scoped>
.layout-container {
  position: relative;
}
.layout-rect {
north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue
@@ -71,8 +71,8 @@
const {currentRoute} = useRouter()
const route = currentRoute.value
let orderId = route.query.orderId
let productionId = route.query.productionId
const orderId = route.query.orderId
const productionId = route.query.productionId
const orderOtherMoney = ref(null)
@@ -144,6 +144,51 @@
  },
  filterConfig: {   //筛选配置项
                    //remote: true
  },
  formConfig: {
    data: {
      shelfThickness: 2000,
      spacerThickness: 0,
      inWeight: 4000,
      inMaxQuantity: 20,
      inLenMin:400,
      inLenMax:3500,
      inShortMax:2500,
      inShortMin:400
    },
    rules:{
      shelfThickness: [
        { required: true, message: t('basicData.msg.greater0'),type:'number',pattern:/^[1-9]\d*$/ }
      ],
      spacerThickness: [
        { required: true, message: t('delivery.pleaseEnterANumericalValueGreaterThanOrEqualTo0'),type:'number',pattern:/^[0-9]\d*$/ }
      ],
      inWeight: [
        { required: true, message: t('basicData.msg.greater0'),type:'number',pattern:/^[1-9]\d*$/ }
      ]
    },
    items:[
      { field: 'shelfThickness', title: '架子纵深(mm)', itemRender: { name: 'VxeInput' },span:8,folding: true},
      { field: 'inWeight', title: '架子承重(KG)', itemRender: { name: 'VxeInput' },span:8,folding: true },
      { field: 'spacerThickness', title: '间隔厚度(mm)', itemRender: { name: 'VxeInput' } ,span:8,folding: true},
      { field: 'inLenMax', title: '长边最大(mm)', itemRender: { name: 'VxeInput' },span:8,folding: true },
      { field: 'inLenMin', title: '长边最短(mm)', itemRender: { name: 'VxeInput' },span:8,folding: true },
      { field: 'inMaxQuantity', title: '最大数量', itemRender: { name: 'VxeInput' } ,span:8,folding: true},
      { field: 'inShortMax', title: '短边最大(mm)', itemRender: { name: 'VxeInput' },span:8,folding: true },
      { field: 'inShortMin', title: '短边最短(mm)', itemRender: { name: 'VxeInput' },span:8,folding: true },
      {
        span: 24,
        collapseNode: true,
        align: 'center',
        itemRender: {
          name: 'VxeButtonGroup',
          options: [
            { type: 'submit', content: '智能分架', status: 'primary' },
            { type: 'reset', content: '重置' }
          ]
        }
      }
    ]
  },
  customConfig: {
    storage: true
@@ -244,13 +289,32 @@
          })
          return parseFloat(count.toFixed(2))
        }
        return ''
      })
    ]
  },
})
const gridEventsRight = {
  formSubmit () {
    let form = gridOptions.formConfig.data
    form.orderId =orderId
    form.productionId = productionId
    request.post(`/processCard/processCardAutoRack`,form).then(res => {
      xGridLeft.value.reloadData(res.data.orderDetailList)
      xGrid.value.reloadData(res.data.orderDetailsNotScope)
    })
  },
  formReset () {
    router.push({
      path: '/main/processCard/AddProcessCard',
      query: {orderId: orderId,
        productionId: productionId,
        random:Math.random()
      }
    })
  }
}
//左侧子组件接收参数
const xGridLeft = ref()
@@ -971,6 +1035,7 @@
                class="mytable-scrollbar"
                height="100%"
                v-bind="gridOptions"
                v-on="gridEventsRight"
                @checkbox-change="handleCheckboxChange"
            >
              <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -147,6 +147,7 @@
  },
]
let hidePrintLabels = company.printLabel.hideButton;
let btnType = company.printBtn;
if (hidePrintLabels == 'true') {
  filteredOptions = lableTypeOptions.filter((option, index) => index !== 2);
@@ -191,6 +192,7 @@
data.value.printList = JSON.parse(route.query.printList)
let inquiryMode = route.query.checkedValue
// ç¬¬ä¸€æ¬¡åŠ è½½æŸ¥è¯¢
request.post(`/processCard/selectPrint/${inquiryMode}`, data.value).then((res) => {
@@ -207,7 +209,8 @@
    gridOptions.loading = false
    hideButton()
    hideButton();
    hideHead()
  } else {
    ElMessage.warning(res.msg)
  }
@@ -640,16 +643,35 @@
const hideButton = () => {
  // æ ¹æ®æ¡ä»¶å€¼ hidePrintLabels è¿‡æ»¤æŒ‰é’®æ•°ç»„
  gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
    // è¿™é‡Œæ ¹æ® hidePrintLabels çš„值决定是否隐藏 printLabel å’Œ printLabel2
    if (hidePrintLabels == 'true') {
      return button.code !== 'printLabel' && button.code !== 'printLabel2' ;
    } else {
      return true && button.code !== 'printLike'; // æ˜¾ç¤ºè¯¥æŒ‰é’®
    // æ ¹æ® hidePrintLabels è¿‡æ»¤ printLabel å’Œ printLabel2 æŒ‰é’®
    if (hidePrintLabels === 'true') {
      if (button.code === 'printLabel' || button.code === 'printLabel2') {
        return false; // éšè— printLabel å’Œ printLabel2
      }
    }
  })
    // å¦‚æžœ printBtn ä¸º '1',则隐藏 customLabel æŒ‰é’®
    if (btnType == 1 && button.code === 'customLabel') {
      console.log('Hiding customLabel button');
      return false; // éšè— customLabel æŒ‰é’®
    }
    // é»˜è®¤æƒ…况下返回 true,保留其他按钮
    return true;
  });
}
const hideHead = () => {
  // åˆ¤æ–­ btnType æ˜¯å¦ç­‰äºŽ '1' (可以根据需要调整为数字 1)
  if (btnType == 1) {
    const headDiv = document.querySelector('.head');
    if (headDiv) {
      headDiv.style.display = 'none'; // éšè— class="head" çš„ div
    }
  }
}
// ç›‘听打印完成事件
const printNumber = () => {
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -141,6 +141,7 @@
  },
]
let hidePrintLabels = company.printLabel.hideButton;
let btnType = company.printBtn;
if (hidePrintLabels == 'true') {
  filteredOptions = lableTypeOptions.filter((option, index) => index !== 2);
@@ -222,6 +223,7 @@
request.post(`/processCard/selectPrintDetails/${inquiryMode}/${type}`, data.value).then((res) => {
  if (res.code == 200) {
    console.log(res.data.data)
    let newDataCollection = [];
    for (let i = 0; i < res.data.data.length; i++) {
      res.data.data[i].detail.forEach((item) => {
@@ -330,6 +332,20 @@
    {
      field: 'technology_number',
      title: t('processCard.technologyNumber'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged, width: 100
    },
    {
      field: 'width',
      title: t('order.width'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged, width: 100
    },
    {
      field: 'height',
      title: t('order.height'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged, width: 100
@@ -730,24 +746,32 @@
}
const hideButton = () => {
  // æ ¹æ®æ¡ä»¶å€¼ hidePrintLabels è¿‡æ»¤æŒ‰é’®æ•°ç»„
  gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
    // è¿™é‡Œæ ¹æ® hidePrintLabels çš„值决定是否隐藏 printLabel å’Œ printLabel2
    // å¦‚æžœ type ä¸ä¸ºç©ºæ—¶ï¼Œéšè— print æŒ‰é’®
    if (btnType == 1 && button.code === 'print') {
      return false;  // éšè— print æŒ‰é’®
    }
    // æ ¹æ® hidePrintLabels çš„值判断是否隐藏 printLabel、printLabel2 å’Œ customLabel
    if (hidePrintLabels == 'true') {
      return button.code !== 'printLabel' && button.code !== 'printLabel2' && button.code !== 'customLabel';
    } else {
      return true && button.code !== 'printLike' && button.code !== 'printLabel3' && button.code !== 'printTest'; // æ˜¾ç¤ºè¯¥æŒ‰é’®
      // å¦‚æžœ hidePrintLabels ä¸æ˜¯ 'true',则隐藏 printLike、printLabel3 å’Œ printTest
      return button.code !== 'printLike' && button.code !== 'printLabel3' && button.code !== 'printTest';
    }
  })
}
    // é»˜è®¤è¿”回 true,表示保留按钮
    return true;
  });
};
// ç›‘听打印完成事件
// ç›‘听打印次数事件
const printNumber = () => {
  selectRecordsData.value.printList = selectRecords
  let printState = 0
  request.post(`/processCard/updatePrintState/${printState}`, selectRecordsData.value).then((res) => {
  request.post(`/processCard/updatePrintNumber`, selectRecordsData.value).then((res) => {
    if (res.code == 200 && res.data === true) {
    } else {
@@ -756,7 +780,6 @@
    }
  })
}
</script>
<template>
@@ -874,7 +897,7 @@
        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 @click="printNumber"/>
      </template>
      <print-custom-label id="childLabel"
                          :faceOrientation="labelRow.faceOrientation"
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -122,7 +122,7 @@
        "{display:none}@media print{" +
        "@page {" +
        "    size: auto; " +
        "    margin: 13mm 4mm 2mm 4mm; " +
        "    margin: 13mm 4mm 0mm 4mm; " +
        "  }body>:not(#" +
        printId +
        "){display:none !important}body>#" +
@@ -156,8 +156,8 @@
  <el-input v-if="!company.showDeliveryCreator" v-model="remarks" style="background-color: transparent;border: none;margin-top: -20px;width: 100px"/>
  <div id="printFlowCard" >
<!--     åŠæˆå“æ ‡ç­¾-->
    <div v-if="type!=='3'" id="entirety" v-for="(item,id) in labelList" >
    <template v-for="(item,id) in labelList">
    <div v-if="type!=='3'" id="entirety" >
      <div class="row1" >
<!--钢化版图序号,钢化版图里的顺序-->
<!--        <div class="cell" v-if="item.heat_layout_id!==undefined">{{ item.heat_layout_id }}/{{ item.heat_layout_sort }}</div>-->
@@ -173,19 +173,19 @@
      </div>
      <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">
        <span v-if="item.heat_layout_id!==null && company.showDeliveryCreator"  style="font-size: 7pt;">
        <span v-if="item.heat_layout_id!==undefined && company.showDeliveryCreator"  style="font-size: 7pt;">
          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
        </span>
        <span v-if="item.stock_id!==null && !company.showDeliveryCreator"  style="font-size: 7pt">
        <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator"  style="font-size: 7pt">
              {{ item.stock_id }}/{{ item.polys_id }}
        </span>
        {{JSON.parse(item.other_columns).S02}}={{item.quantity}}
      </div>
      <div class="row3" v-else>
        <span v-if="item.heat_layout_id!==null && company.showDeliveryCreator"  style="font-size: 7pt;">
        <span v-if="item.heat_layout_id!==undefined && company.showDeliveryCreator"  style="font-size: 7pt;">
          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
        </span>
        <span v-if="item.stock_id!==null && !company.showDeliveryCreator"  style="font-size: 7pt">
        <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator"  style="font-size: 7pt">
              {{ item.stock_id }}/{{ item.polys_id }}
        </span>
        {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
@@ -199,8 +199,14 @@
        <span>{{item.glass_child}}</span>&nbsp;
        <span v-if="company.showDeliveryCreator" style="font-size: 10pt" >{{item.processing_note}}</span>
        <span v-else style="font-size: 6pt">{{item.processing_note}}</span>
        <br v-if="!company.showDeliveryCreator" />
        <span v-if="!company.showDeliveryCreator" style="font-size: 6pt;margin-top: -10px">{{item.product_name}}</span>
      </div>
    </div>
    <div class="element-to-break-after" v-if="(id+1)%44==0"></div>
    </template>
@@ -247,6 +253,7 @@
          <span style="font-size: 10pt">{{item.glass_child}}</span>&nbsp;
        </div>
      </div>
      <div class="element-to-break-after" v-if="(id+1)%44==0"></div>
    </template>
  </div>
@@ -274,8 +281,8 @@
#entirety{
  text-align: center;
  width: 180px;
  height: 87px;
  margin-bottom: 10px;
  height: 90px;
  margin-bottom: 7px;
  margin-right: 5px;
  overflow: hidden;
  white-space: nowrap;
@@ -284,7 +291,7 @@
.row1 {
  font-size: 8pt;
  font-weight: bold;
  height: 15px;
  height: 20px;
}
.row1 span {
  font-size: 10pt;
@@ -314,13 +321,12 @@
.row3 {
  margin-top: -5px;
  height: 20px;
  height: 25px;
  font-size: 15pt;
  font-weight: bolder;
}
.row5 {
  margin-top: 5px;
  height: 15px;
  font-weight: bold;
  font-size: 6pt;
@@ -331,7 +337,7 @@
}
.row6 {
  height: 15px;
  height: 25px;
  font-weight: bold;
  font-size: 4pt;
}
@@ -357,6 +363,10 @@
  font-size: 6pt;
}
.element-to-break-after {
  page-break-after: always;
}
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
@@ -304,7 +304,7 @@
  <div class="main-div-customer">
    <vxe-grid
        max-height="100%"
        height="99%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintFlowCard.vue
@@ -44,6 +44,19 @@
let produceList = ref([])
let titleStyleVisible = ref(false)
//定义分架状态
const optionVal = ref('1')
const options = [
  {
    value: '0',
    label: '未分架',
  },
  {
    value: '1',
    label: '已分架',
  },
]
const form = reactive({
  date1: '',
@@ -104,7 +117,7 @@
let endTime = orderInfo.workOrderDate[1]
let orderId=form.orderId
let project=form.project
let state = optionVal.value
if (orderId==''){
  orderId=null
}
@@ -114,7 +127,7 @@
//第一次加载数据
request.post(`/processCard/selectPrintFlowCard/${startTime}/${endTime}/${orderId}/${project}/${userId}`, filterData.value).then((res) => {
request.post(`/processCard/selectPrintFlowCard/${startTime}/${endTime}/${orderId}/${project}/${userId}/${state}`, filterData.value).then((res) => {
  if (res.code == 200) {
    produceList = produceList.value.concat(deepClone(res.data.data))
@@ -145,7 +158,9 @@
  if (project==''){
    project=null
  }
  request.post(`/processCard/selectPrintFlowCard/${startTime}/${endTime}/${orderId}/${project}/${userId}`, filterData.value).then((res) => {
  let state = optionVal.value
  request.post(`/processCard/selectPrintFlowCard/${startTime}/${endTime}/${orderId}/${project}/${userId}/${state}`, filterData.value).then((res) => {
    if (res.code == 200) {
      xGrid.value.loadData(res.data.data)
@@ -232,7 +247,7 @@
      //{'code': 'titleStyle', 'name': t('processCard.labelStyle'),status: 'primary'},
      {code: 'detailsPrint', name: t('processCard.detailPrinting'), status: 'primary'},
      {code: 'detailsProcessPrint', name: t('processCard.detailsPrintedSeparately'), status: 'primary'},
      {code: 'orderPrint', name: '订单打印', status: 'primary'},
    ],
    zoom: true,
@@ -272,7 +287,10 @@
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          if (optionVal.value != '1'){
            ElMessage.warning('请选择已分架订单打印')
            return
          }
          let orderIdList = ""
          for (let i = 0; i < selectRecords.length; i++) {
            if (i + 1 === selectRecords.length) {
@@ -292,7 +310,10 @@
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          if (optionVal.value != '1'){
            ElMessage.warning('请选择已分架订单打印')
            return
          }
          let orderIdList = ""
          for (let i = 0; i < selectRecords.length; i++) {
            if (i + 1 === selectRecords.length) {
@@ -312,7 +333,10 @@
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          if (optionVal.value != '1'){
            ElMessage.warning('请选择已分架订单打印')
            return
          }
          let orderIdList = ""
          for (let i = 0; i < selectRecords.length; i++) {
            if (i + 1 === selectRecords.length) {
@@ -323,6 +347,29 @@
          }
          let array = orderIdList.split('|');
          router.push({path: '/main/processCard/PrintFlowCardDetails', query: {printList: JSON.stringify(selectRecords),checkedValue:checkedValue.value.value,type:2}})
          return;
        }
        case 'orderPrint': {
          const selectRecords = $grid.getCheckboxRecords()
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          if (optionVal.value != '0'){
            ElMessage.warning('请选择未分架订单打印')
            return
          }
          let orderIdList = ""
          for (let i = 0; i < selectRecords.length; i++) {
            if (i + 1 === selectRecords.length) {
              orderIdList += selectRecords[i].order_id
            } else {
              orderIdList += selectRecords[i].order_id + "|"
            }
          }
          let array = orderIdList.split('|');
          router.push({path: '/main/processCard/PrintFlowCardDetails', query: {printList: JSON.stringify(selectRecords),checkedValue:checkedValue.value.value,type:3}})
          return;
        }
@@ -351,6 +398,22 @@
        &nbsp;&nbsp;
        <el-input v-model="form.project" clearable :placeholder="$t('order.project')" style="width: 110px"></el-input>
        &nbsp;&nbsp;
      <el-select
          :default-first-option="true"
          ref="getSelect" style="width: 130px"
          v-model="optionVal"
          class="m-2"
          @change="getWorkOrder"
      >
        <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value"
        />
      </el-select>
      &nbsp;&nbsp;
        <el-button
            id="select"
            :icon="Search"
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue
@@ -312,6 +312,7 @@
  toolbarConfig: {
    buttons: [
      {code: 'update', name: t('processCard.composing'), status: 'primary'},
      {code: 'revoke', name: t('processCard.revoke'), status: 'primary'},
      {code: 'delete', name: t('basicData.delete'), status: 'primary'},
      {code: 'rack', name: t('合架'), status: 'primary'},
    ],
@@ -384,6 +385,43 @@
          return;
        }
        case 'revoke': {
          const $table = xGrid.value
          if ($table) {
            const selectRecords = $table.getCheckboxRecords()
            if (selectRecords.length == 0) {
              ElMessage.warning(t('processCard.pleaseCheckTheRequiredData'))
              return;
            }
            let composingData = ref({
              composing: selectRecords,
            })
            selectRecords.forEach(item => {
                if (item.layoutStatus == "已排版"){
                  ElMessage.warning(t('processCard.notSelectTheOptionData'))
                  return;
                }
            });
            //撤销可排版状态
            request.post("/processCard/revokeComposing", composingData.value).then((res) => {
              if (res.code == 200 && res.data === true) {
                ElMessage.success(t('basicData.msg.saveSuccess'))
                router.push({
                  path: '/main/processCard/SelectProcessCard',
                  query: {random: Math.random()}
                })
              } else {
                ElMessage.warning("撤销失败,请检查是否已生成工程号")
              }
            })
          }
          return;
        }
        case 'delete': {
          const $table = xGrid.value
          if ($table) {
north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue
@@ -91,6 +91,7 @@
    total.dataTotal = res.data.total.total*1
    total.pageTotal= res.data.total.pageTotal
    pageTotal.value = res.data.total
    total.value = res.data.footSum
    produceList = produceList.value.concat(deepClone(res.data.data))
    xGrid.value.reloadData(produceList)
    gridOptions.loading = false
@@ -111,7 +112,7 @@
  request.post(`/report/damageReport/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}`, filterData.value).then((res) => {
    if (res.code == 200) {
      total.value = res.data.footSum
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
    } else {
@@ -132,6 +133,7 @@
  request.post(`/report/damageReport/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}`, filterData.value).then((res) => {
    if (res.code == 200) {
      total.value = res.data.footSum
      total.dataTotal = res.data.total.total * 1
      total.pageTotal = res.data.total.pageTotal
      pageTotal.value = res.data.total
@@ -178,6 +180,7 @@
  request.post(`/report/damageReport/1/${total.pageSize}/${startTime}/${newEndTime}`, filterData.value).then((res) => {
    if (res.code == 200) {
      total.value = res.data.footSum
      total.dataTotal = res.data.total.total*1
      total.pageTotal=parseInt(res.data.total)
      pageNum.value=1
@@ -286,7 +289,8 @@
        }
        const List = ["breakageQuantity",'area',]
        if (List.includes(column.field)) {
          return footSum(data, column.field)
         // return footSum(data, column.field)
          return total.value?.[column.field] ?? 0
        }
        return ''
      })
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
@@ -73,7 +73,7 @@
      res.data.data.forEach(item => {
        item.reportWorkQuantity = JSON.parse(item.reportWorkQuantity)
        item.reportWorkQuantityCount = JSON.parse(item.reportWorkQuantityCount)
        item.reportWorkTime = JSON.parse(item.reportWorkTime)
        //item.reportWorkTime = JSON.parse(item.reportWorkTime)
      })
      mergeCells.value = res.data.mergeCell
      xGrid.value.loadData(res.data.data)
north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue
@@ -98,6 +98,7 @@
    // total.dataTotal = res.data.total.total*1
    // total.pageTotal= res.data.total.pageTotal
    // pageTotal.value = res.data.total
    total.value = res.data.footSum
    produceList = produceList.value.concat(deepClone(res.data.data))
    titleSelectJson.value.processType = res.data.process
    xGrid.value.reloadData(produceList)
@@ -122,7 +123,7 @@
  request.post(`/report/selectProcessToBeCompleted/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}/${inputVal}`, filterData.value).then((res) => {
    if (res.code == 200) {
      total.value = res.data.footSum
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
    } else {
@@ -155,6 +156,7 @@
      // total.dataTotal = res.data.total.total*1
      // total.pageTotal= res.data.total.pageTotal
      // pageTotal.value = res.data.total
      total.value = res.data.footSum
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
    } else {
@@ -308,7 +310,8 @@
        }
        const List = ["quantity",'childArea','actualArea','completeNum','completeArea','incompleteNum','incompleteArea']
        if (List.includes(column.field)) {
          return footSum(data, column.field)
          //return footSum(data, column.field)
          return total.value?.[column.field] ?? 0
        }
        return ''
      })
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue
@@ -94,6 +94,7 @@
request.post(`/report/teamOutput/1/${total.pageSize}/${startTime}/${newEndTime}/${selectProcesses}`, filterData.value).then((res) => {
  if (res.code == 200) {
    total.value = res.data.footSum
    total.dataTotal = res.data.total.total*1
    total.pageTotal= res.data.total.pageTotal
    pageTotal.value = res.data.total
@@ -119,7 +120,7 @@
  request.post(`/report/teamOutput/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}/${selectProcesses}`, filterData.value).then((res) => {
    if (res.code == 200) {
      total.value = res.data.footSum
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
    } else {
@@ -141,6 +142,7 @@
  request.post(`/report/teamOutput/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}/${selectProcesses}`, filterData.value).then((res) => {
    if (res.code == 200) {
      total.value = res.data.footSum
      total.dataTotal = res.data.total.total * 1
      total.pageTotal = res.data.total.pageTotal
      pageTotal.value = res.data.total
@@ -194,6 +196,7 @@
      total.dataTotal = res.data.total.total*1
      total.pageTotal=parseInt(res.data.total)
      pageNum.value=1
      total.value = res.data.footSum
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
      gridOptions.loading=false
@@ -295,7 +298,8 @@
        }
        const List = ["completedQuantity",'area',]
        if (List.includes(column.field)) {
          return footSum(data, column.field)
          //return footSum(data, column.field)
          return total.value?.[column.field] ?? 0
        }
        return ''
      })
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
@@ -104,6 +104,7 @@
    total.dataTotal = res.data.total.total*1
    total.pageTotal= res.data.total.pageTotal
    pageTotal.value = res.data.total
    total.value = res.data.footSum
    produceList = produceList.value.concat(deepClone(res.data.data))
    titleSelectJson.value.processType = res.data.process
    titleSelectJson.value.processType.splice(0,1)
@@ -129,10 +130,9 @@
  if (optionVal == '') {
    optionVal = null
  }
  console.log(selectProcesses)
  request.post(`/report/workInProgress/${pageNum.value}/${total.pageSize}/${inputVal}/${inputProject}/${selectProcesses}/${optionVal}`, filterData.value).then((res) => {
    if (res.code == 200) {
      total.value = res.data.footSum
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
    } else {
@@ -163,6 +163,7 @@
      total.dataTotal = res.data.total.total * 1
      total.pageTotal = res.data.total.pageTotal
      pageTotal.value = res.data.total
      total.value = res.data.footSum
      xGrid.value.reloadData(res.data.data)
      gridOptions.loading = false
    } else {
@@ -343,7 +344,8 @@
        }
        const List = ["quantity",'stockNum','stockArea',]
        if (List.includes(column.field)) {
          return footSum(data, column.field)
          //return footSum(data, column.field)
          return total.value?.[column.field] ?? 0
        }
        return ''
      })
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue
@@ -125,6 +125,7 @@
    total.dataTotal = res.data.total.total*1
    total.pageTotal= res.data.total.pageTotal
    pageTotal.value = res.data.total
    total.value = res.data.footSum
    produceList = produceList.value.concat(deepClone(res.data.data))
    // ä½¿ç”¨map方法来处理每个对象
    let modifiedCollection = produceList.map(item => {
@@ -163,7 +164,7 @@
  let newEndTime = date.toISOString().split('T')[0]; // èŽ·å– YYYY-MM-DD æ ¼å¼çš„字符串
  request.post(`/reportingWork/selectReportingWork/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}/${inputVal}`,filterData.value).then((res) => {
    if(res.code==200){
      total.value = res.data.footSum
      produceList = deepClone(res.data.data)
      // ä½¿ç”¨map方法来处理每个对象
@@ -207,6 +208,7 @@
      total.dataTotal = res.data.total.total*1
      total.pageTotal= res.data.total.pageTotal
      pageTotal.value = res.data.total
      total.value = res.data.footSum
      produceList=res.data.data
      // ä½¿ç”¨map方法来处理每个对象
      let modifiedCollection = produceList.map(item => {
@@ -377,7 +379,8 @@
        }
        const List = ["thisCompletedQuantity",'completedArea','thisWornQuantity','wornArea']
        if (List.includes(column.field)) {
          return footSum(data, column.field)
          //return footSum(data, column.field)
          return total.value?.[column.field] ?? 0
        }
        return ''
      })
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -997,7 +997,7 @@
      titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName
      titleUploadData.value.calculateType = company.calculateType
      const today = new Date
      today.setTime(today.getTime() + (7 * 24 * 60 * 60 * 1000))
      today.setTime(today.getTime() + (company.deliveryDate * 24 * 60 * 60 * 1000))
      titleUploadData.value.deliveryDate = today.getFullYear() +
          '-' + ("0" + (today.getMonth() + 1)).slice(-2)
          + '-' + ("0" + today.getDate()).slice(-2)
@@ -1187,7 +1187,7 @@
    return
  }
  titleUploadData.value.project = item.project
  titleUploadData.value.salesmanId = item.salesmanId
  titleUploadData.value.salesmanId = parseInt(item.salesmanId)
  titleUploadData.value.salesman = item.salesman
  titleUploadData.value.contacts = item.contacts
  titleUploadData.value.contactNumber = item.contactNumber
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -159,15 +159,16 @@
    @ApiOperation("流程卡打印查询接口")
    @SaCheckPermission("selectPrintFlowCard.search")
    @PostMapping("/selectPrintFlowCard/{selectTime1}/{selectTime2}/{orderId}/{project}/{userId}")
    @PostMapping("/selectPrintFlowCard/{selectTime1}/{selectTime2}/{orderId}/{project}/{userId}/{state}")
    public Result selectPrintFlowCard(
            @PathVariable Date selectTime1,
            @PathVariable Date selectTime2,
            @PathVariable String orderId,
            @PathVariable String project,
            @PathVariable String userId,
            @PathVariable Integer state,
            @RequestBody FlowCard flowCard) {
        return Result.seccess(flowCardService.selectPrintFlowCardSv(selectTime1, selectTime2, orderId, project,userId, flowCard));
        return Result.seccess(flowCardService.selectPrintFlowCardSv(selectTime1, selectTime2, orderId, project,userId,state, flowCard));
    }
    @ApiOperation("流程卡明细查询接口")
@@ -243,6 +244,15 @@
        return Result.seccess(flowCardService.updateComposingSv(object));
    }
    @ApiOperation("复选框撤销可排版状态")
    @SaCheckPermission("selectProcessCard.review")
    @PostMapping("/revokeComposing")
    public Result revokeComposing(
            @RequestBody Map<String, Object> object
    ) {
        return Result.seccess(flowCardService.revokeComposingSv(object));
    }
    @ApiOperation("流程卡打印明细数据排序查询接口")
    @PostMapping("/printFlowCardDetails/{processId}/{technologyNumber}/{process}")
    public Result printFlowCardDetails(@PathVariable String processId,
north-glass-erp/src/main/java/com/example/erp/controller/pp/TagStyleController.java
@@ -3,8 +3,11 @@
import com.example.erp.common.Result;
import com.example.erp.entity.pp.TagStyle;
import com.example.erp.service.pp.TagStyleService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("tagStyle")
@@ -45,4 +48,12 @@
    public Result addTag(@RequestBody TagStyle tagStyle){
        return Result.seccess(tagStyleService.addTag(tagStyle));
    }
    @ApiOperation("修改标签打印次数")
    @PostMapping("/updatePrintNumber")
    public Result updatePrintNumber(
            @RequestBody Map<String, Object> object
    ) {
        return Result.seccess(tagStyleService.updatePrintNumberSv(object));
    }
}
north-glass-erp/src/main/java/com/example/erp/dto/sd/CustomerDTO.java
@@ -21,7 +21,7 @@
    @ExcelProperty("产品")
    private String productName;
    @ExcelProperty("数量")
    private Integer quantity;
    private Double quantity;
    @ExcelProperty("面积")
    private Double area;
    @ExcelProperty("单价")
north-glass-erp/src/main/java/com/example/erp/entity/mm/MaterialLog.java
@@ -43,6 +43,8 @@
    private String inventoryArea;
    @ExcelProperty("备注")
    private String remarks;
    @ExcelProperty("工程号")
    private String projectNo;
    @ExcelProperty("操作人")
    private String operator;
    @ExcelProperty("创建时间")
north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
@@ -68,6 +68,10 @@
    //private Product product;
    @TableField(exist= false,select = false)
    private String flowCardId;
    private String processId;
    @TableField(exist= false,select = false)
    private String baiscQuantity;
    @TableField(exist= false,select = false)
    private Integer landingSequence;
}
north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
@@ -252,4 +252,6 @@
    Boolean updateOptimizeUsesMes(@Param("useId") Integer useId,@Param("quantity") Integer quantity);
    String selectProjectNo(@Param("useId") Integer useId);
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -71,7 +71,7 @@
    Boolean deleteReportingWork(String processId);
    Boolean deleteReportingWorkByOrderId(String orderId);
    List<Map<String, String>> selectPrintFlowCardMp(Date selectTime1, Date selectTime2, String orderId, String project, FlowCard flowCard);
    List<Map<String, String>> selectPrintFlowCardMp(Date selectTime1, Date selectTime2, String orderId, String project, Integer state, FlowCard flowCard);
    List<Map<String, String>> selectPrintFlowCard(Date selectTime1, Date selectTime2);
@@ -230,5 +230,15 @@
    Map<String,Object> getGlassThicknessByProdutionId(String orderId,String productionId);
    List<OrderDetail>  getOrderDetailByProductionId(String orderId, String productionId);
    List<OrderDetail>  getOrderDetailByProductionId(String orderId, String productionId,String type,Float inLenMax,Float inLenMin,Float inShortMax,Float inShortMin);
    Boolean revokeComposing(String processId);
    Integer selectProjectNo(String processId);
    List<Map<String, String>> selectPrintDetailsMp2(String orderId);
    List<Map<String, Object>> getPrintOrderDataDetails(String orderId, Integer orderNumber, Integer printQuantity);
    Boolean updatePrintNumberMp(String processId, Integer orderNumber);
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/PatchLogMapper.java
@@ -49,5 +49,7 @@
    Boolean updateOrderProcessDetailCancel(@Param("patchLog") PatchLog patchLog,@Param("reportingWork") ReportingWork reportingWork);
    Boolean updateReplenishCancel(@Param("patchLog") PatchLog patchLog);
    Integer selectProjectCount(String processId);
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
@@ -87,6 +87,14 @@
    List<TeamOutputDTO> exportTeamOutputMp(List<LocalDate> date, String process);
    Map<String,Float> workInProgressOrderFootSum(String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
    Map<String,Float> processToBeCompletedFootSum(Date selectTime1, Date selectTime2, String orderId, String inputProject, String selectProcesses, Report report);
    Map<String,Float> damageReportFootSum(Date selectTime1, Date selectTime2, DamageReportDTO damageReportDTO);
    Map<String,Float> teamOutputFootSum(Date selectTime1, Date selectTime2, String selectProcesses, TeamOutputDTO teamOutputDTO);
//    Map<String, Integer> getWorkInProgressTotal(
//                                                @Param("selectTime1") Date selectTime1, @Param("selectTime2") Date selectTime2,
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
@@ -100,4 +100,6 @@
    String getProcessLaminating(String process);
    String selectOrderid(String processIdStr);
    Map<String,Float> getFootSum(Date selectTime1, Date selectTime2, String orderId, ReportingWork reportingWork);
}
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -93,6 +93,7 @@
                //删除材料出库明细的数据
                materialInventoryMapper.deleteMaterialOutboundDetail(materialOutboundId);
                materialInventoryMapper.updateMaterialOutbound(materialOutbound, materialOutboundId);
                materialInventoryMapper.deleteMaterialLog(materialOutboundId);
                oddNumber = materialOutboundId;
                log.setFunction("saveMaterialOutbound修改:"+oddNumber);
            } else {
@@ -114,13 +115,16 @@
                        materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1);
                        //修改物料库存表出库数量
                        materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                    if(materialOutboundDetail.getUseId()!=null){
                        //修改优化工程表出库数量
                        materialInventoryMapper.updateMaterialInventoryAvailableOptOut(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
                    }/*else{
                        String projectNo="";
                        if(materialOutboundDetail.getUseId()!=null){
                            projectNo = materialInventoryMapper.selectProjectNo(materialOutboundDetail.getUseId());
                            //修改优化工程表出库数量
                            materialInventoryMapper.updateMaterialInventoryAvailableOptOut(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
                        }/*else{
                        //修改物料库存表出库数量
                        materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                    }*/
                        }*/
                        String json="";
                        MaterialStore materialStore=materialStoreMapper.getSelectMaterialStoreById(Long.valueOf(materialOutboundDetail.getMaterialCode()));
                        json=materialStore.getJson().substring(1, materialStore.getJson().length() - 1);
@@ -140,6 +144,7 @@
                        materialLog.setInventoryId(materialOutboundDetail.getId());
                        materialLog.setInventoryArea(materialInventory.getInventoryArea());
                        materialLog.setRemarks(materialOutboundDetail.getRemarks());
                        materialLog.setProjectNo(projectNo);
                        materialLog.setOperator(object.get("userName").toString());
                        materialLog.setOperateTime(LocalDate.now());
                        materialLogMapper.insert(materialLog);
@@ -163,7 +168,7 @@
            sysError.setError(e+Arrays.toString(e.getStackTrace()));
            sysError.setFunc("saveMaterialOutbound");
            sysErrorService.insert(sysError);
            saveState = "false1";
            saveState = "false";
        }
        return saveState;
@@ -338,7 +343,10 @@
                    for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) {
                        //还原物料库存数
                        materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
                        if(materialOutboundDetail.getUseId()!=null){
                            //还原优化工程库存数
                            materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
                        }
                    }
                }
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -219,7 +219,7 @@
        return map;
    }
    public Object selectPrintFlowCardSv(Date selectTime1, Date selectTime2, String orderId, String project, String userId, FlowCard flowCard) {
    public Object selectPrintFlowCardSv(Date selectTime1, Date selectTime2, String orderId, String project, String userId, Integer state, FlowCard flowCard) {
        if ("null".equals(orderId)) {
            orderId = "";
        }
@@ -227,7 +227,7 @@
            project = "";
        }
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.selectPrintFlowCardMp(selectTime1, selectTime2, orderId, project, flowCard));
        map.put("data", flowCardMapper.selectPrintFlowCardMp(selectTime1, selectTime2, orderId, project,state, flowCard));
        String roleId = flowCardMapper.selectUserMp(userId);
        map.put("user", roleId);
        return map;
@@ -776,10 +776,12 @@
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                Map<String, Object> itemmap = new HashMap<>();
                if (type == 1) {
                if (type == 1) {//明细打印
                    itemmap.put("detail", flowCardMapper.selectPrintDetailsMp(flowCard.getOrderId()));
                } else if (type == 2) {
                } else if (type == 2) {//明细分架打印
                    itemmap.put("detail", flowCardMapper.selectPrintDetailsMp1(flowCard.getOrderId()));
                }else if (type == 3) {//订单打印
                    itemmap.put("detail", flowCardMapper.selectPrintDetailsMp2(flowCard.getOrderId()));
                }
                list.add(itemmap);
@@ -799,20 +801,28 @@
            if (lableType != 2) {//成品标签
                for (FlowCard flowCard : flowCardList) {
                    String orderId = flowCard.getOrderId();
                    String processId = flowCard.getProcessId();
                    String orderNumber = flowCard.getOrderNumber().toString();
                       if (processId!=null){
                           // æ£€æŸ¥æ˜¯å¦å·²ç»å¤„理过该 processId,如果处理过则跳过
                           if (processedProcessIds.contains(processId) && processedProcessIds.contains(orderNumber)) {
                               continue;
                           }
                           Map<String, Object> itemmap = new HashMap<>();
                           itemmap.put("data", flowCardMapper.getPrintCustomDataDetails(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity()));
                           list.add(itemmap);
                    // æ£€æŸ¥æ˜¯å¦å·²ç»å¤„理过该 processId,如果处理过则跳过
                    if (processedProcessIds.contains(processId) && processedProcessIds.contains(orderNumber)) {
                        continue;
                    }
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomDataDetails(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity()));
                    list.add(itemmap);
                           // å°†è¯¥ processId åŠ å…¥å·²å¤„ç†é›†åˆ
                           processedProcessIds.add(processId);
                           processedProcessIds.add(orderNumber);
                       } else{
                    // å°†è¯¥ processId åŠ å…¥å·²å¤„ç†é›†åˆ
                    processedProcessIds.add(processId);
                    processedProcessIds.add(orderNumber);
                           Map<String, Object> itemmap = new HashMap<>();
                           itemmap.put("data", flowCardMapper.getPrintOrderDataDetails(flowCard.getOrderId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity()));
                           list.add(itemmap);
                       }
                }
            } else {//小片标签
                for (FlowCard flowCard : flowCardList) {
@@ -1052,27 +1062,37 @@
    }
    public Object processCardAutoRack(Map<String, Object> object) {
        String orderId = "NG25000004";
        String productionId = "NG25000004B";
        /*String orderId = object.get("orderId").toString();
        String orderId = object.get("orderId").toString();
        String productionId = object.get("productionId").toString();
        Integer inMaxQuantity = Integer.parseInt(object.get("inMaxQuantity").toString());
        Float inWeight =  Float.parseFloat(object.get("inWeight").toString());
        Float shelfThickness =  Float.parseFloat(object.get("shelfThickness").toString())*1000;
        Float shelfThickness =  Float.parseFloat(object.get("shelfThickness").toString());
        Float spacerThickness =  Float.parseFloat(object.get("spacerThickness").toString());
        */
        Float inLenMax = Float.parseFloat(object.get("inLenMax").toString());
        Float inLenMin = Float.parseFloat(object.get("inLenMin").toString());
        Float inShortMax = Float.parseFloat(object.get("inShortMax").toString());
        Float inShortMin = Float.parseFloat(object.get("inShortMin").toString());
        /*String orderId = "NG25000004";
        String productionId = "NG25000004A";
        Integer inMaxQuantity = 1;
        Float inWeight = 100.0f;
        Float inWeight = 4000.0f;
        Float shelfThickness = 2000.0f;
        /*垫片厚度*/
        Float spacerThickness = 0.0f;
        Float maxHeight = 1520.0f;
        Float maxWid = 400.0f;
        Float spacerThickness = 0.0f;//垫片厚度*/
        Map<String, Object> thickness = flowCardMapper.getGlassThicknessByProdutionId(orderId, productionId);
        //成品玻璃总厚度
        Float glassTotalThickness = Float.parseFloat(thickness.get("totalThickness").toString());
        //成品玻璃厚度
        Float glassThickness = Float.parseFloat(thickness.get("thickness").toString());
        //获取此工程号订单明细信息
        List<OrderDetail> orderDetails = flowCardMapper.getOrderDetailByProductionId(orderId, productionId);
        List<OrderDetail> orderDetails = flowCardMapper.getOrderDetailByProductionId(orderId, productionId,"scope",inLenMax,inLenMin,inShortMax,inShortMin);
        List<OrderDetail> orderDetailsNotScope = flowCardMapper.getOrderDetailByProductionId(orderId, productionId,"notScope",inLenMax,inLenMin,inShortMax,inShortMin);
        //根据玻璃厚度和垫片厚度当前架子最大可放数量
        Integer shelfMaxQuantityByThickness = (int) (shelfThickness / (glassTotalThickness + spacerThickness));
@@ -1094,58 +1114,72 @@
            );
            //当前订单明细剩余数量
            if (shelfQuantity == 0) {
                shelfQuantity = shelfQuantityByWeight;
            }else if(shelfQuantity>0){
                String FlowCardId = orderDetailList.get(orderDetailList.size() - 1).getFlowCardId();
                shelfQuantity =Math.min( Math.min(shelfMaxQuantityByThickness,inMaxQuantity),shelfQuantityByWeight);
            }else if(shelfQuantity>0){//架子剩余数量大于0时,判断当前架子剩余重量,是否支持最新序号的的成品重量
                String FlowCardId = orderDetailList.get(orderDetailList.size() - 1).getProcessId();
                double flowCardWeight = 0.0;
                for (OrderDetail orderDetail1 : orderDetailList) {
                    if (orderDetail1.getFlowCardId().equals(FlowCardId)) {
                    if (orderDetail1.getProcessId().equals(FlowCardId)) {
                        flowCardWeight += orderDetail1.getHeight()*orderDetail1.getQuantity()* orderDetail1.getWidth()* glassThickness* 2.5 / 1000000;
                    }
                }
                if(flowCardWeight>0){
                    //System.out.println(inWeight+","+flowCardWeight);
                    flowCardWeight = inWeight - flowCardWeight;
                    shelfQuantity = (int) (flowCardWeight /
                    //按照当前流程卡剩余重量,计算当前流程卡剩余数量
                    int remainingQuantity = (int) (flowCardWeight /
                            (orderDetail.getHeight()
                                    * orderDetail.getWidth()
                                    * glassThickness
                                    * 2.5 / 1000000));
                    shelfQuantity =Math.min(Math.min(Math.min(shelfQuantityByWeight, Math.min(inMaxQuantity, shelfMaxQuantityByThickness)),shelfQuantity),remainingQuantity);
                    if (shelfQuantity == 0) {
                        shelfQuantity = shelfQuantityByWeight;
                        shelfQuantity = Math.min(shelfQuantityByWeight, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
                        flowCardNo += 1;
                    }
                }
            }
            //取最小值
            Integer maxQuantity = 0;
            //Integer maxQuantity = 0;
            while (orderDetail.getQuantity() > 0) {
                OrderDetail newOrderDetail = new OrderDetail();
                //当死循环中,当前架子剩余数量为0时,重新计算架子剩余数量
                if (shelfQuantity == 0) {
                    shelfQuantity = shelfQuantityByWeight;
                    shelfQuantity = Math.min(Math.min(shelfMaxQuantityByThickness,inMaxQuantity),shelfQuantityByWeight);
                }
                String processId = productionId + String.format("%05d", flowCardNo);
                String processId = productionId + String.format("%03d", flowCardNo);
                //取最小值
                maxQuantity = Math.min(shelfQuantity, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
                /*System.out.println(shelfQuantity + "," + inMaxQuantity + "," + shelfMaxQuantityByThickness);
                //maxQuantity = Math.min(shelfQuantity, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
                //maxQuantity = Math.min(shelfQuantity,  shelfMaxQuantityByThickness);
                /*System.out.println("订单序号:"+orderDetail.getOrderNumber());
                System.out.println(shelfQuantity + ","  + "," + shelfMaxQuantityByThickness);
                System.out.println(flowCardNo + "," + maxQuantity);
                System.out.println("------");*/
                if(shelfQuantity<=0){
                    return false;
                }
                if (orderDetail.getQuantity() > maxQuantity) {
                    newOrderDetail.setFlowCardId(processId);
                    newOrderDetail.setQuantity(Long.valueOf(maxQuantity));
                if (orderDetail.getQuantity() > shelfQuantity) {
                    newOrderDetail.setProcessId(processId);
                    newOrderDetail.setQuantity(Long.valueOf(shelfQuantity));
                    newOrderDetail.setHeight(orderDetail.getHeight());
                    newOrderDetail.setWidth(orderDetail.getWidth());
                    newOrderDetail.setOrderNumber(orderDetail.getOrderNumber());
                    newOrderDetail.setShape(orderDetail.getShape());
                    newOrderDetail.setLandingSequence(flowCardNo);
                    orderDetailList.add(newOrderDetail);
                    orderDetail.setQuantity(orderDetail.getQuantity() - maxQuantity);
                    orderDetail.setQuantity(orderDetail.getQuantity() - shelfQuantity);
                    flowCardNo += 1;
                    shelfQuantity = shelfQuantity - shelfQuantity;
                } else {
                    newOrderDetail.setFlowCardId(processId);
                    newOrderDetail.setProcessId(processId);
                    newOrderDetail.setQuantity(orderDetail.getQuantity());
                    newOrderDetail.setHeight(orderDetail.getHeight());
                    newOrderDetail.setWidth(orderDetail.getWidth());
                    newOrderDetail.setOrderNumber(orderDetail.getOrderNumber());
                    newOrderDetail.setShape(orderDetail.getShape());
                    newOrderDetail.setLandingSequence(flowCardNo);
                    orderDetailList.add(newOrderDetail);
                    //当前架子剩余数量
                    shelfQuantity = shelfQuantity - Math.toIntExact(orderDetail.getQuantity());
@@ -1157,12 +1191,33 @@
            }
        }
        return orderDetailList;
        Map<String, Object> map = new HashMap<>();
        Collections.reverse(orderDetailList);
        map.put("orderDetailList", orderDetailList);
        map.put("orderDetailsNotScope", orderDetailsNotScope);
        return map;
    }
    public Boolean revokeComposingSv(Map<String, Object> object) {
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("composing")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                //获取没有工程号的条数,已生成工程号不能撤回
              Integer count =  flowCardMapper.selectProjectNo(flowCard.getProcessId());
              if (count == 0){
                  flowCardMapper.revokeComposing(flowCard.getProcessId());
              } else {
                  return false;
              }
            }
            return true;
        } else {
            return false;
        }
    }
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
@@ -305,34 +305,41 @@
            List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class);
            if (!patchLoglist.isEmpty()){
                for (PatchLog patchLog : patchLoglist) {
                    //查询是否已生成工程号
                    Integer projectCount = patchMapper.selectProjectCount(patchLog.getProcessId());
                    //查询流程卡工艺流程
                    String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(patchLog.getProcessId(), String.valueOf(patchLog.getTechnologyNumber()));
                    if (technologicalProcess!=null || !technologicalProcess.equals("")) {
                        String[] processList = technologicalProcess.split("->");
                        //获取工艺流程第一个工序
                        String interceptProcess = processList[0];
                        Integer firstStep=reportingWorkMapper.getFirstStep(patchLog.getProcessId(),patchLog.getOrderSort(),patchLog.getTechnologyNumber(),interceptProcess);
                          if (firstStep>=patchLog.getPatchNum()){
                              ReportingWork reportingWork = reportingWorkMapper
                                      .selectOne(new QueryWrapper<ReportingWork>().eq("reporting_work_id",patchLog.getReportingWorkId()));
                              //修改小片流程卡数量
                              patchMapper.updateOrderProcessDetailCancel(patchLog,reportingWork);
                              //审核
                              patchMapper.updateReplenishCancel(patchLog);
                          }
                          else {
                              saveState = false;
                          }
                    }else{
                    if (projectCount == 0){
                        if (technologicalProcess!=null || !technologicalProcess.equals("")) {
                            String[] processList = technologicalProcess.split("->");
                            //获取工艺流程第一个工序
                            String interceptProcess = processList[0];
                            Integer firstStep=reportingWorkMapper.getFirstStep(patchLog.getProcessId(),patchLog.getOrderSort(),patchLog.getTechnologyNumber(),interceptProcess);
                            if (firstStep>=patchLog.getPatchNum()){
                                ReportingWork reportingWork = reportingWorkMapper
                                        .selectOne(new QueryWrapper<ReportingWork>().eq("reporting_work_id",patchLog.getReportingWorkId()));
                                //修改小片流程卡数量
                                patchMapper.updateOrderProcessDetailCancel(patchLog,reportingWork);
                                //审核
                                patchMapper.updateReplenishCancel(patchLog);
                            }
                            else {
                                saveState = false;
                            }
                        }else{
                            saveState = false;
                        }
                        Log log = new Log();
                        log.setContent(object.toString());
                        log.setFunction("updateCancelReviewSv补片反审");
                        log.setOperatorId((String) object.get("userId"));
                        log.setOperator((String) object.get("userName"));
                        logService.saveLog(log);
                    } else {
                        saveState = false;
                    }
                    Log log = new Log();
                    log.setContent(object.toString());
                    log.setFunction("updateCancelReviewSv补片反审");
                    log.setOperatorId((String) object.get("userId"));
                    log.setOperator((String) object.get("userName"));
                    logService.saveLog(log);
                }
            }
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -144,17 +144,20 @@
            /* æ ¹æ®é”€å”®å•号汇总*/
            map.put("data", reportMapper.workInProgressOrderMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            map.put("total", reportMapper.workInProgressOrderTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            map.put("footSum" ,reportMapper.workInProgressOrderFootSum(orderId, inputProject, selectProcesses, workInProgressDTO));
        }else if(optionVal.equals("2")){
            /* æ ¹æµç¨‹å¡å·æ±‡æ€»*/
            map.put("data", reportMapper.workInProgressProcessMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            map.put("total", reportMapper.workInProgressProcessTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            map.put("footSum" ,reportMapper.workInProgressOrderFootSum(orderId, inputProject, selectProcesses, workInProgressDTO));
        } else if (optionVal.equals("3")) {
        } else {
            //没有选择分组
            map.put("data", reportMapper.workInProgressMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            map.put("total", reportMapper.workInProgressTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            map.put("footSum" ,reportMapper.workInProgressOrderFootSum(orderId, inputProject, selectProcesses, workInProgressDTO));
        }
        map.put("process", productionSchedulingMapper.selectProcess());
@@ -171,6 +174,8 @@
        Map<String, Object> map = new HashMap<>();
        map.put("data", reportMapper.processToBeCompletedMp(selectTime1, selectTime2, orderId, inputProject, selectProcesses, report));
        map.put("process", productionSchedulingMapper.selectProcess());
        map.put("footSum" ,reportMapper.processToBeCompletedFootSum(selectTime1, selectTime2, orderId, inputProject, selectProcesses, report));
        return map;
    }
@@ -179,6 +184,7 @@
        Map<String, Object> map = new HashMap<>();
        map.put("data", reportMapper.selectDamageReportMp(offset, pageSize, selectTime1, selectTime2, damageReportDTO));
        map.put("total", reportMapper.getDamageReportPageTotal(offset, pageSize, selectTime1, selectTime2, damageReportDTO));
        map.put("footSum" ,reportMapper.damageReportFootSum(selectTime1, selectTime2, damageReportDTO));
        return map;
    }
@@ -417,6 +423,7 @@
        map.put("data", reportMapper.teamOutputMp(offset, pageSize, selectTime1, selectTime2,selectProcesses, teamOutputDTO));
        map.put("process", productionSchedulingMapper.selectProcess());
        map.put("total", reportMapper.teamOutputPageTotal(offset, pageSize, selectTime1, selectTime2,selectProcesses, teamOutputDTO));
        map.put("footSum" ,reportMapper.teamOutputFootSum(selectTime1, selectTime2,selectProcesses, teamOutputDTO));
        return map;
    }
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -542,6 +542,7 @@
        Map<String, Object> map = new HashMap<>();
        map.put("data", reportingWorkMapper.selectReportingWorkMp(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
        map.put("total", reportingWorkMapper.getPageTotal(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
        map.put("footSum" ,reportingWorkMapper.getFootSum(selectTime1, selectTime2, orderId,reportingWork));
        return map;
    }
@@ -675,13 +676,38 @@
            JSONObject reportingWorkJson = new JSONObject(reportingWorkMap);
            ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class);
            ReportingWorkDetail reportingWorkDetail =JSON.parseObject(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class);
            //查询流程卡工艺流程
            String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(reportingWork.getProcessId(), reportingWorkDetail.getTechnologyNumber());
            int index = technologicalProcess.indexOf("-");
            String interceptProcess = "";
            if (index <0){
                interceptProcess = technologicalProcess;
            }
            else {
                //获取工艺流程第一个工序
                interceptProcess = technologicalProcess.substring(0, index);
            }
            int processNum =0;
            if (interceptProcess.equals(reportingWork.getThisProcess())) {
                processNum = reportingWorkMapper.selectFlowCardNum(
                        reportingWorkDetail.getOrderNumber(),
                        reportingWorkDetail.getTechnologyNumber(),
                        reportingWork.getProcessId(),
                        reportingWork.getThisProcess()
                );
            }else{
                 processNum = reportingWorkMapper.selectGlassProcessNum(
                        reportingWorkDetail.getOrderNumber(),
                        reportingWorkDetail.getTechnologyNumber(),
                        reportingWork.getProcessId(),
                        reportingWork.getThisProcess()
                );
            }
            //获取可报数量
            int processNum = reportingWorkMapper.selectGlassProcessNum(
                    reportingWorkDetail.getOrderNumber(),
                    reportingWorkDetail.getTechnologyNumber(),
                    reportingWork.getProcessId(),
                    reportingWork.getThisProcess()
            );
            //判断是否大于当前数量并且抛出异常
            if (processNum < (reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity())) {
                return false;
north-glass-erp/src/main/java/com/example/erp/service/pp/TagStyleService.java
@@ -1,20 +1,28 @@
package com.example.erp.service.pp;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.pp.TagStyle;
import com.example.erp.mapper.pp.FlowCardMapper;
import com.example.erp.mapper.pp.TagStyleMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
@DS("pp")
public class TagStyleService {
    private final TagStyleMapper tagStyleMapper;
    public TagStyleService(TagStyleMapper tagStyleMapper) {
    final
    FlowCardMapper flowCardMapper;
    public TagStyleService(TagStyleMapper tagStyleMapper, FlowCardMapper flowCardMapper) {
        this.tagStyleMapper = tagStyleMapper;
        this.flowCardMapper = flowCardMapper;
    }
    public Boolean saveTag(TagStyle tagStyle) {
@@ -47,4 +55,17 @@
        tagStyle.setId(null);
        return tagStyleMapper.insert(tagStyle)>0;
    }
    public Boolean updatePrintNumberSv(Map<String, Object> object) {
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                // æ›´æ–°æ‰“印状态
                flowCardMapper.updatePrintNumberMp( flowCard.getProcessId(), flowCard.getOrderNumber());
            }
            return true;
        } else {
            return false;
        }
    }
}
north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -958,13 +958,13 @@
            </if>
            <if test="materialLog.inventoryId != null and materialLog.inventoryId != ''">
                and  ml.inventoryId regexp  #{materialLog.inventoryId}
                and  ml.inventory_id regexp  #{materialLog.inventoryId}
            </if>
            <if test="materialLog.materialCode != null and materialLog.materialCode != ''">
                and  ml.materialCode regexp  #{materialLog.materialCode}
                and  ml.material_code regexp  #{materialLog.materialCode}
            </if>
            <if test="materialLog.materialName != null and materialLog.materialName != ''">
                and  ml.materialName regexp  #{materialLog.materialName}
                and  ml.material_name regexp  #{materialLog.materialName}
            </if>
            <if test="materialLog.producer != null and materialLog.producer != ''">
                and  ml.producer regexp  #{materialLog.producer}
@@ -983,6 +983,9 @@
            </if>
            <if test="materialLog.remarks != null and materialLog.remarks != ''">
                and ml.remarks regexp #{materialLog.remarksr}
            </if>
            <if test="materialLog.projectNo != null and materialLog.projectNo != ''">
                and ml.project_no regexp #{materialLog.projectNo}
            </if>
        </where>
        order by ml.id desc
@@ -1019,13 +1022,13 @@
            </if>
            <if test="materialLog.inventoryId != null and materialLog.inventoryId != ''">
                and  ml.inventoryId regexp  #{materialLog.inventoryId}
                and  ml.inventory_id regexp  #{materialLog.inventoryId}
            </if>
            <if test="materialLog.materialCode != null and materialLog.materialCode != ''">
                and  ml.materialCode regexp  #{materialLog.materialCode}
                and  ml.material_code regexp  #{materialLog.materialCode}
            </if>
            <if test="materialLog.materialName != null and materialLog.materialName != ''">
                and  ml.materialName regexp  #{materialLog.materialName}
                and  ml.material_name regexp  #{materialLog.materialName}
            </if>
            <if test="materialLog.producer != null and materialLog.producer != ''">
                and  ml.producer regexp  #{materialLog.producer}
@@ -1087,13 +1090,13 @@
        </where>
    </select>
    <select id="updateMaterialOutboundOptimizeUses">
    <update id="updateMaterialOutboundOptimizeUses">
        update mm.material_outbound_detail set outbound_quantity=outbound_quantity+#{quantity} where use_id=#{useId};
    </select>
    </update>
    <select id="updateOptimizeUsesMes">
    <update id="updateOptimizeUsesMes">
        update pp.optimize_use set not_use_count=not_use_count-#{quantity} where id=#{useId};
    </select>
    </update>
    <insert id="insertMaterialOutboundDetailOptimizeUses"  useGeneratedKeys="true" >
        insert into mm.material_outbound_detail (material_outbound_id,material_outbound_number,material_code,use_id,inventory_id,inventory_organization,
@@ -1112,5 +1115,9 @@
               )
    </insert>
    <select id="selectProjectNo">
        select project_no from pp.optimize_use where id=#{useId};
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -515,7 +515,7 @@
        where date(create_time)>=#{selectTime1} and date(create_time) &lt;= #{selectTime2}
          and position(#{orderId} in order_id)
          and position(#{project} in project)
          and processing_card >0
          and if(#{state}=0,(order_review >0 and processing_card =0),processing_card >0)
        order by create_time desc
    </select>
@@ -525,7 +525,7 @@
                 left join pp.flow_card as fc on op.project_no=fc.project_no
                 left join sd.`order` as o on o.order_id=fc.order_id
        where date(op.create_time)>=#{selectTime1} and date(op.create_time) &lt;= #{selectTime2}
          and state >= 20 and o.create_order>0
          and state >= 20 and (o.create_order>0   or o.create_order is null)
        GROUP BY op.project_no
        order by op.create_time desc
    </select>
@@ -853,7 +853,8 @@
               od.other_columns,
               od.bend_radius,
               od.order_number as heat_layout_id,
               a.id as heat_layout_sort
               a.id as heat_layout_sort,
               od.product_name
        from pp.optimize_detail opd
                 left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
                 left join sd.order_detail od
@@ -888,7 +889,8 @@
               od.other_columns,
               od.bend_radius,
               opd.heat_layout_id,
               opd.heat_layout_sort
               opd.heat_layout_sort,
               od.product_name
        from pp.optimize_detail opd
                 left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
                 left join sd.order_detail od
@@ -1455,7 +1457,8 @@
               pd.separation,
               fc.technology_number,
               IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
               od.building_number
               od.building_number,
               fc.merge                                                         as merge
        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
@@ -2313,10 +2316,12 @@
               fc.founder,
               date(fc.splitFrame_time)                                               as splitFrame_time,
            /* if(fc.print_status=0,'未打印','已打印') as  print_status*/
               fc.print_status,
               ifnull(fc.print_number,0) as  print_status,
               ogd.process,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
               od.order_number
               od.order_number,
               od.width,
               od.height
        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
@@ -2344,10 +2349,12 @@
               fc.founder,
               date(fc.splitFrame_time)                                               as splitFrame_time,
            /* if(fc.print_status=0,'未打印','已打印') as  print_status*/
               fc.print_status,
               ifnull(fc.print_number,0) as  print_status,
               ogd.process,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
               od.order_number
               od.order_number,
               ogd.child_width as width,
               ogd.child_height as height
        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
@@ -2851,7 +2858,7 @@
    </select>
    <select id="flowCardToOptimizeCount">
        select count(*) from pp.flow_card where order_id = #{orderId} and engineering_occupancy=1
        select count(*) from pp.flow_card where order_id = #{orderId} and project_no is not null
    </select>
    <select id="getFlowCardDetail" >
@@ -2892,13 +2899,150 @@
    
    <select id="getOrderDetailByProductionId">
        select * from (select a.*,
                              a.quantity as 'baiscQuantity',
        IF(a.height >= a.width, a.height, a.width) as 'long',
        IF(a.height &lt; a.width, a.height, a.width) as 'short'
        from sd.order_detail as a
        left join sd.order_glass_detail as b
        on a.order_id = b.order_id and a.order_number = b.order_number
        where a.order_id = #{orderId} and b.production_id = #{productionId}
        group by a.order_number) as c
        <if test="type=='scope'">
            where  c.`long` &lt;= #{inLenMax}
                and c.`long` >= #{inLenMin}
                and c.`short` >= #{inShortMin}
                and c.`short` &lt;= #{inShortMax}
        </if>
        <if test="type=='notScope'">
            where  !(c.`long` &lt;= #{inLenMax}
            and c.`long` >= #{inLenMin}
            and c.`short` >= #{inShortMin}
            and c.`short` &lt;= #{inShortMax})
        </if>
        order by c.`long` desc
    </select>
    <!--    å¤é€‰æ¡†ä¿®æ”¹æŽ’版状态-->
    <update id="revokeComposing">
        update flow_card as fc
        set fc.layout_status=0
        where fc.process_id = #{processId}
    </update>
    <select id="selectProjectNo">
        SELECT COUNT(*)
        FROM flow_card
        WHERE process_id= #{processId} and project_no IS not NULL;
    </select>
    <select id="selectPrintDetailsMp2">
        select ogd.id,
               ogd.order_id,
               o.customer_name,
               o.project,
               ogd.technology_number,
               ogd.glass_address,
               (od.quantity)                                                          as quantity,
               (od.quantity)                                                          as printQuantity,
               round((ogd.child_width * ogd.child_height * od.quantity / 1000000), 2) as total_area,
               od.product_name,
               ogd.glass_child,
               ogd.process,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
               od.order_number,
               ogd.child_width as width,
               ogd.child_height as height
        from sd.order_glass_detail as ogd
                 left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
                 left join sd.`order` as o on o.order_id = ogd.order_id
        where ogd.order_id = #{orderId}
        GROUP BY od.order_number
        order by od.order_number
    </select>
    <select id="getPrintOrderDataDetails">
        select o.order_id                                            as orderId,
               project,
               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,
               money,
               contract_id                                           as contractId,
               customer_batch                                           customerBatch,
               contacts,
               delivery_address                                      as deliveryAddress,
               od.processing_note                                    as processingNote,
               width,
               height,
               #{printQuantity}                                      as quantity,
               CONCAT(
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',#{printQuantity} )      as size,
               CONCAT(
                   od.order_number,')  ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',#{printQuantity} )      as numberSize,
            od.order_number                                       as orderNumber,
            ogd.technology_number                                  as technologyNumber,
            od.building_number                                    as buildingNumber,
            od.product_name                                       as productName,
            od.edging_type                                        as edgingType,
            od.remarks,
            c.customer_abbreviation                               as customerAbbreviation,
            p.product_abbreviation                                as productAbbreviation,
            ''                                         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,
            '文本' as custom1,
            '文本' as custom2,
            '文本' as custom3,
            '文本' as custom4,
            '文本' as custom5,
            od.quantity
        from sd.order as o
            left join sd.order_detail as od on o.order_id = od.order_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.order_glass_detail as ogd
            on ogd.order_id = od.order_id and ogd.order_number = od.order_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 = ogd.technology_number
        where od.order_id = #{orderId}
          and od.order_number = #{orderNumber}
        group by od.order_number, width, height
        order by od.order_id
    </select>
    <select id="updatePrintNumberMp">
        update pp.flow_card
        set print_number = ifnull(print_number,0) + 1
        where process_id = #{processId}
          and order_number = #{orderNumber}
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/PatchLogMapper.xml
@@ -411,5 +411,10 @@
        update pp.patch_log set reviewer=null,review_status=0,update_time=now() where id=#{patchLog.id}
    </update>
    <select id="selectProjectCount">
        SELECT COUNT(*)
        FROM flow_card
        WHERE process_id= #{processId} and project_no IS not NULL;
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -1836,4 +1836,227 @@
          and date(scheduled_start_time) &lt;= #{date[1]}
        GROUP BY ps.order_id, ps.processes
    </select>
    <select id="workInProgressOrderFootSum">
        SELECT
        SUM(od.quantity) AS quantity,
        SUM(odpds.reporting_work_num_count + IFNULL(c.patchNumSum, 0) - odpd.reporting_work_num_count - odpd.broken_num) AS stockNum,
        SUM(ROUND(ogd.child_width * ogd.child_height *
        (odpds.reporting_work_num_count + IFNULL(c.patchNumSum, 0) - odpd.reporting_work_num_count - odpd.broken_num) / 1000000, 2)) AS stockArea
        FROM sd.order_detail AS od
        LEFT JOIN sd.order_glass_detail AS ogd
        ON od.order_id = ogd.order_id
        AND od.order_number = ogd.order_number
        LEFT JOIN flow_card AS fc
        ON fc.order_id = ogd.order_id
        AND fc.production_id = ogd.production_id
        AND fc.order_number = ogd.order_number
        AND fc.technology_number = ogd.technology_number
        LEFT JOIN sd.order_process_detail AS odpd
        ON odpd.order_id = fc.order_id
        AND odpd.order_number = fc.order_number
        AND odpd.technology_number = fc.technology_number
        AND odpd.process_id = fc.process_id
        LEFT JOIN sd.order_process_detail AS odpds
        ON odpds.id = odpd.id - 1
        LEFT JOIN (
        SELECT
        SUM(rw.rework_num) AS patchNumSum,
        rw.process_id,
        rw.order_sort,
        rw.technology_number,
        rwk.this_process
        FROM rework AS rw
        LEFT JOIN reporting_work AS rwk
        ON rw.reporting_work_id = rwk.reporting_work_id
        WHERE rwk.this_process = #{selectProcesses}
        AND rw.review_status >= 0
        GROUP BY rw.process_id, rw.order_sort, rw.technology_number
        ) AS c
        ON c.process_id = fc.process_id
        AND c.order_sort = fc.order_number
        AND c.technology_number = fc.technology_number
        LEFT JOIN sd.`order` AS o
        ON o.order_id = od.order_id
        LEFT JOIN (
        SELECT
        a.process_id,
        a.teams_groups_name,
        a.next_process,
        b.technology_number,
        b.order_number
        FROM reporting_work AS a
        LEFT JOIN reporting_work_detail AS b
        ON a.reporting_work_id = b.reporting_work_id
        GROUP BY a.process_id, a.teams_groups_name, a.next_process, b.order_number, b.technology_number
        ) AS rws
        ON rws.process_id = fc.process_id
        AND rws.order_number = fc.order_number
        AND rws.technology_number = fc.technology_number
        AND rws.next_process = #{selectProcesses}
        WHERE o.create_order > 0
        AND odpds.reporting_work_num_count + IFNULL(c.patchNumSum, 0) - odpd.reporting_work_num_count - odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
        and position(#{orderId} in od.order_id)
        and position(#{inputProject} in o.project)
        <if test="workInProgressDTO.customerName != null and workInProgressDTO.customerName != ''">
            and o.customer_name regexp #{workInProgressDTO.customerName}
        </if>
        <if test="workInProgressDTO.project != null and workInProgressDTO.project != ''">
            and o.project regexp #{workInProgressDTO.project}
        </if>
        <if test="workInProgressDTO.orderId != null and workInProgressDTO.orderId != ''">
            and o.order_id regexp #{workInProgressDTO.orderId}
        </if>
        <if test="workInProgressDTO.batch != null and workInProgressDTO.batch != ''">
            and o.batch regexp #{workInProgressDTO.batch}
        </if>
        <if test="workInProgressDTO.processId != null and workInProgressDTO.processId != ''">
            and fc.process_id regexp #{workInProgressDTO.processId}
        </if>
        order by o.order_id, fc.process_id
    </select>
    <select id="processToBeCompletedFootSum">
        SELECT
            SUM(fc.quantity) AS quantity,
            ROUND(SUM(ogd.child_width * ogd.child_height) / 1000000, 2) AS childArea,
            ROUND(SUM(ogd.child_width * ogd.child_height * fc.quantity) / 1000000, 2) AS actualArea,
            SUM(odpd.reporting_work_num) AS completeNum,
            ROUND(SUM(ogd.child_width * ogd.child_height * odpd.reporting_work_num) / 1000000, 2) AS completeArea,
            SUM(fc.quantity - odpd.reporting_work_num) AS incompleteNum,
            ROUND(SUM(ogd.child_width * ogd.child_height * (fc.quantity - odpd.reporting_work_num)) / 1000000, 2) AS incompleteArea
        FROM sd.order_detail AS od
                 LEFT JOIN sd.order_glass_detail AS ogd
                           ON od.order_id = ogd.order_id
                               AND od.order_number = ogd.order_number
                 LEFT JOIN flow_card AS fc
                           ON fc.order_id = ogd.order_id
                               AND fc.production_id = ogd.production_id
                               AND fc.order_number = ogd.order_number
                               AND fc.technology_number = ogd.technology_number
                 LEFT JOIN sd.order_process_detail AS odpd
                           ON odpd.order_id = fc.order_id
                               AND odpd.order_number = fc.order_number
                               AND odpd.technology_number = fc.technology_number
                               AND odpd.process_id = fc.process_id
                 LEFT JOIN sd.`order` AS o
                           ON o.order_id = od.order_id
        WHERE o.create_order > 0
          and odpd.process = #{selectProcesses}
          and  o.create_time >= #{selectTime1}
          AND o.create_time &lt;  #{selectTime2}
          AND POSITION('' IN od.order_id)
          AND POSITION('' IN o.project)
          AND fc.quantity - odpd.reporting_work_num > 0;
    </select>
    <select id="damageReportFootSum">
        SELECT
            SUM(dd.breakage_quantity) AS breakageQuantity,
            ROUND(SUM(ogd.child_width * ogd.child_height * dd.breakage_quantity) / 1000000, 2) AS area
        FROM
            sd.ORDER AS o
                LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
                LEFT JOIN reporting_work AS rw ON rw.order_id = o.order_id
                LEFT JOIN damage_details AS dd ON dd.reporting_work_id = rw.reporting_work_id
                AND dd.order_number = ogd.order_number
                AND dd.technology_number = ogd.technology_number
                LEFT JOIN sd.order_detail AS od ON o.order_id = od.order_id
                AND od.order_number = ogd.order_number
        WHERE
            rw.reporting_work_time >= #{selectTime1}
          AND rw.reporting_work_time &lt;  #{selectTime2}
          AND dd.available = 0;
        <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
            and o.order_id regexp #{damageReportDTO.orderId}
        </if>
        <if test="damageReportDTO.project != null and damageReportDTO.project != ''">
            and o.project regexp #{damageReportDTO.project}
        </if>
        <if test="damageReportDTO.processId != null and damageReportDTO.processId != ''">
            and rw.process_id regexp #{damageReportDTO.processId}
        </if>
        <if test="damageReportDTO.orderNumber != null and damageReportDTO.orderNumber != ''">
            and dd.order_number regexp #{damageReportDTO.orderNumber}
        </if>
        <if test="damageReportDTO.technologyNumber != null and damageReportDTO.technologyNumber != ''">
            and dd.technology_number regexp #{damageReportDTO.technologyNumber}
        </if>
        <if test="damageReportDTO.responsibleProcess != null and damageReportDTO.responsibleProcess != ''">
            and dd.responsible_process regexp #{damageReportDTO.responsibleProcess}
        </if>
        <if test="damageReportDTO.responsibleTeam != null and damageReportDTO.responsibleTeam != ''">
            and dd.responsible_team regexp #{damageReportDTO.responsibleTeam}
        </if>
        <if test="damageReportDTO.responsibleEquipment != null and damageReportDTO.responsibleEquipment != ''">
            and dd.responsible_equipment regexp #{damageReportDTO.responsibleEquipment}
        </if>
        <if test="damageReportDTO.breakageType != null and damageReportDTO.breakageType != ''">
            and dd.breakage_type regexp #{damageReportDTO.breakageType}
        </if>
        <if test="damageReportDTO.breakageReason != null and damageReportDTO.breakageReason != ''">
            and dd.breakage_reason regexp #{damageReportDTO.breakageReason}
        </if>
        <if test="damageReportDTO.glassChild != null and damageReportDTO.glassChild != ''">
            and ogd.glass_child regexp #{damageReportDTO.glassChild}
        </if>
        <if test="damageReportDTO.glassNumber != null and damageReportDTO.glassNumber != ''">
            and ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') regexp #{damageReportDTO.glassNumber}
        </if>
    </select>
    <select id="teamOutputFootSum">
        select SUM(completed_quantity) as completedQuantity,
        ifnull(SUM(ROUND(width * height * completed_quantity / 1000000, 2)),0) AS area
        from (
        SELECT
        rw.this_process,
        rw.teams_groups_name,
        o.project,
        rw.process_id,
        fc.order_number,
        MAX( ogd.child_width ) as width,
        MAX( ogd.child_height ) as height,
        rwd.completed_quantity as completed_quantity
        FROM
        reporting_work as rw left join reporting_work_detail as rwd on rwd.reporting_work_id=rw.reporting_work_id
        left join flow_card as fc on fc.order_id=rw.order_id and fc.process_id=rw.process_id  and fc.order_number=rwd.order_number and fc.technology_number=rwd.technology_number
        left join sd.order_glass_detail as ogd on ogd.order_id=fc.order_id and ogd.order_number=fc.order_number and ogd.technology_number=fc.technology_number
        left join sd.order_detail as od  on od.order_id=ogd.order_id and od.order_number=ogd.order_number
        left join sd.`order` as o on o.order_id=od.order_id
        where o.create_order>0 and rw.reviewed_state>=0 and rwd.completed_quantity>0
        AND rw.reporting_work_time >= #{selectTime1}
        AND rw.reporting_work_time &lt;  #{selectTime2}
        and position(#{selectProcesses} in rw.this_process)
        <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''">
            and rw.this_process regexp #{teamOutputDTO.thisProcess}
        </if>
        <if test="teamOutputDTO.teamsGroupsName != null and teamOutputDTO.teamsGroupsName != ''">
            and rw.teams_groups_name regexp #{teamOutputDTO.teamsGroupsName}
        </if>
        <if test="teamOutputDTO.project != null and teamOutputDTO.project != ''">
            and o.project regexp #{teamOutputDTO.project}
        </if>
        <if test="teamOutputDTO.processId != null and teamOutputDTO.processId != ''">
            and rw.process_id regexp #{teamOutputDTO.processId}
        </if>
        <if test="teamOutputDTO.edgingType != null and teamOutputDTO.edgingType != ''">
            and od.edging_type regexp #{teamOutputDTO.edgingType}
        </if>
        GROUP BY
        rw.reporting_work_id,
        rw.process_id,
        rw.this_process,
        rw.teams_groups_name,
        rwd.order_number
        ORDER BY
        rw.this_process,
        rw.process_id,
        rwd.order_number,
        rw.reporting_work_time,
        rw.teams_groups_name
        ) as subquery
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -349,7 +349,7 @@
           0,
           (d.reporting_work_num_count+ifnull(c.reworkNumSum,0)-b.reporting_work_num_count-b.broken_num)
            ),0)
        from flow_card as a
        from pp.flow_card as a
        left join sd.order_process_detail as b
        on
            b.order_number = a.order_number
@@ -364,9 +364,9 @@
                       rw.process_id,rw.order_sort,rw.technology_number,
                       rwk.this_process
                   from
                       rework as rw
                       pp.rework as rw
                           LEFT JOIN
                       reporting_work as rwk
                       pp.reporting_work as rwk
                       on rw.reporting_work_id =rwk.reporting_work_id
                   where rwk.this_process=#{thisProcess}
                     and rw.review_status=1
@@ -1012,4 +1012,60 @@
    <select id="selectOrderid">
        select order_id from  pp.flow_card where process_id=#{processIdStr} group by order_id
    </select>
    <select id="getFootSum">
        SELECT
            ifnull(SUM(this_completed_quantity),0) AS thisCompletedQuantity,
            ifnull(SUM(ROUND(child_width * child_height * this_completed_quantity / 1000000, 2)),0) AS completedArea,
            ifnull(SUM(this_worn_quantity),0) AS thisWornQuantity,
            ifnull(SUM(ROUND(child_width * child_height * this_worn_quantity / 1000000, 2)),0) AS wornArea
        FROM (
                 -- å…ˆå¯¹ reporting_work_id è¿›è¡ŒåŽ»é‡
                 SELECT
                     rw.reporting_work_id,
                     MAX(rw.this_completed_quantity) AS this_completed_quantity,
                     MAX(rw.this_worn_quantity) AS this_worn_quantity,
                     MAX(ogd.child_width) AS child_width,
                     MAX(ogd.child_height) AS child_height
                 FROM sd.order AS o
                          LEFT JOIN sd.order_glass_detail AS ogd
                                    ON ogd.order_id = o.order_id
                          LEFT JOIN reporting_work AS rw
                                    ON rw.order_id = ogd.order_id
                                        AND rw.production_id = ogd.production_id
                 WHERE rw.reviewed_state != 2
      and rw.reporting_work_time >= #{selectTime1}
                   AND rw.reporting_work_time &lt;  #{selectTime2}
                   and position(#{orderId} in rw.order_id)
                   AND rw.reviewed_state != -1
                   AND o.create_order > 0
        <if test="reportingWork.reportingWorkId != null and reportingWork.reportingWorkId != ''">
            and rw.reporting_work_id regexp #{reportingWork.reportingWorkId}
        </if>
        <if test="reportingWork.orderId != null and reportingWork.orderId != ''">
            and o.order_id regexp #{reportingWork.orderId}
        </if>
        <if test="reportingWork.processId != null and reportingWork.processId != ''">
            and rw.process_id regexp #{reportingWork.processId}
        </if>
        <if test="reportingWork.order.project != null and reportingWork.order.project != ''">
            and o.project regexp #{reportingWork.order.project}
        </if>
        <if test="reportingWork.order.batch != null and reportingWork.order.batch != ''">
            and o.batch regexp #{reportingWork.order.batch}
        </if>
        <if test="reportingWork.thisProcess != null and reportingWork.thisProcess != ''">
            and rw.this_process regexp #{reportingWork.thisProcess}
        </if>
        <if test="reportingWork.deviceName != null and reportingWork.deviceName != ''">
            and rw.device_name regexp #{reportingWork.deviceName}
        </if>
        <if test="reportingWork.teamsGroupsName != null and reportingWork.teamsGroupsName != ''">
            and rw.teams_groups_name regexp #{reportingWork.teamsGroupsName}
        </if>
                 GROUP BY rw.reporting_work_id  -- æŒ‰ reporting_work_id è¿›è¡Œåˆ†ç»„,确保唯一
             ) AS subquery;
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml
@@ -279,6 +279,7 @@
          and date(d.create_time) &lt;= #{endDate}
          and d.customer_id = #{orderDetail.order.customerId}
          and om.money is not null
          and om.money >0
        group by d.delivery_id, o.order_id, om.`column`
        UNION ALL
@@ -318,7 +319,7 @@
        where date(o.create_time) >= #{startDate}
          and date(o.create_time) &lt;= #{endDate}
          and o.customer_id = #{orderDetail.order.customerId}
          and o.create_order>0
          and o.order_review>0
        group by od.order_id,od.product_id
        UNION ALL
@@ -338,7 +339,9 @@
        where date(o.create_time) >= #{startDate}
          and date(o.create_time) &lt;= #{endDate}
          and o.customer_id = #{orderDetail.order.customerId}
          and o.order_review>0
          and om.money is not null
          and om.money >0
        group by o.order_id, om.`column`
    </select>
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -258,7 +258,7 @@
    <select id="exportOrderSummary"  >
        SELECT *
        from sd.`order` as b
        where  date(b.create_time)>=#{dates[0]} and date(b.create_time) &lt;= #{dates[1]} and b.create_order>0
        where  date(b.create_time)>=#{dates[0]} and date(b.create_time) &lt;= #{dates[1]} and b.order_review>0
        order by b.id desc
    </select>
@@ -565,7 +565,7 @@
                   on d.type_id = c.type_id
         left join sd.basic_glass_type as e
                   on e.type_id = d.belong
        where  date(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]} and b.create_order>0
        where  date(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]} and b.order_review>0
    </select>
@@ -978,7 +978,7 @@
                 left join sd.basic_glass_type as e
                           on e.type_id = d.belong
        where date(b.create_time) >= #{dates[0]}
          and date(b.create_time) &lt;= #{dates[1]} and b.create_order>0
          and date(b.create_time) &lt;= #{dates[1]} and b.order_review>0
        group by b.order_id, a.product_id
        order by b.order_id desc
    </select>