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