148 lines
5.2 KiB
C#
148 lines
5.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 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
|
||
{
|
||
/// <summary>
|
||
/// 采购收货
|
||
/// </summary>
|
||
[OverideVisualDev(ModuleConsts.MODULE_WMSPURCHASE_ID)]
|
||
public class WmsPurchaseService : WmsPurchaseAndSaleCommonService<WmsPurchaseD>, IWmsPurchaseService
|
||
{
|
||
private readonly ISqlSugarClient _db;
|
||
private readonly IUserManager _userManager;
|
||
public WmsPurchaseService(ISqlSugarRepository<WmsPurchaseH> repo, IUserManager userManager, IQcCheckPlanService qcCheckPlanService)
|
||
: base(repo, userManager, qcCheckPlanService)
|
||
{
|
||
_db = repo.AsSugarClient();
|
||
_userManager = userManager;
|
||
}
|
||
|
||
private async Task<dynamic> xxx(VisualDevModelDataCrInput input)
|
||
{
|
||
PurchaseAndReceiveUpInput input2 = new();
|
||
var input3 = input.data.ToObject<PurchaseAndReceiveUpInput>();
|
||
input3.details = input.data["tablefield177"].ToObject<List<WmsPurchaseD>>();
|
||
var sss = JsonConvert.SerializeObject(input3);
|
||
return await Task.FromResult(sss);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 采购收货
|
||
/// </summary>
|
||
/// <param name="input"></param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public async Task<dynamic> Purchase(PurchaseAndReceiveUpInput input)
|
||
{
|
||
var blFlag = true;
|
||
try
|
||
{
|
||
await _db.Ado.BeginTranAsync();
|
||
WmsInstockH? instock = null;
|
||
var purchaseDs = await PurchaseAndSaleUpdate(input);
|
||
List<WmsInstockD> instockDs = new();
|
||
if (purchaseDs?.Count > 0)
|
||
{
|
||
instock = input.Adapt<WmsInstockH>();
|
||
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<List<WmsInstockD>>();
|
||
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);
|
||
}
|
||
/// <summary>
|
||
/// 根据主表Id获取采购收货明细
|
||
/// </summary>
|
||
/// <param name="id">主表Id</param>
|
||
/// <returns></returns>
|
||
[HttpGet("id")]
|
||
public async Task<dynamic> GetPurchaseDetailByBillId(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<WmsPurchaseH>(input);
|
||
}
|
||
/// <summary>
|
||
/// mes 检验完后通知wms(采购) 回调接口
|
||
/// </summary>
|
||
/// <param name="input">
|
||
/// </param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public async Task<dynamic> MesCheckdPurchaseCallback(MesCheckdCallbackUpinput input)
|
||
{
|
||
return await UpdateChackStatus<WmsInstockH>(input);
|
||
}
|
||
}
|
||
}
|