From 85741906046ab01e6b824e7e306a1f332c25f2f4 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 06 十二月 2024 17:33:32 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/northglass-erp/src/router/index.js                                       |    5 +
 north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml                           |   29 +++++++++
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue        |  101 +++++++++++++++++++++------------
 north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java |   11 +++
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java         |    2 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue               |   13 +++
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue         |    5 -
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java       |    7 ++
 8 files changed, 131 insertions(+), 42 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/router/index.js b/north-glass-erp/northglass-erp/src/router/index.js
index 6aed531..a6e9bf9 100644
--- a/north-glass-erp/northglass-erp/src/router/index.js
+++ b/north-glass-erp/northglass-erp/src/router/index.js
@@ -342,6 +342,11 @@
               component: () => import('../views/pp/glassOptimize/OptimizeProject.vue'),
             },
             {
+              path: '/glassInventory/:thickNess/:model',
+              name: 'glassInventory',
+              component: () => import('../views/pp/glassOptimize/OptimizeProject.vue'),
+            },
+            {
               path: '',
               redirect:'/main/glassOptimize/optimizeProject'
             }
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
index 8eefd9f..8ae71e0 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
@@ -117,12 +117,21 @@
     requiresRow: true,
     openFile: async ({row}) => {
       const projectNumber = row.projectNumber;
-      await router.replace({
+      const thickness = row.thickness;
+      const glassType = row.glassType;
+      await router.push({
         name: 'projectDetail',
-        params: {
+        query: {
           projectNo: projectNumber
         }
       });
+      await router.push({
+        name: 'glassInventory',
+        query: {
+          thickNess: thickness,
+          model: glassType
+        }
+      });
     }
   },
   {
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 cc8f702..69cc8d3 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
@@ -1,6 +1,9 @@
 <script setup>
-import {reactive, ref} from "vue";
+import {onMounted, reactive, ref} from "vue";
 import {useI18n} from "vue-i18n";
+import request from "@/utils/request";
+import {ElMessage} from "element-plus";
+import {useRoute} from "vue-router";
 const { t } = useI18n()
 
 const xGrid = ref()
@@ -31,42 +34,23 @@
     mode: 'row',
     showStatus: true
   },
-  /*formConfig: {
-    data: {
-      width: '',
-      height: '',
-      quantity: ''
-    },
-    items: [
-      { field: 'width', title: t('order.width')+':', itemRender: { name: 'VxeInput' } },
-      { field: 'height', title: t('order.height')+':', itemRender: { name: 'VxeInput' } },
-      { field: 'quantity', title: t('order.quantity')+':', itemRender: { name: 'VxeInput' } },
-      {
-        itemRender: {
-          name: 'VxeButtonGroup',
-          options: [
-            { type: 'submit', content: t('craft.sure'), status: 'primary' },
-            { type: 'reset', content: t('product.msg.reset') }
-          ]
-        }
-      }
-    ]
-  },*/
+
   columns:[
-    {title: '閫夋嫨', type:'radio', width: 70},
+    {type:'seq',fixed:"left", title:' ', width: 50},
+    {type: 'checkbox', fixed: "left", title: t('basicData.check'), width: 80},
     {field: 'id', title: '鐗╂枡缂栫爜',},
-    {field:'state',title: t('order.width'),},
-    {type: 'seq',title: t('order.height')},
-    {field: 'id', title: t('order.totalThickness'),},
-    {field: 'id', title: t('warehouseBasicData.type'),},
-    {field: 'id', title: '宸︿慨杈�',},
-    {field: 'id', title: '涓嬩慨杈�',},
-    {field: 'id', title: '鍙充慨杈�',},
-    {field: 'id', title: '涓婁慨杈�',},
-    {field: 'id', title: '搴撳瓨鏁伴噺',},
-    {field: 'id', title: '鍔犲伐鏁伴噺',},
-    {field: 'id', title: '鍚嶇О',},
-    {field: 'id', title: '渚涘簲鍟�',}
+    {field:'width',title: t('order.width'),},
+    {field: 'height',title: t('order.height')},
+    {field: 'thickness', title: t('order.totalThickness'),},
+    {field: 'model', title: t('warehouseBasicData.type'),},
+    {field: 'leftTrim', title: '宸︿慨杈�',},
+    {field: 'downTrim', title: '涓嬩慨杈�',},
+    {field: 'rigthTrim', title: '鍙充慨杈�',},
+    {field: 'upTrim', title: '涓婁慨杈�',},
+    {field: 'available_quantity', title: '搴撳瓨鏁伴噺',},
+    {field: '', title: '鍔犲伐鏁伴噺',},
+    {field: 'name', title: '鍚嶇О',},
+    {field: 'producer', title: '渚涘簲鍟�',}
   ],//琛ㄥご鍙傛暟
   data:null,//琛ㄦ牸鏁版嵁
   toolbarConfig: {
@@ -75,8 +59,53 @@
       buttons: "toolbar_buttons"
     },
   },
-
 })
+
+const route = useRoute();
+
+const thickness = ref(route.query.thickNess);
+const model = ref(route.query.model);
+
+
+const selectMaterialStore = () =>{
+  request.post(`/glassOptimize/materialStore/${thickness.value}/${model.value}`).then((res) => {
+    if (Number(res.code) === 200) {
+      const rawData = res.data.data;
+      if (Array.isArray(rawData) && rawData.length > 0) {
+        const formattedData = rawData.map(item => {
+          const formattedItem = {};
+          for (const key in item) {
+            if (typeof item[key] === 'string') {
+              //鍘婚櫎瀛楃涓插睘鎬у�煎紑澶村拰缁撳熬鐨勫弻寮曞彿
+              formattedItem[key] = item[key].replace(/^\"|\"$/g, '');
+            } else {
+              formattedItem[key] = item[key];
+            }
+          }
+          return formattedItem;
+        });
+        const data = formattedData;
+        data.forEach(item => {
+          item.leftTrim = 0;
+          item.downTrim = 0;
+          item.rigthTrim = 0;
+          item.upTrim = 0;
+        });
+        xGrid.value.loadData(formattedData);
+      } else {
+        console.error('杩斿洖鏁版嵁鏍煎紡涓嶇鍚堥鏈燂紝涓嶆槸鏈夋晥鐨勫璞℃暟缁勬牸寮�');
+      }
+    } else {
+      ElMessage.warning(res.msg);
+      console.error('璇锋眰鑾峰彇搴撳瓨澶辫触锛岀姸鎬佺爜锛�', res.code, '锛岄敊璇俊鎭細', res.msg);
+    }
+  });
+};
+
+onMounted(() => {
+  selectMaterialStore();
+});
+
 </script>
 
 <template>
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 89fd57b..4a93ba0 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
@@ -158,9 +158,8 @@
 
 const route = useRoute();
 //宸ョ▼鍙�
-const projectNo = ref(route.params.projectNo);
+const projectNo = ref(route.query.projectNo);
 const projectName = ref('');
-console.log(projectNo.value);
 
 const fetchData = () => {
   request.post(`/glassOptimize/projectInfo/${projectNo.value}`).then((res) => {
@@ -239,7 +238,7 @@
                 title="鏌ヨ搴撳瓨"
                 destroy-on-close
                 style="width: 35%;height:35%;">
-              <check-inventory/>
+              <check-inventory />
             </el-dialog>
 
             <el-button id="button" type="primary" @click="openDialog(2)">璁剧疆纾ㄩ噺</el-button>
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
index 302e305..9484a42 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
@@ -20,13 +20,22 @@
     GlassOptimizeService glassOptimizeService;
 
     //宸ョ▼淇℃伅
-    @ApiOperation("鍒涘缓宸ョ▼鏌ヨ娴佺▼鍗℃帴鍙�")
+    @ApiOperation("宸ョ▼淇℃伅鎺ュ彛")
     @PostMapping  ("/projectInfo/{projectNo}")
     public Result projectInfo(
             @PathVariable String projectNo){
         return Result.seccess(glassOptimizeService.projectInfoSv(projectNo));
     }
 
+    //搴撳瓨淇℃伅
+    @ApiOperation("搴撳瓨淇℃伅鎺ュ彛")
+    @PostMapping  ("/materialStore/{thickness}/{model}")
+    public Result materialStore(
+            @PathVariable  String thickness,
+            @PathVariable  String model ){
+        return Result.seccess(glassOptimizeService.materialStoreSv(thickness,model));
+    }
+
 
     //宸ョ▼鏌ヨ娴佺▼鍗�
     @ApiOperation("鍒涘缓宸ョ▼鏌ヨ娴佺▼鍗℃帴鍙�")
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
index b5350f3..6438c2f 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
@@ -15,6 +15,8 @@
     //宸ョ▼淇℃伅
     List<Map<String, Object>> projectInfoMp(String projectNo);
 
+    //搴撳瓨淇℃伅
+    List<Map<String, Object>>  materialStoreMp(String thickness, String model);
 
     //宸ュ崟绠$悊鏌ヨ鏈浆宸ュ崟鏁版嵁
     List<OrderGlassDetail> selectWordOrder(Date selectTime1, Date selectTime2, OrderGlassDetail orderGlassDetail);
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 3999eb8..8a9cb51 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
@@ -25,6 +25,13 @@
         return map;
     }
 
+    //搴撳瓨淇℃伅
+    public Map<String, Object> materialStoreSv(String thickness, String model) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("data", glassOptimizeMapper.materialStoreMp(thickness,model));
+        return map;
+    }
+
 
     //宸ョ▼鏌ヨ娴佺▼鍗�
     public Map<String, Object> getFlowCardList(String optionVal, Integer radio) {
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 9c02619..c72d362 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -89,6 +89,35 @@
             f.order_number;
     </select>
 
+    <!--搴撳瓨淇℃伅-->
+    <select id="materialStoreMp">
+        SELECT
+            i.id AS id,
+            i.producer AS producer,
+            i.available_quantity AS available_quantity,
+            JSON_EXTRACT(s.json, '$.width') AS width,
+            JSON_EXTRACT(s.json, '$.height') AS height,
+            JSON_EXTRACT(s.json, '$.thickness') AS thickness,
+            JSON_EXTRACT(s.json, '$.name') AS name,
+            JSON_EXTRACT(s.json, '$.model') AS model
+        FROM  mm.material_inventory as `i`
+                    LEFT JOIN  mm.material_store  as s ON (
+                    (
+                        `i`.`material_code` = `s`.`id`
+                        )
+                    )
+        WHERE
+            (
+                    (`s`.`type` = '鍘熺墖')
+                    AND (`i`.`optimize_state` = 1)
+                    AND (`i`.`available_quantity` > 0)
+                    AND JSON_EXTRACT(s.json, '$.thickness') = #{thickness}
+                    AND JSON_EXTRACT(s.json, '$.model') = #{model}
+                )
+        ORDER BY
+            `i`.`available_quantity` DESC ;
+    </select>
+
     <select id="selectWordOrder" resultMap="wordOrderMap">
         select
         o.order_id,

--
Gitblit v1.8.0