Пример #1
0
        static void Main(string[] args)
        {
            //获取要分配的任务订单 12512
            PreOrderService         service         = new PreOrderService();
            PreOrderSearchCondition SearchCondition = new PreOrderSearchCondition();

            SearchCondition.ID = 12512;
            var getPreOrderByConditionResponse = new PreOrderService().GetPreOrderAndDetail(new PreOrderRequest()
            {
                SearchCondition = SearchCondition
            });
            //service.GetPreOrderAndDetail(
        }
Пример #2
0
        //new PreOrderService().ManualAllocationJson(new ManualAllocationRequest()
        //{ PodRequest = pod, ID = Convert.ToInt64(ID), CustomerId = CustomerId, Creator = base.UserInfo.Name, Criterion = Criterion });
        public override void CustomerDefinedSettledAllocate()
        {
            if (AllocateMode == "自动分配")
            {
                this.SqlProc = "Proc_WMS_AutomatedOutbound_Hilti";
                PreOrderService service  = new PreOrderService();
                var             response = service.AutomaticAllocation(List, UserName, AllocateType, SqlProc);
                if (!response.IsSuccess)
                {
                    //throw response.Exception;
                    this.DisInfo = null;
                }

                this.DisInfo = response.Result.DisInfo;
            }
            else if (AllocateMode == "指定分配")
            {
                this.SqlProc = "Proc_WMS_AssignedOutbound_Hilti";
                PreOrderService service  = new PreOrderService();
                var             response = service.ManualAllocationJson(new ManualAllocationRequest()
                {
                    PodRequest = Pod, ID = ID, CustomerId = CustomerId, Creator = UserName, Criterion = AllocateType, SqlProc = SqlProc
                });
                if (!response.IsSuccess)
                {
                    this.DisInfo = null;
                }
                this.DisInfo = response.Result.DisInfo;
            }
            else
            {
                this.SqlProc = "Proc_WMS_ManualAllocation_Hilti";
                PreOrderService service  = new PreOrderService();
                var             response = service.ManualAllocationJson(new ManualAllocationRequest()
                {
                    PodRequest = Pod, ID = ID, CustomerId = CustomerId, Creator = UserName, Criterion = AllocateType
                });
                if (!response.IsSuccess)
                {
                    this.DisInfo = null;
                }

                this.DisInfo = response.Result.DisInfo;
            }
        }
Пример #3
0
        //new PreOrderService().ManualAllocationJson(new ManualAllocationRequest()
        //{ PodRequest = pod, ID = Convert.ToInt64(ID), CustomerId = CustomerId, Creator = base.UserInfo.Name, Criterion = Criterion });
        public override void CustomerDefinedSettledAllocate()
        {
            PreOrderService service = new PreOrderService();
            Response <PreOrderAndPreOrderDetail> response = new Response <PreOrderAndPreOrderDetail>();

            switch (AllocateMode)
            {
            case "自动分配":
                this.SqlProc = "Proc_WMS_AutomatedOutbound_Total";
                response     = service.AutomaticAllocation(List, UserName, AllocateType, SqlProc);
                break;

            case "手动分配":
                this.SqlProc = "Proc_WMS_ManualAllocation_Total";
                response     = service.ManualAllocationJson(new ManualAllocationRequest()
                {
                    PodRequest = Pod, ID = ID, CustomerId = CustomerId, Creator = UserName, Criterion = AllocateType
                });
                break;

            case "现场分配":
                this.SqlProc = "Proc_WMS_ManualAllocation_Total";
                response     = service.WorkersAlloctions(new ManualAllocationRequest()
                {
                    PodRequest = Pod, ID = ID, CustomerId = CustomerId, Creator = UserName, Criterion = AllocateType
                });
                break;

            default:
                break;
            }
            if (!response.IsSuccess)
            {
                this.DisInfo = null;
            }
            this.DisInfo = response.Result.DisInfo;
        }
Пример #4
0
        /// <summary>
        /// 同步2c订单
        /// </summary>
        public void SyncB2COrder()
        {
            List <NikeCrodOrderLog> logs = new List <NikeCrodOrderLog>();

            //读取配置文件
            XmlSerializerHelper <OrderConfig> config = new XmlSerializerHelper <OrderConfig>();

            config.Load(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "StoreConfig.xml"));
            if (config != null && config.Value != null && config.Value.customerStores != null && config.Value.customerStores.Any() && config.Value.orderTypes != null && config.Value.orderTypes.Any())
            {
                List <CustomerStore>   storeConfig     = config.Value.customerStores.ToList();
                List <OrderTypeConfig> orderTypeConfig = config.Value.orderTypes.ToList();
                //获取中间表的订单信息
                OrderECModel model = new OrderECManagementService().GetNikeOrderB2C(1);
                if (model != null && model.Order_Headers != null && model.Order_Headers.Any() && model.Order_Details != null && model.Order_Details.Any())
                {
                    //PreOrderRequest request = new PreOrderRequest();
                    IList <PreOrder>       preorders       = new List <PreOrder>();
                    IList <PreOrderDetail> preorderDetails = new List <PreOrderDetail>();
                    foreach (var item in model.Order_Headers)
                    {
                        if (string.IsNullOrEmpty(item.orderCode))
                        {
                            continue;
                        }
                        List <Order_Detail> details = model.Order_Details.Where(m => m.orderCode == item.orderCode).ToList();
                        //没有明细
                        if (details == null || !details.Any())
                        {
                            logs.Add(new NikeCrodOrderLog()
                            {
                                OrderCode = item.orderCode,
                                Type      = "GetB2COrder",
                                Operation = "抓取B2C订单",
                                Remark    = "抓取失败:该订单没有明细信息",
                                Creator   = "sysService",
                                Str1      = "",
                                Str2      = "",
                                Str3      = "",
                                Str4      = "",
                                Str5      = ""
                            });
                            continue;
                        }
                        CustomerStore   _store     = storeConfig.Where(m => m.StoreKey == item.appointStcode).FirstOrDefault();
                        OrderTypeConfig _ordertype = orderTypeConfig.Where(m => m.OrderTypeCode.ToString() == item.platType).FirstOrDefault();
                        //没有找到这家门店 ,log
                        if (_store == null || _ordertype == null)
                        {
                            logs.Add(new NikeCrodOrderLog()
                            {
                                OrderCode = item.orderCode,
                                Type      = "GetB2COrder",
                                Operation = "抓取B2C订单",
                                Remark    = "抓取失败:该订单对应的门店代码或者订单类型未配置",
                                Creator   = "sysService",
                                Str1      = "",
                                Str2      = "",
                                Str3      = "",
                                Str4      = "",
                                Str5      = ""
                            });
                            continue;
                        }


                        #region 头信息
                        PreOrder order = new PreOrder();
                        order.ExternOrderNumber = item.orderCode;
                        order.CustomerID        = _store.CustomerID;
                        order.CustomerName      = _store.CustomerName;
                        order.Warehouse         = _store.WarehouseName;
                        order.OrderType         = _ordertype.OrderType;
                        order.Status            = 1;
                        order.OrderTime         = item.pushTime.ObjectToNullableDateTime();
                        order.Province          = item.province;
                        order.City           = item.city;
                        order.District       = item.district;
                        order.Address        = item.address;
                        order.Consignee      = item.receiver;
                        order.Contact        = item.receiverPhone;
                        order.ExpressCompany = "顺丰快递";//默认顺丰
                        order.DetailCount    = details.Count;
                        order.Creator        = "sysService";
                        order.str4           = item.appointStcode; //门店代码
                        order.str2           = item.platType == "31" ? "3721" : item.appointStcode;
                        order.str13          = "cord";             //订单打个标记,代表cord订单

                        //为了方便知道往哪个库里面插入,打个标记
                        order.str20 = _store.DBType;
                        preorders.Add(order);
                        #endregion

                        #region 明细
                        foreach (var detailitem in details)
                        {
                            PreOrderDetail detail = new PreOrderDetail();
                            detail.ExternOrderNumber = item.orderCode;
                            detail.CustomerID        = _store.CustomerID;
                            detail.CustomerName      = _store.CustomerName;
                            detail.Warehouse         = _store.WarehouseName;
                            detail.WarehouseId       = _store.WarehouseID;
                            detail.LineNumber        = detailitem.lineId;
                            detail.SKU         = detailitem.barCode;
                            detail.GoodsName   = detailitem.skuName;
                            detail.GoodsType   = "A品";
                            detail.OriginalQty = detailitem.quantity;
                            detail.Creator     = order.Creator;
                            detail.str6        = detailitem.style_color + "-" + detailitem.size;

                            detail.str20 = _store.DBType;
                            preorderDetails.Add(detail);
                        }
                        #endregion
                    }
                    if (preorders != null && preorders.Any() && preorderDetails != null && preorderDetails.Any())
                    {
                        List <string> dbs = preorders.Select(m => m.str20).Distinct().ToList();
                        //不同数据库的订单
                        foreach (var dbitem in dbs)
                        {
                            List <PreOrder>       preodertowms   = preorders.Where(m => m.str20 == dbitem).ToList();//得到本库的订单
                            List <PreOrderDetail> predetailtowms = preorderDetails.Where(m => m.str20 == dbitem).ToList();

                            //request.PreOrderList = preorders.Where(m => m.str20 == dbitem).ToList();
                            //request.PreOd = preorderDetails.Where(m => m.str20 == dbitem).ToList();
                            //插入数据库
                            string dbconnStr = "";
                            if (dbitem == "1")//1.上海数据库
                            {
                                dbconnStr = Common.SHWMSSqlConnection;
                            }
                            else if (dbitem == "2")//2.成都武汉西安那个数据库
                            {
                                dbconnStr = Common.CDWMSSSqlConnection;
                            }

                            IEnumerable <PreOrder> wmspreorders = new PreOrderService().GetWMSPreOrdersByExternNumber(preodertowms, dbconnStr);
                            if (wmspreorders != null && wmspreorders.Any())
                            {
                                foreach (var item in wmspreorders)
                                {
                                    preodertowms.Remove(preodertowms.Where(m => m.ExternOrderNumber == item.ExternOrderNumber).FirstOrDefault());
                                    predetailtowms.Remove(predetailtowms.Where(m => m.ExternOrderNumber == item.ExternOrderNumber).FirstOrDefault());
                                }
                            }
                            if (!preodertowms.Any())//本库的没有订单了,下一个库
                            {
                                continue;
                            }

                            preodertowms.Where(m => m.str20 == dbitem).ToList().ForEach(m => m.str20   = null);
                            predetailtowms.Where(m => m.str20 == dbitem).ToList().ForEach(m => m.str20 = null);


                            var response = new PreOrderService().AddPreOrderAndPreOrderDetailDynamicConn(preodertowms, predetailtowms, "sysService", dbconnStr);
                            //成功
                            if (response.IsSuccess && response.Result != null && response.Result.PreOrderList != null && response.Result.PreOrderList.Any())
                            {
                                foreach (var item in preodertowms)
                                {
                                    logs.Add(new NikeCrodOrderLog()
                                    {
                                        OrderCode = item.ExternOrderNumber,
                                        Type      = "GetB2COrder",
                                        Operation = "抓取B2C订单",
                                        Remark    = "抓取成功",
                                        Creator   = "sysService",
                                        Str1      = "",
                                        Str2      = "",
                                        Str3      = "",
                                        Str4      = "",
                                        Str5      = ""
                                    });
                                }
                                //更新中间表状态
                                List <string> Numbers = preodertowms.Select(m => m.ExternOrderNumber).Distinct().ToList();
                                new OrderECManagementService().UpdateNikeOrderStatus(Numbers);
                            }
                            else
                            {
                                foreach (var item in preodertowms)
                                {
                                    logs.Add(new NikeCrodOrderLog()
                                    {
                                        OrderCode = item.ExternOrderNumber,
                                        Type      = "GetB2COrder",
                                        Operation = "抓取B2C订单",
                                        Remark    = "抓取失败:订单数据库插入失败",
                                        Creator   = "sysService",
                                        Str1      = "",
                                        Str2      = "",
                                        Str3      = "",
                                        Str4      = "",
                                        Str5      = ""
                                    });
                                }
                            }
                        }
                    }
                    else
                    {
                        //没有需要插入的订单
                    }
                }
                else
                {
                    //中间表没查到数据
                }
            }
            else
            {
                logs.Add(new NikeCrodOrderLog()
                {
                    OrderCode = "",
                    Type      = "GetB2COrder",
                    Operation = "抓取B2C订单",
                    Remark    = "抓取失败:未读取到门店和客户仓库配置文件",
                    Creator   = "sysService",
                    Str1      = "",
                    Str2      = "",
                    Str3      = "",
                    Str4      = "",
                    Str5      = ""
                });
            }
            //日志
            if (logs != null && logs.Any())
            {
                new LogOperationService().AddNikeCordOrderLog(logs);
            }
        }
Пример #5
0
        public PreOrderRepository GetPreOrderRepository()
        {
            PreOrderService service = PreOrderService.GetInstance();

            return(PreOrderRepository.GetInstance(service));
        }
Пример #6
0
        /// <summary>
        /// 解析出库单,一个文件一单 根据loadkey区分
        /// </summary>
        /// <param name="txtlists"></param>
        /// <param name="externumber"></param>
        /// <returns></returns>
        public string LFOrderImportByLoadKey(List <string> txtlists, out string externumber)
        {
            externumber = "";
            try
            {
                PreOrderRequest       requestPo            = new PreOrderRequest();
                List <PreOrder>       _preorderLists       = new List <PreOrder>();
                List <PreOrderDetail> _preorderDetailLists = new List <PreOrderDetail>();

                if (txtlists[0].TxtSubstring(0, 10) == "WMSSHP" && txtlists[0].TxtSubstring(10, 2) == "O")//LF出库单
                {
                    int linenumber = 1;
                    for (int i = 0; i < txtlists.Count; i++)
                    {
                        if (txtlists[i].TxtSubstring(0, 10) == "WMSSHP")//文档头
                        {
                            continue;
                        }
                        if (txtlists[i].TxtSubstring(0, 5) == "SHPHD" && txtlists[i].TxtSubstring(5, 1) == "A")//订单头
                        {
                            string loadkey = txtlists[i].TxtSubstring(4166, 10);
                            if (string.IsNullOrEmpty(loadkey))
                            {
                                return(ReturnTxtError("文档中存在LoadKey为空的订单"));
                            }

                            if (_preorderLists.Count() <= 0)//订单头只有一行
                            {
                                #region 订单头
                                PreOrder preorder = new PreOrder();
                                preorder.str9 = loadkey;
                                externumber   = loadkey;
                                string plantime = string.IsNullOrEmpty(txtlists[i].TxtSubstring(65, 14)) ? "" :
                                                  DateTime.ParseExact(txtlists[i].TxtSubstring(65, 14), "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-MM-dd"); //计划发货时间
                                string shiptype = txtlists[i].TxtSubstring(209, 30);                                                                                                               //运输方式

                                if (string.IsNullOrEmpty(plantime))
                                {
                                    return(ReturnTxtError("文档中计划发货时间为空,无法生成外部单号"));
                                }

                                preorder.str7 = plantime; //计划发货时间
                                preorder.str3 = shiptype; //运输方式

                                //外部单号
                                preorder.ExternOrderNumber = "LF" + preorder.str7.Replace("-", "") + "-" + preorder.str9;
                                if (!string.IsNullOrEmpty(shiptype))//加上运输方式
                                {
                                    preorder.ExternOrderNumber += "-" + preorder.str3;
                                }

                                preorder.str17 = txtlists[i].TxtSubstring(2093, 10); //LF出库单号,这个在数据库是存在明细str8里面的,插入时清空这个值
                                //preorder.str16 = txtlists[i].TxtSubstring(21, 20);//NIKE单据编码,这个在数据库是存在明细里面的,插入时清空这个值
                                preorder.str20 = txtlists[i].TxtSubstring(21, 20);   //NIKE单据编码,这个在数据库是存在明细里面的,插入时清空这个值

                                preorder.OrderTime = DateTime.Now;
                                preorder.str4      = txtlists[i].TxtSubstring(79, 15);   //NFS店铺编码
                                string DivisionCode = txtlists[i].TxtSubstring(349, 10); //Division Code
                                if (DivisionCode == "10")
                                {
                                    preorder.str13 = "APP";
                                }
                                else if (DivisionCode == "20" || DivisionCode == "40")
                                {
                                    preorder.str13 = "FTW";
                                }
                                else
                                {
                                    preorder.str13 = "EQP";
                                }
                                preorder.str10    = txtlists[i].TxtSubstring(703, 20);                                                                                                                                   //NIKE PO
                                preorder.str2     = txtlists[i].TxtSubstring(724, 20);                                                                                                                                   //运输时效
                                preorder.str8     = txtlists[i].TxtSubstring(804, 20);                                                                                                                                   //VAS CODE
                                preorder.str11    = txtlists[i].TxtSubstring(907, 30);                                                                                                                                   //PACK SLIP NO
                                preorder.str5     = txtlists[i].TxtSubstring(1705, 45);                                                                                                                                  //公司名
                                preorder.Address  = txtlists[i].TxtSubstring(1750, 45) + "&" + txtlists[i].TxtSubstring(1795, 45) + "&" + txtlists[i].TxtSubstring(1840, 45) + "&" + txtlists[i].TxtSubstring(1885, 45); //地址1,2,3,4
                                preorder.City     = txtlists[i].TxtSubstring(1930, 45);                                                                                                                                  //城市
                                preorder.Province = txtlists[i].TxtSubstring(1975, 2);                                                                                                                                   //省
                                preorder.str12    = "否";                                                                                                                                                                 //是否单仓LoadKey

                                preorder.str6  = "";                                                                                                                                                                     //好像是男女童鞋服配之类的
                                preorder.str14 = "";                                                                                                                                                                     //RP LI,先判断NIKE PO的第九位,是L时,值为LI,是S时,值为RP,否则取VAS Code
                                if (preorder.str10.Length >= 9)
                                {
                                    if (preorder.str10.Substring(8, 1) == "L")
                                    {
                                        preorder.str14 = "LI";
                                    }
                                    else if (preorder.str10.Substring(8, 1) == "S")
                                    {
                                        preorder.str14 = "RP";
                                    }
                                    else
                                    {
                                        if (preorder.str8.Equals("NIKECN"))//VAS Code
                                        {
                                            preorder.str14 = "";
                                        }
                                        else
                                        {
                                            preorder.str14 = preorder.str8;
                                        }
                                    }
                                }
                                else
                                {
                                    if (preorder.str8.Equals("NIKECN"))//VAS Code
                                    {
                                        preorder.str14 = "";
                                    }
                                    else
                                    {
                                        preorder.str14 = preorder.str8;
                                    }
                                }

                                //CRD逻辑 计划发货时间+运输时效
                                preorder.str15 = (DateTime.Parse(preorder.str7).AddDays(int.Parse(preorder.str2))).ToString("yyyy-MM-dd");
                                try
                                {
                                    if (DateTime.Parse(preorder.str7).AddDays(int.Parse(preorder.str2)) > DateTime.ParseExact(preorder.str10.Substring(0, 8), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture))
                                    {
                                        preorder.str15 = "";//CRD
                                    }
                                    else
                                    {
                                        preorder.str15 = DateTime.ParseExact(preorder.str10.Substring(0, 8), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-MM-dd");
                                    }
                                }
                                catch (Exception ea)
                                {
                                }

                                //预计卸货时间
                                preorder.str16 = (DateTime.Parse(preorder.str7).AddDays(int.Parse(preorder.str2))).ToString("yyyy-MM-dd");

                                try
                                {
                                    DateTime time = DateTime.Parse(preorder.str10.Substring(0, 8).Insert(4, "-").Insert(7, "-"));
                                    preorder.str16 = preorder.str10.Substring(0, 8).Insert(4, "-").Insert(7, "-");
                                }
                                catch (Exception)
                                { }

                                preorder.str18        = "LF";//标识利丰订单
                                preorder.CustomerID   = 103;
                                preorder.CustomerName = "NIKE-Return";
                                preorder.Warehouse    = "NIKE-退货仓";
                                preorder.OrderType    = "正常出库";
                                preorder.Status       = 1;
                                preorder.Creator      = "SFTPUser";
                                _preorderLists.Add(preorder);

                                #endregion
                            }
                            else
                            {
                                if (_preorderLists.Where(m => m.str9 == loadkey).Count() <= 0)
                                {
                                    return(ReturnTxtError("文档中存在多个LoadKey的情况"));
                                }
                                continue;
                            }
                        }
                        else if (txtlists[i].TxtSubstring(0, 5) == "SHPDT" && txtlists[i].TxtSubstring(5, 1) == "A") //订单明细SKU
                        {
                            string ArticleColorSize = txtlists[i].TxtSubstring(36, 20);                              //lf传过来的sku,里面包含款色码
                            if (string.IsNullOrEmpty(ArticleColorSize))
                            {
                                return(ReturnTxtError("文档信息中SKU(articlesize)为空"));
                            }
                            //相同SKU
                            if (_preorderDetailLists.Where(m => m.str16 == ArticleColorSize).Count() > 0)
                            {
                                //同SKU数量累加
                                _preorderDetailLists.Where(m => m.str16 == ArticleColorSize).FirstOrDefault().OriginalQty += txtlists[i].TxtSubstring(538, 10).ObjectToInt32();//数量
                                continue;
                            }
                            else
                            {
                                #region 订单明细

                                PreOrderDetail predetail = new PreOrderDetail();
                                predetail.str16 = ArticleColorSize;                                                                        //先存着和vas行去比较
                                predetail.str17 = ArticleColorSize.Substring(0, 6).Trim() + '-' + ArticleColorSize.Substring(6, 3).Trim(); //article
                                predetail.str18 = ArticleColorSize.Substring(9).Trim();                                                    //size
                                predetail.str6  = predetail.str17 + '-' + predetail.str18;                                                 //Article+size

                                predetail.str7        = "";                                                                                //取主表的Division Code
                                predetail.str8        = txtlists[i].TxtSubstring(460, 10);                                                 //LF出库单号
                                predetail.str9        = "";                                                                                //NIKE单据编码
                                predetail.OriginalQty = txtlists[i].TxtSubstring(538, 10).ObjectToInt32();                                 //数量
                                //predetail.LineNumber = txtlists[i].TxtSubstring(548, 5);//LF出库单行号
                                predetail.LineNumber = linenumber.ToString().TxtPadLeftstring(5, '0');


                                predetail.CustomerID   = 103;
                                predetail.CustomerName = "NIKE-Return";
                                predetail.Warehouse    = "NIKE-退货仓";
                                predetail.WarehouseId  = 58;
                                predetail.GoodsType    = "A品";
                                _preorderDetailLists.Add(predetail);
                                linenumber++;
                                #endregion
                            }
                        }
                        else if (txtlists[i].TxtSubstring(0, 5) == "ORDRF" && txtlists[i].TxtSubstring(5, 1) == "A")//SKU的VAS信息
                        {
                            continue;
                        }
                    }

                    if (!_preorderLists.Any() || !_preorderDetailLists.Any())
                    {
                        return(ReturnTxtError("文档中不存在订单信息"));
                    }
                    //验证loadkey在系统是否存在
                    IEnumerable <PreOrder> getpreorders = new PreOrderService().GetWMSPreOrderlistByLoadKey(_preorderLists);
                    if (getpreorders != null && getpreorders.Any())
                    {
                        return(ReturnTxtError("文档中的LoadKey在系统中已经存在"));
                    }

                    //验证SKU是否存在
                    List <ProductSearch> searprolistfs = new List <ProductSearch>();
                    foreach (var item in _preorderDetailLists)
                    {
                        ProductSearch psfs = new ProductSearch();
                        psfs.Str10 = item.str17;
                        psfs.Str9  = item.str18;
                        psfs.Str8  = "01";
                        searprolistfs.Add(psfs);
                    }
                    IEnumerable <ProductSearch> productListfs = new ProductService().GetSearchProduct(103, searprolistfs, "Acticle");

                    foreach (var item in _preorderDetailLists)
                    {
                        //判断如果通过article+size是否存在信息
                        ProductSearch search = productListfs.Where(m => m.Str10 == item.str17 && m.Str9 == item.str18).FirstOrDefault();
                        if (search == null)
                        {
                            return(ReturnTxtError("文档中的article:" + item.str17 + "Size:" + item.str18 + "在系统不存在"));
                        }
                        item.SKU       = search.SKU;
                        item.GoodsName = search.GoodsName;
                        item.str2      = search.Price;
                        item.str3      = search.SafeLock;
                        item.str4      = search.Hanger;
                        item.str10     = search.GenderAge;

                        item.ExternOrderNumber = _preorderLists.FirstOrDefault().ExternOrderNumber;
                        item.str7 = _preorderLists.FirstOrDefault().str13; //Division Code
                        //item.str9 = _preorderLists.FirstOrDefault().str16;//NIKE单据编码
                        item.str9 = _preorderLists.FirstOrDefault().str20; //NIKE单据编码
                        _preorderLists.FirstOrDefault().str6 = item.str10; ////GenderAge
                    }

                    //foreach (var detailitem in _preorderDetailLists)
                    //{
                    //    detailitem.ExternOrderNumber = _preorderLists.FirstOrDefault().ExternOrderNumber;
                    //    detailitem.str7 = _preorderLists.FirstOrDefault().str13; //Division Code
                    //    detailitem.str9 = _preorderLists.FirstOrDefault().str16;//NIKE单据编码
                    //    _preorderLists.FirstOrDefault().str6 = detailitem.str10;////GenderAge

                    //}
                    //把主表不需要的清空,明细不需要的清空
                    _preorderLists.ForEach((item) =>
                    {
                        item.str20 = null;// item.str16 = null;
                        item.str17 = null;
                    });
                    _preorderDetailLists.ForEach((item) =>
                    {
                        item.str10 = null;
                        item.str16 = null;
                        item.str17 = null;
                        item.str18 = null;
                    });
                    requestPo.PreOrderList = _preorderLists;
                    requestPo.PreOd        = _preorderDetailLists;
                    var response = new PreOrderService().AddPreOrderAndPreOrderDetail(requestPo, "SFTPService");
                    if (response.IsSuccess)
                    {
                        if (response.Result == null || response.Result.PreOrderList == null || response.Result.PreOrderList.Count() <= 0)
                        {
                            return("订单数据库插入失败,不移动文件!");
                        }
                        else
                        {
                            return("");
                        }
                    }
                    else
                    {
                        return("数据库层报错:" + response.ErrorCode.ToString());
                    }
                }
                else
                {
                    return(ReturnTxtError());
                }
            }
            catch (Exception ex)
            {
                return(ex.Message.ToString());
            }
        }