Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-csf
Commits
4fc61c76
Commit
4fc61c76
authored
Jan 14, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
f15d3ace
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
156 additions
and
27 deletions
+156
-27
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/premiumremittance/ApiPremiumRemittanceDto.java
+12
-0
yd-csf-feign/src/main/java/com/yd/csf/feign/request/premiumreconciliation/ApiPremiumReconciliationPageRequest.java
+59
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/PremiumRemittance.java
+6
-0
yd-csf-service/src/main/resources/mappers/PremiumReconciliationMapper.xml
+79
-27
No files found.
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/premiumremittance/ApiPremiumRemittanceDto.java
View file @
4fc61c76
package
com
.
yd
.
csf
.
feign
.
dto
.
premiumremittance
;
package
com
.
yd
.
csf
.
feign
.
dto
.
premiumremittance
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonDeserialize
;
import
com.yd.common.utils.CustomLocalDateTimeDeserializer
;
import
com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto
;
import
com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto
;
import
lombok.Data
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
@Data
@Data
...
@@ -62,6 +68,12 @@ public class ApiPremiumRemittanceDto {
...
@@ -62,6 +68,12 @@ public class ApiPremiumRemittanceDto {
private
String
paymentAccount
;
private
String
paymentAccount
;
/**
/**
* 付款日期
*/
@JsonDeserialize
(
using
=
CustomLocalDateTimeDeserializer
.
class
)
private
LocalDateTime
paymentDate
;
/**
* 支付凭证列表
* 支付凭证列表
*/
*/
@NotEmpty
(
message
=
"支付凭证列表不能为空"
)
@NotEmpty
(
message
=
"支付凭证列表不能为空"
)
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/request/premiumreconciliation/ApiPremiumReconciliationPageRequest.java
View file @
4fc61c76
package
com
.
yd
.
csf
.
feign
.
request
.
premiumreconciliation
;
package
com
.
yd
.
csf
.
feign
.
request
.
premiumreconciliation
;
import
com.fasterxml.jackson.databind.annotation.JsonDeserialize
;
import
com.yd.common.dto.PageDto
;
import
com.yd.common.dto.PageDto
;
import
com.yd.common.utils.CustomLocalDateTimeDeserializer
;
import
lombok.Data
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
@Data
@Data
public
class
ApiPremiumReconciliationPageRequest
extends
PageDto
{
public
class
ApiPremiumReconciliationPageRequest
extends
PageDto
{
/**
* 保险公司业务id
*/
private
String
insuranceCompanyBizId
;
/**
* 付款银行
*/
private
String
payingBank
;
/**
* 付款人
*/
private
String
payer
;
/**
* 保单号
*/
private
String
policyNo
;
/**
* 预约编号
*/
private
String
appointmentNo
;
/**
* 保單持有人(投保人)
*/
private
String
policyHolder
;
/**
* 缴费方式
*/
private
String
paymentMethod
;
/**
* 新单跟进状态
*/
private
String
policyFollowStatus
;
/**
* 保单状态
*/
private
String
policyStatus
;
/**
* 对账类型
*/
private
String
reconciliationType
;
/**
* 付款日期
*/
@JsonDeserialize
(
using
=
CustomLocalDateTimeDeserializer
.
class
)
private
LocalDateTime
paymentDate
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/model/PremiumRemittance.java
View file @
4fc61c76
...
@@ -86,6 +86,12 @@ public class PremiumRemittance implements Serializable {
...
@@ -86,6 +86,12 @@ public class PremiumRemittance implements Serializable {
private
String
paymentAccount
;
private
String
paymentAccount
;
/**
/**
* 付款日期
*/
@TableField
(
"payment_date"
)
private
LocalDateTime
paymentDate
;
/**
* 支付凭证(多个文件URL用分号分隔)
* 支付凭证(多个文件URL用分号分隔)
*/
*/
@TableField
(
"payment_voucher"
)
@TableField
(
"payment_voucher"
)
...
...
yd-csf-service/src/main/resources/mappers/PremiumReconciliationMapper.xml
View file @
4fc61c76
...
@@ -5,36 +5,87 @@
...
@@ -5,36 +5,87 @@
<select
id=
"page"
<select
id=
"page"
resultType=
"com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationPageResponse"
>
resultType=
"com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationPageResponse"
>
SELECT
SELECT
pr.premium_reconciliation_biz_id,
pr.premium_reconciliation_biz_id,
pr.current_issue_number,
pr.current_issue_number,
pr.reconciliation_type,
pr.reconciliation_type,
MAX(p.insurance_company)
AS insuranceCompany,
p.insurance_company
AS insuranceCompany,
pr.policy_no,
pr.policy_no,
MAX(pf.status)
AS policyFollowStatus,
pf.status
AS policyFollowStatus,
MAX(pr.reconciliation_status) AS
reconciliation_status,
pr.
reconciliation_status,
MAX(p.status)
AS policyStatus,
p.status
AS policyStatus,
MAX(pr.remaining_unpaid_amount) AS
remaining_unpaid_amount,
pr.
remaining_unpaid_amount,
MAX(pr.remaining_unpaid_currency) AS
remaining_unpaid_currency,
pr.
remaining_unpaid_currency,
COALESCE(SUM(prm.payment_amount)
, 0) AS paymentAmount,
COALESCE(prm_total.payment_amount
, 0) AS paymentAmount,
MAX(prm.payment_currency)
AS paymentCurrency,
prm_total.payment_currency
AS paymentCurrency,
GROUP_CONCAT(DISTINCT prm.payment_method SEPARATOR ';')
AS paymentMethod,
prm_total.payment_method
AS paymentMethod,
MAX(pr.recognized_amount) AS
recognized_amount,
pr.
recognized_amount,
MAX(pr.recognized_currency) AS
recognized_currency,
pr.
recognized_currency,
GROUP_CONCAT(DISTINCT prm.payer SEPARATOR ';') AS
payer,
prm_total.
payer,
GROUP_CONCAT(DISTINCT prm.paying_bank SEPARATOR ';') AS
paying_bank,
prm_total.
paying_bank,
MAX(p.policy_holder) AS
policy_holder,
p.
policy_holder,
MAX(p.insured) AS
insured,
p.
insured,
GROUP_CONCAT(DISTINCT pb.broker_name SEPARATOR ';')
AS brokerName,
pb.broker_name
AS brokerName,
MAX(pr.create_time) AS
create_time,
pr.
create_time,
MAX(pr.update_time) AS
update_time,
pr.
update_time,
MAX(p.reconciliation_company) AS
reconciliation_company
p.
reconciliation_company
FROM premium_reconciliation pr
FROM premium_reconciliation pr
LEFT JOIN policy p ON p.policy_no = pr.policy_no AND p.is_deleted = 0
LEFT JOIN policy p ON p.policy_no = pr.policy_no AND p.is_deleted = 0
LEFT JOIN policy_follow pf ON pf.policy_no = pr.policy_no AND pf.is_deleted = 0
LEFT JOIN policy_follow pf ON pf.policy_no = pr.policy_no AND pf.is_deleted = 0
LEFT JOIN premium_remittance prm ON prm.premium_reconciliation_biz_id = pr.premium_reconciliation_biz_id AND prm.is_deleted = 0
LEFT JOIN (
LEFT JOIN policy_broker pb ON pb.policy_no = pr.policy_no AND pb.is_deleted = 0
SELECT
premium_reconciliation_biz_id,
SUM(payment_amount) AS payment_amount,
MAX(payment_currency) AS payment_currency,
GROUP_CONCAT(DISTINCT payment_method SEPARATOR ';') AS payment_method,
GROUP_CONCAT(DISTINCT payer SEPARATOR ';') AS payer,
GROUP_CONCAT(DISTINCT paying_bank SEPARATOR ';') AS paying_bank
FROM premium_remittance
WHERE is_deleted = 0
GROUP BY premium_reconciliation_biz_id
) prm_total ON prm_total.premium_reconciliation_biz_id = pr.premium_reconciliation_biz_id
LEFT JOIN (
SELECT
policy_no,
GROUP_CONCAT(DISTINCT broker_name SEPARATOR ';') AS broker_name
FROM policy_broker
WHERE is_deleted = 0
GROUP BY policy_no
) pb ON pb.policy_no = pr.policy_no
WHERE pr.is_deleted = 0
WHERE pr.is_deleted = 0
GROUP BY pr.premium_reconciliation_biz_id, pr.policy_no
<if
test=
"request.insuranceCompanyBizId != null and request.insuranceCompanyBizId != ''"
>
ORDER BY MAX(pr.create_time) DESC
AND p.insurance_company_biz_id = #{request.insuranceCompanyBizId}
</if>
<if
test=
"request.payingBank != null and request.payingBank != ''"
>
AND prm_total.paying_bank LIKE CONCAT('%', #{request.payingBank}, '%')
</if>
<if
test=
"request.payer != null and request.payer != ''"
>
AND prm_total.payer LIKE CONCAT('%', #{request.payer}, '%')
</if>
<if
test=
"request.policyNo != null and request.policyNo != ''"
>
AND pr.policy_no LIKE CONCAT('%', #{request.policyNo}, '%')
</if>
<if
test=
"request.appointmentNo != null and request.appointmentNo != ''"
>
AND pf.appointment_no LIKE CONCAT('%', #{request.appointmentNo}, '%')
</if>
<if
test=
"request.policyHolder != null and request.policyHolder != ''"
>
AND p.policy_holder LIKE CONCAT('%', #{request.policyHolder}, '%')
</if>
<if
test=
"request.paymentMethod != null and request.paymentMethod != ''"
>
AND prm_total.payment_method LIKE CONCAT('%', #{request.paymentMethod}, '%')
</if>
<if
test=
"request.policyFollowStatus != null and request.policyFollowStatus != ''"
>
AND pf.status = #{request.policyFollowStatus}
</if>
<if
test=
"request.policyStatus != null and request.policyStatus != ''"
>
AND p.status = #{request.policyStatus}
</if>
<if
test=
"request.reconciliationType != null and request.reconciliationType != ''"
>
AND pr.reconciliation_type = #{request.reconciliationType}
</if>
<if
test=
"request.paymentDate != null"
>
AND prm_total.payment_date >= DATE(#{request.paymentDate})
AND prm_total.payment_date
<
DATE_ADD(DATE(#{request.paymentDate}), INTERVAL 1 DAY)
</if>
ORDER BY pr.create_time DESC
</select>
</select>
</mapper>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment