|
@@ -7,20 +7,16 @@ import com.winhc.common.enums.CodeMsg;
|
|
|
import com.winhc.common.exception.CommonException;
|
|
|
import com.winhc.repal.entity.RepalBill;
|
|
|
import com.winhc.repal.entity.RepalBook;
|
|
|
-import com.winhc.repal.entity.RepalGroupMember;
|
|
|
+import com.winhc.repal.entity.RepalChangeRecord;
|
|
|
import com.winhc.repal.enums.DeletedStatusEnum;
|
|
|
import com.winhc.repal.enums.PermissionEnum;
|
|
|
import com.winhc.repal.enums.RepalBillStatusEnum;
|
|
|
-import com.winhc.repal.enums.RepalBillTypeEnum;
|
|
|
import com.winhc.repal.model.bo.BookDynamicCountBO;
|
|
|
import com.winhc.repal.model.bo.HomeReceivableBO;
|
|
|
import com.winhc.repal.model.dto.AddRepalBookDTO;
|
|
|
import com.winhc.repal.model.dto.DeleteRepalBookDTO;
|
|
|
import com.winhc.repal.model.dto.HomeTypeDTO;
|
|
|
-import com.winhc.repal.model.vo.HomeGradeVO;
|
|
|
-import com.winhc.repal.model.vo.HomeReceivableVO;
|
|
|
-import com.winhc.repal.model.vo.RepalBillRemindUnReadVO;
|
|
|
-import com.winhc.repal.model.vo.RepalBookInfoVO;
|
|
|
+import com.winhc.repal.model.vo.*;
|
|
|
import com.winhc.repal.repository.RepalBookMapper;
|
|
|
import com.winhc.repal.service.*;
|
|
|
import com.winhc.repal.util.BillGradeUtil;
|
|
@@ -35,9 +31,7 @@ import java.math.RoundingMode;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -69,6 +63,9 @@ public class RepalBookServiceImpl extends ServiceImpl<RepalBookMapper, RepalBook
|
|
|
@Autowired
|
|
|
private RepalResponsiblePersonService repalResponsiblePersonService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RepalChangeRecordService repalChangeRecordService;
|
|
|
+
|
|
|
@Override
|
|
|
public HomeReceivableVO getHomeReceivable(Integer repalBillType, HomeTypeDTO dto) {
|
|
|
HomeReceivableVO vo = new HomeReceivableVO();
|
|
@@ -197,6 +194,14 @@ public class RepalBookServiceImpl extends ServiceImpl<RepalBookMapper, RepalBook
|
|
|
public Long addRepalBook(AddRepalBookDTO dto) {
|
|
|
long groupId = repalGroupMemberService.getUserGroupId(UserContextUtil.getUser().getUserId());
|
|
|
// 新建账本
|
|
|
+ RepalBook book = this.getOne(Wrappers.lambdaQuery(RepalBook.class)
|
|
|
+ .eq(RepalBook::getUserId, UserContextUtil.getUser().getUserId())
|
|
|
+ .eq(RepalBook::getRepalGroupId, groupId));
|
|
|
+ if (Objects.nonNull(book)) {
|
|
|
+ if (dto.getRepalBookName().equals(book.getRepalBookName())) {
|
|
|
+ throw new CommonException(CodeMsg.FAILED, "账本名称重复");
|
|
|
+ }
|
|
|
+ }
|
|
|
RepalBook repalBook = new RepalBook();
|
|
|
repalBook.setRepalGroupId(groupId);
|
|
|
repalBook.setRepalBookName(dto.getRepalBookName());
|
|
@@ -204,4 +209,33 @@ public class RepalBookServiceImpl extends ServiceImpl<RepalBookMapper, RepalBook
|
|
|
this.save(repalBook);
|
|
|
return repalBook.getId();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<ReturnedMoneyVO> getGraph(HomeTypeDTO dto) {
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(), PermissionEnum.QUERY_ALL_RECEIVABLE.getCode());
|
|
|
+ long userId = UserContextUtil.getUser().getUserId();
|
|
|
+ LocalDateTime start = null;
|
|
|
+ LocalDateTime end = null;
|
|
|
+ if (Integer.valueOf(1).equals(dto.getQueryType())) {
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+ start = LocalDateTime.of(now.minusDays(7), LocalTime.MIN);
|
|
|
+ end = LocalDateTime.of(now, LocalTime.MAX);
|
|
|
+ }
|
|
|
+ if (Integer.valueOf(2).equals(dto.getQueryType())) {
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+ start = LocalDateTime.of(now.minusDays(30), LocalTime.MIN);
|
|
|
+ end = LocalDateTime.of(now, LocalTime.MAX);
|
|
|
+ }
|
|
|
+ List<RepalChangeRecord> recordList = repalChangeRecordService.getHomeRecord(allFlag ? null : userId, dto.getRepalBookId(), start, end);
|
|
|
+ if (CollUtil.isEmpty(recordList)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ Map<LocalDate, List<RepalChangeRecord>> map = recordList.stream().collect(Collectors.groupingBy(t -> t.getTimeCreated().toLocalDate()));
|
|
|
+ return map.entrySet().stream().map(t -> {
|
|
|
+ ReturnedMoneyVO vo = new ReturnedMoneyVO();
|
|
|
+ vo.setDate(t.getKey());
|
|
|
+ vo.setMoneyStr(t.getValue().stream().map(RepalChangeRecord::getTransMoney).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2).toString());
|
|
|
+ return vo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|