[fix] 修复合同管理模块,增加校验

This commit is contained in:
wyw 2024-07-26 11:10:59 +08:00
parent 171c0cc018
commit 47adca8394
3 changed files with 60 additions and 8 deletions

View File

@ -31,5 +31,9 @@ public interface ErrorCodeConstants {
// ========== 外包合同关联 2_023_000_000 ==========
ErrorCode CONTRACT_OUTS_NOT_EXISTS = new ErrorCode(2_023_000_000, "外包合同关联不存在");
ErrorCode PROJECT_NOT_EXISTS = new ErrorCode(1_021_000_000, "项目信息不存在");
}

View File

@ -1,4 +1,5 @@
package cn.iocoder.yudao.module.cms.controller.admin.contract.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.constraints.*;
@ -12,9 +13,37 @@ public class ContractSaveReqVO {
@Schema(description = "合同编号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
@Schema(description = "项目id", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
private Long projectId;
@Schema(description = "项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SJ24001")
@ExcelProperty("项目编号")
private String code;
@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 LocalDateTime ReminderTime;
@Schema(description = "暂定结算数")
@ExcelProperty("暂定结算数")
private BigDecimal provisionalSettlement;
@Schema(description = "出图公司", requiredMode = Schema.RequiredMode.REQUIRED,example = "***设计院")
@ExcelProperty("出图公司")
private String drawingCompany;
@Schema(description = "预计合同金额", requiredMode = Schema.RequiredMode.REQUIRED,example = "200.0000")
@ExcelProperty("预计合同金额")
private BigDecimal expectedContractAmount;
@Schema(description = "合同名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@NotEmpty(message = "合同名称不能为空")
private String name;

View File

@ -45,15 +45,28 @@ public class ContractServiceImpl implements ContractService {
@Override
public Long createContract(ContractSaveReqVO createReqVO) {
// 插入
ContractDO contract = BeanUtils.toBean(createReqVO, ContractDO.class);
contractMapper.insert(contract);
Long projectId = createReqVO.getProjectId();
if (projectId != null) {
//进行更新
updateContract(createReqVO);
}else{
//插入
contractMapper.insert(contract);
}
// 返回
return contract.getId();
}
@Override
public void updateContract(ContractSaveReqVO updateReqVO) {
Long id = updateReqVO.getId();
validateContractExists(id);
Long projectId = updateReqVO.getProjectId();
if (projectId == null){
throw exception(CONTRACT_NOT_EXISTS);
}
// 更新
ContractDO updateObj = BeanUtils.toBean(updateReqVO, ContractDO.class);
contractMapper.updateById(updateObj);
@ -67,17 +80,16 @@ public class ContractServiceImpl implements ContractService {
contractMapper.deleteById(id);
}
private void validateContractExists(Long projectId) {
if (contractMapper.selectById(projectId) == null) {
throw exception(CONTRACT_NOT_EXISTS);
}
}
@Override
public ContractRespVO getContract(Long id) {
ContractDO contractDO = contractMapper.selectById(id);
Long projectId = contractDO.getProjectId();
//校验
if (projectId == null){
throw exception(PROJECT_NOT_EXISTS);
}
ContractRespVO contractRespVO = BeanUtils.toBean(contractDO, ContractRespVO.class);
// 需要联表查询
@ -144,4 +156,11 @@ public class ContractServiceImpl implements ContractService {
}
private void validateContractExists(Long projectId) {
if (contractMapper.selectById(projectId) == null) {
throw exception(CONTRACT_NOT_EXISTS);
}
}
}