[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 * @date 2024/7/3
*/ */
public interface ErrorCodeConstants { 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_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, "历史合同不存在"); ErrorCode CONTRACT_HISTORY_NOT_EXISTS = new ErrorCode(2_025_000_000, "历史合同不存在");
@ -31,6 +34,9 @@ public interface ErrorCodeConstants {
// ========== 外包合同关联 2_023_000_000 ========== // ========== 外包合同关联 2_023_000_000 ==========
ErrorCode CONTRACT_OUTS_NOT_EXISTS = new ErrorCode(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, "项目信息不存在"); 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.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 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.OutsContractPageReqVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO; 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.controller.admin.outscontract.vo.OutsContractSaveReqVO;
@ -73,8 +74,8 @@ public class OutsContractController {
@Operation(summary = "获得外包合同分页") @Operation(summary = "获得外包合同分页")
@PreAuthorize("@ss.hasPermission('cms:outs-contract:query')") @PreAuthorize("@ss.hasPermission('cms:outs-contract:query')")
public CommonResult<PageResult<OutsContractRespVO>> getOutsContractPage(@Valid OutsContractPageReqVO pageReqVO) { public CommonResult<PageResult<OutsContractRespVO>> getOutsContractPage(@Valid OutsContractPageReqVO pageReqVO) {
PageResult<OutsContractDO> pageResult = outsContractService.getOutsContractPage(pageReqVO); PageResult<OutsContractRespVO> pageResult = outsContractService.getOutsContractPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, OutsContractRespVO.class)); return success(pageResult);
} }
@GetMapping("/export-excel") @GetMapping("/export-excel")
@ -84,7 +85,7 @@ public class OutsContractController {
public void exportOutsContractExcel(@Valid OutsContractPageReqVO pageReqVO, public void exportOutsContractExcel(@Valid OutsContractPageReqVO pageReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<OutsContractDO> list = outsContractService.getOutsContractPage(pageReqVO).getList(); List<OutsContractRespVO> list = outsContractService.getOutsContractPage(pageReqVO).getList();
// 导出 Excel // 导出 Excel
ExcelUtils.write(response, "外包合同.xls", "数据", OutsContractRespVO.class, ExcelUtils.write(response, "外包合同.xls", "数据", OutsContractRespVO.class,
BeanUtils.toBean(list, OutsContractRespVO.class)); BeanUtils.toBean(list, OutsContractRespVO.class));

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.cms.service.outscontract; package cn.iocoder.yudao.module.cms.service.outscontract;
import cn.iocoder.yudao.framework.common.pojo.PageResult; 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.OutsContractPageReqVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO; 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.controller.admin.outscontract.vo.OutsContractSaveReqVO;
@ -52,6 +53,6 @@ public interface OutsContractService {
* @param pageReqVO 分页查询 * @param pageReqVO 分页查询
* @return 外包合同分页 * @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.OutsContractPageReqVO;
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO; 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.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.dataobject.outscontract.OutsContractDO;
import cn.iocoder.yudao.module.cms.dal.mysql.outscontract.OutsContractMapper; import cn.iocoder.yudao.module.cms.dal.mysql.outscontract.OutsContractMapper;
import cn.iocoder.yudao.module.cms.service.contract.ContractService; 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.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -56,6 +58,12 @@ public class OutsContractServiceImpl implements OutsContractService {
throw exception(PROJECT_NOT_EXISTS); throw exception(PROJECT_NOT_EXISTS);
} }
//合同名称错误
if (!Objects.equals(createReqVO.getName(), contract.getName())) {
throw exception(CONTRACT_NAME_NOT_EXISTS);
}
outsContractMapper.insert(outsContract); outsContractMapper.insert(outsContract);
return outsContract.getId(); return outsContract.getId();
} }
@ -113,8 +121,25 @@ public class OutsContractServiceImpl implements OutsContractService {
} }
@Override @Override
public PageResult<OutsContractDO> getOutsContractPage(OutsContractPageReqVO pageReqVO) { public PageResult<OutsContractRespVO> getOutsContractPage(OutsContractPageReqVO pageReqVO) {
return outsContractMapper.selectPage(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) { private void validateOutsContractExists(Long id) {