95 lines
3.2 KiB
C#
95 lines
3.2 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using JNPF.Common.Core.Manager;
|
||
using JNPF.Common.Dtos.VisualDev;
|
||
using Mapster;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
using SqlSugar;
|
||
using Tnb.Common.Utils;
|
||
using Tnb.QcMgr.Entities.Enums;
|
||
using Tnb.QcMgr.Entities;
|
||
using Tnb.WarehouseMgr.Entities;
|
||
using Tnb.WarehouseMgr.Entities.Dto;
|
||
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
|
||
using Tnb.WarehouseMgr.Interfaces;
|
||
using Tnb.QcMgr.Interfaces;
|
||
|
||
namespace Tnb.WarehouseMgr
|
||
{
|
||
/// <summary>
|
||
/// 销售发货
|
||
/// </summary>
|
||
public class WmsSaleService : WmsPurchaseAndSaleCommonService<WmsSaleD>, IWmsSaleService
|
||
{
|
||
private readonly IWmsOutStockService _wmsOutStockService;
|
||
private readonly IQcCheckPlanService _qcCheckPlanService;
|
||
|
||
public WmsSaleService(ISqlSugarRepository<WmsPurchaseH> repo, IUserManager userManager,
|
||
IWmsOutStockService wmsOutStockService, IQcCheckPlanService qcCheckPlanService)
|
||
: base(repo, userManager, qcCheckPlanService)
|
||
{
|
||
_wmsOutStockService = wmsOutStockService;
|
||
_qcCheckPlanService = qcCheckPlanService;
|
||
}
|
||
/// <summary>
|
||
/// 销售发货
|
||
/// </summary>
|
||
/// <param name="input">
|
||
///
|
||
/// </param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public async Task<dynamic> Sale(PurchaseAndReceiveUpInput input)
|
||
{
|
||
_ = await PurchaseAndSaleUpdate(input);
|
||
VisualDevModelDataCrInput visualDevModelDataInput = new();
|
||
visualDevModelDataInput.data = PocoToDictionary.ToDictionary(input) as Dictionary<string, object>;
|
||
visualDevModelDataInput.data["location_id"] = "26412597341221";
|
||
visualDevModelDataInput.data["location_code"] = "YCL01-01-01";
|
||
|
||
(string pkId, List <WmsOutstockD> outStockDList) multi = await _wmsOutStockService.OutStockApplyFor(visualDevModelDataInput);
|
||
_ = SyncMesData(multi.pkId, multi.outStockDList?.Select(x => x.material_id!).ToList() ?? Array.Empty<string>().ToList(), EnumTriggerEvent.出厂检按入厂频次);
|
||
|
||
return await Task.FromResult(1);
|
||
}
|
||
/// <summary>
|
||
/// 根据销售发货主表Id获取子表明细
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
[HttpGet("id")]
|
||
public async Task<dynamic> GetSaleDetailsByBillId(string id)
|
||
{
|
||
return await GetDetailsByPkId(id);
|
||
}
|
||
/// <summary>
|
||
/// 审核反审核
|
||
/// </summary>
|
||
/// <param name="input">
|
||
///
|
||
/// </param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public async Task<bool> Audit(PurchaseAndSaleAuditUpInput input)
|
||
{
|
||
return await Audit<WmsSaleH>(input);
|
||
}
|
||
|
||
/// <summary>
|
||
/// mes 检验完后通知wms(销售) 回调接口
|
||
/// </summary>
|
||
/// <param name="input">
|
||
/// </param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public async Task<dynamic> MesCheckdSaleCallback(MesCheckdCallbackUpinput input)
|
||
{
|
||
return await UpdateChackStatus<WmsOutstockH>(input);
|
||
}
|
||
|
||
}
|
||
}
|