Tjiny
7 天以前 6d40f7c8b19efc612f824ee7e778d5be9f8382f5
2025-07-11日提交
3个文件已添加
4个文件已修改
295 ■■■■■ 已修改文件
HH.WCS.Mobox3.RiDong/Program.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.RiDong/api/SynthesizeController.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.RiDong/apiMethod/EnterWareHouseService.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.RiDong/generalMethod/OnOffShelvesMethod.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.RiDong/generalMethod/PipeLineHelper.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.RiDong/models/OnOffShelves.cs 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.RiDong/models/OutboundException.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | 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 });
                        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.TASKFINISH == 2)
                {
                    // 目前暂定人工确定
                }
            }
            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; }
}