|
@@ -7,13 +7,17 @@ import com.winhc.common.enums.CodeMsg;
|
|
import com.winhc.common.exception.CommonException;
|
|
import com.winhc.common.exception.CommonException;
|
|
import com.winhc.repal.entity.RepalBill;
|
|
import com.winhc.repal.entity.RepalBill;
|
|
import com.winhc.repal.entity.RepalBook;
|
|
import com.winhc.repal.entity.RepalBook;
|
|
|
|
+import com.winhc.repal.entity.RepalGroupMember;
|
|
import com.winhc.repal.enums.DeletedStatusEnum;
|
|
import com.winhc.repal.enums.DeletedStatusEnum;
|
|
import com.winhc.repal.enums.PermissionEnum;
|
|
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.BookDynamicCountBO;
|
|
-import com.winhc.repal.model.bo.UserBillUnreadInfoBO;
|
|
|
|
|
|
+import com.winhc.repal.model.bo.HomeReceivableBO;
|
|
import com.winhc.repal.model.dto.DeleteRepalBookDTO;
|
|
import com.winhc.repal.model.dto.DeleteRepalBookDTO;
|
|
import com.winhc.repal.model.dto.HomeTypeDTO;
|
|
import com.winhc.repal.model.dto.HomeTypeDTO;
|
|
import com.winhc.repal.model.vo.HomeGradeVO;
|
|
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.RepalBillRemindUnReadVO;
|
|
import com.winhc.repal.model.vo.RepalBookInfoVO;
|
|
import com.winhc.repal.model.vo.RepalBookInfoVO;
|
|
import com.winhc.repal.repository.RepalBookMapper;
|
|
import com.winhc.repal.repository.RepalBookMapper;
|
|
@@ -25,6 +29,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.math.RoundingMode;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.time.LocalTime;
|
|
@@ -62,6 +68,38 @@ public class RepalBookServiceImpl extends ServiceImpl<RepalBookMapper, RepalBook
|
|
@Autowired
|
|
@Autowired
|
|
private RepalResponsiblePersonService repalResponsiblePersonService;
|
|
private RepalResponsiblePersonService repalResponsiblePersonService;
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public HomeReceivableVO getHomeReceivable(Integer repalBillType, HomeTypeDTO dto) {
|
|
|
|
+ HomeReceivableVO vo = new HomeReceivableVO();
|
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(), PermissionEnum.QUERY_ALL_RECEIVABLE.getCode());
|
|
|
|
+ // 所有
|
|
|
|
+ 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);
|
|
|
|
+ }
|
|
|
|
+ HomeReceivableBO receivableBO = repalBillService.getBillTotal(null, allFlag ? null : UserContextUtil.getUser().getUserId(), dto.getRepalBookId(), repalBillType, start, end);
|
|
|
|
+ HomeReceivableBO overdueBO = repalBillService.getBillTotal(RepalBillStatusEnum.OVERDUE.getCode(), allFlag ? null : UserContextUtil.getUser().getUserId(), dto.getRepalBookId(), repalBillType, start, end);
|
|
|
|
+ vo.setBillMoneyStr(receivableBO.getBillMoney().setScale(2).toString());
|
|
|
|
+ vo.setBillCount(receivableBO.getBillCount());
|
|
|
|
+ vo.setOverdueTotalStr(overdueBO.getOverdueTotal().setScale(2).toString());
|
|
|
|
+ vo.setOverdueTotalCount(overdueBO.getOverdueTotalCount());
|
|
|
|
+ vo.setTotalBillMoneyStr(receivableBO.getTotalBillMoney().setScale(2).toString());
|
|
|
|
+ vo.setReceiptMoneyStr(receivableBO.getReceiptMoney().setScale(2).toPlainString());
|
|
|
|
+ // 金额不为0计算逾期率
|
|
|
|
+ if (BigDecimal.ZERO.compareTo(receivableBO.getTotalBillMoney()) != 0 && BigDecimal.ZERO.compareTo(overdueBO.getOverdueTotal()) != 0) {
|
|
|
|
+ vo.setOverdueRate(overdueBO.getOverdueTotal().multiply(new BigDecimal(100)).divide(receivableBO.getTotalBillMoney(), 0, RoundingMode.HALF_UP).toString());
|
|
|
|
+ }
|
|
|
|
+ vo.setVisible(repalGroupMemberService.getMemberVisible(repalBillType));
|
|
|
|
+ return vo;
|
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -147,4 +185,11 @@ public class RepalBookServiceImpl extends ServiceImpl<RepalBookMapper, RepalBook
|
|
}
|
|
}
|
|
return BillGradeUtil.getGradeList(gradeList);
|
|
return BillGradeUtil.getGradeList(gradeList);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Boolean setBookVisible(Integer type) {
|
|
|
|
+ repalGroupMemberService.updateVisible(type);
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|