| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615 | 
							- using ServiceCenter.Extensions;
 
- using ServiceCenter.Logs;
 
- using ServiceCenter.Redis;
 
- using ServiceCenter.SqlSugars;
 
- using SqlSugar;
 
- using WCS.Core;
 
- using WCS.Entity;
 
- using TaskStatus = WCS.Entity.TaskStatus;
 
- namespace WCS.WorkEngineering.Extensions
 
- {
 
-     /// <summary>
 
-     /// 任务扩展
 
-     /// </summary>
 
-     public static class TaskExtension
 
-     {
 
-         /// <summary>
 
-         /// 更新任务执行记录
 
-         /// 同步更新历史任务
 
-         /// </summary>
 
-         /// <param name="task">任务信息</param>
 
-         /// <param name="db">数据库上下文</param>
 
-         /// <param name="curPoint">当前地址</param>
 
-         /// <param name="desc">描述</param>
 
-         public static void AddWCS_TASK_DTL(this WCS_TaskInfo task, SqlSugarScopeProvider db, string curPoint, string desc) => task.AddWCS_TASK_DTL(db, curPoint, "", desc);
 
-         /// <summary>
 
-         /// 更新任务执行记录
 
-         /// 同步更新历史任务
 
-         /// </summary>
 
-         /// <param name="task">任务信息</param>
 
-         /// <param name="db">数据库上下文</param>
 
-         /// <param name="curPoint">当前地址</param>
 
-         /// <param name="nextPoint">下一个地址</param>
 
-         /// <param name="desc">描述</param>
 
-         public static void AddWCS_TASK_DTL(this WCS_TaskInfo task, SqlSugarScopeProvider db, string curPoint, string nextPoint, string desc)
 
-         {
 
-             db.InsertableRowLock(new WCS_TaskDtl
 
-             {
 
-                 ID = Guid.NewGuid(),
 
-                 ParentTaskCode = task.ID,
 
-                 CurPoint = curPoint,
 
-                 NextPoint = nextPoint,
 
-                 Desc = desc,
 
-                 AddWho = "WCS"
 
-             }).SplitTable().ExecuteCommand();
 
-             task.UpdateableOldTask(db);
 
-         }
 
-         /// <summary>
 
-         /// 更新任务执行记录
 
-         /// 同步更新历史任务
 
-         /// </summary>
 
-         /// <param name="task">任务信息</param>
 
-         /// <param name="db">数据库上下文</param>
 
-         /// <param name="curPoint">当前地址</param>
 
-         /// <param name="desc">描述</param>
 
-         public static void AddWCS_TASK_DTL(this WCS_TaskOld task, SqlSugarScopeProvider db, string curPoint, string desc) => task.AddWCS_TASK_DTL(db, curPoint, "", desc);
 
-         /// <summary>
 
-         /// 更新任务执行记录
 
-         /// 同步更新历史任务
 
-         /// </summary>
 
-         /// <param name="task">任务信息</param>
 
-         /// <param name="db">数据库上下文</param>
 
-         /// <param name="curPoint">当前地址</param>
 
-         /// <param name="nextPoint">下一个地址</param>
 
-         /// <param name="desc">描述</param>
 
-         public static void AddWCS_TASK_DTL(this WCS_TaskOld task, SqlSugarScopeProvider db, string curPoint, string nextPoint, string desc)
 
-         {
 
-             db.Insertable(new WCS_TaskDtl
 
-             {
 
-                 ID = Guid.NewGuid(),
 
-                 ParentTaskCode = task.Id,
 
-                 CurPoint = curPoint,
 
-                 NextPoint = nextPoint,
 
-                 Desc = desc,
 
-                 AddWho = "WCS"
 
-             }).SplitTable().ExecuteCommand();
 
-         }
 
-         /// <summary>
 
-         ///  更新历史表数据
 
-         /// </summary>
 
-         /// <param name="taskInfo"></param>
 
-         /// <param name="db"></param>
 
-         public static void UpdateableOldTask(this WCS_TaskInfo taskInfo, SqlSugarScopeProvider db)
 
-         {
 
-             if (taskInfo.Status == TaskStatus.NewBuild) return;
 
-             // 同步任务信息
 
-             var taskOld = db.Queryable<WCS_TaskOld>().Where(v => v.Id == taskInfo.ID).SplitTable(tabs => tabs.Take(2)).ToList().OrderByDescending(v => v.AddTime).First();
 
-             if (taskOld is not null)
 
-             {
 
-                 if (taskInfo.Status >= TaskStatus.Finish) taskInfo.CompleteOrCancelTasks(db);
 
-                 else
 
-                 {
 
-                     taskOld = taskInfo.Mapper<WCS_TaskOld, WCS_TaskInfo>();
 
-                     taskOld.Id = taskInfo.ID;
 
-                     db.UpdateableRowLock(taskOld).Where(x => x.Id == taskOld.Id).SplitTable(tabs => tabs.Take(2)).ExecuteCommand();
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 throw new KnownException($"WCS_TaskOld表中不存在任务:{taskInfo.ID},无法执行WCS_TaskInfo与WCS_TaskOld同步动作", LogLevelEnum.Mid);
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 完成或取消任务
 
-         /// </summary>
 
-         /// <param name="taskInfo"></param>
 
-         /// <param name="db"></param>
 
-         public static void CompleteOrCancelTasks(this WCS_TaskInfo taskInfo, SqlSugarScopeProvider db)
 
-         {
 
-             if (taskInfo.Status is not Entity.TaskStatus.Finish and not Entity.TaskStatus.Cancel) throw new KnownException("任务未完成或取消,无法执行WCS_TaskInfo与WCS_TaskOld同步动作", LogLevelEnum.Mid);
 
-             // 任务完成或取消,进行相关同步动作
 
-             var taskOld = db.Queryable<WCS_TaskOld>().Where(v => v.Id == taskInfo.ID).SplitTable(tabs => tabs.Take(2)).ToList().OrderByDescending(v => v.AddTime).First();
 
-             if (taskOld is not null)
 
-             {
 
-                 taskOld = taskInfo.Mapper<WCS_TaskOld, WCS_TaskInfo>();
 
-                 taskOld.Id = taskInfo.ID;
 
-                 //更新任务历史表,删除任务当前表
 
-                 db.UpdateableRowLock(taskOld).Where(x => x.Id == taskOld.Id).SplitTable(tabs => tabs.Take(2)).ExecuteCommand();
 
-                 db.DeleteableRowLock(taskInfo).ExecuteCommand();
 
-             }
 
-             else
 
-             {
 
-                 throw new KnownException($"WCS_TaskOld表中不存在任务:{taskInfo.ID},无法执行WCS_TaskInfo与WCS_TaskOld同步动作", LogLevelEnum.Mid);
 
-             }
 
-         }
 
-         /// <summary>
 
-         ///  更新表数据
 
-         /// </summary>
 
-         /// <param name="taskInfo"></param>
 
-         /// <param name="db"></param>
 
-         public static void Updateable(this WCS_TaskInfo taskInfo, SqlSugarScopeProvider db)
 
-         {
 
-         }
 
-         ///// <summary>
 
-         /////  获取出库任务
 
-         ///// </summary>
 
-         ///// <param name="taskInfo">任务</param>
 
-         ///// <param name="db">db</param>
 
-         ///// <param name="allOutCode">可用出库站台</param>
 
-         ///// <param name="floor">楼层</param>
 
-         ///// <param name="obj">堆垛机</param>
 
-         ///// <param name="index">递归次数</param>
 
-         ///// <returns></returns>
 
-         ///// <exception cref="KnownException"></exception>
 
-         //public static WCS_TaskInfo GetOutTask(this WCS_TaskInfo taskInfo, SqlSugarHelper db, List<string> allOutCode, int floor, SRM obj, int index = 1)
 
-         //{
 
-         //    return task;
 
-         //}
 
-         /// <summary>
 
-         /// 获取AGV任务ID
 
-         /// </summary>
 
-         /// <param name="db">db</param>
 
-         /// <returns></returns>
 
-         public static int GetAgvTaskId(this SqlSugarHelper db)
 
-         {
 
-             //最多任务号不再连续
 
-             var id = db.Default.Queryable<WCS_AgvTaskInfo>().NoLock().SplitTable(v => v.Take(2)).Max(v => v.ID);
 
-             return id + 1;
 
-         }
 
-         /// <summary>
 
-         /// 更新任务执行记录
 
-         /// </summary>
 
-         /// <param name="task">任务信息</param>
 
-         public static void UpdateRedisHash(this WCS_TaskInfo task)
 
-         {
 
-             var key = $"Hash:{task.ID}";
 
-             if (task.Status >= TaskStatus.Finish)
 
-             {
 
-                 RedisHub.WMS.Del(key);
 
-             }
 
-             else
 
-             {
 
-                 RedisHub.WMS.HMSet(key, task.ToDic());
 
-             }
 
-         }
 
-         #region 工字轮支线分流
 
-         /// <summary>
 
-         ///  初始化码垛信息
 
-         /// </summary>
 
-         /// <param name="task"></param>
 
-         public static void InitStackStructure(this WCS_TaskInfo task, SqlSugarScopeProvider db, World world)
 
-         {
 
-             var billBomsetgrp = db.Queryable<BillBomsetgrp>().Single(x => x.IsStop == 0 && x.BomCode.Contains(task.MatCode));
 
-             if (billBomsetgrp == null)
 
-             {
 
-                 world.Log($"物料规格[{task.MatCode}]无可用码垛垛形");
 
-                 return;
 
-             };
 
-             var billBomsetinfos = db.Queryable<BillBomsetinfo>().Where(x => x.BomSetHdrId == billBomsetgrp.Id).ToList();
 
-             //开始构造垛形信息
 
-             var palletizing = new WCS_Palletizing()
 
-             {
 
-                 Code = billBomsetgrp.Code,
 
-                 ShortCode = billBomsetgrp.ShortCode,
 
-                 ProMaterCode = billBomsetgrp.ProMaterCode,
 
-                 TpTypeCode = billBomsetgrp.TpTypeCode,
 
-                 LayerCountQty = 2,
 
-                 StampType = billBomsetgrp.StampType,
 
-                 Finish = false,
 
-                 AddTime = DateTime.Now,
 
-                 TaskId = task.ID,
 
-                 WarehouseCode = task.WarehouseCode,
 
-                 DeviceCode = task.Device
 
-             };
 
-             palletizing = db.InsertableRowLock(palletizing).ExecuteReturnEntity();
 
-             foreach (var item in billBomsetinfos.Where(x => x.IsEmpty == 0).GroupBy(x => x.Row).OrderBy(x => x.Key))
 
-             {
 
-                 var layerNo = item.Key <= 6 ? 1 : 2;
 
-                 //获取层信息
 
-                 var palletizingLayer = db.Queryable<WCS_PalletizingLayer>().Single(x => x.PalletizingId == palletizing.Id && x.LayerNo == layerNo);
 
-                 if (palletizingLayer == null)
 
-                 {
 
-                     palletizingLayer = new WCS_PalletizingLayer()
 
-                     {
 
-                         LayerNo = layerNo,
 
-                         PalletizingId = palletizing.Id,
 
-                         WarehouseCode = palletizing.WarehouseCode,
 
-                     };
 
-                     palletizingLayer = db.InsertableRowLock(palletizingLayer).ExecuteReturnEntity();
 
-                 }
 
-                 //获取行信息
 
-                 var palletizingRow = db.Queryable<WCS_PalletizingRow>().Single(x => x.PalletizingLayerId == palletizingLayer.Id && x.RowNo == item.Key);
 
-                 if (palletizingRow == null)
 
-                 {
 
-                     palletizingRow = new WCS_PalletizingRow()
 
-                     {
 
-                         RowNo = item.Key,
 
-                         PalletizingLayerId = palletizingLayer.Id,
 
-                         PalletizingId = palletizing.Id,
 
-                         WarehouseCode = palletizingLayer.WarehouseCode
 
-                     };
 
-                     palletizingRow = db.InsertableRowLock(palletizingRow).ExecuteReturnEntity();
 
-                 }
 
-                 //重新查询最新的数据
 
-                 var layer = palletizingLayer;
 
-                 palletizingLayer = db.Queryable<WCS_PalletizingLayer>().Single(x => x.Id == layer.Id);
 
-                 var row = palletizingRow;
 
-                 palletizingRow = db.Queryable<WCS_PalletizingRow>().Single(x => x.Id == row.Id);
 
-                 //构造位信息
 
-                 foreach (var loc in item)
 
-                 {
 
-                     var palletizingLoc = db.Queryable<WCS_PalletizingLoc>().Single(x => x.PalletizingRowId == palletizingRow.Id && x.XYNo == loc.XYNo);
 
-                     if (palletizingLoc == null)
 
-                     {
 
-                         palletizingLoc = new WCS_PalletizingLoc()
 
-                         {
 
-                             IsEmpty = loc.IsEmpty != 0,
 
-                             XYNo = loc.XYNo,
 
-                             MatCode = loc.MatCode,
 
-                             SideNum = loc.SideNum,
 
-                             SpoolType = loc.SpoolType,
 
-                             TaskId = task.ID,
 
-                             PalletizingRowId = palletizingRow.Id,
 
-                             Finish = false,
 
-                             WarehouseCode = palletizingRow.WarehouseCode
 
-                         };
 
-                         db.InsertableRowLock(palletizingLoc).ExecuteReturnEntity();
 
-                     }
 
-                     //同步是否混合料行
 
-                     palletizingRow.IsMixRow = loc.IsMixRow != 0;
 
-                     db.UpdateableRowLock(palletizingRow).ExecuteCommand();
 
-                 }
 
-                 //更新行信息
 
-                 palletizingRow = db.Queryable<WCS_PalletizingRow>().Includes(x => x.Locs).Single(x => x.Id == row.Id);
 
-                 palletizingRow.QtyMaxCount = palletizingRow.Locs.Count(x => !x.IsEmpty);
 
-                 palletizingRow.IsEmpty = palletizingRow.QtyMaxCount <= 0;
 
-                 palletizingRow.MatCodeList = palletizingRow.Locs.Select(x => x.MatCode).ToList().GetMatList();
 
-                 db.UpdateableRowLock(palletizingRow).ExecuteCommand();
 
-                 //更新层信息
 
-                 palletizingLayer = db.Queryable<WCS_PalletizingLayer>().Includes(x => x.Rows, l => l.Locs).Single(x => x.Id == layer.Id);
 
-                 var count = palletizingLayer.Rows.Count(x => !x.IsEmpty); //计算所有不空数量
 
-                 palletizingLayer.IsEmpty = count <= 0;
 
-                 palletizingLayer.RowCountQty = palletizingLayer.Rows.Count;
 
-                 palletizingLayer.Finish = false;
 
-                 palletizingLayer.MatCodeList = palletizingLayer.Rows.SelectMany(x => x.Locs).Select(x => x.MatCode).ToList().GetMatList();
 
-                 db.UpdateableRowLock(palletizingLayer).ExecuteCommand();
 
-             }
 
-             var palletizing1 = palletizing;
 
-             palletizing = db.Queryable<WCS_Palletizing>().Includes(x => x.Layers, r => r.Rows, l => l.Locs).Single(x => x.Id == palletizing1.Id);
 
-             //计算垛形信息
 
-             var goods = palletizing.Layers.Select(x => x.Rows).SelectMany(x => x).Select(x => x.Locs).SelectMany(x => x).ToList();
 
-             palletizing.CountQty = goods.Count(x => !x.IsEmpty);
 
-             palletizing.MatCodeList = palletizing.Layers.SelectMany(x => x.Rows).SelectMany(x => x.Locs).Select(x => x.MatCode).ToList().GetMatList();
 
-             db.UpdateableRowLock(palletizing).ExecuteCommand();
 
-         }
 
-         public static string GetMatList(this List<string> matList)
 
-         {
 
-             return matList.Distinct().Aggregate("", (current, mat) => current + $"[{mat}]");
 
-         }
 
-         /// <summary>
 
-         ///  去除转义字符
 
-         /// </summary>
 
-         /// <param name="value"></param>
 
-         /// <returns></returns>
 
-         public static string RemoveEscapeCharacters(this string? value)
 
-         {
 
-             return value.Trim('\0', '\a', '\b', '\f', '\n', '\r', '\t', '\v').Trim();
 
-         }
 
-         #endregion 工字轮支线分流
 
-     }
 
-     /// <summary>
 
-     ///  垛形位信息
 
-     /// </summary>
 
-     public class StackPosInfo
 
-     {
 
-         /// <summary>
 
-         ///  任务号
 
-         /// </summary>
 
-         public int TaskNumber { get; set; }
 
-         /// <summary>
 
-         /// 是否空置
 
-         /// </summary>
 
-         public bool IsEmpty { get; set; }
 
-         /// <summary>
 
-         /// 坐标号
 
-         /// </summary>
 
-         public string XYNo { get; set; }
 
-         /// <summary>
 
-         /// 物料编码
 
-         /// </summary>
 
-         public string MatCode { get; set; }
 
-         /// <summary>
 
-         /// 正反面
 
-         /// </summary>
 
-         public int SideNum { get; set; }
 
-         /// <summary>
 
-         /// 工字轮类型
 
-         /// </summary>
 
-         public string SpoolType { get; set; }
 
-         /// <summary>
 
-         ///  是否结束
 
-         /// </summary>
 
-         public bool Finish { get; set; }
 
-     }
 
-     /// <summary>
 
-     /// 垛型明细表
 
-     /// </summary>
 
-     [SugarTable("Bill_BomSetInfo", tableDescription: "垛型明细表")]
 
-     public partial class BillBomsetinfo
 
-     {
 
-         /// <summary>
 
-         ///  ID
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, ColumnDescription = "ID")]
 
-         public virtual long Id { get; set; }
 
-         /// <summary>
 
-         ///  备注
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "Memo", Length = 500, IsNullable = true, ColumnDataType = "nvarchar", DefaultValue = "", ColumnDescription = "备注")]
 
-         public virtual string Memo { get; set; }
 
-         /// <summary>
 
-         ///  创建用户
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "AddWho", Length = 50, ColumnDataType = "nvarchar", DefaultValue = "", IsNullable = false, ColumnDescription = "创建用户")]
 
-         public virtual string AddWho { get; set; } = "";
 
-         /// <summary>
 
-         ///  更新用户
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "EditWho", Length = 50, ColumnDataType = "nvarchar", DefaultValue = "", IsNullable = false, ColumnDescription = "更新用户")]
 
-         public virtual string EditWho { get; set; } = "";
 
-         /// <summary>
 
-         ///  创建时间
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "AddTime", DefaultValue = "1900-1-1", IsNullable = false, ColumnDescription = "创建时间")]
 
-         public virtual DateTime AddTime { get; set; } = DateTime.Now;
 
-         /// <summary>
 
-         /// 更新时间
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "EditTime", DefaultValue = "1900-1-1", IsNullable = false, ColumnDescription = "更新时间")]
 
-         public virtual DateTime EditTime { get; set; } = DateTime.Now;
 
-         /// <summary>
 
-         /// 垛型id
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "bigint", IsNullable = false, ColumnDescription = "垛型id")]
 
-         public long BomSetHdrId { get; set; }
 
-         /// <summary>
 
-         /// 是否停用
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = false, ColumnDescription = "是否停用")]
 
-         public int IsStop { get; set; }
 
-         /// <summary>
 
-         /// 是否空置
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = false, ColumnDescription = "是否空置")]
 
-         public int IsEmpty { get; set; }
 
-         /// <summary>
 
-         /// 坐标号
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false, ColumnDescription = "坐标号")]
 
-         public string XYNo { get; set; }
 
-         /// <summary>
 
-         /// 物料id
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "bigint", ColumnDescription = "物料id")]
 
-         public long MatId { get; set; }
 
-         /// <summary>
 
-         /// 物料编码
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", IsNullable = true, Length = 50, ColumnDescription = "物料编码")]
 
-         public string MatCode { get; set; }
 
-         /// <summary>
 
-         /// 正反面
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = true, ColumnDescription = "正反面")]
 
-         public int SideNum { get; set; }
 
-         /// <summary>
 
-         /// 工字轮类型
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true, ColumnDescription = "工字轮类型")]
 
-         public string SpoolType { get; set; }
 
-         /// <summary>
 
-         /// 钢丝类型
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true, ColumnDescription = "钢丝类型")]
 
-         public string SilkType { get; set; }
 
-         /// <summary>
 
-         /// 钢丝直径
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "decimal", Length = 18, IsNullable = true, ColumnDescription = "钢丝直径")]
 
-         public decimal SilkDiam { get; set; }
 
-         /// <summary>
 
-         /// 钢丝直径上限
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "decimal", Length = 18, IsNullable = true, ColumnDescription = "钢丝直径上限")]
 
-         public decimal SilkDiamMaxCount { get; set; }
 
-         /// <summary>
 
-         /// 数量上限
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = true, ColumnDescription = "数量上限")]
 
-         public int QtyMaxCount { get; set; }
 
-         /// <summary>
 
-         /// 是否芯股
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = false, ColumnDescription = "是否芯股")]
 
-         public int IsCore { get; set; }
 
-         /// <summary>
 
-         /// 09垛型里面的行(1-12)
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = true, ColumnDescription = "09垛型里面的行(1-12)")]
 
-         public int Row { get; set; }
 
-         /// <summary>
 
-         /// 是否混合料行(09垛型使用,1是0否)
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = false, ColumnDescription = "是否混合料行(09垛型使用,1是0否)")]
 
-         public int IsMixRow { get; set; }
 
-         /// <summary>
 
-         /// 混合料行编码
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", IsNullable = true, Length = 50, ColumnDescription = "混合料行编码")]
 
-         public string MixRowCode { get; set; }
 
-         /// <summary>
 
-         ///  第一种第二种第三种
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = false, ColumnDescription = "第一种第二种第三种")]
 
-         public int CategoryId { get; set; }
 
-     }
 
-     /// <summary>
 
-     ///  垛形主表
 
-     /// </summary>
 
-     [Tenant("fj")]
 
-     [SugarTable("Bill_BomSetGrp", tableDescription: "垛形主表")]
 
-     public partial class BillBomsetgrp
 
-     {
 
-         /// <summary>
 
-         ///  ID
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, ColumnDescription = "ID")]
 
-         public virtual long Id { get; set; }
 
-         /// <summary>
 
-         ///  备注
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "Memo", Length = 500, IsNullable = true, ColumnDataType = "nvarchar", DefaultValue = "", ColumnDescription = "备注")]
 
-         public virtual string Memo { get; set; }
 
-         /// <summary>
 
-         ///  创建用户
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "AddWho", Length = 50, ColumnDataType = "nvarchar", DefaultValue = "", IsNullable = false, ColumnDescription = "创建用户")]
 
-         public virtual string AddWho { get; set; } = "";
 
-         /// <summary>
 
-         ///  更新用户
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "EditWho", Length = 50, ColumnDataType = "nvarchar", DefaultValue = "", IsNullable = false, ColumnDescription = "更新用户")]
 
-         public virtual string EditWho { get; set; } = "";
 
-         /// <summary>
 
-         ///  创建时间
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "AddTime", DefaultValue = "1900-1-1", IsNullable = false, ColumnDescription = "创建时间")]
 
-         public virtual DateTime AddTime { get; set; } = DateTime.Now;
 
-         /// <summary>
 
-         /// 更新时间
 
-         /// </summary>
 
-         [SugarColumn(ColumnName = "EditTime", DefaultValue = "1900-1-1", IsNullable = false, ColumnDescription = "更新时间")]
 
-         public virtual DateTime EditTime { get; set; } = DateTime.Now;
 
-         /// <summary>
 
-         /// 是否停用
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = false, ColumnDescription = "是否停用")]
 
-         public int IsStop { get; set; }
 
-         /// <summary>
 
-         /// 垛型编码
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false, ColumnDescription = "垛型编码")]
 
-         public string Code { get; set; }
 
-         /// <summary>
 
-         ///  短垛型编码
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "smallint", IsNullable = false, ColumnDescription = "短垛型编码")]
 
-         public short ShortCode { get; set; }
 
-         /// <summary>
 
-         /// 垛型名称
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = false, ColumnDescription = "垛型名称")]
 
-         public string Name { get; set; }
 
-         /// <summary>
 
-         /// BomCode(投料信息)
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = false, ColumnDescription = "BomCode(投料信息)")]
 
-         public string BomCode { get; set; }
 
-         /// <summary>
 
-         /// 帘线物料编码
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false, ColumnDescription = "帘线物料编码")]
 
-         public string ProMaterCode { get; set; }
 
-         /// <summary>
 
-         /// 工字轮个数
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = false, ColumnDescription = "工字轮个数")]
 
-         public int HWCountQty { get; set; }
 
-         /// <summary>
 
-         /// 托盘类型
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false, ColumnDescription = "托盘类型")]
 
-         public string TpTypeCode { get; set; }
 
-         /// <summary>
 
-         /// 层数
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = false, ColumnDescription = "层数")]
 
-         public int LayerCountQty { get; set; }
 
-         /// <summary>
 
-         /// 垛型大类
 
-         /// </summary>
 
-         [SugarColumn(ColumnDataType = "int", IsNullable = true, ColumnDescription = "垛型大类")]
 
-         public int StampType { get; set; }
 
-     }
 
- }
 
 
  |