From 46964bace341e98f238a0a3fd29f6adc643312c7 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 24 十一月 2025 13:14:32 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/northglass-erp/src/stores/sd/companySet/温州巨星.js                     |    2 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue |   56 +++++++----
 .gitignore                                                                          |    1 
 north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue      |   11 +
 north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml                      |   25 ++++-
 north-glass-erp/pom.xml                                                             |   25 ++--
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue    |  138 ++++++++-------------------
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java  |    3 
 north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue       |   30 +++++
 north-glass-erp/src/main/resources/lib/aspose-cad-21.11.jar                         |    0 
 10 files changed, 152 insertions(+), 139 deletions(-)

diff --git a/.gitignore b/.gitignore
index 7242f8c..d548b89 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,6 @@
 .mtj.tmp/
 
 # Package Files #
-*.jar
 *.war
 *.ear
 
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue
index 725da30..2ed87c4 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue
@@ -86,7 +86,8 @@
 
 let props = defineProps({
   orderId:null,
-  row: {}
+  row: {},
+  processId:null//鐢ㄤ簬鍚庣鏁版嵁杩斿洖锛岀粨鏋滅瓫閫�
 })
 const columns = [
   {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
@@ -148,7 +149,13 @@
         item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount)
          item.reportWorkQuantityShow=JSON.parse(item.reportWorkQuantityShow)
       })
-      await xGrid.value.loadData(res.data.data)
+      console.log(res.data.data)
+      if (props.processId!=null && props.processId!=""){
+        const processIdData = res.data.data.filter(item => item.process_id === props.processId)
+        await xGrid.value.loadData(processIdData)
+      }else {
+        await xGrid.value.loadData(res.data.data)
+      }
       mergeCells.value = res.data.mergeCells
       gridOptions.loading = false
 
diff --git "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\346\270\251\345\267\236\345\267\250\346\230\237.js" "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\346\270\251\345\267\236\345\267\250\346\230\237.js"
index 5933d9e..9a76456 100644
--- "a/north-glass-erp/northglass-erp/src/stores/sd/companySet/\346\270\251\345\267\236\345\267\250\346\230\237.js"
+++ "b/north-glass-erp/northglass-erp/src/stores/sd/companySet/\346\270\251\345\267\236\345\267\250\346\230\237.js"
@@ -48,7 +48,7 @@
         materialOutboundColor:false,//搴撳瓨鏌ヨ鍏ュ簱瓒呰繃涓�瀹氭椂闂存敼鍙橀鑹诧紝娲涢槼true锛屽叾浠杅alse
         storageBtn:true,//鏄惁鏄剧ず鎶ュ伐鍏ュ簱鐩稿叧鍐呭锛屾礇闃硉rue锛屽叾浠杅alse
         teamsType:true,//鏄惁寮�鍚彮缁勪笅鎷夋锛屾礇闃硉rue锛屽叾浠杅alse
-        alienFunction:false,//鏄惁寮�鍚紓褰㈠姛鑳斤紝鏆傛椂閮芥槸false
+        alienFunction:true,//鏄惁寮�鍚紓褰㈠姛鑳斤紝鏆傛椂閮芥槸false
         replenishQRCode:1,//鏄惁琛ョ墖浜岀淮鐮佹槸鍚︽媶鍒嗗眰,1鎷嗗垎锛�2涓嶆媶
         soleQRCode:false,//娴佺▼鍗″悎骞朵簩缁寸爜鏄剧ず鍗曞眰锛屼箟涔宼rue.鍏跺畠false
         //澶╂触
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
index e33a740..8369231 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
@@ -71,9 +71,9 @@
       </div>
     </div>
 
-<!--    <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #409eff; color: white; border: none; border-radius: 5px; cursor: pointer;">-->
-<!--      淇濆瓨璋冩暣-->
-<!--    </button>-->
+    <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #409eff; color: white; border: none; border-radius: 5px; cursor: pointer;">
+      淇濆瓨璋冩暣
+    </button>
   </div>
 </template>
 
@@ -119,10 +119,10 @@
 const submitLayouts = async () => {
   layouts.value.forEach(layout => {
     layout.glassDetails.forEach(glassDetail => {
-      glassDetail.x = Math.round(glassDetail.x);
-      glassDetail.y = Math.round(glassDetail.y);
-      glassDetail.width = Math.round(glassDetail.width);
-      glassDetail.height = Math.round(glassDetail.height);
+      glassDetail.x = parseFloat(glassDetail.x.toFixed(2));
+      glassDetail.y = parseFloat(glassDetail.y.toFixed(2));
+      glassDetail.width = parseFloat(glassDetail.width.toFixed(2));
+      glassDetail.height = parseFloat(glassDetail.height.toFixed(2));
     });
   });
   const savedProjectNo = localStorage.getItem('projectNo');
@@ -596,6 +596,9 @@
       glassDetail.glassPoint.forEach(point => {
         point.X += offsetX;
         point.Y += offsetY;
+        // 娣诲姞绮惧害鎺у埗
+        point.X = parseFloat(point.X.toFixed(2));
+        point.Y = parseFloat(point.Y.toFixed(2));
       });
     }
 
@@ -619,8 +622,8 @@
       (props.gh - 100) / layout.height
     );
 
-    glassDetail.x = Math.round(glassDetail.x);
-    glassDetail.y = Math.round(glassDetail.y);
+    glassDetail.x = parseFloat(glassDetail.x.toFixed(2));
+    glassDetail.y = parseFloat(glassDetail.y.toFixed(2));
     adjustAlignmentPosition(layoutIndex, rectIndex);
   }
 
@@ -700,10 +703,10 @@
     else {
       // 鏃犳硶鍚堝苟锛屼繚瀛樺綋鍓嶇煩褰紝寮�濮嬫柊鐨勫悎骞�
       merged.push({
-        x: Math.round(current.x),
-        y: Math.round(current.y),
-        width: Math.round(current.width),
-        height: Math.round(current.height),
+        x: current.x,
+        y: current.y,
+        width: current.width,
+        height: current.height,
         isRemain: true
       });
       current = { ...next };
@@ -712,10 +715,10 @@
 
   // 娣诲姞鏈�鍚庝竴涓煩褰�
   merged.push({
-    x: Math.round(current.x),
-    y: Math.round(current.y),
-    width: Math.round(current.width),
-    height: Math.round(current.height),
+    x: current.x,
+    y: current.y,
+    width: current.width,
+    height: current.height,
     isRemain: true
   });
 
@@ -771,10 +774,10 @@
   // 娣诲姞鏂扮殑浣欐枡鐭╁舰
   uniqueArr.forEach((area) => {
     newGlassDetails.push({
-      x: Math.round(area.x),
-      y: Math.round(area.y),
-      width: Math.round(area.width),
-      height: Math.round(area.height),
+      x: area.x,
+      y: area.y,
+      width: area.width,
+      height: area.height,
       isRemain: true
     });
   });
@@ -849,6 +852,9 @@
         // 鏃嬭浆90搴﹀悗鐨勫潗鏍囷紙椤烘椂閽堬級
         point.X = originalState.x + relY;
         point.Y = originalState.y + (originalState.width - relX);
+        // 娣诲姞绮惧害鎺у埗
+        point.X = parseFloat(point.X.toFixed(2));
+        point.Y = parseFloat(point.Y.toFixed(2));
       });
     }
     adjustGrayRectangles(layoutIndex);
@@ -958,6 +964,9 @@
       glassDetail.glassPoint.forEach(point => {
         point.X += offsetX;
         point.Y += offsetY;
+        // 娣诲姞绮惧害鎺у埗
+        point.X = parseFloat(point.X.toFixed(2));
+        point.Y = parseFloat(point.Y.toFixed(2));
       });
     }
     adjustGrayRectangles(layoutIndex);
@@ -1213,6 +1222,8 @@
     if (glassDetail.glassPoint && Array.isArray(glassDetail.glassPoint)) {
       glassDetail.glassPoint.forEach(point => {
         point.X = width - point.X;
+        point.X = parseFloat(point.X.toFixed(2));
+        point.Y = parseFloat(point.Y.toFixed(2));
       });
     }
   });
@@ -1240,6 +1251,9 @@
     if (glassDetail.glassPoint && Array.isArray(glassDetail.glassPoint)) {
       glassDetail.glassPoint.forEach(point => {
         point.Y = height - point.Y;
+        // 娣诲姞绮惧害鎺у埗
+        point.X = parseFloat(point.X.toFixed(2));
+        point.Y = parseFloat(point.Y.toFixed(2));
       });
     }
   });
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 8ef03eb..4e4b7d7 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
@@ -116,7 +116,7 @@
       sortable: true
     },
     {
-      field: 'product_name',
+      field: 'productName',
       width: 150,
       title: t('order.product'),
       filters: [{data: ''}],
@@ -140,7 +140,7 @@
       sortable: true
     },
     {
-      field: 'building_number',
+      field: 'buildingNumber',
       width: 150,
       title: '妤煎眰鍙�',
       filters: [{data: ''}],
@@ -189,7 +189,7 @@
       sortable: true
     },
     {
-      field: 'icon',
+      field: 'markIcon',
       width: 150,
       title: '鍗版爣绫诲瀷',
       filters: [{data: ''}],
@@ -485,103 +485,47 @@
     }
     emit('getSmallPieceData', 1);
     optimizeData.value.glassDetails = [];
-    // 浠庡悗绔帴鍙h幏鍙� glassDetail 鏁版嵁锛岃�屼笉鏄粠琛ㄦ牸涓鍙�
-    fetchGlassDetailData();
+    // 浠庤〃鏍间腑鑾峰彇 glassDetail 鏁版嵁锛岃�屼笉鏄粠鍚庣鎺ュ彛璇诲彇
+    const tableData = xGrid.value.getTableData().fullData;
+    const glassDetailData = tableData.map(item => {
+      let rackNoValue = 0;
+      if (item.rackNo !== undefined && item.rackNo !== null && item.rackNo !== '') {
+        rackNoValue = item.rackNo;
+      }
+      return {
+        width: item.width,
+        height: item.height,
+        processId: item.processId,
+        layer: item.layer,
+        totalLayer: item.totalLayer,
+        orderSort: item.order_number,
+        markIcon: item.markIcon,
+        quantity: item.quantity,
+        patchState: item.patchState,
+        upGrind: item.longGrind1,
+        downGrind: item.longGrind2,
+        leftGrind: item.shortGrind1,
+        rightGrind: item.shortGrind2,
+        heatLayoutId: item.heatLayoutId,
+        process: item.process,
+        orderNo: item.orderNo,
+        customerName: item.customerName,
+        processingNote: item.processingNote,
+        projectName: item.projectName,
+        productName: item.productName,
+        buildingNumber: item.buildingNumber,
+        rackNo: rackNoValue
+      };
+    });
 
-    // xGrid.value.getTableData().fullData.forEach(items=>{
-    //   let rackNoValue = 0;
-    //   if (items.rackNo !== undefined && items.rackNo !== null && items.rackNo !== '') {
-    //     rackNoValue = items.rackNo;
-    //   }
-    //   const detail={
-    //     width :null,
-    //     height :null,
-    //     processId :null,
-    //     layer :null,
-    //     totalLayer :null,
-    //     orderSort :null,
-    //     markIcon :null,
-    //     quantity:null,
-    //     patchState :null,
-    //     upGrind :null,
-    //     downGrind :null,
-    //     leftGrind:null,
-    //     rightGrind :null,
-    //     rackNo: rackNoValue
-    //   }
-    //   detail.width=items.width
-    //   detail.height=items.height
-    //   detail.processId=items.process_ids
-    //   detail.layer=items.layer
-    //   detail.totalLayer=items.total_layer
-    //   detail.orderSort=items.order_number
-    //   detail.markIcon=items.icon
-    //   detail.patchState=items.patch_state
-    //   detail.quantity=items.quantity
-    //   detail.upGrind=items.longGrind1
-    //   detail.downGrind=items.longGrind2
-    //   detail.leftGrind=items.shortGrind1
-    //   detail.rightGrind=items.shortGrind2
-    //   detail.rackNo=items.rackNo
-    //
-    //   optimizeData.value.glassDetails .push(detail)
-    // })
+    // 鏇存柊 optimizeData 涓殑 glassDetails
+    optimizeData.value.glassDetails = glassDetailData;
+
+    // 鎵撳紑浼樺寲瀵硅瘽妗�
+    dialogVisible.value[4] = true;
 
   }else{
     dialogVisible.value[index] = true;
-  }
-};
-
-const fetchGlassDetailData = async () => {
-  try {
-    const res = await request.post(`/glassOptimize/optimizeInfo/${projectNo.value}/${username}`);
-    console.log(res);
-    if (res.code === "200" && res.data && res.data.data) {
-      // 澶勭悊浠庡悗绔幏鍙栫殑鏁版嵁
-      const glassDetailData = res.data.data.map(item => {
-        let rackNoValue = 0;
-        if (item.rackNo !== undefined && item.rackNo !== null && item.rackNo !== '') {
-          rackNoValue = item.rackNo;
-        }
-        return {
-          width: item.width,
-          height: item.height,
-          processId: item.processId,
-          layer: item.layer,
-          totalLayer: item.totalLayer,
-          orderSort: item.order_number,
-          markIcon: item.markIcon,
-          quantity: item.quantity,
-          patchState: item.patchState,
-          upGrind: item.upGrind,
-          downGrind: item.downGrind,
-          leftGrind: item.leftGrind,
-          rightGrind:item.rightGrind,
-          heatLayoutId:item.heatLayoutId,
-          process:item.process,
-          orderNo:item.orderNo,
-          customerName:item.customerName,
-          processingNote:item.processingNote,
-          projectName:item.projectName,
-          productName:item.productName,
-          buildingNumber:item.buildingNumber,
-          rackNo: rackNoValue
-        };
-      });
-
-      // 鏇存柊 optimizeData 涓殑 glassDetails
-      optimizeData.value.glassDetails = glassDetailData;
-
-      // 鎵撳紑浼樺寲瀵硅瘽妗�
-      dialogVisible.value[4] = true;
-
-      console.log('鑾峰彇鍒扮殑 glassDetail 鏁版嵁:', glassDetailData);
-    } else {
-      ElMessage.error('鑾峰彇鐜荤拑璇︽儏鏁版嵁澶辫触');
-    }
-  } catch (error) {
-    console.error('鑾峰彇 glassDetail 鏁版嵁鍑洪敊:', error);
-    ElMessage.error('鑾峰彇鐜荤拑璇︽儏鏁版嵁鏃跺彂鐢熼敊璇�');
   }
 };
 
@@ -727,7 +671,7 @@
 const fetchData = () => {
   //鍚敤琛ㄦ牸鎷栧姩閫変腑
   addListener(xGrid.value,gridOptions,cellArea.value)
-  request.post(`/glassOptimize/projectInfo/${projectNo.value}/${username}`).then((res) => {
+  request.post(`/glassOptimize/optimizeInfo/${projectNo.value}/${username}`).then((res) => {
     if ((Number(res.code) === 200)) {
       let data = res.data.data;
       const grindingTrimming = res.data.grindingTrimming;
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue
index c8080bb..8532246 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue
@@ -19,6 +19,7 @@
 import useOrderInfoStore from "@/stores/sd/order/orderInfo"
 import {Printer} from "@element-plus/icons-vue/global";
 import SelectProcessCardDetail from "@/components/pp/SelectProcessCardDetail.vue";
+import OrderProcessCollect from "@/components/sd/order/OrderProcessCollect.vue";
 
 //璇█鑾峰彇
 const {t} = useI18n()
@@ -28,6 +29,7 @@
 
 let productGlassTypeStore = useProductGlassTypeStore()
 const dialogTableVisible = ref(false)
+const dialogProcess = ref(false)
 let router = useRouter()
 let props = defineProps({
   rowIndex: {}
@@ -104,6 +106,12 @@
   }
 
 })
+//娴佺▼鍗¤繘搴︾敤鍊�
+let processVal = ref({
+  orderId:null,
+  row: {},
+  processId:null//鐢ㄤ簬鍚庣鏁版嵁杩斿洖锛岀粨鏋滅瓫閫�
+})
 //瀹氫箟椤甸潰鎬婚〉鏁�
 let pageTotal = ref('')
 //瀹氫箟鏁版嵁杩斿洖缁撴灉
@@ -130,7 +138,6 @@
       pageTotal.value = res.data.total
       total.value = res.data.total
       produceList.value = produceList.value.concat(deepClone(res.data.data))
-      console.log(produceList.value)
       produceList.value.forEach(item => {
         switch (item.layoutStatus) {
           case "0":
@@ -589,6 +596,12 @@
 
   })
 }
+
+const onCellDblClick = ({ row, column }) => {
+  processVal.value.orderId = row.orderId
+  processVal.value.processId = row.processId
+  dialogProcess.value = true
+};
 </script>
 
 <template>
@@ -623,6 +636,7 @@
           v-bind="gridOptions"
           v-on="gridEvents"
           @filter-change="filterChanged"
+          @cell-dblclick="onCellDblClick"
 
       >
         <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
@@ -709,6 +723,20 @@
 
     <el-dialog
         id="sizePrintCalrd"
+        v-model="dialogProcess"
+        :title="$t('order.processCardCollect')"
+        destroy-on-close
+        style="width: 75%;height:75% ">
+      <order-process-collect
+          :orderId="processVal.orderId"
+          :processId="processVal.processId"
+          :row="processVal.row"
+          style="width: 100%;height: 100%"
+      />
+    </el-dialog>
+
+    <el-dialog
+        id="sizePrintCalrd"
         v-model="dialogTableVisible"
         :title="$t('processCard.combinedFrame')"
         destroy-on-close
diff --git a/north-glass-erp/pom.xml b/north-glass-erp/pom.xml
index 167e26d..14c00f9 100644
--- a/north-glass-erp/pom.xml
+++ b/north-glass-erp/pom.xml
@@ -164,9 +164,11 @@
         </dependency>
 
         <dependency>
-            <groupId>com.aspose</groupId>
-            <artifactId>aspose-cad</artifactId>
+            <groupId>com.example</groupId>
+            <artifactId>lib</artifactId>
             <version>21.11</version>
+            <scope>system</scope>
+            <systemPath>${pom.basedir}/src/main/resources/lib/aspose-cad-21.11.jar</systemPath>
         </dependency>
 
         <!--redis-->
@@ -204,6 +206,7 @@
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
                 <configuration>
+                    <includeSystemScope>true</includeSystemScope>
                     <excludes>
                         <exclude>
                             <groupId>org.projectlombok</groupId>
@@ -216,15 +219,15 @@
     </build>
 
 
-    <repositories>
-        <repository>
-            <id>aspose-maven-repository</id>
-            <url>https://releases.aspose.com/java/repo</url>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-        </repository>
-    </repositories>
+<!--    <repositories>-->
+<!--        <repository>-->
+<!--            <id>aspose-maven-repository</id>-->
+<!--            <url>https://releases.aspose.com/java/repo</url>-->
+<!--            <snapshots>-->
+<!--                <enabled>false</enabled>-->
+<!--            </snapshots>-->
+<!--        </repository>-->
+<!--    </repositories>-->
 
 <!--    <pluginRepositories>-->
 <!--        <pluginRepository>-->
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
index 540e002..14e87e4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
@@ -657,7 +657,10 @@
                 }
             }
         }
+        map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
         map.put("data", dataList);
+        map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+        map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
         return map;
     }
 
diff --git a/north-glass-erp/src/main/resources/lib/aspose-cad-21.11.jar b/north-glass-erp/src/main/resources/lib/aspose-cad-21.11.jar
new file mode 100644
index 0000000..7e05728
--- /dev/null
+++ b/north-glass-erp/src/main/resources/lib/aspose-cad-21.11.jar
Binary files differ
diff --git a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
index 50e0639..5b0f70e 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -185,18 +185,22 @@
              c.project_no,
              d.child_width as 'width',
              d.child_height as 'height',
+             (d.child_width + d.child_height) * 2 as 'perimeter',
              c.quantity,
+             od.shape,
              concat( c.process_id, '-', c.technology_number ) AS 'process_id',
              c.process_id AS processId,
              c.technology_number as layer,
              c.layers_number as totalLayer,
+             d.glass_child,
+             od.price,
+             od.remarks,
              round( d.area * c.quantity, 4 ) as 'area',
              c.order_number,
              d.icon  AS markIcon,
              op.project_name,
              0 as patchState,
              c.rack AS rackNo,
-             0 as heatLayoutId,
              d.process,
              o.order_id AS orderNo,
              o.customer_name AS customerName,
@@ -225,18 +229,22 @@
                 c.project_no,
                 d.child_width as 'width',
                 d.child_height as 'height',
+                (d.child_width + d.child_height) * 2 as 'perimeter',
                 c.patch_num as quantity,
+                od.shape,
                 concat( c.process_id, '-', c.technology_number ) AS 'process_id',
                 c.process_id AS 'process_ids',
                 c.technology_number as layer,
                 fc.layers_number as total_layer,
+                d.glass_child,
+                od.price,
+                od.remarks,
                 round( d.area * c.patch_num, 4 ) as 'area',
                 c.order_sort as order_number,
                 d.icon,
                 op.project_name,
                 1 as patch_state,
                 a.id as rackNo,
-                0 as heatLayoutId,
                 d.process,
                 o.order_id AS orderNo,
                 o.customer_name AS customerName,
@@ -330,15 +338,22 @@
     <!--浼樺寲鏌ヨ-->
     <select id="computeAndOptimization">
         SELECT
+            c.project_no,
             c.rack AS rackNo,
-            h.layout_id as heatLayoutId,
+#             h.layout_id as heatLayoutId,
             h.width AS width,
             h.height AS height,
+            (h.width + h.height) * 2 as 'perimeter',
+            od.shape,
             count( 1 ) AS quantity,
-            concat( h.process_id, '-', h.layer ) AS processId,
+            concat( h.process_id, '-', h.layer ) AS process_id,
+            c.process_id AS processId,
             h.process_id as process_ids,
             h.layer,
             c.layers_number as totalLayer,
+            d.glass_child,
+            od.price,
+            od.remarks,
             round( d.area * count( 1 ), 4 ) AS 'area',
             c.order_number,
             h.order_sort AS orderSort,
@@ -364,7 +379,7 @@
         WHERE
             h.project_no = #{projectNo}
         GROUP BY
-            h.layout_id,
+#             h.layout_id,
             h.width,
             h.height,
             h.process_id,

--
Gitblit v1.8.0