Files
tnb.server/WarehouseMgr/Tnb.WarehouseMgr/WmsOutsourceService.cs

499 lines
28 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.Text;
using System.Text.RegularExpressions;
using COSXML.Model.Tag;
using JNPF.Common.Contracts;
using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Enums;
using JNPF.Common.Extension;
using JNPF.Common.Security;
using JNPF.FriendlyException;
using JNPF.Logging;
using JNPF.Systems.Entitys.System;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys;
using JNPF.VisualDev.Interfaces;
using Mapster;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using SqlSugar;
using Tnb.BasicData;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Interfaces;
using Tnb.Common.Utils;
using Tnb.ProductionMgr.Entities.Entity;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Consts;
using Tnb.WarehouseMgr.Entities.Dto;
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
using Tnb.WarehouseMgr.Entities.Dto.Outputs;
using Tnb.WarehouseMgr.Entities.Entity;
using Tnb.WarehouseMgr.Entities.Enums;
using Tnb.WarehouseMgr.Interfaces;
namespace Tnb.WarehouseMgr
{
/// <summary>
/// 委外收货订单
/// </summary>
[OverideVisualDev(ModuleConsts.MODULE_WMSOUTSOURCE_ID)]
public class WmsOutsourceService : BaseWareHouseService
{
private const string ModuleId = ModuleConsts.MODULE_WMSOUTSOURCE_ID;
private readonly ISqlSugarClient _db;
private readonly IUserManager _userManager;
private readonly IBillRullService _billRullService;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
private readonly IWareHouseService _wareHouseService;
private readonly IThirdApiRecordService _thirdApiRecordService;
public WmsOutsourceService(
ISqlSugarRepository<WmsOutsourceH> repository,
IUserManager userManager,
IBillRullService billRullService,
IRunService runService,
IThirdApiRecordService thirdApiRecordService,
IVisualDevService visualDevService, IWareHouseService wareHouseService)
{
_db = repository.AsSugarClient();
_userManager = userManager;
_billRullService = billRullService;
_runService = runService;
_visualDevService = visualDevService;
_wareHouseService = wareHouseService;
_thirdApiRecordService = thirdApiRecordService;
OverideFuncs.CreateAsync += Create;
OverideFuncs.DeleteAsync = Delete;
}
[HttpPost]
public async Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput)
{
string outsource_order = visualDevModelDataCrInput.data["erp_bill_code"].ToString();
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
await _runService.Create(templateEntity, visualDevModelDataCrInput);
string id = visualDevModelDataCrInput.data["ReturnIdentity"].ToString();
string type = "";
if (string.IsNullOrEmpty(outsource_order))
{
await _db.Updateable<WmsOutsourceH>().SetColumns(r => r.make_method == "自制").Where(r => r.id == id).ExecuteCommandAsync();
}
else
{
await _db.Updateable<WmsOutsourceH>().SetColumns(r => r.make_method == "同步").Where(r => r.id == id).ExecuteCommandAsync();
}
await _db.Updateable<WmsOutsourceD>().SetColumns(r => r.qc_res == "await").Where(r => r.fk_wms_outsource_order_id == id).ExecuteCommandAsync();
return "保存成功";
}
// List<WmsDistaskH> wmsDistaskH = await _db.Queryable<WmsDistaskH>().Where(r => r.source_id == id).ToListAsync();
private async Task Delete(string id)
{
await _db.Ado.BeginTranAsync();
WmsOutsourceH wmsOutsourceH = await _db.Queryable<WmsOutsourceH>().Where(r => r.id == id).FirstAsync();
if (wmsOutsourceH != null)
{
_ = await _db.Deleteable(wmsOutsourceH).ExecuteCommandAsync();
List<WmsOutsourceD> wmsoutsourceDs = await _db.Queryable<WmsOutsourceD>().Where(r => r.fk_wms_outsource_order_id == id).ToListAsync();
Logger.Information($"删除委外收货单{wmsOutsourceH.bill_code} 收货明细{wmsoutsourceDs.Count}条");
foreach (WmsOutsourceD wmsOutsourceD in wmsoutsourceDs)
{
WmsOutsourceOrderD wmsOutsourceOrderD = await _db.Queryable<WmsOutsourceOrderD>().Where(r => r.erp_line_pk == wmsOutsourceD.erp_outsource_order_d_pk).FirstAsync();
if (wmsOutsourceOrderD != null)
{
Logger.Information($"委外收货单{wmsOutsourceH.bill_code} 收货明细id{wmsOutsourceOrderD.id} 删除后回退委外订单明细id{wmsOutsourceOrderD.id}已到货数量 {wmsOutsourceOrderD.actual_quantity} -> {wmsOutsourceOrderD.actual_quantity - wmsOutsourceD.outsource_arriveqty}");
wmsOutsourceOrderD.actual_quantity -= wmsOutsourceD.actual_quantity;
await _db.Updateable(wmsOutsourceOrderD).UpdateColumns(r => r.actual_quantity).ExecuteCommandAsync();
}
}
_ = await _db.Deleteable(wmsoutsourceDs).ExecuteCommandAsync();
}
await _db.Ado.CommitTranAsync();
}
public override async Task ModifyAsync(WareHouseUpInput input)
{
if (input == null)
{
throw new ArgumentNullException(nameof(input));
}
//if (!isOk)
//{
// throw Oops.Oh(ErrorCode.COM1001);
//}
}
[HttpPost]
public async Task BarCodePrint(BarCodeInput input)
{
if (input == null)
{
throw new AppFriendlyException(nameof(input), 500);
}
List<string> barcodes = new();
try
{
await _db.Ado.BeginTranAsync();
//if (_db.Queryable<WmsTempCode>().Where(it => input.BillId == it.require_id).Any())
//{
// throw new AppFriendlyException("条码已生成", 500);
//};
WmsOutsourceD WmsOutsourceD = await _db.Queryable<WmsOutsourceD>().Where(it => input.BillId == it.id).FirstAsync();
WmsOutsourceH WmsOutsourceH = await _db.Queryable<WmsOutsourceH>().Where(it => WmsOutsourceD.fk_wms_outsource_order_id == it.id).FirstAsync();
if (WmsOutsourceD.actual_quantity == 0)
{
throw new AppFriendlyException("到货数量为0没有物料可以打印", 500);
};
List<WmsTempCode> wmsTempCodes = new();
decimal? minPacking = (await _db.Queryable<BasMaterial>().FirstAsync(it => it.code == WmsOutsourceD.matcode))?.minpacking;
if (!minPacking.HasValue || minPacking.Value <= 0)
{
throw new AppFriendlyException($"物料{WmsOutsourceD.matcode} 包装数量为空或者等于0无法打印", 500);
};
int codeNum = 0;
if (minPacking.HasValue && minPacking.Value > 0)
{
codeNum = input.barcode_qty;
decimal qty = (int)(codeNum * minPacking);
decimal mod = 0;
decimal extra = (qty - WmsOutsourceD.actual_quantity).Value;
if (extra > 0 && extra < minPacking)
{
mod = minPacking.Value - extra;
}
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.code == WmsOutsourceD.matcode).FirstAsync();
for (int j = 0; j < codeNum; j++)
{
int index = j + 1;
//string code = $"{WmsPurchaseD.material_code}-{WmsPurchaseD.code_batch}-{index.ToString().PadLeft(4, '0')}";
// 变更加流水号
//string watercode = await _billRullService.GetBillNumber(WmsWareHouseConst.WMS_OUTSOURCE_MAT_ENCODE);
//string code = $"WWSH{watercode}";
string code_batch = string.IsNullOrEmpty(WmsOutsourceD.code_batch) ? "" : WmsOutsourceD.code_batch;
string watercode = await _wareHouseService.CreateCodeRules("", WmsOutsourceD.matcode + code_batch, 4);
string code = $"{WmsOutsourceD.matcode}-{WmsOutsourceD.code_batch}-{watercode}";
WmsTempCode barCode = new()
{
material_id = basMaterial.id,
material_code = WmsOutsourceD.matcode,
barcode = code,
code_batch = WmsOutsourceD.code_batch,
material_specification = basMaterial.material_specification,
codeqty = minPacking,
unit_id = WmsOutsourceD.unit,
is_lock = 0,
is_end = 0,
require_id = WmsOutsourceD.id,
require_code = WmsOutsourceH.bill_code,
create_id = _userManager.UserId,
create_time = DateTime.Now,
required_type = WmsWareHouseConst.BILLTYPE_OUTSOURCE_ID,
material_name = basMaterial.name
};
if (index == codeNum)
barCode.codeqty = mod == 0 ? minPacking : mod;
wmsTempCodes.Add(barCode);
}
await _db.Insertable(wmsTempCodes).ExecuteCommandAsync();
}
await _db.Ado.CommitTranAsync();
barcodes.AddRange(wmsTempCodes.Select(p => p.barcode).ToList());
//if (barcodes?.Count > 0)
//{
// var ip = _db.Queryable<BasFactoryConfig>().Where(p => p.key == "printerip").FirstAsync().Result.value;
// base.BarCodePrint(barcodes, 1, ip);
//}
}
catch (Exception ex)
{
Logger.LogError($"【BarCodePrint】" + ex.Message);
Logger.LogError($"【BarCodePrint】" + ex.StackTrace);
await _db.Ado.RollbackTranAsync();
throw;
}
}
/// <summary>
/// 采购收货
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> Purchase(OutsourceEditInput input)
{
var blFlag = true;
try
{
WmsOutsourceH wmsOutsourceH = await _db.Queryable<WmsOutsourceH>().Where(r => r.bill_code == input.bill_code).FirstAsync();
if (wmsOutsourceH.make_method == "自制")
{
throw Oops.Bah("自制委外收货单不能操作此按钮");
}
await _db.Ado.BeginTranAsync();
WmsInstockH? instock = null;
var purchaseDs = input.details;
// foreach (var item in input.details)
// {
// await _db.Updateable<WmsOutsourceOrderD>()
// .SetColumns(x => x.actual_quantity == x.actual_quantity + item.bind_qty)
// .Where(x => x.id == item.outsource_order_d_id)
// .ExecuteCommandAsync();
// }
List<WmsInstockD> instockDs = new();
if (purchaseDs?.Count > 0)
{
instock = input.Adapt<WmsInstockH>();
instock.id = SnowflakeIdHelper.NextId();
instock.bill_code = await _billRullService.GetBillNumber(WmsWareHouseConst.WMS_INSTOCK_ENCODE);
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();
foreach (var item in purchaseDs)
{
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(x=>x.code==item.matcode).FirstAsync();
item.matcode_id = basMaterial?.id ?? item.matcode_id;
WmsInstockD instockD = new WmsInstockD();
instockD.id = SnowflakeIdHelper.NextId();
instockD.bill_id = instock.id;
instockD.line_status = WmsWareHouseConst.BILLSTATUS_ADD_ID;
instockD.material_id = item.matcode_id;
instockD.material_code = item.matcode;
instockD.material_specification = item.matspecification;
instockD.unit_id = item.unit;
instockD.pr_qty = item.outsource_quantity;
instockD.qty = item.outsource_arriveqty.Value;
instockD.code_batch = item.code_batch;
instockD.create_id = _userManager.UserId;
instockD.create_time = DateTime.Now;
instockD.org_id = _userManager.User.OrganizeId;
instockDs.Add(instockD);
}
await _db.Insertable(instockDs).ExecuteCommandAsync();
List<WmsOutsourceD> dList = await _db.Queryable<WmsOutsourceD>().Where(x => x.fk_wms_outsource_order_id == wmsOutsourceH.id).OrderBy(x => x.id).ToListAsync();
List<WmsOutsourceOrderD> wmsOutsourceOrderDs = await _db.Queryable<WmsOutsourceOrderD>().Where(r => dList.Select(x => x.erp_outsource_order_d_pk).Contains(r.erp_line_pk)).OrderBy(x => x.id).ToListAsync();
foreach (var item in dList)
{
decimal? outsource_arriveqty = input.details.Where(r => r.id == item.id).ToList()[0].outsource_arriveqty;
item.actual_quantity += outsource_arriveqty;
if (item.actual_quantity > item.outsource_quantity)
{
throw Oops.Bah($"委外收货单明细行物料{item.matcode} 批次{item.code_batch} 到货数量不能超过采购数量!");
}
WmsOutsourceOrderD wmsOutsourceOrderD = wmsOutsourceOrderDs.Where(r => r.erp_line_pk == item.erp_outsource_order_d_pk).First();
wmsOutsourceOrderD.actual_quantity += outsource_arriveqty;
if (wmsOutsourceOrderD.actual_quantity > wmsOutsourceOrderD.outsource_quantity)
{
throw Oops.Bah($"采购订单明细行物料{wmsOutsourceOrderD.matcode} 批次{wmsOutsourceOrderD.code_batch} 到货数量不能超过采购数量!");
}
}
await _db.Updateable(dList).UpdateColumns(r => r.actual_quantity).ExecuteCommandAsync();
await _db.Updateable(wmsOutsourceOrderDs).UpdateColumns(r => r.actual_quantity).ExecuteCommandAsync();
List<String> materialIds = purchaseDs.Select(x => x.matcode_id).Distinct().ToList();
List<String> unitCodes = purchaseDs.Select(x => x.unit).Distinct().ToList();
List<DictionaryDataEntity> unitDatas = await _db.Queryable<DictionaryTypeEntity>()
.LeftJoin<DictionaryDataEntity>((x, y) => x.Id == y.DictionaryTypeId)
.Where((x, y) => x.EnCode == DictConst.MeasurementUnit && (unitCodes.Contains(y.EnCode) || unitCodes.Contains(y.Id)))
.Select((x, y) => y)
.ToListAsync();
DictionaryDataEntity tranData = await _db.Queryable<DictionaryDataEntity>().Where(x=>x.DictionaryTypeId=="25043925951909" && x.EnCode==wmsOutsourceH.vtrantypecode).FirstAsync();
List<WmsErpWarehouserelaH> erpWarehouserelaHs = await _db.Queryable<WmsErpWarehouserelaH>().Where(x => x.id != null).ToListAsync();
WmsOutsourceOrderH wmsOutsourceOrderH = await _db.Queryable<WmsOutsourceOrderH>().SingleAsync(x => x.id == wmsOutsourceH.erp_bill_code);
//自制的不调erp接口
if (wmsOutsourceOrderH!=null && !string.IsNullOrEmpty(wmsOutsourceOrderH.erp_bill_code))
{
List<string> ids = new List<string>();
ids.Add(_userManager.UserId);
// ids.Add(WmsWareHouseConst.AdministratorUserId);
ids.Add(WmsWareHouseConst.AdministratorOrgId);
ids.AddRange(materialIds);
ids.Add(wmsOutsourceOrderH.supplier_id);
ids.Add(tranData.Id);
ids.AddRange(unitDatas.Select(x => x.Id).ToList());
string userId = _userManager.UserId ?? WmsWareHouseConst.AdministratorUserId;
ids.Add(userId);
List<ErpExtendField> erpExtendFields = await _db.Queryable<ErpExtendField>().Where(x => ids.Contains(x.table_id)).ToListAsync();
// string erpCreateId = erpExtendFields.Find(x=>x.table_id==userId)?.user_id ?? WmsWareHouseConst.ERPUSERID;
string erpCreateId = WmsWareHouseConst.ERPUSERID;
ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (WmsWareHouseConst.AdministratorOrgId));
string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
List<Dictionary<string, object>> requestData = new List<Dictionary<string, object>>();
Dictionary<string, object> erpRequestData = new Dictionary<string, object>();
erpRequestData.Add("approver", erpCreateId);
erpRequestData.Add("billmaker", erpCreateId);
erpRequestData.Add("creationtime", nowStr);
erpRequestData.Add("creator", erpCreateId);
erpRequestData.Add("dbilldate", wmsOutsourceH.create_time.ToString("yyyy-MM-dd HH:mm:ss"));
erpRequestData.Add("dmakedate", nowStr);
erpRequestData.Add("ntotalastnum", purchaseDs.Sum(x => x.outsource_arriveqty));
erpRequestData.Add("pk_arriveorder", null);
// erpRequestData.Add("pk_dept","1001A1100000001JFOPQ");
// erpRequestData.Add("pk_dept_v","0001A1100000000AOMIQ");
erpRequestData.Add("Pk_receivepsndoc", erpCreateId);
erpRequestData.Add("pk_org", erpOrg.pk_org);
erpRequestData.Add("pk_org_v", erpOrg.pk_org_v);
erpRequestData.Add("pk_group", erpOrg.pk_group);
erpRequestData.Add("pk_pupsndoc", null);
erpRequestData.Add("csourceid", wmsOutsourceOrderH?.erp_pk);
erpRequestData.Add("pk_purchaseorg", erpOrg.pk_org);
erpRequestData.Add("pk_purchaseorg_v", erpOrg.pk_org_v);
erpRequestData.Add("pk_supplier", erpExtendFields.Find(x => x.table_id == wmsOutsourceH.supplier_id)?.supplier_id);//先写死
erpRequestData.Add("pk_supplier_v", erpExtendFields.Find(x => x.table_id == wmsOutsourceH.supplier_id)?.supplier_vid);//先写死
erpRequestData.Add("vbillcode", wmsOutsourceH.bill_code);
erpRequestData.Add("vmemo", wmsOutsourceH.remark);
erpRequestData.Add("vtrantypecode", wmsOutsourceH.vtrantypecode);
erpRequestData.Add("ctrantypeid", erpExtendFields.Find(x=>x.table_id==tranData.Id)?.transaction_type_id);
erpRequestData.Add("isType", 1);
List<Dictionary<string, object>> erpRequestDataDetails = new List<Dictionary<string, object>>();
foreach (WmsOutsourceD item in dList)
{
//由于框架有bug导致无法获取到物料的id只能获取到物料的编号所以暂时手动通过物料编码查找物料id --2024-10-16
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(x => x.code == item.matcode && x.deleted==null).FirstAsync();
erpRequestDataDetails.Add(new Dictionary<string, object>()
{
["castunitid"] = erpExtendFields.Find(x => x.table_id == (unitDatas.Find(x => x.EnCode == item.unit || x.Id == item.unit)?.Id ?? ""))?.cunitid,
["cfirstbid"] = wmsOutsourceOrderH?.erp_pk,
["cfirstid"] = item.erp_outsource_order_d_pk,
["cfirsttypecode"] = null,
["crececountryid"] = "0001Z010000000079UJJ",
["crowno"] = item.erp_outsource_order_d_lineno,
["csendcountryid"] = "0001Z010000000079UJJ",
["csourcetypecode"] = null,
["ctaxcountryid"] = "0001Z010000000079UJJ",
["cunitid"] = erpExtendFields.Find(x => x.table_id == (unitDatas.Find(x => x.EnCode == item.unit || x.Id == item.unit)?.Id ?? ""))?.cunitid,
["dbilldate"] = wmsOutsourceH.create_time.ToString("yyyy-MM-dd HH:mm:ss"),
["dplanreceivedate"] = wmsOutsourceH.create_time.ToString("yyyy-MM-dd HH:mm:ss"),
["dproducedate"] = wmsOutsourceH.create_time.ToString("yyyy-MM-dd HH:mm:ss"),
// ["fbuysellflag"] = 2,
["fproductclass"] = 1,
// ["naccumchecknum"] = 0,
// ["nastnum"] = item.purchase_arriveqty,
["nnum"] = item.outsource_arriveqty,
// ["nplanastnum"] = 0,
["nplannum"] = item.outsource_quantity,
["pk_apfinanceorg"] = erpOrg.corpoid,
["pk_apfinanceorg_v"] = erpOrg.corpvid,
["pk_arriveorder"] = null,
["pk_arriveorder_b"] = null,
["pk_group"] = erpOrg.pk_group,
//由于框架有bug导致无法获取到物料的id只能获取到物料的编号所以暂时手动通过物料编码查找物料id --2024-10-16
//["pk_material"] = erpExtendFields.Find(x => x.table_id == item.matcode_id)?.cmaterialoid,
["pk_material"] = basMaterial == null ? null : erpExtendFields.Find(x => x.table_id == basMaterial.id)?.cmaterialoid,
["pk_order"] = wmsOutsourceOrderH?.erp_pk,
["pk_order_b"] = item.erp_outsource_order_d_pk,
["pk_org"] = erpOrg.pk_org,
["pk_org_v"] = erpOrg.pk_org_v,
["pk_psfinanceorg"] = erpOrg.corpoid,
["pk_psfinanceorg_v"] = erpOrg.corpvid,
// ["pk_receivestore"] = erpExtendFields.Find(x=>x.table_id==purchase.warehouse_id)?.cotherwhid ?? "",
// ["pk_receivestore"] = erpWarehouserelaHs.Find(x => x.erp_warehousecode == item.erp_wh_type)?.erp_warehouseid ?? "",
["pk_receivestore"] = item.erp_wh_type,
["pk_reqstoorg"] = erpOrg.pk_org,
["pk_reqstoorg_v"] = erpOrg.pk_org_v,
["pk_srcmaterial"] = basMaterial == null ? null : erpExtendFields.Find(x => x.table_id == basMaterial.id)?.cmaterialoid,
["vbatchcode"] = item.code_batch,
["Vfree1"] = item.code_batch,
["mes_detail_id"] = item.id,
// ["bpresent"] = item.gift == 1,
["csourceid"] = wmsOutsourceOrderH?.erp_pk,
["vsourcecode"] = wmsOutsourceOrderH.erp_bill_code,
["csourcebid"] = item.erp_outsource_order_d_pk,
["isType"] = 1,
["csourcetypecode"] = null,
["vsourcerowno"] = null,
["vsourcetrantype"] = null,
["cproductorid"] = erpExtendFields.Find(x => x.table_id == (unitDatas.Find(x => x.EnCode == item.unit || x.Id == item.unit)?.Id ?? ""))?.cunitid,
});
}
erpRequestData.Add("dtls", erpRequestDataDetails);
requestData.Add(erpRequestData);
BasFactoryConfig config = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
thirdWebapiRecord.name = "委外到货";
thirdWebapiRecord.method = "POST";
thirdWebapiRecord.url = config.value + "uapws/rest/purarrvial/save";
//thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/purarrvial/save";
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(erpRequestData);
thirdWebapiRecord.create_time = DateTime.Now;
thirdWebapiRecord.remark = $"【WmsOutsourceService Purchase】erp委外订单:{wmsOutsourceOrderH.erp_bill_code}";
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
if (callErp.value == "1")
{
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
}
}
}
//通知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);
}
}
}