api/WmsSpaHelper.cs
@@ -56,7 +56,7 @@
            bool panduan = true;
            var db = new SqlHelper<object>().GetInstance();
            var po = db.Queryable<TN_Material_KC>().Where(a => a.S_ITEM_CODE == ItemCode).First();
            var po = db.Queryable<TN_Material_KC>().Where(a => a.S_ITEM_CODE== ItemCode).First();
            var po1 = db.Queryable<CntrItemRel>().Where(a => a.S_ITEM_CODE == ItemCode).First();
            if (po != null)
@@ -673,7 +673,6 @@
                    result.WLPZBH = items.HEAD.WLPZH;
                    result.WLPZND = items.HEAD.WLPZND;
                    result.resultCode = 0;
                    result.resultMsg = "";
                    db.CommitTran();
                    simpleResults.Add(result);
                }
@@ -894,8 +893,8 @@
            db.BeginTran();
            List<WLReturnRoot.ITEM> list = new List<WLReturnRoot.ITEM>();
            var itemCodes = model.ROOT.ITEM.Select(item => item.WLBM).ToList();
            List<TN_Material> tN_Materials = new List<TN_Material>();
            var itemCodes = model.ROOT.ITEM.Select(item => item.WLBM).Distinct().ToList();
            var itemlist = db.Queryable<TN_Material>()
            .Where(it => itemCodes.Contains(it.S_ITEM_CODE))
            .ToList();
@@ -904,10 +903,8 @@
            {
                try
                {
                    var result = new WLReturnRoot.ITEM();
                    var materlist = itemlist.Where(it => it.S_ITEM_CODE == item.WLBM).First();
                    var materlist = itemlist.Where(it => it.S_ITEM_CODE == item.WLBM).FirstOrDefault();
                    if (materlist == null)
                    {
                        TN_Material tN_Material = new TN_Material();
@@ -924,7 +921,8 @@
                        tN_Material.S_CPZ = item.CPZ;
                        tN_Material.S_CPZMS = item.CPZMS;
                        tN_Material.S_ITEM_NAME = item.VTEXT;
                        db.Insertable<TN_Material>(tN_Material).ExecuteCommand();
                        tN_Materials.Add(tN_Material);
                        //db.Insertable<TN_Material>(tN_Material).ExecuteCommand();
                        result.MSGDESP = "成功";
                        result.MSGCODE = 0;
                        result.GCBM = item.GCBM;
@@ -967,6 +965,24 @@
                }
            }
            response.ROOT.ITEM = list;
            if (tN_Materials.Count()>0)
            {
                db.Insertable<TN_Material>(tN_Materials).ExecuteCommand();
                //using (var bulkCopy = new SqlBulkCopy(util.Settings.SqlServer))
                //{
                //    bulkCopy.DestinationTableName = "TN_Material";
                //    bulkCopy.BatchSize = 500;
                //    var dataTable = new DataTable();
                //    dataTable = list.ToDataTable();
                //    // 添加列映射(确保名称匹配)
                //    foreach (DataColumn col in dataTable.Columns)
                //    {
                //        bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
                //    }
                //    bulkCopy.WriteToServer(tN_Materials.ToDataTable());
                //}
            }
            //db.Insertable<TN_Material>(list).ExecuteCommand();
            db.CommitTran();
@@ -1880,28 +1896,36 @@
                        else if (!string.IsNullOrEmpty(model.item_code))
                        {
                            var starts = db.Queryable<CntrItemRel>().Where(cir => cir.S_CNTR_TYPE == "半托" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault();
                            LogHelper.Info($"starts{starts}");
                            var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE== starts.S_CNTR_CODE).ToList().FirstOrDefault();
                            LogHelper.Info($"starts1{starts12}");
                            start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE== starts12.S_LOC_CODE).ToList().FirstOrDefault();
                            LogHelper.Info($"starts2{start}");
                            if (starts!=null)
                            {
                                LogHelper.Info($"starts{starts}");
                                var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == starts.S_CNTR_CODE).ToList().FirstOrDefault();
                                LogHelper.Info($"starts1{starts12}");
                                start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE == starts12.S_LOC_CODE).ToList().FirstOrDefault();
                                LogHelper.Info($"starts2{start}");
                            model.cntr_code = starts12?.S_CNTR_CODE;
                                model.cntr_code = starts12?.S_CNTR_CODE;
                            }
                            else
                            {
                                var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray();
                                var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray();
                                start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault();
                                var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault();
                                model.cntr_code = starts12?.S_CNTR_CODE;
                            }
                        }
                        else
                        {
                            #region MyRegion
                            var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray();
                            var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray();
                            start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault();
                            var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault();
                            model.cntr_code = starts12?.S_CNTR_CODE;
                            #endregion
                        }
                        if (start == null)
@@ -3687,8 +3711,14 @@
                        var po1 = new TN_Outbound_Order { S_NO = WMSHelper.GenerateShippNo(), UNAME = po.UNAME, S_FACTORY = po.S_FACTORY, S_CBZX = po.S_CBZX, S_ZZKM = po.S_ZZKM, S_LRZX = po.S_LRZX, BLDAT = po.BLDAT, BUDAT = po.BUDAT, S_OUT_TYPE = po.S_OUT_TYPE, S_BS_TYPE = po.S_BS_TYPE, S_AREA_CODE = po.S_AREA_CODE, S_BS_NO = po.S_NO };
                        List<TN_Ll_detail> tN_Ll_Details = new List<TN_Ll_detail>();
                        po1.Details = new List<TN_Outbound_Detail>();
                        var list = po.Details.Where(s => s.F_QTY > s.F_ACC_D_QTY&&s.S_ERP_WH_CODE=="4004").Select(s => s.S_ITEM_CODE).Distinct().ToArray();
                        var Sitemlist = db.Queryable<CntrItemRel>().Where(s => list.Contains(s.S_ITEM_CODE)).Select(s => s.S_ITEM_CODE).ToArray().Select(x => x.Trim()).ToArray(); ;
                        po.Details = po.Details.Where(s => Sitemlist.Contains(s.S_ITEM_CODE)).ToList();
                        if (po.Details.Count() > 0)
                        {
                            foreach (var a in po.Details)
                            {
                                if (a.F_QTY > a.F_ACC_D_QTY)
@@ -3749,7 +3779,12 @@
                                return result;
                            }
                        }
                        else
                        {
                            result.code = 1;
                            result.msg = $"领料单{po.S_NO}找不到对应库存物料信息";
                            return result;
                        }
                    }
                    db.CommitTran();
                }
@@ -4382,25 +4417,25 @@
                        List<JHWBackDto.ITEM> iTEMs = new List<JHWBackDto.ITEM>();
                        foreach (var item in po.Details)
                        {
                            var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault();
                           // var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault();
                            JHWBackDto.ITEM ckbitem = new JHWBackDto.ITEM();
                            ckbitem.WLBH = item.S_ITEM_CODE;
                            ckbitem.GC = po.S_FACTORY;
                            ckbitem.XSDD = podetail?.S_XSDD;
                            ckbitem.XSDDHXM = podetail?.S_XSDDXMBH;
                            ckbitem.XSDD = item?.S_XSDD;
                            ckbitem.XSDDHXM = item?.S_XSDDXMBH;
                            ckbitem.SL = item.F_QTY;
                            ckbitem.DW = podetail?.S_UOM;
                            ckbitem.DDH = podetail?.S_DDH;
                            ckbitem.DW = item?.S_UOM;
                            ckbitem.DDH = item?.S_DDH;
                            //ckbitem.PH = podetail?.S_PH;
                            // ckbitem.TSKCBS = podetail?.S_TSKCBS;
                            //ckbitem.DDHXM = (podetail?.N_ROW_NO);
                            ckbitem.WBS = podetail?.S_WBS;
                            ckbitem.KCDD = podetail?.S_KCDD;
                            ckbitem.PC = podetail?.S_BATCH_NO;
                            ckbitem.WBS = item?.S_WBS;
                            ckbitem.KCDD = item?.S_KCDD;
                            ckbitem.PC = item?.S_BATCH_NO;
                            #region MyRegion
                            // List<JHWBackDto.ITEM1> listitem1 = new List<JHWBackDto.ITEM1>();
                            JHWBackDto.ITEM1 listitem1 = new JHWBackDto.ITEM1();
                            listitem1.XLH = podetail?.S_SERIAL_NO.Split(',').ToList();
                            listitem1.XLH = item?.S_SERIAL_NO.Split(',').ToList();
                            ////string[] xlhValues = item.S_SERIAL_NO.Split(',');
                            //var serialNos = string.Join(",", CntrItemRels
                            //                .Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE)