feat(finance): 添加付款账户信息功能

- 新增付款账户信息页面和相关功能
- 添加账户号字段和显示逻辑
- 实现账户号部分隐藏显示
- 更新数据库表结构和映射文件
This commit is contained in:
jjLv 2025-01-06 13:07:32 +08:00
parent b9a814d3be
commit 9ee24dd5f5
7 changed files with 87 additions and 43 deletions

View File

@ -11,4 +11,9 @@ public class PayAccountInfoBean {
String czyName;//操作人名称 String czyName;//操作人名称
String czsj;//操作时间 String czsj;//操作时间
/**
* 账号
*/
String accountNumber;
} }

View File

@ -2,12 +2,12 @@ server.port=2002
#????·?? #????·??
server.servlet.context-path=/yncw server.servlet.context-path=/yncw
#mysql????????? #mysql?????????
#spring.datasource.url=jdbc:mysql://192.168.0.14:1103/yncw1?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true spring.datasource.url=jdbc:mysql://192.168.0.14:1103/yncw1?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
#spring.datasource.username=root spring.datasource.username=root
#spring.datasource.password=dszadmin@ynreal14! spring.datasource.password=dszadmin@ynreal14!
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/yncw_real?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true #spring.datasource.url=jdbc:mysql://127.0.0.1:3306/yncw_real?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
spring.datasource.username=mroot #spring.datasource.username=mroot
spring.datasource.password=bonus@admin123 #spring.datasource.password=bonus@admin123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.max-idle=10 spring.datasource.max-idle=10
spring.datasource.max-wait=60000 spring.datasource.max-wait=60000
@ -21,9 +21,13 @@ mybatis.type-aliases-package=com.bonus.boot.manager.*.entity
# ????????????????????? # ?????????????????????
mybatis.configuration.map-underscore-to-camel-case=true mybatis.configuration.map-underscore-to-camel-case=true
#redis config #redis config
spring.redis.host=127.0.0.1 #spring.redis.host=127.0.0.1
spring.redis.port=6379 #spring.redis.port=6379
spring.redis.password= #spring.redis.password=
spring.redis.host=192.168.0.14
spring.redis.port=2001
spring.redis.password=Dszbns@Redis123!
# ??? # ???
logging.config=classpath:logback-boot.xml logging.config=classpath:logback-boot.xml
log.level.root=info log.level.root=info

View File

@ -10,13 +10,13 @@
<update id="update"> <update id="update">
update ca_bm_pay_account_info update ca_bm_pay_account_info
set name = #{name},remark = #{remarks},oper_user = #{czy},oper_time = now() set name = #{name},remark = #{remarks},oper_user = #{czy},oper_time = now(), account_number = #{accountNumber}
where id = #{id} where id = #{id}
</update> </update>
<update id="deletePayAccountInfo"> <update id="deletePayAccountInfo">
update ca_bm_pay_account_info update ca_bm_pay_account_info
set is_active = '0',oper_user = #{czy},oper_time = now() set is_active = '0',oper_user = #{czy},oper_time = now(), account_number = #{accountNumber}
where id = #{id} where id = #{id}
</update> </update>
@ -33,6 +33,7 @@
select select
cbpai.id, cbpai.id,
cbpai.name, cbpai.name,
cbpai.account_number as accountNumber,
cbpai.remark as remarks, cbpai.remark as remarks,
su.username as czyName, su.username as czyName,
cbpai.oper_time as czsj cbpai.oper_time as czsj
@ -45,7 +46,7 @@
order by cbpai.oper_time desc order by cbpai.oper_time desc
</select> </select>
<select id="getById" resultType="com.bonus.boot.manager.ca.bm.entity.PayAccountInfoBean"> <select id="getById" resultType="com.bonus.boot.manager.ca.bm.entity.PayAccountInfoBean">
select id,name,remark as remarks select id,name,remark as remarks, account_number as accountNumber
from ca_bm_pay_account_info from ca_bm_pay_account_info
where is_active = '1' and id = #{id} where is_active = '1' and id = #{id}
</select> </select>

View File

@ -64,3 +64,18 @@ function saveAs(blob, filename) {
window.URL.revokeObjectURL(link.href) window.URL.revokeObjectURL(link.href)
} }
} }
/**
* 数据格式化
* @param accountNumber 账号
* @returns {*|string} 格式化后的账号
*/
function maskAccountNumber(accountNumber) {
if (!accountNumber) return '';
const startLength = 3; // 显示前几位
const endLength = 3; // 显示后几位
const maskLength = accountNumber.length - startLength - endLength;
if (maskLength <= 0) return accountNumber; // 如果需要隐藏的部分小于等于0则直接返回原账号
const maskedPart = '*'.repeat(maskLength);
return accountNumber.substring(0, startLength) + maskedPart + accountNumber.substring(accountNumber.length - endLength);
}

View File

@ -42,7 +42,7 @@
</div> </div>
<div class="layui-input-inline"style="float: left;width: 49.5%;margin-top: 2%;margin-left: 18%" id="upper-gysmc"> <div class="layui-input-inline"style="float: left;width: 49.5%;margin-top: 2%;margin-left: 18%" id="upper-gysmc">
<label class="layui-form-label" style="width: 35%"><i class="tip-required" style="color: red;font-size: 20px">*</i> 供应商名称:</label> <label class="layui-form-label" style="width: 35%"><i class="tip-required" style="color: red;font-size: 20px">*</i> 供应商名称:</label>
<select lay-filter="provider-name" name="gysmc" id="gysmc" lay-verify="required|gysmc"> <select lay-filter="provider-name" name="gysmc" id="gysmc" lay-verify="required|gysmc" lay-search="">
<option value="">请选择</option> <option value="">请选择</option>
</select> </select>
</div> </div>

View File

@ -25,6 +25,13 @@
</div> </div>
</div> </div>
<div class="layui-input-inline"style="float: left;width: 50%;margin-top: 2%;margin-left: 20%" >
<label class="layui-form-label" style="width: 30%">账号:</label>
<div class="layui-input-block">
<input style="width: 85%" type="text" name="accountNumber" id="accountNumber" maxlength="50" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-input-inline"style="float: left;width: 50%;margin-top: 2%;margin-left: 20%"> <div class="layui-input-inline"style="float: left;width: 50%;margin-top: 2%;margin-left: 20%">
<label class="layui-form-label" style="width: 30%">备注:</label> <label class="layui-form-label" style="width: 30%">备注:</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -65,6 +72,7 @@
async : false, async : false,
success : function(data) { success : function(data) {
$("#name").val(data.name); $("#name").val(data.name);
$("#accountNumber").val(data.accountNumber);
$("#remarks").val(data.remarks); $("#remarks").val(data.remarks);
} }
}); });
@ -84,6 +92,7 @@
} }
formdata.name = $("#name").val(); formdata.name = $("#name").val();
formdata.accountNumber = $("#accountNumber").val();
formdata.remarks = $("#remarks").val(); formdata.remarks = $("#remarks").val();
$.ajax({ $.ajax({
type : 'post', type : 'post',

View File

@ -11,9 +11,11 @@
button { button {
border-radius: 7px !important; border-radius: 7px !important;
} }
#addBtn { #addBtn {
background-color: #f59a23 !important; background-color: #f59a23 !important;
} }
#exportBt { #exportBt {
background-color: #f2f2f2 !important; background-color: #f2f2f2 !important;
color: #000000 !important; color: #000000 !important;
@ -33,13 +35,16 @@
<div class="form-group"> <div class="form-group">
<div class="layui-inline"> <div class="layui-inline">
<div class="layui-input-inline"> <div class="layui-input-inline">
<input id="name" type="text" class="layui-input" style="width: 200px" placeholder="请输入账户名称"> <input id="name" type="text" class="layui-input" style="width: 200px"
placeholder="请输入账户名称">
</div> </div>
</div> </div>
<button id="searchBt" class="layui-btn" permission="sys:pay:query" style="margin-top: -0.3%; margin-left: 15px;"> <button id="searchBt" class="layui-btn" permission="sys:pay:query"
style="margin-top: -0.3%; margin-left: 15px;">
搜索 搜索
</button> </button>
<button id="addBtn" class="layui-btn" onclick="addForm()" permission="sys:pay:add" style="margin-top: -0.3%;"> <button id="addBtn" class="layui-btn" onclick="addForm()" permission="sys:pay:add"
style="margin-top: -0.3%;">
添加 添加
</button> </button>
<button id="exportBt" class="layui-btn"> <button id="exportBt" class="layui-btn">
@ -105,6 +110,11 @@
, cols: [[ //表头 , cols: [[ //表头
{field: 'number', width: 100, title: '序号', align: 'center', type: 'numbers'} {field: 'number', width: 100, title: '序号', align: 'center', type: 'numbers'}
, {field: 'name', align: 'center', title: '付款账户名称'} , {field: 'name', align: 'center', title: '付款账户名称'}
, {
field: 'accountNumber', align: 'center', title: '账号', templet: function (d) {
return maskAccountNumber(d.accountNumber);
}
}
, {field: 'remarks', align: 'center', title: '备注'} , {field: 'remarks', align: 'center', title: '备注'}
, {field: 'czyName', align: 'center', title: '操作人'} , {field: 'czyName', align: 'center', title: '操作人'}
, {field: 'czsj', align: 'center', title: '操作时间'} , {field: 'czsj', align: 'center', title: '操作时间'}