using System; using System.Collections.Generic; using System.Web.Http; using HH.WCS.Mobox3.DSZSH.Helpers; using HH.WCS.Mobox3.DSZSH.Models; using HH.WCS.Mobox3.DSZSH.Services; using static HH.WCS.Mobox3.DSZSH.Dtos.Request.AgvRequest; using static HH.WCS.Mobox3.DSZSH.Dtos.Request.DebugRequest; using static HH.WCS.Mobox3.DSZSH.Dtos.Response.AgvResponse; using static HH.WCS.Mobox3.DSZSH.Dtos.Response.DebugResponse; namespace HH.WCS.Mobox3.DSZSH.Controllers { /// /// 测试用:如果项目中要和设备对接,前期设备无法测试,用接口模拟 /// [RoutePrefix("api")] public class DebugController : ApiController { /// /// 模拟 AGV 多次回报任务状态 /// /// 容器号 /// [HttpPost] [Route("AgvSeriesReports")] public ReturnResults AgvSeriesReports(UpdateTaskState model) { return DebugService.AgvSeriesReports(model); } /// /// 初始化数据库 /// /// [HttpPost] [Route("BuildDB")] public string BuildDB() { try { var db = DbHelper.GetDbClient(); //db.CodeFirst.InitTables(); //所有库都支持 //db.CodeFirst.InitTables(); //db.CodeFirst.InitTables(); //db.CodeFirst.InitTables(); //db.CodeFirst.InitTables(); //db.CodeFirst.InitTables(); //db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); db.CodeFirst.InitTables(); } catch (Exception ex) { LogHelper.Info($"发生了异常"); return "初始化数据库错误" + ex.Message; } //return res ? "成功" : "失败"; return "成功"; } [HttpPost] [Route("InsertLocation")] public string InsertLocation(InsertLocationInfo model) { try { var db = DbHelper.GetDbClient(); var locList = new List(); locList.Add(new TN_Location { S_AREA_CODE = model.AreaCode, S_CODE = model.Code}); if (db.Insertable(locList).ExecuteCommand() <= 0) { return "失败"; } } catch (Exception ex) { LogHelper.Info($"发生了异常"); return "添加货位错误" + ex.Message; } //return res ? "成功" : "失败"; return "成功"; } /// /// DEBUG:插入货位、容器、货品信息 /// /// [HttpPost] [Route("InsertLocCntrCg")] public string InsertLocCntrCg() { return DebugService.InsertLocCntrCg(); } public string AddCgCntrLocRel(CgInfo model) { var db = DbHelper.GetDbClient(); try { using (var tran = db.Ado.UseTran()) { var loc = db.Queryable().First(a => a.S_CODE == model.LocId); if (loc == null) { var newLoc = new TN_Location { S_CODE = model.LocId, N_CURRENT_NUM = 1 }; if (db.Insertable(newLoc).ExecuteCommand() <= 0) { tran.RollbackTran(); return $"插入位置{model.LocId}失败"; } loc = db.Queryable().First(a => a.S_CODE == model.LocId); } if (loc.N_CURRENT_NUM == 0) { loc.N_CURRENT_NUM = 1; if (db.Updateable(loc).UpdateColumns( it => new { it.N_CURRENT_NUM, it.T_MODIFY }).ExecuteCommand() <= 0) { tran.RollbackTran(); return $"修改位置{model.LocId}失败"; } } var locCntrRel = db.Queryable().First(a => a.S_LOC_CODE == model.LocId && a.S_CNTR_CODE == model.CntId); if (locCntrRel == null) { var locList = new List(); locList.Add(new TN_Loc_Container { S_LOC_CODE = model.LocId, S_CNTR_CODE = model.CntId }); if (db.Insertable(locList).ExecuteCommand() <= 0) { tran.RollbackTran(); return $"插入位置托盘关系{model.LocId}-{model.CntId}失败"; } } var cgDetail = db.Queryable().First(a => a.S_CNTR_CODE == model.CntId && a.S_CG_ID == model.CgId); if (cgDetail == null) { var locList = new List(); locList.Add(new TN_CG_Detail { S_CNTR_CODE = model.CntId, S_CG_ID = model.CntId }); if (db.Insertable(locList).ExecuteCommand() <= 0) { tran.RollbackTran(); return $"插入托盘物料关系{model.CntId}-{model.CgId}失败"; } } tran.CommitTran(); } } catch (Exception ex) { return $"出错:{ex}"; } return "success"; } } public class CgInfo { public string CgId { get; set; } public string CntId { get; set; } public string LocId { get; set; } } public class InsertLocationInfo { public string Code { set; get; } public string AreaCode { set; get; } } public class UpdateTaskWeightInfo { public string TaskID { set; get; } public float Weight { set; get; } } }