From 0b5ccdca6263cf7a2cee460f30c76ef1efea2811 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 27 四月 2024 17:47:27 +0800
Subject: [PATCH] 人工出库,人工入库,人工移库,PDA扫码确认外协物料已被取走接口

---
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs |  115 +++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 95 insertions(+), 20 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs"
index c2252b6..7bf5815 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs"
@@ -6,6 +6,7 @@
 using WIDESEA_Comm.LogInfo;
 using WIDESEA_Comm.MES_Info;
 using WIDESEA_Comm.MES_Info.Request;
+using WIDESEA_Comm.TaskNo;
 using WIDESEA_Common;
 using WIDESEA_Core.EFDbContext;
 using WIDESEA_Core.ManageUser;
@@ -22,7 +23,7 @@
     public partial class ToMesServer
     {
         /// <summary>
-        /// 澶栧崗鍏ュ簱(妫�娴嬩笂鏂�)
+        /// 澶栧崗鍑哄簱(妫�娴嬩笂鏂�)
         /// </summary>
         /// <param name="saveModel"></param>
         /// <returns></returns>
@@ -32,36 +33,110 @@
             try
             {
                 string stationNo = saveModel.MainData["stationNo"].ToString();  //缂撳瓨鏋剁紪鍙�
+                if (string.IsNullOrEmpty(stationNo)) return content.Error("璇烽�夋嫨涓嬫枡鍙o紒");
                 string user = saveModel.MainData["creator"].ToString();
                 string sn = saveModel.MainData["dataSN"].ToString();   //杞﹁疆SN鍙�
 
-                int i = 1;  //杞﹁疆鏁伴噺
-                foreach (var item in sn.Split(","))
+                #region 鍒ゆ柇SN鍙烽暱搴︺�佹槸鍚﹀瓨鍦ㄧ浉鍚孲N鍙�
+                bool strOK = false;
+                bool SNOK = false;
+                for (int i = 1; i < sn.Split(",").Length; i++)
                 {
-                    if(item!= null)
+                    for (int j = 0; j < i; j++)
                     {
-                        var info = freeDB.Select<VV_MES_Info>().Where(x => x.SN == item).First();
-                        if (info == null)
-                        {
-                            return content.Error($"绗瑊i}涓溅杞棤妫�娴嬩笂鏂欏伐鍗曚俊鎭紝璇锋牳鏌ュ伐鍗曞悗鍦ㄦ壂鎻忥紒");
-                        }
-                        i++;
+                        if (sn.Split(",")[j] == sn.Split(",")[i])
+                            strOK = true;
+                        if (sn.Split(",")[j].Length != 10)
+                            SNOK = true;
                     }
-                    
                 }
-                
+                if (strOK)
+                    return content.Error("瀛樺湪鐩稿悓SN鍙风殑杞﹁疆淇℃伅锛佽閲嶆柊鎵弿锛�");
+                if (SNOK)
+                    return content.Error("杞﹁疆SN鍙锋湁璇紒璇烽噸鏂版壂鎻忥紒");
+                #endregion
 
-                dt_agvtask agvtask = new dt_agvtask
+                //dt_mes_detail info = null;
+                //dt_mes_head mes_head = null;
+                VV_Mes_Workinfo mes_Work = null;
+
+                int count = 0;  //杞﹁疆鏁伴噺
+                string bindSN = "";
+                List<string> list = new List<string>();
+                foreach (var SN in sn.Split(","))
                 {
-                    agv_barcode = stationNo,
-                    agv_code = user,
+                    if (!string.IsNullOrEmpty(SN))
+                        list.Add(SN);
+                }
+                foreach (var item in list)
+                {
+                    if (item != null)
+                    {
+                        count++;
+                        bindSN += bindSN == "" ? item : "," + item;
+
+                         mes_Work = freeDB.Select<VV_Mes_Workinfo>().Where(x => x.SN == item && x.processCode == "28").First();
+                        if (mes_Work == null)
+                            return content.Error($"绗瑊count}涓溅杞棤妫�娴嬩笂鏂欏伐鍗曚俊鎭紝璇锋牳鏌ュ伐鍗曞悗鍦ㄦ壂鎻忥紒");
+                        //info = freeDB.Select<dt_mes_detail>().Where(x => x.SN == item).First();
+                        //if (info == null)
+                        //    return content.Error($"绗瑊count}涓溅杞棤妫�娴嬩笂鏂欏伐鍗曡鎯咃紝璇锋牳鏌ュ伐鍗曞悗鍦ㄦ壂鎻忥紒");
+                        //mes_head = freeDB.Select<dt_mes_head>().Where(x => x.jobID == info.jobID && x.processCode == "28").First();
+                        //if (mes_head == null)
+                        //    return content.Error($"绗瑊count}涓溅杞棤妫�娴嬩笂鏂欏伐鍗曚俊鎭紝璇锋牳鏌ュ伐鍗曞悗鍦ㄦ壂鎻忥紒");
+                    }
+                }
+                VOLContext Context = new VOLContext();
+                Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
+                var station = freeDB.Select<dt_stationinfo>().Where(x => x.stationCode == stationNo).First();
+                if (freeDB.Select<dt_agvtask>().Where(x => x.agv_fromaddress == station.stationCode).Any())
+                    return content.Error($"涓嬫枡鍙stationNo}瀛樺湪AGV浠诲姟锛岃鏍稿疄锛�");
+                if (!station.enable)
+                    return content.Error($"涓嬫枡鍙stationNo}琚鐢紝璇锋牳瀹烇紒");
+                station.quantity = count;
+                station.bindSN = bindSN;
+                station.stationType = mes_Work.drawingNo;
+                station.location_state = "Stroge";
+                station.Number = mes_Work.jobID;
+                if (mes_Work.heatID != null)
+                    station.heatNumber = mes_Work.heatID;
+                station.tray_status = "StrogeTray";
+
+                stationinfoRepository.Update(station, true);
+                #region MyRegion
+                //dt_agvtask agvtask = new dt_agvtask
+                //{
+                //    //agv_barcode = stationNo,
+                //    //agv_code = user,
+                //    agv_createtime = DateTime.Now,
+                //    agv_fromaddress = stationNo,
+                //    agv_qty = i,
+                //    agv_grade = 1,
+                //    agv_tasktype = AGVTaskTypeEnum.TaskType_Inbound.ToString(),
+                //    agv_taskstate = AGVTaskStateEnum.Create.ToString(),
+                //    agv_toaddress = "",
+                //};
+                #endregion
+
+                dt_agvtask agvtask = new dt_agvtask()
+                {
+                    agv_fromaddress = station.stationCode,
+                    agv_id = Guid.NewGuid(),
+                    agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+                    agv_grade = 3,
                     agv_createtime = DateTime.Now,
-                    agv_fromaddress = stationNo,
-                    agv_qty = i,
-                    agv_grade = 1,
-                    agv_tasktype = AGVTaskTypeEnum.TaskType_Inbound.ToString(),
-                    agv_taskstate = AGVTaskStateEnum.Create.ToString(),
+                    agv_taskstate = "Queue",
+                    agv_materielid = station.stationType,
+                    agv_qty = station.quantity,
+                    agv_tasktype = "TaskType_OutsourceOutbound",
                     agv_toaddress = "",
+                    agv_userid = user,//"绯荤粺",
+                    jobID = mes_Work.jobID,
+                    bindSN = station.bindSN,
+                    agv_worktype = Convert.ToInt32(mes_Work.processCode),
+                    agv_materbarcode = mes_Work.materialCode,
+                    agv_Traytype = station.tray_type,
+                    agv_TrayStatus = station.tray_status
                 };
                 freeDB.Add(agvtask);
                 return content.OK();

--
Gitblit v1.9.3