Quellcode durchsuchen

账号流水分页余额问题处理,添加退税

yzc vor 1 Jahr
Ursprung
Commit
243f98b446

+ 10 - 2
hx-account/src/main/java/com/fjhx/account/controller/account/AccountRunningWaterController.java

@@ -95,8 +95,16 @@ public class AccountRunningWaterController {
      * 账户资金流水表导出excel
      */
     @PostMapping("/exportExcel")
-    public void exportExcel(@RequestBody AccountRunningWaterSelectDto dto,HttpServletResponse httpServletResponse) {
-        accountRunningWaterService.exportExcel(dto,httpServletResponse);
+    public void exportExcel(@RequestBody AccountRunningWaterSelectDto dto, HttpServletResponse httpServletResponse) {
+        accountRunningWaterService.exportExcel(dto, httpServletResponse);
+    }
+
+    /**
+     * 退税添加
+     */
+    @PostMapping("/taxRefund")
+    public void taxRefund(@RequestBody AccountRunningWaterDto dto) {
+        accountRunningWaterService.taxRefund(dto);
     }
 
 }

+ 37 - 0
hx-account/src/main/java/com/fjhx/account/controller/tax/TaxRefundDetailsController.java

@@ -0,0 +1,37 @@
+package com.fjhx.account.controller.tax;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.tax.dto.TaxRefundDetailsSelectDto;
+import com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo;
+import com.fjhx.account.service.tax.TaxRefundDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 退税明细表 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@RestController
+@RequestMapping("/taxRefundDetails")
+public class TaxRefundDetailsController {
+
+    @Autowired
+    private TaxRefundDetailsService taxRefundDetailsService;
+
+    /**
+     * 退税明细表分页
+     */
+    @PostMapping("/page")
+    public Page<TaxRefundDetailsVo> page(@RequestBody TaxRefundDetailsSelectDto dto) {
+        return taxRefundDetailsService.getPage(dto);
+    }
+
+}

+ 9 - 1
hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRunningWaterDto.java

@@ -1,17 +1,25 @@
 package com.fjhx.account.entity.account.dto;
 
 import com.fjhx.account.entity.account.po.AccountRunningWater;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 账户资金流水表新增编辑入参实体
  *
- * @author 
+ * @author
  * @since 2023-04-06
  */
 @Getter
 @Setter
 public class AccountRunningWaterDto extends AccountRunningWater {
 
+    /**
+     * 退税合同明细列表
+     */
+    List<TaxRefundDetails> taxRefundDetailsList;
+
 }

+ 17 - 0
hx-account/src/main/java/com/fjhx/account/entity/tax/dto/TaxRefundDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.account.entity.tax.dto;
+
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退税明细表新增编辑入参实体
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Getter
+@Setter
+public class TaxRefundDetailsDto extends TaxRefundDetails {
+
+}

+ 17 - 0
hx-account/src/main/java/com/fjhx/account/entity/tax/dto/TaxRefundDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.account.entity.tax.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退税明细表列表查询入参实体
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Getter
+@Setter
+public class TaxRefundDetailsSelectDto extends BaseSelectDto {
+
+}

+ 36 - 0
hx-account/src/main/java/com/fjhx/account/entity/tax/po/TaxRefundDetails.java

@@ -0,0 +1,36 @@
+package com.fjhx.account.entity.tax.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 退税明细表
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Getter
+@Setter
+@TableName("tax_refund_details")
+public class TaxRefundDetails extends BasePo {
+
+    /**
+     * 资金流水id
+     */
+    private Long accountRunningWaterId;
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+    /**
+     * 合同退税关联金额
+     */
+    private Long amount;
+
+}

+ 17 - 0
hx-account/src/main/java/com/fjhx/account/entity/tax/vo/TaxRefundDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.account.entity.tax.vo;
+
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退税明细表列表查询返回值实体
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Getter
+@Setter
+public class TaxRefundDetailsVo extends TaxRefundDetails {
+
+}

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

@@ -1,11 +1,10 @@
 package com.fjhx.account.mapper.account;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fjhx.account.entity.account.po.AccountRunningWater;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.account.po.AccountRunningWater;
 import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -24,10 +23,13 @@ public interface AccountRunningWaterMapper extends BaseMapper<AccountRunningWate
     /**
      * 账户资金流水表分页
      */
-    Page<AccountRunningWaterVo> getPage(@Param("page") Page<Object> page, @Param("ew")QueryWrapper<Object> wrapper);
+    Page<AccountRunningWaterVo> getPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper);
+
+    List<AccountRunningWater> getAccountRunningWaterAmount(@Param("ew") QueryWrapper<Object> wrapper, @Param("size") Integer size);
 
     /**
      * 查询至今账户详情
+     *
      * @param id
      * @return
      */

+ 26 - 0
hx-account/src/main/java/com/fjhx/account/mapper/tax/TaxRefundDetailsMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.account.mapper.tax;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 退税明细表 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+public interface TaxRefundDetailsMapper extends BaseMapper<TaxRefundDetails> {
+
+    /**
+     * 退税明细表分页
+     */
+    Page<TaxRefundDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<TaxRefundDetails> wrapper);
+
+}

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

@@ -61,4 +61,9 @@ public interface AccountRunningWaterService extends BaseService<AccountRunningWa
      * 账户资金流水表导出excel
      */
     void exportExcel(AccountRunningWaterSelectDto dto, HttpServletResponse httpServletResponse);
+
+    /**
+     * 退税添加
+     */
+    void taxRefund(AccountRunningWaterDto dto);
 }

+ 29 - 1
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java

@@ -16,10 +16,12 @@ import com.fjhx.account.entity.account.po.AccountManagement;
 import com.fjhx.account.entity.account.po.AccountRemainder;
 import com.fjhx.account.entity.account.po.AccountRunningWater;
 import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
 import com.fjhx.account.mapper.account.AccountRunningWaterMapper;
 import com.fjhx.account.service.account.AccountManagementService;
 import com.fjhx.account.service.account.AccountRemainderService;
 import com.fjhx.account.service.account.AccountRunningWaterService;
+import com.fjhx.account.service.tax.TaxRefundDetailsService;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.corporation.po.Corporation;
 import com.fjhx.common.service.corporation.CorporationService;
@@ -66,6 +68,8 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
 
     @Autowired
     private AccountManagementService accountManagementService;
+    @Autowired
+    private TaxRefundDetailsService taxRefundDetailsService;
 
     @Override
     public Page<AccountRunningWaterVo> getPage(AccountRunningWaterSelectDto dto) {
@@ -141,6 +145,17 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         // 币种
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getCurrency()), "arw.currency", dto.getCurrency());
         wrapper.orderByDesc("arw.transaction_time");
+
+        //获取当前分页之前的数据先处理余额
+        Integer size = (dto.getPageNum() - 1) * dto.getPageSize();
+        List<AccountRunningWater> amounts = baseMapper.getAccountRunningWaterAmount(wrapper, size);
+        //收入合
+        BigDecimal incomeSum = amounts.stream().filter(item -> "10".equals(item.getStatus())).map(AccountRunningWater::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        //支出合
+        BigDecimal expenditureSum = amounts.stream().filter(item -> "20".equals(item.getStatus())).map(AccountRunningWater::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        remainder = remainder.subtract(incomeSum).add(expenditureSum);
+
+        //获取分页数据
         Page<AccountRunningWaterVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<AccountRunningWaterVo> records = page.getRecords();
         for (AccountRunningWaterVo record : records) {
@@ -172,7 +187,7 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
     @Override
     @DSTransactional
     public void add(AccountRunningWaterDto dto) {
-        if(StringUtils.isEmpty(dto.getCurrency())){
+        if (StringUtils.isEmpty(dto.getCurrency())) {
             throw new ServiceException("币种不能为空");
         }
         dto.setRate(ExchangeRateUtil.getCnyToCodeRate(dto.getCurrency()));
@@ -348,4 +363,17 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         return dictTenantDataServiceList;
     }
 
+    /**
+     * 退税添加
+     */
+    @DSTransactional
+    @Override
+    public void taxRefund(AccountRunningWaterDto dto) {
+        dto.setStatus("10");
+        add(dto);
+        List<TaxRefundDetails> taxRefundDetailsList = dto.getTaxRefundDetailsList();
+        taxRefundDetailsList.forEach(item -> item.setAccountRunningWaterId(dto.getId()));
+        taxRefundDetailsService.saveBatch(taxRefundDetailsList);
+    }
+
 }

+ 25 - 0
hx-account/src/main/java/com/fjhx/account/service/tax/TaxRefundDetailsService.java

@@ -0,0 +1,25 @@
+package com.fjhx.account.service.tax;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.account.entity.tax.dto.TaxRefundDetailsSelectDto;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 退税明细表 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+public interface TaxRefundDetailsService extends BaseService<TaxRefundDetails> {
+
+    /**
+     * 退税明细表分页
+     */
+    Page<TaxRefundDetailsVo> getPage(TaxRefundDetailsSelectDto dto);
+
+}

+ 33 - 0
hx-account/src/main/java/com/fjhx/account/service/tax/impl/TaxRefundDetailsServiceImpl.java

@@ -0,0 +1,33 @@
+package com.fjhx.account.service.tax.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.account.entity.tax.dto.TaxRefundDetailsSelectDto;
+import com.fjhx.account.entity.tax.po.TaxRefundDetails;
+import com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo;
+import com.fjhx.account.mapper.tax.TaxRefundDetailsMapper;
+import com.fjhx.account.service.tax.TaxRefundDetailsService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 退税明细表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-06-30
+ */
+@Service
+public class TaxRefundDetailsServiceImpl extends ServiceImpl<TaxRefundDetailsMapper, TaxRefundDetails> implements TaxRefundDetailsService {
+
+    @Override
+    public Page<TaxRefundDetailsVo> getPage(TaxRefundDetailsSelectDto dto) {
+        IWrapper<TaxRefundDetails> wrapper = getWrapper();
+        wrapper.orderByDesc("trd", TaxRefundDetails::getId);
+        Page<TaxRefundDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+}

+ 8 - 2
hx-account/src/main/resources/mapper/account/AccountRunningWaterMapper.xml

@@ -51,10 +51,16 @@
             arw.create_time,
             arw.update_user,
             arw.update_time,
-            am.alias accountManagementName
+            am.alias                                             accountManagementName
         from account_running_water arw
-                 left join  account_management am on arw.account_management_id = am.id
+                 left join account_management am on arw.account_management_id = am.id
             ${ew.customSqlSegment}
     </select>
+    <select id="getAccountRunningWaterAmount" resultType="com.fjhx.account.entity.account.po.AccountRunningWater">
+        SELECT arw.`status`,
+               amount
+        FROM account_running_water arw ${ew.customSqlSegment}
+            LIMIT #{size}
+    </select>
 
 </mapper>

+ 17 - 0
hx-account/src/main/resources/mapper/tax/TaxRefundDetailsMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.account.mapper.tax.TaxRefundDetailsMapper">
+    <select id="getPage" resultType="com.fjhx.account.entity.tax.vo.TaxRefundDetailsVo">
+        select trd.id,
+               trd.account_running_water_id,
+               trd.contract_id,
+               trd.amount,
+               trd.create_user,
+               trd.create_time,
+               trd.update_user,
+               trd.update_time
+        from tax_refund_details trd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>