库房业务,入出库申请,根据入出库明细Id获取匹配信息
This commit is contained in:
@@ -0,0 +1,217 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Tnb.WarehouseMgr.Entities.Enums;
|
||||||
|
|
||||||
|
namespace Tnb.WarehouseMgr.Entities.Dto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 出入库申请修改输入参数
|
||||||
|
/// </summary>
|
||||||
|
public class InOutStockApplyforUpInput
|
||||||
|
{
|
||||||
|
// bill_line,location_id,delivery_date,carry_id,carry_code
|
||||||
|
/// <summary>
|
||||||
|
/// 出入库申请类型 1、入库 2、出库
|
||||||
|
/// </summary>
|
||||||
|
public EnumInOutStockType inoutStockType { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 所属组织ID
|
||||||
|
/// </summary>
|
||||||
|
public string? org_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 入库单ID
|
||||||
|
/// </summary>
|
||||||
|
public string bill_id { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 执行状态
|
||||||
|
/// </summary>
|
||||||
|
public string line_status { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 物品ID
|
||||||
|
/// </summary>
|
||||||
|
public string material_id { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 物品代码
|
||||||
|
/// </summary>
|
||||||
|
public string material_code { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 单位ID
|
||||||
|
/// </summary>
|
||||||
|
public string unit_id { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 单位代码
|
||||||
|
/// </summary>
|
||||||
|
public string? unit_code { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 入库需求数量
|
||||||
|
/// </summary>
|
||||||
|
public int pr_qty { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 实际入库数量
|
||||||
|
/// </summary>
|
||||||
|
public int qty { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 原因
|
||||||
|
/// </summary>
|
||||||
|
public string? reason { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 入库仓库ID
|
||||||
|
/// </summary>
|
||||||
|
public string? warehouse_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 不含税单价
|
||||||
|
/// </summary>
|
||||||
|
public decimal? price { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 含税单价
|
||||||
|
/// </summary>
|
||||||
|
public decimal? tax_price { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 不含税金额
|
||||||
|
/// </summary>
|
||||||
|
public decimal? amount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 含税金额
|
||||||
|
/// </summary>
|
||||||
|
public decimal? all_amount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 来源单据ID
|
||||||
|
/// </summary>
|
||||||
|
public string? source_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 来源单据代码
|
||||||
|
/// </summary>
|
||||||
|
public string? source_code { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 源单单据类型
|
||||||
|
/// </summary>
|
||||||
|
public int? source_type { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 来源单据行号
|
||||||
|
/// </summary>
|
||||||
|
public int? source_line { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 来源单据明细ID
|
||||||
|
/// </summary>
|
||||||
|
public string? source_detail_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 生产工单号
|
||||||
|
/// </summary>
|
||||||
|
public string? mo_code { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 生产工单行号
|
||||||
|
/// </summary>
|
||||||
|
public int? mo_line { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 生产工单BOM明细Id
|
||||||
|
/// </summary>
|
||||||
|
public string? mo_bom_detail_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 已打印数量
|
||||||
|
/// </summary>
|
||||||
|
public int print_qty { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 扫描数量
|
||||||
|
/// </summary>
|
||||||
|
public int scan_qty { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 备注
|
||||||
|
/// </summary>
|
||||||
|
public string? remark { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 扩展字段
|
||||||
|
/// </summary>
|
||||||
|
public string? extras { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 时间戳
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? time_stamp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建用户
|
||||||
|
/// </summary>
|
||||||
|
public string? create_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? create_time { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改用户
|
||||||
|
/// </summary>
|
||||||
|
public string? modify_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? modify_time { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批次
|
||||||
|
/// </summary>
|
||||||
|
public string? code_batch { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 打印模板ID
|
||||||
|
/// </summary>
|
||||||
|
public string? print_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 行号
|
||||||
|
/// </summary>
|
||||||
|
public int bill_line { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 库位ID
|
||||||
|
/// </summary>
|
||||||
|
public string location_id { get; set; } = string.Empty;
|
||||||
|
/// <summary>
|
||||||
|
/// 要求出库日期(销售出库为交期)
|
||||||
|
/// </summary>
|
||||||
|
public DateTime delivery_date { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 载具ID
|
||||||
|
/// </summary>
|
||||||
|
public string? carry_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 载具编号
|
||||||
|
/// </summary>
|
||||||
|
public string? carry_code { get; set; }
|
||||||
|
|
||||||
|
public List<WmsInstockCode> InstockCodes { get; set; }
|
||||||
|
public List<WmsOutstockCode> OutstockCodes { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Tnb.WarehouseMgr.Entities.Enums;
|
||||||
|
|
||||||
|
namespace Tnb.WarehouseMgr.Entities.Dto
|
||||||
|
{
|
||||||
|
public class InOutStockDetailQuery
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 出入库申请类型 1、入库 2、出库
|
||||||
|
/// </summary>
|
||||||
|
public EnumInOutStockType inoutStockType { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 出入库单明细Id
|
||||||
|
/// </summary>
|
||||||
|
public string bill_d_id { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Tnb.WarehouseMgr.Entities.Dto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 入库单据物料明细信息
|
||||||
|
/// </summary>
|
||||||
|
public class InStockDetailOutput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 入库单明细Id
|
||||||
|
/// </summary>
|
||||||
|
public string bill_id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 单位id
|
||||||
|
/// </summary>
|
||||||
|
public string unit_id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 批次
|
||||||
|
/// </summary>
|
||||||
|
public string code_batch { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 入库仓库Id
|
||||||
|
/// </summary>
|
||||||
|
public string warehouse_id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 执行状态
|
||||||
|
/// </summary>
|
||||||
|
public string line_status { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 原因
|
||||||
|
/// </summary>
|
||||||
|
public string reason { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 需求数量
|
||||||
|
/// </summary>
|
||||||
|
public int pr_qty { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 实际入库数量
|
||||||
|
/// </summary>
|
||||||
|
public int qty { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 不含税单价
|
||||||
|
/// </summary>
|
||||||
|
public decimal? price { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 含税单价
|
||||||
|
/// </summary>
|
||||||
|
public decimal? tax_price { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 已打印数量
|
||||||
|
/// </summary>
|
||||||
|
public int print_qty { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 扫描数量
|
||||||
|
/// </summary>
|
||||||
|
public int scan_qty { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 条码明细
|
||||||
|
/// </summary>
|
||||||
|
public List<WmsInstockCode> CodeDetails { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Tnb.WarehouseMgr.Entities.Enums
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 出入库申请类型
|
||||||
|
/// </summary>
|
||||||
|
public enum EnumInOutStockType
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 入库
|
||||||
|
/// </summary>
|
||||||
|
In=1,
|
||||||
|
/// <summary>
|
||||||
|
/// 出库
|
||||||
|
/// </summary>
|
||||||
|
Out=2,
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,15 +1,22 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Aspose.Cells.Drawing;
|
using Aspose.Cells.Drawing;
|
||||||
|
using JNPF.Common.Contracts;
|
||||||
|
using JNPF.Common.Enums;
|
||||||
using JNPF.Common.Extension;
|
using JNPF.Common.Extension;
|
||||||
|
using JNPF.Common.Security;
|
||||||
using JNPF.DependencyInjection;
|
using JNPF.DependencyInjection;
|
||||||
using JNPF.DynamicApiController;
|
using JNPF.DynamicApiController;
|
||||||
using JNPF.Extras.CollectiveOAuth.Config;
|
using JNPF.Extras.CollectiveOAuth.Config;
|
||||||
|
using JNPF.FriendlyException;
|
||||||
|
using Mapster;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.CodeAnalysis;
|
||||||
using NPOI.OpenXmlFormats.Wordprocessing;
|
using NPOI.OpenXmlFormats.Wordprocessing;
|
||||||
using Polly.Timeout;
|
using Polly.Timeout;
|
||||||
using Spire.Pdf.Widget;
|
using Spire.Pdf.Widget;
|
||||||
@@ -18,6 +25,8 @@ using Tnb.BasicData.Entities;
|
|||||||
using Tnb.BasicData.Entities.Enums;
|
using Tnb.BasicData.Entities.Enums;
|
||||||
using Tnb.Common.Utils;
|
using Tnb.Common.Utils;
|
||||||
using Tnb.WarehouseMgr.Entities;
|
using Tnb.WarehouseMgr.Entities;
|
||||||
|
using Tnb.WarehouseMgr.Entities.Dto;
|
||||||
|
using Tnb.WarehouseMgr.Entities.Enums;
|
||||||
using Tnb.WarehouseMgr.Interfaces;
|
using Tnb.WarehouseMgr.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
@@ -69,102 +78,101 @@ namespace Tnb.WarehouseMgr
|
|||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取载具信息(入库业务) 当前载具启用;未锁定;如果有库位信息,库位不能为存储库位,出库库位,分拣库位;
|
/// 库房业务,入库、出库申请新增修改功能
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <param name="input"></param>
|
||||||
/// returns:
|
/// <returns></returns>
|
||||||
/// <br/>{
|
[HttpPost]
|
||||||
/// <br/> carry_id:载具Id
|
public async Task ApplyFor(InOutStockApplyforUpInput input)
|
||||||
/// <br/> carry_code:载具编号
|
|
||||||
/// <br/> carry_name:载具名称
|
|
||||||
/// <br/> location_id:库位id
|
|
||||||
/// <br/> location_code:库位编码
|
|
||||||
/// <br/> location_name:库位名称
|
|
||||||
/// <br/>}
|
|
||||||
/// </remarks>
|
|
||||||
[HttpGet]
|
|
||||||
public async Task<dynamic> GetCarryInfo()
|
|
||||||
{
|
{
|
||||||
var locationTypes = new[] { (int)EnumLocationType.存储库位, (int)EnumLocationType.出库库位, (int)EnumLocationType.分拣库位 };
|
// bill_line,location_id,delivery_date,carry_id,carry_code
|
||||||
var items = await _db.Queryable<WmsCarryH>().LeftJoin<BasLocation>((a, b) => a.location_id == b.id)
|
if (input == null) throw new ArgumentNullException("input");
|
||||||
.Where((a, b) => a.status == 0 && a.is_lock == 0 && !locationTypes.Contains(Convert.ToInt32(b.is_type)))
|
var isOk = false;
|
||||||
.Select((a, b) => new
|
switch (input.inoutStockType)
|
||||||
{
|
{
|
||||||
carry_id = a.id,
|
case EnumInOutStockType.In:
|
||||||
carry_code = a.carry_code,
|
var wmsInstockD = input.Adapt<WmsInstockD>();
|
||||||
carry_name = a.carry_name,
|
var wmsInstockCodes = input.InstockCodes.Adapt<List<WmsInstockCode>>();
|
||||||
location_id = b.id,
|
wmsInstockCodes.ForEach(x =>
|
||||||
location_code = b.location_code,
|
{
|
||||||
location_name = b.location_name,
|
if (x.id.IsNullOrWhiteSpace())
|
||||||
})
|
{
|
||||||
.ToListAsync();
|
x.id = SnowflakeIdHelper.NextId();
|
||||||
return items;
|
}
|
||||||
|
});
|
||||||
|
isOk = await _update<WmsInstockD, WmsInstockCode>(wmsInstockD, wmsInstockCodes);
|
||||||
|
break;
|
||||||
|
case EnumInOutStockType.Out:
|
||||||
|
var wmsOutstockD = input.Adapt<WmsOutstockD>();
|
||||||
|
var wmsOutstockCodes = input.InstockCodes.Adapt<List<WmsOutstockCode>>();
|
||||||
|
wmsOutstockCodes.ForEach(x =>
|
||||||
|
{
|
||||||
|
if (x.id.IsNullOrWhiteSpace())
|
||||||
|
{
|
||||||
|
x.id = SnowflakeIdHelper.NextId();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
isOk = await _update<WmsOutstockD, WmsOutstockCode>(wmsOutstockD, wmsOutstockCodes);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!isOk) throw Oops.Oh(ErrorCode.COM1001);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取库位信息(入库业务) 库位不能为存储库位,出库库位,分拣库位;未锁定
|
/// 根据明细Id获取出入库明细信息
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// returns
|
|
||||||
/// <br/>{
|
|
||||||
/// <br/> location_id:库位Id
|
|
||||||
/// <br/> location_code:库位编号
|
|
||||||
/// <br/> location_name:库位名称
|
|
||||||
/// <br/> layers:楼层
|
|
||||||
/// <br/>}
|
|
||||||
/// </remarks>
|
|
||||||
[HttpGet]
|
|
||||||
public async Task<dynamic> GetLocationInfo()
|
|
||||||
{
|
|
||||||
var locationTypes = new[] { (int)EnumLocationType.存储库位, (int)EnumLocationType.出库库位, (int)EnumLocationType.分拣库位 };
|
|
||||||
var items = await _db.Queryable<BasLocation>().Where(it => it.is_lock == 0 && !locationTypes.Contains(Convert.ToInt32(it.is_type)))
|
|
||||||
.Select(it => new
|
|
||||||
{
|
|
||||||
location_id = it.id,
|
|
||||||
location_code = it.location_code,
|
|
||||||
location_name = it.location_name,
|
|
||||||
layers = it.layers,
|
|
||||||
})
|
|
||||||
.ToListAsync();
|
|
||||||
return items;
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 出库查询目标库位信息,覆盖过滤条件
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="billDId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<dynamic> GetOutStoreDestLocation()
|
public async Task<dynamic> GetInOutStockCodesById([FromQuery] InOutStockDetailQuery input)
|
||||||
{
|
{
|
||||||
var locationTypes = new[] { (int)EnumLocationType.存储库位, (int)EnumLocationType.入库库位 };
|
dynamic result = null;
|
||||||
var items = await _db.Queryable<BasLocation>().Where(it => it.is_lock == 0 && !locationTypes.Contains(Convert.ToInt32(it.is_type)))
|
switch (input.inoutStockType)
|
||||||
.Select(it => new
|
{
|
||||||
{
|
case EnumInOutStockType.In:
|
||||||
location_id = it.id,
|
result = await _db.Queryable<WmsInstockD>()
|
||||||
location_code = it.location_code,
|
.Where(a => a.id == input.bill_d_id)
|
||||||
})
|
.Select(a => new InStockDetailOutput
|
||||||
.ToListAsync();
|
{
|
||||||
return items;
|
bill_id = a.id,
|
||||||
|
unit_id = a.unit_id,
|
||||||
|
code_batch = a.code_batch,
|
||||||
|
warehouse_id = a.warehouse_id,
|
||||||
|
line_status = a.line_status,
|
||||||
|
reason = a.reason,
|
||||||
|
pr_qty = a.pr_qty,
|
||||||
|
qty = a.qty,
|
||||||
|
price = a.price,
|
||||||
|
tax_price = a.tax_price,
|
||||||
|
print_qty = a.print_qty,
|
||||||
|
scan_qty = a.scan_qty,
|
||||||
|
CodeDetails = SqlFunc.Subqueryable<WmsInstockCode>().Where(it => it.bill_d_id == a.id).ToList(),
|
||||||
|
}).ToListAsync();
|
||||||
|
|
||||||
|
break;
|
||||||
|
case EnumInOutStockType.Out:
|
||||||
|
result = await _db.Queryable<WmsOutstockCode>().Where(it => it.bill_d_id == input.bill_d_id).ToListAsync();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// 出库申请-查询载具信息
|
private async Task<bool> _update<T1, T2>(T1 entity, List<T2> entities) where T1 : BaseEntity<string>, new() where T2 : BaseEntity<string>, new()
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpGet]
|
|
||||||
public async Task<dynamic> GetOutStoreLocation()
|
|
||||||
{
|
{
|
||||||
var items = await _db.Queryable<WmsCarryH>().LeftJoin<BasLocation>((a, b) => a.location_id == b.id)
|
var isOk = false;
|
||||||
.Where((a, b) => a.status == 0 && a.is_lock == 0 && Convert.ToInt32(b.is_type) == (int)EnumLocationType.存储库位)
|
try
|
||||||
.Select((a, b) => new
|
{
|
||||||
{
|
await _db.Ado.BeginTranAsync();
|
||||||
carry_id = a.id,
|
isOk = await _db.Updateable(entity).ExecuteCommandHasChangeAsync();
|
||||||
carry_code = a.carry_code,
|
isOk = await _db.Updateable(entities).ExecuteCommandHasChangeAsync();
|
||||||
carry_name = a.carry_name,
|
await _db.Ado.CommitTranAsync();
|
||||||
location_id = b.id,
|
}
|
||||||
location_code = b.location_code,
|
catch (Exception)
|
||||||
location_name = b.location_name,
|
{
|
||||||
})
|
await _db.Ado.RollbackTranAsync();
|
||||||
.ToListAsync();
|
}
|
||||||
return items;
|
return isOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 路径算法
|
/// 路径算法
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user