From df512779d2215464755a8a5cb35c9d8d88e5d9dd Mon Sep 17 00:00:00 2001
From: liudl <673013083@qq.com>
Date: 星期五, 31 十月 2025 13:24:10 +0800
Subject: [PATCH] 组盘回传
---
Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs | 185 ++++++++++++++++++++++++++++++++-------------
1 files changed, 131 insertions(+), 54 deletions(-)
diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index ea89850..33e1063 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -80,6 +80,8 @@
ResponseModel result = new ResponseModel();
try
{
+ string str = JsonConvert.SerializeObject(models);
+ Log.Information("鎺ユ敹WMS鍑哄叆搴撲换鍔★紝浠诲姟鍙凤細" + models.TaskNo + ",鎵樼洏鍙凤細"+ models.PalletNo);
// 楠岃瘉浠诲姟鏄惁宸插瓨鍦�
var taskInfo = _db.Queryable<WcsTask>().First(w => w.TaskNo == models.TaskNo);
if (taskInfo != null)
@@ -98,6 +100,8 @@
}
Enum type;
var bale = "0";
+ decimal nqty = 0;
+ decimal ncomqty = 0;
if (models.TaskType == "0" )
{
type = TaskTypeEnum.In;
@@ -115,6 +119,14 @@
{
type = TaskTypeEnum.Move;
}
+ if (!string.IsNullOrEmpty( models.Qty))
+ {
+ nqty =Convert.ToDecimal(models.Qty);
+ }
+ if (!string.IsNullOrEmpty(models.CompleteQty))
+ {
+ ncomqty = Convert.ToDecimal(models.CompleteQty);
+ }
//鏂板浠诲姟
var taskAdd = new WcsTask()
{
@@ -124,18 +136,20 @@
//IsSuccess =TaskSuccessEnum.Success,
Levels = 999,
Origin = "WMS",
- StartRoadway= models.StartRoadway,
+ StartRoadway = models.StartRoadway,
StartLocate = models.StartLocate,
EndLocate = models.EndLocate,
- EndRoadway= models.EndRoadway,
+ EndRoadway = models.EndRoadway,
PalletNo = models.PalletNo,
IsBale = bale,
- //LotNo =models.LotNo,
- //SkuNo=models.SkuNo,
- //SkuName=models.SkuName,
- //Qty=models.Qty
+ LotNo = models.LotNo,
+ SkuName = models.SkuName,
+ Qty = nqty,
+ CompleteQty = ncomqty,
+
+ OrderNo = models.OrderNo
};
_db.Insertable(taskAdd).ExecuteCommand();
@@ -372,31 +386,19 @@
return new ResponseFuMaModel() { Success = "-1", Message = "璇ユ壒娆℃湭杩涜鍒嗘嫞鎴栧凡缁撴壒" };
}
- //鑾峰彇鍖呰鏁伴噺
int Fqty = int.Parse(models.FinishQty);
- int bzQty = 0;
- var boxinfolog = _db.Queryable<WcsBoxInfoLog>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.BitBoxMark == "0").First();
- if (boxinfolog == null)
- {
- var boxinfo = _db.Queryable<WcsBoxInfo>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.BitBoxMark == "0").First();
- Fqty = (int)(Fqty /boxinfo.QtyCount);
- bzQty = (int)boxinfo.QtyCount;
- }
- else
- {
- Fqty = (int)(Fqty / boxinfolog.QtyCount);
- bzQty = (int)boxinfolog.QtyCount;
- }
int Jpqty = 0;
//鍐欏叆璇ヤ换鍔″畬鎴愭暟閲�
foreach (var item in num)
{
+ int jp = 0;//缁撴壒鏄惁闇�瑕佺粍鐩�0锛氫笉闇�瑕侊紝1锛氶渶瑕併�備笉闇�瑕佺粍鐩樺垯鐩存帴閲婃斁鍒嗛亾锛岄渶瑕佺粍鐩樺垯涓嬪彂PLC棰勭粨鎵逛俊鍙�
item.FinishQty = Fqty;
//鍒ゆ柇褰撳墠鍗曟嵁鐮佸灈鏁伴噺鏄惁鍜屽畬宸ユ暟閲忕浉绛夛紝鏄垯缁撴壒璇ュ崟鎹�
+ //鑾峰彇宸茬粍鐩樻暟閲�
var checkNum = _db.Queryable<WcsBoxInfoLog>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.OrderCode == item.OrderNo).ToList();//缁勭洏琛ㄧ鐮佷俊鎭�
if (checkNum.Count>0)
{
- if (checkNum.First().Qty != 0)//鏈夋敮鐮�
+ if (!(string.IsNullOrEmpty(checkNum.First().BoxNo2))||!(string.IsNullOrEmpty(checkNum.First().BoxNo3)))//鏈夋敮鐮�
{
foreach (var item2 in checkNum)
{
@@ -411,44 +413,100 @@
}
}
}
- var checkNum2 = _db.Queryable<WcsBoxInfo>().Where(m => m.SkuNo == models.SkuNo && m.LotNo == models.LotNo && m.OrderCode == item.OrderNo).ToList();//绠辩爜琛ㄥ凡鐮佸灈绠辩爜淇℃伅
+
+ //鑾峰彇宸叉彃鐮佹暟閲�
+ var checkNum2 = _db.Queryable<WcsBoxInfo>().Where(m =>m.BitBoxMark != "1" && m.SkuNo == models.SkuNo && m.LotNo == models.LotNo &&(m.PalletNo != null || m.PalletNo != "") && m.OrderCode == item.OrderNo).ToList();//绠辩爜琛ㄥ凡鐮佸灈绠辩爜淇℃伅
if (checkNum2.Count>0)
{
- if (checkNum2.First().Qty != 0)//鏈夋敮鐮�
+ jp = 1;//绠辩爜琛ㄨ繕鏈夋湭缁勭洏绠憋紝闇�瑕佺粍鐩�
+ if (!string.IsNullOrEmpty(checkNum2.First().BoxNo2)||!string.IsNullOrEmpty(checkNum2.First().BoxNo3))//鏈夋敮鐮�
{
- foreach (var item2 in checkNum)
+ foreach (var item2 in checkNum2)
{
Jpqty = (int)(Jpqty + item2.Qty);
}
}
else//鏃犳敮鐮�
{
- foreach (var item2 in checkNum)
+ foreach (var item2 in checkNum2)
{
Jpqty = (int)(Jpqty + item2.QtyCount);
}
}
}
- if (Jpqty/bzQty == Fqty)
+
+ //鑾峰彇闆剁鏁伴噺
+ var checkNum3 = _db.Queryable<WcsBoxInfo>().Where(m => m.BitBoxMark == "1" && m.SkuNo == models.SkuNo && m.LotNo == models.LotNo).ToList();
+ if (checkNum3.Count > 0)
{
- //棰勭粨鎵逛俊鍙蜂笅鍙�
+ if (!string.IsNullOrEmpty(checkNum3.First().BoxNo2) || !string.IsNullOrEmpty(checkNum3.First().BoxNo3))//鏈夋敮鐮�
+ {
+ foreach (var item3 in checkNum3)
+ {
+ Jpqty = (int)(Jpqty + item3.Qty);
+ }
+ }
+ else//鏃犳敮鐮�
+ {
+ foreach (var item3 in checkNum3)
+ {
+ Jpqty = (int)(Jpqty + item3.QtyCount);
+ }
+ }
+ }
+
+ if (Jpqty == Fqty)
+ {
var modPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.ConveyorLine && s.Text == ("2灞傛墭鐩樿緭閫佺嚎")).First();
if (modPlc == null)
throw Oops.Bah("鏈壘鍒拌緭閫佺嚎PLC");
PLCUtil plcConn = new PLCUtil(modPlc);
- //鑾峰彇宸ヤ綅鐐逛綅淇℃伅
- var portno = item.Port;
- var modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno).First();
- var listPlcDevice = _db.Queryable<WcsDevice>().Where(s => s.StationNum == portno && s.Text.Contains("2妤�")).First();
- var ret = plcConn.SetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos, "1");//鍐欏叆寮�濮嬬粨鎵逛俊鍙�
- if (ret.IsSucceed)
+ //鍒ゆ柇褰撳墠鍒嗛亾鏄惁鏈夋湭缁勭洏绠�
+ if (jp == 0)
{
- item.Status = "2";//缁撴壒涓�
+ // 鍒嗛亾瑙g粦锛屾姄绠卞搧绉嶅啓鍏�0
+ var ret1 = plcConn.SetPlcDBValue(item.PosTypeLot, item.DbNumber, item.PlcPos, "0");
+ if (ret1.IsSucceed)
+ {
+ //鏇存柊鍏ュ簱璁㈠崟
+ var orderTask = _db.Queryable<WcsOderTask>().Where(w => w.SkuNo == item.SkuNo && w.LotNo == item.LotNo && w.IsDelete == false).ToList();
+ if (orderTask.Count > 0)
+ {
+ foreach (var item2 in orderTask)
+ {
+ item2.Status = TaskStatusEnum.Complete;
+ _db.Updateable(item2).ExecuteCommand();
+ }
+ }
+ //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟 liudl 鏈�鍚庝竴鎵樼洏鐢宠瀹屽叆搴撴墠鍙竻绌�
+ item.OrderNo = "";
+ item.TaskNo = "";
+ item.LotNo = "";
+ item.SkuNo = "";
+ item.SkuName = "";
+ item.BoxType = "";
+ item.Qty = 0;
+ item.PZNo = "";
+ item.Status = "0"; // 缁戝畾鍒嗛亾 0锛氳В缁� 1锛氱粦瀹�
+ item.FinishQty = 0;
+
+ //鏇存柊鍒嗘嫞浠诲姟
+ _db.Updateable(item).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+ }
}
- else { throw new Exception("瀹屽伐缁撴壒淇″彿涓嬪彂缁橮LC閿欒"); }
+ else
+ {
+ //棰勭粨鎵逛俊鍙蜂笅鍙�
+
+ var ret2 = plcConn.SetPlcDBValue(item.PosType, item.DbNumber, item.PosLot, "1");//鍐欏叆寮�濮嬬粨鎵逛俊鍙�
+ if (ret2.IsSucceed)
+ {
+ item.Status = "2";//缁撴壒涓�
+ }
+ else { throw new Exception("瀹屽伐缁撴壒淇″彿涓嬪彂缁橮LC閿欒"); }
+ }
+ _db.Updateable(item).ExecuteCommand();
}
- _db.Updateable(item).ExecuteCommand();
- return new ResponseFuMaModel() { Success = "0", Message = "鎺ュ彈瀹屽伐缁撴壒鏁伴噺鎴愬姛" };
}
return new ResponseFuMaModel() { Success = "0", Message = "鎺ュ彈瀹屽伐缁撴壒鏁伴噺鎴愬姛" };
@@ -467,9 +525,10 @@
/// <returns>鍙嶉淇℃伅</returns>
[HttpPost]
[AllowAnonymous]
- public IsBaleModel2 HttpInConfirm(PortModel models)
+ public ResponseModel HttpInConfirm(PortModel models)
{
-
+ ResponseModel result = new ResponseModel();
+ result.StatusCode = 0;
try
{
string str = JsonConvert.SerializeObject(models);
@@ -507,7 +566,7 @@
var modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno && s.Text == "PLC").First();
var (res1, val) = plcConn.GetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos);
- if (val.ToString() == "120")
+ if (val.ToString() == "120" || val.ToString() == "130")
{
//璇诲彇鎴愬姛鍚庡啓鍏�130
modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno && s.Text == "WCS").First();
@@ -515,14 +574,17 @@
if (ret.IsSucceed)
{
//鍥炰紶WMS鍙斁淇″彿
- return new IsBaleModel2() { Success = 0, Message = "鎺ュ彈鎴愬姛" };
+ result.Msg = "鎺ュ彈鎴愬姛";
+ return result;
}
}
- return new IsBaleModel2() { Success = -1, Message = "璇诲彇PLC鐐逛綅淇℃伅澶辫触" };
+ result.StatusCode = -1;
+ result.Msg = "璇诲彇PLC鐐逛綅淇℃伅澶辫触";
+ return result;
}
catch (Exception ex)
{
- return new IsBaleModel2() { Success = -1, Message = ex.Message };
+ return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
}
}
@@ -534,8 +596,10 @@
/// <returns>鍙嶉淇℃伅</returns>
[HttpPost]
[AllowAnonymous]
- public IsBaleModel2 HttpInRequest(PortRequestModel models)
+ public ResponseModel HttpInRequest(PortRequestModel models)
{
+ ResponseModel result = new ResponseModel();
+ result.StatusCode = 0;
try
{
string str = JsonConvert.SerializeObject(models);
@@ -573,17 +637,26 @@
plcConn.SetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos, models.TaskNo);//鍐欏叆浠诲姟鍙�
//
modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno && s.Text == "WCS").First();
+ //鍒ゆ柇褰撳墠鐘舵�佹槸鍚﹁PLC璁剧疆涓�150锛屽鏋滄槸鍒欏洖浼燱MS鍙斁璐т俊鍙�
+ //var (djRes, djVal) = plcConn.GetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos);
+ //if (djVal == "150")
+ //{
+ // return new ResponseModel() { StatusCode = 0, Msg = "PLC鍏佽鏀捐揣" };
+ //}
var ret = plcConn.SetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos, "140");//鍐欏叆寮�濮嬫斁璐т俊鍙�
- if (ret.IsSucceed)
+ if (ret.IsSucceed == true)
{
- //鍥炰紶WMS鏀捐揣淇″彿
- return new IsBaleModel2() { Success = 0, Message = "鎺ュ彈鎴愬姛" };
+ result.Msg = "PLC鍏佽鏀捐揣";
+ return result;
}
- return new IsBaleModel2() { Success = -1, Message = "璇诲彇PLC鐐逛綅淇℃伅澶辫触" };
+
+ result.StatusCode = -1;
+ result.Msg = "璇诲彇PLC鐐逛綅淇℃伅澶辫触";
+ return result;
}
catch (Exception ex)
{
- return new IsBaleModel2() { Success = -1, Message = ex.Message };
+ return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
}
}
@@ -596,9 +669,10 @@
/// <returns>鍙嶉淇℃伅</returns>
[HttpPost]
[AllowAnonymous]
- public IsBaleModel2 HttpInFinish(PortModel models)
+ public ResponseModel HttpInFinish(PortModel models)
{
-
+ ResponseModel result = new ResponseModel();
+ result.StatusCode = 0;
try
{
string str = JsonConvert.SerializeObject(models);
@@ -638,13 +712,16 @@
if (ret.IsSucceed)
{
//鍥炰紶WMS鏀捐揣淇″彿
- return new IsBaleModel2() { Success = 0, Message = "鎺ュ彈鎴愬姛" };
+ result.Msg = "鎺ュ彈鎴愬姛";
+ return result;
}
- return new IsBaleModel2() { Success = -1, Message = "璇诲彇PLC鐐逛綅淇℃伅澶辫触" };
+ result.StatusCode = -1;
+ result.Msg = "璇诲彇PLC鐐逛綅淇℃伅澶辫触";
+ return result;
}
catch (Exception ex)
{
- return new IsBaleModel2() { Success = -1, Message = ex.Message };
+ return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
}
}
--
Gitblit v1.8.0