From 285af7c086a4764740bd676493ec8d6e74722fea Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 22 八月 2025 16:44:43 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
---
north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue | 2
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 2
north-glass-erp/northglass-erp/src/components/sd/order/UpdateAlienEditor.vue | 129 +++++++++++++++++---------------
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java | 13 +--
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml | 4
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue | 66 ++++++++++------
6 files changed, 116 insertions(+), 100 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue b/north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue
index 2122bbd..2a55eb2 100644
--- a/north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue
+++ b/north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue
@@ -157,7 +157,6 @@
customer.value = produceList.value[0].detail[0]
let height = 0
let index = 0
- console.log(res.data.data)
for(let i=0;i<produceList.value.length;i++){
//鎹骇鍝佸氨鎹㈤〉
if(i>0){
@@ -222,7 +221,6 @@
type:'sum',
sum:sum
})
- console.log(page)
})
} else {
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/UpdateAlienEditor.vue b/north-glass-erp/northglass-erp/src/components/sd/order/UpdateAlienEditor.vue
index 0db5eeb..da6470a 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/UpdateAlienEditor.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/UpdateAlienEditor.vue
@@ -71,13 +71,18 @@
let data1=ref(0);let data2=ref(0);let data3=ref(0);let data4=ref(0)
let data5=ref(0);let data6=ref(0);let data7=ref(0);let data8=ref(0)
+//涓婁笅妯珫杈撳叆鐨勫叓涓弬鏁�
let datas1=ref(0);let datas2=ref(0);let datas3=ref(0);let datas4=ref(0)
let datas5=ref(0);let datas6=ref(0);let datas7=ref(0);let datas8=ref(0)
+//鐢ㄤ簬璁$畻鐨勫叓涓弬鏁�
let a1=ref(0);let a2=ref(0);let b1=ref(0);let b2=ref(0)
let c1=ref(0);let c2=ref(0);let d1=ref(0);let d2=ref(0)
+
+//涓嬫媺妗嗕笅杈撳叆鐨勫洓涓弬鏁�
let aValue=ref("0");let bValue=ref("0");let cValue=ref("0");let dValue=ref("0")
+//涓嬫媺妗嗙殑鍥涗釜鍙傛暟
let select1=ref("2");let select2=ref("2");let select3=ref("2");let select4=ref("2");let select5=ref("1")
let big=0
let leafer;
@@ -90,6 +95,7 @@
const ongetproject = (row) => {
if(row.fileName==null||row.fileName==""){
+
orderDetailWidth.value=row.width
orderDetailHeight.value=row.height
const main =document.getElementById('mains')
@@ -147,6 +153,7 @@
}
+//缁樺埗鑷敱澶氳竟褰�
const getproject = () => {
validate1()
if(leafer!==undefined){
@@ -172,6 +179,7 @@
}
+//娣诲姞鍦�
const add = () => {
if (state.value){
const height = document.getElementById('height')
@@ -204,6 +212,7 @@
}
}
+//娣诲姞鐭╁舰
const addRect = () => {
if (state.value){
const height = document.getElementById('height')
@@ -239,7 +248,7 @@
}
}
-
+//娣诲姞鐭╁舰鐨勬寲缂�
const addDrilling = () => {
if (state.value){
const width = parseInt(document.getElementById('width').innerHTML)
@@ -315,19 +324,13 @@
load()
exportToDXF(1)
}else{
- ElMessage.warning("璇疯緭鍏ュぇ浜�0鐨勬湁鏁堝弬鏁�")
+ //ElMessage.warning("璇疯緭鍏ュぇ浜�0鐨勬湁鏁堝弬鏁�")
}
}
}
-function getDistance(p1, p2) {
- const dx = p2[0] - p1[0];
- const dy = p1[1] - p2[1];
- return Math.sqrt(dx * dx + dy * dy);
-}
-
-
+//鑾峰彇鍧愭爣鏈�杩戠殑鏂规硶
function getDistancess(list,xy, fx) {
if (list == null || xy == null || xy.length != 3) {
return null;
@@ -448,6 +451,7 @@
}
+//缁樺埗鐭╁舰鐨勫垏瑙掓寲瑙掑姬搴�
const getproject2 = () => {
states.value=true
if (states.value){
@@ -458,31 +462,6 @@
leafer=new Leafer({ view: 'canvas' })
substringData()
points.value=[]
-
-
- /*const radius = 50
- const cornerPoints = []
- const startX = 0 + radius // 宸︿笂瑙掑彸绉�
- const startY = 0
- const endX = 0
- const endY = 0 + radius // 宸︿笂瑙掍笅绉�
- const segments = 8 // 鍦嗗姬鍒嗘鏁帮紝瓒婂瓒婂钩婊�
- for (let i = 0; i <= segments; i++) {
- const angle = (Math.PI / 2) * (i / segments) // 90搴﹁鍒嗘
- const x = radius - radius * Math.cos(angle)
- const y = radius - radius * Math.sin(angle)
- cornerPoints.push(x, y)
- }
- points.value = [
- 0, 100,
- ...cornerPoints, // 宸︿笂瑙掑渾寮х偣
- radius, 0, // 鍥炲埌鍦嗗姬璧峰鐐�
- 100, 0, // 鍙充笂瑙�
- 100, 100 // 鍙充笅瑙�
- // 宸︿笅瑙�
-
- ]*/
-
let state=0
@@ -573,25 +552,9 @@
})
leafer.add(polygon)
- /*if((select1.value=="1"&&bValue.value!=="0")||(select2.value=="1"&&cValue.value!=="0")||(select3.value=="1"&&aValue.value!=="0")||(select4.value=="1"&&dValue.value!=="0")){
- const polygon = new Polygon({
- points: points.value,
- stroke: '#f00',
- zIndex:2,
- cornerRadius: state/big
- })
- leafer.add(polygon)
- }else{
- const polygon = new Polygon({
- points: points.value,
- stroke: '#f00',
- zIndex:2,
- })
- leafer.add(polygon)
- }*/
fileJson.value.polygon=[parseInt(a1.value),parseInt(a2.value),parseInt(b1.value),parseInt(b2.value),
- parseInt(c1.value),parseInt(c2.value),parseInt(d1.value),parseInt(d2.value)]
+ parseInt(c1.value),parseInt(c2.value),parseInt(d1.value),parseInt(d2.value),select1.value,select2.value,select3.value,select4.value]
load()
@@ -600,7 +563,7 @@
}
-
+//缁樺埗鍚庣殑鏁版嵁澶勭悊
const exportToDXF = async (value) => {
const dxf = new DXFWriter();
@@ -685,7 +648,7 @@
}
-
+//瑙f瀽dxf鏂囦欢
const fileToBase64 = (file) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
@@ -695,10 +658,13 @@
});
};
+//鍙嶅悜y鍧愭爣璁$畻
function toBottomOrigin(y, canvasHeight) {
return canvasHeight - y; // 灏嗗乏涓婅Y鍧愭爣杞崲涓哄乏涓嬭鍧愭爣绯�
}
+
+//瀵煎叆鏂囦欢鏂规硶
const handleFile = async (event) => {
state.value=false
const main = document.getElementById('mains')
@@ -732,6 +698,8 @@
}
}
+
+//瑙f瀽dxf鏂囦欢骞舵樉绀烘柟娉�
const handleFileUpload = () => {
const main =document.getElementById('mains')
const width =document.getElementById('width')
@@ -956,6 +924,8 @@
}
};
+
+//鐣岄潰杈撳叆妗嗕笅鎷夋璧嬪��
const selectData = (item) => {
if(item.quadrilateral!=null){
state.value=true
@@ -977,10 +947,36 @@
c2.value=item.polygon[5]
d1.value=item.polygon[6]
d2.value=item.polygon[7]
+ if(item.polygon[0]==item.polygon[1]){
+ aValue.value=item.polygon[0]+""
+ }else{
+ aValue.value=item.polygon[0]+"/"+item.polygon[1]
+ }
+ if(item.polygon[2]==item.polygon[3]){
+ bValue.value=item.polygon[2]+""
+ }else{
+ bValue.value=item.polygon[2]+"/"+item.polygon[3]
+ }
+ if(item.polygon[4]==item.polygon[5]){
+ cValue.value=item.polygon[4]+""
+ }else{
+ cValue.value=item.polygon[4]+"/"+item.polygon[5]
+ }
+ if(item.polygon[6]==item.polygon[7]){
+ dValue.value=item.polygon[6]+""
+ }else{
+ dValue.value=item.polygon[6]+"/"+item.polygon[7]
+ }
+ select1.value=item.polygon[8]
+ select2.value=item.polygon[9]
+ select3.value=item.polygon[10]
+ select4.value=item.polygon[11]
+
}
}
+//娓呯┖杈撳叆妗�
const validate = async () => {
data1.value=0
data2.value=0
@@ -994,6 +990,7 @@
return true
}
+//娓呯┖杈撳叆妗�
const validate1 = async () => {
a1.value=0
a2.value=0
@@ -1008,6 +1005,7 @@
cValue.value="0"
dValue.value="0"
}
+//娓呯┖杈撳叆妗�
const validate2 = async () => {
data1.value=0
data2.value=0
@@ -1018,11 +1016,14 @@
data7.value=0
data8.value=0
}
+//杩斿洖鐖剁骇鐣岄潰鏂规硶
defineExpose({
validate,
ongetproject
})
+
+//淇濆瓨鏂规硶
const save = () => {
if(fileName.value!=null&&fileDate.value!=null){
fileJson.value.quadrilateral=[parseInt(data5.value),parseInt(data6.value),parseInt(data1.value),parseInt(data2.value),
@@ -1033,10 +1034,11 @@
emits('getUploadPicture', fileName.value,fileDate.value,fileJson.value)
}else{
ElMessage.warning("鏈弬涓庝慨鏀�")
+
}
}
-
+//閲嶇疆鏂规硶
const reset = () => {
validate1()
@@ -1120,6 +1122,7 @@
circle.value.r = val;
}
+//涓嬫媺妗嗚Е鍙�
const handleChange=(value)=> {
getproject2()
/*if(value=="1"){
@@ -1131,6 +1134,8 @@
}*/
}
+
+//閫氳繃/鎴彇杈撳叆妗嗙殑鍊�
const substringData = () =>{
const indexA = aValue.value.indexOf("/");
if(indexA==-1){
@@ -1166,6 +1171,7 @@
}
}
+
const isQuadrilateral = (maxY,minY,maxX,minX,point) => {
state.value=true
datas1.value=0
@@ -1196,6 +1202,7 @@
]
})
+//琛ㄦ牸鍒犻櫎
const getTableRow = (row,type) =>{
switch (type) {
case 'delete':{
@@ -1224,6 +1231,8 @@
}
}
+
+//閲嶆柊鍔犺浇淇濆瓨鐨勫瓧鍏稿璞℃暟鎹�
const load= () =>{
if (pointsRect.value.length > 0) {
@@ -1286,12 +1295,12 @@
<el-input class="contactNumber" @blur="getproject" type="text" v-model="data7" />
<el-input class="contactNumber" @blur="getproject" type="text" v-model="data8" /><br>
</div>
- <div id="width" style="height: 20px;position: absolute;top: 342px;left: 725px;">{{$t('order.upper')}}</div>
- <div id="width" style="height: 20px;position: absolute;top: 364px;left: 725px;">{{$t('order.down')}}</div>
- <div id="width" style="height: 20px;position: absolute;top: 322px;left: 767px;">{{$t('order.horizontal')}}</div>
- <div id="width" style="height: 20px;position: absolute;top: 322px;left: 825px;">{{$t('order.vertical')}}</div>
- <div id="width" style="height: 20px;position: absolute;top: 322px;left: 900px;">{{$t('order.horizontal')}}</div>
- <div id="width" style="height: 20px;position: absolute;top: 322px;left: 965px;">{{$t('order.vertical')}}</div>
+ <div style="height: 20px;position: absolute;top: 342px;left: 725px;">{{$t('order.upper')}}</div>
+ <div style="height: 20px;position: absolute;top: 364px;left: 725px;">{{$t('order.down')}}</div>
+ <div style="height: 20px;position: absolute;top: 322px;left: 767px;">{{$t('order.horizontal')}}</div>
+ <div style="height: 20px;position: absolute;top: 322px;left: 825px;">{{$t('order.vertical')}}</div>
+ <div style="height: 20px;position: absolute;top: 322px;left: 900px;">{{$t('order.horizontal')}}</div>
+ <div style="height: 20px;position: absolute;top: 322px;left: 965px;">{{$t('order.vertical')}}</div>
<div style="float: left;margin-top: 30px;margin-left: 690px;">
<label for="file-upload" class="custom-file-upload">
{{$t('order.selectFile')}}
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 5d2970e..9ce1126 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
@@ -3,7 +3,23 @@
<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 style="display: flex; align-items: center; gap: 20px; margin-bottom: 20px;">
+ <span>宸ョ▼缂栧彿锛�</span>
+ <el-input readonly placeholder="" style="width: 150px" v-model="processId"></el-input>
+ <el-checkbox v-model="config.plain">
+ 鍒囨潗鐜�
+ </el-checkbox>
+ <div style="margin-right: 30px;"></div>
+ <span>甯冨眬閫夋嫨锛�</span>
+ <el-select v-model="config.type" style="width: 120px;">
+ <el-option v-for="type in linkTypes" :key="type" :value="type" />
+ </el-select>
+ <el-button id="button" type="primary" @click="handlePrint" style="background: #4CAF50; color: white; border: none; cursor: pointer;">
+ 棰勮
+ </el-button>
+ </div>
+
<div ref="printContainer" style="position: relative;">
<RectRenderer
ref="rectRenderer"
@@ -21,29 +37,11 @@
/>
</div>
</div>
- <div style="width: 400px;margin: auto;">
- <h1 style="margin: auto;text-align: center;">涓婃捣鍖楃幓鑷姩鍖�</h1>
- <h2 style="margin: auto;text-align: center;">浼樺寲鎶ュ憡</h2>
- 浼樺寲鎶ュ伐
- <el-table :data="layoutDetails">
- <el-table-column prop="avgCutRate" label="鍒囪鐜�"></el-table-column>
- <el-table-column prop="validCutRate" label="鏈夋晥鍒囧壊"></el-table-column>
- <el-table-column prop="lastCutRate" label="灏剧墖"></el-table-column>
- <el-table-column prop="" label="鍘熺墖绫诲瀷"></el-table-column>
- <el-table-column prop="totalQuantity" label="鐗堥潰鏁伴噺"></el-table-column>
- </el-table>
- <br>
- 鐗╂枡淇℃伅
- <el-table :data="materialDetails">
- <el-table-column prop="width" label="鍘熺墖瀹�"></el-table-column>
- <el-table-column prop="height" label="鍘熺墖楂�"></el-table-column>
- <el-table-column prop="processingQuantity" label="鏁伴噺"></el-table-column>
- </el-table>
- </div>
+
</template>
<script setup>
-import { ref, onMounted, watch } from 'vue';
+import { ref, onMounted, watch, reactive, inject } from 'vue';
import RectRenderer from './page/RectRenderer.vue';
import request from "@/utils/request";
@@ -54,11 +52,14 @@
const printLayout = ref('2rows-2cols');
const rectRenderer = ref(null);
const savedProjectNo = localStorage.getItem('projectNo');
-let processId = null;
+const processId = ref('');
const layoutData = ref();
const dataLoaded = ref(false);
const materialDetails = ref();
+const injectedProjectNo = inject('projectNo', null);
const state = ref();
+const linkTypes = ['涓�鍒�', '涓ゅ垪', '涓夊垪']
+
// 瀹氫箟涓嶅悓甯冨眬瀵瑰簲鐨勫昂瀵�
const layoutDimensions = {
'4rows-2cols': { width: 1000, height: 1000 },
@@ -74,7 +75,7 @@
const currentPrintHeight = ref(layoutDimensions[printLayout.value].height);
const selectLayout = () => {
- request.post(`/glassOptimize/selectOptimizeResult/${processId}`)
+ request.post(`/glassOptimize/selectOptimizeResult/${processId.value}`)
.then((res) => {
if (res.code == 200) {
try {
@@ -93,10 +94,23 @@
});
};
+const config = reactive({
+ type: '涓ゅ垪',
+ plain: true,
+})
+
onMounted(() => {
- if (props.project) {
- processId=props.project.projectNumber;
- state.value=props.state;
+ // 浼樺厛浣跨敤娉ㄥ叆鐨� projectNo锛屽叾娆′娇鐢� props锛屾渶鍚庝娇鐢� localStorage
+ if (injectedProjectNo) {
+ processId.value = injectedProjectNo.value || injectedProjectNo;
+ } else if (props.project) {
+ processId.value = props.project.projectNumber || '';
+ state.value = props.state;
+ } else if (savedProjectNo) {
+ processId.value = savedProjectNo;
+ }
+
+ if (processId.value) {
selectLayout();
}
});
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
index 4158621..cbea3b8 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -1938,7 +1938,7 @@
:close-on-click-modal="false"
:close-on-press-escape="false"
destroy-on-close
- style="width: 614px;height:470px ">
+ style="width: 1114px;height:600px ">
<update-alien-editor
ref="refAlienEditor"
:rowIndex="rowIndex"
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
index e06de5e..058789a 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -1183,12 +1183,14 @@
}
Map<String, Object> itemmap = new HashMap<>();
- itemmap.put("detail",finishedGoodsInventoryMapper.getPrintTitleByBox(
+ List<Map<String, String>> detail = finishedGoodsInventoryMapper.getPrintTitleByBox(
finishedGoodsInventory.getOrder().getCustomerId(),
finishedGoodsInventory.getOrder().getProject(),
boxNo,
orderId
- ) );
+ );
+
+ itemmap.put("detail",detail);
//鑾峰彇搴撳瓨閲岄潰姝よ鍗曟绠卞彿鐨勬墍鏈変骇鍝佷俊鎭�
List<Map<String, Object>> detailList = finishedGoodsInventoryMapper
.getorderProductByBoxNo(orderId,boxNo);
@@ -1198,13 +1200,6 @@
for(Map<String, Object> details:detailList){
Map<String, Object> detailsmap = new HashMap<>();
detailsmap.put("product_name",details.get("product_name").toString());
- /*finishedOperateLogMapper
- .getDetailLists(
- finishedOperateLog.getOrderId(),
- finishedOperateLog.getRemarks(),
- Integer.valueOf(details.get("product_id").toString()),
- details.get("thickness").toString()
- );*/
//鑾峰彇鏄庣粏鏁版嵁
List<Map<String, Object>> orderDetailList = finishedGoodsInventoryMapper
.getPrintDetail(
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
index a95d7d4..54ff11c 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -1074,11 +1074,11 @@
<select id="getPrintTitleByBox">
select kkk.*,
rw.teams_groups_name as teams_groups_name2
- from(select o.order_id,
+ from(select #{orderId} as order_id,
o.customer_name,
o.customer_id,
o.project,
- (select p.batch from sd.`order` p where p.order_id =#{orderId}) as batch,
+ (select batch from sd.`order` pp1 where pp1.order_id =#{orderId} ) as batch,
fol.box_no as 'remarks',
SUM(fol.quantity_available) as quantity,
ROUND( sum(od.width * od.height * fol.quantity_available) / 1000000, 2 ) as area,
--
Gitblit v1.8.0