Browse Source

20260115业绩

milestone-20260113-现金管理0109
sunjiabei 1 day ago
parent
commit
b1bed53771
  1. 14
      src/main/java/com/example/demo/domain/DTO/PerformanceDTO.java
  2. 4
      src/main/java/com/example/demo/domain/vo/cash/PerformanceVO.java
  3. 1
      src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java
  4. 38
      src/main/resources/cashMapper/CashCollectionMapper.xml

14
src/main/java/com/example/demo/domain/DTO/PerformanceDTO.java

@ -1,7 +1,11 @@
package com.example.demo.domain.DTO; package com.example.demo.domain.DTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List;
/** /**
* @program: gold-java * @program: gold-java
* @ClassName PerformanceDTO * @ClassName PerformanceDTO
@ -13,5 +17,13 @@ import lombok.Data;
@Data @Data
public class PerformanceDTO { public class PerformanceDTO {
String index;
List<String> adminMarket;
String jwcode;
List<String> customerMarket;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date startTime; // 支付时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date endTime; // 支付时间
} }

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

@ -23,8 +23,10 @@ import java.util.List;
public class PerformanceVO { public class PerformanceVO {
private Integer jwcode; // 精网号 private Integer jwcode; // 精网号
private String name; // 姓名
private String name; // 姓名
@ExcelIgnore
private String market; // 所属地区 private String market; // 所属地区
private String marketName; // 所属地区
private String orderCode; // 金币订单号 private String orderCode; // 金币订单号
private String paymentCurrency; // 付款币种 private String paymentCurrency; // 付款币种
private BigDecimal paymentAmount; // 付款金额 private BigDecimal paymentAmount; // 付款金额

1
src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java

@ -509,7 +509,6 @@ public User getNameAndMarket(Integer jwcode) {
//多条件查询收款订单列表 //多条件查询收款订单列表
@Override @Override
public PageInfo<PerformanceVO> performanceSelect(Integer pageNum, Integer pageSize, PerformanceDTO performanceDTO) { public PageInfo<PerformanceVO> performanceSelect(Integer pageNum, Integer pageSize, PerformanceDTO performanceDTO) {
PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper
List<PerformanceVO> performanceVOs = cashCollectionMapper.performanceSelect(performanceDTO); List<PerformanceVO> performanceVOs = cashCollectionMapper.performanceSelect(performanceDTO);
return new PageInfo<>(performanceVOs); return new PageInfo<>(performanceVOs);

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

@ -302,13 +302,47 @@
AND version = #{version} AND version = #{version}
</update> </update>
<select id="performanceSelect" resultType="com.example.demo.domain.vo.cash.PerformanceVO">
select cr.jwcode,cr.name,m.name as market,cr.order_code,r1.rate_name as paymentCurrency,cr.payment_amount,r2.rate_name as receivedCurrency,cr.received_amount,cr.handling_charge
<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
from cash_record_collection cr from cash_record_collection cr
left join market m on m.id = cr.market left join market m on m.id = cr.market
left join rate r1 on r1.id = cr.payment_currency left join rate r1 on r1.id = cr.payment_currency
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 order_type = 1 and status = 4
<!-- adminMarket筛选:如果adminMarket列表不为空且不包含研发部或总部,则筛选market表中的name等于adminMarket列表中的内容 -->
<if test="adminMarket != null and adminMarket.size() > 0">
<choose>
<when test="adminMarket.contains('研发部') or adminMarket.contains('总部')">
<!-- 如果包含研发部或总部,则不筛选 -->
</when>
<otherwise>
AND m.name 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.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>
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save