Files
tnb.server/WarehouseMgr/Tnb.WarehouseMgr/TransferInstockHService.cs
2024-11-11 10:08:55 +08:00

147 lines
5.4 KiB
C#

using System.Dynamic;
using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Enums;
using JNPF.Common.Extension;
using JNPF.Common.Filter;
using JNPF.Common.Security;
using JNPF.FriendlyException;
using JNPF.Systems.Entitys.Permission;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using JNPF.VisualDev.Interfaces;
using Mapster;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NPOI.SS.Formula.Functions;
using Senparc.Weixin.MP.AdvancedAPIs.Card;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.EquipMgr;
using Tnb.EquipMgr.Entities;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Consts;
using Tnb.WarehouseMgr.Entities.Dto;
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
using Tnb.WarehouseMgr.Entities.Entity;
using Tnb.WarehouseMgr.Entities.Enums;
using Tnb.WarehouseMgr.Interfaces;
using Top.Api;
namespace Tnb.WarehouseMgr
{
/// <summary>
/// 载具绑定
/// </summary>
[OverideVisualDev(ModuleConsts.MODULE_WMSTRANSFERINSTOCKH_ID)]
public class TransferInstockHService : BaseWareHouseService
{
private readonly ISqlSugarClient _db;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
private readonly IUserManager _userManager;
private readonly IBillRullService _billRullService;
public TransferInstockHService(
ISqlSugarRepository<WmsCarryH> repository,
IRunService runService,
IVisualDevService visualDevService,
IUserManager userManager,
IBillRullService billRullService)
{
_db = repository.AsSugarClient();
_runService = runService;
_visualDevService = visualDevService;
_userManager = userManager;
_billRullService = billRullService;
//OverideFuncs.GetListAsync = GetList;
}
[NonAction]
private async Task<dynamic> GetList(VisualDevModelListQueryInput input)
{
try
{
SqlSugarPagedList<WmsTransferInstockH> result = await _db.Queryable<WmsTransferInstockH>()
.ToPagedListAsync(input.currentPage, input.pageSize);
var _data = PageResult<WmsTransferInstockH>.SqlSugarPageResult(result);
var json = JsonConvert.SerializeObject(_data);
var data = JsonConvert.DeserializeObject<dynamic>(json);
JArray mainTable = data.list;
var wmsTransferInstockDs = _db.Queryable<WmsTransferInstockD>().LeftJoin<BasMaterial>((a, b) => a.material_id == b.id).Where((a, b) => mainTable.Select(r => r["id"].ToString()).ToList().Contains(a.bill_id)).Select((a, b) => new TransferInstockDListOutput
{
id = a.id,
org_id = a.org_id,
bill_id = a.bill_id,
status = a.status,
material_id = a.material_id,
material_code = a.material_code,
unit_id = a.unit_id,
unit_code = a.unit_code,
pr_qty = a.pr_qty,
xf_qty = a.xf_qty,
qty = a.qty,
f_flowid = a.f_flowid,
f_flowtaskid = a.f_flowtaskid,
material_desc = a.material_desc,
create_id = a.create_id,
create_time = a.create_time,
modify_id = a.modify_id,
modify_time = a.modify_time,
pi_code = a.pi_code,
stock_location = a.stock_location,
erp_line_pk = a.erp_line_pk,
lineno = a.lineno,
material_name = a.material_name,
auxprop = a.auxprop,
auxprop_gys = a.auxprop_gys,
auxprop_xph = a.auxprop_xph,
udi_code = a.udi_code,
material_specification = b.material_specification,
material_standard = b.material_standard
});
foreach (JObject wmsTransferInstockH in mainTable)
{
wmsTransferInstockH["tablefield105"] = JArray.Parse(JsonConvert.SerializeObject(wmsTransferInstockDs.Where(r => r.bill_id == wmsTransferInstockH["id"].ToString()).ToList()));
}
return data;
}
catch(Exception ex)
{
return Task.FromResult(ex);
}
}
[HttpPost, NonUnify, AllowAnonymous]
public async Task<dynamic> List(TransferInstockHListInput input)
{
try
{
JObject jobject = new JObject();
jobject["code"] = "200";
List<WmsTransferInstockD> wmsTransferInstockDs = _db.Queryable<WmsTransferInstockD>().Where(r => r.bill_id == input.id).ToList();
jobject["data"] = JArray.Parse(JsonConvert.SerializeObject(wmsTransferInstockDs));
return await Task.FromResult(jobject);
}
catch (Exception ex)
{
return Task.FromResult(ex);
}
}
}
}