using System; using System.Collections.Generic; using System.Linq; using System.Web; using Newtonsoft.Json; using NetLibrary.Log; using System.IO; using TradeModel; using NetLibrary; using System.Drawing; using LinqToDB; using TradeManageNew.Models.Shage; using TradeUsedSale.Enums; using TradeUsedSale.Repositories; using TradeUsedSale.Repositories.Models; using NPOI.HSSF.Record.Formula.Functions; namespace TradeManageNew.OuterService { /// /// ShageService 的摘要说明 /// public class ShageService : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string UserCode = context.Request.QueryString["UserCode"]; string Method = context.Request.QueryString["Method"]; string Ver = context.Request.QueryString["Ver"]; // JavaScriptSerializer jsonconvert = new JavaScriptSerializer(); SyncDataModel md = new SyncDataModel(); md.Result = ""; string content2 = ""; try { StreamReader sr = new StreamReader(context.Request.InputStream); string ResponseContent = sr.ReadToEnd(); ErrorFollow.TraceWrite("协议", "", ResponseContent); if (string.IsNullOrEmpty(UserCode) == true || string.IsNullOrEmpty(Method) == true || string.IsNullOrEmpty(Ver) == true) { md.Code = "101"; md.Result = "缺少参数或者参数不正确,请确保有如下UserCode,Method,Ver参数"; content2 = JsonConvert.SerializeObject(md); context.Response.Write(content2); return; } if (Ver == "1.0") { if (string.IsNullOrEmpty(ResponseContent) == true) { md.Code = "104"; md.Result = "提交数据不能为空"; content2 = JsonConvert.SerializeObject(md); context.Response.Write(content2); return; } if (Method == "UserLogin") { UserLogin model =JsonConvert.DeserializeObject(ResponseContent); if (model != null) { //获取用户数据 var ListUserInfo = DataNew.PdaLogin(model.UserName.Replace("\u0002", "").Replace("\n", ""), model.Password.Replace("\u0002", "").Replace("\n", "")); if (ListUserInfo != null) { md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(ListUserInfo); } else { md.Code = "400"; md.Result = "user non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "UserScan") { UserLogin model =JsonConvert.DeserializeObject(ResponseContent); if (model != null) { //获取用户数据 var ListUserInfo = DataNew.PdaSacnLogin(model.UserCode.Replace("\u0002", "")); if (ListUserInfo != null) { md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(ListUserInfo); } else { md.Code = "400"; md.Result = "user non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "OrderScanNew") { GetData model =JsonConvert.DeserializeObject(ResponseContent); if (model != null && model.Code != "") { model.Code = model.Code.Replace("\u0002", "").Replace("\n", ""); string Code2 = model.Code; if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92") { model.Code = model.Code.Substring(10); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92") { model.Code = model.Code.Substring(2); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94") { model.Code = model.Code; } else if (model.Code.Length > 12) { model.Code = model.Code.Substring(model.Code.Length - 12); } var ordermodel = DataNew.GetScanOrderModelForTM4(model.Code, Code2); Sync_OrderScanModel OrderScanModel = new Sync_OrderScanModel(); if (ordermodel != null && ordermodel.GoodsList != null) { OrderScanModel.OrderId = ordermodel.OrderId.Value; OrderScanModel.OrderCode = ordermodel.PlatOrderCode; if (ordermodel.PrintDate != null) OrderScanModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm"); if (ordermodel.PostDate != null) OrderScanModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm"); OrderScanModel.RevName = ordermodel.RevName; OrderScanModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr; OrderScanModel.ShopName = ordermodel.ShopName; OrderScanModel.PostInfo = ordermodel.PostInfo; OrderScanModel.PostCode = ordermodel.RevFax; OrderScanModel.TrackCode = ordermodel.TrackCode; var glist = new List(); foreach (var goods in ordermodel.GoodsList) { Sync_OrderScanGoods gmd = new Sync_OrderScanGoods(); gmd.Id = 0; gmd.GoodsCode = goods.GoodsCode; gmd.GoodsNum = goods.GoodsNum.Value; gmd.SKU = goods.GoodsOldCode; gmd.GoodsName = goods.GoodsName; if (goods.Weight != null) gmd.Weight = goods.Weight.Value; else gmd.Weight = 0; glist.Add(gmd); } OrderScanModel.GoodsList = glist; if (ordermodel.PostDate == null) { DT_TrackCodeScan snd = new DT_TrackCodeScan(); snd.OrderId = ordermodel.OrderId; snd.JoinOrderCode = ordermodel.JoinOrderCode; snd.OrderCode = ordermodel.PlatOrderCode; snd.TrackCode = ordermodel.TrackCode; snd.ScanUserId = model.UserId; snd.SureUserId = model.SureUserId; DataNew.SaveTrackCodeScan2(snd); } if (ordermodel.ErrorInfo != null && ordermodel.ErrorInfo != "") { OrderScanModel.ResultInfo = "Shipment not allowed " + ordermodel.ErrorInfo; md.Code = "400"; md.Result = OrderScanModel.ResultInfo; md.Data = JsonConvert.SerializeObject(OrderScanModel); } else if (ordermodel.PostDate != null) { md.Code = "400"; md.Result = "Repeated scanning"; md.Data = JsonConvert.SerializeObject(OrderScanModel); DT_TrackCodeScan snd = new DT_TrackCodeScan(); snd.OrderId = ordermodel.OrderId; snd.JoinOrderCode = ordermodel.JoinOrderCode; snd.OrderCode = ordermodel.PlatOrderCode; snd.TrackCode = ordermodel.TrackCode; snd.ScanUserId = model.UserId; snd.SureUserId = model.SureUserId;//拣货人 DataNew.SaveTrackCodeScan5(snd); } else if (OrderScanModel != null) { OrderScanModel.ResultInfo = "Scan Success"; md.Code = "100"; md.Result = OrderScanModel.ResultInfo; md.Data = JsonConvert.SerializeObject(OrderScanModel); } } else { md.Code = "400"; md.Result = "Tracking No non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "OrderScan") { GetData model =JsonConvert.DeserializeObject(ResponseContent); if (model != null&&model.Code!="") { model.Code = model.Code.Replace("\u0002", "").Replace("\n", ""); string Code2 = model.Code; if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92") { model.Code = model.Code.Substring(10); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92") { model.Code = model.Code.Substring(2); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94") { model.Code = model.Code; } else if (model.Code.Length >12) { model.Code = model.Code.Substring(model.Code.Length - 12); } var ordermodel = DataNew.GetScanOrderModelForTM4(model.Code, Code2); Sync_OrderScanModel OrderScanModel = new Sync_OrderScanModel(); if (ordermodel != null && ordermodel.GoodsList != null) { OrderScanModel.OrderId = ordermodel.OrderId.Value; OrderScanModel.OrderCode = ordermodel.PlatOrderCode; if (ordermodel.PrintDate != null) OrderScanModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm"); if (ordermodel.PostDate != null) OrderScanModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm"); OrderScanModel.RevName = ordermodel.RevName; OrderScanModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr; OrderScanModel.ShopName = ordermodel.ShopName; OrderScanModel.PostInfo = ordermodel.PostInfo; OrderScanModel.PostCode = ordermodel.RevFax; OrderScanModel.TrackCode = ordermodel.TrackCode; var glist = new List(); foreach (var goods in ordermodel.GoodsList) { Sync_OrderScanGoods gmd = new Sync_OrderScanGoods(); gmd.Id = 0; gmd.GoodsCode = goods.GoodsCode; gmd.GoodsNum = goods.GoodsNum.Value; gmd.SKU = goods.GoodsOldCode; gmd.GoodsName = goods.GoodsName; if (goods.Weight != null) gmd.Weight = goods.Weight.Value; else gmd.Weight = 0; glist.Add(gmd); } OrderScanModel.GoodsList = glist; if (ordermodel.PostDate== null) { DT_TrackCodeScan snd = new DT_TrackCodeScan(); snd.OrderId = ordermodel.OrderId; snd.JoinOrderCode = ordermodel.JoinOrderCode; snd.OrderCode = ordermodel.PlatOrderCode; snd.TrackCode = ordermodel.TrackCode; snd.ScanUserId = model.UserId; DataNew.SaveTrackCodeScan(snd); } if (ordermodel.ErrorInfo != null && ordermodel.ErrorInfo != "") { OrderScanModel.ResultInfo = "Shipment not allowed " + ordermodel.ErrorInfo; md.Code = "400"; md.Result = OrderScanModel.ResultInfo; md.Data = JsonConvert.SerializeObject(OrderScanModel); } else if (ordermodel.PostDate != null) { md.Code = "400"; md.Result = "Repeated scanning"; md.Data = JsonConvert.SerializeObject(OrderScanModel); } else if (OrderScanModel != null) { OrderScanModel.ResultInfo = "Scan Success"; md.Code = "100"; md.Result = OrderScanModel.ResultInfo; md.Data = JsonConvert.SerializeObject(OrderScanModel); } } else { md.Code = "400"; md.Result = "Tracking No non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "OrderReturnMid")//退货中间状态 { GetData model = JsonConvert.DeserializeObject(ResponseContent); if (model != null && model.Code != "") { model.Code = model.Code.Replace("\u0002", "").Replace("\n", ""); string Code2 = model.Code; if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92") { model.Code = model.Code.Substring(10); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92") { model.Code = model.Code.Substring(2); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94") { model.Code = model.Code; } else if (model.Code.Length > 12) { model.Code = model.Code.Substring(model.Code.Length - 12); } int UserId = model.UserId; var ordermodel = DataNew.GetScanOrderModelForReturnMid(model.Code, Code2, UserId); Sync_ReturnModel ReturnModel = new Sync_ReturnModel(); if (ordermodel != null && ordermodel.GoodsList != null) { ReturnModel.OrderId = ordermodel.OrderId.Value; if (ordermodel.OrderId.Value == 0) { ReturnModel.OrderCode = ""; ReturnModel.PrintDate = ""; ReturnModel.PostDate = ""; ReturnModel.RevName = ""; ReturnModel.RevAddr = ""; ReturnModel.ShopName = ""; ReturnModel.PostInfo = ""; ReturnModel.PostCode = ""; ReturnModel.TrackCode = ""; ReturnModel.OrderDate = ""; ReturnModel.PostionCode = ""; } else { if (ordermodel.OrderDate != null) ReturnModel.OrderDate = ordermodel.OrderDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.OrderCode = ordermodel.PlatOrderCode; if (ordermodel.PrintDate != null) ReturnModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm"); if (ordermodel.PostDate != null) ReturnModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.RevName = ordermodel.RevName; ReturnModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr; ReturnModel.ShopName = ordermodel.ShopName; ReturnModel.PostInfo = ordermodel.PostInfo; ReturnModel.PostCode = ordermodel.RevFax; ReturnModel.TrackCode = ordermodel.TrackCode; ReturnModel.PostionCode = ordermodel.OrderName; } var glist = new List(); foreach (var goods in ordermodel.GoodsList) { Sync_ReturnGoods gmd = new Sync_ReturnGoods(); gmd.Id = goods.Id.Value; gmd.GoodsCode = goods.GoodsCode; gmd.GoodsNum = goods.GoodsNum.Value; gmd.SKU = goods.GoodsOldCode; gmd.GoodsName = goods.GoodsName; if (goods.Weight != null) gmd.Weight = goods.Weight.Value; else gmd.Weight = 0; glist.Add(gmd); } ReturnModel.GoodsList = glist; if (ordermodel.TrackList != null) { var plist = new List(); foreach (var pmd in ordermodel.TrackList) { Sync_ReturnPostion ppmd = new Sync_ReturnPostion(); ppmd.PostionType = pmd.TrackType; ppmd.PostionCode = pmd.TrackCode; ppmd.PostionName = pmd.TrackCode2; plist.Add(ppmd); } ReturnModel.PostionList = plist; } md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(ReturnModel); } else { if((Code2.StartsWith("9") && Code2.Length==22) || (Code2.StartsWith("1Z") && Code2.Length==18) || (Code2.StartsWith("7") && Code2.Length==12) || (Code2.StartsWith("2") && Code2.Length==12) || (Code2.StartsWith("6") && Code2.Length == 20) || model.Code.Length>=12) { //var userInfo = DataNew.GetUserInfoByUserId(model.UserId); ////记录到快递跟踪码临时表,等操作人员填好数据之后,同步到DT_OrderReturn表 //DataNew.AddOrderReturnTrackingIdForScan(model.Code, model.UserId, userInfo == null ? "" : userInfo.WorkDesc); //md.Code = "400"; //md.Result = "Tracking No non-existent,Recorded on the Order Return TrackingId page, waiting for staff to process"; //md.Data = null; var ordRe = DataNew.GetDT_OrderReturnByTrackId(model.Code, Code2); if (ordRe == null) { var userInfo = DataNew.GetUserInfoByUserId(model.UserId); //记录到快递跟踪码临时表,等操作人员填好数据之后,同步到DT_OrderReturn表 var id = DataNew.AddOrderReturnTrackingIdForScanReturnID(model.Code,Code2, model.UserId, userInfo == null ? "" : userInfo.WorkDesc); if (id == 0) { md.Code = "400"; md.Result = "Tracking No non-existent,Recorded Fail"; md.Data = id.ToString(); } else { md.Code = "400"; md.Result = "Tracking No non-existent,Recorded on the Order Return TrackingId page, waiting for staff to process"; md.Data = id.ToString(); } } else { md.Code = "400"; md.Result = "Tracking No has been scanned"; md.Data = null; } } else { md.Code = "400"; md.Result = "Tracking No error, not belonging to Fedex, UPS, USPS"; md.Data = null; } } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if(Method== "OrderReturnMidNew") { GetData model = JsonConvert.DeserializeObject(ResponseContent); if (model != null && model.Code != "") { model.Code = model.Code.Replace("\u0002", "").Replace("\n", ""); string Code2 = model.Code; if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92") { model.Code = model.Code.Substring(10); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92") { model.Code = model.Code.Substring(2); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94") { model.Code = model.Code; } else if (model.Code.Length > 12) { model.Code = model.Code.Substring(model.Code.Length - 12); } int UserId = model.UserId; var ordermodel = DataNew.GetScanOrderModelForReturnMid(model.Code, Code2, UserId); Sync_ReturnModel ReturnModel = new Sync_ReturnModel(); if (ordermodel != null && ordermodel.GoodsList != null) { ReturnModel.OrderId = ordermodel.OrderId.Value; if (ordermodel.OrderId.Value == 0) { ReturnModel.OrderCode = ""; ReturnModel.PrintDate = ""; ReturnModel.PostDate = ""; ReturnModel.RevName = ""; ReturnModel.RevAddr = ""; ReturnModel.ShopName = ""; ReturnModel.PostInfo = ""; ReturnModel.PostCode = ""; ReturnModel.TrackCode = ""; ReturnModel.OrderDate = ""; ReturnModel.PostionCode = ""; } else { if (ordermodel.OrderDate != null) ReturnModel.OrderDate = ordermodel.OrderDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.OrderCode = ordermodel.PlatOrderCode; if (ordermodel.PrintDate != null) ReturnModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm"); if (ordermodel.PostDate != null) ReturnModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.RevName = ordermodel.RevName; ReturnModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr; ReturnModel.ShopName = ordermodel.ShopName; ReturnModel.PostInfo = ordermodel.PostInfo; ReturnModel.PostCode = ordermodel.RevFax; ReturnModel.TrackCode = ordermodel.TrackCode; ReturnModel.PostionCode = ordermodel.OrderName; } var glist = new List(); foreach (var goods in ordermodel.GoodsList) { Sync_ReturnGoods gmd = new Sync_ReturnGoods(); gmd.Id = goods.Id.Value; gmd.GoodsCode = goods.GoodsCode; gmd.GoodsNum = goods.GoodsNum.Value; gmd.SKU = goods.GoodsOldCode; gmd.GoodsName = goods.GoodsName; if (goods.Weight != null) gmd.Weight = goods.Weight.Value; else gmd.Weight = 0; glist.Add(gmd); } ReturnModel.GoodsList = glist; if (ordermodel.TrackList != null) { var plist = new List(); foreach (var pmd in ordermodel.TrackList) { Sync_ReturnPostion ppmd = new Sync_ReturnPostion(); ppmd.PostionType = pmd.TrackType; ppmd.PostionCode = pmd.TrackCode; ppmd.PostionName = pmd.TrackCode2; plist.Add(ppmd); } ReturnModel.PostionList = plist; } md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(ReturnModel); } else { if ((Code2.StartsWith("9") && Code2.Length == 22) || (Code2.StartsWith("1Z") && Code2.Length == 18) || (Code2.StartsWith("7") && Code2.Length == 12) || (Code2.StartsWith("2") && Code2.Length == 12) || (Code2.StartsWith("6") && Code2.Length == 20) || model.Code.Length>=12) { var ordRe = DataNew.GetDT_OrderReturnByTrackId(model.Code, Code2); if (ordRe==null) { var userInfo = DataNew.GetUserInfoByUserId(model.UserId); //记录到快递跟踪码临时表,等操作人员填好数据之后,同步到DT_OrderReturn表 var id = DataNew.AddOrderReturnTrackingIdForScanReturnID(model.Code,Code2, model.UserId, userInfo == null ? "" : userInfo.WorkDesc); if(id==0) { md.Code = "400"; md.Result = "Tracking No non-existent,Recorded Fail"; md.Data = id.ToString(); } else { md.Code = "404"; md.Result = "Tracking No non-existent,Recorded on the Order Return TrackingId page, waiting for staff to process"; md.Data = id.ToString(); } } else { md.Code = "400"; md.Result = "Tracking No has been scanned"; md.Data = null; } } else { md.Code = "400"; md.Result = "Tracking code error, not belonging to Fedex, UPS, USPS"; md.Data = null; } } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if(Method== "OrderReturnMidPhoto") { var model = JsonConvert.DeserializeObject(ResponseContent); if (string.IsNullOrEmpty(model.Photo)) { md.Code = "400"; md.Result = "Please upload express pictures"; md.Data = null; } else { string guid = Guid.NewGuid().ToString("N"); string photo1 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid + ".png"; string photo11 = "/attached/hwcreturn/" + guid + ".png"; //CustomIO.SetImage(photo1, model.Photo); string message = ""; if(!UploadImage(photo1, model.Photo, out message)) { md.Code = "400"; md.Result = "Upload Fail,Please try again"; md.Data = null; } else { var isSucc = DataNew.UploadPhotoOrderReturnTrackingId(model.ID, photo11); if (isSucc == 1) { md.Code = "100"; md.Result = "Success"; md.Data = null; } else { md.Code = "400"; md.Result = "Fail,Please rescan the tracking code"; md.Data = null; } } } } if (Method == "OrderReturn")//退货 { GetData model =JsonConvert.DeserializeObject(ResponseContent); if (model != null && model.Code != "") { model.Code = model.Code.Replace("\u0002", "").Replace("\n", ""); string Code2 = model.Code; if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92") { model.Code = model.Code.Substring(10); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92") { model.Code = model.Code.Substring(2); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94") { model.Code = model.Code; } else if (model.Code.Length > 12) { model.Code = model.Code.Substring(model.Code.Length - 12); } int UserId = model.UserId; var ordermodel = DataNew.GetScanOrderModelForReturnFinal(model.Code, Code2, UserId); Sync_ReturnModel ReturnModel = new Sync_ReturnModel(); if (ordermodel != null && ordermodel.GoodsList != null) { ReturnModel.OrderId = ordermodel.OrderId.Value; if (ordermodel.OrderId.Value == 0) { ReturnModel.OrderCode = ""; ReturnModel.PrintDate = ""; ReturnModel.PostDate = ""; ReturnModel.RevName = ""; ReturnModel.RevAddr = ""; ReturnModel.ShopName = ""; ReturnModel.PostInfo = ""; ReturnModel.PostCode = ""; ReturnModel.TrackCode = ""; ReturnModel.OrderDate = ""; ReturnModel.PostionCode = ""; } else { if (ordermodel.OrderDate != null) ReturnModel.OrderDate = ordermodel.OrderDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.OrderCode = ordermodel.PlatOrderCode; if (ordermodel.PrintDate != null) ReturnModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm"); if (ordermodel.PostDate != null) ReturnModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.RevName = ordermodel.RevName; ReturnModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr; ReturnModel.ShopName = ordermodel.ShopName; ReturnModel.PostInfo = ordermodel.PostInfo; ReturnModel.PostCode = ordermodel.RevFax; ReturnModel.TrackCode = ordermodel.TrackCode; ReturnModel.PostionCode = ordermodel.OrderName; } var glist = new List(); foreach (var goods in ordermodel.GoodsList) { Sync_ReturnGoods gmd = new Sync_ReturnGoods(); gmd.Id = goods.Id.Value; gmd.GoodsCode = goods.GoodsCode; gmd.GoodsNum = goods.GoodsNum.Value; gmd.SKU = goods.GoodsOldCode; gmd.GoodsName = goods.GoodsName; if (goods.Weight != null) gmd.Weight = goods.Weight.Value; else gmd.Weight = 0; glist.Add(gmd); } ReturnModel.GoodsList = glist; if (ordermodel.TrackList != null) { var plist = new List(); foreach (var pmd in ordermodel.TrackList) { Sync_ReturnPostion ppmd = new Sync_ReturnPostion(); ppmd.PostionType = pmd.TrackType; ppmd.PostionCode = pmd.TrackCode; ppmd.PostionName = pmd.TrackCode2; plist.Add(ppmd); } ReturnModel.PostionList = plist; } md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(ReturnModel); } else { md.Code = "400"; md.Result = "Tracking No non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "OrderReturnold")//退货 { GetData model =JsonConvert.DeserializeObject(ResponseContent); if (model != null && model.Code != "") { model.Code = model.Code.Replace("\u0002", "").Replace("\n", ""); string Code2 = model.Code; if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92") { model.Code = model.Code.Substring(10); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92") { model.Code = model.Code.Substring(2); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94") { model.Code = model.Code; } else if (model.Code.Length > 12) { model.Code = model.Code.Substring(model.Code.Length - 12); } var ordermodel = DataNew.GetScanOrderModelForTM5(model.Code, Code2); Sync_ReturnModel ReturnModel = new Sync_ReturnModel(); if (ordermodel != null && ordermodel.GoodsList != null) { ReturnModel.OrderId = ordermodel.OrderId.Value; if (ordermodel.OrderId.Value == 0) { ReturnModel.OrderCode = ""; ReturnModel.PrintDate = ""; ReturnModel.PostDate = ""; ReturnModel.RevName = ""; ReturnModel.RevAddr = ""; ReturnModel.ShopName = ""; ReturnModel.PostInfo = ""; ReturnModel.PostCode = ""; ReturnModel.TrackCode = ""; ReturnModel.OrderDate = ""; } else { if (ordermodel.OrderDate != null) ReturnModel.OrderDate = ordermodel.OrderDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.OrderCode = ordermodel.PlatOrderCode; if (ordermodel.PrintDate != null) ReturnModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm"); if (ordermodel.PostDate != null) ReturnModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.RevName = ordermodel.RevName; ReturnModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr; ReturnModel.ShopName = ordermodel.ShopName; ReturnModel.PostInfo = ordermodel.PostInfo; ReturnModel.PostCode = ordermodel.RevFax; ReturnModel.TrackCode = ordermodel.TrackCode; } var glist = new List(); foreach (var goods in ordermodel.GoodsList) { Sync_ReturnGoods gmd = new Sync_ReturnGoods(); gmd.Id = goods.Id.Value; gmd.GoodsCode = goods.GoodsCode; gmd.GoodsNum = goods.GoodsNum.Value; gmd.SKU = goods.GoodsOldCode; gmd.GoodsName = goods.GoodsName; if (goods.Weight != null) gmd.Weight = goods.Weight.Value; else gmd.Weight = 0; glist.Add(gmd); } ReturnModel.GoodsList = glist; md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(ReturnModel); } else { md.Code = "400"; md.Result = "Tracking No non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "ReturnSaveMid")//退货中间状态 { Sync_ReturnGoodsSave model = JsonConvert.DeserializeObject(ResponseContent); if (model != null) { int returnid = 0; foreach (var gmd in model.GoodsList) { DT_BackGoodsNew backmodel = new DT_BackGoodsNew(); backmodel.PostionCode = model.StoreCode; backmodel.OrderId = model.OrderId; backmodel.InUserId = model.UserId; backmodel.Num = gmd.GoodsNum; backmodel.TrackCode = model.TrackCode; backmodel.OrderCode = model.OrderCode; backmodel.InType = model.InType; if (model.InType == 1) backmodel.GoodsState = 1; else if (model.InType == 3) backmodel.GoodsState = 3; else if (model.InType == 2) backmodel.GoodsState = 6; backmodel.DetailId = gmd.GoodsId; if (model.OrderId > 0) backmodel.State = 1; else backmodel.State = 0; backmodel.InDate = DateTime.Now; if (model.Photo1 != null && model.Photo1 != "") { string guid = Guid.NewGuid().ToString("N"); string photo1 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid + ".png"; string photo11 = "/attached/hwcreturn/" + guid + ".png"; CustomIO.SetImage(photo1, model.Photo1); backmodel.ImgUrl = photo11; } if (model.Photo2 != null && model.Photo2 != "") { string guid2 = Guid.NewGuid().ToString("N"); string photo2 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid2 + ".png"; string photo22 = "/attached/hwcreturn/" + guid2 + ".png"; CustomIO.SetImage(photo2, model.Photo2); backmodel.ImgUrl2 = photo22; } if (model.Photo3 != null && model.Photo3 != "") { string guid3 = Guid.NewGuid().ToString("N"); string photo3 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid3 + ".png"; string photo33 = "/attached/hwcreturn/" + guid3 + ".png"; CustomIO.SetImage(photo3, model.Photo3); backmodel.ImgUrl3 = photo33; } returnid = DataNew.SaveBackGoodsInReturnMid(backmodel); if (returnid <= 0) break; } if (returnid > 0) { md.Code = "100"; md.Result = "Success"; md.Data = ""; } else if (returnid == -1) { md.Code = "400"; md.Result = "This code goods Operation record already exists"; md.Data = null; } else { md.Code = "400"; md.Result = "Storage Location non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "ReturnSave")//退货 { Sync_ReturnGoodsSave model =JsonConvert.DeserializeObject(ResponseContent); if (model != null) { int returnid = 0; foreach (var gmd in model.GoodsList) { DT_BackGoodsNew backmodel = new DT_BackGoodsNew(); backmodel.PostionCode = string.IsNullOrEmpty(model.StoreCode) ? "" : model.StoreCode; backmodel.OrderId = model.OrderId; backmodel.InUserId = model.UserId; backmodel.Num = gmd.GoodsNum; backmodel.TrackCode = string.IsNullOrEmpty(model.TrackCode) ? "" : model.TrackCode; backmodel.OrderCode = string.IsNullOrEmpty(model.OrderCode) ? "" : model.OrderCode; backmodel.InType = model.InType; if (model.InType == 1) backmodel.GoodsState = 1; else if (model.InType == 3) backmodel.GoodsState = 3; else if (model.InType == 2) backmodel.GoodsState = 6; backmodel.DetailId = gmd.GoodsId; if (model.OrderId > 0) backmodel.State = 1; else backmodel.State = 0; backmodel.InDate = DateTime.Now; if (model.Photo1 != null && model.Photo1 != "") { string guid = Guid.NewGuid().ToString("N"); string photo1 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid + ".png"; string photo11 = "/attached/hwcreturn/" + guid + ".png"; CustomIO.SetImage(photo1, model.Photo1); backmodel.ImgUrl = photo11; } else { backmodel.ImgUrl = ""; } if (model.Photo2 != null && model.Photo2 != "") { string guid2 = Guid.NewGuid().ToString("N"); string photo2 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid2 + ".png"; string photo22 = "/attached/hwcreturn/" + guid2 + ".png"; CustomIO.SetImage(photo2, model.Photo2); backmodel.ImgUrl2 = photo22; } if (model.Photo3 != null && model.Photo3 != "") { string guid3 = Guid.NewGuid().ToString("N"); string photo3 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid3 + ".png"; string photo33 = "/attached/hwcreturn/" + guid3 + ".png"; CustomIO.SetImage(photo3, model.Photo3); backmodel.ImgUrl3= photo33; } returnid = DataNew.SaveBackGoodsInReturn(backmodel); if (returnid <= 0) break; } if (returnid > 0) { md.Code = "100"; md.Result = "Success"; md.Data = ""; } else if (returnid == -1) { md.Code = "400"; md.Result = "This code goods Operation record already exists"; md.Data = null; } else { md.Code = "400"; md.Result = "Storage Location non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "ReturnSaveold")//退货 { Sync_ReturnGoodsSave model =JsonConvert.DeserializeObject(ResponseContent); if (model != null) { int returnid = 0; foreach(var gmd in model.GoodsList) { DT_BackGoodsNew backmodel = new DT_BackGoodsNew(); backmodel.PostionCode = model.StoreCode; backmodel.OrderId = model.OrderId; backmodel.InUserId = model.UserId; backmodel.Num = gmd.GoodsNum; backmodel.TrackCode = model.TrackCode; backmodel.OrderCode = model.OrderCode; backmodel.InType = model.InType; if (model.InType == 1) backmodel.GoodsState = 1; else if (model.InType == 3) backmodel.GoodsState = 3; else if (model.InType == 2) backmodel.GoodsState = 6; backmodel.DetailId = gmd.GoodsId; if(model.OrderId>0) backmodel.State = 1; else backmodel.State = 0; backmodel.InDate = DateTime.Now; if(model.Photo1!=null&&model.Photo1!="") { string guid=Guid.NewGuid().ToString("N"); string photo1= AppDomain.CurrentDomain.BaseDirectory+"attached/hwcreturn/" +guid+".png"; string photo11 = "/attached/hwcreturn/" + guid + ".png"; CustomIO.SetImage(photo1, model.Photo1); backmodel.ImgUrl = photo11; } if (model.Photo2 != null && model.Photo2 != "") { string guid2 = Guid.NewGuid().ToString("N"); string photo2 = AppDomain.CurrentDomain.BaseDirectory+"attached/hwcreturn/" + guid2 + ".png"; string photo22 = "/attached/hwcreturn/" + guid2 + ".png"; CustomIO.SetImage(photo2, model.Photo2); backmodel.ImgUrl2 = photo22; } if (model.Photo3 != null && model.Photo3 != "") { string guid3 = Guid.NewGuid().ToString("N"); string photo3 = AppDomain.CurrentDomain.BaseDirectory+ "attached/hwcreturn/" + guid3 + ".png"; string photo33 = "/attached/hwcreturn/" + guid3 + ".png"; CustomIO.SetImage(photo3, model.Photo3); backmodel.ImgUrl2 = photo33; } returnid=DataNew.SaveBackGoodsIn(backmodel); if (returnid <= 0) break; } if (returnid >0) { md.Code = "100"; md.Result = "Success"; md.Data = ""; } else if (returnid ==-1) { md.Code = "400"; md.Result = "This code goods Operation record already exists"; md.Data = null; } else { md.Code = "400"; md.Result = "Storage Location non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "UploadImage") { OrderReturnMidPhotoModel model = JsonConvert.DeserializeObject(ResponseContent); try { if (model.Photo != null && model.Photo != "") { string guid = Guid.NewGuid().ToString("N"); string photo1 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid + ".png"; string photo11 = "/attached/hwcreturn/" + guid + ".png"; CustomIO.SetImage(photo1, model.Photo); md.Code = "100"; md.Result = photo11; md.Data = null; } else { md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } catch (Exception e) { md.Code = "400"; md.Result = "Upload Image Fail"; md.Data = null; } } if (Method == "ReturnSaveNew") { Sync_ReturnGoodsSave model = JsonConvert.DeserializeObject(ResponseContent); if (model != null) { int returnid = 0; foreach (var gmd in model.GoodsList) { DT_BackGoodsNew backmodel = new DT_BackGoodsNew(); backmodel.PostionCode = string.IsNullOrEmpty(model.StoreCode) ? "" : model.StoreCode; backmodel.OrderId = model.OrderId; backmodel.InUserId = model.UserId; backmodel.Num = gmd.GoodsNum; backmodel.TrackCode = string.IsNullOrEmpty(model.TrackCode) ? "" : model.TrackCode; backmodel.OrderCode = string.IsNullOrEmpty(model.OrderCode) ? "" : model.OrderCode; backmodel.InType = model.InType; if (model.InType == 1) backmodel.GoodsState = 1; else if (model.InType == 3) backmodel.GoodsState = 3; else if (model.InType == 2) backmodel.GoodsState = 6; backmodel.DetailId = gmd.GoodsId; if (model.OrderId > 0) backmodel.State = 1; else backmodel.State = 0; backmodel.InDate = DateTime.Now; backmodel.ImgUrl = string.IsNullOrEmpty(model.Photo1) ? "" : model.Photo1; backmodel.ImgUrl2 = string.IsNullOrEmpty(model.Photo2) ? "" : model.Photo2; backmodel.ImgUrl3 = string.IsNullOrEmpty(model.Photo3) ? "" : model.Photo3; backmodel.ImgUrl4 = string.IsNullOrEmpty(model.Photo4) ? "" : model.Photo4; backmodel.ImgUrl5 = string.IsNullOrEmpty(model.Photo5) ? "" : model.Photo5; returnid = DataNew.SaveBackGoodsInReturn(backmodel); if (returnid <= 0) break; } if (returnid > 0) { md.Code = "100"; md.Result = "Success"; md.Data = ""; } else if (returnid == -1) { md.Code = "400"; md.Result = "This code goods Operation record already exists"; md.Data = null; } else { md.Code = "400"; md.Result = "Storage Location non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if(Method== "ReturnSaveMidNew") { Sync_ReturnGoodsSave model = JsonConvert.DeserializeObject(ResponseContent); if (model != null) { int returnid = 0; foreach (var gmd in model.GoodsList) { DT_BackGoodsNew backmodel = new DT_BackGoodsNew(); backmodel.PostionCode = model.StoreCode; backmodel.OrderId = model.OrderId; backmodel.InUserId = model.UserId; backmodel.Num = gmd.GoodsNum; backmodel.TrackCode = model.TrackCode; backmodel.OrderCode = model.OrderCode; backmodel.InType = model.InType; if (model.InType == 1) backmodel.GoodsState = 1; else if (model.InType == 3) backmodel.GoodsState = 3; else if (model.InType == 2) backmodel.GoodsState = 6; backmodel.DetailId = gmd.GoodsId; if (model.OrderId > 0) backmodel.State = 1; else backmodel.State = 0; backmodel.InDate = DateTime.Now; backmodel.ImgUrl = string.IsNullOrEmpty(model.Photo1) ? "" : model.Photo1; backmodel.ImgUrl2 = string.IsNullOrEmpty(model.Photo2) ? "" : model.Photo2; backmodel.ImgUrl3 = string.IsNullOrEmpty(model.Photo3) ? "" : model.Photo3; backmodel.ImgUrl4 = string.IsNullOrEmpty(model.Photo4) ? "" : model.Photo4; backmodel.ImgUrl5 = string.IsNullOrEmpty(model.Photo5) ? "" : model.Photo5; returnid = DataNew.SaveBackGoodsInReturnMid(backmodel); if (returnid <= 0) break; } if (returnid > 0) { md.Code = "100"; md.Result = "Success"; md.Data = ""; } else if (returnid == -1) { md.Code = "400"; md.Result = "This code goods Operation record already exists"; md.Data = null; } else { md.Code = "400"; md.Result = "Storage Location non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "GetOrderUsedSalePlatform") { var input = JsonConvert.DeserializeObject(ResponseContent); if (string.IsNullOrWhiteSpace(input.SkuCode)) { md.Code = "400"; md.Result = "Please enter sku code"; md.Data = null; } else { input.SkuCode = input.SkuCode.Trim(); using (var db = new ErpDbContext()) { var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.SKU1 == input.SkuCode || x.SKU2 == input.SkuCode || x.SKU3 == input.SkuCode || x.SKU4 == input.SkuCode || x.SKU5 == input.SkuCode || x.Barcode == input.SkuCode); if (sku is null) { throw new Exception($"There is no SKU encoded as {input.SkuCode}"); } var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId); var result = new GetOrderUsedSalePlatformDto { ProductCode = product?.GoodsCode, ProductDescription = product?.GoodsEnglisgName, SkuId = sku.DetailId, SkuCode = sku.SKU1 }; md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(result); } } } if (Method == "PostOrderUsedSalePlatform") { var input = JsonConvert.DeserializeObject(ResponseContent); var validatedSuccess = true; if (input.SkuId<=0) { md.Code = "400"; md.Result = "Please enter sku code"; md.Data = null; validatedSuccess = false; } if (string.IsNullOrWhiteSpace(input.WarehousePositionCode)) { md.Code = "400"; md.Result = "Please enter the storage location"; md.Data = null; validatedSuccess = false; } if (input.ImageUrls is null || !input.ImageUrls.Any()) { md.Code = "400"; md.Result = "Please upload photos"; md.Data = null; validatedSuccess = false; } if (validatedSuccess) { using (var db = new ErpDbContext()) { var user = db.JC_UserInfo.FirstOrDefault(x => x.UserId == input.UserId); if (user is null || (user.WorkDesc != "西仓" && user.WorkDesc != "东仓")) { throw new Exception("Non warehouse staff"); } var warehouseLocation = WarehouseLocation.East; if (user.WorkDesc == "西仓") { warehouseLocation = WarehouseLocation.West; } var storePosition = db.CK_StorePostion.FirstOrDefault(x => x.PostionCode == input.WarehousePositionCode.Trim()); if (storePosition is null) { throw new Exception( $"There is no storage location encoded as {input.WarehousePositionCode}"); } var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.DetailId == input.SkuId); if (sku is null) { throw new Exception($"There is no SKU with ID {input.SkuId}"); } var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId); if (product is null) { throw new Exception($"There is no product with ID {sku.GoodsId}"); } var newOrderUsedSalePlatform = new TradeUsedSale.Repositories.Models.DT_OrderUsedSalePlatform { ProductId = product.GoodsId, ProductCode = product.GoodsCode, SkuId = sku.DetailId, SkuCode = sku.SKU1, BarCode =string.Empty, IsPrinted = false, Status = UsedSalePlatformStatus.NotListed, WarehouseLocation = warehouseLocation, WarehousePositionId = storePosition.PostionId, WarehousePositionCode = storePosition.PostionCode, ImageUrls = JsonConvert.SerializeObject(input.ImageUrls), CreationTime = DateTime.Now, CreatorId = input.UserId, }; var newOrderUsedSalePlatformId = db.InsertWithInt32Identity(newOrderUsedSalePlatform); var barCode = $"{(warehouseLocation == WarehouseLocation.East ? "E" : "W")}{newOrderUsedSalePlatformId.ToString().PadLeft(7, '0')}"; db.DT_OrderUsedSalePlatform.Where(x => x.Id == newOrderUsedSalePlatformId) .Set(x => x.BarCode, barCode) .Update(); md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(newOrderUsedSalePlatform); } } } //SkuId,WarehousePositionCode,ImageUrls ,UserId if (Method == "ReturnSaveNew_250123") { Sync_ReturnGoodsSave model = JsonConvert.DeserializeObject(ResponseContent); if (model != null) { int returnid = 0; foreach (var gmd in model.GoodsList) { DT_BackGoodsNew backmodel = new DT_BackGoodsNew(); backmodel.PostionCode = string.IsNullOrEmpty(model.StoreCode) ? "" : model.StoreCode; backmodel.OrderId = model.OrderId; backmodel.InUserId = model.UserId; backmodel.Num = gmd.GoodsNum; backmodel.TrackCode = string.IsNullOrEmpty(model.TrackCode) ? "" : model.TrackCode; backmodel.OrderCode = string.IsNullOrEmpty(model.OrderCode) ? "" : model.OrderCode; backmodel.InType = model.InType; if (model.InType == 1) backmodel.GoodsState = 1; else if (model.InType == 3) backmodel.GoodsState = 3; else if (model.InType == 2) backmodel.GoodsState = 6; //如果 InType=2,4,5 生成2手数据 if (model.InType == 2 || model.InType == 4 || model.InType == 5) { if (model.GoodsList.Count>0) { foreach (var i in model.GoodsList) { using (var db = new ErpDbContext()) { var user = db.JC_UserInfo.FirstOrDefault(x => x.UserId == model.UserId); var warehouseLocation = WarehouseLocation.East; if (user.WorkDesc == "西仓") { warehouseLocation = WarehouseLocation.West; } var storePosition = db.CK_StorePostion.FirstOrDefault(x => x.PostionCode == model.StoreCode.Trim()); if (storePosition is null) { throw new Exception( $"There is no storage location encoded as {model.StoreCode}"); } var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.SKU1 == i.SKU || x.SKU2 == i.SKU || x.SKU3 == i.SKU || x.SKU4 == i.SKU); if (sku is null) { throw new Exception($"There is no SKU with {i.SKU}"); } var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId); if (product is null) { throw new Exception($"There is no product with ID {sku.GoodsId}"); } var newOrderUsedSalePlatform = new TradeUsedSale.Repositories.Models.DT_OrderUsedSalePlatform { ProductId = product.GoodsId, ProductCode = product.GoodsCode, SkuId = sku.DetailId, SkuCode = sku.SKU1, BarCode = string.Empty, IsPrinted = false, Status = UsedSalePlatformStatus.NotListed, WarehouseLocation = warehouseLocation, WarehousePositionId = storePosition.PostionId, WarehousePositionCode = storePosition.PostionCode, ImageUrls = JsonConvert.SerializeObject(i.ImageUrls), CreationTime = DateTime.Now, CreatorId = model.UserId, TrackingCode = backmodel.TrackCode }; var newOrderUsedSalePlatformId = db.InsertWithInt32Identity(newOrderUsedSalePlatform); var barCode = $"{(warehouseLocation == WarehouseLocation.East ? "E" : "W")}{newOrderUsedSalePlatformId.ToString().PadLeft(7, '0')}"; db.DT_OrderUsedSalePlatform.Where(x => x.Id == newOrderUsedSalePlatformId) .Set(x => x.BarCode, barCode) .Update(); } } } } backmodel.DetailId = gmd.GoodsId; if (model.OrderId > 0) backmodel.State = 1; else backmodel.State = 0; backmodel.InDate = DateTime.Now; backmodel.ImgUrl = string.IsNullOrEmpty(model.Photo1) ? "" : model.Photo1; backmodel.ImgUrl2 = string.IsNullOrEmpty(model.Photo2) ? "" : model.Photo2; backmodel.ImgUrl3 = string.IsNullOrEmpty(model.Photo3) ? "" : model.Photo3; backmodel.ImgUrl4 = string.IsNullOrEmpty(model.Photo4) ? "" : model.Photo4; backmodel.ImgUrl5 = string.IsNullOrEmpty(model.Photo5) ? "" : model.Photo5; returnid = DataNew.SaveBackGoodsInReturn(backmodel); if (returnid <= 0) break; } if (returnid > 0) { md.Code = "100"; md.Result = "Success"; md.Data = ""; } else if (returnid == -1) { md.Code = "400"; md.Result = "This code goods Operation record already exists"; md.Data = null; } else { md.Code = "400"; md.Result = "Storage Location non-existent"; md.Data = null; } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "GetPickupOrderUsedSalePlatform") { var input = JsonConvert.DeserializeObject(ResponseContent); if (string.IsNullOrWhiteSpace(input.BarCode)) { md.Code = "400"; md.Result = "Please enter barcode"; md.Data = null; } else { input.BarCode = input.BarCode.Trim(); using (var db = new ErpDbContext()) { var orderUsedSalePlatform = db.DT_OrderUsedSalePlatform.FirstOrDefault(x => x.BarCode == input.BarCode && x.Status == UsedSalePlatformStatus.PendingPickup); if (orderUsedSalePlatform is null) { throw new Exception( $"No barcode for {input.BarCode} to be shipped used sale item exists"); } var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == orderUsedSalePlatform.ProductId); var result = new GetPickupOrderUsedSalePlatformDto { Id = orderUsedSalePlatform.Id, ProductId = orderUsedSalePlatform.ProductId, ProductCode = orderUsedSalePlatform.ProductCode, ProductDescription = product?.GoodsEnglisgName, SkuId = orderUsedSalePlatform.SkuId, SkuCode = orderUsedSalePlatform.SkuCode, BarCode = orderUsedSalePlatform.BarCode, IsPrinted = orderUsedSalePlatform.IsPrinted, Status = orderUsedSalePlatform.Status, WarehouseLocation =orderUsedSalePlatform.WarehouseLocation, WarehousePositionId = orderUsedSalePlatform.WarehousePositionId, WarehousePositionCode = orderUsedSalePlatform.WarehousePositionCode, ImageUrls = JsonConvert.DeserializeObject>(orderUsedSalePlatform.ImageUrls), ShippingMethod = orderUsedSalePlatform.ShippingMethod, IsNew = orderUsedSalePlatform.IsNew, CreationTime = orderUsedSalePlatform.CreationTime, CreatorId = orderUsedSalePlatform.CreatorId }; md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(result); } } } //xsx OrderReturn结合GetPickupOrderUsedSalePlatform if (Method == "OrderReturnAndPickupOrderUsedSale")//退货 { GetData model = JsonConvert.DeserializeObject(ResponseContent); TradeUsedSale.Repositories.Models.HW_GoodsDetail sku =new TradeUsedSale.Repositories.Models.HW_GoodsDetail(); HW_GoodsInfo product = new HW_GoodsInfo(); Sync_ReturnModel ReturnModel = new Sync_ReturnModel(); string SkuCode = string.Empty; if (model != null && model.Code != "") { SkuCode = model.Code.Trim(); using (var db = new ErpDbContext()) { sku = db.HW_GoodsDetail.FirstOrDefault(x => x.SKU1 == SkuCode || x.SKU2 == SkuCode || x.SKU3 == SkuCode || x.SKU4 == SkuCode || x.SKU5 == SkuCode || x.Barcode == SkuCode); if (sku != null) { product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId); } } //判断是否是sku 是-返回sku的货物信息 ,否-尝试获取退货跟踪号货物信息 if (sku != null) { var result = new GetOrderUsedSalePlatformDto { ProductCode = product?.GoodsCode, ProductDescription = product?.GoodsEnglisgName, SkuId = sku.DetailId, SkuCode = sku.SKU1 }; md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(result); } else { string originalSearchValue = model.Code; model.Code = model.Code.Replace("\u0002", "").Replace("\u001d", "").Replace("\n", "").Replace(" ", ""); string Code2 = model.Code; string Code3 = model.Code; string Code4 = model.Code; string Code5 = model.Code; if (model.Code.Length == 30 && model.Code.Substring(8, 2) == "92") { Code4 = model.Code.Substring(10); } if (model.Code.Length == 33 && model.Code.Substring(0, 2) == "96") { Code4 = model.Code.Substring(21); } if (originalSearchValue.Length == 34 && string.IsNullOrWhiteSpace(Code4)) { Code4 = originalSearchValue.Substring(22); } if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92") { Code3 = model.Code.Substring(8); model.Code = model.Code.Substring(10); } else if (model.Code.Length == 30 && model.Code.Substring(8, 2) == "92")//USPS 420809239261290359305328471212 系统61290359305328471212 { Code3 = model.Code; model.Code = model.Code.Substring(10); } else if (model.Code.Length == 34 && model.Code.Substring(8, 2) == "92")//D-UPS 4207102492612903033602543475000211 { Code3 = model.Code; model.Code = model.Code.Substring(8); } else if (model.Code.Length == 34 && model.Code.Substring(12, 2) == "92")//USPS 4204485791309200190368766508341877 420531051910 9200190368766508349767 { Code3 = model.Code; model.Code = model.Code.Substring(12); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92") { Code3 = model.Code; model.Code = model.Code.Substring(2); } else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94") { Code3 = model.Code; model.Code = model.Code; } else if (model.Code.Length > 22 && model.Code.Substring(0, 2) == "96") { Code3 = model.Code; int startIndex = 22; // 开始索引 int length = 12; // 子字符串的长度 model.Code = model.Code.Substring(startIndex, length); } else if (model.Code.Length > 20 && model.Code.Substring(8, 2) == "94") { //示例:420926479400111206204134325488(USPS) Code3 = model.Code.Substring(8); model.Code = model.Code.Substring(10); } else if (Code2.Length > 20 && Code2.Substring(8, 2) == "94") { Code3 = Code2.Substring(8); model.Code = Code2.Substring(10); } else if (model.Code.Length > 12) { Code3 = model.Code.Substring(model.Code.Length - 12); model.Code = model.Code.Substring(model.Code.Length - 12); } int UserId = model.UserId; var ordermodel = DataNew.GetScanOrderModelForReturnFinal_250123(originalSearchValue, Code2, Code3, Code4, Code5, UserId); if (ordermodel != null && ordermodel.GoodsList != null) { ReturnModel.OrderId = ordermodel.OrderId.Value; if (ordermodel.OrderId.Value == 0) { ReturnModel.OrderCode = ""; ReturnModel.PrintDate = ""; ReturnModel.PostDate = ""; ReturnModel.RevName = ""; ReturnModel.RevAddr = ""; ReturnModel.ShopName = ""; ReturnModel.PostInfo = ""; ReturnModel.PostCode = ""; ReturnModel.TrackCode = ""; ReturnModel.OrderDate = ""; ReturnModel.PostionCode = ""; } else { if (ordermodel.OrderDate != null) ReturnModel.OrderDate = ordermodel.OrderDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.OrderCode = ordermodel.PlatOrderCode; if (ordermodel.PrintDate != null) ReturnModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm"); if (ordermodel.PostDate != null) ReturnModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm"); ReturnModel.RevName = ordermodel.RevName; ReturnModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr; ReturnModel.ShopName = ordermodel.ShopName; ReturnModel.PostInfo = ordermodel.PostInfo; ReturnModel.PostCode = ordermodel.RevFax; ReturnModel.TrackCode = ordermodel.TrackCode; ReturnModel.PostionCode = ordermodel.OrderName; } var glist = new List(); foreach (var goods in ordermodel.GoodsList) { Sync_ReturnGoods gmd = new Sync_ReturnGoods(); gmd.Id = goods.Id.Value; gmd.GoodsCode = goods.GoodsCode; gmd.GoodsNum = goods.GoodsNum.Value; gmd.SKU = goods.GoodsOldCode; gmd.GoodsName = goods.GoodsName; if (goods.Weight != null) gmd.Weight = goods.Weight.Value; else gmd.Weight = 0; glist.Add(gmd); } ReturnModel.GoodsList = glist; if (ordermodel.TrackList != null) { var plist = new List(); foreach (var pmd in ordermodel.TrackList) { Sync_ReturnPostion ppmd = new Sync_ReturnPostion(); ppmd.PostionType = pmd.TrackType; ppmd.PostionCode = pmd.TrackCode; ppmd.PostionName = pmd.TrackCode2; plist.Add(ppmd); } ReturnModel.PostionList = plist; } md.Code = "100"; md.Result = "Success"; md.Data = JsonConvert.SerializeObject(ReturnModel); } else { md.Code = "400"; md.Result = "Tracking No non-existent"; md.Data = null; } } } else { //获取用户数据 // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); md.Code = "400"; md.Result = "Data transmission error"; md.Data = null; } } if (Method == "SelfPickupOrderUsedSalePlatform") { var input = JsonConvert.DeserializeObject(ResponseContent); using (var db = new ErpDbContext()) { var orderUsedSalePlatformList = db.DT_OrderUsedSalePlatform.Where(x => input.Ids.Contains(x.Id) && x.Status == UsedSalePlatformStatus.PendingPickup) .ToList(); if (orderUsedSalePlatformList.Any()) { db.DT_OrderUsedSalePlatform.Where(x => input.Ids.Contains(x.Id) && x.Status == UsedSalePlatformStatus.PendingPickup) .Set(x => x.ShippingMethod, ShippingMethod.SelfPickup) .Set(x => x.Status, UsedSalePlatformStatus.Sold) .Set(x => x.LastModifierId, input.UserId) .Set(x => x.LastModificationTime, DateTime.Now) .Update(); } } md.Code = "100"; md.Result = "Success"; md.Data = null; } } } catch (Exception ex) { md.Code = "104"; md.Result = ex.Message; } content2 = JsonConvert.SerializeObject(md); ErrorFollow.TraceWrite("返回值", "", content2); context.Response.Write(content2); } public bool UploadImage(string filePath, string ImageBase64,out string message) { try { char[] array = ImageBase64.ToCharArray(); var photo = Convert.FromBase64CharArray(array, 0, array.Length); MemoryStream memoryStream = new MemoryStream(photo); Image image = Image.FromStream(memoryStream, useEmbeddedColorManagement: true); image.Save(filePath, image.RawFormat); memoryStream.Dispose(); image.Dispose(); message = ""; return true; } catch (Exception ex) { message = ex.Message; return false; } } public bool IsReusable { get { return false; } } public class UserLogin { public string UserName { get; set; } public string Password { get; set; } public string UserCode { get; set; } } public class UserModel { public string Name { get; set; } public int UserId { get; set; } } public class SyncDataModel { public string Result { get; set; } public string Code { get; set; } public string Data { get; set; } } /// /// 传入参数 /// public class GetData { public string Code { get; set; } public int UserId { get; set; } public int SureUserId { get; set; } } /// /// 扫描返回 /// public class Sync_OrderScanModel { public int OrderId { get; set; } public string OrderCode { get; set; } public string OrderDate { get; set; } public string PostDate { get; set; } public string PrintDate { get; set; } public string PostInfo { get; set; } public string PostCode { get; set; } public string RevAddr { get; set; } public string RevName { get; set; } public string ShopName { get; set; } public string TrackCode { get; set; } public string ResultInfo { get; set; } public List GoodsList { get; set; } } public class Sync_OrderScanGoods { public int Id { get; set; } public string GoodsCode { get; set; } public string GoodsName { get; set; } public int GoodsNum { get; set; } public string SKU { get; set; } public string TypeDesc { get; set; } public decimal Weight { get; set; } } /// /// 退货返回 /// public class Sync_ReturnModel { public int OrderId { get; set; } public string OrderCode { get; set; } public string OrderDate { get; set; } public string PostDate { get; set; } public string PrintDate { get; set; } public string PostInfo { get; set; } public string PostCode { get; set; } public string PostionCode { get; set; } public string RevAddr { get; set; } public string RevName { get; set; } public string ShopName { get; set; } public string TrackCode { get; set; } public string ResultInfo { get; set; } public List GoodsList { get; set; } public List PostionList { get; set; } } public class Sync_ReturnPostion { /// /// 库位类型 operationtype=restore 的时候 对应 库位类型1 /// public Int32? PostionType { get; set; } /// /// 库位编号 /// public string PostionCode { get; set; } /// /// 库位 /// public string PostionName { get; set; } } public class Sync_ReturnGoods { public int Id { get; set; } public string GoodsCode { get; set; } public string GoodsName { get; set; } public int GoodsNum { get; set; } public string SKU { get; set; } public string TypeDesc { get; set; } public decimal Weight { get; set; } } /// /// 入库提交 /// public class Sync_ReturnGoodsSave { /// /// 1 直接入库 2 没外包装 3 报废 /// public int InType { get; set; } /// /// 入库库位 /// public string StoreCode { get; set; } public string OrderCode { get; set; } public string TrackCode { get; set; } public int UserId { get; set; } public int OrderId { get; set; } /// /// Base64 /// public string Photo1 { get; set; } /// /// Base64 /// public string Photo2 { get; set; } /// /// Base64 /// public string Photo3 { get; set; } public string Photo4 { get; set; } public string Photo5 { get; set; } public List GoodsList { get; set; } } public class Sync_ReturnGoodsSaveDetail { public int GoodsId { get; set; } public int GoodsNum { get; set; } public string SKU { get; set; } public string ImageUrls { get; set; } } /// /// 第一次扫描不到跟踪码保存图片 /// public class OrderReturnMidPhotoModel { public int ID { get; set; } public string Photo { get; set; } } } }