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; }
}
}