mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-01 19:24:57 +08:00
[fix] 优化外部合同管理
This commit is contained in:
parent
38b8336631
commit
4ee64cce49
@ -1,8 +1,10 @@
|
||||
package cn.iocoder.yudao.module.cms.controller.admin.extContract;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.util.file.FileUtils;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractRespVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extcontract.ExtContractDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.service.extContract.ExtContractService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -68,8 +70,13 @@ public class ExtContractController {
|
||||
@Parameter(name = "id", description = "外部合同编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('cms-ext:ext-contract:query')")
|
||||
public CommonResult<ExtContractRespVO> getExtContract(@RequestParam("id") Long id) {
|
||||
ExtContractRespVO extContract = extContractService.getExtContract(id);
|
||||
return success(extContract);
|
||||
ExtContractDetailDO extContractDetailDO = extContractService.getContractDetail(id);
|
||||
ExtContractRespVO extContractRespVO = new ExtContractRespVO();
|
||||
org.springframework.beans.BeanUtils.copyProperties(extContractDetailDO, extContractRespVO, "contractFileUrl", "reviewFileUrl");
|
||||
extContractRespVO.setReviewFileUrl(FileUtils.covertJSONStringToFile(extContractDetailDO.getReviewFileUrl()));
|
||||
extContractRespVO.setContractFileUrl(FileUtils.covertJSONStringToFile(extContractDetailDO.getContractFileUrl()));
|
||||
|
||||
return success(extContractRespVO);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
|
@ -20,20 +20,10 @@ public class ExtContractPageReqVO extends PageParam {
|
||||
@Schema(description = "项目id", example = "30598")
|
||||
private Long projectId;
|
||||
|
||||
@Schema(description = "合同名称", example = "芋艿")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "合同类型", example = "1")
|
||||
@DictFormat(DictTypeConstants.CONTRACT_TYPE)
|
||||
private String type;
|
||||
|
||||
@Schema(description = "客户公司id", example = "25191")
|
||||
private Long customerCompanyId;
|
||||
|
||||
@Schema(description = "合同进展")
|
||||
private String progress;
|
||||
|
||||
|
||||
@Schema(description = "状态", example = "2")
|
||||
@DictFormat(DictTypeConstants.CONTRACT_STATUS)
|
||||
private String status;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.cms.controller.admin.extContract.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;
|
||||
@ -7,6 +8,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 外部合同 Response VO")
|
||||
@ -35,7 +38,7 @@ public class ExtContractRespVO {
|
||||
|
||||
@Schema(description = "客户名称")
|
||||
@ExcelProperty("客户名称")
|
||||
private String customerCompanyName;
|
||||
private String constructionSide;
|
||||
|
||||
@Schema(description = "主控部门", requiredMode = Schema.RequiredMode.REQUIRED, example = "生产一部")
|
||||
@ExcelProperty("主控部门")
|
||||
@ -116,9 +119,9 @@ public class ExtContractRespVO {
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "合同附件url", example = "https://www.iocoder.cn")
|
||||
@Schema(description = "合同附件url")
|
||||
@ExcelProperty("合同附件url")
|
||||
private String contractFileUrl;
|
||||
private List<FileDTO> contractFileUrl;
|
||||
|
||||
@Schema(description = "建安费")
|
||||
@ExcelProperty("建安费")
|
||||
@ -154,9 +157,9 @@ public class ExtContractRespVO {
|
||||
@ExcelProperty("审定金额")
|
||||
private BigDecimal approvedAmount;
|
||||
|
||||
@Schema(description = "审核文件url", example = "https://www.iocoder.cn")
|
||||
@Schema(description = "审核文件url")
|
||||
@ExcelProperty("审核文件url")
|
||||
private String reviewFileUrl;
|
||||
private List<FileDTO> reviewFileUrl;
|
||||
|
||||
@Schema(description = "最后编辑人")
|
||||
@ExcelProperty("最后编辑人")
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.cms.controller.admin.extContract.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.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 外部合同新增/修改 Request VO")
|
||||
@Data
|
||||
@ -29,29 +31,6 @@ public class ExtContractSaveReqVO {
|
||||
|
||||
|
||||
|
||||
@Schema(description = "项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SJ24001")
|
||||
@ExcelProperty("项目编号")
|
||||
private String code;
|
||||
|
||||
@Schema(description = "客户名称")
|
||||
@ExcelProperty("客户名称")
|
||||
private String customerCompanyName;
|
||||
|
||||
@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 exReminderTime;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Schema(description = "合同名称", example = "赵六")
|
||||
@ExcelProperty("合同名称")
|
||||
@ -116,9 +95,9 @@ public class ExtContractSaveReqVO {
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "合同附件url", example = "https://www.iocoder.cn")
|
||||
@Schema(description = "合同附件url")
|
||||
@ExcelProperty("合同附件url")
|
||||
private String contractFileUrl;
|
||||
private List<FileDTO> contractFileUrl;
|
||||
|
||||
@Schema(description = "建安费")
|
||||
@ExcelProperty("建安费")
|
||||
@ -154,9 +133,9 @@ public class ExtContractSaveReqVO {
|
||||
@ExcelProperty("审定金额")
|
||||
private BigDecimal approvedAmount;
|
||||
|
||||
@Schema(description = "审核文件url", example = "https://www.iocoder.cn")
|
||||
@Schema(description = "审核文件url")
|
||||
@ExcelProperty("审核文件url")
|
||||
private String reviewFileUrl;
|
||||
private List<FileDTO> reviewFileUrl;
|
||||
|
||||
@Schema(description = "最后编辑人")
|
||||
@ExcelProperty("最后编辑人")
|
||||
|
@ -1,9 +1,7 @@
|
||||
package cn.iocoder.yudao.module.cms.dal.dataobject.extcontract;
|
||||
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contract.ContractDO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
@ -12,13 +10,30 @@ import java.time.LocalDateTime;
|
||||
* @date 2024/8/14
|
||||
*/
|
||||
@Data
|
||||
public class ExtContractDetailDO extends ContractDO {
|
||||
public class ExtContractDetailDO extends ExtContractDO {
|
||||
/**
|
||||
* 项目编号
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 建设方
|
||||
*/
|
||||
private String constructionSide;
|
||||
|
||||
/**
|
||||
* 主控部门
|
||||
*/
|
||||
private String trackingDep;
|
||||
|
||||
/**
|
||||
* 项目负责人
|
||||
*/
|
||||
private String projectManager;
|
||||
|
||||
/**
|
||||
* 外部合同商议提示
|
||||
*/
|
||||
private LocalDateTime exReminderTime;
|
||||
|
||||
}
|
||||
|
@ -19,9 +19,8 @@ public interface ExtContractMapper extends BaseMapperX<ExtContractDO> {
|
||||
|
||||
default PageResult<ExtContractDO> selectPage(ExtContractPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ExtContractDO>()
|
||||
.likeIfPresent(ExtContractDO::getName, reqVO.getName())
|
||||
.eqIfPresent(ExtContractDO::getProjectId, reqVO.getProjectId())
|
||||
.eqIfPresent(ExtContractDO::getType, reqVO.getType())
|
||||
.eqIfPresent(ExtContractDO::getProgress, reqVO.getProgress())
|
||||
.eqIfPresent(ExtContractDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(ExtContractDO::getContractId, reqVO.getContractId()));
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ package cn.iocoder.yudao.module.cms.service.extContract;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractRespVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extcontract.ExtContractDetailDO;
|
||||
import jakarta.validation.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
|
||||
@ -45,7 +46,7 @@ public interface ExtContractService {
|
||||
* @param id 编号
|
||||
* @return 外部合同
|
||||
*/
|
||||
ExtContractRespVO getExtContract(Long id);
|
||||
ExtContractDetailDO getContractDetail(Long id);
|
||||
|
||||
/**
|
||||
* 获得外部合同分页
|
||||
|
@ -1,16 +1,15 @@
|
||||
package cn.iocoder.yudao.module.cms.service.extContract;
|
||||
|
||||
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractRespVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contract.ContractDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extcontract.ExtContractDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extcontract.ExtContractDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.extContract.ExtContractMapper;
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.extcontracthistory.ExtContractHistoryMapper;
|
||||
import cn.iocoder.yudao.module.cms.enums.ChargingStandardEnum;
|
||||
import cn.iocoder.yudao.module.cms.enums.ContractStatusEnum;
|
||||
import cn.iocoder.yudao.module.cms.enums.ContractTypeEnum;
|
||||
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 org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -24,7 +23,6 @@ import java.util.List;
|
||||
|
||||
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 实现类
|
||||
@ -41,6 +39,12 @@ public class ExtContractServiceImpl implements ExtContractService {
|
||||
@Resource
|
||||
private AdminUserApi adminUserApi;
|
||||
|
||||
@Resource
|
||||
private ProjectTrackingApi projectTrackingApi;
|
||||
|
||||
@Resource
|
||||
private ProjectScheduleApi projectScheduleApi;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -86,63 +90,39 @@ public class ExtContractServiceImpl implements ExtContractService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExtContractRespVO getExtContract(Long id) {
|
||||
//校验
|
||||
if (id == null) {
|
||||
throw exception(EXT_CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
public ExtContractDetailDO getContractDetail(Long id) {
|
||||
ExtContractDetailDO extContractDetailDO = new ExtContractDetailDO();
|
||||
ExtContractDO extContractDO = extContractMapper.selectById(id);
|
||||
//校验
|
||||
if (extContractDO == null) {
|
||||
throw exception(EXT_CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
Long projectId = extContractDO.getProjectId();
|
||||
projectTrackingApi.validateProjectExists(projectId);
|
||||
ProjectScheduleDetailDTO projectScheduleDetail = projectScheduleApi.getProjectScheduleDetail(projectId);
|
||||
ProjectTrackingDetailDTO projectTracking = projectTrackingApi.getProjectTracking(projectId);
|
||||
BeanUtil.copyProperties(extContractDO, extContractDetailDO);
|
||||
BeanUtil.copyProperties(projectTracking,extContractDetailDO);
|
||||
BeanUtil.copyProperties(projectScheduleDetail,extContractDetailDO);
|
||||
|
||||
|
||||
//Long customerCompanyId = extContractDO.getCustomerCompanyId();
|
||||
ExtContractRespVO extContractRespVO = BeanUtils.toBean(extContractDO, ExtContractRespVO.class);
|
||||
|
||||
//用客户公司id查询
|
||||
//CustomerCompanyDO customerCompanyDO = customerCompanyMapper.selectById(customerCompanyId);
|
||||
//String name = customerCompanyDO.getName();
|
||||
//extContractRespVO.setCustomerCompanyName(name);
|
||||
|
||||
|
||||
//合同总金额
|
||||
|
||||
|
||||
//合同商议提示 // TODO 待优化
|
||||
extContractRespVO.setExReminderTime(null);
|
||||
|
||||
extContractRespVO.setType(ContractTypeEnum.getNoByCode(extContractRespVO.getType()));
|
||||
extContractRespVO.setStatus(ContractStatusEnum.getNoByCode(extContractRespVO.getStatus()));
|
||||
extContractRespVO.setCountType(ContractStatusEnum.getNoByCode(extContractRespVO.getCountType()));
|
||||
extContractRespVO.setSource(ContractStatusEnum.getNoByCode(extContractRespVO.getSource()));
|
||||
extContractRespVO.setChargingStandard(ChargingStandardEnum.getNoByCode(extContractRespVO.getChargingStandard()));
|
||||
|
||||
|
||||
return extContractRespVO;
|
||||
return extContractDetailDO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ExtContractRespVO> getExtContractPage(ExtContractPageReqVO pageReqVO) {
|
||||
if (pageReqVO == null) {
|
||||
throw exception(PARAM_NOT_EXISTS);
|
||||
}
|
||||
PageResult<ExtContractDO> extContractPage = extContractMapper.selectPage(pageReqVO);
|
||||
List<ExtContractDO> list = extContractPage.getList();
|
||||
List<ExtContractDetailDO> extContractDetailDOList = new ArrayList<>();
|
||||
|
||||
PageResult<ExtContractDO> extContractDOPageResult = extContractMapper.selectPage(pageReqVO);
|
||||
List<ExtContractDO> excontractDOList = extContractDOPageResult.getList();
|
||||
List<ExtContractRespVO> extContractRespVOList = new ArrayList<>();
|
||||
|
||||
|
||||
for (ExtContractDO extContractDO : excontractDOList) {
|
||||
for (ExtContractDO extContractDO : list) {
|
||||
Long id = extContractDO.getId();
|
||||
ExtContractRespVO extContractRespVO = getExtContract(id);
|
||||
extContractRespVOList.add(extContractRespVO);
|
||||
ExtContractDetailDO extContractDetailDO = getContractDetail(id);
|
||||
extContractDetailDOList.add(extContractDetailDO);
|
||||
}
|
||||
List<ExtContractRespVO> respVOS = BeanUtils.toBean(extContractDetailDOList, ExtContractRespVO.class);
|
||||
PageResult<ExtContractRespVO> pageResult = new PageResult<>();
|
||||
pageResult.setList(extContractRespVOList);
|
||||
pageResult.setList(respVOS);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
|
@ -3,15 +3,11 @@ package cn.iocoder.yudao.module.cms.service.outscontract;
|
||||
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.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
||||
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.outscontract.OutsContractDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.outscontracthistory.OutsContractHistoryDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.outscontract.OutsContractMapper;
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.outscontracthistory.OutsContractHistoryMapper;
|
||||
import cn.iocoder.yudao.module.cms.enums.*;
|
||||
import cn.iocoder.yudao.module.cms.service.contract.ContractService;
|
||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
||||
@ -19,7 +15,6 @@ import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@ -58,106 +53,12 @@ public class OutsContractServiceImpl implements OutsContractService {
|
||||
@Resource
|
||||
private BpmProcessInstanceApi processInstanceApi;
|
||||
|
||||
@Resource
|
||||
private OutsContractHistoryMapper outsContractHistoryMapper;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Long createOutsContract(Long loginUserId,OutsContractSaveReqVO createReqVO) {
|
||||
if (createReqVO == null) {
|
||||
throw exception(PARAM_NOT_EXISTS);
|
||||
}
|
||||
if (loginUserId == null) {
|
||||
throw exception(PARAM_NOT_EXISTS);
|
||||
}
|
||||
String userName = adminUserApi.getUser(loginUserId).getNickname();
|
||||
if (userName == null) {
|
||||
throw exception(USER_NOT_EXISTS);
|
||||
}
|
||||
|
||||
OutsContractDO outsContractDO = BeanUtils.toBean(createReqVO, OutsContractDO.class);
|
||||
//校验
|
||||
Long projectId = outsContractDO.getProjectId();
|
||||
|
||||
|
||||
//校验联表的字段是否和所联系的表内容相同
|
||||
ContractRespVO contract = contractService.getContract(createReqVO.getContractId());
|
||||
// 需要联表查询
|
||||
// 1.合同名称 √
|
||||
// 2.主控部门(跟踪部门) √
|
||||
// 3.项目经理 √
|
||||
// 4.签订合同总额 √
|
||||
|
||||
//todo 待提取 枚举优化
|
||||
String name = createReqVO.getName();
|
||||
String trackingDep = createReqVO.getTrackingDep();
|
||||
String projectManager = createReqVO.getProjectManager();
|
||||
BigDecimal outsAmount = createReqVO.getOutsAmount();
|
||||
|
||||
|
||||
if (!contract.getName().equals(name)){
|
||||
throw exception(PARAM_ERROR);
|
||||
}
|
||||
if (!contract.getTrackingDep().equals(trackingDep)){
|
||||
throw exception(PARAM_ERROR);
|
||||
}
|
||||
if (!contract.getProjectManager().equals(projectManager)){
|
||||
throw exception(PARAM_ERROR);
|
||||
}
|
||||
if (contract.getAmount().compareTo(outsAmount) != 0){
|
||||
throw exception(PARAM_ERROR);
|
||||
}
|
||||
|
||||
|
||||
|
||||
OutsContractRespVO outsContractRespVO = BeanUtils.toBean(outsContractDO, OutsContractRespVO.class);
|
||||
outsContractDO.setCreator(userName);
|
||||
outsContractDO.setUpdater(userName);
|
||||
|
||||
|
||||
|
||||
//判断该合同是否已经存在,比较各个字段值是否完全一样
|
||||
//得到所有的合同?逐个比较?
|
||||
|
||||
|
||||
List<OutsContractDO> outsContractDOList = outsContractMapper.selectList("project_id", projectId);
|
||||
List<OutsContractRespVO> outsContractRespList = BeanUtils.toBean(outsContractDOList, OutsContractRespVO.class);
|
||||
|
||||
for (OutsContractRespVO respVO : outsContractRespList) {
|
||||
if (respVO.equals(outsContractRespVO)){
|
||||
throw exception(CONTRACT_ALREADY_EXISTS);
|
||||
}
|
||||
}
|
||||
outsContractMapper.insert(outsContractDO);
|
||||
|
||||
|
||||
Long outsContractDOId = outsContractDO.getId();
|
||||
OutsContractHistoryDO outsContractHistoryDO = BeanUtils.toBean(outsContractDO, OutsContractHistoryDO.class);
|
||||
|
||||
|
||||
// 启动流程,同时写入历史合同
|
||||
if (createReqVO.getId() == null) {
|
||||
String processInstanceId = processInstanceApi.createProcessInstance(loginUserId,
|
||||
new BpmProcessInstanceCreateReqDTO()
|
||||
.setProcessDefinitionKey(PROCESS_KEY).setBusinessKey(String.valueOf(outsContractDOId)));
|
||||
|
||||
// 写入工作流编号
|
||||
outsContractHistoryDO.setProcessInstanceId(processInstanceId);
|
||||
outsContractHistoryDO.setOutsContractId(outsContractDOId);
|
||||
|
||||
Long count = outsContractHistoryMapper.selectCount("project_id", projectId);
|
||||
if (count < 1) {
|
||||
outsContractHistoryDO.setVersion(VERSION);
|
||||
} else {
|
||||
outsContractHistoryDO.setVersion(String.valueOf(count+1));
|
||||
}
|
||||
|
||||
outsContractHistoryDO.setProcessStatus("0");
|
||||
outsContractHistoryMapper.insert(outsContractHistoryDO);
|
||||
}
|
||||
|
||||
return outsContractDO.getId();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -166,10 +67,6 @@ public class OutsContractServiceImpl implements OutsContractService {
|
||||
validateOutsContractExists(updateReqVO.getId());
|
||||
|
||||
Long contractId = updateReqVO.getContractId();
|
||||
ContractRespVO contract = contractService.getContract(contractId);
|
||||
if (contract == null) {
|
||||
throw exception(CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
OutsContractDO outsContractDO = outsContractMapper.selectById(updateReqVO.getId());
|
||||
if (!Objects.equals(updateReqVO.getProjectId(), outsContractDO.getProjectId())) {
|
||||
throw exception(PROJECT_NOT_EXISTS);
|
||||
@ -207,12 +104,7 @@ public class OutsContractServiceImpl implements OutsContractService {
|
||||
OutsContractDO outsContractDO = outsContractMapper.selectById(id);
|
||||
OutsContractRespVO outsContractRespVO = BeanUtils.toBean(outsContractDO, OutsContractRespVO.class);
|
||||
Long contractId = outsContractDO.getContractId();
|
||||
ContractRespVO contract = contractService.getContract(contractId);
|
||||
|
||||
outsContractRespVO.setName(contract.getName());
|
||||
outsContractRespVO.setTrackingDep(contract.getTrackingDep());
|
||||
outsContractRespVO.setProjectManager(contract.getProjectManager());
|
||||
outsContractRespVO.setOutsAmount(contract.getAmount());
|
||||
|
||||
outsContractRespVO.setMajor(OutsContractMajorEnum.getNoByCode(outsContractRespVO.getMajor()));
|
||||
outsContractRespVO.setCountType(CountTypeEnum.getNoByCode(outsContractRespVO.getCountType()));
|
||||
|
@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.pms.api.projectschedule.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author wyw
|
||||
* @description
|
||||
@ -15,4 +17,9 @@ public class ProjectScheduleDetailDTO {
|
||||
*/
|
||||
private String projectManager;
|
||||
|
||||
/**
|
||||
* 外部合同商议提示
|
||||
*/
|
||||
private LocalDateTime exReminderTime;
|
||||
|
||||
}
|
||||
|
@ -33,4 +33,10 @@ public class ProjectTrackingDetailDTO {
|
||||
*/
|
||||
private BigDecimal expectedContractAmount;
|
||||
|
||||
/**
|
||||
* 建设方
|
||||
*/
|
||||
private String constructionSide;
|
||||
|
||||
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ public class ProjectScheduleDO extends BaseDO {
|
||||
/**
|
||||
* 外部合同商议时间
|
||||
*/
|
||||
private LocalDateTime contractNegotiationTime;
|
||||
private LocalDateTime exReminderTime;
|
||||
/**
|
||||
* 已完成百分比
|
||||
*/
|
||||
|
@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.pms.dal.dataobject.projectschedule;
|
||||
import cn.iocoder.yudao.module.pms.dal.dataobject.project.ProjectDO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
/**
|
||||
* @author wyw
|
||||
@ -17,4 +19,8 @@ public class ProjectScheduleDetailDO extends ProjectDO {
|
||||
*/
|
||||
private String projectManager;
|
||||
|
||||
/**
|
||||
* 外部合同商议时间
|
||||
*/
|
||||
private LocalDateTime exReminderTime;
|
||||
}
|
||||
|
@ -36,4 +36,9 @@ public class ProjectTrackingDetailDO extends ProjectDO {
|
||||
*/
|
||||
private BigDecimal expectedContractAmount;
|
||||
|
||||
/**
|
||||
* 建设方
|
||||
*/
|
||||
private String constructionSide;
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user