| | |
| | | 锘縰sing HslCommunication.WebSocket; |
| | | using Microsoft.Extensions.Logging; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.CodeConfigEnum; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_ICheckService; |
| | | using WIDESEA_IOutboundService; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_Model.Models.Check; |
| | | |
| | |
| | | { |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly WebSocketServer _webSocketServer; |
| | | private readonly ILogger<ReCheckOrderService> _logger; |
| | | |
| | | public readonly IOutboundService _outboundService; |
| | | public IRepository<Dt_ReCheckOrder> Repository => BaseDal; |
| | | public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer) : base(BaseDal) |
| | | public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer, ILogger<ReCheckOrderService> logger, IOutboundService outboundService) : base(BaseDal) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _webSocketServer = webSocketServer; |
| | | _logger = logger; |
| | | _outboundService = outboundService; |
| | | } |
| | | |
| | | public WebResponseContent ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType) |
| | | public async Task<WebResponseContent> ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType) |
| | | { |
| | | try |
| | | { |
| | | return operateType switch |
| | | { |
| | | 1 => AddReCheckOrder(models), |
| | | 2 => UpdateReCheckOrder(models), |
| | | 1 =>await AddReCheckOrder(models), |
| | | 2 =>await UpdateReCheckOrder(models), |
| | | 3 => DeleteReCheckOrder(models), |
| | | |
| | | _ => WebResponseContent.Instance.OK(), |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _logger.LogInformation("ReCheckOrderService ReceiveReCheckOrder: " + ex.Message); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent AddReCheckOrder(Dt_ReCheckOrder model) |
| | | public async Task<WebResponseContent> AddReCheckOrder(Dt_ReCheckOrder model) |
| | | { |
| | | try |
| | | { |
| | |
| | | model.Creater = "MES"; |
| | | model.CreateDate = DateTime.Now; |
| | | BaseDal.AddData(model); |
| | | |
| | | var outboundOrders = ConvertToOutboundOrders(model); |
| | | |
| | | await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _logger.LogInformation("ReCheckOrderService AddReCheckOrder: " + ex.Message); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | public WebResponseContent UpdateReCheckOrder(Dt_ReCheckOrder model) |
| | | public async Task<WebResponseContent> UpdateReCheckOrder(Dt_ReCheckOrder model) |
| | | { |
| | | try |
| | | { |
| | |
| | | recheckOrder.InspectionNumber = model.InspectionNumber; |
| | | recheckOrder.SignSeq = model.SignSeq; |
| | | recheckOrder.Qty = model.Qty; |
| | | recheckOrder.WarehouseCode= model.WarehouseCode; |
| | | recheckOrder.WarehouseCode = model.WarehouseCode; |
| | | recheckOrder.FactoryArea = model.FactoryArea; |
| | | recheckOrder.Modifier = "MES"; |
| | | recheckOrder.ModifyDate = DateTime.Now; |
| | | |
| | | BaseDal.UpdateData(recheckOrder); |
| | | |
| | | _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.OrderNo == model.OrderNo).ExecuteCommand(); |
| | | _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>() |
| | | .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.OrderNo == model.OrderNo).Any()).ExecuteCommand(); |
| | | |
| | | var outboundOrders = ConvertToOutboundOrders(model); |
| | | |
| | | await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1); |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _logger.LogInformation("ReCheckOrderService UpdateReCheckOrder: " + ex.Message); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"鏈壘鍒板崟淇℃伅"); |
| | | } |
| | | |
| | | BaseDal.DeleteData(recheckOrder); |
| | | |
| | | |
| | | BaseDal.DeleteData(recheckOrder); |
| | | |
| | | _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.OrderNo == model.OrderNo).ExecuteCommand(); |
| | | _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>() |
| | | .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.OrderNo == model.OrderNo).Any()).ExecuteCommand(); |
| | | |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _logger.LogInformation("ReCheckOrderService DeleteReCheckOrder: " + ex.Message); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public Dt_OutboundOrder ConvertToOutboundOrders(Dt_ReCheckOrder reCheckOrder) |
| | | { |
| | | |
| | | var outboundOrder = new Dt_OutboundOrder() |
| | | { |
| | | WarehouseId = 0, |
| | | OrderNo = reCheckOrder.OrderNo, |
| | | UpperOrderNo = reCheckOrder.OrderNo, |
| | | OrderType = InOrderTypeEnum.ReCheck.ObjToInt(), |
| | | OrderStatus = 0, |
| | | CreateType = 0, |
| | | BusinessType = "", |
| | | IsBatch = 0, |
| | | FactoryArea = reCheckOrder.FactoryArea, |
| | | Remark = "", |
| | | DepartmentCode = "", |
| | | DepartmentName = "", |
| | | Details = new List<Dt_OutboundOrderDetail>() |
| | | }; |
| | | outboundOrder.Details.Add( |
| | | new Dt_OutboundOrderDetail |
| | | { |
| | | OrderId = 0, |
| | | MaterielCode = reCheckOrder.MaterielCode, |
| | | MaterielName = "", |
| | | BatchNo = reCheckOrder.BatchNo, |
| | | OrderQuantity = reCheckOrder.Qty, |
| | | BarcodeQty = (decimal)reCheckOrder.Qty, |
| | | BarcodeUnit = reCheckOrder.Unit, |
| | | LockQuantity = 0, |
| | | lineNo = "", |
| | | OverOutQuantity = 0, |
| | | OrderDetailStatus = 0, |
| | | Unit = reCheckOrder.Unit, |
| | | RowNo = 0, |
| | | SupplyCode = "", |
| | | WarehouseCode = reCheckOrder.WarehouseCode, |
| | | } |
| | | ); |
| | | return outboundOrder; |
| | | } |
| | | |
| | | } |
| | | } |