From 9c8d50022cd60b6c553c472eeb76eddf312e6a45 Mon Sep 17 00:00:00 2001 From: majian <780924089@qq.com> Date: Fri, 19 Jul 2024 15:11:53 +0800 Subject: [PATCH] =?UTF-8?q?8=E7=BA=BF=E5=85=A5=E4=B8=AD=E5=82=A8=E4=BB=93?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Consts/WmsWareHouseConst.cs | 4 + .../MaterialTransferDistributeYCL2ZCCInput.cs | 41 +++ .../Entity/WmsMaterialTransferD.cs | 9 + .../Tnb.WarehouseMgr/WareHouseService.cs | 6 +- .../WmsMaterialTransferService.cs | 302 +++++++++++++----- 5 files changed, 275 insertions(+), 87 deletions(-) create mode 100644 WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MaterialTransferDistributeYCL2ZCCInput.cs diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs index cafef67d..61f3b426 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs @@ -470,6 +470,10 @@ /// public const string ZZCSSX111012 = "32609251845653"; /// + /// 一楼中储仓入库工位 + /// + public const string ZZCSSX011008 = "32609223625237"; + /// /// 料箱id /// public const string LIAOXIANGID = "26037262680357"; diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MaterialTransferDistributeYCL2ZCCInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MaterialTransferDistributeYCL2ZCCInput.cs new file mode 100644 index 00000000..72524f7f --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MaterialTransferDistributeYCL2ZCCInput.cs @@ -0,0 +1,41 @@ +namespace Tnb.WarehouseMgr.Entities.Dto +{ + /// + /// 库房业务更新输入参数 + /// + public class MaterialTransferDistributeYCL2ZCCInput + { + /// + /// 组织ID + /// + public string org_id { get; set; } + /// + /// 创建用户 + /// + public string create_id { get; set; } + + /// + /// 来源单据id + /// + public string? source_id { get; set; } + + /// + /// 载具 + /// + public List? details { get; set; } + + } + + public class MaterialTransferDistributeYCL2ZCCDetailInput + { + /// + /// 载具编码 + /// + public string? carry_code { get; set; } + + /// + /// 物料数量 + /// + public decimal qty { get; set; } + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransferD.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransferD.cs index ccfcfe42..687d5519 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransferD.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransferD.cs @@ -80,6 +80,15 @@ public partial class WmsMaterialTransferD : BaseEntity /// public decimal? yzqty { get; set; } + /// + /// 已下发数量(入库) + /// + public decimal? yxfqty_rk { get; set; } + + /// + /// 已转数量(入库) + /// + public decimal? yzqty_rk { get; set; } /// /// 主表ID diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 4a265303..7b7e8877 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -2296,7 +2296,7 @@ namespace Tnb.WarehouseMgr WmsCarryH wmsCarryH = await _db.Queryable().Where(r => r.id == carry.id).FirstAsync(); // 同步料架下的载具位置 - if (wmsCarryH.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID) + if (wmsCarryH != null && wmsCarryH.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID) { List carrys = _db.Queryable() .InnerJoin((a, b) => a.membercarry_id == b.id).Where((a, b) => a.carry_id == carry.id).Select((a, b) => b).ToList(); @@ -3119,7 +3119,7 @@ namespace Tnb.WarehouseMgr List wmsCarryCodes = _db.Queryable().Where(r => r.carry_id == rackid).ToList(); int move_num = 6; - string[] endlocations = new string[2] { WmsWareHouseConst.ZZCSSX111011, WmsWareHouseConst.ZZCSSX111012 }; + string[] startlocations = new string[2] { WmsWareHouseConst.ZZCSSX111011, WmsWareHouseConst.ZZCSSX111012 }; BasLocation startLocation = null; int index = 0; @@ -3139,7 +3139,7 @@ namespace Tnb.WarehouseMgr // 每6个重新获取一次起点 if (index % move_num == 0) { - startLocation = await _db.Queryable().Where(r => endlocations.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync(); + startLocation = await _db.Queryable().Where(r => startlocations.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync(); } BasLocation endLocation = endLocations[0]; diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs index 5ebb027f..69f0f1db 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs @@ -66,6 +66,7 @@ namespace Tnb.WarehouseMgr private readonly IWmsCarryQueryService _wmsCarryQueryService; public static SemaphoreSlim s_taskDistributeToZCC = new(1); + public static SemaphoreSlim s_taskDistributeYCL2ZCC = new(1); public WmsMaterialTransferService( ISqlSugarRepository repository, @@ -292,7 +293,7 @@ namespace Tnb.WarehouseMgr /// - /// 按托下发 + /// 按托下发(到集中供料或外协) /// /// /// @@ -322,12 +323,12 @@ namespace Tnb.WarehouseMgr WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable().FirstAsync(it => it.id == input.source_id); WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable().FirstAsync(it => it.id == wmsMaterialTransferD.bill_id); - if (wmsMaterialTransferD.yxfqty == wmsMaterialTransferD.qty) + await s_taskExecuteSemaphore.WaitAsync(); + if (wmsMaterialTransferD.yxfqty >= wmsMaterialTransferD.qty) { throw new AppFriendlyException("已下发数量已达到转库数量", 500); } - await s_taskExecuteSemaphore.WaitAsync(); await _db.Ado.BeginTranAsync(); //入库取终点 //出库起点 @@ -432,6 +433,120 @@ namespace Tnb.WarehouseMgr return await ToApiResult(HttpStatusCode.OK, "成功"); } + /// + /// PDA操作(8线到中储仓) + /// + /// + /// + [HttpPost, NonUnify, AllowAnonymous] + public async Task DistributeYCL2ZCC(MaterialTransferDistributeYCL2ZCCInput input) + { + try + { + if (string.IsNullOrEmpty(input.source_id)) + { + throw new AppFriendlyException("来源单据id不可为空", 500); + } + if (input.details.Count == 0) + { + throw new AppFriendlyException("请先扫描料箱", 500); + } + + input.details.ForEach(r => + { + if (string.IsNullOrEmpty(r.carry_code)) + { + throw new AppFriendlyException($"料箱编码不能为空", 500); + } + if (r.qty <= 0) + { + throw new AppFriendlyException($"料箱{r.carry_code}的数量必须大于0", 500); + } + }); + + await s_taskDistributeYCL2ZCC.WaitAsync(); + WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable().FirstAsync(it => it.id == input.source_id); + WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable().FirstAsync(it => it.id == wmsMaterialTransferD.bill_id); + + if (wmsMaterialTransferD.yxfqty_rk >= wmsMaterialTransferD.qty) + { + throw new AppFriendlyException("已下发数量已达到转库数量", 500); + } + + decimal qty = input.details.Sum(r => r.qty); + if (qty > wmsMaterialTransferD.qty - wmsMaterialTransferD.yxfqty_rk) + { + throw new AppFriendlyException($"下发数量{qty}已超过可下发数量{wmsMaterialTransferD.qty - wmsMaterialTransferD.yxfqty_rk}", 500); + } + + await _db.Ado.BeginTranAsync(); + //入库取终点 //出库起点 + InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_ZC_ID, Size = input.details.Count }; + List endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput); + if (endLocations.Count == 0) + { + Logger.LogWarning("没有可用的入库库位"); + throw new AppFriendlyException("没有可用的入库库位", 500); + } + + if (input.details.Count > endLocations.Count) + { + throw new AppFriendlyException("可用的入库库位数量少于扫描的料箱数量", 500); + } + + int index = 0; + + List wmsCarryHs = await _db.Queryable().Where(r => input.details.Select(x => x.carry_code).Contains(r.carry_code)).ToListAsync(); + + foreach (var wmsCarryH in input.details) + { + BasLocation startLocation = await _db.Queryable().Where(r => r.id == WmsWareHouseConst.ZZCSSX011008).FirstAsync(); + + BasLocation endLocation = endLocations[index]; + + CommonCreatePretaskInput commonCreatePretaskInput = new CommonCreatePretaskInput(); + commonCreatePretaskInput.startlocation_id = startLocation.id; + commonCreatePretaskInput.endlocation_id = endLocation.id; + commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID; + commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID; + commonCreatePretaskInput.source_id = input.source_id; + commonCreatePretaskInput.carry_id = wmsCarryHs[index].id; + commonCreatePretaskInput.carry_code = wmsCarryHs[index].carry_code; + commonCreatePretaskInput.isExcuteMission = false; + + Entities.Dto.Outputs.Result res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput, _db); + + if (res.code != HttpStatusCode.OK) + { + Logger.LogInformation($@"生成预任务失败"); + throw new AppFriendlyException($@"生成预任务失败", 500); + } + + index++; + } + + // 更新子表已下发数量 + await _db.Updateable().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + qty).Where(r => r.id == input.source_id).ExecuteCommandAsync(); + + await _db.Ado.CommitTranAsync(); + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + Logger.LogError("【Distribute】" + ex.Message); + Logger.LogError("【Distribute】" + ex.StackTrace); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); + } + finally + { + _ = s_taskDistributeYCL2ZCC.Release(); + InvokeGenPretaskExcute(); + } + + return await ToApiResult(HttpStatusCode.OK, "成功"); + } + + /// /// 按料架下发(缓存仓) /// @@ -770,7 +885,6 @@ namespace Tnb.WarehouseMgr return await ToApiResult(HttpStatusCode.OK, "成功"); } - public override async Task ModifyAsync(WareHouseUpInput input) { if (input == null) @@ -788,10 +902,21 @@ namespace Tnb.WarehouseMgr } await _db.Ado.BeginTranAsync(); - // 更新已转数量 - bool isOk = await _db.Updateable().SetColumns(it => new WmsMaterialTransferD { yzqty = it.yzqty + wmsCarryCodes.Sum(r => r.codeqty) }) - .Where(it => it.id == input.source_id).ExecuteCommandHasChangeAsync(); - + bool isOk = false; + // 入库回写入库数量字段 + if (input.wmsDistaskH.task_type == WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID) + { + // 更新已转数量(入库) + isOk = await _db.Updateable().SetColumns(it => new WmsMaterialTransferD { yzqty_rk = it.yzqty_rk + wmsCarryCodes.Sum(r => r.codeqty) }) + .Where(it => it.id == input.source_id).ExecuteCommandHasChangeAsync(); + } + else + { + // 更新已转数量 + isOk = await _db.Updateable().SetColumns(it => new WmsMaterialTransferD { yzqty = it.yzqty + wmsCarryCodes.Sum(r => r.codeqty) }) + .Where(it => it.id == input.source_id).ExecuteCommandHasChangeAsync(); + } + // 如果所有明细已完成 更新主表状态为完成 WmsMaterialTransferD wmsMaterialTransferd = await _db.Queryable().Where(r => r.id == input.source_id).SingleAsync(); List wmsMaterialTransferDs = _db.Queryable() @@ -814,87 +939,96 @@ namespace Tnb.WarehouseMgr if (input.area_code == "E") await sign(input); - - WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable().SingleAsync(x => x.id == wmsMaterialTransferd.bill_id); - List dList = await _db.Queryable().Where(x => x.bill_id == wmsMaterialTransferd.bill_id).OrderBy(x=>x.id).ToListAsync(); - DictionaryDataEntity unitData = await _db.Queryable() - .LeftJoin((x, y) => x.Id == y.DictionaryTypeId) - .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && y.EnCode == wmsMaterialTransferd.unit_id) - .Select((x,y)=>y) - .FirstAsync(); - List ids = new List(); - ids.Add(wmsMaterialTransfer.create_id); - ids.Add(WmsWareHouseConst.AdministratorOrgId); - ids.Add(wmsMaterialTransfer.warehouse_outstock); - ids.Add(wmsMaterialTransfer.warehouse_instock); - ids.Add(wmsMaterialTransferd.material_id); - if (unitData != null) + // 其它入库 + if (input.wmsDistaskH.task_type == WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID) { - ids.Add(unitData.Id); + } - List erpExtendFields = await _db.Queryable().Where(x=>ids.Contains(x.table_id)).ToListAsync(); - - ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId)); - string erpCreateId = erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.create_id)?.user_id ?? ""; - - List> requestData = new List>(); - Dictionary erpRequestData = new Dictionary(); - string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - erpRequestData.Add("billmaker",erpCreateId); - erpRequestData.Add("cdptid","1001A1100000000JRLI1");// 先写死 - erpRequestData.Add("cdptvid","0001A11000000007GGO8");// 先写死 - erpRequestData.Add("corpoid",erpOrg.corpoid); - erpRequestData.Add("corpvid",erpOrg.corpoid); - erpRequestData.Add("cothercalbodyoid",erpOrg.pk_org); - erpRequestData.Add("cotherwhid",erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.warehouse_instock)?.cotherwhid ?? ""); - erpRequestData.Add("creationtime",nowStr); - erpRequestData.Add("creator",erpCreateId); - erpRequestData.Add("ctrantypeid","0001H11000000000D31W"); - erpRequestData.Add("cwarehouseid",erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.warehouse_outstock)?.cotherwhid ?? ""); - erpRequestData.Add("dbilldate",nowStr); - erpRequestData.Add("dmakedate",nowStr); - erpRequestData.Add("ntotalnum",wmsCarryCodes.Sum(r => r.codeqty)); - erpRequestData.Add("pk_group",erpOrg.pk_group); - erpRequestData.Add("pk_org",erpOrg.pk_org); - erpRequestData.Add("pk_org_v",erpOrg.pk_org_v); - erpRequestData.Add("vbillcode",wmsMaterialTransfer.bill_code); - erpRequestData.Add("vtrantypecode","4I-01");//其他出库 先写死 - List> erpRequestDataDetails = new List>(); - erpRequestDataDetails.Add(new Dictionary() + // 其它出库 { - ["cbodytranstypecode"] = "4I-01", - ["cbodywarehouseid"] = erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.warehouse_outstock)?.cotherwhid ?? "", - ["cmaterialoid"] = erpExtendFields.Find(x=>x.table_id==wmsMaterialTransferd.material_id)?.cmaterialoid ?? "", - ["cmaterialvid"] = erpExtendFields.Find(x=>x.table_id==wmsMaterialTransferd.material_id)?.cmaterialvid ?? "", - ["corpoid"] = erpOrg.corpoid, - ["corpvid"] = erpOrg.corpvid, - ["crowno"] = wmsMaterialTransferd.lineno, - ["csourcebillbid"] = wmsMaterialTransferd.erp_line_pk, - ["csourcebillhid"] = wmsMaterialTransfer.erp_pk, - ["cunitid"] = erpExtendFields.Find(x=>x.table_id==unitData.Id)?.cunitid ?? "", - ["cvendorid"] = "", - ["cvendorvid"] = "", - ["dbizdate"] = nowStr, - ["nnum"] = wmsCarryCodes.Sum(r => r.codeqty), - ["nshouldnum"] = wmsMaterialTransferd.qty, - ["pk_group"] = erpOrg.pk_group, - ["pk_org"] = erpOrg.pk_org, - ["pk_org_v"] = erpOrg.pk_org_v, - ["vbatchcode"] = wmsMaterialTransferd.code_batch, - }); - erpRequestData.Add("dtls",erpRequestDataDetails); - requestData.Add(erpRequestData); + WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable().SingleAsync(x => x.id == wmsMaterialTransferd.bill_id); + List dList = await _db.Queryable().Where(x => x.bill_id == wmsMaterialTransferd.bill_id).OrderBy(x => x.id).ToListAsync(); + DictionaryDataEntity unitData = await _db.Queryable() + .LeftJoin((x, y) => x.Id == y.DictionaryTypeId) + .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && y.EnCode == wmsMaterialTransferd.unit_id) + .Select((x, y) => y) + .FirstAsync(); + List ids = new List(); + ids.Add(wmsMaterialTransfer.create_id); + ids.Add(WmsWareHouseConst.AdministratorOrgId); + ids.Add(wmsMaterialTransfer.warehouse_outstock); + ids.Add(wmsMaterialTransfer.warehouse_instock); + ids.Add(wmsMaterialTransferd.material_id); + if (unitData != null) + { + ids.Add(unitData.Id); + } + List erpExtendFields = await _db.Queryable().Where(x => ids.Contains(x.table_id)).ToListAsync(); - ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord(); - thirdWebapiRecord.id = SnowflakeIdHelper.NextId(); - thirdWebapiRecord.third_name = WmsWareHouseConst.BIP; - thirdWebapiRecord.name = "其它出库"; - thirdWebapiRecord.method = "POST"; - thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN+"uapws/rest/generalout/save"; - thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData); - thirdWebapiRecord.create_time = DateTime.Now; + ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId)); + string erpCreateId = erpExtendFields.Find(x => x.table_id == wmsMaterialTransfer.create_id)?.user_id ?? ""; - await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync(); + List> requestData = new List>(); + Dictionary erpRequestData = new Dictionary(); + string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + erpRequestData.Add("billmaker", erpCreateId); + erpRequestData.Add("cdptid", "1001A1100000000JRLI1");// 先写死 + erpRequestData.Add("cdptvid", "0001A11000000007GGO8");// 先写死 + erpRequestData.Add("corpoid", erpOrg.corpoid); + erpRequestData.Add("corpvid", erpOrg.corpoid); + erpRequestData.Add("cothercalbodyoid", erpOrg.pk_org); + erpRequestData.Add("cotherwhid", erpExtendFields.Find(x => x.table_id == wmsMaterialTransfer.warehouse_instock)?.cotherwhid ?? ""); + erpRequestData.Add("creationtime", nowStr); + erpRequestData.Add("creator", erpCreateId); + erpRequestData.Add("ctrantypeid", "0001H11000000000D31W"); + erpRequestData.Add("cwarehouseid", erpExtendFields.Find(x => x.table_id == wmsMaterialTransfer.warehouse_outstock)?.cotherwhid ?? ""); + erpRequestData.Add("dbilldate", nowStr); + erpRequestData.Add("dmakedate", nowStr); + erpRequestData.Add("ntotalnum", wmsCarryCodes.Sum(r => r.codeqty)); + erpRequestData.Add("pk_group", erpOrg.pk_group); + erpRequestData.Add("pk_org", erpOrg.pk_org); + erpRequestData.Add("pk_org_v", erpOrg.pk_org_v); + erpRequestData.Add("vbillcode", wmsMaterialTransfer.bill_code); + erpRequestData.Add("vtrantypecode", "4I-01");//其他出库 先写死 + List> erpRequestDataDetails = new List>(); + erpRequestDataDetails.Add(new Dictionary() + { + ["cbodytranstypecode"] = "4I-01", + ["cbodywarehouseid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransfer.warehouse_outstock)?.cotherwhid ?? "", + ["cmaterialoid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransferd.material_id)?.cmaterialoid ?? "", + ["cmaterialvid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransferd.material_id)?.cmaterialvid ?? "", + ["corpoid"] = erpOrg.corpoid, + ["corpvid"] = erpOrg.corpvid, + ["crowno"] = wmsMaterialTransferd.lineno, + ["csourcebillbid"] = wmsMaterialTransferd.erp_line_pk, + ["csourcebillhid"] = wmsMaterialTransfer.erp_pk, + ["cunitid"] = erpExtendFields.Find(x => x.table_id == unitData.Id)?.cunitid ?? "", + ["cvendorid"] = "", + ["cvendorvid"] = "", + ["dbizdate"] = nowStr, + ["nnum"] = wmsCarryCodes.Sum(r => r.codeqty), + ["nshouldnum"] = wmsMaterialTransferd.qty, + ["pk_group"] = erpOrg.pk_group, + ["pk_org"] = erpOrg.pk_org, + ["pk_org_v"] = erpOrg.pk_org_v, + ["vbatchcode"] = wmsMaterialTransferd.code_batch, + }); + erpRequestData.Add("dtls", erpRequestDataDetails); + requestData.Add(erpRequestData); + + ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord(); + thirdWebapiRecord.id = SnowflakeIdHelper.NextId(); + thirdWebapiRecord.third_name = WmsWareHouseConst.BIP; + thirdWebapiRecord.name = "其它出库"; + thirdWebapiRecord.method = "POST"; + thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/generalout/save"; + thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData); + thirdWebapiRecord.create_time = DateTime.Now; + + await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync(); + } + + await _db.Ado.CommitTranAsync(); }