Browse Source

流水添加统计接口

yzc 1 year ago
parent
commit
f12c79555f

+ 9 - 0
hx-account/src/main/java/com/fjhx/account/controller/account/AccountRunningWaterController.java

@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 
 
 /**
 /**
@@ -131,4 +132,12 @@ public class AccountRunningWaterController {
         accountRunningWaterService.settleAccounts(dto);
         accountRunningWaterService.settleAccounts(dto);
     }
     }
 
 
+    /**
+     * 流水统计
+     */
+    @PostMapping("/getTotal")
+    public Map<String, List<AccountRunningWaterVo>> internalTransfer(@RequestBody AccountRunningWaterSelectDto dto) {
+        return accountRunningWaterService.getTotal(dto);
+    }
+
 }
 }

+ 6 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRunningWaterSelectDto.java

@@ -5,6 +5,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.List;
 
 
 /**
 /**
  * 账户资金流水表列表查询入参实体
  * 账户资金流水表列表查询入参实体
@@ -84,4 +85,9 @@ public class AccountRunningWaterSelectDto extends BaseSelectDto {
      */
      */
     private Integer isSettleAccounts;
     private Integer isSettleAccounts;
 
 
+    /**
+     * 流水ID
+     */
+    private List<Long> accountWaterIdList;
+
 }
 }

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/mapper/account/AccountRunningWaterMapper.java

@@ -44,4 +44,9 @@ public interface AccountRunningWaterMapper extends BaseMapper<AccountRunningWate
      * 修改合同结汇状态
      * 修改合同结汇状态
      */
      */
     void exchangeSettlementByContractId(@Param("contractId") Long contractId, @Param("status") Integer status);
     void exchangeSettlementByContractId(@Param("contractId") Long contractId, @Param("status") Integer status);
+
+    /**
+     * 获取统计
+     */
+    List<AccountRunningWaterVo> getTotal(@Param("ew") QueryWrapper<Object> wrapper);
 }
 }

+ 7 - 0
hx-account/src/main/java/com/fjhx/account/service/account/AccountRunningWaterService.java

@@ -10,6 +10,7 @@ import com.ruoyi.common.core.service.BaseService;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 
 
 /**
 /**
@@ -86,4 +87,10 @@ public interface AccountRunningWaterService extends BaseService<AccountRunningWa
      * 汇算(流水金额装人民币金额重新计算)
      * 汇算(流水金额装人民币金额重新计算)
      */
      */
     void settleAccounts(AccountRunningWater dto);
     void settleAccounts(AccountRunningWater dto);
+
+    /**
+     * 流水统计
+     */
+    Map<String, List<AccountRunningWaterVo>> getTotal(AccountRunningWaterSelectDto dto);
+
 }
 }

+ 82 - 51
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java

@@ -49,9 +49,7 @@ import org.springframework.stereotype.Service;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.math.RoundingMode;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 
 
@@ -88,54 +86,7 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
 
 
     @Override
     @Override
     public Page<AccountRunningWaterVo> getPage(AccountRunningWaterSelectDto dto) {
     public Page<AccountRunningWaterVo> getPage(AccountRunningWaterSelectDto dto) {
-        QueryWrapper<Object> wrapper = Wrappers.query();
-        // 资金账户
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getAccountManagementId()), "arw.account_management_id", dto.getAccountManagementId());
-        // 交易类型
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getStatus()), "arw.status", dto.getStatus());
-        // 是否合同到账
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getReceived()), "arw.received", dto.getReceived());
-        // 币种
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getCurrency()), "arw.currency", dto.getCurrency());
-        //是否认领
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getIsClaim()), "arw.is_claim", dto.getIsClaim());
-        //交易开始金额
-        wrapper.ge(ObjectUtil.isNotEmpty(dto.getBeginAmount()), "arw.amount", dto.getBeginAmount());
-        //交易结束金额
-        wrapper.le(ObjectUtil.isNotEmpty(dto.getEndAmount()), "arw.amount", dto.getEndAmount());
-        //交易开始时间
-        wrapper.ge(ObjectUtil.isNotEmpty(dto.getStartTime()), "arw.transaction_time", dto.getStartTime());
-        //交易结束时间
-        wrapper.le(ObjectUtil.isNotEmpty(dto.getStopTime()), "arw.transaction_time", dto.getStopTime());
-        //对方账户名称
-        wrapper.like(ObjectUtil.isNotEmpty(dto.getName()), "arw.name", dto.getName());
-        //摘要
-        wrapper.like(ObjectUtil.isNotEmpty(dto.getRemarks()), "arw.remarks", dto.getRemarks());
-        if (StringUtils.isNotEmpty(dto.getKeyword())) {
-            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks", dto.getKeyword()).or().like("arw.name", dto.getKeyword()));
-        }
-        if (ObjectUtil.isNotEmpty(dto.getDataType()) && dto.getDataType() == 1) {// 到账认领数据
-            wrapper.eq("arw.received", 10);
-            //到账认领状态使用自定义排序 0未认领 2部分认领 1已认领
-            wrapper.orderByAsc("field(arw.is_claim,0,2,1)");
-            //到账时间倒序
-            wrapper.orderByDesc("arw.transaction_time");
-        }
-        // todo ERP-》资金管理-》资金流水分页 要求按交易时间排序,我也不懂上面if排序是在哪调用的,先在else里加吧
-        else {
-            wrapper.orderByDesc("arw.transaction_time", "arw.id");
-        }
-
-        //是否汇算过滤
-        if (ObjectUtil.isNotEmpty(dto.getIsSettleAccounts())) {
-            if (0 == dto.getIsSettleAccounts()) {
-                wrapper.isNull("arw.amount_cny");
-            } else {
-                wrapper.isNotNull("arw.amount_cny");
-            }
-        }
-
-
+        QueryWrapper<Object> wrapper = getPageWrapper(dto);
         Page<AccountRunningWaterVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<AccountRunningWaterVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<AccountRunningWaterVo> records = page.getRecords();
         List<AccountRunningWaterVo> records = page.getRecords();
         //赋值归属公司名称
         //赋值归属公司名称
@@ -704,4 +655,84 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         accountService.updateClaimInfo(newAccountRunningWater);
         accountService.updateClaimInfo(newAccountRunningWater);
     }
     }
 
 
+    @Override
+    public Map<String, List<AccountRunningWaterVo>> getTotal(AccountRunningWaterSelectDto dto) {
+        QueryWrapper<Object> wrapper = getPageWrapper(dto);
+        wrapper.groupBy("arw.currency");
+        wrapper.groupBy("arw.`status`");
+
+        Map<String, List<AccountRunningWaterVo>> map = new HashMap<>();
+        map.put("income", new ArrayList<>());
+        map.put("expenditure", new ArrayList<>());
+
+        List<AccountRunningWaterVo> totalList = baseMapper.getTotal(wrapper);
+        if (ObjectUtil.isEmpty(totalList)) {
+            return map;
+        }
+        List<AccountRunningWaterVo> income = totalList.stream().filter(item -> Objects.equals(item.getStatus(), "10")).collect(Collectors.toList());
+        List<AccountRunningWaterVo> expenditure = totalList.stream().filter(item -> Objects.equals(item.getStatus(), "20")).collect(Collectors.toList());
+
+        map.put("income", income);
+        map.put("expenditure", expenditure);
+
+        return map;
+    }
+
+    /**
+     * 分页条件抽取
+     */
+    private QueryWrapper<Object> getPageWrapper(AccountRunningWaterSelectDto dto) {
+        QueryWrapper<Object> wrapper = Wrappers.query();
+        // 资金账户
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getAccountManagementId()), "arw.account_management_id", dto.getAccountManagementId());
+        // 交易类型
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getStatus()), "arw.status", dto.getStatus());
+        // 是否合同到账
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getReceived()), "arw.received", dto.getReceived());
+        // 币种
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getCurrency()), "arw.currency", dto.getCurrency());
+        //是否认领
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getIsClaim()), "arw.is_claim", dto.getIsClaim());
+        //交易开始金额
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getBeginAmount()), "arw.amount", dto.getBeginAmount());
+        //交易结束金额
+        wrapper.le(ObjectUtil.isNotEmpty(dto.getEndAmount()), "arw.amount", dto.getEndAmount());
+        //交易开始时间
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getStartTime()), "arw.transaction_time", dto.getStartTime());
+        //交易结束时间
+        wrapper.le(ObjectUtil.isNotEmpty(dto.getStopTime()), "arw.transaction_time", dto.getStopTime());
+        //对方账户名称
+        wrapper.like(ObjectUtil.isNotEmpty(dto.getName()), "arw.name", dto.getName());
+        //摘要
+        wrapper.like(ObjectUtil.isNotEmpty(dto.getRemarks()), "arw.remarks", dto.getRemarks());
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks", dto.getKeyword())
+                    .or().like("arw.name", dto.getKeyword())
+                    .or().in(ObjectUtil.isNotEmpty(dto.getAccountWaterIdList()), "arw.id", dto.getAccountWaterIdList())
+            );
+        }
+        if (ObjectUtil.isNotEmpty(dto.getDataType()) && dto.getDataType() == 1) {// 到账认领数据
+            wrapper.eq("arw.received", 10);
+            //到账认领状态使用自定义排序 0未认领 2部分认领 1已认领
+            wrapper.orderByAsc("field(arw.is_claim,0,2,1)");
+            //到账时间倒序
+            wrapper.orderByDesc("arw.transaction_time");
+        }
+        // todo ERP-》资金管理-》资金流水分页 要求按交易时间排序,我也不懂上面if排序是在哪调用的,先在else里加吧
+        else {
+            wrapper.orderByDesc("arw.transaction_time", "arw.id");
+        }
+
+        //是否汇算过滤
+        if (ObjectUtil.isNotEmpty(dto.getIsSettleAccounts())) {
+            if (0 == dto.getIsSettleAccounts()) {
+                wrapper.isNull("arw.amount_cny");
+            } else {
+                wrapper.isNotNull("arw.amount_cny");
+            }
+        }
+
+        return wrapper;
+    }
+
 }
 }

+ 10 - 0
hx-account/src/main/resources/mapper/account/AccountRunningWaterMapper.xml

@@ -197,4 +197,14 @@
         where id = #{contractId}
         where id = #{contractId}
     </update>
     </update>
 
 
+    <select id="getTotal" resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">
+        SELECT
+            arw.`status`,
+            arw.currency,
+            sum( ifnull(arw.amount,0) ) as amount
+        FROM
+            account_running_water arw
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>
 </mapper>