Commit 4fc61c76 by zhangxingmin

push

parent f15d3ace
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 = "支付凭证列表不能为空")
......
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;
} }
...@@ -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")
......
...@@ -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 &lt; 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment