From bb0b78e7ef5317a38adc18a648e41aa8cc4711bc Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期四, 24 七月 2025 15:54:22 +0800
Subject: [PATCH] 程序修改
---
HTML/js/public.js | 6
Wms/WMS.BLL/BllTransServer/RcsServer.cs | 92 +++---
Wms/WMS.Entity/DataEntity/DataStockDetail.cs | 2
Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs | 362 +++++++++++++++++++--------
HTML/views/HouseWithinSetting/HopperTransport.html | 123 ++++++++
Wms/WMS.DAL/Common.cs | 6
HTML/.vscode/settings.json | 2
HTML/views/StatisticalReport/BoxInfor.html | 6
Wms/Utility/Tools/RcsHelper.cs | 31 +
Wms/Wms/Properties/launchSettings.json | 4
Wms/Wms/appsettings.json | 4
Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs | 2
Wms/Model/InterFaceModel/HttpModel.cs | 19 +
Wms/WMS.BLL/SysServer/PalletsServer.cs | 1
Wms/Wms/Controllers/DownApiController.cs | 79 ++++-
15 files changed, 527 insertions(+), 212 deletions(-)
diff --git a/HTML/.vscode/settings.json b/HTML/.vscode/settings.json
index 155422b..a0de46f 100644
--- a/HTML/.vscode/settings.json
+++ b/HTML/.vscode/settings.json
@@ -1,3 +1,3 @@
{
- "liveServer.settings.port": 5503
+ "liveServer.settings.port": 5504
}
\ No newline at end of file
diff --git a/HTML/js/public.js b/HTML/js/public.js
index ed629a9..d299da4 100644
--- a/HTML/js/public.js
+++ b/HTML/js/public.js
@@ -1,9 +1,9 @@
//var IP = "http://47.104.149.73:1991";//鎺ュ彛IP
// var IP = "http://172.16.71.101:8082/";//鎺ュ彛IP
-//var IP = "http://localhost:13243/api";
-var IP = "http://localhost:50515/api"; //鏈湴
+//var IP = "http://192.168.10.203:8090/api";
+// var IP = "https://localhost:44323/api"; //鏈湴
//var IP = "http://172.16.105.10:8086/api";
-// var IP = "http://localhost:44318/api";
+var IP = "http://localhost:58787/api";
//var IP = "http://192.168.1.6:8017";
//var IP = "http://192.168.1.226:8086";
// var IP = "http://192.168.62.200:8888/api"; //bkl鏈嶅姟鍣�
diff --git a/HTML/views/HouseWithinSetting/HopperTransport.html b/HTML/views/HouseWithinSetting/HopperTransport.html
index 6c075df..34badbf 100644
--- a/HTML/views/HouseWithinSetting/HopperTransport.html
+++ b/HTML/views/HouseWithinSetting/HopperTransport.html
@@ -50,6 +50,7 @@
<ul class="layui-tab-title" id="tab">
<li class="layui-this">鍙枡</li>
<li>鍙溅</li>
+ <li>杞﹂棿鍒拌溅闂�</li>
</ul>
<div class="layui-tab-content">
@@ -70,7 +71,7 @@
<div class="layui-form-item">
<label class="layui-form-label" style="width: 80px;">鍖哄煙</label>
<div class="layui-input-block">
- <select id="AreaSelect" name="AreaSelect" lay-filter="AreaSelect" lay-search>
+ <select id="AreaSelect" name="AreaSelect" lay-filter="AreaSelect" >
<option value=""></option>
</select>
@@ -80,7 +81,7 @@
<div class="layui-form-item">
<label class="layui-form-label" style="width: 80px;">鐩爣浣嶇疆</label>
<div class="layui-input-block">
- <select id="LocateSelect" name="LocateSelect" lay-filter="LocateSelect" lay-search>
+ <select id="LocateSelect" name="LocateSelect" lay-filter="LocateSelect" >
<option value=""></option>
</select>
</div>
@@ -88,7 +89,7 @@
<div class="layui-form-item">
<label class="layui-form-label" style="width: 80px;">妗剁被鍨�</label>
<div class="layui-input-block">
- <select id="PalletStatus" name="PalletStatus" lay-filter="PalletStatus" lay-search>
+ <select id="PalletStatus" name="PalletStatus" lay-filter="PalletStatus" >
<option value=""></option>
<option value="0">鍑�妗�</option>
<option value="2">婊℃《</option>
@@ -99,7 +100,7 @@
<div class="layui-form-item" id="StandardDiv">
<label class="layui-form-label" style="width: 80px;">瑙勬牸</label>
<div class="layui-input-block">
- <select name="Standard" lay-filter="Standard" lay-search>
+ <select name="Standard" lay-filter="Standard" >
<option value="400L">400L</option>
<option value="800L">800L</option>
<option value="1000L">1000L</option>
@@ -109,7 +110,7 @@
<div class="layui-form-item" id="SkuSelectDiv">
<label class="layui-form-label" style="width: 80px;">鐗╂枡</label>
<div class="layui-input-block">
- <select id="SkuSelect" name="SkuSelect" lay-filter="SkuSelect" lay-search>
+ <select id="SkuSelect" name="SkuSelect" lay-filter="SkuSelect" >
<option value=""></option>
</select>
</div>
@@ -117,7 +118,7 @@
<div class="layui-form-item" id="LotNoSelectDiv">
<label class="layui-form-label" style="width: 80px;">鎵规</label>
<div class="layui-input-block">
- <select id="LotNoSelect" name="LotNoSelect" lay-filter="LotNoSelect" lay-search>
+ <select id="LotNoSelect" name="LotNoSelect" lay-filter="LotNoSelect" >
<option value=""></option>
</select>
</div>
@@ -141,7 +142,7 @@
<div class="layui-form-item">
<label class="layui-form-label" style="width: 80px;">鍖哄煙</label>
<div class="layui-input-block">
- <select id="AreaSelect2" name="AreaSelect2" lay-filter="AreaSelect2" lay-search>
+ <select id="AreaSelect2" name="AreaSelect2" lay-filter="AreaSelect2" >
<option value=""></option>
</select>
@@ -151,7 +152,7 @@
<div class="layui-form-item">
<label class="layui-form-label" style="width: 80px;">璧峰浣嶇疆</label>
<div class="layui-input-block">
- <select id="LocateSelect2" name="LocateSelect2" lay-filter="LocateSelect2" lay-search>
+ <select id="LocateSelect2" name="LocateSelect2" lay-filter="LocateSelect2" >
<option value=""></option>
</select>
</div>
@@ -159,9 +160,9 @@
<div class="layui-form-item">
<label class="layui-form-label" style="width: 80px;">妗剁被鍨�</label>
<div class="layui-input-block">
- <select id="PalletStatus2" name="PalletStatus2" lay-filter="PalletStatus2" lay-search>
+ <select id="PalletStatus2" name="PalletStatus2" lay-filter="PalletStatus2" >
<option value=""></option>
- <!-- <option value="0">鍑�妗�</option> -->
+ <option value="0">鍑�妗�</option>
<option value="2">婊℃《</option>
<option value="3">鑴忔《</option>
</select>
@@ -180,7 +181,7 @@
<div class="layui-form-item" id="SkuSelectDiv2">
<label class="layui-form-label" style="width: 80px;">鐗╂枡</label>
<div class="layui-input-block">
- <select id="SkuSelect2" name="SkuSelect2" lay-filter="SkuSelect2" lay-search>
+ <select id="SkuSelect2" name="SkuSelect2" lay-filter="SkuSelect2" >
<option value=""></option>
</select>
</div>
@@ -212,6 +213,94 @@
</div>
+
+ <div class="layui-tab-item">
+ <div class="flesDiv" >
+ <form class="layui-form" action="" style="width: 40%;">
+
+ <div class="layui-form-item">
+ <label class="layui-form-label" style="width: 80px;">璧峰鍖哄煙</label>
+ <div class="layui-input-block">
+ <select id="AreaSelect3" name="AreaSelect3" lay-filter="AreaSelect3" >
+ <option value=""></option>
+ </select>
+
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label" style="width: 80px;">璧峰浣嶇疆</label>
+ <div class="layui-input-block">
+ <select id="LocateSelect3" name="LocateSelect3" lay-filter="LocateSelect3" >
+ <option value=""></option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label" style="width: 80px;">鐩爣鍖哄煙</label>
+ <div class="layui-input-block">
+ <select id="AreaSelect4" name="AreaSelect4" lay-filter="AreaSelect4" >
+ <option value=""></option>
+ </select>
+
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label" style="width: 80px;">鐩爣浣嶇疆</label>
+ <div class="layui-input-block">
+ <select id="LocateSelect4" name="LocateSelect4" lay-filter="LocateSelect4" >
+ <option value=""></option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label" style="width: 80px;">妗剁被鍨�</label>
+ <div class="layui-input-block">
+ <select id="PalletStatus2" name="PalletStatus2" lay-filter="PalletStatus2" >
+ <option value=""></option>
+ <option value="0">鍑�妗�</option>
+ <option value="2">婊℃《</option>
+ <option value="3">鑴忔《</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item" id="SkuSelectDiv2">
+ <label class="layui-form-label" style="width: 80px;">鐗╂枡</label>
+ <div class="layui-input-block">
+ <select id="SkuSelect2" name="SkuSelect2" lay-filter="SkuSelect2" >
+ <option value=""></option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item" id="LotNoSelectDiv2">
+ <label class="layui-form-label" style="width: 80px;">鎵规</label>
+ <div class="layui-input-block">
+ <input type="text" id="LotNoInput" name="LotNoInput" placeholder="" autocomplete="off"
+ class="layui-input">
+ </div>
+ </div>
+ <div class="layui-form-item" id="WeightSelectDiv2">
+ <label class="layui-form-label" style="width: 80px;">閲嶉噺</label>
+ <div class="layui-input-block">
+ <input type="text" id="WeightInput" name="WeightInput" placeholder="" autocomplete="off"
+ class="layui-input">
+ </div>
+ </div>
+ <div class="layui-form-item" >
+ <div class="layui-input-block">
+ <button type="submit" class="layui-btn" lay-submit
+ lay-filter="demo3">绔嬪嵆鎻愪氦</button>
+ <button type="reset" class="layui-btn layui-btn-primary">閲嶇疆</button>
+ </div>
+ </div>
+
+ </form>
+ </div>
+
+
+ </div>
+
</div>
</div>
</div>
@@ -237,6 +326,7 @@
var laypage = layui.laypage;
var layer = layui.layer;
var laydate = layui.laydate;
+ var a = 0;
var bodyHeight = $("#body").outerHeight();
@@ -289,17 +379,26 @@
});
return false; // 闃绘榛樿 form 璺宠浆
});
+
// 鍙溅鎻愪氦浜嬩欢
form.on('submit(demo2)', function (data) {
var field = data.field; // 鑾峰彇琛ㄥ崟瀛楁鍊�
+ console.log("field.WeightInput:"+field.WeightInput);
+
+ if(field.WeightInput.length != 0)
+ {
+ a = parseFloat(field.WeightInput);
+ }
var param = {
AreaNo: field.AreaSelect2,
LocateNo : field.LocateSelect2,
PlnStatus:field.PalletStatus2,
SkuNo:field.SkuSelect2,
LotNo:field.LotNoInput,
- Weight:parseFloat(field.WeightInput)
+ Weight:a
};
+ console.log(param);
+
sendData(IP + "/DownApi/jiaoCheHopper", param, 'post', function(res) {
if (res.code == 0) { //鎴愬姛
layer.msg(res.msg, {
diff --git a/HTML/views/StatisticalReport/BoxInfor.html b/HTML/views/StatisticalReport/BoxInfor.html
index fd4280b..4a15210 100644
--- a/HTML/views/StatisticalReport/BoxInfor.html
+++ b/HTML/views/StatisticalReport/BoxInfor.html
@@ -219,9 +219,9 @@
if(d.PalletStatus=='0'){
html = `鍑�妗禶;
} else if(d.PalletStatus=='1') {
- html = `棰勬贩`;
+ html = `娓呮礂涓璥;
} else if(d.PalletStatus=='2') {
- html = `鍗婃垚鍝乣;
+ html = `婊℃《`;
}else if(d.PalletStatus=='3') {
html = `鑴忔《`;
}
@@ -348,7 +348,7 @@
{field: 'LotText', title: '鎵规鎻忚堪', align: 'center'},
//{field: 'SupplierLot', title: '渚涜揣鎵规', align: 'center'},
{field: 'Status', title: '鍒嗛厤鐘舵��', align: 'center', templet: '#TempletStatus'},
- {field: 'Qty', title: '鏁伴噺', align: 'center'},
+ {field: 'Qty', title: '閲嶉噺锛圞G锛�', align: 'center'},
{field: 'LockQty', title: '閿佸畾鏁伴噺', align: 'center',},
{field: 'FrozenQty', title: '鍐荤粨鏁伴噺', align: 'center'},
{field: 'InspectStatus', title: '璐ㄦ鐘舵��', align: 'center', templet: '#InspectStatus1'},
diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs
index 2cb35e1..cd50900 100644
--- a/Wms/Model/InterFaceModel/HttpModel.cs
+++ b/Wms/Model/InterFaceModel/HttpModel.cs
@@ -788,20 +788,31 @@
/// 鏄惁蹇呭~锛氭槸
/// </summary>
public string Message { get; set; }
+ public Data data { get; set; }
/// <summary>
/// 璇锋眰缂栧彿
/// 鏄惁蹇呭~锛氭槸
/// </summary>
- public string ReqCode { get; set; }
+ public string ErrorCode { get; set; }
/// <summary>
- /// 杩斿洖鐨勬暟鎹粨鏋�
- /// 鏄惁蹇呭~锛氬惁
+ /// 璇锋眰缂栧彿
+ /// 鏄惁蹇呭~锛氭槸
/// </summary>
- public string Data { get; set; }
+ public bool success { get; set; }
+
+
}
+public class AgvTaskBindBack
+{
+ public string code { get; set; }
+ public string message { get; set; }
+ public bool success { get; set; }
+}
+
+
/// <summary>
/// AGV鐢宠绌烘墭鐩樺灈鍏ュ簱
/// </summary>
diff --git a/Wms/Utility/Tools/RcsHelper.cs b/Wms/Utility/Tools/RcsHelper.cs
index 568bfda..5242185 100644
--- a/Wms/Utility/Tools/RcsHelper.cs
+++ b/Wms/Utility/Tools/RcsHelper.cs
@@ -25,7 +25,24 @@
public static bool CreateTaskForAgv(TaskDetial taskDetial, string url, out string agvMsg, string priority = null)
{
bool result = false;
- var tasktype = "F12";
+ var tasktype = "";
+ switch (taskDetial.Crtype)
+ {
+ case "1": //鍙《
+ tasktype = "F12";
+ break;
+ case "2": //鍙溅
+ tasktype = "F12";
+ break;
+ case "3": //娓呮礂鏈哄彨鑴忔《
+ tasktype = "F20";
+ break;
+ case "4": //娓呮礂鏈哄彇鍑�妗�
+ tasktype = "F21";
+ break;
+ default:
+ break;
+ }
//璺ㄦゼ灞備换鍔asktype鍊艰祴鍊尖�︹��
//tasktype = "";
@@ -50,6 +67,8 @@
AgvCreateTaskModel taskModel = new AgvCreateTaskModel();
taskModel.taskType = tasktype;
taskModel.targetRoute = pahtList;
+ taskModel.initPriority = 100;
+ taskModel.robotTaskCode = taskDetial.Taskno;
//AGV浠诲姟涓嬪彂鏃跺鍔爃earder:X-LR-REQUEST-ID,鍊间负闅忔満鏁�
long ran = DateTime.Now.Ticks;
@@ -61,7 +80,7 @@
string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV", key);
//瑙f瀽杩斿洖鏁版嵁
var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
- if (agvModel.Code == "0")
+ if (agvModel.Code == "SUCCESS")
{
result = true;//缁欎笅杞︿笅鍙戜换鍔℃垚鍔�
@@ -102,8 +121,8 @@
var jsonData = JsonConvert.SerializeObject(carrierInfo);
string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护", "AGV", key);
//瑙f瀽杩斿洖鏁版嵁
- var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
- if (agvModel.Code == "0")
+ var agvModel = JsonConvert.DeserializeObject<AgvTaskBindBack>(response);
+ if (agvModel.code == "SUCCESS")
{
result = true;//缁欎笅杞︿笅鍙戜换鍔℃垚鍔�
@@ -112,9 +131,9 @@
else
{
var logStr = $@".\log\AGV\涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- LogFile.SaveLogToFile($"涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护寮傚父锛�( {agvModel.Message} ),", logStr);
+ LogFile.SaveLogToFile($"涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护寮傚父锛�( {agvModel.message} ),", logStr);
- agvMsg = agvModel.Message;
+ agvMsg = agvModel.message;
}
return result;
diff --git a/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs b/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
index f497068..7975829 100644
--- a/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
@@ -297,17 +297,19 @@
var locatListWai = locatList.Where(w => string.IsNullOrEmpty(w.AisleOne)).Select(s => s.LocatNo);
//鍏堟壘涓嶉渶瑕佺Щ搴撶殑妗�
- var palletModel = stockDetail.Where(w => locatListWai.Contains(w.LocatNo)).OrderBy(o => o.UpdateTime).FirstOrDefault();
+ var palletModel = stockDetail.Where(w => locatListWai.Contains(w.LocatNo)).OrderByDescending(w => w.UpdateTime).FirstOrDefault();
if (palletModel == null)
{
//鎵鹃渶瑕佺Щ搴撶殑妗�
- palletModel= stockDetail.Where(w => !locatListWai.Contains(w.LocatNo)).OrderBy(o => o.UpdateTime).FirstOrDefault();
+ palletModel= stockDetail.Where(w => !locatListWai.Contains(w.LocatNo)).OrderByDescending(w => w.UpdateTime).FirstOrDefault();
if (palletModel == null)
{
throw new Exception("鏈壘鍒板搴旀《淇℃伅");
}
resultYi = YikuTask(palletModel.PalletNo, taskNo, url,bindUrl);
}
+ palletModel.Status = "2";
+ Db.Updateable(palletModel).ExecuteCommand();
#endregion
//璧峰鍌ㄤ綅鍦板潃淇℃伅
var startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.Status == "1" && w.LocatNo == palletModel.LocatNo);
@@ -328,9 +330,9 @@
Receiver = "RCS",
IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- StartLocat = "",//璧峰浣嶇疆
+ StartLocat = startLoction.LocatNo,//璧峰浣嶇疆
EndLocat = endLocate,//鐩爣浣嶇疆
- PalletNo = "",//鎵樼洏鐮�
+ PalletNo = palletModel.PalletNo,//鎵樼洏鐮�
IsSend = 1,//鏄惁鍙啀娆′笅鍙�
IsCancel = 1,//鏄惁鍙彇娑�
IsFinish = 1,//鏄惁鍙畬鎴�
@@ -359,7 +361,7 @@
//缁欎笅杞︿笅鍙戜换鍔�
logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
//涓嬪彂杞藉叿绫诲瀷
- var bind = RcsHelper.BindPalletAndSite(palletModel.PalletNo, palletModel.LocatNo, url, out string agvBindMsg);
+ var bind = RcsHelper.BindPalletAndSite(palletModel.PalletNo, palletModel.LocatNo, bindUrl, out string agvBindMsg);
if (bind)
{
var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
@@ -371,7 +373,7 @@
//logTaskEntry.IsCancel = 0;
logTaskEntry.BackDate = DateTime.Now;
logTaskEntry.Status = "1";//姝e湪鎵ц
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ Db.Updateable(logTaskEntry).ExecuteCommand();
startLoction.Status = "3";//鍑哄簱涓�
Db.Updateable(startLoction).ExecuteCommand();
@@ -383,14 +385,14 @@
{
logTaskEntry.IsSuccess = 0;
logTaskEntry.Information = agvMsg;
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ Db.Updateable(logTaskEntry).ExecuteCommand();
}
}
else
{
logTaskEntry.IsSuccess = 0;
logTaskEntry.Information = "璐ф灦涓庤揣浣嶇粦瀹氬け璐ワ紝鍘熷洜锛�"+agvBindMsg;
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ Db.Updateable(logTaskEntry).ExecuteCommand();
}
}
@@ -442,11 +444,12 @@
Db.BeginTran();
//妗朵俊鎭�
- var pln = Db.Queryable<SysPallets>().First(w => w.IsDel == "0" && w.PalletNo == plnNo);
+ var pln = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == StartLocate && w.AreaNo == areaNo);
if (pln == null)
{
throw new Exception("鏈煡璇㈠埌妗朵俊鎭�");
}
+ plnNo = pln.PalletNo;
//璧峰鍌ㄤ綅淇℃伅
var startLoction = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.AreaNo == areaNo && m.LocatNo == StartLocate);
@@ -461,10 +464,6 @@
throw new Exception("娌℃湁鏌ヨ鍒扮墿鏂欎俊鎭�");
}
skuName = sku.SkuName;
- }
- else if (plnStatus == "3")
- {
-
}
//鐩爣妤煎眰
var layer = startLoction.Layer;
@@ -502,7 +501,7 @@
CompleteTime = DateTime.Now,
PalletStatus = plnStatus,
- Status = "0",
+ Status = "2",
InspectMark = "0",
BitPalletMark = "0",
InspectStatus = "1",
@@ -513,13 +512,15 @@
{
stockDetail.PalletStatus = plnStatus;
stockDetail.SkuNo = skuNo;
+ stockDetail.SkuName = skuName;
stockDetail.LotNo = lotNo;
stockDetail.Qty = weight;
+ stockDetail.Status = "2";
Db.Updateable(stockDetail).ExecuteCommand();
}
//鍒嗛厤鍌ㄤ綅
- var endLocatInfo = GetLocatModel(house.WareHouseNo, plnStatus, skuNo, pln.Standard);//鐩爣鍌ㄤ綅
+ var endLocatInfo = GetLocatModel(house.WareHouseNo, plnStatus, startLoction.WareHouseNo, skuNo, pln.Standard,lotNo);//鐩爣鍌ㄤ綅
//娌℃湁鍙敤绌哄偍浣�
if (endLocatInfo == null)
{
@@ -575,7 +576,7 @@
//logTaskEntry.IsCancel = 0;
logTaskEntry.BackDate = DateTime.Now;
logTaskEntry.Status = "1";//姝e湪鎵ц
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ Db.Updateable(logTaskEntry).ExecuteCommand();
startLoction.Status = "3";//鍑哄簱涓�
Db.Updateable(startLoction).ExecuteCommand();
@@ -634,10 +635,10 @@
{
throw new Exception($"浠诲姟鍙蜂负:{taskNo}鐨勪换鍔′笉瀛樺湪!");
}
- if (taskInfo.Status != "1" && comeFrom != "WMS")
- {
- throw new Exception($"浠诲姟鍙蜂负:{taskNo}鐨勪换鍔$姸鎬佸紓甯�");
- }
+ //if (taskInfo.Status != "0" && comeFrom != "WMS")
+ //{
+ // throw new Exception($"浠诲姟鍙蜂负:{taskNo}鐨勪换鍔$姸鎬佸紓甯�");
+ //}
#endregion
//寮�鍚簨鍔�
Db.BeginTran();
@@ -680,6 +681,7 @@
throw new Exception($"鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
}
endLocatInfo.Status = "1";//鏈夌墿鍝�
+ endLocatInfo.UpdateTime = DateTime.Now;//鏇存柊鏃堕棿
//淇敼鐩爣鍌ㄤ綅鐘舵��
Db.Updateable(endLocatInfo).ExecuteCommand();
@@ -702,7 +704,7 @@
}
else if (endAreaInfo.Type == "1")//婊℃《鍖�
{
- stockDetail.PalletStatus = "1";
+ stockDetail.PalletStatus = "2";
stockDetail.Status = "0";//寰呭垎閰�
}
else if (endAreaInfo.Type == "2")//鑴忔《鍖�
@@ -764,6 +766,38 @@
{
throw new Exception("闈炲彨鏂欑姸鎬�");
}
+ switch (deviceStation)
+ {
+ case "input"://鍙剰妗�
+ switch (deviceID)
+ {
+ case "2001":
+ deviceID = "1001";
+ break;
+ case "2002":
+ deviceID = "1003";
+ break;
+ default:
+ throw new Exception("鍙剰妗剁偣浣嶅紓甯�");
+ }
+ break;
+ case "output"://鍙溅鎷夊噣妗�
+ switch (deviceID)
+ {
+ case "2001":
+ deviceID = "1002";
+ break;
+ case "2002":
+ deviceID = "1004";
+ break;
+ default:
+ throw new Exception("鍙噣妗剁偣浣嶅紓甯�");
+ }
+ break;
+ default:
+ throw new Exception("鍙枡绫诲瀷寮傚父");
+
+ }
//閫氳繃璁惧鍙锋煡鎵惧埌鎵�灞炶澶囷紙鍖哄煙锛�
var deviceInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode == deviceID);
if (deviceInfo == null)
@@ -775,6 +809,7 @@
var startLoction = new SysStorageLocat();//璧峰鍌ㄤ綅淇℃伅
var endLoction = new SysStorageLocat();//鐩爣鍌ㄤ綅淇℃伅
var palletModel = new DataStockDetail();//鍒嗛厤妗朵俊鎭�
+ string type = "";//鍙枡绫诲瀷
//寮�鍚簨鍔�
Db.BeginTran();
@@ -783,64 +818,117 @@
switch (deviceStation)
{
case "input"://鍙剰妗�
- //鍙《璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙鐩爣鍌ㄤ綅锛�
- endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
+ if (deviceID == "1001" || deviceID == "1003")
+ {
+ type = "3";
+ //鍙《璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙鐩爣鍌ㄤ綅锛�
+ endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
- // 鎵�鏈夊緟鍒嗛厤鐨勮剰妗�
- var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.Status == "0" && w.PalletStatus == "3");
-
- //浼樺厛鏌ユ壘鑴忔《缂撳瓨杞﹂棿
- palletModel = stockDetail.Where(w => w.AreaNo == "C43").OrderByDescending(o => o.UpdateTime).First();
- if (palletModel == null)//鑴忔《缂撳瓨杞﹂棿娌℃湁鑴忔《锛屽啀浠庝笁妤间腑闂寸珯鑴忔《鍖烘煡鎵�
- {
- palletModel = stockDetail.Where(w =>w.WareHouseNo=="M16" && w.AreaNo == "C26").OrderByDescending(o => o.UpdateTime).First();
+ // 鎵�鏈夊緟鍒嗛厤鐨勮剰妗�
+ var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.Status == "0" && w.PalletStatus == "3").OrderByDescending(w => w.UpdateTime).ToList();
+
+ //鍒ゆ柇褰撳墠娓呮礂鏈鸿澶囦笂鏈夊嚑涓剰妗讹紝status锛�2 姝e湪娓呮礂鐨勮剰妗讹紙鐘舵�佽Е鍙戝彉鏇翠负AGV鍙2涓剰妗舵椂瑙﹀彂锛�
+ int ztQty = Db.Queryable<DataStockDetail>().Count(w => w.IsDel == "0" && w.Status == "2" && w.LocatNo == deviceID);
+ if (ztQty == 1)
+ {
+ throw new Exception((deviceID == "1001"?"1":"2") + "鍙锋竻娲楁満鑴忔《宸叉弧锛岄噸澶嶅彨鏂欙紒");
+ }
+
+ //鍏堟煡鐪嬪彨鏂欒澶囦綅鏄惁鏈夎剰妗�
+ if (endLoction.Status == "1")
+ {
+ //鏈夎剰妗剁殑璇濓紝灏嗘洿鏀规妗剁姸鎬�(浠h〃姝ゆ《姝e湪娓呮礂涓�)
+ var qxStock = Db.Queryable<DataStockDetail>().Where(w => w.LocatNo == endLoction.LocatNo).First();
+ qxStock.Status = "2";
+ qxStock.UpdateTime = DateTime.Now;//娓呮礂鏃堕棿
+ Db.Updateable(qxStock).ExecuteCommand();
+ //鏇存敼璁惧鍌ㄤ綅鐘舵�佷负绌哄偍浣�
+ endLoction.Status = "0";
+ Db.Updateable(endLoction).ExecuteCommand();
+ }
+ //浼樺厛鏌ユ壘鑴忔《缂撳瓨杞﹂棿
+ palletModel = stockDetail.Where(w => w.AreaNo == "C54").FirstOrDefault();
+ if (palletModel == null)//鑴忔《缂撳瓨杞﹂棿娌℃湁鑴忔《锛屽啀浠庝笁妤间腑闂寸珯鑴忔《鍖烘煡鎵�
+ {
+ palletModel = stockDetail.Where(w => w.WareHouseNo == "M16" && w.AreaNo == "C26").FirstOrDefault();
+ }
+ if (palletModel == null)//涓夋ゼ涓棿绔欒剰妗跺尯娌℃湁鑴忔《锛屽啀浠庡洓妤间腑闂寸珯鑴忔《鍖烘煡鎵�
+ {
+ palletModel = stockDetail.Where(w => w.WareHouseNo == "M01" && w.AreaNo == "C03").FirstOrDefault();
+ }
+ if (palletModel == null)
+ {
+ throw new Exception("鏃犺剰妗跺彲鍒嗛厤");
+ }
+ //璧峰鍌ㄤ綅鍦板潃淇℃伅
+ startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.Status == "1" && w.LocatNo == palletModel.LocatNo);
+ if (startLoction == null)
+ {
+ throw new Exception($"璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦紝妗跺彿锛歿palletModel.LocatNo}");
+ }
}
- if (palletModel == null)//涓夋ゼ涓棿绔欒剰妗跺尯娌℃湁鑴忔《锛屽啀浠庡洓妤间腑闂寸珯鑴忔《鍖烘煡鎵�
+ else
{
- palletModel = stockDetail.Where(w => w.WareHouseNo == "M01" && w.AreaNo == "C03").OrderByDescending(o => o.UpdateTime).First();
- }
- if (palletModel == null)
- {
- throw new Exception("鏃犺剰妗跺彲鍒嗛厤");
- }
- //璧峰鍌ㄤ綅鍦板潃淇℃伅
- startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.Status == "1" && w.LocatNo == palletModel.LocatNo);
- if (startLoction == null)
- {
- throw new Exception($"璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦紝妗跺彿锛歿palletModel.LocatNo}");
+ throw new Exception("璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
}
break;
case "output"://鍑�妗剁敵璇峰偍浣�
- //鍙《璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
- startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
- //妗朵俊鎭�
- palletModel = Db.Queryable<DataStockDetail>().Where(w => w.WareHouseNo==houseNo && w.AreaNo==deviceInfo.AreaNo && w.LocatNo==startLoction.LocatNo).First();
- if (palletModel == null)
+ if (deviceID == "1002" || deviceID == "1004")
{
- throw new Exception("鏈煡璇㈠埌鍑�妗朵俊鎭�");
+ type = "4";
+ //鍙《璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
+ startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
+ //鑾峰彇娓呮礂鏈轰笂绗竴娆″彨鐨勮剰妗�
+ string locate = deviceID == "1002"?"1001":"1003";
+ palletModel = Db.Queryable<DataStockDetail>().Where(w => w.LocatNo == locate && (w.Status == "2" || w.Status == "0")).OrderBy(o => o.CreateTime).First();
+ if (palletModel == null)
+ {
+ throw new Exception("鏈壘鍒板簱瀛樹腑姝e湪娓呮礂鐨勮剰妗�");
+ }
+ if (!string.IsNullOrEmpty(palletModel.LocatNo))
+ {
+ palletModel.LocatNo = startLoction.LocatNo;
+ palletModel.PalletStatus = "0";
+ palletModel.Status = "0";
+ Db.Updateable(palletModel).ExecuteCommand();
+ }
+ //鍒嗛厤鍌ㄤ綅
+ //鏌ユ壘鎵�鏈夊噣妗跺偍浣�
+ var jtLocate = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0")
+ .OrderBy(w => w.Row).OrderByDescending(w => w.Column).ToList();
+ if (jtLocate.Count == 0)
+ {
+ throw new Exception("娌℃湁绌轰綑鐨勫噣妗跺偍浣�");
+ }
+ //浼樺厛鍒嗛厤鍥涙ゼ涓棿绔欏噣妗跺尯
+ //endLoction = jtLocate.Where(w => w.WareHouseNo == "M01" && w.AreaNo == "C01")
+ // .OrderBy(w => w.Row).OrderByDescending(w => w.Column).FirstOrDefault();
+ //if (endLoction == null)//鍥涙ゼ涓棿绔欏噣妗跺尯娌℃湁绌哄偍浣嶏紝鍐嶄粠涓夋ゼ涓棿绔欏噣妗跺尯鏌ユ壘
+ //{
+ endLoction = jtLocate.Where(w => w.WareHouseNo == "M16" && w.AreaNo == "C24")
+ .OrderBy(w => w.Row).OrderByDescending(w => w.Column).FirstOrDefault();
+ //}
+ if (endLoction == null)//涓夋ゼ涓棿绔欏噣妗跺尯娌℃湁绌哄偍浣嶏紝鍐嶄粠涓夋ゼ娓呮礂闂寸紦瀛樺尯鏌ユ壘 PS锛氬皬杞︾幇鍦ㄨ繕涓嶆敮鎸佹竻娲楁満鐩存帴閫佸線4妤煎噣妗跺尯
+ {
+ endLoction = jtLocate.Where(w => w.WareHouseNo == "M44" && w.AreaNo == "C55")
+ .OrderBy(w => w.Row).OrderByDescending(w => w.Column).FirstOrDefault();
+ }
+ if (endLoction == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍚堥�傚偍浣�");
+ }
+ //string startlono = startLoction.LocatNo == "1001" ? "1002" : "1004";//娓呮礂瀹屾垚鐐逛綅
+ //startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == startlono);
+ //if (startLoction == null)
+ //{
+ // throw new Exception("鏈壘鍒版竻娲楄捣濮嬬偣浣�");
+ //}
}
- //鍒嗛厤鍌ㄤ綅
- //浼樺厛鍒嗛厤鍥涙ゼ涓棿绔欏噣妗跺尯
- endLoction= Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
- && w.WareHouseNo == "M01" && w.AreaNo == "C01")
- .OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
- if (endLoction == null)//鍥涙ゼ涓棿绔欏噣妗跺尯娌℃湁绌哄偍浣嶏紝鍐嶄粠涓夋ゼ涓棿绔欏噣妗跺尯鏌ユ壘
+ else
{
- endLoction = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
- && w.WareHouseNo == "M16" && w.AreaNo == "C24")
- .OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
- }
- if (endLoction == null)//涓夋ゼ涓棿绔欏噣妗跺尯娌℃湁绌哄偍浣嶏紝鍐嶄粠涓夋ゼ娓呮礂闂寸紦瀛樺尯鏌ユ壘
- {
- endLoction = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
- && w.WareHouseNo == "M44" && w.AreaNo == "C55")
- .OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
- }
- if (endLoction == null)
- {
- throw new Exception("鏈煡璇㈠埌鍚堥�傚偍浣�");
+ throw new Exception("璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
}
break;
@@ -848,6 +936,7 @@
throw new Exception("鍙枡鐐逛綅寮傚父");
}
+
var taskNo = new Common().GetMaxNo("TK");
//娣诲姞浠诲姟
var logTaskEntry = new LogTask
@@ -857,9 +946,9 @@
Receiver = "RCS",
IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- StartLocat = "",//璧峰浣嶇疆
+ StartLocat = startLoction.LocatNo,//璧峰浣嶇疆
EndLocat = endLoction.LocatNo,//鐩爣浣嶇疆
- PalletNo = "",//鎵樼洏鐮�
+ PalletNo = palletModel.PalletNo,//鎵樼洏鐮�
IsSend = 1,//鏄惁鍙啀娆′笅鍙�
IsCancel = 1,//鏄惁鍙彇娑�
IsFinish = 1,//鏄惁鍙畬鎴�
@@ -878,7 +967,7 @@
Startport = palletModel.LocatNo,//璧峰浣嶇疆
Endport = endLoction.LocatNo,//鐩爣浣嶇疆
Pallno = palletModel.PalletNo,//妗跺彿
- Crtype = "1",//鍙《
+ Crtype = type,//鍙《
};
string agvMsg = string.Empty;
@@ -897,7 +986,7 @@
//logTaskEntry.IsCancel = 0;
logTaskEntry.BackDate = DateTime.Now;
logTaskEntry.Status = "1";//姝e湪鎵ц
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ Db.Updateable(logTaskEntry).ExecuteCommand();
startLoction.Status = "3";//鍑哄簱涓�
Db.Updateable(startLoction).ExecuteCommand();
@@ -909,14 +998,14 @@
{
logTaskEntry.IsSuccess = 0;
logTaskEntry.Information = agvMsg;
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ Db.Updateable(logTaskEntry).ExecuteCommand();
}
}
else
{
logTaskEntry.IsSuccess = 0;
logTaskEntry.Information = agvBindMsg;
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ Db.Updateable(logTaskEntry).ExecuteCommand();
}
//鎻愪氦浜嬪姟
@@ -934,6 +1023,7 @@
{
try
{
+ bool t = false;
//鍒嗛厤妗剁殑搴撳瓨淇℃伅
var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo);
if (palletInfo == null)
@@ -1022,7 +1112,7 @@
string agvMsg = string.Empty;
//缁欎笅杞︿笅鍙戜换鍔�
logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
- //涓嬪彂杞藉叿涓庤揣浣嶇粦瀹�
+ //涓嬪彂杞藉叿涓庤揣浣嶇粦瀹�
var bind = RcsHelper.BindPalletAndSite(palletInfoYi.LocatNo, palletInfoYi.PalletNo, bindUrl, out string agvBindMsg);
if (bind)
{
@@ -1062,10 +1152,15 @@
throw new Exception($"缁欏皬杞︿笅鍙戠Щ搴撲换鍔″け璐ワ紝妗跺彿锛歿palletInfoYi.PalletNo}");
}
-
+ t = true;
+
+ }
+ else
+ {
+ return t;
}
}
- return true;
+ return t;
}
catch (Exception e)
{
@@ -1086,7 +1181,7 @@
Db.BeginTran();
//鏌ユ壘浠诲姟淇℃伅
- var logTaskInfo = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.TaskNo == taskNo);
+ var logTaskInfo = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "0" && w.TaskNo == taskNo);
if (logTaskInfo == null)
{
throw new Exception("鏈煡璇㈠埌璇ヤ换鍔�");
@@ -1173,6 +1268,7 @@
}
}
+ Db.CommitTran();
}
catch (Exception e)
{
@@ -1220,7 +1316,7 @@
continue;
}
//鍒嗛厤鍌ㄤ綅
- var endLocatInfo = GetLocatModel(itemHouseNo,detailInfo.PalletStatus,detailInfo.SkuNo,detailInfo.Standard);//鐩爣鍌ㄤ綅
+ var endLocatInfo = GetLocatModel(itemHouseNo,detailInfo.PalletStatus,"",detailInfo.SkuNo,detailInfo.Standard,detailInfo.LotNo);//鐩爣鍌ㄤ綅
//娌℃湁鍙敤绌哄偍浣�
if (endLocatInfo == null)
{
@@ -1260,7 +1356,7 @@
Crtype = "2"//鍙《
};
string agvMsg = string.Empty;
- //缁欎笅杞︿笅鍙戜换鍔�
+ //缁欎笅杞︿笅鍙戜换鍔� s
logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
//涓嬪彂杞藉叿涓庤揣浣嶇粦瀹�
var bind = RcsHelper.BindPalletAndSite(detailInfo.PalletNo, detailInfo.LocatNo, bindUrl, out string agvBindMsg);
@@ -1325,7 +1421,7 @@
/// <param name="standard">妗惰鏍�</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
- private SysStorageLocat GetLocatModel(string houseNo, string palletStatus,string skuNo="",string standard="")
+ private SysStorageLocat GetLocatModel(string houseNo, string palletStatus,string zonghong,string skuNo="",string standard="",string lotNo = "")
{
try
{
@@ -1342,44 +1438,88 @@
.OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
break;
case "2"://婊℃《
- //鏌ュ埌鍒版弧妗跺尯鍩熺紪鍙�
- areaNo = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.Type == "1").Select(s => s.AreaNo).First();
- //鍒嗛厤鍌ㄤ綅
- //鍏堟煡鍒板悓鐗╂枡鐨勭粍
- string sql = $@"select Row from SysStorageLocat where WareHouseNo='{houseNo}' and AreaNo='{areaNo}' and LocatNo in(
- select LocatNo from DataStockDetail where SkuNo='{skuNo}' and Standard='{standard}' and WareHouseNo='{houseNo}' and AreaNo='{areaNo}'
- ) group by Row";
-
- List<int> RowList = Db.Ado.SqlQuery<int>(sql).ToList();
- foreach (var rowItem in RowList)
+ //鎬绘贩鍒嗛厤鍌ㄤ綅 锛堜粨搴撶紪鐮丮12,M13锛夛紝鍒嗛厤閫昏緫锛氫紭鍏堝垎閰嶅悓鐗╂枡鐨勭粍锛屽啀鍒嗛厤鍒�3妤间腑闂寸珯锛屾渶鍚庡垎閰嶅埌4妤间腑闂寸珯
+ if (zonghong == "M12" || zonghong == "M13")
{
- endLocatInfo = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
- && w.WareHouseNo == houseNo && w.AreaNo == areaNo && w.Row == rowItem)
- .OrderByDescending(o => o.Column).First();
+ //鍏堟煡鍒板悓鐗╂枡鐨勭粍
+ string sql = $@"select Row from SysStorageLocat where LocatNo in(
+ select LocatNo from DataStockDetail where SkuNo='{skuNo}' and LotNo = '{lotNo}' and Standard='{standard}'
+ and AreaNo in ('C02','C25')
+ ) group by Row";
- if (endLocatInfo != null)
+ List<int> RowList = Db.Ado.SqlQuery<int>(sql).ToList();
+ foreach (var rowItem in RowList)
{
- break;
+ endLocatInfo = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0" && w.Row == rowItem)
+ .OrderByDescending(o => o.Column).First();
+ if (endLocatInfo.LocatNo != null)
+ {
+ break;
+ }
+ }
+ //娌℃湁鎵惧埌鐩稿悓鐗╂枡鍚岀粍鐨勭┖鍌ㄤ綅
+ if (endLocatInfo.LocatNo == null)
+ {
+
+ endLocatInfo = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
+ && (w.AreaNo == "C02" || w.AreaNo == "C25"))
+ .OrderBy(o=>o.Layer).OrderByDescending(o => o.Column).OrderBy(o => o.Row).First();
+ }
+
+ }
+ else {//鍏朵粬鍖哄煙
+ //鏌ュ埌鍒版弧妗跺尯鍩熺紪鍙�
+ areaNo = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.Type == "1").Select(s => s.AreaNo).First();
+ //鍒嗛厤鍌ㄤ綅
+ //鍏堟煡鍒板悓鐗╂枡鐨勭粍
+ string sql = $@"select Row from SysStorageLocat where WareHouseNo='{houseNo}' and AreaNo='{areaNo}' and Status = '0' and LocatNo in(
+ select LocatNo from DataStockDetail where SkuNo='{skuNo}' and LotNo = '{lotNo}' and Standard='{standard}' and WareHouseNo='{houseNo}' and AreaNo='{areaNo}'
+ ) group by Row";
+
+ List<int> RowList = Db.Ado.SqlQuery<int>(sql).ToList();
+ foreach (var rowItem in RowList)
+ {
+ endLocatInfo = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
+ && w.WareHouseNo == houseNo && w.AreaNo == areaNo && w.Row == rowItem)
+ .OrderByDescending(o => o.Column).First();
+
+ if (endLocatInfo.LocatNo != null)
+ {
+ break;
+ }
+ }
+ //娌℃湁鎵惧埌鐩稿悓鐗╂枡鍚岀粍鐨勭┖鍌ㄤ綅
+ if (endLocatInfo.LocatNo == null)
+ {
+
+ endLocatInfo = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
+ && w.WareHouseNo == houseNo && w.AreaNo == areaNo)
+ .OrderByDescending(o => o.Column).OrderBy(o => o.Row).First();
}
}
- //娌℃湁鎵惧埌鐩稿悓鐗╂枡鍚岀粍鐨勭┖鍌ㄤ綅
- if (endLocatInfo == null)
- {
- endLocatInfo = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
- && w.WareHouseNo == houseNo && w.AreaNo == areaNo)
- .OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
- }
-
break;
case "3"://鑴忔《
- //鏌ュ埌鍒拌剰妗跺尯鍩熺紪鍙�
- areaNo = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.Type == "2").Select(s => s.AreaNo).First();
+ //鏌ュ埌鍒拌剰妗跺尯鍩熺紪鍙凤紝瀛樻斁椤哄簭锛孋54 鏂欐枟娓呮礂鏆傚瓨闂达紝C26 3妤间腑闂寸珯鑴忔《鍖猴紝C03 4妤间腑闂寸珯鑴忔《鍖�
+ var ztAreaNo = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Type == "2").Select(w => w.AreaNo).ToList();
+ //鏌ユ壘鎵�鏈夊彲鐢ㄨ剰妗跺簱浣�
+ var ztLocat = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0" && ztAreaNo.Contains(w.AreaNo))
+ .OrderBy(o => o.Row).OrderByDescending(o => o.Column).ToList();
+ //areaNo = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.Type == "2").Select(s => s.AreaNo).First();
//鍒嗛厤鍌ㄤ綅
- endLocatInfo = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
- && w.WareHouseNo == houseNo && w.AreaNo == areaNo)
- .OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
-
-
+ //鏂欐枟娓呮礂鏆傚瓨闂�
+ endLocatInfo = ztLocat.Where(w => w.AreaNo == "C54").FirstOrDefault();
+ if (string.IsNullOrEmpty(endLocatInfo.LocatNo))
+ {
+ endLocatInfo = ztLocat.Where(w => w.AreaNo == "C26").FirstOrDefault();
+ if (string.IsNullOrEmpty(endLocatInfo.LocatNo))
+ {
+ endLocatInfo = ztLocat.Where(w => w.AreaNo == "C03").FirstOrDefault();
+ if (string.IsNullOrEmpty(endLocatInfo.LocatNo))
+ {
+ throw new Exception("鏃犲彲鐢ㄨ剰妗跺簱浣�");
+ }
+ }
+ }
break;
}
return endLocatInfo;
diff --git a/Wms/WMS.BLL/BllTransServer/RcsServer.cs b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
index 0417f22..3db34c0 100644
--- a/Wms/WMS.BLL/BllTransServer/RcsServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -7,6 +7,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Numerics;
+using System.Reflection;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
@@ -941,17 +943,12 @@
stockDetail.PalletStatus = "0";
stockDetail.Status = "0";//寰呭垎閰�
}
- else if (endAreaInfo.Type == "1")//棰勬贩鍖�
- {
- stockDetail.PalletStatus = "1";
- stockDetail.Status = "0";//寰呭垎閰�
- }
- else if (endAreaInfo.Type == "2")//鍗婃垚鍝佸尯
+ else if (endAreaInfo.Type == "1")//婊℃《
{
stockDetail.PalletStatus = "2";
stockDetail.Status = "0";//寰呭垎閰�
}
- else if (endAreaInfo.Type == "3")//鑴忔《鍖�
+ else if (endAreaInfo.Type == "2")//鑴忔《鍖�
{
stockDetail.PalletStatus = "3";
stockDetail.LotNo = "";//鎵规
@@ -1097,18 +1094,16 @@
}
locatEnd.Status = "0"; //绌哄偍浣�
Db.Updateable(locatEnd).ExecuteCommand();
-
- if (task.Type == "1")//鍑哄簱浠诲姟
+
+ //淇敼搴撳瓨鏄庣粏
+ var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo);
+ if (stockDetail == null)
{
- //淇敼搴撳瓨鏄庣粏
- var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo && w.Status == "2");
- if (stockDetail == null)
- {
- throw new Exception("鏈煡璇㈠埌璇ユ《搴撳瓨淇℃伅,璇锋鏌�!");
- }
- stockDetail.Status = "0";//寰呭垎閰�
- Db.Updateable(stockDetail).ExecuteCommand();
+ throw new Exception("鏈煡璇㈠埌璇ユ《搴撳瓨淇℃伅,璇锋鏌�!");
}
+ stockDetail.Status = "0";//寰呭垎閰�
+ Db.Updateable(stockDetail).ExecuteCommand();
+
//娣诲姞鎿嶄綔鏃ュ織璁板綍
var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "鍙栨秷", $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", userId);
Db.CommitTran();
@@ -1125,7 +1120,7 @@
/// <param name="taskNo"></param>
/// <param name="userId"></param>
/// <exception cref="Exception"></exception>
- public void DownTask(string taskNo, int userId,string url)
+ public void DownTask(string taskNo, int userId,string url,string bindUrl)
{
try
{
@@ -1142,7 +1137,7 @@
throw new Exception("鍙湁绛夊緟鎵ц鐨勪换鍔℃墠鍙墜鍔ㄤ笅鍙�");
}
//鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
- var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == logTaskEntry.PalletNo);
+ var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == logTaskEntry.PalletNo);
if (tasking != null)
{
throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟");
@@ -1153,20 +1148,20 @@
{
throw new Exception($"鏈煡璇㈠埌璧峰鍌ㄤ綅淇℃伅");
}
- if (startLocatInfo.Status != "1")
- {
- throw new Exception($"璧峰鍌ㄤ綅鐘舵�佸紓甯�");
- }
+ //if (startLocatInfo.Status != "1")
+ //{
+ // throw new Exception($"璧峰鍌ㄤ綅鐘舵�佸紓甯�");
+ //}
//鐩爣鍌ㄤ綅淇℃伅
var endLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == logTaskEntry.EndLocat);
if (endLocatInfo == null)
{
throw new Exception($"鏈煡璇㈠埌鐩爣鍌ㄤ綅淇℃伅");
}
- if (endLocatInfo.Status != "0")
- {
- throw new Exception($"鐩爣鍌ㄤ綅鐘舵�佸紓甯�");
- }
+ //if (endLocatInfo.Status != "0")
+ //{
+ // throw new Exception($"鐩爣鍌ㄤ綅鐘舵�佸紓甯�");
+ //}
//缁勭粐缁欏皬杞︿笅鍙戜换鍔′俊鎭�
var task = new TaskDetial
{
@@ -1179,30 +1174,33 @@
string agvMsg = string.Empty;
//缁欎笅杞︿笅鍙戜换鍔�
logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
- var agvResult = CreateTaskForAgv(task, url, out agvMsg);
- if (agvResult)//鎴愬姛
+ //鍏堢粰璐т綅缁戝畾杞藉叿
+ var bind = RcsHelper.BindPalletAndSite(logTaskEntry.PalletNo, logTaskEntry.StartLocat, bindUrl, out string agvBindMsg);
+ if (bind)
{
- //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
- logTaskEntry.IsSuccess = 1;
- logTaskEntry.IsSend = 0;
- logTaskEntry.IsCancel = 0;
- logTaskEntry.BackDate = DateTime.Now;
- logTaskEntry.Status = "1";//姝e湪鎵ц
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ var agvResult = CreateTaskForAgv(task, url, out agvMsg);
+ if (agvResult)//鎴愬姛
+ {
+ //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+ logTaskEntry.IsSuccess = 1;
+ logTaskEntry.IsSend = 1;
+ logTaskEntry.IsCancel = 1;
+ logTaskEntry.BackDate = DateTime.Now;
+ Db.Updateable(logTaskEntry).ExecuteCommand();
- startLocatInfo.Status = "3";//鍑哄簱涓�
- Db.Updateable(startLocatInfo).ExecuteCommand();
+ startLocatInfo.Status = "3";//鍑哄簱涓�
+ Db.Updateable(startLocatInfo).ExecuteCommand();
- endLocatInfo.Status = "2";//鍏ュ簱涓�
- Db.Updateable(endLocatInfo).ExecuteCommand();
+ endLocatInfo.Status = "2";//鍏ュ簱涓�
+ Db.Updateable(endLocatInfo).ExecuteCommand();
+ }
+ else//澶辫触
+ {
+ logTaskEntry.IsSuccess = 0;
+ logTaskEntry.Information = agvMsg;
+ Db.Updateable(logTaskEntry).ExecuteCommand();
+ }
}
- else//澶辫触
- {
- logTaskEntry.IsSuccess = 0;
- logTaskEntry.Information = agvMsg;
- Db.Insertable(logTaskEntry).ExecuteCommand();
- }
-
//娣诲姞鎿嶄綔鏃ュ織璁板綍
var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "涓嬪彂", $"鐐瑰嚮涓嬪彂鎸夐挳銆佷换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
Db.CommitTran();
diff --git a/Wms/WMS.BLL/SysServer/PalletsServer.cs b/Wms/WMS.BLL/SysServer/PalletsServer.cs
index dc5f08f..ad876d7 100644
--- a/Wms/WMS.BLL/SysServer/PalletsServer.cs
+++ b/Wms/WMS.BLL/SysServer/PalletsServer.cs
@@ -254,6 +254,7 @@
//鏇存柊鍌ㄤ綅鐘舵��
locatModel.Status = "1";//鏈夌墿鍝�
+ locatModel.UpdateTime = DateTime.Now;
db.Updateable(locatModel).ExecuteCommand();
//涓嬪彂AGV缁戝畾杞藉叿鎺ュ彛
diff --git a/Wms/WMS.DAL/Common.cs b/Wms/WMS.DAL/Common.cs
index 44f6d0c..30c2830 100644
--- a/Wms/WMS.DAL/Common.cs
+++ b/Wms/WMS.DAL/Common.cs
@@ -232,9 +232,9 @@
var list = DataContext.Db.Queryable<BllStockCheck>().Where(m => m.CRNo.StartsWith("CR")).ToList();
orderNo = list.Select(a => a.CRNo).Max();
}
- else if (codeFlag == InOutFlag.TN.ToString())//浠诲姟
+ else if (codeFlag == InOutFlag.TK.ToString())//浠诲姟
{
- var list = DataContext.Db.Queryable<LogTask>().Where(m => m.TaskNo.StartsWith("TN")).ToList();
+ var list = DataContext.Db.Queryable<LogTask>().Where(m => m.TaskNo.StartsWith("TK")).ToList();
orderNo = list.Max(m=>m.TaskNo);
}
else if (codeFlag == InOutFlag.EX.ToString())//寮傚父
@@ -478,7 +478,7 @@
/// 浠诲姟
/// </summary>
[Description("浠诲姟")]
- TN,
+ TK,
/// <summary>
/// 寮傚父鍙�
diff --git a/Wms/WMS.Entity/DataEntity/DataStockDetail.cs b/Wms/WMS.Entity/DataEntity/DataStockDetail.cs
index 731b449..a118b8d 100644
--- a/Wms/WMS.Entity/DataEntity/DataStockDetail.cs
+++ b/Wms/WMS.Entity/DataEntity/DataStockDetail.cs
@@ -209,7 +209,7 @@
/// <summary>
/// 鎵樼洏鐘舵��
- /// Default:0锛氬噣妗� 1锛氶娣� 2锛氬崐鎴愬搧 3锛氳剰妗�
+ /// Default:0锛氬噣妗� 1锛氭竻娲椾腑 2锛氭弧妗� 3锛氳剰妗�
/// </summary>
public string PalletStatus { get; set; }
diff --git a/Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs b/Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs
index 66235fe..1557420 100644
--- a/Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs
+++ b/Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs
@@ -57,6 +57,6 @@
/// <param name="taskNo"></param>
/// <param name="userId"></param>
/// <exception cref="Exception"></exception>
- void DownTask(string taskNo, int userId, string url);
+ void DownTask(string taskNo, int userId, string url,string bindurl);
}
}
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 5b12903..11c49eb 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -912,9 +912,10 @@
//鍏蜂綋澶勭悊鏂规硶
_hopper.OutBinAgv(model.robotTaskCode, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets);
- resultModel.code = "0";
- resultModel.message = "鎴愬姛";
- resultModel.da.robotTaskCode = model.robotTaskCode;
+
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "0", message = "鎴愬姛", da =data };
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -923,10 +924,10 @@
{
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-寮傚父锛�( {ex.Message} ),", logStr);
-
- resultModel.code = "1";
- resultModel.message = ex.Message;
- resultModel.da.robotTaskCode = model.robotTaskCode;
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
+
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -957,9 +958,9 @@
//鍏蜂綋澶勭悊鏂规硶
_hopper.RCSFinishTask(model.robotTaskCode, "1", "AGV");
- resultModel.code = "0";
- resultModel.message = "鎴愬姛";
- resultModel.da.robotTaskCode = model.robotTaskCode;
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "0", message = "鎴愬姛", da = data };
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
@@ -969,9 +970,9 @@
{
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-寮傚父锛�( {ex.Message} ),", logStr);
- resultModel.code = "1";
- resultModel.message = ex.Message;
- resultModel.da.robotTaskCode = model.robotTaskCode;
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -1015,7 +1016,51 @@
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟鍗曞彇娑�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
}
- }
+ }
+
+ /// <summary>
+ /// 璧板嚭鍌ㄤ綅
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ [HttpPost]
+ public IActionResult AGVCallback(AgvTaskDto model)
+ {
+ //璁板綍log
+ var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+ AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
+ try
+ {
+ var extraValue = new ExtraModel();
+ extraValue = model.extra;
+ switch (extraValue.values.method)
+ {
+ case "outbin":
+ var a = outbin(model);
+ break;
+ case "end":
+ var b = end(model);
+ break;
+ default:
+ break;
+ }
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "0", message = "鎴愬姛", da = data };
+ var jsonData2 = JsonConvert.SerializeObject(resultModel);
+ LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
+ return Ok(resultModel);
+ }
+ catch (Exception ex)
+ {
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
+ var jsonData2 = JsonConvert.SerializeObject(resultModel);
+ LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
+ return Ok(resultModel);
+ }
+ }
#endregion
@@ -1072,7 +1117,7 @@
{
return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
}
- _rcsserver.DownTask(model.taskNo, int.Parse(userId), _config.AgvHost + _config.GenAgvSchedulingTask);
+ _rcsserver.DownTask(model.taskNo, int.Parse(userId), _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost + _config.AGVBindPallets);
return Ok(new { code = 0, msg = "閲嶆柊涓嬪彂宸插畬鎴�", data = "" });
}
@@ -1106,7 +1151,7 @@
//鍏蜂綋澶勭悊鏂规硶
_rcsserver.RCSFinishTask(model.taskNo, "1", "WMS");
- return Ok(new { code = 0, msg = "閲嶆柊涓嬪彂宸插畬鎴�", data = "" });
+ return Ok(new { code = 0, msg = "浠诲姟宸叉墜鍔ㄥ畬鎴�", data = "" });
}
catch (Exception e)
{
@@ -1373,6 +1418,8 @@
return Ok(resultModel);
}
}
+
+
#endregion
}
diff --git a/Wms/Wms/Properties/launchSettings.json b/Wms/Wms/Properties/launchSettings.json
index 93e8fe8..8ec21eb 100644
--- a/Wms/Wms/Properties/launchSettings.json
+++ b/Wms/Wms/Properties/launchSettings.json
@@ -21,8 +21,8 @@
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
- "applicationUrl": "http://192.168.10.201",
- "sslPort": 44363
+ "applicationUrl": "http://localhost:58787/",
+ "sslPort": 44323
}
}
}
\ No newline at end of file
diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json
index 37d4dc2..8324399 100644
--- a/Wms/Wms/appsettings.json
+++ b/Wms/Wms/appsettings.json
@@ -12,8 +12,8 @@
//"ConnectionString": "Server=47.95.120.53;Database=WMS_JC09;User ID=sa;Password=boxline!@#;Integrated Security=False;",
//"ConnectionString": "Server=192.168.62.106;Database=WMS_JC24;User ID=sa;Password=sql2019;Integrated Security=False;",
//"ConnectionString": "Server=192.168.62.200;Database=WMS_JC37;User ID=sa;Password=sql2019;Integrated Security=False;"
- "ConnectionString": "Server=.;Database=WMS_JC37;User ID=sa;Password=sa@123456;Integrated Security=False;"
- //"ConnectionString": "Data Source=DESKTOP-0EJDG95\\MSSQLSERVER1;Initial Catalog=WMS_V01;Integrated Security=True;"
+ //"ConnectionString": "Server=.;Database=WMS_JC37;User ID=sa;Password=sa@123456;Integrated Security=False;"
+ "ConnectionString": "Data Source=192.168.10.201\\WMSSQLSERVER;Database=WMS_JC37;User ID=sa;Password=sa@123456;Integrated Security=False;"
//"ConnectionString": "Server=.\\MSSQLSERVER2019;Database=WMS_JC23-2;User Id=sa;Password=admin2023@;" // SqlServer 搴撹繛鎺ュ瓧绗︿覆
//"ConnectionString": "Server=172.16.105.10;Database=WMS_JC23-2;User ID=sa;Password=sql2019;Integrated Security=False;"
//"ConnectionString": "Server=172.16.105.2;Database=WMS_JC23-2;User ID=sa;Password=boxline@2024;Integrated Security=False;"
--
Gitblit v1.8.0