From d64a5b5aa83fe566f43216ac718b970fbb9c96f7 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期一, 30 十二月 2024 16:46:13 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue                  |    4 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java |    1 
 north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabel.vue        |  185 ++++++++++++++++++--------
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java        |    2 
 north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue   |  165 ++++++++++-------------
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java      |   10 
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                          |   41 ++---
 7 files changed, 231 insertions(+), 177 deletions(-)

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 c5f3a92..85dccb4 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -62,6 +62,7 @@
         request.post(`/processCard/getSelectPrintProject/${printProject}`).then((res) => {
           if (res.code == 200) {
             load(res.data.data)
+            console.log(res.data)
           } else {
             ElMessage.warning(res.msg)
             router.push("/login")
@@ -94,8 +95,7 @@
     produceList.value[i].detail[0]["qrcodeList"] = []; // 鍒濆鍖栦竴涓┖鏁扮粍鐢ㄦ潵瀛樺偍 QR Code
 
     const processId = produceList.value[i].detail[0].process_id;
-    const url = `${processId}/${technologyNumber}`;
-    console.log(url)
+    const url = `${processId}/${technologyNumber}`
     // 鐢熸垚 QR Code 骞跺瓨鍌ㄥ埌鏁扮粍涓�
     const qrcodeData = await QRCode.toDataURL(url);
     produceList.value[i].detail[0]["qrcodeList"].push({
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabel.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabel.vue
index 552079d..637b8bf 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabel.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintRepairCustomLabel.vue
@@ -7,6 +7,9 @@
 import {changeFilterEvent, filterChanged} from "@/hook"
 import {useI18n} from 'vue-i18n'
 import deepClone from "@/utils/deepClone";
+import companyInfo from "@/stores/sd/companyInfo";
+
+const company = companyInfo()
 //璇█鑾峰彇
 const {t} = useI18n()
 let router = useRouter()
@@ -15,7 +18,7 @@
 let titleList = ref([])
 let dataList = ref([])
 let list = ref([])
-let lastList=ref([])
+let lastList = ref([])
 
 let filterData = ref({})
 
@@ -27,30 +30,63 @@
   list:null,//鍕鹃�夌殑鏁版嵁
   faceOrientation:null,//鍐呭闈�
   type:null,//鏍囩妯℃澘
-  lableType:null//鏍囩绫诲瀷
+  lableType:null,//鏍囩绫诲瀷
+  titleList:null,//鏍囬
+  switch:null,//鍒ゆ柇鏄惁涓烘柊鎵撳嵃,
+  lastList:[],
+  detailType:null
 })
 
 const {currentRoute} = useRouter()
 const route = currentRoute.value
 let type = props.type
-let faceOrientation = props.faceOrientation
-let lableType = props.lableType
-data.value.printList = JSON.parse(props.list)
 
+let lableType = props.lableType
+let switchType = props.switch
+let detailType= props.detailType
+data.value.printList = JSON.parse(props.list)
 onMounted(() => {
+
       request.post(`/Replenish/getSelectPrintCustomLabel/${type}/${lableType}`, data.value).then((res) => {
         if (res.code == 200) {
-
           produceList.value = deepClone(res.data.title)
           list.value = deepClone(res.data.data)
           const data = produceList.value[0].value
           dataList = JSON.parse(`[${data}]`);
-          labelList = dataList[0]
+          const printElements = dataList[0].panels[0].printElements;
+          let a = []
+          printElements.forEach(element => {
+            if(element.options.field==='table'){
+              element.options.columns[0].forEach(elements => {
+                if(elements.field){
+                  a.push({
+                        title: elements.title,
+                        name: elements.field
+                      }
+                  )
+                }
+              })
+            }else{
+              a.push({
+                title: element.options.title,
+                name: element.options.field
+              })
+            }
+          })
+          labelList = a
           for (let i = 0; i < list.value.length; i++) {
-            let count= list.value[i].data.length
+            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])
+              if (detailType==0){
+                for (let k = 0; k < list.value[i].data[j].quantity; k++) {
+                  props.lastList.push(list.value[i].data[j])
+                }
+
+              }
+              else {
+                for (let k = 0; k < list.value[i].data[j].quantity; k++) {
+                props.lastList.push(list.value[i].data[j])
+                }
               }
             }
           }
@@ -65,58 +101,93 @@
 )
 
 
-// 鎵撳嵃鏂规硶
-const printFlowCard = () => {
-  // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
-  let el = document.getElementById("print");
-  let doc = document;
-  let body = doc.body || doc.getElementsByTagName("body")[0];
-  let printId = "print-" + Date.now();
 
-  // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
-  let content = doc.createElement("div");
-  content.id = printId;
+//淇敼鐩稿悓浜у搧鍚嶇О鏍囩
+const updateProductName = (event, index,id) => {
+  // 鍒涘缓鏄犲皠瀵硅薄
+  const propertyMapping = {};
+  labelList.forEach(item => {
+    propertyMapping[item.name] = item.title;
+  });
+  // 杈撳叆鐨勫��
+  const newValue = event.target.innerText;
+  const parts = newValue.split('锛�');
+  const result = parts[1]; // 鑾峰彇鍐掑彿鍚庣殑閮ㄥ垎
+  // 鑾峰彇鏄犲皠涓墍鏈夌殑閿�
+  const keys = Object.keys(propertyMapping);
+  // 鏍规嵁 index 鑾峰彇瀵瑰簲鐨勫睘鎬у悕
+  const propertyName = keys[index];
+  // 濡傛灉鏄犲皠涓病鏈夎 index锛岀洿鎺ヨ繑鍥�
+  if (!propertyName) {
+    console.warn('Unsupported index:', index);
+    return;
+  }
 
-  // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
-  let style = doc.createElement("style");
-  style.innerHTML =
-      "body>#" +
-      printId +
-      "{display:none}@media print{body>:not(#" +
-      printId +
-      "){display:none !important}body>#" +
-      printId +
-      "{display:block;padding-top:1px}}";
-  //
-  content.innerHTML = el.outerHTML;
-  body.appendChild(style);
+  // 閬嶅巻 lastList 骞舵洿鏂板搴旂殑灞炴��
+  props.lastList.forEach(obj => {
+    // 鑾峰彇鍓嶇紑鍜� orderId
+    const prefix = props.lastList[id].processId.substring(0, 11);
+    const orderId = obj.orderId;
+    const glassNumber=props.lastList[id].glassNumber
+    // 鏍规嵁 propertyName 鏇存柊灞炴��
+    if (propertyName === 'productAbbreviation' && prefix === obj.processId.substring(0, 11)) {
+      obj.productAbbreviation = result;
+    }
 
-  // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
-  // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
-  body.appendChild(content);
-  setTimeout(() => {
-    window.print();
-    body.removeChild(content);
-    body.removeChild(style);
-  }, 20);
+    if (propertyName === 'project' && orderId === obj.orderId) {
+      obj.project = result;
+    }
+    if (propertyName === 'productName' && prefix === obj.processId.substring(0, 11)){
+      obj.productName = result;
+    }
+    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;
+    }
+  });
 }
+
+
 </script>
 
 <template>
-  <div class="printFlowCard_finished" id="print">
-    <div v-for="(item1,id) in lastList"   class="entirety_finished">
-        <div class="row4">{{faceOrientation}}</div>
-        <div v-for="(item,id) in labelList"  class="contentRow">
-          <div class="row1" v-if="item1[item.name] != null && item1[item.name] !== ''">{{ item.title }}:</div>
-          <div class="row2" v-if="item1[item.name] != null && item1[item.name] !== ''">{{ item1[item.name] }}</div>
-
-        </div>
-        <div class="row3">
-          <label>W:{{ item1.width }}</label>
-          &nbsp;&nbsp;&nbsp;
-          <label>H:{{ item1.height }}</label>
-        </div>
-
+  <div id="print" :class="company.printLabel.className.custom.printFlowCardName()">
+    <div v-for="(item1,index) in props.lastList" :class="company.printLabel.className.custom.entiretyName()">
+      <div class="row4">{{ faceOrientation }}</div>
+      <div v-for="(item,id) in labelList" :class="company.printLabel.className.custom.contentRowName()">
+        <div v-if="item1[item.name] != null && item1[item.name] !== ''" class="row1"  contenteditable="true" @input="updateProductName($event, id,index)" v-text="item.title+'锛�'+item1[item.name]"></div>
+        <div v-else class="row1"  contenteditable="true" @input="updateProductName($event, id,index)" v-text="item.title+'锛�'"></div>
+        <!--          <div class="row2" style="width: 100%;"><input class="contentRow2" v-model="item1[item.name]"  @keyup="updataProductName()" style="border: none;"/></div>-->
+        <!--          <div v-if="item1[item.name] != null && item1[item.name] !== ''" class="row2" style="width: 100%;" contenteditable="true" @input="updateProductName($event, id)" v-text="item1[item.name]"></div>-->
+      </div>
+      <!--        <div v-html="company.printLabel.custom(item1)"></div>-->
+      <div v-if="(id + 1) % 2 === 0" class="pagebreak"></div>
     </div>
   </div>
 
@@ -220,7 +291,9 @@
 .entirety_finished{
   page-break-before: always;
 }
-
+  .pagebreak {
+    page-break-after: always;
+  }
 }
 
 </style>
\ No newline at end of file
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 b4e6e6b..d862442 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
@@ -14,11 +14,14 @@
 import PrintCustomLabel from '@/components/pp/PrintRepairCustomLabel.vue'
 import PrintCustomLabelSemi from '@/components/pp/PrintRepairCustomLabelSemi.vue'
 import footSum from "@/hook/footSum"
-import {Search} from "@element-plus/icons-vue";
+import {Search, View} from "@element-plus/icons-vue";
 import companyInfo from "@/stores/sd/companyInfo"
 import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global";
 import SortDetail from "@/components/pp/SelectSortDetailProcessCard.vue";
-
+import {hiprint} from "vue-plugin-hiprint";
+//import PrintCustomLabel from '@/components/pp/PrintCustomLabelDetails.vue'
+import QueuePrinter from "@/hook/queue";
+import PrintCustomLabelProject from "@/components/pp/PrintCustomLabelProject.vue";
 const company = companyInfo()
 //璇█鑾峰彇
 const {t} = useI18n()
@@ -32,8 +35,18 @@
 const xGrid = ref(null)
 const xGridDetail =ref(null)
 
+const tags = ref([])
 
-
+const tag = ref({
+  id: null,
+  name: null,
+  type: 1,
+  tagWidth: null,
+  tagHeight: null,
+  value: null,
+  size: null
+})
+let lastList = ref([])
 const getTableRow = (row,type) =>{
   switch (type) {
     case 'edit' : {
@@ -159,6 +172,9 @@
   id: 'childLabelSemi',
 })
 
+onMounted(async () => {
+  await getTags();
+})
 
 //鎵撳嵃绫诲瀷
 const printType = ref('灏忕墖鏍囩')
@@ -456,48 +472,17 @@
           break
         }
         case 'customLabel': {
-          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
-            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
+          if (tag.value.name == null || tag.value.name == '') {
+            ElMessage.warning(t('璇烽�夋嫨鏍囩妯℃澘'))
             return
           }
-          if (type===null||type===''||type===undefined){
-            ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle'))
-            return
-          }
-
-          let id = ""
-          for (let i = 0; i < selectRecords.length; i++) {
-            if (i + 1 === selectRecords.length) {
-              id += selectRecords[i].id
-            } else {
-              id += selectRecords[i].id + "|"
-            }
-          }
-          if (lableTypes==1){
-
-            labelRow.value.list=JSON.stringify(selectRecords)
-            labelRow.value.faceOrientation=faceOrientation
-            labelRow.value.type=type
-            labelRow.value.lableType= lableTypes
-            dialogTableVisibleLabel.value=true
-            //router.push({path: '/main/processCard/PrintCustomLabel', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
-
-          }
-          else if (lableTypes==2) {
-            labelRow.value.list=JSON.stringify(selectRecords)
-            labelRow.value.faceOrientation=faceOrientation
-            labelRow.value.type=type
-            labelRow.value.lableType= lableTypes
-            dialogTableVisibleCustomLabel.value=true
-            //router.push({path: '/main/processCard/PrintCustomLabelSemi', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
-
-          }else
-          if (lableTypes==3) {
-            router.push({path: '/main/processCard/PrintLabel1', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
-
-          }
-
-
+          labelRow.value.list = JSON.stringify(selectRecords)
+          labelRow.value.type = tag.value.name
+          labelRow.value.dataType = 3
+          labelRow.value.lableType = lableTypes
+          labelRow.value.switch = true
+          lastList.value = []
+          dialogTableVisibleLabel.value = true
           break
         }
         case 'printLike': {
@@ -673,6 +658,18 @@
   })
 }
 
+const getTags = () => {
+  request.get('tagStyle/getTagList').then(res => {
+    tags.value = res.data
+  })
+}
+let hiprintTemplate = ref()
+const changeTag = () => {
+  hiprintTemplate.value = new hiprint.PrintTemplate({});
+  const json = JSON.parse(tag.value.value)
+  hiprintTemplate.value.update(json)
+}
+
 // 鐩戝惉鎵撳嵃瀹屾垚浜嬩欢
 const printNumber = () =>{
 
@@ -686,6 +683,10 @@
 
     }
   })
+}
+
+const printObjectProcess = () => {
+  hiprintTemplate.value.print(lastList.value)
 }
 
 </script>
@@ -709,35 +710,16 @@
 
       </el-button>
       &nbsp;&nbsp;
-      <!--    <el-input clearable :placeholder="$t('processCard.mergePrinting')" v-model="printMerge" style="width: 90px"></el-input>-->
-      <!--    &nbsp;-->
-      <label>{{$t('processCard.labelStyle')}}锛�</label>
-      <el-select v-model="printType" clearable default-value="default_city" :placeholder="$t('processCard.pleaseSelect')" style="width: 120px">
-        <el-option
-            v-for="item in titleSelectJson['dataType']"
-            :key="item.id"
-            :label="item.name"
-            :value="item.name"
-        />
-      </el-select>
-      &nbsp;
-      <el-select v-model="lableType" class="m-2" :placeholder="lableTypeOptions[0].label" style="width: 140px">
-        <el-option
-            v-for="item in filteredOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-        />
-      </el-select>
-      &nbsp;
-      <el-select v-model="stateValue" class="m-2" :placeholder="$t('processCard.pleaseSelect')" clearable allow-create filterable style="width: 140px">
-        <el-option
-            v-for="item in stateOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-        />
-      </el-select>
+        鏍囩妯℃澘锛�
+        <el-select v-model="tag" placeholder="鏍囩妯℃澘鍒楄〃" style="width: 140px" @change="changeTag">
+          <el-option
+              v-for="(tag,index) in tags"
+              :key="index"
+              :label="tag.name"
+              :value="tag"
+          />
+        </el-select>
+
     </div>
     <div class="main-table">
       <vxe-grid
@@ -802,24 +784,6 @@
                      style="width: 100%;height: 100%" />
     </el-dialog>
 
-    <!--    鎴愬搧鏍囩-->
-    <el-dialog
-        id="sizeCustom"
-        v-model="dialogTableVisibleLabel"
-        destroy-on-close
-        :title="$t('processCard.printLabel')"
-        style="width: 80%;height:75% ">
-      <template #header="{ close, titleId, titleClass }">
-        <el-button v-print="printContentLabel"   :icon="Printer" circle />
-      </template>
-      <print-custom-label id="childLabel"
-                          :list="labelRow.list"
-                          :faceOrientation="labelRow.faceOrientation"
-                          :type="labelRow.type"
-                          :lableType="labelRow.lableType"
-                          style="width: 100%;height: 100%" />
-    </el-dialog>
-
     <!--   灏忕墖鏍囩 -->
     <el-dialog
         id="sizeCustomSemi"
@@ -848,7 +812,26 @@
       <sort-detail id="child"  :processId="editRow.processId" :technologyNumber="editRow.technologyNumber" />
     </el-dialog>
 
-
+    <el-dialog
+        id="sizeCustom"
+        v-model="dialogTableVisibleLabel"
+        :title="$t('processCard.printLabel')"
+        destroy-on-close
+        style="width: 80%;height:75% ">
+      <template #header="{ close, titleId, titleClass }">
+        <el-button :icon="Printer" circle @click="printObjectProcess"/>
+      </template>
+      <print-custom-label id="childLabel"
+                                  :detailType="labelRow.detailType"
+                                  :faceOrientation="labelRow.faceOrientation"
+                                  :lableType="labelRow.lableType"
+                                  :lastList='lastList'
+                                  :list="labelRow.list"
+                                  :switch="labelRow.switch"
+                                  :titleList="labelRow.titleList"
+                                  :type="labelRow.type"
+                                  style="width: 100%;height: 100%"/>
+    </el-dialog>
   </div>
 </template>
 
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 6403317..bf15037 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
@@ -129,7 +129,7 @@
 
     List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber, String process);
 
-    List<Map<String, Object>> getDetailListLikes(String processId, String technologyNumber, String process,Integer orderNumber,Integer quantity);
+    List<Map<String, Object>> getDetailListLikes(String processId, String technologyNumber, String process,String printProject,Integer quantity);
 
     List<Map<String, String>> getPrimaryListMergeRefund(String processId, String technologyNumber, Integer orderNumber, String orderId);
 
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 a64bd24..fd66ee6 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
@@ -252,11 +252,11 @@
         if (!flowCardList.isEmpty()) {
             for (FlowCard flowCard : flowCardList) {
                 Map<String, Object> itemmap = new HashMap<>();
-                if ("1".equals(inquiryMode)){
+                if ("1".equals(inquiryMode)){//鍚堝苟娴佺▼鍗�
                     itemmap.put("detail", flowCardMapper.selectPrintMp(flowCard.getOrderId()));
-                } else if ("3".equals(inquiryMode)) {
+                } else if ("3".equals(inquiryMode)) {//鍚堝苟娴佺▼鍗′笉鎸夐厤缃樉绀�
                     itemmap.put("detail", flowCardMapper.selectPrintAllMp(flowCard.getOrderId()));
-                } else {
+                } else {//闈炲悎骞舵祦绋嬪崱
                     itemmap.put("detail", flowCardMapper.selectPrintNotMp(flowCard.getOrderId()));
                 }
 
@@ -390,11 +390,11 @@
 
                         if(flowCard.getPatchState().equals(0)){
                             itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
-                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess());
+                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikes(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess(),printProject,flowCard.getQuantity());
                             itemmap.put("detailList", detailList);
                         }else{
                             itemmap.put("detail", flowCardMapper.getPrimaryLists(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId(),flowCard.getQuantity()));
-                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikes(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess(),flowCard.getOrderNumber(),flowCard.getQuantity());
+                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikes(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess(),printProject,flowCard.getQuantity());
                             itemmap.put("detailList", detailList);
                         }
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index cfb5e27..d68ebdd 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -144,7 +144,6 @@
                 if (retrievedData!=null){
                     Integer reviewedState = retrievedData.getReviewedState();
                     //鏍规嵁瀹℃牳鐘舵�佹煡璇㈡湭瀹℃牳鏁版嵁
-                    System.out.println(laminating);
                     if (reviewedState==1){//宸插鏍�
                         //涓嶆槸绗竴閬撳伐搴忥紝鏌ヨ鎶ュ伐鏁版嵁
                         List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process,previousProcess,laminating);
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 ffab991..d1cb5ec 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -492,7 +492,7 @@
     </select>
 
     <select id="selectPrintMp">
-        select *
+        SELECT result.*,fcc.print_status from ( select *
         from ((select fc.id,
                       fc.order_id,
                       fc.process_id,
@@ -507,7 +507,6 @@
                       ogdss.concatenated_glass_child                                   as glass_child,
                       fc.founder,
                       date(fc.splitFrame_time)                                         as splitFrame_time,
-                      fc.print_status,
                       processed_part                                                   as process
 
                from flow_card as fc
@@ -549,7 +548,6 @@
                       ogdss.concatenated_glass_child                                   as glass_child,
                       fc.founder,
                       date(fc.splitFrame_time)                                         as splitFrame_time,
-                      fc.print_status,
                       processed_part                                                   as process
 
                from flow_card as fc
@@ -587,7 +585,6 @@
                       ogdss.concatenated_glass_child                                   as glass_child,
                       fc.founder,
                       date(fc.splitFrame_time)                                         as splitFrame_time,
-                      fc.print_status,
                       processed_part                                                   as process
 
                from flow_card as fc
@@ -618,7 +615,9 @@
         where process is not null
           and process != ""
         GROUP BY order_id, process_id, technology_number, process
-        order by order_id, process_id, length(technology_number)
+        order by order_id, process_id, length(technology_number)) as result
+        LEFT JOIN (SELECT * from flow_card GROUP BY process_id,technology_number) as fcc
+        on result.process_id = fcc.process_id and result.technology_number = fcc.technology_number
     </select>
 
     <select id="getPrimaryList">
@@ -1318,9 +1317,9 @@
     <select id="getDetailListLikes">
         select fc.order_number,
                concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
-               #{quantity} as quantity,
-               round(ogd.child_width*ogd.child_height*#{quantity}/1000000, 2)                                       as total_area,
-               round((ogd.child_width+ogd.child_height)*2*#{quantity}/1000, 2)    as perimeter,
+               count(*) as quantity,
+               round(ogd.child_width*ogd.child_height*count(*)/1000000, 2)                                       as total_area,
+               round((ogd.child_width+ogd.child_height)*2*count(*)/1000, 2)    as perimeter,
                if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
@@ -1330,20 +1329,20 @@
                fc.technology_number,
                IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
                od.building_number
-        from flow_card as fc
-                 left join sd.order_glass_detail as ogd
-                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
-                              fc.technology_number = ogd.technology_number
-                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
-                 left join sd.product_detail as pd
-                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
-                 left join flow_card_sort as fcs
-                           on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
-                              fcs.technology_number = fc.technology_number
-                               and fcs.process = #{process}
-        where fc.process_id = #{processId}
+        from optimize_detail opt left join flow_card as fc on opt.process_id = fc.process_id and opt.order_sort = fc.order_number and
+                                                              opt.layer = fc.technology_number
+                                 left join sd.order_glass_detail as ogd
+                                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+                                              fc.technology_number = ogd.technology_number
+                                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+                                 left join sd.product_detail as pd
+                                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+                                 left join flow_card_sort as fcs
+                                           on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+                                              fcs.technology_number = fc.technology_number
+                                               and fcs.process = #{process}
+        where opt.process_id = #{processId} and opt.project_no=#{printProject}
           and position(fc.technology_number in #{technologyNumber})
-          and fc.order_number=#{orderNumber}
         group by fc.process_id, fc.order_number, fc.technology_number
         order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
     </select>

--
Gitblit v1.8.0