From fcf0f53de620c6f3c6218e59dbdeff01fda4eb3b Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期四, 23 四月 2026 08:38:07 +0800
Subject: [PATCH] fix: 修复WCS和WMS系统中的多个问题
---
Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/robotState.jsx | 40 +++-
Code/.omc/state/mission-state.json | 110 +++++++-----
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs | 4
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs | 12
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json | 2
Code/WCS/WIDESEAWCS_Client/src/api/http.js | 2
Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs | 2
Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/OutboundTimeConstants.cs | 4
Code/WCS/WIDESEAWCS_Client/src/views/taskinfo/robotState.vue | 46 ++---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs | 5
Code/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.jsx | 23 --
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json | 18 +-
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs | 2
Code/.omc/state/last-tool-error.json | 8
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs | 4
Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs | 17 +-
Code/WMS/WIDESEA_WMSClient/src/views/stock/groupPalle.vue | 9 +
Code/.omc/state/subagent-tracking.json | 42 ++++
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs | 2
Code/WMS/WIDESEA_WMSClient/src/extension/stock/groupPalle.jsx | 69 +-------
20 files changed, 217 insertions(+), 204 deletions(-)
diff --git a/Code/.omc/state/last-tool-error.json b/Code/.omc/state/last-tool-error.json
index 5f72dd0..5bb5278 100644
--- a/Code/.omc/state/last-tool-error.json
+++ b/Code/.omc/state/last-tool-error.json
@@ -1,7 +1,7 @@
{
"tool_name": "Bash",
- "tool_input_preview": "{\"command\":\"cd \\\"D:/Git/ShanMeiXinNengYuan/Code\\\" && dotnet build WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln 2>&1\",\"timeout\":120000,\"description\":\"Build WCS solution to verify compilation\"}",
- "error": "Exit code 1\n 姝e湪纭畾瑕佽繕鍘熺殑椤圭洰鈥r\n 鎵�鏈夐」鐩潎鏄渶鏂扮殑锛屾棤娉曡繕鍘熴�俓r\n WIDESEAWCS_Common -> D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\bin\\Debug\\net8.0\\WIDESEAWCS_Common.dll\r\n WIDESEAWCS_Communicator -> D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\bin\\Debug\\net8.0\\WIDESEAWCS_Communicator.dll\r\n WIDESEAWCS_Core -> D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\bin\\Debug\\net8.0\\WIDESEAWCS_Core.dll\r\n WIDESEAWCS_Model -> D:\\Git\\ShanMeiXinN...",
- "timestamp": "2026-04-21T09:39:52.122Z",
- "retry_count": 1
+ "tool_input_preview": "{\"command\":\"cd \\\"D:/Git/ShanMeiXinNengYuan/Code\\\" && git show 556ce5b --no-stat -p\",\"description\":\"Show full diff for commit 556ce5b (StackerCraneTaskSelector call)\"}",
+ "error": "Exit code 128\nfatal: unrecognized argument: --no-stat",
+ "timestamp": "2026-04-22T07:58:02.431Z",
+ "retry_count": 3
}
\ No newline at end of file
diff --git a/Code/.omc/state/mission-state.json b/Code/.omc/state/mission-state.json
index 1228a50..0740a61 100644
--- a/Code/.omc/state/mission-state.json
+++ b/Code/.omc/state/mission-state.json
@@ -1,5 +1,5 @@
{
- "updatedAt": "2026-04-21T11:39:09.598Z",
+ "updatedAt": "2026-04-22T08:00:38.578Z",
"missions": [
{
"id": "session:9007b9ea-1eb6-4d24-8fe7-2c3a949eac88:none",
@@ -2357,15 +2357,15 @@
"name": "none",
"objective": "Session mission",
"createdAt": "2026-04-21T08:05:57.739Z",
- "updatedAt": "2026-04-21T11:39:09.598Z",
+ "updatedAt": "2026-04-22T08:00:38.578Z",
"status": "done",
- "workerCount": 9,
+ "workerCount": 13,
"taskCounts": {
- "total": 9,
+ "total": 13,
"pending": 0,
"blocked": 0,
"inProgress": 0,
- "completed": 9,
+ "completed": 13,
"failed": 0
},
"agents": [
@@ -2458,64 +2458,80 @@
"latestUpdate": "completed",
"completedSummary": null,
"updatedAt": "2026-04-21T09:39:25.226Z"
+ },
+ {
+ "name": "general-purpose:a40e637",
+ "role": "general-purpose",
+ "ownership": "a40e637b5ac0356a8",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-22T07:54:17.803Z"
+ },
+ {
+ "name": "general-purpose:adcf684",
+ "role": "general-purpose",
+ "ownership": "adcf684708494b341",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-22T07:54:49.075Z"
+ },
+ {
+ "name": "general-purpose:a4a7781",
+ "role": "general-purpose",
+ "ownership": "a4a778186b3c312c8",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-22T07:57:05.481Z"
+ },
+ {
+ "name": "general-purpose:a70a5d0",
+ "role": "general-purpose",
+ "ownership": "a70a5d0efcc81d263",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-22T08:00:38.578Z"
}
],
"timeline": [
{
- "id": "session-start:afb9663c306b7ffb2:2026-04-21T09:36:45.991Z",
- "at": "2026-04-21T09:36:45.991Z",
+ "id": "session-start:a4a778186b3c312c8:2026-04-22T07:55:43.614Z",
+ "at": "2026-04-22T07:55:43.614Z",
"kind": "update",
- "agent": "general-purpose:afb9663",
- "detail": "started general-purpose:afb9663",
- "sourceKey": "session-start:afb9663c306b7ffb2"
+ "agent": "general-purpose:a4a7781",
+ "detail": "started general-purpose:a4a7781",
+ "sourceKey": "session-start:a4a778186b3c312c8"
},
{
- "id": "session-stop:afb9663c306b7ffb2:2026-04-21T09:37:29.377Z",
- "at": "2026-04-21T09:37:29.377Z",
+ "id": "session-stop:a4a778186b3c312c8:2026-04-22T07:57:05.481Z",
+ "at": "2026-04-22T07:57:05.481Z",
"kind": "completion",
- "agent": "general-purpose:afb9663",
+ "agent": "general-purpose:a4a7781",
"detail": "completed",
- "sourceKey": "session-stop:afb9663c306b7ffb2"
+ "sourceKey": "session-stop:a4a778186b3c312c8"
},
{
- "id": "session-start:a5387bf0397247d5c:2026-04-21T09:37:41.613Z",
- "at": "2026-04-21T09:37:41.613Z",
+ "id": "session-start:a70a5d0efcc81d263:2026-04-22T07:57:26.976Z",
+ "at": "2026-04-22T07:57:26.976Z",
"kind": "update",
- "agent": "code-reviewer:a5387bf",
- "detail": "started code-reviewer:a5387bf",
- "sourceKey": "session-start:a5387bf0397247d5c"
+ "agent": "general-purpose:a70a5d0",
+ "detail": "started general-purpose:a70a5d0",
+ "sourceKey": "session-start:a70a5d0efcc81d263"
},
{
- "id": "session-stop:a5387bf0397247d5c:2026-04-21T09:39:25.226Z",
- "at": "2026-04-21T09:39:25.226Z",
+ "id": "session-stop:a70a5d0efcc81d263:2026-04-22T08:00:38.578Z",
+ "at": "2026-04-22T08:00:38.578Z",
"kind": "completion",
- "agent": "code-reviewer:a5387bf",
+ "agent": "general-purpose:a70a5d0",
"detail": "completed",
- "sourceKey": "session-stop:a5387bf0397247d5c"
- },
- {
- "id": "session-stop:a93c9aa6de8251ecb:2026-04-21T09:43:18.886Z",
- "at": "2026-04-21T09:43:18.886Z",
- "kind": "completion",
- "agent": "general-purpose:adfd244",
- "detail": "completed",
- "sourceKey": "session-stop:a93c9aa6de8251ecb"
- },
- {
- "id": "session-stop:a34767c74aa84d9d8:2026-04-21T11:30:52.701Z",
- "at": "2026-04-21T11:30:52.701Z",
- "kind": "completion",
- "agent": "general-purpose:adfd244",
- "detail": "completed",
- "sourceKey": "session-stop:a34767c74aa84d9d8"
- },
- {
- "id": "session-stop:aecf873500f38d936:2026-04-21T11:39:09.598Z",
- "at": "2026-04-21T11:39:09.598Z",
- "kind": "completion",
- "agent": "general-purpose:adfd244",
- "detail": "completed",
- "sourceKey": "session-stop:aecf873500f38d936"
+ "sourceKey": "session-stop:a70a5d0efcc81d263"
}
]
}
diff --git a/Code/.omc/state/subagent-tracking.json b/Code/.omc/state/subagent-tracking.json
index bf72009..ed732a5 100644
--- a/Code/.omc/state/subagent-tracking.json
+++ b/Code/.omc/state/subagent-tracking.json
@@ -1535,10 +1535,46 @@
"status": "completed",
"completed_at": "2026-04-21T09:39:25.224Z",
"duration_ms": 103611
+ },
+ {
+ "agent_id": "a40e637b5ac0356a8",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-22T07:53:22.787Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-22T07:54:17.801Z",
+ "duration_ms": 55014
+ },
+ {
+ "agent_id": "adcf684708494b341",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-22T07:53:22.841Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-22T07:54:49.074Z",
+ "duration_ms": 86233
+ },
+ {
+ "agent_id": "a4a778186b3c312c8",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-22T07:55:43.614Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-22T07:57:05.479Z",
+ "duration_ms": 81865
+ },
+ {
+ "agent_id": "a70a5d0efcc81d263",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-22T07:57:26.976Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-22T08:00:38.576Z",
+ "duration_ms": 191600
}
],
- "total_spawned": 144,
- "total_completed": 166,
+ "total_spawned": 147,
+ "total_completed": 170,
"total_failed": 0,
- "last_updated": "2026-04-21T13:08:04.028Z"
+ "last_updated": "2026-04-22T08:00:38.695Z"
}
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Client/src/api/http.js b/Code/WCS/WIDESEAWCS_Client/src/api/http.js
index 0d7cc1f..57f0d9f 100644
--- a/Code/WCS/WIDESEAWCS_Client/src/api/http.js
+++ b/Code/WCS/WIDESEAWCS_Client/src/api/http.js
@@ -12,7 +12,7 @@
let loadingInstance;
let loadingStatus = false;
if (process.env.NODE_ENV == 'development') {
- axios.defaults.baseURL = window.webConfig.webApiBaseUrl;
+ axios.defaults.baseURL = window.webConfig.webApiProduction;
}
else if (process.env.NODE_ENV == 'debug') {
axios.defaults.baseURL = window.webConfig.webApiBaseUrl;
diff --git a/Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/robotState.jsx b/Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/robotState.jsx
index 0dfb0c9..3f7431e 100644
--- a/Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/robotState.jsx
+++ b/Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/robotState.jsx
@@ -12,42 +12,52 @@
tableAction: "",
buttons: { view: [], box: [], detail: [] },
methods: {
+ // 鏂规硶鐩殑锛氶〉闈㈠垵濮嬪寲鏃舵墽琛岃嚜瀹氫箟閫昏緫銆�
+ // 鍙傛暟锛氭棤銆�
+ // 杩斿洖鍊硷細鏃犮��
onInit() {},
+ // 鏂规硶鐩殑锛氶〉闈㈠垵濮嬪寲瀹屾垚鍚庢墽琛岃嚜瀹氫箟閫昏緫銆�
+ // 鍙傛暟锛氭棤銆�
+ // 杩斿洖鍊硷細鏃犮��
onInited() {},
+ // 鏂规硶鐩殑锛氭煡璇㈠墠澶勭悊鏌ヨ鏉′欢銆�
+ // 鍙傛暟锛歱aram 鏌ヨ鍙傛暟瀵硅薄銆�
+ // 杩斿洖鍊硷細true 缁х画鏌ヨ锛宖alse 缁堟鏌ヨ銆�
searchBefore(param) {
return true;
},
+ // 鏂规硶鐩殑锛氭煡璇㈠悗澶勭悊杩斿洖缁撴灉銆�
+ // 鍙傛暟锛歳esult 鍚庣杩斿洖鏁版嵁銆�
+ // 杩斿洖鍊硷細true 缁х画娓叉煋锛宖alse 缁堟鍚庣画澶勭悊銆�
searchAfter(result) {
return true;
},
+ // 鏂规硶鐩殑锛氭柊澧炲墠鏍¢獙鎴栬ˉ鍏呮彁浜ゅ瓧娈点��
+ // 鍙傛暟锛歠ormData 琛ㄥ崟鎻愪氦瀵硅薄銆�
+ // 杩斿洖鍊硷細true 缁х画鎻愪氦锛宖alse 缁堟鎻愪氦銆�
addBefore(formData) {
return true;
},
- addAfter(result) {
- return true;
- },
-
+ // 鏂规硶鐩殑锛氱紪杈戝墠鏍¢獙鎴栬ˉ鍏呮彁浜ゅ瓧娈点��
+ // 鍙傛暟锛歠ormData 琛ㄥ崟鎻愪氦瀵硅薄銆�
+ // 杩斿洖鍊硷細true 缁х画鎻愪氦锛宖alse 缁堟鎻愪氦銆�
updateBefore(formData) {
return true;
},
- updateAfter(result) {
- return true;
- },
+ // 鏂规硶鐩殑锛氱偣鍑昏鏃舵墿灞曞鐞嗐��
+ // 鍙傛暟锛歳ow 琛屾暟鎹紝column 鍒楅厤缃紝event 鍘熷浜嬩欢銆�
+ // 杩斿洖鍊硷細鏃犮��
+ rowClick({ row, column, event }) {},
- deleteBefore(ids) {
- return true;
- },
-
- deleteAfter(ids) {
- return true;
- },
-
+ // 鏂规硶鐩殑锛氱紪杈戝脊绐楁墦寮�鍚庢墽琛屾墿灞曢�昏緫銆�
+ // 鍙傛暟锛歳ow 褰撳墠琛屾暟鎹��
+ // 杩斿洖鍊硷細鏃犮��
modelOpenAfter(row) {},
},
};
diff --git a/Code/WCS/WIDESEAWCS_Client/src/views/taskinfo/robotState.vue b/Code/WCS/WIDESEAWCS_Client/src/views/taskinfo/robotState.vue
index 3547526..c90456f 100644
--- a/Code/WCS/WIDESEAWCS_Client/src/views/taskinfo/robotState.vue
+++ b/Code/WCS/WIDESEAWCS_Client/src/views/taskinfo/robotState.vue
@@ -1,15 +1,7 @@
<template>
- <view-grid
- ref="grid"
- :columns="columns"
- :detail="detail"
- :editFormFields="editFormFields"
- :editFormOptions="editFormOptions"
- :searchFormFields="searchFormFields"
- :searchFormOptions="searchFormOptions"
- :table="table"
- :extend="extend"
- >
+ <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
+ :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
+ :table="table" :extend="extend">
</view-grid>
</template>
@@ -150,24 +142,30 @@
const columns = ref([
{ field: "ipAddress", title: "IP鍦板潃", type: "string", width: 140, align: "left" },
{ field: "version", title: "鐗堟湰", type: "int", width: 80, align: "left" },
- { field: "robotRunMode", title: "杩愯妯″紡", type: "int", width: 100, bind: { key: "robotRunMode", data: [{ key: 1, value: "鎵嬪姩妯″紡" },{ key: 2, value: "鑷姩妯″紡" }] }, align: "center" },
- { field: "robotControlMode", title: "鎺у埗妯″紡", type: "int", width: 100, bind: { key: "robotControlMode", data: [{ key: 1, value: "瀹㈡埛绔帶鍒�" },{ key: 2, value: "鍏朵粬" }] }, align: "center" },
- { field: "robotArmObject", title: "鎵嬭噦鐘舵��", type: "int", width: 90, bind: { key: "robotArmObject", data: [{ key: 0, value: "绌洪棽"}, { key: 1, value: "鏈夌墿鏂�" }] }, align: "center" },
- { field: "homed", title: "鍥為浂鐘舵��", type: "string", width: 100, align: "center" },
- { field: "currentAction", title: "褰撳墠鍔ㄤ綔", type: "string", width: 100, align: "center" },
- { field: "operStatus", title: "杩愯鐘舵��", type: "string", width: 100, align: "center" },
+ { field: "robotRunMode", title: "杩愯妯″紡", type: "int", width: 100, bind: { key: "robotRunMode", data: [{ key: 1, value: "鎵嬪姩妯″紡" }, { key: 2, value: "鑷姩妯″紡" }] }, align: "center" },
+ { field: "robotControlMode", title: "鎺у埗妯″紡", type: "int", width: 100, bind: { key: "robotControlMode", data: [{ key: 1, value: "瀹㈡埛绔帶鍒�" }, { key: 2, value: "鍏朵粬" }] }, align: "center" },
+ { field: "robotArmObject", title: "鎵嬭噦鐘舵��", type: "int", width: 90, bind: { key: "robotArmObject", data: [{ key: 0, value: "绌洪棽" }, { key: 1, value: "鏈夌墿鏂�" }] }, align: "center" },
+ { field: "homed", title: "鍥為浂鐘舵��", type: "string", width: 100, align: "center", bind: { key: "homed", data: [{ key: "Homed", value: "鍥為浂" }, { key: "Homing", value: "鍥為浂涓�" }] }, },
+ { field: "currentAction", title: "褰撳墠鍔ㄤ綔", type: "string", width: 100, align: "center", bind: { key: "currentAction", data: [{ key: "Picking", value: "姝e湪鍙栬揣" }, { key: "Putting", value: "姝e湪鏀捐揣" }, { key: "AllPickFinished", value: "鍏ㄩ儴鍙栬揣瀹屾垚" }, { key: "AllPutFinished", value: "鍏ㄩ儴鏀捐揣瀹屾垚" }, { key: "PickFinished", value: "鍙栬揣瀹屾垚" }, { key: "PutFinished", value: "鏀捐揣瀹屾垚" }] }, },
+ { field: "operStatus", title: "杩愯鐘舵��", type: "string", width: 100, align: "center", hidden: true },
{ field: "robotTaskTotalNum", title: "浠诲姟鎬绘暟", type: "int", width: 90, align: "center" },
- { field: "isSplitPallet", title: "鎷嗙洏", type: "byte", width: 60, align: "center" },
- { field: "isGroupPallet", title: "缁勭洏", type: "byte", width: 60, align: "center" },
- { field: "isInFakeBatteryMode", title: "鍋囩數鑺�", type: "byte", width: 70, align: "center" },
+ { field: "isSplitPallet", title: "鎷嗙洏", type: "byte", width: 60, align: "center", bind: { key: "isTrue", data: [] }, },
+ { field: "isGroupPallet", title: "缁勭洏", type: "byte", width: 60, align: "center" , bind: { key: "isTrue", data: [] }, },
+ { field: "isInFakeBatteryMode", title: "鍋囩數鑺�", type: "byte", width: 70, align: "center" , bind: { key: "isTrue", data: [] }, },
{ field: "currentBatchIndex", title: "鎵规", type: "int", width: 60, align: "center" },
{ field: "changePalletPhase", title: "鎹㈢洏闃舵", type: "int", width: 80, align: "center" },
- { field: "isScanNG", title: "鎵爜NG", type: "byte", width: 80, align: "center" },
- { field: "batteryArrived", title: "鐢佃姱鍒颁綅", type: "byte", width: 80, align: "center" },
- { field: "isEventSubscribed", title: "宸茶闃�", type: "byte", width: 70, align: "center" },
+ { field: "isScanNG", title: "鎵爜NG", type: "byte", width: 80, align: "center" , bind: { key: "isTrue", data: [] }, },
+ { field: "batteryArrived", title: "鐢佃姱鍒颁綅", type: "byte", width: 80, align: "center" , bind: { key: "isTrue", data: [] }, },
+ { field: "isEventSubscribed", title: "宸茶闃�", type: "byte", width: 70, align: "center", bind: { key: "isTrue", data: [] }, },
]);
- const detail = ref({});
+ const detail = ref({
+ cnName: "",
+ table: "",
+ columns: [],
+ sortName: "",
+ key: "",
+ });
return {
table,
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
index 6468d80..acebc6b 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -4,15 +4,15 @@
"MinimumLevel": {
"Default": "Information",
"Override": {
- "Microsoft": "Information",
- "Microsoft.AspNetCore": "Information",
- "Microsoft.AspNetCore.Routing": "Information",
- "Microsoft.AspNetCore.Mvc": "Information",
- "Microsoft.AspNetCore.Mvc.Infrastructure": "Information",
- "Microsoft.AspNetCore.Mvc.Filters": "Information",
- "Microsoft.AspNetCore.Mvc.ModelBinding": "Information",
- "Microsoft.EntityFrameworkCore": "Information",
- "Quartz": "Debug"
+ "Microsoft": "Warning",
+ "Microsoft.AspNetCore": "Warning",
+ "Microsoft.AspNetCore.Routing": "Warning",
+ "Microsoft.AspNetCore.Mvc": "Warning",
+ "Microsoft.AspNetCore.Mvc.Infrastructure": "Warning",
+ "Microsoft.AspNetCore.Mvc.Filters": "Warning",
+ "Microsoft.AspNetCore.Mvc.ModelBinding": "Warning",
+ "Microsoft.EntityFrameworkCore": "Warning",
+ "Quartz": "Warning"
}
}
},
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
index dbe7256..2db6032 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
@@ -83,6 +83,7 @@
/// <returns>鎺ㄨ繘缁撴灉銆�</returns>
public WebResponseContent MoveToNextStatus([NotNull] Dt_Task task)
{
+ WebResponseContent content = new WebResponseContent();
if (task.TaskStatus >= (int)TaskOutStatusEnum.OutFinish)
return WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskStatus}銆�");
@@ -92,12 +93,13 @@
if (task.TaskStatus == (int)TaskOutStatusEnum.Line_OutFinish && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
{
+ return WebResponseContent.Instance.OK();
return GetWMSOutboundTrayTask(task);
}
if (task.TaskStatus == (int)TaskOutStatusEnum.Line_OutFinish && task.TaskType == (int)TaskOutboundTypeEnum.OutEmpty)
{
- return _robotTaskService.GetWMSRobotTask(task);
+ _robotTaskService.GetWMSRobotTask(task);
//if (!content.Status)
//{
// return content;
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs
index 3f74943..321df15 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs
@@ -95,7 +95,7 @@
return content.Error($"閫氱煡WMS绯荤粺鍫嗗灈鏈虹Щ搴撳畬鎴愬け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Message}銆�");
}
- return content.Error($"閫氱煡WMS绯荤粺鍫嗗灈鏈虹Щ搴撳畬鎴愭垚鍔�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�");
+ return content.OK($"閫氱煡WMS绯荤粺鍫嗗灈鏈虹Щ搴撳畬鎴愭垚鍔�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�");
}
/// <summary>
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
index 9381bfd..ac18766 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
@@ -275,7 +275,7 @@
ProcessTaskState(conveyorLine, command, task, childDeviceCode);
return Task.CompletedTask;
}
- else if (command.TaskNo == 1 && !command.Barcode.IsNullOrEmpty() && childDeviceCode == "11068")
+ else if (!command.Barcode.IsNullOrEmpty() && childDeviceCode == "11068")
{
if (_robotTaskService.Db.Queryable<Dt_RobotTask>().Any(x => x.RobotTargetAddressPalletCode == command.Barcode))
{
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs
index 62ea8ee..90a5b70 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs
@@ -112,12 +112,12 @@
// 绠�鍗曞懡浠ゅ寘鎷細homing銆乭omed銆乺unning銆乸ausing銆乺unmode銆乧ontrolmode 绛�
if (await _simpleCommandHandler.HandleAsync(messageLower, state))
{
- if (messageLower != "batteryarrived")
- {
- // 澶勭悊鎴愬姛鍚庯紝灏嗗師娑堟伅鍥炲啓鍒板鎴风锛堜繚鎸佸師鏈夎涓猴級
- await _socketClientGateway.SendMessageAsync(client, message);
- QuartzLogHelper.LogInfo(_logger, $"鍙戦�佹秷鎭細銆恵message}銆�", state.RobotCrane?.DeviceName);
- }
+ //if (messageLower != "batteryarrived")
+ //{
+ // 澶勭悊鎴愬姛鍚庯紝灏嗗師娑堟伅鍥炲啓鍒板鎴风锛堜繚鎸佸師鏈夎涓猴級
+ //await _socketClientGateway.SendMessageAsync(client, message);
+ QuartzLogHelper.LogInfo(_logger, $"鎺ユ敹鍒版秷鎭秷鎭�恵message}銆戯紝绾﹀畾涓嶈繑鍥炲彂閫佹秷鎭細銆恵message}銆�", state.RobotCrane?.DeviceName);
+ //}
// 瀹夊叏鏇存柊鐘舵�佸埌鏁版嵁搴�
_stateManager.TryUpdateStateSafely(state.IPAddress, state);
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs
index 9f8efa0..b0c1d9d 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs
@@ -96,6 +96,8 @@
// 鏈哄櫒浜哄凡瀹屾垚鍥為浂
case "homed":
state.Homed = "Homed";
+
+ await _socketClientGateway.SendToClientAsync(state.IPAddress, "Homed");
return true;
// 鏈哄櫒浜烘鍦ㄨ繍琛�
@@ -136,6 +138,8 @@
// 鏄惁鐢佃姱鍒颁綅
case "batteryarrivedno":
state.BatteryArrived = false;
+
+ await _socketClientGateway.SendToClientAsync(state.IPAddress, "batteryarrivedno");
return true;
// ==================== 鍏ㄩ儴瀹屾垚鍛戒护 ====================
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
index 158d35c..c78fc4f 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
@@ -327,11 +327,12 @@
// 妫�鏌ョ數姹犳槸鍚﹀凡鍒颁綅
if (!stateForUpdate.BatteryArrived)
{
+ QuartzLogHelper.LogError(_logger, $"HandlePutFinishedStateAsync锛氱數鑺湭鍒颁綅锛屼换鍔″彿: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
return;
}
// 璇诲彇绾夸綋鐢佃姱鏉$爜
- string trayBarcode1 = RobotBarcodeGenerator.GenerateTrayBarcode("DB40.990");
- string trayBarcode2 = RobotBarcodeGenerator.GenerateTrayBarcode("DB40.1020");
+ string trayBarcode2 = RobotBarcodeGenerator.GenerateTrayBarcode("DB40.990");
+ string trayBarcode1 = RobotBarcodeGenerator.GenerateTrayBarcode("DB40.1020");
// 濡傛灉鏉$爜鐢熸垚鎴愬姛
if (!string.IsNullOrEmpty(trayBarcode1) && !string.IsNullOrEmpty(trayBarcode2))
diff --git a/Code/WMS/WIDESEA_WMSClient/src/extension/stock/groupPalle.jsx b/Code/WMS/WIDESEA_WMSClient/src/extension/stock/groupPalle.jsx
index 520dcd1..791ebf1 100644
--- a/Code/WMS/WIDESEA_WMSClient/src/extension/stock/groupPalle.jsx
+++ b/Code/WMS/WIDESEA_WMSClient/src/extension/stock/groupPalle.jsx
@@ -1,10 +1,11 @@
//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+import RobotSelect from './extend/RobotSelect.vue';
let extension = {
components: {
//鏌ヨ鐣岄潰鎵╁睍缁勪欢
gridHeader: '',
- gridBody: '',
+ gridBody: RobotSelect,
gridFooter: '',
//鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
modelHeader: '',
@@ -28,72 +29,28 @@
<el-button
type="primary"
size="small"
- onClick={($e) => { this.handleInbound(row); }}
- >杩涚珯</el-button>
+ onClick={($e) => { this.handleBind(row); }}
+ >缁戝畾</el-button>
<el-button
type="success"
size="small"
style="margin-left: 8px"
- onClick={($e) => { this.handleOutbound(row); }}
- >鍑虹珯</el-button>
+ onClick={($e) => { this.handleUnbind(row); }}
+ >瑙g粦</el-button>
</div>
);
}
});
},
- // 鎵樼洏杩涚珯鎿嶄綔
- async handleInbound(row) {
- try {
- await this.$confirm(`纭鎵ц鎵樼洏杩涚珯鎿嶄綔锛焅n鎵樼洏缂栧彿锛�${row.palletCode}`, "杩涚珯纭", {
- confirmButtonText: "纭",
- cancelButtonText: "鍙栨秷",
- type: "warning"
- });
-
- const result = await this.http.post("/api/StockInfo/inboundInContainer", {
- palletCode: row.palletCode,
- stockId: row.id
- }, "姝e湪璋冪敤MES鎺ュ彛...");
-
- if (result.status) {
- this.$Message.success(result.message || "鎵樼洏杩涚珯鎴愬姛");
- this.$refs.table.load();
- } else {
- this.$error(result.message || "鎵樼洏杩涚珯澶辫触");
- }
- } catch (error) {
- if (error !== "cancel") {
- this.$error(error.message || "缃戠粶閿欒锛岃绋嶅悗閲嶈瘯");
- }
- }
+ // 鎵樼洏缁勭洏鎿嶄綔
+ handleBind(row) {
+ this.$refs.gridBody.open('bind', row);
},
-
- // 鎵樼洏鍑虹珯鎿嶄綔
- async handleOutbound(row) {
- try {
- await this.$confirm(`纭鎵ц鎵樼洏鍑虹珯鎿嶄綔锛焅n鎵樼洏缂栧彿锛�${row.palletCode}`, "鍑虹珯纭", {
- confirmButtonText: "纭",
- cancelButtonText: "鍙栨秷",
- type: "warning"
- });
-
- const result = await this.http.post("/api/StockInfo/outboundInContainer", {
- palletCode: row.palletCode,
- stockId: row.id
- }, "姝e湪璋冪敤MES鎺ュ彛...");
-
- if (result.status) {
- this.$Message.success(result.message || "鎵樼洏鍑虹珯鎴愬姛");
- this.$refs.table.load();
- } else {
- this.$error(result.message || "鎵樼洏鍑虹珯澶辫触");
- }
- } catch (error) {
- if (error !== "cancel") {
- this.$error(error.message || "缃戠粶閿欒锛岃绋嶅悗閲嶈瘯");
- }
- }
+
+ // 鎵樼洏鎷嗙洏鎿嶄綔
+ handleUnbind(row) {
+ this.$refs.gridBody.open('unbind', row);
},
onInited() {
diff --git a/Code/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.jsx b/Code/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.jsx
index 0204d4e..d76739f 100644
--- a/Code/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.jsx
+++ b/Code/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.jsx
@@ -1,11 +1,10 @@
//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-import RobotSelect from './extend/RobotSelect.vue';
let extension = {
components: {
//鏌ヨ鐣岄潰鎵╁睍缁勪欢
gridHeader: '',
- gridBody: RobotSelect,
+ gridBody: '',
gridFooter: '',
//鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
modelHeader: "",
@@ -26,11 +25,7 @@
render: (h, { row, column, index }) => {
return (
<div>
- <el-button
- type="primary"
- size="small"
- onClick={($e) => { this.handleBind(row); }}
- >缁戝畾</el-button>
+
<el-button
type="primary"
size="small"
@@ -42,22 +37,12 @@
style="margin-left: 8px"
onClick={($e) => { this.handleOutbound(row); }}
>鍑虹珯</el-button>
- <el-button
- type="success"
- size="small"
- style="margin-left: 8px"
- onClick={($e) => { this.handleUnbind(row); }}
- >瑙g粦</el-button>
</div>
);
},
});
},
- // 鎵樼洏缁勭洏鎿嶄綔
- handleBind(row) {
- this.$refs.gridBody.open('bind', row);
- },
// 鎵樼洏杩涚珯鎿嶄綔
async handleInbound(row) {
@@ -129,10 +114,6 @@
}
},
- // 鎵樼洏鎷嗙洏鎿嶄綔
- handleUnbind(row) {
- this.$refs.gridBody.open('unbind', row);
- },
onInited() {
// 妗嗘灦鍒濆鍖栭厤缃悗
diff --git a/Code/WMS/WIDESEA_WMSClient/src/views/stock/groupPalle.vue b/Code/WMS/WIDESEA_WMSClient/src/views/stock/groupPalle.vue
index 17b5580..e2c7501 100644
--- a/Code/WMS/WIDESEA_WMSClient/src/views/stock/groupPalle.vue
+++ b/Code/WMS/WIDESEA_WMSClient/src/views/stock/groupPalle.vue
@@ -123,6 +123,15 @@
align: "left",
bind: { key: "stockStatusEmun", data: [] },
},
+
+ {
+ field: "mesUploadStatus",
+ title: "MES鐘舵��",
+ type: "int",
+ width: 120,
+ align: "left",
+ bind: { key: "mesUploadStatusEnum", data: [] },
+ },
// {
// field: "locationCode",
// title: TEXT.locationCode,
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/OutboundTimeConstants.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/OutboundTimeConstants.cs
index 625e140..b1e0174 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/OutboundTimeConstants.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/Constants/OutboundTimeConstants.cs
@@ -27,9 +27,9 @@
public static class OutboundTimeConstants
{
/// <summary>
- /// GW_1棣栨斁鍏ュ簱鏃舵晥锛�16灏忔椂锛�
+ /// GW_1棣栨斁鍏ュ簱鏃舵晥锛�24灏忔椂锛�
/// </summary>
- public const int OUTBOUND_HOURS_GW1_FIRST = 16;
+ public const int OUTBOUND_HOURS_GW1_FIRST = 24;
/// <summary>
/// GW_1浜屾斁鍏ュ簱鏃舵晥锛�24灏忔椂锛�
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
index 4cbd519..f501dba 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs
@@ -188,7 +188,7 @@
EquipmentCode = equipmentCode,
ResourceCode = resourceCode,
LocalTime = DateTime.Now,
- ContainerCode = taskDto.PalletCode
+ ContainerCode = taskDto.PalletCode,
};
string requestJson = inboundRequest.ToJson();
var palletCode = taskDto.PalletCode;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs
index 0a64c28..83d8cbc 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Tray.cs
@@ -151,10 +151,10 @@
{
try
{
- var task = await BaseDal.QueryFirstAsync(s => s.PalletCode == taskDto.PalletCode);
- if (task == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑浠诲姟");
+ //var task = await BaseDal.QueryFirstAsync(s => s.PalletCode == taskDto.PalletCode);
+ //if (task == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑浠诲姟");
- var location = await _locationInfoService.GetLocationInfo(task.Roadway, task.SourceAddress);
+ var location = await _locationInfoService.GetLocationInfo(taskDto.Roadway, taskDto.SourceAddress);
if (location == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑璐т綅");
var stockInfo = await _stockInfoService.GetStockInfoAsync(taskDto.PalletCode);
@@ -168,23 +168,22 @@
location.LocationStatus = LocationStatusEnum.Free.GetHashCode();
- task.TaskStatus = TaskOutStatusEnum.OutFinish.GetHashCode();
var updateLocationResult = await _locationInfoService.UpdateLocationInfoAsync(location);
var updateStockResult = await _stockInfoService.UpdateStockAsync(stockInfo);
if (!updateLocationResult || !updateStockResult)
return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
- var saveTaskHistoryResult = await SaveTaskHistoryAsync(task, "绌烘墭鐩樺嚭搴撳畬鎴�");
- if (!saveTaskHistoryResult.Status)
- return saveTaskHistoryResult;
+ //var saveTaskHistoryResult = await SaveTaskHistoryAsync(task, "绌烘墭鐩樺嚭搴撳畬鎴�");
+ //if (!saveTaskHistoryResult.Status)
+ // return saveTaskHistoryResult;
var saveStockHistoryResult = await SaveStockHistoryAsync(stockInfo, "绌烘墭鐩樺嚭搴撳畬鎴�");
if (!saveStockHistoryResult.Status)
return saveStockHistoryResult;
- var deleteResult = await BaseDal.DeleteDataAsync(task);
- if (!deleteResult) return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+ //var deleteResult = await BaseDal.DeleteDataAsync(task);
+ //if (!deleteResult) return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
return WebResponseContent.Instance.OK("浠诲姟瀹屾垚");
});
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
index 38551e1..76114fd 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -34,7 +34,7 @@
"MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
//杩炴帴瀛楃涓�
//"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
- "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_ShanMei;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ "ConnectionString": "Data Source=192.168.60.30;Initial Catalog=WIDESEAWMS_ShanMei;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_ShanMei;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"ConnectionString": "Data Source=10.30.4.92;Initial Catalog=WMS_TC;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//鏃MS鏁版嵁搴撹繛鎺�
--
Gitblit v1.9.3