| | |
| | | task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); |
| | | _unitOfWorkManage.BeginTran(); |
| | | proStockInfo.StockStatus = StockStatusEmun.åºåºå®æ.ObjToInt(); |
| | | _stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(proStockInfo,App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.äººå·¥å®æ : WIDESEA_Core.Enums.OperateTypeEnum.èªå¨å®æ); |
| | | _stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(proStockInfo,App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | if (proStockInfo.proStockInfoDetails!=null && proStockInfo.proStockInfoDetails.Count>0) |
| | | { |
| | | _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(proStockInfo.proStockInfoDetails, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.äººå·¥å®æ : WIDESEA_Core.Enums.OperateTypeEnum.èªå¨å®æ); |
| | | _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(proStockInfo.proStockInfoDetails, App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | _basicService.LocationInfoService.UpdateLocationStatus(locationInfoStart, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.äººå·¥å®æ : WIDESEA_Core.Enums.OperateTypeEnum.èªå¨å®æ); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | else |
| | |
| | | else |
| | | { |
| | | stockInfo.StockStatus = StockStatusEmun.åºåºå®æ.ObjToInt(); |
| | | _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.äººå·¥å®æ : WIDESEA_Core.Enums.OperateTypeEnum.èªå¨å®æ); |
| | | _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | if (outStockLockInfos!=null && outStockLockInfos.Count>0) |
| | | { |
| | |
| | | x.Status=OutLockStockStatusEnum.åºåºå®æ.ObjToInt(); |
| | | }); |
| | | _outboundRepository.OutStockLockInfoRepository.UpdateData(outStockLockInfos); |
| | | _outboundService.OutLineViewService.SaveLineView(outStockLockInfos); |
| | | } |
| | | _basicService.LocationInfoService.UpdateLocationStatus(locationInfoStart, stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.äººå·¥å®æ : WIDESEA_Core.Enums.OperateTypeEnum.èªå¨å®æ); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | else |
| | |
| | | /// </summary> |
| | | /// <param name="stockInfos"></param> |
| | | /// <returns></returns> |
| | | public List<Dt_Task> GetTasks(List<Dt_StockInfo> stockInfos,List<Dt_OutStockLockInfo> outStockLockInfos, TaskTypeEnum taskType) |
| | | public List<Dt_Task> GetTasks(List<Dt_StockInfo> stockInfos,List<Dt_OutStockLockInfo> outStockLockInfos, TaskTypeEnum taskType=new TaskTypeEnum()) |
| | | { |
| | | List<Dt_Task> tasks = new List<Dt_Task>(); |
| | | for (int i = 0; i < stockInfos.Count; i++) |
| | |
| | | { |
| | | //è·åä»»å¡ |
| | | tasks = GetTasks(result.Item1, TaskTypeEnum.OldYLOutbound); |
| | | |
| | | result.Item2.ForEach(x => |
| | | { |
| | | x.OutSGOrderDetailStatus = OutOrderStatusEnum.åºåºä¸.ObjToInt(); |
| | | if (result.Item3.FirstOrDefault(t=>t.OrderDetailId==x.Id)!=null) |
| | | { |
| | | x.OutSGOrderDetailStatus = OutOrderStatusEnum.åºåºä¸.ObjToInt(); |
| | | } |
| | | }); |
| | | result.Item3.ForEach(x => |
| | | { |
| | |
| | | { |
| | | tasks.ForEach(x => |
| | | { |
| | | string orderNos = string.Join(",", outStockLockInfos.Where(x => x.PalletCode == x.PalletCode).Select(x => x.OrderNo).Distinct()); |
| | | string orderNos = string.Join(",", outStockLockInfos.Where(t => t.PalletCode == x.PalletCode).Select(x => x.OrderNo).Distinct()); |
| | | x.OrderNo = orderNos; |
| | | }); |
| | | } |
| | |
| | | { |
| | | x.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); |
| | | }); |
| | | outboundOrderDetails.ForEach(x => |
| | | { |
| | | x.OutSGOrderDetailStatus = OutOrderStatusEnum.åºåºä¸.ObjToInt(); |
| | | }); |
| | | List<Dt_OutSGOrder> outSGOrders = _outboundRepository.OutSGOrderRepository.QueryData(x => outboundOrderDetails.Select(x=>x.OutSGOrderId).Distinct().Contains(x.Id)); |
| | | List<Dt_OutSGOrder> outSGOrders = _outboundRepository.OutSGOrderRepository.QueryData(x => outStockLockInfos.Select(x=>x.OrderNo).Distinct().Contains(x.OrderId)); |
| | | if (outSGOrders.Count<=0) |
| | | { |
| | | throw new Exception("æªæ¾å°åæ®ä¿¡æ¯"); |
| | |
| | | /// </summary> |
| | | /// <param name="bSTPickInfoDTO"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceivePicking(BSTPickInfoDTO bSTPickInfoDTO) |
| | | public WebResponseContent ReceivePicking(List<BSTPickInfoDTO> bSTPickInfoDTOs) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //æ°å¢ |
| | | List<BSTPickInfoDTO> bSTPickInfosAdd = bSTPickInfoDTOs.Where(x => x.Way == 1).ToList(); |
| | | //è·åæ°å¢æç»é¢æ |
| | | List<PaperMattakeDetailItem>? paperMattakeDetailItemsAdd = null; |
| | | //ä¿®æ¹ |
| | | List<BSTPickInfoDTO> bSTPickInfosUp = bSTPickInfoDTOs.Where(x => x.Way == 2).ToList(); |
| | | //è·åæ°å¢æç»é¢æ |
| | | List<PaperMattakeDetailItem>? paperMattakeDetailItemsUp = null; |
| | | if (bSTPickInfosAdd != null && bSTPickInfosAdd.Count > 0) |
| | | { |
| | | paperMattakeDetailItemsAdd = bSTPickInfosAdd.SelectMany(x => x.PaperMattakeDetails).ToList(); |
| | | } |
| | | if (bSTPickInfosUp != null && bSTPickInfosUp.Count > 0) |
| | | { |
| | | paperMattakeDetailItemsUp = bSTPickInfosUp.SelectMany(x => x.PaperMattakeDetails).ToList(); |
| | | } |
| | | //è·åææå¾
颿çåºåºè¯¦æ
|
| | | List<Dt_OutStockLockInfo> outStockLockInfos = _outboundRepository.OutStockLockInfoRepository.QueryData(x=>x.OrderType==OutOrderTypeEnum.OutSGPick.ObjToInt()); |
| | | List<Dt_OutStockLockInfo> outStockLockInfos = _outboundRepository.OutStockLockInfoRepository.QueryData(x => x.OrderType == OutOrderTypeEnum.OutSGPick.ObjToInt() && x.Status==OutLockStockStatusEnum.åºåºå®æ.ObjToInt()); |
| | | #region 颿é»è¾ |
| | | if (paperMattakeDetailItemsAdd != null && paperMattakeDetailItemsAdd.Count > 0) |
| | | { |
| | | foreach (var item in paperMattakeDetailItemsAdd) |
| | | { |
| | | //è·å对åºç |
| | | } |
| | | } |
| | | |
| | | if (paperMattakeDetailItemsUp != null && paperMattakeDetailItemsUp.Count > 0) |
| | | { |
| | | foreach (var item in paperMattakeDetailItemsUp) |
| | | { |
| | | |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// å建ç管æå¨åºåº |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent CreateSGManualTasks(List<int> ids) |
| | | { |
| | | WebResponseContent content=new WebResponseContent(); |
| | | try |
| | | { |
| | | //è·åæææç» |
| | | List<Dt_OutSGOrder> outSGOrders = BaseDal.Db.Queryable<Dt_OutSGOrder>().Where(x=>ids.Contains(x.Id)).Includes(x=>x.Details).ToList(); |
| | | List<Dt_OutSGOrderDetail> outSGOrderDetails = outSGOrders.SelectMany(x=>x.Details.Where(t=>t.OutSGOrderDetailStatus==OutOrderStatusEnum.æªå¼å§.ObjToInt())).ToList(); |
| | | List<int> ints = outSGOrderDetails.Select(x => x.Id).ToList(); |
| | | int[] reseponse = new int[ints.Count]; |
| | | for (int i = 0; i < ints.Count; i++) |
| | | { |
| | | reseponse[i] = ints[i]; |
| | | } |
| | | content = CreateSGOutboundTasks(reseponse); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | |
| | | { |
| | | return content.Error("é¢æè®¡åä¼ å
¥ä¿¡æ¯ä¸ºç©º"); |
| | | } |
| | | outMESOrderDTOs.Select(x => x.OutDetailId); |
| | | List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); |
| | | OutMESOrderDTO? CheckGradeCode = outMESOrderDTOs.FirstOrDefault(x => !GradeCodes.Contains(x.GradeCode)); |
| | | if (CheckGradeCode != null) |
| | | { |
| | | return content.Error($"é¢æè®¡ååºåº{nameof(OutMESOrderDTO.GradeCode)}:{CheckGradeCode.GradeCode}ä¸åå¨"); |
| | | return content.Error($"é¢æè®¡åç级{nameof(OutMESOrderDTO.GradeCode)}:{CheckGradeCode.GradeCode}ä¸åå¨"); |
| | | } |
| | | OutMESOrderDTO? CheckOutDetailId = outMESOrderDTOs.FirstOrDefault(x => x.OutDetailId <= 0); |
| | | if (CheckOutDetailId != null) |
| | | { |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.OutDetailId)}:{CheckOutDetailId.ProductOrderNo}éè¦å¤§äº0"); |
| | | return content.Error($"é¢æè®¡åID:{CheckOutDetailId.OutDetailId}é大äº0"); |
| | | } |
| | | OutMESOrderDTO? CheckReqQuantity = outMESOrderDTOs.FirstOrDefault(x => x.ReqQuantity <= 0); |
| | | if (CheckReqQuantity != null) |
| | | { |
| | | return content.Error($"é¢æè®¡å{nameof(OutMESOrderDTO.ReqQuantity)}:{CheckReqQuantity.ProductOrderNo}éè¦å¤§äº0"); |
| | | return content.Error($"é¢æè®¡åID:{CheckReqQuantity.OutDetailId},{CheckReqQuantity.ProductOrderNo}ç©æéæ±éè¦å¤§äº0"); |
| | | } |
| | | //è·åææç©æä¿¡æ¯ |
| | | List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.MaterielInvOrgId == MaterielInvOrgEnum.æ°å.ObjToInt()); |
| | |
| | | item.MakeArea = makeCenterInfo.MakeArea; |
| | | item.WarehouseId = materielInfo.WarehouseId; |
| | | } |
| | | |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | //æä½æ°æ®ï¼å¹¶åé
éæ±åºå |
| | | _outboundRepository.OutMESOrderRepository.AddData(AddoutMESOrders); |
| | | List<Dt_OutMESOrder> mESOrders = _outboundRepository.OutMESOrderRepository.QueryData(x => AddoutMESOrders.Select(x => x.OutDetailId).Contains(x.OutDetailId)); |
| | | List<Dt_Task> tasks = new List<Dt_Task>(); |
| | |
| | | if (result.Item1 != null && result.Item1.Count > 0) |
| | | { |
| | | //åå»ºä»»å¡ |
| | | tasks = GetTasks(result.Item1, result.Item3, TaskTypeEnum.PrintYLOutbound); |
| | | tasks = GetTasks(result.Item1, result.Item3); |
| | | result.Item2.ForEach(x => |
| | | { |
| | | OutOrderStatusEnum.åºåºä¸.ObjToInt(); |