Kaynağa Gözat

feat:添加账本级别动态列表

zhangwei 2 yıl önce
ebeveyn
işleme
ef9203e673

+ 1 - 1
src/main/java/com/winhc/repal/enums/Dict.java

@@ -135,7 +135,7 @@ public class Dict {
          * 2 客户详情
          * 3 智能监测
          */
-        账款(1),客户(2),用户(3);
+        账款(1),客户(2),用户(3),账本(4);
 
         private Integer code;
 

+ 4 - 1
src/main/java/com/winhc/repal/model/dto/RepalRemindHistoryDTO.java

@@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
 @Accessors(chain = true)
 @ApiModel(value="智能提醒历史表入参")
 public class RepalRemindHistoryDTO {
-    @ApiModelProperty(value = "查询类型 1账款详情 2客户管理 3智能监测",required = true)
+    @ApiModelProperty(value = "查询类型 1账款详情 2客户管理 3智能监测 4首页账本",required = true)
     private Integer queryType;
 
     @ApiModelProperty(value = "客户ID")
@@ -23,6 +23,9 @@ public class RepalRemindHistoryDTO {
     @ApiModelProperty(value = "账款ID")
     private Long repalBillId;
 
+    @ApiModelProperty(value = "账本ID")
+    private Long repalBookId;
+
     @ApiModelProperty(value = "提醒类型(不传或者传非枚举字段默认全部),查数量不传:OVERDUE(逾期提醒)、RANK(账款评级)、FINANCE(财产线索)、RISK(风险预警)")
     private String remindType;
 

+ 65 - 0
src/main/java/com/winhc/repal/service/impl/RepalRemindHistoryServiceImpl.java

@@ -308,6 +308,26 @@ public class RepalRemindHistoryServiceImpl extends ServiceImpl<RepalRemindHistor
                     result.setUnreadTotalCount(result.getUnreadTotalCount()+tmp.getUnreadTotalCount());
                 }
             }
+        }else if(Dict.COUNT_QUERY_ENUM.账本.getCode().equals(dto.getQueryType())){
+            if(ObjectUtil.isNull(dto.getRepalBookId())){
+                throw new CommonException(CodeMsg.VALIDATE_PARAMETER);
+            }
+            //客户维度多账款
+            List<RepalBill> repalBills = repalBillService.list(Wrappers.lambdaQuery(RepalBill.class).eq(RepalBill::getRepalBookId,dto.getRepalBookId()).eq(RepalBill::getDeleted, Dict.DeletedStatusEnunm.否.getCode()));
+            for(RepalBill repalBill:repalBills){
+                RepalRemindReadInfo repalRemindReadInfo = repalRemindReadInfoService.getReadInfoByUserId(userBean.getUserId(), dto.getRepalBillId(), repalBill.getRepalBookId());
+                RepalRemindCountVO tmp = repalRemindHistoryMapper.remindCount(repalBill.getId(),localDateTime,repalRemindReadInfo.getRiskRemindId(),repalRemindReadInfo.getRankRemindId(),repalRemindReadInfo.getOverdueRemindId(),repalRemindReadInfo.getFinanceRemindId());
+                result.setFinanceCount(result.getFinanceCount()+tmp.getFinanceCount());
+                result.setRankCount(result.getRankCount()+tmp.getRankCount());
+                result.setOverdueCount(result.getOverdueCount()+tmp.getOverdueCount());
+                result.setRiskCount(result.getRiskCount()+tmp.getRiskCount());
+                result.setUnreadRiskCount(result.getUnreadRiskCount()+tmp.getUnreadRiskCount());
+                result.setUnreadRankCount(result.getUnreadRankCount()+tmp.getUnreadRankCount());
+                result.setUnreadFinanceCount(result.getUnreadFinanceCount()+tmp.getUnreadFinanceCount());
+                result.setUnreadOverdueCount(result.getUnreadOverdueCount()+tmp.getUnreadOverdueCount());
+                result.setTotalCount(result.getTotalCount()+tmp.getTotalCount());
+                result.setUnreadTotalCount(result.getUnreadTotalCount()+tmp.getUnreadTotalCount());
+            }
         }
         return result;
     }
@@ -466,6 +486,51 @@ public class RepalRemindHistoryServiceImpl extends ServiceImpl<RepalRemindHistor
                     }
                 }
             }
+        }else if(Dict.COUNT_QUERY_ENUM.账本.getCode().equals(dto.getQueryType())){
+            if(ObjectUtil.isNull(dto.getRepalBookId())){
+                throw new CommonException(CodeMsg.VALIDATE_PARAMETER);
+            }
+            //客户维度多账款
+            List<RepalBill> repalBills = repalBillService.list(Wrappers.lambdaQuery(RepalBill.class).eq(RepalBill::getRepalBookId,dto.getRepalBookId()).eq(RepalBill::getDeleted, Dict.DeletedStatusEnunm.否.getCode()));
+            if(CollUtil.isEmpty(repalBills)){
+                return new VOPage<>();
+            }
+            qw.in(RepalRemindHistory::getRepalBillId,repalBills.stream().map(RepalBill::getId).collect(Collectors.toList()));
+            Map<String,RepalCustomer> repalCustomerMap = repalCustomerService.list(Wrappers.lambdaQuery(RepalCustomer.class).in(RepalCustomer::getCustId,repalBills.stream().map(RepalBill::getCustomerId).collect(Collectors.toList()))).stream().collect(Collectors.toMap(RepalCustomer::getCustName, Function.identity()));
+            IPage<RepalRemindHistory> pageAccountRemindHistory = page(new Page<>(pageNum, pageSize), qw);
+            if(CollUtil.isNotEmpty(pageAccountRemindHistory.getRecords())){
+                result = new VOPage<>(pageNum, pageSize, pageAccountRemindHistory.getTotal(), pageAccountRemindHistory.getRecords().stream()
+                        .map(RepalRemindHistoryConvert::EntityToVO).collect(Collectors.toList()));
+                Map<Long,RepalRemindReadInfo> readInfoMap = new HashMap<>();
+                for(RepalRemindHistoryVO vo:result.getDataList()){
+                    if(repalCustomerMap.containsKey(vo.getCompanyName())){
+                        vo.setCompanyId(repalCustomerMap.get(vo.getCompanyName()).getCompanyId());
+                    }
+                    vo.setReadStatus(Dict.ReadStatusEnum.已读.getCode());
+                    RepalRemindReadInfo repalRemindReadInfo;
+                    if(readInfoMap.containsKey(vo.getRepalBillId())){
+                        repalRemindReadInfo  = readInfoMap.get(vo.getRepalBillId());
+                    }else {
+                        repalRemindReadInfo = repalRemindReadInfoService.getReadInfoByUserId(userBean.getUserId(), vo.getRepalBillId(), vo.getRepalBookId());
+                        readInfoMap.put(vo.getRepalBillId(),repalRemindReadInfo);
+                    }
+                    if(RemindEnum.逾期提醒.getCode().equals(vo.getRemindType()) && vo.getId() > repalRemindReadInfo.getOverdueRemindId()){
+                        vo.setReadStatus(Dict.ReadStatusEnum.未读.getCode());
+                    }else if(RemindEnum.财产线索.getCode().equals(vo.getRemindType()) && vo.getId() > repalRemindReadInfo.getFinanceRemindId()){
+                        vo.setReadStatus(Dict.ReadStatusEnum.未读.getCode());
+                    }else if(RemindEnum.风险预警.getCode().equals(vo.getRemindType()) && vo.getId() > repalRemindReadInfo.getRiskRemindId()){
+                        vo.setReadStatus(Dict.ReadStatusEnum.未读.getCode());
+                    }else if(RemindEnum.账款评级.getCode().equals(vo.getRemindType()) && vo.getId() > repalRemindReadInfo.getRankRemindId()){
+                        vo.setReadStatus(Dict.ReadStatusEnum.未读.getCode());
+                    }
+                }
+                //查询详细分类时更新已读id
+                if(StrUtil.isNotBlank(dto.getRemindType()) && CollUtil.isNotEmpty(readInfoMap)){
+                    for(RepalRemindReadInfo repalRemindReadInfo:readInfoMap.values()){
+                        repalRemindReadInfoService.updateReadInfoByUserId(userBean.getUserId(), dto.getRemindType(),repalRemindReadInfo.getRepalBillId(), repalRemindReadInfo.getRepalBookId());
+                    }
+                }
+            }
         }
         if (CollUtil.isNotEmpty(result.getDataList())) {
             result.getDataList().forEach(e -> {