|
@@ -106,9 +106,8 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
|
|
|
@Override
|
|
|
public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
|
|
|
- if (ObjectUtil.hasEmpty(dto.getRepalGroupId(), dto.getRepalBookId())) {
|
|
|
- throw new CommonException(CodeMsg.VALIDATE_PARAMETER);
|
|
|
- }
|
|
|
+ Long groupId = repalGroupMemberService.getUserGroupId(UserContextUtil.getUser().getUserId());
|
|
|
+
|
|
|
VOPage<RepalBillPageVO> voPage = new VOPage<>();
|
|
|
voPage.setPageSize(dto.getPageSize());
|
|
|
voPage.setPageNum(dto.getPageNum());
|
|
@@ -120,14 +119,14 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
TotalMoneyBO overdueBO;
|
|
|
TotalMoneyBO totalBO;
|
|
|
if (allFlag) {
|
|
|
- totalMoneyBO = repalBillMapper.getTotalMoneyByGroup(dto.getRepalGroupId(), dto.getRepalBillType(), RepalBillStatusEnum.PROGRESSING.getCode(), dto.getRepalBookId());
|
|
|
- overdueBO = repalBillMapper.getTotalMoneyByGroup(dto.getRepalGroupId(), dto.getRepalBillType(), RepalBillStatusEnum.OVERDUE.getCode(), dto.getRepalBookId());
|
|
|
- totalBO = repalBillMapper.getTotalMoneyByGroup(dto.getRepalGroupId(), dto.getRepalBillType(), null, dto.getRepalBookId());
|
|
|
+ totalMoneyBO = repalBillMapper.getTotalMoneyByGroup(groupId, dto.getRepalBillType(), RepalBillStatusEnum.PROGRESSING.getCode(), dto.getRepalBookId());
|
|
|
+ overdueBO = repalBillMapper.getTotalMoneyByGroup(groupId, dto.getRepalBillType(), RepalBillStatusEnum.OVERDUE.getCode(), dto.getRepalBookId());
|
|
|
+ totalBO = repalBillMapper.getTotalMoneyByGroup(groupId, dto.getRepalBillType(), null, dto.getRepalBookId());
|
|
|
} else {
|
|
|
// 只查询自己负责的
|
|
|
- totalMoneyBO = repalBillMapper.getTotalMoneyByUser(UserContextUtil.getUser().getUserId(), dto.getRepalGroupId(), dto.getRepalBillType(), RepalBillStatusEnum.PROGRESSING.getCode(), dto.getRepalBookId());
|
|
|
- overdueBO = repalBillMapper.getTotalMoneyByUser(UserContextUtil.getUser().getUserId(), dto.getRepalGroupId(), dto.getRepalBillType(), RepalBillStatusEnum.OVERDUE.getCode(), dto.getRepalBookId());
|
|
|
- totalBO = repalBillMapper.getTotalMoneyByUser(UserContextUtil.getUser().getUserId(), dto.getRepalGroupId(), dto.getRepalBillType(), null, dto.getRepalBookId());
|
|
|
+ totalMoneyBO = repalBillMapper.getTotalMoneyByUser(UserContextUtil.getUser().getUserId(), groupId, dto.getRepalBillType(), RepalBillStatusEnum.PROGRESSING.getCode(), dto.getRepalBookId());
|
|
|
+ overdueBO = repalBillMapper.getTotalMoneyByUser(UserContextUtil.getUser().getUserId(), groupId, dto.getRepalBillType(), RepalBillStatusEnum.OVERDUE.getCode(), dto.getRepalBookId());
|
|
|
+ totalBO = repalBillMapper.getTotalMoneyByUser(UserContextUtil.getUser().getUserId(), groupId, dto.getRepalBillType(), null, dto.getRepalBookId());
|
|
|
}
|
|
|
infoVO.setTotalBillMoneyStr(totalMoneyBO.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
infoVO.setTotalBillCount(totalMoneyBO.getTotalCount());
|
|
@@ -202,8 +201,11 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
@Override
|
|
|
public RepalBillDetailVO getRepalBillDetail(Long repalBillId) {
|
|
|
RepalBill repalBill = this.getById(repalBillId);
|
|
|
- if (Objects.isNull(repalBill)) {
|
|
|
- return null;
|
|
|
+ // 负责人或高级权限才能查看
|
|
|
+ boolean queryAllFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
+ RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.QUERY_ALL_RECEIVABLE.getCode() : PermissionEnum.QUERY_ALL_RECEIPT.getCode());
|
|
|
+ if (!queryAllFlag &&!repalResponsiblePersonService.getResponsiblePersonId(repalBillId).contains(UserContextUtil.getUser().getUserId())) {
|
|
|
+ throw new CommonException(CodeMsg.FAILED, "没有查看权限");
|
|
|
}
|
|
|
RepalBillDetailVO vo = new RepalBillDetailVO();
|
|
|
BeanUtils.copyProperties(repalBill, vo);
|
|
@@ -286,7 +288,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean deleteRepalBillById(DeleteRepalBillDTO dto) {
|
|
|
RepalBill repalBill = this.getById(dto.getRepalBillId());
|
|
|
- if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
+ if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
|
|
|
throw new CommonException(CodeMsg.FAILED, "无对应权限");
|
|
|
}
|
|
@@ -301,7 +303,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean settleRepalBillById(SettleRepalBillDTO dto) {
|
|
|
RepalBill repalBill = this.getById(dto.getRepalBillId());
|
|
|
- if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
+ if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
|
|
|
throw new CommonException(CodeMsg.FAILED, "无对应权限");
|
|
|
}
|
|
@@ -341,20 +343,21 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
if (Objects.isNull(customer)) {
|
|
|
throw new CommonException(CodeMsg.FAILED, "客户信息错误");
|
|
|
}
|
|
|
+ long groupId = repalGroupMemberService.getUserGroupId(UserContextUtil.getUser().getUserId());
|
|
|
// 评级flag
|
|
|
boolean diagnosisFlag = (CustPropertyEnum.COMPANY.getCode().equals(customer.getCustProperty()) || CustPropertyEnum.GOV.getCode().equals(customer.getCustProperty()))
|
|
|
&& RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType());
|
|
|
if (diagnosisFlag && StrUtil.isBlank(customer.getCompanyId())) {
|
|
|
throw new CommonException(CodeMsg.FAILED, "公司信息错误");
|
|
|
}
|
|
|
- if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
+ if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType()) ? PermissionEnum.ADD_RECEIVABLE.getCode() : PermissionEnum.ADD_RECEIPT.getCode())) {
|
|
|
throw new CommonException(CodeMsg.FAILED, "无对应权限");
|
|
|
}
|
|
|
if (Objects.isNull(dto.getRepalBookId())) {
|
|
|
// 新建账本
|
|
|
RepalBook repalBook = new RepalBook();
|
|
|
- repalBook.setRepalGroupId(dto.getRepalGroupId());
|
|
|
+ repalBook.setRepalGroupId(groupId);
|
|
|
repalBook.setCustomerId(customer.getCustId());
|
|
|
repalBook.setCustomerName(customer.getCustName());
|
|
|
repalBook.setRepalBookName(customer.getCustName());
|
|
@@ -379,7 +382,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
// 负责人
|
|
|
repalResponsiblePersonService.saveBatch(dto.getResponsiblePersonIdList().stream().map(t -> {
|
|
|
RepalResponsiblePerson person = new RepalResponsiblePerson();
|
|
|
- person.setRepalGroupId(dto.getRepalGroupId());
|
|
|
+ person.setRepalGroupId(groupId);
|
|
|
person.setRepalBookId(dto.getRepalBookId());
|
|
|
person.setRepalBillId(repalBill.getId());
|
|
|
person.setUserId(t);
|
|
@@ -395,7 +398,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
if (Objects.isNull(repalBill)) {
|
|
|
throw new CommonException(CodeMsg.FAILED, "账款错误");
|
|
|
}
|
|
|
- if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
+ if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
|
|
|
throw new CommonException(CodeMsg.FAILED, "无对应权限");
|
|
|
}
|
|
@@ -410,15 +413,52 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean updateRepalBill(UpdateRepalBillDTO dto) {
|
|
|
RepalBill repalBill = this.getById(dto.getRepalBillId());
|
|
|
- if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
+ if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
|
|
|
throw new CommonException(CodeMsg.FAILED, "无对应权限");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ // 责任人
|
|
|
+ List<Long> currentIdList = repalResponsiblePersonService.getResponsiblePersonId(repalBill.getId());
|
|
|
+ List<Long> difference = new ArrayList<>(CollUtil.disjunction(dto.getResponsiblePersonIdList(), currentIdList));
|
|
|
+ if (CollUtil.isNotEmpty(difference)) {
|
|
|
+ for (Long aLong : difference) {
|
|
|
+ if (currentIdList.contains(aLong)) {
|
|
|
+ // 移除
|
|
|
+ repalResponsiblePersonService.update(Wrappers.lambdaUpdate(RepalResponsiblePerson.class)
|
|
|
+ .eq(RepalResponsiblePerson::getRepalBillId, repalBill.getId())
|
|
|
+ .eq(RepalResponsiblePerson::getUserId, aLong)
|
|
|
+ .set(RepalResponsiblePerson::getDeleted, DeletedStatusEnum.DELETE.getCode()));
|
|
|
+ }
|
|
|
+ if (dto.getResponsiblePersonIdList().contains(aLong)) {
|
|
|
+ // 新增
|
|
|
+ RepalResponsiblePerson person = new RepalResponsiblePerson();
|
|
|
+ person.setRepalBillId(repalBill.getId());
|
|
|
+ person.setRepalBookId(repalBill.getRepalBookId());
|
|
|
+ person.setRepalGroupId(repalBill.getRepalGroupId());
|
|
|
+ person.setUserId(aLong);
|
|
|
+ repalResponsiblePersonService.save(person);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (LocalDate.now().isBefore(dto.getEndDate())) {
|
|
|
+ // 逾期
|
|
|
+ repalBill.setRepalBillStatus(RepalBillStatusEnum.OVERDUE.getCode());
|
|
|
+ }
|
|
|
+ repalBill.setTotalMoney(new BigDecimal(dto.getTotalMoneyStr()));
|
|
|
+ if (repalBill.getReceipt().compareTo(repalBill.getTotalMoney()) >= 0) {
|
|
|
+ // 收回了
|
|
|
+ repalBill.setRefreshStatus(RepalBillStatusEnum.SUCCESS.getCode());
|
|
|
+ repalBill.setReceivable(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
|
|
|
+ this.update(Wrappers.lambdaUpdate(RepalBill.class)
|
|
|
+ .eq(RepalBill::getId, repalBill.getId())
|
|
|
+ .set(RepalBill::getEndDate, dto.getEndDate())
|
|
|
+ .set(RepalBill::getRepalBillStatus, repalBill.getRepalBillStatus())
|
|
|
+ .set(RepalBill::getRepalBillStage, dto.getRepalBillStage())
|
|
|
+ .set(RepalBill::getBillRemark, dto.getBillRemark())
|
|
|
+ .set(RepalBill::getTotalMoney, repalBill.getTotalMoney())
|
|
|
+ .set(RepalBill::getReceivable, repalBill.getReceivable()));
|
|
|
return true;
|
|
|
}
|
|
|
|