5 Commits

  1. 27
      src/main/java/com/example/demo/Util/ExcelHeaderTranslator.java
  2. 13
      src/main/java/com/example/demo/domain/vo/cash/PerformanceVO.java
  3. 62
      src/main/resources/cashMapper/CashCollectionMapper.xml
  4. 22
      src/main/resources/cashMapper/CashRefundMapper.xml

27
src/main/java/com/example/demo/Util/ExcelHeaderTranslator.java

@ -237,6 +237,7 @@ public class ExcelHeaderTranslator {
headers.put("id", "序号"); headers.put("id", "序号");
headers.put("jwcode", "精网号"); headers.put("jwcode", "精网号");
headers.put("name", "姓名"); headers.put("name", "姓名");
headers.put("performanceMarket", "业绩归属地区");
headers.put("marketName", "所属地区"); headers.put("marketName", "所属地区");
headers.put("activity", "活动名称"); headers.put("activity", "活动名称");
headers.put("orderCode", "金币订单号"); headers.put("orderCode", "金币订单号");
@ -273,7 +274,7 @@ public class ExcelHeaderTranslator {
*/ */
public List<String> getCashCollectionColumnOrder() { public List<String> getCashCollectionColumnOrder() {
return Arrays.asList( return Arrays.asList(
"id", "jwcode", "name", "marketName", "activity", "orderCode", "bankCode",
"id", "jwcode", "name", "performanceMarket", "marketName", "activity", "orderCode", "bankCode",
"goodsName", "goodNum", "numUnit", "permanentGold", "freeGold", "paymentCurrency", "goodsName", "goodNum", "numUnit", "permanentGold", "freeGold", "paymentCurrency",
"paymentAmount", "receivedCurrency", "receivedAmount", "handlingCharge", "paymentAmount", "receivedCurrency", "receivedAmount", "handlingCharge",
"receivedMarket", "payType", "payTime", "receivedTime", "submitterName", "receivedMarket", "payType", "payTime", "receivedTime", "submitterName",
@ -558,16 +559,21 @@ public class ExcelHeaderTranslator {
// 添加所有表头的原始中文名称对应 FundsDTO 类的字段 // 添加所有表头的原始中文名称对应 FundsDTO 类的字段
headers.put("id", "序号"); headers.put("id", "序号");
headers.put("jwcode", "精网号");
headers.put("orderCode", "金币订单号");
headers.put("receivedMarket", "到账地区");
headers.put("performanceMarket", "业绩归属地区");
headers.put("name", "姓名"); headers.put("name", "姓名");
headers.put("jwcode", "精网号");
headers.put("remark", "备注");
headers.put("goodNum", "商品数量");
headers.put("goodsName", "商品名称");
headers.put("payType", "付款类型");
headers.put("paymentAmount", "付款金额");
headers.put("handlingCharge", "手续费");
headers.put("receivedAmount", "到账金额");
headers.put("marketName", "所属地区"); headers.put("marketName", "所属地区");
headers.put("orderCode", "金币订单号");
headers.put("paymentCurrencyName", "付款币种"); headers.put("paymentCurrencyName", "付款币种");
headers.put("paymentAmount", "付款金额");
headers.put("receivedCurrencyName", "到账币种"); headers.put("receivedCurrencyName", "到账币种");
headers.put("receivedAmount", "到账金额");
headers.put("handlingCharge", "手续费");
headers.put("payType", "付款类型");
headers.put("statusName", "退款状态"); headers.put("statusName", "退款状态");
headers.put("refundCurrency", "退款币种"); headers.put("refundCurrency", "退款币种");
headers.put("refundAmount", "退款金额"); headers.put("refundAmount", "退款金额");
@ -585,9 +591,10 @@ public class ExcelHeaderTranslator {
*/ */
public List<String> getFundsColumnOrder() { public List<String> getFundsColumnOrder() {
return Arrays.asList( return Arrays.asList(
"id", "jwcode", "name", "marketName", "orderCode", "paymentCurrencyName", "paymentAmount",
"receivedCurrencyName", "receivedAmount", "handlingCharge", "payType", "statusName", "refundCurrency",
"refundAmount"
"id", "orderCode", "receivedMarket", "performanceMarket", "name", "jwcode",
"remark", "goodNum", "goodsName", "payType", "paymentAmount", "handlingCharge",
"receivedAmount", "marketName", "paymentCurrencyName", "receivedCurrencyName",
"statusName", "refundCurrency", "refundAmount"
); );
} }

13
src/main/java/com/example/demo/domain/vo/cash/PerformanceVO.java

@ -33,5 +33,14 @@ public class PerformanceVO {
private String receivedCurrency; // 到账币种 private String receivedCurrency; // 到账币种
private BigDecimal receivedAmount; // 到账金额 private BigDecimal receivedAmount; // 到账金额
private BigDecimal handlingCharge; // 手续费 private BigDecimal handlingCharge; // 手续费
}
private String receivedMarket; // 到账地区
private String receivedMarketName; // 到账地区名称
private String performanceMarket; // 收款地区
private String performanceMarketName; // 收款地区名称
private String goodsName; // 商品名称
private String remark; // 备注
private Integer goodNum; // 商品数量
private String payType; // 付款方式
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime payTime; // 付款时间
}

62
src/main/resources/cashMapper/CashCollectionMapper.xml

@ -328,12 +328,56 @@
</update> </update>
<select id="performanceSelect" resultType="com.example.demo.domain.vo.cash.PerformanceVO" parameterType="com.example.demo.domain.DTO.PerformanceDTO"> <select id="performanceSelect" resultType="com.example.demo.domain.vo.cash.PerformanceVO" parameterType="com.example.demo.domain.DTO.PerformanceDTO">
select cr.jwcode,cr.name,cr.market,m.name as marketName,cr.order_code,r1.rate_name as paymentCurrency,cr.payment_amount,r2.rate_name as receivedCurrency,cr.received_amount,cr.handling_charge
<!-- 原始收款记录 -->
select cr.pay_time,cr.order_code,m2.name as receivedMarketName,m1.name as performanceMarketName,cr.name,cr.jwcode,cr.goods_name,cr.remark,cr.good_num,cr.pay_type,r2.rate_name as receivedCurrency,cr.payment_amount,cr.handling_charge,cr.received_amount
from cash_record_collection cr from cash_record_collection cr
left join market m on m.id = cr.market
left join rate r1 on r1.id = cr.payment_currency
left join market m1 on m1.id = cr.performance_market
left join market m2 on m2.id = cr.received_market
left join rate r2 on r2.id = cr.received_currency left join rate r2 on r2.id = cr.received_currency
where order_type = 1 and status = 4
where (cr.status = 4 or cr.status = 100 or (cr.status = 6 and cr.is_performance = 1))
<!-- adminMarket筛选:如果adminMarket列表不为空且不包含研发部或总部,则筛选market表中的name等于adminMarket列表中的内容 -->
<if test="adminMarket != null and adminMarket.size() > 0">
<choose>
<when test="adminMarket.contains('研发部'.toString()) or adminMarket.contains('总部'.toString())">
<!-- 如果包含研发部或总部,则不筛选 -->
</when>
<otherwise>
AND cr.received_market IN
<foreach collection="adminMarket" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</otherwise>
</choose>
</if>
<!-- customerMarket筛选:如果customerMarket列表不为空,则筛选cash_record_collection表中的market等于customerMarket列表中的内容 -->
<if test="customerMarket != null and customerMarket.size() > 0">
AND cr.performance_market IN
<foreach collection="customerMarket" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<!-- jwcode筛选:如果jwcode不为空,则筛选cash_record_collection表中的jwcode等于jwcode -->
<if test="jwcode != null and jwcode != ''">
AND cr.jwcode = #{jwcode}
</if>
<!-- 时间范围筛选:如果startTime和endTime不为空,则筛选cash_record_collection表中的pay_time在startTime和endTime之间 -->
<if test="startTime != null and endTime != null">
AND cr.pay_time BETWEEN #{startTime} AND #{endTime}
</if>
<!-- 当cr.status = 6时,添加退款记录 -->
UNION ALL
select crr.refund_time as pay_time,crr.order_code,m2.name as receivedMarketName,m1.name as performanceMarketName,crr.name,crr.jwcode,cr.goods_name,crr.refund_reason as remark,cr.good_num,cr.pay_type,r3.rate_name as receivedCurrency,-crr.refund_amount as payment_amount,0 as handling_charge,-crr.refund_amount as received_amount
from cash_record_refund crr
left join cash_record_collection cr on cr.id = crr.related_id
left join market m1 on m1.id = cr.performance_market
left join market m2 on m2.id = cr.received_market
left join rate r3 on r3.id = crr.refund_currency
where cr.status = 6 and cr.is_performance = 1
<!-- adminMarket筛选:如果adminMarket列表不为空且不包含研发部或总部,则筛选market表中的name等于adminMarket列表中的内容 --> <!-- adminMarket筛选:如果adminMarket列表不为空且不包含研发部或总部,则筛选market表中的name等于adminMarket列表中的内容 -->
<if test="adminMarket != null and adminMarket.size() > 0"> <if test="adminMarket != null and adminMarket.size() > 0">
@ -342,7 +386,7 @@
<!-- 如果包含研发部或总部,则不筛选 --> <!-- 如果包含研发部或总部,则不筛选 -->
</when> </when>
<otherwise> <otherwise>
AND m.name IN
AND cr.received_market IN
<foreach collection="adminMarket" item="item" open="(" separator="," close=")"> <foreach collection="adminMarket" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
@ -352,7 +396,7 @@
<!-- customerMarket筛选:如果customerMarket列表不为空,则筛选cash_record_collection表中的market等于customerMarket列表中的内容 --> <!-- customerMarket筛选:如果customerMarket列表不为空,则筛选cash_record_collection表中的market等于customerMarket列表中的内容 -->
<if test="customerMarket != null and customerMarket.size() > 0"> <if test="customerMarket != null and customerMarket.size() > 0">
AND cr.market IN
AND cr.performance_market IN
<foreach collection="customerMarket" item="item" open="(" separator="," close=")"> <foreach collection="customerMarket" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
@ -367,6 +411,8 @@
<if test="startTime != null and endTime != null"> <if test="startTime != null and endTime != null">
AND cr.pay_time BETWEEN #{startTime} AND #{endTime} AND cr.pay_time BETWEEN #{startTime} AND #{endTime}
</if> </if>
ORDER BY pay_time DESC
</select> </select>
@ -638,9 +684,9 @@
cash_record_collection(order_type,jwcode,name,market,activity,performance_market, cash_record_collection(order_type,jwcode,name,market,activity,performance_market,
order_code,goods_name,permanent_gold,free_gold, order_code,goods_name,permanent_gold,free_gold,
pay_type,pay_time,status,submitter_id,submitter_market, pay_type,pay_time,status,submitter_id,submitter_market,
voucher,remark,received_currency,payment_amount,received_amount,received_market)
voucher,remark,received_currency,payment_amount,received_amount,received_market,is_performance)
values(1,90039082,"HomilyLink",24032,125,#{performanceMarket}, values(1,90039082,"HomilyLink",24032,125,#{performanceMarket},
#{orderCode},"业绩",0,0,"调整",#{payTime}, #{orderCode},"业绩",0,0,"调整",#{payTime},
100,#{submitterId},#{submitterMarket},1,#{remark},3,0,#{receivedAmount},#{receivedMarket})
100,#{submitterId},#{submitterMarket},1,#{remark},3,0,#{receivedAmount},#{receivedMarket},1)
</insert> </insert>
</mapper> </mapper>

22
src/main/resources/cashMapper/CashRefundMapper.xml

@ -336,7 +336,7 @@
crc.good_num as goodsNum, crc.good_num as goodsNum,
crc.num_unit, crc.num_unit,
crr.refund_model, crr.refund_model,
crr.refund_currency,
r.rate_name as refund_currency,
crr.refund_amount, crr.refund_amount,
crr.refund_channels, crr.refund_channels,
crr.refund_voucher, crr.refund_voucher,
@ -349,13 +349,14 @@
crr.submitter_id, crr.submitter_id,
crr.related_id, crr.related_id,
crr.refund_reason, crr.refund_reason,
la.area_servise,
la.area_finance,
la.area_charge,
la.head_finance
from cash_record_refund crr
left join cash_record_collection crc on crc.id = crr.related_id
left join lhl_audit la on la.id = crr.audit_id
la.area_servise,
la.area_finance,
la.area_charge,
la.head_finance
from cash_record_refund crr
left join cash_record_collection crc on crc.id = crr.related_id
left join lhl_audit la on la.id = crr.audit_id
left join rate r on r.id = crr.refund_currency
<where> <where>
<if test="status != null"> <if test="status != null">
and crr.status = #{status} and crr.status = #{status}
@ -387,7 +388,7 @@
) )
</if> </if>
<if test="refundCurrency != null and refundCurrency.length() > 0"> <if test="refundCurrency != null and refundCurrency.length() > 0">
AND crr.refund_currency like CONCAT('%', #{refundCurrency}, '%')
AND r.rate_name like CONCAT('%', #{refundCurrency}, '%')
</if> </if>
<if test="refundChannels != null and refundChannels.length()>0"> <if test="refundChannels != null and refundChannels.length()>0">
and crr.refund_channels like CONCAT('%', #{refundChannels}, '%') and crr.refund_channels like CONCAT('%', #{refundChannels}, '%')
@ -435,13 +436,14 @@
crr.remark, crr.remark,
crr.reject_reason, crr.reject_reason,
crr.refund_model, crr.refund_model,
crr.refund_currency,
r.rate_name as refund_currency,
crr.refund_amount, crr.refund_amount,
crr.refund_channels, crr.refund_channels,
crr.refund_time, crr.refund_time,
crr.refund_remark, crr.refund_remark,
crr.refund_voucher crr.refund_voucher
from cash_record_refund crr from cash_record_refund crr
left join rate r on r.id = crr.refund_currency
where crr.id = #{id} where crr.id = #{id}
</select> </select>

Loading…
Cancel
Save