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<ApiUrlConfig> setting, IPdaSoServer pdaSoSvc, UserManager userManager)
|
{
|
_config = setting.Value;
|
_pdaSoSvc = pdaSoSvc;
|
_userManager = userManager;
|
}
|
#endregion
|
|
|
/// <summary>
|
/// 判断托盘是否可用
|
/// </summary>
|
/// <param name="model">PalletNo:托盘条码</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task IsEnableOkPalletNo(PdaSoVm model)
|
{
|
await _pdaSoSvc.IsEnableOkPalletNo(model.PalletNo);
|
}
|
|
/// <summary>
|
/// 根据托盘号获取单据列表
|
/// </summary>
|
/// <param name="model">PalletNo:托盘号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<List<string>> GetRunSoNoticeList(PdaSoVm model)
|
{
|
return await _pdaSoSvc.GetRunSoNoticeList(model.PalletNo, model.Type);
|
}
|
|
/// <summary>
|
/// 获取PDA平库出库单据列表
|
/// </summary>
|
/// <param name="type"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<List<string>> GetRunNoticeList(PdaSoVm model)
|
{
|
return await _pdaSoSvc.GetRunNoticeList(model.Type);
|
}
|
|
/// <summary>
|
/// 获取物料-批次信息
|
/// </summary>
|
/// <param name="model">PalletNo:托盘码、SoNo:单据号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<List<DetailIdSkuLotNo>> GetSoSkuLotNoListByPallet(PdaSoVm model)
|
{
|
return await _pdaSoSvc.GetSoSkuLotNoListByPallet(model.PalletNo, model.SoNo);
|
}
|
|
/// <summary>
|
/// 获取出库口、规格、待拣及已拣数量(根据出库单明细ID、托盘号)
|
/// </summary>
|
/// <param name="model">SoDetailId:出库单明细ID、PalletNo:托盘码</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<OutPdaInfo> GetOutlets(PdaSoVm model)
|
{
|
return await _pdaSoSvc.GetOutlets(model.SoDetailId, model.PalletNo);
|
}
|
|
/// <summary>
|
/// 获取出库单的计划数量和完成
|
/// </summary>
|
/// <param name="model">SoDetailId:出库单明细ID</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<OutPdaInfo> GetPlanAndFinishQty(PdaSoVm model)
|
{
|
var data = await _pdaSoSvc.GetPlanAndFinishQty(model.SoDetailId);
|
return data;
|
}
|
|
/// <summary>
|
/// 获取箱码信息(根据箱码在库存箱码明细中查询)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<List<BoxInfo>> GetDataComBoxInfo(PdaSoVm model)
|
{
|
var data = await _pdaSoSvc.GetDataComBoxInfo(model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3);
|
return data;
|
}
|
|
/// <summary>
|
/// 获取箱码信息(获取库内无箱码的托盘分配信息)
|
/// </summary>
|
/// <param name="model">BoxNo:箱码号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<List<BoxInfo>> GetAllotPlnInfo(PdaSoVm model)
|
{
|
return await _pdaSoSvc.GetAllotPlnInfo(model.SoDetailId, model.PalletNo);
|
}
|
|
/// <summary>
|
/// 出库pda拣货
|
/// </summary>
|
/// <param name="model">SoDetailId:出库单明细ID、PalletNo:托盘码</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task SoSetPick(PdaSoVm model)
|
{
|
await _pdaSoSvc.SoSetPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, _userManager.UserId);
|
}
|
|
/// <summary>
|
/// 出库pda拣货
|
/// </summary>
|
/// <param name="model">SoDetailId:出库单明细ID、PalletNo:托盘码</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task SoSetQtyPick(PdaSoVm model)
|
{
|
await _pdaSoSvc.SoSetQtyPick(model.SoNo, model.SoDetailId, model.PalletNo, model.PickQty, _userManager.UserId);
|
}
|
|
|
/// <summary>
|
/// 空托出库
|
/// </summary>
|
/// <param name="model">空托盘出库</param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<string> IssuePlnOutHouse(OutModePalletVm model)
|
{
|
return await _pdaSoSvc.IssuePlnOutHouse(model, _userManager.UserId, _config.WcsHost + _config.IssueComApiUrl);
|
}
|
|
|
|
/// <summary>
|
/// 获取平库托盘信息
|
/// </summary>
|
/// <param name="soNo">出库单号</param>
|
/// <param name="palletNo">托盘号</param>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task<List<BoxInfo>> GetPingKuInfoByPallet(string soNo, string palletNo)
|
{
|
return await _pdaSoSvc.GetPingKuInfoByPallet(soNo, palletNo);
|
}
|
|
/// <summary>
|
/// 获取平库托盘位置信息
|
/// </summary>
|
/// <param name="soNo">出库单号</param>
|
/// <param name="SkuNo">物料编码</param>
|
/// <param name="LotNo">批次</param>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task<List<BoxInfo>> GetPingKuLocationInfo(string soNo,string SkuNo,string LotNo)
|
{
|
return await _pdaSoSvc.GetPingKuLocationInfo(soNo, SkuNo, LotNo);
|
}
|
|
|
/// <summary>
|
/// 平库出库
|
/// </summary>
|
/// <param name="soNo">出库单号</param>
|
/// <param name="palletNo">托盘号</param>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task PlaneExportSuccess(string soNo, string palletNo)
|
{
|
await _pdaSoSvc.PlaneExportSuccess(soNo, palletNo, _userManager.UserId);
|
}
|
|
|
/// <summary>
|
/// 根据托盘号获取取样类型
|
/// </summary>
|
/// <param name="palletNo">托盘号</param>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task<string> GetSampleType(string palletNo)
|
{
|
return await _pdaSoSvc.GetSampleType(palletNo);
|
}
|
|
/// <summary>
|
/// 根据托盘号获取入库单据
|
/// </summary>
|
/// <param name="palletNo">托盘号</param>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task<List<string>> GetAsnNoByPallet(string palletNo)
|
{
|
return await _pdaSoSvc.GetAsnNoByPallet(palletNo);
|
}
|
/// <summary>
|
/// 取样出库拣货(标签)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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);
|
}
|
/// <summary>
|
/// 取样出库拣货(无标签)
|
/// </summary>
|
/// <param name="model">SoDetailId:出库单明细ID、PalletNo:托盘码</param>
|
/// <returns></returns>
|
[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 拣货拼托
|
/// <summary>
|
/// 拼托出库pda拣货-标签
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task SoSetPinPick(PdaSoVm model)
|
{
|
await _pdaSoSvc.SoSetPinPick34(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.PalletNoNew, _userManager.UserId);
|
}
|
/// <summary>
|
/// 拼托出库pda拣货-数量
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task SoSetQtyPinPick(PdaSoVm model)
|
{
|
await _pdaSoSvc.SoSetQtyPinPick34(model.SoNo, model.SoDetailId, model.PalletNo, model.PickQty, model.PalletNoNew, _userManager.UserId);
|
}
|
#endregion
|
|
#region JC23版取样
|
|
|
/// <summary>
|
/// 根据托盘号获取取样类型
|
/// </summary>
|
/// <param name="palletNo">托盘号</param>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task<string> GetSampleType2(string palletNo)
|
{
|
return await _pdaSoSvc.GetSampleType2(palletNo);
|
}
|
|
/// <summary>
|
/// 获取待出库或待取样的请验单
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task<List<string>> GetInspectionNo()
|
{
|
return await _pdaSoSvc.GetInspectionNo();
|
}
|
|
/// <summary>
|
/// 获取请验单相关信息
|
/// </summary>
|
/// <param name="qcNo">请验单</param>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task<InspectionRequestDto> GetInspectionRequestInfo(string qcNo)
|
{
|
return await _pdaSoSvc.GetInspectionRequestInfo(qcNo);
|
}
|
|
/// <summary>
|
/// 取样出库拣货(标签)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task SampleSetPick(SampleSoVm model)
|
{
|
await _pdaSoSvc.SampleSetPick(model.QcNo, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, _userManager.UserId);
|
}
|
|
/// <summary>
|
/// 取样出库拣货(数量)
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task SampleSetQtyPick(SampleSoVm model)
|
{
|
await _pdaSoSvc.SampleSetQtyPick(model.QcNo, model.PalletNo, model.PickQty, _userManager.UserId);
|
}
|
|
#endregion
|
|
|
}
|
}
|