Browse Source

Merge remote-tracking branch 'origin/milestone-20260401-现金管理四期' into milestone-20260401-现金管理四期

lijianlin/feature-20260401-现金管理四期
wangguorui 1 day ago
parent
commit
02c67a9407
  1. 13
      src/main/java/com/example/demo/domain/vo/cash/PerformanceVO.java
  2. 62
      src/main/resources/cashMapper/CashCollectionMapper.xml

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,13 @@
</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列表中的内容 --> <!-- adminMarket筛选:如果adminMarket列表不为空且不包含研发部或总部,则筛选market表中的name等于adminMarket列表中的内容 -->
<if test="adminMarket != null and adminMarket.size() > 0"> <if test="adminMarket != null and adminMarket.size() > 0">
@ -342,7 +343,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 +353,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 +368,51 @@
<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>
<!-- 当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列表中的内容 -->
<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>
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>
Loading…
Cancel
Save