hudong
2025-06-05 f3ad86fe50a0d2ba81b203517184264eea7bf0c0
api/WmsSpaHelper.cs
@@ -451,17 +451,6 @@
                            }
                            foreach (var item in items.ITEM)
                            {
                                bool v = MaterPanduan(item.WLBM, item.SL);
                                if (!v)
                                {
                                    result.resultMsg = "失败";
                                    result.WLPZBH = items.HEAD.WLPZH;
                                    result.resultCode = 1;
                                    result.WLPZND = items.HEAD.WLPZND;
                                    result.resultMsg = $"物料{item.WLBM}数量超过 库存总数";
                                    simpleResults.Add(result);
                                    continue;
                                }
                                ///判断是否都有冲销凭证编号
                                if (string.IsNullOrEmpty(item.CXPZH))
                                {
@@ -1227,17 +1216,7 @@
                                foreach (var a in itemwlpz.ITEM)
                                
                                {
                                    bool v = MaterPanduan(a.WLBM, a.SL);
                                    if (!v)
                                    {
                                        result.resultMsg = "失败";
                                        result.WLPZBH = itemwlpz.HEAD.WLPZH;
                                        result.resultCode = 1;
                                        result.WLPZND = itemwlpz.HEAD.ND;
                                        result.resultMsg = $"物料{a.WLBM}数量超过 库存总数";
                                        simpleResults.Add(result);
                                        continue;
                                    }
                                    po.Details.Add(new TN_Inbound_Detail
                                    {
                                        S_IO_NO = itemwlpz.HEAD.WLPZH,
@@ -1275,17 +1254,6 @@
                            {
                                foreach (var a in itemwlpz.ITEM)
                                {
                                    bool v = MaterPanduan(a.WLBM, a.SL);
                                    if (!v)
                                    {
                                        result.resultMsg = "失败";
                                        result.WLPZBH = itemwlpz.HEAD.WLPZH;
                                        result.resultCode = 1;
                                        result.WLPZND = itemwlpz.HEAD.ND;
                                        result.resultMsg = $"物料{a.WLBM}数量超过 库存总数";
                                        simpleResults.Add(result);
                                        continue;
                                    }
                                    if (po.Details.Where(s => s.S_ITEM_CODE == a.WLBM).Count() > 0)
                                    {
                                        var poq = po.Details.Where(s => s.S_ITEM_CODE == a.WLBM).FirstOrDefault();
@@ -1396,17 +1364,7 @@
                                    foreach (var a in itemwlpz.ITEM)
                                   
                                    {
                                        bool v = MaterPanduan(a.WLBH, a.SL);
                                        if (!v)
                                        {
                                            result.resultMsg = "失败";
                                            result.WLPZBH = itemwlpz.HEAD.WLPZBH;
                                            result.resultCode = 1;
                                            result.WLPZND = itemwlpz.HEAD.WLPZNF;
                                            result.resultMsg = $"物料{a.WLBH}数量超过 库存总数";
                                            simples.Add(result);
                                            continue;
                                        }
                                        #region 不需要
                                        //if (a.ITEM1.Select(s => s.XLH).Count() > 0)//判断序列号是否为多个
                                        //{
@@ -1473,17 +1431,6 @@
                                    foreach (var a in itemwlpz.ITEM)
                                   
                                    {
                                        bool v = MaterPanduan(a.WLBH, a.SL);
                                        if (!v)
                                        {
                                            result.resultMsg = "失败";
                                            result.WLPZBH = itemwlpz.HEAD.WLPZBH;
                                            result.resultCode = 1;
                                            result.WLPZND = itemwlpz.HEAD.WLPZNF;
                                            result.resultMsg = $"物料{a.WLBH}数量超过 库存总数";
                                            simples.Add(result);
                                            continue;
                                        }
                                        if (po.Details.Where(s => s.S_ITEM_CODE == a.WLBH).Count() > 0)
                                        {
                                            var poq = po.Details.Where(s => s.S_ITEM_CODE == a.WLBH).FirstOrDefault();
@@ -1817,6 +1764,15 @@
        internal static SimpleResult InboundOrderSorting(MPSorting model)
        {
            var result = new SimpleResult();
            foreach (var a in model.MaterList)
            {
                bool v = MaterPanduan(a.item_code, a.qty);
                if (v)
                {
                    result.resultMsg = $"物料{a.item_code}数量超过 库存总数";
                    return result;
                }
            }
            //判断起始库位是否锁定
            // var db = new SqlHelper<object>().GetInstance();
            using (var db = new SqlHelper<object>().GetInstance())
@@ -3336,7 +3292,7 @@
                                        lLDReturnRoots.MSGDESP = $"物料{a.WLBM}物料主数据不存在该物料";
                                        iTEMs.Add(lLDReturnRoots);
                                        break ;
                                        continue;
                                    }
                                    po.Details.Add(new TN_Ll_detail
                                    {
@@ -3344,7 +3300,7 @@
                                        S_AREA_CODE = "HJQ",
                                        N_ROW_NO = "",
                                        S_ITEM_CODE = a.WLBM,
                                        S_ITEM_NAME = item.S_ITEM_NAME,
                                        S_ITEM_NAME = item?.S_ITEM_NAME,
                                        F_QTY = a.XQSL,
                                        S_ZJBM = a.ZJBM,
                                        S_YLBH = a.YLBH,
@@ -3364,8 +3320,23 @@
                                }
                                if (po.Details.Count()>0)
                                {
                                    LLDReturnRoot.ITEM lLDReturnRoot1 = new LLDReturnRoot.ITEM();
                                    lLDReturnRoot1.GC = itemscddll.GC;
                                    lLDReturnRoot1.LLDH = itemscddll.LLDH;
                                    lLDReturnRoot1.MSGCODE = 0;
                                    lLDReturnRoot1.MSGDESP = $"成功";
                                    iTEMs.Add(lLDReturnRoot1);
                                    var result1 = db.Insertable<TN_Ll_Order>(po).ExecuteCommand() > 0;
                                    db.Insertable<TN_Ll_detail>(po.Details).ExecuteCommand();
                                }
                                else
                                {
                                    LLDReturnRoot.ITEM lLDReturnRoot1 = new LLDReturnRoot.ITEM();
                                    lLDReturnRoot1.GC = itemscddll.GC;
                                    lLDReturnRoot1.LLDH = itemscddll.LLDH;
                                    lLDReturnRoot1.MSGCODE = 0;
                                    lLDReturnRoot1.MSGDESP = $"成功,无数据添加";
                                    iTEMs.Add(lLDReturnRoot1);
                                }
                            }
@@ -3388,7 +3359,7 @@
                                        lLDReturnRoots.MSGCODE = 1;
                                        lLDReturnRoots.MSGDESP = $"执行中领料单,物料{a.WLBM}物料不允许删除";
                                        iTEMs.Add(lLDReturnRoots);
                                        break;
                                        continue;
                                    }
                                    var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList();
                                    if (po1.Count() == 0)  //无则新增物料明细
@@ -3404,7 +3375,7 @@
                                            lLDReturnRoots.MSGCODE = 1;
                                            lLDReturnRoots.MSGDESP = $"物料{a.WLBM}物料主数据不存在该物料";
                                            iTEMs.Add(lLDReturnRoots);
                                            break;
                                            continue;
                                        }
                                        TN_Ll_detail tN_Outbound_Detail = new TN_Ll_detail
                                        {
@@ -3448,7 +3419,7 @@
                                            lLDReturnRoots.MSGCODE = 1;
                                            lLDReturnRoots.MSGDESP = $"更新失败,更新数量必须大于当前物料数量{a.WLBM}";
                                            iTEMs.Add(lLDReturnRoots);
                                            break;
                                            continue;
                                        }
                                    }
                                }
@@ -3533,16 +3504,26 @@
                            //添加数据
                            if (listtn.Count() > 0)
                            {
                                LLDReturnRoot.ITEM lLDReturnRoot1 = new LLDReturnRoot.ITEM();
                                lLDReturnRoot1.GC = itemscddll.GC;
                                lLDReturnRoot1.LLDH = itemscddll.LLDH;
                                lLDReturnRoot1.MSGCODE = 0;
                                lLDReturnRoot1.MSGDESP = $"成功";
                                iTEMs.Add(lLDReturnRoot1);
                                db.Insertable<TN_Ll_detail>(listtn).ExecuteCommand();
                            }
                            else
                            {
                                LLDReturnRoot.ITEM lLDReturnRoot1 = new LLDReturnRoot.ITEM();
                                lLDReturnRoot1.GC = itemscddll.GC;
                                lLDReturnRoot1.LLDH = itemscddll.LLDH;
                                lLDReturnRoot1.MSGCODE = 0;
                                lLDReturnRoot1.MSGDESP = $"成功,无数据添加";
                                iTEMs.Add(lLDReturnRoot1);
                            }
                        }
                        lLDReturnRoots.GC = itemscddll.GC;
                        lLDReturnRoots.LLDH = itemscddll.LLDH;
                        lLDReturnRoots.MSGCODE = 0;
                        lLDReturnRoots.MSGDESP = $"成功";
                        iTEMs.Add(lLDReturnRoots);
                        db.CommitTran();
                    }
@@ -4100,6 +4081,10 @@
                        result.resultMsg = "数据不存在";
                        return result;
                    }
                    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))
                            .ToList();
                    if (po.S_IN_TYPE == "内采入库")
                    {
                        List<NcRkDto.ITEM> listitem = new List<NcRkDto.ITEM>();
@@ -4221,22 +4206,39 @@
                        //添加凭证记录表
                        result.resultMsg = data.ROOT.ITEM.MSGDESP;
                        result.resultCode = data.ROOT.ITEM.MSGCODE;
                        MaterialVoucher materialVoucher = new MaterialVoucher();
                        //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();
                            //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)
                            {
                                MaterialVoucher materialVoucher = new MaterialVoucher();
                                materialVoucher.S_NO = po.S_NO;
                                materialVoucher.S_WLBM = item.S_ITEM_CODE;
                                materialVoucher.S_WLH = item.N_ROW_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;
                                materials.Add(materialVoucher);
                            }
                            if (materials.Count() > 0)
                            {
                                db.Insertable<MaterialVoucher>(materials).ExecuteCommand();
                            }
                        }
                    }
                    else
                    if (po.S_IN_TYPE == "计划外退料入库")
                    else if (po.S_IN_TYPE == "计划外退料入库")
                    {
                        DateTime dateTime;
                        DateTime dateTime1;
@@ -4361,13 +4363,25 @@
                        result.resultCode = data.ROOT.ITEM.MSGCODE;
                        if (data.ROOT.ITEM.MSGCODE == 0)
                        {
                            MaterialVoucher materialVoucher = new MaterialVoucher();
                            materialVoucher.S_NO = po.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)
                            {
                                MaterialVoucher materialVoucher = new MaterialVoucher();
                                materialVoucher.S_NO = po.S_NO;
                                materialVoucher.S_WLBM = item.S_ITEM_CODE;
                                materialVoucher.S_WLH = item.N_ROW_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;
                                materials.Add( materialVoucher );
                            }
                            if (materials.Count() > 0)
                            {
                                db.Insertable<MaterialVoucher>(materials).ExecuteCommand();
                            }
                        }
                        #endregion
@@ -4492,15 +4506,34 @@
                        result.resultCode = data.ROOT.ITEM.MSGCODE;
                        if (data.ROOT.ITEM.MSGCODE == 0)
                        {
                            MaterialVoucher materialVoucher = new MaterialVoucher();
                            materialVoucher.S_NO = model.S_NO;
                            materialVoucher.S_TYPE = po.S_IN_TYPE;
                            materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZH;
                            LogHelper.Info("值1: " + data.ROOT.ITEM?.WLPZH);
                            LogHelper.Info("值2: " + materialVoucher.S_WLPZBH);
                            materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                            materialVoucher.STATUS = 0;
                            db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                            //MaterialVoucher materialVoucher = new MaterialVoucher();
                            //materialVoucher.S_NO = model.S_NO;
                            //materialVoucher.S_TYPE = po.S_IN_TYPE;
                            //materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZH;
                            //LogHelper.Info("值1: " + data.ROOT.ITEM?.WLPZH);
                            //LogHelper.Info("值2: " + materialVoucher.S_WLPZBH);
                            //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)
                            {
                                MaterialVoucher materialVoucher = new MaterialVoucher();
                                materialVoucher.S_NO = po.S_NO;
                                materialVoucher.S_WLBM = item.S_ITEM_CODE;
                                materialVoucher.S_WLH = item.N_ROW_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;
                                materials.Add(materialVoucher);
                            }
                            if (materials.Count() > 0)
                            {
                                db.Insertable<MaterialVoucher>(materials).ExecuteCommand();
                            }
                        }
                        //else
                        //{
@@ -4713,17 +4746,18 @@
                    var po = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == S_CNTR_CODE && a.S_BS_NO == taskno).ToList();
                    LogHelper.Info("添加入库记录表po" + po.Count());
                    var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == taskno).First();
                    var ass = pz == null;
                    var pzs = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == taskno).ToList();
                    var ass = pzs == null;
                    LogHelper.Info("添加入库记录表pz" + ass);
                    List<OutboundRecord> records = new List<OutboundRecord>();
                    foreach (var item in po)
                    {
                        var pz= pzs.Where(s=>s.S_WLBM==item.S_ITEM_CODE&&s.S_WLH==item.N_BS_ROW_NO).First();
                        OutboundRecord outboundRecord = new OutboundRecord();
                        outboundRecord.S_NO = item.S_BS_NO;
                        outboundRecord.S_TYPE = pz?.S_TYPE;
                        outboundRecord.S_WLPZBH = pz?.S_WLPZBH;
                        outboundRecord.S_WLPZBH = pz?.S_WLBM;
                        outboundRecord.S_WLPZND = pz?.S_WLPZND;
                        outboundRecord.S_WLBM = item.S_ITEM_CODE;
                        outboundRecord.S_SL = item.F_QTY;