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
8e41517755
commit
1d079654b3
@ -105,5 +105,13 @@ public class ContractController {
|
||||
return success(contractProcessInstance);
|
||||
}
|
||||
|
||||
@GetMapping("/get_HistoryProcess")
|
||||
@Operation(summary = "查询历史合同流程")
|
||||
@Parameter(name = "projectId", description = "项目id", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('cms:contract:process')")
|
||||
public CommonResult<List<ContractProcessInstanceRespVO>> getHisContractProcess(@RequestParam("projectId") Long projectId) {
|
||||
List<ContractProcessInstanceRespVO> historyContractProcess = contractService.getHistoryContractProcess(projectId);
|
||||
return success(historyContractProcess);
|
||||
}
|
||||
|
||||
}
|
@ -5,8 +5,6 @@ import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Schema(description = "管理后台 - 流程实例的 Response VO")
|
||||
@Data
|
||||
public class ContractProcessInstanceRespVO {
|
||||
@ -17,12 +15,6 @@ public class ContractProcessInstanceRespVO {
|
||||
@Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String name;
|
||||
|
||||
@Schema(description = "流程分类", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String category;
|
||||
|
||||
@Schema(description = "流程分类名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String categoryName;
|
||||
|
||||
@Schema(description = "流程实例的状态", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer status; // 参见 BpmProcessInstanceStatusEnum 枚举
|
||||
|
||||
@ -35,11 +27,6 @@ public class ContractProcessInstanceRespVO {
|
||||
@Schema(description = "持续时间", example = "1000")
|
||||
private Long durationInMillis;
|
||||
|
||||
@Schema(description = "提交的表单值", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Map<String, Object> formVariables;
|
||||
|
||||
@Schema(description = "业务的唯一标识-例如说,请假申请的编号", example = "1")
|
||||
private String businessKey;
|
||||
|
||||
/**
|
||||
* 发起流程的用户
|
||||
|
@ -103,4 +103,13 @@ public class ExtContractController {
|
||||
return success(contractProcessInstance);
|
||||
}
|
||||
|
||||
@GetMapping("/get_HistoryProcess")
|
||||
@Operation(summary = "查询历史外部合同流程")
|
||||
@Parameter(name = "projectId", description = "项目id", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('cms:contract:process')")
|
||||
public CommonResult<List<ContractProcessInstanceRespVO>> getHisContractProcess(@RequestParam("projectId") Long projectId) {
|
||||
List<ContractProcessInstanceRespVO> historyContractProcess = extContractService.getHistoryContractProcess(projectId);
|
||||
return success(historyContractProcess);
|
||||
}
|
||||
|
||||
}
|
@ -100,4 +100,13 @@ public class OutsContractController {
|
||||
ContractProcessInstanceRespVO contractProcessInstance = outsContractService.getContractProcess(id);
|
||||
return success(contractProcessInstance);
|
||||
}
|
||||
|
||||
@GetMapping("/get_HistoryProcess")
|
||||
@Operation(summary = "查询历史外包合同流程")
|
||||
@Parameter(name = "projectId", description = "项目id", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('cms:contract:process')")
|
||||
public CommonResult<List<ContractProcessInstanceRespVO>> getHisContractProcess(@RequestParam("projectId") Long projectId) {
|
||||
List<ContractProcessInstanceRespVO> historyContractProcess = outsContractService.getHistoryContractProcess(projectId);
|
||||
return success(historyContractProcess);
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package cn.iocoder.yudao.module.cms.dal.dataobject.extContract;
|
||||
package cn.iocoder.yudao.module.cms.dal.dataobject.extcontract;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.math.BigDecimal;
|
@ -1,10 +1,10 @@
|
||||
package cn.iocoder.yudao.module.cms.dal.mysql.extContract;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extContract.ExtContractDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extcontract.ExtContractDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
|
@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 合同 Service 接口
|
||||
@ -78,6 +79,13 @@ public interface ContractService {
|
||||
*/
|
||||
ContractProcessInstanceRespVO getContractProcess(Long id);
|
||||
|
||||
/**
|
||||
* 查询合同历史流程
|
||||
* @param projectId 项目id
|
||||
* @return
|
||||
*/
|
||||
List<ContractProcessInstanceRespVO> getHistoryContractProcess(Long projectId);
|
||||
|
||||
|
||||
|
||||
}
|
@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.cms.service.contract;
|
||||
|
||||
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
|
||||
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
||||
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceRespDTO;
|
||||
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmTaskRespDTO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contractHistory.ContractHistoryDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.contract.ContractMapper;
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.contractHistory.ContractHistoryMapper;
|
||||
@ -304,5 +306,47 @@ public class ContractServiceImpl implements ContractService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContractProcessInstanceRespVO getContractProcess(Long id) {
|
||||
validateContractExists(id);
|
||||
//去历史里面找
|
||||
ContractHistoryDO contractHistory = contractHistoryMapper.selectOne("contract_id", id);
|
||||
if (contractHistory == null) {
|
||||
throw exception(CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
//拿到历史之后 找到process_instance_id 和 status
|
||||
String processInstanceId = contractHistory.getProcessInstanceId();
|
||||
String processStatus = contractHistory.getProcessStatus();
|
||||
//与当前流程里的进行比较
|
||||
String status = String.valueOf(processInstanceApi.getProcessInstance(processInstanceId).getStatus());
|
||||
|
||||
//如果不相等
|
||||
if (!status.equals(processStatus)){
|
||||
//更新当前合同对应历史表里面的状态
|
||||
contractHistory.setProcessStatus(status);
|
||||
contractHistoryMapper.updateById(contractHistory);
|
||||
}
|
||||
//返回给前端必要的数据 当前流程里面对应的数据
|
||||
BpmProcessInstanceRespDTO processInstance = processInstanceApi.getProcessInstance(processInstanceId);
|
||||
List<BpmTaskRespDTO> tasks = processInstanceApi.getTask(processInstanceId);
|
||||
List<BpmProcessInstanceRespDTO.Task> taskList = BeanUtils.toBean(tasks, BpmProcessInstanceRespDTO.Task.class);
|
||||
processInstance.setTasks(taskList);
|
||||
|
||||
return BeanUtils.toBean(processInstance, ContractProcessInstanceRespVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContractProcessInstanceRespVO> getHistoryContractProcess(Long projectId) {
|
||||
List<ContractHistoryDO> projectList = contractHistoryMapper.selectList("project_id", projectId);
|
||||
List<ContractProcessInstanceRespVO> contractProcessInstanceRespVOList = new ArrayList<>();
|
||||
for (ContractHistoryDO contractHistoryDO : projectList) {
|
||||
Long id = contractHistoryDO.getId();
|
||||
ContractProcessInstanceRespVO contractProcess = getContractProcess(id);
|
||||
contractProcessInstanceRespVOList.add(contractProcess);
|
||||
}
|
||||
|
||||
return contractProcessInstanceRespVOList;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -9,6 +9,7 @@ import jakarta.validation.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 外部合同 Service 接口
|
||||
@ -75,5 +76,12 @@ public interface ExtContractService {
|
||||
*/
|
||||
ContractProcessInstanceRespVO getContractProcess(Long id);
|
||||
|
||||
/**
|
||||
* 查询历史外部合同流程
|
||||
* @param projectId 项目id
|
||||
* @return
|
||||
*/
|
||||
List<ContractProcessInstanceRespVO> getHistoryContractProcess(Long projectId);
|
||||
|
||||
|
||||
}
|
@ -8,16 +8,17 @@ import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessI
|
||||
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.contractHistory.ContractHistoryDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.customerCompany.CustomerCompanyDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extContract.ExtContractDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extcontract.ExtContractDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.extcontracthistory.ExtContractHistoryDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.customerCompany.CustomerCompanyMapper;
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.extcontract.ExtContractMapper;
|
||||
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.ProjectApi;
|
||||
import cn.iocoder.yudao.module.pms.api.project.ProjectApi;
|
||||
import cn.iocoder.yudao.module.pms.api.project.dto.ProjectDetailRespDTO;
|
||||
import cn.iocoder.yudao.module.pms.api.project.dto.ProjectRespDTO;
|
||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
||||
@ -350,6 +351,19 @@ public class ExtContractServiceImpl implements ExtContractService {
|
||||
return BeanUtils.toBean(processInstance, ContractProcessInstanceRespVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContractProcessInstanceRespVO> getHistoryContractProcess(Long projectId) {
|
||||
List<ExtContractHistoryDO> contractHistoryList = extContractHistoryMapper.selectList("project_id", projectId);
|
||||
List<ContractProcessInstanceRespVO> contractProcessInstanceRespVOList = new ArrayList<>();
|
||||
for (ExtContractHistoryDO contractHistory : contractHistoryList) {
|
||||
Long id = contractHistory.getId();
|
||||
ContractProcessInstanceRespVO contractProcess = getContractProcess(id);
|
||||
contractProcessInstanceRespVOList.add(contractProcess);
|
||||
}
|
||||
|
||||
return contractProcessInstanceRespVOList;
|
||||
}
|
||||
|
||||
|
||||
private void validateExtContractExists(Long id) {
|
||||
if (extContractMapper.selectById(id) == null) {
|
||||
|
@ -2,11 +2,9 @@ package cn.iocoder.yudao.module.cms.service.outscontract;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
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.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 jakarta.validation.Valid;
|
||||
|
||||
import java.util.List;
|
||||
@ -62,5 +60,13 @@ public interface OutsContractService {
|
||||
*/
|
||||
ContractProcessInstanceRespVO getContractProcess(Long id);
|
||||
|
||||
/**
|
||||
* 查询历史外包合同流程
|
||||
* @param projectId 项目id
|
||||
* @return
|
||||
*/
|
||||
List<ContractProcessInstanceRespVO> getHistoryContractProcess(Long projectId);
|
||||
|
||||
|
||||
|
||||
}
|
@ -69,10 +69,10 @@ public class OutsContractServiceImpl implements OutsContractService {
|
||||
@Resource
|
||||
private OutsContractHistoryMapper outsContractHistoryMapper;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Long createOutsContract(Long loginUserId,OutsContractSaveReqVO createReqVO) {
|
||||
|
||||
|
||||
if (createReqVO == null) {
|
||||
throw exception(PARAM_NOT_EXISTS);
|
||||
}
|
||||
@ -287,6 +287,19 @@ public class OutsContractServiceImpl implements OutsContractService {
|
||||
return BeanUtils.toBean(processInstance, ContractProcessInstanceRespVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContractProcessInstanceRespVO> getHistoryContractProcess(Long projectId) {
|
||||
List<OutsContractHistoryDO> outsContracts= outsContractHistoryMapper.selectList("project_id", projectId);
|
||||
List<ContractProcessInstanceRespVO> contractProcessInstanceRespVOList = new ArrayList<>();
|
||||
for (OutsContractHistoryDO outsContract : outsContracts) {
|
||||
Long id = outsContract.getId();
|
||||
ContractProcessInstanceRespVO contractProcess = getContractProcess(id);
|
||||
contractProcessInstanceRespVOList.add(contractProcess);
|
||||
}
|
||||
|
||||
return contractProcessInstanceRespVOList;
|
||||
}
|
||||
|
||||
|
||||
private void validateOutsContractExists(Long id) {
|
||||
if (outsContractMapper.selectById(id) == null) {
|
||||
|
@ -12,6 +12,7 @@ import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import jakarta.validation.*;
|
||||
import jakarta.servlet.http.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
@ -19,11 +20,13 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||
|
||||
@ -43,7 +46,7 @@ public class ProjectController {
|
||||
@Operation(summary = "创建项目基本信息")
|
||||
@PreAuthorize("@ss.hasPermission('pms:project:create')")
|
||||
public CommonResult<Long> createProject(@Valid @RequestBody ProjectSaveReqVO createReqVO) {
|
||||
return success(projectService.createProject(getLoginUserId(),createReqVO));
|
||||
return success(projectService.createProject(getLoginUserId(), createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@ -90,12 +93,12 @@ public class ProjectController {
|
||||
@PreAuthorize("@ss.hasPermission('pms:project:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportProjectExcel(@Valid ProjectPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<ProjectDetailDO> list = projectService.getProjectDetailPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "项目基本信息.xls", "数据", ProjectRespDetailVO.class,
|
||||
BeanUtils.toBean(list, ProjectRespDetailVO.class));
|
||||
BeanUtils.toBean(list, ProjectRespDetailVO.class));
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user