´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0f396786-d098-488f-b62f-cb56f597e742.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2890c663-d711-4602-bdad-56852b6a51bc.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/433da193-e6b4-48ed-bdc6-2332b099c9c2.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5d85e8a3-a7a8-453e-a30d-0eea1a0362a4.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5e0bd2ed-63f0-464e-b65d-6e328058f9ca.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/776b31ca-b3d0-487d-8a56-85a65dead3f1.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7c6138bc-3140-4505-80bf-ce7e49063d2e.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/8ec046b0-40f2-4e27-acac-8986b42cfae0.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/90452a76-738e-47ca-a3e0-da8f36d31ada.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/993667d3-2068-4ea5-8fda-e1b10b53b187.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9b53cffc-065b-40ee-a779-a99d0cdd29b8.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9d9a63aa-14be-4604-afce-498fd93c2f7a.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9ec6694e-5882-4f4c-83dc-d548cd406f48.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b6698150-4fc6-4ad0-a0c8-f0d9b263a855.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e77473e6-bb6a-4e6e-9958-ad4a0f7b3f2c.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ApprovalService/ApprovalTaskService.cs
@@ -40,8 +40,11 @@ _userRepository = userRepository; } /// <summary> /// 审æ¹åæ /// </summary> /// <param name="sourceKey">æºä¸»é®</param> /// <returns></returns> public WebResponseContent AuditAgree(int sourceKey) { try @@ -149,6 +152,11 @@ } } /// <summary> /// 审æ¹é©³å /// </summary> /// <param name="sourceKey">æºä¸»é®</param> /// <returns></returns> public WebResponseContent AuditReject(int sourceKey) { try ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs
@@ -31,27 +31,11 @@ _unitOfWorkManage = unitOfWorkManage; } public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options) { return base.GetPageData(options); } public override WebResponseContent AddData(SaveModel saveModel) { Dt_LocationInfo locationInfo = saveModel.MainData.DicToModel<Dt_LocationInfo>(); return base.AddData(locationInfo); } public override WebResponseContent UpdateData(SaveModel saveModel) { return base.UpdateData(saveModel); } public override WebResponseContent DeleteData(object[] keys) { return base.DeleteData(keys); } /// <summary> /// æ¹éå¯ç¨è´§ä½ /// </summary> /// <param name="keys">è´§ä½ä¸»é®æ°ç»</param> /// <returns></returns> public WebResponseContent LocationEnableStatus(int[] keys) { List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => keys.Contains(x.Id)); @@ -64,6 +48,11 @@ return WebResponseContent.Instance.OK(); } /// <summary> /// æ¹éç¦ç¨è´§ä½ /// </summary> /// <param name="keys">è´§ä½ä¸»é®æ°ç»</param> /// <returns></returns> public WebResponseContent LocationDisableStatus(int[] keys) { List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => keys.Contains(x.Id)); @@ -76,16 +65,31 @@ return WebResponseContent.Instance.OK(); } /// <summary> /// å个å¯ç¨è´§ä½ /// </summary> /// <param name="key">è´§ä½ä¸»é®</param> /// <returns></returns> public WebResponseContent LocationEnableStatus(int key) { return LocationEnableStatus(new int[] { key }); } /// <summary> /// å个ç¦ç¨è´§ä½ /// </summary> /// <param name="key">è´§ä½ä¸»é®</param> /// <returns></returns> public WebResponseContent LocationDisableStatus(int key) { return LocationDisableStatus(new int[] { key }); } /// <summary> /// åå§åè´§ä½ /// </summary> /// <param name="initializationLocationDTO"></param> /// <returns></returns> public WebResponseContent InitializationLocation(InitializationLocationDTO initializationLocationDTO) { try ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/MaterielInfoService.cs
@@ -19,19 +19,5 @@ public IMaterielInfoRepository Repository => BaseDal; public override WebResponseContent AddData(SaveModel saveModel) { return base.AddData(saveModel); } public override WebResponseContent UpdateData(SaveModel saveModel) { return base.UpdateData(saveModel); } public override WebResponseContent DeleteData(object[] keys) { return base.DeleteData(keys); } } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/WarehouseService.cs
@@ -22,22 +22,11 @@ public IWarehouseRepository Repository => BaseDal; public override WebResponseContent AddData(SaveModel saveModel) { Dt_Warehouse warehouse = saveModel.MainData.DicToModel<Dt_Warehouse>(); return base.AddData(warehouse); } public override WebResponseContent UpdateData(SaveModel saveModel) { return base.UpdateData(saveModel); } public override WebResponseContent DeleteData(object[] keys) { return base.DeleteData(keys); } /// <summary> /// æ¹éå¯ç¨ä»åº /// </summary> /// <param name="keys">ä»åºä¸»é®æ°ç»</param> /// <returns></returns> public WebResponseContent WarehouseEnableStatus(int[] keys) { List<Dt_Warehouse> warehouses = Repository.QueryData(x => keys.Contains(x.WarehouseId)); @@ -50,6 +39,11 @@ return WebResponseContent.Instance.OK(); } /// <summary> /// æ¹éç¦ç¨ä»åº /// </summary> /// <param name="keys">ä»åºä¸»é®æ°ç»</param> /// <returns></returns> public WebResponseContent WarehouseDisableStatus(int[] keys) { List<Dt_Warehouse> warehouses = Repository.QueryData(x => keys.Contains(x.WarehouseId)); @@ -62,11 +56,21 @@ return WebResponseContent.Instance.OK(); } /// <summary> /// å个å¯ç¨ä»åº /// </summary> /// <param name="key">ä»åºä¸»é®</param> /// <returns></returns> public WebResponseContent WarehouseEnableStatus(int key) { return WarehouseEnableStatus(new int[] { key }); } /// <summary> /// å个ç¦ç¨ä»åº /// </summary> /// <param name="key">ä»åºä¸»é®</param> /// <returns></returns> public WebResponseContent WarehouseDisableStatus(int key) { return WarehouseDisableStatus(new int[] { key }); ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/BasicService.cs
@@ -14,6 +14,9 @@ { public class BasicService : IBasicService { /// <summary> /// /// </summary> public ILocationInfoService LocationInfoService { get; } public IMaterielInfoService MaterielInfoService { get; } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs
@@ -27,6 +27,13 @@ private readonly static object _locker = new object(); static List<LocationCache> locationCaches = new List<LocationCache>(); /// <summary> /// è´§ä½åé é»è¾ /// </summary> /// <param name="roadwayNo">å··éå·</param> /// <param name="palletType">æçç±»å</param> /// <returns></returns> public Dt_LocationInfo? AssignLocation(string roadwayNo, PalletTypeEnum palletType) { lock (_locker) @@ -141,6 +148,12 @@ return null; } /// <summary> /// ä¿®æ¹è´§ä½ç¶æåç±»å /// </summary> /// <param name="locationCode">è´§ä½ç¼å·</param> /// <param name="palletType">æçç±»å</param> /// <param name="locationStatus">è´§ä½ç¶æ</param> public void UpdateLocationStatus(string locationCode, PalletTypeEnum palletType, LocationStatusEnum locationStatus) { Dt_LocationInfo location = Repository.QueryFirst(x => x.LocationCode == locationCode); @@ -181,6 +194,12 @@ Repository.UpdateData(locations); } /// <summary> /// ä¿®æ¹è´§ä½ç¶æåç±»å /// </summary> /// <param name="location">è´§ä½å¯¹è±¡</param> /// <param name="palletType">æçç±»å</param> /// <param name="locationStatus">è´§ä½ç¶æ</param> public void UpdateLocationStatus(Dt_LocationInfo location, PalletTypeEnum palletType, LocationStatusEnum locationStatus) { List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo); ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/MaterielInfoService.cs
@@ -17,16 +17,31 @@ { public partial class MaterielInfoService : ServiceBase<Dt_MaterielInfo, IMaterielInfoRepository>, IMaterielInfoService { /// <summary> /// å¤æç©ææ¯å¦åå¨ /// </summary> /// <param name="materielCode">ç©æç¼å·</param> /// <returns></returns> public bool ExsitMateriel(string materielCode) { return BaseDal.QueryFirst(x => x.MaterielCode == materielCode) != null; } /// <summary> /// å¤æç©ææ¯å¦åå¨ /// </summary> /// <param name="materielCodes">ç©æç¼å·éå</param> /// <returns></returns> public bool ExsitMateriels(List<string> materielCodes) { return BaseDal.QueryFirst(x => materielCodes.Contains(x.MaterielCode)) != null; return BaseDal.QueryData(x => materielCodes.Contains(x.MaterielCode)).Count == materielCodes.Count; } /// <summary> /// è·åç©æä¿¡æ¯ /// </summary> /// <param name="materielCode">ç©æç¼å·</param> /// <returns></returns> public Dt_MaterielInfo GetMaterielInfo(string materielCode) { return BaseDal.QueryFirst(x => x.MaterielCode == materielCode); @@ -35,13 +50,18 @@ /// <summary> /// æ¥è¯¢ç©æä¿¡æ¯ /// </summary> /// <param name="materielCodes"></param> /// <param name="materielCodes">ç©æç¼å·</param> /// <returns></returns> public List<Dt_MaterielInfo> GetMaterielInfos(List<string> materielCodes) { return BaseDal.QueryData(x => materielCodes.Contains(x.MaterielCode)); } /// <summary> /// æ¥æ¶ERPç©æä¿¡æ¯ /// </summary> /// <param name="model"></param> /// <returns></returns> public WebResponseContent ReceiveMaterial(MaterielInfoDTO model) { try ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs
@@ -23,6 +23,12 @@ _checkOrderRepository = checkOrderRepository; } /// <summary> /// æäº¤è´¨æ£ç»æ /// </summary> /// <param name="checkOrderId">è´¨æ£å主é®</param> /// <param name="checkResult">è´¨æ£ç»æå¯¹è±¡</param> /// <returns></returns> public WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult) { try ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs
@@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_External.Model; namespace WIDESEA_External.ERPService @@ -10,7 +11,7 @@ /// <summary> /// è°ç¨ERPæ¥å£ /// </summary> public interface IInvokeERPService public interface IInvokeERPService : IDependency { /// <summary> /// ERPæ¶è´§åæ¥å£è°ç¨ ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IApprovalService/IApprovalTaskService.cs
@@ -14,8 +14,18 @@ { IApprovalTaskRepository Repository { get; } /// <summary> /// 审æ¹åæ /// </summary> /// <param name="sourceKey">æºä¸»é®</param> /// <returns></returns> WebResponseContent AuditAgree(int sourceKey); /// <summary> /// 审æ¹é©³å /// </summary> /// <param name="sourceKey">æºä¸»é®</param> /// <returns></returns> WebResponseContent AuditReject(int sourceKey); } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs
@@ -17,20 +17,63 @@ { ILocationInfoRepository Repository { get; } /// <summary> /// æ¹éå¯ç¨è´§ä½ /// </summary> /// <param name="keys">è´§ä½ä¸»é®æ°ç»</param> /// <returns></returns> WebResponseContent LocationEnableStatus(int[] keys); /// <summary> /// æ¹éç¦ç¨è´§ä½ /// </summary> /// <param name="keys">è´§ä½ä¸»é®æ°ç»</param> /// <returns></returns> WebResponseContent LocationDisableStatus(int[] keys); /// <summary> /// å个å¯ç¨è´§ä½ /// </summary> /// <param name="key">è´§ä½ä¸»é®</param> /// <returns></returns> WebResponseContent LocationEnableStatus(int key); /// <summary> /// å个ç¦ç¨è´§ä½ /// </summary> /// <param name="key">è´§ä½ä¸»é®</param> /// <returns></returns> WebResponseContent LocationDisableStatus(int key); /// <summary> /// åå§åè´§ä½ /// </summary> /// <param name="initializationLocationDTO"></param> /// <returns></returns> WebResponseContent InitializationLocation(InitializationLocationDTO initializationLocationDTO); /// <summary> /// è´§ä½åé é»è¾ /// </summary> /// <param name="roadwayNo">å··éå·</param> /// <param name="palletType">æçç±»å</param> /// <returns></returns> Dt_LocationInfo? AssignLocation(string roadwayNo, PalletTypeEnum palletType); /// <summary> /// ä¿®æ¹è´§ä½ç¶æåç±»å /// </summary> /// <param name="locationCode">è´§ä½ç¼å·</param> /// <param name="palletType">æçç±»å</param> /// <param name="locationStatus">è´§ä½ç¶æ</param> void UpdateLocationStatus(string locationCode, PalletTypeEnum palletType, LocationStatusEnum locationStatus); /// <summary> /// ä¿®æ¹è´§ä½ç¶æåç±»å /// </summary> /// <param name="location">è´§ä½å¯¹è±¡</param> /// <param name="palletType">æçç±»å</param> /// <param name="locationStatus">è´§ä½ç¶æ</param> void UpdateLocationStatus(Dt_LocationInfo location, PalletTypeEnum palletType, LocationStatusEnum locationStatus); } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IMaterielInfoService.cs
@@ -15,14 +15,39 @@ { IMaterielInfoRepository Repository { get; } /// <summary> /// å¤æç©ææ¯å¦åå¨ /// </summary> /// <param name="materielCode">ç©æç¼å·</param> /// <returns></returns> bool ExsitMateriel(string materielCode); /// <summary> /// å¤æç©ææ¯å¦åå¨ /// </summary> /// <param name="materielCodes">ç©æç¼å·éå</param> /// <returns></returns> bool ExsitMateriels(List<string> materielCodes); /// <summary> /// è·åç©æä¿¡æ¯ /// </summary> /// <param name="materielCode">ç©æç¼å·</param> /// <returns></returns> Dt_MaterielInfo GetMaterielInfo(string materielCode); /// <summary> /// æ¥è¯¢ç©æä¿¡æ¯ /// </summary> /// <param name="materielCodes"></param> /// <returns></returns> List<Dt_MaterielInfo> GetMaterielInfos(List<string> materielCodes); /// <summary> /// æ¥æ¶ERPç©æä¿¡æ¯ /// </summary> /// <param name="model"></param> /// <returns></returns> WebResponseContent ReceiveMaterial(MaterielInfoDTO model); } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IWarehouseService.cs
@@ -14,12 +14,32 @@ { IWarehouseRepository Repository { get; } /// <summary> /// æ¹éå¯ç¨ä»åº /// </summary> /// <param name="keys">ä»åºä¸»é®æ°ç»</param> /// <returns></returns> WebResponseContent WarehouseEnableStatus(int[] keys); /// <summary> /// æ¹éç¦ç¨ä»åº /// </summary> /// <param name="keys">ä»åºä¸»é®æ°ç»</param> /// <returns></returns> WebResponseContent WarehouseDisableStatus(int[] keys); /// <summary> /// å个å¯ç¨ä»åº /// </summary> /// <param name="key">ä»åºä¸»é®</param> /// <returns></returns> WebResponseContent WarehouseEnableStatus(int key); /// <summary> /// å个ç¦ç¨ä»åº /// </summary> /// <param name="key">ä»åºä¸»é®</param> /// <returns></returns> WebResponseContent WarehouseDisableStatus(int key); } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs
@@ -11,6 +11,12 @@ { public interface ICheckOrderResultService : IService<Dt_CheckOrderResult> { /// <summary> /// æäº¤è´¨æ£ç»æ /// </summary> /// <param name="checkOrderId">è´¨æ£å主é®</param> /// <param name="checkResult">è´¨æ£ç»æå¯¹è±¡</param> /// <returns></returns> WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult); } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IReceiveOrderService.cs
@@ -25,5 +25,13 @@ /// <returns></returns> WebResponseContent FeedbackReceiveOrder(int orderId); WebResponseContent GetReceiveOrders(SaveModel saveModel); /// <summary> /// /// </summary> /// <param name="purchaseOrderId"></param> /// <param name="lotNo"></param> /// <returns></returns> WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo); } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs
@@ -5,6 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.OrderEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; @@ -134,7 +135,7 @@ _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder); _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); if (materielInfo.IsCheck == WIDESEA_Common.CommonEnum.WhetherEnum.True) if (materielInfo.IsCheck == WhetherEnum.True) { Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs
@@ -1,4 +1,5 @@ using MailKit.Search; using AutoMapper; using MailKit.Search; using System; using System.Collections.Generic; using System.Linq; @@ -7,8 +8,10 @@ using WIDESEA_Common.CommonEnum; using WIDESEA_Common.OrderEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Helper; using WIDESEA_DTO.Basic; using WIDESEA_External.ERPService; using WIDESEA_External.Model; using WIDESEA_IBasicRepository; @@ -21,13 +24,17 @@ { public class ReceiveOrderService : ServiceBase<Dt_ReceiveOrder, IReceiveOrderRepository>, IReceiveOrderService { private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly IMapper _mapper; private readonly ICheckOrderRepository _checkOrderRepository; private readonly IInboundRepository _inboundRepository; private readonly IBasicRepository _basicRepository; private readonly IInvokeERPService _invokeERPService; public ReceiveOrderService(IReceiveOrderRepository BaseDal, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal) public ReceiveOrderService(IReceiveOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal) { _mapper = mapper; _unitOfWorkManage = unitOfWorkManage; _checkOrderRepository = checkOrderRepository; _inboundRepository = inboundRepository; _basicRepository = basicRepository; @@ -119,7 +126,7 @@ CompanyId = "", DeliveryCode = receiveOrder.DeliveryCode, CustomerId = receiveOrder.CustomerId, CreatorId = receiveOrder.CustomerId, CreatorId = receiveOrder.Creater, EndDate = receiveOrder.CreateDate, ReceiveDate = receiveOrder.CreateDate, PlantsId = "", @@ -139,6 +146,8 @@ { return WebResponseContent.Instance.Error(ex.Message); } } public WebResponseContent GetReceiveOrders(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); @@ -241,5 +250,163 @@ return WebResponseContent.Instance.Error(ex.Message); } } public WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo) { try { Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.Id == purchaseOrderId).Includes(x => x.Details).First(); if (purchaseOrder == null) { return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥éè´å"); } if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0) { return WebResponseContent.Instance.Error($"æªæ¾å°éè´åæç»ä¿¡æ¯"); } if (purchaseOrder.PurchaseOrderStatus == PurchaseOrderStatusEnum.Received.ObjToInt()) { return WebResponseContent.Instance.Error($"å·²æ¶è´§å®æ"); } if (purchaseOrder.Details.FirstOrDefault(x => x.PurchaseDetailStatus == PurchaseOrderStatusEnum.NotReceived.ObjToInt()) == null) { return WebResponseContent.Instance.Error($"å·²æ¶è´§å®æ"); } List<Dt_CheckOrder> checkOrders = new List<Dt_CheckOrder>(); List<Dt_MaterielInfo> materielInfos = new List<Dt_MaterielInfo>(); List<Dt_ReceiveOrderDetail> receiveOrderDetails = new List<Dt_ReceiveOrderDetail>(); Dt_ReceiveOrder receiveOrder = BaseDal.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.SuppliersId == purchaseOrder.SupplierCode && x.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt()).Includes(x => x.Details).First(); if (receiveOrder == null) { int rowNo = 0; foreach (var item in purchaseOrder.Details) { Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode); if (materielInfo == null) { materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == item.MaterielCode); if (materielInfo == null) { return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ç©æçä¿¡æ¯"); } materielInfos.Add(materielInfo); } Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail() { PurchaseOrderNo = purchaseOrder.PurchaseOrderNo, ReceivedQuantity = item.PurchaseDetailQuantity, MaterielCode = item.MaterielCode, LotNo = lotNo, PurchaseOrderDetailRowNo = item.RowNo, IfInspection = materielInfo.IsCheck.ObjToInt(), CurrCode = "", PriceInTax = 0, TaxRate = "", RowNo = rowNo + 1, Unit = item.Unit }; rowNo += 1; receiveOrderDetails.Add(receiveOrderDetail); if (materielInfo.IsCheck == WhetherEnum.True) { Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); checkOrder.ReceiveOrderNo = ""; checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; checkOrder.ScrappedQuantity = 0; checkOrder.ReturnQuantity = 0; checkOrder.DefectedQuantity = 0; checkOrder.ReceiveDetailRowNo = rowNo; checkOrders.Add(checkOrder); } } receiveOrder = new Dt_ReceiveOrder() { ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(), CustomerId = "", DeliveryCode = "", ReceiveDate = DateTime.Now, ReceiveOrderType = ReceiveOrderTypeEnum.PO.ObjToInt(), SuppliersId = purchaseOrder.SupplierCode, WarehouseId = purchaseOrder.Details.FirstOrDefault()?.WarehouseId ?? 0, UploadStatus = WhetherEnum.False.ObjToInt(), Details = receiveOrderDetails }; } else { int rowNo = receiveOrder.Details.Count > 0 ? receiveOrder.Details.Max(x => x.RowNo) : 0; foreach (var item in purchaseOrder.Details) { Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode); if (materielInfo == null) { materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == item.MaterielCode); if (materielInfo == null) { return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ç©æçä¿¡æ¯"); } materielInfos.Add(materielInfo); } Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail() { PurchaseOrderNo = purchaseOrder.PurchaseOrderNo, ReceivedQuantity = item.PurchaseDetailQuantity, MaterielCode = item.MaterielCode, LotNo = lotNo, ReceiveOrderId = receiveOrder.ReceiveOrderId, PurchaseOrderDetailRowNo = item.RowNo, IfInspection = materielInfo.IsCheck.ObjToInt(), CurrCode = "", PriceInTax = 0, TaxRate = "", RowNo = rowNo + 1, Unit = item.Unit, }; rowNo += 1; receiveOrderDetails.Add(receiveOrderDetail); if (materielInfo.IsCheck == WhetherEnum.True) { Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; checkOrder.ScrappedQuantity = 0; checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; checkOrder.ReturnQuantity = 0; checkOrder.DefectedQuantity = 0; checkOrder.ReceiveDetailRowNo = rowNo; checkOrders.Add(checkOrder); } } } purchaseOrder.Details.ForEach(x => x.PurchaseDetailStatus = PurchaseOrderStatusEnum.Received.ObjToInt()); purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt(); _unitOfWorkManage.BeginTran(); if (receiveOrder.ReceiveOrderId > 0) { Db.Insertable(receiveOrderDetails).ExecuteCommand(); } else { Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand(); checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo); } _checkOrderRepository.AddData(checkOrders); _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details); _unitOfWorkManage.CommitTran(); return WebResponseContent.Instance.OK(); } catch (Exception ex) { _unitOfWorkManage.RollbackTran(); return WebResponseContent.Instance.Error(ex.Message); } } } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/ReceiveOrderController.cs
@@ -45,5 +45,17 @@ { return Service.GetReceiveOrders(saveModel); } /// <summary> /// æ¶è´§ /// </summary> /// <param name="purchaseOrderId"></param> /// <param name="lotNo"></param> /// <returns></returns> [HttpPost, HttpGet, Route("ReceiveAllOrder")] public WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo) { return Service.ReceiveAllOrder(purchaseOrderId, lotNo); } } }