| | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.DependencyInjection; |
| | | using Furion.DynamicApiController; |
| | | using Furion.FriendlyException; |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Yitter.IdGenerator; |
| | | using Admin.NET.Core; |
| | | //using Furion.DatabaseAccessor; |
| | | //using Furion.DependencyInjection; |
| | | //using Furion.DynamicApiController; |
| | | //using Furion.FriendlyException; |
| | | //using Mapster; |
| | | //using Microsoft.AspNetCore.Mvc; |
| | | //using Microsoft.EntityFrameworkCore; |
| | | //using Yitter.IdGenerator; |
| | | //using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// å
¥åºç®¡çæå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("èªå·±çä¸å¡", Name = "BindEntrance", Order = 100)] |
| | | [Route("api/[Controller]")] |
| | | public class BindEntranceService : IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsArea, MasterDbContextLocator> _wmsAreaRep; |
| | | private readonly IRepository<WmsPlace, MasterDbContextLocator> _wmsPlaceRep; |
| | | private readonly IRepository<WmsTask, MasterDbContextLocator> _wmsTaskRep; |
| | | private readonly IRepository<WmsContainer, MasterDbContextLocator> _wmsContainerRep; |
| | | private readonly IRepository<WmsContainerPlace, MasterDbContextLocator> _wmsContainerPlaceRep; |
| | | private readonly IRepository<WmsMaterial, MasterDbContextLocator> _wmsMaterialRep; |
| | | private readonly IRepository<WmsMaterialStock, MasterDbContextLocator> _wmsMaterialStockRep; |
| | | private readonly IRepository<WmsMaterialContainer, MasterDbContextLocator> _wmsMaterialContainerRep; |
| | | //namespace Admin.NET.Application |
| | | //{ |
| | | // /// <summary> |
| | | // /// å
¥åºç®¡çæå¡ |
| | | // /// </summary> |
| | | // [ApiDescriptionSettings("èªå·±çä¸å¡", Name = "BindEntrance", Order = 100)] |
| | | // [Route("api/[Controller]")] |
| | | // public class BindEntranceService : IDynamicApiController, ITransient |
| | | // { |
| | | // private readonly IRepository<WmsArea, MasterDbContextLocator> _wmsAreaRep; |
| | | // private readonly IRepository<WmsPlace, MasterDbContextLocator> _wmsPlaceRep; |
| | | // private readonly IRepository<WmsTask, MasterDbContextLocator> _wmsTaskRep; |
| | | // private readonly IRepository<WmsContainer, MasterDbContextLocator> _wmsContainerRep; |
| | | // private readonly IRepository<WmsContainerPlace, MasterDbContextLocator> _wmsContainerPlaceRep; |
| | | // private readonly IRepository<WmsMaterial, MasterDbContextLocator> _wmsMaterialRep; |
| | | // private readonly IRepository<WmsMaterialStock, MasterDbContextLocator> _wmsMaterialStockRep; |
| | | // private readonly IRepository<WmsMaterialContainer, MasterDbContextLocator> _wmsMaterialContainerRep; |
| | | |
| | | /// <summary> |
| | | /// æé 彿° |
| | | /// </summary> |
| | | public BindEntranceService( |
| | | IRepository<WmsArea, MasterDbContextLocator> wmsAreaRep, |
| | | IRepository<WmsPlace, MasterDbContextLocator> wmsPlaceRep, |
| | | IRepository<WmsTask, MasterDbContextLocator> wmsTaskRep, |
| | | IRepository<WmsContainer, MasterDbContextLocator> wmsContainerRep, |
| | | IRepository<WmsContainerPlace, MasterDbContextLocator> wmsContainerPlaceRep, |
| | | IRepository<WmsMaterial, MasterDbContextLocator> wmsMaterialRep, |
| | | IRepository<WmsMaterialStock, MasterDbContextLocator> wmsMaterialStockRep, |
| | | IRepository<WmsMaterialContainer, MasterDbContextLocator> wmsMaterialContainerRep) |
| | | { |
| | | this._wmsAreaRep = wmsAreaRep; |
| | | this._wmsPlaceRep = wmsPlaceRep; |
| | | this._wmsTaskRep = wmsTaskRep; |
| | | this._wmsContainerRep = wmsContainerRep; |
| | | this._wmsContainerPlaceRep = wmsContainerPlaceRep; |
| | | this._wmsMaterialRep = wmsMaterialRep; |
| | | this._wmsMaterialStockRep = wmsMaterialStockRep; |
| | | this._wmsMaterialContainerRep = wmsMaterialContainerRep; |
| | | } |
| | | // /// <summary> |
| | | // /// æé 彿° |
| | | // /// </summary> |
| | | // public BindEntranceService( |
| | | // IRepository<WmsArea, MasterDbContextLocator> wmsAreaRep, |
| | | // IRepository<WmsPlace, MasterDbContextLocator> wmsPlaceRep, |
| | | // IRepository<WmsTask, MasterDbContextLocator> wmsTaskRep, |
| | | // IRepository<WmsContainer, MasterDbContextLocator> wmsContainerRep, |
| | | // IRepository<WmsContainerPlace, MasterDbContextLocator> wmsContainerPlaceRep, |
| | | // IRepository<WmsMaterial, MasterDbContextLocator> wmsMaterialRep, |
| | | // IRepository<WmsMaterialStock, MasterDbContextLocator> wmsMaterialStockRep, |
| | | // IRepository<WmsMaterialContainer, MasterDbContextLocator> wmsMaterialContainerRep) |
| | | // { |
| | | // this._wmsAreaRep = wmsAreaRep; |
| | | // this._wmsPlaceRep = wmsPlaceRep; |
| | | // this._wmsTaskRep = wmsTaskRep; |
| | | // this._wmsContainerRep = wmsContainerRep; |
| | | // this._wmsContainerPlaceRep = wmsContainerPlaceRep; |
| | | // this._wmsMaterialRep = wmsMaterialRep; |
| | | // this._wmsMaterialStockRep = wmsMaterialStockRep; |
| | | // this._wmsMaterialContainerRep = wmsMaterialContainerRep; |
| | | // } |
| | | |
| | | /// <summary> |
| | | /// æçæ¥è¯¢ç»çç©æ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("getcontainer")] |
| | | [UnifyResult(typeof(BindEntranceOutput))] |
| | | public async Task<object> GetContainer([FromQuery] BindEntranceInput input) |
| | | { |
| | | var bindEntranceOutputModel = new BindEntranceOutput(); |
| | | // /// <summary> |
| | | // /// æçæ¥è¯¢ç»çç©æ |
| | | // /// </summary> |
| | | // /// <param name="input"></param> |
| | | // /// <returns></returns> |
| | | // [HttpGet("getcontainer")] |
| | | // [UnifyResult(typeof(BindEntranceOutput))] |
| | | // public async Task<object> GetContainer([FromQuery] BindEntranceInput input) |
| | | // { |
| | | // var bindEntranceOutputModel = new BindEntranceOutput(); |
| | | |
| | | var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(n => n.ContainerCode == input.ContainerCode && n.ContainerStatus != ContainerStatus.JINYONG); |
| | | if (wmsContainer == null) |
| | | { |
| | | var newWmsContainer = new WmsContainerDto(); |
| | | newWmsContainer.ContainerCode = input.ContainerCode; |
| | | newWmsContainer.ContainerStatus = ContainerStatus.KOUXIAN; |
| | | newWmsContainer.ContainerType = ContainerType.SULIAO; |
| | | // var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(n => n.ContainerCode == input.ContainerCode && n.ContainerStatus != ContainerStatus.JINYONG); |
| | | // if (wmsContainer == null) |
| | | // { |
| | | // var newWmsContainer = new WmsContainerDto(); |
| | | // newWmsContainer.ContainerCode = input.ContainerCode; |
| | | // newWmsContainer.ContainerStatus = ContainerStatus.KOUXIAN; |
| | | // newWmsContainer.ContainerType = ContainerType.SULIAO; |
| | | |
| | | bindEntranceOutputModel.ContainerCode = input.ContainerCode; |
| | | bindEntranceOutputModel.WmsContainer = newWmsContainer; |
| | | // bindEntranceOutputModel.ContainerCode = input.ContainerCode; |
| | | // bindEntranceOutputModel.WmsContainer = newWmsContainer; |
| | | |
| | | if (wmsContainer != null) |
| | | { |
| | | var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG); |
| | | if (isWmsTask) return XnRestfulResultProvider.RESTfulMesaage("å¨è½¬ç®±å·å卿ªå®æä»»å¡!"); |
| | | // if (wmsContainer != null) |
| | | // { |
| | | // var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG); |
| | | // if (isWmsTask) return XnRestfulResultProvider.RESTfulMesaage("å¨è½¬ç®±å·å卿ªå®æä»»å¡!"); |
| | | |
| | | bindEntranceOutputModel.WmsContainer = wmsContainer.Adapt<WmsContainerDto>(); |
| | | bindEntranceOutputModel.ContainerCode = wmsContainer.ContainerCode; |
| | | // bindEntranceOutputModel.WmsContainer = wmsContainer.Adapt<WmsContainerDto>(); |
| | | // bindEntranceOutputModel.ContainerCode = wmsContainer.ContainerCode; |
| | | |
| | | // å¨è½¬ç®±å·ç»çç¶æ |
| | | if (wmsContainer.ContainerStatus == ContainerStatus.ZUPANG) |
| | | { |
| | | bindEntranceOutputModel.WmsMaterials = await _wmsMaterialContainerRep |
| | | .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ProjectToType<GetMaterialContainerOutput>().ToListAsync(); |
| | | // // å¨è½¬ç®±å·ç»çç¶æ |
| | | // if (wmsContainer.ContainerStatus == ContainerStatus.ZUPANG) |
| | | // { |
| | | // bindEntranceOutputModel.WmsMaterials = await _wmsMaterialContainerRep |
| | | // .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ProjectToType<GetMaterialContainerOutput>().ToListAsync(); |
| | | |
| | | return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel); |
| | | } |
| | | // å¨è½¬ç®±å·åºä½ç¶æ |
| | | if (wmsContainer.ContainerStatus == ContainerStatus.KUWEI) |
| | | { |
| | | // æ¥è¯¢å¨è½¬ç®±å·ä¸åºä½å
³ç³» |
| | | var wmsContainerPlace = await _wmsContainerPlaceRep.FirstOrDefaultAsync(u => u.ContainerId == wmsContainer.Id && u.ContainerCode == wmsContainer.ContainerCode); |
| | | // return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel); |
| | | // } |
| | | // // å¨è½¬ç®±å·åºä½ç¶æ |
| | | // if (wmsContainer.ContainerStatus == ContainerStatus.KUWEI) |
| | | // { |
| | | // // æ¥è¯¢å¨è½¬ç®±å·ä¸åºä½å
³ç³» |
| | | // var wmsContainerPlace = await _wmsContainerPlaceRep.FirstOrDefaultAsync(u => u.ContainerId == wmsContainer.Id && u.ContainerCode == wmsContainer.ContainerCode); |
| | | |
| | | if (wmsContainerPlace != null) bindEntranceOutputModel.PlaceCode = wmsContainerPlace.PlaceCode; |
| | | // if (wmsContainerPlace != null) bindEntranceOutputModel.PlaceCode = wmsContainerPlace.PlaceCode; |
| | | |
| | | return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel); |
| | | } |
| | | } |
| | | } |
| | | return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel); |
| | | } |
| | | // return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel); |
| | | // } |
| | | // } |
| | | // } |
| | | // return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel); |
| | | // } |
| | | |
| | | /// <summary> |
| | | /// æ«ç è·åç©æ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet("GetMaterial")] |
| | | [UnifyResult(typeof(MaterialOutput))] |
| | | public async Task<object> GetMaterial([FromQuery] GetMaterialInput input) |
| | | { |
| | | var material = new MaterialOutput(); |
| | | material.MaterialName = "è¶åæ¿"; |
| | | material.MaterialNo = "JHB20110101"; |
| | | material.MaterialId = 43214325321513; |
| | | material.MaterialBatch = "DIYIPICI001"; |
| | | material.MaterialType = MaterialType.BAOZHUANGCAILIAO; |
| | | material.InspectionMethod = MaterialInspection.MIANJIAN; |
| | | material.MaterialSpec = ""; |
| | | material.MaterialDensity = ""; |
| | | material.MaterialUnit = ""; |
| | | material.LesWorkshopSection = LesWorkshopSection.CNC; |
| | | return XnRestfulResultProvider.RESTfulResult(material); |
| | | // /// <summary> |
| | | // /// æ«ç è·åç©æ |
| | | // /// </summary> |
| | | // /// <returns></returns> |
| | | // [HttpGet("GetMaterial")] |
| | | // [UnifyResult(typeof(MaterialOutput))] |
| | | // public async Task<object> GetMaterial([FromQuery] GetMaterialInput input) |
| | | // { |
| | | // var material = new MaterialOutput(); |
| | | // material.MaterialName = "è¶åæ¿"; |
| | | // material.MaterialNo = "JHB20110101"; |
| | | // material.MaterialId = 43214325321513; |
| | | // material.MaterialBatch = "DIYIPICI001"; |
| | | // material.MaterialType = MaterialType.BAOZHUANGCAILIAO; |
| | | // material.InspectionMethod = MaterialInspection.MIANJIAN; |
| | | // material.MaterialSpec = ""; |
| | | // material.MaterialDensity = ""; |
| | | // material.MaterialUnit = ""; |
| | | // material.LesWorkshopSection = LesWorkshopSection.CNC; |
| | | // return XnRestfulResultProvider.RESTfulResult(material); |
| | | |
| | | } |
| | | // } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ç»ç |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost("AutoWare")] |
| | | public async Task AutoWare(WarehousingInput input) |
| | | { |
| | | // æ ¹æ®æçå·æ¥è¯¢æçå·ä¿¡æ¯æ¯å¦å·²åå¨ |
| | | var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode); |
| | | if (wmsContainer == null) |
| | | { |
| | | // ä¸åå¨åæ·»å æçå·ä¿¡æ¯ |
| | | wmsContainer = new WmsContainer |
| | | { |
| | | ContainerCode = input.ContainerCode, |
| | | ContainerType = ContainerType.SULIAO, |
| | | ContainerStatus = ContainerStatus.KOUXIAN, |
| | | AssetNo = "N/A", |
| | | ErpNo = "N/A" |
| | | }; |
| | | await _wmsContainerRep.InsertNowAsync(wmsContainer); |
| | | } |
| | | // æ¥è¯¢æ¯å¦ä»»å¡å·²åå¨ |
| | | var isExit = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG); |
| | | if (isExit) throw Oops.Oh("æçå·å卿ªå®æä»»å¡ä¸!"); |
| | | // /// <summary> |
| | | // /// ç»ç |
| | | // /// </summary> |
| | | // /// <returns></returns> |
| | | // [HttpPost("AutoWare")] |
| | | // public async Task AutoWare(WarehousingInput input) |
| | | // { |
| | | // // æ ¹æ®æçå·æ¥è¯¢æçå·ä¿¡æ¯æ¯å¦å·²åå¨ |
| | | // var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode); |
| | | // if (wmsContainer == null) |
| | | // { |
| | | // // ä¸åå¨åæ·»å æçå·ä¿¡æ¯ |
| | | // wmsContainer = new WmsContainer |
| | | // { |
| | | // ContainerCode = input.ContainerCode, |
| | | // ContainerType = ContainerType.SULIAO, |
| | | // ContainerStatus = ContainerStatus.KOUXIAN, |
| | | // AssetNo = "N/A", |
| | | // ErpNo = "N/A" |
| | | // }; |
| | | // await _wmsContainerRep.InsertNowAsync(wmsContainer); |
| | | // } |
| | | // // æ¥è¯¢æ¯å¦ä»»å¡å·²åå¨ |
| | | // var isExit = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG); |
| | | // if (isExit) throw Oops.Oh("æçå·å卿ªå®æä»»å¡ä¸!"); |
| | | |
| | | // æ¥è¯¢å·²ç»çä¿¡æ¯ |
| | | var wmsMaterialContainerList = await _wmsMaterialContainerRep |
| | | .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync(); |
| | | await _wmsMaterialContainerRep.DeleteAsync(wmsMaterialContainerList); |
| | | var orderNo = "N/A"; |
| | | if (input.WmsMaterials.Count > 0) |
| | | { |
| | | wmsContainer.ContainerStatus = ContainerStatus.ZUPANG; |
| | | orderNo = YitIdHelper.NextId().ToString(); |
| | | await _wmsContainerRep.UpdateAsync(wmsContainer); |
| | | } |
| | | // å建æ°ç»çè®°å½ |
| | | foreach (var item in input.WmsMaterials) |
| | | { |
| | | //å建ç»çè®°å½ |
| | | var bindentranceModel = new WmsMaterialContainer(); |
| | | bindentranceModel.ContainerId = wmsContainer.Id; |
| | | bindentranceModel.ContainerCode = wmsContainer.ContainerCode; |
| | | bindentranceModel.MaterialNo = item.MaterialNo; |
| | | bindentranceModel.MaterialId = 478183507525701; |
| | | bindentranceModel.MaterialBatch = item.MaterialBatch; |
| | | bindentranceModel.BindQuantity = 1; |
| | | bindentranceModel.BindStatus = CommonStatus.ENABLE; |
| | | bindentranceModel.OrderNo = orderNo; |
| | | bindentranceModel.MaterialName = item.MaterialName; |
| | | bindentranceModel.MaterialDensity = "N/A"; |
| | | await _wmsMaterialContainerRep.InsertNowAsync(bindentranceModel); |
| | | } |
| | | } |
| | | // // æ¥è¯¢å·²ç»çä¿¡æ¯ |
| | | // var wmsMaterialContainerList = await _wmsMaterialContainerRep |
| | | // .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync(); |
| | | // await _wmsMaterialContainerRep.DeleteAsync(wmsMaterialContainerList); |
| | | // var orderNo = "N/A"; |
| | | // if (input.WmsMaterials.Count > 0) |
| | | // { |
| | | // wmsContainer.ContainerStatus = ContainerStatus.ZUPANG; |
| | | // orderNo = YitIdHelper.NextId().ToString(); |
| | | // await _wmsContainerRep.UpdateAsync(wmsContainer); |
| | | // } |
| | | // // å建æ°ç»çè®°å½ |
| | | // foreach (var item in input.WmsMaterials) |
| | | // { |
| | | // //å建ç»çè®°å½ |
| | | // var bindentranceModel = new WmsMaterialContainer(); |
| | | // bindentranceModel.ContainerId = wmsContainer.Id; |
| | | // bindentranceModel.ContainerCode = wmsContainer.ContainerCode; |
| | | // bindentranceModel.MaterialNo = item.MaterialNo; |
| | | // bindentranceModel.MaterialId = 478183507525701; |
| | | // bindentranceModel.MaterialBatch = item.MaterialBatch; |
| | | // bindentranceModel.BindQuantity = 1; |
| | | // bindentranceModel.BindStatus = CommonStatus.ENABLE; |
| | | // bindentranceModel.OrderNo = orderNo; |
| | | // bindentranceModel.MaterialName = item.MaterialName; |
| | | // bindentranceModel.MaterialDensity = "N/A"; |
| | | // await _wmsMaterialContainerRep.InsertNowAsync(bindentranceModel); |
| | | // } |
| | | // } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// èªå¨å
¥åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("automaticWarehousing")] |
| | | [UnitOfWork] |
| | | public async Task AutomaticWarehousing(WarehousingInput input) |
| | | { |
| | | // æ¥è¯¢æ··åæåºåºä¿¡æ¯ |
| | | var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.AreaName.Contains("ç»ç¼ç«åº")); |
| | | // æ ¹æ®æç®±å·æ¥è¯¢å¨è½¬ç®±å·ä¿¡æ¯æ¯å¦å·²åå¨ |
| | | var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode); |
| | | if (wmsContainer == null) |
| | | { |
| | | // ä¸åå¨åæ·»å å¨è½¬ç®±å·ä¿¡æ¯ |
| | | wmsContainer = new WmsContainer |
| | | { |
| | | ContainerCode = input.ContainerCode, |
| | | ContainerType = ContainerType.JINSHU, |
| | | ContainerStatus = ContainerStatus.KOUXIAN, |
| | | AssetNo = "N/A", |
| | | ErpNo = "N/A" |
| | | }; |
| | | await _wmsContainerRep.InsertNowAsync(wmsContainer); |
| | | } |
| | | else |
| | | { |
| | | // æ´æ°å¨è½¬ç®±å·ç¶æä¸ºâåºä½â |
| | | wmsContainer.ContainerStatus = ContainerStatus.KOUXIAN; |
| | | await _wmsContainerRep.UpdateAsync(wmsContainer); |
| | | } |
| | | // /// <summary> |
| | | // /// èªå¨å
¥åº |
| | | // /// </summary> |
| | | // /// <param name="input"></param> |
| | | // /// <returns></returns> |
| | | // [HttpPost("automaticWarehousing")] |
| | | // [UnitOfWork] |
| | | // public async Task AutomaticWarehousing(WarehousingInput input) |
| | | // { |
| | | // // æ¥è¯¢æ··åæåºåºä¿¡æ¯ |
| | | // var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.AreaName.Contains("ç»ç¼ç«åº")); |
| | | // // æ ¹æ®æç®±å·æ¥è¯¢å¨è½¬ç®±å·ä¿¡æ¯æ¯å¦å·²åå¨ |
| | | // var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode); |
| | | // if (wmsContainer == null) |
| | | // { |
| | | // // ä¸åå¨åæ·»å å¨è½¬ç®±å·ä¿¡æ¯ |
| | | // wmsContainer = new WmsContainer |
| | | // { |
| | | // ContainerCode = input.ContainerCode, |
| | | // ContainerType = ContainerType.JINSHU, |
| | | // ContainerStatus = ContainerStatus.KOUXIAN, |
| | | // AssetNo = "N/A", |
| | | // ErpNo = "N/A" |
| | | // }; |
| | | // await _wmsContainerRep.InsertNowAsync(wmsContainer); |
| | | // } |
| | | // else |
| | | // { |
| | | // // æ´æ°å¨è½¬ç®±å·ç¶æä¸ºâåºä½â |
| | | // wmsContainer.ContainerStatus = ContainerStatus.KOUXIAN; |
| | | // await _wmsContainerRep.UpdateAsync(wmsContainer); |
| | | // } |
| | | |
| | | // æ¥è¯¢å¨è½¬ç®±å·æ¯å¦å·²åå¨ä»»å¡ |
| | | var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG); |
| | | if (isWmsTask) throw Oops.Oh("å¨è½¬ç®±å·å卿ªå®æä»»å¡ä¸!"); |
| | | // // æ¥è¯¢å¨è½¬ç®±å·æ¯å¦å·²åå¨ä»»å¡ |
| | | // var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG); |
| | | // if (isWmsTask) throw Oops.Oh("å¨è½¬ç®±å·å卿ªå®æä»»å¡ä¸!"); |
| | | |
| | | // å é¤å·²ç»çä¿¡æ¯ |
| | | var oldWmsMaterialContainerList = await _wmsMaterialContainerRep |
| | | .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync(); |
| | | // // å é¤å·²ç»çä¿¡æ¯ |
| | | // var oldWmsMaterialContainerList = await _wmsMaterialContainerRep |
| | | // .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync(); |
| | | |
| | | foreach (var item in oldWmsMaterialContainerList) |
| | | { |
| | | await _wmsMaterialContainerRep.DeleteAsync(item); |
| | | } |
| | | // foreach (var item in oldWmsMaterialContainerList) |
| | | // { |
| | | // await _wmsMaterialContainerRep.DeleteAsync(item); |
| | | // } |
| | | |
| | | // ç»çåæ® é»è®¤ç©ºæç®±åæ® |
| | | var source = ""; //å®ä¹å
¥åºæ¥æº |
| | | var orderNo = "N/A"; |
| | | if (input.WmsMaterials.Count > 0) |
| | | { |
| | | wmsContainer.ContainerStatus = ContainerStatus.ZUPANG; |
| | | orderNo = YitIdHelper.NextId().ToString(); |
| | | await _wmsContainerRep.UpdateAsync(wmsContainer); |
| | | source = "ç©æ"; |
| | | } |
| | | else |
| | | { |
| | | source = "空æ"; |
| | | } |
| | | // æ¥è¯¢ç©æId |
| | | var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.MaterialNo == "N/A" && u.MaterialName == "N/A" && u.MaterialBatch == "N/A"); |
| | | // // ç»çåæ® é»è®¤ç©ºæç®±åæ® |
| | | // var source = ""; //å®ä¹å
¥åºæ¥æº |
| | | // var orderNo = "N/A"; |
| | | // if (input.WmsMaterials.Count > 0) |
| | | // { |
| | | // wmsContainer.ContainerStatus = ContainerStatus.ZUPANG; |
| | | // orderNo = YitIdHelper.NextId().ToString(); |
| | | // await _wmsContainerRep.UpdateAsync(wmsContainer); |
| | | // source = "ç©æ"; |
| | | // } |
| | | // else |
| | | // { |
| | | // source = "空æ"; |
| | | // } |
| | | // // æ¥è¯¢ç©æId |
| | | // var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.MaterialNo == "N/A" && u.MaterialName == "N/A" && u.MaterialBatch == "N/A"); |
| | | |
| | | // å建æ°ç»çè®°å½ |
| | | foreach (var item in input.WmsMaterials) |
| | | { |
| | | var wmsMaterialContainer = item.Adapt<WmsMaterialContainer>(); |
| | | wmsMaterialContainer.OrderNo = orderNo; |
| | | wmsMaterialContainer.ContainerId = wmsContainer.Id; |
| | | wmsMaterialContainer.ContainerCode = wmsContainer.ContainerCode; |
| | | wmsMaterialContainer.MaterialId = wmsMaterial.Id; |
| | | wmsMaterialContainer.BindStatus = CommonStatus.ENABLE; |
| | | await _wmsMaterialContainerRep.InsertNowAsync(wmsMaterialContainer); |
| | | } |
| | | // // å建æ°ç»çè®°å½ |
| | | // foreach (var item in input.WmsMaterials) |
| | | // { |
| | | // var wmsMaterialContainer = item.Adapt<WmsMaterialContainer>(); |
| | | // wmsMaterialContainer.OrderNo = orderNo; |
| | | // wmsMaterialContainer.ContainerId = wmsContainer.Id; |
| | | // wmsMaterialContainer.ContainerCode = wmsContainer.ContainerCode; |
| | | // wmsMaterialContainer.MaterialId = wmsMaterial.Id; |
| | | // wmsMaterialContainer.BindStatus = CommonStatus.ENABLE; |
| | | // await _wmsMaterialContainerRep.InsertNowAsync(wmsMaterialContainer); |
| | | // } |
| | | |
| | | |
| | | //if (input.Source == RuKuSourceEnum.KONGTUO) |
| | | //else if (input.Source == RuKuSourceEnum.WULIAO) |
| | | // //if (input.Source == RuKuSourceEnum.KONGTUO) |
| | | // //else if (input.Source == RuKuSourceEnum.WULIAO) |
| | | |
| | | //å建巷éåé
|
| | | var wmsPlace = await _wmsPlaceRep.Where(u => u.PlaceStatus == PlaceStatus.KONGXIAN).ToListAsync(); |
| | | var one = wmsPlace.Where(s => s.Aisle==1).ToList().Count; |
| | | var two = wmsPlace.Where(s => s.Aisle == 2).ToList().Count; |
| | | var three = wmsPlace.Where(s => s.Aisle == 3).ToList().Count; |
| | | var Aisle = 0; |
| | | if (one >= two && one >= three) |
| | | { |
| | | Aisle = 1; |
| | | } |
| | | else if (two >= one && two >= three) |
| | | { |
| | | Aisle = 2; |
| | | } |
| | | else |
| | | { |
| | | Aisle = 3; |
| | | } |
| | | // //å建巷éåé
|
| | | // var wmsPlace = await _wmsPlaceRep.Where(u => u.PlaceStatus == PlaceStatus.KONGXIAN).ToListAsync(); |
| | | // var one = wmsPlace.Where(s => s.Aisle==1).ToList().Count; |
| | | // var two = wmsPlace.Where(s => s.Aisle == 2).ToList().Count; |
| | | // var three = wmsPlace.Where(s => s.Aisle == 3).ToList().Count; |
| | | // var Aisle = 0; |
| | | // if (one >= two && one >= three) |
| | | // { |
| | | // Aisle = 1; |
| | | // } |
| | | // else if (two >= one && two >= three) |
| | | // { |
| | | // Aisle = 2; |
| | | // } |
| | | // else |
| | | // { |
| | | // Aisle = 3; |
| | | // } |
| | | |
| | | string taskNo = "RUKU"+ DateTime.Today.ToString("yyyyMMdd"); |
| | | var wmsTaskModel = await _wmsTaskRep.DetachedEntities.FirstOrDefaultAsync(u => EF.Functions.Like(u.TaskNo, $"%{taskNo}%")); |
| | | if (wmsTaskModel == null) |
| | | { |
| | | taskNo = taskNo + "0001"; |
| | | } |
| | | else |
| | | { |
| | | //è·åæµæ°´å·æå¤§çæ°æ® |
| | | var maxSerialNumber = await _wmsTaskRep.MaxAsync(t => t.TaskNo); |
| | | taskNo = Comm.GenerateNewInvoiceNumber(maxSerialNumber, 1); |
| | | } |
| | | // string taskNo = "RUKU"+ DateTime.Today.ToString("yyyyMMdd"); |
| | | // var wmsTaskModel = await _wmsTaskRep.DetachedEntities.FirstOrDefaultAsync(u => EF.Functions.Like(u.TaskNo, $"%{taskNo}%")); |
| | | // if (wmsTaskModel == null) |
| | | // { |
| | | // taskNo = taskNo + "0001"; |
| | | // } |
| | | // else |
| | | // { |
| | | // //è·åæµæ°´å·æå¤§çæ°æ® |
| | | // var maxSerialNumber = await _wmsTaskRep.MaxAsync(t => t.TaskNo); |
| | | // taskNo = Comm.GenerateNewInvoiceNumber(maxSerialNumber, 1); |
| | | // } |
| | | |
| | | // åå»ºä»»å¡ |
| | | var takmodel = new WmsTask() |
| | | { |
| | | TaskNo = taskNo,//YitIdHelper.NextId().ToString(), |
| | | TaskModel = TaskModel.QUANZIDONG, |
| | | TaskType = TaskType.RUKU, |
| | | TaskLevel = 1, |
| | | Aisle = Aisle, |
| | | TaskStatus = TaskStatusEnum.WEIZHIXING, |
| | | ContainerCode = wmsContainer.ContainerCode, |
| | | SourcePlace = "å
¥åºå£", |
| | | ToPlace = "", |
| | | AreaName = wmsArea != null ? wmsArea.AreaName : "", |
| | | OrderNo = orderNo, |
| | | Description = source, //å
¥åºæ¥æº |
| | | TaskDodeviceStatus = TaskDodeviceStatusEnum.WZX, |
| | | IsRead = true |
| | | }; |
| | | await _wmsTaskRep.InsertAsync(takmodel); |
| | | } |
| | | // // åå»ºä»»å¡ |
| | | // var takmodel = new WmsTask() |
| | | // { |
| | | // TaskNo = taskNo,//YitIdHelper.NextId().ToString(), |
| | | // TaskModel = TaskModel.QUANZIDONG, |
| | | // TaskType = TaskType.RUKU, |
| | | // TaskLevel = 1, |
| | | // Aisle = Aisle, |
| | | // TaskStatus = TaskStatusEnum.WEIZHIXING, |
| | | // ContainerCode = wmsContainer.ContainerCode, |
| | | // SourcePlace = "å
¥åºå£", |
| | | // ToPlace = "", |
| | | // AreaName = wmsArea != null ? wmsArea.AreaName : "", |
| | | // OrderNo = orderNo, |
| | | // Description = source, //å
¥åºæ¥æº |
| | | // TaskDodeviceStatus = TaskDodeviceStatusEnum.WZX, |
| | | // IsRead = true |
| | | // }; |
| | | // await _wmsTaskRep.InsertAsync(takmodel); |
| | | // } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 人工å
¥åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("manualWarehousing")] |
| | | [UnitOfWork] |
| | | public async Task ManualWarehousing(WarehousingInput input) |
| | | { |
| | | // æ¥è¯¢æ··åæåºåºä¿¡æ¯ |
| | | var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.AreaName.Contains("ç»ç¼ç«åº")); |
| | | // æ ¹æ®æç®±å·æ¥è¯¢å¨è½¬ç®±å·ä¿¡æ¯æ¯å¦å·²åå¨ |
| | | var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode); |
| | | if (wmsContainer == null) |
| | | { |
| | | // ä¸åå¨åæ·»å å¨è½¬ç®±å·ä¿¡æ¯ |
| | | wmsContainer = new WmsContainer |
| | | { |
| | | ContainerCode = input.ContainerCode, |
| | | ContainerType = ContainerType.JINSHU, |
| | | ContainerStatus = ContainerStatus.KUWEI, |
| | | AssetNo = "N/A", |
| | | ErpNo = "N/A" |
| | | }; |
| | | await _wmsContainerRep.InsertNowAsync(wmsContainer); |
| | | } |
| | | else |
| | | { |
| | | // æ´æ°å¨è½¬ç®±å·ç¶æä¸ºâåºä½â |
| | | wmsContainer.ContainerStatus = ContainerStatus.KUWEI; |
| | | await _wmsContainerRep.UpdateAsync(wmsContainer); |
| | | } |
| | | // /// <summary> |
| | | // /// 人工å
¥åº |
| | | // /// </summary> |
| | | // /// <param name="input"></param> |
| | | // /// <returns></returns> |
| | | // [HttpPost("manualWarehousing")] |
| | | // [UnitOfWork] |
| | | // public async Task ManualWarehousing(WarehousingInput input) |
| | | // { |
| | | // // æ¥è¯¢æ··åæåºåºä¿¡æ¯ |
| | | // var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.AreaName.Contains("ç»ç¼ç«åº")); |
| | | // // æ ¹æ®æç®±å·æ¥è¯¢å¨è½¬ç®±å·ä¿¡æ¯æ¯å¦å·²åå¨ |
| | | // var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode); |
| | | // if (wmsContainer == null) |
| | | // { |
| | | // // ä¸åå¨åæ·»å å¨è½¬ç®±å·ä¿¡æ¯ |
| | | // wmsContainer = new WmsContainer |
| | | // { |
| | | // ContainerCode = input.ContainerCode, |
| | | // ContainerType = ContainerType.JINSHU, |
| | | // ContainerStatus = ContainerStatus.KUWEI, |
| | | // AssetNo = "N/A", |
| | | // ErpNo = "N/A" |
| | | // }; |
| | | // await _wmsContainerRep.InsertNowAsync(wmsContainer); |
| | | // } |
| | | // else |
| | | // { |
| | | // // æ´æ°å¨è½¬ç®±å·ç¶æä¸ºâåºä½â |
| | | // wmsContainer.ContainerStatus = ContainerStatus.KUWEI; |
| | | // await _wmsContainerRep.UpdateAsync(wmsContainer); |
| | | // } |
| | | |
| | | // æ¥è¯¢å¨è½¬ç®±å·æ¯å¦å·²åå¨ä»»å¡ |
| | | var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG); |
| | | if (isWmsTask) throw Oops.Oh("å¨è½¬ç®±å·å卿ªå®æä»»å¡ä¸!"); |
| | | // // æ¥è¯¢å¨è½¬ç®±å·æ¯å¦å·²åå¨ä»»å¡ |
| | | // var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG); |
| | | // if (isWmsTask) throw Oops.Oh("å¨è½¬ç®±å·å卿ªå®æä»»å¡ä¸!"); |
| | | |
| | | // å é¤å·²ç»çä¿¡æ¯ |
| | | var oldWmsMaterialContainerList = await _wmsMaterialContainerRep |
| | | .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync(); |
| | | // // å é¤å·²ç»çä¿¡æ¯ |
| | | // var oldWmsMaterialContainerList = await _wmsMaterialContainerRep |
| | | // .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync(); |
| | | |
| | | foreach (var item in oldWmsMaterialContainerList) |
| | | { |
| | | await _wmsMaterialContainerRep.DeleteAsync(item); |
| | | } |
| | | // foreach (var item in oldWmsMaterialContainerList) |
| | | // { |
| | | // await _wmsMaterialContainerRep.DeleteAsync(item); |
| | | // } |
| | | |
| | | // æ¥è¯¢åºä½ä¿¡æ¯ éæºåé
åºä½ |
| | | var wmsPlace = new WmsPlace(); |
| | | if (string.IsNullOrEmpty(input.PlaceCode)) |
| | | wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.AreaId == wmsArea.Id && u.Islock == YesOrNot.N && u.PlaceStatus == PlaceStatus.KONGXIAN); |
| | | else |
| | | wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.AreaId == wmsArea.Id && u.PlaceCode == input.PlaceCode); |
| | | if (wmsPlace == null) throw Oops.Oh("åºä½ä¸åå¨!"); |
| | | if (wmsPlace.Islock == YesOrNot.Y) throw Oops.Oh("åºä½è¢«éå®!"); |
| | | if (wmsPlace.PlaceStatus != PlaceStatus.KONGXIAN) throw Oops.Oh("åºä½å·²åè´§!"); |
| | | // æ´æ°åºä½ç¶æä¸ºâåè´§â |
| | | wmsPlace.PlaceStatus = PlaceStatus.CUNHUO; |
| | | // // æ¥è¯¢åºä½ä¿¡æ¯ éæºåé
åºä½ |
| | | // var wmsPlace = new WmsPlace(); |
| | | // if (string.IsNullOrEmpty(input.PlaceCode)) |
| | | // wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.AreaId == wmsArea.Id && u.Islock == YesOrNot.N && u.PlaceStatus == PlaceStatus.KONGXIAN); |
| | | // else |
| | | // wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.AreaId == wmsArea.Id && u.PlaceCode == input.PlaceCode); |
| | | // if (wmsPlace == null) throw Oops.Oh("åºä½ä¸åå¨!"); |
| | | // if (wmsPlace.Islock == YesOrNot.Y) throw Oops.Oh("åºä½è¢«éå®!"); |
| | | // if (wmsPlace.PlaceStatus != PlaceStatus.KONGXIAN) throw Oops.Oh("åºä½å·²åè´§!"); |
| | | // // æ´æ°åºä½ç¶æä¸ºâåè´§â |
| | | // wmsPlace.PlaceStatus = PlaceStatus.CUNHUO; |
| | | |
| | | // ç»çåæ® é»è®¤ç©ºæç®±åæ® |
| | | var orderNo = "N/A"; |
| | | var source = ""; //å®ä¹å
¥åºæ¥æº |
| | | if (input.WmsMaterials.Count > 0) |
| | | { |
| | | orderNo = YitIdHelper.NextId().ToString(); |
| | | source = "ç©æ"; |
| | | } |
| | | else |
| | | { |
| | | wmsPlace.EmptyContainer = YesOrNot.Y; //æ¯å¦ç©ºæ |
| | | source = "空æ"; |
| | | } |
| | | // æ¥è¯¢ç©æId |
| | | var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.MaterialNo == "N/A" && u.MaterialName == "N/A" && u.MaterialBatch == "N/A"); |
| | | // // ç»çåæ® é»è®¤ç©ºæç®±åæ® |
| | | // var orderNo = "N/A"; |
| | | // var source = ""; //å®ä¹å
¥åºæ¥æº |
| | | // if (input.WmsMaterials.Count > 0) |
| | | // { |
| | | // orderNo = YitIdHelper.NextId().ToString(); |
| | | // source = "ç©æ"; |
| | | // } |
| | | // else |
| | | // { |
| | | // wmsPlace.EmptyContainer = YesOrNot.Y; //æ¯å¦ç©ºæ |
| | | // source = "空æ"; |
| | | // } |
| | | // // æ¥è¯¢ç©æId |
| | | // var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.MaterialNo == "N/A" && u.MaterialName == "N/A" && u.MaterialBatch == "N/A"); |
| | | |
| | | // å建æ°ç»çè®°å½ |
| | | foreach (var item in input.WmsMaterials) |
| | | { |
| | | var wmsMaterialContainer = item.Adapt<WmsMaterialContainer>(); |
| | | wmsMaterialContainer.OrderNo = orderNo; |
| | | wmsMaterialContainer.ContainerId = wmsContainer.Id; |
| | | wmsMaterialContainer.ContainerCode = wmsContainer.ContainerCode; |
| | | wmsMaterialContainer.MaterialId = wmsMaterial.Id; |
| | | wmsMaterialContainer.BindStatus = CommonStatus.ENABLE; |
| | | // // å建æ°ç»çè®°å½ |
| | | // foreach (var item in input.WmsMaterials) |
| | | // { |
| | | // var wmsMaterialContainer = item.Adapt<WmsMaterialContainer>(); |
| | | // wmsMaterialContainer.OrderNo = orderNo; |
| | | // wmsMaterialContainer.ContainerId = wmsContainer.Id; |
| | | // wmsMaterialContainer.ContainerCode = wmsContainer.ContainerCode; |
| | | // wmsMaterialContainer.MaterialId = wmsMaterial.Id; |
| | | // wmsMaterialContainer.BindStatus = CommonStatus.ENABLE; |
| | | |
| | | await _wmsMaterialContainerRep.InsertNowAsync(wmsMaterialContainer); |
| | | } |
| | | // await _wmsMaterialContainerRep.InsertNowAsync(wmsMaterialContainer); |
| | | // } |
| | | |
| | | string taskNo = "RUKU" + DateTime.Today.ToString("yyyyMMdd"); |
| | | var wmsTaskModel = await _wmsTaskRep.DetachedEntities.FirstOrDefaultAsync(u => EF.Functions.Like(u.TaskNo, $"%{taskNo}%")); |
| | | if (wmsTaskModel == null) |
| | | { |
| | | taskNo = taskNo + "0001"; |
| | | } |
| | | else |
| | | { |
| | | //è·åæµæ°´å·æå¤§çæ°æ® |
| | | var maxSerialNumber = await _wmsTaskRep.MaxAsync(t => t.TaskNo); |
| | | taskNo = Comm.GenerateNewInvoiceNumber(maxSerialNumber, 1); |
| | | } |
| | | // string taskNo = "RUKU" + DateTime.Today.ToString("yyyyMMdd"); |
| | | // var wmsTaskModel = await _wmsTaskRep.DetachedEntities.FirstOrDefaultAsync(u => EF.Functions.Like(u.TaskNo, $"%{taskNo}%")); |
| | | // if (wmsTaskModel == null) |
| | | // { |
| | | // taskNo = taskNo + "0001"; |
| | | // } |
| | | // else |
| | | // { |
| | | // //è·åæµæ°´å·æå¤§çæ°æ® |
| | | // var maxSerialNumber = await _wmsTaskRep.MaxAsync(t => t.TaskNo); |
| | | // taskNo = Comm.GenerateNewInvoiceNumber(maxSerialNumber, 1); |
| | | // } |
| | | |
| | | // åå»ºä»»å¡ |
| | | var takmodel = new WmsTask() |
| | | { |
| | | TaskNo = taskNo,//YitIdHelper.NextId().ToString(), |
| | | TaskModel = TaskModel.SHOUDONG, |
| | | TaskType = TaskType.RUKU, |
| | | TaskLevel = 1, |
| | | Aisle = wmsPlace.Aisle, |
| | | TaskStatus = TaskStatusEnum.WANCHENG, |
| | | ContainerCode = wmsContainer.ContainerCode, |
| | | SourcePlace = "å
¥åºå£", |
| | | ToPlace = wmsPlace.PlaceCode, |
| | | AreaName = wmsArea != null ? wmsArea.AreaName : "", |
| | | OrderNo = orderNo, |
| | | Description = source, //å
¥åºæ¥æº |
| | | TaskDodeviceStatus = TaskDodeviceStatusEnum.W, |
| | | UpdatedTime = DateTime.Now, |
| | | }; |
| | | await _wmsTaskRep.InsertAsync(takmodel); |
| | | // // åå»ºä»»å¡ |
| | | // var takmodel = new WmsTask() |
| | | // { |
| | | // TaskNo = taskNo,//YitIdHelper.NextId().ToString(), |
| | | // TaskModel = TaskModel.SHOUDONG, |
| | | // TaskType = TaskType.RUKU, |
| | | // TaskLevel = 1, |
| | | // Aisle = wmsPlace.Aisle, |
| | | // TaskStatus = TaskStatusEnum.WANCHENG, |
| | | // ContainerCode = wmsContainer.ContainerCode, |
| | | // SourcePlace = "å
¥åºå£", |
| | | // ToPlace = wmsPlace.PlaceCode, |
| | | // AreaName = wmsArea != null ? wmsArea.AreaName : "", |
| | | // OrderNo = orderNo, |
| | | // Description = source, //å
¥åºæ¥æº |
| | | // TaskDodeviceStatus = TaskDodeviceStatusEnum.W, |
| | | // UpdatedTime = DateTime.Now, |
| | | // }; |
| | | // await _wmsTaskRep.InsertAsync(takmodel); |
| | | |
| | | // å建æçå·åºä½å
³ç³»è¡¨ |
| | | var wmsContainerPlaceModel = new WmsContainerPlace() |
| | | { |
| | | PlaceId = wmsPlace.Id, |
| | | PlaceCode = wmsPlace.PlaceCode, |
| | | ContainerId = wmsContainer.Id, |
| | | ContainerCode = wmsContainer.ContainerCode, |
| | | ContainerPlaceStatus = CommonStatus.ENABLE |
| | | }; |
| | | await _wmsContainerPlaceRep.InsertAsync(wmsContainerPlaceModel); |
| | | // // å建æçå·åºä½å
³ç³»è¡¨ |
| | | // var wmsContainerPlaceModel = new WmsContainerPlace() |
| | | // { |
| | | // PlaceId = wmsPlace.Id, |
| | | // PlaceCode = wmsPlace.PlaceCode, |
| | | // ContainerId = wmsContainer.Id, |
| | | // ContainerCode = wmsContainer.ContainerCode, |
| | | // ContainerPlaceStatus = CommonStatus.ENABLE |
| | | // }; |
| | | // await _wmsContainerPlaceRep.InsertAsync(wmsContainerPlaceModel); |
| | | |
| | | // æ´æ°åºå |
| | | var wmsMaterialContainerList = await _wmsMaterialContainerRep.DetachedEntities |
| | | .Where(p => p.OrderNo == orderNo && p.BindStatus == CommonStatus.ENABLE).ProjectToType<WmsMaterialContainer>().ToListAsync(); |
| | | // // æ´æ°åºå |
| | | // var wmsMaterialContainerList = await _wmsMaterialContainerRep.DetachedEntities |
| | | // .Where(p => p.OrderNo == orderNo && p.BindStatus == CommonStatus.ENABLE).ProjectToType<WmsMaterialContainer>().ToListAsync(); |
| | | |
| | | foreach (var item in wmsMaterialContainerList) |
| | | { |
| | | var wmsMaterialStock = await _wmsMaterialStockRep.FirstOrDefaultAsync(p => p.ContainerCode == wmsContainer.ContainerCode |
| | | && p.MaterialBatch == item.MaterialBatch ); |
| | | if (wmsMaterialStock != null) |
| | | { |
| | | wmsMaterialStock.Source = RuKuSourceEnum.WULIAO; |
| | | wmsMaterialStock.AreaId = wmsPlace.AreaId; |
| | | wmsMaterialStock.PlaceCode = wmsPlace.PlaceCode; |
| | | wmsMaterialStock.StockNumber += item.BindQuantity; |
| | | await _wmsMaterialStockRep.UpdateAsync(wmsMaterialStock); |
| | | } |
| | | else |
| | | { |
| | | wmsMaterialStock = new WmsMaterialStock() |
| | | { |
| | | InspectionMethod = MaterialInspection.MIANJIAN, |
| | | UnitType = UnitType.ZHONGLIANG, |
| | | UnitNo = UnitNoType.T, |
| | | MaterialNo = item.MaterialNo, |
| | | MaterialType = MaterialType.CHENGPING, |
| | | MaterialName = item.MaterialName, |
| | | MaterialSpec = item.MaterialSpec, |
| | | MaterialBatch = item.MaterialBatch, |
| | | MaterialDensity = item.MaterialDensity, |
| | | StockNumber = 1, |
| | | PlaceCode = wmsPlace.PlaceCode, |
| | | ContainerId = wmsContainer.Id, |
| | | ContainerCode = wmsContainer.ContainerCode, |
| | | AreaId = wmsPlace.AreaId, |
| | | Source = RuKuSourceEnum.WULIAO |
| | | }; |
| | | await _wmsMaterialStockRep.InsertAsync(wmsMaterialStock); |
| | | } |
| | | } |
| | | // 空æç®±å
¥åº |
| | | if (orderNo == "N/A") |
| | | { |
| | | var wmsMaterialStock = new WmsMaterialStock() |
| | | { |
| | | InspectionMethod = MaterialInspection.MIANJIAN, |
| | | UnitType = UnitType.ZHONGLIANG, |
| | | UnitNo = UnitNoType.T, |
| | | MaterialNo = "N/A", |
| | | MaterialType = MaterialType.KONGTUO, |
| | | MaterialName = "N/A", |
| | | MaterialSpec = "N/A", |
| | | MaterialBatch = "N/A", |
| | | MaterialDensity = "N/A", |
| | | StockNumber = 0, |
| | | PlaceCode = wmsPlace.PlaceCode, |
| | | ContainerId = wmsContainer.Id, |
| | | ContainerCode = wmsContainer.ContainerCode, |
| | | AreaId = wmsPlace.AreaId, |
| | | Source = RuKuSourceEnum.KONGTUO |
| | | }; |
| | | await _wmsMaterialStockRep.InsertAsync(wmsMaterialStock); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // foreach (var item in wmsMaterialContainerList) |
| | | // { |
| | | // var wmsMaterialStock = await _wmsMaterialStockRep.FirstOrDefaultAsync(p => p.ContainerCode == wmsContainer.ContainerCode |
| | | // && p.MaterialBatch == item.MaterialBatch ); |
| | | // if (wmsMaterialStock != null) |
| | | // { |
| | | // wmsMaterialStock.Source = RuKuSourceEnum.WULIAO; |
| | | // wmsMaterialStock.AreaId = wmsPlace.AreaId; |
| | | // wmsMaterialStock.PlaceCode = wmsPlace.PlaceCode; |
| | | // wmsMaterialStock.StockNumber += item.BindQuantity; |
| | | // await _wmsMaterialStockRep.UpdateAsync(wmsMaterialStock); |
| | | // } |
| | | // else |
| | | // { |
| | | // wmsMaterialStock = new WmsMaterialStock() |
| | | // { |
| | | // InspectionMethod = MaterialInspection.MIANJIAN, |
| | | // UnitType = UnitType.ZHONGLIANG, |
| | | // UnitNo = UnitNoType.T, |
| | | // MaterialNo = item.MaterialNo, |
| | | // MaterialType = MaterialType.CHENGPING, |
| | | // MaterialName = item.MaterialName, |
| | | // MaterialSpec = item.MaterialSpec, |
| | | // MaterialBatch = item.MaterialBatch, |
| | | // MaterialDensity = item.MaterialDensity, |
| | | // StockNumber = 1, |
| | | // PlaceCode = wmsPlace.PlaceCode, |
| | | // ContainerId = wmsContainer.Id, |
| | | // ContainerCode = wmsContainer.ContainerCode, |
| | | // AreaId = wmsPlace.AreaId, |
| | | // Source = RuKuSourceEnum.WULIAO |
| | | // }; |
| | | // await _wmsMaterialStockRep.InsertAsync(wmsMaterialStock); |
| | | // } |
| | | // } |
| | | // // 空æç®±å
¥åº |
| | | // if (orderNo == "N/A") |
| | | // { |
| | | // var wmsMaterialStock = new WmsMaterialStock() |
| | | // { |
| | | // InspectionMethod = MaterialInspection.MIANJIAN, |
| | | // UnitType = UnitType.ZHONGLIANG, |
| | | // UnitNo = UnitNoType.T, |
| | | // MaterialNo = "N/A", |
| | | // MaterialType = MaterialType.KONGTUO, |
| | | // MaterialName = "N/A", |
| | | // MaterialSpec = "N/A", |
| | | // MaterialBatch = "N/A", |
| | | // MaterialDensity = "N/A", |
| | | // StockNumber = 0, |
| | | // PlaceCode = wmsPlace.PlaceCode, |
| | | // ContainerId = wmsContainer.Id, |
| | | // ContainerCode = wmsContainer.ContainerCode, |
| | | // AreaId = wmsPlace.AreaId, |
| | | // Source = RuKuSourceEnum.KONGTUO |
| | | // }; |
| | | // await _wmsMaterialStockRep.InsertAsync(wmsMaterialStock); |
| | | // } |
| | | // } |
| | | // } |
| | | //} |