using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Security.Claims; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Options; using Model.ModelVm.PdaVm; using WMS.IBLL.IPdaServer; using Model.ModelDto; using Wms.Tools; using Utility; using System.Security.Cryptography; namespace Wms.Controllers { [Route("api/[controller]/[action]")] [ApiController] [Authorize] [ServiceFilter(typeof(ApiResponseActionFilter))] public class PdaSoController : ControllerBase { #region 依赖注入 private readonly ApiUrlConfig _config; //接口交互路径 private readonly IPdaSoServer _pdaSoSvc; private readonly UserManager _userManager; public PdaSoController(IOptions setting, IPdaSoServer pdaSoSvc, UserManager userManager) { _config = setting.Value; _pdaSoSvc = pdaSoSvc; _userManager = userManager; } #endregion /// /// 判断托盘是否可用 /// /// PalletNo:托盘条码 /// [HttpPost] public async Task IsEnableOkPalletNo(PdaSoVm model) { await _pdaSoSvc.IsEnableOkPalletNo(model.PalletNo); } /// /// 根据托盘号获取单据列表 /// /// PalletNo:托盘号 /// [HttpPost] public async Task> GetRunSoNoticeList(PdaSoVm model) { return await _pdaSoSvc.GetRunSoNoticeList(model.PalletNo, model.Type); } /// /// 获取PDA平库出库单据列表 /// /// /// [HttpPost] public async Task> GetRunNoticeList(PdaSoVm model) { return await _pdaSoSvc.GetRunNoticeList(model.Type); } /// /// 获取物料-批次信息 /// /// PalletNo:托盘码、SoNo:单据号 /// [HttpPost] public async Task> GetSoSkuLotNoListByPallet(PdaSoVm model) { return await _pdaSoSvc.GetSoSkuLotNoListByPallet(model.PalletNo, model.SoNo); } /// /// 获取出库口、规格、待拣及已拣数量(根据出库单明细ID、托盘号) /// /// SoDetailId:出库单明细ID、PalletNo:托盘码 /// [HttpPost] public async Task GetOutlets(PdaSoVm model) { return await _pdaSoSvc.GetOutlets(model.SoDetailId, model.PalletNo); } /// /// 获取出库单的计划数量和完成 /// /// SoDetailId:出库单明细ID /// [HttpPost] public async Task GetPlanAndFinishQty(PdaSoVm model) { var data = await _pdaSoSvc.GetPlanAndFinishQty(model.SoDetailId); return data; } /// /// 获取箱码信息(根据箱码在库存箱码明细中查询) /// /// /// [HttpPost] public async Task> GetDataComBoxInfo(PdaSoVm model) { var data = await _pdaSoSvc.GetDataComBoxInfo(model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3); return data; } /// /// 获取箱码信息(获取库内无箱码的托盘分配信息) /// /// BoxNo:箱码号 /// [HttpPost] public async Task> GetAllotPlnInfo(PdaSoVm model) { return await _pdaSoSvc.GetAllotPlnInfo(model.SoDetailId, model.PalletNo); } /// /// 出库pda拣货 /// /// SoDetailId:出库单明细ID、PalletNo:托盘码 /// [HttpPost] public async Task SoSetPick(PdaSoVm model) { await _pdaSoSvc.SoSetPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, _userManager.UserId); } /// /// 出库pda拣货 /// /// SoDetailId:出库单明细ID、PalletNo:托盘码 /// [HttpPost] public async Task SoSetQtyPick(PdaSoVm model) { await _pdaSoSvc.SoSetQtyPick(model.SoNo, model.SoDetailId, model.PalletNo, model.PickQty, _userManager.UserId); } /// /// 空托出库 /// /// 空托盘出库 /// [HttpPost] public async Task IssuePlnOutHouse(OutModePalletVm model) { return await _pdaSoSvc.IssuePlnOutHouse(model, _userManager.UserId, _config.WcsHost + _config.IssueComApiUrl); } /// /// 获取平库托盘信息 /// /// 出库单号 /// 托盘号 /// [HttpGet] public async Task> GetPingKuInfoByPallet(string soNo, string palletNo) { return await _pdaSoSvc.GetPingKuInfoByPallet(soNo, palletNo); } /// /// 平库出库 /// /// 出库单号 /// 托盘号 /// [HttpGet] public async Task PlaneExportSuccess(string soNo, string palletNo) { await _pdaSoSvc.PlaneExportSuccess(soNo, palletNo, _userManager.UserId); } /// /// 根据托盘号获取取样类型 /// /// 托盘号 /// [HttpGet] public async Task GetSampleType(string palletNo) { return await _pdaSoSvc.GetSampleType(palletNo); } /// /// 根据托盘号获取入库单据 /// /// 托盘号 /// [HttpGet] public async Task> GetAsnNoByPallet(string palletNo) { return await _pdaSoSvc.GetAsnNoByPallet(palletNo); } /// /// 取样出库拣货(标签) /// /// /// [HttpPost] public async Task SampleSoSetPick(PdaSoVm model) { await _pdaSoSvc.SampleSoSetPick(model.Type, model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, model.AsnNo, _userManager.UserId); } /// /// 取样出库拣货(无标签) /// /// SoDetailId:出库单明细ID、PalletNo:托盘码 /// [HttpPost] public async Task SampleSoSetQtyPick(PdaSoVm model) { await _pdaSoSvc.SampleSoSetQtyPick(model.Type, model.SoNo, model.SoDetailId, model.PalletNo, model.PickQty, model.AsnNo, _userManager.UserId); } #region 拣货拼托 /// /// 拼托出库pda拣货-标签 /// /// /// [HttpPost] public async Task SoSetPinPick(PdaSoVm model) { await _pdaSoSvc.SoSetPinPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, model.PalletNoNew, _userManager.UserId); } /// /// 拼托出库pda拣货-数量 /// /// /// [HttpPost] public async Task SoSetQtyPinPick(PdaSoVm model) { await _pdaSoSvc.SoSetQtyPinPick(model.SoNo, model.SoDetailId, model.PalletNo, model.PickQty, model.PalletNoNew, _userManager.UserId); } #endregion #region JC23版取样 /// /// 根据托盘号获取取样类型 /// /// 托盘号 /// [HttpGet] public async Task GetSampleType2(string palletNo) { return await _pdaSoSvc.GetSampleType2(palletNo); } /// /// 获取待出库或待取样的请验单 /// /// [HttpGet] public async Task> GetInspectionNo() { return await _pdaSoSvc.GetInspectionNo(); } /// /// 获取请验单相关信息 /// /// 请验单 /// [HttpGet] public async Task GetInspectionRequestInfo(string qcNo) { return await _pdaSoSvc.GetInspectionRequestInfo(qcNo); } /// /// 取样出库拣货(标签) /// /// /// [HttpPost] public async Task SampleSetPick(SampleSoVm model) { await _pdaSoSvc.SampleSetPick(model.QcNo, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, _userManager.UserId); } /// /// 取样出库拣货(数量) /// /// /// [HttpPost] public async Task SampleSetQtyPick(SampleSoVm model) { await _pdaSoSvc.SampleSetQtyPick(model.QcNo, model.PalletNo, model.PickQty, _userManager.UserId); } #endregion } }