ソースを参照

资金账户页面增加余额展示

yzc 1 年間 前
コミット
f3b71b7bd2

+ 8 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/vo/AccountManagementVo.java

@@ -1,9 +1,12 @@
 package com.fjhx.account.entity.account.vo;
 
 import com.fjhx.account.entity.account.po.AccountManagement;
+import com.fjhx.account.entity.account.po.AccountRemainder;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 账户-管理表列表查询返回值实体
  *
@@ -19,4 +22,9 @@ public class AccountManagementVo extends AccountManagement {
      */
     private String corporationName;
 
+    /**
+     * 余额列表
+     */
+    private List<AccountRemainder> accountRemainderList;
+
 }

+ 30 - 17
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountManagementServiceImpl.java

@@ -77,10 +77,23 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
         }
         Page<AccountManagementVo> page = baseMapper.getPage(dto.getPage(), wrapper);
         List<AccountManagementVo> records = page.getRecords();
+
+        if (ObjectUtil.isEmpty(records)) {
+            return page;
+        }
+        List<Long> accountManagementIds = records.stream().map(AccountManagement::getId).distinct().collect(Collectors.toList());
+
         //赋值归属公司名称
         corporationService.attributeAssign(records, AccountManagementVo::getCorporationId, (item, corporation) -> {
             item.setCorporationName(corporation.getName());
         });
+        //赋值币种余额列表
+        Map<Long, List<AccountRemainder>> accountRemainderMap = accountRemainderService.mapKGroup(AccountRemainder::getAccountManagementId, q -> q
+                .select(AccountRemainder::getCurrency, AccountRemainder::getRemainder, AccountRemainder::getAccountManagementId)
+                .in(AccountRemainder::getAccountManagementId, accountManagementIds)
+        );
+        records.forEach(item -> item.setAccountRemainderList(accountRemainderMap.get(item.getId())));
+
         return page;
     }
 
@@ -113,7 +126,7 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
         //判断账户的别名是否已存在
         List<AccountManagement> accountManagements = this.list(Wrappers.<AccountManagement>lambdaQuery()
                 .eq(AccountManagement::getAlias, accountManagementDto.getAlias()));
-        if (accountManagements.size()>0){
+        if (accountManagements.size() > 0) {
             throw new ServiceException("数据错误:账户别名已存在请重新创建");
         }
         //添加账户管理表的信息
@@ -132,15 +145,15 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
         //判断账户的别名是否已存在
         List<AccountManagement> accountManagements = this.list(Wrappers.<AccountManagement>lambdaQuery()
                 .eq(AccountManagement::getAlias, accountManagementDto.getAlias()));
-        if (accountManagements.size()>1){
+        if (accountManagements.size() > 1) {
             throw new ServiceException("数据错误:账户别名已存在请重新创建");
         }
         //删除账户-余额表的信息
         List<AccountRemainder> accountRemainderList = accountManagementDto.getAccountRemainderList();
         List<Long> ids = accountRemainderList.stream().map(accountRemainder -> accountRemainder.getId()).collect(Collectors.toList());
         accountRemainderService.remove(Wrappers.<AccountRemainder>lambdaQuery()
-                .eq(AccountRemainder::getAccountManagementId,accountManagementDto.getId())
-                .notIn(AccountRemainder::getId,ids)
+                .eq(AccountRemainder::getAccountManagementId, accountManagementDto.getId())
+                .notIn(AccountRemainder::getId, ids)
         );
         //添加账户余额表的信息
         saveAccountRemainder(accountManagementDto);
@@ -156,21 +169,21 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
         List<AccountRunningWater> accountRunningWaterList = accountRunningWaterService.list(Wrappers.<AccountRunningWater>lambdaQuery()
                 .eq(AccountRunningWater::getAccountManagementId, id));
         //如果存在流水表的数据则不能删除账户表的信息
-        if (accountRunningWaterList.size()>0){
+        if (accountRunningWaterList.size() > 0) {
             throw new ServiceException("无法删除,该账户已存在流水数据");
         }
         //删除账户-管理表的信息
         this.removeById(id);
         //删除账户-余额表的信息
         accountRemainderService.remove(Wrappers.<AccountRemainder>lambdaQuery()
-                .eq(AccountRemainder::getAccountManagementId,id));
+                .eq(AccountRemainder::getAccountManagementId, id));
     }
 
     /**
      * 账户统计(账户列表)
      */
     @Override
-    public  List<Map<String, Object>> managementStatistics(AccountManagementSelectDto dto) {
+    public List<Map<String, Object>> managementStatistics(AccountManagementSelectDto dto) {
         //存放账户统计数据
         List<Map<String, Object>> list = new ArrayList<>();
 
@@ -185,24 +198,24 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
         List<DictTenantDataVo> dictTenantDataVos = getDict("customer_source");
         DynamicDataSourceContextHolder.poll();
 
-        if (dictTenantDataVos.size()==0){
+        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));
+            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){
+            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());
+                if (ObjectUtil.isNotEmpty(accountRemainderList1)) {
+                    map.put("remainder", accountRemainderList1.get(0).getRemainder());
                 }
             }
             list.add(map);
@@ -212,7 +225,7 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
     }
 
     //根据字典编码获取字典的数据
-    private List<DictTenantDataVo> getDict(String code){
+    private List<DictTenantDataVo> getDict(String code) {
         DictTenantDataSelectDto dto = new DictTenantDataSelectDto();
         dto.setDictCode(code);
         return dictTenantDataService.getList(dto);
@@ -319,7 +332,7 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
     /**
      * 添加账户-余额表的信息
      */
-    private void saveAccountRemainder(AccountManagementDto accountManagementDto){
+    private void saveAccountRemainder(AccountManagementDto accountManagementDto) {
         List<AccountRemainder> accountRemainderList = accountManagementDto.getAccountRemainderList();
         accountRemainderList.forEach(accountRemainder -> {
             accountRemainder.setAccountManagementId(accountManagementDto.getId());

+ 0 - 1
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractService.java

@@ -197,5 +197,4 @@ public interface ContractService extends BaseService<Contract> {
      */
     Map<String,Object> getHeadCustomerStatistics(ContractSelectDto dto);
 
-    void updateContract(Contract contract);
 }