客户联系人添加默认标识;编辑订单关系人时处理客户联系人

usertest
cjy 2 months ago
parent 2e9cc49270
commit fc753d0cf2

@ -2,6 +2,7 @@ using System.Runtime.Serialization;
using DS.Module.Core;
using DS.Module.Core.Extensions;
using FluentValidation;
using SqlSugar;
namespace DS.WMS.Core.Info.Dtos;
@ -74,8 +75,11 @@ public class ClientContactReq
/// <summary>
/// Desc:是否为操作
/// </summary>
public bool IsOperator { get; set; }
public bool IsOperator { get; set; }
/// <summary>
/// Desc:是否默认
/// </summary>
public bool IsDefault { get; set; }
/// <summary>
/// Desc:是否为财务
/// </summary>

@ -69,7 +69,10 @@ public class ClientContactRes
/// Desc:QQ
/// </summary>
public string QQ { get; set; }
/// <summary>
/// Desc:是否默认
/// </summary>
public bool IsDefault { get; set; }
/// <summary>
/// Desc:是否为操作
/// </summary>

@ -69,6 +69,12 @@ public class InfoClientContact : BaseModelV2<long>
[SugarColumn(ColumnDescription = "QQ", Length = 50, IsNullable = true)]
public string? QQ { get; set; }
/// <summary>
/// Desc:是否默认
/// </summary>
[SugarColumn(ColumnDescription = "是否默认", DefaultValue = "0")]
public bool IsDefault { get; set; }
/// <summary>
/// Desc:是否为操作
/// </summary>

@ -25,7 +25,7 @@ namespace DS.WMS.Core.Op.Interface
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
DataResult EditBusinessOrderContact(BusinessOrderContactReq model);
Task<DataResult> EditBusinessOrderContact(BusinessOrderContactReq model);
/// <summary>
/// 获取详情

@ -10,6 +10,7 @@ using DS.WMS.Core.Map.Entity;
using DS.WMS.Core.Op.Dtos;
using DS.WMS.Core.Op.Entity;
using DS.WMS.Core.Op.Interface;
using DS.WMS.Core.TaskPlat.Dtos;
using Mapster;
using Microsoft.Extensions.DependencyInjection;
using NLog;
@ -51,31 +52,87 @@ namespace DS.WMS.Core.Op.Method
return data;
}
public DataResult EditBusinessOrderContact(BusinessOrderContactReq req)
public async Task<DataResult> EditBusinessOrderContact(BusinessOrderContactReq req)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
if (req.Id == 0)
{
var data = req.Adapt<BusinessOrderContact>();
var entity = tenantDb.Insertable(data).ExecuteReturnEntity();
return DataResult.Successed("添加成功!", entity.Id, MultiLanguageConst.DataCreateSuccess);
var entity = await tenantDb.Insertable(data).ExecuteReturnEntityAsync();
// 处理客户联系人
DealClientContact(req, tenantDb);
return await Task.FromResult(DataResult.Successed("添加成功!", entity.Id, MultiLanguageConst.DataCreateSuccess));
}
else
{
var info = tenantDb.Queryable<BusinessOrderContact>().Where(x => x.Id == req.Id).First();
var info = await tenantDb.Queryable<BusinessOrderContact>().Where(x => x.Id == req.Id).FirstAsync();
info = req.Adapt(info);
tenantDb.Updateable(info).IgnoreColumns(ignoreAllNullColumns: true).IgnoreColumns(it => new
await tenantDb.Updateable(info).IgnoreColumns(ignoreAllNullColumns: true).IgnoreColumns(it => new
{
it.BusinessId,
}).ExecuteCommand();
}).ExecuteCommandAsync();
// 处理客户联系人
DealClientContact(req, tenantDb);
return await Task.FromResult(DataResult.Successed("更新成功!", MultiLanguageConst.DataUpdateSuccess));
}
}
/// <summary>
/// 处理客户联系人
/// </summary>
/// <param name="req"></param>
/// <param name="tenantDb"></param>
private async void DealClientContact(BusinessOrderContactReq req, SqlSugarScopeProvider tenantDb)
{
if (req.CustomerContactId == 0)
{
var data = new InfoClientContact()
{
ClientId = req.CustomerId,
Name = req.Name,
Email = req.Email,
Tel = req.Tel,
Note = req.Note,
};
await tenantDb.Insertable(data).ExecuteCommandAsync();
}
else
{
var contact = await tenantDb.Queryable<InfoClientContact>().Where(x => x.Id == req.CustomerContactId).FirstAsync();
if (contact.IsNotNull())
{
return DataResult.Successed("更新成功!", MultiLanguageConst.DataUpdateSuccess);
if (contact.Name == req.Name.Trim())
{
contact.Email = req.Email;
contact.Tel = req.Tel;
await tenantDb.Updateable(contact).ExecuteCommandAsync();
}
else
{
var data = new InfoClientContact()
{
ClientId = req.CustomerId,
Name = req.Name,
Email = req.Email,
Tel = req.Tel,
Note = req.Note,
};
await tenantDb.Insertable(data).ExecuteCommandAsync();
}
}
}
}
public DataResult<BusinessOrderContactRes> GetBusinessOrderContactInfo(string id)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);

@ -434,7 +434,7 @@ public partial class SeaExportService : ISeaExportService
var addList = new List<BusinessOrderContact>();
if (seaExport.CustomerId != 0)
{
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.CustomerId && x.IsOperator == true).First();
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.CustomerId && x.IsDefault == true).First();
if (defaultContact.IsNotNull())
{
if (!contactLists.Where(x => x.BusinessType == BusinessType.OceanShippingExport && x.CustomerType == "controller" && x.Name == defaultContact.Name).Any())
@ -456,7 +456,7 @@ public partial class SeaExportService : ISeaExportService
}
if (seaExport.TruckerId != 0)
{
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.TruckerId && x.IsOperator == true).First();
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.TruckerId && x.IsDefault == true).First();
if (defaultContact.IsNotNull())
{
if (!contactLists.Where(x => x.BusinessType == BusinessType.OceanShippingExport && x.CustomerType == "truck" && x.Name == defaultContact.Name).Any())
@ -478,7 +478,7 @@ public partial class SeaExportService : ISeaExportService
}
if (seaExport.YardId != 0)
{
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.YardId && x.IsOperator == true).First();
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.YardId && x.IsDefault == true).First();
if (defaultContact.IsNotNull())
{
if (!contactLists.Where(x => x.BusinessType == BusinessType.OceanShippingExport && x.CustomerType == "yard" && x.Name == defaultContact.Name).Any())
@ -500,7 +500,7 @@ public partial class SeaExportService : ISeaExportService
}
if (seaExport.ForwarderId != 0)
{
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.ForwarderId && x.IsOperator == true).First();
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.ForwarderId && x.IsDefault == true).First();
if (defaultContact.IsNotNull())
{
if (!contactLists.Where(x => x.BusinessType == BusinessType.OceanShippingExport && x.CustomerType == "booking" && x.Name == defaultContact.Name).Any())

@ -46,9 +46,9 @@ public class BusinessOrderContactController : ApiController
/// <returns></returns>
[HttpPost]
[Route("EditBusinessOrderContact")]
public DataResult EditBusinessOrderContact([FromBody] BusinessOrderContactReq model)
public async Task<DataResult> EditBusinessOrderContact([FromBody] BusinessOrderContactReq model)
{
var res = _invokeService.EditBusinessOrderContact(model);
var res = await _invokeService.EditBusinessOrderContact(model);
return res;
}

Loading…
Cancel
Save