From 6ded5f4ababd82c4c93b5e88b1132f1869340776 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 16 十二月 2024 14:40:43 +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                 |    2 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeProject.vue     |   13 +
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue |   22 ++
 north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue    |    1 
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java       |    6 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue  |  177 +++++++++++++++++++--
 north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java             |    3 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/CheckInventory.vue |   22 ++
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java     |   31 +++
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                         |  148 +++++++++++++++--
 10 files changed, 367 insertions(+), 58 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 661bbb9..e18573c 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -58,11 +58,9 @@
 data.value.printList = JSON.parse(props.printList)
 let flowCardCount = ''
 onMounted(() => {
-  console.log(printProject)
       if(props.printProject!=null){
         request.post(`/processCard/getSelectPrintProject/${printProject}`).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/glassOptimize/OptimizeProject.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeProject.vue
index 120746c..611b056 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeProject.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeProject.vue
@@ -26,15 +26,24 @@
   dataForGlassInventory.value = data;
 };
 
+//鑾峰彇GlassInventory鐨勫��
+const sendDataGlassInventory = ref()
+
+const handleInventoyData = (selectedLabel1,selectedLabel2) => {
+  sendDataGlassInventory.value = {
+    selectedLabel1, selectedLabel2
+  };
+};
+
 </script>
 
 <template >
  <div style="width: 100%;height: 100%">
    <div id="main-body">
-     <project-detail @changeDialog="changeDialog"  @forward-data-to-grandparent="handleProjectDetailData"/>
+     <project-detail @changeDialog="changeDialog"  @forward-data-to-grandparent="handleProjectDetailData" @send-inventory-to-op="handleInventoyData"/>
    </div>
    <div id="main-footer">
-     <glass-inventory :receivedData="dataForGlassInventory"/>
+     <glass-inventory :receivedData="dataForGlassInventory" :InventoryData="sendDataGlassInventory"/>
    </div>
 
 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/CheckInventory.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/CheckInventory.vue
index a0b0e67..3290da9 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/CheckInventory.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/CheckInventory.vue
@@ -1,5 +1,5 @@
 <script setup>
-import {ref} from "vue";
+import {defineEmits, ref} from "vue";
 
 const value1 = ref('')
 const value2 = ref('')
@@ -40,6 +40,24 @@
     label: 'Low-e',
   },
 ]
+
+const emit = defineEmits(['send-data-inventory',]);
+const props = defineProps({
+  closeDialog: Function
+});
+
+const CheckInventory = () => {
+  const selectedLabel1 = options1.find((option) => option.value === value1.value)?.label || '';
+  const selectedLabel2 = options2.find((option) => option.value === value2.value)?.label || '';
+  // 鍒ゆ柇涓や釜鍊兼槸鍚﹂兘琚�夋嫨浜嗭紝濡傛灉鏈変竴涓负绌哄瓧绗︿覆锛屽垯鎻愮ず骞惰繑鍥烇紝涓嶆墽琛屽悗缁搷浣�
+  if (!selectedLabel1 ||!selectedLabel2) {
+    window.alert('璇烽�夋嫨鐩稿叧閫夐」');
+    return;
+  }
+  props.closeDialog(1);
+  emit('send-data-inventory', selectedLabel1,selectedLabel2);
+};
+
 </script>
 
 <template>
@@ -69,7 +87,7 @@
     </div>
 
     <div style="float: right; margin:-55px 35px 0 0;">
-      <el-button type="primary">鏌ヨ</el-button>
+      <el-button type="primary" @click="CheckInventory">鏌ヨ</el-button>
     </div>
   </div>
 </template>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue
index d7bbaba..540c39f 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue
@@ -112,6 +112,15 @@
   }
 }, { immediate: true });
 
+watch(() => props.InventoryData, (newInventoryData) => {
+  if (newInventoryData) {
+    thickness.value = newInventoryData.selectedLabel1;
+    model.value = newInventoryData.selectedLabel2;
+    // 鐢变簬 thickness 鍜� model 鐨勫�兼敼鍙樹簡锛屾洿鏂拌〃鏍硷紝璋冪敤 selectMaterialStore 閲嶆柊鑾峰彇鏁版嵁
+    selectMaterialStore();
+  }
+});
+
 const props = defineProps({
   receivedData : {
     type: Object,
@@ -121,15 +130,22 @@
       quicksetBottom: { type: Number },
       quicksetRight: { type: Number },
       quicksetTop: { type: Number }
-    }}
+    }
+  },
+  InventoryData : {
+    type: Object,
+    required: false,
+    properties: {
+      selectedLabel1: { type: String },
+      selectedLabel2: { type: String },
+    }
+  }
 });
 
 //鎺ュ彈SetTrimming鐨勫�� 锛堜慨杈癸級
 const Trimming = (receivedData) => {
   nextTick(() => {
     const data = gridOptions.data;
-    console.log('鎺ユ敹鍒扮殑receivedData:', receivedData);
-    console.log('琛ㄦ牸鍘熷鏁版嵁:', data);
     if (data) {
       try {
         const updatedData = [];
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
index 5ccbddd..39c30f8 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
@@ -7,8 +7,8 @@
 import SetTrimming from "@/views/pp/glassOptimize/page/SetTrimming.vue";
 import CheckInventory from "@/views/pp/glassOptimize/page/CheckInventory.vue";
 import request from "@/utils/request";
-import {ElMessage} from "element-plus";
-import { useRoute } from 'vue-router';
+import {ElMessage, ElMessageBox} from "element-plus";
+import {useRoute} from 'vue-router';
 
 
 const {t} = useI18n()
@@ -45,12 +45,53 @@
   columns: [
     {field: 'order_number', title: '璁㈠簭', width: 70},
     {field: 'child_width', width: 100, title: t('order.width'), filters: [{data: ''}], slots: {filter: 'num2_filter'}},
-    {field: 'child_height', width: 100, title: t('order.height'),filters: [{data: ''}],slots: {filter: 'num2_filter'}},
-    {field: 'quantity', width: 150, title: t('order.quantity'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'longGrind1', width: 150, title: '闀跨(1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'longGrind2', width: 150, title: '闀跨(2', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'shortGrind1', width: 150, title: '鐭(1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'shortGrind2', width: 150, title: '鐭(2', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'child_height',
+      width: 100,
+      title: t('order.height'),
+      filters: [{data: ''}],
+      slots: {filter: 'num2_filter'}
+    },
+    {
+      field: 'quantity',
+      width: 150,
+      title: t('order.quantity'),
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'longGrind1',
+      width: 150,
+      title: '闀跨(1',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'longGrind2',
+      width: 150,
+      title: '闀跨(2',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'shortGrind1',
+      width: 150,
+      title: '鐭(1',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'shortGrind2',
+      width: 150,
+      title: '鐭(2',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {
       field: 'shape',
       width: 150,
@@ -59,7 +100,14 @@
       slots: {filter: 'num1_filter'},
       sortable: true
     },
-    {field: 'process_cards', width: 150, title: '娴佺▼鍗″彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'process_cards',
+      width: 150,
+      title: '娴佺▼鍗″彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {
       field: 'product_name',
       width: 150,
@@ -135,14 +183,101 @@
     },
   ],//琛ㄥご鍙傛暟
   data: null,//琛ㄦ牸鏁版嵁
+  //鍙抽敭鑿滃崟
+  menuConfig: {
+    body: {
+      options: [
+        [
+          {code: 'setAmount', name: '璁剧疆缁熶竴纾ㄩ噺',},
+          {code: 'displayProcessCard', name: '鏄剧ず娴佺▼鍗�',},
+          {code: 'hideProcessCard', name: '闅愯棌娴佺▼鍗�',},
+          {code: 'setShape', name: '璁剧疆鍥惧舰',},
+          {code: 'Export', name: '鏁版嵁瀵煎嚭', prefixIcon: 'vxe-icon-download', visible: true, disabled: false},
+          {code: '', name: '鍥惧舰鍙﹀瓨涓篋XF',},
+          {code: '', name: '瀵煎嚭鏁版嵁鍒癘PTIMA',},
+        ],
+        []
+      ]
+    },
+  },
   toolbarConfig: {
     buttons: [],
     slots: {
       buttons: "toolbar"
     },
+
   },
 
 })
+// 鍙抽敭鑿滃崟
+const operationConfigs = [
+  {
+    code: 'setAmount', // 璁剧疆缁熶竴纾ㄩ噺
+    successMsg: '宸叉墦寮�锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+    openAmount: async () => {
+      dialogVisible.value[2] = true;
+    }
+  },
+  {
+    code: 'displayProcessCard',
+    successMsg: '鎿嶄綔鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+  },
+  {
+    code: 'hideProcessCard',
+    successMsg: '鎿嶄綔鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+  },
+  {
+    code: 'setShape',
+    successMsg: '鎿嶄綔鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+  },
+  {
+    code: 'Export', // 瀵煎嚭鏂囦欢鎿嶄綔鐨勯厤缃�
+    successMsg: '鏂囦欢瀵煎嚭鎴愬姛锛�',
+    gridRef: xGrid,
+    requiresRow: false,
+  },
+]
+
+// 鍙抽敭鑿滃崟鐐瑰嚮閫昏緫
+const gridEvents = {
+  menuClick({menu}) {
+    const $grid = xGrid.value;
+    if ($grid) {
+      const config = operationConfigs.find(c => c.code === menu.code);
+      if (config) {
+        if (config.code === 'Export') {
+          config.gridRef.value.exportData();
+          ElMessage.success(config.successMsg);
+          return;
+        }
+        // 娣诲姞纭鎻愮ず寮圭獥锛岃闂敤鎴锋槸鍚﹁繘琛屽綋鍓嶆搷浣�
+        ElMessageBox.confirm('鏄惁杩涜褰撳墠鎿嶄綔锛�', '纭鎿嶄綔', {
+          confirmButtonText: '纭畾',
+          cancelButtonText: '鍙栨秷',
+          type: 'warning'
+        }).then(() => {
+          if (config.code === 'setAmount') {
+            config.openAmount();
+            ElMessage.success(config.successMsg);
+          }
+        }).catch(() => {
+          // 鐢ㄦ埛鐐瑰嚮鍙栨秷鍚庢墽琛岀殑閫昏緫
+          ElMessage.info('宸插彇娑堟搷浣�');
+        });
+      } else {
+        console.error(`鏈壘鍒版搷浣滈�夐」 ${menu.code} 瀵瑰簲鐨勯厤缃紝璇锋鏌ラ厤缃」`);
+      }
+    }
+  },
+};
 
 const handleCommand = async (command) => {
   await emit('changeDialog', command)
@@ -194,8 +329,6 @@
 const Amount = (amountData) => {
   nextTick(() => {
     const data = gridOptions.data;
-    console.log('鎺ユ敹鍒扮殑amountData:', amountData);
-    console.log('琛ㄦ牸鍘熷鏁版嵁:', data);
     if (data) {
       try {
         const updatedData = [];
@@ -223,15 +356,21 @@
   });
 };
 
-//涓浆绔欐帴鍙桽etTrimming鐨勫��
+//涓浆绔欐帴鍙桽etTrimming鐨勫�硷紙璁剧疆淇竟锛�
 const emit = defineEmits([
   'changeDialog',
-  'forward-data-to-grandparent'
+  'forward-data-to-grandparent',
+  'send-inventory-to-op'
 ]);
 
 const handleTrimmingData = (data) => {
   emit('forward-data-to-grandparent', data);
 };
+
+//涓浆绔欐帴鍙桟heckInventory鐨勫�硷紙鏌ヨ搴撳瓨锛�
+const handleInventory = (selectedLabel1, selectedLabel2) => {
+  emit('send-inventory-to-op', selectedLabel1, selectedLabel2);
+}
 
 </script>
 
@@ -274,16 +413,17 @@
         <div id="header">
           <div id="title">
             <span>宸ョ▼缂栧彿锛�</span>
-            <el-input disabled  placeholder="" style="width: 150px" v-model="projectNo"></el-input>&nbsp;
+            <el-input disabled placeholder="" style="width: 150px" v-model="projectNo"></el-input>&nbsp;
             <span>宸ョ▼鍚嶇О锛�</span>
-            <el-input disabled placeholder="" style="width: 150px; margin-right: 350px" v-model="projectName"></el-input>
+            <el-input disabled placeholder="" style="width: 150px; margin-right: 350px"
+                      v-model="projectName"></el-input>
             <el-button id="checkinventory" type="primary" @click="openDialog(1)">鏌ヨ搴撳瓨</el-button>
             <el-dialog
                 v-model="dialogVisible[1]"
                 title="鏌ヨ搴撳瓨"
                 destroy-on-close
                 style="width: 35%;height:35%;">
-              <check-inventory />
+              <check-inventory :closeDialog="closeDialog" @send-data-inventory="handleInventory"/>
             </el-dialog>
 
             <el-button id="button" type="primary" @click="openDialog(2)">璁剧疆纾ㄩ噺</el-button>
@@ -292,7 +432,7 @@
                 title="璁剧疆纾ㄩ噺"
                 destroy-on-close
                 style="width: 35%;height:80%;margin-top: 3vh;">
-               <set-amount :closeDialog="closeDialog" @set-amount="Amount"/>
+              <set-amount :closeDialog="closeDialog" @set-amount="Amount"/>
             </el-dialog>
 
             <el-button id="button" type="primary" @click="openDialog(3)">璁剧疆淇竟</el-button>
@@ -315,7 +455,6 @@
             >
               <optimize-compute/>
             </el-dialog>
-
           </div>
           <!--宸ョ▼鏂囦欢鑿滃崟-->
           <el-dropdown @command="handleCommand">
@@ -351,7 +490,7 @@
   margin-top: 8px;
 }
 
-#button{
+#button {
   margin-left: 10px;
 }
 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue
index 8420dc0..dc747c2 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue
@@ -75,7 +75,6 @@
     }
     case 'edit3' :{
       printRow.value.project=row.project_no
-      console.log(printRow.value.project)
       dialogTableVisible.value = true
     }
   }
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
index a8ab5bc..6c8ec86 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
@@ -94,6 +94,9 @@
     //灏忕墖鏁伴噺
     @TableField(select = false,exist = false)
     private String glassCount;
+    //琛ョ墖鐘舵��
+    @TableField(select = false,exist = false)
+    private Integer patchState;
 
     //澶栭敭璁㈠崟琛�
     @TableField(select = false,exist= false)
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 b409ee8..04c5fbf 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
@@ -75,7 +75,11 @@
 
     List<Map<String, String>> getPrimaryList(String processId, String technologyNumber, String glassChild, String process, String orderId);
 
+    List<Map<String, String>> getPrimaryLists(String processId, String technologyNumber, String glassChild, String process, String orderId,Integer quantity);
+
     List<Map<String, Object>> getDetailList(String processId, String technologyNumber, String process);
+
+    List<Map<String, Object>> getDetailLists(String processId, String technologyNumber, String process,Integer orderNumber);
 
     List<Map<String, Object>> getProcessList(String processId, String technologyNumber);
 
@@ -125,6 +129,8 @@
 
     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, String>> getPrimaryListMergeRefund(String processId, String technologyNumber, Integer orderNumber, String orderId);
 
     List<Map<String, Object>> getDetailListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId, String patchReason);
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 7acc74e..8775182 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
@@ -377,15 +377,28 @@
                     String processSub=flowCard.getProcess().substring(0, 2);
                     if(processSub.equals("澶硅兌") || processSub.equals("涓┖")){
                         itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
+                        if(flowCard.getPatchState().equals(0)){
+                            List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess());
+                            itemmap.put("detailList", detailList);
+                        }else{
+                            List<Map<String, Object>> detailList = flowCardMapper.getDetailLists(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess(),flowCard.getOrderNumber());
+                            itemmap.put("detailList", detailList);
+                        }
 
-                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess());
-                        itemmap.put("detailList", detailList);
                     }
                     else {
-                        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());
-                        itemmap.put("detailList", detailList);
+                        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());
+                            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());
+                            itemmap.put("detailList", detailList);
+                        }
+
+
                     }
 
 
@@ -412,7 +425,13 @@
 
                 itemmap.put("processList", processList);
                 //  itemmap.put("numberList", numberList);
-                itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId()));
+
+                if(flowCard.getPatchState().equals(0)){
+                    itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId()));
+                }else{
+                    itemmap.put("count", flowCardList.size());
+                }
+                itemmap.put("state", flowCard.getPatchState());
                 itemmap.put("remarkList", flowCardMapper.remakList(flowCard.getProcessId()));
                 list.add(itemmap);
 
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 8d014de..ba8b092 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -660,6 +660,45 @@
         group by fc.process_id
     </select>
 
+    <select id="getPrimaryLists">
+        select o.customer_name,
+               o.project,
+               #{process}                                         process,
+               od.edging_type,
+               #{glassChild}                                   as glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               #{quantity}                                                      as quantity,
+               round(od.width*od.height*#{quantity}/1000000, 2)                   as gross_area,
+               sum(od.weight)                                  as weight,
+               #{technologyNumber}                             as technologyNumber,
+               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks,
+               ''                                              as qrcode
+        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.`order` as o on o.order_id = fc.order_id
+                 left join sd.product as p on p.id = od.product_id
+                 left join (select ogd.order_id,
+                                   ogd.order_number,
+                                   ogd.technology_number,
+                                   ogd.glass_child,
+                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+                            from sd.order_glass_detail as ogd
+                            where ogd.order_id = #{orderId}
+                              and position(ogd.technology_number in #{technologyNumber})
+                            GROUP BY order_id, order_number) as ogdc
+                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+                              ogdc.technology_number = ogd.technology_number
+        where fc.process_id = #{processId}
+          and position(fc.technology_number in #{technologyNumber})
+        group by fc.process_id
+    </select>
+
     <select id="getDetailList">
         select fc.order_number,
                concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
@@ -688,6 +727,39 @@
                                and fcs.process = #{process}
         where fc.process_id = #{processId}
           and position(fc.technology_number in #{technologyNumber})
+        group by fc.process_id, fc.order_number
+        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+    </select>
+
+    <select id="getDetailLists">
+        select fc.order_number,
+               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
+               fc.quantity,
+               round(ogd.total_area, 2)                                       as total_area,
+               od.perimeter,
+               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+               concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+               od.other_columns,
+               round(ogd.child_width)                                         as width,
+               round(ogd.child_height)                                        as height,
+               pd.separation,
+               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}
+          and position(fc.technology_number in #{technologyNumber})
+        and fc.order_sort = #{orderNumber}
         group by fc.process_id, fc.order_number
         order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
     </select>
@@ -1239,6 +1311,39 @@
                                and fcs.process = #{process}
         where fc.process_id = #{processId}
           and position(fc.technology_number in #{technologyNumber})
+        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>
+
+    <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,
+               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,
+               round(ogd.child_width)                                         as width,
+               round(ogd.child_height)                                        as height,
+               pd.separation,
+               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}
+          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>
@@ -2511,29 +2616,26 @@
     </update>
 
     <select id="getFlowCardListPrintProject">
-        select fc.id,
-               fc.order_id,
-               fc.process_id,
-               o.customer_name,
-               o.project,
-               fc.order_number,
-               ogd.technology_number,
-               ogd.glass_address,
-               sum(fc.quantity)                                                          as quantity,
-               round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
-               od.product_name,
-               ogd.glass_child,
-               fc.founder,
-               date(fc.splitFrame_time) as splitFrame_time,
-            /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as  print_status*/
-               fc.print_status,
-               ogd.process
-        from pp.flow_card as fc
-                 left join sd.order_glass_detail as ogd
-                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
-                              ogd.technology_number = fc.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.`order` as o on o.order_id = fc.order_id
+        select
+            od.order_id,
+            fc.process_id,
+            o.customer_name,
+            o.project,
+            od.order_number,
+            ogd.technology_number,
+            ogd.glass_address,
+            fc.quantity ,
+            round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
+            od.product_name,
+            ogd.glass_child,
+            fc.patch_state,
+            ogd.process
+        from  (select process_id,count(*) as quantity,order_sort,project_no,layer,patch_state from pp.optimize_detail where project_no = #{printProject} group by process_id,layer) as fc
+                  left join sd.order_glass_detail as ogd
+                            on ogd.order_id = SUBSTRING(fc.process_id,1,10)  and ogd.order_number = fc.order_sort and
+                               ogd.technology_number = fc.layer
+                  left join sd.order_detail as od on od.order_id = SUBSTRING(fc.process_id,1,10)  and od.order_number = fc.order_sort
+                  left join sd.`order` as o on o.order_id = SUBSTRING(fc.process_id,1,10)
         where fc.project_no = #{printProject}
         GROUP BY fc.process_id, ogd.technology_number
         order by fc.process_id, ogd.technology_number

--
Gitblit v1.8.0