From c74ab555c190b1ada24037e1fee2a714303b4aa7 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期四, 17 四月 2025 16:09:14 +0800
Subject: [PATCH] 库存查询余料或者原片修改
---
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml | 61 ++++++++++++++++++++
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeProject.vue | 4
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue | 5 +
north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java | 7 +-
north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java | 4 +
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue | 24 +++++++-
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java | 18 +++++-
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/CheckInventory.vue | 40 +++++-------
8 files changed, 128 insertions(+), 35 deletions(-)
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 ec9ff1a..83a946c 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
@@ -33,9 +33,9 @@
//鑾峰彇GlassInventory鐨勫��(鏌ヨ搴撳瓨)
const sendDataGlassInventory = ref()
-const handleInventoyData = (selectedLabel1,selectedLabel2) => {
+const handleInventoyData = (selectedLabel1,selectedLabel2,type) => {
sendDataGlassInventory.value = {
- selectedLabel1, selectedLabel2
+ selectedLabel1, selectedLabel2,type
};
};
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 75787a0..855da7a 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,6 +1,7 @@
<script setup>
import {defineEmits, ref} from "vue";
+
const value1 = ref('')
const value2 = ref('')
@@ -43,15 +44,20 @@
const emit = defineEmits(['send-data-inventory',]);
const props = defineProps({
- closeDialog: Function
+ closeDialog: Function,
+ thickNess:null,
+ model:null
});
+value1.value=props.thickNess
+value2.value=props.model
+
const CheckInventory = () => {
- const selectedLabel1 = options1.find((option) => option.value === value1.value)?.label || '';
- const selectedLabel2 = options2.find((option) => option.value === value2.value)?.label || '';
+ const selectedLabel1 = value1.value;
+ const selectedLabel2 = value2.value;
// 鍒ゆ柇涓や釜鍊兼槸鍚﹂兘琚�夋嫨浜嗭紝濡傛灉鏈変竴涓负绌哄瓧绗︿覆锛屽垯鎻愮ず骞惰繑鍥烇紝涓嶆墽琛屽悗缁搷浣�
- if (!selectedLabel1 ||!selectedLabel2) {
- window.alert('璇烽�夋嫨鐩稿叧閫夐」');
+ if (selectedLabel1==="" || selectedLabel2==="") {
+ window.alert('璇疯緭鍏�');
return;
}
props.closeDialog(1);
@@ -63,27 +69,15 @@
<template>
<div id="box">
<div>
- <span>鍘氬害锛坢m锛夛細</span>
- <el-select v-model="value1" clearable style="width: 240px">
- <el-option
- v-for="item in options1"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
+ <span>鍘氬害(mm)锛�</span>
+ <el-input v-model="value1" style="width: 140px"></el-input>
</div>
<div style="margin-top: 30px">
- <span>鐜荤拑绫诲瀷锛�</span>
- <el-select v-model="value2" clearable style="width: 240px; margin-left: 23px">
- <el-option
- v-for="item in options2"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
+ <span>鐜荤拑绫诲瀷 锛�</span>
+ <el-input v-model="value2" style="width: 140px">
+
+ </el-input>
</div>
<div style="float: right; margin:-55px 35px 0 0;">
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 7538dd7..5c059c9 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
@@ -158,9 +158,10 @@
const thickness = ref(route.params.thickNess);
const model = ref(route.params.model);
let projectNo = ref(null);
+let type = ref(1);
const selectMaterialStore = async () =>{
- request.post(`/glassOptimize/materialStore/${thickness.value}/${model.value}/${projectNo}`).then((res) => {
+ request.get(`/glassOptimize/materialStore/${thickness.value}/${model.value}/${projectNo}?type=${type.value}`).then((res) => {
if (Number(res.code) === 200) {
const rawData = res.data.data;
const edgeTrimming = res.data.edgeTrimming;
@@ -240,6 +241,7 @@
if (newInventoryData) {
thickness.value = newInventoryData.selectedLabel1;
model.value = newInventoryData.selectedLabel2;
+ type.value=newInventoryData.type
// 鐢变簬 thickness 鍜� model 鐨勫�兼敼鍙樹簡锛屾洿鏂拌〃鏍硷紝璋冪敤 selectMaterialStore 閲嶆柊鑾峰彇鏁版嵁
selectMaterialStore();
}
@@ -262,6 +264,7 @@
properties: {
selectedLabel1: { type: String },
selectedLabel2: { type: String },
+ type: { type: String }
}
}
});
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 2e8556d..c61b702 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
@@ -354,6 +354,9 @@
await emit('changeDialog', command)
}
+let originalFilm=ref(true)
+let surplusMaterial=ref(false)
+
//浼樺寲璁$畻
const dialogVisible = ref({});
const openDialog = (index) => {
@@ -378,6 +381,8 @@
//宸ョ▼鍙�
const projectNo = ref(route.params.projectNo);
const projectName = ref('');
+const thickNess = ref(route.params.thickNess);
+const model = ref(route.params.model);
onBeforeUnmount(() => {
localStorage.setItem('projectNo', projectNo.value);
});
@@ -502,7 +507,17 @@
//涓浆绔欐帴鍙桟heckInventory鐨勫�硷紙鏌ヨ搴撳瓨锛�
const handleInventory = (selectedLabel1, selectedLabel2) => {
- emit('send-inventory-to-op', selectedLabel1, selectedLabel2);
+ let type=0;
+ if(originalFilm.value===true&&surplusMaterial.value===true){
+ type=3
+ }else if(originalFilm.value===true&&surplusMaterial.value===false){
+ type=1
+ }else if(originalFilm.value===false&&surplusMaterial.value===true){
+ type=2
+ }else{
+ type=1
+ }
+ emit('send-inventory-to-op', selectedLabel1, selectedLabel2,type);
}
</script>
@@ -529,10 +544,13 @@
<span>宸ョ▼缂栧彿锛�</span>
<el-input readonly placeholder="" style="width: 150px" v-model="projectNo"></el-input>
<span>宸ョ▼鍚嶇О锛�</span>
- <el-input readonly placeholder="" style="width: 150px; margin-right: 340px;" v-model="projectName" ></el-input>
+ <el-input readonly placeholder="" style="width: 150px; margin-right: 140px;" v-model="projectName" ></el-input>
+ 鍘熺墖<el-checkbox v-model="originalFilm" ></el-checkbox>
+ 浣欐枡<el-checkbox v-model="surplusMaterial" ></el-checkbox>
<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 :closeDialog="closeDialog" @send-data-inventory="handleInventory"/>
+ <check-inventory :closeDialog="closeDialog" :thickNess="thickNess" :model="model"
+ @send-data-inventory="handleInventory"/>
</el-dialog>
<el-button id="button" type="primary" @click="openDialog(2)">璁剧疆纾ㄩ噺</el-button>
<el-dialog v-model="dialogVisible[2]" title="璁剧疆纾ㄩ噺锛坢m锛�" destroy-on-close
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 3f7cf07..2119f78 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
@@ -49,11 +49,12 @@
//搴撳瓨淇℃伅
@ApiOperation("搴撳瓨淇℃伅鎺ュ彛")
- @PostMapping ("/materialStore/{thickness}/{model}/{projectNumber}")
+ @GetMapping ("/materialStore/{thickness}/{model}/{projectNumber}")
public Result materialStore(
@PathVariable String thickness,
- @PathVariable String model,@PathVariable String projectNumber ){
- return Result.seccess(glassOptimizeService.materialStoreSv(thickness,model,projectNumber));
+ @PathVariable String model,@PathVariable String projectNumber,
+ @RequestParam(name = "type", required = false) Integer type ){
+ return Result.seccess(glassOptimizeService.materialStoreSv(thickness,model,projectNumber,type));
}
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 d733f74..1b1e97d 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
@@ -32,6 +32,10 @@
//搴撳瓨淇℃伅
List<Map<String, Object>> materialStoreMp(String thickness, String model);
+ List<Map<String, Object>> surplusMaterialsMp(String thickness, String model);
+
+ List<Map<String, Object>> materialStoreSurplusMp(String thickness, String model);
+
List<Map<String, Object>> materialStoreOptimizeUse(String projectNumber);
//宸ュ崟绠$悊鏌ヨ鏈浆宸ュ崟鏁版嵁
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 eaf3a3d..81ffb3e 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
@@ -157,14 +157,26 @@
}
//搴撳瓨淇℃伅
- public Map<String, Object> materialStoreSv(String thickness, String model, String projectNumber) {
+ public Map<String, Object> materialStoreSv(String thickness, String model, String projectNumber,Integer type) {
Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNumber);
Map<String, Object> map = new HashMap<>();
if(Integer.parseInt(stringObjectMap.get("state").toString())<10){
- map.put("data", glassOptimizeMapper.materialStoreMp(thickness,model));
+ if(type==1){
+ map.put("data", glassOptimizeMapper.materialStoreMp(thickness,model));
+ }else if(type==2){
+ map.put("data", glassOptimizeMapper.surplusMaterialsMp(thickness,model));
+ }else{
+ map.put("data", glassOptimizeMapper.materialStoreSurplusMp(thickness,model));
+ }
map.put("edgeTrimming", glassOptimizeMapper.getEdgeTrimming());
}else if(Integer.parseInt(stringObjectMap.get("state").toString())==10){
- map.put("data", glassOptimizeMapper.materialStoreMp(thickness,model));
+ if(type==1){
+ map.put("data", glassOptimizeMapper.materialStoreMp(thickness,model));
+ }else if(type==2){
+ map.put("data", glassOptimizeMapper.surplusMaterialsMp(thickness,model));
+ }else{
+ map.put("data", glassOptimizeMapper.materialStoreSurplusMp(thickness,model));
+ }
map.put("edgeTrimming", glassOptimizeMapper.getEdgeTrimming());
}else{
map.put("data", glassOptimizeMapper.materialStoreOptimizeUse(projectNumber));
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 e26a46c..e449f52 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -286,6 +286,67 @@
`i`.`available_quantity` DESC ;
</select>
+ <!--浣欐枡淇℃伅-->
+ <select id="surplusMaterialsMp">
+ SELECT
+ i.id AS id,
+ '' AS producer,
+ i.quantity AS available_quantity,
+ i.width,
+ i.height,
+ i.thickness,
+ i.colour AS name,
+ i.colour
+ FROM mm.surplus_materials as i
+ WHERE
+ i.quantity>0 and i.colour=#{model} and i.thickness=#{thickness}
+ ORDER BY
+ i.quantity DESC ;
+ </select>
+
+ <!--搴撳瓨浣欐枡淇℃伅-->
+ <select id="materialStoreSurplusMp">
+ (SELECT
+ i.id AS id,
+ i.producer AS producer,
+ i.available_quantity-i.plan_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`-i.plan_quantity > 0)
+ AND JSON_EXTRACT(s.json, '$.thickness') = #{thickness}
+ AND JSON_EXTRACT(s.json, '$.model') = #{model}
+ )
+ ORDER BY
+ `i`.`available_quantity` DESC) union
+ (SELECT
+ i.id AS id,
+ '' AS producer,
+ i.quantity AS available_quantity,
+ i.width,
+ i.height,
+ i.thickness,
+ i.colour AS name,
+ i.colour
+ FROM mm.surplus_materials as i
+ WHERE
+ i.quantity>0 and i.colour=#{model} and i.thickness=#{thickness}
+ ORDER BY
+ i.quantity DESC );
+ </select>
+
<select id="materialStoreOptimizeUse">
select ms.id AS id,
--
Gitblit v1.8.0