From 23deff80efa6651995f7c1013a968275045f0e0f Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 08 八月 2024 08:47:58 +0800
Subject: [PATCH] 添加查询流程卡打印数据
---
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java | 9
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java | 22 +
hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java | 9
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java | 4
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java | 13
UI-Project/src/views/ReportWork/reportWork.vue | 6
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java | 163 ++++++++
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java | 25 +
hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml | 73 +++
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | 375 +++++++++++-------
/dev/null | 16
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java | 3
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java | 21 +
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java | 32 +
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java | 56 ++
UI-Project/src/views/UnLoadGlass/PrintFlow.vue | 318 +++++++++++++++
16 files changed, 964 insertions(+), 181 deletions(-)
diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue
index 67b04ab..7b6a6e9 100644
--- a/UI-Project/src/views/ReportWork/reportWork.vue
+++ b/UI-Project/src/views/ReportWork/reportWork.vue
@@ -18,9 +18,9 @@
</el-select>
<el-select v-model="report.workingProcedure" :placeholder="$t('reportmanage.cprocess')" style="margin-left: 10px;" >
<el-option :label="$t('reportmanage.all')" value="0"></el-option>
- <el-option :label="$t('reportmanage.incise')" value="1"></el-option>
- <el-option :label="$t('reportmanage.edging')" value="2"></el-option>
- <el-option :label="$t('reportmanage.steel')" value="3"></el-option>
+ <el-option :label="$t('reportmanage.incise')" value="鍒囧壊"></el-option>
+ <el-option :label="$t('reportmanage.edging')" value="纾ㄨ竟"></el-option>
+ <el-option :label="$t('reportmanage.steel')" value="閽㈠寲"></el-option>
</el-select>
<el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('reportmanage.inquire') }}</el-button>
<el-button type="success" style="margin-left: 10px;" @click="handleConfirm">{{ $t('reportmanage.signingwork') }}</el-button>
diff --git a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
new file mode 100644
index 0000000..4c1358e
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
@@ -0,0 +1,318 @@
+<script setup>
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
+import {Search} from "@element-plus/icons-vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import request from "@/utils/request"
+import { WebSocketHost ,host} from '@/utils/constants'
+import { ref, onMounted , onBeforeUnmount, reactive, computed,onUnmounted } from "vue";
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+let produceList = ref([])
+let flowCardList = ref([])
+
+const searchout = async () => {
+ try {
+ const response = await request.post('/unLoadGlass/downGlassInfo/downGlassPrint',{
+ flowCardId:"NG24070506A001",
+ layer:1
+ });
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ produceList.value = response.data.projectInfo;
+ flowCardList.value = response.data.flowCardList;
+ ElMessage.success(response.message);
+
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+};
+</script>
+<template>
+ <div id="printFlowCard">
+ <table v-for="(item,id) in produceList" id="contentTable" :key="id">
+ <thead>
+ <tr v-for="(itemFlow,index) in item.detail" :key="index">
+ <td v-if="like='1'" colspan="26">
+ <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px "/></div>
+ <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
+ <div>{{ company.companyName }}</div>
+ <div>鐢熶骇娴佺▼鍗�</div>
+ <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">娴佺▼鍗″彿锛� {{
+ itemFlow.process_id
+ }}/{{ itemFlow.technologyNumberMerge }} 鍏� {{ flowCardCount }} 鏋�
+ </div>
+ <div v-else style="text-align: right;font-weight: bolder">娴佺▼鍗″彿锛� {{
+ itemFlow.process_id
+ }}/{{ itemFlow.technologyNumber }} 鍏� {{ flowCardCount }} 鏋�
+ </div>
+ </td>
+ <td v-else colspan="24">
+ <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px "/></div>
+ <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
+ <div>{{ company.companyName }}</div>
+ <div>鐢熶骇娴佺▼鍗�</div>
+ <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">娴佺▼鍗″彿锛� {{
+ itemFlow.process_id
+ }}/{{ itemFlow.technologyNumberMerge }} 鍏� {{ flowCardCount }} 鏋�
+ </div>
+ <div v-else style="text-align: right;font-weight: bolder">娴佺▼鍗″彿锛� {{
+ itemFlow.process_id
+ }}/{{ itemFlow.technologyNumber }} 鍏� {{ flowCardCount }} 鏋�
+ </div>
+ </td>
+ </tr>
+ <tr v-for="(items,index) in item.detail" :key="index">
+ <td class="tdNowrap">瀹㈡埛鍚嶇О锛�</td>
+ <td colspan="2">{{ items.customer_name }}</td>
+ <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
+ <td colspan="2">{{ items.project }}</td>
+ <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
+ <td colspan="19" v-if="like='1'" style="width: 500px">{{ items.process }}</td>
+ <td colspan="17" v-else style="width: 500px">{{ items.process }}</td>
+ </tr>
+ <tr v-for="(itemTr,index) in item.detail" :key="index">
+ <td class="tdNowrap">纾ㄨ竟绫诲瀷锛�</td>
+ <td colspan="2">{{ itemTr.edging_type }}</td>
+ <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
+ <td colspan="2">{{ itemTr.glass_child }}</td>
+ <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
+ <td v-if="like=='1'" colspan="19">{{ itemTr.product_name }}</td>
+ <td v-else colspan="17">{{ itemTr.product_name }}</td>
+ </tr>
+ <tr>
+ <td rowspan='2'>搴忓彿</td>
+ <td rowspan='2'>缂栧彿</td>
+ <td v-if="like!=null" rowspan="2">灏忕墖椤哄簭</td>
+ <td v-else style="display: none;" rowspan="2">灏忕墖椤哄簭</td>
+ <td rowspan='2'>瀹�*楂�</td>
+ <td rowspan='2'>鏁伴噺</td>
+ <td rowspan='2'>闈㈢Н</td>
+ <td rowspan='2'>鍛ㄩ暱</td>
+ <td rowspan='2'>鍗婂緞</td>
+ <td rowspan='2'>澶囨敞</td>
+ <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td>
+ </tr>
+ <tr>
+
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ </tr>
+ </thead>
+ <tbody>
+
+ <tr v-for="(itemDatile,index) in item.detailList" :key="index">
+ <td>{{ itemDatile.order_number }}</td>
+ <td>{{ itemDatile.s01Value }}</td>
+ <td v-if="like=='1'">{{ itemDatile.technology_number }}</td>
+ <td v-else style="display: none"></td>
+ <td>{{ itemDatile.child_width }}</td>
+ <td class="item" style="width: 5%;height: 100%;">
+ <el-input v-model="itemDatile.quantity" style="border: none" @keyup="handleSummary()"></el-input>
+ </td>
+ <td>{{ itemDatile.total_area }}</td>
+ <td>{{ itemDatile.perimeter }}</td>
+ <td>{{ itemDatile.bend_radius }}</td>
+ <td>{{ itemDatile.remarks }}</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr style="height: 14px">
+ <td v-for="(itemsum,index) in item.detail" :key="index" colspan="26">
+ 鏁伴噺锛�
+ <label>{{ itemsum.quantity }}</label>
+ 闈㈢Н锛�
+ <label>{{ parseFloat(itemsum.gross_area.toFixed(2)) }}</label>
+ 閲嶉噺锛�
+ <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label>
+ </td>
+ </tr>
+ <tr v-for="(itemtextarea,index) in item.detail" :key="index">
+ <td v-if="like='1'" colspan="4" rowspan="6" style="width: 480px;height: 100px ">
+ <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
+ </div>
+ </td>
+ <td v-else colspan="6" rowspan="2" style="width: 480px;height: 100px ">
+ <!-- <div style="width: 100%;height: 100%"><textarea style="height: 99%;width: 99%;font-size: 11px">{{ itemtextarea.processing_note }}</textarea>-->
+ <!-- </div>-->
+ <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
+ </div>
+ </td>
+ <td>瀹屽伐绛惧悕</td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td>鐢熶骇鏃ユ湡</td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td>璐ㄦ绛惧悕</td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ </tr>
+ <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
+ <td colspan="23">
+ <span style="display: flex;">
+ <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
+ <div class='qrCode' style="width: 80px;height: 80px;">
+ <img :src=qrCodeItems.qrcode>
+ </div>
+ <span style="float: left;font-weight: bolder">{{
+ qrCodeItem.process_id + "/" + qrCodeItems.technologyNumber
+ }}</span>
+ </span>
+ </span>
+ </td>
+
+ </tr>
+ </tfoot>
+ </table>
+ </div>
+</template>
+<style scoped>
+* {
+ margin: 0;
+ padding: 0;
+ text-align: center;
+}
+
+
+#printFlowCard {
+ text-align: center;
+//font-weight: bolder; height: 600px;
+}
+
+#contentTable {
+ border-collapse: collapse;
+ border: 1px solid black;
+ width: 100%;
+}
+
+#contentTable thead {
+ font-size: 13px;
+ font-weight: bolder;
+}
+
+#contentTable thead div {
+ font-size: 15px;
+ font-weight: bolder;
+}
+
+#contentTable tr td {
+ border: 1px solid black;
+ height: 18px;
+ font-weight: bolder;
+}
+
+#contentTable tbody {
+ white-space: nowrap;
+
+}
+
+.tdNowrap {
+ white-space: nowrap;
+
+}
+
+#contentTable tfoot {
+ font-size: 12px;
+ font-weight: bolder;
+}
+
+input{
+ font-weight: bolder;
+}
+
+
+@page {
+ size: auto; /* auto is the initial value */
+ margin: 2mm 2mm 0mm 1mm /* this affects the margin in the printer settings */
+
+}
+
+@media print {
+ table {
+ page-break-before: always;
+ page-break-inside: auto;
+ }
+
+ #contentTable thead {
+ display: table-header-group;
+ }
+
+ tfoot {
+ display: table-footer-group;
+ page-break-inside: avoid;
+ }
+}
+
+.qrCode img {
+ width: 100%;
+ height: 100%;
+}
+
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 844a323..a6b9c45 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,18 +1,18 @@
<script setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive, onMounted, onBeforeUnmount,onUnmounted} from "vue";
-import {useRouter} from "vue-router"
+import { Search } from "@element-plus/icons-vue";
+import { reactive, onMounted, onBeforeUnmount, onUnmounted } from "vue";
+import { useRouter } from "vue-router"
const router = useRouter()
import { useI18n } from 'vue-i18n'
- const { t } = useI18n()
- let language = ref(localStorage.getItem('lang') || 'zh')
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import Landingindication from "./Landingindication.vue";
import Landingindicationtwo from "./Landingindicationtwo.vue";
import request from "@/utils/request";
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { WebSocketHost ,host} from '@/utils/constants'
+import { WebSocketHost, host } from '@/utils/constants'
const dialogFormVisiblea = ref(false)
const dialogFormVisiblea2 = ref(false)
const dialogFormVisibleaDownGlass = ref(false)
@@ -26,17 +26,24 @@
const flowCardId = ref('');
const flowCardOptions = ref('[]');
const tableData = reactive([]);
-const downGlass= ref([]);
+const downGlass = ref([]);
+const timeRange = ref(["2022-01-01", "2025-01-01"])
+const selectValuesa = reactive({});
+const selectOptionsa = ref([]);
+
+const handleInputChangea = (value, rowId) => {
+ // 鏇存柊瀵瑰簲琛岀殑 select 鍊�
+ selectValuesa[rowId] = value;
+};
// 鏂规硶
const handleSelectionChange = () => {
// 澶勭悊琛ㄦ牸琛岄�夋嫨浜嬩欢
};
const handleBindRack = (row) => {
workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
- console.log(row.flowCardId);
flowCardId.value = row.flowCardId;
// 鍙戣捣鎺ュ彛璇锋眰鑾峰彇娴佺▼鍗″彿
- fetchFlowCardId();
+ fetchFlowCardId();
dialogFormVisiblea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
};
//鑾峰彇娴佺▼鍗″彿
@@ -45,12 +52,12 @@
const response = await request.get('unLoadGlass/downWorkStation/getflowCardId');
console.log(response)
if (response.code === 200) {
-
- flowCardOptions.value = response.data.filter(item => item !== null)
-.map(item => ({ flowcard_id: item.flow_card_id }));
- console.log(flowCardOptions.value);
-}
- else {
+
+ flowCardOptions.value = response.data.filter(item => item !== null)
+ .map(item => ({ flowcard_id: item.flow_card_id }));
+ console.log(flowCardOptions.value);
+ }
+ else {
ElMessage.error(response.msg);
}
} catch (error) {
@@ -61,17 +68,17 @@
const handleConfirm = async () => {
try {
const firstPart = flowCardId.value.split('|')[0].trim(); //
-const twoPart = flowCardId.value.split('|')[1].trim(); //
+ const twoPart = flowCardId.value.split('|')[1].trim(); //
const response = await request.post('unLoadGlass/downWorkStation/updateFlowCardId', {
workstationId: workstationId.value,
flowCardId: firstPart,
- layer:twoPart
- });
+ layer: twoPart
+ });
console.log(response)
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
console.log('缁戝畾鎴愬姛');
-
+
ElMessage.success(response.message);
updatePageData();
dialogFormVisiblea.value = false;
@@ -96,30 +103,29 @@
};
//娓呴櫎鍐呭
const handleclear = async () => {
- try {
- const response = await request.post('unLoadGlass/downWorkStation/clear', {
- workstationId: workstationId.value,
- });
+ try {
+ const response = await request.post('unLoadGlass/downWorkStation/clear', {
+ workstationId: workstationId.value,
+ });
- console.log(response);
- if (response.code === 200) {
- // 娓呴櫎鎴愬姛鐨勯�昏緫
- console.log('娓呴櫎鎴愬姛');
- ElMessage.success(response.message);
- dialogFormVisiblea2.value = false;
- } else if (response.code === 500) {
- // 娓呴櫎澶辫触鐨勯�昏緫
- console.log('娓呴櫎澶辫触');
- console.log(response.message); // 鎵撳嵃鏈嶅姟鍣ㄨ繑鍥炵殑閿欒淇℃伅
- ElMessage.error(response.message);
- dialogFormVisiblea2.value = false;
- }
- } catch (error) {
- // console.log(error);
- ElMessage.error("娓呴櫎澶辫触");
- dialogFormVisiblea2.value = false;
+ if (response.code === 200) {
+ // 娓呴櫎鎴愬姛鐨勯�昏緫
+ console.log('娓呴櫎鎴愬姛');
+ ElMessage.success(response.message);
+ dialogFormVisiblea2.value = false;
+ } else if (response.code === 500) {
+ // 娓呴櫎澶辫触鐨勯�昏緫
+ console.log('娓呴櫎澶辫触');
+ console.log(response.message); // 鎵撳嵃鏈嶅姟鍣ㄨ繑鍥炵殑閿欒淇℃伅
+ ElMessage.error(response.message);
+ dialogFormVisiblea2.value = false;
}
+ } catch (error) {
+ // console.log(error);
+ ElMessage.error("娓呴櫎澶辫触");
+ dialogFormVisiblea2.value = false;
+ }
};
// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
const fetchTableData = async () => {
@@ -146,14 +152,16 @@
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
// 鏇存柊 tableData 鐨勬暟鎹�
- if(data.sendDownGlass!=null){
- downGlass.value=data.sendDownGlass[0][1];
- console.log(downGlass.value);
- console.log(tableData.value);
+ if (data.downGlassInfos != null) {
+ downGlass.value = data.downGlassInfos[0][1];
}
+ if (data.engineerIdList != null) {
+ selectOptionsa.value = data.engineerIdList[0]
+ }
+
// tableData.splice(0, tableData.length, ...data.params[0]);
-// console.log("鏇存柊鍚庢暟鎹�", data.params[0]);
+ // console.log("鏇存柊鍚庢暟鎹�", data.params[0]);
};
// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
@@ -161,40 +169,40 @@
fetchTableData(); // 鑾峰彇鏁版嵁
socket = initializeWebSocket(socketUrl, handleMessage);
});
- onUnmounted(() => {
- if (socket) {
+onUnmounted(() => {
+ if (socket) {
closeWebSocket(socket);
- }
- });
+ }
+});
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
});
-const getTagType =(status) => {
- return status === 1 ? 'success' : 'danger';
- // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
- }
-
- const toggleStatus = (row) => {
- // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
- row.enableState = 1 - row.enableState; // Toggle between 0 and 1
- // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
- updateRowStatus(row);
- };
-
- const updateRowStatus = async (row) => {
+const getTagType = (status) => {
+ return status === 1 ? 'success' : 'danger';
+ // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
+}
+
+const toggleStatus = (row) => {
+ // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
+ row.enableState = 1 - row.enableState; // Toggle between 0 and 1
+ // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
+ updateRowStatus(row);
+};
+
+const updateRowStatus = async (row) => {
try {
// 鍋囪浣犵殑鍚庣 API 鎺ユ敹 PUT 璇锋眰锛屽苟涓旈渶瑕佷紶閫� row.id 鍜� row.enableState 鍙傛暟
-
-
+
+
const response = await request.post('unLoadGlass/downWorkStation/updateDownWorkstation', {
enableState: row.enableState,
id: row.id
-
- });
+
+ });
console.log('Updated row status:', response.data);
// 鍙互鏍规嵁鍚庣杩斿洖鐨勬暟鎹繘琛岃繘涓�姝ュ鐞嗭紝姣斿鏇存柊鏈湴鐘舵�佺瓑
} catch (error) {
@@ -202,11 +210,29 @@
// 澶勭悊閿欒鎯呭喌锛屾瘮濡傛彁绀虹敤鎴锋洿鏂板け璐�
}
};
-
+
+// 鏌ヨ鏁版嵁
+const selectDownGlassData = async () => {
+
+ const response = await request.post("/unLoadGlass/downGlassInfo/selectDownGlassInfo", {
+ workStationId: selectValuesa[0],
+ engineerId: selectValuesa[1],
+ beginDate: timeRange.value[0],
+ endDate: timeRange.value[1],
+ })
+ if (response.code === 200) {
+ sendDownGlass.value = response.data;
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message);
+ }
+
+}
-
-
+const open=async()=>{
+ router.push({path: '/UnLoadGlass/PrintFlow'})
+}
// beforeUnmount(() => {
@@ -216,94 +242,119 @@
</script>
<template>
<div>
- <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏</el-button>
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary"
+ @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏</el-button>
<el-card style="flex: 1;" v-loading="loading">
<el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading">
- <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table height="200px" ref="table"
- @selection-change="handleSelectionChange"
- :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
- <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')" min-width="120" />
- <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" />
- <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')" min-width="120" />
- <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
- <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" />
- <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
- <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> -->
- <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
- <el-table-column
- align="center"
- :label="$t('reportWork.startstatus')"
- min-width="80"
- prop="enableState"
- >
- <template #default="scope">
- <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)">
- {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
- <template #default="scope">
- <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�' " @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button>
- <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear') }}</el-button>
- </template>
-
- </el-table-column>
- </el-table>
-
- </div>
- <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" :title="$t('searchOrder.cageinformation')">
- <el-table height="200px" ref="table"
- @selection-change="handleSelectionChange"
- :data="downGlass" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80" />
- <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80" />
- <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80" />
- <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120" />
- <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150" />
- <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120" />
- <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120" />
- <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120" />
- <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120" />
- <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120" />
-
- </el-table>
- </el-dialog>
-
- </el-card>
- <!-- workstationId: '1',
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+ <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="tableData"
+ :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+ <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
+ <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')"
+ min-width="120" />
+ <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" />
+ <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')"
+ min-width="120" />
+ <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
+ <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" />
+ <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
+ <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> -->
+ <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
+ <el-table-column align="center" :label="$t('reportWork.startstatus')" min-width="80" prop="enableState">
+ <template #default="scope">
+ <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)">
+ {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�'"
+ @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button>
+ <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear')
+ }}</el-button>
+ <el-button @click="open()">111</el-button>
+ </template>
+
+ </el-table-column>
+ </el-table>
+
+ </div>
+ <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%"
+ :title="$t('searchOrder.cageinformation')">
+ <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨宸ヤ綅')" clearable>
+ <el-option label="鍏ㄩ儴" value="0"></el-option>
+ <el-option label="1" value="1"></el-option>
+ <el-option label="2" value="2"></el-option>
+ <el-option label="3" value="3"></el-option>
+ <el-option label="4" value="4"></el-option>
+ <el-option label="5" value="5"></el-option>
+ <el-option label="6" value="6"></el-option>
+ <el-option label="7" value="7"></el-option>
+ <el-option label="8" value="8"></el-option>
+ <el-option label="9" value="9"></el-option>
+ <el-option label="10" value="10"></el-option>
+ </el-select>
+
+ <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('basicData.plselectproject')" clearable
+ @input="handleInputChangea($event, row.id)">
+ <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item" />
+ </el-select>
+ <el-date-picker style="margin-left: 10px;" v-model="timeRange" type="daterange" format="YYYY/MM/DD"
+ value-format="YYYY-MM-DD" :start-placeholder="$t('reportmanage.starttime')"
+ :end-placeholder="$t('reportmanage.endtime')" :default-time="defaultTime" />
+ <el-button type="primary" style="margin-left: 10px;" @click="selectDownGlassData()">{{
+ $t('reportmanage.inquire')
+ }}</el-button>
+ <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass"
+ :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+ <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80" />
+ <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80" />
+ <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80" />
+ <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120" />
+ <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150" />
+ <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120" />
+ <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120" />
+ <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120" />
+ <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120" />
+ <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120" />
+
+ </el-table>
+ </el-dialog>
+
+ </el-card>
+ <!-- workstationId: '1',
workstationId: '1005',
flowCardId: '183.6',
totalquantity: '1991',
racksnumber:"1",
work_state: '寰呰瘑鍒�', -->
- <div style="display: flex;" class="awatch">
- <div id="main-body">
- <Landingindication></Landingindication>
- </div>
- <div id="main-bodya">
- <Landingindicationtwo></Landingindicationtwo>
- </div>
- </div>
+ <div style="display: flex;" class="awatch">
+ <div id="main-body">
+ <Landingindication></Landingindication>
+ </div>
+ <div id="main-bodya">
+ <Landingindicationtwo></Landingindicationtwo>
+ </div>
+ </div>
</el-card>
-
+
</div>
- <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
+ <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
<div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form size="mini" label-width="100px">
- <el-form label-width="210px" label-position="right">
+ <el-form size="mini" label-width="100px">
+ <el-form label-width="210px" label-position="right">
<el-form-item :label="$t('reportWork.shelfnumbera')" :required="true" style="width: 25vw">
- <el-input v-model="workstationId" autocomplete="off"/>
+ <el-input v-model="workstationId" autocomplete="off" />
</el-form-item>
<el-form-item :label="$t('reportWork.cardnumbera')" :required="true" style="width: 25vw;">
- <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')">
- <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id" :value="item.flowcard_id" />
- </el-select>
- </el-form-item>
- </el-form>
+ <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')">
+ <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id"
+ :value="item.flowcard_id" />
+ </el-select>
+ </el-form-item>
+ </el-form>
</el-form>
</div>
<template #footer>
@@ -328,29 +379,45 @@
</el-dialog>
</template>
<style scoped>
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
+#dt {
+ display: block;
+ float: left;
+ line-height: 20px;
+ margin-left: 100px;
+}
+
+#dta {
+ display: block;
+ float: left;
+ line-height: 20px;
+ margin-left: 80%;
+}
+
+#dialog-footer {
text-align: center;
margin-top: -15px;
}
-#message{
+
+#message {
text-align: center;
align-items: center;
color: black;
- width: 200px;
- height: 100px;
- background-color: #337ecc;
- margin-left: 28%;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
}
-.awatch{
+
+.awatch {
max-width: 100%;
}
-#main-body{
+
+#main-body {
margin-top: -40px;
margin-left: 150px;
}
-#main-bodya{
+
+#main-bodya {
margin-top: -40px;
margin-left: 100px;
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java
new file mode 100644
index 0000000..a265c19
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java
@@ -0,0 +1,21 @@
+package com.mes.pp.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@RestController
+@RequestMapping("/flow_card/flow-card")
+public class FlowCardController {
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java
new file mode 100644
index 0000000..3378be3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java
@@ -0,0 +1,163 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class FlowCard implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * (宸ョ▼鍙�,2024.0302澶╂満)
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 閿�鍞崟鍙�
+ */
+ private String orderId;
+
+ /**
+ * 鐢熶骇璁㈠崟鍙�
+ */
+ private String productionId;
+
+ /**
+ * 娴佺▼鍗″彿
+ */
+ private String processId;
+
+ /**
+ * 钀芥灦椤哄簭
+ */
+ private String landingSequence;
+
+ /**
+ * 搴忓彿
+ */
+ private Integer orderNumber;
+
+ /**
+ * 宸ヨ壓纭搴忓彿
+ */
+ private Integer technologyNumber;
+
+ /**
+ * 鍒嗘灦鏁伴噺
+ */
+ private Integer quantity;
+
+ /**
+ * 浠ヤ紭鍖栨暟閲�
+ */
+ private Integer optimizeQuantity;
+
+ /**
+ * 鎺掔増鐘舵��(榛樿0,1鍏佽鎺掔増2浼樺寲鍗犵敤)
+ */
+ private Integer layoutStatus;
+
+ /**
+ * 琛ョ墖鏁伴噺
+ */
+ private Integer numberPatches;
+
+ /**
+ * 鏈�鍚庡伐搴忔姤宸� 搴撳瓨鏁伴噺
+ */
+ private Integer inventoryQuantity;
+
+ /**
+ * 宸插叆鏁伴噺
+ */
+ private Integer receivedQuantity;
+
+ /**
+ * 琛ョ墖缂栧彿
+ */
+ private String patchId;
+
+ /**
+ * 宸ョ▼鍗犵敤鐘舵�侊紝0涓哄崰鐢�1鍗犵敤
+ */
+ private Integer engineeringOccupancy;
+
+ /**
+ * 宸ョ▼鍙�(2024.0302娣诲姞)
+ */
+ private String projectNo;
+
+ /**
+ * 鍖呰鍓嶅伐搴忔姤宸� 搴撳瓨鏁伴噺
+ */
+ private Integer inventoryNumber;
+
+ /**
+ * 鍏ュ簱鏃堕棿
+ */
+ private LocalDateTime storageTime;
+
+ /**
+ * 鐢熶骇缁堟鐘舵��(榛樿0,1鐢熶骇缁堟)
+ */
+ private Integer terminationStatus;
+
+ /**
+ * 鎵撳嵃鐘舵��
+ */
+ private Integer printStatus;
+
+ /**
+ * 澶囩敤閿�
+ */
+ private Integer alternateKey;
+
+ /**
+ * 鍒嗘灦鍛�
+ */
+ private String founder;
+
+ /**
+ * 鍒嗘灦鏃堕棿
+ */
+ @TableField("splitFrame_time")
+ private LocalDateTime splitframeTime;
+
+ /**
+ * 灞傛暟
+ */
+ private Integer layersNumber;
+
+ /**
+ * 娴佺▼鍗℃墦鍗版帓搴�
+ */
+ private Integer sort;
+
+ /**
+ * 寤虹珛鏃堕棿
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ private LocalDateTime updateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java
new file mode 100644
index 0000000..bd8d21d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java
@@ -0,0 +1,25 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.mes.pp.entity.FlowCard;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import feign.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@DS("pp")
+public interface FlowCardMapper extends BaseMapper<FlowCard> {
+
+ List<Map<String, Object>> selectProject(@Param("processId") String processId,@Param("technologyNumber") Integer technologyNumber);
+
+ List<Map<String, Object>> selectFlowCard(@Param("processId") String processId,@Param("technologyNumber") Integer technologyNumber);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java
new file mode 100644
index 0000000..d03a88c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java
@@ -0,0 +1,22 @@
+package com.mes.pp.service;
+
+import com.mes.pp.entity.FlowCard;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+public interface FlowCardService extends IService<FlowCard> {
+
+ List<Map<String, Object>> selectProject(String processId, Integer technologyNumber);
+
+ List<Map<String, Object>> selectFlowCard(String processId, Integer technologyNumber);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java
deleted file mode 100644
index a3b3e5a..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mes.pp.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.pp.entity.DamageDetails;
-
-/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author wu
- * @since 2024-07-26
- */
-public interface DamageDetailsService extends IService<DamageDetails> {
-
-}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java
new file mode 100644
index 0000000..c7aa409
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java
@@ -0,0 +1,32 @@
+package com.mes.pp.service.impl;
+
+import com.mes.pp.entity.FlowCard;
+import com.mes.pp.mapper.FlowCardMapper;
+import com.mes.pp.service.FlowCardService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@Service
+public class FlowCardServiceImpl extends ServiceImpl<FlowCardMapper, FlowCard> implements FlowCardService {
+
+ @Override
+ public List<Map<String, Object>> selectProject(String processId, Integer technologyNumber){
+ return baseMapper.selectProject(processId,technologyNumber);
+ }
+
+ @Override
+ public List<Map<String, Object>> selectFlowCard(String processId, Integer technologyNumber){
+ return baseMapper.selectFlowCard(processId, technologyNumber);
+ }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java
deleted file mode 100644
index 0b53228..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mes.pp.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.pp.entity.ReportingWorkDetail;
-
-/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author wu
- * @since 2024-07-25
- */
-public interface ReportingWorkDetailService extends IService<ReportingWorkDetail> {
-
-}
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
new file mode 100644
index 0000000..960c554
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.pp.mapper.FlowCardMapper">
+
+
+ <select id="selectFlowCard" resultType="java.util.Map">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ od.quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ od.bend_radius,
+ concat(IFNULL(od.processing_note,''), IFNULL(od.remarks,'')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by IF(sort != NULL || sort != '', sort, fc.order_number)
+
+ </select>
+
+ <select id="selectProject" resultType="java.util.Map">
+ select o.customer_name,
+ o.project,
+ (select process from sd.order_glass_detail where order_id=fc.order_id and order_number=fc.order_number and technology_number=fc.technology_number) as process ,
+ od.edging_type,
+ (select glass_child from sd.order_glass_detail where order_id=fc.order_id and order_number=fc.order_number and technology_number=fc.technology_number) as glass_child ,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ SUM(od.quantity) as quantity,
+ round(SUM(ogd.total_area), 2) as gross_area,
+ sum(od.weight) as weight,
+ 1 as technologyNumber,
+ concat(fc.process_id, '/', 1) as processIdNumber,
+ concat('瀵瑰簲鎴戝徃鍗曞彿',o.batch) AS otherRemarks
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = left(#{processId}, 10)
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id
+ </select>
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
index 3f8d7d5..991d778 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
@@ -1,9 +1,11 @@
package com.mes.downglassinfo.controller;
+import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -15,9 +17,14 @@
@Autowired
DownGlassInfoService downGlassInfoService;
- @RequestMapping("/selectDownGlassInfo")
- public Result<String> setDownGlassInfoRequest(@RequestBody DownGlassInfoRequest request) {
- return Result.success(downGlassInfoService.setDownGlassInfoRequest(request));
+ @PostMapping("/selectDownGlassInfo")
+ public Result setDownGlassInfoRequest(@RequestBody DownGlassInfoRequest request) {
+ downGlassInfoService.setDownGlassInfoRequest(request);
+ return Result.build(200,"鏌ヨ鎴愬姛",1);
}
+ @PostMapping("/downGlassPrint")
+ public Result downGlassPrint(@RequestBody DownGlassInfo downGlassInfo) {
+ return Result.build(200,"鏌ヨ鎴愬姛",downGlassInfoService.downGlassPrint(downGlassInfo));
+ }
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
index c7d5a67..55a4ee9 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -85,5 +85,9 @@
*/
private Date gmtCreate;
+ /**
+ * 鐜荤拑绫诲瀷
+ */
+ private Integer glassType;
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
index aa307b9..e0cc79a 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
@@ -6,6 +6,7 @@
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
+import java.sql.Timestamp;
import java.util.Date;
/**
@@ -33,15 +34,15 @@
/**
* 寮�濮嬫椂闂�
*/
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd")
private Date beginDate;
/**
* 缁撴潫鏃堕棿
*/
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd")
private Date endDate;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
index 54c0318..846a3e8 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
@@ -6,6 +6,7 @@
import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
import java.util.List;
+import java.util.Map;
public interface DownGlassInfoService extends IService<DownGlassInfo> {
@@ -43,4 +44,6 @@
boolean generateOutGlassTask(String glassId);
String setDownGlassInfoRequest(DownGlassInfoRequest request);
+
+ Map<String, List<Map<String, Object>>> downGlassPrint(DownGlassInfo downGlassInfo);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
index 232743a..b09fcf6 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -1,6 +1,9 @@
package com.mes.downglassinfo.service.impl;
+import cn.hutool.json.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -15,11 +18,15 @@
import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.job.DownLoadCacheGlassTask;
+import com.mes.pp.service.FlowCardService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
@Service
public class DownGlassInfoServiceImpl extends ServiceImpl<DownGlassInfoMapper, DownGlassInfo> implements DownGlassInfoService {
@@ -32,6 +39,9 @@
@Autowired
RedisUtil redisUtil;
+
+ @Autowired
+ FlowCardService flowCardService;
/**
* 鏍规嵁娴佺▼鍗″彿鏌ヨ鏈�澶у簭鍙�
@@ -97,4 +107,50 @@
}
return "success";
}
+
+ @Override
+ public Map<String, List<Map<String, Object>>> downGlassPrint(DownGlassInfo downGlassInfo){
+ QueryWrapper<DownGlassInfo> queryWrapper = Wrappers.query();
+ queryWrapper.eq("flow_card_id", "NG24080012A001")
+ .eq("layer", 1)
+ .select("flow_card_id", "layer", "width", "height", "filmsid", "thickness","glass_type","COUNT(*) AS quantity")
+ .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness");
+ List<Map<String, Object>> resultList = baseMapper.selectMaps(queryWrapper);
+
+
+ List<Map<String, Object>> projectInfo=flowCardService.selectProject(downGlassInfo.getFlowCardId(),downGlassInfo.getLayer());
+ List<Map<String, Object>> flowCardInfo=flowCardService.selectFlowCard(downGlassInfo.getFlowCardId(),downGlassInfo.getLayer());
+
+ for (Map<String, Object> row : flowCardInfo) {
+ int order_number = (int) row.get("order_number");
+ int technology_number = (int) row.get("technology_number");
+
+ for (Map<String, Object> row1 : resultList) {
+ int glass_type = (int) row1.get("glass_type");
+ int layer = (int) row1.get("layer");
+ Long quantity=(Long) row1.get("quantity");
+
+ if(order_number==glass_type&&technology_number==layer){
+ row.put("quantity1",quantity);
+ }
+ }
+ }
+ Map<String, List<Map<String, Object>>> result = new HashMap<>();
+ result.put("detail", projectInfo);
+ result.put("detailList", flowCardInfo);
+ for (Map<String, Object> row : projectInfo) {
+ String order_number = (String) row.get("process");
+ String[] processes=order_number.split("->");
+ List<Map<String, Object>> processList = new ArrayList<>();
+ for (int i = 0; i < processes.length; i++) {
+ Map<String, Object> processMap = new JSONObject();
+ processMap.put("process", processes[i]);
+ processMap.put("id", i);
+ processList.add(processMap);
+ }
+ result.put("processList", processList);
+ }
+ return result;
+ }
+
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
index 4029a6e..4c38ae0 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -1,6 +1,7 @@
package mes;
import com.mes.UnLoadGlassApplication;
+import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.downglassinfo.service.DownGlassTaskService;
import com.mes.downglassinfo.service.impl.DownGlassInfoServiceImpl;
@@ -224,7 +225,13 @@
}*/
-
+ @Test
+ public void downGlassPrint() {
+ DownGlassInfo downGlassInfo=new DownGlassInfo();
+ downGlassInfo.setFlowCardId("NG24070506A001");
+ downGlassInfo.setLayer(1);
+ downGlassInfoService.downGlassPrint(downGlassInfo);
+ }
--
Gitblit v1.8.0