From 8cd6bb29fe8e46930ad199c4edfbec216475a988 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期二, 11 三月 2025 19:47:15 +0800
Subject: [PATCH] 修改问题
---
Wms/WMS.BLL/BllTransServer/RcsServer.cs | 1248 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 628 insertions(+), 620 deletions(-)
diff --git a/Wms/WMS.BLL/BllTransServer/RcsServer.cs b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
index 4eda808..219fec2 100644
--- a/Wms/WMS.BLL/BllTransServer/RcsServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -27,6 +27,8 @@
{
public class RcsServer:IRcsServer
{
+ private readonly object RcsLock = new object();
+
private static readonly SqlSugarScope Db = DataContext.Db;
/// <summary>
/// RCS鍙《
@@ -36,401 +38,404 @@
/// <param name="taskNo"></param>
/// <exception cref="Exception"></exception>
public void GetPalletNo(Pallnetmsg model, string url, out string taskNo)
- {
- try
+ {
+ lock (RcsLock)
{
- string taskMsg = "";
- if (string.IsNullOrEmpty(model.Location))
+ try
{
- throw new Exception("璁惧缂栫爜涓嶅彲涓虹┖");
- }
- //閫氳繃璁惧鍙锋煡鎵惧埌鎵�灞炶澶囷紙鍖哄煙锛�
- var deviceInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode.Contains(model.Location));
- if (deviceInfo == null)
- {
- throw new Exception("璁惧淇℃伅涓嶅瓨鍦�");
- }
- var houseNo = deviceInfo.WareHouseNo;//鍙《璁惧鎵�灞炶溅闂寸紪鍙�
+ string taskMsg = "";
+ if (string.IsNullOrEmpty(model.Location))
+ {
+ throw new Exception("璁惧缂栫爜涓嶅彲涓虹┖");
+ }
+ //閫氳繃璁惧鍙锋煡鎵惧埌鎵�灞炶澶囷紙鍖哄煙锛�
+ var deviceInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode.Contains(model.Location));
+ if (deviceInfo == null)
+ {
+ throw new Exception("璁惧淇℃伅涓嶅瓨鍦�");
+ }
+ var houseNo = deviceInfo.WareHouseNo;//鍙《璁惧鎵�灞炶溅闂寸紪鍙�
- //鍙《璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙鐩爣鍌ㄤ綅锛�
- var endLoction = new SysStorageLocat();
-
- var urlMes = "";//鍥炰紶MES鐨勬帴鍙e湴鍧�
- var noticeNo = "0";//鍑哄叆搴撳崟鎹槑缁咺D
+ //鍙《璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙鐩爣鍌ㄤ綅锛�
+ var endLoction = new SysStorageLocat();
- //鎵�鏈夊緟鍒嗛厤鐨勬《
- var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.Status == "0");
- //鍒嗛厤妗朵俊鎭�
- var pallet = new DataStockDetail();
+ var urlMes = "";//鍥炰紶MES鐨勬帴鍙e湴鍧�
+ var noticeNo = "0";//鍑哄叆搴撳崟鎹槑缁咺D
- //寮�濮嬩簨鍔�
- Db.BeginTran();
- //鍒ゆ柇鍙枡璁惧鏄惁鏄疉鍖虹殑娣锋枡璁惧03锛岃璁惧鏄帴鏂欐贩鏂欎竴浣撴満锛孉GV鍙《搴旇鍙噣妗舵帴鏂�
- if (houseNo=="M03" && model.Location == "125" && model.Type=="1")
- {
- model.Type = "0";
- }
- string agvMsg = string.Empty;
- switch (model.Type)
- {
- case "0"://鎺ユ枡璁惧鍙噣妗�
- {
- //鍙《鐩爣鍌ㄤ綅鍦板潃淇℃伅
- endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);
- if (endLoction == null)
- {
- throw new Exception("鍙《璁惧鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
- }
- //鏌ユ壘鍒拌杞﹂棿鍑�妗跺尯
- List<string> areaNoList = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Type == "0" && w.WareHouseNo == houseNo).Select(s => s.AreaNo).ToList();
- //鏌ユ壘鍑�妗�
- if (houseNo == "M03")//澶у崟浣撹溅闂村噣妗舵槸缁戝畾鎺ユ枡璁惧鐨�
- {
- pallet = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "0" && w.Status == "0"
- && areaNoList.Contains(w.AreaNo) && w.UDF1 == deviceInfo.DeviceCode).OrderBy(o => o.UpdateTime).First();
- }
- else
- {
- pallet = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "0" && w.Status == "0"
- && areaNoList.Contains(w.AreaNo)).OrderBy(o => o.UpdateTime).First();
- }
-
- if (pallet == null)
- {
- throw new Exception("鏆傛棤鍑�妗跺彲鍒嗛厤");
- }
- //鍒嗛厤妗跺悗鍒ゆ柇璇ユ《澶栦晶鍌ㄤ綅鏄惁闇�瑕佺Щ搴�
- bool yikuResult = YikuTask(pallet.PalletNo, url);
- if (!yikuResult)
- {
- throw new Exception("绉诲簱澶辫触");
- }
+ //鎵�鏈夊緟鍒嗛厤鐨勬《
+ var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.Status == "0");
+ //鍒嗛厤妗朵俊鎭�
+ var pallet = new DataStockDetail();
- pallet.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
- //鏇存柊妗跺簱瀛樻槑缁�
- Db.Updateable(pallet).ExecuteCommand();
-
- taskMsg = "璁惧鍙噣妗朵换鍔�";
- }
- break;
- case "1"://娣锋枡璁惧鍙枡妗讹紙娣锋枡锛�
- {
- //鍙《鐩爣鍌ㄤ綅鍦板潃淇℃伅
- endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);
- if (endLoction == null)
- {
- throw new Exception("鍙《璁惧鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
- }
- //鍒ゆ柇鏄惁鏈夋壒娆″彿
- if (string.IsNullOrWhiteSpace(model.LotNo))
- {
- throw new Exception("鎵规鍙蜂负绌猴紒");
- }
- //鏌ユ壘鍒拌杞﹂棿棰勬贩鍖�
- List<string> areaNoList2 = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Type == "1" && w.WareHouseNo == houseNo).Select(s => s.AreaNo).ToList();
- //鏌ユ壘搴撳瓨涓槸鍚︽湁鍙敤鐨勬鎵规鐨勬贩鏂欐《
- pallet = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "1" && w.Status == "0" && w.LotNo == model.LotNo
- && areaNoList2.Contains(w.AreaNo)).OrderBy(o => o.UpdateTime).First();
- if (pallet == null)
- {
- throw new Exception("鏆傛棤娣锋枡妗跺彲鍒嗛厤");
- }
- //鍒嗛厤妗跺悗鍒ゆ柇璇ユ《澶栦晶鍌ㄤ綅鏄惁闇�瑕佺Щ搴�
- bool yikuResult = YikuTask(pallet.PalletNo, url);
- if (!yikuResult)
- {
- throw new Exception("绉诲簱澶辫触");
- }
-
- pallet.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
- //鏇存柊妗跺簱瀛樻槑缁�
- Db.Updateable(pallet).ExecuteCommand();
-
- taskMsg = "璁惧鍙枡妗舵贩鏂欎换鍔�";
- }
- break;
- case "2"://涓嬫枡璁惧鍙枡妗讹紙涓嬫枡锛�
- {
- if (houseNo == "M04")//闄や簡鍠峰共杞﹂棿涓嬫枡鍙i兘鏄�2涓偍浣嶏紙鎶曟枡鍌ㄤ綅銆佹姇瀹屾枡鍌ㄤ綅锛�
+ //寮�濮嬩簨鍔�
+ Db.BeginTran();
+ //鍒ゆ柇鍙枡璁惧鏄惁鏄疉鍖虹殑娣锋枡璁惧03锛岃璁惧鏄帴鏂欐贩鏂欎竴浣撴満锛孉GV鍙《搴旇鍙噣妗舵帴鏂�
+ if (houseNo == "M03" && model.Location == "125" && model.Type == "1")
+ {
+ model.Type = "0";
+ }
+ string agvMsg = string.Empty;
+ switch (model.Type)
+ {
+ case "0"://鎺ユ枡璁惧鍙噣妗�
{
//鍙《鐩爣鍌ㄤ綅鍦板潃淇℃伅
endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);
+ if (endLoction == null)
+ {
+ throw new Exception("鍙《璁惧鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
+ }
+ //鏌ユ壘鍒拌杞﹂棿鍑�妗跺尯
+ List<string> areaNoList = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Type == "0" && w.WareHouseNo == houseNo).Select(s => s.AreaNo).ToList();
+ //鏌ユ壘鍑�妗�
+ if (houseNo == "M03")//澶у崟浣撹溅闂村噣妗舵槸缁戝畾鎺ユ枡璁惧鐨�
+ {
+ pallet = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "0" && w.Status == "0"
+ && areaNoList.Contains(w.AreaNo) && w.UDF1 == deviceInfo.DeviceCode).OrderBy(o => o.UpdateTime).First();
+ }
+ else
+ {
+ pallet = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "0" && w.Status == "0"
+ && areaNoList.Contains(w.AreaNo)).OrderBy(o => o.UpdateTime).First();
+ }
+
+ if (pallet == null)
+ {
+ throw new Exception("鏆傛棤鍑�妗跺彲鍒嗛厤");
+ }
+ //鍒嗛厤妗跺悗鍒ゆ柇璇ユ《澶栦晶鍌ㄤ綅鏄惁闇�瑕佺Щ搴�
+ bool yikuResult = YikuTask(pallet.PalletNo, url);
+ if (!yikuResult)
+ {
+ throw new Exception("绉诲簱澶辫触");
+ }
+
+ pallet.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
+ //鏇存柊妗跺簱瀛樻槑缁�
+ Db.Updateable(pallet).ExecuteCommand();
+
+ taskMsg = "璁惧鍙噣妗朵换鍔�";
}
- else
+ break;
+ case "1"://娣锋枡璁惧鍙枡妗讹紙娣锋枡锛�
{
//鍙《鐩爣鍌ㄤ綅鍦板潃淇℃伅
- endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 鎶曟枡鍌ㄤ綅锛孋olumn=2 鎶曞畬鏂欏偍浣�
- }
- if (endLoction == null)
- {
- throw new Exception("鍙《璁惧鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
- }
- //鍒ゆ柇鏄惁鏈夋壒娆″彿
- if (string.IsNullOrWhiteSpace(model.LotNo))
- {
- throw new Exception("鎵规鍙蜂负绌猴紒");
- }
- //鏌ユ壘鏄惁鏈夋鎵规鍑哄簱鍗曟槑缁�
- /*var soNoticeDetail = Db.Queryable<BllExportNoticeDetail>().Where(w => w.IsDel == "0" && w.LotNo == model.LotNo).OrderBy(o => o.CreateTime).First();
- if (soNoticeDetail == null)
- {
- throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍑哄簱鍗曟槑缁�");
- }
- noticeNo = soNoticeDetail.Id.ToString();
- //鍑哄簱鎬诲崟
- var soNotice = Db.Queryable<BllExportNotice>().Where(w => w.IsDel == "0" && w.SONo == soNoticeDetail.SONo).First();
- if (soNotice == null)
- {
- throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍑哄簱鍗�");
- }
- soNotice.Status = "3";//姝e湪鎵ц
- soNotice.UpdateTime = DateTime.Now;
- //鏇存柊鍑哄簱鍗�
- Db.Updateable(soNotice).ExecuteCommand();*/
-
- //鏌ユ壘鍒拌杞﹂棿鍗婃垚鍝佸尯
- List<string> areaNoList3 = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Type == "2" && w.WareHouseNo == houseNo).Select(s => s.AreaNo).ToList();
- //鏌ユ壘搴撳瓨涓槸鍚︽湁姝ゆ壒娆$殑鍚堟牸涓嬫枡妗�
- pallet = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "2" && w.Status == "0" && w.LotNo == model.LotNo && w.InspectStatus == "1"
- && areaNoList3.Contains(w.AreaNo)).OrderBy(o => o.UpdateTime).First();
- if (pallet == null)
- {
- throw new Exception("鏆傛棤涓嬫枡妗跺彲鍒嗛厤");
- }
- //鍒嗛厤妗跺悗鍒ゆ柇璇ユ《澶栦晶鍌ㄤ綅鏄惁闇�瑕佺Щ搴�
- bool yikuResult = YikuTask(pallet.PalletNo, url);
- if (!yikuResult)
- {
- throw new Exception("绉诲簱澶辫触");
- }
-
- pallet.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
- //鏇存柊妗跺簱瀛樻槑缁�
- Db.Updateable(pallet).ExecuteCommand();
-
- taskMsg = "璁惧鍙枡妗朵笅鏂欎换鍔�";
- }
- break;
- case "3"://娓呮礂璁惧鍙剰妗�
- {
- //鍙《鐩爣鍌ㄤ綅鍦板潃淇℃伅
- endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 娓呮礂鍌ㄤ綅锛孋olumn=2 娓呮礂瀹屾枡鍌ㄤ綅
- if (endLoction == null)
- {
- throw new Exception("鍙《璁惧鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
- }
- //鏌ユ壘鍒拌杞﹂棿鑴忔《鍖�
- List<string> areaNoList4 = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Type == "3" && w.WareHouseNo == houseNo).Select(s => s.AreaNo).ToList();
-
- List<DataStockDetail> palletList = new List<DataStockDetail>();
- if (houseNo == "M01")
- {
- palletList = Db.Queryable<DataStockDetail>()
- .LeftJoin<SysStorageLocat>((d, l) => d.LocatNo == l.LocatNo)
- .Where(d => d.WareHouseNo == houseNo && d.PalletStatus == "3" && d.Status == "0" && areaNoList4.Contains(d.AreaNo))
- .OrderBy((d, l) => l.Row)
- .OrderBy((d, l) => l.Column)
- .ToList();
- }
- else
- {
- palletList = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "3" && w.Status == "0"
- && areaNoList4.Contains(w.AreaNo)).OrderBy(o => o.UpdateTime).ToList();
- }
-
- if (palletList.Count <= 0)
- {
- throw new Exception("鏆傛棤鑴忔《鍙垎閰�");
- }
- taskMsg = "璁惧鍙剰妗朵换鍔�";
- //閬嶅巻搴撳瓨鑴忔《锛岃繑鍥濵ES楠岃瘉
- foreach (var item in palletList)
- {
- #region 鍘绘帀MES
- //string jsonReq = JsonConvert.SerializeObject(item.PalletNo);
- //var response = HttpHelper.DoPost(urlMes, jsonReq, "鍥炰紶MES鑴忔《缂栧彿", "RCS").ToString();
- //var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁
- //if (obj.Success == "0")
- //{
- // if (obj.Result != "1")//涓嶅彲娓呮礂锛屽皢鑴忔《鍐荤粨
- // {
- // item.Status = "5";//寮傚父鍐荤粨
- // //淇敼璇ユ《搴撳瓨鐘舵��
- // Db.Updateable(item).ExecuteCommand();
-
- // continue;
- // }
- // //涓嬪彂灏忚溅浠诲姟
- // var task2 = new TaskDetial
- // {
- // Startport = item.LocatNo,
- // Endport = model.Location,
- // Pallno = item.PalletNo,
- // Type = model.Type,
- // Crtype = "1",
- // Noticedetailno = int.Parse(noticeno),
- // };
- // CreateLotTask(task2);
- // return;
- //}
- //else
- //{
- // throw new Exception("鍥炰紶MES鍑�妗剁紪鍙峰け璐ワ紒");
- //}
- #endregion
-
- item.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
- //鏇存柊妗跺簱瀛樻槑缁�
- Db.Updateable(item).ExecuteCommand();
- //璧峰鍌ㄤ綅鍦板潃淇℃伅
- var startLoction2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == item.LocatNo);
- if (startLoction2 == null)
+ endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);
+ if (endLoction == null)
{
- throw new Exception($"璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦紝妗跺彿锛歿item.LocatNo}");
+ throw new Exception("鍙《璁惧鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
+ }
+ //鍒ゆ柇鏄惁鏈夋壒娆″彿
+ if (string.IsNullOrWhiteSpace(model.LotNo))
+ {
+ throw new Exception("鎵规鍙蜂负绌猴紒");
+ }
+ //鏌ユ壘鍒拌杞﹂棿棰勬贩鍖�
+ List<string> areaNoList2 = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Type == "1" && w.WareHouseNo == houseNo).Select(s => s.AreaNo).ToList();
+ //鏌ユ壘搴撳瓨涓槸鍚︽湁鍙敤鐨勬鎵规鐨勬贩鏂欐《
+ pallet = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "1" && w.Status == "0" && w.LotNo == model.LotNo
+ && areaNoList2.Contains(w.AreaNo)).OrderBy(o => o.UpdateTime).First();
+ if (pallet == null)
+ {
+ throw new Exception("鏆傛棤娣锋枡妗跺彲鍒嗛厤");
+ }
+ //鍒嗛厤妗跺悗鍒ゆ柇璇ユ《澶栦晶鍌ㄤ綅鏄惁闇�瑕佺Щ搴�
+ bool yikuResult = YikuTask(pallet.PalletNo, url);
+ if (!yikuResult)
+ {
+ throw new Exception("绉诲簱澶辫触");
}
- taskNo = new Common().GetMaxNo("TN");//浠诲姟鍙�
- var logTaskEntry2 = new LogTask
- {
- TaskNo = taskNo,
- Sender = "WMS",
- Receiver = "RCS",
- //IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- SendDate = DateTime.Now, //鍙戦�佹椂闂�
- //BackDate = DateTime.Now, //杩斿洖鏃堕棿
- StartLocat = item.LocatNo,//璧峰浣嶇疆
- EndLocat = endLoction.LocatNo,//鐩爣浣嶇疆
- PalletNo = item.PalletNo,//鎵樼洏鐮�
- IsSend = 1,//鏄惁鍙啀娆′笅鍙�
- IsCancel = 1,//鏄惁鍙彇娑�
- IsFinish = 1,//鏄惁鍙畬鎴�
- Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- OrderType = "3",//鍗曟嵁绫诲瀷 0 鍏ュ簱 1 鍑哄簱 3 绉诲簱
- Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- NoticeDetailNo = int.Parse(noticeNo),
- Msg = taskMsg, //鍏抽敭淇℃伅
- LotNo = item.LotNo//鎵规鍙�
- };
- //缁勭粐涓嬪彂灏忚溅浠诲姟淇℃伅
- var task2 = new TaskDetial
- {
- Taskno = taskNo,//浠诲姟鍙�
- Startport = item.LocatNo,
- Endport = model.Location,//endLoction.LocatNo,
- Pallno = item.PalletNo,
- Crtype = "1",//鍙《
- WareHouseNo = houseNo
- };
- //缁欎笅杞︿笅鍙戜换鍔�
- logTaskEntry2.SendDate = DateTime.Now;//鍙戦�佹椂闂�
- var agvResult2 = CreateTaskForAgv(task2, url, out agvMsg);
- if (agvResult2)//鎴愬姛
- {
- //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
- logTaskEntry2.IsSuccess = 1;
- logTaskEntry2.IsSend = 0;
- //logTaskEntry2.IsCancel = 0;
- logTaskEntry2.BackDate = DateTime.Now;
- logTaskEntry2.Status = "1";
- Db.Insertable(logTaskEntry2).ExecuteCommand();
+ pallet.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
+ //鏇存柊妗跺簱瀛樻槑缁�
+ Db.Updateable(pallet).ExecuteCommand();
- startLoction2.Status = "3";//鍑哄簱涓�
- Db.Updateable(startLoction2).ExecuteCommand();
-
- endLoction.Status = "2";//鍏ュ簱涓�
- Db.Updateable(endLoction).ExecuteCommand();
- }
- else//澶辫触
- {
- logTaskEntry2.IsSuccess = 0;
- logTaskEntry2.Information = agvMsg;
- Db.Insertable(logTaskEntry2).ExecuteCommand();
-
- }
- //鎻愪氦浜嬪姟
- Db.CommitTran();
- return;
+ taskMsg = "璁惧鍙枡妗舵贩鏂欎换鍔�";
}
- }
- break;
- default:
- throw new Exception("浠诲姟绫诲瀷鏃犳晥");
- }
- //璧峰鍌ㄤ綅鍦板潃淇℃伅
- var startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == pallet.LocatNo);
- if (startLoction == null)
- {
- throw new Exception($"璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦紝妗跺彿锛歿pallet.LocatNo}");
- }
+ break;
+ case "2"://涓嬫枡璁惧鍙枡妗讹紙涓嬫枡锛�
+ {
+ if (houseNo == "M04")//闄や簡鍠峰共杞﹂棿涓嬫枡鍙i兘鏄�2涓偍浣嶏紙鎶曟枡鍌ㄤ綅銆佹姇瀹屾枡鍌ㄤ綅锛�
+ {
+ //鍙《鐩爣鍌ㄤ綅鍦板潃淇℃伅
+ endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);
+ }
+ else
+ {
+ //鍙《鐩爣鍌ㄤ綅鍦板潃淇℃伅
+ endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 鎶曟枡鍌ㄤ綅锛孋olumn=2 鎶曞畬鏂欏偍浣�
+ }
+ if (endLoction == null)
+ {
+ throw new Exception("鍙《璁惧鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
+ }
+ //鍒ゆ柇鏄惁鏈夋壒娆″彿
+ if (string.IsNullOrWhiteSpace(model.LotNo))
+ {
+ throw new Exception("鎵规鍙蜂负绌猴紒");
+ }
+ //鏌ユ壘鏄惁鏈夋鎵规鍑哄簱鍗曟槑缁�
+ /*var soNoticeDetail = Db.Queryable<BllExportNoticeDetail>().Where(w => w.IsDel == "0" && w.LotNo == model.LotNo).OrderBy(o => o.CreateTime).First();
+ if (soNoticeDetail == null)
+ {
+ throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍑哄簱鍗曟槑缁�");
+ }
+ noticeNo = soNoticeDetail.Id.ToString();
+ //鍑哄簱鎬诲崟
+ var soNotice = Db.Queryable<BllExportNotice>().Where(w => w.IsDel == "0" && w.SONo == soNoticeDetail.SONo).First();
+ if (soNotice == null)
+ {
+ throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍑哄簱鍗�");
+ }
+ soNotice.Status = "3";//姝e湪鎵ц
+ soNotice.UpdateTime = DateTime.Now;
+ //鏇存柊鍑哄簱鍗�
+ Db.Updateable(soNotice).ExecuteCommand();*/
- taskNo = new Common().GetMaxNo("TN");//浠诲姟鍙�
- //浠诲姟淇℃伅
- var logTaskEntry = new LogTask
- {
- TaskNo = taskNo,
- Sender = "WMS",
- Receiver = "RCS",
- //IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- SendDate = DateTime.Now, //鍙戦�佹椂闂�
- //BackDate = DateTime.Now, //杩斿洖鏃堕棿
- StartLocat = pallet.LocatNo,//璧峰浣嶇疆
- EndLocat = endLoction.LocatNo,//鐩爣浣嶇疆
- PalletNo = pallet.PalletNo,//鎵樼洏鐮�
- IsSend = 1,//鏄惁鍙啀娆′笅鍙�
- IsCancel = 1,//鏄惁鍙彇娑�
- IsFinish = 1,//鏄惁鍙畬鎴�
- Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- OrderType = "3",//鍗曟嵁绫诲瀷 0 鍏ュ簱 1 鍑哄簱 3绉诲簱
- Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- NoticeDetailNo = int.Parse(noticeNo),
- Msg = taskMsg, //鍏抽敭淇℃伅
- LotNo = pallet.LotNo//鎵规鍙�
- };
+ //鏌ユ壘鍒拌杞﹂棿鍗婃垚鍝佸尯
+ List<string> areaNoList3 = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Type == "2" && w.WareHouseNo == houseNo).Select(s => s.AreaNo).ToList();
+ //鏌ユ壘搴撳瓨涓槸鍚︽湁姝ゆ壒娆$殑鍚堟牸涓嬫枡妗�
+ pallet = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "2" && w.Status == "0" && w.LotNo == model.LotNo && w.InspectStatus == "1"
+ && areaNoList3.Contains(w.AreaNo)).OrderBy(o => o.UpdateTime).First();
+ if (pallet == null)
+ {
+ throw new Exception("鏆傛棤涓嬫枡妗跺彲鍒嗛厤");
+ }
+ //鍒嗛厤妗跺悗鍒ゆ柇璇ユ《澶栦晶鍌ㄤ綅鏄惁闇�瑕佺Щ搴�
+ bool yikuResult = YikuTask(pallet.PalletNo, url);
+ if (!yikuResult)
+ {
+ throw new Exception("绉诲簱澶辫触");
+ }
- //缁勭粐涓嬪彂灏忚溅浠诲姟淇℃伅
- var task = new TaskDetial
- {
- Taskno = taskNo,//浠诲姟鍙�
- Startport = pallet.LocatNo,//璧峰浣嶇疆
- Endport = model.Location,//endLoction.LocatNo,//鐩爣浣嶇疆
- Pallno = pallet.PalletNo,//妗跺彿
- Crtype = "1",//鍙《
- WareHouseNo = houseNo//杞﹂棿缂栫爜
- };
- //缁欎笅杞︿笅鍙戜换鍔�
- logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
- var agvResult = CreateTaskForAgv(task, url, out agvMsg);
- if (agvResult)//鎴愬姛
- {
- //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
- logTaskEntry.IsSuccess = 1;
- logTaskEntry.IsSend = 0;
- //logTaskEntry.IsCancel = 0;
- logTaskEntry.BackDate = DateTime.Now;
- logTaskEntry.Status = "1";//姝e湪鎵ц
- Db.Insertable(logTaskEntry).ExecuteCommand();
+ pallet.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
+ //鏇存柊妗跺簱瀛樻槑缁�
+ Db.Updateable(pallet).ExecuteCommand();
- startLoction.Status = "3";//鍑哄簱涓�
- Db.Updateable(startLoction).ExecuteCommand();
+ taskMsg = "璁惧鍙枡妗朵笅鏂欎换鍔�";
+ }
+ break;
+ case "3"://娓呮礂璁惧鍙剰妗�
+ {
+ //鍙《鐩爣鍌ㄤ綅鍦板潃淇℃伅
+ endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 娓呮礂鍌ㄤ綅锛孋olumn=2 娓呮礂瀹屾枡鍌ㄤ綅
+ if (endLoction == null)
+ {
+ throw new Exception("鍙《璁惧鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
+ }
+ //鏌ユ壘鍒拌杞﹂棿鑴忔《鍖�
+ List<string> areaNoList4 = Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Type == "3" && w.WareHouseNo == houseNo).Select(s => s.AreaNo).ToList();
- endLoction.Status = "2";//鍏ュ簱涓�
- Db.Updateable(endLoction).ExecuteCommand();
+ List<DataStockDetail> palletList = new List<DataStockDetail>();
+ if (houseNo == "M01")
+ {
+ palletList = Db.Queryable<DataStockDetail>()
+ .LeftJoin<SysStorageLocat>((d, l) => d.LocatNo == l.LocatNo)
+ .Where(d => d.WareHouseNo == houseNo && d.PalletStatus == "3" && d.Status == "0" && areaNoList4.Contains(d.AreaNo))
+ .OrderBy((d, l) => l.Row)
+ .OrderBy((d, l) => l.Column)
+ .ToList();
+ }
+ else
+ {
+ palletList = stockDetail.Where(w => w.WareHouseNo == houseNo && w.PalletStatus == "3" && w.Status == "0"
+ && areaNoList4.Contains(w.AreaNo)).OrderBy(o => o.UpdateTime).ToList();
+ }
+
+ if (palletList.Count <= 0)
+ {
+ throw new Exception("鏆傛棤鑴忔《鍙垎閰�");
+ }
+ taskMsg = "璁惧鍙剰妗朵换鍔�";
+ //閬嶅巻搴撳瓨鑴忔《锛岃繑鍥濵ES楠岃瘉
+ foreach (var item in palletList)
+ {
+ #region 鍘绘帀MES
+ //string jsonReq = JsonConvert.SerializeObject(item.PalletNo);
+ //var response = HttpHelper.DoPost(urlMes, jsonReq, "鍥炰紶MES鑴忔《缂栧彿", "RCS").ToString();
+ //var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁
+ //if (obj.Success == "0")
+ //{
+ // if (obj.Result != "1")//涓嶅彲娓呮礂锛屽皢鑴忔《鍐荤粨
+ // {
+ // item.Status = "5";//寮傚父鍐荤粨
+ // //淇敼璇ユ《搴撳瓨鐘舵��
+ // Db.Updateable(item).ExecuteCommand();
+
+ // continue;
+ // }
+ // //涓嬪彂灏忚溅浠诲姟
+ // var task2 = new TaskDetial
+ // {
+ // Startport = item.LocatNo,
+ // Endport = model.Location,
+ // Pallno = item.PalletNo,
+ // Type = model.Type,
+ // Crtype = "1",
+ // Noticedetailno = int.Parse(noticeno),
+ // };
+ // CreateLotTask(task2);
+ // return;
+ //}
+ //else
+ //{
+ // throw new Exception("鍥炰紶MES鍑�妗剁紪鍙峰け璐ワ紒");
+ //}
+ #endregion
+
+ item.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
+ //鏇存柊妗跺簱瀛樻槑缁�
+ Db.Updateable(item).ExecuteCommand();
+ //璧峰鍌ㄤ綅鍦板潃淇℃伅
+ var startLoction2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == item.LocatNo);
+ if (startLoction2 == null)
+ {
+ throw new Exception($"璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦紝妗跺彿锛歿item.LocatNo}");
+ }
+
+ taskNo = new Common().GetMaxNo("TN");//浠诲姟鍙�
+ var logTaskEntry2 = new LogTask
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "RCS",
+ //IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+ SendDate = DateTime.Now, //鍙戦�佹椂闂�
+ //BackDate = DateTime.Now, //杩斿洖鏃堕棿
+ StartLocat = item.LocatNo,//璧峰浣嶇疆
+ EndLocat = endLoction.LocatNo,//鐩爣浣嶇疆
+ PalletNo = item.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ OrderType = "3",//鍗曟嵁绫诲瀷 0 鍏ュ簱 1 鍑哄簱 3 绉诲簱
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ NoticeDetailNo = int.Parse(noticeNo),
+ Msg = taskMsg, //鍏抽敭淇℃伅
+ LotNo = item.LotNo//鎵规鍙�
+ };
+ //缁勭粐涓嬪彂灏忚溅浠诲姟淇℃伅
+ var task2 = new TaskDetial
+ {
+ Taskno = taskNo,//浠诲姟鍙�
+ Startport = item.LocatNo,
+ Endport = model.Location,//endLoction.LocatNo,
+ Pallno = item.PalletNo,
+ Crtype = "1",//鍙《
+ WareHouseNo = houseNo
+ };
+ //缁欎笅杞︿笅鍙戜换鍔�
+ logTaskEntry2.SendDate = DateTime.Now;//鍙戦�佹椂闂�
+ var agvResult2 = CreateTaskForAgv(task2, url, out agvMsg);
+ if (agvResult2)//鎴愬姛
+ {
+ //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+ logTaskEntry2.IsSuccess = 1;
+ logTaskEntry2.IsSend = 0;
+ //logTaskEntry2.IsCancel = 0;
+ logTaskEntry2.BackDate = DateTime.Now;
+ logTaskEntry2.Status = "1";
+ Db.Insertable(logTaskEntry2).ExecuteCommand();
+
+ startLoction2.Status = "3";//鍑哄簱涓�
+ Db.Updateable(startLoction2).ExecuteCommand();
+
+ endLoction.Status = "2";//鍏ュ簱涓�
+ Db.Updateable(endLoction).ExecuteCommand();
+ }
+ else//澶辫触
+ {
+ logTaskEntry2.IsSuccess = 0;
+ logTaskEntry2.Information = agvMsg;
+ Db.Insertable(logTaskEntry2).ExecuteCommand();
+
+ }
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+ return;
+ }
+ }
+ break;
+ default:
+ throw new Exception("浠诲姟绫诲瀷鏃犳晥");
+ }
+ //璧峰鍌ㄤ綅鍦板潃淇℃伅
+ var startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == pallet.LocatNo);
+ if (startLoction == null)
+ {
+ throw new Exception($"璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦紝妗跺彿锛歿pallet.LocatNo}");
+ }
+
+ taskNo = new Common().GetMaxNo("TN");//浠诲姟鍙�
+ //浠诲姟淇℃伅
+ var logTaskEntry = new LogTask
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "RCS",
+ //IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+ SendDate = DateTime.Now, //鍙戦�佹椂闂�
+ //BackDate = DateTime.Now, //杩斿洖鏃堕棿
+ StartLocat = pallet.LocatNo,//璧峰浣嶇疆
+ EndLocat = endLoction.LocatNo,//鐩爣浣嶇疆
+ PalletNo = pallet.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ OrderType = "3",//鍗曟嵁绫诲瀷 0 鍏ュ簱 1 鍑哄簱 3绉诲簱
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ NoticeDetailNo = int.Parse(noticeNo),
+ Msg = taskMsg, //鍏抽敭淇℃伅
+ LotNo = pallet.LotNo//鎵规鍙�
+ };
+
+ //缁勭粐涓嬪彂灏忚溅浠诲姟淇℃伅
+ var task = new TaskDetial
+ {
+ Taskno = taskNo,//浠诲姟鍙�
+ Startport = pallet.LocatNo,//璧峰浣嶇疆
+ Endport = model.Location,//endLoction.LocatNo,//鐩爣浣嶇疆
+ Pallno = pallet.PalletNo,//妗跺彿
+ Crtype = "1",//鍙《
+ WareHouseNo = houseNo//杞﹂棿缂栫爜
+ };
+ //缁欎笅杞︿笅鍙戜换鍔�
+ logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
+ var agvResult = CreateTaskForAgv(task, url, out agvMsg);
+ if (agvResult)//鎴愬姛
+ {
+ //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+ logTaskEntry.IsSuccess = 1;
+ logTaskEntry.IsSend = 0;
+ //logTaskEntry.IsCancel = 0;
+ logTaskEntry.BackDate = DateTime.Now;
+ logTaskEntry.Status = "1";//姝e湪鎵ц
+ Db.Insertable(logTaskEntry).ExecuteCommand();
+
+ startLoction.Status = "3";//鍑哄簱涓�
+ Db.Updateable(startLoction).ExecuteCommand();
+
+ endLoction.Status = "2";//鍏ュ簱涓�
+ Db.Updateable(endLoction).ExecuteCommand();
+ }
+ else//澶辫触
+ {
+ logTaskEntry.IsSuccess = 0;
+ logTaskEntry.Information = agvMsg;
+ Db.Insertable(logTaskEntry).ExecuteCommand();
+
+ }
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
}
- else//澶辫触
+ catch (Exception ex)
{
- logTaskEntry.IsSuccess = 0;
- logTaskEntry.Information = agvMsg;
- Db.Insertable(logTaskEntry).ExecuteCommand();
-
+ //鍥炴粴浜嬪姟
+ Db.RollbackTran();
+ throw new Exception(ex.Message);
}
- //鎻愪氦浜嬪姟
- Db.CommitTran();
- }
- catch (Exception ex)
- {
- //鍥炴粴浜嬪姟
- Db.RollbackTran();
- throw new Exception(ex.Message);
}
}
@@ -442,275 +447,278 @@
/// <param name="taskNo"></param>
/// <exception cref="Exception"></exception>
public void ApplyLocatNo(Pallnetmsg model, string url, out string taskNo)
- {
- try
+ {
+ lock (RcsLock)
{
- string taskMsg = "";
-
- //閫氳繃璁惧鍙锋煡鎵惧埌鎵�灞炶澶囷紙鍖哄煙锛�
- var deviceInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode.Contains(model.Location));
- if (deviceInfo == null)
+ try
{
- throw new Exception("璁惧淇℃伅涓嶅瓨鍦�");
- }
- //鐢宠鍌ㄤ綅璁惧鎵�鍦ㄨ溅闂寸紪鍙�
- var houseNo = deviceInfo.WareHouseNo;
- //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
- var deviceLocatInfo = new SysStorageLocat();
- //鍑哄叆搴撳崟鎹槑缁咺D
- var noticeno = "0";
- //鐩爣鍌ㄤ綅淇℃伅
- var loction = new SysStorageLocat();
- //妗跺簱瀛樹俊鎭�
- var palletInfo = new DataStockDetail();
+ string taskMsg = "";
- //寮�鍚簨鍔�
- Db.BeginTran();
- switch (model.Type)
- {
- case "3"://娓呮礂璁惧鐢宠鍌ㄤ綅锛堝噣妗剁敵璇峰偍浣嶏級
- {
- //璁惧鏀炬《鍌ㄤ綅淇℃伅锛堝師濮嬪彨妗剁洰鏍囧偍浣嶏級
- var deviceLocatInfo2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 娓呮礂鍌ㄤ綅锛孋olumn=2 娓呮礂瀹屾枡鍌ㄤ綅
- if (deviceLocatInfo2 == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
- }
- //鏌ユ壘妗跺簱瀛樹俊鎭�
- palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo2.WareHouseNo && w.AreaNo == deviceLocatInfo2.AreaNo && w.LocatNo == deviceLocatInfo2.LocatNo).OrderBy(o => o.UpdateTime).First();
- if (palletInfo == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
- }
- //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
- var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
- if (tasking != null)
- {
- throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
- }
+ //閫氳繃璁惧鍙锋煡鎵惧埌鎵�灞炶澶囷紙鍖哄煙锛�
+ var deviceInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode.Contains(model.Location));
+ if (deviceInfo == null)
+ {
+ throw new Exception("璁惧淇℃伅涓嶅瓨鍦�");
+ }
+ //鐢宠鍌ㄤ綅璁惧鎵�鍦ㄨ溅闂寸紪鍙�
+ var houseNo = deviceInfo.WareHouseNo;
+ //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
+ var deviceLocatInfo = new SysStorageLocat();
+ //鍑哄叆搴撳崟鎹槑缁咺D
+ var noticeno = "0";
+ //鐩爣鍌ㄤ綅淇℃伅
+ var loction = new SysStorageLocat();
+ //妗跺簱瀛樹俊鎭�
+ var palletInfo = new DataStockDetail();
- //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
- deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 2);// Column=1 娓呮礂鍌ㄤ綅锛孋olumn=2 娓呮礂瀹屾枡鍌ㄤ綅
- if (deviceLocatInfo == null)
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ switch (model.Type)
+ {
+ case "3"://娓呮礂璁惧鐢宠鍌ㄤ綅锛堝噣妗剁敵璇峰偍浣嶏級
{
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
- }
- //鏌ユ壘鍒拌杞﹂棿鍑�妗跺尯;
- loction = GetLocatModel(houseNo, "0");
- if (loction == null)
- {
- throw new Exception("璇ヨ溅闂村噣妗跺尯鏆傛棤绌轰綑鍌ㄤ綅");
- }
+ //璁惧鏀炬《鍌ㄤ綅淇℃伅锛堝師濮嬪彨妗剁洰鏍囧偍浣嶏級
+ var deviceLocatInfo2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 娓呮礂鍌ㄤ綅锛孋olumn=2 娓呮礂瀹屾枡鍌ㄤ綅
+ if (deviceLocatInfo2 == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+ }
+ //鏌ユ壘妗跺簱瀛樹俊鎭�
+ palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo2.WareHouseNo && w.AreaNo == deviceLocatInfo2.AreaNo && w.LocatNo == deviceLocatInfo2.LocatNo).OrderBy(o => o.UpdateTime).First();
+ if (palletInfo == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
+ }
+ //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
+ var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
+ if (tasking != null)
+ {
+ throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+ }
- taskMsg = "娓呮礂璁惧锛堝噣妗讹級鐢宠鍌ㄤ綅浠诲姟";
- }
- break;
- case "0"://鎺ユ枡璁惧鐢宠鍌ㄤ綅锛堥娣锋枡妗剁敵璇峰偍浣嶏級
- {
- //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
- deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
- if (deviceLocatInfo == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
- }
- //鏌ユ壘妗跺簱瀛樹俊鎭�
- palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First();
- if (palletInfo == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
- }
- palletInfo.LotNo = model.LotNo;//鎵规鍙�
- //鏇存柊妗跺簱瀛樹俊鎭�
- Db.Updateable(palletInfo).ExecuteCommand();
+ //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
+ deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 2);// Column=1 娓呮礂鍌ㄤ綅锛孋olumn=2 娓呮礂瀹屾枡鍌ㄤ綅
+ if (deviceLocatInfo == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+ }
+ //鏌ユ壘鍒拌杞﹂棿鍑�妗跺尯;
+ loction = GetLocatModel(houseNo, "0");
+ if (loction == null)
+ {
+ throw new Exception("璇ヨ溅闂村噣妗跺尯鏆傛棤绌轰綑鍌ㄤ綅");
+ }
- //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
- var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
- if (tasking != null)
- {
- throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+ taskMsg = "娓呮礂璁惧锛堝噣妗讹級鐢宠鍌ㄤ綅浠诲姟";
}
-
- //鍒ゆ柇鏄惁鏈夋壒娆″彿
- if (string.IsNullOrWhiteSpace(model.LotNo))
- {
- throw new Exception("鎵规鍙蜂负绌猴紒");
- }
- //鏌ユ壘鍒拌杞﹂棿棰勬贩鍖�
- loction = GetLocatModel(houseNo, "1");
- if (loction == null)
- {
- throw new Exception("璇ヨ溅闂撮娣峰尯鏆傛棤绌轰綑鍌ㄤ綅");
- }
-
-
- taskMsg = "鎺ユ枡璁惧锛堥娣锋枡妗讹級鐢宠鍌ㄤ綅浠诲姟";
- }
- break;
- case "1"://娣锋枡璁惧鐢宠鍌ㄤ綅锛堝崐鎴愬搧妗剁敵璇峰偍浣嶏級
- {
- //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
- deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
- if (deviceLocatInfo == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
- }
- //鏌ユ壘妗跺簱瀛樹俊鎭�
- palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First();
- if (palletInfo == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
- }
- //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
- var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
- if (tasking != null)
- {
- throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
- }
-
- //鍒ゆ柇鏄惁鏈夋壒娆″彿
- if (string.IsNullOrWhiteSpace(model.LotNo))
- {
- throw new Exception("鎵规鍙蜂负绌猴紒");
- }
- //鏍¢獙姝ゆ壒娆℃槸鍚︽湁鍏ュ簱鍗�
- /*var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().Where(w => w.IsDel == "0" && w.Status == "0" && w.LotNo == model.LotNo).OrderByDescending(o => o.CreateTime).First();
- if (noticeDetail == null)
- {
- throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍏ュ簱鍗曟槑缁�");
- }
- noticeno = noticeDetail.Id.ToString();
- //鍏ュ簱鎬诲崟
- var notice = Db.Queryable<BllArrivalNotice>().Where(w => w.IsDel == "0" && w.ASNNo == noticeDetail.ASNNo).First();
- if (notice == null)
- {
- throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍏ュ簱鍗�");
- }
- notice.Status = "1";//姝e湪鎵ц
- //鏇存柊鍏ュ簱鍗曠姸鎬�
- Db.Updateable(notice).ExecuteCommand();*/
-
- //鏌ユ壘鍒拌杞﹂棿鍗婃垚鍝佸尯
- loction = GetLocatModel(houseNo, "2");
- if (loction == null)
- {
- throw new Exception("璇ヨ溅闂村崐鎴愬搧鍖烘殏鏃犵┖浣欏偍浣�");
- }
-
- taskMsg = "鎺ユ枡璁惧锛堟贩鏂欐《锛夌敵璇峰偍浣嶄换鍔�";
- }
- break;
- case "2"://涓嬫枡璁惧鐢宠鍌ㄤ綅锛堣剰妗剁敵璇峰偍浣嶏級
- {
- //璁惧鏀炬《鍌ㄤ綅淇℃伅锛堝師濮嬪彨妗剁洰鏍囧偍浣嶏級
- var deviceLocatInfo2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 鎶曟枡鍌ㄤ綅锛孋olumn=2 鎶曞畬鏂欏偍浣�
- if (deviceLocatInfo2 == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
- }
- //鏌ユ壘妗跺簱瀛樹俊鎭�
- palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo2.WareHouseNo && w.AreaNo == deviceLocatInfo2.AreaNo && w.LocatNo == deviceLocatInfo2.LocatNo).OrderBy(o => o.UpdateTime).First();
- if (palletInfo == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
- }
- //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
- var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
- if (tasking != null)
- {
- throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
- }
- if (houseNo == "M04")//闄や簡鍠峰共杞﹂棿涓嬫枡鍙i兘鏄�2涓偍浣嶏紙鎶曟枡鍌ㄤ綅銆佹姇瀹屾枡鍌ㄤ綅锛�
+ break;
+ case "0"://鎺ユ枡璁惧鐢宠鍌ㄤ綅锛堥娣锋枡妗剁敵璇峰偍浣嶏級
{
//璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
- deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);
+ deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
+ if (deviceLocatInfo == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+ }
+ //鏌ユ壘妗跺簱瀛樹俊鎭�
+ palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First();
+ if (palletInfo == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
+ }
+ palletInfo.LotNo = model.LotNo;//鎵规鍙�
+ //鏇存柊妗跺簱瀛樹俊鎭�
+ Db.Updateable(palletInfo).ExecuteCommand();
+
+ //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
+ var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
+ if (tasking != null)
+ {
+ throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+ }
+
+ //鍒ゆ柇鏄惁鏈夋壒娆″彿
+ if (string.IsNullOrWhiteSpace(model.LotNo))
+ {
+ throw new Exception("鎵规鍙蜂负绌猴紒");
+ }
+ //鏌ユ壘鍒拌杞﹂棿棰勬贩鍖�
+ loction = GetLocatModel(houseNo, "1");
+ if (loction == null)
+ {
+ throw new Exception("璇ヨ溅闂撮娣峰尯鏆傛棤绌轰綑鍌ㄤ綅");
+ }
+
+
+ taskMsg = "鎺ユ枡璁惧锛堥娣锋枡妗讹級鐢宠鍌ㄤ綅浠诲姟";
}
- else
+ break;
+ case "1"://娣锋枡璁惧鐢宠鍌ㄤ綅锛堝崐鎴愬搧妗剁敵璇峰偍浣嶏級
{
//璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
- deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 2);//Column=1 鎶曟枡鍌ㄤ綅锛孋olumn=2 鎶曞畬鏂欏偍浣�
- }
- if (deviceLocatInfo == null)
- {
- throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+ deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
+ if (deviceLocatInfo == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+ }
+ //鏌ユ壘妗跺簱瀛樹俊鎭�
+ palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First();
+ if (palletInfo == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
+ }
+ //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
+ var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
+ if (tasking != null)
+ {
+ throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+ }
+
+ //鍒ゆ柇鏄惁鏈夋壒娆″彿
+ if (string.IsNullOrWhiteSpace(model.LotNo))
+ {
+ throw new Exception("鎵规鍙蜂负绌猴紒");
+ }
+ //鏍¢獙姝ゆ壒娆℃槸鍚︽湁鍏ュ簱鍗�
+ /*var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().Where(w => w.IsDel == "0" && w.Status == "0" && w.LotNo == model.LotNo).OrderByDescending(o => o.CreateTime).First();
+ if (noticeDetail == null)
+ {
+ throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍏ュ簱鍗曟槑缁�");
+ }
+ noticeno = noticeDetail.Id.ToString();
+ //鍏ュ簱鎬诲崟
+ var notice = Db.Queryable<BllArrivalNotice>().Where(w => w.IsDel == "0" && w.ASNNo == noticeDetail.ASNNo).First();
+ if (notice == null)
+ {
+ throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍏ュ簱鍗�");
+ }
+ notice.Status = "1";//姝e湪鎵ц
+ //鏇存柊鍏ュ簱鍗曠姸鎬�
+ Db.Updateable(notice).ExecuteCommand();*/
+
+ //鏌ユ壘鍒拌杞﹂棿鍗婃垚鍝佸尯
+ loction = GetLocatModel(houseNo, "2");
+ if (loction == null)
+ {
+ throw new Exception("璇ヨ溅闂村崐鎴愬搧鍖烘殏鏃犵┖浣欏偍浣�");
+ }
+
+ taskMsg = "鎺ユ枡璁惧锛堟贩鏂欐《锛夌敵璇峰偍浣嶄换鍔�";
}
- //鏌ユ壘鍒拌杞﹂棿鑴忔《鍖�
- loction = GetLocatModel(houseNo, "3");
- if (loction == null)
+ break;
+ case "2"://涓嬫枡璁惧鐢宠鍌ㄤ綅锛堣剰妗剁敵璇峰偍浣嶏級
{
- throw new Exception("璇ヨ溅闂磋剰妗跺尯鏆傛棤绌轰綑鍌ㄤ綅");
+ //璁惧鏀炬《鍌ㄤ綅淇℃伅锛堝師濮嬪彨妗剁洰鏍囧偍浣嶏級
+ var deviceLocatInfo2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 鎶曟枡鍌ㄤ綅锛孋olumn=2 鎶曞畬鏂欏偍浣�
+ if (deviceLocatInfo2 == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+ }
+ //鏌ユ壘妗跺簱瀛樹俊鎭�
+ palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo2.WareHouseNo && w.AreaNo == deviceLocatInfo2.AreaNo && w.LocatNo == deviceLocatInfo2.LocatNo).OrderBy(o => o.UpdateTime).First();
+ if (palletInfo == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
+ }
+ //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
+ var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
+ if (tasking != null)
+ {
+ throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+ }
+ if (houseNo == "M04")//闄や簡鍠峰共杞﹂棿涓嬫枡鍙i兘鏄�2涓偍浣嶏紙鎶曟枡鍌ㄤ綅銆佹姇瀹屾枡鍌ㄤ綅锛�
+ {
+ //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
+ deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);
+ }
+ else
+ {
+ //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
+ deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 2);//Column=1 鎶曟枡鍌ㄤ綅锛孋olumn=2 鎶曞畬鏂欏偍浣�
+ }
+ if (deviceLocatInfo == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+ }
+ //鏌ユ壘鍒拌杞﹂棿鑴忔《鍖�
+ loction = GetLocatModel(houseNo, "3");
+ if (loction == null)
+ {
+ throw new Exception("璇ヨ溅闂磋剰妗跺尯鏆傛棤绌轰綑鍌ㄤ綅");
+ }
+
+ taskMsg = "涓嬫枡璁惧锛堣剰妗讹級鐢宠鍌ㄤ綅浠诲姟";
}
+ break;
+ }
- taskMsg = "涓嬫枡璁惧锛堣剰妗讹級鐢宠鍌ㄤ綅浠诲姟";
- }
- break;
+ taskNo = new Common().GetMaxNo("TN");//浠诲姟鍙�
+ //浠诲姟淇℃伅
+ var logTaskEntry = new LogTask
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "RCS",
+ //IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+ SendDate = DateTime.Now, //鍙戦�佹椂闂�
+ //BackDate = DateTime.Now, //杩斿洖鏃堕棿
+ StartLocat = deviceLocatInfo.LocatNo,//璧峰浣嶇疆
+ EndLocat = loction.LocatNo,//鐩爣浣嶇疆
+ PalletNo = palletInfo.PalletNo,//妗跺彿
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ OrderType = "3",//鍗曟嵁绫诲瀷 0 鍏ュ簱 1 鍑哄簱 3 绉诲簱
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ NoticeDetailNo = int.Parse(noticeno),
+ Msg = taskMsg, //鍏抽敭淇℃伅
+ LotNo = palletInfo.LotNo//鎵规鍙�
+ };
+ var task = new TaskDetial
+ {
+ Taskno = taskNo,//浠诲姟鍙�
+ Startport = model.Location,//deviceLocatInfo.LocatNo,//璧峰浣嶇疆
+ Endport = loction.LocatNo,//鐩爣浣嶇疆
+ Pallno = palletInfo.PalletNo,
+ Crtype = "0",//鍏ュ簱
+ WareHouseNo = houseNo
+ };
+ string agvMsg = string.Empty;
+ //缁欎笅杞︿笅鍙戜换鍔�
+ logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
+ var agvResult = CreateTaskForAgv(task, url, out agvMsg);
+ if (agvResult)//鎴愬姛
+ {
+ //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+ logTaskEntry.IsSuccess = 1;
+ logTaskEntry.IsSend = 0;
+ //logTaskEntry.IsCancel = 0;
+ logTaskEntry.BackDate = DateTime.Now;
+ logTaskEntry.Status = "1";//姝e湪鎵ц
+ Db.Insertable(logTaskEntry).ExecuteCommand();
+
+ deviceLocatInfo.Status = "3";//鍑哄簱涓�
+ Db.Updateable(deviceLocatInfo).ExecuteCommand();
+
+ loction.Status = "2";//鍏ュ簱涓�
+ Db.Updateable(loction).ExecuteCommand();
+ }
+ else//澶辫触
+ {
+ logTaskEntry.IsSuccess = 0;
+ logTaskEntry.Information = agvMsg;
+ Db.Insertable(logTaskEntry).ExecuteCommand();
+ }
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
}
-
- taskNo = new Common().GetMaxNo("TN");//浠诲姟鍙�
- //浠诲姟淇℃伅
- var logTaskEntry = new LogTask
+ catch (Exception ex)
{
- TaskNo = taskNo,
- Sender = "WMS",
- Receiver = "RCS",
- //IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- SendDate = DateTime.Now, //鍙戦�佹椂闂�
- //BackDate = DateTime.Now, //杩斿洖鏃堕棿
- StartLocat = deviceLocatInfo.LocatNo,//璧峰浣嶇疆
- EndLocat = loction.LocatNo,//鐩爣浣嶇疆
- PalletNo = palletInfo.PalletNo,//妗跺彿
- IsSend = 1,//鏄惁鍙啀娆′笅鍙�
- IsCancel = 1,//鏄惁鍙彇娑�
- IsFinish = 1,//鏄惁鍙畬鎴�
- Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- OrderType = "3",//鍗曟嵁绫诲瀷 0 鍏ュ簱 1 鍑哄簱 3 绉诲簱
- Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- NoticeDetailNo = int.Parse(noticeno),
- Msg = taskMsg, //鍏抽敭淇℃伅
- LotNo = palletInfo.LotNo//鎵规鍙�
- };
- var task = new TaskDetial
- {
- Taskno = taskNo,//浠诲姟鍙�
- Startport = model.Location,//deviceLocatInfo.LocatNo,//璧峰浣嶇疆
- Endport = loction.LocatNo,//鐩爣浣嶇疆
- Pallno = palletInfo.PalletNo,
- Crtype = "0",//鍏ュ簱
- WareHouseNo = houseNo
- };
- string agvMsg = string.Empty;
- //缁欎笅杞︿笅鍙戜换鍔�
- logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
- var agvResult = CreateTaskForAgv(task, url, out agvMsg);
- if (agvResult)//鎴愬姛
- {
- //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
- logTaskEntry.IsSuccess = 1;
- logTaskEntry.IsSend = 0;
- //logTaskEntry.IsCancel = 0;
- logTaskEntry.BackDate = DateTime.Now;
- logTaskEntry.Status = "1";//姝e湪鎵ц
- Db.Insertable(logTaskEntry).ExecuteCommand();
-
- deviceLocatInfo.Status = "3";//鍑哄簱涓�
- Db.Updateable(deviceLocatInfo).ExecuteCommand();
-
- loction.Status = "2";//鍏ュ簱涓�
- Db.Updateable(loction).ExecuteCommand();
+ //鍥炴粴浜嬪姟
+ Db.RollbackTran();
+ throw new Exception(ex.Message);
}
- else//澶辫触
- {
- logTaskEntry.IsSuccess = 0;
- logTaskEntry.Information = agvMsg;
- Db.Insertable(logTaskEntry).ExecuteCommand();
- }
- //鎻愪氦浜嬪姟
- Db.CommitTran();
- }
- catch (Exception ex)
- {
- //鍥炴粴浜嬪姟
- Db.RollbackTran();
- throw new Exception(ex.Message);
}
}
/// <summary>
--
Gitblit v1.8.0