| | |
| | | using WIDESEA_DTO.SquareCabin; |
| | | using WIDESEA_Common; |
| | | using System.Xml.Linq; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using static WIDESEA_DTO.SquareCabin.AlarmDto; |
| | | using OfficeOpenXml.Style; |
| | | using System.Security.Policy; |
| | | |
| | | namespace WIDESEA_WMSServer |
| | | namespace WIDESEA_SquareCabinServices |
| | | { |
| | | public class Business : IBusiness |
| | | public partial class Business : IBusiness |
| | | { |
| | | private readonly ICabinOrderServices _cabinOrderServices; |
| | | private readonly ICabinOrderDetailServices _cabinDetailServices; |
| | | private readonly IDeliveryOrderServices _deliveryOrderServices; |
| | | private readonly IDeliveryOrderDetailServices _deliveryOrderDetailServices; |
| | | private readonly IMaterielInfoService _materielInfoService; |
| | | private readonly IMessageInfoService _messageInfoService; |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | public Business(IDeliveryOrderServices deliveryOrderServices, IUnitOfWorkManage unitOfWorkManage, IDeliveryOrderDetailServices deliveryOrderDetailServices, ICabinOrderServices cabinOrderServices, ICabinOrderDetailServices cabinDetailServices, IMessageInfoService messageInfoService) |
| | | public Business(IDeliveryOrderServices deliveryOrderServices, IUnitOfWorkManage unitOfWorkManage, IDeliveryOrderDetailServices deliveryOrderDetailServices, ICabinOrderServices cabinOrderServices, ICabinOrderDetailServices cabinDetailServices, IMaterielInfoService materielInfoService, IMessageInfoService messageInfoService) |
| | | { |
| | | _deliveryOrderServices = deliveryOrderServices; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _deliveryOrderDetailServices = deliveryOrderDetailServices; |
| | | _cabinOrderServices = cabinOrderServices; |
| | | _cabinDetailServices = cabinDetailServices; |
| | | _materielInfoService = materielInfoService; |
| | | _messageInfoService = messageInfoService; |
| | | } |
| | | #region è·åERPå
¥åºå |
| | | static string SearchInDate = "2025-09-10 00:00:00"; |
| | | static string SearchInDate = "2025-10-30 00:00:00"; |
| | | /// <summary> |
| | | /// è·å䏿¸¸ç³»ç»çå
¥åºå |
| | | /// </summary> |
| | |
| | | searchDate = SearchInDate |
| | | //searchDate = "2022-10-10 20:45:16" // æ£ç¡®çæ ¼å¼ |
| | | }; |
| | | SearchInDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss"); |
| | | SearchInDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | // åèµ·è¯·æ± |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | |
| | | // ååºåå |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result); |
| | | |
| | | if (response.resultCode != "0") |
| | | if (response == null || response.resultCode != "0") |
| | | { |
| | | // è°ç¨å¼å¸¸æ¥å£ |
| | | SendErrorToUpstream(1, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | //SendErrorToUpstream(1, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | |
| | |
| | | { |
| | | return responseContent.OK("æ æ°å
¥åºåæ°æ®"); |
| | | } |
| | | var ordernos = response.data.Select(x => x.order_no).ToList(); |
| | | // è·åææå·²åå¨çå
¥åºåå· |
| | | var existingOrderNos = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>() |
| | | var existingOrderNos = _cabinOrderServices.Db.CopyNew().Queryable<Dt_CabinOrder>() |
| | | .Where(x => ordernos.Contains(x.Order_no)) |
| | | .Select(x => x.Order_no) |
| | | .Distinct().ToList(); |
| | | |
| | |
| | | .Where(order => !existingOrderNos.Contains(order.order_no)) |
| | | .ToList(); |
| | | |
| | | if (!newOrders.Any()) |
| | | if (newOrders.Count < 1) |
| | | { |
| | | return responseContent.OK("ææå
¥åºåå·²åå¨ï¼æ éæ°å¢"); |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | if (order.order_type == "1") //æ£å¸¸å
¥åº |
| | | { |
| | | name = "å建æ£å¸¸å
¥åºå"; |
| | |
| | | var content = _cabinOrderServices.CreateCheckInOrder(order); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | _messageInfoService.AddMessageInfo(messageGroupBy, name, ex.Message, messageStatus); |
| | | SendErrorToUpstream(1, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | //SendErrorToUpstream(1, "", ex.Message, ""); |
| | | //return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | }; |
| | | return responseContent.OK("忥å
¥åºåæå"); |
| | |
| | | catch (Exception ex) |
| | | { |
| | | // å
¨å±å¼å¸¸æ¶ï¼ä¹æ¨éå¼å¸¸ç»ä¸æ¸¸ |
| | | SendErrorToUpstream(1, "", ex.Message, ""); |
| | | //SendErrorToUpstream(1, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region è·åERPåºåºå |
| | | static string SearchOutDate = "2025-09-10 00:00:00"; |
| | | static string SearchOutDate = "2025-10-30 00:00:00"; |
| | | public WebResponseContent GetUpstreamOutOrder() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | //var url = "http://121.37.118.63:80/GYZ2/95fck/outOrder"; |
| | | var url = "http://127.0.0.1:4523/m1/5660322-5340849-default/GYZ2/95fck/outOrder"; |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/outOrder"; |
| | | //var url = "http://127.0.0.1:4523/m1/5660322-5340849-default/GYZ2/95fck/outOrder"; |
| | | if (string.IsNullOrEmpty(SearchOutDate)) SearchOutDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | //// 请æ±åæ° |
| | | var requestData = new |
| | |
| | | searchDate = SearchOutDate |
| | | //searchDate = "2022-10-10 20:45:16" // æ£ç¡®çæ ¼å¼ |
| | | }; |
| | | SearchOutDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss"); |
| | | SearchOutDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(result); |
| | | |
| | | if (response.resultCode != "0") |
| | | if (response == null || response.resultCode != "0") |
| | | { |
| | | SendErrorToUpstream(3, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | //SendErrorToUpstream(3, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response?.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | { |
| | | return responseContent.OK("æ æ°åºåºåæ°æ®"); |
| | | } |
| | | |
| | | var ordernos = response.data.Select(x => x.order_no).ToList(); |
| | | // å·²åå¨åºåºåå· |
| | | var existingOutOrderNos = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>() |
| | | var existingOutOrderNos = _deliveryOrderServices.Db.CopyNew().Queryable<Dt_DeliveryOrder>() |
| | | .Where(x => ordernos.Contains(x.Out_no)) |
| | | .Select(x => x.Out_no) |
| | | .Distinct().ToList(); |
| | | |
| | |
| | | |
| | | List<string> order_no = newOutOrders.Select(x => x.order_no).ToList(); |
| | | |
| | | if (!newOutOrders.Any()) |
| | | if (newOutOrders.Count < 1) |
| | | { |
| | | return responseContent.OK("ææåºåºåå·²åå¨ï¼æ éæ°å¢"); |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | if (outorder.order_type == "1") // æ£å¸¸åºåºå |
| | | { |
| | | name = "å建æ£å¸¸åºåºå"; |
| | |
| | | if (!responseContent.Status) throw new Exception(responseContent.Message); |
| | | List<Dt_CabinOrder>? dt_CabinOrders = responseContent.Data as List<Dt_CabinOrder>; |
| | | if (dt_CabinOrders != null && dt_CabinOrders.Count > 0) |
| | | _cabinOrderServices.Db.InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand(); |
| | | _cabinOrderServices.Db.CopyNew().InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand(); |
| | | #endregion |
| | | } |
| | | else if (outorder.order_type == "6")//æ¥æåºåº |
| | |
| | | var content = _deliveryOrderServices.CreateCheckOutOrder(outorder); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | _messageInfoService.AddMessageInfo(messageGroupBy, name, ex.Message, messageStatus); |
| | | SendErrorToUpstream(3, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | //SendErrorToUpstream(3, "", ex.Message, ""); |
| | | //return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | return responseContent.OK($"忥åºåºåæåï¼å
±{_DeliveryOrders.Count}æ¡"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | SendErrorToUpstream(3, "", ex.Message, ""); |
| | | //SendErrorToUpstream(3, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | //2.æ¥è¯¢ç¬¦åæ¡ä»¶ç订åï¼è¡¨å¤´ = æ°å»º && å
嫿ææç»ï¼ |
| | | //var orders = BaseDal.Db.Queryable<Dt_CabinOrder>() |
| | | // .Where(o => o.OdrderStatus == "æ°å»º") |
| | | // .Includes(o => o.Details, d => d.MedicineGoods) |
| | | // .ToList(); |
| | | //æ¥åºå
å«å
¨é¨çå
¥åºåï¼å
å«å
¨é¨æç»+ä¸ä¸ªæç»å¯¹åºä¸ä¸ªåå |
| | | var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | var orders = _cabinOrderServices.Db.CopyNew() |
| | | .Queryable<Dt_CabinOrder>() |
| | | .Where(o => o.OdrderStatus == "æ°å»º" && o.Warehouse_no == reslut) |
| | | .Includes(o => o.Details, d => d.MedicineGoods) |
| | | .ToList(); |
| | | // 3. åè¿æ»¤æä¸ç¬¦åæ¡ä»¶çæç»ï¼åªä¿ç Status=0ï¼ |
| | | var orders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "æ°å»º" && x.Warehouse_no == reslut); |
| | | if (orders.Count < 1) return WebResponseContent.Instance.OK(); |
| | | string url = "http://172.16.1.2:9357/file-admin/api/in/ediIn"; |
| | | var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.OrderId)); |
| | | var materielInfos = _materielInfoService.Repository.QueryData(x => cabinOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)); |
| | | foreach (var order in orders) |
| | | { |
| | | Console.WriteLine($"订å {order.Order_no} åæç»æ°ï¼{order.Details.Count}"); |
| | | order.Details = order.Details.Where(d => d.Status == 0).ToList(); |
| | | Console.WriteLine($"订å {order.Order_no} è¿æ»¤åæç»æ°ï¼{order.Details.Count}"); |
| | | } |
| | | |
| | | |
| | | if (orders == null || !orders.Any()) |
| | | { |
| | | Console.WriteLine("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | return WebResponseContent.Instance.Error("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | } |
| | | |
| | | // 4. éå订åï¼ç»è£
DTO å¹¶æ¨é |
| | | foreach (var order in orders) |
| | | { |
| | | // ä»ç¬¬ä¸ä¸ªæ MedicineGoods çæç»ä¸ååº MaterielErpType |
| | | string materialCode = order.Details |
| | | .Select(d => d.MedicineGoods?.MaterielErpType) |
| | | .FirstOrDefault(x => !string.IsNullOrEmpty(x)) ?? "YY"; // é»è®¤å¼YY |
| | | |
| | | order.Details = cabinOrderDetails.Where(x => x.OrderId == order.Id).ToList(); |
| | | foreach (var item in order.Details) |
| | | { |
| | | item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First(); |
| | | } |
| | | #region ä¸åWCS |
| | | string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY"; |
| | | var ediDto = new ToediInInfo |
| | | { |
| | | |
| | | //客æ·ä»£ç |
| | | customerCode = "905", |
| | | //ç©æç±»å |
| | |
| | | //产å |
| | | productCode = d.Goods_no, |
| | | //skuåç§° |
| | | productName = d.MedicineGoods?.MaterielName, |
| | | productName = d.MedicineGoods.MaterielName, |
| | | //skuè§æ ¼ |
| | | productSpecifications = d.MedicineGoods?.MaterielSpec, |
| | | productSpecifications = d.MedicineGoods.MaterielSpec, |
| | | //æ°é |
| | | quantity = (int)d.Order_qty, |
| | | //ææ |
| | | validityPeriod = d.Exp_date, |
| | | //ç产åå®¶ |
| | | manufacturer = d.MedicineGoods?.Factory, |
| | | manufacturer = d.MedicineGoods.Factory, |
| | | //æ¿å· |
| | | libraryNo = order.Warehouse_no, |
| | | }).ToList() |
| | | }; |
| | | |
| | | var url = "http://172.16.1.2:9357/file-admin/api/in/ediIn"; |
| | | //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363019549"; |
| | | var result = HttpHelper.Post(url, ediDto.ToJsonString()); |
| | | var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); |
| | | |
| | | if (resp != null && resp.code == "0") |
| | | { |
| | | // æ´æ°è¡¨å¤´ç¶æ |
| | | _cabinOrderServices.Db.Updateable<Dt_CabinOrder>() |
| | | .SetColumns(o => new Dt_CabinOrder { OdrderStatus = "å¼å§" }) |
| | | .Where(o => o.Id == order.Id) |
| | | .ExecuteCommand(); |
| | | |
| | | // æ´æ°æç»ç¶æä¸ºå·²åæ¥ //è¿éè¦æ¯å°æ°å»º--ãå¼å§ç¶æ,å¨å端æ¥å£è¿åæä»¬çæ¶åå¨è¿å已宿 |
| | | _cabinDetailServices.Db.Updateable<Dt_CabinOrderDetail>() |
| | | .SetColumns(d => new Dt_CabinOrderDetail { Status = 1, OrderDetailStatus = "å¼å§" }) |
| | | .Where(d => d.OrderId == order.Id && d.Status == 0) |
| | | .ExecuteCommand(); |
| | | |
| | | Console.WriteLine($"订å {order.Order_no} æ¨éæå"); |
| | | order.OdrderStatus = "å¼å§"; |
| | | foreach (var item in cabinOrderDetails.Where(x => x.OrderId == order.Id)) |
| | | { |
| | | item.Status = 1; |
| | | item.OrderDetailStatus = "å¼å§"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | SendErrorToUpstream(3, order.Order_no, resp?.msg ?? "WCS æ¨é失败", ""); |
| | | Console.WriteLine($"订å {order.Order_no} æ¨é失败ï¼{resp?.msg}"); |
| | | return new WebResponseContent { Status = false, Message = "è®¢åæ¨é失败" }; |
| | | } |
| | | #endregion |
| | | } |
| | | return new WebResponseContent { Status = true, Message = "æ¨éæå" }; |
| | | _cabinOrderServices.UpdateData(orders); |
| | | _cabinDetailServices.UpdateData(cabinOrderDetails); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | Console.WriteLine("EdiIn å¼å¸¸ï¼" + ex.Message); |
| | | return new WebResponseContent { Status = false, Message = ex.Message }; |
| | | Console.WriteLine("ä¸åWCSå
¥åºåå¼å¸¸ï¼" + ex.Message); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | #region MyRegion |
| | | |
| | | //public WebResponseContent EdiIn1() |
| | | //{ |
| | | // try |
| | | // { |
| | | // //2.æ¥è¯¢ç¬¦åæ¡ä»¶ç订åï¼è¡¨å¤´ = æ°å»º && å
嫿ææç»ï¼ |
| | | // //var orders = BaseDal.Db.Queryable<Dt_CabinOrder>() |
| | | // // .Where(o => o.OdrderStatus == "æ°å»º") |
| | | // // .Includes(o => o.Details, d => d.MedicineGoods) |
| | | // // .ToList(); |
| | | // //æ¥åºå
å«å
¨é¨çå
¥åºåï¼å
å«å
¨é¨æç»+ä¸ä¸ªæç»å¯¹åºä¸ä¸ªåå |
| | | // var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | // var orders = _cabinOrderServices.Db.CopyNew() |
| | | // .Queryable<Dt_CabinOrder>() |
| | | // .Where(o => o.OdrderStatus == "æ°å»º" && o.Warehouse_no == reslut) |
| | | // .Includes(o => o.Details, d => d.MedicineGoods) |
| | | // .ToList(); |
| | | // // 3. åè¿æ»¤æä¸ç¬¦åæ¡ä»¶çæç»ï¼åªä¿ç Status=0ï¼ |
| | | // foreach (var order in orders) |
| | | // { |
| | | // //Console.WriteLine($"订å {order.Order_no} åæç»æ°ï¼{order.Details.Count}"); |
| | | // order.Details = order.Details.Where(d => d.Status == 0).ToList(); |
| | | // //Console.WriteLine($"订å {order.Order_no} è¿æ»¤åæç»æ°ï¼{order.Details.Count}"); |
| | | // } |
| | | |
| | | |
| | | // if (orders.Count < 1) |
| | | // { |
| | | // //Console.WriteLine("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | // return WebResponseContent.Instance.Error("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | // } |
| | | // List<Dt_CabinOrderDetail> cabinOrderDetails = new List<Dt_CabinOrderDetail>(); |
| | | // var url = "http://172.16.1.2:9357/file-admin/api/in/ediIn"; |
| | | // // 4. éå订åï¼ç»è£
DTO å¹¶æ¨é |
| | | // foreach (var order in orders) |
| | | // { |
| | | // // ä»ç¬¬ä¸ä¸ªæ MedicineGoods çæç»ä¸ååº MaterielErpType |
| | | // string materialCode = order.Details |
| | | // .Select(d => d.MedicineGoods?.MaterielErpType) |
| | | // .FirstOrDefault(x => !string.IsNullOrEmpty(x)) ?? "YY"; // é»è®¤å¼YY |
| | | |
| | | // var ediDto = new ToediInInfo |
| | | // { |
| | | |
| | | // //客æ·ä»£ç |
| | | // customerCode = "905", |
| | | // //ç©æç±»å |
| | | // materialCode = materialCode, |
| | | // //å
¥åºåå· |
| | | // externalOrderNo = order.Order_no, |
| | | // //å
¥åºåç±»å |
| | | // inOrderType = order.Order_type == "5" ? "20" : "10", |
| | | // //ä¼å
级 |
| | | // priority = 0, |
| | | // //æ¯å¦åæ¶ |
| | | // Is_cancel = 0, |
| | | // details = order.Details.Select(d => new ToediInDetail |
| | | // { |
| | | // //æ¹å· |
| | | // batchNo = d.Batch_num, |
| | | // //产å |
| | | // productCode = d.Goods_no, |
| | | // //skuåç§° |
| | | // productName = d.MedicineGoods?.MaterielName, |
| | | // //skuè§æ ¼ |
| | | // productSpecifications = d.MedicineGoods?.MaterielSpec, |
| | | // //æ°é |
| | | // quantity = (int)d.Order_qty, |
| | | // //ææ |
| | | // validityPeriod = d.Exp_date, |
| | | // //ç产åå®¶ |
| | | // manufacturer = d.MedicineGoods?.Factory, |
| | | // //æ¿å· |
| | | // libraryNo = order.Warehouse_no, |
| | | // }).ToList() |
| | | // }; |
| | | |
| | | // //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363019549"; |
| | | // var result = HttpHelper.Post(url, ediDto.ToJsonString()); |
| | | // var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); |
| | | |
| | | // if (resp != null && resp.code == "0") |
| | | // { |
| | | // order.OdrderStatus = "å¼å§"; |
| | | // foreach (var item in order.Details) |
| | | // { |
| | | // item.Status = 1; |
| | | // item.OrderDetailStatus = "å¼å§"; |
| | | // } |
| | | // cabinOrderDetails.AddRange(order.Details); |
| | | // // æ´æ°è¡¨å¤´ç¶æ |
| | | // //_cabinOrderServices.Db.Updateable<Dt_CabinOrder>() |
| | | // // .SetColumns(o => new Dt_CabinOrder { OdrderStatus = "å¼å§" }) |
| | | // // .Where(o => o.Id == order.Id) |
| | | // // .ExecuteCommand(); |
| | | |
| | | // // æ´æ°æç»ç¶æä¸ºå·²åæ¥ //è¿éè¦æ¯å°æ°å»º--ãå¼å§ç¶æ,å¨å端æ¥å£è¿åæä»¬çæ¶åå¨è¿å已宿 |
| | | // //_cabinDetailServices.Db.Updateable<Dt_CabinOrderDetail>() |
| | | // // .SetColumns(d => new Dt_CabinOrderDetail { Status = 1, OrderDetailStatus = "å¼å§" }) |
| | | // // .Where(d => d.OrderId == order.Id && d.Status == 0) |
| | | // // .ExecuteCommand(); |
| | | |
| | | // //Console.WriteLine($"订å {order.Order_no} æ¨éæå"); |
| | | // } |
| | | // else |
| | | // { |
| | | // continue; |
| | | // //SendErrorToUpstream(3, order.Order_no, resp?.msg ?? "WCS æ¨é失败", ""); |
| | | // //Console.WriteLine($"订å {order.Order_no} æ¨é失败ï¼{resp?.msg}"); |
| | | // //return new WebResponseContent { Status = false, Message = "è®¢åæ¨é失败" }; |
| | | // } |
| | | // } |
| | | // _cabinOrderServices.UpdateData(orders); |
| | | // _cabinDetailServices.UpdateData(cabinOrderDetails); |
| | | // return new WebResponseContent { Status = true, Message = "æ¨éæå" }; |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | |
| | | // Console.WriteLine("EdiIn å¼å¸¸ï¼" + ex.Message); |
| | | // return new WebResponseContent { Status = false, Message = ex.Message }; |
| | | // } |
| | | //} |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region ä¸åç«åºåºåºå |
| | | public WebResponseContent EdiOut() |
| | | { |
| | | try |
| | | { |
| | | var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | var orders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "æ°å»º" && x.Warehouse_no == reslut); |
| | | if (orders.Count < 1) return WebResponseContent.Instance.OK(); |
| | | string url = "http://172.16.1.2:9357/file-admin/api/out/ediOut"; |
| | | var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId)); |
| | | var materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)); |
| | | foreach (var order in orders) |
| | | { |
| | | order.Details = deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id).ToList(); |
| | | foreach (var item in order.Details) |
| | | { |
| | | item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First(); |
| | | } |
| | | #region ä¸åWCS |
| | | string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY"; |
| | | var ediDto = new ToediOutInfo |
| | | { |
| | | //客æ·ä»£ç |
| | | customerCode = "905", |
| | | //ç©æç±»å |
| | | materialCode = materialCode, |
| | | externalOrderNo = order.Out_no, |
| | | outOrderType = order.Out_type == "6" ? "30" : "10", |
| | | priority = 1, |
| | | Is_cancel = 0, |
| | | details = order.Details.Select(d => new ToeOutdiInDetail |
| | | { |
| | | batchNo = d.Batch_num, |
| | | productCode = d.Goods_no, |
| | | productName = d.MedicineGoods.MaterielName, |
| | | productSpecifications = d.MedicineGoods.MaterielModel, |
| | | quantity = (int)d.Order_qty, |
| | | }).ToList() |
| | | }; |
| | | var result = HttpHelper.Post(url, ediDto.ToJsonString()); |
| | | var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); |
| | | if (resp != null && resp.code == "0") |
| | | { |
| | | order.OutStatus = "å¼å§"; |
| | | foreach (var item in deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id)) |
| | | { |
| | | item.Status = 1; |
| | | item.OotDetailStatus = "å¼å§"; |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | _deliveryOrderServices.UpdateData(orders); |
| | | _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine("ä¸åWCSåºåºåå¼å¸¸ï¼" + ex.Message); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #region MyRegion |
| | | public WebResponseContent EdiOut1() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | var WarehouseLk = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | |
| | | order.Details = order.Details.Where(d => d.Status == 0).ToList(); |
| | | } |
| | | |
| | | if (outOrders == null || !outOrders.Any()) |
| | | if (outOrders.Count < 1) |
| | | { |
| | | Console.WriteLine("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | //Console.WriteLine("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | return responseContent.Error("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | } |
| | | |
| | | List<Dt_DeliveryOrderDetail> deliveryOrderDetails = new List<Dt_DeliveryOrderDetail>(); |
| | | var url = "http://172.16.1.2:9357/file-admin/api/out/ediOut"; |
| | | foreach (var order in outOrders) |
| | | { |
| | | try |
| | |
| | | }; |
| | | |
| | | // 4. è°ç¨æ¥å£ |
| | | //var url = "http://172.16.1.2:9357/file-admin/api/out/ediOut"; |
| | | var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363076920"; |
| | | //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363076920"; |
| | | |
| | | var result = HttpHelper.Post(url, ediDto.ToJsonString()); |
| | | var resp = JsonConvert.DeserializeObject<TowcsDto.TowcsResponse<object>>(result); |
| | | |
| | | if (resp != null && resp.code == "0") |
| | | { |
| | | order.OutStatus = "å¼å§"; |
| | | foreach (var item in order.Details) |
| | | { |
| | | item.Status = 1; |
| | | item.OotDetailStatus = "å¼å§"; |
| | | } |
| | | deliveryOrderDetails.AddRange(order.Details); |
| | | // æ´æ°è¡¨å¤´ç¶æ |
| | | _cabinDetailServices.Db.Updateable<Dt_DeliveryOrder>() |
| | | .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "å¼å§" }) |
| | | .Where(o => o.Id == order.Id) |
| | | .ExecuteCommand(); |
| | | //_cabinDetailServices.Db.CopyNew().Updateable<Dt_DeliveryOrder>() |
| | | // .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "å¼å§" }) |
| | | // .Where(o => o.Id == order.Id) |
| | | // .ExecuteCommand(); |
| | | |
| | | // æ´æ°æç»ç¶æ |
| | | _deliveryOrderDetailServices.Db.Updateable<Dt_DeliveryOrderDetail>() |
| | | .SetColumns(d => new Dt_DeliveryOrderDetail { Status = 1, OotDetailStatus = "å¼å§" }) |
| | | .Where(d => d.DeliveryOrderId == order.Id && d.Status == 0) |
| | | .ExecuteCommand(); |
| | | Console.WriteLine($"订å {order.Out_no} æ¨éæå"); |
| | | //_deliveryOrderDetailServices.Db.CopyNew().Updateable<Dt_DeliveryOrderDetail>() |
| | | // .SetColumns(d => new Dt_DeliveryOrderDetail { Status = 1, OotDetailStatus = "å¼å§" }) |
| | | // .Where(d => d.DeliveryOrderId == order.Id && d.Status == 0) |
| | | // .ExecuteCommand(); |
| | | //Console.WriteLine($"订å {order.Out_no} æ¨éæå"); |
| | | } |
| | | else |
| | | { |
| | | SendErrorToUpstream(3, order.Out_no, resp?.msg ?? "WCS æ¨é失败", ""); |
| | | Console.WriteLine($"订å {order.Out_no} æ¨é失败ï¼{resp?.msg}"); |
| | | continue; |
| | | //SendErrorToUpstream(3, order.Out_no, resp?.msg ?? "WCS æ¨é失败", ""); |
| | | //Console.WriteLine($"订å {order.Out_no} æ¨é失败ï¼{resp?.msg}"); |
| | | } |
| | | //å é¤å
¨é¨ç¶ä¸ºå·²å®æçæç»å表头ï¼ç§»å
¥åå²è¡¨ |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | SendErrorToUpstream(3, order.Out_no, ex.Message, ""); |
| | | Console.WriteLine($"订å {order.Out_no} æ¨éå¼å¸¸ï¼{ex.Message}"); |
| | | //SendErrorToUpstream(3, order.Out_no, ex.Message, ""); |
| | | //Console.WriteLine($"订å {order.Out_no} æ¨éå¼å¸¸ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | _deliveryOrderServices.UpdateData(outOrders); |
| | | _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails); |
| | | return responseContent.OK("åºåºè®¢åæ¨é宿"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine("EdiOut å¼å¸¸ï¼" + ex.Message); |
| | | //Console.WriteLine("EdiOut å¼å¸¸ï¼" + ex.Message); |
| | | return responseContent.Error("åºåºè®¢åæ¨é失败ï¼" + ex.Message); |
| | | } |
| | | } |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region å
¥åºå®æä¸æ¥ERP |
| | |
| | | { |
| | | #region æ¥æ¾ææå·²å®æå
¥åºå |
| | | var inorders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "已宿").Select(x => x.Order_no).Distinct().ToList(); |
| | | foreach (var inorder in inorders) |
| | | var Orders = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>().Where(x => inorders.Contains(x.Order_no)).Includes(x => x.Details).ToList(); |
| | | List<Dt_CabinOrder> cabinOrders = new List<Dt_CabinOrder>(); |
| | | List<Dt_CabinOrderDetail> cabinOrderDetails = new List<Dt_CabinOrderDetail>(); |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk"; |
| | | foreach (var item in Orders.GroupBy(x => x.Order_no)) |
| | | { |
| | | //var Orders = BaseDal.QueryData(x => x.Order_no == inorder); |
| | | var Orders = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == inorder).Includes(x => x.Details).ToList(); |
| | | if (!Orders.Where(x => x.OdrderStatus != "已宿").Any()) |
| | | if (!item.Where(x => x.OdrderStatus != "已宿").Any()) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | foreach (var item in Orders) |
| | | if (item.First().Order_type == InOrderTypeEnum.Allocat.ObjToInt().ToString()) |
| | | { |
| | | if (item.Details != null) |
| | | _cabinDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.èªå¨å®æ); |
| | | item.Details = null; |
| | | } |
| | | _cabinOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.èªå¨å®æ); |
| | | // è°ç¨ä¸æ¸¸æ¥å£ |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk"; |
| | | var result = HttpHelper.Post(url, new { order_no = inorder }.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result); |
| | | if (response.resultCode == "0") |
| | | { |
| | | // æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | foreach (var a in item) |
| | | { |
| | | if (a.Details != null) cabinOrderDetails.AddRange(a.Details); |
| | | a.Details = null; |
| | | cabinOrders.Add(a); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | SendErrorToUpstream(2, "", $"䏿¸¸æ¥å£è¿å失败: {response.resultMsg}", inorder); |
| | | var result = HttpHelper.Post(url, new { order_no = item.Key }.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result); |
| | | if (response != null && response.resultCode == "0") |
| | | { |
| | | foreach (var a in item) |
| | | { |
| | | if (a.Details != null) cabinOrderDetails.AddRange(a.Details); |
| | | a.Details = null; |
| | | cabinOrders.Add(a); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | string mess = "䏿¥ERPæ ååº"; |
| | | if (response != null) mess = response.resultMsg; |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, $"å
¥åºåå·ã{item.Key}ã宿䏿¥ERP失败", mess); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | _cabinDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetails, OperateTypeEnum.èªå¨å®æ); |
| | | _cabinOrderServices.Repository.DeleteAndMoveIntoHty(cabinOrders, OperateTypeEnum.èªå¨å®æ); |
| | | #endregion |
| | | return responseContent.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return responseContent.Error("æ¹éå¤ç失败ï¼" + ex.Message); |
| | | } |
| | | } |
| | |
| | | { |
| | | #region æ¥æ¾ææå·²å®æåºåºå |
| | | var outorders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "已宿").Select(x => x.Out_no).Distinct().ToList(); |
| | | foreach (var outorder in outorders) |
| | | var Orders = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>().Where(x => outorders.Contains(x.Out_no)).Includes(x => x.Details).ToList(); |
| | | List<Dt_DeliveryOrder> cabinOrders = new List<Dt_DeliveryOrder>(); |
| | | List<Dt_DeliveryOrderDetail> cabinOrderDetails = new List<Dt_DeliveryOrderDetail>(); |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk"; |
| | | foreach (var item in Orders.GroupBy(x => x.Out_no)) |
| | | { |
| | | var Orders = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == outorder).Includes(x => x.Details).ToList(); |
| | | if (!Orders.Where(x => x.OutStatus != "已宿").Any()) |
| | | if (!item.Where(x => x.OutStatus != "已宿").Any()) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | foreach (var item in Orders) |
| | | if (item.First().Out_type == OutOrderTypeEnum.Allocate.ObjToInt().ToString()) |
| | | { |
| | | if (item.Details != null) |
| | | _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.èªå¨å®æ); |
| | | item.Details = null; |
| | | foreach (var a in item) |
| | | { |
| | | if (a.Details != null) cabinOrderDetails.AddRange(a.Details); |
| | | a.Details = null; |
| | | cabinOrders.Add(a); |
| | | } |
| | | } |
| | | _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.èªå¨å®æ); |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk"; |
| | | var requestDate = new |
| | | { |
| | | order_no = outorder |
| | | }; |
| | | var result = HttpHelper.Post(url, requestDate.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result); |
| | | if (response.resultCode == "0") _unitOfWorkManage.CommitTran(); |
| | | else |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | SendErrorToUpstream(4, "", $"䏿¸¸æ¥å£è¿å失败: {response.resultMsg}", outorder); |
| | | var result = HttpHelper.Post(url, new { order_no = item.Key }.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result); |
| | | if (response != null && response.resultCode == "0") |
| | | { |
| | | foreach (var a in item) |
| | | { |
| | | if (a.Details != null) cabinOrderDetails.AddRange(a.Details); |
| | | a.Details = null; |
| | | cabinOrders.Add(a); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | string mess = "䏿¥ERPæ ååº"; |
| | | if (response != null) mess = response.resultMsg; |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, $"åºåºåå·ã{item.Key}ã宿䏿¥ERP失败", mess); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetails, OperateTypeEnum.èªå¨å®æ); |
| | | _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(cabinOrders, OperateTypeEnum.èªå¨å®æ); |
| | | |
| | | #endregion |
| | | return responseContent.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return responseContent.Error("æ¹éå¤ç失败ï¼" + ex.Message); |
| | | } |
| | | } |