Files

109 lines
3.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
using Tnb.WarehouseMgr.Entities.Consts;
using JNPF.Common.Enums;
using JNPF.FriendlyException;
using Microsoft.Extensions.Logging;
using Tnb.ProductionMgr.Entities;
using Tnb.WarehouseMgr.Entities.Entity;
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["station_id"] = "30018443941397";
visualDevModelDataInput.data["station_code"] = "02DTGW";
if (visualDevModelDataInput.data.ContainsKey(nameof(WmsPurchaseH.source_code))) {
visualDevModelDataInput.data["sync_status"] = WmsWareHouseConst.SYNC_STATUS__NOTSYNC;
}
else
{
visualDevModelDataInput.data["sync_status"] = WmsWareHouseConst.SYNC_STATUS_NONEEDSYNC;
}
visualDevModelDataInput.data["audit_status"] = 0;
visualDevModelDataInput.data["is_check"] = 0;
(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);
}
}
}