|
@@ -22,14 +22,11 @@ import com.winhc.repal.cloud.vo.DiagnosisRecordVO;
|
|
|
import com.winhc.repal.cloud.vo.FinanceDynamicNumVO;
|
|
|
import com.winhc.repal.entity.*;
|
|
|
import com.winhc.repal.enums.*;
|
|
|
-import com.winhc.repal.model.bo.BillPageBO;
|
|
|
-import com.winhc.repal.model.bo.TotalMoneyBO;
|
|
|
-import com.winhc.repal.model.bo.UserBillUnreadInfoBO;
|
|
|
+import com.winhc.repal.model.bo.*;
|
|
|
import com.winhc.repal.model.dto.*;
|
|
|
-import com.winhc.repal.model.vo.RepalBillDetailVO;
|
|
|
-import com.winhc.repal.model.vo.RepalBillInfoVO;
|
|
|
-import com.winhc.repal.model.vo.RepalBillPageVO;
|
|
|
+import com.winhc.repal.model.vo.*;
|
|
|
import com.winhc.repal.repository.RepalBillMapper;
|
|
|
+import com.winhc.repal.repository.RepalResponsiblePersonMapper;
|
|
|
import com.winhc.repal.service.*;
|
|
|
import com.winhc.repal.util.DiagnosisUtil;
|
|
|
import com.winhc.repal.util.RepalBillStatusUtil;
|
|
@@ -42,6 +39,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.time.DayOfWeek;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
@@ -103,6 +101,12 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
@Autowired
|
|
|
private UserExtService userExtService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RepalResponsiblePersonMapper repalResponsiblePersonMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RepalDynamicService repalDynamicService;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
|
|
@@ -529,4 +533,78 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
}).collect(Collectors.toList()));
|
|
|
return voPage;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public RepalManageBillInfoVO queryManageInfo() {
|
|
|
+ //权限
|
|
|
+ UserContextBO userContextBO = UserContextUtil.getUser();
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(userContextBO.getUserId(),PermissionEnum.QUERY_ALL_URGE.getCode());
|
|
|
+ //查询组织编号
|
|
|
+ RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class).eq(RepalGroupMember::getUserId,userContextBO.getUserId()).eq(RepalGroupMember::getDeleted,Dict.DeletedStatusEnunm.否.getCode()),false);
|
|
|
+ if(ObjectUtil.isNull(repalGroupMember)){
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"您还未加入该组织,请联系超级管理员");
|
|
|
+ }
|
|
|
+ LocalDate startTime = LocalDate.now().plusDays(7);
|
|
|
+ ManageBillInfoBO manageBillInfo = repalBillMapper.getManageBillInfo(allFlag,userContextBO.getUserId(),repalGroupMember.getRepalGroupId(),startTime);
|
|
|
+ RepalManageBillInfoVO repalManageBillInfoVO = new RepalManageBillInfoVO();
|
|
|
+ if(ObjectUtil.isNull(manageBillInfo.getTotalMoney()) || BigDecimal.ZERO.equals(manageBillInfo.getTotalMoney())){
|
|
|
+ repalManageBillInfoVO.setOverdueScaleStr("0");
|
|
|
+ repalManageBillInfoVO.setTotalOverdueCount(0);
|
|
|
+ repalManageBillInfoVO.setTotalOverdueStr("0");
|
|
|
+ repalManageBillInfoVO.setTotalOverdueWeekCount(0);
|
|
|
+ repalManageBillInfoVO.setTotalOverdueWeekStr("0");
|
|
|
+ }else {
|
|
|
+ repalManageBillInfoVO.setTotalOverdueCount(manageBillInfo.getTotalOverdueCount());
|
|
|
+ repalManageBillInfoVO.setTotalOverdueStr(manageBillInfo.getTotalOverdue().toPlainString());
|
|
|
+ repalManageBillInfoVO.setTotalOverdueWeekCount(manageBillInfo.getTotalOverdueWeekCount());
|
|
|
+ repalManageBillInfoVO.setTotalOverdueWeekStr(manageBillInfo.getTotalOverdueWeek().toPlainString());
|
|
|
+ repalManageBillInfoVO.setOverdueScaleStr(manageBillInfo.getTotalOverdue().divide(manageBillInfo.getTotalMoney(),2, RoundingMode.HALF_UP).toPlainString());
|
|
|
+ }
|
|
|
+ return repalManageBillInfoVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public VOPage<RepalManageBillPageVO> queryManageBillPage(Integer pageNum, Integer pageSize) {
|
|
|
+ //权限
|
|
|
+ UserContextBO userContextBO = UserContextUtil.getUser();
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(userContextBO.getUserId(),PermissionEnum.QUERY_ALL_URGE.getCode());
|
|
|
+ //查询组织编号
|
|
|
+ RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class).eq(RepalGroupMember::getUserId,userContextBO.getUserId()).eq(RepalGroupMember::getDeleted,Dict.DeletedStatusEnunm.否.getCode()),false);
|
|
|
+ if(ObjectUtil.isNull(repalGroupMember)){
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"您还未加入该组织,请联系超级管理员");
|
|
|
+ }
|
|
|
+ LocalDate startTime = LocalDate.now().plusDays(7);
|
|
|
+ VOPage<RepalManageBillPageVO> voPage = new VOPage<>();
|
|
|
+ voPage.setPageSize(pageSize);
|
|
|
+ voPage.setPageNum(pageNum);
|
|
|
+ // 分页数据
|
|
|
+ Page<RepalManageBillPageBO> repalBillPage = new Page<>(pageNum,pageSize);
|
|
|
+ repalBillPage = repalBillMapper.getManageBillPage(repalBillPage,allFlag,userContextBO.getUserId(),repalGroupMember.getRepalGroupId(),startTime);
|
|
|
+ voPage.setTotalPage(Math.toIntExact(repalBillPage.getPages()));
|
|
|
+ voPage.setTotalNum(repalBillPage.getTotal());
|
|
|
+ voPage.setDataList(new ArrayList<>());
|
|
|
+ if (CollUtil.isEmpty(repalBillPage.getRecords())) {
|
|
|
+ return voPage;
|
|
|
+ }
|
|
|
+ List<RepalManageBillPageVO> vos = new ArrayList<>();
|
|
|
+ voPage.setDataList(vos);
|
|
|
+ Map<Long,List<ResponsiblePersonNameVO>> personMap= repalResponsiblePersonMapper.getResponsiblePersonNameList(repalBillPage.getRecords().stream().map(RepalManageBillPageBO::getRepalBillId).collect(Collectors.toList())).stream().collect(Collectors.groupingBy(ResponsiblePersonNameVO::getRepalBillId));
|
|
|
+ for(RepalManageBillPageBO manageBillPageBO:repalBillPage.getRecords()){
|
|
|
+ RepalManageBillPageVO vo = new RepalManageBillPageVO();
|
|
|
+ vos.add(vo);
|
|
|
+ BeanUtils.copyProperties(manageBillPageBO,vo);
|
|
|
+ vo.setOverdueDay(Math.abs(manageBillPageBO.getEndDate().toEpochDay() - LocalDate.now().toEpochDay()));
|
|
|
+ vo.setTotalMoneyStr(manageBillPageBO.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
+ vo.setReceivableStr(manageBillPageBO.getReceivable().stripTrailingZeros().toPlainString());
|
|
|
+ //负责人
|
|
|
+ if(personMap.containsKey(manageBillPageBO.getRepalBillId())){
|
|
|
+ List<ResponsiblePersonNameVO> personNames = personMap.get(manageBillPageBO.getRepalBillId());
|
|
|
+ vo.setResponsiblePersonName(personNames.stream().map(ResponsiblePersonNameVO::getUserName).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ //催款动态条数
|
|
|
+ int dynamicCount = repalDynamicService.count(Wrappers.lambdaQuery(RepalDynamic.class).eq(RepalDynamic::getRepalBillId,manageBillPageBO.getRepalBillId()));
|
|
|
+ vo.setRepalDynamicCount(dynamicCount);
|
|
|
+ }
|
|
|
+ return voPage;
|
|
|
+ }
|
|
|
}
|