#TRS-ZS-81 客户信息配置

This commit is contained in:
汤旺
2024-05-31 15:33:26 +08:00
parent effc5b066a
commit 4fe97de1b6
10 changed files with 26 additions and 229 deletions
-42
View File
@@ -1,42 +0,0 @@
using Microsoft.Extensions.Logging;
using YLErp.DataBase.Interceptors;
namespace YLErp.DataBase
{
public class APEXOracleContext:DbContext
{
private LogLevel _logLevel;
[System.Diagnostics.Conditional("DEBUG")]
public void SetDebugLog()
{
_logLevel = LogLevel.Debug;
}
protected string GetConnectionString() => AppManager.GetConnectionString("apex_oracle");
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var connectionString = GetConnectionString();
optionsBuilder.LogTo(log =>
{
if (_logLevel == LogLevel.Debug)
{
System.Diagnostics.Debug.WriteLine(log);
}
});
if (_logLevel == LogLevel.Debug)
{
optionsBuilder.AddInterceptors(DgDbCommandInterceptor.Default);
}
optionsBuilder.UseOracle(connectionString);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema(Environment.GetEnvironmentVariable("OrcaleDatabaseConfig_Schema")); // 设置默认模式
// 配置实体和其他模型设置
}
// 声明数据库中的实体集合
public DbSet<AMR_N042_ENT_BASEINFO_COPY> ClientAMRNetBaseInfos { get; set; }
}
}
@@ -345,61 +345,10 @@ namespace YLErp.Modules.ClientModule
return string.Join(",", result);
}),
new ExcelHelper.DataColumnModel("证件类型", "IdCardType", (cv, obj) =>
{
return Enum.GetName(typeof(IdCardTypeEnum), cv);
}),
new ExcelHelper.DataColumnModel("证件号码", "IdCardNo", typeof(string)),
new ExcelHelper.DataColumnModel("电子邮箱", "Email", typeof(string)),
new ExcelHelper.DataColumnModel("是否接收相关邮件", "IsReceiveEmail", (cv, obj) =>
{
if (cv!=null)
{
var status = (int)cv;
return status == 1 ? "是" : "否";
}else
{
return null;
}
}),
new ExcelHelper.DataColumnModel("联系电话", "PhoneNumber", typeof(string)),
new ExcelHelper.DataColumnModel("传真", "Fax", typeof(string)),
new ExcelHelper.DataColumnModel("联系地址", "Address", typeof(string))
};
if (!(PS.Config.Company == CompanyEnum.) && !(PS.Config.Company == CompanyEnum.))
{
dc.Add(new ExcelHelper.DataColumnModel("证件有效日期", "IdCardEffectiveDate", (cv, obj) =>
{
var date = (DateTime?)cv;
if (date != null)
{
var flag = ((DateTime)date).ToString("yyyy-MM-dd") == "3000-12-31";
return flag ? "长期有效" : ((DateTime)date).ToString("yyyy-MM-dd");
}
else
{
return null;
}
}));
}
if (PS.Config.Company == CompanyEnum. || PS.Config.Company == CompanyEnum.)
{
dc.Add(new ExcelHelper.DataColumnModel("证件到期日", "DeadLine", (cv, obj) =>
{
var date = (DateTime?)cv;
return date != null ? ((DateTime)date).ToString("yyyy-MM-dd") : "";
}));
dc.Add(new ExcelHelper.DataColumnModel("授权到期日", "AuthorizeEndDate", (cv, obj) =>
{
var date = (DateTime?)cv;
return date != null ? ((DateTime)date).ToString("yyyy-MM-dd") : "";
}));
if (PS.Config.Company == CompanyEnum.)
{
dc.Add(new ExcelHelper.DataColumnModel("微信号", "Weixin", typeof(string)));
}
}
new ExcelHelper().ListToExcel<ClientDuty>(dc.ToArray(), ret, "客户人员信息", true, out var buffer);
return buffer;
}
@@ -1709,19 +1709,8 @@ namespace YLErp.Modules.ClientModule
}
}
if (IsReceiveEmailString == "是")
{
IsReceiveEmail = 1;
}
else if (!string.IsNullOrEmpty(IsReceiveEmailString) && IsReceiveEmailString != "否")
{
return "第" + rowNum + "行是否接收邮件:" + IsReceiveEmailString + "不合法,导入失败";
}
else
{
IsReceiveEmail = 0;
}
//默认为1
IsReceiveEmail = 1;
if (DbContext.client_black.Any(c => c.Name == Name))
{
return "" + Name + "客户已经存在于黑名单中";
-20
View File
@@ -3478,25 +3478,5 @@ namespace YLErp.Web.Controllers
new ClientProcessLogService(CurUser).revertBankDutyFile(clientId);
return JsonSuccess();
}
/// <summary>
/// 根据客户名称模糊匹配数据
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public JsonResult SearchClientUsccCodes(string name)
{
if (string.IsNullOrEmpty(name))
{
return JsonSuccess();
}
using APEXOracleContext aPEXOracleContext = new APEXOracleContext();
var schame = Environment.GetEnvironmentVariable("OrcaleDatabaseConfig_Schema");
var sqlstr = $"SELECT REC_ID,ENT_NAME,USCC_CODE FROM {schame}.AMR_N042_ENT_BASEINFO_COPY WHERE CONTAINS(ENT_NAME, '{name}',1) > 0 AND ROWNUM <= 10";
// var sqlstr = $"SELECT REC_ID,ENT_NAME,USCC_CODE FROM {schame}.AMR_N042_ENT_BASEINFO_COPY WHERE ENT_NAME like '{name}%' AND ROWNUM <= 10";
var conn= aPEXOracleContext.Database.GetDbConnection();
var usccCodes = conn.Query<AMR_N042_ENT_BASEINFO_COPY>(sqlstr);
//var usccCodes= aPEXOracleContext.ClientAMRNetBaseInfos.Where(x => x.ENT_NAME.StartsWith(name)).Select(s=>new {s.ENT_NAME,s.USCC_CODE}).ToList();
return JsonSuccess("", usccCodes);
}
}
}
+13 -13
View File
@@ -22,25 +22,25 @@
<option v-for="item in viewData.ContactType" v-bind:value="item.value">{{item.text}}</option>
</select> <span style="color:red">*</span>
</div>
<div class="form-group">
<div class="form-group" style="display:none">
<label class="formlabel">证件类型</label>
<select class="text-box" type="text" name="IdCardType" v-model="duty.IdCardType">
<option v-for="item in viewData.IdCardType" v-bind:value="item.value">{{item.text}}</option>
</select>
</div>
<div class="form-group">
<div class="form-group" style="display:none">
<label class="formlabel">证件号码</label>
<input class="text-box" type="text" name="IdCardNo" v-model="duty.IdCardNo" />
</div>
<div class="form-group" v-show="isIdCardDate">
<div class="form-group" style="display:none">
<label class="formlabel">证件有效日期</label>
<vue-datepicker id="IdCardDate" v-model="duty.IdCardDate" v-bind:holiday="true" class="text-box" />
</div>
<div class="form-group" v-show="pageData.isDongGuan">
<div class="form-group" style="display:none">
<label class="formlabel">证件起始日期</label>
<vue-datepicker id="IdCardStartDate" v-model="duty.IdCardStartDate" class="text-box" />
</div>
<div class="form-group" style="overflow: auto;" v-if="!pageData.isZhaoZheng&&!pageData.isDongWu">
<div class="form-group" style="display:none">
<div style="width: 350px;float:left">
<label class="formlabel">证件有效日期</label>
<input class="text-box" disabled="disabled" v-show="duty.IdCardEffectiveDateStr=='30001231'" type="text" id="IdCardEffectiveDateStr" value="长期有效" />
@@ -51,39 +51,39 @@
</div>
</div>
<div class="form-group">
<div class="form-group" >
<label class="formlabel">电子邮箱</label>
<input class="text-box" type="text" name="Email" v-model="duty.Email" />
</div>
<div class="form-group">
<div class="form-group" style="display:none">
<label class="formlabel">是否接收相关邮件</label>
<select name="IsReceiveEmail" v-model="duty.IsReceiveEmail">
<option value="0">否</option>
<option value="1">是</option>
</select>
</div>
<div class="form-group">
<div class="form-group" style="display:none">
<label class="formlabel">联系电话</label>
<input class="text-box" type="text" name="PhoneNumber" v-model="duty.PhoneNumber" />
</div>
<div class="form-group">
<div class="form-group" style="display:none">
<label class="formlabel">传真</label>
<input class="text-box" type="text" name="Fax" v-model="duty.Fax" />
</div>
<div class="form-group">
<div class="form-group" style="display:none">
<label class="formlabel">联系地址</label>
<input class="text-box" type="text" name="Address" v-model="duty.Address" />
</div>
<div class="form-group">
<div class="form-group" style="display:none">
<label class="formlabel" v-if="!pageData.isZhaoZheng&&!pageData.isDongWu">有效日期</label>
<label class="formlabel" v-if="pageData.isZhaoZheng||pageData.isDongWu">证件到期日</label>
<vue-datepicker id="duty_DeadLine" v-model="duty.DeadLine" v-bind:holiday="true" class="text-box" />
</div>
<div class="form-group" v-if="pageData.isZhaoZheng||pageData.isDongWu">
<div class="form-group" style="display:none">
<label class="formlabel">授权到期日</label>
<vue-datepicker id="duty_AuthorizeEndDate" v-model="duty.AuthorizeEndDate" v-bind:holiday="true" class="text-box" />
</div>
<div class="form-group" v-if="pageData.isDongWu">
<div class="form-group" style="display:none">
<label class="formlabel">微信号</label>
<input class="text-box" type="text" name="Fax" v-model="duty.Weixin" />
</div>
+6 -29
View File
@@ -15,42 +15,19 @@
<thead>
<tr>
<th style="width: 70px">姓名</th>
<th style="width: 100px; padding-left: 0px; padding-right: 0px; ">职责类型</th>
<th>证件类型</th>
<th style="width: 140px; padding-left: 0px; padding-right: 0px; ">证件号码</th>
<th v-show="isIdCardDate">证件有效日期</th>
<th style="width: 105px">联系电话</th>
<th style="width:60px; padding-left:0px;padding-right:0px;">传真</th>
<th style="width: 275px; padding-left: 0px; padding-right: 0px; ">电子邮箱</th>
<th style="width: 55px; padding-left: 0px; padding-right: 0px; ">接收邮件</th>
<th style="width: 80px;">联系地址</th>
<th style="width: 55px; padding-left: 0px; padding-right: 0px; " v-if="!pageData.isZhaoZheng&&!pageData.isDongWu">有效日期</th>
<th style="width: 55px; padding-left: 0px; padding-right: 0px; " v-if="!pageData.isZhaoZheng&&!pageData.isDongWu&&!pageData.isZheQi">证件有效日期</th>
<th style="width: 75px; padding-left: 0px; padding-right: 0px; " v-if="pageData.isZhaoZheng||pageData.isDongWu">证件到期日</th>
<th style="width: 75px; padding-left: 0px; padding-right: 0px; " v-if="pageData.isZhaoZheng||pageData.isDongWu">授权到期日</th>
<th style="width: 40px; padding-left: 0px; padding-right: 0px; " v-if="pageData.isDongWu">微信号</th>
<th style="width:60px; padding-left:0px;padding-right:0px;">备注</th>
<th style="width:45px; padding-left:0px;padding-right:0px;">操作</th>
<th style="width: 200px; padding-left: 0px; padding-right: 0px; ">职责类型</th>
<th style="width: 375px; padding-left: 0px; padding-right: 0px; ">电子邮箱</th>
<th style="width:50%; padding-left:0px;padding-right:0px;">备注</th>
<th style="width:10%; padding-left:0px;padding-right:0px;">操作</th>
</tr>
</thead>
<tbody>
<tr v-for="item in dutyList2">
<td>{{item.ContactName}}</td>
<td style="padding-left:0px;padding-right:0px;">{{item.ContactTypeStr}}</td>
<td>{{item.IdCardType}}</td>
<td style="padding-left:0px;padding-right:0px;">{{item.IdCardNo}}</td>
<td v-show="isIdCardDate">{{item.IdCardDate}}</td>
<td>
<div v-for="item2 in item.PhoneNumber">{{item2}}</div>
</td>
<td>{{item.Fax}}</td>
<td style="padding-left:0px;padding-right:0px;">{{item.EmailStr}}</td>
<td>{{item.IsReceiveEmail === 1?"是":"否"}}</td>
<td>{{item.Address}}</td>
<td style="padding-left:0px;padding-right:0px;">{{item.DeadLine}}</td>
<td style="padding-left:0px;padding-right:0px;" v-if="!pageData.isZhaoZheng&&!pageData.isDongWu&&!pageData.isZheQi">{{item.IdCardEffectiveDateStr == "30001231"?"长期有效":item.IdCardEffectiveDate}}</td>
<td style="padding-left:0px;padding-right:0px;" v-if="pageData.isZhaoZheng||pageData.isDongWu">{{item.AuthorizeEndDate}}</td>
<td style="padding-left:0px;padding-right:0px;" v-if="pageData.isDongWu">{{item.Weixin}}</td>
<td>{{item.Remarks}}</td>
<td style="padding-left:0px;padding-right:0px;">
<template v-if="page.canEditList">
+1
View File
@@ -163,6 +163,7 @@
<_AppFiles Remove="App_Docs\导入模板\TRS用簿记账户导入模板.xlsx" />
<_AppFiles Remove="App_Docs\导入模板\互换日终估值导入模板.xlsx" />
<_AppFiles Remove="App_Docs\导入模板\互换预付金率导入模板.xlsx" />
<_AppFiles Remove="App_Docs\导入模板\客户导入_基本信息模板1.xlsx" />
<_AppFiles Remove="App_Docs\导入模板\浮动利率特殊设置导入模板.xlsx" />
<_AppFiles Remove="App_Docs\导入模板\浮动利率默认设置导入模板.xlsx" />
<_AppFiles Remove="App_Docs\导入模板\阶梯费率导入模板.xlsx" />
@@ -313,7 +313,7 @@ const dutyVue = (function () {
if (true) {
}
page.duty.IsReceiveEmail = "0";
page.duty.IsReceiveEmail = "1";
page.duty.IdCardType = 1;
return {
@@ -1196,6 +1196,7 @@ function createEditVue() {
$('#ef_AdminRegisteredNum').attr("v-bind:disabled", "disableAdminRegisteredNum");
$('#ef_AdminFullName').attr("v-bind:disabled", "disableAdminFullName");
$('#ef_ProductNumber').attr("v-bind:disabled", "client.ClientType!=='产品'");
$('#ef_Manager').attr("v-bind:disabled", "client.ClientType!=='产品'");
$('#ef_RegisteredCapital').attr("v-bind:disabled", "client.ClientType==='自然人'");
$('#ef_RegisteredCapital').prev('label').text("{{labelOfRegisteredCapital}}");
$('#ef_RegisteredAddress').attr("v-bind:disabled", "client.ClientType==='自然人'");
@@ -1606,63 +1607,6 @@ function createTopVue() {
});
}
var previousTerm = ""; // 记录上一次的用户输入
var clientUsccCodes;
//客户名称自动匹配
function initClientNameAjaxData() {
$("#ef_Name").autocomplete({
serviceUrl: function () {
var term = $("#ef_Name").val(); // 获取用户输入的文本
return "/client/SearchClientUsccCodes?name=" + term; // 将用户输入的文本作为参数添加到 URL 中
},
beforeRender: function (container) {
var currentTerm = $("#ef_Name").val(); // 获取当前用户输入的文本
// 检查用户输入是否发生变化
if (currentTerm === previousTerm) {
return false; // 如果用户输入没有变化,则不进行 AJAX 请求
}
previousTerm = currentTerm; // 更新上一次的用户输入
return true; // 允许进行 AJAX 请求和渲染
},
// 在用户选择建议时执行的操作
onSelect: function (suggestion) {
var selectedValue = suggestion.value;
var matchClient = clientUsccCodes.find(function (item) {
return item.ENT_NAME === selectedValue; // 根据 name 属性进行匹配
});
vue.changeClientName(selectedValue);
if (matchClient) {
vue.changeUsccCode(matchClient.USCC_CODE);
}
},
// 在 AJAX 请求成功并返回结果时执行的操作
transformResult: function (response) {
if (response) {
response = JSON.parse(response);
}
var suggestions = transformData(response.obj); // 假设响应数据以 data 字段为例
// 执行您想要的操作,例如处理建议列表或返回转换后的结果
return {
suggestions: suggestions
};
}
});
}
// 转换数据格式的函数
function transformData(data) {
var transformed = []; // 转换后的结果数组
clientUsccCodes = data;
// 根据返回的数据结构,进行相应的转换操作
for (var i = 0; i < data.length; i++) {
// 假设数据结构有 label 和 value 属性
transformed.push({
label: data[i].ENT_NAME,
value: data[i].ENT_NAME
});
}
return transformed;
}
$(function () {
$('body').tooltip({ selector: '.yl-tooltip' });
@@ -1724,5 +1668,4 @@ $(function () {
$(this).addClass("glyphicon-eye-close");
}
});
initClientNameAjaxData();
});