HH.WCS.Mobox3.RiDong/Program.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HH.WCS.Mobox3.RiDong/api/SynthesizeController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HH.WCS.Mobox3.RiDong/apiMethod/EnterWareHouseService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HH.WCS.Mobox3.RiDong/generalMethod/OnOffShelvesMethod.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HH.WCS.Mobox3.RiDong/generalMethod/PipeLineHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HH.WCS.Mobox3.RiDong/models/OnOffShelves.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HH.WCS.Mobox3.RiDong/models/OutboundException.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
HH.WCS.Mobox3.RiDong/Program.cs
@@ -85,7 +85,6 @@ /// </summary> public class WorkThread { public void Start() { List<Task> tasks = new List<Task> @@ -109,8 +108,6 @@ }; Task.WaitAll(tasks.ToArray()); } public void Stop() { HH.WCS.Mobox3.RiDong/api/SynthesizeController.cs
@@ -114,8 +114,10 @@ /// 任务优先级 /// </summary> /// <returns></returns> [HttpPost] public ApiModel.SimpleResult TaskPriority(ApiModel.MoboxTaskBase model) { var result = new ApiModel.SimpleResult(); var operation = AdoSqlMethod<Operation>.QueryFirst(p => p.S_CODE == model.TaskNo); @@ -123,7 +125,7 @@ if (operation == null) { result.resultCode = -1; result.resultMsg = "任务不存在!"; result.resultMsg = $"作业不存在!,传递的任务号为{model.TaskNo}"; return result; } HH.WCS.Mobox3.RiDong/apiMethod/EnterWareHouseService.cs
@@ -155,10 +155,16 @@ } db.Updateable(cntrItemDetails).UpdateColumns(p => new { p.N_ALR_ENTR, p.T_INBOUND_TIME }).ExecuteCommand(); // 入库记录 OnOffShelvesMethod.CreateRKOnOffShelves(task); } // 出库 else if (task.N_TYPE == 2 || task.N_TYPE == 4 || task.N_TYPE == 6) { // 出库记录 OnOffShelvesMethod.CreateCKOnOffShelves(task); // 货位解锁 LocationHelper.UnBindingLoc(task.S_START_LOC, new List<string> { task.S_CNTR_CODE }); @@ -185,6 +191,9 @@ // 指引出库 else if (task.N_TYPE == 5) { // 出库记录 OnOffShelvesMethod.CreateCKOnOffShelves(task); // 货位解锁 LocationHelper.UnBindingLoc(task.S_START_LOC, new List<string> { task.S_CNTR_CODE }); HH.WCS.Mobox3.RiDong/generalMethod/OnOffShelvesMethod.cs
New file @@ -0,0 +1,95 @@ using System.Collections.Generic; using HH.WCS.Mobox3.RiDong.models; namespace HH.WCS.Mobox3.RiDong.generalMethod; /// <summary> /// 出入库记录表 /// </summary> public static class OnOffShelvesMethod { /// <summary> /// 创建出入库记录 /// </summary> /// <param name="task"></param> /// <returns></returns> public static bool CreateRKOnOffShelves(Task task) { var result = false; var cntritem = AdoSqlMethod<CntrItemDetail>.QueryList(p => p.S_CNTR_CODE == task.S_CNTR_CODE); if (cntritem.Count > 0) { var onOffShelvesList = new List<OnOffShelves>(); foreach (var item in cntritem) { var onOffShelves = new OnOffShelves(); onOffShelves.S_LOC_CODE = task.S_END_LOC; onOffShelves.S_CNTR_CODE = task.S_CNTR_CODE; onOffShelves.S_ITEM_CODE = item.S_ITEM_CODE.Trim(); onOffShelves.S_ITEM_NAME = item.S_ITEM_NAME; onOffShelves.S_MATERIAL_TYPE = item.S_EXT_ATTR1; onOffShelves.S_OP_TYPE = "上架"; onOffShelves.F_QTY = item.F_QTY; onOffShelvesList.Add(onOffShelves); } if (onOffShelvesList.Count > 0) { AdoSqlMethod<OnOffShelves>.AddList(onOffShelvesList); result = true; } } return result; } /// <summary> /// 创建出入库记录 /// </summary> /// <param name="task"></param> /// <returns></returns> public static bool CreateCKOnOffShelves(Task task) { var result = false; var cntritem = AdoSqlMethod<CntrItemDetail>.QueryList(p => p.S_CNTR_CODE == task.S_CNTR_CODE); if (cntritem.Count > 0) { var onOffShelvesList = new List<OnOffShelves>(); foreach (var item in cntritem) { if (item.F_ALLOC_QTY > 0) { var onOffShelves = new OnOffShelves(); onOffShelves.S_LOC_CODE = task.S_START_LOC; onOffShelves.S_CNTR_CODE = task.S_CNTR_CODE; onOffShelves.S_ITEM_CODE = item.S_ITEM_CODE.Trim(); onOffShelves.S_ITEM_NAME = item.S_ITEM_NAME; onOffShelves.S_MATERIAL_TYPE = item.S_EXT_ATTR1; onOffShelves.S_OP_TYPE = "下架"; onOffShelves.F_QTY = item.F_ALLOC_QTY; onOffShelvesList.Add(onOffShelves); } } if (onOffShelvesList.Count > 0) { AdoSqlMethod<OnOffShelves>.AddList(onOffShelvesList); result = true; } } return result; } } HH.WCS.Mobox3.RiDong/generalMethod/PipeLineHelper.cs
@@ -152,9 +152,10 @@ } else if (conveyorLinesInfo.PURPOSE == "出库口") { if (conveyorLinesInfo.TASKFINISH == 1) if (conveyorLinesInfo.TASKFINISH == 1 || conveyorLinesInfo.TASKFINISH == 2) { var task = AdoSqlMethod<Task>.QueryFirst(p => p.S_CNTR_CODE == conveyorLinesInfo.BARCODE && p.N_B_STATE == 1 && p.N_SCHEDULE_TYPE == 1); var task = AdoSqlMethod<Task>.QueryFirst(p => p.S_CNTR_CODE == conveyorLinesInfo.BARCODE && p.N_B_STATE == 1 && p.N_SCHEDULE_TYPE == 1); if (task != null) { @@ -199,11 +200,21 @@ } AdoSqlMethod<LEDDemo>.UpdateFirst(ledDemo, p => new { p.OUTBOUNDTYPE, p.DIRECTION, p.FREIGHTTYPE }); } } else if (conveyorLinesInfo.TASKFINISH == 2) if (conveyorLinesInfo.TASKFINISH == 2) { // 目前暂定人工确定 var outboundException = AdoSqlMethod<OutboundException>.QueryFirst(p => p.WMS_CNTR_CODE == conveyorLinesInfo.BARCODE); if (outboundException != null) { outboundException.S_CODE = task.S_OP_CODE; AdoSqlMethod<OutboundException>.UpdateFirst(outboundException, p => new { p.S_CODE }); } } } } } else if (conveyorLinesInfo.PURPOSE == "门禁") HH.WCS.Mobox3.RiDong/models/OnOffShelves.cs
New file @@ -0,0 +1,136 @@ using System; using SqlSugar; namespace HH.WCS.Mobox3.RiDong.models; /// <summary> /// 出入库中间记录表 /// </summary> [SugarTable("TN_OnOff_Shelves")] public class OnOffShelves : BaseModel { /// <summary> /// 动作类型 /// </summary> public int N_ACTION { get; set; } /// <summary> /// 动作类型 /// </summary> public string S_ACTION { get; set; } /// <summary> /// 货位编码 /// </summary> public string S_LOC_CODE { get; set; } /// <summary> /// 容器编码 /// </summary> public string S_CNTR_CODE { get; set; } /// <summary> /// 仓库编码 /// </summary> public string S_WH_CODE { get; set; } = "RDCK"; /// <summary> /// 库区编码 /// </summary> public string S_AREA_CODE { get; set; } = "LKQ"; /// <summary> /// 货品编码 /// </summary> public string S_ITEM_CODE { get; set; } /// <summary> /// 货品名称 /// </summary> public string S_ITEM_NAME { get; set; } /// <summary> /// 货品状态 /// </summary> public string S_ITEM_STATE { get; set; } /// <summary> /// 批次号 /// </summary> public string S_BATCH_NO { get; set; } /// <summary> /// 货品规格 /// </summary> public string S_ITEM_SPEC { get; set; } /// <summary> /// 产品序列号 /// </summary> public string S_SERIAL_NO { get; set; } /// <summary> /// 生产日期 /// </summary> public DateTime? D_PRD_DATE { get; set; } /// <summary> /// 过期日志 /// </summary> public DateTime? D_EXP_DATE { get; set; } /// <summary> /// 备注 /// </summary> public string S_NOTE { get; set; } /// <summary> /// 业务类型 /// </summary> public string S_OP_TYPE { get; set; } /// <summary> /// 来源类型 /// </summary> public string S_SOURCE_TYPE { get; set; } /// <summary> /// 来源单号 /// </summary> public string S_SOURCE_NO { get; set; } /// <summary> /// 数量 /// </summary> public float F_QTY { get; set; } /// <summary> /// 计量单位 /// </summary> public string S_UOM { get; set; } /// <summary> /// 产品类型 /// </summary> public string S_MATERIAL_TYPE { get; set; } /// <summary> /// 物料状态 /// </summary> public int N_ITEM_STATE { get; set; } /// <summary> /// 箱格号 /// </summary> public string S_CELL_NO { get; set; } /// <summary> /// 变化前数量 /// </summary> public float F_BEFORE_QTY { get; set; } /// <summary> /// 变化后数量 /// </summary> public float F_AETER_QTY { get; set; } } HH.WCS.Mobox3.RiDong/models/OutboundException.cs
New file @@ -0,0 +1,25 @@ using SqlSugar; namespace HH.WCS.Mobox3.RiDong.models; /// <summary> /// 出库异常表 /// </summary> [SugarTable("TN_Outbound_Exception")] public class OutboundException : BaseModel { /// <summary> /// 作业编码 /// </summary> public string S_CODE { get; set; } /// <summary> /// WMS跟踪条码 /// </summary> public string WMS_CNTR_CODE { get; set; } /// <summary> /// 实际条码 /// </summary> public string REAL_CNTR_CODE { get; set; } }