|
@@ -6,16 +6,25 @@ import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.module.login.usersession.UserBean;
|
|
import com.module.login.usersession.UserBean;
|
|
|
|
+import com.winhc.common.base.ApiDataResult;
|
|
import com.winhc.common.enums.CodeMsg;
|
|
import com.winhc.common.enums.CodeMsg;
|
|
import com.winhc.common.exception.CommonException;
|
|
import com.winhc.common.exception.CommonException;
|
|
|
|
+import com.winhc.repal.cloud.DataMiddlewareService;
|
|
|
|
+import com.winhc.repal.cloud.dto.GetCompanyRiskNumDTO;
|
|
|
|
+import com.winhc.repal.cloud.dto.GetCreditPunishmentLabelDTO;
|
|
|
|
+import com.winhc.repal.cloud.dto.GetFinanceDynamicNumDTO;
|
|
|
|
+import com.winhc.repal.cloud.vo.CompanyRiskNumVO;
|
|
|
|
+import com.winhc.repal.cloud.vo.CreditPunishmentLabelListVO;
|
|
|
|
+import com.winhc.repal.cloud.vo.FinanceDynamicNumVO;
|
|
import com.winhc.repal.entity.*;
|
|
import com.winhc.repal.entity.*;
|
|
-import com.winhc.repal.enums.Dict;
|
|
|
|
|
|
+import com.winhc.repal.enums.*;
|
|
import com.winhc.repal.model.bo.RepalCustomerInfoBO;
|
|
import com.winhc.repal.model.bo.RepalCustomerInfoBO;
|
|
import com.winhc.repal.model.dto.*;
|
|
import com.winhc.repal.model.dto.*;
|
|
import com.winhc.repal.model.vo.*;
|
|
import com.winhc.repal.model.vo.*;
|
|
import com.winhc.repal.repository.RepalCustomerMapper;
|
|
import com.winhc.repal.repository.RepalCustomerMapper;
|
|
import com.winhc.repal.service.*;
|
|
import com.winhc.repal.service.*;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.winhc.repal.util.UserContextUtil;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -26,11 +35,9 @@ import com.winhc.common.model.base.VOPage;
|
|
import com.winhc.repal.model.cvt.RepalCustomerConvert;
|
|
import com.winhc.repal.model.cvt.RepalCustomerConvert;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Optional;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Stream;
|
|
import java.util.stream.Stream;
|
|
@@ -46,6 +53,9 @@ public class RepalCustomerServiceImpl extends ServiceImpl<RepalCustomerMapper, R
|
|
private RepalCustomerMapper repalCustomerMapper;
|
|
private RepalCustomerMapper repalCustomerMapper;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private RepalBookService repalBookService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
private RepalBillService repalBillService;
|
|
private RepalBillService repalBillService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
@@ -63,10 +73,23 @@ public class RepalCustomerServiceImpl extends ServiceImpl<RepalCustomerMapper, R
|
|
@Autowired
|
|
@Autowired
|
|
private RepalLinkService repalLinkService;
|
|
private RepalLinkService repalLinkService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private DataMiddlewareService dataMiddlewareService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private RepalChangeRecordService repalChangeRecordService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private RepalRolePermissionService repalRolePermissionService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public VOPage<RepalCustomerInfoVO> find(RepalCustomerQueryDTO dto,UserBean userBean) {
|
|
public VOPage<RepalCustomerInfoVO> find(RepalCustomerQueryDTO dto,UserBean userBean) {
|
|
|
|
+ //权限
|
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
|
+ Dict.custTypeEnum.客户.getCode().equals(dto.getCustType()) ? PermissionEnum.QUERY_ALL_CUST.getCode() : PermissionEnum.QUERY_ALL_SUPPLY.getCode());
|
|
Page<RepalCustomerInfoBO> page = new Page<>(dto.getPageNum(),dto.getPageSize());
|
|
Page<RepalCustomerInfoBO> page = new Page<>(dto.getPageNum(),dto.getPageSize());
|
|
- page = repalCustomerMapper.getCustPage(page, dto.getRepalGroupId(),dto.getCustProperty(),dto.getSortType(),dto.getCustType());
|
|
|
|
|
|
+ int billType = Dict.custTypeEnum.客户.getCode().equals(dto.getCustType()) ? RepalBillTypeEnum.RECEIVABLE.getCode() : RepalBillTypeEnum.RECEIPT.getCode();
|
|
|
|
+ page = repalCustomerMapper.getCustPage(page, dto.getRepalGroupId(),dto.getCustProperty(),dto.getSortType(),dto.getCustType(),billType,allFlag,userBean.getUserId());
|
|
VOPage<RepalCustomerInfoVO> result = new VOPage<>(dto.getPageNum(), dto.getPageSize(), page.getTotal(), new ArrayList<>());
|
|
VOPage<RepalCustomerInfoVO> result = new VOPage<>(dto.getPageNum(), dto.getPageSize(), page.getTotal(), new ArrayList<>());
|
|
if(CollUtil.isEmpty(page.getRecords())){
|
|
if(CollUtil.isEmpty(page.getRecords())){
|
|
return result;
|
|
return result;
|
|
@@ -86,13 +109,15 @@ public class RepalCustomerServiceImpl extends ServiceImpl<RepalCustomerMapper, R
|
|
vo.setReceivableStr(customerInfo.getReceivable().stripTrailingZeros().toPlainString());
|
|
vo.setReceivableStr(customerInfo.getReceivable().stripTrailingZeros().toPlainString());
|
|
vo.setTotalMoneyStr(customerInfo.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
vo.setTotalMoneyStr(customerInfo.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
//查询未读动态数量
|
|
//查询未读动态数量
|
|
- List<RepalBill> repalBills = repalBillService.list(Wrappers.lambdaQuery(RepalBill.class)
|
|
|
|
- .eq(RepalBill::getCustomerId,customerInfo.getCustId())
|
|
|
|
- .eq(RepalBill::getDeleted, Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
- if(CollUtil.isNotEmpty(repalBills)) {
|
|
|
|
- RepalBillRemindUnReadVO unRead = repalRemindHistoryService.getRemindUnReadVO(repalBills,userBean.getUserId());
|
|
|
|
- if(ObjectUtil.isNotNull(unRead) && unRead.getUnreadTotalCount() > 0){
|
|
|
|
- vo.setDynamicCountList(Stream.of(unRead.getUnreadOverdueCount(),unRead.getUnreadRiskCount(), unRead.getUnreadRankCount(), unRead.getUnreadFinanceCount()).collect(Collectors.toList()));
|
|
|
|
|
|
+ if(Dict.custTypeEnum.客户.getCode().equals(dto.getCustType())) {
|
|
|
|
+ List<RepalBill> repalBills = repalBillService.list(Wrappers.lambdaQuery(RepalBill.class)
|
|
|
|
+ .eq(RepalBill::getCustomerId, customerInfo.getCustId())
|
|
|
|
+ .eq(RepalBill::getDeleted, Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
+ if (CollUtil.isNotEmpty(repalBills)) {
|
|
|
|
+ RepalBillRemindUnReadVO unRead = repalRemindHistoryService.getRemindUnReadVO(repalBills, userBean.getUserId());
|
|
|
|
+ if (ObjectUtil.isNotNull(unRead) && unRead.getUnreadTotalCount() > 0) {
|
|
|
|
+ vo.setDynamicCountList(Stream.of(unRead.getUnreadOverdueCount(), unRead.getUnreadRiskCount(), unRead.getUnreadRankCount(), unRead.getUnreadFinanceCount()).collect(Collectors.toList()));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//负责人
|
|
//负责人
|
|
@@ -120,14 +145,18 @@ public class RepalCustomerServiceImpl extends ServiceImpl<RepalCustomerMapper, R
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public RepalCustomerDetailVO addCustomer(RepalCustomerDTO dto,UserBean userBean) {
|
|
public RepalCustomerDetailVO addCustomer(RepalCustomerDTO dto,UserBean userBean) {
|
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
|
+ Dict.custTypeEnum.客户.getCode().equals(dto.getCustType()) ? PermissionEnum.ADD_CUST.getCode() : PermissionEnum.ADD_SUPPLY.getCode());
|
|
|
|
+ if(!allFlag){
|
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"暂无此权限,可联系超级管理员在我的-成员管理页面开通");
|
|
|
|
+ }
|
|
|
|
+ //查组织id
|
|
RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
|
|
RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
|
|
.eq(RepalGroupMember::getUserId,userBean.getUserId())
|
|
.eq(RepalGroupMember::getUserId,userBean.getUserId())
|
|
.eq(RepalGroupMember::getDeleted,Dict.DeletedStatusEnunm.否.getCode()),false);
|
|
.eq(RepalGroupMember::getDeleted,Dict.DeletedStatusEnunm.否.getCode()),false);
|
|
if(ObjectUtil.isNull(repalGroupMember)){
|
|
if(ObjectUtil.isNull(repalGroupMember)){
|
|
- throw new CommonException(CodeMsg.FAILED,"您没有新增客户的权限");
|
|
|
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"您还未加入该组织,请联系超级管理员");
|
|
}
|
|
}
|
|
- //todo 其他校验权限
|
|
|
|
-
|
|
|
|
RepalCustomer repalCustomer = new RepalCustomer();
|
|
RepalCustomer repalCustomer = new RepalCustomer();
|
|
BeanUtils.copyProperties(dto,repalCustomer);
|
|
BeanUtils.copyProperties(dto,repalCustomer);
|
|
repalCustomer.setRepalGroupId(repalGroupMember.getRepalGroupId());
|
|
repalCustomer.setRepalGroupId(repalGroupMember.getRepalGroupId());
|
|
@@ -178,19 +207,22 @@ public class RepalCustomerServiceImpl extends ServiceImpl<RepalCustomerMapper, R
|
|
repalBillOperLog.setBizType(actionCodeEnum.getBizType());
|
|
repalBillOperLog.setBizType(actionCodeEnum.getBizType());
|
|
repalBillOperLog.setActionName(actionCodeEnum.name());
|
|
repalBillOperLog.setActionName(actionCodeEnum.name());
|
|
repalBillOperLogService.save(repalBillOperLog);
|
|
repalBillOperLogService.save(repalBillOperLog);
|
|
- return getDetailById(repalCustomer.getCustId());
|
|
|
|
|
|
+ return getDetailById(repalCustomer.getCustId(),userBean,dto.getCustType());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public RepalCustomerDetailVO updateCustomer(RepalCustomerUpdateDTO dto, UserBean userBean) {
|
|
public RepalCustomerDetailVO updateCustomer(RepalCustomerUpdateDTO dto, UserBean userBean) {
|
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
|
+ Dict.custTypeEnum.客户.getCode().equals(dto.getCustType()) ? PermissionEnum.UPDATE_CUST.getCode() : PermissionEnum.UPDATE_SUPPLY.getCode());
|
|
|
|
+ if(!allFlag){
|
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"暂无此权限,可联系超级管理员在我的-成员管理页面开通");
|
|
|
|
+ }
|
|
RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
|
|
RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
|
|
.eq(RepalGroupMember::getUserId,userBean.getUserId())
|
|
.eq(RepalGroupMember::getUserId,userBean.getUserId())
|
|
.eq(RepalGroupMember::getDeleted,Dict.DeletedStatusEnunm.否.getCode()),false);
|
|
.eq(RepalGroupMember::getDeleted,Dict.DeletedStatusEnunm.否.getCode()),false);
|
|
if(ObjectUtil.isNull(repalGroupMember)){
|
|
if(ObjectUtil.isNull(repalGroupMember)){
|
|
- throw new CommonException(CodeMsg.FAILED,"您没有新增客户的权限");
|
|
|
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"您还未加入该组织,请联系超级管理员");
|
|
}
|
|
}
|
|
- //todo 其他校验权限
|
|
|
|
-
|
|
|
|
RepalCustomer repalCustomer = getById(dto.getCustId());
|
|
RepalCustomer repalCustomer = getById(dto.getCustId());
|
|
if(ObjectUtil.isNull(repalCustomer)){
|
|
if(ObjectUtil.isNull(repalCustomer)){
|
|
throw new CommonException(CodeMsg.FAILED,"客户或供应商不存在");
|
|
throw new CommonException(CodeMsg.FAILED,"客户或供应商不存在");
|
|
@@ -344,24 +376,116 @@ public class RepalCustomerServiceImpl extends ServiceImpl<RepalCustomerMapper, R
|
|
repalBillOperLog.setActionName(actionCodeEnum.name());
|
|
repalBillOperLog.setActionName(actionCodeEnum.name());
|
|
repalBillOperLog.setActionContent(JSON.toJSONString(operLogContents));
|
|
repalBillOperLog.setActionContent(JSON.toJSONString(operLogContents));
|
|
repalBillOperLogService.save(repalBillOperLog);
|
|
repalBillOperLogService.save(repalBillOperLog);
|
|
- return getDetailById(dto.getCustId());
|
|
|
|
|
|
+ return getDetailById(dto.getCustId(),userBean,dto.getCustType());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public RepalCustomerDetailVO getDetailById(Long custId) {
|
|
|
|
- return null;
|
|
|
|
|
|
+ public RepalCustomerDetailVO getDetailById(Long custId,UserBean userBean,Integer custType) {
|
|
|
|
+ //不做权限判断,默认通过列表的权限
|
|
|
|
+ RepalCustomer repalCustomer = getById(custId);
|
|
|
|
+ if(ObjectUtil.isNotNull(repalCustomer)){
|
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"客户或供应商不存在");
|
|
|
|
+ }
|
|
|
|
+ RepalCustomerDetailVO result = new RepalCustomerDetailVO();
|
|
|
|
+ BeanUtils.copyProperties(repalCustomer,result);
|
|
|
|
+ //查询负责人
|
|
|
|
+ List<RepalCustChargeRel> rels = repalCustChargeRelService.list(Wrappers.lambdaQuery(RepalCustChargeRel.class)
|
|
|
|
+ .eq(RepalCustChargeRel::getCustId,custId));
|
|
|
|
+ if(CollUtil.isNotEmpty(rels)){
|
|
|
|
+ List<RepalGroupMember> repalGroupMembers = repalGroupMemberService.list(Wrappers.lambdaQuery(RepalGroupMember.class)
|
|
|
|
+ .in(RepalGroupMember::getUserId,rels.stream().map(RepalCustChargeRel::getMemberUserId).collect(Collectors.toList())));
|
|
|
|
+ List<RepalGroupMemberVO> memberList = new ArrayList<>();
|
|
|
|
+ result.setCharges(memberList);
|
|
|
|
+ for(RepalGroupMember groupMember:repalGroupMembers){
|
|
|
|
+ RepalGroupMemberVO member = new RepalGroupMemberVO();
|
|
|
|
+ memberList.add(member);
|
|
|
|
+ member.setMemberUserName(groupMember.getMemberUserName());
|
|
|
|
+ member.setUserId(groupMember.getUserId());
|
|
|
|
+ member.setId(groupMember.getId());
|
|
|
|
+ member.setRepalGroupId(groupMember.getRepalGroupId());
|
|
|
|
+ member.setRoleType(groupMember.getRoleType());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 标签
|
|
|
|
+ if (Dict.custTypeEnum.客户.getCode().equals(custType) && StrUtil.isNotBlank(repalCustomer.getCompanyId())) {
|
|
|
|
+ // 失信限高标签
|
|
|
|
+ ApiDataResult<List<CreditPunishmentLabelListVO>> labelResult = dataMiddlewareService.getCreditPunishmentLabelList(new GetCreditPunishmentLabelDTO(Collections.singletonList(repalCustomer.getCompanyId())));
|
|
|
|
+ if (Objects.nonNull(labelResult) && CollUtil.isNotEmpty(labelResult.getData())) {
|
|
|
|
+ result.setLabelList(labelResult.getData().get(0).getLabelList());
|
|
|
|
+ }
|
|
|
|
+ // 财产数量
|
|
|
|
+ ApiDataResult<List<FinanceDynamicNumVO>> financeResult = dataMiddlewareService.getFinanceDynamicNumV8List(new GetFinanceDynamicNumDTO().setCompanyIdList(Collections.singletonList(repalCustomer.getCompanyId())));
|
|
|
|
+ if (Objects.nonNull(financeResult) && CollUtil.isNotEmpty(financeResult.getData())) {
|
|
|
|
+ result.setAssetsNum(financeResult.getData().get(0).getFinanceDynamicNum());
|
|
|
|
+ }
|
|
|
|
+ // 风险数量
|
|
|
|
+ ApiDataResult<List<CompanyRiskNumVO>> riskResult = dataMiddlewareService.getCompanyRiskNumList(new GetCompanyRiskNumDTO(Collections.singletonList(repalCustomer.getCompanyId())));
|
|
|
|
+ if (Objects.nonNull(riskResult) && CollUtil.isNotEmpty(riskResult.getData())) {
|
|
|
|
+ result.setRiskNum(riskResult.getData().get(0).getRiskNum());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //账款汇总
|
|
|
|
+ List<RepalBill> repalBills = repalBillService.list(Wrappers.lambdaQuery(RepalBill.class).eq(RepalBill::getCustomerId,custId).eq(RepalBill::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
+ if(CollUtil.isNotEmpty(repalBills)){
|
|
|
|
+ if(Dict.custTypeEnum.客户.getCode().equals(custType)) {
|
|
|
|
+ result.setRepalBillCount(repalBills.size());
|
|
|
|
+ result.setReceivableStr(repalBills.stream().map(RepalBill::getReceivable).reduce(BigDecimal.ZERO,BigDecimal::add).stripTrailingZeros().toPlainString());
|
|
|
|
+ result.setTotalMoneyStr(repalBills.stream().map(RepalBill::getTotalMoney).reduce(BigDecimal.ZERO,BigDecimal::add).stripTrailingZeros().toPlainString());
|
|
|
|
+ result.setTotalOverdueStr(repalBills.stream().filter(x-> RepalBillStatusEnum.OVERDUE.getCode().equals(x.getRepalBillStatus())).map(RepalBill::getReceivable).reduce(BigDecimal.ZERO,BigDecimal::add).stripTrailingZeros().toPlainString());
|
|
|
|
+ result.setTotalReceiptStr(repalBills.stream().map(RepalBill::getReceipt).reduce(BigDecimal.ZERO,BigDecimal::add).stripTrailingZeros().toPlainString());
|
|
|
|
+ //动态
|
|
|
|
+ RepalBillRemindUnReadVO unRead = repalRemindHistoryService.getRemindUnReadVO(repalBills, userBean.getUserId());
|
|
|
|
+ if (ObjectUtil.isNotNull(unRead) && unRead.getUnreadTotalCount() > 0) {
|
|
|
|
+ result.setDynamicCountList(Stream.of(unRead.getUnreadOverdueCount(), unRead.getUnreadRiskCount(), unRead.getUnreadRankCount(), unRead.getUnreadFinanceCount()).collect(Collectors.toList()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //账款记录
|
|
|
|
+ List<RepalChangeRecord> repalChangeRecordList = repalChangeRecordService.list(Wrappers.lambdaQuery(RepalChangeRecord.class)
|
|
|
|
+ .in(RepalChangeRecord::getRepalBillId, repalBills.stream().map(RepalBill::getId).collect(Collectors.toList()))
|
|
|
|
+ .eq(RepalChangeRecord::getDeleted, DeletedStatusEnum.NORMAL.getCode())
|
|
|
|
+ .orderByDesc(RepalChangeRecord::getId));
|
|
|
|
+ if (CollUtil.isNotEmpty(repalChangeRecordList)) {
|
|
|
|
+ result.setChangeList(repalChangeRecordList.stream().map(t -> {
|
|
|
|
+ RepalBillDetailVO.BillMoneyChange billMoneyChange = new RepalBillDetailVO.BillMoneyChange();
|
|
|
|
+ billMoneyChange.setChangeTime(t.getTimeCreated());
|
|
|
|
+ billMoneyChange.setChangeDesc(t.getOperUserName() + " 增加回款 " + t.getTransMoney().stripTrailingZeros().toPlainString());
|
|
|
|
+ return billMoneyChange;
|
|
|
|
+ }).collect(Collectors.toList()));
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ result.setRepalBillCount(0);
|
|
|
|
+ result.setReceivableStr("0");
|
|
|
|
+ result.setTotalMoneyStr("0");
|
|
|
|
+ result.setTotalOverdueStr("0");
|
|
|
|
+ result.setTotalReceiptStr("0");
|
|
|
|
+ result.setDynamicCountList(Arrays.asList(0,0,0,0));
|
|
|
|
+ }
|
|
|
|
+ //联系人
|
|
|
|
+ List<RepalLink> repalLinks = repalLinkService.list(Wrappers.lambdaQuery(RepalLink.class).eq(RepalLink::getCustId,custId).eq(RepalLink::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
+ if(CollUtil.isNotEmpty(repalLinks)){
|
|
|
|
+ List<RepalLinkVO> repalLinkVOs = new ArrayList<>();
|
|
|
|
+ result.setLinks(repalLinkVOs);
|
|
|
|
+ for(RepalLink repalLink:repalLinks){
|
|
|
|
+ RepalLinkVO repalLinkVO = new RepalLinkVO();
|
|
|
|
+ repalLinkVOs.add(repalLinkVO);
|
|
|
|
+ BeanUtils.copyProperties(repalLink,repalLinkVO);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public Boolean deleteCustomer(Long custId, UserBean userBean) {
|
|
public Boolean deleteCustomer(Long custId, UserBean userBean) {
|
|
- //删除客户
|
|
|
|
RepalCustomer repalCustomer = getById(custId);
|
|
RepalCustomer repalCustomer = getById(custId);
|
|
if(ObjectUtil.isNull(custId)){
|
|
if(ObjectUtil.isNull(custId)){
|
|
throw new CommonException(CodeMsg.FAILED,"客户或供应商不存在");
|
|
throw new CommonException(CodeMsg.FAILED,"客户或供应商不存在");
|
|
}
|
|
}
|
|
- //todo 权限判断
|
|
|
|
-
|
|
|
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
|
|
|
|
+ Dict.custTypeEnum.客户.getCode().equals(repalCustomer.getCustType()) ? PermissionEnum.UPDATE_CUST.getCode() : PermissionEnum.UPDATE_SUPPLY.getCode());
|
|
|
|
+ if(!allFlag){
|
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"暂无此权限,可联系超级管理员在我的-成员管理页面开通");
|
|
|
|
+ }
|
|
repalCustomer.setDeleted(Dict.DeletedStatusEnunm.是.getCode());
|
|
repalCustomer.setDeleted(Dict.DeletedStatusEnunm.是.getCode());
|
|
updateById(repalCustomer);
|
|
updateById(repalCustomer);
|
|
//删除客户对应的账款
|
|
//删除客户对应的账款
|
|
@@ -369,9 +493,7 @@ public class RepalCustomerServiceImpl extends ServiceImpl<RepalCustomerMapper, R
|
|
.eq(RepalBill::getCustomerId,custId)
|
|
.eq(RepalBill::getCustomerId,custId)
|
|
.eq(RepalBill::getDeleted, Dict.DeletedStatusEnunm.否.getCode()));
|
|
.eq(RepalBill::getDeleted, Dict.DeletedStatusEnunm.否.getCode()));
|
|
if(CollUtil.isNotEmpty(repalBills)){
|
|
if(CollUtil.isNotEmpty(repalBills)){
|
|
- for(RepalBill repalBill:repalBills){
|
|
|
|
- repalBillService.deleteRepalBillById(new DeleteRepalBillDTO().setRepalBillId(repalBill.getId()));
|
|
|
|
- }
|
|
|
|
|
|
+ throw new CommonException(CodeMsg.FAILED,"请先删除该"+(Dict.custTypeEnum.客户.getCode().equals(repalCustomer.getCustType()) ? Dict.custTypeEnum.客户.name() : Dict.custTypeEnum.供应商.name())+"的关联账款");
|
|
}
|
|
}
|
|
//操作记录
|
|
//操作记录
|
|
Dict.ActionCodeEnum actionCodeEnum = Dict.ActionCodeEnum.删除客户;
|
|
Dict.ActionCodeEnum actionCodeEnum = Dict.ActionCodeEnum.删除客户;
|