From 0caa59dda5ede8b93c4fd47f095bbf716f57383b Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期四, 13 十一月 2025 11:03:19 +0800
Subject: [PATCH] 开发LIMS质量结果下发接口

---
 Wms/WMS.BLL/BllTransServer/RcsServer.cs |  158 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 138 insertions(+), 20 deletions(-)

diff --git a/Wms/WMS.BLL/BllTransServer/RcsServer.cs b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
index a00753c..a401604 100644
--- a/Wms/WMS.BLL/BllTransServer/RcsServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -14,6 +14,7 @@
 using WMS.BLL.LogServer;
 using WMS.DAL;
 using WMS.Entity.BllAsnEntity;
+using WMS.Entity.BllQualityEntity;
 using WMS.Entity.BllSoEntity;
 using WMS.Entity.Context;
 using WMS.Entity.DataEntity;
@@ -115,6 +116,24 @@
                                 Db.Updateable(pallet).ExecuteCommand();
 
                                 taskMsg = "璁惧鍙噣妗朵换鍔�";
+
+                                try
+                                {
+                                    #region 璇锋眰MES鎺ュ彛鍙戦�佸噣妗剁紪鍙�
+                                    var reObj = new
+                                    {
+                                        deviceCode = pallet.PackagNo,
+                                        reqType = "1"
+                                    };
+                                    string jsonReq = JsonConvert.SerializeObject(reObj);
+                                    var response = HttpHelper.DoPost(urlMes, jsonReq, "鍥炰紶MES鍑�妗剁紪鍙锋帴鏂欒澶�", "MES").ToString();
+                                    var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁                                   
+                                    #endregion
+                                }
+                                catch
+                                { 
+                                
+                                }
                             }
                             break;
                         case "1"://娣锋枡璁惧鍙枡妗讹紙娣锋枡锛�
@@ -250,17 +269,18 @@
                                 //閬嶅巻搴撳瓨鑴忔《锛岃繑鍥濵ES楠岃瘉
                                 foreach (var item in palletList)
                                 {
-                                    #region 鍘绘帀MES
+                                    #region 璇锋眰MES鎺ュ彛楠岃瘉璇ユ《鏄惁鏀寔灏忔竻娲�
                                     var reObj = new
                                     {
-                                        devive = item.PackagNo
+                                        deviceCode = item.PalletNo,
+                                        reqType = "0"
                                     };
                                     string jsonReq = JsonConvert.SerializeObject(reObj);
                                     var response = HttpHelper.DoPost(urlMes, jsonReq, "鍥炰紶MES鑴忔《缂栧彿鍒ゆ柇鏄惁鍙竻娲�", "MES").ToString();
                                     var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁
                                     if (obj.state == "200")
                                     {
-                                        if (obj.data != "1")//涓嶅彲娓呮礂锛屽皢鑴忔《鍐荤粨
+                                        if (obj.data.status != "1")//涓嶅彲娓呮礂锛屽皢鑴忔《鍐荤粨
                                         {
                                             item.Status = "5";//寮傚父鍐荤粨
                                             //淇敼璇ユ《搴撳瓨鐘舵��
@@ -774,7 +794,7 @@
                 Db.BeginTran();
 
                 //鏌ユ壘鏄惁鏈夌┖浣欒剰妗朵綅
-                var endLocat = Db.Queryable<SysStorageLocat>().First(w => w.WareHouseNo == detail.WareHouseNo && w.AreaNo.Contains("04") && w.Status == "0" && w.Flag == "0");
+                var endLocat = GetLocatModel(detail.WareHouseNo, "3");
                 if (endLocat == null)
                 {
                     detail.Status = "5";//寮傚父閿佸畾
@@ -784,27 +804,71 @@
                 }
                 else
                 {
-                    //鐢熸垚璋冨害灏忚溅鍑�妗跺幓鑴忔《鍖轰换鍔�
-                    var ztask = new TaskDetial
+                    var taskNo = new Common().GetMaxNo("TN");//浠诲姟鍙�
+                    //浠诲姟淇℃伅
+                    var logTaskEntry = new LogTask
                     {
-                        Startport = detail.LocatNo,
-                        Endport = endLocat.LocatNo,
-                        Pallno = PalletNo,
-                        Crtype = "2",
+                        TaskNo = taskNo,
+                        Sender = "WMS",
+                        Receiver = "RCS",
+                        //IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+                        SendDate = DateTime.Now,  //鍙戦�佹椂闂�
+                        //BackDate = DateTime.Now,  //杩斿洖鏃堕棿
+                        StartLocat = statrtLocat.LocatNo,//璧峰浣嶇疆
+                        EndLocat = endLocat.LocatNo,//鐩爣浣嶇疆
+                        PalletNo = detail.PalletNo,//妗跺彿
+                        IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                        IsCancel = 1,//鏄惁鍙彇娑�
+                        IsFinish = 1,//鏄惁鍙畬鎴�
+                        Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                        OrderType = "3",//鍗曟嵁绫诲瀷 0 鍏ュ簱 1 鍑哄簱 3 绉诲簱
+                        Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                        NoticeDetailNo = 0,
+                        Msg = "MES涓嬪彂灏嗗噣妗舵敼涓鸿剰妗跺苟鎷夊埌鑴忔《鍖�", //鍏抽敭淇℃伅
+                        LotNo = ""//鎵规鍙�
                     };
-                    string taskNo = "";
+                    var task = new TaskDetial
+                    {
+                        Taskno = taskNo,//浠诲姟鍙�
+                        Startport = statrtLocat.LocatNo,//璧峰浣嶇疆
+                        Endport = endLocat.LocatNo,//鐩爣浣嶇疆
+                        Pallno = detail.PalletNo,
+                        Crtype = "2",//骞冲眰鎼繍
+                        WareHouseNo = detail.WareHouseNo
+                    };
                     string agvMsg = string.Empty;
-                    CreateTaskForAgv(ztask, url, out agvMsg);
+                    //缁欎笅杞︿笅鍙戜换鍔�
+                    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();
 
-                    statrtLocat.Status = "3";//鍑哄簱涓�
-                    //淇敼璧峰鍌ㄤ綅鐘舵��
-                    Db.Updateable(statrtLocat).ExecuteCommand();
+                        statrtLocat.Status = "3";//鍑哄簱涓�
+                        Db.Updateable(statrtLocat).ExecuteCommand();
 
-                    detail.Status = "5";//寮傚父閿佸畾
-                    detail.PalletStatus = "3";//鑴忔《
-                    //淇敼搴撳瓨鐘舵��
-                    Db.Updateable(detail).ExecuteCommand();
+                        endLocat.Status = "2";//鍏ュ簱涓�
+                        Db.Updateable(endLocat).ExecuteCommand();
+
+                        detail.Status = "2";//鍒嗛厤鐘舵�� 0:寰呭垎閰嶏紝1锛氶儴鍒嗗垎閰� 锛� 2:宸插垎閰�
+                        //鏇存柊妗跺簱瀛樻槑缁�
+                        Db.Updateable(detail).ExecuteCommand();
+
+                    }
+                    else//澶辫触
+                    {
+                        logTaskEntry.IsSuccess = 0;
+                        logTaskEntry.Information = agvMsg;
+                        Db.Insertable(logTaskEntry).ExecuteCommand();
+                    }                  
                 }
+                //鎻愪氦浜嬪姟
                 Db.CommitTran();
             }
             catch (Exception ex)
@@ -879,7 +943,7 @@
                 {
                     Taskno = taskNo,//浠诲姟鍙�
                     Startport = startLoction.LocatNo,//璧峰浣嶇疆
-                    Endport = endLoction.LocatNo,//鐩爣浣嶇疆
+                    Endport = pallnetmsg.Location,//鐩爣浣嶇疆
                     Pallno = detail.PalletNo,//妗跺彿
                     Crtype = "1",//鍙《
                     WareHouseNo = detail.WareHouseNo//杞﹂棿缂栫爜
@@ -1558,5 +1622,59 @@
                 throw new Exception(e.Message);
             }
         }
+
+        /// <summary>
+        /// 璐ㄩ噺缁撴灉涓嬪彂
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        public void QualityResult(QualityResultVm model)
+        {
+            try
+            {
+                //楠岃瘉鎵规鍙锋槸鍚︿负绌�
+                if (string.IsNullOrEmpty(model.LotNo))
+                {
+                    throw new Exception("鎵规鍙蜂笉鍙负绌猴紝璇锋牳鏌ワ紒");
+                }
+                //寮�鍚簨鍔�
+                Db.BeginTran();
+
+                BllQualityInspect inspectModel = new BllQualityInspect();
+                inspectModel.InspectNo = "";
+                inspectModel.ASNNo = "";
+                inspectModel.LotNo = model.LotNo;
+                inspectModel.IsQualified = model.IsQualified;
+                inspectModel.Origin = "LIMS"; //鏉ユ簮
+                inspectModel.CreateTime = Db.GetDate(); //鍒涘缓鏃ユ湡
+                inspectModel.SkuNo = ""; //鐗╂枡鍙�
+                inspectModel.SkuName = ""; //鐗╂枡鍚嶇О
+                inspectModel.PassQty = 0; //鍚堟牸鏁伴噺
+                inspectModel.FailQty = 0; //涓嶅悎鏍兼暟閲�
+                inspectModel.Standard = ""; //瑙勬牸
+                inspectModel.CreateUser = 0;
+                //鎻掑叆璐ㄦ淇℃伅
+                Db.Insertable(inspectModel).ExecuteCommand();
+
+                //鏌ユ壘搴撳瓨鏄庣粏淇℃伅
+                List<DataStockDetail> detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.LotNo == model.LotNo).ToList();
+                foreach (var item in detail)
+                {
+                    item.InspectStatus = model.IsQualified == "1" ? "1" : "2";//0:寰呮楠岋紝1锛氬悎鏍硷紝2锛氫笉鍚堟牸
+
+                    Db.Updateable(item).ExecuteCommand();
+                }
+
+                //鎻愪氦浜嬪姟
+                Db.CommitTran();
+            }
+            catch (Exception ex)
+            {
+                //鍥炴粴浜嬪姟
+                Db.RollbackTran();
+                throw new Exception(ex.Message);
+            }
+        }
     }
 }

--
Gitblit v1.8.0