using Newtonsoft.Json; using System; using WIDESEA_Common; using WIDESEA_Common.APIAdderss; using WIDESEA_Common.DBHelper; using WIDESEA_Common.Tools; using WIDESEA_Core.Utilities; using WIDESEA_Entity.DomainModels; using WIDESEA_Entity.DomainModels.TongRi; namespace WIDESEA_WCS.ToTongRi { public partial class ToTongRiServer { FreeDB freeDB = new FreeDB(); /// /// 申请入库 /// public void requestInWHTask(dt_agvtask agvtask) { try { RequestParm request = new RequestParm(); request.taskId = agvtask.agv_tasknum; request.wareHouse = agvtask.agv_fromaddress.Contains("ZJ") ? "1" : "2"; request.containerType = agvtask.agv_fromaddress.Contains("ZJ") ? "铝箔" : "铜箔"; ; var res = HttpHelper.Post(request, OrtherAPIAddress.TongRi + "requestInWHTask"); if (res.code == 2) { throw new Exception("同日wms返回异常:\n" + res.msg); } } catch (Exception ex) { WriteLog.GetLog().Write($"【异常】任务号:{agvtask.agv_tasknum}\n{ex.Message}", "同日申请库"); throw ex; } } /// /// 申请出库 /// public void requestOutWHTask(dt_agvtask agvtask) { try { RequestParm request = new RequestParm(); request.taskId = agvtask.agv_tasknum; request.wareHouse = agvtask.agv_fromaddress.Contains("ZJ") ? "1" : "2"; request.containerType = agvtask.agv_fromaddress.Contains("ZJ") ? "铝箔" : "铜箔"; ; var res = HttpHelper.Post(request, OrtherAPIAddress.TongRi + "requestOutWHTask"); if (res.code == 2) { throw new Exception("同日wms返回异常:\n" + res.msg); } } catch (Exception ex) { WriteLog.GetLog().Write($"【异常】任务号:{agvtask.agv_tasknum}\n{ex.Message}", "同日申请入库"); throw ex; } } /// /// 物料出入库反馈 (同日调用)放的取的位置 /// public TongRiRespone reportTaskPoint(object json) { TongRiRespone tongRiRespone = new TongRiRespone(); try { var report = JsonConvert.DeserializeObject(json.ToString()); var task = freeDB.Select().Where(t => t.agv_tasknum == report.taskNo).ToOne(); task.agv_taskstate = AGVTaskStateEnum.Create.ToString(); //入库 if (report.taskType == "1") { task.agv_toaddress = report.fromLocationCode; } //出库 else if (report.taskType == "2") { task.agv_fromaddress = report.fromLocationCode; } int changeRows = freeDB.Update(task).UpdateColumns(t => new { t.agv_taskstate, t.agv_toaddress, t.agv_fromaddress }).ExecuteAffrows(); WriteLog.GetLog().Write($"【成功】{json}", "同日反馈取放位置"); tongRiRespone.code = 1; } catch (Exception ex) { WriteLog.GetLog().Write($"【异常】{ex.Message}\n{json}", "同日反馈取放位置"); tongRiRespone.code = 2; tongRiRespone.msg = ex.Message; } return tongRiRespone; } /// /// 物料入库/出库AGV取放货完成上报(agv状态2,起点完成) /// public void reportTaskComplete(dt_agvtask agvtask) { try { ReportTaskComplete reportTask = new ReportTaskComplete(); reportTask.refTaskId = agvtask.agv_tasknum; if (agvtask.agv_tasktype == "入库") { reportTask.taskType = "1"; reportTask.fromLocationCode = agvtask.agv_toaddress; reportTask.containerType = agvtask.agv_toaddress.Contains("ZJ") ? "铝箔" : "铜箔"; } else { //出库 reportTask.taskType = "2"; reportTask.fromLocationCode = agvtask.agv_fromaddress; reportTask.containerType = agvtask.agv_fromaddress.Contains("ZJ") ? "铝箔" : "铜箔"; } WriteLog.GetLog().Write($"【成功】任务号:{agvtask.agv_tasknum}", "同日agv完成上报"); } catch (Exception ex) { WriteLog.GetLog().Write($"【异常】任务号:{agvtask.agv_tasknum}\n{ex.Message}", "同日agv完成上报"); throw ex; } } /// /// 物料出入库任务取消/手动完成申请接口 /// public void requestCancelTask(dt_agvtask agvtask) { try { RequestCancelTask requestCancelTask = new RequestCancelTask(); requestCancelTask.refTaskId = agvtask.agv_tasknum; if (agvtask.agv_tasktype == "入库") { requestCancelTask.containerCode = agvtask.agv_fromaddress.Contains("ZJ") ? "铝箔" : "铜箔"; requestCancelTask.taskType = "1"; } else { requestCancelTask.containerCode = agvtask.agv_toaddress.Contains("ZJ") ? "铝箔" : "铜箔"; requestCancelTask.taskType = "2"; } if (agvtask.agv_taskstate == AGVTaskStateEnum.Cancel.ToString()) { requestCancelTask.taskState = "1"; } else if (agvtask.agv_taskstate == "手动完成") { requestCancelTask.taskState = "2"; } WriteLog.GetLog().Write($"【成功】任务号:{agvtask.agv_tasknum}", "同日手动操作任务"); } catch (Exception ex) { WriteLog.GetLog().Write($"【异常】任务号:{agvtask.agv_tasknum}\n{ex.Message}", "同日手动操作任务"); throw ex; } } } }