mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-01 19:24:57 +08:00
[feat] 新增合同管理的流程管理 新增合同历史管理
This commit is contained in:
parent
30fccdb444
commit
33240916f9
@ -6,7 +6,6 @@ import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractPageReqV
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractRespVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractSaveReqVO;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractProcessInstanceRespVO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contract.ContractDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.service.contract.ContractService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -113,7 +112,7 @@ public class ContractController {
|
||||
@PostMapping("/get_process")
|
||||
@Operation(summary = "查询流程")
|
||||
@PreAuthorize("@ss.hasPermission('cms-ext:ext-contract:create')")
|
||||
public CommonResult<ContractProcessInstanceRespVO> getExtContractProcessInstance(@RequestParam("id") Long id) {
|
||||
public CommonResult<ContractProcessInstanceRespVO> getContractProcessInstance(@RequestParam("id") Long id) {
|
||||
ContractProcessInstanceRespVO process = contractService.getProcess(id);
|
||||
return success(process);
|
||||
}
|
||||
|
@ -1,5 +1,10 @@
|
||||
package cn.iocoder.yudao.module.cms.controller.admin.contractHistory;
|
||||
import cn.iocoder.yudao.framework.common.util.file.FileUtils;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extcontracthistory.vo.ExtContractHistoryRespVO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contractHistory.ContractHistoryDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extcontracthistory.ExtContractHistoryDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.service.contractHistory.ContractHistoryService;
|
||||
import org.checkerframework.checker.units.qual.C;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -51,8 +56,13 @@ public class ContractHistoryController {
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('cms:contract-history:query')")
|
||||
public CommonResult<ContractHistoryRespVO> getContractHistory(@RequestParam("id") Long id) {
|
||||
ContractHistoryRespVO contractHistory = contractHistoryService.getContractHistory(id);
|
||||
return success(contractHistory);
|
||||
ContractHistoryDetailDO contractHistoryDetailDO = contractHistoryService.getContractDetail(id);
|
||||
ContractHistoryRespVO contractHistoryRespVO = new ContractHistoryRespVO();
|
||||
org.springframework.beans.BeanUtils.copyProperties(contractHistoryDetailDO, contractHistoryRespVO, "contractFileUrl", "reviewFileUrl");
|
||||
contractHistoryRespVO.setReviewFileUrl(FileUtils.covertJSONStringToFile(contractHistoryDetailDO.getReviewFileUrl()));
|
||||
contractHistoryRespVO.setContractFileUrl(FileUtils.covertJSONStringToFile(contractHistoryDetailDO.getContractFileUrl()));
|
||||
|
||||
return success(contractHistoryRespVO);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
|
@ -1,6 +1,7 @@
|
||||
package cn.iocoder.yudao.module.cms.controller.admin.contractHistory.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.FileDTO;
|
||||
import cn.iocoder.yudao.module.cms.enums.DictTypeConstants;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
@ -64,7 +65,7 @@ public class ContractHistoryRespVO {
|
||||
|
||||
@Schema(description = "合同类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@ExcelProperty(value = "合同类型", converter = DictConvert.class)
|
||||
@DictFormat("contract_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||
@DictFormat(DictTypeConstants.CONTRACT_TYPE)
|
||||
private String type;
|
||||
|
||||
@Schema(description = "合同进展", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ -89,12 +90,12 @@ public class ContractHistoryRespVO {
|
||||
|
||||
@Schema(description = "合同状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty(value = "合同状态", converter = DictConvert.class)
|
||||
@DictFormat("contract_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||
@DictFormat(DictTypeConstants.CONTRACT_STATUS)
|
||||
private String status;
|
||||
|
||||
@Schema(description = "计费方式", example = "2")
|
||||
@ExcelProperty(value = "计费方式", converter = DictConvert.class)
|
||||
@DictFormat("contract_billing_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||
@DictFormat(DictTypeConstants.CONTRACT_TYPE)
|
||||
private String countType;
|
||||
|
||||
@Schema(description = "合同url", example = "https://www.iocoder.cn")
|
||||
@ -107,7 +108,7 @@ public class ContractHistoryRespVO {
|
||||
|
||||
@Schema(description = "资金来源")
|
||||
@ExcelProperty(value = "资金来源", converter = DictConvert.class)
|
||||
@DictFormat("funds_source") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||
@DictFormat(DictTypeConstants.SOURCE)
|
||||
private String source;
|
||||
|
||||
@Schema(description = "是否联合体")
|
||||
@ -126,25 +127,6 @@ public class ContractHistoryRespVO {
|
||||
@ExcelProperty("审核文件url")
|
||||
private List<FileDTO> reviewFileUrl;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "更新者")
|
||||
@ExcelProperty("更新者")
|
||||
private String updater;
|
||||
|
||||
@Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@Schema(description = "是否删除", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("是否删除")
|
||||
private Boolean deleted;
|
||||
|
||||
@Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24897")
|
||||
@ExcelProperty("租户编号")
|
||||
private Long tenantId;
|
||||
|
||||
@Schema(description = "签订合同总额")
|
||||
@ExcelProperty("签订合同总额")
|
||||
@ -152,7 +134,7 @@ public class ContractHistoryRespVO {
|
||||
|
||||
@Schema(description = "流程状态", example = "2")
|
||||
@ExcelProperty(value = "流程状态", converter = DictConvert.class)
|
||||
@DictFormat("bpm_process_instance_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||
@DictFormat(DictTypeConstants.PROCESS_STATUS)
|
||||
private Integer processStatus;
|
||||
|
||||
@Schema(description = "版本")
|
||||
|
@ -101,7 +101,7 @@ public class ContractHistorySaveReqVO {
|
||||
@Schema(description = "最后编辑人")
|
||||
private String finalEditor;
|
||||
|
||||
@Schema(description = "合同", requiredMode = Schema.RequiredMode.REQUIRED, example = "24519")
|
||||
@Schema(description = "合同id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24519")
|
||||
@NotNull(message = "合同不能为空")
|
||||
private Long contractId;
|
||||
|
||||
|
@ -53,12 +53,12 @@ public class ExtContractHistoryController {
|
||||
@PreAuthorize("@ss.hasPermission('cms:ext-contract-history:query')")
|
||||
public CommonResult<ExtContractHistoryRespVO> getExtContractHistory(@RequestParam("id") Long id) {
|
||||
ExtContractHistoryDetailDO extContractHistoryDetail = extContractHistoryService.getContractDetail(id);
|
||||
ExtContractHistoryRespVO contractHistoryRespVO = new ExtContractHistoryRespVO();
|
||||
org.springframework.beans.BeanUtils.copyProperties(extContractHistoryDetail, contractHistoryRespVO, "contractFileUrl", "reviewFileUrl");
|
||||
contractHistoryRespVO.setReviewFileUrl(FileUtils.covertJSONStringToFile(extContractHistoryDetail.getReviewFileUrl()));
|
||||
contractHistoryRespVO.setContractFileUrl(FileUtils.covertJSONStringToFile(extContractHistoryDetail.getContractFileUrl()));
|
||||
ExtContractHistoryRespVO extContractHistoryRespVO = new ExtContractHistoryRespVO();
|
||||
org.springframework.beans.BeanUtils.copyProperties(extContractHistoryDetail, extContractHistoryRespVO, "contractFileUrl", "reviewFileUrl");
|
||||
extContractHistoryRespVO.setReviewFileUrl(FileUtils.covertJSONStringToFile(extContractHistoryDetail.getReviewFileUrl()));
|
||||
extContractHistoryRespVO.setContractFileUrl(FileUtils.covertJSONStringToFile(extContractHistoryDetail.getContractFileUrl()));
|
||||
|
||||
return success(contractHistoryRespVO);
|
||||
return success(extContractHistoryRespVO);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.cms.service.contractHistory;
|
||||
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contractHistory.ContractHistoryDetailDO;
|
||||
import jakarta.validation.*;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.contractHistory.vo.*;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contractHistory.ContractHistoryDO;
|
||||
@ -19,14 +20,13 @@ public interface ContractHistoryService {
|
||||
*/
|
||||
void updateContractHistory(Long loginUserId,@Valid ContractHistorySaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 获得历史合同
|
||||
*
|
||||
* @param contractId 现有合同编号
|
||||
* @return 历史合同
|
||||
*/
|
||||
ContractHistoryRespVO getContractHistory(Long contractId);
|
||||
|
||||
/**
|
||||
* 获得历史合同基本信息
|
||||
* @param id 合同id
|
||||
* @return 历史合同基本信息
|
||||
*/
|
||||
ContractHistoryDetailDO getContractDetail(Long id);
|
||||
/**
|
||||
* 获得历史合同分页
|
||||
*
|
||||
|
@ -1,6 +1,11 @@
|
||||
package cn.iocoder.yudao.module.cms.service.contractHistory;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contractHistory.ContractHistoryDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.service.extContract.ExtContractService;
|
||||
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;
|
||||
@ -38,6 +43,9 @@ public class ContractHistoryServiceImpl implements ContractHistoryService {
|
||||
@Resource
|
||||
private ProjectTrackingApi projectTrackingApi;
|
||||
|
||||
@Resource
|
||||
private ProjectScheduleApi projectScheduleApi;
|
||||
|
||||
|
||||
@Override
|
||||
public void updateContractHistory(Long loginUserId,ContractHistorySaveReqVO updateReqVO) {
|
||||
@ -52,35 +60,42 @@ public class ContractHistoryServiceImpl implements ContractHistoryService {
|
||||
contractHistoryMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ContractHistoryRespVO getContractHistory(Long id) {
|
||||
return null;
|
||||
public ContractHistoryDetailDO getContractDetail(Long id) {
|
||||
ContractHistoryDetailDO contractHistoryDetailDO = new ContractHistoryDetailDO();
|
||||
ContractHistoryDO contractHistoryDO = contractHistoryMapper.selectById(id);
|
||||
//校验
|
||||
if (contractHistoryDO == null) {
|
||||
throw exception(CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
Long extContractId = contractHistoryDO.getExtContractId();
|
||||
Long projectId = contractHistoryDO.getProjectId();
|
||||
projectTrackingApi.validateProjectExists(projectId);
|
||||
ProjectScheduleDetailDTO projectScheduleDetail = projectScheduleApi.getProjectScheduleDetail(projectId);
|
||||
ProjectTrackingDetailDTO projectTracking = projectTrackingApi.getProjectTracking(projectId);
|
||||
contractHistoryDetailDO.setReminderTime(extContractService.getContractDetail(extContractId).getReminderTime());
|
||||
BeanUtil.copyProperties(contractHistoryDO, contractHistoryDetailDO);
|
||||
BeanUtil.copyProperties(projectTracking, contractHistoryDetailDO);
|
||||
BeanUtil.copyProperties(projectScheduleDetail, contractHistoryDetailDO);
|
||||
|
||||
return contractHistoryDetailDO;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<ContractHistoryRespVO> getContractHistoryPage(ContractHistoryPageReqVO pageReqVO) {
|
||||
//校验
|
||||
if (pageReqVO == null) {
|
||||
throw exception(PARAM_NOT_EXISTS);
|
||||
}
|
||||
PageResult<ContractHistoryDO> contractHistoryList = contractHistoryMapper.selectPage(pageReqVO);
|
||||
List<ContractHistoryDO> list = contractHistoryList.getList();
|
||||
List<ContractHistoryDetailDO> contractRespVOList = new ArrayList<>();
|
||||
|
||||
Long projectId = pageReqVO.getProjectId();
|
||||
|
||||
PageResult<ContractHistoryDO> contractHistoryDOPageResult = contractHistoryMapper.selectPage(pageReqVO);
|
||||
List<ContractHistoryDO> pageResultList = contractHistoryDOPageResult.getList();
|
||||
List<ContractHistoryRespVO> contractHistoryRespVOS = new ArrayList<>();
|
||||
|
||||
|
||||
for (ContractHistoryDO contractHistoryDO : pageResultList) {
|
||||
for (ContractHistoryDO contractHistoryDO : list) {
|
||||
Long id = contractHistoryDO.getId();
|
||||
ContractHistoryRespVO contractHistory = getContractHistory(id);
|
||||
contractHistoryRespVOS.add(contractHistory);
|
||||
ContractHistoryDetailDO contractDetail = getContractDetail(id);
|
||||
contractRespVOList.add(contractDetail);
|
||||
}
|
||||
|
||||
List<ContractHistoryRespVO> respVOList = BeanUtils.toBean(contractRespVOList, ContractHistoryRespVO.class);
|
||||
PageResult<ContractHistoryRespVO> pageResult = new PageResult<>();
|
||||
pageResult.setList(contractHistoryRespVOS);
|
||||
pageResult.setList(respVOList);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
|
@ -17,14 +17,6 @@ public interface ExtContractHistoryService {
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateExtContractHistory(Long loginUserId,@Valid ExtContractHistorySaveReqVO updateReqVO);
|
||||
/**
|
||||
* 获得外部合同历史历史
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 外部合同历史历史
|
||||
*/
|
||||
ExtContractHistoryRespVO getExtContractHistory(Long id);
|
||||
|
||||
/**
|
||||
* 获得外部合同历史历史分页
|
||||
*
|
||||
|
@ -66,25 +66,6 @@ public class ExtContractHistoryServiceImpl implements ExtContractHistoryService
|
||||
extContractHistoryMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExtContractHistoryRespVO getExtContractHistory(Long id) {
|
||||
//校验
|
||||
if (id == null) {
|
||||
throw exception(EXT_CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
ExtContractHistoryDO extContractHistoryDO = extContractHistoryMapper.selectById(id);
|
||||
if (extContractHistoryDO == null) {
|
||||
throw exception(EXT_CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
Long projectId = extContractHistoryDO.getProjectId();
|
||||
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ExtContractHistoryRespVO> getExtContractHistoryPage(ExtContractHistoryPageReqVO pageReqVO) {
|
||||
PageResult<ExtContractHistoryDO> extContractHistoryPage = extContractHistoryMapper.selectPage(pageReqVO);
|
||||
|
Loading…
Reference in New Issue
Block a user