From b159f7795dd800fd599589f36c2d6349e5cf15e7 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 02 十二月 2025 14:23:47 +0800
Subject: [PATCH] 流程卡明细界面修改工艺添加限制
---
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue | 41 +++++++++++++++-----
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java | 5 ++
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java | 9 ++++
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java | 38 ++++++++++++++++--
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 12 ++++++
5 files changed, 89 insertions(+), 16 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
index ffab797..92b1427 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
@@ -14,6 +14,7 @@
import {VXETable} from "vxe-table";
import useUserInfoStore from '@/stores/userInfo'
import {useI18n} from "vue-i18n";
+import { computed } from 'vue'
import UpdateOrderCraft from "@/components/sd/order/UpdateOrderCraft.vue";
import {filterChanged} from "@/hook";
let productGlassTypeStore = useProductGlassTypeStore()
@@ -78,20 +79,40 @@
const saveCraft = () => {
//rowIndex.value.process = craftObj.newCraft.join('->')
let orderProcess= craftObj.newCraft.join('->')
- request.post(`/processCard/updateProcess/${rowIndex.value.process_id}/${rowIndex.value.order_number}/${rowIndex.value.technology_number}/${rowIndex.value.order_id}/${orderProcess}`, craftObj).then((res) => {
- if (res.code == 200 && res.data === true) {
- ElMessage.success(t('basicData.msg.saveSuccess'))
- router.push({
- path: '/main/processCard/SelectDetailProcessCard',
- query: {processId: processId,random: Math.random()}
- })
- } else {
+ //鑾峰彇宸紓宸ュ簭
+ const diffCraft = computed(() => {
+ return [
+ ...craftObj.oldCraft.filter(item => !craftObj.newCraft.includes(item)), //鍒犻櫎
+ ...craftObj.newCraft.filter(item => !craftObj.oldCraft.includes(item))//澧炲姞
+ ]
+ })
+ if (diffCraft.value == '') {//鏃犲彉鍖栦笉鎵ц鍚庣画
+ return
+ }
+ //鑾峰彇鏈�鏂版姤宸ュ伐搴忕殑椤哄簭
+request.post(`/processCard/getNewProcess/${rowIndex.value.process_id}/${rowIndex.value.order_number}/${rowIndex.value.technology_number}/${diffCraft.value}`).then((res) => {
+ if (res.code == 200 ) {
+ if (res.data){
+ request.post(`/processCard/updateProcess/${rowIndex.value.process_id}/${rowIndex.value.order_number}/${rowIndex.value.technology_number}/${rowIndex.value.order_id}/${orderProcess}`, craftObj).then((res) => {
+ if (res.code == 200 && res.data === true) {
+ ElMessage.success(t('basicData.msg.saveSuccess'))
+ router.push({
+ path: '/main/processCard/SelectDetailProcessCard',
+ query: {processId: processId,random: Math.random()}
+ })
+ } else {
- ElMessage.warning(t('processCard.updateProcessMsg'))
+ ElMessage.warning(t('processCard.updateProcessMsg'))
+ }
+ })
+ craftVisible.value= false
+ }else {
+ ElMessage.warning(t('processCard.updateProcessMsg'))
+ }
}
})
- craftVisible.value= false
+
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
index dfa8268..c019f24 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -450,6 +450,15 @@
}
+ @ApiOperation("鑾峰彇鏈�鎶ュ伐鏂板伐搴�")
+ @PostMapping("/getNewProcess/{processId}/{orderNumber}/{technologyNumber}/{orderProcess}")
+ public Result getNewProcess(@PathVariable String processId,
+ @PathVariable String orderNumber,
+ @PathVariable String technologyNumber,
+ @PathVariable List<String> orderProcess){
+ return Result.success(flowCardService.getNewProcessSv(processId,orderNumber,technologyNumber,orderProcess));
+ }
+
@ApiOperation("淇敼宸ヨ壓娴佺▼")
@PostMapping("/updateProcess/{processId}/{orderNumber}/{technologyNumber}/{orderId}/{process}")
public Result updateProcess(
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
index 453bed3..7acc163 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -1,6 +1,5 @@
package com.example.erp.mapper.pp;
-import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.erp.dto.pp.FlowCardDTO;
import com.example.erp.entity.pp.FlowCard;
@@ -298,4 +297,8 @@
Boolean updateTerminationStatus(String processId, Integer orderNumber);
Boolean updateTerminationNoMp(String processId, Integer orderNumber);
+
+ List<Map<String, Object>> getNewProcessMp(String processId, String orderNumber, String technologyNumber);
+
+ Map<String, Object> getProcessInfo( String processName);
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index 738d9e2..1a0998f 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -33,7 +33,6 @@
import java.io.IOException;
-import java.sql.Date;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -1354,11 +1353,13 @@
}
//灏嗗師鏉ュ凡鎶ュ伐鐨勬暟鎹洿鏂�
if (resultList != null && !resultList.isEmpty()) {
- for (OrderProcessDetail d : resultList) {
- flowCardMapper.updateOrderProcessDetail(d.getProcessId(),d.getOrderNumber(),d.getTechnologyNumber(),
- d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
-
+ for (String number : numberList) {
+ for (OrderProcessDetail d : resultList) {
+ flowCardMapper.updateOrderProcessDetail(d.getProcessId(),number,d.getTechnologyNumber(),
+ d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
+ }
}
+
}
return true;
@@ -1758,6 +1759,33 @@
}
+ public boolean getNewProcessSv(String processId, String orderNumber, String technologyNumber, List<String> orderProcess) {
+
+ // 鑾峰彇鏈�鏂版姤宸ュ伐搴�
+ List<Map<String, Object>> newProcess = flowCardMapper.getNewProcessMp(processId, orderNumber, technologyNumber);
+
+ if (newProcess == null || newProcess.isEmpty()) {
+ return false; // 鎵句笉鍒版爣鍑嗗��
+ }
+
+ // 鏈�鏂板伐搴忔帓搴忓彿
+ int standardSort = Integer.parseInt(newProcess.get(0).get("sort").toString());
+
+ // 寰幆 orderProcess 鐨勬瘡涓�涓伐搴忥紝鏌ヨ瀹冧滑鐨� sort
+ for (String processName : orderProcess) {
+ Map<String, Object> data = flowCardMapper.getProcessInfo(processName);
+
+ if (data == null) {
+ return false; // 宸ュ簭鏌ヤ笉鍒�
+ }
+ int orderSort = Integer.parseInt(data.get("sort").toString());
+ // orderSort 蹇呴』 > standardSort
+ if (orderSort <= standardSort) {
+ return false;
+ }
+ }
+ return true;
+ }
}
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index 07ed781..6f700d2 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -3911,4 +3911,16 @@
<update id="updateTerminationNoMp">
update pp.flow_card set termination_status=0 , termination_quantity=0 where process_id = #{processId} and order_number = #{orderNumber}
</update>
+
+ <select id="getNewProcessMp">
+ select opd.process,bd.sort from sd.order_process_detail as opd
+ left join sd.basic_data as bd on bd.basic_name = opd.process and bd.basic_category='process'
+ where opd.process_id=#{processId} and opd.order_number=#{orderNumber}
+ and opd.technology_number = #{technologyNumber} and reporting_work_num_count>0 ORDER BY opd.id DESC LIMIT 1
+ </select>
+
+ <select id="getProcessInfo">
+ select basic_name as process,sort FROM sd.basic_data as bd
+ where bd.basic_category='process' and bd.basic_name = #{processName}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0