mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-02 03:34:58 +08:00
[feat] 新增外包合同,外部合同的流程查询
This commit is contained in:
parent
684d20bedb
commit
d3513e0cfb
@ -35,6 +35,7 @@
|
|||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- Web 相关 -->
|
<!-- Web 相关 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
@ -106,6 +106,4 @@ public class ContractController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.cms.controller.admin.extContract;
|
package cn.iocoder.yudao.module.cms.controller.admin.extContract;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO;
|
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.ExtContractRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
||||||
@ -93,4 +94,13 @@ public class ExtContractController {
|
|||||||
BeanUtils.toBean(list, ExtContractRespVO.class));
|
BeanUtils.toBean(list, ExtContractRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get_process")
|
||||||
|
@Operation(summary = "查询流程")
|
||||||
|
@Parameter(name = "id", description = "外部合同id", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('cms:contract:process')")
|
||||||
|
public CommonResult<ContractProcessInstanceRespVO> getContractProcess(@RequestParam("id") Long id) {
|
||||||
|
ContractProcessInstanceRespVO contractProcessInstance = extContractService.getContractProcess(id);
|
||||||
|
return success(contractProcessInstance);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
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.ContractRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO;
|
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.OutsContractRespVO;
|
||||||
@ -91,4 +92,12 @@ public class OutsContractController {
|
|||||||
ExcelUtils.write(response, "外包合同.xls", "数据", OutsContractRespVO.class,
|
ExcelUtils.write(response, "外包合同.xls", "数据", OutsContractRespVO.class,
|
||||||
BeanUtils.toBean(list, OutsContractRespVO.class));
|
BeanUtils.toBean(list, OutsContractRespVO.class));
|
||||||
}
|
}
|
||||||
|
@GetMapping("/get_process")
|
||||||
|
@Operation(summary = "查询流程")
|
||||||
|
@Parameter(name = "id", description = "外包合同id", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('cms:contract:process')")
|
||||||
|
public CommonResult<ContractProcessInstanceRespVO> getContractProcess(@RequestParam("id") Long id) {
|
||||||
|
ContractProcessInstanceRespVO contractProcessInstance = outsContractService.getContractProcess(id);
|
||||||
|
return success(contractProcessInstance);
|
||||||
|
}
|
||||||
}
|
}
|
@ -78,4 +78,6 @@ public interface ContractService {
|
|||||||
*/
|
*/
|
||||||
ContractProcessInstanceRespVO getContractProcess(Long id);
|
ContractProcessInstanceRespVO getContractProcess(Long id);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.cms.service.extContract;
|
package cn.iocoder.yudao.module.cms.service.extContract;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO;
|
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.ExtContractRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
||||||
@ -66,4 +67,13 @@ public interface ExtContractService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
BigDecimal getContractAmount(ExtContractSaveReqVO createReqVO);
|
BigDecimal getContractAmount(ExtContractSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询流程
|
||||||
|
* @param id 合同id
|
||||||
|
*/
|
||||||
|
ContractProcessInstanceRespVO getContractProcess(Long id);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.cms.service.extContract;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
|
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.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.controller.admin.contract.vo.ContractProcessInstanceRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO;
|
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.ExtContractRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO;
|
||||||
@ -72,6 +75,7 @@ public class ExtContractServiceImpl implements ExtContractService {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createExtContract(Long loginUserId, ExtContractSaveReqVO createReqVO) {
|
public Long createExtContract(Long loginUserId, ExtContractSaveReqVO createReqVO) {
|
||||||
|
|
||||||
@ -317,6 +321,35 @@ public class ExtContractServiceImpl implements ExtContractService {
|
|||||||
return preAmount.add(designFee).add(surveyFees).add(testingFee).add(other);
|
return preAmount.add(designFee).add(surveyFees).add(testingFee).add(other);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ContractProcessInstanceRespVO getContractProcess(Long id) {
|
||||||
|
validateExtContractExists(id);
|
||||||
|
//去历史里面找
|
||||||
|
ExtContractHistoryDO extContractHistoryDO = extContractHistoryMapper.selectOne("ext_contract_id", id);
|
||||||
|
if (extContractHistoryDO == null) {
|
||||||
|
throw exception(CONTRACT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
//拿到历史之后 找到process_instance_id 和 status
|
||||||
|
String processInstanceId = extContractHistoryDO.getProcessInstanceId();
|
||||||
|
String processStatus = extContractHistoryDO.getProcessStatus();
|
||||||
|
//与当前流程里的进行比较
|
||||||
|
String status = String.valueOf(processInstanceApi.getProcessInstance(processInstanceId).getStatus());
|
||||||
|
|
||||||
|
//如果不相等
|
||||||
|
if (!status.equals(processStatus)){
|
||||||
|
//更新当前合同对应历史表里面的状态
|
||||||
|
extContractHistoryDO.setProcessStatus(status);
|
||||||
|
extContractHistoryMapper.updateById(extContractHistoryDO);
|
||||||
|
}
|
||||||
|
//返回给前端必要的数据 当前流程里面对应的数据
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void validateExtContractExists(Long id) {
|
private void validateExtContractExists(Long id) {
|
||||||
if (extContractMapper.selectById(id) == null) {
|
if (extContractMapper.selectById(id) == null) {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.cms.service.outscontract;
|
package cn.iocoder.yudao.module.cms.service.outscontract;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
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.contract.vo.ContractRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO;
|
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.OutsContractRespVO;
|
||||||
@ -55,4 +56,11 @@ public interface OutsContractService {
|
|||||||
*/
|
*/
|
||||||
PageResult<OutsContractRespVO> getOutsContractPage(OutsContractPageReqVO pageReqVO);
|
PageResult<OutsContractRespVO> getOutsContractPage(OutsContractPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询流程
|
||||||
|
* @param id 合同id
|
||||||
|
*/
|
||||||
|
ContractProcessInstanceRespVO getContractProcess(Long id);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -4,6 +4,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
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.BpmProcessInstanceApi;
|
||||||
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
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.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.ContractRespVO;
|
||||||
import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO;
|
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.OutsContractRespVO;
|
||||||
@ -255,6 +258,36 @@ public class OutsContractServiceImpl implements OutsContractService {
|
|||||||
return pageResult;
|
return pageResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ContractProcessInstanceRespVO getContractProcess(Long id) {
|
||||||
|
validateOutsContractExists(id);
|
||||||
|
//去历史里面找
|
||||||
|
OutsContractHistoryDO outsContractHistory = outsContractHistoryMapper.selectOne("outs_contract_id", id);
|
||||||
|
if (outsContractHistory == null) {
|
||||||
|
throw exception(CONTRACT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
//拿到历史之后 找到process_instance_id 和 status
|
||||||
|
String processInstanceId = outsContractHistory.getProcessInstanceId();
|
||||||
|
String processStatus = outsContractHistory.getProcessStatus();
|
||||||
|
//与当前流程里的进行比较
|
||||||
|
String status = String.valueOf(processInstanceApi.getProcessInstance(processInstanceId).getStatus());
|
||||||
|
|
||||||
|
//如果不相等
|
||||||
|
if (!status.equals(processStatus)){
|
||||||
|
//更新当前合同对应历史表里面的状态
|
||||||
|
outsContractHistory.setProcessStatus(status);
|
||||||
|
outsContractHistoryMapper.updateById(outsContractHistory);
|
||||||
|
}
|
||||||
|
//返回给前端必要的数据 当前流程里面对应的数据
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void validateOutsContractExists(Long id) {
|
private void validateOutsContractExists(Long id) {
|
||||||
if (outsContractMapper.selectById(id) == null) {
|
if (outsContractMapper.selectById(id) == null) {
|
||||||
throw exception(OUTS_CONTRACT_NOT_EXISTS);
|
throw exception(OUTS_CONTRACT_NOT_EXISTS);
|
||||||
|
Loading…
Reference in New Issue
Block a user