jianghaiqing 1 month ago
commit ded558b3b9

@ -384,6 +384,22 @@ public class SaasDbService : ISaasDbService
}
};
//dbProvider.Aop.OnExecutingChangeSql = (s, p) =>
//{
// foreach (var item in p)
// {
// if (item.ParameterName.Contains("'("))
// {
// var oldName = item.ParameterName;
// //重点看这儿,把参数名变成正常的名字
// item.ParameterName = item.ParameterName
// .Replace("'(", "(")
// .Replace(")'", ")");
// s = s.Replace(oldName, item.ParameterName);
// };
// }
// return new KeyValuePair<string, SugarParameter[]>(s, p);
//};
//var templist = dbProvider.QueryFilter.GeFilterList;
//Console.WriteLine("当前过滤器:"+ JsonConvert.SerializeObject(templist));
//全局过滤租户Id

@ -1,7 +1,5 @@
using DS.Module.Core;
using DS.WMS.Core.Code.Entity;
using FluentValidation;
using SqlSugar;
namespace DS.WMS.Core.Code.Dtos;
@ -73,6 +71,11 @@ public class CodeCarrierReq
/// 备注
/// </summary>
public string Note { get; set; } = "";
/// <summary>
/// 是否冻结
/// </summary>
public bool IsFrozen { get; set; }
}
/// <summary>

@ -80,4 +80,9 @@ public class CodeCarrierRes
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 是否冻结
/// </summary>
public bool IsFrozen { get; set; }
}

@ -1,11 +1,6 @@
using DS.Module.Core;
using DS.Module.Core.Data;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DS.WMS.Core.Code.Entity
{
@ -87,6 +82,12 @@ namespace DS.WMS.Core.Code.Entity
/// </summary>
[SugarColumn(ColumnDescription = "状态", DefaultValue = "0")]
public StatusEnum? Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 是否冻结
/// </summary>
[SugarColumn(ColumnDescription = "是否冻结")]
public bool IsFrozen { get; set; }
}
}

@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualBasic;
namespace DS.WMS.Core.Fee.Entity
{
@ -237,6 +238,11 @@ namespace DS.WMS.Core.Fee.Entity
/// </summary>
public DateTime DataCreateTime { get; set; }
/// <summary>
/// 交易时间
/// </summary>
public DateTime PayDataTime { get; set; }
/// <summary>
/// 机构Id
/// </summary>

@ -1,7 +1,7 @@
using DS.Module.Core.Data;
using SqlSugar;
namespace DS.WMS.Core.Invoice.Entity
namespace DS.WMS.Core.Fee.Entity
{
/// <summary>
/// 进项发票主表
@ -9,7 +9,7 @@ namespace DS.WMS.Core.Invoice.Entity
[SugarTable("invoice_in_info", TableDescription = "进项发票主表")]
public class InInvoice : BaseModel<long>
{
/// <summary>
/// 开票日期 kprq
/// </summary>
@ -299,7 +299,7 @@ namespace DS.WMS.Core.Invoice.Entity
/// 机构Id
/// </summary>
public long OrgId { get; set; }
}
}

@ -1,7 +1,7 @@
using DS.Module.Core.Data;
using SqlSugar;
namespace DS.WMS.Core.Invoice.Entity
namespace DS.WMS.Core.Fee.Entity
{
/// <summary>
/// 进项发票详情表
@ -9,7 +9,7 @@ namespace DS.WMS.Core.Invoice.Entity
[SugarTable("invoice_in_detail", TableDescription = "进项发票详情表")]
public class InInvoiceDetail : BaseModel<long>
{
/// <summary>
/// 主表Id
@ -120,7 +120,7 @@ namespace DS.WMS.Core.Invoice.Entity
/// 机构Id
/// </summary>
public long OrgId { get; set; }
}
}

@ -52,8 +52,8 @@ namespace DS.WMS.Core.Fee.Method
}
//判断汇率设置日期是否交叉
if (TenantDb.Queryable<FeeCurrencyExchange>()
.Where(x => x.CurrencyCode == req.CurrencyCode && x.LocalCurrency == req.LocalCurrency &&
((x.StartDate >= req.StartDate && x.StartDate <= req.EndDate)|| (x.EndDate >= req.StartDate && x.EndDate <= req.EndDate) || (x.StartDate >= req.StartDate && x.EndDate <= req.EndDate))).Any())
.Where(x => x.CurrencyCode == req.CurrencyCode && x.LocalCurrency == req.LocalCurrency &&
((x.StartDate >= req.StartDate && x.StartDate <= req.EndDate) || (x.EndDate >= req.StartDate && x.EndDate <= req.EndDate) || (x.StartDate >= req.StartDate && x.EndDate <= req.EndDate))).Any())
{
return DataResult.Failed("汇率设置存在重叠!", MultiLanguageConst.FeeCurrencyExchangeExist);
}
@ -106,7 +106,7 @@ namespace DS.WMS.Core.Fee.Method
//获取本位币,默认=人民币
string localCurrency = await Db.Queryable<SysOrg>().Where(x => x.Id == id).Select(x => x.LocalCurrency).FirstAsync() ?? FeeCurrency.RMB_CODE;
if (string.IsNullOrWhiteSpace(exchange.CurrencyTo))
if (string.IsNullOrWhiteSpace(exchange.CurrencyTo))
{
exchange.CurrencyTo = localCurrency;
}
@ -152,14 +152,14 @@ namespace DS.WMS.Core.Fee.Method
var rate = entity.DefaultRate;
DateTime dtNow = DateTime.Now;
if (type.HasValue && entity.Exchanges != null && entity.Exchanges.Count > 0)
if (type.HasValue && entity.Exchanges?.Count > 0)
{
//取当前时间范围内的最新一条,优先获取本位币
var item = entity.Exchanges.FindAll(x => x.Status == StatusEnum.Enable && x.LocalCurrency == localCurrency &&
x.StartDate >= dtNow && x.EndDate <= dtNow).OrderByDescending(x => x.CreateTime).FirstOrDefault();
var item = entity.Exchanges.Where(x => x.Status == StatusEnum.Enable && x.LocalCurrency == localCurrency &&
dtNow >= x.StartDate && dtNow <= x.EndDate).OrderByDescending(x => x.CreateTime).FirstOrDefault();
item ??= entity.Exchanges.FindAll(x => x.Status == StatusEnum.Enable &&
x.StartDate >= dtNow && x.EndDate <= dtNow).OrderByDescending(x => x.CreateTime).FirstOrDefault();
item ??= entity.Exchanges.Where(x => x.Status == StatusEnum.Enable &&
dtNow >= x.StartDate && dtNow <= x.EndDate).OrderByDescending(x => x.CreateTime).FirstOrDefault();
if (item != null)
rate = type.Value == FeeType.Receivable ? item.DRValue : item.CRValue;

@ -10,6 +10,7 @@ using DS.WMS.Core.Info.Entity;
using DS.WMS.Core.Op.Dtos;
using DS.WMS.Core.Op.Entity;
using DS.WMS.Core.Op.Interface.TaskInteraction;
using DS.WMS.Core.Sys.Entity;
using Masuit.Tools;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
@ -24,6 +25,7 @@ namespace DS.WMS.Core.Fee.Method
{
Lazy<IActionManagerService> actionService;
Lazy<IFeeRecordService> feeService;
Lazy<IFeeCurrencyExchangeService> exchangeService;
/// <summary>
/// 初始化
@ -33,6 +35,7 @@ namespace DS.WMS.Core.Fee.Method
{
actionService = new Lazy<IActionManagerService>(serviceProvider.GetRequiredService<IActionManagerService>());
feeService = new Lazy<IFeeRecordService>(serviceProvider.GetRequiredService<IFeeRecordService>());
exchangeService = new Lazy<IFeeCurrencyExchangeService>(serviceProvider.GetRequiredService<IFeeCurrencyExchangeService>());
}
/// <summary>
@ -216,8 +219,19 @@ namespace DS.WMS.Core.Fee.Method
InputMethod = InputMethod.Automatic
}).ToListAsync();
var localCurrecy = await Db.Queryable<SysOrg>().Where(x => x.Id == User.OrgId).Select(x => x.LocalCurrency).FirstAsync();
foreach (var detail in details)
{
if (detail.ExchangeRate.GetValueOrDefault() == 0 && detail.Currency != localCurrecy)
{
var er = await exchangeService.Value.GetExchangeRateAsync(new ExchangeRate
{
CurrencyFrom = detail.Currency,
CurrencyTo = localCurrecy,
FeeType = template.FeeType
});
}
if (detail.CustomerId == 0)
{
switch (detail.CustomerType)
@ -392,6 +406,7 @@ namespace DS.WMS.Core.Fee.Method
Tax = 0,
TaxRate = 0,
AccTaxRate = 0,
ExchangeRate = item.Currency == FeeCurrency.RMB_CODE ? 1 : null,
IsInvoice = true,
CreateBy = userId
};
@ -484,6 +499,24 @@ namespace DS.WMS.Core.Fee.Method
item.Tax = Math.Round(item.TaxUnitPrice.GetValueOrDefault() - item.TaxRate.GetValueOrDefault() / 100 * item.TaxUnitPrice.GetValueOrDefault(), 2, MidpointRounding.AwayFromZero);
item.UnitPrice = item.TaxUnitPrice - item.Tax.GetValueOrDefault();
if (item.ExchangeRate == null)
{
if (item.Currency == FeeCurrency.RMB_CODE)
{
item.ExchangeRate = 1m;
}
else
{
var er = await exchangeService.Value.GetExchangeRateAsync(new ExchangeRate
{
CurrencyFrom = item.Currency,
CurrencyTo = FeeCurrency.RMB_CODE,
FeeType = model.FeeType
});
item.ExchangeRate = er.Data?.Rate;
}
}
if (item.CustomerId == 0 && model.CustomerId.HasValue)
item.CustomerId = model.CustomerId.Value;

@ -443,11 +443,11 @@ namespace DS.WMS.Core.Fee.Method
/// </summary>
/// <param name="auditType">审批类型</param>
/// <param name="remark">备注</param>
/// <param name="idArray">费用记录ID</param>
/// <param name="ids">费用记录ID</param>
/// <returns></returns>
public async Task<DataResult> SubmitForApprovalAsync(TaskBaseTypeEnum auditType, string remark, params long[] idArray)
public async Task<DataResult> SubmitForApprovalAsync(TaskBaseTypeEnum auditType, string remark, params long[] ids)
{
var fees = await TenantDb.Queryable<FeeRecord>().Where(x => idArray.Contains(x.Id)).Select(
var fees = await TenantDb.Queryable<FeeRecord>().Where(x => ids.Contains(x.Id)).Select(
x => new FeeRecord
{
Id = x.Id,
@ -465,7 +465,7 @@ namespace DS.WMS.Core.Fee.Method
if (await IsFeeLockedAsync(bid, bType))
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.FeeLocked));
if (await flowService.IsRunning(auditType, null, idArray))
if (await flowService.IsRunning(auditType, null, ids))
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.FeeRecordIsAuditing));
if (fees.Any(x => x.FeeStatus == FeeStatus.PartialSettlement || x.FeeStatus == FeeStatus.SettlementCompleted))
@ -752,6 +752,8 @@ namespace DS.WMS.Core.Fee.Method
x => new FeeRecord
{
Id = x.Id,
BusinessId = x.BusinessId,
BusinessType = x.BusinessType,
FeeName = x.FeeName,
FeeStatus = x.FeeStatus
}).ToListAsync();
@ -800,11 +802,15 @@ namespace DS.WMS.Core.Fee.Method
{
foreach (var item in group)
{
await taskService.WithdrawAsync(new TaskRequest
result = await taskService.WithdrawAsync(new TaskRequest
{
BusinessId = item.Item2,
TaskTypeName = item.Item1.ToString()
TaskTypeName = item.Item1.ToString(),
ExtraData = fees.Find(x=>x.Id == item.Item2)
}, false);
if (!result.Succeeded)
return result;
}
}
}

@ -369,7 +369,7 @@ public class ClientInfoReq
/// <summary>
/// 备注
/// </summary>
public string Note { get; set; }
public string? Note { get; set; }
/// <summary>
/// 客户标识
@ -504,6 +504,11 @@ public class ClientInfoReq
/// 注册时间
/// </summary>
public DateTime? RegistrationTime { get; set; }
/// <summary>
/// 是否冻结
/// </summary>
public bool IsFrozen { get; set; }
}
/// <summary>

@ -437,6 +437,11 @@ public class ClientInfoRes
/// </summary>
public DateTime? RegistrationTime { get; set; }
/// <summary>
/// 是否冻结
/// </summary>
public bool IsFrozen { get; set; }
/// <summary>
/// 默认联系人
/// </summary>

@ -1,4 +1,5 @@
using DS.WMS.Core.Op.EDI;
using SqlSugar;
namespace DS.WMS.Core.Info.Dtos;
@ -51,6 +52,10 @@ public class ClientSelectRes
/// 干系人列表
/// </summary>
public List<long> UserIds { get; set; }
/// <summary>
/// 是否冻结
/// </summary>
public bool IsFrozen { get; set; }
}
/// <summary>

@ -144,6 +144,11 @@ public class ClientTagReq
/// <summary>
/// 是否国内同行
/// </summary>
public bool IsDomesticPeers { get; set; }
/// <summary>
/// 是否国外同行
/// </summary>
public bool IsForeignCounterparts { get; set; }
/// <summary>

@ -15,10 +15,10 @@ public class ClientTagRes
/// </summary>
public long ClientId { get; set; }
///// <summary>
///// Desc:是否特批放单客户
///// </summary>
//public bool? IsSpecialApproval { get; set; } = false;
/// <summary>
/// Desc:是否特批放单客户
/// </summary>
public bool? IsSpecialApproval { get; set; } = false;
/// <summary>
/// Desc:是否船公司
@ -140,6 +140,47 @@ public class ClientTagRes
/// Desc:是否约主
/// </summary>
public bool? IsContract { get; set; } = false;
/// <summary>
/// 是否国内同行
/// </summary>
public bool IsDomesticPeers { get; set; }
/// <summary>
/// 是否国外同行
/// </summary>
public bool IsForeignCounterparts { get; set; }
/// <summary>
/// 是否国内直客
/// </summary>
public bool IsDirectCustomerCn { get; set; }
/// <summary>
/// 是否国外直客
/// </summary>
public bool IsDirectCustomer { get; set; }
/// <summary>
/// 是否指定货发货人
/// </summary>
public bool IsShipperZDH { get; set; }
/// <summary>
/// 是否个人
/// </summary>
public bool IsPersonal { get; set; }
/// <summary>
/// 是否装箱加固
/// </summary>
public bool IsPacking { get; set; }
/// <summary>
/// 是否放箱公司
/// </summary>
public bool IsContainerCompany { get; set; }
/// <summary>
/// 备注
/// </summary>

@ -137,5 +137,10 @@ namespace DS.WMS.Core.Info.Dtos
/// 干系人列表
/// </summary>
public List<long> UserIds { get; set; }
/// <summary>
/// 是否冻结
/// </summary>
public bool IsFrozen { get; set; }
}
}

@ -40,6 +40,16 @@
/// </summary>
public string? CNName { get; set; }
/// <summary>
/// 国家
/// </summary>
public string? Country { get; set; }
/// <summary>
/// 法人
/// </summary>
public string? LegalPerson { get; set; }
/// <summary>
/// 英文名称
/// </summary>

@ -1,7 +1,6 @@
using DS.Module.Core;
using DS.Module.Core.Data;
using DS.Module.Core.Enums;
using LanguageExt.TypeClasses;
using SqlSugar;
namespace DS.WMS.Core.Info.Entity;
@ -443,6 +442,12 @@ public class InfoClient : SharedOrgModel<long>
[SugarColumn(ColumnDescription = "注册时间", IsNullable = true)]
public DateTime? RegistrationTime { get; set; }
/// <summary>
/// 是否冻结
/// </summary>
[SugarColumn(ColumnDescription = "是否冻结")]
public bool IsFrozen { get; set; }
/// <summary>
/// 客户属性
/// </summary>

@ -173,7 +173,7 @@ public class InfoClientTag : BaseModelV2<long>
public bool IsDomesticPeers { get; set; }
/// <summary>
/// 是否国同行
/// 是否国同行
/// </summary>
[SugarColumn(ColumnDescription = "是否国外同行", DefaultValue = "0")]
public bool IsForeignCounterparts { get; set; }

@ -156,7 +156,8 @@ public class ClientBankService : ServiceBase, IClientBankService
OrgId = item.OrgId,
CodeName = PinYinUtil.GetFristLetter(model.BankName),
BankName = model.BankName,
Account = model.BankAccount,
Account = model.InvoiceHeader,
AccountName = model.InvoiceHeader,
BankAddress = model.BankAddress,
BankAccountNo = model.BankAccount,
IsInvoiceDefault = model.IsDefault,

@ -11,10 +11,13 @@ using DS.WMS.Core.Flow.Interface;
using DS.WMS.Core.Info.Dtos;
using DS.WMS.Core.Info.Entity;
using DS.WMS.Core.Info.Interface;
using DS.WMS.Core.Invoice.Dtos;
using DS.WMS.Core.Op.Dtos.TaskInteraction;
using DS.WMS.Core.Op.Entity;
using DS.WMS.Core.Op.Interface.TaskInteraction;
using DS.WMS.Core.Sys.Entity;
using DS.WMS.Core.Sys.Interface;
using DS.WMS.Core.Sys.Method;
using Fasterflect;
using Mapster;
using Masuit.Tools.Systems;
@ -32,6 +35,7 @@ public class ClientInfoService : ServiceBase, IClientInfoService
Lazy<IClientFlowInstanceService> flowService;
Lazy<ITaskService> taskService;
private readonly ICommonService commonService;
/// <summary>
/// 初始化
@ -41,6 +45,7 @@ public class ClientInfoService : ServiceBase, IClientInfoService
{
flowService = new Lazy<IClientFlowInstanceService>(serviceProvider.GetRequiredService<IClientFlowInstanceService>());
taskService = new Lazy<ITaskService>(serviceProvider.GetRequiredService<ITaskService>());
commonService = serviceProvider.GetRequiredService<ICommonService>();
}
#region 审核
@ -318,24 +323,27 @@ public class ClientInfoService : ServiceBase, IClientInfoService
AuditStatus = model.StatusText == "认证" ? AuditStatusEnum.Approve : AuditStatusEnum.NoAudit,
Status = model.StatusText == "认证" ? 0 : 1,
CodeName = model.Code,
Chief = model.LegalPerson,
CreateBy = userId,
CreateUserName = User.UserName,
CreateTime = dtNow,
CustomerService = users.Find(x => x.UserName == model.CustomerService)?.Id,
CustomerServiceName = model.CustomerService,
Email = model.Email,
EnFullName = model.ENName,
EnShortName = model.ENName,
Grade = model.Class,
IsCustomer = model.IsCustomer,
IsSupplier = model.IsSupplier,
Country = model.Country,
OperatorId = users.Find(x => x.UserName == model.OP)?.Id,
OperatorName = model.OP,
OperatorName = users.Find(x => x.UserName == model.OP)?.UserName,
OrgId = (users.Find(x => x.UserName == model.Sale)?.DefaultOrgId).GetValueOrDefault(),
Sale = model.Sale,
SaleOrgId = users.Find(x => x.UserName == model.Sale)?.DefaultOrgId.ToString(),
SaleId = users.Find(x => x.UserName == model.Sale)?.Id,
Sale = users.Find(x => x.UserName == model.Sale)?.UserName,
CustomerService = users.Find(x => x.UserName == model.CustomerService)?.Id,
CustomerServiceName = users.Find(x => x.UserName == model.CustomerService)?.UserName,
QQ = model.QQ,
ShortName = model.CNName,
ShortName = model.ShortName,
Description = model.CNName,
Tel = model.Tel,
Note = "系统导入",
@ -388,7 +396,7 @@ public class ClientInfoService : ServiceBase, IClientInfoService
await TenantDb.Ado.CommitTranAsync();
var result = DataResult.Success;
result.Message = $"新增往来单位:{newClients.Count}项,更新往来单位:{existClients}项";
result.Message = $"新增往来单位:{newClients.Count}项,更新往来单位:{existClients.Count}项";
return result;
}
catch (Exception ex)
@ -408,7 +416,37 @@ public class ClientInfoService : ServiceBase, IClientInfoService
{
//序列化查询条件
var whereList = request.GetConditionalModels(Db);
var query = TenantDb.Queryable<InfoClient>()
#region 数据权限
var queryData = TenantDb.Queryable<InfoClient>();
var conditions = new List<IConditionalModel>();
var scope = string.Empty;
(queryData, scope, conditions) = await commonService.GetSpecialVisibleDataRuleFilter<InfoClient>(queryData, TenantDb);
var userids = new List<string>();
if (conditions.Count > 0)
{
foreach (ConditionalTree item in conditions)
{
Console.WriteLine(item.ConditionalList);
if (item.ConditionalList.Count > 0)
{
foreach (var item1 in item.ConditionalList)
{
var temp = item1.Value as SqlSugar.ConditionalModel;
if (temp.FieldName == "Stakeholders")
{
userids = temp.FieldValue.Split(',').ToList();
}
}
}
}
}
if (userids.Count == 0)
{
userids.Add(User.UserId);
}
#endregion
var query = queryData.Where(c => c.Status == StatusEnum.Enable.ToEnumInt() || SqlFunc.Subqueryable<InfoClientStakeholder>().Where("SYSDATE() BETWEEN StartDate and EndDate").Where(c0 => userids.Contains(c.CreateBy.ToString())).Any())//TenantDb.Queryable<InfoClient>()
.LeftJoin<InfoClientContact>((c, c1) => c.Id == c1.ClientId)
.LeftJoin<InfoClientContract>((c, c1, c2) => c.Id == c2.ClientId)
.InnerJoinIF<InfoClientTag>(request.OtherQueryCondition?.ClientTag != null, (c, c1, c2, ct) => c.Id == ct.ClientId)
@ -442,7 +480,12 @@ public class ClientInfoService : ServiceBase, IClientInfoService
query = query.Where(list);
}
#region 判断权限范围
if (scope == "all")
{
query = query.ClearFilter<ISharedOrgId>();
}
#endregion
var result = await query.Select((c, c1, c2, ct) => new ClientInfoRes
{
CodeName = c.CodeName,

@ -0,0 +1,68 @@
using DS.WMS.Core.Fee.Entity;
using DS.WMS.Core.Invoice.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DS.WMS.Core.Invoice.Dtos
{
/// <summary>
/// 获取银行流水请求参数
/// </summary>
public class GetBankStatementInput
{
/// <summary>
/// 银行账户id
/// </summary>
public string? AccountId { get; set; }
/// <summary>
/// 交易类型,来账 往账
/// </summary>
public string? BusinessType { get; set; }
/// <summary>
/// 银行账号
/// </summary>
public string? PayerAccountNumber { get; set; }
/// <summary>
/// 付款人名称
/// </summary>
public string? PayerName { get; set; }
/// <summary>
/// 交易日期起始
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 交易期日截止
/// </summary>
public DateTime? EndDate { get; set; }
}
/// <summary>
/// 获取银行流水列表返回参数
/// </summary>
public class GetBankStatementOutPut:BankStatement
{
}
/// <summary>
/// 获取银行账户列表
/// </summary>
public class GetBankAccountListInput
{
}
public class GetBankAccountListOutput
{
public string BankName { get; set; }
public string AccountId { get; set; }
}
}

@ -1,4 +1,5 @@
using System;
using DS.WMS.Core.Fee.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@ -10,7 +11,7 @@ namespace DS.WMS.Core.Invoice.Dtos
/// <summary>
/// 获取进项发票输出实体对象
/// </summary>
public class GetListOutPut
public class GetInInvoiceListOutPut
{
public long Id { get; set; }
/// <summary>
@ -303,7 +304,7 @@ namespace DS.WMS.Core.Invoice.Dtos
/// <summary>
/// 获取进项发票查询条件
/// </summary>
public class GetListInput
public class GetInInvoicetInput
{
}
@ -312,4 +313,12 @@ namespace DS.WMS.Core.Invoice.Dtos
{
public long Id { get; set; }
}
public class GetDetailInfo:InInvoice
{
public List<InInvoiceDetail> Data { get; set; }
}
}

@ -0,0 +1,34 @@
using DS.Module.Core;
using DS.WMS.Core.Application.Entity;
using DS.WMS.Core.Invoice.Dtos;
using DS.WMS.Core.Invoice.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DS.WMS.Core.Invoice.Interface
{
/// <summary>
/// 银行流水相关
/// </summary>
public interface IBankStatementService
{
/// <summary>
/// 获取银行流水列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
Task<DataResult<List<GetBankStatementOutPut>>> GetBankStatementList(PageRequest<GetBankStatementInput> request);
/// <summary>
/// 获取银行账号列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
Task<DataResult<List<GetBankAccountListOutput>>> GetBankAccountList();
}
}

@ -22,13 +22,13 @@ namespace DS.WMS.Core.Invoice.Interface
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
Task<DataResult<List<GetListOutPut>>> GetListAsync(PageRequest<GetListInput> request);
Task<DataResult<List<GetInInvoiceListOutPut>>> GetInInvoicetList(PageRequest<GetInInvoicetInput> request);
/// <summary>
/// 获取进项发票详细信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
Task<DataResult<List<InInvoiceDetail>>> GetDetailInfo(PageRequest<GetDetailInfoInput> request);
Task<DataResult<GetDetailInfo>> GetInInvoicetDetailInfo(GetDetailInfoInput request);
}
}

@ -0,0 +1,83 @@
using DS.Module.Core;
using DS.Module.Core.Extensions;
using DS.Module.SqlSugar;
using DS.Module.UserModule;
using DS.WMS.Core.Fee.Entity;
using DS.WMS.Core.Invoice.Dtos;
using DS.WMS.Core.Invoice.Entity;
using DS.WMS.Core.Invoice.Interface;
using DS.WMS.Core.TaskPlat.Dtos;
using MathNet.Numerics.Distributions;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
namespace DS.WMS.Core.Invoice.Method
{
/// <summary>
/// 银行流水相关
/// </summary>
public class BankStatementService : IBankStatementService
{
private readonly IServiceProvider _serviceProvider;
private readonly ISaasDbService saasService;
private readonly IUser user;
private readonly ISqlSugarClient db;
/// <summary>
/// 初始化
/// </summary>
/// <param name="serviceProvider"></param>
public BankStatementService(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
saasService = _serviceProvider.GetRequiredService<ISaasDbService>();
db = _serviceProvider.GetRequiredService<ISqlSugarClient>();
user = _serviceProvider.GetRequiredService<IUser>();
}
/// <summary>
/// 获取银行流水列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<DataResult<List<GetBankStatementOutPut>>> GetBankStatementList(PageRequest<GetBankStatementInput> request)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var result = await tenantDb.Queryable<BankStatement>()
.Where(t => t.OrgId == user.OrgId)
.WhereIF(!string.IsNullOrWhiteSpace(request.OtherQueryCondition.AccountId), t => t.AccountId == request.OtherQueryCondition.AccountId)//银行账户
.WhereIF(!string.IsNullOrWhiteSpace(request.OtherQueryCondition.BusinessType), t => t.BusinessType.Contains(request.OtherQueryCondition.BusinessType))//交易类型
.WhereIF(!string.IsNullOrWhiteSpace(request.OtherQueryCondition.PayerAccountNumber), t => t.BusinessType.Contains(request.OtherQueryCondition.PayerAccountNumber))//付款方银行账户
.WhereIF(!string.IsNullOrWhiteSpace(request.OtherQueryCondition.PayerName), t => t.BusinessType.Contains(request.OtherQueryCondition.PayerName))//付款人名称
.WhereIF(request.OtherQueryCondition.StartDate != null, t => t.PayDataTime >= request.OtherQueryCondition.StartDate)
.WhereIF(request.OtherQueryCondition.EndDate != null, t => t.PayDataTime >= request.OtherQueryCondition.EndDate)
.Select(t => new GetBankStatementOutPut
{
Id = t.Id,
},true)
.ToQueryPageAsync(request.PageCondition);
return result;
}
/// <summary>
/// 获取银行账号列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<DataResult<List<GetBankAccountListOutput>>> GetBankAccountList()
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var list = tenantDb.Queryable<BankStatement>()
.Where(t => t.OrgId == user.OrgId)
.GroupBy(it => new { it.BankName, it.AccountId }) //可以多字段
.Select(it => new GetBankAccountListOutput
{
BankName = it.BankName,
AccountId = it.AccountId
}).ToList();
return DataResult<List<GetBankAccountListOutput>>.Success(list);
}
}
}

@ -12,12 +12,12 @@ using DS.Module.SqlSugar;
using Microsoft.Extensions.DependencyInjection;
using DS.Module.UserModule;
using DS.Module.Core.Enums;
using DS.WMS.Core.Invoice.Entity;
using NPOI.SS.Formula.Functions;
using DS.WMS.Core.Invoice.Dtos;
using DS.WMS.Core.Invoice.Interface;
using DS.WMS.ContainerManagement.Info.Dtos;
using DS.WMS.ContainerManagement.Info.Entity;
using DS.WMS.Core.Fee.Dtos;
namespace DS.WMS.Core.Invoice.Method
{
@ -26,7 +26,6 @@ namespace DS.WMS.Core.Invoice.Method
/// </summary>
public class InInvoiceService : IInInvoiceService
{
//public override TaskBaseTypeEnum AuditType => TaskBaseTypeEnum.APPLICATION_INVOICE_AUDIT;
private readonly IServiceProvider _serviceProvider;
private readonly ISaasDbService saasService;
private readonly IUser user;
@ -50,75 +49,17 @@ namespace DS.WMS.Core.Invoice.Method
/// <param name="request"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<DataResult<List<GetListOutPut>>> GetListAsync(PageRequest<GetListInput> request)
public async Task<DataResult<List<GetInInvoiceListOutPut>>> GetInInvoicetList(PageRequest<GetInInvoicetInput> request)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var result = await tenantDb.Queryable<InInvoice>()
.Where(t => t.OrgId == user.OrgId)
.Select(t => new GetListOutPut
.Select(t => new GetInInvoiceListOutPut
{
Id = t.Id,
InvoicingDate = t.InvoicingDate,
InvoiceTypeCode = t.InvoiceTypeCode,
InvoiceNumber = t.InvoiceNumber,
TotalAmount = t.TotalAmount,
TotalTax = t.TotalTax,
TotalWithTax = t.TotalWithTax,
InvoiceStatus = t.InvoiceStatus,
Invoicer = t.Invoicer,
OriginalInvoiceNumber = t.OriginalInvoiceNumber,
BuyerInvoiceName = t.BuyerInvoiceName,
BuyerInvoiceTaxNumber = t.BuyerInvoiceTaxNumber,
SellerInvoiceName = t.SellerInvoiceName,
SellerInvoiceTaxNumber = t.SellerInvoiceTaxNumber,
IsDetailObtained = t.IsDetailObtained,
SellerIdentificationNumber = t.SellerIdentificationNumber,
FinalCheckCode = t.FinalCheckCode,
BuyerName = t.BuyerName,
CurrentTime = t.CurrentTime,
DeductionAmount = t.DeductionAmount,
VehicleInvoiceTypeCode = t.VehicleInvoiceTypeCode,
TaxControlCode = t.TaxControlCode,
BuyerTaxNumber = t.BuyerTaxNumber,
PaperInvoiceNumber = t.PaperInvoiceNumber,
Payee = t.Payee,
ItemFlag = t.ItemFlag,
InvoiceUnitCode = t.InvoiceUnitCode,
BuyerBankAccount = t.BuyerBankAccount,
Amount = t.Amount,
SellerName = t.SellerName,
SpecialElements = t.SpecialElements,
ReimbursementStatus = t.ReimbursementStatus,
BuyerBankAccountNumber = t.BuyerBankAccountNumber,
SpecialElementTypeCode = t.SpecialElementTypeCode,
OperatorCode = t.OperatorCode,
BuyerAddressPhone = t.BuyerAddressPhone,
IsPaperInvoice = t.IsPaperInvoice,
InvoiceRequestNumber = t.InvoiceRequestNumber,
TaxAmount = t.TaxAmount,
Remarks = t.Remarks,
BuyerIdentificationNumber = t.BuyerIdentificationNumber,
BuyerFullName = t.BuyerFullName,
SellerTaxNumber = t.SellerTaxNumber,
InvoiceCode = t.InvoiceCode,
SellerAddressPhone = t.SellerAddressPhone,
DetailList = t.DetailList,
SellerAddressPhoneExtra = t.SellerAddressPhoneExtra,
SellerBankAccountNumber = t.SellerBankAccountNumber,
Reviewer = t.Reviewer,
BuyerAddressPhoneExtra = t.BuyerAddressPhoneExtra,
SellerFullName = t.SellerFullName,
MachineCode = t.MachineCode,
ItemOrServiceName = t.ItemOrServiceName,
SellerBankAccount = t.SellerBankAccount,
PdfFilePath = t.PdfFilePath,
OfdFilePath = t.OfdFilePath,
XmlFilePath = t.XmlFilePath,
AllFileDownloadPath = t.AllFileDownloadPath
})
},true)
.ToQueryPageAsync(request.PageCondition);
return result;
@ -130,15 +71,20 @@ namespace DS.WMS.Core.Invoice.Method
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<DataResult<List<InInvoiceDetail>>> GetDetailInfo(PageRequest<GetDetailInfoInput> request)
public async Task<DataResult<GetDetailInfo>> GetInInvoicetDetailInfo(GetDetailInfoInput request)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var result = await tenantDb.Queryable<InInvoiceDetail>()
.Where(t => t.OrgId == user.OrgId&&t.PId== request.OtherQueryCondition.Id).ToQueryPageAsync(request.PageCondition);
return result;
var Data = await tenantDb.Queryable<InInvoice>()
.Where(t => t.OrgId == user.OrgId && t.Id == request.Id)
.Select(t => new GetDetailInfo()
{
Id = t.Id
}, true).FirstAsync();
if (Data != null)
{
Data.Data = tenantDb.Queryable<InInvoiceDetail>().Where(p => p.PId == Data.Id).ToList();
}
return DataResult<GetDetailInfo>.Success(Data);
}
}
}

@ -23,6 +23,14 @@ namespace DS.WMS.Core.Op.Dtos
/// </summary>
[Required]
public long Pid { get; set; }
/// <summary>
/// 备注类型
/// </summary>
public string RemarkType { get; set; }
/// <summary>
/// 备注类型名称
/// </summary>
public string RemarkTypeName { get; set; }
/// <summary>
/// 备注

@ -20,6 +20,14 @@ namespace DS.WMS.Core.Op.Dtos
/// 业务Id
/// </summary>
public long Pid { get; set; }
/// <summary>
/// 备注类型
/// </summary>
public string RemarkType { get; set; }
/// <summary>
/// 备注类型名称
/// </summary>
public string RemarkTypeName { get; set; }
/// <summary>
/// 备注

@ -1,6 +1,7 @@
using DS.Module.Core;
using FluentValidation;
using SqlSugar;
using System.ComponentModel;
namespace DS.WMS.Core.Op.Dtos;
@ -1252,6 +1253,12 @@ public class SeaExportReq
/// 危险品电话
/// </summary>
public string DangerTel { get; set; }
/// <summary>
/// 货好时间-(只要年月日)
/// </summary>
[Description("货好时间")]
public Nullable<DateTime> GoodsCompleteTime { get; set; }
}
/// <summary>

@ -1523,4 +1523,10 @@ public class SeaExportRes
/// 整票审核状态
/// </summary>
public BillAuditStatus AuditStatus { get; set; }
/// <summary>
/// 货好时间-(只要年月日)
/// </summary>
[Description("货好时间")]
public Nullable<DateTime> GoodsCompleteTime { get; set; }
}

@ -39,6 +39,11 @@ namespace DS.WMS.Core.Op.Dtos.TaskInteraction
/// </summary>
public string TaskTypeName { get; set; } = string.Empty;
/// <summary>
/// 附加数据(内部使用)
/// </summary>
public object? ExtraData { get; set; }
/// <summary>
/// 确定当前对象是否有效
/// </summary>

@ -1982,4 +1982,11 @@ public class SeaExport : BaseOrgModel<long>
/// </summary>
[SugarColumn(ColumnDescription = "订单进程 0.未审单 1.已审未出号 2.已出号未申报 3.已申报", IsNullable = true, Length = 20,DefaultValue ="0")]
public string OrderProgress { get; set; }
/// <summary>
/// 货好时间-(只要年月日)
/// </summary>
[Description("货好时间")]
[SugarColumn(ColumnDescription = "货好时间", IsNullable = true)]
public Nullable<DateTime> GoodsCompleteTime { get; set; }
}

@ -18,9 +18,17 @@ namespace DS.WMS.Core.Op.Entity
/// 业务Id
/// </summary>
[SugarColumn(ColumnDescription = "业务Id", IsNullable = false)]
public long Pid { get; set; }
public long Pid { get; set; }
/// <summary>
/// 备注类型
/// </summary>
[SugarColumn(ColumnDescription = "备注类型", IsNullable = true, Length =100)]
public string RemarkType { get; set; }
/// <summary>
/// 备注类型名称
/// </summary>
[SugarColumn(ColumnDescription = "备注类型名称", IsNullable = true, Length = 100)]
public string RemarkTypeName { get; set; }
/// <summary>
/// 备注
/// </summary>

@ -760,7 +760,7 @@ public partial class SeaExportService : ISeaExportService
CustomerId = seaExport.ForwarderId,
CustomerName = seaExport.Forwarder,
CustomerType = "booking",
CustomerTypeName = "订舱公司",
CustomerTypeName = "订舱",
Name = defaultContact.Name,
Mobile = defaultContact.Mobile,
Tel = defaultContact.Tel,
@ -798,6 +798,62 @@ public partial class SeaExportService : ISeaExportService
}
}
}
if (seaExport.CustomserId != 0)
{
var delCustomsers = contactLists.Where(x => x.BusinessType == BusinessType.OceanShippingExport && x.CustomerType == "custom" && x.CustomerId != seaExport.CustomserId).ToList();
if (delCustomsers.Count > 0)
{
delList.AddRange(delCustomsers);
}
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.CustomserId && x.IsDefault == true).First();
if (defaultContact.IsNotNull())
{
if (!contactLists.Where(x => x.BusinessType == BusinessType.OceanShippingExport && x.CustomerType == "custom" && x.Name == defaultContact.Name).Any())
{
addList.Add(new BusinessOrderContact()
{
BusinessId = seaExport.Id,
CustomerId = (long)seaExport.CustomserId,
CustomerName = seaExport.CustomerName,
CustomerType = "custom",
CustomerTypeName = "报关行",
Name = defaultContact.Name,
Mobile = defaultContact.Mobile,
Tel = defaultContact.Tel,
Email = defaultContact.Email,
CustomerContactId = defaultContact.Id
});
}
}
}
if (seaExport.AgentId != 0)
{
var delAgents = contactLists.Where(x => x.BusinessType == BusinessType.OceanShippingExport && x.CustomerType == "agent" && x.CustomerId != seaExport.CustomserId).ToList();
if (delAgents.Count > 0)
{
delList.AddRange(delAgents);
}
var defaultContact = sqlSugarScope.Queryable<InfoClientContact>().Where(x => x.ClientId == seaExport.AgentId && x.IsDefault == true).First();
if (defaultContact.IsNotNull())
{
if (!contactLists.Where(x => x.BusinessType == BusinessType.OceanShippingExport && x.CustomerType == "agent" && x.Name == defaultContact.Name).Any())
{
addList.Add(new BusinessOrderContact()
{
BusinessId = seaExport.Id,
CustomerId = (long)seaExport.AgentId,
CustomerName = seaExport.Agent,
CustomerType = "agent",
CustomerTypeName = "国外代理",
Name = defaultContact.Name,
Mobile = defaultContact.Mobile,
Tel = defaultContact.Tel,
Email = defaultContact.Email,
CustomerContactId = defaultContact.Id
});
}
}
}
if (addList.Count > 0)
sqlSugarScope.Insertable(addList).ExecuteCommand();
if (delList.Count > 0)

@ -1,8 +1,10 @@
using System.Text;
using System.Threading.Tasks;
using DS.Module.Core;
using DS.Module.Core.Data;
using DS.Module.Core.Helpers;
using DS.Module.DjyRulesEngine;
using DS.WMS.Core.Fee.Dtos;
using DS.WMS.Core.Fee.Entity;
using DS.WMS.Core.Flow.Dtos;
using DS.WMS.Core.Flow.Entity;
@ -25,6 +27,7 @@ using Masuit.Tools.Systems;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
using static iText.StyledXmlParser.Jsoup.Select.Evaluator;
namespace DS.WMS.Core.Op.Method.TaskInteraction
{
@ -386,16 +389,19 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
if (updateFlag)
{
result = await SetTaskStatusAsync(new TaskUpdateRequest
if (!FeeTypes.Contains(request.TaskType))
{
BusinessId = request.BusinessId,
BusinessType = request.BusinessType,
TaskTypeName = request.TaskTypeName,
TaskStatus = TaskStatusEnum.Create
}, false);
result = await SetTaskStatusAsync(new TaskUpdateRequest
{
BusinessId = request.BusinessId,
BusinessType = request.BusinessType,
TaskTypeName = request.TaskTypeName,
TaskStatus = TaskStatusEnum.Create
}, false);
if (!result.Succeeded)
return result;
if (!result.Succeeded)
return result;
}
}
else if (FeeTypes.Contains(request.TaskType)) //费用审核需拆分任务
{
@ -553,25 +559,14 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
DataResult result;
if (FeeTypes.Contains(request.TaskType))
{
var fee = await TenantDb.Queryable<FeeRecord>().Where(x => x.Id == request.BusinessId)
var biz = await TenantDb.Queryable<FeeRecord>().Where(x => x.Id == request.BusinessId)
.Select(x => new
{
x.BusinessId,
x.BusinessType
}).FirstAsync();
var relativeTasks = await TenantDb.Queryable<BusinessTask>()
.InnerJoin<FeeRecord>((t, f) => t.BusinessId == f.Id)
.Where((t, f) => f.BusinessId == fee.BusinessId && f.BusinessType == fee.BusinessType && FeeTypes.Contains(t.TaskType) && t.RecvUsers.Contains(User.UserId))
.Select((t, f) => new
{
t.Id,
t.BusinessId,
t.TaskType,
t.TaskStatus,
t.RecvUsers
}).ToListAsync();
var relativeTasks = await GetFeeTasks(biz.BusinessType, biz.BusinessId);
var groups = relativeTasks.GroupBy(x => x.TaskStatus).Select(x => x.Key).ToList();
if (groups.Count == 1 && groups.All(x => x == request.TaskStatus))
{
@ -612,7 +607,7 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
Dictionary<string, object>? dic = null;
if (task.NextType == TaskBaseTypeEnum.WAIT_BOOKING)
{
dic = new Dictionary<string, object>();
dic = [];
var param = await ClientParamService.Value.GetParamAsync<string>(task.BusinessId, BookingSelector.Booking_Route,
(x, y) => x.CustomerId == y.ForwarderId);
dic[TaskFlowDataNameConst.ClientParam] = param;
@ -646,13 +641,13 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
/// <summary>
/// 获取业务的任务信息
/// </summary>
/// <param name="id">业务ID</param>
/// <param name="bsId">业务ID</param>
/// <param name="businessType">业务类型</param>
/// <param name="types">任务类型</param>
/// <returns></returns>
public async Task<DataResult<List<BusinessTaskDto>>> GetTasks(long id, BusinessType? businessType, params TaskBaseTypeEnum[] types)
public async Task<DataResult<List<BusinessTaskDto>>> GetTasks(long bsId, BusinessType? businessType, params TaskBaseTypeEnum[] types)
{
var list = await TenantDb.Queryable<BusinessTask>().Where(x => x.BusinessId == id)
var list = await TenantDb.Queryable<BusinessTask>().Where(x => x.BusinessId == bsId)
.WhereIF(businessType.HasValue, x => x.BusinessType == businessType)
.WhereIF(types != null && types.Length > 0, x => types.Contains(x.TaskType))
.Select<BusinessTaskDto>().ToListAsync();
@ -662,6 +657,27 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
return result;
}
/// <summary>
/// 获取指定业务的所有关联费用类任务
/// </summary>
/// <param name="bsType">业务类型</param>
/// <param name="bsIds">业务ID</param>
/// <returns></returns>
protected internal async Task<List<BusinessTask>> GetFeeTasks(BusinessType bsType, params long[] bsIds)
{
return await TenantDb.Queryable<BusinessTask>()
.InnerJoin<FeeRecord>((t, f) => t.BusinessId == f.Id)
.Where((t, f) => bsIds.Contains(f.BusinessId) && f.BusinessType == bsType && FeeTypes.Contains(t.TaskType) && t.RecvUsers.Contains(User.UserId))
.Select((t, f) => new BusinessTask
{
Id = t.Id,
BusinessId = t.BusinessId,
TaskType = t.TaskType,
TaskStatus = t.TaskStatus,
RecvUsers = t.RecvUsers
}).ToListAsync();
}
/// <summary>
/// 返回指定类型的任务是否已存在
/// </summary>
@ -786,11 +802,12 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
if (!AuditTaskTypes.Contains(request.TaskType))
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TaskTypeNotSupported));
var task = await GetQuery(request.BusinessId, request.BusinessType, request.TaskType).Select(x => new
var task = await GetQuery(request.BusinessId, request.BusinessType, request.TaskType).Select(x => new BusinessTask
{
x.Id,
x.TaskStatus,
x.FlowId
Id = x.Id,
TaskStatus = x.TaskStatus,
FlowId = x.FlowId,
RecvUsers = x.RecvUsers
}).FirstAsync();
if (task == null)
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.EmptyData));
@ -801,16 +818,32 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
if (!task.FlowId.HasValue)
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.NotInFlows));
DataResult result;
DateTime dt = DateTime.Now;
if (useTransaction)
await TenantDb.Ado.BeginTranAsync();
try
{
var result = await ManagerService.SetTaskStatusWithBsno(request.BusinessId, request.TaskType, TaskStatusEnum.Cancel, dt);
if (!result.Succeeded)
return result;
if (FeeTypes.Contains(request.TaskType))
{
//if (request.ExtraData is not FeeRecord fee)
// return DataResult.Failed("缺少请求传递的费用数据");
//var relativeTasks = await GetFeeTasks(fee.BusinessType, fee.BusinessId);
//if (relativeTasks.Count == 1 || relativeTasks.Where(x => x.BusinessId != request.BusinessId && x.TaskStatus != TaskStatusEnum.Complete).All(x => x.TaskStatus == TaskStatusEnum.Cancel))
//{
// result = await ManagerService.SetTaskStatusWithBsno(fee.BusinessId, request.TaskType, TaskStatusEnum.Cancel, dt, userIdList: [.. task.RecvUserIdArray]);
// if (!result.Succeeded)
// return result;
//}
}
else
{
result = await ManagerService.SetTaskStatusWithBsno(request.BusinessId, request.TaskType, TaskStatusEnum.Cancel, dt);
if (!result.Succeeded)
return result;
}
result = await FlowService.Value.WithdrawAsync([task.FlowId.Value], "用户撤销审核");
if (!result.Succeeded)

@ -128,7 +128,7 @@ namespace DS.WMS.Core.QuarztJobs.Method
bs.NameOfNominalPayee = itemdata.NameOfNominalPayee;
bs.FilePaths = itemdata.FilePaths;
bs.DataCreateTime = itemdata.CreateTime;
bs.PayDataTime = ( Convert.ToDateTime( $"{itemdata.TransactionDate} {itemdata.TransactionTime}")); //交易时间
bs.CreateTime = DateTime.Now;
//await tenantDb.Insertable(bs).ExecuteCommandAsync();
datalist.Add(bs);

@ -1,4 +1,4 @@
using DS.WMS.Core.Invoice.Entity;
using DS.WMS.Core.Fee.Entity;
using DS.WMS.Core.QuarztJobs.Dtos;
using DS.WMS.Core.QuarztJobs.Interface;
using DS.WMS.Core.QuarztJobs.Other;

@ -66,6 +66,14 @@ public class BankReq
/// 备注
/// </summary>
public string Note { get; set; } = "";
/// <summary>
/// 银行地址
/// </summary>
public string BankAddress { get; set; }
/// <summary>
/// ABA代码
/// </summary>
public string ABA { get; set; }
}

@ -68,4 +68,12 @@ public class BankRes
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 银行地址
/// </summary>
public string BankAddress { get; set; }
/// <summary>
/// ABA代码
/// </summary>
public string ABA { get; set; }
}

@ -73,5 +73,16 @@ namespace DS.WMS.Core.Sys.Entity
/// </summary>
[SugarColumn(ColumnDescription = "状态")]
public StatusEnum? Status { get; set; } = StatusEnum.Enable;
/// <summary>
/// 银行地址
/// </summary>
[SugarColumn(ColumnDescription = "银行地址", IsNullable = true, Length = 200)]
public string BankAddress { get; set; }
/// <summary>
/// ABA代码
/// </summary>
[SugarColumn(ColumnDescription = "ABA代码", IsNullable = true, Length = 100)]
public string ABA { get; set; }
}
}

@ -195,9 +195,7 @@ public class ClientCommonService : IClientCommonService
var conditions = new List<IConditionalModel>();
var query = tenantDb.Queryable<InfoClient>();
(query, _, conditions) = await commonService.GetSpecialVisibleDataRuleFilter<InfoClient>(query, tenantDb);
//new List<ConditionalCollections>()
(query, _, conditions) = await commonService.GetSpecialVisibleDataRuleFilter<InfoClient>(query, tenantDb);
var userids = new List<string>();
if (conditions.Count>0)
{
@ -1271,10 +1269,37 @@ public class ClientCommonService : IClientCommonService
public async Task<DataResult<List<ClientSelectRes>>> GetClientListByCode(string code = "", string queryKey = "")
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var conditions = new List<IConditionalModel>();
var query = tenantDb.Queryable<InfoClient>();
(query, _, conditions) = await commonService.GetSpecialVisibleDataRuleFilter<InfoClient>(query, tenantDb);
var userids = new List<string>();
if (conditions.Count > 0)
{
foreach (ConditionalTree item in conditions)
{
Console.WriteLine(item.ConditionalList);
if (item.ConditionalList.Count > 0)
{
foreach (var item1 in item.ConditionalList)
{
var temp = item1.Value as SqlSugar.ConditionalModel;
if (temp.FieldName == "Stakeholders")
{
userids = temp.FieldValue.Split(',').ToList();
}
}
}
}
}
if (userids.Count == 0)
{
userids.Add(user.UserId);
}
//code = code.ToLower();
var data = await tenantDb.Queryable<InfoClient>()//.Where(a=> tenantDb.Ado.SqlQuery<dynamic>(sql, new SugarParameter($"@ClientId", a.Id)).Contains(user.UserId))
var data = await query//tenantDb.Queryable<InfoClient>()//.Where(a=> tenantDb.Ado.SqlQuery<dynamic>(sql, new SugarParameter($"@ClientId", a.Id)).Contains(user.UserId))
.InnerJoin<InfoClientTag>((a, b) => a.Id == b.ClientId)
.Where((a, b) => a.Status == StatusEnum.Enable.ToEnumInt())
.Where((a, b) => a.Status == StatusEnum.Enable.ToEnumInt() || SqlFunc.Subqueryable<InfoClientStakeholder>().Where("SYSDATE() BETWEEN StartDate and EndDate").Where(c => c.ClientId == a.Id && userids.Contains(c.CreateBy.ToString())).Any())
.WhereIF(!string.IsNullOrEmpty(code) && code == "carrier", (a, b) => b.IsCarrier == true)
.WhereIF(!string.IsNullOrEmpty(code) && code == "yard", (a, b) => b.IsYard == true)
.WhereIF(!string.IsNullOrEmpty(code) && code == "booking", (a, b) => b.IsBooking == true)
@ -1305,12 +1330,13 @@ public class ClientCommonService : IClientCommonService
EnShortName = a.EnShortName,
BLContent = a.BLContent,
PinYinCode = a.ShortName + "(" + a.CodeName + ")",
IsFrozen = a.IsFrozen,
}
)
.MergeTable()
.Mapper(it =>
{
it.UserIds = tenantDb.Queryable<InfoClientStakeholder>().Where(c => c.StartDate <= DateTime.Now && c.EndDate >= DateTime.Now && c.ClientId == it.Id).Select(n => n.CreateBy).ToList();
//it.UserIds = tenantDb.Queryable<InfoClientStakeholder>().Where(c => c.StartDate <= DateTime.Now && c.EndDate >= DateTime.Now && c.ClientId == it.Id).Select(n => n.CreateBy).ToList();
})
.OrderBy(x => x.CodeName).Take(20).WithCache($"{SqlSugarCacheConst.InfoClient}{user.TenantId}", SqlSugarCacheConst.CacheDurationInSeconds).ToListAsync();

@ -1629,7 +1629,7 @@ public class CommonService : ICommonService
var ruleInfo = tenantDb.Queryable<CodeDataRuleTemplate>().First(x => x.Id == (long)rule.VisibleTemplateId);
if (ruleInfo.RuleScope == "all")
{
return (queryable.ClearFilter<IOrgId>(), ruleInfo.RuleScope, otherContidions); //查询全部
return (queryable.ClearFilter<IOrgId>().ClearFilter<ISharedOrgId>(), ruleInfo.RuleScope, otherContidions); //查询全部
}
else if (ruleInfo.RuleScope == "none")
{
@ -1707,14 +1707,14 @@ public class CommonService : ICommonService
// db.ConfigQuery.Context.Utilities.JsonToConditionalModels(
// JsonConvert.SerializeObject(conditions));
var additions = ConvertConditionalModel(ruleInfo.AdditionDataRules);
return (queryable.ClearFilter<IOrgId>().Where(conditionalModels), ruleInfo.RuleScope, additions); //查询指定机构
return (queryable.ClearFilter<IOrgId>().ClearFilter<ISharedOrgId>().Where(conditionalModels), ruleInfo.RuleScope, additions); //查询指定机构
}
else if (ruleInfo.RuleScope == "select_user")
{
//var conditionalModels = ConvertConditionalModel(ruleInfo.DataRules);
var conditionalModels = ConvertConditionalModel(ruleInfo.DataRules);
var additions = ConvertConditionalModel(ruleInfo.AdditionDataRules);
return (queryable.ClearFilter<IOrgId>().Where(conditionalModels), ruleInfo.RuleScope, additions);//查询指定人员
return (queryable.ClearFilter<IOrgId>().ClearFilter<ISharedOrgId>().Where(conditionalModels), ruleInfo.RuleScope, additions);//查询指定人员
}
else if (ruleInfo.RuleScope == "customize")
@ -1754,10 +1754,11 @@ public class CommonService : ICommonService
{
var userInfo = db.Queryable<SysUser>().First(x => x.Id == long.Parse(user.UserId));
var deptUsers = db.Queryable<SysUser>().Where(x => x.DeptId == userInfo.DeptId).Select(n=>n.Id).ToList();
var deptUsers = db.Queryable<SysUser>().Where(x => x.DeptId == userInfo.DeptId).Select(n=>n.Id).ToArray();
//rules = rules.Replace(DataRuleConst.LoginDept, deptUsers.ToString());
//rules = rules.Replace(DataRuleConst.LoginDept, "(" + string.Join(",", deptUsers) + ")");
//rules = rules.Replace(DataRuleConst.LoginDept, userInfo.DeptId.ToString());
rules = rules.Replace(DataRuleConst.LoginDept, string.Join(", ", deptUsers));
rules = rules.Replace(DataRuleConst.LoginDept, string.Join(",", deptUsers));
}
var conditions = rules.ConvertSqlSugarExpression();

@ -0,0 +1,48 @@
using DS.Module.Core;
using DS.WMS.Core.Invoice.Dtos;
using DS.WMS.Core.Invoice.Interface;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace DS.WMS.FeeApi.Controllers
{
/// <summary>
/// 银行流水相关
/// </summary>
public class BankStatementController : ApiController
{
readonly IBankStatementService _BankStatement;
/// <summary>
/// 初始化
/// </summary>
/// <param name="auditService"></param>
public BankStatementController(IBankStatementService bankStatement)
{
_BankStatement = bankStatement;
}
/// <summary>
/// 获取银行流水列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost, Route("GetBankStatementList")]
public async Task<DataResult<List<GetBankStatementOutPut>>> GetBankStatementList(PageRequest<GetBankStatementInput> model)
{
return await _BankStatement.GetBankStatementList(model);
}
/// <summary>
/// 获取银行账号列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost, Route("GetBankAccountList")]
public async Task<DataResult<List<GetBankAccountListOutput>>> GetBankAccountList()
{
return await _BankStatement.GetBankAccountList();
}
}
}

@ -25,16 +25,15 @@ namespace DS.WMS.FeeApi.Controllers
_ininvoice = InvoiceService;
}
/// <summary>
/// 获取进项发票列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost, Route("GetList")]
public async Task<DataResult<List<GetListOutPut>>> GetList(PageRequest<GetListInput> model)
[HttpPost, Route("GetInInvoicet")]
public async Task<DataResult<List<GetInInvoiceListOutPut>>> GetInInvoicetList(PageRequest<GetInInvoicetInput> model)
{
return await _ininvoice.GetListAsync(model);
return await _ininvoice.GetInInvoicetList(model);
}
/// <summary>
@ -42,10 +41,10 @@ namespace DS.WMS.FeeApi.Controllers
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost, Route("GetDetailInfo")]
public async Task<DataResult<List<InInvoiceDetail>>> GetDetailInfo(PageRequest<GetDetailInfoInput> model)
[HttpPost, Route("GetInInvoicetDetail")]
public async Task<DataResult<GetDetailInfo>> GetInInvoicetDetailInfo(GetDetailInfoInput model)
{
return await _ininvoice.GetDetailInfo(model);
return await _ininvoice.GetInInvoicetDetailInfo(model);
}
}
}

@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project>
<PropertyGroup>
<_PublishTargetUrl>D:\Publish\DS8\FeeApi</_PublishTargetUrl>
<History>True|2024-10-18T06:59:49.1162741Z||;True|2024-10-16T16:29:15.3185348+08:00||;True|2024-10-16T14:12:58.1754214+08:00||;True|2024-10-16T14:08:06.5805581+08:00||;True|2024-10-16T11:55:29.8273176+08:00||;True|2024-10-15T17:39:40.4090324+08:00||;True|2024-10-15T17:06:43.0181578+08:00||;True|2024-10-15T15:07:38.9601925+08:00||;True|2024-10-12T13:33:32.4412583+08:00||;True|2024-10-11T17:00:54.0916209+08:00||;True|2024-10-11T10:54:50.3307087+08:00||;True|2024-10-11T10:45:07.8181500+08:00||;True|2024-10-11T10:40:44.2066046+08:00||;True|2024-10-11T10:21:25.7226983+08:00||;True|2024-10-11T10:09:05.5257478+08:00||;True|2024-10-10T14:58:29.1228618+08:00||;True|2024-10-10T14:05:59.4501659+08:00||;True|2024-10-10T11:08:58.9765455+08:00||;True|2024-10-08T17:59:07.5583287+08:00||;True|2024-09-27T19:01:59.6945760+08:00||;True|2024-09-27T18:45:48.2812860+08:00||;True|2024-09-27T18:10:25.5697467+08:00||;True|2024-09-27T17:39:06.3169139+08:00||;True|2024-09-27T17:30:14.1043193+08:00||;True|2024-09-27T16:02:09.0703159+08:00||;True|2024-09-27T15:53:05.1789245+08:00||;True|2024-09-27T15:32:52.1934490+08:00||;True|2024-09-27T13:51:24.9197626+08:00||;True|2024-09-27T13:48:17.2817346+08:00||;True|2024-09-27T11:51:46.8193040+08:00||;True|2024-09-27T10:58:33.1059648+08:00||;True|2024-09-27T10:37:35.0336563+08:00||;False|2024-09-27T10:31:52.6302264+08:00||;True|2024-09-26T19:50:15.5513195+08:00||;True|2024-09-26T19:47:14.0781788+08:00||;True|2024-09-26T19:01:26.5428388+08:00||;True|2024-09-26T18:35:28.7455319+08:00||;True|2024-09-26T18:24:30.8084807+08:00||;True|2024-09-26T18:20:47.3005460+08:00||;True|2024-09-26T18:04:39.8012913+08:00||;True|2024-09-26T17:48:13.8526872+08:00||;True|2024-09-26T16:08:20.1746970+08:00||;True|2024-09-26T16:01:01.1501975+08:00||;False|2024-09-26T16:00:34.1516745+08:00||;True|2024-09-26T14:33:03.4007570+08:00||;True|2024-09-25T19:14:27.8906774+08:00||;True|2024-09-25T18:57:40.1435131+08:00||;True|2024-09-25T17:38:44.0915841+08:00||;True|2024-09-25T15:33:58.4630618+08:00||;True|2024-09-25T15:10:31.3022063+08:00||;False|2024-09-25T14:14:40.9640545+08:00||;True|2024-09-25T10:09:32.2558600+08:00||;True|2024-09-25T09:59:17.1525160+08:00||;False|2024-09-25T09:57:58.7265103+08:00||;False|2024-09-25T09:53:36.7732713+08:00||;False|2024-09-24T18:40:10.0166224+08:00||;True|2024-09-24T08:59:56.1995425+08:00||;True|2024-09-23T18:07:54.7222163+08:00||;True|2024-09-23T17:23:57.7568406+08:00||;True|2024-09-23T16:28:49.3169826+08:00||;True|2024-09-23T15:57:31.8052490+08:00||;True|2024-09-23T11:47:21.1445419+08:00||;True|2024-09-23T09:24:36.0732229+08:00||;True|2024-09-21T11:59:19.0549926+08:00||;True|2024-09-21T11:24:32.4451752+08:00||;True|2024-09-21T10:39:11.5297411+08:00||;True|2024-09-20T18:24:31.7827684+08:00||;True|2024-09-19T17:55:53.1666689+08:00||;True|2024-09-19T17:42:47.9061485+08:00||;True|2024-09-19T16:08:21.7225571+08:00||;False|2024-09-19T14:15:42.9318446+08:00||;True|2024-09-19T11:20:03.5567568+08:00||;True|2024-09-18T11:35:18.1509724+08:00||;True|2024-09-18T09:08:59.1152574+08:00||;True|2024-09-14T15:48:22.9374486+08:00||;True|2024-09-14T15:42:19.0503983+08:00||;True|2024-09-14T11:51:53.3339222+08:00||;True|2024-09-14T11:41:38.3542237+08:00||;True|2024-09-14T11:19:13.1037012+08:00||;True|2024-09-13T14:31:12.4598160+08:00||;True|2024-09-13T10:44:56.1241214+08:00||;False|2024-09-13T10:44:26.6088271+08:00||;False|2024-09-13T10:44:06.1615137+08:00||;False|2024-09-13T10:43:19.2432517+08:00||;False|2024-09-13T10:38:18.1663387+08:00||;True|2024-09-06T18:49:17.9435308+08:00||;True|2024-09-06T17:01:39.6646353+08:00||;True|2024-09-06T10:27:36.9990456+08:00||;True|2024-09-06T09:48:23.4236094+08:00||;True|2024-09-05T13:57:23.8452431+08:00||;True|2024-09-05T10:21:34.6675149+08:00||;True|2024-09-05T09:12:44.5610882+08:00||;True|2024-09-04T10:07:38.3707398+08:00||;True|2024-09-04T09:52:47.0574599+08:00||;True|2024-09-03T16:41:23.7516960+08:00||;True|2024-09-03T15:22:31.8718097+08:00||;True|2024-09-03T10:01:09.7656702+08:00||;False|2024-09-03T09:46:46.8956531+08:00||;True|2024-09-02T17:07:41.0268500+08:00||;True|2024-09-02T13:50:22.0203254+08:00||;</History>
<History>True|2024-10-21T06:30:54.4520206Z||;True|2024-10-21T10:19:05.7405749+08:00||;True|2024-10-18T16:11:05.4049685+08:00||;True|2024-10-18T14:59:49.1162741+08:00||;True|2024-10-16T16:29:15.3185348+08:00||;True|2024-10-16T14:12:58.1754214+08:00||;True|2024-10-16T14:08:06.5805581+08:00||;True|2024-10-16T11:55:29.8273176+08:00||;True|2024-10-15T17:39:40.4090324+08:00||;True|2024-10-15T17:06:43.0181578+08:00||;True|2024-10-15T15:07:38.9601925+08:00||;True|2024-10-12T13:33:32.4412583+08:00||;True|2024-10-11T17:00:54.0916209+08:00||;True|2024-10-11T10:54:50.3307087+08:00||;True|2024-10-11T10:45:07.8181500+08:00||;True|2024-10-11T10:40:44.2066046+08:00||;True|2024-10-11T10:21:25.7226983+08:00||;True|2024-10-11T10:09:05.5257478+08:00||;True|2024-10-10T14:58:29.1228618+08:00||;True|2024-10-10T14:05:59.4501659+08:00||;True|2024-10-10T11:08:58.9765455+08:00||;True|2024-10-08T17:59:07.5583287+08:00||;True|2024-09-27T19:01:59.6945760+08:00||;True|2024-09-27T18:45:48.2812860+08:00||;True|2024-09-27T18:10:25.5697467+08:00||;True|2024-09-27T17:39:06.3169139+08:00||;True|2024-09-27T17:30:14.1043193+08:00||;True|2024-09-27T16:02:09.0703159+08:00||;True|2024-09-27T15:53:05.1789245+08:00||;True|2024-09-27T15:32:52.1934490+08:00||;True|2024-09-27T13:51:24.9197626+08:00||;True|2024-09-27T13:48:17.2817346+08:00||;True|2024-09-27T11:51:46.8193040+08:00||;True|2024-09-27T10:58:33.1059648+08:00||;True|2024-09-27T10:37:35.0336563+08:00||;False|2024-09-27T10:31:52.6302264+08:00||;True|2024-09-26T19:50:15.5513195+08:00||;True|2024-09-26T19:47:14.0781788+08:00||;True|2024-09-26T19:01:26.5428388+08:00||;True|2024-09-26T18:35:28.7455319+08:00||;True|2024-09-26T18:24:30.8084807+08:00||;True|2024-09-26T18:20:47.3005460+08:00||;True|2024-09-26T18:04:39.8012913+08:00||;True|2024-09-26T17:48:13.8526872+08:00||;True|2024-09-26T16:08:20.1746970+08:00||;True|2024-09-26T16:01:01.1501975+08:00||;False|2024-09-26T16:00:34.1516745+08:00||;True|2024-09-26T14:33:03.4007570+08:00||;True|2024-09-25T19:14:27.8906774+08:00||;True|2024-09-25T18:57:40.1435131+08:00||;True|2024-09-25T17:38:44.0915841+08:00||;True|2024-09-25T15:33:58.4630618+08:00||;True|2024-09-25T15:10:31.3022063+08:00||;False|2024-09-25T14:14:40.9640545+08:00||;True|2024-09-25T10:09:32.2558600+08:00||;True|2024-09-25T09:59:17.1525160+08:00||;False|2024-09-25T09:57:58.7265103+08:00||;False|2024-09-25T09:53:36.7732713+08:00||;False|2024-09-24T18:40:10.0166224+08:00||;True|2024-09-24T08:59:56.1995425+08:00||;True|2024-09-23T18:07:54.7222163+08:00||;True|2024-09-23T17:23:57.7568406+08:00||;True|2024-09-23T16:28:49.3169826+08:00||;True|2024-09-23T15:57:31.8052490+08:00||;True|2024-09-23T11:47:21.1445419+08:00||;True|2024-09-23T09:24:36.0732229+08:00||;True|2024-09-21T11:59:19.0549926+08:00||;True|2024-09-21T11:24:32.4451752+08:00||;True|2024-09-21T10:39:11.5297411+08:00||;True|2024-09-20T18:24:31.7827684+08:00||;True|2024-09-19T17:55:53.1666689+08:00||;True|2024-09-19T17:42:47.9061485+08:00||;True|2024-09-19T16:08:21.7225571+08:00||;False|2024-09-19T14:15:42.9318446+08:00||;True|2024-09-19T11:20:03.5567568+08:00||;True|2024-09-18T11:35:18.1509724+08:00||;True|2024-09-18T09:08:59.1152574+08:00||;True|2024-09-14T15:48:22.9374486+08:00||;True|2024-09-14T15:42:19.0503983+08:00||;True|2024-09-14T11:51:53.3339222+08:00||;True|2024-09-14T11:41:38.3542237+08:00||;True|2024-09-14T11:19:13.1037012+08:00||;True|2024-09-13T14:31:12.4598160+08:00||;True|2024-09-13T10:44:56.1241214+08:00||;False|2024-09-13T10:44:26.6088271+08:00||;False|2024-09-13T10:44:06.1615137+08:00||;False|2024-09-13T10:43:19.2432517+08:00||;False|2024-09-13T10:38:18.1663387+08:00||;True|2024-09-06T18:49:17.9435308+08:00||;True|2024-09-06T17:01:39.6646353+08:00||;True|2024-09-06T10:27:36.9990456+08:00||;True|2024-09-06T09:48:23.4236094+08:00||;True|2024-09-05T13:57:23.8452431+08:00||;True|2024-09-05T10:21:34.6675149+08:00||;True|2024-09-05T09:12:44.5610882+08:00||;True|2024-09-04T10:07:38.3707398+08:00||;True|2024-09-04T09:52:47.0574599+08:00||;True|2024-09-03T16:41:23.7516960+08:00||;True|2024-09-03T15:22:31.8718097+08:00||;True|2024-09-03T10:01:09.7656702+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

@ -209,7 +209,7 @@ public class ClientInfoController : ApiController
var stream = file.OpenReadStream();
var rows = (await MiniExcel.QueryAsync(stream, excelType: ExcelType.XLSX, startCell: "A2")).ToList();
StringBuilder sb = new StringBuilder();
StringBuilder sb = new();
List<InfoClientModel> list = [];
try
{
@ -246,7 +246,9 @@ public class ClientInfoController : ApiController
Wechat = item["AE"]?.ToString(),
Email = item["AF"]?.ToString(),
ContactName = item["AG"]?.ToString(),
NFDS = item["AP"] == null ? null : int.Parse(item["AP"].ToString()),
Country = item["AH"]?.ToString(),
LegalPerson = item["AI"]?.ToString(),
//NFDS = item["AP"] == null ? null : int.Parse(item["AP"].ToString()),
IsCustomer = true
};
@ -301,16 +303,18 @@ public class ClientInfoController : ApiController
TaxID = item["I"]?.ToString(),
Code = item["J"]?.ToString(),
StlType = item["K"]?.ToString(),
Attribute = item["V"]?.ToString(),
Business = item["L"]?.ToString(),
OP = item["M"]?.ToString(),
Sale = item["N"]?.ToString(),
Attribute = item["L"]?.ToString(),
Business = item["M"]?.ToString(),
OP = item["N"]?.ToString(),
Sale = item["O"]?.ToString(),
CustomerService = item["P"]?.ToString(),
Authenticator = item["Q"]?.ToString(),
PrepaidRMB = item["R"] == null ? 0 : decimal.Parse(item["R"].ToString()),
PrepaidUSD = item["S"] == null ? 0 : decimal.Parse(item["S"].ToString()),
Quota = item["T"] == null ? 0 : decimal.Parse(item["T"].ToString()),
RestQuota = item["U"] == null ? 0 : decimal.Parse(item["U"].ToString()),
Country = item["V"]?.ToString(),
LegalPerson = item["W"]?.ToString(),
ContactName = item["B"]?.ToString(),
IsSupplier = true
};

Loading…
Cancel
Save