[fix] 优化外包合同管理功能

This commit is contained in:
wyw 2024-07-29 10:55:46 +08:00
parent 027a5d1e1c
commit 698906fb08
4 changed files with 40 additions and 7 deletions

View File

@ -8,10 +8,13 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
* @date 2024/7/3
*/
public interface ErrorCodeConstants {
ErrorCode CUSTOMER_COMPANY_NOT_EXISTS = new ErrorCode(1_020_000_000, "客户公司管理不存在");
ErrorCode CONTRACT_NOT_EXISTS = new ErrorCode(2_024_000_000, "合同不存在");
ErrorCode CONTRACT_NAME_NOT_EXISTS = new ErrorCode(2_024_001_000, "合同名称不存在");
ErrorCode CONTRACT_HISTORY_NOT_EXISTS = new ErrorCode(2_025_000_000, "历史合同不存在");
@ -31,6 +34,9 @@ public interface ErrorCodeConstants {
// ========== 外包合同关联 2_023_000_000 ==========
ErrorCode CONTRACT_OUTS_NOT_EXISTS = new ErrorCode(2_023_000_000, "外包合同关联不存在");
ErrorCode CUSTOMER_COMPANY_NOT_EXISTS = new ErrorCode(1_020_000_000, "客户公司管理不存在");
ErrorCode PROJECT_NOT_EXISTS = new ErrorCode(1_021_000_000, "项目信息不存在");

View File

@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractRespVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractSaveReqVO;
@ -73,8 +74,8 @@ public class OutsContractController {
@Operation(summary = "获得外包合同分页")
@PreAuthorize("@ss.hasPermission('cms:outs-contract:query')")
public CommonResult<PageResult<OutsContractRespVO>> getOutsContractPage(@Valid OutsContractPageReqVO pageReqVO) {
PageResult<OutsContractDO> pageResult = outsContractService.getOutsContractPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, OutsContractRespVO.class));
PageResult<OutsContractRespVO> pageResult = outsContractService.getOutsContractPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")
@ -84,7 +85,7 @@ public class OutsContractController {
public void exportOutsContractExcel(@Valid OutsContractPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<OutsContractDO> list = outsContractService.getOutsContractPage(pageReqVO).getList();
List<OutsContractRespVO> list = outsContractService.getOutsContractPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "外包合同.xls", "数据", OutsContractRespVO.class,
BeanUtils.toBean(list, OutsContractRespVO.class));

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.cms.service.outscontract;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractRespVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractSaveReqVO;
@ -52,6 +53,6 @@ public interface OutsContractService {
* @param pageReqVO 分页查询
* @return 外包合同分页
*/
PageResult<OutsContractDO> getOutsContractPage(OutsContractPageReqVO pageReqVO);
PageResult<OutsContractRespVO> getOutsContractPage(OutsContractPageReqVO pageReqVO);
}

View File

@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractRespVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractSaveReqVO;
import cn.iocoder.yudao.module.cms.dal.dataobject.contract.ContractDO;
import cn.iocoder.yudao.module.cms.dal.dataobject.outscontract.OutsContractDO;
import cn.iocoder.yudao.module.cms.dal.mysql.outscontract.OutsContractMapper;
import cn.iocoder.yudao.module.cms.service.contract.ContractService;
@ -15,6 +16,7 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@ -56,6 +58,12 @@ public class OutsContractServiceImpl implements OutsContractService {
throw exception(PROJECT_NOT_EXISTS);
}
//合同名称错误
if (!Objects.equals(createReqVO.getName(), contract.getName())) {
throw exception(CONTRACT_NAME_NOT_EXISTS);
}
outsContractMapper.insert(outsContract);
return outsContract.getId();
}
@ -113,8 +121,25 @@ public class OutsContractServiceImpl implements OutsContractService {
}
@Override
public PageResult<OutsContractDO> getOutsContractPage(OutsContractPageReqVO pageReqVO) {
return outsContractMapper.selectPage(pageReqVO);
public PageResult<OutsContractRespVO> getOutsContractPage(OutsContractPageReqVO pageReqVO) {
Long projectId = pageReqVO.getProjectId();
ProjectRespDTO project = projectApi.getProject(projectId);
if (project == null) {
throw exception(PROJECT_NOT_EXISTS);
}
PageResult<OutsContractDO> outsContractDOPageResult = outsContractMapper.selectPage(pageReqVO);
List<OutsContractDO> outsContractDOList = outsContractDOPageResult.getList();
List<OutsContractRespVO> outsContractRespVOList = new ArrayList<>();
for (OutsContractDO outsContractDO : outsContractDOList) {
Long id = outsContractDO.getId();
OutsContractRespVO outsContract = getOutsContract(id);
outsContractRespVOList.add(outsContract);
}
PageResult<OutsContractRespVO> pageResult = new PageResult<>();
pageResult.setList(outsContractRespVOList);
return pageResult;
}
private void validateOutsContractExists(Long id) {