using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using NongFuWebApi.Services;
namespace NongFuWebApi.Controllers
{
public class AMSModel
{
/* 注意点:
* 淳安项目工单表以及货位表和其他项目有些具体参数不同,使用此WEBAPI需要注意字段替换以及对应方法修改
* **/
public class BaseModel
{
[SugarColumn(IsPrimaryKey = true)]
public string S_ID { get; set; } = Guid.NewGuid().ToString("D");
public string S_CREATOR_ID { get; set; } = "sa";
public string S_CREATOR_NAME { get; set; } = "超级用户";
public DateTime T_CREATE { get; set; } = DateTime.Now;
public DateTime T_MODIFY { get; set; } = DateTime.Now;
}
///
/// 任务表
/// 测试环境1:146-TN_0026
/// 测试环境2:198-TN_0098
///
//[SugarTable("dbo.TN_0026")]
[ST("任务表")]
public class WMSTask : BaseModel
{
public string S_TASK_NO { get; set; }
public string S_START_LAREA { get; set; }
public string S_END_LAREA { get; set; }
public string S_START_LOC { get; set; }
public string S_END_LOC { get; set; }
public string S_TYPE { get; set; }
public string S_NOTE { get; set; }
public string S_SRC_SYS { get; set; }
public string S_SRC_NO { get; set; }
///
/// agv/人工/输送线
///
public string S_WORK_MODE { get; set; }
public DateTime? T_START_TIME { get; set; }
public DateTime? T_END_TIME { get; set; }
///
/// 任务状态
///
public string S_B_STATE { get; set; }
public int N_PRIORITY { get; set; }
///
/// 搬运的托盘号,多个用英文逗号分开
///
public string S_CNTRS { get; set; }
///
/// 起点层
///
public int N_START_LAYER { get; set; }
///
/// 终点层
///
public int N_END_LAYER { get; set; }
///
/// 搬运的托盘数量
///
public int N_CNTR_COUNT { get; set; }
public string S_EQ_NO { get; set; }
}
[ST("货位表")]
public class Location : BaseModel
{
public string S_LOC_CODE { get; set; }
public string S_AREA_CODE { get; set; }
///
/// 仓库名-不可用
///
public string S_WH_CODE { get; set; }
public int N_CAPACITY { get; set; }
public string S_AGV_SITE { get; set; }
///
/// 需要注意
///
//[SugarColumn(IsIgnore = true)]
public int N_AGV_CODE { get; set; }
public int N_CURRENT_NUM { get; set; }
public DateTime T_FULL_TIME { get; set; }
public int N_ROADWAY { get; set; }
public string N_ROW { get; set; }
public int N_COL { get; set; }
public int N_LAYER { get; set; }
///
/// 无/入库锁/出库锁/其它锁
///
public string S_LOCK_STATE { get; set; }
//public string S_DEEP { get; set; }
///
/// 淳安特殊字段--用于标记货位上放置的托盘类型 大板-小板
///
public string S_NOTE { get; set; }
[SugarColumn(IsIgnore = true)]
[Navigate(NavigateType.OneToOne, nameof(S_LOC_CODE))]
public LocCntrRel LocCntrRel { get; set; }
}
[ST("货位容器表")]
//[SugarTable("TN_0038")]
public class LocCntrRel : BaseModel
{
///
/// 注意,mapper方式不需要
///
[SugarColumn(IsPrimaryKey = true)]
public string S_LOC_CODE { get; set; }
public string S_CNTR_CODE { get; set; }
[SugarColumn(IsIgnore = true)]
[Navigate(NavigateType.OneToOne, nameof(S_CNTR_CODE))]
public CntrItemRel CntrItemRel { get; set; }
[SugarColumn(IsIgnore = true)]
[Navigate(NavigateType.OneToOne, nameof(S_CNTR_CODE))]
public Container Container { get; set; }
public int N_BIND_ORDER { get; set; }
}
[ST("容器物料表")]
//[SugarTable("TN_0030")]
public class CntrItemRel : BaseModel
{
[SugarColumn(IsPrimaryKey = true)]
public string S_CNTR_CODE { get; set; }
public string S_ITEM_CODE { get; set; }
public string S_ITEM_NAME { get; set; }
public string S_BATCH_NO { get; set; }
public string F_QTY { get; set; }
public string S_ITEM_STATE { get; set; } = "无";
public string workOrder { get; set; }
public string S_ITEM_MODEL { get; set; }
public string S_TRAY_TYPE { get; set; }
}
[ST("物料表")]
//[SugarTable("TN_0030")]
public class ItemInfo : BaseModel
{
[SugarColumn(IsPrimaryKey = true)]
public string S_ITEM_CODE { get; set; }
public string S_ITEM_NAME { get; set; }
public int S_ITEM_LAYER { get; set; }
public int S_ITEM_LAYER1 { get; set; }
public String S_ITEM_MODEL { get; set; }
public string S_ITEM_TYPE { get; set; }
public String S_TRAY_TYPE { get; set; }
public int N_MaxLayer { get; set; }
}
[ST("容器表")]
//[SugarTable("TN_0028")]
public class Container : BaseModel
{
///
/// 容器编码
///
public string S_CNTR_CODE { get; set; }
///
/// 铁托盘、塑料托盘
///
public string S_TYPE { get; set; }
///
/// 规格
///
public string S_SPEC { get; set; }
///
/// 容器用途
///
public string N_PURPOSE { get; set; }
///
/// 容器来源
///
public string S_SRC { get; set; }
///
/// 容器目的地
///
public string S_DEST { get; set; }
///
/// 容器状态(空-已清洁-无-转运-待生产)
///
public string S_CNTR_STATE { get; set; }
}
[ST("排锁表")]
public class RowLock : BaseModel
{
///
/// 库区编码
///
public string S_AREA_CODE { get; set; }
///
/// 排号
///
public string N_ROW { get; set; }
///
/// 锁定状态--默认:无
///
public string S_LOCK_STATE { get; set; }
///
/// 工作模式
///
public string S_WORK_MODE { get; set; }
///
/// 锁来源
///
public string S_LOCK_SRC { get; set; }
///
/// 锁定时间
///
public DateTime T_LOCK_TIME { get; set; }
///
/// 解锁时间
///
public DateTime T_UNLOCK_TIME { get; set; }
}
///
/// 二期梅坪成品工单表(输送线标准工单表)
///
[SugarTable("TN_Worksheet")]
public class ConveryWorkOrder : BaseModel
{
///
/// 工单号
///
public string S_WorkNo { get; set; }
///
/// 产线号
///
public string S_PLineNo { get; set; }
///
/// 工单类型
///
public string S_ORDER_TYPE { get; set; } = "";
public string S_State { get; set; } = "";
///
/// 工单状态
///
public string S_WorkState { get; set; }// S_WorkState S_State
///
/// 批次号
///
public string S_BatchNo { get; set; } = "";
///
/// 物料编码
///
public string S_ItemCode { get; set; }
///
/// 物料层数
///
public string S_ItemLayer { get; set; } = "";
///
/// 下线托盘类型
///
public string S_TrayType { get; set; } = "";
///
/// 托盘规格
///
public string S_TrayRules { get; set; } = "";
///
/// 起点库位
///
public string S_StartLoca { get; set; } = "";
///
/// 终点库位
///
public string S_EndLoca { get; set; } = "";
///
/// 移库数量
///
public int S_YiKuNum { get; set; }
public string InRow { get; set; } = "";
}
#region API实体模型
///
/// 工单信息接口
///
public class TASK_WorkInfoModel
{
public string WorkNo { get; set; }
public string DeviceName { get; set; }
public string ItemCode { get; set; }
///
/// 工单开始时间
///
public string WorkTime { get; set; }
///
/// 工单状态--1-新建 2-完成
///
public string WorkState { get; set; }
///
/// 实际物料编码
///
public string MaterialCode { get; set; } = "";
}
///
/// 托盘信息下发接口
///
public class SendTrayCodeModel
{
public List TrayInfo { get; set; }
}
public class TrayInfo
{
///
/// 产线号
///
public string deviceName { get; set; }
///
/// 工单号
///
public string workNo { get; set; }
///
/// 托盘码
///
public string trayCode { get; set; }
///
/// 托盘数量
///
public string trayNum { get; set; }
///
/// 富勒接收到托盘码的时间
///
public string dateTime { get; set; }
///
/// 批次号--同标准托规
///
public string batchNo { get; set; } = "";
///
/// 标准托规
/// --生产下线:因存在中途切换 生产物料 动作;因此将 批次号、物料层高以及托规 存在于物料信息接口
/// --不一定每次都有值,当首次托规与 trayNum 相同时,需更新至 Mobox 工单对应字段
/// --后续收到托规时,先判断当前物料托规 与 工单托规是否相同,不同即代表换物料了
///
public string trayRule { get; set; } = "";
///
/// 物料层高-6、7、8--同标准托规
///
public string itemLayer { get; set; } = "";
///
/// 托盘更新接口 默认-空字符串 有值-则进行更新(下线时间不进行更新)
///
public string sign { get; set; }
}
///
/// 人工分拣解绑托盘接口
///
public class UnbindingTrayCodeModel
{
public string[] TrayInfo { get; set; }
}
public class SimpleResultModel
{
public bool success { get; set; }
public int errCode { get; set; }
public string errMsg { get; set; }
}
#endregion
#region 淳安富勒中间表
///
/// 淳安特定工单表
/// 测试环境1:146-TN_0037
/// 测试环境2:198-TN_0004
///
//[SugarTable("dbo.TN_0037")]
[ST("工单表")]
public class ChunAnWorkOrder : BaseModel
{
///
/// 工单号
///
public string SQL_WorkNo { get; set; }//产线下线-工单号存放第三方工单号 移库任务-工单号自己生成
///
/// 产线号
///
public string SQL_PLineNo { get; set; }//产线下线需要 移库任务不需要
///
/// 即产即用
///
public string SQL_UsingNo { get; set; }//目前不使用,无即产即用需求
///
/// 工单类型
///
public string SQL_ORDER_TYPE { get; set; }//产线下线|无码入库(自动移库-突发性 管制移库)-人工移库-备货移库-管制移库-缠膜移库
///
/// 工单状态
///
public string SQL_State { get; set; }//新建(需审核)-审核中(需执行)-执行中(可设置 完成-暂停)-暂停(不再处理该工单数据)-已完成(根据实际情况处理)
///
/// 产线下线库位数量
///
public int SQL_PLineNum { get; set; }//仅限 产线下线工单需要配置-用于限制当前产线最多能够入库的库位数量(已满的库位可以释放)
///
/// 批次号
///
public string SQL_BatchNo { get; set; }//产线下线-需要 移库任务-不需要
///
/// 物料编码
///
public string SQL_ItemCode { get; set; }//产线下线-需要 移库任务-不需要
///
/// 物料名称
///
public string SQL_ItemName { get; set; }//产线下线-需要 移库任务-不需要
///
/// 物料层数-6,7,8
///
public string SQL_ItemLayer { get; set; }//产线下线-需要 移库任务-不需要
///
/// 托盘规则--用于判断是否是零头,指明当前每一托应该生产多少数量
///
public string SQL_TrayRules { get; set; }//产线下线-需要 移库任务-不需要
///
/// 托盘类型--用于产线下线时根据托盘选择对应的库区入库 值:大板-小板
///
public string SQL_TrayType { get; set; }//产线下线-需要 移库任务-不需要
///
/// 托盘类型--用于产线空托上线时使用 值:大板-小板
///
public string SQL_EmptyTrayType { get; set; }//产线下线-需要 移库任务-不需要
///
/// 优先级--目前仅用于产线下线推送任务时获取优先级
///
public string SQL_TaskPri { get; set; }//产线下线-需要 移库任务-不需要
///
/// 管制模式开关--仅限[产线下线]工单--
/// 1:开启管制,需要根据时间判断当前产线是否需要下线至新管制品区
/// 0:正常模式,默认值,不开启管制,正常下线
///
public string SQL_GZZY { get; set; } = "0";
///
/// 管制转移起始时间
///
public string SQL_GZZYSTime { get; set; }
///
/// 管制转移结束时间
///
public string SQL_GZZYETime { get; set; }
///
/// 起点库区--移库任务需要添加--自动移库除外--已作废
///
//public string SQL_StartArea { get; set; }
///
/// 起点库位--移库任务需要添加--自动移库除外--可多选(用,隔开)
///
public string SQL_StartLoca { get; set; }
///
/// 终点库区--移库任务需要添加--自动移库除外--已作废
///
//public string SQL_EndArea { get; set; }
///
/// 终点库位--移库任务需要添加--自动移库除外--可多选(用,隔开)
///
public string SQL_EndLoca { get; set; }
///
/// 缠膜机点位--缠膜移库必须选择
///
public string SQL_CMJBit { get; set; }
///
/// 移库数量--除自动转运外,所有移库都有移库数量,默认9999,代表整排移库
/// --此处指 起点移库的货位数量,取货完成,判断当前起点无托盘,工单数量减一
///
public int SQL_YiKuNum { get; set; } = 9999;
///
/// 当前工单执行时间
///
public string SQL_Modify { get; set; }
///
/// 当前工单结束时间
///
public string SQL_PLAN_END { get; set; }
///
/// 连接产线号
///
public string SQL_LinkLineNO { get; set; }//目前无使用需求
///
/// 是否栈板
///
public string SQL_PaperBox { get; set; }//目前无使用需求
///
/// 新-物料编码字段
///
public string MaterialCode { get; set; }
}
[ST("成品工单表")]
public class WorkOrder1 : BaseModel
{
///
/// 批次号
///
public string S_BatchNo { get; set; }
///
/// 产线号
///
public string S_PLineNo { get; set; }
///
/// 状态
///
public string S_WorkState { get; set; }//SQL_State
///
/// 工单号
///
public string S_WorkNo { get; set; }//SQL_WorkNo
///
/// 物料编码
///
public string S_ItemCode { get; set; }
public string SQL_ItemName { get; set; }
public string SQL_Area { get; set; }
public string S_TrayType { get; set; }
public int maxTask { get; set; }
public int trayHeight { get; set; }
public string S_ItemLayer { get; set; }
///
/// 是/否 有码和无码模式
///
public string withCode { get; set; }
public string SQL_Area1 { get; set; }
///
/// 工单执行时间
///
public string S_Modify { get; set; }
///
/// 工单结束时间
///
public string S_PLAN_END { get; set; }
public string S_ORDER_TYPE { get; set; }
}
//[SugarTable("dbo.ChunAnTrayInfo")]
[ST("淳安富勒托盘表")]
public class ChunAnTrayInfo : BaseModel
{
///
/// 产线号
///
public string deviceName { get; set; }
///
/// 工单号
///
public string workNo { get; set; }
///
/// 托盘码
///
public string trayCode { get; set; }
///
/// 托盘数量
///
public string trayNum { get; set; }
///
/// 富勒接收到托盘码的时间
///
public string dateTime { get; set; }
///
/// 批次号--同标准托规
///
public string batchNo { get; set; }
///
/// 标准托规
/// --生产下线:因存在中途切换 生产物料 动作;因此将 批次号、物料层高以及托规 存在于物料信息接口
/// --不一定每次都有值,当首次托规与 trayNum 相同时,需更新至 Mobox 工单对应字段
/// --后续收到托规时,先判断当前物料托规 与 工单托规是否相同,不同即代表换物料了
///
public string trayRule { get; set; }
///
/// 物料层高-6、7、8--同标准托规
///
public string itemLayer { get; set; }
}
[ST("富勒托盘表")]
public class ThirdPartTrayInfo : BaseModel
{
///
/// 产线号
///
public string deviceName { get; set; }
///
/// 工单号
///
public string workNo { get; set; }
///
/// 托盘码
///
public string trayCode { get; set; }
///
/// 托盘数量
///
public string trayNum { get; set; }
///
/// 富勒接收到托盘码的时间
///
public string dateTime { get; set; }
///
/// 批次号--同标准托规
///
public string batchNo { get; set; }
///
/// 标准托规
/// --生产下线:因存在中途切换 生产物料 动作;因此将 批次号、物料层高以及托规 存在于物料信息接口
/// --不一定每次都有值,当首次托规与 trayNum 相同时,需更新至 Mobox 工单对应字段
/// --后续收到托规时,先判断当前物料托规 与 工单托规是否相同,不同即代表换物料了
///
public string trayRule { get; set; }
///
/// 物料层高-6、7、8--同标准托规
///
public string itemLayer { get; set; }
}
[SugarTable("TN_Tray")]
public class ChunAnTrayInfoTwo : BaseModel
{
///
/// 产线号
///
public string deviceName { get; set; }
///
/// 工单号
///
public string workNo { get; set; }
///
/// 托盘码
///
public string trayCode { get; set; }
///
/// 托盘数量
///
public string trayNum { get; set; }
///
/// 富勒接收到托盘码的时间
///
public string dateTime { get; set; }
///
/// 批次号--同标准托规
///
public string batchNo { get; set; }
///
/// 标准托规
/// --生产下线:因存在中途切换 生产物料 动作;因此将 批次号、物料层高以及托规 存在于物料信息接口
/// --不一定每次都有值,当首次托规与 trayNum 相同时,需更新至 Mobox 工单对应字段
/// --后续收到托规时,先判断当前物料托规 与 工单托规是否相同,不同即代表换物料了
///
public string trayRule { get; set; }
///
/// 物料层高-6、7、8--同标准托规
///
public string itemLayer { get; set; }
}
[ST("淳安显示数据表")]
public class ChunAnScreenData : BaseModel
{
///
/// 产线号标示
///
public string DeviceNameNo { get; set; }
///
/// 数据类型标示----任务数据、托盘数据、下线数据
///
public string DataTypeNo { get; set; }
///
/// 任务号--任务数据
///
public string TaskNo { get; set; } = "";
///
/// 任务状态--任务数据
///
public string TaskState { get; set; } = "";
///
/// 托盘码----任务托盘有多个,用英文逗号隔开;托盘表托盘码只有一个--托盘数据
///
public string TrayCode { get; set; } = "";
///
/// 托盘打码时间--托盘数据
///
public string TrayCodeTime { get; set; } = "";
///
/// 光电触发时间----同步下线表数据--下线数据
///
public string DeviceTime { get; set; } = "";
///
/// 车号
///
public string AgvNo { get; set; } = "";
///
/// 起点
///
public string StartLoc { get; set; } = "";
///
/// 终点
///
public string EndLoc { get; set; } = "";
///
/// 起点层数
///
public string StartLayer { get; set; } = "";
///
/// 终点层数
///
public string EndLayer { get; set; } = "";
}
[ST("淳安下线库位表")]
public class ChunAnAnalysisMoveLib : BaseModel
{
///
/// 产线号
///
public string DeviceName { get; set; }
///
/// 排号
///
public string RowNo { get; set; }
public string AreaCode { get; set; }
///
/// 当前排空满状态 1-满 0-空(默认值)--暂不使用
///
//public string RowEFState { get; set; } = "0";
}
///
/// 数据缓存表
/// 淳安用作存储向富勒以及向设备发送信息的数据
///
[SugarTable("dbo.ChunAnCacheData")]
public class ChunAnCacheData : BaseModel
{
///
/// 数据标识
/// TcpData:调用 PlcHelper.SendHex(plc.address, "3F00300d0a");
/// HttpData:调用 TaskProcess.AreaRowLockState(Srow.N_ROW.Trim(), false);
///
public string DataSign { get; set; } = "";
///
/// 扩展字段1:
/// 状态为:TcpData 此字段为:产线IP
/// 状态为:HttpData此字段为:库位编码
///
public string Ext1 { get; set; } = "";
///
/// 扩展字段2:
/// 状态为:TcpData 此字段为:发送的TCP信息
/// 状态为:HttpData此字段为:锁定解锁状态 1-false 0-true
public string Ext2 { get; set; } = "";
///
/// 扩展字段3:未启用
///
public string Ext3 { get; set; } = "";
///
/// 扩展字段4:未启用
///
public string Ext4 { get; set; } = "";
///
/// 扩展字段5:未启用
///
public string Ext5 { get; set; } = "";
}
#endregion
}
}