From 428f9d210755f8e3082ff969c76542ef77964610 Mon Sep 17 00:00:00 2001
From: 于杰 <1210123631@qq.com>
Date: 星期二, 04 十一月 2025 14:46:45 +0800
Subject: [PATCH] 修改优化部分模拟计算逻辑,如果已经完成模拟计算的项目,只有撤销模拟计算后,才能再次模拟计算,解决部分订单翻倍的bug
---
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml | 13 ++++++
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeProject.vue | 2
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 | 2 +
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue | 5 ++
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue | 25 ------------
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue | 32 +++++++++++++++-
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java | 5 ++
8 files changed, 63 insertions(+), 28 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 d54475c..f162aaa 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
@@ -121,7 +121,7 @@
height: calc(100% - 55px);
width: 100%;
margin-top: 30px;
- //padding: 0;
+ /* padding: 0; */
}
</style>
\ No newline at end of file
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 90c7c16..0325de6 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
@@ -332,6 +332,11 @@
return;
}
if (config.code === 'compute') {
+ // 澧炲姞閫昏緫锛氭鏌ラ挗鍖栨ā鎷熷垪鏄惁宸茬粡鏄�"鏄�"
+ if (row.temperingState === 1) {
+ ElMessage.warning('璇ラ」鐩凡妯℃嫙璁$畻');
+ return;
+ }
if(row.state===1 && row.temperingState===0){
config.actionFunction({row});
}else{
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue
index 8517fb6..f4014d9 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue
@@ -461,31 +461,6 @@
</div>
</div>
-<!-- <div class="demo-progress" style="margin-top: -10px">
- <div style="display: flex; align-items: center">
- <span>鐞嗙墖绗肩┖闂插害</span>
- <!– 杩涘害鏉¤缃� –>
- <el-slider
- style="max-width: 400px; flex: 1; margin-left: 10px"
- v-model="percentage2"
- :min="0"
- :max="100"
- :step="1"/>
- <span style="margin-left: 20px ; width: 35px;">{{ percentage2 }}%</span>
- <span style="float: right ; margin-left: 150px;">
- 鍔犵儹鏃堕棿(绉�)<el-select style="width: 50px;height: 30px" v-model="rotateMode">
- <el-option
- v-for="item in selectOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- 闀胯酱闂撮殧 <vxe-input size="small" class="input" clearable v-model="spacingLong"></vxe-input>
- 鐐夐暱(mm) <vxe-input size="small" class="input" clearable v-model="furnaceLength"></vxe-input>
- </span>
- </div>
- </div>-->
</div>
<div style="height: 50%">
<vxe-grid
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 13b893a..0f62169 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
@@ -446,8 +446,36 @@
};
const handleCommand = async (command) => {
- await emit('changeDialog', command)
-}
+ // 褰撻�夋嫨妯℃嫙璁$畻锛坈ommand === 3锛夋椂锛屽厛妫�鏌� tempering_state 鐘舵��
+ if (command === 3) {
+ try {
+ const res = await request.post(`/glassOptimize/getProjectState/${projectNo.value}`);
+ if (Number(res.code) === 200) {
+ const projectData = res.data.data;
+
+ // 妫�鏌� tempering_state 鐘舵��
+ if (projectData.tempering_state === 1) {
+ // 濡傛灉宸插畬鎴愭ā鎷熻绠楋紝鎻愮ず鐢ㄦ埛骞堕樆姝㈡墦寮�
+ ElMessage.warning('宸插畬鎴愭ā鎷熻绠楋紝涓嶅厑璁搁噸澶嶈绠�');
+ return;
+ } else if (projectData.tempering_state === 0) {
+ // 濡傛灉鏈繘琛屾ā鎷熻绠楋紝鍏佽鎵撳紑
+ await emit('changeDialog', command);
+ }
+ } else {
+ ElMessage.warning(res.msg);
+ return;
+ }
+ } catch (error) {
+ ElMessage.error('妫�鏌ュ伐绋嬬姸鎬佸け璐ワ紝璇风◢鍚庨噸璇�');
+ console.error('妫�鏌ュ伐绋嬬姸鎬佸け璐�:', error);
+ return;
+ }
+ } else {
+ // 鍏朵粬鍛戒护鐩存帴鎵ц
+ await emit('changeDialog', command);
+ }
+};
let originalFilm=ref(true)
let surplusMaterial=ref(false)
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 45bb793..44d82fd 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
@@ -58,6 +58,13 @@
return Result.success(glassOptimizeService.getProcessCardSv(projectNo));
}
+ @ApiOperation("宸ョ▼淇℃伅鏌ヨ鎺ュ彛")
+ @PostMapping ("/getProjectState/{projectNo}")
+ public Result getProjectState(
+ @PathVariable String projectNo){
+ return Result.success(glassOptimizeService.getProjectState(projectNo));
+ }
+
//搴撳瓨淇℃伅
@ApiOperation("搴撳瓨淇℃伅鎺ュ彛")
@GetMapping ("/materialStore/{thickness}/{model}/{projectNumber}")
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 0e307a8..13558ff 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
@@ -235,4 +235,6 @@
void insertOptimizeConfig(String json, int type, String userName, String configName);
Map<String, Object> getGlassProjectList(String projectId);
+
+ Map<String, Object> getProjectState(String projectNo);
}
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 05c92c0..8dd8a9f 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
@@ -1422,4 +1422,9 @@
}
+ public Map<String, Object> getProjectState(String projectNo) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", glassOptimizeMapper.getProjectState(projectNo));
+ return map;
+ }
}
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 6a8867d..b4ff490 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -212,6 +212,7 @@
INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no
LEFT JOIN sd.ORDER o ON o.order_id = c.order_id
LEFT JOIN sd.order_detail od ON c.order_id = od.order_id
+ AND c.order_number = od.order_number
WHERE
c.project_no IS NOT NULL
and c.project_no = #{projectNo}
@@ -2106,6 +2107,18 @@
WHERE
project_no = #{projectId}
</select>
+ <select id="getProjectState" resultType="java.util.Map" parameterType="java.lang.String">
+ SELECT
+ project_no,
+ project_name,
+ state,
+ tempering_state,
+ optimize_state
+ FROM
+ pp.optimize_project
+ WHERE
+ project_no = #{projectNo}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0