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 { /// /// 销售发货 /// public class WmsSaleService : WmsPurchaseAndSaleCommonService, IWmsSaleService { private readonly IWmsOutStockService _wmsOutStockService; private readonly IQcCheckPlanService _qcCheckPlanService; public WmsSaleService(ISqlSugarRepository repo, IUserManager userManager, IWmsOutStockService wmsOutStockService, IQcCheckPlanService qcCheckPlanService) : base(repo, userManager, qcCheckPlanService) { _wmsOutStockService = wmsOutStockService; _qcCheckPlanService = qcCheckPlanService; } /// /// 销售发货 /// /// /// /// /// [HttpPost] public async Task Sale(PurchaseAndReceiveUpInput input) { _ = await PurchaseAndSaleUpdate(input); VisualDevModelDataCrInput visualDevModelDataInput = new(); visualDevModelDataInput.data = PocoToDictionary.ToDictionary(input) as Dictionary; 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 outStockDList) multi = await _wmsOutStockService.OutStockApplyFor(visualDevModelDataInput); _ = SyncMesData(multi.pkId, multi.outStockDList?.Select(x => x.material_id!).ToList() ?? Array.Empty().ToList(), EnumTriggerEvent.出厂检按入厂频次); return await Task.FromResult(1); } /// /// 根据销售发货主表Id获取子表明细 /// /// /// [HttpGet("id")] public async Task GetSaleDetailsByBillId(string id) { return await GetDetailsByPkId(id); } /// /// 审核反审核 /// /// /// /// /// [HttpPost] public async Task Audit(PurchaseAndSaleAuditUpInput input) { return await Audit(input); } /// /// mes 检验完后通知wms(销售) 回调接口 /// /// /// /// [HttpPost] public async Task MesCheckdSaleCallback(MesCheckdCallbackUpinput input) { return await UpdateChackStatus(input); } } }