feat(crm): 添加某一合同下财务和异议信息查询功能
- 在CrmOrderItemController中新增getContractFinance接口用于查询合同关联的财务和异议数据 - 在CrmOrderItemService及其实现类中添加queryFinanceAndObjectionByContractId方法 - 创建CrmContractOrderFinanceVo数据传输对象封装异议列表和应收款列表 - 实现通过合同ID查询其下属订单的销售异议和财务信息的完整逻辑 - 修改全局异常处理器统一返回系统异常提示信息
This commit is contained in:
@@ -18,6 +18,7 @@ import com.klp.common.core.validate.EditGroup;
|
|||||||
import com.klp.common.enums.BusinessType;
|
import com.klp.common.enums.BusinessType;
|
||||||
import com.klp.common.utils.poi.ExcelUtil;
|
import com.klp.common.utils.poi.ExcelUtil;
|
||||||
import com.klp.crm.domain.vo.CrmOrderItemVo;
|
import com.klp.crm.domain.vo.CrmOrderItemVo;
|
||||||
|
import com.klp.crm.domain.vo.CrmContractOrderFinanceVo;
|
||||||
import com.klp.crm.domain.bo.CrmOrderItemBo;
|
import com.klp.crm.domain.bo.CrmOrderItemBo;
|
||||||
import com.klp.crm.service.ICrmOrderItemService;
|
import com.klp.crm.service.ICrmOrderItemService;
|
||||||
import com.klp.common.core.page.TableDataInfo;
|
import com.klp.common.core.page.TableDataInfo;
|
||||||
@@ -96,4 +97,10 @@ public class CrmOrderItemController extends BaseController {
|
|||||||
@PathVariable String[] itemIds) {
|
@PathVariable String[] itemIds) {
|
||||||
return toAjax(iCrmOrderItemService.deleteWithValidByIds(Arrays.asList(itemIds), true));
|
return toAjax(iCrmOrderItemService.deleteWithValidByIds(Arrays.asList(itemIds), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/contractFinance/{contractId}")
|
||||||
|
public R<CrmContractOrderFinanceVo> getContractFinance(@NotNull(message = "合同ID不能为空")
|
||||||
|
@PathVariable Long contractId) {
|
||||||
|
return R.ok(iCrmOrderItemService.queryFinanceAndObjectionByContractId(contractId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.klp.crm.domain.vo;
|
||||||
|
|
||||||
|
import com.klp.domain.vo.WmsReceivableVo;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CrmContractOrderFinanceVo {
|
||||||
|
|
||||||
|
private List<CrmSalesObjectionVo> objectionList;
|
||||||
|
|
||||||
|
private List<WmsReceivableVo> receivableList;
|
||||||
|
}
|
||||||
@@ -9,6 +9,8 @@ import com.klp.common.core.domain.PageQuery;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.klp.crm.domain.vo.CrmContractOrderFinanceVo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 正式订单明细Service接口
|
* 正式订单明细Service接口
|
||||||
*
|
*
|
||||||
@@ -46,4 +48,9 @@ public interface ICrmOrderItemService {
|
|||||||
* 校验并批量删除正式订单明细信息
|
* 校验并批量删除正式订单明细信息
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据合同ID查询下属订单的异议和财务信息
|
||||||
|
*/
|
||||||
|
CrmContractOrderFinanceVo queryFinanceAndObjectionByContractId(Long contractId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,17 +7,27 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.klp.common.utils.StringUtils;
|
import com.klp.common.utils.StringUtils;
|
||||||
|
import com.klp.crm.domain.CrmSalesObjection;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.klp.crm.domain.bo.CrmOrderItemBo;
|
import com.klp.crm.domain.bo.CrmOrderItemBo;
|
||||||
import com.klp.crm.domain.vo.CrmOrderItemVo;
|
import com.klp.crm.domain.vo.CrmOrderItemVo;
|
||||||
|
import com.klp.crm.domain.vo.CrmContractOrderFinanceVo;
|
||||||
|
import com.klp.crm.domain.vo.CrmSalesObjectionVo;
|
||||||
|
import com.klp.domain.vo.WmsReceivableVo;
|
||||||
import com.klp.crm.domain.CrmOrderItem;
|
import com.klp.crm.domain.CrmOrderItem;
|
||||||
|
import com.klp.crm.domain.CrmOrder;
|
||||||
import com.klp.crm.mapper.CrmOrderItemMapper;
|
import com.klp.crm.mapper.CrmOrderItemMapper;
|
||||||
|
import com.klp.crm.mapper.CrmOrderMapper;
|
||||||
|
import com.klp.crm.mapper.CrmSalesObjectionMapper;
|
||||||
import com.klp.crm.service.ICrmOrderItemService;
|
import com.klp.crm.service.ICrmOrderItemService;
|
||||||
|
import com.klp.mapper.WmsReceivableMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 正式订单明细Service业务层处理
|
* 正式订单明细Service业务层处理
|
||||||
@@ -30,6 +40,9 @@ import java.util.Collection;
|
|||||||
public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
|
public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
|
||||||
|
|
||||||
private final CrmOrderItemMapper baseMapper;
|
private final CrmOrderItemMapper baseMapper;
|
||||||
|
private final CrmOrderMapper crmOrderMapper;
|
||||||
|
private final CrmSalesObjectionMapper crmSalesObjectionMapper;
|
||||||
|
private final WmsReceivableMapper wmsReceivableMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询正式订单明细
|
* 查询正式订单明细
|
||||||
@@ -122,4 +135,35 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
|
|||||||
}
|
}
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
return baseMapper.deleteBatchIds(ids) > 0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@Override
|
||||||
|
public CrmContractOrderFinanceVo queryFinanceAndObjectionByContractId(Long contractId) {
|
||||||
|
CrmContractOrderFinanceVo result = new CrmContractOrderFinanceVo();
|
||||||
|
|
||||||
|
LambdaQueryWrapper<CrmOrder> orderWrapper = new LambdaQueryWrapper<>();
|
||||||
|
orderWrapper.eq(CrmOrder::getContractId, contractId);
|
||||||
|
List<CrmOrder> orders = crmOrderMapper.selectList(orderWrapper);
|
||||||
|
|
||||||
|
if (orders == null || orders.isEmpty()) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> orderIds = orders.stream()
|
||||||
|
.map(CrmOrder::getOrderId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
LambdaQueryWrapper<CrmSalesObjection> objectionWrapper = new LambdaQueryWrapper<>();
|
||||||
|
objectionWrapper.in(CrmSalesObjection::getOrderId, orderIds);
|
||||||
|
List<CrmSalesObjectionVo> objectionList = crmSalesObjectionMapper.selectVoList(objectionWrapper);
|
||||||
|
result.setObjectionList(objectionList);
|
||||||
|
|
||||||
|
LambdaQueryWrapper<com.klp.domain.WmsReceivable> receivableWrapper = new LambdaQueryWrapper<>();
|
||||||
|
receivableWrapper.in(com.klp.domain.WmsReceivable::getOrderId, orderIds.stream()
|
||||||
|
.map(Long::parseLong)
|
||||||
|
.collect(Collectors.toList()));
|
||||||
|
List<WmsReceivableVo> receivableList = wmsReceivableMapper.selectVoList(receivableWrapper);
|
||||||
|
result.setReceivableList(receivableList);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ public class GlobalExceptionHandler {
|
|||||||
public R<Void> handleRuntimeException(RuntimeException e, HttpServletRequest request) {
|
public R<Void> handleRuntimeException(RuntimeException e, HttpServletRequest request) {
|
||||||
String requestURI = request.getRequestURI();
|
String requestURI = request.getRequestURI();
|
||||||
log.error("请求地址'{}',发生未知异常.", requestURI, e);
|
log.error("请求地址'{}',发生未知异常.", requestURI, e);
|
||||||
return R.fail(e.getMessage());
|
return R.fail("系统异常,请联系管理员处理");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -125,7 +125,7 @@ public class GlobalExceptionHandler {
|
|||||||
public R<Void> handleException(Exception e, HttpServletRequest request) {
|
public R<Void> handleException(Exception e, HttpServletRequest request) {
|
||||||
String requestURI = request.getRequestURI();
|
String requestURI = request.getRequestURI();
|
||||||
log.error("请求地址'{}',发生系统异常.", requestURI, e);
|
log.error("请求地址'{}',发生系统异常.", requestURI, e);
|
||||||
return R.fail(e.getMessage());
|
return R.fail("系统异常,请联系管理员处理");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user