From 2a243dc744898018adf7523dcb2d10ded968b432 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 23 十二月 2025 10:43:25 +0800
Subject: [PATCH] 流程卡进度打印功能

---
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProgressProcessCard.vue |  152 +++++++++++++++++++++++++++++++++++++++++++++++++-
 north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue                    |    1 
 north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue      |    4 +
 north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue             |    3 
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java        |    6 +
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                            |    9 +-
 6 files changed, 162 insertions(+), 13 deletions(-)

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 1db48b7..4e8ead6 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue
@@ -82,13 +82,14 @@
           for (const group of list.value) {
             // 閬嶅巻姣忕粍涓殑鏁版嵁锛堟浛鎹� j锛�
             for (const item of group.data) {
+              console.log(item)
               const { quantity, newList } = item;
               // 璺宠繃 quantity 涓� 0 鎴栨棤鏁堢殑鎯呭喌
+              console.log(quantity)
               if (!quantity || quantity <= 0) continue;
 
               // 澶勭悊 newList锛氱‘淇濇槸鏁扮粍锛屼笉瓒虫椂鐢ㄧ┖瀵硅薄鍏滃簳
               const safeNewList = Array.isArray(newList) ? newList : [];
-
               // 寰幆 quantity 娆★紝娣诲姞鏁版嵁鍒� lastList
               for (let k = 0; k < quantity; k++) {
                 // 娣辨嫹璐� item锛岄伩鍏嶉噸澶嶅紩鐢紙鍏抽敭锛侊級
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 222227b..5ffc88d 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -92,7 +92,6 @@
         //娴佺▼鍗�
         request.post(`/processCard/getSelectPrinting/${merge}/${like}/${merges}/${props.flashback}/${compound}/${props.landingSequence}`, data.value).then((res) => {
           if (res.code == 200) {
-            console.log(res.data.data)
             load(res.data.data)
           } else {
             ElMessage.warning(res.msg)
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 af2a3bc..ab88f44 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
@@ -15,6 +15,8 @@
 import PrintProcess from "@/components/pp/PrintProcess.vue";
 import PrintCustomLabelXJ from "@/components/pp/PrintCustomLabelTwo.vue";
 import companyInfo from "@/stores/sd/companyInfo";
+import {createTemplate} from "@/hook/createTemplateTag";
+import {hiprint} from "vue-plugin-hiprint";
 //璇█鑾峰彇
 const { t } = useI18n()
 let router=useRouter()
@@ -24,6 +26,8 @@
 
 const dialogTableVisible = ref(false)
 const dialogTableVisibleLabel = ref(false)
+
+let lastList = ref([])
 
 let props = defineProps({
   orderId:null
@@ -86,6 +90,84 @@
   }
 })
 
+//鏍囩
+let labelRow = ref({
+  list: null,//鍕鹃�夌殑鏁版嵁
+  faceOrientation: null,//鍐呭闈�
+  type: null,//鏍囩妯℃澘
+  lableType: null//鏍囩绫诲瀷
+})
+//閫変腑鍐呭
+let selectRecords = ref(null)
+
+//鍚堢墖娴佺▼鍗℃墦鍗颁笅鎷夐�夐」
+const printMerge = ref('')
+const printMergeOptions = [{}]
+
+//鍊掑彊
+let  flashback = ref(1)
+//钀芥灦椤哄簭
+let landingSequence= ref(1)
+//鍚堟灦鎵撳嵃
+let compound = ref(null)
+
+const printContent = ref({
+  id: 'child',
+
+})
+
+let hiprintTemplate = ref(null)
+
+const printContentLabel = ref({
+  id: 'childLabel',
+})
+
+const printContentLabelSemi = ref({
+  id: 'childLabelSemi',
+})
+
+const changeTag = () => {
+  hiprintTemplate.value = new hiprint.PrintTemplate({});
+  hiprintTemplate.value.design("#hiprint-printTemplate1",{grid:true});
+  const json = tag.value.value
+  hiprintTemplate.value.update(json)
+}
+
+const printOrder = (type) => {
+  printNumberLabel()
+  const list = tag.value.value
+  list.panels[0].printElements.forEach(element => {
+    element.options.fontFamily = 'Arial'
+    if( element.options.field !== undefined){
+      if(type===3 ){
+        element.options.hideTitle = true
+      }
+    }
+    if(type!==3){
+      element.options.hideTitle = false
+      if( element.options.field === undefined){
+        element.options.hideTitle = true
+      }
+    }
+  })
+
+  //hiprintTemplate.value.update(list)
+  let object =  JSON.parse(JSON.stringify(lastList.value))
+  //鍒ゆ柇鏄惁涓鸿〃鏍�
+  let columnsNum = null
+  if(list.panels[0].printElements[0].options.field==='table'){
+    object = {table:lastList.value}
+    columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1)
+  }
+  //鍒ゆ柇鏄惁鏈� 宓屽鑷畾涔夌焊寮�
+  if(tag.value.tagHeight && tag.value.tagWidth){
+    const print =createTemplate(list,object,tag.value.tagWidth,tag.value.tagHeight)
+    hiprintTemplate.value.update(print.template)
+    object = print.printData
+  }
+  hiprintTemplate.value.print(object)
+
+}
 
 //闇�瑕佸悎骞剁殑鍒�
 let column = [1,3,8]
@@ -305,9 +387,9 @@
     //   delete obj.print_status;
     // });
     let type = tag.value.name
-    let faceOrientation = stateValue.value
-    let lableTypes = lableType.value
-    let lableTitle = lableType.text
+    let faceOrientation = ''
+    let lableTypes = 1
+    let lableTitle = ''
     if ($grid) {
       switch (code) {
           //鎵撳嵃娴佺▼鍗�
@@ -329,7 +411,7 @@
           printRow.value.printMergeVal = printMerge.value
           printRow.value.like = null
           printRow.value.merge = company.flowCardMerge
-          printRow.value.printFc= printFc
+          printRow.value.printFc= true
           printRow.value.flashback = flashback.value
           printRow.value.landingSequence=landingSequence.value
           printRow.value.compound = compound.value
@@ -356,7 +438,7 @@
               id += selectRecords[i].id + "|"
             }
           }
-
+          lastList.value = []
           labelRow.value.list = JSON.stringify(selectRecords)
           labelRow.value.faceOrientation = faceOrientation
           labelRow.value.type = tag.value.name
@@ -385,6 +467,38 @@
 
 const handleCellDblClick = ({ row, column, cell, $event }) => {
   VxeUI.clipboard.copy(row[column.property])
+}
+
+const selectRecordsData = ref({
+  printList: []
+})
+// 鐩戝惉娴佺▼鍗℃墦鍗板畬鎴愪簨浠�
+const printNumber = () => {
+
+  selectRecordsData.value.printList = selectRecords
+  let printState = 0
+  request.post(`/processCard/updatePrintState/${printState}`, selectRecordsData.value).then((res) => {
+    if (res.code == 200 && res.data === true) {
+    } else {
+
+      ElMessage.warning(t('basicData.msg.saveFail'))
+
+    }
+  })
+}
+
+// 鐩戝惉鏍囩鎵撳嵃瀹屾垚浜嬩欢
+const printNumberLabel = () => {
+
+  selectRecordsData.value.printList = selectRecords
+  request.post(`/tagStyle/updatePrintNumber`, selectRecordsData.value).then((res) => {
+    if (res.code == 200 && res.data === true) {
+    } else {
+
+      ElMessage.warning(t('basicData.msg.saveFail'))
+
+    }
+  })
 }
 </script>
 
@@ -429,6 +543,7 @@
           v-bind="gridOptions"
           :merge-cells="mergeCells"
           @cell-dblclick="handleCellDblClick"
+          v-on="gridEvents"
 
       >
         <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
@@ -534,6 +649,33 @@
   height: calc(100% - 35px);
 }
 
+:deep(#sizeCheck .el-dialog__body) {
+  height: 90%;
+  width: 100%;
+}
+
+:deep(#sizePrintCalrd .el-dialog__body) {
+  height: 85%;
+  width: 100%;
+  overflow-y: auto;
+}
+
+:deep(#sizeCustom .el-dialog__body) {
+  height: 85%;
+  width: 100%;
+  overflow-y: auto;
+}
+
+:deep(#sizeCustomSemi .el-dialog__body) {
+  height: 85%;
+  width: 100%;
+  overflow-y: auto;
+}
+
+:deep(#titleStyle .el-dialog__body){
+  height: 93%;
+  width: 100%;
+}
 .vxe-grid {
   /* 绂佺敤娴忚鍣ㄩ粯璁ら�変腑 */
   -webkit-user-select: none;
diff --git a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
index 47d70ab..15addfc 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -477,9 +477,11 @@
               if (val<row.completedQuantityComputed){
                          //搴撳瓨鏁伴噺銆佸凡鍏ュ簱鏁伴噺
                 if (val>(row.inventory_quantity-row.received_quantity)){
-                  return new Error(`val
+                  if (totalQuantity-val>(row.inventory_quantity-row.received_quantity)){
+                    return new Error(`val
                                   <=
                                   ${row.inventory_quantity-row.received_quantity}`)
+                  }
                 }else {
                   if (val < (row.inventory_quantity-row.received_quantity)){
                         //瀹屽伐鎬绘暟銆佹湰娆″畬宸ユ暟銆佸凡鍏ュ簱鏁伴噺
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 1e40d95..b1ba51e 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
@@ -741,7 +741,11 @@
                     Map<String, Object> itemmap = new HashMap<>();
 
                     Integer sumQuantity = flowCardMapper.getSumQuantity(flowCard.getOrderId());
-                    List<Map<String, Object>> details = flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity());
+                    Integer printQuantity = flowCard.getPrintQuantity();
+                    if (printQuantity==null){
+                        printQuantity=0;
+                    }
+                    List<Map<String, Object>> details = flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber(), printQuantity);
 
                     for (Map<String, Object> detail : details) {
                         detail.put("sumQuantity", sumQuantity);
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 952fb3c..92c10e2 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1156,19 +1156,19 @@
                od.processing_note                                    as processingNote,
                width,
                height,
-               #{printQuantity}  as quantity,
+               if(#{printQuantity}>0 ,#{printQuantity},fc.quantity)  as quantity,
                CONCAT(
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                        ' X ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
-                       ' = ',#{printQuantity} )      as size,
+                       ' = ',if(#{printQuantity}>0 ,#{printQuantity},fc.quantity) )      as size,
 
                CONCAT(
                    od.order_number,')      ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                        ' X ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
-                       ' = ',#{printQuantity} )      as numberSize,
+                       ' = ',if(#{printQuantity}>0 ,#{printQuantity},fc.quantity) )      as numberSize,
             CONCAT(
             od.order_number,')','   ',
             TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
@@ -3979,7 +3979,8 @@
         c.print_status,
         c.print_number,
         o.project,
-        o.customer_name
+        o.customer_name,
+        b.process
 
         from pp.flow_card as c
         left join

--
Gitblit v1.8.0