From 748e47eb02e874e521500b24f5444d6dbaeda3b8 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期四, 25 十二月 2025 11:46:04 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue                    |    9 
 north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue                    |   24 +
 north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml                |   43 +++
 north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js                      |    2 
 north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue              |    4 
 north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue            |   26 +-
 north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml                         |    4 
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java          |    2 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java       |   26 ++
 north-glass-erp/northglass-erp/src/components/BasicTable.vue                         |   37 ++
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProgressProcessCard.vue |    7 
 north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue            |   12 
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java    |    9 
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java       |   30 ++
 north-glass-erp/src/main/resources/mapper/pp/Report.xml                              |    1 
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java             |    2 
 north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue                    |  221 ++++++++++++++++++++
 north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue           |   37 ++-
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java           |   17 +
 north-glass-erp/northglass-erp/src/views/pp/processCard/ProcessCard.vue              |    2 
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue            |    1 
 north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue              |    3 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java          |    2 
 north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet2.vue            |    6 
 north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue     |   11 
 north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue                    |   32 ++
 north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue               |   32 ++
 north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java        |   47 ++++
 north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java |    7 
 29 files changed, 572 insertions(+), 84 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/BasicTable.vue b/north-glass-erp/northglass-erp/src/components/BasicTable.vue
index 9bd61fa..0a6ac2a 100644
--- a/north-glass-erp/northglass-erp/src/components/BasicTable.vue
+++ b/north-glass-erp/northglass-erp/src/components/BasicTable.vue
@@ -122,6 +122,8 @@
   pageTotal : 0,//鎬婚〉鏁�
   dataTotal : 0,//鏁版嵁鎬绘潯鏁�
 })
+
+const isFirstLoad = ref(true);
 const sumNum = (list, field) => {
   let count = 0
   list.forEach(item => {
@@ -131,9 +133,9 @@
 }
 
 //鍚堝苟鏄剧ず鍏朵粬鍒�
-const handleDynamicColumns = (data,title) => {
+const handleDynamicColumns = (data,title,orderOtherMoney) => {
   // 1. 鏀堕泦鎵�鏈夎鐨刼therColumns瀛楁锛堝幓閲嶏級
-  const allOtherFields = new Set();
+  /*const allOtherFields = new Set();
   data.forEach(row => {
     if (!row || !row.otherColumns) return;
 
@@ -158,10 +160,10 @@
         allOtherFields.add(key);
       });
     }
-  });
+  });*/
 
   // 2. 鐢熸垚鍔ㄦ�佸瓙鍒楋紙浣滀负processList鐨刢hildren锛�
-  const otherColumns = Array.from(allOtherFields).map(field => {
+  /*const otherColumns = Array.from(allOtherFields).map(field => {
     // 灏濊瘯鑾峰彇瀛楁瀵瑰簲鐨刲abel锛堜紭鍏堝彇绗竴涓嚭鐜扮殑label锛�
     let label=field;
     title.forEach(item=>{
@@ -180,7 +182,26 @@
 
       }
     };
-  });
+  });*/
+
+  const otherColumns = [];
+  // 瀹归敊锛氱‘淇漮rderOtherMoney鏄湁鏁堟暟缁�
+  if (Array.isArray(orderOtherMoney) && orderOtherMoney.length > 0) {
+    orderOtherMoney.forEach(item => {
+      // 璺宠繃绌烘暟鎹紝閬垮厤鏃犳晥鍒�
+      if (!item || !item.column) return;
+      otherColumns.push({
+        title: item.alias || item.column, // 浼樺厛鐢ㄥ埆鍚嶏紝鏃犲垯鐢ㄥ瓧娈靛悕
+        field: `otherColumnsJson.${item.column}`,
+        width: 120,
+        align: 'center',
+        // 鏍煎紡鍖栧彇鍊硷細鍏煎瑙f瀽鍚庣殑JSON缁撴瀯
+        formatter: ({ row }) => {
+          return row.otherColumnsJson?.[item.column] || '';
+        }
+      });
+    });
+  }
 
   // 3. 瀹氫箟鐖剁骇鍒梡rocessList锛屽寘鍚姩鎬佸瓙鍒�
   const processList = {
@@ -247,9 +268,11 @@
         orderInfo.reportFormDate = res.data.selectDate
 
         //璁㈠崟鏄庣粏鎶ヨ〃
-        if (props.childrenData.url === '/order/getOrderReport') {
+        if (isFirstLoad.value && props.childrenData.url === '/order/getOrderReport') {
           const dataList = res.data.data || [];
-          handleDynamicColumns(dataList,res.data.title)
+          const orderOtherMoney = res.data.orderOtherMoney[0] || [];
+          handleDynamicColumns(dataList,res.data.title,orderOtherMoney)
+          isFirstLoad.value = false; // 棣栨鍔犺浇鍚庣疆涓篺alse
         }
       }
     })
diff --git a/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue b/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue
new file mode 100644
index 0000000..27486af
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue
@@ -0,0 +1,221 @@
+<!-- ImageSizeEditor.vue -->
+<template>
+  <div class="img-grid">
+    <div
+        v-for="(img, index) in images"
+        :key="getKey(img, index)"
+        class="img-box"
+        :style="getImgBoxStyle(getKey(img, index))"
+        @click="openSizeDialog(img, index)"
+    >
+      <el-image
+          :src="img.imageBase64"
+          :fit="fit"
+          style="width: 100%; height: 100%; display: block;"
+      />
+    </div>
+  </div>
+
+  <el-dialog
+      v-model="dialogVisible"
+      :title="dialogTitle"
+      width="460px"
+      append-to-body
+  >
+    <div class="form-row">
+      <el-input-number
+          v-model="form.w"
+          :min="minWidth"
+          :max="maxWidth"
+          controls-position="right"
+      />
+      <span class="mul">脳</span>
+      <el-input-number
+          v-model="form.h"
+          :min="minHeight"
+          :max="maxHeight"
+          controls-position="right"
+      />
+    </div>
+
+    <div class="ops-row">
+<!--      <el-switch v-model="applyToAll" active-text="搴旂敤鍒板叏閮ㄥ浘鐗�" />-->
+      <div v-if="showHint" class="hint">
+        褰撳墠锛歿{ form.w }} 脳 {{ form.h }} px
+      </div>
+    </div>
+
+    <template #footer>
+      <el-button @click="dialogVisible = false">鍙栨秷</el-button>
+
+      <!-- 鉁� 涓�閿叏鍥剧粺涓�灏哄锛氫笉鍏冲脊绐楋紝绔嬪嵆搴旂敤 -->
+      <el-button @click="applyAllNow" :disabled="!canApply">
+       灏哄鐩稿悓
+      </el-button>
+
+      <!-- 鉁� 纭畾锛氬鏋滃紑鍏虫墦寮�锛屽垯鍚屾牱浼氬簲鐢ㄥ叏閮紝鍚﹀垯鍙簲鐢ㄥ綋鍓� -->
+      <el-button type="primary" @click="confirmSize" :disabled="!canApply">
+        纭畾
+      </el-button>
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+import { computed, reactive, ref, unref } from 'vue'
+
+const props = defineProps({
+  images: { type: Array, default: () => [] },
+  keyField: { type: String, default: 'orderNumber' }, // 浣犳暟鎹� id=null锛屾帹鑽� orderNumber
+  srcField: { type: String, default: 'imageBase64' },
+
+  sizeMap: { type: Object, default: () => ({}) },
+
+  defaultWidth: { type: Number, default: 600 },
+  defaultHeight: { type: Number, default: 400 },
+
+  minWidth: { type: Number, default: 50 },
+  maxWidth: { type: Number, default: 3000 },
+  minHeight: { type: Number, default: 50 },
+  maxHeight: { type: Number, default: 3000 },
+
+  fit: { type: String, default: 'contain' },
+  marginX: { type: String, default: '30px' },
+  dialogTitle: { type: String, default: '璁剧疆鍥剧墖灏哄' },
+  showHint: { type: Boolean, default: true }
+})
+
+const emit = defineEmits(['update:sizeMap', 'change', 'changeAll'])
+
+const sizeStore = computed({
+  get: () => props.sizeMap || {},
+  set: (val) => emit('update:sizeMap', val)
+})
+
+const dialogVisible = ref(false)
+const activeKey = ref(null)
+
+const form = reactive({
+  w: props.defaultWidth,
+  h: props.defaultHeight
+})
+
+const applyToAll = ref(false)
+
+const canApply = computed(() => {
+  const w = Number(form.w)
+  const h = Number(form.h)
+  return w > 0 && h > 0
+})
+
+const getKey = (img, index) => {
+  const k = img?.[props.keyField]
+  return (k !== undefined && k !== null && k !== '') ? String(k) : String(index)
+}
+
+const getSrc = (img) => img?.[props.srcField]
+
+const getSize = (key) => {
+  const s = unref(sizeStore.value?.[key])
+  if (s && s.w && s.h) return { w: Number(s.w), h: Number(s.h) }
+  return { w: props.defaultWidth, h: props.defaultHeight }
+}
+
+const getImgBoxStyle = (key) => {
+  const { w, h } = getSize(key)
+  return {
+    width: `${w}px`,
+    height: `${h}px`,
+    marginLeft: props.marginX,
+    marginRight: props.marginX
+  }
+}
+
+
+const openSizeDialog = (img, index) => {
+  const key = getKey(img, index)
+  activeKey.value = key
+
+  const cur = getSize(key)
+  form.w = cur.w
+  form.h = cur.h
+
+  applyToAll.value = false
+  dialogVisible.value = true
+}
+
+// 鉁� 搴旂敤鍒板綋鍓嶄竴寮�
+const applyOne = (key, w, h) => {
+  sizeStore.value = { ...sizeStore.value, [key]: { w, h } }
+  emit('change', key, { w, h })
+}
+
+// 鉁� 涓�閿簲鐢ㄥ埌鍏ㄩ儴
+const applyAll = (w, h) => {
+  const next = { ...sizeStore.value }
+  props.images.forEach((img, idx) => {
+    const k = getKey(img, idx)
+    next[k] = { w, h }
+  })
+  sizeStore.value = next
+  emit('changeAll', { w, h })
+}
+
+// 鉁� footer 鎸夐挳锛氱珛鍗崇粺涓�鍏ㄥ浘灏哄锛堜笉鍏冲脊绐楋級
+const applyAllNow = () => {
+  if (!canApply.value) return
+  const w = Number(form.w)
+  const h = Number(form.h)
+  applyAll(w, h)
+}
+
+// 鉁� 纭畾锛氬鏋滃紑鍏虫墦寮� => 鍏ㄩ儴锛涘惁鍒欏彧鏀瑰綋鍓�
+const confirmSize = () => {
+  if (!canApply.value) return
+  const w = Number(form.w)
+  const h = Number(form.h)
+
+  if (applyToAll.value) {
+    applyAll(w, h)
+    dialogVisible.value = false
+    return
+  }
+
+  const key = activeKey.value
+  if (key === null || key === undefined) return
+  applyOne(key, w, h)
+  dialogVisible.value = false
+}
+</script>
+
+<style scoped>
+.img-grid {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 12px;
+}
+
+.form-row {
+  display: flex;
+  gap: 12px;
+  align-items: center;
+}
+
+.mul {
+  line-height: 32px;
+}
+
+.ops-row{
+  margin-top: 12px;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 12px;
+  flex-wrap: wrap;
+}
+
+.hint {
+  font-size: 12px;
+  opacity: 0.75;
+}
+</style>
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
index 5ffc88d..876be06 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -11,6 +11,7 @@
 import companyInfo from "@/stores/sd/companyInfo";
 import userInfo from "@/stores/userInfo"
 import {add} from '@/utils/decimal'
+import ImageSizeEditor from '@/components/ImageSizeEditor.vue'
 //璇█鑾峰彇
 const company = companyInfo()
 const {t} = useI18n()
@@ -19,6 +20,7 @@
 let list = ref()
 const details = ref([])
 const user=userInfo()
+const imgSizeMap = ref({})
 
 let totalQuantity = 0;  // 鐢ㄤ簬璁板綍鎬绘暟閲�
 let totalArea = 0;      // 鐢ㄤ簬璁板綍鎬婚潰绉�
@@ -319,7 +321,7 @@
   <!--  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>-->
   <div id="printFlowCard">
 <div id="contentDiv" v-for="(item,id) in produceList" :key="id">
-  <table  id="contentTable"  style="border-bottom: none">
+  <table  id="contentTable"  style="border-bottom: none;margin-bottom: 20px">
     <thead>
     <tr v-for="(itemFlow,index) in item.detail" :key="index">
       <td  colspan="31">
@@ -506,12 +508,20 @@
       </tr>
       </tfoot>
     </table>
-  <el-image
-      v-for="(img, index) in getPicturesByDetailList(item.detailList)"
-      :key="index"
-      :src="img.imageBase64"
-      fit="contain"
-      style="max-width: 100%;"
+<!--  <el-image-->
+<!--      v-for="(img, index) in getPicturesByDetailList(item.detailList)"-->
+<!--      :key="index"-->
+<!--      :src="img.imageBase64"-->
+<!--      fit="contain"-->
+<!--      style="max-width: 100%;margin: 50px"-->
+<!--  />-->
+  <ImageSizeEditor
+      :images="getPicturesByDetailList(item.detailList)"
+      v-model:sizeMap="imgSizeMap"
+      key-field="orderNumber"
+      src-field="imageBase64"
+      :default-width="300"
+      :default-height="300"
   />
   </div>
   </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 c8474ee..badc31c 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -110,30 +110,41 @@
 
           }
 
-          // 浣跨敤涓�涓璞℃潵瀛樺偍鍚堝苟鍚庣殑缁撴灉
           const mergedData = produceList.value.reduce((acc, item) => {
-            const processId = item.detail[0].process_id;
+            // detail 涓虹┖鐩存帴璺宠繃
+            const firstDetail = item?.detail?.[0]
+            if (!firstDetail) return acc
 
-            // 濡傛灉璇� process_id 灏氭湭鍦� acc 涓紝鍒濆鍖栧叾鏁扮粍
-            if (!acc[processId]) {
-              acc[processId] = {
+            const processId = firstDetail.process_id
+            const technologyNumber = firstDetail.technologyNumber
+
+            const key = company.printReplenishMerge
+                ? processId
+                : `${processId}_${technologyNumber}`
+
+            // 鍒濆鍖栧垎缁�
+            if (!acc[key]) {
+              acc[key] = {
+                processId,
+                technologyNumber,
                 processList: item.processList,
                 detailList: [],
                 detail: item.detail
-              };
+              }
             }
 
-            // 鍚堝苟 detailList
-            acc[processId].detailList = acc[processId].detailList.concat(item.detailList);
+            //  鍚堝苟 detailList
+            if (Array.isArray(item.detailList) && item.detailList.length) {
+              acc[key].detailList.push(...item.detailList)
+            }
 
-            return acc;
-          }, {});
+            return acc
+          }, {})
 
           // 灏嗗悎骞跺悗鐨勫璞¤浆鎹㈠洖鏁扮粍
-
-          if (company.printReplenishMerge){
+          //if (company.printReplenishMerge){
             produceList.value = Object.values(mergedData);
-          }
+          //}
            flowCardCount=produceList.value.length
 
           handleSummary()
diff --git a/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue b/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue
index e250e54..1276555 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue
@@ -204,12 +204,13 @@
                 <th style="width: 6%;">搴忓彿</th>
                 <th style="width: 10%;">妤煎眰缂栧彿</th>
                 <th style="width: 7%;">绠卞彿</th>
-                <th style="width: 17%;" colspan="1">瀹絏楂�</th>
-                <th style="width: 10%;">鏁伴噺</th>
+                <th style="width: 15%;" colspan="1">瀹絏楂�</th>
+                <th style="width: 8%;">鏁伴噺</th>
                 <th style="width: 10%;">闈㈢Н</th>
-                <th style="width: 10%;">鍗曚环</th>
+                <th style="width: 8%;">鍗曚环</th>
                 <th style="width: 12%;">閲戦</th>
-                <th style="width: 18%;" colspan="2">鍔犲伐瑕佹眰</th>
+                <th style="width: 12%;" >鍔犲伐瑕佹眰</th>
+                <th style="width: 12%;">澶囨敞</th>
               </tr>
 
 
@@ -236,7 +237,8 @@
                 <td>{{items.area}}</td>
                 <td>{{items.price}}</td>
                 <td>{{items.money}}</td>
-                <td colspan="2">{{items.processingNote}}</td>
+                <td>{{items.processingNote}}</td>
+                <td>{{items.remarks}}</td>
               </tr>
               <tr class="day-in" >
                 <td style="font-size: 15px;" colspan="4">灏忚:</td>
diff --git a/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet2.vue b/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet2.vue
index 85663ac..d818236 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet2.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet2.vue
@@ -151,7 +151,8 @@
                 <th style="width: 20%;" colspan="2">瀹絏楂�</th>
                 <th style="width: 10%;">鏁伴噺</th>
                 <th style="width: 10%;">闈㈢Н</th>
-                <th style="width: 32%;" colspan="3">鍔犲伐瑕佹眰</th>
+                <th style="width: 22%;" colspan="2">鍔犲伐瑕佹眰</th>
+                <th style="width: 12%;">澶囨敞</th>
               </tr>
 
 
@@ -176,7 +177,8 @@
                 </td>
                 <td>{{items.quantity}}</td>
                 <td>{{items.area}}</td>
-                <td colspan="3">{{items.processingNote}}</td>
+                <td colspan="2">{{items.processingNote}}</td>
+                <td>{{items.remarks}}</td>
               </tr>
               <tr class="day-in" >
                 <td style="font-size: 15px;" colspan="5">灏忚:</td>
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
index f488d93..a80a3f4 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -103,6 +103,7 @@
 const columns = [
   {field: 'order_number',fixed:"left", width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
   // {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
+  {field: 'building_number', width: 150, title: t('order.buildingNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
   {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
   {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
   {field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
@@ -120,7 +121,7 @@
   {field: 'StorageArea',slots: { default: 'show'},width: 120, title: t('report.StorageArea')},
   {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
 ]
-let column = ['order_number','product_name','order_type','quantity','grossArea','Storage','StorageArea']
+let column = ['order_number','building_number','product_name','order_type','quantity','grossArea','Storage','StorageArea']
 let orderType = ref(1)
 
 onMounted(()=>{
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue b/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
index aea384a..b07f4db 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
@@ -8,14 +8,17 @@
 import {ElMessage} from "element-plus";
 import useUserInfoStore from "@/stores/userInfo";
 import {Bottom, Burger, Food} from "@element-plus/icons-vue";
+import ImageSizeEditor from '@/components/ImageSizeEditor.vue'
 const company = companyInfo()
 const userStore = useUserInfoStore()
 const username = userStore.user.userName
 let dialogVisible = ref(false)
 
 
+const imgSizeMap = ref({})
 let props = defineProps({
   orderId:null,
+  dataList:null,
 })
 let productId=ref({
 
@@ -36,6 +39,12 @@
   perimeter: 0,
   weight:0
 })
+const picture = ref([])
+const dataFile = ref({
+  printList: []
+})
+dataFile.value.printList = JSON.parse(props.dataList)
+
 const getData = () => {
   request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => {
     data.value= res.data
@@ -53,6 +62,11 @@
     grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3))
     grossNum.value.weight = parseFloat(grossNum.value.weight.toFixed(2))
 
+  })
+
+  //璁㈠崟搴忓彿dwg鍥剧墖鏌ヨ
+  request.post("/orderFile/getOrderFilePicture", dataFile.value.printList).then((res) => {
+    picture.value = res.data
   })
 }
 
@@ -139,6 +153,13 @@
 defineExpose({
   printSheet
 });
+
+// 鍘熷鍥剧墖鏁扮粍 picture
+const pictureMap = computed(() => {
+  return picture.value
+})
+
+
 </script>
 
 
@@ -218,7 +239,7 @@
                 <td style="font-size: 20px;font-weight: bold;">{{items.quantity}}</td>
                 <td style="font-size: 20px;font-weight: bold;">{{items.perimeter}}</td>
                 <td style="font-size: 20px;font-weight: bold;">{{items.grossArea.toFixed(2)}}</td>
-                <td colspan="2">{{items.processingNote}}
+                <td colspan="2" style="text-align: left;border:none;font-weight: bold;font-size: 17px;">{{items.processingNote}}
                   {{items.remarks==null?'':'/'}}
                   {{items.remarks}}</td>
               </tr>
@@ -291,7 +312,14 @@
         </el-option>
       </el-select>
     </el-dialog>
-
+    <ImageSizeEditor
+        :images="pictureMap"
+        v-model:sizeMap="imgSizeMap"
+        key-field="orderNumber"
+        src-field="imageBase64"
+        :default-width="300"
+        :default-height="300"
+    />
   </div>
 
 
diff --git a/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js b/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
index 09ee61f..8cc7001 100644
--- a/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
+++ b/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
@@ -15,6 +15,7 @@
         qualityInspectionDate:ref(["",""]),
         brokenDate:ref(["",""]),
         yieldDate:ref(["",""]),
+        replenishDate:ref(["",""]),
         searchOrderListFilter:ref([]),//璁㈠崟棣栭〉绛涢�塢
         searchOrderFilter:{
             list:ref([]),
@@ -90,6 +91,7 @@
             this.qualityInspectionDate=["",""]
             this.brokenDate=["",""]
             this.yieldDate=["",""]
+            this.replenishDate=["",""]
             this.searchOrderFilter={
                 list:[],
                 data:{}
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 47c4f2c..cafc314 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
@@ -426,7 +426,6 @@
           printRow.value.flashback = flashback.value
           printRow.value.landingSequence=landingSequence.value
           printRow.value.compound = compound.value
-          console.log(printRow.value)
           // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
           if(company.companyName=='甯稿窞甯傚悏鍒╃幓鐠冩湁闄愬叕鍙�'){
             dialogTableVisibleStraight.value = true
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProgressProcessCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProgressProcessCard.vue
index ab88f44..348276f 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProgressProcessCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProgressProcessCard.vue
@@ -325,6 +325,9 @@
     {field: 'process_id',width: 150, title: t('processCard.processId'),filters: [{data: ''}],
       slots: {filter: 'num1_filter'},
       filterMethod: filterChanged},
+    {field: 'technology_number', width: 110,title: t('processCard.technologyNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      filterMethod: filterChanged},
     {field: 'print_status', width: 120,title: t('processCard.numberTimesProcessCardPrinted')},
     {field: 'print_number', width: 110,title: t('processCard.numberLabelPrintingOperations')},
     {field: 'order_number', width: 100,title: t('order.OrderNum'),showOverflow:"ellipsis",filters: [{data: ''}],
@@ -333,10 +336,6 @@
     // {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
     //   slots: {filter: 'num1_filter'},
     //   filterMethod: filterChanged},
-    {field: 'technology_number', width: 110,title: t('processCard.technologyNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
-      slots: {filter: 'num1_filter'},
-      filterMethod: filterChanged},
-
     {field: 'quantity', width: 90,title: t('order.quantity')},
     {field: 'grossArea', width: 90,title: t('order.area')},
     {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/ProcessCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/ProcessCard.vue
index 785d376..1f68f16 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/ProcessCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/ProcessCard.vue
@@ -28,7 +28,7 @@
         <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/processCard/productionScheduling' }">{{$t('processCard.scheduling')}}
         </el-breadcrumb-item>
         <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/processCard/selectPrintFlowCard' }" >{{ $t('basicData.print') }}</el-breadcrumb-item>
-<!--        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/processCard/printProgressProcessCard' }" >{{ $t('processCard.printProgressProcessCard') }}</el-breadcrumb-item>-->
+        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/processCard/printProgressProcessCard' }" >{{ $t('processCard.printProgressProcessCard') }}</el-breadcrumb-item>
         <el-breadcrumb-item @click="changeRouter(6)" :class="indexFlag===6?'indexTag':''" :to="{ path: '/main/processCard/selectPrintProject' }" >{{$t('processCard.engineeringPrinting')}}</el-breadcrumb-item>
         <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/processCard/selectPrintFlowCard' }" style="display: none">{{ $t('basicData.print') }}</el-breadcrumb-item>
       </el-breadcrumb>
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 c3d5e09..de5b58c 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
@@ -24,7 +24,9 @@
 import PrintCustomLabelProject from "@/components/pp/PrintCustomLabelProject.vue";
 import PrintProcessConsolidated from '@/components/pp/PrintConsolidatedReplenish.vue'
 import {createTemplate} from "@/hook/createTemplateTag";
+import useOrderInfoStore from "@/stores/sd/order/orderInfo";
 const company = companyInfo()
+const orderInfo = useOrderInfoStore()
 //璇█鑾峰彇
 const {t} = useI18n()
 let router = useRouter()
@@ -211,11 +213,12 @@
 let startTime = form.date1[0]
 let endTime = form.date1[1]
 // 绗竴娆″姞杞芥煡璇�
-request.post(`/Replenish/selectPrint/${startTime}/${endTime}`, filterData.value).then((res) => {
+request.post(`/Replenish/selectPrint/${orderInfo.replenishDate}`, filterData.value).then((res) => {
 
   if (res.code == 200) {
     produceList = produceList.value.concat(deepClone(res.data.data))
     titleSelectJson.value.dataType = res.data.type
+    orderInfo.replenishDate = res.data.selectDate
     xGrid.value.reloadData(produceList)
     gridOptions.loading = false
   } else {
@@ -230,11 +233,12 @@
   let endTime = form.date1[1]
   gridOptions.loading=true
 // 绗竴娆″姞杞芥煡璇�
-  request.post(`/Replenish/selectPrint/${startTime}/${endTime}`, filterData.value).then((res) => {
+  request.post(`/Replenish/selectPrint/${orderInfo.replenishDate}`, filterData.value).then((res) => {
 
     if (res.code == 200) {
 
       xGrid.value.loadData(res.data.data)
+      orderInfo.replenishDate = res.data.selectDate
       titleSelectJson.value.dataType = res.data.type
       gridOptions.loading = false
     } else {
@@ -773,7 +777,8 @@
   <div  style="width: 100%;height: 100%">
     <div class="head">
       <el-date-picker
-          v-model="form.date1"
+          v-model="orderInfo.replenishDate"
+          :default-time="defaultTime"
           :end-placeholder="$t('basicData.endDate')"
           :start-placeholder="$t('basicData.startDate')"
           format="YYYY/MM/DD"
diff --git a/north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue b/north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue
index f6aee63..ab6a625 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue
@@ -3,17 +3,18 @@
 import {reactive, ref} from "vue";
 import {useRouter} from 'vue-router'
 import request from "@/utils/request";
-import {ElMessage} from "element-plus";
+import {ElDatePicker, ElMessage} from "element-plus";
 import deepClone from "@/utils/deepClone";
 import {Search} from "@element-plus/icons-vue";
 import useUserInfoStore from "@/stores/userInfo";
 import { useI18n } from 'vue-i18n'
 import footSum from "@/hook/footSum";
+import useOrderInfoStore from "@/stores/sd/order/orderInfo";
 
 //璇█鑾峰彇
 const { t } = useI18n()
 
-
+const orderInfo = useOrderInfoStore()
 const userStore = useUserInfoStore()
 const username = userStore.user.userName
 const userid = userStore.user.userId
@@ -52,13 +53,13 @@
 })
 
 //绗竴娆¤皟鐢�
-request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
+request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${orderInfo.replenishDate}`,filterData.value).then((res) => {
 
   if(res.code==200){
     total.dataTotal = res.data.total.total*1
     total.pageTotal= res.data.total.pageTotal
 
-    selectDate.value = res.data.selectDate
+    orderInfo.replenishDate = res.data.selectDate
     pageNum.value=1
 
     produceList = deepClone(res.data.data)
@@ -88,13 +89,13 @@
   }else{
     filterData.value[column.property] = value
   }
-  request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
+  request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${orderInfo.replenishDate}`,filterData.value).then((res) => {
 
     if(res.code==200){
       total.dataTotal = res.data.total.total*1
       total.pageTotal= res.data.total.pageTotal
 
-      selectDate.value = res.data.selectDate
+      orderInfo.replenishDate = res.data.selectDate
       pageNum.value=1
 
       produceList = deepClone(res.data.data)
@@ -323,13 +324,13 @@
 
 const selectOrderList = ()=>{
   gridOptions.loading = true
-  request.post(`/Replenish/SelectReplenish/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
+  request.post(`/Replenish/SelectReplenish/${pageNum.value}/${total.pageSize}/${orderInfo.replenishDate}`,filterData.value).then((res) => {
     if(res.code==200){
       if (res.data.total!=null){
         total.dataTotal = res.data.total.total*1
         total.pageTotal= res.data.total.pageTotal
       }
-      selectDate.value = res.data.selectDate
+      orderInfo.replenishDate = res.data.selectDate
 
       produceList = deepClone(res.data.data)
       xGrid.value.loadData(produceList)
@@ -419,11 +420,12 @@
   <div  style="width: 100%;height: 100%">
     <div class="head">
       <el-date-picker
-          v-model="selectDate"
-          type="daterange"
-          :start-placeholder="$t('basicData.startDate')"
+          v-model="orderInfo.replenishDate"
+          :default-time="defaultTime"
           :end-placeholder="$t('basicData.endDate')"
-          format="YYYY-MM-DD"
+          :start-placeholder="$t('basicData.startDate')"
+          format="YYYY/MM/DD"
+          type="daterange"
           value-format="YYYY-MM-DD"
 
       />
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 4f080d7..cb4bf47 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
@@ -224,7 +224,7 @@
         //绂佺敤鎸夐挳
         gridOptions.toolbarConfig.buttons[2].disabled  = true
         gridOptions.toolbarConfig.buttons[3].disabled = true
-        //gridOptions.toolbarConfig.buttons[4].disabled = false
+        //gridOptions.toolbarConfig.buttons[4].disabled = true
         //鏄剧ず澶嶉�夋
         xGrid.value.showColumn("select")
         gridOptions.loading=false
@@ -390,7 +390,7 @@
       {'code': 'addToExamine', 'name': t('reportingWorks.saveAndReview'),status: 'primary',icon: 'vxe-icon-save'},
       {'code': 'toExamine', 'name': t('basicData.review'),status: 'primary'},
       {'code': 'CounterExamination', 'name': t('basicData.cancelReview'),status: 'primary'},
-      //{'code': 'addOtherOrders','name': t('delivery.orderAdd'),'status': 'primary'}
+      //{'code': 'addOtherOrders','name': t('delivery.orderAdd'),status: 'primary'}
       //{'code': 'glassShelf', 'name': t('finishedGlassShelf.finishedGlassShelfEmit'),status: 'primary'}
     ],
     /*import: false,
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
index 2c44ee0..8ad123e 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -57,6 +57,8 @@
 
 const orderTypeState = ref(0)
 
+let deliveryCount = ref(0)
+
 // 瀹氫箟琛ㄥご涓婁紶鏁版嵁
 const titleUploadData = ref({
   project:'',
@@ -331,7 +333,29 @@
         }
         case 'updateMoney': {
           $grid.clearEdit()
-          updateMoney()
+          deliveryCount.value=0
+          if(deliveryCount.value>0){
+            ElMessageBox.confirm("璁㈠崟宸插瓨鍦ㄦ湭瀹℃牳鐨勫彂璐у崟锛屾槸鍚︿慨鏀规湭瀹℃牳鍙戣揣鍗曠殑鍗曚环骞堕噸鏂拌绠楅噾棰�",
+                t('order.msg.warning'),
+                {
+                  confirmButtonText: t('basicData.confirmButtonText'),
+                  cancelButtonText: t('basicData.cancelButtonText'),
+                  distinguishCancelAndClose: true,
+                  type: 'warning',
+                }
+            ).then(()=>{
+              updateMoney(1)
+            }).catch((action)=>{
+              if (action === 'cancel') {
+                updateMoney(2)
+              } else if (action === 'close') {
+              }
+            })
+
+          }else{
+            updateMoney(2)
+          }
+
           break
         }
         case 'Craft': {
@@ -966,6 +990,7 @@
   request.post(`/order/getOrderById/${str}`).then((res) => {
     if(res.code==200){
       titleUploadData.value = res.data.order
+      deliveryCount.value = res.data.deliveryCount
       const customer = titleSelectJson.value.customer.filter(item => item.id === titleUploadData.value.customerId)
       projects.value = customer[0].projectList
       newOrderId.value=titleUploadData.value.orderId
@@ -1292,13 +1317,14 @@
 }
 
 //鏇存柊閲戦閲嶇疆
-const updateMoney = () => {
+const updateMoney = (type) => {
   titleUploadData.value.creatorId=userStore.user.userId
   titleUploadData.value.creator=userStore.user.userName
   const updateData = {
     order: titleUploadData.value,
     detail: xGrid.value.getTableData().fullData,
-    otherMoney:otherMoney.value
+    otherMoney:otherMoney.value,
+    type:type
   }
   request.post(`/order/updateOrderMoney`,updateData).then(res => {
     if (res.code == 200){
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
index b11c52f..5d205b5 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -46,7 +46,9 @@
     dataTotal : 0,
     pageSize : 50
   })
-
+let printRow = ref({
+  list: null,
+})
 
   const xGrid = ref()
   const gridOptions = reactive({
@@ -255,6 +257,9 @@
               return
             }
             ElMessage.warning(t('order.printingNumber')+rowClickIndex.value.printingNumber)
+            let selectRecords = ref(null)
+            selectRecords=rowClickIndex.value
+            printRow.value.list = JSON.stringify([selectRecords])
             dialogTableVisible.value = true
             sheetIndex.value=4
             if(rowClickIndex.value.processReview===2 && rowClickIndex.value.orderReview===0){
@@ -792,7 +797,7 @@
       <print-sheet1 id="child"  v-if="sheetIndex===1" :orderId="rowClickIndex.orderId" />
       <print-sheet2 id="child" v-else-if="sheetIndex===2" :orderId="rowClickIndex.orderId" />
       <print-sheet3 id="child" v-else-if="sheetIndex===3" :orderId="rowClickIndex.orderId" />
-      <print-sheet4 id="child" v-else-if="sheetIndex===4" :orderId="rowClickIndex.orderId" />
+      <print-sheet4 id="child" v-else-if="sheetIndex===4" :orderId="rowClickIndex.orderId" :dataList="printRow.list"/>
       <print-sheet5 id="child" v-else-if="sheetIndex===5" :orderId="rowClickIndex.orderId" />
 
     </el-dialog>
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
index c559028..04dfd7c 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
@@ -68,12 +68,11 @@
 
     @ApiOperation("琛ョ墖娴佺▼鍗℃槑缁嗘煡璇㈡帴鍙�")
     @SaCheckPermission("printReplenishFlowCard.search")
-    @PostMapping("/selectPrint/{selectTime1}/{selectTime2}")
+    @PostMapping("/selectPrint/{selectDate}")
     public Result selectPrint(
-            @PathVariable Date selectTime1,
-            @PathVariable Date selectTime2,
+            @PathVariable List<String> selectDate,
             @RequestBody FlowCard flowCard) {
-        return Result.success(replenishService.selectPrintSv(selectTime1,selectTime2, flowCard));
+        return Result.success(replenishService.selectPrintSv(selectDate, flowCard));
 
     }
 
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 d4fea5f..bcdbe7f 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
@@ -120,7 +120,7 @@
 
     Integer getPrintLabelCount(String processId, String technologyNumber);
 
-    List<Map<String, String>> selectReplenishPrintMp(Date selectTime1, Date selectTime2, FlowCard flowCard);
+    List<Map<String, String>> selectReplenishPrintMp(String selectTime1, String selectTime2, FlowCard flowCard);
 
     List<Map<String, Object>> getRepairPrintCustomData(String processId, String technologyNumber, String reportingWorkId, Integer orderNumber);
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java
index 4c6de76..8ae4813 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java
@@ -100,4 +100,13 @@
 
     OrderDetail selectOrderDetailDeliveryCount(@Param("orderDetail") OrderDetail orderDetail);
 
+    List<DeliveryDetail> getDeliverDetailOrderNumber(@Param("orderId") String orderId,
+                                         @Param("orderNumber") Integer orderNumber,@Param("deliveryId") String deliveryId);
+
+    List<Delivery> getDeliverOrderNumber(@Param("orderId") String orderId,
+                                                     @Param("orderNumber") Integer orderNumber);
+
+    Boolean updateDeliveryDetailmonye(@Param("price") Double price,@Param("deliveryDetail") DeliveryDetail deliveryDetail);
+    Boolean updateDeliverymonye(@Param("deliveryId") String deliveryId,@Param("money") Double money);
+
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
index 4e19bf2..fa8b8cd 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
@@ -71,4 +71,6 @@
 
     List<Map<String,Object>> selectProcessAttributeConfigOne();
     List<Map<String,Object>> selectProcessAttributeConfigTow(String belong);
+
+    Integer selectDeliveryStateConut(String orderId);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
index 602db86..8f78102 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
@@ -97,9 +97,9 @@
 
         Integer offset = (pageNum - 1) * pageSize;
 
-        // 榛樿鏃堕棿鑼冨洿锛氳繃鍘�15澶�
+        // 榛樿鏃堕棿鑼冨洿锛氳繃鍘�7澶�
         String endDate = LocalDate.now().toString();
-        String startDate = LocalDate.now().minusDays(15).toString();
+        String startDate = LocalDate.now().minusDays(7).toString();
 
         // 鐢ㄦ埛鑷畾涔夋椂闂存
         if (selectDate != null && selectDate.size() == 2) {
@@ -270,9 +270,27 @@
         return oddNumbers;
     }
 
-    public Object selectPrintSv(java.sql.Date selectTime1, java.sql.Date selectTime2, FlowCard flowCard) {
+    public Object selectPrintSv(List<String> selectDate, FlowCard flowCard) {
         Map<String, Object> map = new HashMap<>();
-        map.put("data", flowCardMapper.selectReplenishPrintMp(selectTime1,selectTime2,flowCard));
+        // 榛樿鏃堕棿鑼冨洿锛氳繃鍘�7澶�
+        String endDate = LocalDate.now().toString();
+        String startDate = LocalDate.now().minusDays(7).toString();
+
+        // 鐢ㄦ埛鑷畾涔夋椂闂存
+        if (selectDate != null && selectDate.size() == 2) {
+            if (!selectDate.get(0).isEmpty()) {
+                startDate = selectDate.get(0);
+            }
+            if (!selectDate.get(1).isEmpty()) {
+                endDate = selectDate.get(1);
+            }
+        }
+        // 杩斿洖鏃堕棿娈�
+        List<String> list = new ArrayList<>();
+        list.add(startDate);
+        list.add(endDate);
+        map.put("selectDate", list);
+        map.put("data", flowCardMapper.selectReplenishPrintMp(startDate,endDate,flowCard));
         map.put("type", flowCardMapper.selectType());
         return map;
     }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
index b64171f..a20f900 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -213,7 +213,7 @@
             //鍒ゆ柇澶硅兌鍜屽す鑳跺悗宸ュ簭
             //Objects.equals(basicData.getNickname(), "stepA") || Objects.equals(basicData.getNickname(), "stepC")
             if(Objects.equals(basicData.getNickname(), "stepA") || Objects.equals(basicData.getNickname(), "stepC")){
-                clos.put(uniqueList.get(i).get("process"), 14+i);
+                clos.put(uniqueList.get(i).get("process"), 15+i);
             }
             //鍒ゆ柇涓┖鍜屼腑绌哄悗宸ュ簭
             //Objects.equals(basicData.getNickname(), "stepB") || Objects.equals(basicData.getNickname(), "stepD")
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 8eb787d..3e6dd5a 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
@@ -1015,4 +1015,51 @@
         map.put("totalSum",totalSum);
         return map;
     }
+
+    public boolean updateDeliveryMoney(OrderDetail orderDetail,Order order) {
+        List<Delivery> deliveryList=deliveryDetailMapper.getDeliverOrderNumber(orderDetail.getOrderId(),orderDetail.getOrderNumber());
+        for (Delivery delivery : deliveryList) {
+            if(delivery.getDeliveryState()==0){
+                List<DeliveryDetail> deliveryDetailList=deliveryDetailMapper.getDeliverDetailOrderNumber(orderDetail.getOrderId(),orderDetail.getOrderNumber(),delivery.getDeliveryId());
+                for (DeliveryDetail deliveryDetail : deliveryDetailList) {
+                    deliveryDetail = updateOrderMoneyComputeds(deliveryDetail,orderDetail,order.getCalculateType());
+                    deliveryDetailMapper.updateDeliveryDetailmonye(orderDetail.getPrice(),deliveryDetail);
+                }
+                BigDecimal money = new BigDecimal("0");
+                List<DeliveryDetail> deliveryDetailListNew=deliveryDetailMapper.getIsNotDeliveryDetail(delivery.getDeliveryId());
+                for (DeliveryDetail deliveryDetail : deliveryDetailListNew) {
+                    BigDecimal getMoney= BigDecimal.valueOf(deliveryDetail.getMoney());
+                    money=money.add(getMoney);
+                }
+                deliveryDetailMapper.updateDeliverymonye(delivery.getDeliveryId(), (double) Math.round(money.doubleValue()));
+
+            }
+
+        }
+        return true;
+    }
+
+    private DeliveryDetail updateOrderMoneyComputeds(DeliveryDetail deliveryDetail,OrderDetail orderDetail, Integer calculateType) {
+        BigDecimal getPrice= BigDecimal.valueOf(orderDetail.getPrice());
+        BigDecimal getQuantity= BigDecimal.valueOf(deliveryDetail.getQuantity());
+        BigDecimal getComputeGrossArea= BigDecimal.valueOf(deliveryDetail.getArea());
+        BigDecimal getComputeArea= BigDecimal.valueOf(orderDetail.getComputeArea());
+        BigDecimal getWidth= BigDecimal.valueOf(orderDetail.getWidth());
+        BigDecimal getHeight= BigDecimal.valueOf(orderDetail.getHeight());
+        if (calculateType == 3) {
+            deliveryDetail.setMoney(getPrice.multiply(getQuantity).setScale(2, RoundingMode.HALF_UP).doubleValue());
+        }else if (calculateType == 4) {
+            if(Objects.equals(orderDetail.getArea(), orderDetail.getComputeArea())&&Objects.equals(orderDetail.getGrossArea(), orderDetail.getComputeGrossArea())){
+                deliveryDetail.setMoney(getWidth.multiply(getHeight).multiply(getQuantity).multiply(getPrice).
+                        divide(BigDecimal.valueOf(1000000), 2, RoundingMode.HALF_UP).doubleValue());
+            }else{
+                deliveryDetail.setMoney(getPrice.multiply(getComputeGrossArea).setScale(2, RoundingMode.HALF_UP).doubleValue());
+            }
+        }else if (calculateType == 1){
+            deliveryDetail.setMoney(getPrice.multiply(getComputeArea).multiply(getQuantity).setScale(2, RoundingMode.HALF_UP).doubleValue());
+        }else{
+            deliveryDetail.setMoney(getPrice.multiply(getComputeGrossArea).setScale(2, RoundingMode.HALF_UP).doubleValue());
+        }
+        return deliveryDetail;
+    }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
index 32b2d37..67aa1d4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
@@ -33,20 +33,34 @@
         result = orderDetails.stream()
                 .collect(Collectors.collectingAndThen(
                         Collectors.toMap(
-                                map -> map.get("order_id"),
+                                map -> {
+                                    Object v = map.get("order_id");
+                                    if (v == null) {
+                                        v = map.get("orderId");
+                                    }
+                                    return String.valueOf(v);
+                                },
                                 map -> map,
-                                (existing, replacement) -> existing // 淇濈暀绗竴涓嚭鐜扮殑
+                                (existing, replacement) -> existing // 淇濈暀绗竴涓�
                         ),
-                        map -> new ArrayList<>(map.values())
+                        m -> new ArrayList<>(m.values())
                 ));
         //寰幆鑾峰彇鍥剧墖
         List<OrderFile> orderFiles = new ArrayList<>();
-        for (Map<String,Object> obj : result) {
-            List<OrderFile> orderFile = orderFileMapper.selectList(new QueryWrapper<OrderFile>()
-                    .select("order_id, order_number, image_base64")
-                    .eq("order_id", obj.get("order_id"))
+        for (Map<String, Object> obj : result) {
+
+            Object orderId = obj.get("order_id");
+            if (orderId == null) {
+                orderId = obj.get("orderId");
+            }
+
+            List<OrderFile> orderFile = orderFileMapper.selectList(
+                    new QueryWrapper<OrderFile>()
+                            .select("order_id, order_number, image_base64")
+                            .eq("order_id", orderId)
             );
-            if (orderFile != null){
+
+            if (orderFile != null && !orderFile.isEmpty()) {
                 orderFiles.addAll(orderFile);
             }
         }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
index 0138fbf..1c9a7b0 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -54,7 +54,9 @@
     private final BasicOtherMoneyMapper basicOtherMoneyMapper;
 
     private final OrderProcessDetailMapper orderProcessDetailMapper;
-    public OrderService(OrderMapper orderMapper, OrderDetailMapper orderDetailMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, SysErrorService sysErrorService, OrderOtherMoneyMapper orderOtherMoneyMapper, ProductMapper productMapper, LogService logService, WorkOrderMapper workOrderMapper, FlowCardMapper flowCardMapper, BasicOtherMoneyMapper basicOtherMoneyMapper) {
+
+    private final DeliveryService deliveryService;
+    public OrderService(OrderMapper orderMapper, OrderDetailMapper orderDetailMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, SysErrorService sysErrorService, OrderOtherMoneyMapper orderOtherMoneyMapper, ProductMapper productMapper, LogService logService, WorkOrderMapper workOrderMapper, FlowCardMapper flowCardMapper, BasicOtherMoneyMapper basicOtherMoneyMapper,DeliveryService deliveryService) {
         this.orderMapper = orderMapper;
         this.orderDetailMapper = orderDetailMapper;
         this.orderGlassDetailMapper = orderGlassDetailMapper;
@@ -66,6 +68,7 @@
         this.workOrderMapper = workOrderMapper;
         this.flowCardMapper = flowCardMapper;
         this.basicOtherMoneyMapper = basicOtherMoneyMapper;
+        this.deliveryService = deliveryService;
     }
 
     public boolean saveOrder(Map<String,Object> orderMap) throws Exception {
@@ -434,11 +437,13 @@
         List<OrderDetail> orderDetails = orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id));
         List<OrderOtherMoney> orderOtherMoneyList = orderOtherMoneyMapper.findById(id);
         List<Map<String,String>> orderFileList = orderMapper.selectOrderFileList(id);
+        Integer deliveryCount = orderMapper.selectDeliveryStateConut(id);
         Map<String,Object> map = new HashMap<>();
         map.put("order",order);
         map.put("orderDetails",orderDetails);
         map.put("orderOtherMoneyList",orderOtherMoneyList);
         map.put("orderFile",orderFileList);
+        map.put("deliveryCount",deliveryCount);
         return map;
     }
     //璁㈠崟瀹℃牳
@@ -493,6 +498,7 @@
 
     public boolean updateOrderMoney(Map<String, Object> map) {
         JSONObject jsonObject = new JSONObject(map);
+        int type = Integer.parseInt(jsonObject.get("type").toString());
         Order order = JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("order")), Order.class);
         List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("detail")), OrderDetail.class);
         List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("otherMoney")), OrderOtherMoney.class);
@@ -512,12 +518,16 @@
         log.setContent(jsonObject.toString());
         log.setFunction("updateOrderMoney閲戦閲嶇疆:"+order.getOrderId());
 
+
         //鍒犻櫎鍏朵粬閲戦鏄庣粏琛�
         orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId()));
         List<OrderOtherMoney> orderOtherMoneyLists=orderOtherMoneyList;
 
         double money = 0;
         for (OrderDetail orderDetail : OrderDetails) {
+            if(type==1){
+                deliveryService.updateDeliveryMoney(orderDetail,order);
+            }
             orderDetail =  updateOrderMoneyComputed(orderDetail,order.getCalculateType());
             BigDecimal getGrossAmount= BigDecimal.valueOf(orderDetail.getGrossAmount());
             money+=getGrossAmount.doubleValue();
@@ -611,6 +621,7 @@
         }
         List<OrderDetail> orderDetailList = orderDetailMapper.getOrderReport(offset, pageSize, startDate, endDate, orderDetail,model,scope);
         List<BasicOtherMoney> basicOtherMoneyList=basicOtherMoneyMapper.selectList(new QueryWrapper<BasicOtherMoney>());
+
         ObjectMapper objectMapper = new ObjectMapper();
 
         for (OrderDetail detail : orderDetailList) {
@@ -632,6 +643,10 @@
         map.put("data",orderDetailList);
         map.put("title",basicOtherMoneyList);
         map.put("total",orderDetailMapper.getOrderReportTotal(offset, pageSize, startDate, endDate, orderDetail,"order"));
+        map.put("orderOtherMoney",
+                Collections.singletonList(
+                        basicOtherMoneyMapper.selectList(new QueryWrapper<BasicOtherMoney>().eq("state",1))
+                ));
         List<String> list = new ArrayList<>();
         list.add(startDate);
         list.add(endDate);
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 cb33dfa..3fac30d 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -171,6 +171,7 @@
     <!--    娴佺▼鍗¤繘搴�-->
     <select id="processCardProgressMp">
         select a.product_name,
+               a.building_number,
                b.glass_child,
                d.order_type,
                concat(c.process_id, '/', c.technology_number) as process_id,
diff --git a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
index e921024..2cf1f94 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -90,6 +90,9 @@
         <result column="freight" property="delivery.freight"/>
         <result column="freight_price" property="delivery.freightPrice"/>
         <result column="freight_quantity" property="delivery.freightQuantity"/>
+        <result column="delivery_state" property="delivery.deliveryState"/>
+        <result column="money" property="delivery.money"/>
+        <result column="other_money" property="delivery.otherMoney"/>
 
         <result column="product_id" property="orderDetail.productId"/>
         <result column="product_name" property="orderDetail.productName"/>
@@ -1400,4 +1403,44 @@
         group by dd.delivery_id,dd.order_id,od.product_id
         order by dd.delivery_id,dd.delivery_number
     </select>
+
+
+    <select id="getDeliverDetailOrderNumber" resultMap="selectDeliveryDetail">
+        select dd.order_id,
+        dd.order_Number,
+        dd.delivery_number,
+        dd.delivery_id,
+        dd.quantity,
+        dd.price,
+        dd.area,
+        dd.money,
+        dd.other_columns,
+        d.delivery_state,
+        d.money
+        from sd.delivery_detail dd
+        left join sd.delivery d on dd.delivery_id=d.delivery_id
+        where dd.order_id=#{orderId} and dd.order_number=#{orderNumber} and dd.delivery_id=#{deliveryId}
+
+    </select>
+
+    <select id="getDeliverOrderNumber">
+        select
+               d.delivery_id,
+               d.delivery_state,
+               d.money
+        from sd.delivery_detail dd
+                 left join sd.delivery d on dd.delivery_id=d.delivery_id
+        where dd.order_id=#{orderId} and dd.order_number=#{orderNumber}
+        group by d.delivery_id
+    </select>
+
+    <update id="updateDeliveryDetailmonye">
+        update sd.delivery_detail set price=#{price},money=#{deliveryDetail.money}
+            where delivery_id=#{deliveryDetail.deliveryId} and delivery_number=#{deliveryDetail.deliveryNumber}
+    </update>
+
+    <update id="updateDeliverymonye">
+        update sd.delivery set money=#{money}
+        where delivery_id=#{deliveryId}
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
index a7b5afd..029c7ca 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
@@ -449,4 +449,8 @@
         where level=2 and belong=#{belong}
 
     </select>
+
+    <select id="selectDeliveryStateConut">
+        select count(*) from sd.delivery_detail dd left join sd.delivery d on dd.delivery_id=d.delivery_id where dd.order_id= #{orderId} and d.delivery_state=0
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0