From 69ce239949e32dd40ded422ea72987b4a9751add Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 05 八月 2025 17:40:32 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
---
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue | 1
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue | 2
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml | 12 +-
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue | 23 +++
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue | 2
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue | 195 +++++++++++++++++++-------------------
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java | 36 ++++---
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue | 4
8 files changed, 151 insertions(+), 124 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
index 50367ed..038987f 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -35,11 +35,11 @@
},
- columns:[
-
- ],
mergeCells:[],
toolbarConfig: {
+ slots:{
+ buttons: "title"
+ },
zoom: true,
// custom: true
},
@@ -66,7 +66,8 @@
const list = ref([])
let props = defineProps({
- orderId:null
+ orderId:null,
+ row: {}
})
const columns = [
{field: 'order_number',fixed:"left", width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis"},
@@ -174,12 +175,17 @@
+')' )
//return
}
+let showTitle = ref(false)
+const changeZoom = ()=> {
+ showTitle.value = !showTitle.value
+}
</script>
<template>
<div style="width: 100%;height: 100%">
<vxe-grid
@filter-change ='filterChange'
+ @zoom="changeZoom"
height="100%"
size="mini"
class="mytable-scrollbar"
@@ -202,6 +208,15 @@
<span>{{ quantitySum(row,column) }} </span>
</template>
+ <template #title>
+ <span style="font-weight: bold" v-show="showTitle">
+ {{ row.orderId }}
+ {{ row.project?'--':'' }}
+ {{row.project}}
+ {{ row.batch?'--':'' }}
+ {{row.batch}}
+ </span>
+ </template>
</vxe-grid>
</div>
</template>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue
index 2ba7e74..f308151 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue
@@ -1,6 +1,8 @@
<template>
<div>
- <el-button id="button" type="primary" @click="handlePrint">鎵撳嵃</el-button>
+ <el-button id="button" type="primary" @click="handlePrint" style="position: fixed; top: 90px; right: 20px; padding: 20px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
+ 鎵撳嵃
+ </el-button>
<div ref="printContainer" style="position: relative;">
<RectRenderer
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
index 5f8b1b5..259c0af 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
@@ -11,7 +11,7 @@
</div>
- <button @click="submitLayouts" style="position: fixed; bottom: 20px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
+ <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
淇濆瓨OPT
</button>
</template>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
index 58820da..c0ba000 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
@@ -72,7 +72,7 @@
</div>
<!-- 鎻愪氦鎸夐挳 -->
- <button @click="submitLayouts" style="position: fixed; bottom: 20px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
+ <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
淇濆瓨璋冩暣
</button>
</div>
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 6dce01a..65982c4 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
@@ -458,6 +458,7 @@
return;
}
emit('getSmallPieceData', 1);
+ optimizeData.value.glassDetails = [];
xGrid.value.getTableData().fullData.forEach(items=>{
let rackNoValue = 0;
if (items.rackNo !== undefined && items.rackNo !== null && items.rackNo !== '') {
@@ -524,6 +525,7 @@
dialogVisible.value[3] = newValue;
}
if (props.CheckboxChangeData!=null && props.CheckboxChangeData.length>0){
+ optimizeData.value.materialDetails = [];
props.CheckboxChangeData.forEach(items=>{
const detail={
width :null,
@@ -601,99 +603,81 @@
const grindingTrimming = res.data.grindingTrimming;
optimizeState.value=res.data.optimizeState;
- // 鍔犺浇纾ㄩ噺閰嶇疆
- loadGrindingConfiguration().then((grindConfig) => {
- console.log("鍔犺浇鐨勭(閲忛厤缃�:", grindConfig);
-
- data = data.map(item => {
- // 淇濈暀浠庡悗绔繑鍥炵殑鍘熷纾ㄩ噺鍊硷紝濡傛灉瀛樺湪鐨勮瘽
- const originalLongGrind1 = item.longGrind1;
- const originalLongGrind2 = item.longGrind2;
- const originalShortGrind1 = item.shortGrind1;
- const originalShortGrind2 = item.shortGrind2;
-
- // 濡傛灉娌℃湁鍘熷纾ㄩ噺鍊硷紝鍒欏垵濮嬪寲涓�0
- item.longGrind1 = originalLongGrind1 !== undefined && originalLongGrind1 !== null ?
- parseFloat(originalLongGrind1) : 0;
- item.longGrind2 = originalLongGrind2 !== undefined && originalLongGrind2 !== null ?
- parseFloat(originalLongGrind2) : 0;
- item.shortGrind1 = originalShortGrind1 !== undefined && originalShortGrind1 !== null ?
- parseFloat(originalShortGrind1) : 0;
- item.shortGrind2 = originalShortGrind2 !== undefined && originalShortGrind2 !== null ?
- parseFloat(originalShortGrind2) : 0;
-
- // 澶勭悊 grindingTrimming 鏁版嵁锛堝鏋滃瓨鍦級
- if(grindingTrimming!==null && grindingTrimming.length > 0){
- const formattedData = grindingTrimming.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;
- });
-
- // 濡傛灉鏈夎嚜鍔ㄥ~鍏呴厤缃紝浣跨敤瀹冩潵璁剧疆纾ㄩ噺
- if(formattedData[0].autoFillEdge==="true"){
- const minAutoLenght = parseFloat(formattedData[0].minAutoLenght) || 0;
- const leftEdge = parseFloat(formattedData[0].leftEdge) || 0;
- const rightEdge = parseFloat(formattedData[0].rightEdge) || 0;
- const upEdge = parseFloat(formattedData[0].upEdge) || 0;
- const downEdge = parseFloat(formattedData[0].downEdge) || 0;
-
- if(item.width >= minAutoLenght){
- item.longGrind1 = leftEdge;
- item.longGrind2 = rightEdge;
- }
- if(item.height >= minAutoLenght){
- item.shortGrind1 = upEdge;
- item.shortGrind2 = downEdge;
- }
- }
- } else if(grindConfig) {
- // 浣跨敤浠� getConfiguration 鎺ュ彛鍔犺浇鐨勯厤缃�
- if(grindConfig.autoFillEdge==="true"){
- const minAutoLenght = parseFloat(grindConfig.minAutoLenght) || 0;
- const leftEdge = parseFloat(grindConfig.leftEdge) || 0;
- const rightEdge = parseFloat(grindConfig.rightEdge) || 0;
- const upEdge = parseFloat(grindConfig.upEdge) || 0;
- const downEdge = parseFloat(grindConfig.downEdge) || 0;
-
- if(item.width >= minAutoLenght){
- item.longGrind1 = leftEdge;
- item.longGrind2 = rightEdge;
- }
- if(item.height >= minAutoLenght){
- item.shortGrind1 = upEdge;
- item.shortGrind2 = downEdge;
- }
- }else {
- // 鍗充娇娌℃湁鍚敤鑷姩濉厖锛屼篃搴旇搴旂敤榛樿鐨勭(閲忓��
- item.longGrind1 = parseFloat(grindConfig.leftEdge) || 0;
- item.longGrind2 = parseFloat(grindConfig.rightEdge) || 0;
- item.shortGrind1 = parseFloat(grindConfig.upEdge) || 0;
- item.shortGrind2 = parseFloat(grindConfig.downEdge) || 0;
+ // 澶勭悊 grindingTrimming 鏁版嵁锛堝鏋滃瓨鍦級
+ let processedGrindConfig = null;
+ if(grindingTrimming!==null && grindingTrimming.length > 0){
+ // 澶勭悊 grindingTrimming 鏁版嵁锛屽幓闄ゅ弻寮曞彿
+ const formattedData = grindingTrimming.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];
}
}
-
- item.height=parseFloat(item.height.toFixed(2))
- item.width=parseFloat(item.width.toFixed(2))
-
- return item;
+ return formattedItem;
});
+ processedGrindConfig = formattedData[0];
+ }
- console.log("澶勭悊鍚庣殑鏁版嵁:", data);
+ data = data.map(item => {
+ // 鐩存帴灏� grindingTrimming 涓殑纾ㄩ噺淇℃伅鍐欏埌琛ㄤ腑
+ if (processedGrindConfig) {
+ // 浣跨敤 grindingTrimming 涓殑閰嶇疆璁剧疆纾ㄩ噺
+ const leftEdge = parseFloat(processedGrindConfig.leftEdge) || 0;
+ const rightEdge = parseFloat(processedGrindConfig.rightEdge) || 0;
+ const upEdge = parseFloat(processedGrindConfig.upEdge) || 0;
+ const downEdge = parseFloat(processedGrindConfig.downEdge) || 0;
- xGrid.value.loadData(data);
- gridOptions.data = data;
- projectName.value = data[0].project_name;
- quantitys.value=res.data.project.glass_total
- areas.value=res.data.project.glass_total_area
+ item.longGrind1 = leftEdge; // 闀跨(1
+ item.longGrind2 = rightEdge; // 闀跨(2
+ item.shortGrind1 = upEdge; // 鐭(1
+ item.shortGrind2 = downEdge; // 鐭(2
+
+ // 濡傛灉鍚敤浜嗚嚜鍔ㄥ~鍏呭姛鑳斤紝鏍规嵁灏哄鍒ゆ柇鏄惁搴旂敤纾ㄩ噺
+ if(processedGrindConfig.autoFillEdge === "true"){
+ const minAutoLength = parseFloat(processedGrindConfig.minAutoLenght) || 0;
+
+ // 濡傛灉瀹藉害灏忎簬鏈�灏忚嚜鍔ㄩ暱搴︼紝涓嶅簲鐢ㄥ乏鍙崇(閲�
+ if(item.width < minAutoLength){
+ item.longGrind1 = 0;
+ item.longGrind2 = 0;
+ }
+
+ // 濡傛灉楂樺害灏忎簬鏈�灏忚嚜鍔ㄩ暱搴︼紝涓嶅簲鐢ㄤ笂涓嬬(閲�
+ if(item.height < minAutoLength){
+ item.shortGrind1 = 0;
+ item.shortGrind2 = 0;
+ }
+ }
+ } else {
+ // 濡傛灉娌℃湁 grindingTrimming 鏁版嵁锛屽垵濮嬪寲涓�0
+ item.longGrind1 = item.longGrind1 !== undefined && item.longGrind1 !== null ?
+ parseFloat(item.longGrind1) : 0;
+ item.longGrind2 = item.longGrind2 !== undefined && item.longGrind2 !== null ?
+ parseFloat(item.longGrind2) : 0;
+ item.shortGrind1 = item.shortGrind1 !== undefined && item.shortGrind1 !== null ?
+ parseFloat(item.shortGrind1) : 0;
+ item.shortGrind2 = item.shortGrind2 !== undefined && item.shortGrind2 !== null ?
+ parseFloat(item.shortGrind2) : 0;
+ }
+
+ item.height=parseFloat(item.height.toFixed(2))
+ item.width=parseFloat(item.width.toFixed(2))
+
+ return item;
});
+
+ xGrid.value.loadData(data);
+ gridOptions.data = data;
+ projectName.value = data[0].project_name;
+ quantitys.value=res.data.project.glass_total
+ areas.value=res.data.project.glass_total_area
+
+ // 鏇存柊 optimizeData 涓殑纾ㄩ噺閰嶇疆
+ updateOptimizeDataWithGrindingConfig(processedGrindConfig);
} else {
ElMessage.warning(res.msg);
}
@@ -702,6 +686,19 @@
});
};
+const updateOptimizeDataWithGrindingConfig = (grindConfig) => {
+ if (grindConfig) {
+ // 鏇存柊 optimizeData 涓殑纾ㄩ噺閰嶇疆
+ optimizeData.value.grindingConfig = {
+ leftEdge: parseFloat(grindConfig.leftEdge) || 0,
+ upEdge: parseFloat(grindConfig.upEdge) || 0,
+ rightEdge: parseFloat(grindConfig.rightEdge) || 0,
+ downEdge: parseFloat(grindConfig.downEdge) || 0,
+ autoFillEdge: grindConfig.autoFillEdge === "true",
+ minAutoLength: parseFloat(grindConfig.minAutoLenght) || 0
+ };
+ }
+};
const firstLoading = async() => {
request.post(`/glassOptimize/selectOptimizeParms/${username}`).then((res) => {
@@ -798,6 +795,7 @@
});*/
};
+const grindingConfig = ref(null);
const loadGrindingConfiguration = async () => {
return new Promise((resolve) => {
@@ -817,10 +815,11 @@
}
return formattedItem;
});
+ // 淇濆瓨纾ㄩ噺閰嶇疆
+ grindingConfig.value = formattedData[0];
resolve(formattedData[0]);
} else {
- // 鎻愪緵榛樿閰嶇疆
- resolve({
+ const defaultConfig = {
leftEdge: '0',
upEdge: '0',
rightEdge: '0',
@@ -828,12 +827,13 @@
quickEdge: '1',
autoFillEdge: 'false',
minAutoLenght: '0'
- });
+ };
+ grindingConfig.value = defaultConfig;
+ resolve(defaultConfig);
}
} else {
ElMessage.warning(res.msg);
- // 鎻愪緵榛樿閰嶇疆
- resolve({
+ const defaultConfig = {
leftEdge: '0',
upEdge: '0',
rightEdge: '0',
@@ -841,11 +841,12 @@
quickEdge: '1',
autoFillEdge: 'false',
minAutoLenght: '0'
- });
+ };
+ grindingConfig.value = defaultConfig;
+ resolve(defaultConfig);
}
}).catch(() => {
- // 鎻愪緵榛樿閰嶇疆
- resolve({
+ const defaultConfig = {
leftEdge: '0',
upEdge: '0',
rightEdge: '0',
@@ -853,7 +854,9 @@
quickEdge: '1',
autoFillEdge: 'false',
minAutoLenght: '0'
- });
+ };
+ grindingConfig.value = defaultConfig;
+ resolve(defaultConfig);
});
});
};
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
index 7926fdc..93c0818 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -750,6 +750,7 @@
<order-process
v-if="tabsValue==='3'"
:orderId="rowClickIndex===null?null:rowClickIndex.orderId"
+ :row="rowClickIndex===null?{}:rowClickIndex"
/>
</el-tab-pane>
</el-tabs>
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 b514fe3..bc937be 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
@@ -312,22 +312,26 @@
public Map<String, Object> projectInfoSv(String projectNo,String username) {
Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNo);
Map<String, Object> map = new HashMap<>();
- if(Integer.parseInt(stringObjectMap.get("optimize_state").toString())==1){
- map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
- map.put("data", glassOptimizeMapper.getOptimizeDetail(projectNo));
- map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
- map.put("grindingTrimming", null);
- } else if (Integer.parseInt(stringObjectMap.get("tempering_state").toString())==1) {
- map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
- map.put("data", glassOptimizeMapper.analogComputationOptimization(projectNo));
- map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
- map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
- } else{
- map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
- map.put("data", glassOptimizeMapper.firstOptimization(projectNo));
- map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
- map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
- }
+// if(Integer.parseInt(stringObjectMap.get("optimize_state").toString())==1){
+// map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
+// map.put("data", glassOptimizeMapper.getOptimizeDetail(projectNo));
+// map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+// map.put("grindingTrimming", null);
+// } else if (Integer.parseInt(stringObjectMap.get("tempering_state").toString())==1) {
+// map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
+// map.put("data", glassOptimizeMapper.analogComputationOptimization(projectNo));
+// map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+// map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
+// } else{
+// map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
+// map.put("data", glassOptimizeMapper.firstOptimization(projectNo));
+// map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+// map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
+// }
+ map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
+ map.put("data", glassOptimizeMapper.firstOptimization(projectNo));
+ map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+ map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
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 70f2b4a..87b1cd4 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -243,7 +243,7 @@
<select id="getOptimizeDetail">
SELECT
h.project_no,
- h.heat_layout_id as rackNo,
+ h.rack_no as rackNo,
h.o_width AS width,
h.o_height AS height,
(h.height-h.o_height)/2 as shortGrind1,
@@ -280,14 +280,14 @@
h.project_no =#{projectNo}
GROUP BY
h.project_no,
- h.heat_layout_id,
+ h.rack_no,
h.width,
h.height,
h.process_id,
h.layer,
c.order_number
ORDER BY
- h.heat_layout_id;
+ h.rack_no;
</select>
<!--宸ョ▼淇℃伅娴佺▼鍗�-->
@@ -1118,7 +1118,8 @@
x_axis,
y_axis,
patch_state,
- mark_icon
+ mark_icon,
+ rack_no
) VALUES (
#{projectId},
#{glass.processId},
@@ -1134,7 +1135,8 @@
#{glass.x},
#{glass.y},
#{glass.patchState},
- #{glass.markIcon}
+ #{glass.markIcon},
+ #{glass.rackNo}
);
</foreach>
</insert>
--
Gitblit v1.8.0