From 291067c13bfe8fb9c876e3764a828dc3ddd22f99 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期一, 17 十一月 2025 16:50:12 +0800
Subject: [PATCH] 监控优化,代码功能优化
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs | 1
代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/InkWarehouse.vue | 135 +++++
代码管理/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js | 133 +++---
代码管理/WCS/WIDESEAWCS_Client/src/img/1.png | 0
代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/TestFrameWarehouse.vue | 149 ++++++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/油墨仓/StackerCraneJob_YM.cs | 2
代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/BoardWarehouse.vue | 161 ++++++-
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP仓/ConveyorLineJob_PP.cs | 2
代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/DryFilmWarehouse.vue | 145 ++++++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/测试架仓/CSJReadData.cs | 5
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP仓/StackerCraneJob_PP.cs | 1
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP仓/PPReadData.cs | 5
代码管理/WCS/WIDESEAWCS_Client/src/img/3.png | 0
代码管理/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js | 27 +
代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue | 135 +++++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/干膜仓/ConveyorLineJob_GM.cs | 2
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/阻焊仓/ZHReadData.cs | 7
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/BCReadData.cs | 5
代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue | 171 ++++++-
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 12
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/油墨仓/YMReadData.cs | 5
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/干膜仓/StackerCraneJob_GM.cs | 2
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs | 5
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/StackerCraneJob_BC.cs | 1
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/阻焊仓/StackerCraneJob_ZH.cs | 2
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs | 5
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs | 27 +
代码管理/WCS/WIDESEAWCS_Client/config/buttons.js | 9
代码管理/WCS/WIDESEAWCS_Client/src/img/2.png | 0
代码管理/WMS/WIDESEA_WMSClient/config/buttons.js | 9
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/测试架仓/StackerCraneJob_CSJ.cs | 2
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/干膜仓/GMReadData.cs | 7
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs | 2
33 files changed, 983 insertions(+), 191 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/config/buttons.js"
index a34cc48..4c95b1f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/config/buttons.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/config/buttons.js"
@@ -164,6 +164,15 @@
onClick: function () {
}
},
+{
+ name: "杈呮枡杈撻�佷换鍔¢噸鍙�",
+ icon: '',
+ class: '',
+ type: 'warning',
+ value: 'FLconverTaskResending',
+ onClick: function () {
+ }
+},
]
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js"
index f5db920..52813d6 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js"
@@ -96,6 +96,33 @@
}
}
+ let FLconverTaskResendingBtn = this.buttons.find(x => x.value == 'FLconverTaskResending');
+ if (FLconverTaskResendingBtn) {
+ FLconverTaskResendingBtn.onClick = function () {
+ this.$confirm("鏄惁纭閲嶅彂杈呮枡杈撻�佷换鍔�","鎵嬪姩浠诲姟閲嶅彂璀﹀憡",{
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ center: true,
+ }).then(() => {
+ let rows = this.$refs.table.getSelected();
+ if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
+ if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
+ var param = rows[0].taskNum;
+ this.http
+ .post("api/Task/FLconverTaskResending?taskNum="+param, "鏁版嵁澶勭悊涓�...")
+ .then((x) => {
+ if (x.status) {
+ this.$Message.success('鎵嬪姩浠诲姟閲嶅彂鎴愬姛');
+ this.refresh();
+ } else {
+ return this.$error(x.message);
+ }
+ });
+ });
+ }
+ }
+
let StackerCraneTaskPriorityBtn = this.buttons.find(x => x.value == 'StackerCraneTaskPriority');
if (StackerCraneTaskPriorityBtn) {
StackerCraneTaskPriorityBtn.onClick = function () {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/1.png" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/1.png"
index 4070c71..c516430 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/1.png"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/1.png"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/2.png" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/2.png"
new file mode 100644
index 0000000..4070c71
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/2.png"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/3.png" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/3.png"
new file mode 100644
index 0000000..b3a0af6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/img/3.png"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/BoardWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/BoardWarehouse.vue"
index 0e5e0f5..39b9a75 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/BoardWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/BoardWarehouse.vue"
@@ -28,10 +28,58 @@
<div class="xname">鎵樼洏绫诲瀷:</div>
<div class="xbci" :title="bcData.R_BC_TrayType">{{ bcData.R_BC_TrayType || '-' }}</div>
</div>
+ <!-- 鏂板锛氬綋鍓嶅垪鐘舵�佹樉绀� -->
+ <div class="bcankuang">
+ <div class="xname">褰撳墠鎵�鍦ㄥ垪:</div>
+ <div class="xbci" :title="bcData.R_BC_Column">{{ bcData.R_BC_Column || '鏈煡' }}</div>
+ </div>
</div>
+ </div>
-
-
+ <!-- 鏂板锛氬爢鍨涙満褰撳墠鍒楁枃瀛楁樉绀猴紙涓嶱P浠撲竴鑷达級 -->
+ <div id="bc-nowcolumn" :class="{ 'abnormal-column': bcData.R_BC_Status !== '姝e父' }">
+ <div>鏉挎枡鍫嗗灈鏈哄綋鍓嶆墍鍦ㄥ垪:
+ <span :title="bcData.R_BC_Column">{{ bcData.R_BC_Column || '鏈煡' }}</span>
+ </div>
+ </div>
+
+ <!-- 鏂板锛氬垪鏂规牸灞曠ず鍖哄煙锛堜笌PP浠撻�昏緫涓�鑷达級 -->
+ <div class="bc-column-container" :class="{ 'pp-status-abnormal': bcData.R_BC_Status !== '姝e父' }">
+ <!-- 涓婃柟1-24鍒� -->
+ <div class="column-grid-container">
+ <div
+ v-for="num in 37"
+ :key="num"
+ class="column-grid-item"
+ :class="{ 'active': num == bcData.R_BC_Column }"
+ :title="`鍒楀彿: ${num}`"
+ >
+ {{ num }}
+ </div>
+ </div>
+ <!-- 涓嬫柟25-47鍒� (23涓�) -->
+ <div class="column-grid-container">
+ <div
+ v-for="i in 34"
+ :key="'bc-lower-' + i"
+ class="column-grid-item"
+ :class="{ 'active': (103 + i) == bcData.R_BC_Column }"
+ :title="`鍒楀彿: ${103 + i}`"
+ >
+ {{ 103 + i }}
+ </div>
+ </div>
+ <div class="column-grid-container">
+ <div
+ v-for="i in 34"
+ :key="'bc-lower-' + i"
+ class="column-grid-item"
+ :class="{ 'active': (203 + i) == bcData.R_BC_Column }"
+ :title="`鍒楀彿: ${203 + i}`"
+ >
+ {{ 203 + i }}
+ </div>
+ </div>
</div>
</div>
</template>
@@ -49,19 +97,18 @@
},
setup() {
const store = useStore();
- // 浠呭瓨鍌˙C鏁版嵁锛屼笌鍏朵粬鏁版嵁闅旂
const bcData = ref({});
- // 寤惰繜鏇存柊閰嶇疆锛岃В鍐抽棯鐑侀棶棰�
- const UPDATE_DELAY = 300; // 寤惰繜300ms鏇存柊UI
- let updateTimer = null; // 瀹氭椂鍣ㄥ疄渚�
+ const UPDATE_DELAY = 300;
+ let updateTimer = null;
- // BC鏁版嵁鏄犲皠瑙勫垯
+ // BC鏁版嵁鏄犲皠瑙勫垯锛堟柊澧濺_BC_Column鍒楀彿澶勭悊锛�
const bcStatusMap = {
R_BC_Status: {
- 1: "姝e父",
- 2: "鏁呴殰",
- 3: "鎬ュ仠",
+ 0: "姝e父",
+ 1: "鏁呴殰",
+ 2: "鎬ュ仠",
+ 3: "鏈煡"
},
R_BC_AutoStatus: {
0: "缁翠慨",
@@ -90,10 +137,11 @@
2: "涓墭鐩�(2)",
3: "澶ф墭鐩�(3)",
4: "鐗瑰ぇ鎵樼洏(4)",
- }
+ },
+ // 鏂板锛氬垪鍙锋槧灏勶紙涓嶱P浠撲竴鑷达級
+ R_BC_Column: (val) => val !== undefined ? val : "鏈煡"
};
- // BC瀛楁鍒嗙粍
const bcFieldGroups = {
permissionFields: {
keys: ["R_BC_IsCanPut1", "R_BC_IsCanTake1", "R_BC_IsCanPut2", "R_BC_IsCanTake2",
@@ -117,19 +165,20 @@
}
};
- // 澶勭悊BC鍘熷鏁版嵁
const processBCData = (rawData) => {
if (!rawData) return {};
const processedData = { ...rawData };
- // 澶勭悊鏍稿績鐘舵�佸瓧娈�
+ // 澶勭悊鏍稿績鐘舵�佸瓧娈碉紙鍖呭惈鍒楀彿锛�
Object.keys(bcStatusMap).forEach(key => {
if (processedData.hasOwnProperty(key)) {
- processedData[key] = bcStatusMap[key][processedData[key]] || processedData[key];
+ const mapper = bcStatusMap[key];
+ processedData[key] = typeof mapper === 'function'
+ ? mapper(processedData[key])
+ : (mapper[processedData[key]] || processedData[key]);
}
});
- // 澶勭悊鍒嗙粍瀛楁
Object.values(bcFieldGroups).forEach(group => {
group.keys.forEach(key => {
if (processedData.hasOwnProperty(key)) {
@@ -141,18 +190,15 @@
return processedData;
};
- // 寤惰繜鏇存柊BC鏁版嵁锛岄伩鍏嶉珮棰戝埛鏂�
const delayedUpdateBCData = (newRawData) => {
if (updateTimer) {
clearTimeout(updateTimer);
}
updateTimer = setTimeout(() => {
- // 鍙鐞嗗寘鍚獴C鐗瑰緛瀛楁鐨勬暟鎹�
if (newRawData && newRawData.R_BC_Status !== undefined) {
bcData.value = processBCData(newRawData);
- // 鏇存柊鏍峰紡
nextTick(() => {
const valueElements = document.getElementsByClassName("xbci");
for (let i = 0; i < valueElements.length; i++) {
@@ -168,13 +214,11 @@
};
onMounted(() => {
- // 鍒濆鍔犺浇鏁版嵁
const initialData = store.state.homedata;
if (initialData && initialData.R_BC_Status !== undefined) {
bcData.value = processBCData(initialData);
}
- // 鐩戝惉鏁版嵁鍙樺寲锛屽彧澶勭悊BC鏁版嵁
const unwatch = watch(
() => store.state.homedata,
(newData) => {
@@ -185,7 +229,6 @@
{ deep: true }
);
- // 缁勪欢鍗歌浇鏃舵竻鐞�
onUnmounted(() => {
unwatch();
if (updateTimer) {
@@ -338,4 +381,76 @@
margin-left: 1.7%;
border-radius: 10px;
}
-</style>
+
+/* 鏂板锛欱C鍫嗗灈鏈哄綋鍓嶅垪鏂囧瓧鏍峰紡锛堜笌PP浠撲竴鑷达級 */
+#bc-nowcolumn {
+ width: 100%;
+ height: 70px;
+ float: left;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.5cqw;
+ font-weight: bold;
+ color: #00ff4c;
+}
+
+/* 鏂板锛欱C鍫嗗灈鏈哄紓甯哥姸鎬佹枃瀛楀彉鑹� */
+#bc-nowcolumn.abnormal-column {
+ color: red !important;
+}
+#bc-nowcolumn.abnormal-column span {
+ color: red !important;
+}
+
+/* 鏂板锛欱C鍒楀鍣ㄦ牱寮� */
+.bc-column-container {
+ width: 95%;
+ margin: 0 auto;
+ position: relative;
+ clear: both;
+ padding-top: 15px;
+}
+
+/* 澶嶇敤锛氭柟鏍煎鍣ㄦ牱寮忥紙涓嶱P浠撲竴鑷达級 */
+.column-grid-container {
+ width: 100%;
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ align-items: center;
+ gap: 2px;
+ position: relative;
+ z-index: 2;
+ margin-bottom: 10px;
+ padding: 0 2px;
+}
+
+/* 澶嶇敤锛氭柟鏍兼牱寮忥紙涓嶱P浠撲竴鑷达級 */
+.column-grid-item {
+ flex: 1;
+ min-width: 24px;
+ max-width: 60px;
+ height: 30px;
+ border: 1px solid #fff;
+ border-radius: 8px 8px 0 0;
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: clamp(8px, 1vw, 14px);
+ box-sizing: border-box;
+ transition: background-color 0.3s ease;
+}
+
+/* 澶嶇敤锛氬綋鍓嶅垪楂樹寒鏍峰紡 */
+.column-grid-item.active {
+ background-color: green;
+ font-weight: bold;
+}
+
+/* 澶嶇敤锛氬紓甯哥姸鎬佷笅褰撳墠鍒楃孩鑹查珮浜� */
+.pp-status-abnormal .column-grid-item.active {
+ background-color: red !important;
+}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/DryFilmWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/DryFilmWarehouse.vue"
index d04a45a..bb67ba1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/DryFilmWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/DryFilmWarehouse.vue"
@@ -28,6 +28,11 @@
<div class="xname">鎵樼洏绫诲瀷:</div>
<div class="xzhi" :title="gmData.R_GM_TrayType">{{ gmData.R_GM_TrayType || '-' }}</div>
</div>
+ <!-- 鏂板锛氬綋鍓嶅垪鐘舵�佹樉绀� -->
+ <div class="zhankuang">
+ <div class="xname">褰撳墠鎵�鍦ㄥ垪:</div>
+ <div class="xzhi" :title="gmData.R_GM_Column">{{ gmData.R_GM_Column || '鏈煡' }}</div>
+ </div>
</div>
<!-- GM鍏宠仈绔欏彴锛堝叆搴�7003锛� -->
@@ -154,6 +159,41 @@
</div>
</div>
</div>
+
+ <!-- 鏂板锛氬爢鍨涙満褰撳墠鍒楁枃瀛楁樉绀� -->
+ <div id="gm-nowcolumn" :class="{ 'abnormal-column': gmData.R_GM_Status !== '姝e父' }">
+ <div>骞茶啘鍫嗗灈鏈哄綋鍓嶆墍鍦ㄥ垪:
+ <span :title="gmData.R_GM_Column">{{ gmData.R_GM_Column || '鏈煡' }}</span>
+ </div>
+ </div>
+
+ <!-- 鏂板锛氬垪鏂规牸灞曠ず鍖哄煙 -->
+ <div class="gm-column-container" :class="{ 'pp-status-abnormal': gmData.R_GM_Status !== '姝e父' }">
+ <!-- 涓婃柟1-24鍒� -->
+ <div class="column-grid-container">
+ <div
+ v-for="num in 20"
+ :key="num"
+ class="column-grid-item"
+ :class="{ 'active': num == gmData.R_GM_Column }"
+ :title="`鍒楀彿: ${num}`"
+ >
+ {{ num }}
+ </div>
+ </div>
+ <!-- 涓嬫柟25-47鍒� (23涓�) -->
+ <div class="column-grid-container">
+ <div
+ v-for="i in 19"
+ :key="'gm-lower-' + i"
+ class="column-grid-item"
+ :class="{ 'active': (20 + i) == gmData.R_GM_Column }"
+ :title="`鍒楀彿: ${20 + i}`"
+ >
+ {{ 20 + i }}
+ </div>
+ </div>
+ </div>
</div>
</template>
@@ -170,21 +210,21 @@
},
setup() {
const store = useStore();
- // 浠呭瓨鍌℅M鏁版嵁锛屼笌鍏朵粬浠撴暟鎹殧绂�
const gmData = ref({});
- // 寤惰繜鏇存柊閰嶇疆锛岃В鍐抽棯鐑侀棶棰�
- const UPDATE_DELAY = 300; // 300ms寤惰繜锛屽钩琛″疄鏃舵�у拰鐣岄潰绋冲畾鎬�
- let updateTimer = null; // 瀹氭椂鍣ㄥ疄渚�
+ const UPDATE_DELAY = 300;
+ let updateTimer = null;
- // GM鏁版嵁鏄犲皠瑙勫垯閰嶇疆锛堟寜鍔熻兘鍒嗙粍锛�
+ // GM鏁版嵁鏄犲皠瑙勫垯锛堟柊澧炲垪鍙峰鐞嗭級
const gmStatusConfig = {
coreStatus: {
- R_GM_Status: { 1: "姝e父", 2: "鏁呴殰", 3: "鎬ュ仠" },
+ R_GM_Status: { 0: "姝e父", 1: "鏁呴殰", 2: "鎬ュ仠", 3: "鏈煡" },
R_GM_AutoStatus: { 0: "缁翠慨", 1: "鎵嬪姩", 2: "鍗婅嚜鍔�", 3: "鑷姩" },
R_GM_WorkStatus: { 0: "寰呮満", 1: "鍙栬揣涓�", 2: "鍙栬揣瀹屾垚", 4: "鏀捐揣涓�", 5: "鏀捐揣瀹屾垚", 6: "浠诲姟瀹屾垚" },
R_GM_WorkType: { 0: "鏃犱綔涓氫换鍔�(0)", 1: "鍙栨斁璐т綔涓�(1)", 2: "鍙彇璐т綔涓�(2)", 3: "鍙斁璐т綔涓�(3)", 4: "绉诲姩鍒版寚瀹氫綅缃�" },
- R_GM_TrayType: { "-1": "绌虹(-1)", 1: "灏忔墭鐩�(1)", 2: "涓墭鐩�(2)", 3: "澶ф墭鐩�(3)", 4: "鐗瑰ぇ鎵樼洏(4)" }
+ R_GM_TrayType: { "-1": "绌虹(-1)", 1: "灏忔墭鐩�(1)", 2: "涓墭鐩�(2)", 3: "澶ф墭鐩�(3)", 4: "鐗瑰ぇ鎵樼洏(4)" },
+ // 鏂板锛氬垪鍙锋槧灏勫鐞�
+ R_GM_Column: (val) => val !== undefined ? val : "鏈煡"
},
onlineStatus: {
keys: ["R_GM_Online3", "R_GM_Online4", "R_GM_Online5"],
@@ -212,15 +252,18 @@
}
};
- // 澶勭悊GM鍘熷鏁版嵁
+ // 澶勭悊GM鍘熷鏁版嵁锛堝寘鍚垪鍙峰鐞嗭級
const processGMData = (rawData) => {
if (!rawData) return {};
const processed = { ...rawData };
// 澶勭悊鏍稿績鐘舵�佸瓧娈�
- Object.entries(gmStatusConfig.coreStatus).forEach(([key, map]) => {
+ Object.entries(gmStatusConfig.coreStatus).forEach(([key, handler]) => {
if (processed.hasOwnProperty(key)) {
- processed[key] = map[processed[key]] || processed[key];
+ // 鍒楀彿瀛楁浣跨敤鍑芥暟澶勭悊锛屽叾浠栦娇鐢ㄦ槧灏勮〃
+ processed[key] = typeof handler === 'function'
+ ? handler(processed[key])
+ : (handler[processed[key]] || processed[key]);
}
});
@@ -242,16 +285,13 @@
return processed;
};
- // 寤惰繜鏇存柊GM鏁版嵁锛岄伩鍏嶉珮棰戝埛鏂板鑷寸殑闂儊
const delayedUpdateGMData = (newRawData) => {
if (updateTimer) clearTimeout(updateTimer);
updateTimer = setTimeout(() => {
- // 浠呭鐞嗗寘鍚獹M鐗瑰緛瀛楁鐨勬暟鎹�
if (newRawData && newRawData.R_GM_Status !== undefined) {
gmData.value = processGMData(newRawData);
- // 鏇存柊鏍峰紡
nextTick(() => {
const valueElements = document.getElementsByClassName("xzhi");
for (let i = 0; i < valueElements.length; i++) {
@@ -268,13 +308,11 @@
};
onMounted(() => {
- // 鍒濆鍔犺浇鏁版嵁
const initialData = store.state.homedata;
if (initialData && initialData.R_GM_Status !== undefined) {
gmData.value = processGMData(initialData);
}
- // 鐩戝惉鏁版嵁鍙樺寲锛屽彧澶勭悊GM鏁版嵁
const unwatch = watch(
() => store.state.homedata,
(newData) => {
@@ -285,7 +323,6 @@
{ deep: true }
);
- // 缁勪欢鍗歌浇鏃舵竻鐞嗚祫婧�
onUnmounted(() => {
unwatch();
if (updateTimer) clearTimeout(updateTimer);
@@ -300,6 +337,7 @@
</script>
<style scoped>
+/* 鍘熸湁鏍峰紡淇濇寔涓嶅彉 */
.ding {
float: left;
width: 20px;
@@ -436,5 +474,76 @@
margin-left: 1.7%;
border-radius: 10px;
}
-</style>
-
\ No newline at end of file
+
+/* 鏂板锛欸M鍫嗗灈鏈哄綋鍓嶅垪鏍峰紡 */
+#gm-nowcolumn {
+ width: 100%;
+ height: 70px;
+ float: left;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.5cqw;
+ font-weight: bold;
+ color: #00ff4c;
+}
+
+/* 寮傚父鐘舵�佹枃瀛楀彉鑹� */
+#gm-nowcolumn.abnormal-column {
+ color: red !important;
+}
+#gm-nowcolumn.abnormal-column span {
+ color: red !important;
+}
+
+/* 鍒楀鍣ㄦ牱寮� */
+.gm-column-container {
+ width: 95%;
+ margin: 0 auto;
+ position: relative;
+ clear: both;
+ padding-top: 15px;
+}
+
+/* 鏂规牸瀹瑰櫒鏍峰紡 */
+.column-grid-container {
+ width: 100%;
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ align-items: center;
+ gap: 2px;
+ position: relative;
+ z-index: 2;
+ margin-bottom: 10px;
+ padding: 0 2px;
+}
+
+/* 鏂规牸鏍峰紡 */
+.column-grid-item {
+ flex: 1;
+ min-width: 24px;
+ max-width: 60px;
+ height: 30px;
+ border: 1px solid #fff;
+ border-radius: 8px 8px 0 0;
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: clamp(8px, 1vw, 14px);
+ box-sizing: border-box;
+ transition: background-color 0.3s ease;
+}
+
+/* 褰撳墠鍒楅珮浜� */
+.column-grid-item.active {
+ background-color: green;
+ font-weight: bold;
+}
+
+/* 寮傚父鐘舵�佷笅褰撳墠鍒楃孩鑹查珮浜� */
+.pp-status-abnormal .column-grid-item.active {
+ background-color: red !important;
+}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/InkWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/InkWarehouse.vue"
index 23ed561..e0072ba 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/InkWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/InkWarehouse.vue"
@@ -28,6 +28,11 @@
<div class="xname">鎵樼洏绫诲瀷:</div>
<div class="xzhi" :title="ymData.R_YM_TrayType">{{ ymData.R_YM_TrayType || '-' }}</div>
</div>
+ <!-- 鏂板锛氬綋鍓嶆墍鍦ㄥ垪鏄剧ず -->
+ <div class="zhankuang">
+ <div class="xname">褰撳墠鎵�鍦ㄥ垪:</div>
+ <div class="xzhi" :title="ymData.R_YM_Column">{{ ymData.R_YM_Column || '鏈煡' }}</div>
+ </div>
</div>
<!-- YM鍏宠仈绔欏彴锛堝嚭鍏ュ簱9001锛� -->
@@ -88,6 +93,30 @@
</div>
</div>
</div>
+
+ <!-- 鏂板锛氬爢鍨涙満褰撳墠鍒楁枃瀛楁樉绀� -->
+ <div id="ym-nowcolumn" :class="{ 'abnormal-column': ymData.R_YM_Status !== '姝e父' }">
+ <div>娌瑰ⅷ鍫嗗灈鏈哄綋鍓嶆墍鍦ㄥ垪:
+ <span :title="ymData.R_YM_Column">{{ ymData.R_YM_Column || '鏈煡' }}</span>
+ </div>
+ </div>
+
+ <!-- 鏂板锛氬垪鏂规牸灞曠ず鍖哄煙 -->
+ <div class="ym-column-container" :class="{ 'pp-status-abnormal': ymData.R_YM_Status !== '姝e父' }">
+ <!-- 涓婃柟1-24鍒� -->
+ <div class="column-grid-container">
+ <div
+ v-for="num in 32"
+ :key="num"
+ class="column-grid-item"
+ :class="{ 'active': num == ymData.R_YM_Column }"
+ :title="`鍒楀彿: ${num}`"
+ >
+ {{ num }}
+ </div>
+ </div>
+
+ </div>
</div>
</template>
@@ -104,19 +133,18 @@
},
setup() {
const store = useStore();
- // 浠呭瓨鍌╕M鏁版嵁锛屼笌鍏朵粬鏁版嵁闅旂
const ymData = ref({});
- // 寤惰繜鏇存柊閰嶇疆锛岃В鍐抽棯鐑侀棶棰�
- const UPDATE_DELAY = 300; // 寤惰繜300ms鏇存柊UI
- let updateTimer = null; // 瀹氭椂鍣ㄥ疄渚�
+ const UPDATE_DELAY = 300;
+ let updateTimer = null;
- // YM鏁版嵁鏄犲皠瑙勫垯
+ // YM鏁版嵁鏄犲皠瑙勫垯锛堟柊澧炲垪鍙峰鐞嗭級
const ymStatusMap = {
R_YM_Status: {
- 1: "姝e父",
- 2: "鏁呴殰",
- 3: "鎬ュ仠",
+ 0: "姝e父",
+ 1: "鏁呴殰",
+ 2: "鎬ュ仠",
+ 3: "鏈煡"
},
R_YM_AutoStatus: {
0: "缁翠慨",
@@ -145,7 +173,9 @@
2: "涓墭鐩�(2)",
3: "澶ф墭鐩�(3)",
4: "鐗瑰ぇ鎵樼洏(4)",
- }
+ },
+ // 鏂板锛氬垪鍙锋槧灏勫鐞�
+ R_YM_Column: (val) => val !== undefined ? val : "鏈煡"
};
// YM瀛楁鍒嗙粍
@@ -166,7 +196,7 @@
}
};
- // 澶勭悊YM鍘熷鏁版嵁
+ // 澶勭悊YM鍘熷鏁版嵁锛堝寘鍚垪鍙峰鐞嗭級
const processYMData = (rawData) => {
if (!rawData) return {};
const processedData = { ...rawData };
@@ -174,7 +204,10 @@
// 澶勭悊鏍稿績鐘舵�佸瓧娈�
Object.keys(ymStatusMap).forEach(key => {
if (processedData.hasOwnProperty(key)) {
- processedData[key] = ymStatusMap[key][processedData[key]] || processedData[key];
+ const mapper = ymStatusMap[key];
+ processedData[key] = typeof mapper === 'function'
+ ? mapper(processedData[key])
+ : (mapper[processedData[key]] || processedData[key]);
}
});
@@ -190,14 +223,13 @@
return processedData;
};
- // 寤惰繜鏇存柊YM鏁版嵁锛岄伩鍏嶉珮棰戝埛鏂�
+ // 寤惰繜鏇存柊YM鏁版嵁
const delayedUpdateYMData = (newRawData) => {
if (updateTimer) {
clearTimeout(updateTimer);
}
updateTimer = setTimeout(() => {
- // 鍙鐞嗗寘鍚玒M鐗瑰緛瀛楁鐨勬暟鎹�
if (newRawData && newRawData.R_YM_Status !== undefined) {
ymData.value = processYMData(newRawData);
@@ -217,13 +249,11 @@
};
onMounted(() => {
- // 鍒濆鍔犺浇鏁版嵁
const initialData = store.state.homedata;
if (initialData && initialData.R_YM_Status !== undefined) {
ymData.value = processYMData(initialData);
}
- // 鐩戝惉鏁版嵁鍙樺寲锛屽彧澶勭悊YM鏁版嵁
const unwatch = watch(
() => store.state.homedata,
(newData) => {
@@ -251,6 +281,7 @@
</script>
<style scoped>
+/* 鍘熸湁鏍峰紡淇濇寔涓嶅彉 */
.ding {
float: left;
width: 20px;
@@ -387,4 +418,76 @@
margin-left: 1.7%;
border-radius: 10px;
}
-</style>
+
+/* 鏂板锛歒M鍫嗗灈鏈哄綋鍓嶅垪鏍峰紡 */
+#ym-nowcolumn {
+ width: 100%;
+ height: 70px;
+ float: left;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.5cqw;
+ font-weight: bold;
+ color: #00ff4c;
+}
+
+/* 寮傚父鐘舵�佹枃瀛楀彉鑹� */
+#ym-nowcolumn.abnormal-column {
+ color: red !important;
+}
+#ym-nowcolumn.abnormal-column span {
+ color: red !important;
+}
+
+/* 鍒楀鍣ㄦ牱寮� */
+.ym-column-container {
+ width: 95%;
+ margin: 0 auto;
+ position: relative;
+ clear: both;
+ padding-top: 15px;
+}
+
+/* 鏂规牸瀹瑰櫒鏍峰紡 */
+.column-grid-container {
+ width: 100%;
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ align-items: center;
+ gap: 2px;
+ position: relative;
+ z-index: 2;
+ margin-bottom: 10px;
+ padding: 0 2px;
+}
+
+/* 鏂规牸鏍峰紡 */
+.column-grid-item {
+ flex: 1;
+ min-width: 24px;
+ max-width: 60px;
+ height: 30px;
+ border: 1px solid #fff;
+ border-radius: 8px 8px 0 0;
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: clamp(8px, 1vw, 14px);
+ box-sizing: border-box;
+ transition: background-color 0.3s ease;
+}
+
+/* 褰撳墠鍒楅珮浜� */
+.column-grid-item.active {
+ background-color: green;
+ font-weight: bold;
+}
+
+/* 寮傚父鐘舵�佷笅褰撳墠鍒楃孩鑹查珮浜� */
+.pp-status-abnormal .column-grid-item.active {
+ background-color: red !important;
+}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue"
index 27b8a2a..d5a5847 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue"
@@ -4,6 +4,7 @@
<!-- PP浠撳爢鍨涙満鐘舵�侀潰鏉� -->
<div class="skuang">
<div class="zhuname">PP浠撳爢鍨涙満</div>
+
<div class="zhankuang">
<div class="xname">鍫嗗灈鏈虹姸鎬�:</div>
<div class="xzhi" :title="ppData.R_PP_Status">{{ ppData.R_PP_Status }}</div>
@@ -192,6 +193,39 @@
</div>
</div>
</div>
+
+ <div id="nowcolumn" :class="{ 'abnormal-column': ppData.R_PP_Status !== '姝e父' }">
+ <div>PP鍫嗗灈鏈哄綋鍓嶆墍鍦ㄥ垪:
+ <span :title="ppData.R_PP_Column">{{ ppData.R_PP_Column || '鏈煡' }}</span>
+ </div>
+ </div>
+
+ <div class="column-container" :class="{ 'pp-status-abnormal': ppData.R_PP_Status !== '姝e父' }">
+ <!-- 涓婃柟1-24鍒� -->
+ <div class="column-grid-container">
+ <div
+ v-for="num in 24"
+ :key="num"
+ class="column-grid-item"
+ :class="{ 'active': num == ppData.R_PP_Column }"
+ :title="`鍒楀彿: ${num}`"
+ >
+ {{ num }}
+ </div>
+ </div>
+ <!-- 涓嬫柟25-47鍒� (23涓�) -->
+ <div class="column-grid-container">
+ <div
+ v-for="i in 23"
+ :key="'lower-' + i"
+ class="column-grid-item"
+ :class="{ 'active': (24 + i) == ppData.R_PP_Column }"
+ :title="`鍒楀彿: ${24 + i}`"
+ >
+ {{ 24 + i }}
+ </div>
+ </div>
+ </div>
</div>
</template>
@@ -208,19 +242,19 @@
},
setup() {
const store = useStore();
- // 浠呭瓨鍌≒P鏁版嵁锛岄伩鍏嶄笌ZH鏁版嵁娣锋穯
const ppData = ref({});
- // 寤惰繜鏇存柊閰嶇疆锛岃В鍐抽珮棰戝埛鏂板鑷寸殑闂儊
- const UPDATE_DELAY = 300; // 寤惰繜300ms鏇存柊UI
- let updateTimer = null; // 瀹氭椂鍣ㄥ疄渚�
+ // 寤惰繜鏇存柊閰嶇疆
+ const UPDATE_DELAY = 300;
+ let updateTimer = null;
- // PP鏁版嵁鏄犲皠瑙勫垯锛堜粎澶勭悊PP鐩稿叧瀛楁锛�
+ // PP鏁版嵁鏄犲皠瑙勫垯
const statusMap = {
R_PP_Status: {
- 1: "姝e父",
- 2: "鏁呴殰",
- 3: "鎬ュ仠",
+ 0: "姝e父",
+ 1: "鏁呴殰",
+ 2: "鎬ュ仠",
+ 3: "鏈煡"
},
R_PP_AutoStatus: {
0: "缁翠慨",
@@ -249,7 +283,8 @@
2: "涓墭鐩�(2)",
3: "澶ф墭鐩�(3)",
4: "鐗瑰ぇ鎵樼洏(4)",
- }
+ },
+ R_PP_Column: (val) => val !== undefined ? val : "鏈煡"
};
// PP鐩稿叧甯冨皵瀛楁鍒嗙粍
@@ -284,14 +319,15 @@
// 澶勭悊PP鍘熷鏁版嵁
const processPPData = (rawData) => {
if (!rawData) return {};
-
- // 澶嶅埗鍘熷鏁版嵁锛岄伩鍏嶇洿鎺ヤ慨鏀�
const processed = { ...rawData };
// 澶勭悊鐘舵�佸瓧娈垫槧灏�
Object.keys(statusMap).forEach(key => {
if (processed.hasOwnProperty(key)) {
- processed[key] = statusMap[key][processed[key]] || processed[key];
+ const mapper = statusMap[key];
+ processed[key] = typeof mapper === 'function'
+ ? mapper(processed[key])
+ : (mapper[processed[key]] || processed[key]);
}
});
@@ -307,20 +343,12 @@
return processed;
};
- // 寤惰繜鏇存柊PP鏁版嵁锛岄伩鍏嶉珮棰戝埛鏂�
+ // 寤惰繜鏇存柊PP鏁版嵁
const delayedUpdatePPData = (newRawData) => {
- // 娓呴櫎涔嬪墠鐨勫畾鏃跺櫒锛岀‘淇濆彧鎵ц鏈�鍚庝竴娆℃洿鏂�
- if (updateTimer) {
- clearTimeout(updateTimer);
- }
-
- // 寤惰繜鎸囧畾鏃堕棿鍚庢洿鏂版暟鎹�
+ if (updateTimer) clearTimeout(updateTimer);
updateTimer = setTimeout(() => {
- // 鍙鐞嗗寘鍚玃P鐗瑰緛瀛楁鐨勬暟鎹�
if (newRawData && newRawData.R_PP_Status !== undefined) {
ppData.value = processPPData(newRawData);
-
- // 鏇存柊鏍峰紡
nextTick(() => {
const valueElements = document.getElementsByClassName("xzhi");
for (let i = 0; i < valueElements.length; i++) {
@@ -336,30 +364,24 @@
};
onMounted(() => {
- // 鍒濆鍔犺浇鏁版嵁
const initialData = store.state.homedata;
if (initialData && initialData.R_PP_Status !== undefined) {
ppData.value = processPPData(initialData);
}
-
- // 鐩戝惉鏁版嵁鍙樺寲锛屽彧澶勭悊PP鏁版嵁
+
const unwatch = watch(
() => store.state.homedata,
(newData) => {
- // 浠呭綋鏁版嵁鍖呭惈PP鐗瑰緛瀛楁鏃舵墠鏇存柊
if (newData && newData.R_PP_Status !== undefined) {
delayedUpdatePPData(newData);
}
},
- { deep: true } // 娣卞害鐩戝惉瀵硅薄鍐呴儴鍙樺寲
+ { deep: true }
);
- // 缁勪欢鍗歌浇鏃舵竻鐞嗚祫婧�
onUnmounted(() => {
unwatch();
- if (updateTimer) {
- clearTimeout(updateTimer);
- }
+ if (updateTimer) clearTimeout(updateTimer);
});
});
@@ -506,6 +528,89 @@
background: rgba(255, 255, 255, 0.2);
margin-left: 1.7%;
border-radius: 10px;
+ padding-bottom: 20px;
}
-</style>
-
\ No newline at end of file
+
+/* 鍫嗗灈鏈哄綋鍓嶅垪鏍峰紡 */
+#nowcolumn {
+ width: 100%;
+ height: 70px;
+ float: left;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.5cqw;
+ font-weight: bold;
+ color: #00ff4c;
+}
+
+/* 鍫嗗灈鏈虹姸鎬佸紓甯告椂锛屽綋鍓嶅垪鏂囧瓧鍙樹负绾㈣壊 */
+#nowcolumn.abnormal-column {
+ color: red !important;
+}
+#nowcolumn.abnormal-column span {
+ color: red !important;
+}
+
+/* 鍒楀鍣� */
+.column-container {
+ width: 95%;
+ margin: 0 auto;
+ position: relative;
+ clear: both;
+ padding-top: 15px;
+}
+
+/* 钃濊壊鍒嗗壊绾� */
+.column-separator {
+ width: 100%;
+ height: 20px;
+ background-color: #3bc0ed;
+ position: absolute;
+ top: 0; /* 璋冩暣鍒版柟鏍奸《閮ㄥ榻� */
+ left: 0;
+ z-index: 1; /* 纭繚鍦ㄦ柟鏍间笅鏂� */
+ border-radius: 4px 4px 0 0;
+}
+
+.column-grid-container {
+ width: 100%;
+ display: flex;
+ flex-wrap: nowrap; /* 绂佹鎹㈣ */
+ justify-content: space-between; /* 鍧囧寑鍒嗗竷 */
+ align-items: center;
+ gap: 2px; /* 鏂规牸涔嬮棿鐨勯棿璺� */
+ position: relative;
+ z-index: 2;
+ margin-bottom: 10px;
+ padding: 0 2px; /* 閬垮厤杈圭紭鏂规牸璐磋竟 */
+}
+
+/* 鍒楁柟鏍兼牱寮� - 鍏抽敭淇敼 */
+.column-grid-item {
+ flex: 1; /* 鏍稿績锛氭瘡涓柟鏍煎钩鍧囧垎閰嶅墿浣欑┖闂� */
+ min-width: 24px; /* 鏈�灏忓搴︼紙閬垮厤杩囧皬锛� */
+ max-width: 60px; /* 鏈�澶у搴︼紙閬垮厤杩囧ぇ锛� */
+ height: 30px;
+ border: 1px solid #fff;
+ border-radius:8px 8px 0 0;
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: clamp(8px, 1vw, 14px); /* 鑷�傚簲瀛椾綋 */
+ box-sizing: border-box;
+ transition: background-color 0.3s ease;
+}
+
+/* 褰撳墠鍒楅珮浜紙姝e父鐘舵�侊級 */
+.column-grid-item.active {
+ background-color: green;
+ font-weight: bold;
+}
+
+/* 鍫嗗灈鏈虹姸鎬佸紓甯告椂锛屽綋鍓嶅垪楂樹寒涓虹孩鑹� */
+.pp-status-abnormal .column-grid-item.active {
+ background-color: red !important;
+}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue"
index 6a412b0..7d1e06a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue"
@@ -28,6 +28,11 @@
<div class="xname">鎵樼洏绫诲瀷:</div>
<div class="xzhi" :title="zhData.R_ZH_TrayType">{{ zhData.R_ZH_TrayType || '-' }}</div>
</div>
+ <!-- 鏂板锛氬綋鍓嶆墍鍦ㄥ垪鏄剧ず -->
+ <div class="zhankuang">
+ <div class="xname">褰撳墠鎵�鍦ㄥ垪:</div>
+ <div class="xzhi" :title="zhData.R_ZH_Column">{{ zhData.R_ZH_Column || '鏈煡' }}</div>
+ </div>
</div>
<!-- ZH鍏宠仈绔欏彴锛堝叆搴�301+鍏ュ簱302锛� -->
@@ -172,6 +177,30 @@
</div>
</div>
</div>
+
+ <!-- 鏂板锛氬爢鍨涙満褰撳墠鍒楁枃瀛楁樉绀� -->
+ <div id="zh-nowcolumn" :class="{ 'abnormal-column': zhData.R_ZH_Status !== '姝e父' }">
+ <div>闃荤剨鍫嗗灈鏈哄綋鍓嶆墍鍦ㄥ垪:
+ <span :title="zhData.R_ZH_Column">{{ zhData.R_ZH_Column || '鏈煡' }}</span>
+ </div>
+ </div>
+
+ <!-- 鏂板锛氬垪鏂规牸灞曠ず鍖哄煙 -->
+ <div class="zh-column-container" :class="{ 'pp-status-abnormal': zhData.R_ZH_Status !== '姝e父' }">
+ <!-- 涓婃柟1-24鍒� -->
+ <div class="column-grid-container">
+ <div
+ v-for="num in 28"
+ :key="num"
+ class="column-grid-item"
+ :class="{ 'active': num == zhData.R_ZH_Column }"
+ :title="`鍒楀彿: ${num}`"
+ >
+ {{ num }}
+ </div>
+ </div>
+
+ </div>
</div>
</template>
@@ -188,19 +217,18 @@
},
setup() {
const store = useStore();
- // 浠呭瓨鍌╖H鏁版嵁锛屼笌鍏朵粬鏁版嵁闅旂
const zhData = ref({});
- // 寤惰繜鏇存柊閰嶇疆锛岃В鍐抽棯鐑侀棶棰�
- const UPDATE_DELAY = 300; // 寤惰繜300ms鏇存柊UI
- let updateTimer = null; // 瀹氭椂鍣ㄥ疄渚�
+ const UPDATE_DELAY = 300;
+ let updateTimer = null;
- // ZH鏁版嵁鏄犲皠瑙勫垯
+ // ZH鏁版嵁鏄犲皠瑙勫垯锛堟柊澧炲垪鍙峰鐞嗭級
const zhStatusMap = {
R_ZH_Status: {
- 1: "姝e父",
- 2: "鏁呴殰",
- 3: "鎬ュ仠",
+ 0: "姝e父",
+ 1: "鏁呴殰",
+ 2: "鎬ュ仠",
+ 3: "鏈煡"
},
R_ZH_AutoStatus: {
0: "缁翠慨",
@@ -229,7 +257,9 @@
2: "涓墭鐩�(2)",
3: "澶ф墭鐩�(3)",
4: "鐗瑰ぇ鎵樼洏(4)",
- }
+ },
+ // 鏂板锛氬垪鍙锋槧灏勫鐞�
+ R_ZH_Column: (val) => val !== undefined ? val : "鏈煡"
};
// ZH瀛楁鍒嗙粍
@@ -256,7 +286,7 @@
}
};
- // 澶勭悊ZH鍘熷鏁版嵁
+ // 澶勭悊ZH鍘熷鏁版嵁锛堝寘鍚垪鍙峰鐞嗭級
const processZHData = (rawData) => {
if (!rawData) return {};
const processedData = { ...rawData };
@@ -264,7 +294,10 @@
// 澶勭悊鏍稿績鐘舵�佸瓧娈�
Object.keys(zhStatusMap).forEach(key => {
if (processedData.hasOwnProperty(key)) {
- processedData[key] = zhStatusMap[key][processedData[key]] || processedData[key];
+ const mapper = zhStatusMap[key];
+ processedData[key] = typeof mapper === 'function'
+ ? mapper(processedData[key])
+ : (mapper[processedData[key]] || processedData[key]);
}
});
@@ -280,14 +313,13 @@
return processedData;
};
- // 寤惰繜鏇存柊ZH鏁版嵁锛岄伩鍏嶉珮棰戝埛鏂�
+ // 寤惰繜鏇存柊ZH鏁版嵁
const delayedUpdateZHData = (newRawData) => {
if (updateTimer) {
clearTimeout(updateTimer);
}
updateTimer = setTimeout(() => {
- // 鍙鐞嗗寘鍚玓H鐗瑰緛瀛楁鐨勬暟鎹�
if (newRawData && newRawData.R_ZH_Status !== undefined) {
zhData.value = processZHData(newRawData);
@@ -307,13 +339,11 @@
};
onMounted(() => {
- // 鍒濆鍔犺浇鏁版嵁
const initialData = store.state.homedata;
if (initialData && initialData.R_ZH_Status !== undefined) {
zhData.value = processZHData(initialData);
}
- // 鐩戝惉鏁版嵁鍙樺寲锛屽彧澶勭悊ZH鏁版嵁
const unwatch = watch(
() => store.state.homedata,
(newData) => {
@@ -341,6 +371,7 @@
</script>
<style scoped>
+/* 鍘熸湁鏍峰紡淇濇寔涓嶅彉 */
.ding {
float: left;
width: 20px;
@@ -477,4 +508,76 @@
margin-left: 1.7%;
border-radius: 10px;
}
-</style>
+
+/* 鏂板锛歓H鍫嗗灈鏈哄綋鍓嶅垪鏍峰紡 */
+#zh-nowcolumn {
+ width: 100%;
+ height: 70px;
+ float: left;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.5cqw;
+ font-weight: bold;
+ color: #00ff4c;
+}
+
+/* 寮傚父鐘舵�佹枃瀛楀彉鑹� */
+#zh-nowcolumn.abnormal-column {
+ color: red !important;
+}
+#zh-nowcolumn.abnormal-column span {
+ color: red !important;
+}
+
+/* 鍒楀鍣ㄦ牱寮� */
+.zh-column-container {
+ width: 95%;
+ margin: 0 auto;
+ position: relative;
+ clear: both;
+ padding-top: 15px;
+}
+
+/* 鏂规牸瀹瑰櫒鏍峰紡 */
+.column-grid-container {
+ width: 100%;
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ align-items: center;
+ gap: 2px;
+ position: relative;
+ z-index: 2;
+ margin-bottom: 10px;
+ padding: 0 2px;
+}
+
+/* 鏂规牸鏍峰紡 */
+.column-grid-item {
+ flex: 1;
+ min-width: 24px;
+ max-width: 60px;
+ height: 30px;
+ border: 1px solid #fff;
+ border-radius: 8px 8px 0 0;
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: clamp(8px, 1vw, 14px);
+ box-sizing: border-box;
+ transition: background-color 0.3s ease;
+}
+
+/* 褰撳墠鍒楅珮浜� */
+.column-grid-item.active {
+ background-color: green;
+ font-weight: bold;
+}
+
+/* 寮傚父鐘舵�佷笅褰撳墠鍒楃孩鑹查珮浜� */
+.pp-status-abnormal .column-grid-item.active {
+ background-color: red !important;
+}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/TestFrameWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/TestFrameWarehouse.vue"
index ffa70bb..26371e9 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/TestFrameWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/TestFrameWarehouse.vue"
@@ -5,7 +5,8 @@
<div class="skuang">
<div class="csjuname">娴嬭瘯鏋朵粨鍫嗗灈鏈�</div>
<div class="csjankuang">
- <div class="xname">鍫嗗灈鏈虹姸鎬�:</div>
+ <div class="xname">鍫� 鍫嗗灈鏈虹姸鎬�:
+ </div>
<div class="xcsji" :title="csjData.R_CSJ_Status">{{ csjData.R_CSJ_Status || '-' }}</div>
</div>
<div class="csjankuang">
@@ -27,6 +28,11 @@
<div class="csjankuang">
<div class="xname">鎵樼洏绫诲瀷:</div>
<div class="xcsji" :title="csjData.R_CSJ_TrayType">{{ csjData.R_CSJ_TrayType || '-' }}</div>
+ </div>
+ <!-- 鏂板锛氬綋鍓嶆墍鍦ㄥ垪鏄剧ず -->
+ <div class="csjankuang">
+ <div class="xname">褰撳墠鎵�鍦ㄥ垪:</div>
+ <div class="xcsji" :title="csjData.R_CSJ_Column">{{ csjData.R_CSJ_Column || '鏈煡' }}</div>
</div>
</div>
@@ -86,6 +92,41 @@
</div>
</div>
</div>
+
+ <!-- 鏂板锛氬爢鍨涙満褰撳墠鍒楁枃瀛楁樉绀� -->
+ <div id="csj-nowcolumn" :class="{ 'abnormal-column': csjData.R_CSJ_Status !== '姝e父' }">
+ <div>娴嬭瘯鏋跺爢鍨涙満褰撳墠鎵�鍦ㄥ垪:
+ <span :title="csjData.R_CSJ_Column">{{ csjData.R_CSJ_Column || '鏈煡' }}</span>
+ </div>
+ </div>
+
+ <!-- 鏂板锛氬垪鏂规牸灞曠ず鍖哄煙 -->
+ <div class="csj-column-container" :class="{ 'pp-status-abnormal': csjData.R_CSJ_Status !== '姝e父' }">
+ <!-- 涓婃柟1-24鍒� -->
+ <div class="column-grid-container">
+ <div
+ v-for="num in 20"
+ :key="num"
+ class="column-grid-item"
+ :class="{ 'active': num == csjData.R_CSJ_Column }"
+ :title="`鍒楀彿: ${num}`"
+ >
+ {{ num }}
+ </div>
+ </div>
+ <!-- 涓嬫柟25-47鍒� (23涓�) -->
+ <div class="column-grid-container">
+ <div
+ v-for="i in 23"
+ :key="'csj-lower-' + i"
+ class="column-grid-item"
+ :class="{ 'active': (20 + i) == csjData.R_CSJ_Column }"
+ :title="`鍒楀彿: ${20 + i}`"
+ >
+ {{ 20 + i }}
+ </div>
+ </div>
+ </div>
</div>
</template>
@@ -102,19 +143,18 @@
},
setup() {
const store = useStore();
- // 浠呭瓨鍌–SJ鏁版嵁锛屼笌鍏朵粬鏁版嵁闅旂
const csjData = ref({});
- // 寤惰繜鏇存柊閰嶇疆锛岃В鍐抽棯鐑侀棶棰�
- const UPDATE_DELAY = 300; // 寤惰繜300ms鏇存柊UI
- let updateTimer = null; // 瀹氭椂鍣ㄥ疄渚�
+ const UPDATE_DELAY = 300;
+ let updateTimer = null;
- // CSJ鏁版嵁鏄犲皠瑙勫垯
+ // CSJ鏁版嵁鏄犲皠瑙勫垯锛堟柊澧炲垪鍙峰鐞嗭級
const csjStatusMap = {
R_CSJ_Status: {
- 1: "姝e父",
- 2: "鏁呴殰",
- 3: "鎬ュ仠",
+ 0: "姝e父",
+ 1: "鏁呴殰",
+ 2: "鎬ュ仠",
+ 3: "鏈煡"
},
R_CSJ_AutoStatus: {
0: "缁翠慨",
@@ -143,7 +183,9 @@
2: "涓墭鐩�(2)",
3: "澶ф墭鐩�(3)",
4: "鐗瑰ぇ鎵樼洏(4)",
- }
+ },
+ // 鏂板锛氬垪鍙锋槧灏勫鐞�
+ R_CSJ_Column: (val) => val !== undefined ? val : "鏈煡"
};
// CSJ瀛楁鍒嗙粍
@@ -170,7 +212,7 @@
}
};
- // 澶勭悊CSJ鍘熷鏁版嵁
+ // 澶勭悊CSJ鍘熷鏁版嵁锛堝寘鍚垪鍙峰鐞嗭級
const processCSJData = (rawData) => {
if (!rawData) return {};
const processedData = { ...rawData };
@@ -178,7 +220,10 @@
// 澶勭悊鏍稿績鐘舵�佸瓧娈�
Object.keys(csjStatusMap).forEach(key => {
if (processedData.hasOwnProperty(key)) {
- processedData[key] = csjStatusMap[key][processedData[key]] || processedData[key];
+ const mapper = csjStatusMap[key];
+ processedData[key] = typeof mapper === 'function'
+ ? mapper(processedData[key])
+ : (mapper[processedData[key]] || processedData[key]);
}
});
@@ -194,14 +239,13 @@
return processedData;
};
- // 寤惰繜鏇存柊CSJ鏁版嵁锛岄伩鍏嶉珮棰戝埛鏂�
+ // 寤惰繜鏇存柊CSJ鏁版嵁
const delayedUpdateCSJData = (newRawData) => {
if (updateTimer) {
clearTimeout(updateTimer);
}
updateTimer = setTimeout(() => {
- // 鍙鐞嗗寘鍚獵SJ鐗瑰緛瀛楁鐨勬暟鎹�
if (newRawData && newRawData.R_CSJ_Status !== undefined) {
csjData.value = processCSJData(newRawData);
@@ -221,13 +265,11 @@
};
onMounted(() => {
- // 鍒濆鍔犺浇鏁版嵁
const initialData = store.state.homedata;
if (initialData && initialData.R_CSJ_Status !== undefined) {
csjData.value = processCSJData(initialData);
}
- // 鐩戝惉鏁版嵁鍙樺寲锛屽彧澶勭悊CSJ鏁版嵁
const unwatch = watch(
() => store.state.homedata,
(newData) => {
@@ -255,6 +297,7 @@
</script>
<style scoped>
+/* 鍘熸湁鏍峰紡淇濇寔涓嶅彉 */
.ding {
float: left;
width: 20px;
@@ -391,4 +434,76 @@
margin-left: 1.7%;
border-radius: 10px;
}
-</style>
+
+/* 鏂板锛欳SJ鍫嗗灈鏈哄綋鍓嶅垪鏍峰紡 */
+#csj-nowcolumn {
+ width: 100%;
+ height: 70px;
+ float: left;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.5cqw;
+ font-weight: bold;
+ color: #00ff4c;
+}
+
+/* 寮傚父鐘舵�佹枃瀛楀彉鑹� */
+#csj-nowcolumn.abnormal-column {
+ color: red !important;
+}
+#csj-nowcolumn.abnormal-column span {
+ color: red !important;
+}
+
+/* 鍒楀鍣ㄦ牱寮� */
+.csj-column-container {
+ width: 95%;
+ margin: 0 auto;
+ position: relative;
+ clear: both;
+ padding-top: 15px;
+}
+
+/* 鏂规牸瀹瑰櫒鏍峰紡 */
+.column-grid-container {
+ width: 100%;
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+ align-items: center;
+ gap: 2px;
+ position: relative;
+ z-index: 2;
+ margin-bottom: 10px;
+ padding: 0 2px;
+}
+
+/* 鏂规牸鏍峰紡 */
+.column-grid-item {
+ flex: 1;
+ min-width: 24px;
+ max-width: 60px;
+ height: 30px;
+ border: 1px solid #fff;
+ border-radius: 8px 8px 0 0;
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: clamp(8px, 1vw, 14px);
+ box-sizing: border-box;
+ transition: background-color 0.3s ease;
+}
+
+/* 褰撳墠鍒楅珮浜� */
+.column-grid-item.active {
+ background-color: green;
+ font-weight: bold;
+}
+
+/* 寮傚父鐘舵�佷笅褰撳墠鍒楃孩鑹查珮浜� */
+.pp-status-abnormal .column-grid-item.active {
+ background-color: red !important;
+}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index d5a346d..cdaafa7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -170,5 +170,32 @@
{
return Service.RecWMSTaskHandCancel(taskNum);
}
+
+ //杈呮枡杈撻�佺嚎浠诲姟閲嶅彂
+ [HttpPost, HttpGet, Route("FLconverTaskResending"), AllowAnonymous]
+ public WebResponseContent FLconverTaskResending(int taskNum)
+ {
+ try
+ {
+ Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
+ if (task == null)
+ {
+ return WebResponseContent.Instance.Error("鏈壘鍒拌浠诲姟淇℃伅");
+ }
+ if (task.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && task.DeviceCode.Contains("FL"))
+ {
+ _taskService.UpdateTask(task, TaskStatusEnum.New);
+ }
+ else
+ {
+ return WebResponseContent.Instance.Error("闈炶緭閫佺嚎鎵ц涓姸鎬佹垨闈炶緟鏂欎粨浠诲姟");
+ }
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/ConveyorLineJob_PP.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/ConveyorLineJob_PP.cs"
index 348a55c..61d2541 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/ConveyorLineJob_PP.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/ConveyorLineJob_PP.cs"
@@ -234,7 +234,7 @@
{
if (conveyorLineSignalRead1.STB && conveyorLineStatus1.Online && conveyorLineStatus1.Goods && !conveyorLineStatus1.Alarm && !conveyorLineSignalWrite1.ACK)
{
- StackerCraneJob_PP.pPReadData.R_PP_Boxcode = device.Communicator.Read<string>("DB900.578.0");
+ StackerCraneJob_PP.pPReadData.R_PP_Boxcode = device.Communicator.Read<string>("DB900.528.0");
}
StackerCraneJob_PP.pPReadData.R_PP_HandShake4 = conveyorLineStatus1.HandShake;
StackerCraneJob_PP.pPReadData.R_PP_Online4 = conveyorLineStatus1.Online;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/PPReadData.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/PPReadData.cs"
index def38fa..1e28df7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/PPReadData.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/PPReadData.cs"
@@ -37,7 +37,10 @@
/// 鎵樼洏绫诲瀷
/// </summary>
public short R_PP_TrayType;
-
+ /// <summary>
+ /// 褰撳墠鍒�
+ /// </summary>
+ public short R_PP_Column;
///绔欏彴
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/StackerCraneJob_PP.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/StackerCraneJob_PP.cs"
index 061d640..f3f70c4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/StackerCraneJob_PP.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/StackerCraneJob_PP.cs"
@@ -115,6 +115,7 @@
pPReadData.R_PP_TaskNum = commonStackerCrane.CurrentTaskNum.ObjToInt();
pPReadData.R_PP_WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType);
pPReadData.R_PP_TrayType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TrayType);
+ pPReadData.R_PP_Column = commonStackerCrane.Communicator.Read<short>("DB11.42.0");
string pPData = JsonConvert.SerializeObject(pPReadData);
_webSocketServer.PublishAllClientPayload(pPData);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs"
index ec69ca0..c62c934 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs"
@@ -248,7 +248,7 @@
if (item.StationCode == "7003") {
if (conveyorLineSignalRead1.STB && conveyorLineStatus1.Online && conveyorLineStatus1.Goods && !conveyorLineStatus1.Alarm && !conveyorLineSignalWrite1.ACK)
{
- StackerCraneJob_GM.gMReadData.R_GM_Boxcode = device.Communicator.Read<string>("DB900.478.0");
+ StackerCraneJob_GM.gMReadData.R_GM_Boxcode = device.Communicator.Read<string>("DB900.438.0");
}
StackerCraneJob_GM.gMReadData.R_GM_HandShake3 = conveyorLineStatus1.HandShake;
StackerCraneJob_GM.gMReadData.R_GM_Online3 = conveyorLineStatus1.Online;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/GMReadData.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/GMReadData.cs"
index a873676..8396776 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/GMReadData.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/GMReadData.cs"
@@ -38,9 +38,14 @@
/// </summary>
public short R_GM_TrayType;
+ /// <summary>
+ /// 褰撳墠鍒�
+ /// </summary>
+ public short R_GM_Column;
+
///绔欏彴
-
+
///<summary>
/// 璇诲彇鏉$爜
/// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs"
index d90867c..3dd3841 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs"
@@ -30,6 +30,7 @@
using AutoMapper;
using HslCommunication.WebSocket;
using WIDESEAWCS_Tasks.骞茶啘浠�;
+using WIDESEAWCS_Tasks.鏉挎潗浠�;
namespace WIDESEAWCS_Tasks
{
@@ -122,6 +123,7 @@
gMReadData.R_GM_TaskNum = commonStackerCrane.CurrentTaskNum.ObjToInt();
gMReadData.R_GM_WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType);
gMReadData.R_GM_TrayType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TrayType);
+ gMReadData.R_GM_Column = commonStackerCrane.Communicator.Read<short>("DB11.42.0");
string gMData = JsonConvert.SerializeObject(gMReadData);
_webSocketServer.PublishAllClientPayload(gMData);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/BCReadData.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/BCReadData.cs"
index aed91ab..32fec1b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/BCReadData.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/BCReadData.cs"
@@ -37,5 +37,10 @@
/// 鎵樼洏绫诲瀷
/// </summary>
public short R_BC_TrayType;
+
+ /// <summary>
+ /// 褰撳墠鍒�
+ /// </summary>
+ public short R_BC_Column;
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
index 165bfac..f50027c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
@@ -139,6 +139,7 @@
bCReadData.R_BC_TaskNum = commonStackerCrane.CurrentTaskNum.ObjToInt();
bCReadData.R_BC_WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType);
bCReadData.R_BC_TrayType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TrayType);
+ bCReadData.R_BC_Column = commonStackerCrane.Communicator.Read<short>("DB11.42.0");
string bCData = JsonConvert.SerializeObject(bCReadData);
_webSocketServer.PublishAllClientPayload(bCData);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs"
index 345e549..cc505fa 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs"
@@ -25,6 +25,7 @@
using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
using WIDESEAWCS_Tasks.HoisterJob;
using WIDESEAWCS_Tasks.StackerCraneJob;
+using WIDESEAWCS_Tasks.鏉挎潗浠�;
using WIDESEAWCS_Tasks.娌瑰ⅷ浠�;
using WIDESEAWCS_Tasks.闃荤剨浠�;
@@ -99,6 +100,7 @@
yMReadData.R_YM_TaskNum = commonStackerCrane.CurrentTaskNum.ObjToInt();
yMReadData.R_YM_WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType);
yMReadData.R_YM_TrayType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TrayType);
+ yMReadData.R_YM_Column = commonStackerCrane.Communicator.Read<short>("DB11.42.0");
string yMData = JsonConvert.SerializeObject(yMReadData);
_webSocketServer.PublishAllClientPayload(yMData);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/YMReadData.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/YMReadData.cs"
index 43c68fd..7083907 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/YMReadData.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/YMReadData.cs"
@@ -38,6 +38,11 @@
/// </summary>
public short R_YM_TrayType;
+ /// <summary>
+ /// 褰撳墠鍒�
+ /// </summary>
+ public short R_YM_Column;
+
///鎻愬崌鏈�
/// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/CSJReadData.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/CSJReadData.cs"
index 756296d..9f83cf3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/CSJReadData.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/CSJReadData.cs"
@@ -38,6 +38,11 @@
/// </summary>
public short R_CSJ_TrayType;
+ /// <summary>
+ /// 褰撳墠鍒�
+ /// </summary>
+ public short R_CSJ_Column;
+
///鍚勭珯鍙拌鍙�103
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/StackerCraneJob_CSJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/StackerCraneJob_CSJ.cs"
index 1765c23..698bb33 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/StackerCraneJob_CSJ.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/StackerCraneJob_CSJ.cs"
@@ -28,6 +28,7 @@
using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
using WIDESEAWCS_Tasks.HoisterJob;
using WIDESEAWCS_Tasks.StackerCraneJob;
+using WIDESEAWCS_Tasks.鏉挎潗浠�;
using WIDESEAWCS_Tasks.娴嬭瘯鏋朵粨;
namespace WIDESEAWCS_Tasks
@@ -112,6 +113,7 @@
cSJReadData.R_CSJ_TaskNum = commonStackerCrane.CurrentTaskNum.ObjToInt();
cSJReadData.R_CSJ_WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType);
cSJReadData.R_CSJ_TrayType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TrayType);
+ cSJReadData.R_CSJ_Column = commonStackerCrane.Communicator.Read<short>("DB11.42.0");
string cSJData = JsonConvert.SerializeObject(cSJReadData);
_webSocketServer.PublishAllClientPayload(cSJData);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/StackerCraneJob_ZH.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/StackerCraneJob_ZH.cs"
index 7450280..9de79a1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/StackerCraneJob_ZH.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/StackerCraneJob_ZH.cs"
@@ -29,6 +29,7 @@
using AutoMapper;
using WIDESEAWCS_Tasks.闃荤剨浠�;
using HslCommunication.WebSocket;
+using WIDESEAWCS_Tasks.鏉挎潗浠�;
namespace WIDESEAWCS_Tasks
{
@@ -111,6 +112,7 @@
zHReadData.R_ZH_TaskNum = commonStackerCrane.CurrentTaskNum.ObjToInt();
zHReadData.R_ZH_WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType);
zHReadData.R_ZH_TrayType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TrayType);
+ zHReadData.R_ZH_Column = commonStackerCrane.Communicator.Read<short>("DB11.42.0");
string zHData = JsonConvert.SerializeObject(zHReadData);
_webSocketServer.PublishAllClientPayload(zHData);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/ZHReadData.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/ZHReadData.cs"
index 583f3cd..c15e96c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/ZHReadData.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/ZHReadData.cs"
@@ -38,8 +38,13 @@
/// </summary>
public short R_ZH_TrayType;
+ /// <summary>
+ /// 褰撳墠鍒�
+ /// </summary>
+ public short R_ZH_Column;
+
///鍚勭珯鍙拌鍙�301
-
+
///鍙栬揣鎵樼洏绫诲瀷(璇�)
public short R_ZH_TakePalletType1;
/// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
index f141048..49bdccf 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
@@ -219,6 +219,15 @@
onClick: function () {
}
},
+{
+ name: "鏇存柊鐗╂枡鏄惁杩囨湡",
+ icon: '',
+ class: '',
+ value: 'UpdateExpirationlabel',
+ type: 'success',
+ onClick: function () {
+ }
+},
]
export default buttons
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js"
index 99ff80d..f742f72 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js"
@@ -2,66 +2,79 @@
//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
let extension = {
- components: {
- //鏌ヨ鐣岄潰鎵╁睍缁勪欢
- gridHeader: '',
- gridBody: '',
- gridFooter: '',
- //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
- modelHeader: '',
- modelBody: '',
- modelFooter: ''
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() {
+ let UpdateExpirationlabelBtn = this.buttons.find(x => x.value == 'UpdateExpirationlabel');
+ if (UpdateExpirationlabelBtn) {
+ UpdateExpirationlabelBtn.onClick = function () {
+ this.http
+ .post("api/StockInfo/UpdateExpirationlabel", "鏁版嵁澶勭悊涓�...")
+ .then((x) => {
+ if (x.status) {
+ this.$Message.success('鏇存柊瀹屾垚');
+ this.refresh();
+ } else {
+ return this.$error(x.message);
+ }
+ });
+ }
+ }
},
- tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
- buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
- methods: {
- //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
- onInit() {
-
- },
- onInited() {
- //妗嗘灦鍒濆鍖栭厤缃悗
- //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
- //this.detailOptions.columns.forEach(column=>{ });
- },
- searchBefore(param) {
- //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
- //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
- return true;
- },
- searchAfter(result) {
- //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
- return true;
- },
- addBefore(formData) {
- //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
- return true;
- },
- updateBefore(formData) {
- //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
- return true;
- },
- rowClick({ row, column, event }) {
- //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
- this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
- },
- modelOpenAfter(row) {
- // 鐐瑰嚮缂栬緫鎸夐挳寮瑰嚭妗嗗悗鎵ц
- if (this.currentAction === 'Edit') { // 鍒ゆ柇褰撳墠鏄紪杈戞搷浣�
- // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛锛堝亣璁句粠鍏ㄥ眬鍙橀噺鑾峰彇锛屽叿浣撴牴鎹綘鐨勯」鐩疄鐜帮級
- const currentUser = this.$store.state.userInfo?.username || 'system';
-
- // 鑾峰彇褰撳墠鏃堕棿骞舵牸寮忓寲涓哄悗绔渶瑕佺殑鏍煎紡
- const now = new Date();
- const formattedDate = now.toISOString().slice(0, 19).replace('T', ' ');
-
- // 璁剧疆淇敼浜哄瓧娈�
- this.editFormFields.modifier = currentUser;
- // 璁剧疆淇敼鏃堕棿瀛楁
- this.editFormFields.modifyDate = formattedDate;
- }
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ //this.detailOptions.columns.forEach(column=>{ });
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ // 鐐瑰嚮缂栬緫鎸夐挳寮瑰嚭妗嗗悗鎵ц
+ if (this.currentAction === 'Edit') { // 鍒ゆ柇褰撳墠鏄紪杈戞搷浣�
+ // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛锛堝亣璁句粠鍏ㄥ眬鍙橀噺鑾峰彇锛屽叿浣撴牴鎹綘鐨勯」鐩疄鐜帮級
+ const currentUser = this.$store.state.userInfo?.username || 'system';
+
+ // 鑾峰彇褰撳墠鏃堕棿骞舵牸寮忓寲涓哄悗绔渶瑕佺殑鏍煎紡
+ const now = new Date();
+ const formattedDate = now.toISOString().slice(0, 19).replace('T', ' ');
+
+ // 璁剧疆淇敼浜哄瓧娈�
+ this.editFormFields.modifier = currentUser;
+ // 璁剧疆淇敼鏃堕棿瀛楁
+ this.editFormFields.modifyDate = formattedDate;
}
}
- };
- export default extension;
-
\ No newline at end of file
+ }
+};
+export default extension;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs"
index 03267dc..d196516 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs"
@@ -214,6 +214,7 @@
Unit = item.Unit,
WarehouseId = warehouse.WarehouseId,
RowNo = item.RowId,
+ PurchaseOrderId = purchaseOrder.Id,
};
purchaseOrderDetails.Add(purchaseOrderDetail);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs"
index 696e8d3..2fa6511 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs"
@@ -135,6 +135,11 @@
{
return content.Error($"璁㈠崟{item.SaleOrder}缁堢瀹㈡埛鑾峰彇澶辫触!");
}
+ // 鏂板锛氬垽鏂璂ata鏄惁涓虹┖闆嗗悎
+ if (responseContent.Data == null || responseContent.Data.Count == 0)
+ {
+ return content.Error($"璁㈠崟{item.SaleOrder}鍦‥RP涓棤瀵瑰簲缁堢瀹㈡埛鏁版嵁!");
+ }
//鍒ゆ柇缁堢瀹㈡埛鏄惁瀛樺湪
Dt_CustomerInfo? customerInfoEnd = customerInfos.Where(x => x.Code == responseContent.Data[0].Endcustomer).FirstOrDefault();
if (customerInfoEnd == null)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
index 092924b..9004670 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
@@ -94,7 +94,7 @@
public List<Dt_ProStockInfo> GetProStocks(Dt_ErpProScrapSheetDetail erpProScrapSheetDetail, List<string> locationInfos)
{
List<Dt_ProStockInfo>? proStockInfos = null;
- proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode) && x.ProStockAttribute == ProStockAttributeEnum.鎴愬搧.ObjToInt())
+ proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode) && (x.ProStockAttribute == ProStockAttributeEnum.鎴愬搧.ObjToInt()|| x.ProStockAttribute == ProStockAttributeEnum.灏炬暟.ObjToInt()))
.Includes(x => x.proStockInfoDetails)
.Where(x => x.proStockInfoDetails
.Any(v =>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs"
index 30b840b..f49da2d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs"
@@ -116,6 +116,11 @@
//鏌ユ壘鍙敤鎶ュ簾搴撳瓨
public List<Dt_ProStockInfo> GetUseableStocks(int warehoseId, Dt_ErpProScrapSheetDetail erpProScrapSheetDetail)
{
+ //涓哄熬鏁颁粨鏃舵姤搴熷嚭搴�
+ if(warehoseId == 8)
+ {
+ warehoseId = 7;
+ }
List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(warehoseId);
return BaseDal.GetProStocks(erpProScrapSheetDetail, locationCodes);
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index dd80c6b..9c87675 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -1212,7 +1212,10 @@
BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐鍒犻櫎 : OperateTypeEnum.鑷姩鍒犻櫎);
_stockService.ProStockInfoService.Repository.DeleteAndMoveIntoHty(proStockInfo, App.User.UserId == 0 ? OperateTypeEnum.鑷姩鍒犻櫎 : OperateTypeEnum.浜哄伐鍒犻櫎);
_stockService.ProStockInfoDetailService.Repository.DeleteAndMoveIntoHty(proStockInfo.proStockInfoDetails, App.User.UserId == 0 ? OperateTypeEnum.鑷姩鍒犻櫎 : OperateTypeEnum.浜哄伐鍒犻櫎);
- _basicService.LocationInfoService.UpdateLocationStatus(prolocationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+ if (prolocationInfo != null)
+ {
+ _basicService.LocationInfoService.UpdateLocationStatus(prolocationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+ }
_unitOfWorkManage.CommitTran();
return WebResponseContent.Instance.OK();
}
@@ -1229,7 +1232,10 @@
BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐鍒犻櫎 : OperateTypeEnum.鑷姩鍒犻櫎);
_stockService.ProStockInfoService.Repository.UpdateData(proStockInfo);
_stockService.ProStockInfoDetailService.Repository.UpdateData(proStockInfo.proStockInfoDetails);
- _basicService.LocationInfoService.UpdateLocationStatus(prolocationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+ if (prolocationInfo != null)
+ {
+ _basicService.LocationInfoService.UpdateLocationStatus(prolocationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+ }
_unitOfWorkManage.CommitTran();
return WebResponseContent.Instance.OK();
}
@@ -1335,6 +1341,7 @@
}
catch(Exception ex)
{
+ _unitOfWorkManage.RollbackTran();
return WebResponseContent.Instance.Error(ex.Message);
}
}
@@ -1423,6 +1430,7 @@
}
catch (Exception ex)
{
+ _unitOfWorkManage.RollbackTran();
return WebResponseContent.Instance.Error(ex.Message);
}
}
--
Gitblit v1.9.3