| | |
| | | using static WIDESEA_DTO.SquareCabin.TowcsDto; |
| | | using WIDESEA_Common.WareHouseEnum; |
| | | using WIDESEA_DTO.SquareCabin; |
| | | using WIDESEA_Common; |
| | | using System.Xml.Linq; |
| | | |
| | | namespace WIDESEA_WMSServer |
| | | { |
| | |
| | | private readonly ICabinOrderDetailServices _cabinDetailServices; |
| | | private readonly IDeliveryOrderServices _deliveryOrderServices; |
| | | private readonly IDeliveryOrderDetailServices _deliveryOrderDetailServices; |
| | | private readonly IBasicService _basicService; |
| | | private readonly IMessageInfoService _messageInfoService; |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly IInventory_BatchServices _inventory_BatchServices; |
| | | private readonly IInventoryInfoService _inventoryInfoService; |
| | | private readonly ISupplyTaskService _supplyTaskService; |
| | | private readonly ITacticsService _tacticsService; |
| | | public Business(IDeliveryOrderServices deliveryOrderServices, IBasicService basicService, IUnitOfWorkManage unitOfWorkManage, IInventory_BatchServices inventory_BatchServices, IInventoryInfoService inventoryInfoService, IDeliveryOrderDetailServices deliveryOrderDetailServices, ISupplyTaskService supplyTaskService, ICabinOrderServices cabinOrderServices, ITacticsService tacticsService, ICabinOrderDetailServices cabinDetailServices) |
| | | public Business(IDeliveryOrderServices deliveryOrderServices, IUnitOfWorkManage unitOfWorkManage, IDeliveryOrderDetailServices deliveryOrderDetailServices, ICabinOrderServices cabinOrderServices, ICabinOrderDetailServices cabinDetailServices, IMessageInfoService messageInfoService) |
| | | { |
| | | _deliveryOrderServices = deliveryOrderServices; |
| | | _basicService = basicService; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _inventory_BatchServices = inventory_BatchServices; |
| | | _inventoryInfoService = inventoryInfoService; |
| | | _deliveryOrderDetailServices = deliveryOrderDetailServices; |
| | | _supplyTaskService = supplyTaskService; |
| | | _cabinOrderServices = cabinOrderServices; |
| | | _tacticsService = tacticsService; |
| | | _cabinDetailServices = cabinDetailServices; |
| | | _messageInfoService = messageInfoService; |
| | | } |
| | | #region è·åERPå
¥åºå |
| | | static string SearchInDate = "2025-09-10 00:00:00"; |
| | |
| | | // ååºåå |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result); |
| | | |
| | | if (response.resultCode != "0") |
| | | if (response == null || response.resultCode != "0" || requestData == null) |
| | | { |
| | | // è°ç¨å¼å¸¸æ¥å£ |
| | | SendErrorToUpstream(1, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | |
| | | { |
| | | return responseContent.OK("æ æ°å
¥åºåæ°æ®"); |
| | | } |
| | | var ordernos = response.data.Select(x => x.order_no).ToList(); |
| | | // è·åææå·²åå¨çå
¥åºåå· |
| | | var existingOrderNos = _cabinOrderServices.Db.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("ææå
¥åºåå·²åå¨ï¼æ éæ°å¢"); |
| | | } |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | try |
| | | //åå¨å
¥åºåå· |
| | | List<string> orderNos = new List<string>(); |
| | | string name = string.Empty; |
| | | MessageGroupByEnum messageGroupBy = MessageGroupByEnum.InOrderAlarm; |
| | | MessageStatusEnum messageStatus = MessageStatusEnum.Emergency; |
| | | foreach (var order in newOrders) |
| | | { |
| | | List<Dt_CabinOrder> _CabinOrders = new List<Dt_CabinOrder>(); |
| | | //åå¨å
¥åºåå· |
| | | List<string> orderNos = new List<string>(); |
| | | |
| | | foreach (var order in newOrders) |
| | | try |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | if (order.order_type == "1") //æ£å¸¸å
¥åº |
| | | { |
| | | name = "å建æ£å¸¸å
¥åºå"; |
| | | responseContent = _cabinOrderServices.CreateInboundOrder(order); |
| | | if (!responseContent.Status) throw new Exception(responseContent.Message); |
| | | List<Dt_CabinOrder>? dt_CabinOrders = responseContent.Data as List<Dt_CabinOrder>; |
| | | if (dt_CabinOrders != null) _CabinOrders.AddRange(dt_CabinOrders); |
| | | if (dt_CabinOrders != null) |
| | | _cabinOrderServices.Db.InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand(); |
| | | } |
| | | else if (order.order_type == "3")//å
¥åºéæ |
| | | { |
| | | messageGroupBy = MessageGroupByEnum.OutOrderAlarm; |
| | | name = "å建å
¥åºéè´§å"; |
| | | //å建åºåºå |
| | | #region 转æ¢ä¸ºåºåºå |
| | | UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo() |
| | |
| | | }; |
| | | upstramOutOrderInfo.details.Add(detail); |
| | | } |
| | | _deliveryOrderServices.CreateOutboundOrder(upstramOutOrderInfo); |
| | | var content = _deliveryOrderServices.CreateOutboundOrder(upstramOutOrderInfo); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | #endregion |
| | | } |
| | | else if (order.order_type == "5")//æ¥æº¢å
¥åº |
| | | { |
| | | _cabinOrderServices.CreateCheckInOrder(order); |
| | | name = "å建ççå
¥åºå"; |
| | | messageStatus = MessageStatusEnum.Undisposed; |
| | | var content = _cabinOrderServices.CreateCheckInOrder(order); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | }; |
| | | _cabinOrderServices.Db.InsertNav(_CabinOrders).Include(x => x.Details).ExecuteCommand(); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | _messageInfoService.AddMessageInfo(messageGroupBy, name, ex.Message, messageStatus); |
| | | SendErrorToUpstream(1, "", ex.Message, ""); |
| | | //return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | }; |
| | | return responseContent.OK("忥å
¥åºåæå"); |
| | | |
| | | //å¨ä¸åç»wcs |
| | | //EdiIn(); //åç»ä¸æ¸¸ |
| | | //妿è¿ä¸ªæ¹æ³æåäºï¼é£ä¹å°±è°ç¨CompleteOrderæ¥å£ï¼ç¶åæ¹å |
| | | _unitOfWorkManage.CommitTran(); |
| | | return responseContent.OK("忥å
¥åºåæå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | SendErrorToUpstream(1, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | return responseContent.OK("æ æ°åºåºåæ°æ®"); |
| | | } |
| | | |
| | | var ordernos = response.data.Select(x => x.order_no).ToList(); |
| | | // å·²åå¨åºåºåå· |
| | | var existingOutOrderNos = _deliveryOrderServices.Db.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("ææåºåºåå·²åå¨ï¼æ éæ°å¢"); |
| | | } |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | try |
| | | List<Dt_DeliveryOrder> _DeliveryOrders = new List<Dt_DeliveryOrder>(); |
| | | List<string> orderNos = new List<string>(); |
| | | string name = string.Empty; |
| | | MessageGroupByEnum messageGroupBy = MessageGroupByEnum.OutOrderAlarm; |
| | | MessageStatusEnum messageStatus = MessageStatusEnum.Emergency; |
| | | foreach (var outorder in newOutOrders) |
| | | { |
| | | List<Dt_DeliveryOrder> _DeliveryOrders = new List<Dt_DeliveryOrder>(); |
| | | List<string> orderNos = new List<string>(); |
| | | |
| | | foreach (var outorder in newOutOrders) |
| | | try |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | if (outorder.order_type == "1") // æ£å¸¸åºåºå |
| | | { |
| | | _deliveryOrderServices.CreateOutboundOrder(outorder);//å建åºåºåãå¤çåºåãæ·»å åºåºä»»å¡ |
| | | name = "å建æ£å¸¸åºåºå"; |
| | | var content = _deliveryOrderServices.CreateOutboundOrder(outorder); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | else if (outorder.order_type == "2")//åºåºéè´§ |
| | | { |
| | | name = "å建åºåºéè´§å"; |
| | | messageGroupBy = MessageGroupByEnum.InOrderAlarm; |
| | | // å建åºåºéè´§å - è¿ééè¦æ ¹æ®ä¸å¡é»è¾å®ç° |
| | | // ææ¶è·³è¿æå®ç°éè´§é»è¾ |
| | | //continue; |
| | |
| | | order.details.Add(detail); |
| | | } |
| | | responseContent = _cabinOrderServices.CreateInboundOrder(order); |
| | | 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(); |
| | |
| | | } |
| | | else if (outorder.order_type == "6")//æ¥æåºåº |
| | | { |
| | | _deliveryOrderServices.CreateCheckOutOrder(outorder); |
| | | name = "å建çæåºåºå"; |
| | | messageStatus = MessageStatusEnum.Undisposed; |
| | | var content = _deliveryOrderServices.CreateCheckOutOrder(outorder); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | |
| | | // æ¹éæå
¥åºåºååæç» |
| | | //if (_DeliveryOrders.Any()) |
| | | //{ |
| | | // BaseDal.Db.InsertNav(_DeliveryOrders).Include(x => x.Details).ExecuteCommand(); |
| | | //} |
| | | //ä¸ååºåºåä»»å¡ç»wcs |
| | | |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | //var tex = CreateSupplyTask(order_no); |
| | | //if (!tex) |
| | | //{ |
| | | // return responseContent.Error("å建ä¾åºä»»å¡å¤±è´¥"); |
| | | //} |
| | | return responseContent.OK($"忥åºåºåæåï¼å
±{_DeliveryOrders.Count}æ¡"); |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | _messageInfoService.AddMessageInfo(messageGroupBy, name, ex.Message, messageStatus); |
| | | SendErrorToUpstream(3, "", ex.Message, ""); |
| | | //return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | SendErrorToUpstream(3, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | return responseContent.OK($"忥åºåºåæåï¼å
±{_DeliveryOrders.Count}æ¡"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | public WebResponseContent EdiOut() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | var WarehouseLk = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | try |
| | | { |
| | | // 1. æ¥è¯¢ç¬¦åæ¡ä»¶ç订åï¼è¡¨å¤´=æ°å»º && å
嫿ææç»ï¼ |
| | | var outOrders = _deliveryOrderServices.Db.CopyNew().Queryable<Dt_DeliveryOrder>() |
| | | .Where(o => o.OutStatus == "æ°å»º" && o.Warehouse_no == WarehouseEnum.ç«åº.ObjToInt().ToString("000")) |
| | | .Where(o => o.OutStatus == "æ°å»º" && o.Warehouse_no == WarehouseLk) |
| | | .Includes(o => o.Details, d => d.MedicineGoods) |
| | | .ToList(); |
| | | |
| | |
| | | if (!Orders.Where(x => x.OdrderStatus != "已宿").Any()) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | _cabinOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.èªå¨å®æ); |
| | | foreach (var item in Orders) |
| | | { |
| | | _cabinDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, 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") |
| | | { |
| | | foreach (var item in Orders) |
| | | { |
| | | if (item.Details != null) |
| | | _cabinDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.èªå¨å®æ); |
| | | item.Details = null; |
| | | } |
| | | _cabinOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.èªå¨å®æ); |
| | | // æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | |
| | | if (!Orders.Where(x => x.OutStatus != "已宿").Any()) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.èªå¨å®æ); |
| | | foreach (var item in Orders) |
| | | { |
| | | _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.èªå¨å®æ); |
| | | if (item.Details != null) |
| | | _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.èªå¨å®æ); |
| | | item.Details = null; |
| | | } |
| | | _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.èªå¨å®æ); |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk"; |
| | | var requestDate = new |
| | | { |