| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_IInboundRepository; |
| | | using WIDESEA_IInboundService; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Core.Helper; |
| | | using Microsoft.AspNetCore.Mvc.RazorPages; |
| | | using WIDESEA_InboundRepository; |
| | | using WIDESEA_IStockRepository; |
| | | using WIDESEA_Core.Enums; |
| | | using SqlSugar; |
| | | using System.Collections; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_DTO.Outbound; |
| | | using WIDESEA_Core.TaskEnum; |
| | | |
| | | namespace WIDESEA_InboundService |
| | | { |
| | | public class TakeStockOrderCPService : ServiceBase<Dt_TakeStockOrderCP, ITakeStockOrderCPRepository>, ITakeStockOrderCPService |
| | | { |
| | | public ITakeStockOrderCPRepository Repository => BaseDal; |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly IBasicRepository _basicRepository; |
| | | private readonly ITakeStockOrderDetailCPRepository _takeStockOrderDetailCPRepository; |
| | | private readonly IStockInfoRepository _stockInfoRepository; |
| | | private readonly IStockInfoDetailRepository _stockInfoDetailRepository; |
| | | public TakeStockOrderCPService(ITakeStockOrderCPRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, ITakeStockOrderDetailCPRepository takeStockOrderDetailCPRepository, IStockInfoRepository stockInfoRepository, IStockInfoDetailRepository stockInfoDetailRepository) : base(BaseDal) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _basicRepository = basicRepository; |
| | | _takeStockOrderDetailCPRepository = takeStockOrderDetailCPRepository; |
| | | _stockInfoRepository = stockInfoRepository; |
| | | _stockInfoDetailRepository = stockInfoDetailRepository; |
| | | } |
| | | |
| | | //smomä¸åçç¹ä»»å¡ |
| | | public WebResponseContent NewInventoryOut(HouseCancelOut houseInventoryOut) |
| | | { |
| | | WebResponseContent content = new(); |
| | | try |
| | | { |
| | | Dt_TakeStockOrderCP takeStockOrderCP = BaseDal.QueryFirst(x => x.OrderNo == houseInventoryOut.No); |
| | | if (takeStockOrderCP != null) |
| | | { |
| | | OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO(); |
| | | orderAddDTO1.Details = houseInventoryOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>(); |
| | | foreach (var item in orderAddDTO1.Details) |
| | | { |
| | | Dt_TakeStockOrderDetailCP takeStockOrderDetail = new Dt_TakeStockOrderDetailCP() |
| | | { |
| | | TakeStockId = takeStockOrderCP.Id, |
| | | MaterielCode = item.MaterielCode, |
| | | MaterielName = item.MaterielName, |
| | | BatchNo = item.BatchNo, |
| | | MaterielSpec = item.MaterieSpec, |
| | | SysQty = item.OrderQuantity, |
| | | TakePalletCode = item.LPNNo, |
| | | TakeDetalStatus = TakeStockDetailStatusEnum.æªçç¹.ObjToInt(), |
| | | }; |
| | | takeStockOrderCP.Details.Add(takeStockOrderDetail); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO(); |
| | | orderAddDTO1.Details = houseInventoryOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>(); |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == orderAddDTO1.Details.FirstOrDefault().WarehouseCode); |
| | | takeStockOrderCP = new Dt_TakeStockOrderCP() |
| | | { |
| | | OrderNo = houseInventoryOut.No, |
| | | WarehouseId = warehouse.WarehouseId, |
| | | TakeStockStatus = TakeStockDetailStatusEnum.æªçç¹.ObjToInt(), |
| | | Creater = "SMOM", |
| | | CreateDate = DateTime.Now, |
| | | Details = new List<Dt_TakeStockOrderDetailCP>() |
| | | }; |
| | | |
| | | foreach (var item in orderAddDTO1.Details) |
| | | { |
| | | if (item.LPNNo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("çç¹æçå·ä¸è½ä¸ºç©º"); |
| | | } |
| | | Dt_TakeStockOrderDetailCP takeStockOrderDetail = new Dt_TakeStockOrderDetailCP() |
| | | { |
| | | TakeStockId = takeStockOrderCP.Id, |
| | | MaterielCode = item.MaterielCode, |
| | | MaterielName = item.MaterielName, |
| | | BatchNo = item.BatchNo, |
| | | MaterielSpec = item.MaterieSpec, |
| | | SysQty = item.OrderQuantity, |
| | | TakePalletCode = item.LPNNo, |
| | | Creater = "SMOM", |
| | | CreateDate = DateTime.Now, |
| | | TakeDetalStatus = TakeStockDetailStatusEnum.æªçç¹.ObjToInt(), |
| | | }; |
| | | takeStockOrderCP.Details.Add(takeStockOrderDetail); |
| | | } |
| | | } |
| | | _unitOfWorkManage.BeginTran(); |
| | | BaseDal.Db.InsertNav(takeStockOrderCP).Include(x => x.Details).ExecuteCommand(); |
| | | _unitOfWorkManage.CommitTran(); |
| | | content = WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// è·å对åºä»åºçç¹å |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetTakeStockOrders(SaveModel saveModel) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | int pageNo = saveModel.MainData["pageNo"].ObjToInt(); |
| | | string? orderNo = saveModel.MainData["orderNo"].ToString(); |
| | | int warehouseId = saveModel.MainData["warehouseId"].ObjToInt(); |
| | | List<Dt_TakeStockOrderCP> takeStockOrders = new List<Dt_TakeStockOrderCP>(); |
| | | if (string.IsNullOrEmpty(orderNo)) |
| | | { |
| | | takeStockOrders = Db.Queryable<Dt_TakeStockOrderCP>().Where(x => x.TakeStockStatus < TakeStockStatusEnum.çç¹å®æ.ObjToInt() && x.WarehouseId == warehouseId).Includes(x => x.Details).ToPageList(pageNo, 5); |
| | | } |
| | | else |
| | | { |
| | | takeStockOrders = Db.Queryable<Dt_TakeStockOrderCP>().Where(x => (x.OrderNo.Contains(orderNo) && x.TakeStockStatus < TakeStockStatusEnum.çç¹å®æ.ObjToInt() && x.WarehouseId == warehouseId)).Includes(x => x.Details).ToPageList(pageNo, 5); |
| | | } |
| | | content.OK(data: takeStockOrders); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æåçç¹ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent TakeStockOrderCP(SaveModel saveModel) |
| | | { |
| | | WebResponseContent responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | |
| | | } |
| | | catch (Exception) |
| | | { |
| | | |
| | | throw; |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | } |
| | | } |