From 509105961076b379d99b2882683122e03aaf54d2 Mon Sep 17 00:00:00 2001 From: wyw <13885678+wyw0828@user.noreply.gitee.com> Date: Thu, 15 Aug 2024 16:34:49 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BC=98=E5=8C=96=E5=A4=96=E5=8C=85?= =?UTF-8?q?=E5=90=88=E5=90=8C=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/cms/enums/ErrorCodeConstants.java | 9 +- .../outscontract/OutsContractController.java | 10 +- .../vo/OutsContractPageReqVO.java | 23 ---- .../outscontract/vo/OutsContractRespVO.java | 12 +- .../vo/OutsContractSaveReqVO.java | 28 +---- .../outscontract/OutsContractDO.java | 4 +- .../outscontract/OutsContractDetailDO.java | 35 ++++++ .../outscontract/OutsContractMapper.java | 7 +- .../outscontract/OutsContractService.java | 3 +- .../outscontract/OutsContractServiceImpl.java | 116 +++++++++--------- 10 files changed, 128 insertions(+), 119 deletions(-) create mode 100644 yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/dataobject/outscontract/OutsContractDetailDO.java diff --git a/yudao-module-cms/yudao-module-cms-api/src/main/java/cn/iocoder/yudao/module/cms/enums/ErrorCodeConstants.java b/yudao-module-cms/yudao-module-cms-api/src/main/java/cn/iocoder/yudao/module/cms/enums/ErrorCodeConstants.java index 6f68ddb34..82869f4e9 100644 --- a/yudao-module-cms/yudao-module-cms-api/src/main/java/cn/iocoder/yudao/module/cms/enums/ErrorCodeConstants.java +++ b/yudao-module-cms/yudao-module-cms-api/src/main/java/cn/iocoder/yudao/module/cms/enums/ErrorCodeConstants.java @@ -20,6 +20,9 @@ public interface ErrorCodeConstants { // ========== 外包合同 2_021_000_000 ========== ErrorCode OUTS_CONTRACT_NOT_EXISTS = new ErrorCode(2_021_000_000, "外包合同不存在"); + ErrorCode OUTS_CONTRACT_EXISTS = new ErrorCode(2_021_001_000, "外包合同已经存在"); + + // ========== 外包合同历史 2_022_000_000 ========== ErrorCode OUTS_CONTRACT_HISTORY_NOT_EXISTS = new ErrorCode(2_022_000_000, "外包合同历史不存在"); @@ -43,7 +46,7 @@ public interface ErrorCodeConstants { // ========== 外部合同信息 2_026_000_000 ========== ErrorCode EXT_CONTRACT_NOT_EXISTS = new ErrorCode(2_026_000_000, "外部合同不存在"); - ErrorCode EXT_CONTRACT_EXISTS = new ErrorCode(2_026_000_000, "外部合同已经存在"); + ErrorCode EXT_CONTRACT_EXISTS = new ErrorCode(2_026_001_000, "外部合同已经存在"); // ========== 历史外部合同信息 2_027_000_000 ========== ErrorCode EXT_CONTRACT_HISTORY_NOT_EXISTS = new ErrorCode(2_027_000_000, "历史外部合同不存在"); @@ -52,4 +55,8 @@ public interface ErrorCodeConstants { ErrorCode CONTRACT_EXT_NOT_EXISTS = new ErrorCode(2_028_000_000, "外部合同关联不存在"); + + + + } diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/OutsContractController.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/OutsContractController.java index 49ce9df15..bc1f4d3aa 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/OutsContractController.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/OutsContractController.java @@ -4,11 +4,15 @@ import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.file.FileUtils; 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.extContract.vo.ExtContractRespVO; 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.extcontract.ExtContractDetailDO; +import cn.iocoder.yudao.module.cms.dal.dataobject.outscontract.OutsContractDetailDO; import cn.iocoder.yudao.module.cms.service.outscontract.OutsContractService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -65,7 +69,11 @@ public class OutsContractController { @Parameter(name = "id", description = "主合同编号", required = true, example = "1") @PreAuthorize("@ss.hasPermission('cms:outs-contract:query')") public CommonResult getOutsContract(@RequestParam("id") Long id) { - OutsContractRespVO outsContractRespVO = outsContractService.getOutsContract(id); + OutsContractDetailDO outsContractDetail = outsContractService.getOutsContractDetail(id); + OutsContractRespVO outsContractRespVO = new OutsContractRespVO(); + org.springframework.beans.BeanUtils.copyProperties(outsContractDetail, outsContractRespVO, "contractFileUrl"); + outsContractRespVO.setContractFileUrl(FileUtils.covertJSONStringToFile(outsContractDetail.getContractFileUrl())); + return success(outsContractRespVO); } diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractPageReqVO.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractPageReqVO.java index c20a6cbcf..cb8994f9c 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractPageReqVO.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractPageReqVO.java @@ -23,35 +23,12 @@ public class OutsContractPageReqVO extends PageParam { @Schema(description = "项目id", example = "27415") private Long projectId; - @Schema(description = "合同名称", example = "张三") - private String name; @Schema(description = "主合同id", example = "19816") private Long contractId; - @Schema(description = "计费类型", example = "2") - @DictFormat(DictTypeConstants.COUNT_TYPE) - private String countType; - - @Schema(description = "合同金额") - private BigDecimal amount; - - @Schema(description = "编号") - private String code; @Schema(description = "专业") @DictFormat(DictTypeConstants.OUTS_CONTRACT_MAJOR) private String major; - - @Schema(description = "签订时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] signingTime; - - @Schema(description = "结算数") - private BigDecimal settlementAmount; - - @Schema(description = "合同文件url", example = "https://www.iocoder.cn") - private String contractFileUrl; - - } \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractRespVO.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractRespVO.java index 4e7b44f64..8143e15c7 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractRespVO.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo; +import cn.iocoder.yudao.framework.common.pojo.FileDTO; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.module.cms.enums.DictTypeConstants; @@ -10,6 +11,7 @@ import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 外包合同 Response VO") @Data @@ -44,7 +46,7 @@ public class OutsContractRespVO { @Schema(description = "签订合同总额") @ExcelProperty("签订合同总额") - private BigDecimal outsAmount; + private BigDecimal amount; @@ -63,9 +65,9 @@ public class OutsContractRespVO { @ExcelProperty("签订时间") private LocalDateTime signingTime; - @Schema(description = "合同文件url", example = "https://www.iocoder.cn") + @Schema(description = "合同文件url") @ExcelProperty("合同文件url") - private String contractFileUrl; + private List contractFileUrl; @Schema(description = "外包单位") @@ -74,11 +76,11 @@ public class OutsContractRespVO { @Schema(description = "外包合同金额") @ExcelProperty("外包合同金额") - private BigDecimal amount; + private BigDecimal outsAmount; @Schema(description = "外包合同编号") @ExcelProperty("外包合同编号") - private Integer code; + private Integer OutsCode; @Schema(description = "最终外包金额") @ExcelProperty("最终外包金额") diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractSaveReqVO.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractSaveReqVO.java index 7ff2016e6..469987c9a 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractSaveReqVO.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/vo/OutsContractSaveReqVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo; +import cn.iocoder.yudao.framework.common.pojo.FileDTO; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.module.cms.enums.DictTypeConstants; @@ -9,6 +10,7 @@ import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 外包合同新增/修改 Request VO") @Data @@ -28,24 +30,6 @@ public class OutsContractSaveReqVO { - @Schema(description = "合同名称", example = "张三") - @ExcelProperty("合同名称") - private String name; - - @Schema(description = "主控部门", requiredMode = Schema.RequiredMode.REQUIRED, example = "生产一部") - @ExcelProperty("主控部门") - private String trackingDep; - - @Schema(description = "项目负责人", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("项目负责人") - private String projectManager; - - @Schema(description = "签订合同总额") - @ExcelProperty("签订合同总额") - private BigDecimal outsAmount; - - - @Schema(description = "类型", example = "2") @ExcelProperty(value = "类型", converter = DictConvert.class) @@ -61,9 +45,9 @@ public class OutsContractSaveReqVO { @ExcelProperty("签订时间") private LocalDateTime signingTime; - @Schema(description = "合同文件url", example = "https://www.iocoder.cn") + @Schema(description = "合同文件url") @ExcelProperty("合同文件url") - private String contractFileUrl; + private List contractFileUrl; @Schema(description = "外包单位") @@ -72,11 +56,11 @@ public class OutsContractSaveReqVO { @Schema(description = "外包合同金额") @ExcelProperty("外包合同金额") - private BigDecimal amount; + private BigDecimal outsAmount; @Schema(description = "外包合同编号") @ExcelProperty("外包合同编号") - private Integer code; + private Integer OutsCode; @Schema(description = "最终外包金额") @ExcelProperty("最终外包金额") diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/dataobject/outscontract/OutsContractDO.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/dataobject/outscontract/OutsContractDO.java index bbde44630..adb1a31a5 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/dataobject/outscontract/OutsContractDO.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/dataobject/outscontract/OutsContractDO.java @@ -61,11 +61,11 @@ public class OutsContractDO extends BaseDO { /** * 外包合同金额 */ - private BigDecimal amount; + private BigDecimal outsAmount; /** * 外包合同编号 */ - private Integer code; + private Integer OutsCode; /** * 最终外包金额 */ diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/dataobject/outscontract/OutsContractDetailDO.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/dataobject/outscontract/OutsContractDetailDO.java new file mode 100644 index 000000000..7da0da03c --- /dev/null +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/dataobject/outscontract/OutsContractDetailDO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.cms.dal.dataobject.outscontract; + +import lombok.*; + +import java.math.BigDecimal; + +/** + * 外包合同 DO + * + * @author zqc + */ +@Data +public class OutsContractDetailDO extends OutsContractDO { + /** + * 合同名称 + */ + private String name; + + /** + * 主控部门 + */ + private String trackingDep; + + /** + * 项目经理 + */ + private String projectManager; + + /** + * 签订合同总额 + */ + private BigDecimal amount; + + +} \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/mysql/outscontract/OutsContractMapper.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/mysql/outscontract/OutsContractMapper.java index 312e8ddd8..5b8aef624 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/mysql/outscontract/OutsContractMapper.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/dal/mysql/outscontract/OutsContractMapper.java @@ -19,13 +19,8 @@ public interface OutsContractMapper extends BaseMapperX { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(OutsContractDO::getProjectId, reqVO.getProjectId()) .eqIfPresent(OutsContractDO::getContractId, reqVO.getContractId()) - .eqIfPresent(OutsContractDO::getCountType, reqVO.getCountType()) - .eqIfPresent(OutsContractDO::getAmount, reqVO.getAmount()) - .eqIfPresent(OutsContractDO::getCode, reqVO.getCode()) .eqIfPresent(OutsContractDO::getMajor, reqVO.getMajor()) - .betweenIfPresent(OutsContractDO::getSigningTime, reqVO.getSigningTime()) - .eqIfPresent(OutsContractDO::getContractFileUrl, reqVO.getContractFileUrl()) - .orderByDesc(OutsContractDO::getId)); + ); } } \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractService.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractService.java index 3cd3c20cc..dc98ce871 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractService.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractService.java @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; 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.outscontract.OutsContractDetailDO; import jakarta.validation.Valid; import java.util.List; @@ -43,7 +44,7 @@ public interface OutsContractService { * @param id 编号 * @return 外包合同 */ - OutsContractRespVO getOutsContract(Long id); + OutsContractDetailDO getOutsContractDetail(Long id); /** * 获得外包合同分页 diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractServiceImpl.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractServiceImpl.java index a7277025a..5e761cac7 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractServiceImpl.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractServiceImpl.java @@ -1,15 +1,20 @@ package cn.iocoder.yudao.module.cms.service.outscontract; +import cn.hutool.core.bean.BeanUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; 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.dataobject.outscontract.OutsContractDetailDO; import cn.iocoder.yudao.module.cms.dal.mysql.outscontract.OutsContractMapper; -import cn.iocoder.yudao.module.cms.enums.*; import cn.iocoder.yudao.module.cms.service.contract.ContractService; +import cn.iocoder.yudao.module.pms.api.projectschedule.ProjectScheduleApi; +import cn.iocoder.yudao.module.pms.api.projectschedule.dto.ProjectScheduleDetailDTO; +import cn.iocoder.yudao.module.pms.api.projecttracking.ProjectTrackingApi; +import cn.iocoder.yudao.module.pms.api.projecttracking.dto.ProjectTrackingDetailDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -17,11 +22,9 @@ import org.springframework.validation.annotation.Validated; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.cms.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_EXISTS; /** * 外包合同 Service 实现类 @@ -31,34 +34,41 @@ import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_E @Service @Validated public class OutsContractServiceImpl implements OutsContractService { - - /** - * 外包合同立项审批流程定义 - */ - public static final String PROCESS_KEY = "outs_contract_init"; - - /** - * 版本 - */ - public static String VERSION = "1"; @Resource private OutsContractMapper outsContractMapper; - @Resource - private ContractService contractService; - @Resource private AdminUserApi adminUserApi; @Resource - private BpmProcessInstanceApi processInstanceApi; + private ContractService contractService; + @Resource + private ProjectTrackingApi projectTrackingApi; + @Resource + private ProjectScheduleApi projectScheduleApi; @Override public Long createOutsContract(Long loginUserId,OutsContractSaveReqVO createReqVO) { - return null; + String userName = adminUserApi.getUser(loginUserId).getNickname(); + //校验,项目是否存在 + Long contractId = createReqVO.getContractId(); + List outsContractList = outsContractMapper.selectList("contract_id", contractId); + for (OutsContractDO outsContractDO : outsContractList) { + String major = outsContractDO.getMajor(); + if (createReqVO.getMajor().equals(major)){ + throw exception(OUTS_CONTRACT_EXISTS); + } + } + + OutsContractDO outsContractDO = BeanUtils.toBean(createReqVO, OutsContractDO.class); + outsContractDO.setCreator(userName); + outsContractDO.setUpdater(userName); + outsContractMapper.insert(outsContractDO); + //返回 + return outsContractDO.getId(); } @Override @@ -67,15 +77,13 @@ public class OutsContractServiceImpl implements OutsContractService { validateOutsContractExists(updateReqVO.getId()); Long contractId = updateReqVO.getContractId(); - OutsContractDO outsContractDO = outsContractMapper.selectById(updateReqVO.getId()); - if (!Objects.equals(updateReqVO.getProjectId(), outsContractDO.getProjectId())) { - throw exception(PROJECT_NOT_EXISTS); - } - String userName = adminUserApi.getUser(loginUserId).getNickname(); - if (userName == null){ - throw exception(USER_NOT_EXISTS); - } + contractService.validateContractExists(contractId); + + Long projectId = updateReqVO.getProjectId(); + projectTrackingApi.validateProjectExists(projectId); + // 更新 + String userName = adminUserApi.getUser(loginUserId).getNickname(); OutsContractDO updateObj = BeanUtils.toBean(updateReqVO, OutsContractDO.class); updateObj.setUpdater(userName); outsContractMapper.updateById(updateObj); @@ -89,50 +97,42 @@ public class OutsContractServiceImpl implements OutsContractService { outsContractMapper.deleteById(id); } - // 需要联表查询 - // 1.合同名称 √ - // 2.主控部门(跟踪部门) √ - // 3.项目经理 √ - // 4.签订合同总额 √ - @Override - public OutsContractRespVO getOutsContract(Long id) { - //校验 - if (id == null) { - throw exception(OUTS_CONTRACT_NOT_EXISTS); - } + public OutsContractDetailDO getOutsContractDetail(Long id) { + OutsContractDetailDO outsContractDetailDO = new OutsContractDetailDO(); OutsContractDO outsContractDO = outsContractMapper.selectById(id); - OutsContractRespVO outsContractRespVO = BeanUtils.toBean(outsContractDO, OutsContractRespVO.class); - Long contractId = outsContractDO.getContractId(); + ContractDO contractDO = contractService.getContractDetail(outsContractDO.getContractId()); + outsContractDetailDO.setAmount(contractDO.getAmount()); + outsContractDetailDO.setName(contractDO.getName()); + //校验 + validateOutsContractExists(id); + Long projectId = outsContractDO.getProjectId(); + projectTrackingApi.validateProjectExists(projectId); + ProjectScheduleDetailDTO projectScheduleDetail = projectScheduleApi.getProjectScheduleDetail(projectId); + ProjectTrackingDetailDTO projectTracking = projectTrackingApi.getProjectTracking(projectId); + BeanUtil.copyProperties(outsContractDO, outsContractDetailDO); + BeanUtil.copyProperties(projectTracking,outsContractDetailDO); + BeanUtil.copyProperties(projectScheduleDetail,outsContractDetailDO); - outsContractRespVO.setMajor(OutsContractMajorEnum.getNoByCode(outsContractRespVO.getMajor())); - outsContractRespVO.setCountType(CountTypeEnum.getNoByCode(outsContractRespVO.getCountType())); - - return outsContractRespVO; + return outsContractDetailDO; } @Override public PageResult getOutsContractPage(OutsContractPageReqVO pageReqVO) { - if (pageReqVO == null) { - throw exception(PARAM_NOT_EXISTS); - } + PageResult outsContractDOPage = outsContractMapper.selectPage(pageReqVO); + List list = outsContractDOPage.getList(); + List outsContractDetailDOS = new ArrayList<>(); - - PageResult outsContractDOPageResult = outsContractMapper.selectPage(pageReqVO); - List outsContractDOList = outsContractDOPageResult.getList(); - List outsContractRespVOList = new ArrayList<>(); - - - for (OutsContractDO outsContractDO : outsContractDOList) { + for (OutsContractDO outsContractDO : list) { Long id = outsContractDO.getId(); - OutsContractRespVO outsContract = getOutsContract(id); - outsContractRespVOList.add(outsContract); + OutsContractDetailDO outsContractDetail = getOutsContractDetail(id); + outsContractDetailDOS.add(outsContractDetail); } - + List respVOS = BeanUtils.toBean(outsContractDetailDOS, OutsContractRespVO.class); PageResult pageResult = new PageResult<>(); - pageResult.setList(outsContractRespVOList); + pageResult.setList(respVOS); return pageResult; }