From 82685a4ec94db01c564561582141c03054012ea3 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期五, 07 二月 2025 10:16:38 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml                         |   27 ++
 north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue                  |   45 ++-
 north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue                     |   21 +
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java                 |    2 
 north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue                   |   46 ++-
 north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue                    |   44 ++
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                                   |   38 +-
 north-glass-erp/northglass-erp/src/stores/sd/companySet/新疆恒鑫.js                             |    2 
 north-glass-erp/northglass-erp/package-lock.json                                            |    5 
 north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml                                  |    2 
 north-glass-erp/northglass-erp/src/stores/sd/companySet/常州吉利.js                             |    1 
 north-glass-erp/src/main/resources/mapper/pp/Report.xml                                     |   41 +-
 north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue                  |   11 
 north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java       |    2 
 north-glass-erp/northglass-erp/src/stores/sd/companySet/金华天成.js                             |    1 
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue                   |    2 
 north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStock.vue                   |    4 
 north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue            |    2 
 north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java   |    2 
 north-glass-erp/src/main/resources/mapper/pp/ReworkMapper.xml                               |    3 
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue            |   55 +++
 north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java |  262 ++++++++++---------
 north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java               |   78 ++++-
 north-glass-erp/northglass-erp/src/stores/sd/companySet/天津北玻.js                             |    1 
 north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml                     |   25 +
 north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml                              |    2 
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java               |    2 
 27 files changed, 479 insertions(+), 247 deletions(-)

diff --git a/north-glass-erp/northglass-erp/package-lock.json b/north-glass-erp/northglass-erp/package-lock.json
index 25cf970..e2daf7b 100644
--- a/north-glass-erp/northglass-erp/package-lock.json
+++ b/north-glass-erp/northglass-erp/package-lock.json
@@ -114,7 +114,6 @@
       "version": "2.3.1",
       "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
       "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
-      "license": "MIT",
       "peerDependencies": {
         "vue": "^3.2.0"
       }
@@ -1152,8 +1151,7 @@
     "node_modules/dayjs": {
       "version": "1.11.13",
       "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
-      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
-      "license": "MIT"
+      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
     },
     "node_modules/debug": {
       "version": "4.3.6",
@@ -1212,7 +1210,6 @@
       "version": "2.9.3",
       "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.3.tgz",
       "integrity": "sha512-6tSLp5XytDS4TMZ0P3aGZnr7MXTagfNycepNfIDitd9IgwM9y01+Ssu6mglNi8RiXYhek6LBWNOd/cvpIO12+w==",
-      "license": "MIT",
       "dependencies": {
         "@ctrl/tinycolor": "^3.4.1",
         "@element-plus/icons-vue": "^2.3.1",
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue
index e6e6664..1cc3f5a 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue
@@ -31,7 +31,8 @@
   faceOrientation:null,//鍐呭闈�
   type:null,//鏍囩妯℃澘
   lableType:null,//鏍囩绫诲瀷
-  switch:null//鍒ゆ柇鏄惁涓烘柊鎵撳嵃
+  switch:null,//鍒ゆ柇鏄惁涓烘柊鎵撳嵃
+  lastList:[],
 })
 
 const {currentRoute} = useRouter()
@@ -77,9 +78,9 @@
           for (let i = 0; i < list.value.length; i++) {
             let count = list.value[i].data.length
             for (let j = 0; j < count; j++) {
-              for (let k = 0; k < list.value[i].data[j].quantity; k++) {
-                lastList.value.push(list.value[i].data[j])
-              }
+            //  for (let k = 0; k < list.value[i].data[j].quantity; k++) {
+                props.lastList.push(list.value[i].data[j])
+            //  }
             }
           }
         } else {
@@ -115,11 +116,11 @@
   }
 
   // 閬嶅巻 lastList 骞舵洿鏂板搴旂殑灞炴��
-  lastList.value.forEach(obj => {
+  props.lastList.forEach(obj => {
     // 鑾峰彇鍓嶇紑鍜� orderId
-    const prefix = lastList.value[index].processId.substring(0, 11);
+    const prefix = props.lastList[id].processId.substring(0, 11);
     const orderId = obj.orderId;
-    const glassNumber=lastList.value[index].glassNumber
+    const glassNumber=props.lastList[id].glassNumber
     // 鏍规嵁 propertyName 鏇存柊灞炴��
     if (propertyName === 'productAbbreviation' && prefix === obj.processId.substring(0, 11)) {
       obj.productAbbreviation = result;
@@ -134,6 +135,33 @@
     if (propertyName === 'customerName' && orderId === obj.orderId){
       obj.customerName = result;
     }
+    if (propertyName === 'orderId' && orderId === obj.orderId){
+      obj.orderId = result;
+    }
+    if (propertyName === 'glassNumber' && glassNumber === obj.glassNumber){
+      obj.glassNumber = result;
+    }
+    if (propertyName === 'width' && glassNumber === obj.glassNumber){
+      obj.width = result;
+    }
+    if (propertyName === 'height' && glassNumber === obj.glassNumber){
+      obj.height = result;
+    }
+    if (propertyName === 'custom1' && orderId === obj.orderId){
+      obj.custom1 = result;
+    }
+    if (propertyName === 'custom2' && orderId === obj.orderId){
+      obj.custom2 = result;
+    }
+    if (propertyName === 'custom3' && orderId === obj.orderId){
+      obj.custom3 = result;
+    }
+    if (propertyName === 'custom4' && orderId === obj.orderId){
+      obj.custom4 = result;
+    }
+    if (propertyName === 'custom5' && orderId === obj.orderId){
+      obj.custom5 = result;
+    }
   });
 }
 
@@ -141,7 +169,7 @@
 
 <template>
   <div id="print" :class="company.printLabel.className.semi.printFlowCardName()">
-    <div v-for="(item1,id) in lastList" :class="company.printLabel.className.semi.entiretyName()">
+    <div v-for="(item1,id) in props.lastList" :class="company.printLabel.className.semi.entiretyName()">
       <div class="row4">{{ faceOrientation }}</div>
       <div  v-for="(item,id) in labelList" :class="company.printLabel.className.semi.contentRowName()">
         <div contenteditable="true" v-if="item1[item.name] != null && item1[item.name] !== ''" class="row1" @input="updateProductName($event, id,index)">{{ item.title }}锛歿{ item1[item.name] }}</div>
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
index 003968f..c44bda2 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -31,6 +31,13 @@
   mergeTechnologyNumber:null
 })
 
+//鎵撳嵃鏃堕棿
+const currentTime = new Date();
+const formattedTime = currentTime.getFullYear()
+    + '-' + (currentTime.getMonth() + 1) + '-'
+    + currentTime.getDate() + ' ' + currentTime.getHours() + ':'
+    + currentTime.getMinutes();formattedTime
+
 const {currentRoute} = useRouter()
 const route = currentRoute.value
 const printMerge = props.printMerge
@@ -238,7 +245,9 @@
           <div  style="font-weight: bolder;display: flex;justify-content:space-between">
             <div>
               琛ョ墖鍗曞彿锛歿{itemFlow.patch_id}}&nbsp;&nbsp;&nbsp;
-              鎵撳嵃浜猴細{{user.user.userName}}</div>
+              鎵撳嵃浜猴細{{user.user.userName}}&nbsp;&nbsp;
+              鏃堕棿锛歿{formattedTime}}
+            </div>
             <div>
               <span style="font-size: 10px">{{itemFlow.otherRemarks}}</span>&nbsp;&nbsp;
               娴佺▼鍗″彿锛� {{
diff --git "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\345\244\251\346\264\245\345\214\227\347\216\273.js" "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\345\244\251\346\264\245\345\214\227\347\216\273.js"
index 0da35c5..9cb074c 100644
--- "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\345\244\251\346\264\245\345\214\227\347\216\273.js"
+++ "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\345\244\251\346\264\245\345\214\227\347\216\273.js"
@@ -29,6 +29,7 @@
         longSide:null,//璁㈠崟鍒涘缓鏈�闀胯竟鎻愮ず棰滆壊 null涓嶆彁绀洪鑹�
         showDeliveryCreator:true,//鍙戣揣鍗曞垱寤轰汉鍏堟樉绀烘垨鑰呭悗鏄剧ず false鍚庢樉绀�
         deliveryRemark: ['澶囨敞:鏈壒鐜荤拑涓轰紭绛夊悎鏍煎搧锛岃鍦ㄥ嵏璐ф椂,褰撻潰娑堢偣楠屾敹銆佸鏈夎川閲忛棶棰樺湪涓�鍛ㄥ唴涓庢湰鍏徃鑱旂郴,鍚﹀垯姒備笉璐熻矗锛�'],
+        deliveryOutbound: false,//鍙戣揣榛樿鍑哄簱
         //澶╂触
         printLabel: {
             custom: (item1) => {
diff --git "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\345\270\270\345\267\236\345\220\211\345\210\251.js" "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\345\270\270\345\267\236\345\220\211\345\210\251.js"
index d0559b2..9cad759 100644
--- "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\345\270\270\345\267\236\345\220\211\345\210\251.js"
+++ "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\345\270\270\345\267\236\345\220\211\345\210\251.js"
@@ -29,6 +29,7 @@
         longSide:6500,//璁㈠崟鍒涘缓鏈�闀胯竟鎻愮ず棰滆壊
         showDeliveryCreator:true,//鍙戣揣鍗曞垱寤轰汉鍏堟樉绀烘垨鑰呭悗鏄剧ず false鍚庢樉绀�
         deliveryRemark: ['澶囨敞:鏈壒鐜荤拑涓轰紭绛夊悎鏍煎搧锛岃鍦ㄥ嵏璐ф椂,褰撻潰娑堢偣楠屾敹銆佸鏈夎川閲忛棶棰樺湪涓�鍛ㄥ唴涓庢湰鍏徃鑱旂郴,鍚﹀垯姒備笉璐熻矗锛�'],
+        deliveryOutbound: true,//鍙戣揣榛樿鍑哄簱
         //澶╂触
         printLabel: {
             custom: (item1) => {
diff --git "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\346\226\260\347\226\206\346\201\222\351\221\253.js" "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\346\226\260\347\226\206\346\201\222\351\221\253.js"
index a96cad2..65c1193 100644
--- "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\346\226\260\347\226\206\346\201\222\351\221\253.js"
+++ "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\346\226\260\347\226\206\346\201\222\351\221\253.js"
@@ -1,5 +1,4 @@
 import {defineStore} from "pinia";
-import {filterChanged} from "@/hook";
 
 export default defineStore('companyInfo', {
 
@@ -30,6 +29,7 @@
         longSide:null,//璁㈠崟鍒涘缓鏈�闀胯竟鎻愮ず棰滆壊
         showDeliveryCreator:true,//鍙戣揣鍗曞垱寤轰汉鍏堟樉绀烘垨鑰呭悗鏄剧ず false鍚庢樉绀�
         deliveryRemark: ['澶囨敞:鏈壒鐜荤拑涓轰紭绛夊悎鏍煎搧锛岃鍦ㄥ嵏璐ф椂,褰撻潰娑堢偣楠屾敹銆佸鏈夎川閲忛棶棰樺湪涓�鍛ㄥ唴涓庢湰鍏徃鑱旂郴,鍚﹀垯姒備笉璐熻矗锛�'],
+        deliveryOutbound: false,//鍙戣揣榛樿鍑哄簱
 
         //澶╂触
         printLabel: {
diff --git "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\351\207\221\345\215\216\345\244\251\346\210\220.js" "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\351\207\221\345\215\216\345\244\251\346\210\220.js"
index cd8de29..d5a3afb 100644
--- "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\351\207\221\345\215\216\345\244\251\346\210\220.js"
+++ "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\351\207\221\345\215\216\345\244\251\346\210\220.js"
@@ -31,6 +31,7 @@
         deliveryRemark: ['娓╅Θ鎻愮ず锛氳揣鍒板伐鍦版垨宸ュ巶鍚庯紝璇蜂簬浜斿ぉ鍐呭畨瑁呭畬姣曪紝濡傛湭鑳藉強鏃跺畨瑁呭畬姣曪紝璇锋斁缃簬闃村噳骞茬嚗澶勶紝骞跺仛濂介槻鏅掗槻娣嬬殑鎺柦锛岄槻姝㈢幓鐠冨彂闇夛紱鎵�鏈夊崟鐗囬晙鑶滅幓鐠冭鍕跨敤甯﹂吀鎬ф垨纰辨�х殑娑蹭綋娓呮礂鑶滈潰銆�',
             '澹版槑锛氳揣鍒板伐鍦版垨宸ュ巶鍚庯紝濡傝嫢璐靛徃涓嶅強鏃剁殑瀹夎鎴栨湭鍋氶槻鏅掗槻娣嬫帾鏂藉鑷寸殑鐜荤拑鍙戦湁锛屾垜鍙告涓嶈礋璐c��',
             '鏀惰揣鏃堕渶楠屾敹浜у搧鏁伴噺銆佽鏍煎強鏈夋棤鐮存崯锛屽鍙戠幇闂闇�浜庢敹璐т笁鏃ュ唴锛屼互涔﹂潰閫氱煡骞堕檮涓婄幇鍦鸿瘉鏄庢潗鏂欙紙濡傜牬鎹熺収鐗囩瓑锛夛紝鐩稿叧璇佹槑璧勬枡涓嶈冻锛屾垨鍦ㄤ笂杩版棩鏈熷唴鏈彁鍑鸿川閲忓紓璁殑锛岄�炬湡瑙嗕负浜у搧鍚堟牸锛屾垜鍙稿皢涓嶄簣鎵挎媴浠讳綍璐d换銆傛暚璇风暀鎰忥紒'],
+        deliveryOutbound: false,//鍙戣揣榛樿鍑哄簱
         //澶╂触
         printLabel: {
             custom: (item1) => {
diff --git a/north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStock.vue b/north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStock.vue
index e163862..d75fde6 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStock.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStock.vue
@@ -6,6 +6,7 @@
 import {ElMessage} from "element-plus";
 import {useRouter,useRoute,onBeforeRouteUpdate} from "vue-router";
 import { useI18n } from 'vue-i18n'
+import companyInfo from "@/stores/sd/companyInfo";
 
 //璇█鑾峰彇
 const { t } = useI18n()
@@ -13,6 +14,7 @@
 
 const router = useRouter()
 const route = useRoute()
+const company = companyInfo()
 let indexFlag=$ref(1)
 function changeRouter(index){
   indexFlag=index
@@ -25,7 +27,7 @@
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/productStock/productStockList' }" >{{$t('productStock.inventoryQuery')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/productStock/createProductStock' }">{{$t('productStock.finishedProductWarehousing')}}</el-breadcrumb-item>
-       <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productStock/finishedProductOut' }">{{$t('productStock.finishedProductOutbound')}}</el-breadcrumb-item>
+       <el-breadcrumb-item @click="changeRouter(3)" v-if="company.deliveryOutbound===false" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productStock/finishedProductOut' }">{{$t('productStock.finishedProductOutbound')}}</el-breadcrumb-item>
 <!--       <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productStock/FinishedProductReturn' }">{{$t('productStock.finishedProductOrderReturn')}}</el-breadcrumb-item>-->
        <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">{{$t('productStock.reportForms')}}</el-breadcrumb-item>
 <!--       <el-breadcrumb-item :to="{ path: '/main/productStock/OrderAllocation' }">璁㈠崟璋冩嫧</el-breadcrumb-item>-->
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
index 1c707e4..fd99b52 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -629,7 +629,7 @@
   gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
     // 杩欓噷鏍规嵁 hidePrintLabels 鐨勫�煎喅瀹氭槸鍚﹂殣钘� printLabel 鍜� printLabel2
     if (hidePrintLabels == 'true') {
-      return button.code !== 'printLabel' && button.code !== 'printLabel2';
+      return button.code !== 'printLabel' && button.code !== 'printLabel2' ;
     } else {
       return true && button.code !== 'printLike'; // 鏄剧ず璇ユ寜閽�
     }
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
index 6c189d8..925174e 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -20,6 +20,7 @@
 import companyInfo from "@/stores/sd/companyInfo"
 import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global";
 import TagStyleDesigner from "@/components/pp/TagStyleDesigner.vue";
+import {hiprint} from "vue-plugin-hiprint";
 
 const company = companyInfo()
 
@@ -176,6 +177,39 @@
 const data = ref({
   printList: []
 })
+
+onMounted(async () => {
+  await getTags();
+  await hiprint.init();
+})
+let hiprintTemplate = ref()
+
+const tags = ref([])
+
+const tag = ref({
+  id: null,
+  name: null,
+  type: 1,
+  tagWidth: null,
+  tagHeight: null,
+  value: null,
+  size: null
+})
+
+const changeTag = () => {
+  hiprintTemplate.value = new hiprint.PrintTemplate({});
+  const json = JSON.parse(tag.value.value)
+  hiprintTemplate.value.update(json)
+}
+
+const getTags = () => {
+  request.get('tagStyle/getTagList').then(res => {
+    tags.value = res.data
+  })
+}
+const printObjectProcess = () => {
+  hiprintTemplate.value.print(lastList.value)
+}
 
 const {currentRoute} = useRouter()
 const route = currentRoute.value
@@ -520,7 +554,6 @@
             }
           }
           if (lableTypes == 1) {
-            console.log(company.label)
             labelRow.value.list = JSON.stringify(selectRecords)
             labelRow.value.faceOrientation = faceOrientation
             labelRow.value.type = type
@@ -639,7 +672,7 @@
             ElMessage.warning(t('searchOrder.msgList.checkOrder'))
             return
           }
-          if (type === null || type === '' || type === undefined) {
+          if (tag.value.name === null || tag.value.name === '' || tag.value.name === undefined) {
             ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle'))
             return
           }
@@ -655,7 +688,7 @@
 
           labelRow.value.list = JSON.stringify(selectRecords)
           labelRow.value.faceOrientation = faceOrientation
-          labelRow.value.type = type
+          labelRow.value.type = tag.value.name
           labelRow.value.lableType = lableTypes
           labelRow.value.dataType = 1
           let columnsLabel = company.printLabel.columnsLabel
@@ -701,7 +734,7 @@
   gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
     // 杩欓噷鏍规嵁 hidePrintLabels 鐨勫�煎喅瀹氭槸鍚﹂殣钘� printLabel 鍜� printLabel2
     if (hidePrintLabels == 'true') {
-      return button.code !== 'printLabel' && button.code !== 'printLabel2';
+      return button.code !== 'printLabel' && button.code !== 'printLabel2' && button.code !== 'customLabel';
     } else {
       return true && button.code !== 'printLike' && button.code !== 'printLabel3' && button.code !== 'printTest'; // 鏄剧ず璇ユ寜閽�
     }
@@ -733,13 +766,12 @@
                 style="width: 90px"></el-input>
       &nbsp;
       <label>{{ $t('processCard.labelStyle') }}锛�</label>
-      <el-select v-model="printType" :placeholder="$t('processCard.pleaseSelect')" clearable default-value="default_city"
-                 style="width: 120px">
+      <el-select v-model="tag" :placeholder="$t('processCard.pleaseSelect')" style="width: 140px" @change="changeTag">
         <el-option
-            v-for="item in titleSelectJson['dataType']"
-            :key="item.id"
-            :label="item.name"
-            :value="item.name"
+            v-for="(tag,index) in tags"
+            :key="index"
+            :label="tag.name"
+            :value="tag"
         />
       </el-select>
       &nbsp;
@@ -907,12 +939,13 @@
         destroy-on-close
         style="width: 80%;height:75% ">
       <template #header="{ close, titleId, titleClass }">
-        <el-button v-print="printContentLabel" :icon="Printer" circle/>
+        <el-button :icon="Printer" circle @click="printObjectProcess"/>
       </template>
       <print-custom-label-x-j id="childLabel"
                               :faceOrientation="labelRow.faceOrientation"
                               :lableType="labelRow.lableType"
                               :list="labelRow.list"
+                              :lastList='lastList'
                               :type="labelRow.type"
                               style="width: 100%;height: 100%"/>
     </el-dialog>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
index 173c446..aaea9a3 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
@@ -479,7 +479,7 @@
           labelRow.value.list = JSON.stringify(selectRecords)
           labelRow.value.type = tag.value.name
           labelRow.value.dataType = 3
-          labelRow.value.lableType = lableTypes
+          labelRow.value.lableType = 2
           labelRow.value.switch = true
           lastList.value = []
           dialogTableVisibleLabel.value = true
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue b/north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
index b0fad29..8e65a26 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
@@ -52,20 +52,25 @@
 let column = [1,3,8]
 //鐐瑰嚮鏌ヨ
 const getWorkOrder = () => {
-  request.post(`/report/processCardProgress/${form.orderId}`,column).then((res) => {
+  request.post(`/report/processCardProgress/${form.orderId}`, column).then((res) => {
     if (res.code == 200) {
-      if(res.data.data.length===0){
+      if (res.data.data.length === 0) {
         ElMessage.warning(t('report.noDataFoundForThisOrder'))
         return
       }
-      //gridOptions.columns = JSON.parse(JSON.stringify(columns))
-      res.data.title.forEach(item =>{
-        let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process}
+      // 鍔ㄦ�佹坊鍔犲垪
+      res.data.title.forEach((item, index) => {
+        let column = {
+          slots: { default: 'quantitySum' },
+          width: 90,
+          title: item.process,
+          field: `dynamicColumn${index}` // 涓哄姩鎬佸垪娣诲姞鍞竴鐨� field
+        }
         gridOptions.columns.push(column)
       })
       res.data.data.forEach(item => {
-        item.reportWorkQuantity=JSON.parse(item.reportWorkQuantity)
-        item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount)
+        item.reportWorkQuantity = JSON.parse(item.reportWorkQuantity)
+        item.reportWorkQuantityCount = JSON.parse(item.reportWorkQuantityCount)
       })
       mergeCells.value = res.data.mergeCell
       xGrid.value.loadData(res.data.data)
@@ -74,6 +79,16 @@
     }
   })
 }
+
+const footSumDynamic = (data, columnTitle) => {
+  let sum = 0;
+  data.forEach(item => {
+    const value = Number(item.reportWorkQuantity[columnTitle]) || 0; // 浠� reportWorkQuantity 涓彁鍙栧�煎苟杞崲涓烘暟瀛�
+    sum += value;
+  });
+  return sum.toFixed(2);
+}
+
 const quantitySum = ( row,column )=>{
   const reportWorkQuantity = row.reportWorkQuantity[column.title] || 0
   const reportWorkQuantityCount = row.reportWorkQuantityCount[column.title] || 0
@@ -169,24 +184,24 @@
   data:  [
   ],//table body瀹為檯鏁版嵁
   //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-
-    return[
+  footerMethod ({ columns, data }) {
+    return [
       columns.map((column, columnIndex) => {
         if (columnIndex === 0) {
           return t('basicData.total')
         }
-        const List = ["quantity","broken_num","inventory",]
+        const List = ["quantity", "broken_num", "inventory", "inventoryArea"]; // 闈欐�佸垪鐨勬眰鍜�
         if (List.includes(column.field)) {
-          console.log(data)
-          console.log(column.field)
           return footSum(data, column.field)
+        }
+        // 鍔ㄦ�佸垪鐨勬眰鍜�
+        if (column.field && column.field.startsWith('dynamicColumn')) {
+          return footSumDynamic(data, column.title)
         }
         return ''
       })
     ]
-  },
-
+  }
 })
 
 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue b/north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
index da678ad..610e1da 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
@@ -8,6 +8,7 @@
 import {changeFilterEvent, filterChanged} from "@/hook"
 
 import { useI18n } from 'vue-i18n'
+import footSum from "@/hook/footSum";
 //璇█鑾峰彇
 const { t } = useI18n()
 let router=useRouter()
@@ -58,7 +59,9 @@
       }
       //gridOptions.columns = JSON.parse(JSON.stringify(columns))
       res.data.title.forEach((item, index) => {
-        let column = { slots: { default: 'quantitySum' }, width: 90, title: item.process };
+        let column = { slots: { default: 'quantitySum' }, width: 90, title: item.process,
+          field: `dynamicColumn${index}` // 涓哄姩鎬佸垪娣诲姞鍞竴鐨� field
+        };
         const insertIndex = 5;  // 璁剧疆鎻掑叆浣嶇疆鐨勭储寮�
         gridOptions.columns = [
           ...gridOptions.columns.slice(0, insertIndex + index), // 鍙栨彃鍏ヤ綅缃箣鍓嶇殑閮ㄥ垎
@@ -76,6 +79,15 @@
       ElMessage.warning(res.msg)
     }
   })
+}
+
+const footSumDynamic = (data, columnTitle) => {
+  let sum = 0;
+  data.forEach(item => {
+    const value = Number(item.reportWorkQuantity[columnTitle]) || 0; // 浠� reportWorkQuantity 涓彁鍙栧�煎苟杞崲涓烘暟瀛�
+    sum += value;
+  });
+  return sum.toFixed(2);
 }
 const quantitySum = ( row,column )=>{
   const reportWorkQuantity = row.reportWorkQuantity[column.title] || 0
@@ -157,20 +169,24 @@
   data:  [
   ],//table body瀹為檯鏁版嵁
   //鑴氶儴姹傚拰
-  // footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-  //   let footList=['7','8','9','10']
-  //   return[
-  //     columns.map((column, columnIndex) => {
-  //       if (columnIndex === 0) {
-  //         return '鍚堣:'
-  //       }
-  //       if (footList.includes(column.field)) {
-  //         return sumNum(data, column.field)
-  //       }
-  //       return ''
-  //     })
-  //   ]
-  // }
+  footerMethod ({ columns, data }) {
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return t('basicData.total')
+        }
+        const List = ["quantity", "inventoryNum", "inventoryArea"]; // 闈欐�佸垪鐨勬眰鍜�
+        if (List.includes(column.field)) {
+          return footSum(data, column.field)
+        }
+        // 鍔ㄦ�佸垪鐨勬眰鍜�
+        if (column.field && column.field.startsWith('dynamicColumn')) {
+          return footSumDynamic(data, column.title)
+        }
+        return ''
+      })
+    ]
+  }
 
 })
 
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
index cfcbd10..1295817 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -213,8 +213,13 @@
         titleUploadData.value=deepClone(res.data.delivery)
         titleUploadData.value.deliveryId=str
 
+        //鍒ゆ柇鏄惁鍙戣揣鍑哄簱
+        if(!company.deliveryOutbound){
+          if(titleUploadData.value.stockState!==0){
+            gridOptions.toolbarConfig.buttons[2].disabled = true
+          }
+        }
         //鏍规嵁瀹℃牳鐘舵�佹樉绀哄鏍告寜閽垨鑰呮槸鍙嶅鎸夐挳
-
         if(titleUploadData.value.deliveryState!==0){
           gridOptions.toolbarConfig.buttons[1].disabled = true
           gridOptions.toolbarConfig.buttons[0].disabled = true
@@ -222,9 +227,7 @@
         if(titleUploadData.value.deliveryState===0){
           gridOptions.toolbarConfig.buttons[2].disabled = true
         }
-        if(titleUploadData.value.stockState!==0){
-          gridOptions.toolbarConfig.buttons[2].disabled = true
-        }
+
         pageNum=1
         produceList = deepClone(res.data.data)
 
@@ -447,11 +450,12 @@
             deliveryId: route.query.deliveryID,
             type: 2,
             userName:userStore.user.userName,
-            userId:userStore.user.userId
+            userId:userStore.user.userId,
+            deliveryOutbound:company.deliveryOutbound
 
           })
           request.post("/delivery/updateDeliveryToExamine", flowData.value).then((res) => {
-            if (res.code == 200 && res.data===true) {
+            if (res.code == 200 && res.data==="true") {
               ElMessage.success(t('basicData.msg.ReviewSuccess'))
               //router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
               router.push({path:'/main/delivery/createDelivery',query:{
@@ -471,11 +475,12 @@
             deliveryId: route.query.deliveryID,
             type: 0,
             userName:userStore.user.userName,
-            userId:userStore.user.userId
+            userId:userStore.user.userId,
+            deliveryOutbound:company.deliveryOutbound
 
           })
           request.post("/delivery/updateDeliveryToExamine", flowData.value).then((res) => {
-            if (res.code == 200 && res.data===true) {
+            if (res.code == 200 && res.data==="true") {
               ElMessage.success(t('basicData.msg.cancelReviewSuccess'))
               //router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
               router.push({path:'/main/delivery/createDelivery',query:{
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
index e50e125..7a7cb21 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
@@ -96,6 +96,8 @@
                                                       @Param("pageSize") Integer pageSize,
                                                       @Param("orderDetail") OrderDetail orderDetail);
 
+    List<OrderDetail> getSelectDeliveryDetailDeliveryId(@Param("deliveryId") String deliveryId);
+
     Map<String,Integer> getSelectDeliveryDetailPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail);
 
     List<OrderDetail> getSelectAllocate(@Param("offset") Integer offset,
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
index 2439bb8..bd6a361 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
@@ -64,6 +64,8 @@
                                              @Param("pageSize") Integer pageSize,String startDate, String endDate,String type,
                                              @Param("finishedOperateLog") FinishedOperateLog finishedOperateLog);
 
+    List<FinishedOperateLog> getSelectStorageRecordDeliveryId(@Param("deliveryId") String deliveryId,String type);
+
     Map<String,Integer> getSelectStorageRecordLogPageTotal(@Param("offset") Integer offset,
                                                            @Param("pageSize") Integer pageSize,String startDate, String endDate,String type,
                                                            @Param("finishedOperateLog") FinishedOperateLog finishedOperateLog);
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
index 1cff561..2fded8d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -105,7 +105,7 @@
 
     List<Map<String, Object>> getCustomLabelDetailMp(String name, String form, String id, FlowCard flowCard);
 
-    List<Map<String, Object>>  getPrintCustomData(String processId, String technologyNumber);
+    List<Map<String, Object>>  getPrintCustomData(String processId, Integer orderNumber);
 
     Integer getPrintLabelCount(String processId, String technologyNumber);
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
index 3f3b677..a25dfff 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -207,67 +207,9 @@
             //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
             List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
             if (!orderDetaillist.isEmpty()){
-                for (OrderDetail orderDetail : orderDetaillist) {
-                    //鑾峰彇鍗曞彿
-                    String oddNumber= orderNumberSetting("鍑哄簱");
-                    OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
-                    //娣诲姞鍑哄叆搴撹褰�
-                    finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber);
-                    Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
 
-
-                    Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
-                    Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
-
-                    Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
-                    Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
-                    if(deliverydetailsum==null){
-                        deliverydetailsum=0;
-                    }
-
-                    DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId());
-                    /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" +
-                            orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" +
-                            deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/
-                    //鍒ゆ柇鍙戣揣鍗曠殑搴撳瓨鏄惁瀛樺湪
-                    if (finishedGoodsInventorycount > 0) {
-                        //鍒ゆ柇鍙戣揣鍗曟槸鍚﹀凡鍑哄簱
-                        if(deliveryDetail==null){
-                            if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
-                                //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
-                                finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
-                                //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
-                                finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
-                                //淇敼鍙戣揣琛ㄧ姸鎬�
-                                finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
-                                //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
-                                finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
-                                //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
-                                finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
-                                //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
-                                if (orderNumberdsum == orderDetail.getWarehouseNum()) {
-                                    //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
-                                    //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
-                                    finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
-                                }
-                                if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) {
-                                    //淇敼鍙戣揣琛ㄧ姸鎬�
-                                    finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
-                                }
-                            }else{
-                                TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
-                                return "false3";
-                            }
-                        }else{
-                            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
-                            return "false1";
-                        }
-
-
-                    }else{
-                        TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
-                        return "false2";
-                    }
+                if(!Objects.equals(deliveryDetailLogic(orderDetaillist, savePoint, userName), "true")) {
+                    return deliveryDetailLogic(orderDetaillist, savePoint, userName);
                 }
             }
 
@@ -691,69 +633,8 @@
             //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
             List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
             if (!finishedOperateLogslist.isEmpty()){
-                for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
-                    Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId());
-                    Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId());
-                    Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(finishedOperateLog.getOperationOrderNumber());
-                    Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(finishedOperateLog.getOperationOrderNumber(),1);
-
-                    if(Objects.equals(finishedOperateLog.getOperateType(), "鍏ュ簱")){
-                        Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId());
-                        if(delivery==null){
-                            //淇敼璁板綍琛�
-                            finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
-                            //淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
-                            finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog);
-                            if(finishedOperateLog.getProcessId()!=null){
-                                //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
-                                finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog);
-                            }
-
-                            //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
-                            finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
-                            //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱
-                            if (Objects.equals(ordersum, ordernumbersum)) {
-                                //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                                finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1);
-                            }
-                            if (ordernumbersum-finishedOperateLog.getQuantity()==0) {
-                                //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                                finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
-                            }
-                            log.setFunction("cancelFinishedGoodsInventoryStorage鍏ュ簱");
-                        }else{
-                            return "false1";
-                        }
-
-
-
-                    }else if(Objects.equals(finishedOperateLog.getOperateType(), "鍑哄簱")){
-                        //淇敼璁板綍琛�
-                        finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
-                        //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
-                        finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
-                        //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
-                        finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1);
-                        //淇敼鍙戣揣琛ㄧ姸鎬�
-                        finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1);
-                        //淇敼璁㈠崟鏄庣粏琛ㄥ簱鍐呮暟閲�
-                        finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity()));
-                        //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
-                        finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1);
-                        //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
-                        if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum){
-                            //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
-                            finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0);
-
-                        }
-                        if (deliverysum==finishedOperateLog.getQuantity()+deliverydetailsum) {
-                            //淇敼鍙戣揣琛ㄧ姸鎬�
-                            finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0);
-                        }
-                        log.setFunction("cancelFinishedGoodsInventoryStorage鍑哄簱");
-
-                    }
-
+                if(!Objects.equals(cancelDeliveryDetailLogic(finishedOperateLogslist, savePoint, object.get("userName").toString(), log), "true")){
+                    return cancelDeliveryDetailLogic(finishedOperateLogslist,savePoint,object.get("userName").toString(),log);
                 }
             }
             logService.saveLog(log);
@@ -907,4 +788,139 @@
         map.put("data", list);
         return map;
     }
+
+
+    public String deliveryDetailLogic(List<OrderDetail> list,Object savePoint,String userName) {
+        for (OrderDetail orderDetail : list) {
+            //鑾峰彇鍗曞彿
+            String oddNumber= orderNumberSetting("鍑哄簱");
+            OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
+            //娣诲姞鍑哄叆搴撹褰�
+            finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber);
+            Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
+
+
+            Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
+            Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
+
+            Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
+            Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
+            if(deliverydetailsum==null){
+                deliverydetailsum=0;
+            }
+
+            DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId());
+                    /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" +
+                            orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" +
+                            deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/
+            //鍒ゆ柇鍙戣揣鍗曠殑搴撳瓨鏄惁瀛樺湪
+            if (finishedGoodsInventorycount > 0) {
+                //鍒ゆ柇鍙戣揣鍗曟槸鍚﹀凡鍑哄簱
+                if(deliveryDetail==null){
+                    if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
+                        //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
+                        finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
+                        //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
+                        finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
+                        //淇敼鍙戣揣琛ㄧ姸鎬�
+                        finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
+                        //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
+                        finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
+                        //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+                        finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
+                        //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
+                        if (Objects.equals(orderNumberdsum, orderDetail.getWarehouseNum())) {
+                            //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
+                            //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+                            finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
+                        }
+                        if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) {
+                            //淇敼鍙戣揣琛ㄧ姸鎬�
+                            finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
+                        }
+                    }else{
+                        TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+                        return "false3";
+                    }
+                }else{
+                    TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+                    return "false1";
+                }
+
+
+            }else{
+                TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+                return "false2";
+            }
+        }
+        return "true";
+    }
+
+    public String cancelDeliveryDetailLogic(List<FinishedOperateLog> finishedOperateLogslist,Object savePoint,String userName,Log log) {
+        for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
+            Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId());
+            Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId());
+            Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(finishedOperateLog.getOperationOrderNumber());
+            Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(finishedOperateLog.getOperationOrderNumber(),1);
+
+            if(Objects.equals(finishedOperateLog.getOperateType(), "鍏ュ簱")){
+                Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId());
+                if(delivery==null){
+                    //淇敼璁板綍琛�
+                    finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
+                    //淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
+                    finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog);
+                    if(finishedOperateLog.getProcessId()!=null){
+                        //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
+                        finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog);
+                    }
+
+                    //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
+                    finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
+                    //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱
+                    if (Objects.equals(ordersum, ordernumbersum)) {
+                        //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                        finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1);
+                    }
+                    if (ordernumbersum-finishedOperateLog.getQuantity()==0) {
+                        //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                        finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
+                    }
+                    log.setFunction("cancelFinishedGoodsInventoryStorage鍏ュ簱");
+                }else{
+                    return "false1";
+                }
+
+
+
+            }else if(Objects.equals(finishedOperateLog.getOperateType(), "鍑哄簱")){
+                //淇敼璁板綍琛�
+                finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
+                //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
+                finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
+                //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
+                finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1);
+                //淇敼鍙戣揣琛ㄧ姸鎬�
+                finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1);
+                //淇敼璁㈠崟鏄庣粏琛ㄥ簱鍐呮暟閲�
+                finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity()));
+                //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+                finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1);
+                //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
+                if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum){
+                    //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+                    finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0);
+
+                }
+                if (deliverysum==finishedOperateLog.getQuantity()+deliverydetailsum) {
+                    //淇敼鍙戣揣琛ㄧ姸鎬�
+                    finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0);
+                }
+                log.setFunction("cancelFinishedGoodsInventoryStorage鍑哄簱");
+
+            }
+
+        }
+        return "true";
+    }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index d616340..cc57050 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -533,7 +533,7 @@
                         continue;
                     }
                     Map<String, Object> itemmap = new HashMap<>();
-                    itemmap.put("data", flowCardMapper.getPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber()));
+                    itemmap.put("data", flowCardMapper.getPrintCustomData(flowCard.getProcessId(),flowCard.getOrderNumber()));
                     list.add(itemmap);
 
                     // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚�
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
index 0c2fcbe..c1e74e0 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -9,11 +9,14 @@
 import com.example.erp.dto.mm.FinishedOperateLogDTO;
 import com.example.erp.dto.sd.DeliveryDetailDTO;
 import com.example.erp.dto.sd.DeliveryDetailProductDTO;
+import com.example.erp.entity.mm.FinishedOperateLog;
 import com.example.erp.entity.sd.*;
 import com.example.erp.entity.userInfo.Log;
 import com.example.erp.entity.userInfo.SysError;
 import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper;
+import com.example.erp.mapper.mm.FinishedOperateLogMapper;
 import com.example.erp.mapper.sd.*;
+import com.example.erp.service.mm.FinishedGoodsInventoryService;
 import com.example.erp.service.userInfo.LogService;
 import com.example.erp.service.userInfo.SysErrorService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,11 +47,15 @@
     @Autowired
     FinishedGoodsInventoryMapper finishedGoodsInventoryMapper;
     @Autowired
+    FinishedOperateLogMapper finishedOperateLogMapper;
+    @Autowired
     DeliveryOtherMoneyMapper deliveryOtherMoneyMapper;
     @Autowired
     LogService logService;
     @Autowired
     SysErrorService sysErrorService;
+    @Autowired
+    FinishedGoodsInventoryService finishedGoodsInventoryService;
 
 
     public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) {
@@ -398,27 +405,57 @@
     }
 
 
-    public Boolean updateDeliveryToExamine(Map<String,Object> object) {
-        Boolean isinsert=false;
-        String deliveryId = "";
-        int type =3;
-        if (object.get("deliveryId") != null) {
-            deliveryId = object.get("deliveryId").toString();
+    public String updateDeliveryToExamine(Map<String,Object> object) {
+        String saveState = "true";
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            Log log = new Log();
+            String deliveryId = "";
+            int type =3;
+            if (object.get("deliveryId") != null) {
+                deliveryId = object.get("deliveryId").toString();
+            }
+
+            if (object.get("type") != null) {
+                type = Integer.parseInt(object.get("type").toString());
+            }
+
+            if(Boolean.parseBoolean(object.get("deliveryOutbound").toString())){
+                if(type==2){
+                    List<OrderDetail> orderDetaillist=finishedGoodsInventoryMapper.getSelectDeliveryDetailDeliveryId(deliveryId);
+                    if(!Objects.equals(finishedGoodsInventoryService.deliveryDetailLogic(orderDetaillist,savePoint,object.get("userName").toString()), "true")){
+                        return finishedGoodsInventoryService.deliveryDetailLogic(orderDetaillist,savePoint,object.get("userName").toString());
+                    }
+                }else{
+                    List<FinishedOperateLog> finishedOperateLogslist=finishedOperateLogMapper.getSelectStorageRecordDeliveryId(deliveryId,"鍑哄簱");
+                    if(!Objects.equals(finishedGoodsInventoryService.cancelDeliveryDetailLogic(finishedOperateLogslist,savePoint,object.get("userName").toString(),log), "true")){
+                        return finishedGoodsInventoryService.cancelDeliveryDetailLogic(finishedOperateLogslist,savePoint,object.get("userName").toString(),log);
+                    }
+
+                }
+
+            }
+
+            deliveryMapper.updateDeliveryToExamine(deliveryId,type);
+
+
+            log.setOperatorId(object.get("userId").toString());
+            log.setOperator(object.get("userName").toString());
+            log.setContent(object.toString());
+            log.setFunction("updateDeliveryToExamine淇敼:"+deliveryId);
+            logService.saveLog(log);
+        } catch (Exception e) {
+            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+            //灏嗗紓甯镐紶鍏ユ暟鎹簱
+            SysError sysError = new SysError();
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("addDeliveryDetail");
+            sysErrorService.insert(sysError);
+            saveState = "false";
+
         }
-
-        if (object.get("type") != null) {
-            type = Integer.parseInt(object.get("type").toString());
-        }
-
-        deliveryMapper.updateDeliveryToExamine(deliveryId,type);
-
-        Log log = new Log();
-        log.setOperatorId(object.get("userId").toString());
-        log.setOperator(object.get("userName").toString());
-        log.setContent(object.toString());
-        log.setFunction("updateDeliveryToExamine淇敼:"+deliveryId);
-        logService.saveLog(log);
-        return true;
+        return saveState;
 
 
 
@@ -607,6 +644,7 @@
 
 
 
+
     private static final String[] NUMBERS = {"闆�", "澹�", "璐�", "鍙�", "鑲�", "浼�", "闄�", "鏌�", "鎹�", "鐜�"};
 
     private static final String[] IUNIT = {"鍏�", "鎷�", "浣�", "浠�", "涓�", "鎷�", "浣�", "浠�", "浜�", "鎷�", "浣�", "浠�"};
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
index 3a2adbd..7944b3a 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -907,7 +907,32 @@
         where order_number=#{orderNumber}  and order_id=#{orderId} and delivery_id=#{deliveryId} and delivery_detail_state=0
     </select>
 
+    <select id="getSelectDeliveryDetailDeliveryId"  resultMap="selectDelivery">
+        select dd.delivery_id,
+               dd.order_number,
+               dd.order_id,
+               o.project,
+               od.product_id,
+               od.product_name,
+               d.customer_name,
+               od.width,
+               od.height,
+               dd.quantity as dd_quantity,
+               od.warehouse_num,
+               od.delivery_num,
+               d.area,
+               od.building_number,
+               d.creator,
+               dd.delivery_detail_remakes,
+               dd.create_time
+        from sd.delivery_detail dd
+                 left join sd.delivery d on dd.delivery_id = d.delivery_id
+                 left join sd.order_detail od on od.order_id = dd.order_id and dd.order_number = od.order_number
+                 left join sd.`order` o on o.order_id = dd.order_id
 
+        where dd.delivery_id= #{deliveryId}
+
+    </select>
 
 
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
index f21a6a2..598871b 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -848,4 +848,31 @@
         fol.operate_time DESC
 
 </select>
+
+    <select id="getSelectStorageRecordDeliveryId" resultMap="selectFinishedGoodsInventory">
+        select fol.id,
+        fol.operation_order_number,
+        fol.order_id,
+        fol.operate_type,
+        fol.process_id,
+        fol.operation_number,
+        fol.quantity,
+        fol.operator,
+        od.product_id,
+        od.product_name,
+        od.width,
+        od.height,
+        fol.operate_time,
+        fol.`status`,
+        fol.is_state,
+        fol.reviewed,
+        fol.reviewed_time,
+        fol.type,
+        fol.remarks
+        from (select *
+        from mm.finished_operate_log aa where aa.operate_type = #{type}  and aa.status!='宸蹭綔搴�') fol
+        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
+        left join sd.`order` o on o.order_id=fol.order_id
+        where fol.operation_order_number=#{deliveryId}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index aba804b..0697cf3 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -68,9 +68,11 @@
         if(a.layout_status=0,'涓嶅彲鎺掔増',if(a.layout_status=1,'鍙帓鐗�','宸叉帓鐗�')) as layout_status,
         a.merge
         from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,merge from flow_card
-        group by process_Id,order_number) as a left join sd.`order` as b on a.order_Id=b.order_id
+        group by process_Id,order_number) as a
+        left join sd.`order` as b on a.order_Id=b.order_id
         left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
         where date(a.create_time)>=#{selectTime1} and date(a.create_time) &lt;= #{selectTime2}
+        and b.create_order>0
         <if test="flowCard.orderId != null and flowCard.orderId != ''">
             and a.order_id regexp #{flowCard.orderId}
         </if>
@@ -115,6 +117,7 @@
         from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
         left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
         where date(a.create_time)>=#{selectTime1} and date(a.create_time) &lt;= #{selectTime2}
+        and b.create_order>0
         <if test="flowCard.orderId != null and flowCard.orderId != ''">
             and a.order_id regexp #{flowCard.orderId}
         </if>
@@ -484,11 +487,14 @@
     </select>
 
     <select id="selectPrintFlowCard">
-        select project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
-        from pp.optimize_project
-        where date(create_time)>=#{selectTime1} and date(create_time) &lt;= #{selectTime2}
-          and state >= 20
-        order by create_time desc
+        select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
+        from pp.optimize_project as op
+                 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
+        GROUP BY op.project_no
+        order by op.create_time desc
     </select>
 
     <select id="selectPrintMp">
@@ -599,7 +605,7 @@
                                           GROUP_CONCAT(pds.glass_sort SEPARATOR '')           AS technology_number,
                                           ogds.glass_child,
                                           GROUP_CONCAT(ogds.glass_child SEPARATOR '+')        AS concatenated_glass_child,
-                                          SUBSTRING(pds.process, LOCATE('涓┖', pds.process)) AS processed_part
+                                          SUBSTRING(ogds.process, LOCATE('涓┖', ogds.process)) AS processed_part
                                    from sd.order_glass_detail as ogds
                                             left join sd.order_detail as ods
                                                       on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
@@ -704,7 +710,7 @@
                fc.quantity,
                round(ogd.total_area, 2)                                       as total_area,
                od.perimeter,
-               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+               if(od.bend_radius!=null,od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
                round(ogd.child_width)                                         as width,
@@ -932,7 +938,7 @@
                ogd.glass_child,
                #{process}                                                           as process,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
-               od.bend_radius
+               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius
         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
@@ -1055,7 +1061,7 @@
                            on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                               ogd.technology_number = fc.technology_number
         where fc.process_id = #{processId}
-          and fc.technology_number = #{technologyNumber}
+          and fc.order_number = #{orderNumber}
         group by od.order_number, width, height
         order by fc.process_id
     </select>
@@ -1301,7 +1307,7 @@
                fc.quantity,
                round(ogd.total_area, 2)                                       as total_area,
                od.perimeter,
-               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+               if(od.bend_radius!=null,od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
                round(ogd.child_width)                                         as width,
@@ -1408,7 +1414,7 @@
                sum(pl.patch_num)                                                 as quantity,
                round(ogd.total_area, 2)                                       as total_area,
                od.perimeter,
-               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+               if(od.bend_radius!=null,od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
                round(ogd.child_width)                                         as width,
@@ -1939,16 +1945,16 @@
                ogd.glass_address                                     as glassAddress,
                JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
                CONCAT(
-                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
                        ' X ',
-                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
                        ' = ',pl.patch_num   )      as size,
 
                CONCAT(
                        od.order_number,')  ',
-                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
                        ' X ',
-                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
                        ' = ',pl.patch_num   )      as numberSize
         from sd.order as o
                  left join sd.order_detail as od on o.order_id = od.order_id
diff --git a/north-glass-erp/src/main/resources/mapper/pp/Report.xml b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
index 146e063..8add618 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -203,7 +203,7 @@
                            on e.process_id = c.process_id
                                and e.technology_number = c.technology_number
                                and e.order_number = c.order_number
-        where a.order_id = #{orderId}
+        where a.order_id = #{orderId} and d.create_order>0
         group by c.order_number,
                  c.technology_number,
                  c.process_id
@@ -238,6 +238,7 @@
           and dd.available = 0
           and reviewed_state != 2
           and rw.this_process != dd.responsible_process
+        and o.create_order>0
         <if test="crossProcessBreakingDTO.code != null and crossProcessBreakingDTO.code != ''">
             and JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) regexp #{crossProcessBreakingDTO.code}
         </if>
@@ -384,7 +385,7 @@
         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 LENGTH(fc.process_id) = 14
+        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}
@@ -465,7 +466,7 @@
         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 LENGTH(fc.process_id) = 14
+        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}
@@ -535,7 +536,7 @@
                                and odpd.process_id = fc.process_id
                  left join sd.`order` as o
                            on o.order_id = od.order_id
-        where LENGTH(fc.process_id) = 14
+        where  o.create_order>0
           and odpd.process = #{selectProcesses}
           and  o.create_time >= #{selectTime1}
           AND o.create_time &lt;  #{selectTime2}
@@ -578,7 +579,6 @@
         AND rw.reporting_work_time &lt;  #{selectTime2}
 
         AND dd.available = 0
-        AND LENGTH( rw.process_id )= 14
         <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
             and o.order_id regexp #{damageReportDTO.orderId}
         </if>
@@ -632,7 +632,6 @@
         rw.reporting_work_time >= #{selectTime1}
         AND rw.reporting_work_time &lt;  #{selectTime2}
         AND dd.available = 0
-        AND LENGTH( rw.process_id )= 14
         <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
             and o.order_id regexp #{damageReportDTO.orderId}
         </if>
@@ -726,7 +725,7 @@
             AND opd.technology_number = fc.technology_number
 
         WHERE  DATE_FORMAT((o.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
-
+          and o.create_order>0
         GROUP BY o.order_id,
                  fc.order_number,
                  fc.technology_number
@@ -756,6 +755,7 @@
             AND opd.order_number = fc.order_number
             AND opd.technology_number = fc.technology_number
         WHERE opd.reporting_work_num > 0
+          and o.create_order>0
           and  DATE_FORMAT((o.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
           AND position(#{selectProcesses} IN opd.process)
         GROUP BY opd.process, o.order_id
@@ -810,7 +810,7 @@
                                 and   e.order_number=c.order_number
                                and e.technology_number = c.technology_number
                  left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
-        where a.order_id = #{orderId}
+        where a.order_id = #{orderId} and d.create_order>0
         group by c.order_number,c.technology_number
         ORDER BY a.order_number
     </select>
@@ -860,6 +860,7 @@
                  left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
         where   d.create_time >= #{selectTime1}
           AND d.create_time &lt;  #{selectTime2}
+          and o.create_order>0
           and reportWorkQuantity is not null
         GROUP BY a.order_id
         ORDER BY a.order_id
@@ -903,6 +904,7 @@
             AND rw.process_id = fc.process_id
         WHERE    o.create_time >= #{selectTime1}
           AND o.create_time &lt;  #{selectTime2}
+          and o.create_order>0
           AND fc.create_time IS NOT NULL
         GROUP BY o.order_id
     </select>
@@ -982,7 +984,6 @@
         WHERE date(rw.reporting_work_time) >= #{dates[0]}
           and date(rw.reporting_work_time) &lt;= #{dates[1]}
           AND dd.available = 0
-          AND LENGTH(rw.process_id) = 14
         GROUP BY dd.id
     </select>
 
@@ -1025,6 +1026,7 @@
             AND rw.process_id = fc.process_id
         WHERE date(o.create_time) >= #{dates[0]}
           and date(o.create_time) &lt;= #{dates[1]}
+          and o.create_order>0
           AND fc.create_time IS NOT NULL
         GROUP BY o.order_id
     </select>
@@ -1069,7 +1071,7 @@
                                and odpd.process_id = fc.process_id
                  left join sd.`order` as o
                            on o.order_id = od.order_id
-        where LENGTH(fc.process_id) = 14
+        where  o.create_order>0
           and odpd.process = #{process}
           and date(o.create_time) >= #{date[0]}
           and date(o.create_time) &lt;= #{date[1]}
@@ -1137,7 +1139,7 @@
                  and c.technology_number = fc.technology_number
                  left join sd.`order` as o
                            on o.order_id = od.order_id
-        where LENGTH(fc.process_id) = 14
+        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 = #{process}
@@ -1194,6 +1196,7 @@
         where d.create_time
           and date(o.create_time) >= #{dates[0]}
           and date(o.create_time) &lt;= #{dates[1]}
+          and d.create_order>0
           and reportWorkQuantity is not null
         GROUP BY a.order_id
         ORDER BY a.order_id
@@ -1254,6 +1257,7 @@
 
         WHERE date(o.create_time) >= #{dates[0]}
           and date(o.create_time) &lt;= #{dates[1]}
+          and o.create_order>0
         GROUP BY o.order_id,
                  fc.order_number,
                  fc.technology_number
@@ -1285,6 +1289,7 @@
         WHERE opd.reporting_work_num > 0
           and date(o.create_time) >= #{date[0]}
           and date(o.create_time) &lt;= #{date[1]}
+          and o.create_order>0
           AND position(#{process} IN opd.process)
         GROUP BY opd.process, o.order_id
     </select>
@@ -1504,7 +1509,7 @@
         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 LENGTH(fc.process_id) = 14
+        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}
@@ -1573,7 +1578,7 @@
         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 LENGTH(fc.process_id) = 14
+        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}
@@ -1653,7 +1658,7 @@
         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 LENGTH(fc.process_id) = 14
+        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}
@@ -1725,7 +1730,7 @@
         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 LENGTH(fc.process_id) = 14
+        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}
@@ -1762,7 +1767,7 @@
         where processes = #{processes}
         GROUP BY order_id, order_number) as ps
         left join sd.`order` as o on o.order_id = ps.order_id
-        where ps.processes = #{processes}
+        where ps.processes = #{processes} and o.create_order>0
         and  DATE_FORMAT((ps.scheduled_start_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
         <if test="scheduleProductionScheduleDTO.orderId != null and scheduleProductionScheduleDTO.orderId != ''">
             and ps.order_id regexp #{scheduleProductionScheduleDTO.orderId}
@@ -1788,7 +1793,7 @@
         where processes = #{processes}
         GROUP BY order_id, order_number) as ps
         left join sd.`order` as o on o.order_id = ps.order_id
-        where ps.processes = #{processes}
+        where ps.processes = #{processes} and o.create_order>0
         and  DATE_FORMAT((ps.scheduled_start_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
         <if test="scheduleProductionScheduleDTO.orderId != null and scheduleProductionScheduleDTO.orderId != ''">
             and ps.order_id regexp #{scheduleProductionScheduleDTO.orderId}
@@ -1818,7 +1823,7 @@
               where processes = #{process}
               GROUP BY order_id, order_number) as ps
                  left join sd.`order` as o on o.order_id = ps.order_id
-        where ps.processes = #{process}
+        where ps.processes = #{process} and o.create_order>0
           and date(scheduled_start_time) >= #{date[0]}
           and date(scheduled_start_time) &lt;= #{date[1]}
         GROUP BY ps.order_id, ps.processes
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
index 7ddc1d1..48f7c41 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -91,6 +91,7 @@
         where fc.process_id = #{processIdStr}
           and POSITION(fc.technology_number in #{technologyStr})
           and if(#{reportType}=1,o.order_type!='鏍峰搧璁㈠崟',o.order_id!='')
+        and o.create_order>0
         GROUP BY fc.process_id
     </select>
 
@@ -179,6 +180,7 @@
           AND  POSITION(fc.technology_number in #{technologyStr})
           AND odpd.process = #{process}
           and if(#{reportType}=1,o.order_type!='鏍峰搧璁㈠崟',o.order_id!='')
+        and o.create_order>0
         group by fc.order_number,
                  ogd.technology_number
         order by fc.order_number
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReworkMapper.xml b/north-glass-erp/src/main/resources/mapper/pp/ReworkMapper.xml
index e61294c..93ef507 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReworkMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReworkMapper.xml
@@ -257,7 +257,8 @@
                  left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd
                            on rw.order_id = ogd.order_id and dd.order_number = ogd.order_number
 
-        where  dd.breakage_quantity-dd.quantity>0 and dd.available=1 and o.create_order>0 order by dd.id desc
+        where  dd.breakage_quantity-dd.quantity>0 and dd.available=1 and o.create_order>0 and  rw.reviewed_state>=0
+        order by dd.id desc
     </select>
 
 
diff --git a/north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml b/north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml
index e95fd1f..0317798 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml
@@ -47,7 +47,7 @@
         from sd.order_detail  as od
         left join `order` as o
         on o.order_id=od.order_id
-        where o.production_order!=2 and o.order_review=2
+        where o.production_order!=2 and o.order_review=2 and o.create_order>0
 
         <if test="orderGlassDetail.orderId != null and orderGlassDetail.orderId != ''">
             and o.order_id regexp #{orderGlassDetail.orderId}

--
Gitblit v1.8.0