| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | List<Dt_Task> agvtasks = _taskService.GetTasks(); |
| | | foreach (Dt_Task agvtask in agvtasks) |
| | | { |
| | | if (agvtask != null) |
| | | bool text = true; |
| | | bool text1 = true; |
| | | bool text2 = true; |
| | | bool text3 = true; |
| | | Thread.Sleep(500); |
| | | Dt_CachePoint CachePointSO = _cachePointRepository.QueryFirst(x => x.PointCode == agvtask.SourceAddress);//æ¥è¯¢èµ·ç¹ |
| | | Dt_CachePoint CachePoint = _cachePointRepository.QueryFirst(x => x.PointCode == agvtask.TargetAddress && x.PointCode.Contains("æååº"));//|| x.PointCode.Contains("åææåº")) && x.Remark != null |
| | | |
| | | Dt_CachePoint dt_CachePoint = _cachePointRepository.QueryFirst(x => x.PointCode == agvtask.TargetAddress && x.Remark != null);//æ¥è¯¢ç»ç¹ |
| | | Dt_CachePoint CachePointYCl = _cachePointRepository.QueryFirst(x => x.PointCode == agvtask.SourceAddress && x.Remark != null && x.PointCode.Contains("åææåº")); |
| | | if (CachePoint != null && CachePointSO != null) |
| | | { |
| | | var pointnames = _cachePointRepository.QueryData(x => x.Remark == CachePoint.Remark && x.Remark != "0").ToList(); |
| | | foreach (var item in pointnames) |
| | | { |
| | | var a = CachePoint.Depth.ObjToInt(); |
| | | var b = item.Depth.ObjToInt(); |
| | | if (a > b) |
| | | { |
| | | Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.TargetAddress == item.PointCode); |
| | | if (dt_Task != null) |
| | | { |
| | | text = false; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | if (CachePointSO.Remark != null) |
| | | { |
| | | var pointname = _cachePointRepository.QueryData(x => x.Remark == CachePointSO.Remark && x.Remark != "0").ToList(); |
| | | foreach (var item1 in pointname) |
| | | { |
| | | var c = CachePointSO.Depth.ObjToInt(); |
| | | var d = item1.Depth.ObjToInt(); |
| | | if (c > d) |
| | | { |
| | | Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == item1.PointCode); |
| | | if (dt_Task != null) |
| | | { |
| | | text1 = false; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (text == true && text1 == true) |
| | | { |
| | | AGVTaskPend pend = new AGVTaskPend(); |
| | | //pend.requestType = pend.requestType; |
| | | //pend.accessId = pend.accessId; |
| | | //pend.requestId = pend.requestId; |
| | | Pend data = new Pend(); |
| | | TaskPend taskPend = new TaskPend(); |
| | | { |
| | | taskPend.taskNo = agvtask.TaskNum.ToString(); |
| | | taskPend.taskType = "MV"; |
| | | DateTime date = DateTime.Now; |
| | | taskPend.taskDate = date.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | taskPend.taskState = "00"; |
| | | taskPend.priority = "1"; |
| | | taskPend.wareCode = "W01"; |
| | | taskPend.docNo = ""; |
| | | taskPend.sku = ""; |
| | | taskPend.uom = ""; |
| | | taskPend.qty = 0; |
| | | taskPend.trace = ""; |
| | | taskPend.fmLoc = agvtask.SourceAddress.ToString(); |
| | | taskPend.toLoc = agvtask.TargetAddress.ToString(); |
| | | taskPend.udf01 = ""; |
| | | taskPend.udf02 = ""; |
| | | } |
| | | data.detail.Add(taskPend); |
| | | pend.data = data; |
| | | |
| | | var time = new DateTimeOffset(DateTime.Now); |
| | | long timestampStr = time.ToUnixTimeMilliseconds();//æ¶é´æ³ |
| | | string appkeystr = "appsalt=" + AGVopenApi.appsalt + "&appkey=" + AGVopenApi.appkey; |
| | | string appkeyEcrypt = GetMD5Hex(appkeystr); |
| | | string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "×tamp=" + timestampStr + "&uniquestr=" + timestampStr; |
| | | string signstr = GetMD5Hex(origin); |
| | | Dictionary<string, string> headers = new Dictionary<string, string>() |
| | | { |
| | | {"appkey",AGVopenApi.appkey }, |
| | | {"timestamp",timestampStr.ToString() }, |
| | | {"sign",signstr } |
| | | }; |
| | | string posy = JsonConvert.SerializeObject(pend); |
| | | var respone = HttpHelper.Post(url, posy, headers: headers); |
| | | var res = JsonConvert.DeserializeObject<WebResponseContent>(respone); |
| | | if (res.Code == 200) |
| | | { |
| | | agvtask.Dispatchertime = DateTime.Now; |
| | | agvtask.TaskStatus = AGVTaskStatusEnum.AGV_SendOut.ObjToInt(); |
| | | _taskService.UpdateData(agvtask); |
| | | Thread.Sleep(1000); |
| | | WriteLog.GetLog("æ 人å车任å¡ä¸å").Write("ä»»å¡å·ï¼" + agvtask.TaskNum, "æ 人å车任å¡ä¸å"); |
| | | } |
| | | else |
| | | { |
| | | //_unitOfWorkManage.RollbackTran(); |
| | | content = WebResponseContent.Instance.Error($"{res.Message}"); |
| | | WriteLog.GetLog("æ 人å车任å¡ä¸å失败").Write("ä»»å¡å·ï¼" + agvtask.TaskNum + '\n' + "失败信æ¯" + res.Message, "æ 人å车任å¡ä¸å失败"); |
| | | } |
| | | } |
| | | } |
| | | else if (CachePointYCl != null && dt_CachePoint != null) |
| | | { |
| | | var pointnames = _cachePointRepository.QueryData(x => x.Remark == CachePointYCl.Remark).ToList(); |
| | | foreach (var item in pointnames) |
| | | { |
| | | var a = CachePointYCl.Depth.ObjToInt(); |
| | | var b = item.Depth.ObjToInt(); |
| | | if (a > b) |
| | | { |
| | | Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == item.PointCode); |
| | | if (dt_Task != null) |
| | | { |
| | | text2 = false; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | var pointname = _cachePointRepository.QueryData(x => x.Remark == dt_CachePoint.Remark).ToList(); |
| | | foreach (var item1 in pointname) |
| | | { |
| | | var c = dt_CachePoint.Depth.ObjToInt(); |
| | | var d = item1.Depth.ObjToInt(); |
| | | if (c > d) |
| | | { |
| | | Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.TargetAddress == item1.PointCode); |
| | | if (dt_Task != null) |
| | | { |
| | | text3 = false; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | if (text2 == true && text3 == true) |
| | | { |
| | | AGVTaskPend pend = new AGVTaskPend(); |
| | | //pend.requestType = pend.requestType; |
| | | //pend.accessId = pend.accessId; |
| | | //pend.requestId = pend.requestId; |
| | | Pend data = new Pend(); |
| | | TaskPend taskPend = new TaskPend(); |
| | | { |
| | | taskPend.taskNo = agvtask.TaskNum.ToString(); |
| | | taskPend.taskType = "MV"; |
| | | DateTime date = DateTime.Now; |
| | | taskPend.taskDate = date.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | taskPend.taskState = "00"; |
| | | taskPend.priority = "1"; |
| | | taskPend.wareCode = "W01"; |
| | | taskPend.docNo = ""; |
| | | taskPend.sku = ""; |
| | | taskPend.uom = ""; |
| | | taskPend.qty = 0; |
| | | taskPend.trace = ""; |
| | | taskPend.fmLoc = agvtask.SourceAddress.ToString(); |
| | | taskPend.toLoc = agvtask.TargetAddress.ToString(); |
| | | taskPend.udf01 = ""; |
| | | taskPend.udf02 = ""; |
| | | } |
| | | data.detail.Add(taskPend); |
| | | pend.data = data; |
| | | |
| | | var time = new DateTimeOffset(DateTime.Now); |
| | | long timestampStr = time.ToUnixTimeMilliseconds();//æ¶é´æ³ |
| | | string appkeystr = "appsalt=" + AGVopenApi.appsalt + "&appkey=" + AGVopenApi.appkey; |
| | | string appkeyEcrypt = GetMD5Hex(appkeystr); |
| | | string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "×tamp=" + timestampStr + "&uniquestr=" + timestampStr; |
| | | string signstr = GetMD5Hex(origin); |
| | | Dictionary<string, string> headers = new Dictionary<string, string>() |
| | | { |
| | | {"appkey",AGVopenApi.appkey }, |
| | | {"timestamp",timestampStr.ToString() }, |
| | | {"sign",signstr } |
| | | }; |
| | | string posy = JsonConvert.SerializeObject(pend); |
| | | var respone = HttpHelper.Post(url, posy, headers: headers); |
| | | var res = JsonConvert.DeserializeObject<WebResponseContent>(respone); |
| | | if (res.Code == 200) |
| | | { |
| | | agvtask.Dispatchertime = DateTime.Now; |
| | | agvtask.TaskStatus = AGVTaskStatusEnum.AGV_SendOut.ObjToInt(); |
| | | _taskService.UpdateData(agvtask); |
| | | Thread.Sleep(1000); |
| | | WriteLog.GetLog("æ 人å车任å¡ä¸å").Write("ä»»å¡å·ï¼" + agvtask.TaskNum, "æ 人å车任å¡ä¸å"); |
| | | } |
| | | else |
| | | { |
| | | //_unitOfWorkManage.RollbackTran(); |
| | | content = WebResponseContent.Instance.Error($"{res.Message}"); |
| | | WriteLog.GetLog("æ 人å车任å¡ä¸å失败").Write("ä»»å¡å·ï¼" + agvtask.TaskNum + '\n' + "失败信æ¯" + res.Message, "æ 人å车任å¡ä¸å失败"); |
| | | } |
| | | } |
| | | } |
| | | //if (dt_CachePoint != null) |
| | | //{ |
| | | // var pointname = _cachePointRepository.QueryData(x => x.Remark == dt_CachePoint.Remark).ToList(); |
| | | // foreach (var item in pointname) |
| | | // { |
| | | // var a = dt_CachePoint.Depth.ObjToInt(); |
| | | // var b = item.Depth.ObjToInt(); |
| | | // if (b > a) |
| | | // { |
| | | // //Dt_CachePoint c = _cachePointRepository.QueryFirst(x => x.PointCode == item.PointCode && x.PointStatus == 0); |
| | | // Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.TargetAddress == item.PointCode); |
| | | // if (dt_Task != null) |
| | | // { |
| | | // continue; |
| | | // } |
| | | // } |
| | | // } |
| | | //} |
| | | else |
| | | { |
| | | AGVTaskPend pend = new AGVTaskPend(); |
| | | //pend.requestType = pend.requestType; |
| | |
| | | string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "×tamp=" + timestampStr + "&uniquestr=" + timestampStr; |
| | | string signstr = GetMD5Hex(origin); |
| | | Dictionary<string, string> headers = new Dictionary<string, string>() |
| | | { |
| | | {"appkey",AGVopenApi.appkey }, |
| | | {"timestamp",timestampStr.ToString() }, |
| | | {"sign",signstr } |
| | | }; |
| | | { |
| | | {"appkey",AGVopenApi.appkey }, |
| | | {"timestamp",timestampStr.ToString() }, |
| | | {"sign",signstr } |
| | | }; |
| | | string posy = JsonConvert.SerializeObject(pend); |
| | | var respone = HttpHelper.Post(url, posy, headers: headers); |
| | | var res = JsonConvert.DeserializeObject<WebResponseContent>(respone); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |