ソースを参照

添加了产品看板

wxf 2 年 前
コミット
cd839936ad
15 ファイル変更250 行追加11 行削除
  1. 10 0
      hx-account/src/main/java/com/fjhx/account/controller/account/AccountDeptRunningWaterController.java
  2. 12 0
      hx-account/src/main/java/com/fjhx/account/controller/account/AccountManagementController.java
  3. 26 0
      hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountDeptRunningWaterSelectDto.java
  4. 18 0
      hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRunningWaterSelectDto.java
  5. 2 0
      hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountManagement.java
  6. 5 0
      hx-account/src/main/java/com/fjhx/account/entity/account/vo/AccountRunningWaterVo.java
  7. 1 0
      hx-account/src/main/java/com/fjhx/account/flow/AccountRequestFundsFlow.java
  8. 7 0
      hx-account/src/main/java/com/fjhx/account/mapper/account/AccountDeptRunningWaterMapper.java
  9. 7 0
      hx-account/src/main/java/com/fjhx/account/service/account/AccountDeptRunningWaterService.java
  10. 9 0
      hx-account/src/main/java/com/fjhx/account/service/account/AccountManagementService.java
  11. 60 3
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountDeptRunningWaterServiceImpl.java
  12. 62 4
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountManagementServiceImpl.java
  13. 17 3
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java
  14. 13 0
      hx-account/src/main/resources/mapper/account/AccountDeptRunningWaterMapper.xml
  15. 1 1
      hx-customer/src/main/java/com/fjhx/customer/service/customer/impl/CustomerServiceImpl.java

+ 10 - 0
hx-account/src/main/java/com/fjhx/account/controller/account/AccountDeptRunningWaterController.java

@@ -60,5 +60,15 @@ public class AccountDeptRunningWaterController {
         return accountDeptRunningWaterService.DeptRunningWaterReport(dto);
     }
 
+    /**
+     * 部门-资金流水统计( 部门-资金流水列表)
+     * @param dto
+     * @return
+     */
+    @PostMapping("/deptRunningWaterStatistics")
+    public  Map<String,Object> deptRunningWaterStatistics(@RequestBody AccountDeptRunningWaterSelectDto dto){
+        return accountDeptRunningWaterService.deptRunningWaterStatistics(dto);
+    }
+
 
 }

+ 12 - 0
hx-account/src/main/java/com/fjhx/account/controller/account/AccountManagementController.java

@@ -4,6 +4,8 @@ import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.account.entity.account.dto.AccountManagementDto;
 import com.fjhx.account.entity.account.dto.AccountManagementSelectDto;
+import com.fjhx.account.entity.account.po.AccountManagement;
+import com.fjhx.account.entity.account.po.AccountRemainder;
 import com.fjhx.account.entity.account.vo.AccountManagementVo;
 import com.fjhx.account.service.account.AccountManagementService;
 import com.fjhx.common.constant.SourceConstant;
@@ -14,6 +16,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * <p>
@@ -79,4 +84,11 @@ public class AccountManagementController {
 //        accountManagementService.importsAmount(dto);
 //    }
 
+    /**
+     * 账户统计(账户列表)
+     */
+    @PostMapping("/managementStatistics")
+    public  List<Map<String, Object>> managementStatistics(@RequestBody AccountManagementSelectDto dto) {
+        return accountManagementService.managementStatistics(dto);
+    }
 }

+ 26 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountDeptRunningWaterSelectDto.java

@@ -4,6 +4,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 部门-资金流水关联表列表查询入参实体
  *
@@ -38,6 +40,30 @@ public class AccountDeptRunningWaterSelectDto extends BaseSelectDto {
      */
     private Long deptId;
 
+    /**
+     * 归属公司id
+     */
+    private Long corporationId;
+
+    /**
+     * 账户-管理表ID
+     */
+    private Long accountManagementId;
+
+    /**
+     *摘要
+     */
+    private String remarks;
+
+    /**
+     * 起始金额
+     */
+    private BigDecimal beginAmount;
+
+    /**
+     * 结束金额
+     */
+    private BigDecimal endAmount;
 
 
 }

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

@@ -4,6 +4,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 账户资金流水表列表查询入参实体
  *
@@ -42,4 +44,20 @@ public class AccountRunningWaterSelectDto extends BaseSelectDto {
      * 是否认领
      */
     private String isClaim;
+
+    /**
+     * 是否合同到账
+     */
+    private String received;
+
+    /**
+     * 交易开始金额
+     */
+    private BigDecimal beginAmount;
+
+    /**
+     * 交易结束金额
+     */
+    private BigDecimal endAmount;
+
 }

+ 2 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountManagement.java

@@ -82,6 +82,8 @@ public class AccountManagement extends BasePo {
 
 
 
+
+
 //    /**
 //     * 云帆ID
 //     */

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/vo/AccountRunningWaterVo.java

@@ -68,4 +68,9 @@ public class AccountRunningWaterVo extends AccountRunningWater {
      * 日期
      */
     private String time;
+
+    /**
+     * 收支类型
+     */
+    private String status;
 }

+ 1 - 0
hx-account/src/main/java/com/fjhx/account/flow/AccountRequestFundsFlow.java

@@ -108,6 +108,7 @@ public class AccountRequestFundsFlow extends FlowDelegate {
 
         accountPayment.setPaymentMethod(accountRequestFundsDto.getPaymentMethod());
         accountPayment.setIncomeAmount(accountRequestFundsDto.getTotal());
+        accountPayment.setAmount(accountRequestFundsDto.getTotal());
         accountPayment.setName(accountRequestFundsDto.getName());
         accountPayment.setBusinessManagementId(accountRequestFundsDto.getAccountManagementId());
         accountPayment.setOpeningBank(accountRequestFundsDto.getOpeningBank());

+ 7 - 0
hx-account/src/main/java/com/fjhx/account/mapper/account/AccountDeptRunningWaterMapper.java

@@ -31,4 +31,11 @@ public interface AccountDeptRunningWaterMapper extends BaseMapper<AccountDeptRun
      * 部门-资金流水统计列表
      */
     List<AccountRunningWaterVo> DeptRunningWaterReport(@Param("ew") QueryWrapper<Object> query);
+
+    /**
+     * 查询部门-资金流水统计信息
+     * @param query
+     * @return
+     */
+    List<AccountRunningWaterVo> deptRunningWaterStatistics(@Param("ew") QueryWrapper<Object> query);
 }

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

@@ -53,4 +53,11 @@ public interface AccountDeptRunningWaterService extends BaseService<AccountDeptR
      * @return
      */
     List<Map<String,Object>> DeptRunningWaterReport(AccountDeptRunningWaterSelectDto dto);
+
+    /**
+     * 部门-资金流水统计( 部门-资金流水列表)
+     * @param dto
+     * @return
+     */
+    Map<String, Object> deptRunningWaterStatistics(AccountDeptRunningWaterSelectDto dto);
 }

+ 9 - 0
hx-account/src/main/java/com/fjhx/account/service/account/AccountManagementService.java

@@ -1,6 +1,7 @@
 package com.fjhx.account.service.account;
 
 import com.fjhx.account.entity.account.po.AccountManagement;
+import com.fjhx.account.entity.account.po.AccountRemainder;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,6 +9,9 @@ import com.fjhx.account.entity.account.vo.AccountManagementVo;
 import com.fjhx.account.entity.account.dto.AccountManagementSelectDto;
 import com.fjhx.account.entity.account.dto.AccountManagementDto;
 
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * <p>
@@ -44,6 +48,11 @@ public interface AccountManagementService extends BaseService<AccountManagement>
      */
     void delete(Long id);
 
+    /**
+     * 账户统计(账户列表)
+     */
+    List<Map<String, Object>> managementStatistics(AccountManagementSelectDto dto);
+
 //    /**
 //     * 导入账户表的数据
 //     */

+ 60 - 3
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountDeptRunningWaterServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.conditions.interfaces.Func;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.account.controller.utils.DateUtils;
 import com.fjhx.account.entity.account.po.AccountDeptRunningWater;
@@ -49,12 +50,26 @@ public class AccountDeptRunningWaterServiceImpl extends ServiceImpl<AccountDeptR
     @Override
     public Page<AccountRunningWaterVo> getPage(AccountDeptRunningWaterSelectDto dto) {
         QueryWrapper<Object> wrapper = Wrappers.query();
+        //收支类型
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getStatus()), "arw.status", dto.getStatus());
+        //币种
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getCurrency()), "arw.currency", dto.getCurrency());
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getType()),"adrw.type",dto.getType());
-        if (StringUtils.isNotEmpty(dto.getKeyword())) {
-            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks", dto.getKeyword()).or().like("arw.name", dto.getKeyword()));
-        }
+        //归属公司id
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getCorporationId()),"am.corporation_id",dto.getCorporationId());
+        //摘要
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getRemarks()),"arw.remarks",dto.getRemarks());
+        //起始金额
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getBeginAmount()),"arw.amount",dto.getBeginAmount());
+        //结束金额
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getEndAmount()),"arw.amount",dto.getEndAmount());
+        //开始时间
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getBeginTime()),"arw.create_time",dto.getBeginTime());
+        //结束时间
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getEndTime()),"arw.create_time",dto.getEndTime());
+//        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+//            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks", dto.getKeyword()).or().like("arw.name", dto.getKeyword()));
+//        }
 
         Page<AccountRunningWaterVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         //切换数据源
@@ -186,4 +201,46 @@ public class AccountDeptRunningWaterServiceImpl extends ServiceImpl<AccountDeptR
         return mapList;
     }
 
+    /**
+     * 部门-资金流水统计( 部门-资金流水列表)
+     * @param dto
+     * @return
+     */
+    @Override
+    public Map<String, Object> deptRunningWaterStatistics(AccountDeptRunningWaterSelectDto dto) {
+        //存放流水统计数据
+        Map<String, Object> map = new HashMap<>();
+
+        QueryWrapper<Object> query = Wrappers.query();
+        query.groupBy("rwd.dept_id");
+        //查询部门-资金流水统计信息
+        List<AccountRunningWaterVo> accountRunningWaterVoList =  baseMapper.deptRunningWaterStatistics(query);
+
+        //计算收入合计数据
+        BigDecimal incomeAmount = accountRunningWaterVoList.stream().map(accountRunningWaterVo ->
+                accountRunningWaterVo.getIncomeAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        //计算支出合计数据
+        BigDecimal expenditureAmount = accountRunningWaterVoList.stream().map(accountRunningWaterVo ->
+                accountRunningWaterVo.getExpenditureAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
+        map.put("incomeAmount",incomeAmount);
+        map.put("expenditureAmount",expenditureAmount);
+
+        //查询部门信息
+        //切换数据源
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        List<SysDept> sysDeptList = sysDeptService.list();
+        Map<Long, List<SysDept>> sysDeptMap = sysDeptList.stream().collect(Collectors.groupingBy(SysDept::getDeptId));
+
+        //赋值部门信息
+        for (AccountRunningWaterVo accountRunningWaterVo : accountRunningWaterVoList) {
+            List<SysDept> sysDepts = sysDeptMap.get(accountRunningWaterVo.getDeptId());
+            if (CollectionUtils.isNotEmpty(sysDepts)){
+                accountRunningWaterVo.setDeptName(sysDepts.get(0).getDeptName());
+            }
+        }
+        map.put("accountRunningWaterVoList",accountRunningWaterVoList);
+        return map;
+    }
+
 }

+ 62 - 4
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountManagementServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.account.entity.account.po.AccountManagement;
@@ -17,6 +18,9 @@ import com.fjhx.account.service.account.AccountRunningWaterService;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.corporation.po.Corporation;
 import com.fjhx.common.service.corporation.CorporationService;
+import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
+import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
+import com.fjhx.tenant.service.dict.DictTenantDataService;
 import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.annotation.TenantIgnore;
 import com.ruoyi.common.core.domain.BaseSelectDto;
@@ -35,8 +39,11 @@ import com.fjhx.account.entity.account.dto.AccountManagementDto;
 import cn.hutool.core.bean.BeanUtil;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 
@@ -57,10 +64,8 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
     private AccountRunningWaterService accountRunningWaterService;
 
     @Autowired
-    private CorporationService corporationService;
+    private DictTenantDataService dictTenantDataService;
 
-    @Autowired
-    private ISysUserService sysUserService;
 
     /**
      * 账户-管理表分页
@@ -73,7 +78,7 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
             wrapper.and(wrapper1 ->{
                 wrapper1.like(AccountManagement::getName,dto.getKeyword()).or()
                 .like(AccountManagement::getAlias,dto.getKeyword()).or()
-                .like(AccountManagement::getAccountOpening,dto.getOpeningBank()).or()
+                .like(AccountManagement::getAccountOpening,dto.getKeyword()).or()
                         .like(AccountManagement::getOpeningBank,dto.getKeyword());
             } );
         }
@@ -158,6 +163,59 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
                 .eq(AccountRemainder::getAccountManagementId,id));
     }
 
+    /**
+     * 账户统计(账户列表)
+     */
+    @Override
+    public  List<Map<String, Object>> managementStatistics(AccountManagementSelectDto dto) {
+        //存放账户统计数据
+        List<Map<String, Object>> list = new ArrayList<>();
+
+        QueryWrapper<AccountRemainder> query = Wrappers.query();
+        query.groupBy("currency");
+        query.select("currency,sum(remainder) remainder");
+        List<AccountRemainder> accountRemainderList = accountRemainderService.list(query);
+
+        //切换数据源
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        //获取来源的字典数据
+        List<DictTenantDataVo> dictTenantDataVos = getDict("customer_source");
+        DynamicDataSourceContextHolder.poll();
+
+        if (dictTenantDataVos.size()==0){
+            throw new ServiceException("数据有误:没有配置币种字典,请先配置");
+        }
+
+        //赋值
+        for (DictTenantDataVo dictTenantDataVo : dictTenantDataVos) {
+            //赋初始值信息
+            Map<String,Object> map = new HashMap<>();
+            map.put("currencyKey",dictTenantDataVo.getDictKey());
+            map.put("currencyValue",dictTenantDataVo.getDictValue());
+            map.put("remainder",new BigDecimal(0));
+            //赋值余额信息
+            if (accountRemainderList.size()>0){
+                Map<String, List<AccountRemainder>> accountRemainderMap = accountRemainderList.stream()
+                        .collect(Collectors.groupingBy(AccountRemainder::getCurrency));
+                List<AccountRemainder> accountRemainderList1 = accountRemainderMap.get(dictTenantDataVo.getDictKey());
+                if (ObjectUtil.isNotEmpty(accountRemainderList1)){
+                    map.put("remainder",accountRemainderList1.get(0).getRemainder());
+                }
+            }
+            list.add(map);
+        }
+
+        return list;
+    }
+
+    //根据字典编码获取字典的数据
+    private List<DictTenantDataVo> getDict(String code){
+        DictTenantDataSelectDto dto = new DictTenantDataSelectDto();
+        dto.setDictCode(code);
+        return dictTenantDataService.getList(dto);
+    }
+
+
 //    /**
 //     * 导入账户表的数据
 //     */

+ 17 - 3
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java

@@ -39,13 +39,27 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
     @Override
     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());
-        if (StringUtils.isNotEmpty(dto.getKeyword())) {
-            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks", dto.getKeyword()).or().like("arw.name", dto.getKeyword()));
-        }
+        //交易开始金额
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getBeginAmount()),"arw.amount",dto.getBeginAmount());
+        //交易结束金额
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getEndAmount()),"arw.amount",dto.getEndAmount());
+        //交易开始时间
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getBeginTime()),"arw.create_time",dto.getBeginTime());
+        //交易结束金额
+        wrapper.ge(ObjectUtil.isNotEmpty(dto.getEndTime()),"arw.create_time",dto.getEndTime());
+//        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);
             wrapper.orderByDesc("arw.is_claim","arw.create_time");

+ 13 - 0
hx-account/src/main/resources/mapper/account/AccountDeptRunningWaterMapper.xml

@@ -40,5 +40,18 @@
             LEFT JOIN account_running_water ar ON rw.running_water_id = ar.id
             ${ew.customSqlSegment}
     </select>
+    <select id="deptRunningWaterStatistics" resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">
+        select
+           arw.status,
+             <!-- 如果没有分配部门,则使用资金流水表的金额来计算无部门收入数据-->
+           IF(arw.`status` = 10,if(rwd.amount is null,ifnull(sum(arw.amount),0),ifnull(sum(rwd.amount),0)),0) incomeAmount,
+           <!-- 如果没有分配部门,则使用资金流水表的金额来计算无部门支出数据-->
+            IF(arw.`status` = 20,if(rwd.amount is null,ifnull(sum(arw.amount),0),ifnull(sum(rwd.amount),0)),0) expenditureAmount,
+           adrw.dept_id
+        from account_running_water arw
+            left join account_dept_running_water adrw on arw.id = adrw.running_water_id
+            left join account_dept_running_water_detail rwd on  adrw.id = rwd.dept_running_water_id
+            ${ew.customSqlSegment}
+    </select>
 
 </mapper>

+ 1 - 1
hx-customer/src/main/java/com/fjhx/customer/service/customer/impl/CustomerServiceImpl.java

@@ -114,7 +114,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
             String join = StringUtils.join(customerIds, ",");
             wrapper.orderByDesc("id IN ( " + join + " )");
         }
-
+        wrapper.orderByDesc(Customer::getUpdateTime);
         wrapper.orderByDesc(Customer::getCreateTime);
 
         Page<CustomerVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);