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 JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.FriendlyException; using JNPF.Logging; using JNPF.VisualDev; using Mapster; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using NPOI.OpenXmlFormats; using NPOI.OpenXmlFormats.Dml.Diagram; using SqlSugar; using Tnb.BasicData.Entities; using Tnb.Common.Utils; using Tnb.QcMgr.Entities; using Tnb.QcMgr.Entities.Enums; using Tnb.QcMgr.Interfaces; using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Consts; using Tnb.WarehouseMgr.Entities.Dto; using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.WarehouseMgr.Interfaces; namespace Tnb.WarehouseMgr { /// /// 采购收货 /// [OverideVisualDev(ModuleConsts.MODULE_WMSPURCHASE_ID)] public class WmsPurchaseService : WmsPurchaseAndSaleCommonService, IWmsPurchaseService { private readonly ISqlSugarClient _db; private readonly IUserManager _userManager; public WmsPurchaseService(ISqlSugarRepository repo, IUserManager userManager, IQcCheckPlanService qcCheckPlanService) : base(repo, userManager, qcCheckPlanService) { _db = repo.AsSugarClient(); _userManager = userManager; } private async Task xxx(VisualDevModelDataCrInput input) { PurchaseAndReceiveUpInput input2 = new(); var input3 = input.data.ToObject(); input3.details = input.data["tablefield177"].ToObject>(); var sss = JsonConvert.SerializeObject(input3); return await Task.FromResult(sss); } /// /// 采购收货 /// /// /// [HttpPost] public async Task Purchase(PurchaseAndReceiveUpInput input) { var blFlag = true; try { await _db.Ado.BeginTranAsync(); WmsInstockH? instock = null; var purchaseDs = await PurchaseAndSaleUpdate(input); List instockDs = new(); if (purchaseDs?.Count > 0) { instock = input.Adapt(); instock.id = SnowflakeIdHelper.NextId(); instock.create_id = _userManager.UserId; instock.create_time = DateTime.Now; instock.org_id = _userManager.User.OrganizeId; if (instock.source_code != null) { instock.sync_status = WmsWareHouseConst.SYNC_STATUS__NOTSYNC; } else { instock.sync_status = WmsWareHouseConst.SYNC_STATUS_NONEEDSYNC; } instock.audit_status = 0; instock.print_status = "0"; instock.is_check = 0; await _db.Insertable(instock).ExecuteCommandAsync(); instockDs = purchaseDs.Adapt>(); instockDs.ForEach(instockD => { instockD.bill_id =instock.id; instockD.create_id = _userManager.UserId; instockD.create_time = DateTime.Now; instockD.org_id = _userManager.User.OrganizeId; }); await _db.Insertable(instockDs).ExecuteCommandAsync(); } //通知Mes接口 //_ = SyncMesData(instock.id, instockDs.Select(x => x.material_id).ToList(), EnumTriggerEvent.入厂检按物料编号); await _db.Ado.CommitTranAsync(); } catch (Exception ex) { blFlag = false; await _db.Ado.RollbackTranAsync(); Log.Error("采购收货失败", ex); throw; } return await Task.FromResult(blFlag); } /// /// 根据主表Id获取采购收货明细 /// /// 主表Id /// [HttpGet("id")] public async Task GetPurchaseDetailByBillId(string id) { return await GetDetailsByPkId(id); } /// /// 审核反审核 /// /// /// /// /// [HttpPost] public async Task Audit(PurchaseAndSaleAuditUpInput input) { return await Audit(input); } /// /// mes 检验完后通知wms(采购) 回调接口 /// /// /// /// [HttpPost] public async Task MesCheckdPurchaseCallback(MesCheckdCallbackUpinput input) { return await UpdateChackStatus(input); } } }