From 2920728d7908da2ee196f3af8b3d1c635696e9a1 Mon Sep 17 00:00:00 2001
From: zwc <526854230@qq.com>
Date: 星期三, 15 一月 2025 15:47:15 +0800
Subject: [PATCH] 修改问题
---
Wms/Wms/Controllers/UpApiController.cs | 59 ++
Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs | 2
Wms/Wms/Controllers/PdaCrController.cs | 4
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 79 +++
Wms/Wms/Tools/ApiUrlConfig.cs | 5
Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs | 10
Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs | 15
Wms/WMS.BLL/DataServer/StockServer.cs | 140 ++++++
Wms/Wms/Properties/launchSettings.json | 22
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 388 +++++++++++++++++
Wms/Wms/appsettings.json | 9
Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 327 ++++++++++++-
Wms/Wms/Controllers/BllSoController.cs | 2
Wms/Model/InterFaceModel/AsnModels.cs | 47 ++
Wms/Model/InterFaceModel/HttpModel.cs | 82 +++
Wms/WMS.IBLL/IDataServer/IStockServer.cs | 24 +
Wms/Wms/Controllers/DownApiController.cs | 51 ++
Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 7
18 files changed, 1,181 insertions(+), 92 deletions(-)
diff --git a/Wms/Model/InterFaceModel/AsnModels.cs b/Wms/Model/InterFaceModel/AsnModels.cs
index c5a3f3a..a856d63 100644
--- a/Wms/Model/InterFaceModel/AsnModels.cs
+++ b/Wms/Model/InterFaceModel/AsnModels.cs
@@ -98,4 +98,51 @@
public string PalletNo { get; set; }
}
+ public class BoxInfoCheck
+ {
+ public string PalletNo { get; set; }
+ public string TaskNo { get; set; }
+ }
+
+ public class RequestBoxInfoCheck
+ {
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ public string PalletNo { get; set; }
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string TaskNo { get; set; }
+ /// <summary>
+ /// 璁㈠崟鍙�
+ /// </summary>
+ public string OrderNo { get; set; }
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ public string SkuNo { get; set; }
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string SkuName { get; set; }
+ /// <summary>
+ /// 鎵规
+ /// </summary>
+ public string LotNo { get; set; }
+ /// <summary>
+ /// 瑙勬牸
+ /// </summary>
+ public string Standard { get; set; }
+ /// <summary>
+ /// 鎷嗙鏁伴噺
+ /// </summary>
+ public int? Qty { get; set; }
+ /// <summary>
+ /// 鎵樼洏涓婃�荤鏁�
+ /// </summary>
+ public int? QtyCount { get; set; }
+ }
+
+
}
diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs
index 8e220c6..c4b9322 100644
--- a/Wms/Model/InterFaceModel/HttpModel.cs
+++ b/Wms/Model/InterFaceModel/HttpModel.cs
@@ -379,7 +379,7 @@
/// 鏍煎紡: 鈥測yyy-MM-ddHH:mm:ss鈥�
/// 鏄惁蹇呭~锛氬惁
/// </summary>
- public string EeqTime { get; set; }
+ public string ReqTime { get; set; }
/// <summary>
/// 瀹㈡埛绔紪鍙凤紝濡� PDA锛孒CWMS 绛夈��
@@ -422,6 +422,13 @@
/// 鏄惁蹇呭~锛氬惁
/// </summary>
public string CtnrTyp { get; set; }
+
+ /// <summary>
+ /// 瀹瑰櫒鏁伴噺锛堝弶杞�/CTU 涓撶敤锛�
+ /// 鍙夎溅椤圭洰蹇呬紶
+ /// 鏄惁蹇呭~锛氬惁
+ /// </summary>
+ public string CtnrNum { get; set; }
/// <summary>
/// 瀹瑰櫒缂栧彿锛堝弶杞�/CTU 涓撶敤锛�
@@ -665,6 +672,7 @@
/// </summary>
public class AgvTaskDto
{
+
/// <summary>
/// 璇锋眰缂栧彿锛屾瘡涓姹傞兘瑕佷竴涓敮涓�缂栧彿
/// 鍚屼竴涓姹傞噸澶嶆彁浜� 浣跨敤鍚屼竴缂栧彿
@@ -683,13 +691,13 @@
/// 鍦扮爜 X 鍧愭爣(mm)锛氫换鍔″畬鎴愭椂鏈夊��
/// 鏄惁蹇呭~锛氬惁
/// </summary>
- public int CooX { get; set; }
+ public decimal CooX { get; set; }
/// <summary>
/// 鍦扮爜 Y 鍧愭爣(mm)锛氫换鍔″畬鎴愭椂鏈夊��
/// 鏄惁蹇呭~锛氬惁
/// </summary>
- public int CooY { get; set; }
+ public decimal CooY { get; set; }
/// <summary>
/// 褰撳墠浣嶇疆缂栧彿
@@ -785,11 +793,6 @@
/// </summary>
public string CtnrCode { get; set; }
- /// <summary>
- /// 瀹瑰櫒绫诲瀷
- /// 鏄惁蹇呭~锛氬惁
- /// </summary>
- public string CtnrType { get; set; }
/// <summary>
/// 宸烽亾缂栧彿
@@ -809,6 +812,40 @@
/// 鏄惁蹇呭~锛氬惁
/// </summary>
public string EqpCode { get; set; }
+ public string DstBinCode { get; set; }
+ public string IndBind { get; set; }
+ public string Layer { get; set; }
+ public string MapShortName { get; set; }
+ public string MaterialType { get; set; }
+
+ public string Action { get; set; }
+ public string AreaCode { get; set; }
+
+ public string BerthCode { get; set; }
+
+
+
+ public string CallCode { get; set; }
+
+ public string CallTyp { get; set; }
+ public string ClientCode { get; set; }
+ public string OrgCode { get; set; }
+ public string CtnrTyp { get; set; }
+ public string CurrentCallCode { get; set; }
+
+ public string PodCode { get; set; }
+
+ public string PodTyp { get; set; }
+ public string PodNum { get; set; }
+ public string RelatedArea { get; set; }
+ public string ReqTime { get; set; }
+ public string SubTaskNum { get; set; }
+
+ public string TaskTyp { get; set; }
+
+ public string TokenCode { get; set; }
+ public string Username { get; set; }
+ public string WhCode { get; set; }
}
/// <summary>
@@ -845,6 +882,35 @@
/// </summary>
public string Data { get; set; }
}
+
+ /// <summary>
+ /// WMS涓嬪彂AGV鍙栨秷浠诲姟鍥炰紶鍙傛暟
+ /// </summary>
+ public class cancelTaskModel
+ {
+ /// <summary>
+ /// 杩斿洖鐮�
+ /// 0锛氭垚鍔�
+ /// 1锛氬弬鏁扮浉鍏崇殑閿欒
+ /// 6锛氶噸澶嶅彂閫侊紝涓婂眰绯荤粺涓嶉渶瑕侀噸鍙�
+ /// 99锛氬叾浠栨湭鐭ラ敊璇紝璋冪敤澶辫触鍚庯紝鍙互閲嶈瘯
+ /// 100锛� 璇ヤ换鍔′笉瀛樺湪锛屼笂灞傜郴缁熶笉闇�閲嶅彂锛岄渶瑕佷汉宸ヤ粙鍏ュ鐞�
+ /// 鏄惁蹇呭~锛氭槸
+ /// </summary>
+ public string Code { get; set; }
+
+ /// <summary>
+ /// 杩斿洖娑堟伅
+ /// 鏄惁蹇呭~锛氭槸
+ /// </summary>
+ public string Message { get; set; }
+
+ /// <summary>
+ /// 璇锋眰缂栧彿
+ /// 鏄惁蹇呭~锛氭槸
+ /// </summary>
+ public string ReqCode { get; set; }
+ }
#endregion
#region FuMa-Model
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 0391053..90d2952 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -410,6 +410,20 @@
if (model.Type == "0")//鎴愬搧鍏ュ簱鍗曚笅鍙慦CS淇℃伅
{
+ //璁$畻鍑烘�荤鏁�
+ var packmodel = Db.Queryable<SysPackag>().First(w=>w.PackagNo == detailModel.SkuNo);
+ int xqty = 0;
+ if (packmodel.L1Name == "绠�") {
+ xqty = (int)detailModel.Qty;
+ }
+ if (packmodel.L2Name == "绠�")
+ {
+ xqty = (int)(detailModel.Qty / packmodel.L2Num);
+ }
+ if (packmodel.L3Name == "绠�")
+ {
+ xqty = (int)(detailModel.Qty/ packmodel.L2Num / packmodel.L3Num);
+ }
addOder.Add(new ResponseOrderTaskModel()
{
OrderNo = model.ASNNo,
@@ -417,7 +431,7 @@
SkuNo = detailModel.SkuNo,
SkuName = detailModel.SkuName,
BoxType = detailModel.Standard,
- Qty = (int)detailModel.Qty,
+ Qty = xqty,
TaskType = 0
});
}
@@ -1009,10 +1023,11 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- public HttpReturnModel HttpCreateAsn(AsnInfo model)
+ public HttpReturnModel HttpCreateAsn(AsnInfo model, string url)
{
try
{
+ var addOder = new List<ResponseOrderTaskModel>();
var resultModel = new HttpReturnModel() { Success = "-1", Message = "" };
if (string.IsNullOrEmpty(model.AsnType))
{
@@ -1105,7 +1120,37 @@
};
detailModels.Add(detailModel);
+
+ if (model.AsnType == "0")//鎴愬搧鍏ュ簱鍗曚笅鍙慦CS淇℃伅
+ {
+ //璁$畻鍑烘�荤鏁�
+ var packmodel = Db.Queryable<SysPackag>().First(w => w.PackagNo == detailModel.SkuNo);
+ int xqty = 0;
+ if (packmodel.L1Name == "绠�")
+ {
+ xqty = (int)detailModel.Qty;
+ }
+ if (packmodel.L2Name == "绠�")
+ {
+ xqty = (int)(detailModel.Qty / packmodel.L2Num);
+ }
+ if (packmodel.L3Name == "绠�")
+ {
+ xqty = (int)(detailModel.Qty / packmodel.L2Num / packmodel.L3Num);
+ }
+ addOder.Add(new ResponseOrderTaskModel()
+ {
+ OrderNo = asnNo,
+ LotNo = asnDetailModel.LotNo,
+ SkuNo = asnDetailModel.SkuNo,
+ SkuName = skuModel.SkuName,
+ BoxType = skuModel.Standard,
+ Qty = (int)asnDetailModel.Qty,
+ TaskType = 0
+ });
+ }
}
+
Db.BeginTran();
// 鎻掑叆鍏ュ簱鍗曟�昏〃
@@ -1115,6 +1160,36 @@
Db.Insertable(detailModels).ExecuteCommand();
Db.CommitTran();
+
+ if (addOder.Count > 0)
+ {
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ var jsonData = JsonConvert.SerializeObject(addOder);
+ string response = "";
+
+ try
+ {
+ var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+ //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
+ response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍏ュ簱鍛戒护", "WCS");
+
+ //瑙f瀽杩斿洖鏁版嵁
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+ if (wcsModel.StatusCode == 0)
+ {
+
+ }
+ if (wcsModel.StatusCode == -1)
+ {
+ throw new Exception($"涓嬪彂WCS澶辫触锛歿wcsModel.Msg}");
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
resultModel.Success = "0";
resultModel.Message = "鎴愬姛";
return resultModel;
diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
index f1f7215..50a3dd7 100644
--- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
@@ -3226,9 +3226,9 @@
throw new Exception("鏈壘鍒拌鎵樼洏鏉$爜锛�" + palletNo);
}
var palletBindList = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo && m.LocatNo.Substring(0,1) != "B").First();
- if (palletBindList.IsBelt == "1")
+ if (palletBindList.IsBale == "2")
{
- palletBindList.IsBelt = "0";
+ palletBindList.IsBale = "0";
Db.Updateable(palletBindList).ExecuteCommand();
t = 1;
}
@@ -3256,8 +3256,9 @@
var palletBindList = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo && m.Status == "1").OrderByDescending(m => m.CreateTime).First();
if (palletBindList.IsBale == "1")
{
- palletBindList.IsBelt = "1";
+ palletBindList.IsBale = "2";
Db.Updateable(palletBindList).ExecuteCommand();
+ t = 1;
}
return t;
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
index b4bb031..b146a20 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
@@ -1,4 +1,5 @@
锘縰sing System;
+using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Security.Policy;
@@ -6,6 +7,7 @@
using System.Threading.Tasks;
using Model.InterFaceModel;
using Model.ModelDto.BllCheckDto;
+using Model.ModelDto.LogDto;
using Model.ModelDto.PdaDto;
using Model.ModelDto.SysDto;
using Model.ModelVm;
@@ -904,7 +906,8 @@
}
try
{
- string EndLocat = string.Empty;//鐩爣浣嶇疆
+ string EndLocat = string.Empty,OrderTy = "";//鐩爣浣嶇疆
+
var log = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && (w.Status == "0" || w.Status == "1"));
if (log != null)
@@ -924,10 +927,14 @@
throw new Exception("鎵�閫夊尯鍩熶俊鎭笉瀛樺湪,璇锋鏌�!");
}
EndLocat = GetLocat(areaNo, stockDetail.SkuNo, stockDetail.LotNo, palletNo);
+ OrderTy = "3";//绉诲簱
}
else
{
EndLocat = ruku;
+ OrderTy = "0";//鍏ュ簱
+
+
}
var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == stockDetail.SkuNo && w.LotNo == stockDetail.LotNo);
if (stock == null)
@@ -980,7 +987,7 @@
IsFinish = 1,//鏄惁鍙畬鎴�
Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ OrderType = OrderTy,//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
CreateTime = DateTime.Now
};
@@ -1009,53 +1016,105 @@
#region 鍛煎彨灏忚溅浠g爜
+ var endlono = EndLocat;
+ var tasktype = "D00"; //榛樿涓虹偣鍒扮偣浠诲姟
+ //鏍规嵁鐩殑鍦板潃搴撳尯鑾峰彇灏忚溅浠诲姟绫诲瀷
+ switch (storageLocatEnd.AreaNo)
+ {
+ case "B13" :
+ tasktype = "D02"; // 鍙犳墭浠诲姟锛堢洰鐨勫湴鍧�涓虹┖鎵樼洏鏀堕泦鍖猴級
+ break;
+ case "B15":
+ tasktype = "D01"; // 鎷嗘墭浠诲姟锛堢洰鐨勫湴鍧�涓烘嫞璐у尯锛�
+ break;
+ }
+
+ //缂撳瓨搴撲綅杞崲 3妤煎師杈呮枡Y003_001锛孻003_002锛孻003_003 1妤糦138_001鍒癥138_021澶栧寘缂撳瓨鍖� 1妤糦128_001鍒癥128_015鍐呭寘缂撳瓨鍖�
+ if (storageLocatEnd.AreaNo == "B12")
+ {
+ switch (EndLocat.ToString().Substring(4, 1))
+ {
+ case "1":
+ endlono = "Y003_00" + EndLocat.ToString().Substring(6, 1);
+ tasktype = "D00"; //鐐瑰埌鐐逛换鍔�
+ break;
+ case "2":
+ endlono = "Y138_0" + EndLocat.ToString().Substring(5, 2);
+ tasktype = "F20"; //鐢垫浠诲姟
+ break;
+ case "3":
+ endlono = "Y128_0" + EndLocat.ToString().Substring(5, 2);
+ tasktype = "F20"; //鐢垫浠诲姟
+ break;
+ default:
+ break;
+ }
+ }
+
+ //鐐瑰埌鐐规寚浠ら泦鍚�
+ object[] position = new object[2];
+ position[0] = new
+ {
+ positionCode = stockDetail.LocatNo,
+ type = "00"
+ };
+ position[1] = new
+ {
+ positionCode = endlono,
+ type = "00"
+ };
List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>();
+ Random r = new Random();
+ long ran =DateTime.Now.Ticks;
AgvSchedulingTask agvTask = new AgvSchedulingTask();
- agvTask.ReqCode = taskNo;
- agvTask.TaskTyp = "F01";
- agvTask.WbCode = "";
- agvTask.PositionCodePath = null;
- agvTask.PodCode = "-1";
+ agvTask.TaskCode = taskNo;
+ agvTask.ReqCode = ran.ToString();
+ agvTask.TaskTyp = tasktype;
+ agvTask.PositionCodePath = position;
+ agvTask.CtnrTyp = "1";
+ if (tasktype == "D02")
+ {
+ agvTask.CtnrNum = "10"; //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
+ }
agvTaskList.Add(agvTask);
- var IsTrue = false;
- while (IsTrue == true)
+
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ string str = "";
+ var list2 = agvTaskList.Select(m => m.ReqCode).ToList();
+ var jsonData = JsonConvert.SerializeObject(agvTaskList);
+ jsonData = jsonData.Substring(1, jsonData.Length - 1);
+ jsonData = jsonData.Substring(0, jsonData.Length - 1);
+ string response = "";
+
+ try
{
- // 姝e紡杩愯绋嬪簭鏀惧紑
- string str = "";
- var list2 = agvTaskList.Select(m => m.ReqCode).ToList();
- var jsonData = JsonConvert.SerializeObject(agvTaskList);
- string response = "";
+ var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+ response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+ var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
- try
+ //////瑙f瀽杩斿洖鏁版嵁
+ var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+ if (agvModel.Code == "0")
{
- var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
- response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
- var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
-
- //////瑙f瀽杩斿洖鏁版嵁
- var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
- if (agvModel.Code == "0")
- {
- //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
- new TaskServer().EditTaskIssueOk(list2, time1, time2);
- str += "涓嬪彂鎴愬姛";
- IsTrue = true;
- }
- if (agvModel.Code == "1")
- {
- new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message);
- throw new Exception(agvModel.Message);
- }
+ //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+ new TaskServer().EditTaskIssueOk(list2, time1, time2);
+ str += "涓嬪彂鎴愬姛";
}
- catch (Exception ex)
+ if (agvModel.Code == "1")
{
- throw new Exception(ex.Message);
+ new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message);
+ throw new Exception(agvModel.Message);
}
}
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+
#endregion
//鎻愪氦浜嬪姟
@@ -1074,7 +1133,7 @@
/// <param name="palletNo"></param>
/// <param name="areaNo"></param>
/// <param name="userId"></param>
- public List<string> AgvTransport2(string soNo, string palletNo, string areaNo, int userId, string url)
+ public List<string> AgvTransport2(string soNo, string palletNo, string areaNo,string ruku, int userId, string url)
{
if (string.IsNullOrEmpty(soNo))
{
@@ -1196,12 +1255,58 @@
};
Db.Insertable(exTask).ExecuteCommand();
+ var endlono = EndLocat;
+ var tasktype = "D00";
+
+ //鏍规嵁鐩殑鍦板潃搴撳尯鑾峰彇灏忚溅浠诲姟绫诲瀷
+ switch (storageLocatEnd.AreaNo)
+ {
+ case "B13":
+ tasktype = "D02"; // 鍙犳墭浠诲姟锛堢洰鐨勫湴鍧�涓虹┖鎵樼洏鏀堕泦鍖猴級
+ break;
+ case "B15":
+ tasktype = "D01"; // 鎷嗘墭浠诲姟锛堢洰鐨勫湴鍧�涓烘嫞璐у尯锛�
+ break;
+ }
+
+ //缂撳瓨搴撲綅杞崲 3妤煎師杈呮枡Y003_001锛孻003_002锛孻003_003 1妤糦138_001鍒癥138_021澶栧寘缂撳瓨鍖� 1妤糦128_001鍒癥128_015鍐呭寘缂撳瓨鍖�
+ if (storageLocatEnd.AreaNo == "B12")
+ {
+ switch (EndLocat.ToString().Substring(4, 1))
+ {
+ case "1":
+ endlono = "Y003_00" + EndLocat.ToString().Substring(6, 1);
+ break;
+ case "2":
+ endlono = "Y138_0" + EndLocat.ToString().Substring(5, 2);
+ tasktype = "F20"; //鐢垫浠诲姟
+ break;
+ case "3":
+ endlono = "Y128_0" + EndLocat.ToString().Substring(5, 2);
+ tasktype = "F20"; //鐢垫浠诲姟
+ break;
+ default:
+ break;
+ }
+ }
+
+ //鐐瑰埌鐐规寚浠ら泦鍚�
+ object[] position = new object[2];
+ position[0] = new
+ {
+ positionCode = item.LocatNo,
+ type = "00"
+ };
+ position[1] = new
+ {
+ positionCode = endlono,
+ type = "00"
+ };
+
AgvSchedulingTask agvTask = new AgvSchedulingTask();
agvTask.ReqCode = taskNo;
- agvTask.TaskTyp = "F01";
- agvTask.WbCode = "";
- agvTask.PositionCodePath = null;
- agvTask.PodCode = "-1";
+ agvTask.TaskTyp = tasktype;
+ agvTask.PositionCodePath = position;
agvTaskList.Add(agvTask);
@@ -1249,6 +1354,8 @@
string str = "";
var list2 = agvTaskList.Select(m => m.ReqCode).ToList();
var jsonData = JsonConvert.SerializeObject(agvTaskList);
+ jsonData = jsonData.Substring(1, jsonData.Length - 1);
+ jsonData = jsonData.Substring(0, jsonData.Length - 1);
string response = "";
try
@@ -1290,6 +1397,126 @@
throw new Exception(ex.Message);
}
}
+
+ /// <summary>
+ /// agv璋冨害浠诲姟涓嬪彂
+ /// </summary>
+ /// <param name="type">鎼繍绫诲瀷</param>
+ /// <param name="taskno">浠诲姟鍙�</param>
+ /// <param name="positionStart">璧峰鍦板潃</param>
+ /// <param name="positionEnd">鐩殑鍦板潃</param> 2
+ /// <param name="url">鎺ュ彛URL</param>
+ public OutCommanAgvDto AGVTask(string type, string taskno, string positionStart, string positionEnd ,string url)
+ {
+
+ var endlono = positionEnd;
+ var tasktype = type;
+ var storageLocatEnd = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == endlono && w.Flag == "0" && w.Status == "0");
+ if (storageLocatEnd == null)
+ {
+ throw new Exception("鐢熸垚鐨凙GV浠诲姟鐩殑鍦板潃涓嶆纭�");
+ }
+ //鏍规嵁鐩殑鍦板潃搴撳尯鑾峰彇灏忚溅浠诲姟绫诲瀷
+ switch (storageLocatEnd.AreaNo)
+ {
+ case "B13":
+ tasktype = "D02"; // 鍙犳墭浠诲姟锛堢洰鐨勫湴鍧�涓虹┖鎵樼洏鏀堕泦鍖猴級
+ break;
+ case "B15":
+ tasktype = "D01"; // 鎷嗘墭浠诲姟锛堢洰鐨勫湴鍧�涓烘嫞璐у尯锛�
+ break;
+ }
+
+ // MES鐢宠澶囨枡锛屽鏂欏尯搴撲綅闇�瑕佽浆鎹� 杞﹂棿澶囨枡缂撳瓨浣嶅悕绉帮細3妤煎師杈呮枡Y003_001-->Y003_003 1妤煎鍖呯紦瀛樺尯Y138_001-->Y138_021 1妤煎唴鍖呯紦瀛樺尯Y128_001-->Y128_015
+ if (storageLocatEnd.AreaNo == "B12")
+ {
+ switch (endlono.ToString().Substring(4, 1))
+ {
+ case "1":
+ endlono = "Y003_00" + endlono.Substring(6, 1);
+ break;
+ case "2":
+ endlono = "Y138_0" + endlono.Substring(5, 2);
+ tasktype = "F20"; //鐢垫浠诲姟
+ break;
+ case "3":
+ endlono = "Y128_0" + endlono.Substring(5, 2);
+ tasktype = "F20"; //鐢垫浠诲姟
+ break;
+ default:
+ break;
+ }
+ }
+ List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>();
+
+ object[] position = new object[2];
+ position[0] = new
+ {
+ positionCode = positionStart,
+ type = "00"
+ };
+ position[1] = new
+ {
+ positionCode = endlono,
+ type = "00"
+ };
+
+ AgvSchedulingTask agvTask = new AgvSchedulingTask();
+ agvTask.ReqCode = taskno; //agv璇锋眰缂栧彿锛岄渶瑕侀殢鏈虹敓鎴� 锛堟渶澶�32浣嶏級
+ agvTask.TaskCode = taskno; //浠诲姟鍙�
+ agvTask.TaskTyp = tasktype; //鎼繍绫诲瀷
+ agvTask.PositionCodePath = position; //璧峰鍜岀洰鐨勪綅闆嗗悎
+ agvTask.CtnrTyp = "1"; //瀹瑰櫒绫诲瀷锛屽�间负1
+ if (tasktype == "D02")
+ {
+ agvTask.CtnrNum = "10"; //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
+ }
+
+ agvTaskList.Add(agvTask);
+
+ string str = "";
+ var list2 = agvTaskList.Select(m => m.ReqCode).ToList();
+ var jsonData = JsonConvert.SerializeObject(agvTaskList);
+ jsonData = jsonData.Substring(1, jsonData.Length-1);
+ jsonData = jsonData.Substring(0, jsonData.Length - 1);
+ var response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+ var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+
+ return agvModel;
+ }
+
+ /// <summary>
+ /// agv浠诲姟鍙栨秷
+ /// </summary>
+ /// <param name="taskno">鍙栨秷浠诲姟缂栧彿</param>
+ /// <param name="url">鎺ュ彛URL</param>
+ public void cancelTask(string taskno,string url)
+ {
+ try
+ {
+ AgvCancelTask agvTaskList = new AgvCancelTask();
+ agvTaskList.ReqCode = "006"; //闅忔満鐢熸垚
+ agvTaskList.TaskCode = taskno.ToString();
+ //agvTaskList.ReqTime = DateTime.Now.ToString();
+
+ var jsonData = JsonConvert.SerializeObject(agvTaskList);
+ var response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+ var agvModel = JsonConvert.DeserializeObject<cancelTaskModel>(response);
+
+ if (agvModel.Code != "0")
+ {
+ throw new Exception("涓嬪彂AGV鍙栨秷浠诲姟澶辫触");
+ }
+
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+
+ }
+
/// <summary>
/// 鏍规嵁鍖哄煙鍒嗛厤鍌ㄤ綅
/// </summary>
@@ -1478,12 +1705,28 @@
{
{"Authorization",token }
};
+ var endlono = EndLocat.LocatNo;
+ //缂撳瓨搴撲綅杞崲
+ switch (EndLocat.LocatNo.ToString().Substring(4, 1))
+ {
+ case "1":
+ endlono = "Y003_00" + EndLocat.LocatNo.ToString().Substring(6, 1);
+ break;
+ case "2":
+ endlono = "Y138_0" + EndLocat.LocatNo.ToString().Substring(5, 2);
+ break;
+ case"3":
+ endlono = "Y128_0" + EndLocat.LocatNo.ToString().Substring(5, 2);
+ break;
+ default:
+ break;
+ }
var mescode = Db.Queryable<BllExportNotice>().Where(w => w.SONo == stockDetail.First().SONo).First();
var mesData = new RequertBeiliaoModel()
{
morder_no = mescode.OrderCode,
pallet = stockDetail.First().PalletNo,
- layer_no = EndLocat.LocatNo,
+ layer_no = endlono,
items = data
};
var jsonData = JsonConvert.SerializeObject(mesData);
@@ -1501,7 +1744,7 @@
//娣诲姞鎿嶄綔鏃ュ織璁板綍
- var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "AGV杞繍", palletNo, "绉诲簱", $"PDA鍛煎彨灏忚溅瀵规墭鐩樺彿锛歿palletNo}鍙戣捣杞繍", userId);
+ var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "浜哄伐杞繍", palletNo, "绉诲簱", $"PDA鍛煎彨灏忚溅瀵规墭鐩樺彿锛歿palletNo}鍙戣捣杞繍", userId);
//鎻愪氦浜嬪姟
Db.CommitTran();
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index c732892..01368fc 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -24,6 +24,12 @@
using WMS.IBLL.IBllSoServer;
using Model.ModelVm;
using System.Runtime.Intrinsics.X86;
+using WMS.Entity.BllAsnEntity;
+using Model.ModelDto;
+using WMS.BLL.BllPdaServer;
+using WMS.IBLL.IPdaServer;
+using System.DirectoryServices.Protocols;
+using Model.ModelDto.SysDto;
namespace WMS.BLL.BllSoServer
{
@@ -2235,16 +2241,24 @@
}
}
- //wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙鍑哄簱鎴愬姛锛�
- public void ExportSuccess(string taskNo, int userId)
+ //wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙鍑哄簱鎴愬姛锛�
+ public void ExportSuccess(string taskNo, int userId,string url)
{
try
{
+ //鍑哄簱浠诲姟鍙锋洿鏀癸紝濡傛灉鐢盤LC鍑哄簱锛屽垯PLC鍥炰紶浠诲姟鍙蜂负锛氫换鍔″彿+瀹為檯鍑哄簱鍙�
+ var TtaskNo = taskNo;
+ var outLine = "";
+ if (userId == 0)
+ {
+ TtaskNo = taskNo.Substring(0, taskNo.Length - 4);
+ outLine = taskNo.Substring(taskNo.Length - 4, 3);
+ }
//褰撳墠浠诲姟淇℃伅
- var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
+ var task = Db.Queryable<LogTask>().First(m => m.TaskNo == TtaskNo && m.IsDel == "0");
if (task == null)
{
- throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
+ throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹TtaskNo}鈥欑殑浠诲姟淇℃伅");
}
if (task.Status == "2")
{
@@ -2360,7 +2374,7 @@
Db.Updateable(item).ExecuteCommand();
}
//鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
- var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == "1" && m.PalletNo == task.PalletNo))).ToList();
+ var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.TaskNo == TtaskNo || (m.Status == "1" && m.PalletNo == task.PalletNo))).ToList();
foreach (var item in allot)
{
@@ -2379,7 +2393,106 @@
if (userId != 0)
{
//娣诲姞鎿嶄綔鏃ュ織璁板綍
- var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
+ var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", TtaskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{TtaskNo}鐨勪换鍔�", userId);
+ }
+ if (outLine != "")
+ {
+ #region 鍒嗛厤鍑哄簱鐩殑浣�
+ string positionStart = outLine, positionEnd = "" ,type ="D00";
+ var type1 = Db.Queryable<BllExportNotice>().Where(m => m.SONo == allot.First().SONo && m.IsDel == "0" && m.Status == "3").First();
+ if (type1 == null)
+ {
+ var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B13").ToList();
+ type = "D02" ; //绌烘墭鐩樺灈鍑哄簱
+ if (outLine == "443")//瑗夸晶鍑哄簱
+ {
+ positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "01" && m.LocatNo.Substring(3, 2) == "02" && m.LocatNo.Substring(3, 2) == "03" &&
+ m.Status == "0" && m.Flag == "0").LocatNo;
+ }
+ else if (outLine == "440") //涓滀晶鍑哄簱
+ {
+ positionEnd = locateno.First(m => m.LocatNo.Substring(4, 2) == "04" && m.LocatNo.Substring(4, 2) == "05" && m.LocatNo.Substring(4, 2) == "06" &&
+ m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
+ }
+
+ }
+ if (type1.Type == "1" && (type1.Type == "5" || (positionStart == "440" && positionStart == "440"))) //3妤奸鏂欏嚭搴� /3L涓棿鍝佸嚭搴�
+ {
+ var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B11").ToList();
+ if (outLine == "443")//瑗夸晶鍑哄簱
+ {
+ positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "01"&& m.LocatNo.Substring(4, 2) == "02" && m.Status == "0" && m.Flag == "0").LocatNo; //瑗夸晶鎴块棿搴撲綅
+ }
+ else if(outLine == "440") //涓滀晶鍑哄簱
+ {
+ positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "03" && m.LocatNo.Substring(4, 2) == "04" && m.LocatNo.Substring(4, 2) == "05" &&
+ m.LocatNo.Substring(4, 2) == "06" && m.LocatNo.Substring(3, 2) == "07" && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
+ }
+ }
+ else if (type1.Type == "2" && type1.Type == "3") //鎶芥鍑哄簱 /鍙栨牱鍑哄簱
+ {
+ positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B04" && m.Status == "0" && m.Flag == "0").LocatNo;
+ }
+ else if (type1.Type == "4")//涓嶅悎鏍煎搧鍑哄簱
+ {
+
+ positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B03" && m.Status == "0" && m.Flag == "0").LocatNo;
+ }
+ else //鍏朵粬鍗曟嵁绫诲瀷閮藉瓨鏀惧彂璐х紦瀛樺尯
+ {
+ positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B02" && m.Status == "0" && m.Flag == "0").LocatNo;
+ }
+ #endregion
+
+ #region AGV璋冪敤
+ var storageLocatEnd = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == positionEnd && w.Flag == "0" && w.Status == "0");
+ if (storageLocatEnd == null)
+ {
+ throw new Exception("鐢熸垚鐨凙GV浠诲姟鐩殑鍦板潃涓嶆纭�");
+ }
+ List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>();
+
+ object[] position = new object[2];
+ position[0] = new
+ {
+ positionCode = positionStart,
+ type = "00"
+ };
+ position[1] = new
+ {
+ positionCode = positionEnd,
+ type = "00"
+ };
+
+ AgvSchedulingTask agvTask = new AgvSchedulingTask();
+ agvTask.ReqCode = TtaskNo; //agv璇锋眰缂栧彿锛岄渶瑕侀殢鏈虹敓鎴� 锛堟渶澶�32浣嶏級
+ agvTask.TaskCode = TtaskNo; //浠诲姟鍙�
+ agvTask.TaskTyp = type; //鎼繍绫诲瀷
+ agvTask.PositionCodePath = position; //璧峰鍜岀洰鐨勪綅闆嗗悎
+ agvTask.CtnrTyp = "1"; //瀹瑰櫒绫诲瀷锛屽�间负1
+ if (type == "D02")
+ {
+ agvTask.CtnrNum = "10"; //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
+ }
+
+ agvTaskList.Add(agvTask);
+
+ string str = "";
+ var list2 = agvTaskList.Select(m => m.ReqCode).ToList();
+ var jsonData = JsonConvert.SerializeObject(agvTaskList);
+ jsonData = jsonData.Substring(1, jsonData.Length - 1);
+ jsonData = jsonData.Substring(0, jsonData.Length - 1);
+ var response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+ var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+ if (agvModel.Code != "0")
+ {
+ //璁板綍log
+ var logStr = $@".\log\AGV\浠诲姟鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+ jsonData = JsonConvert.SerializeObject(agvModel);
+ LogFile.SaveLogToFile($"AGV浠诲姟鍙嶉鎵ц閫氱煡锛�( {jsonData} ),", logStr);
+ }
+
+ #endregion
}
Db.CommitTran();
}
@@ -2400,7 +2513,7 @@
/// </summary>
/// <param name="taskNo">浠诲姟鍙�</param>
/// <param name="userId">鎿嶄綔浜�</param>
- /// <exception cref="Exception"></exception>
+ /// <exception cref="Exception"></exception>
public void RelocationSuccess(string taskNo, int userId)
{
try
@@ -3621,5 +3734,266 @@
return nowAddress;
}
+
+ /// <summary>
+ /// 鑾峰彇鎷嗗灈鎵樼洏鎷嗗灈淇℃伅
+ /// </summary>
+ /// <param name="model">鎷嗗灈鎵樼洏鍙峰拰WCS浠诲姟鍙�</param>
+ /// <returns>鎷嗗灈鎵樼洏淇℃伅</returns>
+ public RequestBoxInfoCheck BoxInfoCheckWcs (BoxInfoCheck model)
+ {
+ try
+ {
+ // 鍒ゆ柇褰撳墠浠诲姟鐘舵�� Status 1:姝e湪鎵ц 3:寮傚父缁撴潫
+ var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1");
+ if (taskModel == null)
+ {
+ throw new Exception("姝や换鍔′笉瀛樺湪鎴栦换鍔$姸鎬佸凡鍙樻洿!");
+ }
+ // 楠岃瘉鎵樼洏鍒嗛厤淇℃伅
+ var palletBindModel = Db.Queryable<BllExportAllot>().First(m => m.PalletNo == model.PalletNo && m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1");
+ if (palletBindModel != null)
+ {
+ throw new Exception("鏈壘鍒板綋鍓嶆墭鐩樺垎閰嶄换鍔′俊鎭�!");
+ }
+ //璁$畻褰撳墠褰撳墠鎵樼洏涓婄鏁板拰鎷嗗灈绠辨暟
+ var storcklist = Db.Queryable<DataStockDetail>().First(m => m.PalletNo == palletBindModel.PalletNo && m.SkuNo == palletBindModel.SkuNo && m.LotNo == palletBindModel.LotNo);
+
+ string level = "1";
+ int qty = 0, qtycount = 0;
+ var packlist = Db.Queryable<SysPackag>().First(m => m.PackagNo == palletBindModel.SkuNo && m.IsDel == "0");
+ if (packlist.L2Name == "绠�")
+ {
+ level = "2";
+ }
+ switch (level)
+ {
+ case "1":
+ qty = (int)(palletBindModel.Qty / packlist.L1Num);
+ qtycount = (int)(storcklist.Qty / packlist.L1Num);
+ break;
+ case "2":
+ qty = (int)(palletBindModel.Qty / packlist.L2Num);
+ qtycount = (int)(storcklist.Qty / packlist.L2Num);
+ break;
+
+ }
+
+ var list = new RequestBoxInfoCheck
+ {
+ PalletNo = model.PalletNo,
+ TaskNo = model.TaskNo,
+ SkuNo = palletBindModel.SkuNo,
+ SkuName = palletBindModel.SkuName,
+ LotNo = palletBindModel.LotNo,
+ OrderNo = palletBindModel.SONo,
+ Standard = palletBindModel.Standard,
+ Qty = qty,//鎷嗗灈绠辨暟
+ QtyCount = qtycount //鎵樼洏涓婄鏁�
+ };
+ return list;
+ }
+ catch (Exception e)
+ {
+
+ throw new Exception(e.Message);
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎷嗗灈鍒嗘嫞涓绘壂绠辩爜鍑哄簱
+ /// </summary>
+ /// <param name="model">鎷嗗灈鎵樼洏鍙峰拰WCS浠诲姟鍙�</param>
+ /// <returns>鎷嗗灈鎵樼洏淇℃伅</returns>
+ public string BoxInfoExportWcs(string boxno)
+ {
+ try
+ {
+ if (string.IsNullOrWhiteSpace(boxno))
+ {
+ throw new Exception("涓绘壂鍒嗘嫞绠辩爜涓虹┖");
+ }
+ //绠辩爜鎵�鍦ㄦ媶鍨涙嫞璐т俊鎭�
+ var boxModel = Db.Queryable<DataBoxInfo>().First(m=>m.BoxNo == boxno);
+ if (boxModel == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅");
+ }
+ //鍑哄簱鍒嗛厤淇℃伅
+ var allot = Db.Queryable<BllExportAllot>().First(m =>
+ m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.PalletNo == boxModel.PalletNo);
+ if (allot == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅");
+ }
+ //鍑哄簱鍗�
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == allot.SONo);
+ if (notice == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�");
+ }
+ //鍑哄簱鍗曟槑缁�
+ var noticeDetail = Db.Queryable<BllExportNoticeDetail>()
+ .First(m => m.IsDel == "0" && m.Id == allot.SODetailNo);
+ if (noticeDetail == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�");
+ }
+
+ //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級
+ var needQty = allot.Qty - allot.CompleteQty;
+
+ //搴撳瓨鏄庣粏
+ var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId);
+ if (stockDetail == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�");
+ }
+ //搴撳瓨鎬昏〃
+ var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
+ if (stock == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�");
+ }
+
+ List<DataBoxInfo> boxInfos;
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxno && m.StockDetailId == stockDetail.Id);
+ if (boxInfo.Count() == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
+ }
+ boxInfos = boxInfo.ToList();
+
+ var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == boxModel.PalletNo).ToList();
+ if (boxInfo.Count() == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅");
+ }
+ if (boxInfo.Any(m => m.PalletNo != boxModel.PalletNo))
+ {
+ throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
+ }
+ var boxQty = boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToList();
+ if (boxQty[0] > needQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
+ }
+ decimal pickQty = 0;//鎷h揣鐨勬暟閲�
+
+ var comList = new List<BllCompleteDetail>();
+ foreach (var item in boxInfos)
+ {
+ //娣诲姞鎷h揣鏄庣粏
+ var completeDetail = new BllCompleteDetail()
+ {
+ SONo = allot.SONo,
+ SODetailNo = allot.SODetailNo,
+ ExportAllotId = allot.Id,
+ StockId = allot.StockId,
+ BoxNo = item.BoxNo,
+ BoxNo2 = item.BoxNo2,
+ BoxNo3 = item.BoxNo3,
+
+ LotNo = allot.LotNo,
+ LotText = allot.LotText,
+ SupplierLot = allot.SupplierLot,
+ SkuNo = allot.SkuNo,
+ SkuName = allot.SkuName,
+ Standard = allot.Standard,
+ PalletNo = boxModel.PalletNo,
+ CompleteQty = item.Qty,
+
+ };
+ comList.Add(completeDetail);
+
+
+ pickQty += item.Qty;
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ Db.Deleteable(item).ExecuteCommand();
+ }
+
+ Db.Insertable(comList).ExecuteCommand();
+ //淇敼鍑哄簱鍒嗛厤淇℃伅
+ allot.CompleteQty += pickQty;
+ allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+ allot.UpdateTime = DateTime.Now;
+ if (allot.Status == "5")
+ {
+ //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴�
+ }
+ Db.Updateable(allot).ExecuteCommand();
+
+ //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
+ stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
+ stockDetail.Qty -= pickQty;
+ stockDetail.LockQty -= pickQty;
+ if (stockDetail.Qty == stockDetail.LockQty)
+ {
+ stockDetail.Status = "2";
+ }
+ else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0)
+ {
+ stockDetail.Status = "1";
+ }
+ else
+ {
+ stockDetail.Status = "0";
+ }
+
+ if (stockDetail.Qty <= 0)
+ {
+ Db.Deleteable(stockDetail).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(stockDetail).ExecuteCommand();
+ }
+ stock.Qty -= pickQty;
+ stock.LockQty -= pickQty;
+ if (stock.Qty <= 0)
+ {
+ Db.Deleteable(stock).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(stock).ExecuteCommand();
+ }
+ var num2 = Db.Queryable<DataStockDetail>().Count(m => m.IsDel == "0" && m.PalletNo == boxModel.PalletNo);
+ if (num2 <= 0)
+ {
+ //鏀瑰彉鎵樼洏鐘舵��
+ var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == boxModel.PalletNo && m.IsDel == "0");
+ if (pallet == null)
+ {
+ throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ }
+ pallet.Status = "0";
+ Db.Updateable(pallet).ExecuteCommand();
+ }
+ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
+ noticeDetail.CompleteQty += pickQty;
+ noticeDetail.Status = "2";
+ Db.Updateable(noticeDetail).ExecuteCommand();
+
+ var num = Db.Queryable<BllExportNoticeDetail>()
+ .Count(m => m.IsDel == "0" && m.SONo == allot.SONo && m.CompleteQty < m.Qty);
+ if (num <= 0)
+ {
+ notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+
+ noticeDetail.Status = "3";
+ Db.Updateable(noticeDetail).ExecuteCommand();
+ }
+ //淇敼鍑哄簱鍗曚俊鎭�
+ Db.Updateable(notice).ExecuteCommand();
+
+ return "";
+ }
+ catch (Exception e)
+ {
+
+ throw new Exception(e.Message);
+ }
+ }
}
}
diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs
index 265e972..83d3b68 100644
--- a/Wms/WMS.BLL/DataServer/StockServer.cs
+++ b/Wms/WMS.BLL/DataServer/StockServer.cs
@@ -11,8 +11,10 @@
using Model.ModelVm.DataVm;
using SqlSugar;
using WMS.DAL;
+using WMS.Entity.BllSoEntity;
using WMS.Entity.Context;
using WMS.Entity.DataEntity;
+using WMS.Entity.LogEntity;
using WMS.Entity.SysEntity;
using WMS.IBLL.IDataServer;
@@ -1021,5 +1023,143 @@
return stockDetailsList;
}
#endregion
+
+ #region AGV灏忚溅浠诲姟瀹屾垚
+
+ /// <summary>
+ /// AGV鍏ュ簱瀹屾垚
+ /// </summary>
+ /// <param name="TaskCode">浠诲姟鍙�</param>
+ /// <returns></returns>
+ public void ArriveFinish(string TaskCode)
+ {
+ try
+ {
+ var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "0");//鑾峰彇浠诲姟淇℃伅
+ var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅
+ var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo);
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+
+ //淇敼璧峰搴撲綅鐘舵��
+ storageLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑
+ Db.Updateable(storageLocat).ExecuteCommand();
+
+ //淇敼浠诲姟鐘舵��
+ palletNo.Status = "2"; //宸插畬鎴�
+ Db.Updateable(palletNo).ExecuteCommand();
+
+ //淇敼搴撳瓨鏄庣粏
+ stockDetail.Status = "0";//寰呭垎閰�
+ stockDetail.LocatNo = "";
+ stockDetail.AreaNo = "";
+ stockDetail.RoadwayNo = "";
+ stockDetail.WareHouseNo = "";
+ Db.Updateable(stockDetail).ExecuteCommand();
+
+ //涓嬪彂WCS鐢宠鍏ュ簱
+
+
+ Db.CommitTran();
+
+ }
+ catch (Exception ex)
+ {
+
+ throw new Exception("AGV杩斿洖鍏ュ簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex);
+ }
+ }
+
+ /// <summary>
+ /// AGV鍑哄簱瀹屾垚
+ /// </summary>
+ /// <param name="TaskCode">浠诲姟鍙�</param>
+ /// <returns></returns>
+ public void SoFinish(string TaskCode)
+ {
+ try
+ {
+ var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "1");//鑾峰彇浠诲姟淇℃伅
+ var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇搴撲綅淇℃伅
+ var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅
+ var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); //鑾峰彇搴撳瓨淇℃伅
+
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ //淇敼鐩殑搴撲綅鐘舵��
+ storageLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑
+ Db.Updateable(storageLocat).ExecuteCommand();
+
+ //淇敼浠诲姟鐘舵��
+ palletNo.Status = "2"; //宸插畬鎴�
+ Db.Updateable(palletNo).ExecuteCommand();
+
+ //淇敼搴撳瓨鏄庣粏
+ stockDetail.Status = "2";// 0:寰呭垎閰� 1:閮ㄥ垎鍒嗛厤 2锛氬凡鍒嗛厤 3锛氱洏鐐归攣瀹氾細 4绉诲簱閿佸畾
+ stockDetail.LocatNo = storageLocat.LocatNo;
+ stockDetail.AreaNo = storageLocat.AreaNo;
+ stockDetail.RoadwayNo = storageLocat.RoadwayNo;
+ stockDetail.WareHouseNo = storageLocat.WareHouseNo;
+ Db.Updateable(stockDetail).ExecuteCommand();
+
+
+ Db.CommitTran();
+
+ }
+ catch (Exception ex )
+ {
+
+ throw new Exception("AGV杩斿洖鍑哄簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex);
+ }
+ }
+
+ /// <summary>
+ /// AGV绉诲簱瀹屾垚
+ /// </summary>
+ /// <param name="TaskCode">浠诲姟鍙�</param>
+ /// <returns></returns>
+ public void MoveFinish(string TaskCode)
+ {
+ try
+ {
+ var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "3");//鑾峰彇浠诲姟淇℃伅
+ var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇搴撲綅淇℃伅
+ var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅
+ var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); //鑾峰彇搴撳瓨淇℃伅
+ //var soAllot = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.PalletNo == palletNo.PalletNo);//鑾峰彇鍒嗛厤淇℃伅
+
+
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ //淇敼璧峰搴撲綅鐘舵��
+ storageLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑
+ Db.Updateable(storageLocat).ExecuteCommand();
+
+ //淇敼鐩殑搴撲綅鐘舵��
+ storageLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑
+ Db.Updateable(storageLocat).ExecuteCommand();
+
+ //淇敼浠诲姟鐘舵��
+ palletNo.Status = "2"; //宸插畬鎴�
+ Db.Updateable(palletNo).ExecuteCommand();
+
+ //淇敼搴撳瓨鏄庣粏
+ stockDetail.Status = "2";// 0:寰呭垎閰� 1:閮ㄥ垎鍒嗛厤 2锛氬凡鍒嗛厤 3锛氱洏鐐归攣瀹氾細 4绉诲簱閿佸畾
+ stockDetail.LocatNo = storageLocat.LocatNo;
+ stockDetail.AreaNo = storageLocat.AreaNo;
+ stockDetail.RoadwayNo = storageLocat.RoadwayNo;
+ stockDetail.WareHouseNo = storageLocat.WareHouseNo;
+ Db.Updateable(stockDetail).ExecuteCommand();
+
+
+ Db.CommitTran();
+ }
+ catch (Exception ex)
+ {
+
+ throw new Exception("AGV杩斿洖绉诲簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細"+ex);
+ }
+ }
+ #endregion
}
}
diff --git a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
index e8a088d..092b795 100644
--- a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
+++ b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
@@ -93,7 +93,7 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- HttpReturnModel HttpCreateAsn(AsnInfo model);
+ HttpReturnModel HttpCreateAsn(AsnInfo model,string url);
/// <summary>
/// 璁㈠崟鍥炰紶涓婃父绯荤粺
/// </summary>
diff --git a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
index ee5de99..e6f2d61 100644
--- a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
+++ b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
@@ -133,7 +133,7 @@
/// <param name="taskNo">浠诲姟鍙�</param>
/// <param name="userId">鎿嶄綔浜�</param>
/// <returns></returns>
- void ExportSuccess(string taskNo,int userId);
+ void ExportSuccess(string taskNo,int userId,string url);
/// <summary>
/// wcs杩斿洖鐨勬垚鍔熶俊鍙锋垨鎵嬪姩瀹屾垚锛堢Щ搴撴垚鍔燂級
@@ -215,5 +215,13 @@
/// <param name="soNo"></param>
/// <returns></returns>
string IsNeedUnpack(string soNo);
+
+ /// <summary>
+ /// 鑾峰彇鎷嗗灈鎵樼洏鎷嗗灈淇℃伅
+ /// </summary>
+ /// <param name="model">鎷嗗灈鎵樼洏鍙峰拰WCS浠诲姟鍙�</param>
+ /// <returns>鎷嗗灈鎵樼洏淇℃伅</returns>
+
+ public RequestBoxInfoCheck BoxInfoCheckWcs(BoxInfoCheck model);
}
}
diff --git a/Wms/WMS.IBLL/IDataServer/IStockServer.cs b/Wms/WMS.IBLL/IDataServer/IStockServer.cs
index 506e689..f3733db 100644
--- a/Wms/WMS.IBLL/IDataServer/IStockServer.cs
+++ b/Wms/WMS.IBLL/IDataServer/IStockServer.cs
@@ -119,5 +119,29 @@
/// <returns></returns>
List<StockDetailDto> GetInventoryList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus);
#endregion
+
+ #region AGV灏忚溅浠诲姟瀹屾垚
+ /// <summary>
+ /// 鍏ュ簱浠诲姟瀹屾垚
+ /// </summary>
+ /// <param name="skuNo">鐗╂枡缂栫爜</param>
+ /// <param name="skuName">鐗╂枡鍚嶇О</param>
+ /// <returns></returns>
+ public void ArriveFinish(string TaskCode);
+ /// <summary>
+ /// 鍑哄簱浠诲姟瀹屾垚
+ /// </summary>
+ /// <param name="skuNo">鐗╂枡缂栫爜</param>
+ /// <param name="skuName">鐗╂枡鍚嶇О</param>
+ /// <returns></returns>
+ public void SoFinish(string TaskCode);
+ /// <summary>
+ /// 绉诲簱浠诲姟瀹屾垚
+ /// </summary>
+ /// <param name="skuNo">鐗╂枡缂栫爜</param>
+ /// <param name="skuName">鐗╂枡鍚嶇О</param>
+ /// <returns></returns>
+ public void MoveFinish(string TaskCode);
+ #endregion
}
}
diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs
index 9c14ecc..55e32dc 100644
--- a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs
+++ b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs
@@ -1,6 +1,7 @@
锘縰sing System;
using System.Collections.Generic;
using System.Text;
+using Model.InterFaceModel;
using Model.ModelDto.BllCheckDto;
using Model.ModelDto.PdaDto;
using WMS.Entity.DataEntity;
@@ -137,7 +138,19 @@
/// <param name="palletNo"></param>
/// <param name="areaNo"></param>
/// <param name="userId"></param>
- List<string> AgvTransport2(string soNo, string palletNo, string areaNo, int userId, string url);
+ List<string> AgvTransport2(string soNo, string palletNo, string areaNo,string ruku, int userId, string url);
+
+ /// <summary>
+ /// agv浠诲姟涓嬪彂
+ /// </summary>
+ /// <param name="model"></param>
+ public OutCommanAgvDto AGVTask(string type, string taskno, string positionStart, string positionEnd, string url);
+
+ /// <summary>
+ /// agv浠诲姟鍙栨秷
+ /// </summary>
+ /// <param name="model"></param>
+ public void cancelTask(string taskno, string url);
#endregion
#region 浜哄伐杞繍
diff --git a/Wms/Wms/Controllers/BllSoController.cs b/Wms/Wms/Controllers/BllSoController.cs
index f64a0bd..dfc5272 100644
--- a/Wms/Wms/Controllers/BllSoController.cs
+++ b/Wms/Wms/Controllers/BllSoController.cs
@@ -700,7 +700,7 @@
var type = _taskSvc.GetTaskType(taskNo);
if (type == "1")//鍑哄簱瀹屾垚
{
- _exNoticeSvc.ExportSuccess(taskNo, int.Parse(userId));
+ _exNoticeSvc.ExportSuccess(taskNo, int.Parse(userId), "");
}
else if (type == "2")//鍑哄簱鏃朵骇鐢熺殑绉诲簱浠诲姟瀹屾垚
{
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 09af858..a578558 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -17,6 +17,7 @@
using Model.ModelVm.PdaVm;
using WMS.IBLL.IPdaServer;
using Model.ModelVm;
+using WMS.IBLL.IDataServer;
namespace Wms.Controllers
{
@@ -34,8 +35,9 @@
private readonly ITaskServer _taskSvc;//浠诲姟Svc
private readonly IPdaSoServer _pdaSoSvc;//绌烘墭鍑哄簱Svc
private readonly IPdaAsnServer _paAsnSvc;//绌烘墭璺虹粦瀹�
+ private readonly IStockServer _stockSvc;//AGV浠诲姟瀹屾垚绠�
- public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IPdaSoServer pdaSoSvc,IPdaAsnServer paAsnSvc)
+ public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IPdaSoServer pdaSoSvc,IPdaAsnServer paAsnSvc,IStockServer stockSvc)
{
_config = setting.Value;
_exNoticeSvc = exNoticeSvc;
@@ -44,6 +46,7 @@
_taskSvc = taskSvc;
_pdaSoSvc = pdaSoSvc;
_paAsnSvc = paAsnSvc;
+ _stockSvc = stockSvc;
}
#region WMS鎺ュ彛 璋冪敤涓嬫父绯荤粺鎺ュ彛
@@ -374,7 +377,7 @@
case "1"://鍑哄簱瀹屾垚浠诲姟
if (model.TaskType == "1")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
{
- _exNoticeSvc.ExportSuccess(model.TaskNo, 0);
+ _exNoticeSvc.ExportSuccess(model.TaskNo, 0, _config.AgvHost + _config.GenAgvSchedulingTask);
return Ok(new WcsModel { StatusCode = 0, Msg = "鍑哄簱瀹屾垚" });
}
else if (model.TaskType == "2")
@@ -696,6 +699,31 @@
//杞﹂棿鍙枡
+ //WCS鐢宠鎷嗗灈淇℃伅
+ /// <summary>
+ /// 鎴愬搧绠辩爜鎷嗗灈鎷h揣
+ /// </summary>
+ /// <param name="model">鍏ュ簱鍗曚俊鎭�</param>
+ /// <returns></returns>
+ [AllowAnonymous]
+ [HttpPost]
+ public IActionResult ResultBoxInfoCheckWcs(BoxInfoCheck model)
+ {
+ var logStr = $@".\log\WCS\WCS鐢宠鎷嗗灈鎵樼洏淇℃伅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+ try
+ {
+ RequestBoxInfoCheck list = _exNoticeSvc.BoxInfoCheckWcs(model);
+ return Ok(new { Success = 1,Message = "鎷嗗灈淇℃伅鑾峰彇鎴愬姛",data = list});
+ }
+ catch (Exception e)
+ {
+ LogFile.SaveLogToFile($"WCS鐢宠鎵樼洏鎷嗗灈寮傚父杩斿洖锛�( {e.Message} ),", logStr);
+
+ return Ok(new ErpModel { Success = -1, Message = e.Message});
+ }
+
+ }
+
#region AGV
@@ -704,10 +732,10 @@
/// AGV 鎵ц鍥炶皟鐨勬柟娉曪紝鍖呭惈浠诲姟寮�濮嬶紝璧板嚭鍌ㄤ綅锛屼换鍔″畬鎴愬強浠诲姟鍙栨秷銆�
/// 鍙栨秷閫氱煡涓轰换鍔″崟锛屽叾浠栭�氱煡涓哄崟涓换鍔$粍鎴栧瓙浠诲姟銆傛敞鎰忥細鏄惁閫氱煡闇�瑕佸湪浠诲姟妯℃澘閰嶇疆
/// </summary>
+ /// <param name="model">鍏ュ簱鍗曚俊鎭�</param>
/// <returns></returns>
- /// <exception cref="Exception"></exception>
[HttpPost]
- public IActionResult AgvCallback(AgvContinueTask model)
+ public IActionResult AgvCallback(AgvTaskDto model)
{
try
{
@@ -718,21 +746,32 @@
//鎺ユ敹鏃堕棿
var time1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+ //娴嬭瘯鎺ュ彛鐢�
var orderType = _taskSvc.GetTaskOrderType(model.TaskCode);// 鍒ゆ柇鍗曟嵁绫诲瀷鍏ュ嚭绉�
var taskType = _taskSvc.GetTaskType(model.TaskCode);//鏍规嵁浠诲姟鍙疯幏鍙栦换鍔$被鍨�
switch (orderType)
{
case "0"://鍏ュ簱浠诲姟鎵ц
+ _stockSvc.ArriveFinish(model.TaskCode);
+ break;
case "1"://鍑哄簱浠诲姟鎵ц
+ _stockSvc.SoFinish(model.TaskCode);
+ break;
+
case "2"://鐩樺簱浠诲姟鎵ц
+
case "3"://绉诲簱浠诲姟鎵ц
- return Ok(new OutCommanAgvDto { Code = "0", Message = "鎴愬姛", ReqCode = model.ReqCode });
+ _stockSvc.MoveFinish(model.TaskCode);
+ break;
+ // return Ok(new OutCommanAgvDto { Code = "0", Message = "鎴愬姛", ReqCode = model.ReqCode });
default:
return Ok(new OutCommanAgvDto { Code = "1", Message = "澶辫触", ReqCode = model.ReqCode });
}
+ return Ok(new OutCommanAgvDto { Code = "0", Message = "鎴愬姛", ReqCode = model.ReqCode });
}
catch (Exception ex)
@@ -745,7 +784,7 @@
}
}
-
+
#endregion
diff --git a/Wms/Wms/Controllers/PdaCrController.cs b/Wms/Wms/Controllers/PdaCrController.cs
index a668121..cf4cc6b 100644
--- a/Wms/Wms/Controllers/PdaCrController.cs
+++ b/Wms/Wms/Controllers/PdaCrController.cs
@@ -363,7 +363,7 @@
}
var uId = int.Parse(userId);
- _pdaCrSvc.AgvTransport(model.PalletNo, model.AreaNo, model.Ruku, uId, _config.WcsHost + _config.GenAgvSchedulingTask);
+ _pdaCrSvc.AgvTransport(model.PalletNo, model.AreaNo, model.Ruku, uId, _config.AgvHost + _config.GenAgvSchedulingTask);
return Ok(new { data = "", code = 0, msg = "鎴愬姛" });
}
@@ -395,7 +395,7 @@
}
var uId = int.Parse(userId);
- var str = _pdaCrSvc.AgvTransport2(model.SoNo,model.PalletNo, model.AreaNo, uId, _config.WcsHost + _config.GenAgvSchedulingTask);
+ var str = _pdaCrSvc.AgvTransport2(model.SoNo,model.PalletNo, model.AreaNo,model.Ruku, uId, _config.WcsHost + _config.GenAgvSchedulingTask);
var msgStr = "";
if (str.Contains("0"))
{
diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs
index e215e71..8f6894a 100644
--- a/Wms/Wms/Controllers/UpApiController.cs
+++ b/Wms/Wms/Controllers/UpApiController.cs
@@ -13,6 +13,7 @@
using WMS.IBLL.IBllCheckServer;
using Model.ModelVm.BllCheckVm;
using Microsoft.Extensions.Logging;
+using WMS.IBLL.IPdaServer;
namespace Wms.Controllers
{
@@ -28,12 +29,14 @@
private readonly IExportNoticeServer _exNoticeSvc;//鍑哄簱鍗昐vc
private readonly IArrivalNoticeServer _arrivalNoticeSvc;
private readonly IStockCheckServer _stockCheckSvc;//鐩樼偣鍗昐vc
- public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc)
+ private readonly IPdaCrServer _daCrSvc;//PDA
+ public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc,IPdaCrServer daCrSvc)
{
_config = setting.Value;
_exNoticeSvc = exNoticeSvc;
_arrivalNoticeSvc = arrivalNoticeServer;
_stockCheckSvc = stockCheckSvc;
+ _daCrSvc = daCrSvc;
}
#endregion
@@ -134,7 +137,7 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- [HttpPost]
+ [HttpPost]
public IActionResult FinishExportNotice(FinshVm model)
{
try
@@ -209,8 +212,56 @@
}
}
- //绠辩爜淇℃伅 鎵嬫寔缁勬墭鐢� (鎵鐮佸悜杩芥函瑕佷俊鎭�)
+ //绠辩爜淇℃伅 鎵嬫寔缁勬墭鐢� (鎵鐮佸悜杩芥函瑕佷俊鎭�)
+ //
+
+ /// <summary>
+ /// 涓嬪彂AGV璋冨害浠诲姟
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ [HttpPost]
+ public IActionResult AGVTask(string type, string taskno, string positionStart, string positionEnd)
+ {
+ try
+ {
+
+ OutCommanAgvDto agvRequest = _daCrSvc.AGVTask(type,taskno,positionStart,positionEnd, _config.AgvHost + _config.GenAgvSchedulingTask);
+ if (agvRequest.Code != "0")
+ {
+ return Ok(new { code = 1, msg = "灏忚溅浠诲姟鎵ц澶辫触" });
+ }
+
+ return Ok(new { code = 1, msg = "AGV浠诲姟涓嬪彂鎴愬姛" });
+
+ }
+ catch (Exception e)
+ {
+ return Ok(new { code = 1, msg = e.Message });
+ }
+ }
+
+ /// <summary>
+ /// 涓嬪彂AGV鍙栨秷浠诲姟
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ [HttpPost]
+ public IActionResult cancelTask(string taskno)
+ {
+ try
+ {
+
+ _daCrSvc.cancelTask(taskno, _config.AgvHost + _config.CancelTask);
+ return Ok(new { code = 1, msg = "AGV浠诲姟鍙栨秷鎴愬姛" });
+
+ }
+ catch (Exception e)
+ {
+ return Ok(new { code = 1, msg = e.Message });
+ }
+ }
#endregion
@@ -244,7 +295,7 @@
LogFile.SaveLogToFile($"鍏ュ簱鍗曚笅鍙戯細( {jsonData} ),", logStr);
}
- result = _arrivalNoticeSvc.HttpCreateAsn(model);
+ result = _arrivalNoticeSvc.HttpCreateAsn(model, _config.WcsHost + _config.AddOrderTaskUrl);
if (logStr != "")
{
var jsonData = JsonConvert.SerializeObject(result);
diff --git a/Wms/Wms/Properties/launchSettings.json b/Wms/Wms/Properties/launchSettings.json
index 5db9873..cad583c 100644
--- a/Wms/Wms/Properties/launchSettings.json
+++ b/Wms/Wms/Properties/launchSettings.json
@@ -1,20 +1,13 @@
{
- "iisSettings": {
- "windowsAuthentication": false,
- "anonymousAuthentication": true,
- "iisExpress": {
- "applicationUrl": "http://localhost:50515/",
- "sslPort": 44363
- }
- },
- "$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "sqlDebugging": false,
+ "nativeDebugging": true
},
"Wms": {
"commandName": "Project",
@@ -24,5 +17,14 @@
},
"applicationUrl": "https://localhost:5001;http://localhost:5000"
}
+ },
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://192.168.137.94:8081/",
+ "sslPort": 44363
+ }
}
}
\ No newline at end of file
diff --git a/Wms/Wms/Tools/ApiUrlConfig.cs b/Wms/Wms/Tools/ApiUrlConfig.cs
index 28203b5..2488b98 100644
--- a/Wms/Wms/Tools/ApiUrlConfig.cs
+++ b/Wms/Wms/Tools/ApiUrlConfig.cs
@@ -109,6 +109,11 @@
public string GenAgvSchedulingTask { get; set; }
/// <summary>
+ /// 鍙栨秷浠诲姟鎺ュ彛
+ /// </summary>
+ public string CancelTask { get; set; }
+
+ /// <summary>
/// 缁х画鎵ц浠诲姟鎺ュ彛
/// </summary>
public string ContinueTask { get; set; }
diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json
index 5c09e14..92bb1cf 100644
--- a/Wms/Wms/appsettings.json
+++ b/Wms/Wms/appsettings.json
@@ -27,7 +27,7 @@
"MesHost": "http://10.18.99.67:3000", //mesIP
"WcsHost": "http://10.60.16.10:5005", // "http://localhost:57061", //wcsIPhttp://localhost:57061/
"BoxHost": "http://10.110.24.30:8081", //boxIP
- "AgvHost": "http://10.110.24.30:8081", //agvIP
+ "AgvHost": "http://10.18.99.66:8181", //agvIP
// WCS
"IssueComApiUrl": "/api/demo/wcsTasks", //涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�)
@@ -49,9 +49,10 @@
"FuMaGetTokenUrl": "/port/mes/service/system/sign_login", //鑾峰彇浠ょ墝
// AGV
- "GenAgvSchedulingTask": "http://IP:PORT/rcms/services/rest/hikRpcService/genAgvSchedulingTask", //鐢熸垚浠诲姟鍗曟帴鍙�
- "ContinueTask": "http://IP:PORT/rcms/services/rest/hikRpcService/continueTask", //缁х画鎵ц浠诲姟鎺ュ彛
- "GenPreScheduleTask": "http://IP:PORT/rcms/services/rest/hikRpcService/genPreScheduleTask" // 棰勮皟搴﹀澶栨帴鍙�
+ "GenAgvSchedulingTask": "/rcms/services/rest/hikRpcService/genAgvSchedulingTask", //鐢熸垚浠诲姟鍗曟帴鍙�
+ "CancelTask": "/rcms/services/rest/hikRpcService/cancelTask",//鍙栨秷浠诲姟鎺ュ彛
+ "ContinueTask": "/rcms/services/rest/hikRpcService/continueTask", //缁х画鎵ц浠诲姟鎺ュ彛
+ "GenPreScheduleTask": "/rcms/services/rest/hikRpcService/genPreScheduleTask" // 棰勮皟搴﹀澶栨帴鍙�
},
"MesConfig": {
"MesUser": "wms",
--
Gitblit v1.8.0