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 {
|
/// <summary>
|
/// 测试用:如果项目中要和设备对接,前期设备无法测试,用接口模拟
|
/// </summary>
|
[RoutePrefix("api")]
|
public class DebugController : ApiController
|
{
|
/// <summary>
|
/// 模拟 AGV 多次回报任务状态
|
/// </summary>
|
/// <param name="model">容器号</param>
|
/// <returns></returns>
|
[HttpPost]
|
[Route("AgvSeriesReports")]
|
public ReturnResults AgvSeriesReports(UpdateTaskState model)
|
{
|
return DebugService.AgvSeriesReports(model);
|
}
|
|
/// <summary>
|
/// 初始化数据库
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
[Route("CreateDatabase")]
|
public string CreateDatabase() {
|
return DebugService.CreateDatabase();
|
}
|
|
[HttpPost]
|
[Route("InsertLocation")]
|
public string InsertLocation(InsertLocationInfo model) {
|
try {
|
var db = DbHelper.GetDbClient();
|
|
var locList = new List<TN_Location>();
|
locList.Add(new TN_Location { S_AREA_CODE = model.AreaCode, S_CODE = model.Code});
|
|
if (db.Insertable<TN_Location>(locList).ExecuteCommand() <= 0) {
|
return "失败";
|
}
|
|
}
|
catch (Exception ex) {
|
LogHelper.Info($"发生了异常");
|
return "添加货位错误" + ex.Message;
|
}
|
//return res ? "成功" : "失败";
|
return "成功";
|
}
|
|
/// <summary>
|
/// DEBUG:插入货位、容器、货品信息
|
/// </summary>
|
/// <returns></returns>
|
[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<TN_Location>().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<TN_Location>(newLoc).ExecuteCommand() <= 0) {
|
tran.RollbackTran();
|
return $"插入位置{model.LocId}失败";
|
}
|
loc = db.Queryable<TN_Location>().First(a => a.S_CODE == 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) {
|
tran.RollbackTran();
|
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 (locCntrRel == 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) {
|
tran.RollbackTran();
|
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) {
|
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; }
|
}
|
}
|