| | |
| | | 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; |
| | |
| | | public partial class ToMesServer |
| | | { |
| | | /// <summary> |
| | | /// å¤åå
¥åº(æ£æµä¸æ) |
| | | /// å¤ååºåº(æ£æµä¸æ) |
| | | /// </summary> |
| | | /// <param name="saveModel"></param> |
| | | /// <returns></returns> |
| | |
| | | try |
| | | { |
| | | string stationNo = saveModel.MainData["stationNo"].ToString(); //ç¼åæ¶ç¼å· |
| | | if (string.IsNullOrEmpty(stationNo)) return content.Error("è¯·éæ©ä¸æå£ï¼"); |
| | | string user = saveModel.MainData["creator"].ToString(); |
| | | string sn = saveModel.MainData["dataSN"].ToString(); //车轮SNå· |
| | | |
| | | int i = 1; //车轮æ°é |
| | | foreach (var item in sn.Split(",")) |
| | | #region 夿SNå·é¿åº¦ãæ¯å¦åå¨ç¸åSNå· |
| | | 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(); |