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