| | |
| | | using WMS.IBLL.IPdaServer; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.SysEntity; |
| | | using Utility; |
| | | using Model.ModelDto.BllCheckDto; |
| | | using Model.ModelDto.PdaDto; |
| | | using Microsoft.AspNetCore.Identity; |
| | | using System.Security.Cryptography; |
| | | |
| | | namespace Wms.Controllers |
| | | { |
| | |
| | | public class PdaCrController : ControllerBase |
| | | { |
| | | private readonly IPdaCrServer _pdaCrSvc; |
| | | private readonly UserManager _userManager; |
| | | |
| | | public PdaCrController(IPdaCrServer pdaCrSvc) |
| | | public PdaCrController(IPdaCrServer pdaCrSvc, UserManager userManager) |
| | | { |
| | | _pdaCrSvc = pdaCrSvc; |
| | | _userManager = userManager; |
| | | } |
| | | |
| | | #region 盘点 |
| | |
| | | /// <param name="model">PalletNo:托盘号</param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult GetStockCheckNoList(PdaCrVm model) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<string>> GetStockCheckNoList(PdaCrVm model) |
| | | { |
| | | try |
| | | { |
| | | var list = _pdaCrSvc.GetStockCheckNoList(model.PalletNo); |
| | | |
| | | return Ok(new { code = 0, msg = "盘点单信息", data = list }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | return await _pdaCrSvc.GetStockCheckNoList(model.PalletNo); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="model">CrNo:盘点单、PalletNo:托盘号</param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult GetStockCheckDetailList(PdaCrVm model) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<StockCheckDetailDto>> GetStockCheckDetailList(PdaCrVm model) |
| | | { |
| | | try |
| | | { |
| | | var list = _pdaCrSvc.GetStockCheckDetailList(model.CrNo, model.PalletNo); |
| | | |
| | | return Ok(new { code = 0, msg = "盘点单明细物料批次信息", data = list }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | return await _pdaCrSvc.GetStockCheckDetailList(model.CrNo, model.PalletNo); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult GetStockCheckLogList(PdaCrVm model) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<StockCheckLogDto>> GetStockCheckLogList(PdaCrVm model) |
| | | { |
| | | try |
| | | { |
| | | var list = _pdaCrSvc.GetStockCheckLogList(model.CrNo, model.CrDetail, model.PalletNo, model.BoxNo,model.isContinue); |
| | | |
| | | return Ok(new { code = 0, msg = "要盘点的箱码信息", data = list }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | return await _pdaCrSvc.GetStockCheckLogList(model.CrNo, model.CrDetail, model.PalletNo, model.BoxNo, model.isContinue); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [UnitOfWork] |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public IActionResult CrSetCheck(PdaCrVm model) |
| | | { |
| | | try |
| | |
| | | /// <param name="skuName">物料名称</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetStockQueryList(string locatNo, string palletNo ) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<DataStockDetail>> GetStockQueryList(string locatNo, string palletNo) |
| | | { |
| | | try |
| | | { |
| | | List<DataStockDetail> stockList = _pdaCrSvc.GetStockQueryList(locatNo, palletNo); |
| | | if (stockList.Count==0) |
| | | { |
| | | return Ok(new { data = stockList, code = 1, msg = "无数据" }); |
| | | } |
| | | return Ok(new { data = stockList, code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | |
| | | return await _pdaCrSvc.GetStockQueryList(locatNo, palletNo); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// <param name="palletNo">托盘号</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetDataDetailList(string palletNo) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<PdaPalletNoCheckDto>> GetDataDetailList(string palletNo) |
| | | { |
| | | try |
| | | { |
| | | var list = _pdaCrSvc.GetDataDetailList(palletNo); |
| | | if (list.Count == 0) |
| | | { |
| | | return Ok(new { data = list, code = 1, msg = "无数据" }); |
| | | } |
| | | return Ok(new { data = list, code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | return await _pdaCrSvc.GetDataDetailList(palletNo); |
| | | |
| | | } |
| | | |
| | |
| | | /// <param name="boxNo">托盘号</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetBoxInfoByBox(string boxNo) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<PdaPalletNoCheckDto> GetBoxInfoByBox(string boxNo) |
| | | { |
| | | try |
| | | { |
| | | var list = _pdaCrSvc.GetBoxInfoByBox(boxNo); |
| | | if (list == null) |
| | | { |
| | | return Ok(new { data = list, code = 1, msg = "无数据" }); |
| | | } |
| | | return Ok(new { data = list, code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | |
| | | return await _pdaCrSvc.GetBoxInfoByBox(boxNo); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult SaveUnbind(PdaPalletCheckVm model) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | [UnitOfWork] |
| | | public async Task SaveUnbind(PdaPalletCheckVm model) |
| | | { |
| | | try |
| | | { |
| | | //获取当前登录的用户ID |
| | | var claimsIdentity = this.User.Identity as ClaimsIdentity; |
| | | if (claimsIdentity == null) |
| | | { |
| | | return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); |
| | | } |
| | | var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; |
| | | if (string.IsNullOrWhiteSpace(userId)) |
| | | { |
| | | return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); |
| | | } |
| | | |
| | | var uId = int.Parse(userId); |
| | | _pdaCrSvc.SaveUnbind(model.PalletNo, model.BoxNo, model.PalletNoNew, uId); |
| | | |
| | | return Ok(new { data = "", code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | |
| | | await _pdaCrSvc.SaveUnbind(model.PalletNo, model.BoxNo, model.PalletNoNew, _userManager.UserId); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// <param name="palletNo"></param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetPalletLocatNo(string palletNo) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<string> GetPalletLocatNo(string palletNo) |
| | | { |
| | | try |
| | | { |
| | | string result = _pdaCrSvc.GetPalletLocatNo(palletNo); |
| | | |
| | | return Ok(new { data = result, code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | |
| | | return await _pdaCrSvc.GetPalletLocatNo(palletNo); |
| | | } |
| | | /// <summary> |
| | | /// 获取托盘所在楼层所有区域 |
| | |
| | | /// <param name="palletNo"></param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetStorageArea(string palletNo) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<SysStorageArea>> GetStorageArea(string palletNo) |
| | | { |
| | | try |
| | | { |
| | | List<SysStorageArea> result = _pdaCrSvc.GetStorageArea(palletNo); |
| | | |
| | | return Ok(new { data = result, code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | |
| | | return await _pdaCrSvc.GetStorageArea(palletNo); |
| | | } |
| | | /// <summary> |
| | | /// 获取托盘所在楼层所有区域 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetRunSoNoticeList() |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<string>> GetRunSoNoticeList() |
| | | { |
| | | try |
| | | { |
| | | List<string> result = _pdaCrSvc.GetRunSoNoticeList(); |
| | | |
| | | return Ok(new { data = result, code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | |
| | | return await _pdaCrSvc.GetRunSoNoticeList(); |
| | | } |
| | | /// <summary> |
| | | /// 根据托盘号获取托盘上物料信息 |
| | |
| | | /// <param name="palletNo"></param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetSkuInfoByPalletNo(string palletNo) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<DataStockDetail>> GetSkuInfoByPalletNo(string palletNo) |
| | | { |
| | | try |
| | | { |
| | | List<DataStockDetail> result = _pdaCrSvc.GetSkuInfoByPalletNo(palletNo); |
| | | |
| | | return Ok(new { data = result, code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | |
| | | return await _pdaCrSvc.GetSkuInfoByPalletNo(palletNo); |
| | | } |
| | | /// <summary> |
| | | /// 根据出库单号获取分配的托盘信息 |
| | |
| | | /// <param name="soNo"></param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetPalletNoListBySoNo(string soNo) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | public async Task<List<string>> GetPalletNoListBySoNo(string soNo) |
| | | { |
| | | try |
| | | { |
| | | List<string> result = _pdaCrSvc.GetPalletNoListBySoNo(soNo); |
| | | |
| | | return Ok(new { data = result, code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | |
| | | return await _pdaCrSvc.GetPalletNoListBySoNo(soNo); |
| | | } |
| | | /// <summary> |
| | | /// agv转运呼叫小车 |
| | |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult AgvTransport(PdaAgvTransportVm model) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | [UnitOfWork] |
| | | public async Task AgvTransport(PdaAgvTransportVm model) |
| | | { |
| | | try |
| | | { |
| | | //获取当前登录的用户ID |
| | | var claimsIdentity = this.User.Identity as ClaimsIdentity; |
| | | if (claimsIdentity == null) |
| | | { |
| | | return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); |
| | | } |
| | | var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; |
| | | if (string.IsNullOrWhiteSpace(userId)) |
| | | { |
| | | return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); |
| | | } |
| | | |
| | | var uId = int.Parse(userId); |
| | | _pdaCrSvc.AgvTransport(model.PalletNo, model.AreaNo, model.Ruku, uId); |
| | | |
| | | return Ok(new { data = "", code = 0, msg = "成功" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" }); |
| | | } |
| | | await _pdaCrSvc.AgvTransport(model.PalletNo, model.AreaNo, model.Ruku, _userManager.UserId); |
| | | } |
| | | /// <summary> |
| | | /// agv转运呼叫小车取货 |
| | |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult AgvTransport2(PdaAgvTransportVm model) |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | [UnitOfWork] |
| | | public async Task AgvTransport2(PdaAgvTransportVm model) |
| | | { |
| | | await _pdaCrSvc.AgvTransport2(model.SoNo, model.PalletNo, model.AreaNo, _userManager.UserId); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 零箱解绑 |
| | | /// <summary> |
| | | /// 零箱解绑 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult LingxingUnbind(PdaPalletUnBindVm model) |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | |
| | | var uId = int.Parse(userId); |
| | | _pdaCrSvc.AgvTransport2(model.SoNo,model.PalletNo, model.AreaNo, uId); |
| | | _pdaCrSvc.LingxingUnbind(model.PalletNo, model.BoxNo, uId); |
| | | |
| | | return Ok(new { data = "", code = 0, msg = "成功" }); |
| | | } |
| | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | } |