hudong
2025-06-23 df0736e720152dcefdb13d8ead30311709cf0123
增加货位绑定表 审核逻辑表
2个文件已添加
5个文件已修改
170 ■■■■ 已修改文件
HH.WCS.Mobox3.pinggao.csproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Program.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/WmsSpaHelper.cs 112 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/TN_Container_Code.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/TN_InBounder_Sh.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wms/LocationHelper.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wms/WCSHelper.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.pinggao.csproj
@@ -197,8 +197,10 @@
    <Compile Include="models\SapReturn.cs" />
    <Compile Include="models\SapRoot.cs" />
    <Compile Include="models\TN_CD.cs" />
    <Compile Include="models\TN_Container_Code.cs" />
    <Compile Include="models\TN_DPRECORD.cs" />
    <Compile Include="models\TN_GENERATE_ORDER.cs" />
    <Compile Include="models\TN_InBounder_Sh.cs" />
    <Compile Include="models\TN_Location_Ext.cs" />
    <Compile Include="models\TN_Ll_detail.cs" />
    <Compile Include="models\TN_Ll_Order.cs" />
Program.cs
@@ -118,6 +118,7 @@
                tasks.Add(GetTask(WCSCore.Dispatch));
                //定时重置
                tasks.Add(GetTask(WCSCore.DSCZ));
                //充电
                tasks.Add(GetTask(WCSCore.Dispatch1));
                //添加自定义线程
api/WmsSpaHelper.cs
@@ -1009,7 +1009,7 @@
                {
                    var result = new SimpleResult();
                    //判断冲销凭证编号 是否为空 如果为空 则为冲销(审核前才能冲销,非待执行状态提示执行中不可冲销) 不为空 则为外采入库
                    if ((itemwlpz.HEAD.YDLX == "351" || itemwlpz.HEAD.YDLX == "Z89") && itemwlpz.ITEM[0].FHGC == "3040")
                    if (itemwlpz.ITEM[0].JDBS=="H" && itemwlpz.ITEM[0].GC == "3040")
                    {
                        var po = db.Queryable<TN_Ll_Order>().Includes(a => a.Details).Where(s => s.S_NO == itemwlpz.HEAD.WLPZH).First();
                        //创建出库单主子表
@@ -1245,7 +1245,7 @@
                        }
                        #endregion
                    }
                    else if ((itemwlpz.HEAD.YDLX == "351" || itemwlpz.HEAD.YDLX == "Z89") && itemwlpz.ITEM[0].GC == "3040")
                    else if (itemwlpz.ITEM[0].JDBS == "S" && itemwlpz.ITEM[0].GC == "3040")
                    {
                        //创建入库单主子表
                        var po = WMSHelper.GetInboundOrder(itemwlpz.HEAD.WLPZH);
@@ -1733,6 +1733,8 @@
        /// <returns></returns>
        internal static SimpleResult InboundOrderSorting(MPSorting model)
        {
            var result = new SimpleResult();
            foreach (var a in model.MaterList)
            {
@@ -1747,6 +1749,21 @@
            // var db = new SqlHelper<object>().GetInstance();
            using (var db = new SqlHelper<object>().GetInstance())
            {
                Location endloc = new Location();
                var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == model.start).First();
                if (hwbd!=null)
                {
                    endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE).First();
                }
                else
                {
                    result.resultCode = 3;
                    result.resultMsg = $"托盘找不到货位";
                    return result;
                }
                var locinfo = db.Queryable<Location>().Where(a => a.S_CODE == model.start).First();
                if (locinfo?.N_LOCK_STATE != 0)
@@ -1819,7 +1836,9 @@
                    S_START_LOC = model.start,
                    S_START_AREA = locinfo.S_AREA_CODE,
                    S_START_WH = locinfo.S_WH_CODE,
                    S_END_LOC = model.start,
                    S_END_LOC = endloc.S_CODE,
                    S_END_AREA = endloc.S_AREA_CODE,
                    S_END_WH = endloc.S_WH_CODE,
                    S_BS_NO = model.MaterList[0].arrival_no,
                    N_TYPE = 1,
                    S_TYPE = WMSTask.GetTypeStr(1),
@@ -2346,6 +2365,19 @@
                            result.resultMsg += $"任务{locs.S_CODE}来源号{locs.S_BS_NO}找不到配盘信息";
                            return result;
                        }
                        Location endloc = new Location();
                        var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == cntr_code).First();
                        if (hwbd != null)
                        {
                            endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE).First();
                        }
                        else
                        {
                            result.resultCode = 3;
                            result.resultMsg = $"托盘找不到货位";
                            return result;
                        }
                        //var location = db.Queryable<Location>().Where(a => a.S_CODE == locs.S_LOC_CODE).First();
                        var wmsTask = new WMSTask
                        {
@@ -4324,7 +4356,7 @@
                    List<TN_Inbound_Detail> tN_Inbound_Details = new List<TN_Inbound_Detail>();
                    po.Details = po.Details.Where(d => model.Wlist.Any(w =>
                                w.S_ITEM_CODE == d.S_ITEM_CODE &&
                                w.N_ROW_NO == d.N_ROW_NO))
                                w.N_ROW_NO == d.N_ROW_NO)).OrderBy(s => s.N_ROW_NO)
                            .ToList();
                    if (po.S_IN_TYPE == "内采入库")
                    {
@@ -4364,6 +4396,13 @@
                            tN_Inbound_Details.Add(item);
                        }
                        string combinedIds= string.Join(",", po.Details.Select(x => x.N_ROW_NO));
                        var KEY = WCSHelper.Generate13DigitIds();
                        var s_key=   db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO&&a.N_ROW_NO == combinedIds).First();
                        if (s_key!=null)
                        {
                            KEY = s_key.S_KEY;
                        }
                        NcRkDto.Root roots = new NcRkDto.Root
                        {
                            ROOT = new NcRkDto.ROOT
@@ -4373,9 +4412,9 @@
                                    HEAD = new NcRkDto.HEAD
                                    {
                                        KEY = po.S_NO,
                                        KEY = KEY,
                                        GZRQ = DateTime.Now.ToString("yyyyMMdd"),
                                        GZRY = model.GZRY,
                                        GZRY = model.GZRY,//GenerateTaskNo
                                        WLPZBH = po.S_NO,
                                        WLPZND = po.S_WLPZND
                                    },
@@ -4390,8 +4429,7 @@
                        var json = JsonConvert.SerializeObject(roots.ROOT);
                        string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
                        // 现在 root 对象包含了您定义的假数据
                        // 发送POST请求
                        LogHelper.Info($"内采收货xml数据{xml}");
                        #region MyRegion
@@ -4449,15 +4487,9 @@
                        //添加凭证记录表
                        result.resultMsg = data.ROOT.ITEM.MSGDESP;
                        result.resultCode = data.ROOT.ITEM.MSGCODE;
                        //MaterialVoucher materialVoucher = new MaterialVoucher();
                        if (data.ROOT.ITEM.MSGCODE == 0)
                        {
                            //materialVoucher.S_NO = model.S_NO;
                            //materialVoucher.S_TYPE = po.S_IN_TYPE;
                            //materialVoucher.S_WLPZBH = data.ROOT.ITEM.WLPZH;
                            //materialVoucher.S_WLPZND = data.ROOT.ITEM.WLPZND;
                            //materialVoucher.STATUS = 0;
                            //db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                            List<MaterialVoucher> materials = new List<MaterialVoucher>();
                            foreach (var item in model.Wlist)
                            {
@@ -4478,6 +4510,16 @@
                                db.Insertable<MaterialVoucher>(materials).ExecuteCommand();
                            }
                        }
                        else
                        {
                            TN_InBounder_Sh tN_InBounder_Sh = new TN_InBounder_Sh();
                            tN_InBounder_Sh.S_KEY = KEY;
                            tN_InBounder_Sh.N_ROW_NO = combinedIds;
                            tN_InBounder_Sh.S_NO = po.S_NO;
                            db.Insertable<TN_InBounder_Sh>(tN_InBounder_Sh).ExecuteCommand();
                        }
                    }
@@ -4496,13 +4538,20 @@
                            PZZDRQ = DateTime.Parse(po.BLDAT.ToString()).ToString("yyyyMMdd");
                        }
                        string combinedIds = string.Join(",", po.Details.Select(x => x.N_ROW_NO));
                        var KEY = WCSHelper.Generate13DigitIds();
                        var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).First();
                        if (s_key != null)
                        {
                            KEY = s_key.S_KEY;
                        }
                        JHWBackDto.Root myRoot = new JHWBackDto.Root
                        {
                            ROOT = new JHWBackDto.ROOT
                            {
                                HEAD = new JHWBackDto.HEAD
                                {
                                    KEY = po.S_NO,
                                    KEY = KEY,
                                    GZRQ = GZRQ,
                                    PZZDRQ = PZZDRQ,
                                    YHM = po.UNAME,
@@ -4517,6 +4566,7 @@
                            }
                        };
                        //回参物料信息
                        List<JHWBackDto.ITEM> iTEMs = new List<JHWBackDto.ITEM>();
                        foreach (var item in po.Details)
@@ -4627,6 +4677,17 @@
                                db.Insertable<MaterialVoucher>(materials).ExecuteCommand();
                            }
                        }
                        else
                        {
                            TN_InBounder_Sh tN_InBounder_Sh = new TN_InBounder_Sh();
                            tN_InBounder_Sh.S_KEY = KEY;
                            tN_InBounder_Sh.N_ROW_NO = combinedIds;
                            tN_InBounder_Sh.S_NO = po.S_NO;
                            db.Insertable<TN_InBounder_Sh>(tN_InBounder_Sh).ExecuteCommand();
                        }
                        #endregion
                    }
@@ -4668,6 +4729,13 @@
                            tN_Inbound_Details.Add(item);
                        }
                        string combinedIds = string.Join(",", po.Details.Select(x => x.N_ROW_NO));
                        var KEY = WCSHelper.Generate13DigitIds();
                        var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).First();
                        if (s_key != null)
                        {
                            KEY = s_key.S_KEY;
                        }
                        WcRkBc.Root roots = new WcRkBc.Root
                        {
                            ROOT = new WcRkBc.ROOT
@@ -4676,7 +4744,7 @@
                                {
                                    HEAD = new WcRkBc.HEAD
                                    {
                                        KEY = po.S_NO,
                                        KEY = KEY,
                                        GZRQ = DateTime.Now.ToString("yyyyMMdd"),
                                        GZRY = model.GZRY,
                                        GC = po.S_FACTORY
@@ -4773,6 +4841,16 @@
                            }
                        }
                        else
                        {
                            TN_InBounder_Sh tN_InBounder_Sh = new TN_InBounder_Sh();
                            tN_InBounder_Sh.S_KEY = KEY;
                            tN_InBounder_Sh.N_ROW_NO = combinedIds;
                            tN_InBounder_Sh.S_NO = po.S_NO;
                            db.Insertable<TN_InBounder_Sh>(tN_InBounder_Sh).ExecuteCommand();
                        }
                    }
models/TN_Container_Code.cs
New file
@@ -0,0 +1,18 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HH.WCS.Mobox3.pinggao.models
{
  [SugarTable("TN_Container_Code")]
    public class TN_Container_Code : BaseModel
    {
        public string S_LOC_CODE { get; set; }
        public string S_CNTR_CODE { get; set; }
    }
}
models/TN_InBounder_Sh.cs
New file
@@ -0,0 +1,19 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HH.WCS.Mobox3.pinggao.models
{
   [SugarTable("TN_InBounder_Sh")]
    public class TN_InBounder_Sh : BaseModel
    {
        public string S_NO { get; set; }
        public string S_KEY { get; set; }
        public string N_ROW_NO { get; set; }
    }
}
wms/LocationHelper.cs
@@ -374,13 +374,14 @@
                {
                    if (lcrList.Count(b => b.S_CNTR_CODE.Trim() == a) == 0)
                    {
                        db.Insertable<LocCntrRel>(new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = a }).ExecuteCommand();
                        count++;
                    }
                });
                location.N_CURRENT_NUM = lcrList.Count + count;
                location.N_LOCK_STATE = 0;
wms/WCSHelper.cs
@@ -12,7 +12,20 @@
            var date = DateTime.Now.ToString("yyMMdd");
            return $"TN{date}{id.ToString().PadLeft(4, '0')}";
        }
        public static string Generate13DigitIds()
        {
            // 2. 年月日(6位,yMMdd格式,如231215)
            string datePart = DateTime.Now.ToString("yyMMdd");
            // 3. 6位高强度随机数(避免重复)
            Random random = new Random(Guid.NewGuid().GetHashCode());
            string randomPart = random.Next(10000, 99999).ToString();
            // 4. 组合成13位ID
            return datePart + randomPart;
        }
        public static string Generate13DigitId()
        {
            // 1. 业务标识(1位,如H=住建)