| | |
| | | using static HH.WCS.Mobox3.AnGang.Dtos.Request.AgvRequest; |
| | | using static HH.WCS.Mobox3.AnGang.Dtos.Response.AgvResponse; |
| | | using HH.WCS.Mobox3.AnGang.Helpers; |
| | | using HH.WCS.Mobox3.AnGang.Debug; |
| | | using static HH.WCS.Mobox3.AnGang.Dtos.Request.DebugRequest; |
| | | using static HH.WCS.Mobox3.AnGang.Dtos.Response.DebugResponse; |
| | | |
| | | namespace HH.WCS.Mobox3.AnGang.Controllers |
| | | { |
| | |
| | | public class DebugController : System.Web.Http.ApiController |
| | | { |
| | | /// <summary> |
| | | /// AGV状态一键回报134562 |
| | | /// 模拟 AGV 多次回报任务状态 |
| | | /// </summary> |
| | | /// <param name="model">容器号</param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [Route("AGVSeriesReports")] |
| | | public ReturnResults AGVSeriesReports(UpdateTaskState model) |
| | | { |
| | | var agvTaskState = new AgvTaskState() |
| | | { |
| | | task_no = model.TaskID, |
| | | forklift_no = model.ForkliftNo, |
| | | state = 1 |
| | | }; |
| | | ReturnResults returnResults = new ReturnResults(); |
| | | returnResults.resultList = new List<ReturnResult>(); |
| | | |
| | | var temp1 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp1); |
| | | |
| | | agvTaskState.state = 3; |
| | | var temp3 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp3); |
| | | |
| | | agvTaskState.state = 4; |
| | | var temp4 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp4); |
| | | |
| | | agvTaskState.state = 5; |
| | | var temp5 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp5); |
| | | |
| | | agvTaskState.state = 6; |
| | | var temp6 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp6); |
| | | |
| | | agvTaskState.state = 2; |
| | | var temp2 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp2); |
| | | |
| | | return returnResults; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// AGV状态一键回报134 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [Route("AGVSeriesReportsPartA")] |
| | | public ReturnResults AGVSeriesReportsPartA(UpdateTaskState model) { |
| | | var agvTaskState = new AgvTaskState() { |
| | | task_no = model.TaskID, |
| | | forklift_no = model.ForkliftNo, |
| | | state = 1 |
| | | }; |
| | | ReturnResults returnResults = new ReturnResults(); |
| | | returnResults.resultList = new List<ReturnResult>(); |
| | | |
| | | var temp1 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp1); |
| | | |
| | | agvTaskState.state = 3; |
| | | var temp3 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp3); |
| | | |
| | | agvTaskState.state = 4; |
| | | var temp4 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp4); |
| | | |
| | | return returnResults; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// AGV状态一键回报562 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [Route("AGVSeriesReportsPartB")] |
| | | public ReturnResults AGVSeriesReportsPartB(UpdateTaskState model) { |
| | | var agvTaskState = new AgvTaskState() { |
| | | task_no = model.TaskID, |
| | | forklift_no = model.ForkliftNo, |
| | | state = 4 |
| | | }; |
| | | ReturnResults returnResults = new ReturnResults(); |
| | | returnResults.resultList = new List<ReturnResult>(); |
| | | |
| | | agvTaskState.state = 5; |
| | | var temp5 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp5); |
| | | |
| | | agvTaskState.state = 6; |
| | | var temp6 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp6); |
| | | |
| | | agvTaskState.state = 2; |
| | | var temp2 = AgvService.OperateAgvTaskStatus(agvTaskState); |
| | | returnResults.resultList.Add(temp2); |
| | | |
| | | return returnResults; |
| | | [Route("AgvSeriesReports")] |
| | | public ReturnResults AgvSeriesReports(UpdateTaskState model) { |
| | | return DebugService.AgvSeriesReports(model); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [Route("BuildDB")] |
| | | public string BuildDB() |
| | | { |
| | | //bool res = false; |
| | | try |
| | | { |
| | | var db = DbHelper.GetDbClient(); |
| | | //db.CodeFirst.InitTables<WCSTask>(); //所有库都支持 |
| | | //db.CodeFirst.InitTables<Zone>(); |
| | | //db.CodeFirst.InitTables<Area>(); |
| | | //db.CodeFirst.InitTables<Location>(); |
| | | //db.CodeFirst.InitTables<LocCntrRel>(); |
| | | //db.CodeFirst.InitTables<Container>(); |
| | | //db.CodeFirst.InitTables<TN_CG_Detail>(); |
| | | //db.CodeFirst.InitTables<TN_WorkOrder>(); |
| | | //db.CodeFirst.InitTables<TN_CAR_IN>(); |
| | | //db.CodeFirst.InitTables<SYSHelper.OI_SYS_MAXID>(); |
| | | //db.CodeFirst.InitTables<TN_Task_Action>(); |
| | | //db.CodeFirst.InitTables<TN_Task>(); |
| | | //db.CodeFirst.InitTables<TN_Location>(); |
| | | //db.CodeFirst.InitTables<TN_Loc_Container>(); |
| | | |
| | | var locList = new List<TN_Location>(); |
| | | //foreach (var area in Settings.Areas.Skip(1).ToList()) { |
| | | // for (int i = 0; i < 8; i++) { |
| | | // for (int j = 0; j < 30; j++) { |
| | | // locList.Add(new TN_Location { S_SHELF_CODE = area, S_CODE = $"{area}-{i + 1}-{j + 1}", S_NAME = $"{area}货架 第{i + 1}层 第{j + 1}号货位", S_AGV_SITE = $"{area}-{i + 1}-{j + 1}", N_HEIGHT = i + 1 }); |
| | | // } |
| | | // } |
| | | //} |
| | | locList.Add(new TN_Location { S_AREA_CODE = "B111", S_CODE = "B111-1-1", S_NAME = "B111-1-1", S_AGV_SITE = "B111-1-1"}); |
| | | locList.Add(new TN_Location { S_AREA_CODE = "B111", S_CODE = "B111-4-1", S_NAME = "B111-4-1", S_AGV_SITE = "B111-4-1"}); |
| | | locList.Add(new TN_Location { S_AREA_CODE = "B112", S_CODE = "B112-1-1", S_NAME = "B112-1-1", S_AGV_SITE = "B112-1-1"}); |
| | | |
| | | //locList.Add(new TN_Location { S_AREA_CODE = Settings.Areas[0], S_SHELF_CODE = Settings.Areas[0], S_CODE = Settings.Areas[0] + "-1", S_NAME = "取放货区-1", S_AGV_SITE = "P0-1"}); |
| | | //locList.Add(new TN_Location { S_AREA_CODE = Settings.Areas[0], S_SHELF_CODE = Settings.Areas[0], S_CODE = Settings.Areas[0] + "-2", S_NAME = "取放货区-2", S_AGV_SITE = "P0-2"}); |
| | | if (db.Insertable<TN_Location>(locList).ExecuteCommand() <= 0) { |
| | | return "失败"; |
| | | } |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info($"发生了异常"); |
| | | return "初始化数据库错误" + ex.Message; |
| | | } |
| | | //return res ? "成功" : "失败"; |
| | | return "成功"; |
| | | [Route("CreateDatabase")] |
| | | public string CreateDatabase(CoverInfo model) { |
| | | return DebugService.CreateDatabase(model.IsCover); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 修改任务的重量,便于测试 |
| | | /// DEBUG:插入货位、容器、货品信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [Route("UpdateTaskWeight")] |
| | | |
| | | public string UpdateTaskWeight(UpdateTaskWeightInfo model) { |
| | | var db = DbHelper.GetDbClient(); |
| | | var task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.TaskID); |
| | | if (task == null) { |
| | | return "任务号不存在"; |
| | | } |
| | | task.F_WEIGHT = model.Weight; |
| | | |
| | | try { |
| | | using (var trans = db.Ado.UseTran()) { |
| | | if (db.Updateable<TN_Task>(task).ExecuteCommand() > 0) { |
| | | trans.CommitTran(); |
| | | return $"成功 | 修改任务{task.S_CODE}重量为{task.F_WEIGHT}"; |
| | | } |
| | | else { |
| | | trans.RollbackTran(); |
| | | return $"失败 | 修改任务{task.S_CODE}重量为{task.F_WEIGHT}"; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) { |
| | | return ex.Message; |
| | | } |
| | | [Route("InsertLocCntrCg")] |
| | | public string InsertLocCntrCg() { |
| | | return DebugService.InsertLocCntrCg(); |
| | | } |
| | | |
| | | [HttpPost] |
| | | public string AddCgCntrLocRel(CgInfo model) { |
| | | var db = DbHelper.GetDbClient(); |
| | | |
| | | try { |
| | | var loc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.LocId); |
| | | if (loc == null) { |
| | | var locList = new List<TN_Location>(); |
| | | locList.Add(new TN_Location { S_CODE = model.LocId, N_CURRENT_NUM = 1 }); |
| | | if (db.Insertable<TN_Location>(locList).ExecuteCommand() <= 0) { |
| | | return $"插入位置{model.LocId}失败"; |
| | | } |
| | | } |
| | | if (loc.N_CURRENT_NUM == 0) { |
| | | loc.N_CURRENT_NUM = 1; |
| | | if (db.Updateable<TN_Location>(loc).UpdateColumns(it => new { it.N_CURRENT_NUM, it.T_MODIFY }).ExecuteCommand() <= 0) { |
| | | return $"修改位置{model.LocId}失败"; |
| | | } |
| | | } |
| | | |
| | | var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.LocId && a.S_CNTR_CODE == model.CntId); |
| | | if (loc == null) { |
| | | var locList = new List<TN_Loc_Container>(); |
| | | locList.Add(new TN_Loc_Container { S_LOC_CODE = model.LocId, S_CNTR_CODE = model.CntId }); |
| | | if (db.Insertable<TN_Loc_Container>(locList).ExecuteCommand() <= 0) { |
| | | return $"插入位置托盘关系{model.LocId}-{model.CntId}失败"; |
| | | } |
| | | } |
| | | |
| | | var cgDetail = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == model.CntId && a.S_CG_ID == model.CgId); |
| | | if (cgDetail == null) { |
| | | var locList = new List<TN_CG_Detail>(); |
| | | locList.Add(new TN_CG_Detail { S_CNTR_CODE = model.CntId, S_CG_ID = model.CntId }); |
| | | if (db.Insertable<TN_CG_Detail>(locList).ExecuteCommand() <= 0) { |
| | | return $"插入托盘物料关系{model.CntId}-{model.CgId}失败"; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) { |
| | | return $"出错:{ex}"; |
| | | } |
| | | |
| | | return "success"; |
| | | [Route("SetTaskWeight")] |
| | | public string SetTaskWeight(SetTaskWeightInfo model) { |
| | | return DebugService.SetTaskWeight(model); |
| | | } |
| | | } |
| | | |
| | | public class CgInfo { |
| | | public string CgId { get; set; } |
| | | public string CntId { get; set; } |
| | | public string LocId { get; set; } |
| | | } |
| | | |
| | | public class UpdateTaskState |
| | | { |
| | | public string TaskID { set; get; } // 任务ID |
| | | public string ForkliftNo { set; get; } // AGV 小车号 |
| | | } |
| | | |
| | | public class UpdateTaskWeightInfo { |
| | | public string TaskID { set; get; } |
| | | public float Weight { set; get; } |
| | | } |
| | | |
| | | public class ReturnResults |
| | | { |
| | | public List<ReturnResult> resultList { set; get; } |
| | | } |
| | | } |