From 8fb3ee9eae369f7a5c39da8ed69d0e8cea3ae2f8 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期三, 24 十二月 2025 16:24:59 +0800
Subject: [PATCH] 生产加工单上显示图纸和图纸尺寸调整功能,流程卡上图纸尺寸调整功能
---
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue | 9 +
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue | 24 ++-
north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js | 2
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue | 1
north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue | 26 ++-
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue | 32 ++++
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java | 30 +++-
north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue | 219 +++++++++++++++++++++++++++++++
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java | 2
north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue | 11 +
north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java | 26 +++
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java | 7
12 files changed, 345 insertions(+), 44 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue b/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue
new file mode 100644
index 0000000..9e4465e
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue
@@ -0,0 +1,219 @@
+<!-- ImageSizeEditor.vue -->
+<template>
+ <div class="img-grid">
+ <div
+ v-for="(img, index) in images"
+ :key="getKey(img, index)"
+ class="img-box"
+ :style="getImgBoxStyle(getKey(img, index))"
+ @click="openSizeDialog(img, index)"
+ >
+ <el-image
+ :src="img.imageBase64"
+ :fit="fit"
+ style="width: 100%; height: 100%; display: block;"
+ />
+ </div>
+ </div>
+
+ <el-dialog
+ v-model="dialogVisible"
+ :title="dialogTitle"
+ width="460px"
+ append-to-body
+ >
+ <div class="form-row">
+ <el-input-number
+ v-model="form.w"
+ :min="minWidth"
+ :max="maxWidth"
+ controls-position="right"
+ />
+ <span class="mul">脳</span>
+ <el-input-number
+ v-model="form.h"
+ :min="minHeight"
+ :max="maxHeight"
+ controls-position="right"
+ />
+ </div>
+
+ <div class="ops-row">
+<!-- <el-switch v-model="applyToAll" active-text="搴旂敤鍒板叏閮ㄥ浘鐗�" />-->
+ <div v-if="showHint" class="hint">
+ 褰撳墠锛歿{ form.w }} 脳 {{ form.h }} px
+ </div>
+ </div>
+
+ <template #footer>
+ <el-button @click="dialogVisible = false">鍙栨秷</el-button>
+
+ <!-- 鉁� 涓�閿叏鍥剧粺涓�灏哄锛氫笉鍏冲脊绐楋紝绔嬪嵆搴旂敤 -->
+ <el-button @click="applyAllNow" :disabled="!canApply">
+ 灏哄鐩稿悓
+ </el-button>
+
+ <!-- 鉁� 纭畾锛氬鏋滃紑鍏虫墦寮�锛屽垯鍚屾牱浼氬簲鐢ㄥ叏閮紝鍚﹀垯鍙簲鐢ㄥ綋鍓� -->
+ <el-button type="primary" @click="confirmSize" :disabled="!canApply">
+ 纭畾
+ </el-button>
+ </template>
+ </el-dialog>
+</template>
+
+<script setup>
+import { computed, reactive, ref, unref } from 'vue'
+
+const props = defineProps({
+ images: { type: Array, default: () => [] },
+ keyField: { type: String, default: 'orderNumber' }, // 浣犳暟鎹� id=null锛屾帹鑽� orderNumber
+ srcField: { type: String, default: 'imageBase64' },
+
+ sizeMap: { type: Object, default: () => ({}) },
+
+ defaultWidth: { type: Number, default: 600 },
+ defaultHeight: { type: Number, default: 400 },
+
+ minWidth: { type: Number, default: 50 },
+ maxWidth: { type: Number, default: 3000 },
+ minHeight: { type: Number, default: 50 },
+ maxHeight: { type: Number, default: 3000 },
+
+ fit: { type: String, default: 'contain' },
+
+ dialogTitle: { type: String, default: '璁剧疆鍥剧墖灏哄' },
+ showHint: { type: Boolean, default: true }
+})
+
+const emit = defineEmits(['update:sizeMap', 'change', 'changeAll'])
+
+const sizeStore = computed({
+ get: () => props.sizeMap || {},
+ set: (val) => emit('update:sizeMap', val)
+})
+
+const dialogVisible = ref(false)
+const activeKey = ref(null)
+
+const form = reactive({
+ w: props.defaultWidth,
+ h: props.defaultHeight
+})
+
+const applyToAll = ref(false)
+
+const canApply = computed(() => {
+ const w = Number(form.w)
+ const h = Number(form.h)
+ return w > 0 && h > 0
+})
+
+const getKey = (img, index) => {
+ const k = img?.[props.keyField]
+ return (k !== undefined && k !== null && k !== '') ? String(k) : String(index)
+}
+
+const getSrc = (img) => img?.[props.srcField]
+
+const getSize = (key) => {
+ const s = unref(sizeStore.value?.[key])
+ if (s && s.w && s.h) return { w: Number(s.w), h: Number(s.h) }
+ return { w: props.defaultWidth, h: props.defaultHeight }
+}
+
+const getImgBoxStyle = (key) => {
+ const { w, h } = getSize(key)
+ return {
+ width: `${w}px`,
+ height: `${h}px`,
+ margin: props.margin,
+ }
+}
+
+const openSizeDialog = (img, index) => {
+ const key = getKey(img, index)
+ activeKey.value = key
+
+ const cur = getSize(key)
+ form.w = cur.w
+ form.h = cur.h
+
+ applyToAll.value = false
+ dialogVisible.value = true
+}
+
+// 鉁� 搴旂敤鍒板綋鍓嶄竴寮�
+const applyOne = (key, w, h) => {
+ sizeStore.value = { ...sizeStore.value, [key]: { w, h } }
+ emit('change', key, { w, h })
+}
+
+// 鉁� 涓�閿簲鐢ㄥ埌鍏ㄩ儴
+const applyAll = (w, h) => {
+ const next = { ...sizeStore.value }
+ props.images.forEach((img, idx) => {
+ const k = getKey(img, idx)
+ next[k] = { w, h }
+ })
+ sizeStore.value = next
+ emit('changeAll', { w, h })
+}
+
+// 鉁� footer 鎸夐挳锛氱珛鍗崇粺涓�鍏ㄥ浘灏哄锛堜笉鍏冲脊绐楋級
+const applyAllNow = () => {
+ if (!canApply.value) return
+ const w = Number(form.w)
+ const h = Number(form.h)
+ applyAll(w, h)
+}
+
+// 鉁� 纭畾锛氬鏋滃紑鍏虫墦寮� => 鍏ㄩ儴锛涘惁鍒欏彧鏀瑰綋鍓�
+const confirmSize = () => {
+ if (!canApply.value) return
+ const w = Number(form.w)
+ const h = Number(form.h)
+
+ if (applyToAll.value) {
+ applyAll(w, h)
+ dialogVisible.value = false
+ return
+ }
+
+ const key = activeKey.value
+ if (key === null || key === undefined) return
+ applyOne(key, w, h)
+ dialogVisible.value = false
+}
+</script>
+
+<style scoped>
+.img-grid {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 12px;
+}
+
+.form-row {
+ display: flex;
+ gap: 12px;
+ align-items: center;
+}
+
+.mul {
+ line-height: 32px;
+}
+
+.ops-row{
+ margin-top: 12px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 12px;
+ flex-wrap: wrap;
+}
+
+.hint {
+ font-size: 12px;
+ opacity: 0.75;
+}
+</style>
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
index 5ffc88d..876be06 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -11,6 +11,7 @@
import companyInfo from "@/stores/sd/companyInfo";
import userInfo from "@/stores/userInfo"
import {add} from '@/utils/decimal'
+import ImageSizeEditor from '@/components/ImageSizeEditor.vue'
//璇█鑾峰彇
const company = companyInfo()
const {t} = useI18n()
@@ -19,6 +20,7 @@
let list = ref()
const details = ref([])
const user=userInfo()
+const imgSizeMap = ref({})
let totalQuantity = 0; // 鐢ㄤ簬璁板綍鎬绘暟閲�
let totalArea = 0; // 鐢ㄤ簬璁板綍鎬婚潰绉�
@@ -319,7 +321,7 @@
<!-- <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>-->
<div id="printFlowCard">
<div id="contentDiv" v-for="(item,id) in produceList" :key="id">
- <table id="contentTable" style="border-bottom: none">
+ <table id="contentTable" style="border-bottom: none;margin-bottom: 20px">
<thead>
<tr v-for="(itemFlow,index) in item.detail" :key="index">
<td colspan="31">
@@ -506,12 +508,20 @@
</tr>
</tfoot>
</table>
- <el-image
- v-for="(img, index) in getPicturesByDetailList(item.detailList)"
- :key="index"
- :src="img.imageBase64"
- fit="contain"
- style="max-width: 100%;"
+<!-- <el-image-->
+<!-- v-for="(img, index) in getPicturesByDetailList(item.detailList)"-->
+<!-- :key="index"-->
+<!-- :src="img.imageBase64"-->
+<!-- fit="contain"-->
+<!-- style="max-width: 100%;margin: 50px"-->
+<!-- />-->
+ <ImageSizeEditor
+ :images="getPicturesByDetailList(item.detailList)"
+ v-model:sizeMap="imgSizeMap"
+ key-field="orderNumber"
+ src-field="imageBase64"
+ :default-width="300"
+ :default-height="300"
/>
</div>
</div>
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue b/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
index aea384a..b07f4db 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
@@ -8,14 +8,17 @@
import {ElMessage} from "element-plus";
import useUserInfoStore from "@/stores/userInfo";
import {Bottom, Burger, Food} from "@element-plus/icons-vue";
+import ImageSizeEditor from '@/components/ImageSizeEditor.vue'
const company = companyInfo()
const userStore = useUserInfoStore()
const username = userStore.user.userName
let dialogVisible = ref(false)
+const imgSizeMap = ref({})
let props = defineProps({
orderId:null,
+ dataList:null,
})
let productId=ref({
@@ -36,6 +39,12 @@
perimeter: 0,
weight:0
})
+const picture = ref([])
+const dataFile = ref({
+ printList: []
+})
+dataFile.value.printList = JSON.parse(props.dataList)
+
const getData = () => {
request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => {
data.value= res.data
@@ -53,6 +62,11 @@
grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3))
grossNum.value.weight = parseFloat(grossNum.value.weight.toFixed(2))
+ })
+
+ //璁㈠崟搴忓彿dwg鍥剧墖鏌ヨ
+ request.post("/orderFile/getOrderFilePicture", dataFile.value.printList).then((res) => {
+ picture.value = res.data
})
}
@@ -139,6 +153,13 @@
defineExpose({
printSheet
});
+
+// 鍘熷鍥剧墖鏁扮粍 picture
+const pictureMap = computed(() => {
+ return picture.value
+})
+
+
</script>
@@ -218,7 +239,7 @@
<td style="font-size: 20px;font-weight: bold;">{{items.quantity}}</td>
<td style="font-size: 20px;font-weight: bold;">{{items.perimeter}}</td>
<td style="font-size: 20px;font-weight: bold;">{{items.grossArea.toFixed(2)}}</td>
- <td colspan="2">{{items.processingNote}}
+ <td colspan="2" style="text-align: left;border:none;font-weight: bold;font-size: 17px;">{{items.processingNote}}
{{items.remarks==null?'':'/'}}
{{items.remarks}}</td>
</tr>
@@ -291,7 +312,14 @@
</el-option>
</el-select>
</el-dialog>
-
+ <ImageSizeEditor
+ :images="pictureMap"
+ v-model:sizeMap="imgSizeMap"
+ key-field="orderNumber"
+ src-field="imageBase64"
+ :default-width="300"
+ :default-height="300"
+ />
</div>
diff --git a/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js b/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
index 09ee61f..8cc7001 100644
--- a/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
+++ b/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
@@ -15,6 +15,7 @@
qualityInspectionDate:ref(["",""]),
brokenDate:ref(["",""]),
yieldDate:ref(["",""]),
+ replenishDate:ref(["",""]),
searchOrderListFilter:ref([]),//璁㈠崟棣栭〉绛涢�塢
searchOrderFilter:{
list:ref([]),
@@ -90,6 +91,7 @@
this.qualityInspectionDate=["",""]
this.brokenDate=["",""]
this.yieldDate=["",""]
+ this.replenishDate=["",""]
this.searchOrderFilter={
list:[],
data:{}
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
index 47c4f2c..cafc314 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -426,7 +426,6 @@
printRow.value.flashback = flashback.value
printRow.value.landingSequence=landingSequence.value
printRow.value.compound = compound.value
- console.log(printRow.value)
// router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
if(company.companyName=='甯稿窞甯傚悏鍒╃幓鐠冩湁闄愬叕鍙�'){
dialogTableVisibleStraight.value = true
diff --git a/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
index c3d5e09..de5b58c 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
@@ -24,7 +24,9 @@
import PrintCustomLabelProject from "@/components/pp/PrintCustomLabelProject.vue";
import PrintProcessConsolidated from '@/components/pp/PrintConsolidatedReplenish.vue'
import {createTemplate} from "@/hook/createTemplateTag";
+import useOrderInfoStore from "@/stores/sd/order/orderInfo";
const company = companyInfo()
+const orderInfo = useOrderInfoStore()
//璇█鑾峰彇
const {t} = useI18n()
let router = useRouter()
@@ -211,11 +213,12 @@
let startTime = form.date1[0]
let endTime = form.date1[1]
// 绗竴娆″姞杞芥煡璇�
-request.post(`/Replenish/selectPrint/${startTime}/${endTime}`, filterData.value).then((res) => {
+request.post(`/Replenish/selectPrint/${orderInfo.replenishDate}`, filterData.value).then((res) => {
if (res.code == 200) {
produceList = produceList.value.concat(deepClone(res.data.data))
titleSelectJson.value.dataType = res.data.type
+ orderInfo.replenishDate = res.data.selectDate
xGrid.value.reloadData(produceList)
gridOptions.loading = false
} else {
@@ -230,11 +233,12 @@
let endTime = form.date1[1]
gridOptions.loading=true
// 绗竴娆″姞杞芥煡璇�
- request.post(`/Replenish/selectPrint/${startTime}/${endTime}`, filterData.value).then((res) => {
+ request.post(`/Replenish/selectPrint/${orderInfo.replenishDate}`, filterData.value).then((res) => {
if (res.code == 200) {
xGrid.value.loadData(res.data.data)
+ orderInfo.replenishDate = res.data.selectDate
titleSelectJson.value.dataType = res.data.type
gridOptions.loading = false
} else {
@@ -773,7 +777,8 @@
<div style="width: 100%;height: 100%">
<div class="head">
<el-date-picker
- v-model="form.date1"
+ v-model="orderInfo.replenishDate"
+ :default-time="defaultTime"
:end-placeholder="$t('basicData.endDate')"
:start-placeholder="$t('basicData.startDate')"
format="YYYY/MM/DD"
diff --git a/north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue b/north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue
index f6aee63..ab6a625 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/replenish/SelectReplenish.vue
@@ -3,17 +3,18 @@
import {reactive, ref} from "vue";
import {useRouter} from 'vue-router'
import request from "@/utils/request";
-import {ElMessage} from "element-plus";
+import {ElDatePicker, ElMessage} from "element-plus";
import deepClone from "@/utils/deepClone";
import {Search} from "@element-plus/icons-vue";
import useUserInfoStore from "@/stores/userInfo";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
+import useOrderInfoStore from "@/stores/sd/order/orderInfo";
//璇█鑾峰彇
const { t } = useI18n()
-
+const orderInfo = useOrderInfoStore()
const userStore = useUserInfoStore()
const username = userStore.user.userName
const userid = userStore.user.userId
@@ -52,13 +53,13 @@
})
//绗竴娆¤皟鐢�
-request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
+request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${orderInfo.replenishDate}`,filterData.value).then((res) => {
if(res.code==200){
total.dataTotal = res.data.total.total*1
total.pageTotal= res.data.total.pageTotal
- selectDate.value = res.data.selectDate
+ orderInfo.replenishDate = res.data.selectDate
pageNum.value=1
produceList = deepClone(res.data.data)
@@ -88,13 +89,13 @@
}else{
filterData.value[column.property] = value
}
- request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
+ request.post(`/Replenish/SelectReplenish/1/${total.pageSize}/${orderInfo.replenishDate}`,filterData.value).then((res) => {
if(res.code==200){
total.dataTotal = res.data.total.total*1
total.pageTotal= res.data.total.pageTotal
- selectDate.value = res.data.selectDate
+ orderInfo.replenishDate = res.data.selectDate
pageNum.value=1
produceList = deepClone(res.data.data)
@@ -323,13 +324,13 @@
const selectOrderList = ()=>{
gridOptions.loading = true
- request.post(`/Replenish/SelectReplenish/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
+ request.post(`/Replenish/SelectReplenish/${pageNum.value}/${total.pageSize}/${orderInfo.replenishDate}`,filterData.value).then((res) => {
if(res.code==200){
if (res.data.total!=null){
total.dataTotal = res.data.total.total*1
total.pageTotal= res.data.total.pageTotal
}
- selectDate.value = res.data.selectDate
+ orderInfo.replenishDate = res.data.selectDate
produceList = deepClone(res.data.data)
xGrid.value.loadData(produceList)
@@ -419,11 +420,12 @@
<div style="width: 100%;height: 100%">
<div class="head">
<el-date-picker
- v-model="selectDate"
- type="daterange"
- :start-placeholder="$t('basicData.startDate')"
+ v-model="orderInfo.replenishDate"
+ :default-time="defaultTime"
:end-placeholder="$t('basicData.endDate')"
- format="YYYY-MM-DD"
+ :start-placeholder="$t('basicData.startDate')"
+ format="YYYY/MM/DD"
+ type="daterange"
value-format="YYYY-MM-DD"
/>
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 b11c52f..5d205b5 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
@@ -46,7 +46,9 @@
dataTotal : 0,
pageSize : 50
})
-
+let printRow = ref({
+ list: null,
+})
const xGrid = ref()
const gridOptions = reactive({
@@ -255,6 +257,9 @@
return
}
ElMessage.warning(t('order.printingNumber')+rowClickIndex.value.printingNumber)
+ let selectRecords = ref(null)
+ selectRecords=rowClickIndex.value
+ printRow.value.list = JSON.stringify([selectRecords])
dialogTableVisible.value = true
sheetIndex.value=4
if(rowClickIndex.value.processReview===2 && rowClickIndex.value.orderReview===0){
@@ -792,7 +797,7 @@
<print-sheet1 id="child" v-if="sheetIndex===1" :orderId="rowClickIndex.orderId" />
<print-sheet2 id="child" v-else-if="sheetIndex===2" :orderId="rowClickIndex.orderId" />
<print-sheet3 id="child" v-else-if="sheetIndex===3" :orderId="rowClickIndex.orderId" />
- <print-sheet4 id="child" v-else-if="sheetIndex===4" :orderId="rowClickIndex.orderId" />
+ <print-sheet4 id="child" v-else-if="sheetIndex===4" :orderId="rowClickIndex.orderId" :dataList="printRow.list"/>
<print-sheet5 id="child" v-else-if="sheetIndex===5" :orderId="rowClickIndex.orderId" />
</el-dialog>
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
index c559028..04dfd7c 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
@@ -68,12 +68,11 @@
@ApiOperation("琛ョ墖娴佺▼鍗℃槑缁嗘煡璇㈡帴鍙�")
@SaCheckPermission("printReplenishFlowCard.search")
- @PostMapping("/selectPrint/{selectTime1}/{selectTime2}")
+ @PostMapping("/selectPrint/{selectDate}")
public Result selectPrint(
- @PathVariable Date selectTime1,
- @PathVariable Date selectTime2,
+ @PathVariable List<String> selectDate,
@RequestBody FlowCard flowCard) {
- return Result.success(replenishService.selectPrintSv(selectTime1,selectTime2, flowCard));
+ return Result.success(replenishService.selectPrintSv(selectDate, flowCard));
}
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 d4fea5f..bcdbe7f 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
@@ -120,7 +120,7 @@
Integer getPrintLabelCount(String processId, String technologyNumber);
- List<Map<String, String>> selectReplenishPrintMp(Date selectTime1, Date selectTime2, FlowCard flowCard);
+ List<Map<String, String>> selectReplenishPrintMp(String selectTime1, String selectTime2, FlowCard flowCard);
List<Map<String, Object>> getRepairPrintCustomData(String processId, String technologyNumber, String reportingWorkId, Integer orderNumber);
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
index 602db86..8f78102 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
@@ -97,9 +97,9 @@
Integer offset = (pageNum - 1) * pageSize;
- // 榛樿鏃堕棿鑼冨洿锛氳繃鍘�15澶�
+ // 榛樿鏃堕棿鑼冨洿锛氳繃鍘�7澶�
String endDate = LocalDate.now().toString();
- String startDate = LocalDate.now().minusDays(15).toString();
+ String startDate = LocalDate.now().minusDays(7).toString();
// 鐢ㄦ埛鑷畾涔夋椂闂存
if (selectDate != null && selectDate.size() == 2) {
@@ -270,9 +270,27 @@
return oddNumbers;
}
- public Object selectPrintSv(java.sql.Date selectTime1, java.sql.Date selectTime2, FlowCard flowCard) {
+ public Object selectPrintSv(List<String> selectDate, FlowCard flowCard) {
Map<String, Object> map = new HashMap<>();
- map.put("data", flowCardMapper.selectReplenishPrintMp(selectTime1,selectTime2,flowCard));
+ // 榛樿鏃堕棿鑼冨洿锛氳繃鍘�7澶�
+ String endDate = LocalDate.now().toString();
+ String startDate = LocalDate.now().minusDays(7).toString();
+
+ // 鐢ㄦ埛鑷畾涔夋椂闂存
+ if (selectDate != null && selectDate.size() == 2) {
+ if (!selectDate.get(0).isEmpty()) {
+ startDate = selectDate.get(0);
+ }
+ if (!selectDate.get(1).isEmpty()) {
+ endDate = selectDate.get(1);
+ }
+ }
+ // 杩斿洖鏃堕棿娈�
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ map.put("selectDate", list);
+ map.put("data", flowCardMapper.selectReplenishPrintMp(startDate,endDate,flowCard));
map.put("type", flowCardMapper.selectType());
return map;
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
index 32b2d37..67aa1d4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
@@ -33,20 +33,34 @@
result = orderDetails.stream()
.collect(Collectors.collectingAndThen(
Collectors.toMap(
- map -> map.get("order_id"),
+ map -> {
+ Object v = map.get("order_id");
+ if (v == null) {
+ v = map.get("orderId");
+ }
+ return String.valueOf(v);
+ },
map -> map,
- (existing, replacement) -> existing // 淇濈暀绗竴涓嚭鐜扮殑
+ (existing, replacement) -> existing // 淇濈暀绗竴涓�
),
- map -> new ArrayList<>(map.values())
+ m -> new ArrayList<>(m.values())
));
//寰幆鑾峰彇鍥剧墖
List<OrderFile> orderFiles = new ArrayList<>();
- for (Map<String,Object> obj : result) {
- List<OrderFile> orderFile = orderFileMapper.selectList(new QueryWrapper<OrderFile>()
- .select("order_id, order_number, image_base64")
- .eq("order_id", obj.get("order_id"))
+ for (Map<String, Object> obj : result) {
+
+ Object orderId = obj.get("order_id");
+ if (orderId == null) {
+ orderId = obj.get("orderId");
+ }
+
+ List<OrderFile> orderFile = orderFileMapper.selectList(
+ new QueryWrapper<OrderFile>()
+ .select("order_id, order_number, image_base64")
+ .eq("order_id", orderId)
);
- if (orderFile != null){
+
+ if (orderFile != null && !orderFile.isEmpty()) {
orderFiles.addAll(orderFile);
}
}
--
Gitblit v1.8.0