新增 流程历史关联表,储存被拒绝的流程的 新老实力编号
新增 重新发起的流程,查看详情可以 查询到历史的流程内容以及审批记录 每个流程追加 通过流程实例编号查询详情借口
This commit is contained in:
parent
aeaaca5935
commit
e363398132
@ -48,4 +48,16 @@ public class BpmOACashController {
|
|||||||
|
|
||||||
return success(cashService.convertCash(cashDO));
|
return success(cashService.convertCash(cashDO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得现金支出申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOACashRespVO> getCashByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOACashDO cashDO = cashService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
return success(cashService.convertCash(cashDO));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.contract.BpmOAContract
|
|||||||
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAContractConvert;
|
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAContractConvert;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAContractDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAContractDO;
|
||||||
import cn.iocoder.yudao.module.bpm.service.oa.BpmOAContractService;
|
import cn.iocoder.yudao.module.bpm.service.oa.BpmOAContractService;
|
||||||
|
import cn.iocoder.yudao.module.bpm.service.task.BpmHistoryProcessInstanceService;
|
||||||
|
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
@ -33,6 +35,12 @@ public class BpmOAContractController {
|
|||||||
@Resource
|
@Resource
|
||||||
private BpmOAContractService contractService;
|
private BpmOAContractService contractService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BpmHistoryProcessInstanceService historyProcessInstanceService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BpmTaskService taskService;
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "创建请求申请")
|
@Operation(summary = "创建请求申请")
|
||||||
public CommonResult<Long> createContract(@Valid @RequestBody BpmOAContractCreateReqVO createReqVO) {
|
public CommonResult<Long> createContract(@Valid @RequestBody BpmOAContractCreateReqVO createReqVO) {
|
||||||
@ -48,4 +56,14 @@ public class BpmOAContractController {
|
|||||||
|
|
||||||
return success(BpmOAContractConvert.INSTANCE.convert(contract));
|
return success(BpmOAContractConvert.INSTANCE.convert(contract));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得合同审批")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAContractRespVO> getContractByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAContractDO contract = contractService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
return success(BpmOAContractConvert.INSTANCE.convert(contract));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,22 @@ public class BpmOAEntryController {
|
|||||||
return success(respVO);
|
return success(respVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得入职申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAEntryRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAEntryDO entry = entryService.getEntryByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
BpmOAEntryRespVO respVO = BpmOAEntryConvert.INSTANCE.convert(entry);
|
||||||
|
// 设备部门名称
|
||||||
|
respVO.setEntryDeptName(getDept(entry.getEntryDeptId()).getName());
|
||||||
|
// 设备岗位名称
|
||||||
|
respVO.setEntryPostName(getPost(entry.getEntryPostId()).getName());
|
||||||
|
|
||||||
|
return success(respVO);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得部门信息
|
* 获得部门信息
|
||||||
* @param deptId 部门id
|
* @param deptId 部门id
|
||||||
|
@ -49,4 +49,14 @@ public class BpmOAEvectionController {
|
|||||||
|
|
||||||
return success(BpmOAEvectionConvert.INSTANCE.convert(evection));
|
return success(BpmOAEvectionConvert.INSTANCE.convert(evection));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得出差申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAEvectionRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAEvectionDO evection = evectionService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
return success(BpmOAEvectionConvert.INSTANCE.convert(evection));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,4 +71,14 @@ public class BpmOAImprestController {
|
|||||||
|
|
||||||
return success(BpmOAImprestConvert.INSTANCE.convert(imprest));
|
return success(BpmOAImprestConvert.INSTANCE.convert(imprest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得备用金表单")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAImprestRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAImprestDO imprest = imprestService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
return success(BpmOAImprestConvert.INSTANCE.convert(imprest));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,4 +82,33 @@ public class BpmOAIncentiveController {
|
|||||||
bpmOAIncentiveRespVO.setUserInfo(userInfo);
|
bpmOAIncentiveRespVO.setUserInfo(userInfo);
|
||||||
return success(bpmOAIncentiveRespVO);
|
return success(bpmOAIncentiveRespVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得奖惩申请")
|
||||||
|
@Parameter(name = "BpmOAIncentiveRespVO", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAIncentiveRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAIncentiveDO incentive = incentiveService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
//获得 用户信息集合
|
||||||
|
List<AdminUserRespDTO> userRespDTO = userApi.getUserListByDeptIds(incentive.getIncentiveDeptIds()).getCheckedData();
|
||||||
|
|
||||||
|
//获得 部门信息集合
|
||||||
|
Map<Long, DeptRespDTO> deptRespDTOS = deptApi.getDeptMap(incentive.getIncentiveDeptIds());
|
||||||
|
|
||||||
|
Map<String, List<String>> userInfo = new HashMap<>();
|
||||||
|
//遍历 部门map集合
|
||||||
|
deptRespDTOS.forEach((key, value) -> {
|
||||||
|
|
||||||
|
List<String> userName = userRespDTO.stream().filter(user -> user.getDeptId().toString().contains(key.toString())
|
||||||
|
&& incentive.getIncentiveUserIds().contains(user.getId()))
|
||||||
|
.map(AdminUserRespDTO::getNickname).collect(Collectors.toList());
|
||||||
|
|
||||||
|
userInfo.put(value.getName(), userName);
|
||||||
|
});
|
||||||
|
|
||||||
|
BpmOAIncentiveRespVO bpmOAIncentiveRespVO = BpmOAIncentiveConvert.INSTANCE.convert(incentive);
|
||||||
|
bpmOAIncentiveRespVO.setUserInfo(userInfo);
|
||||||
|
return success(bpmOAIncentiveRespVO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,16 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.controller.admin.oa;
|
package cn.iocoder.yudao.module.bpm.controller.admin.oa;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeaveCreateReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeaveCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeavePageReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeavePageReqVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeaveRespVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeaveRespVO;
|
||||||
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOALeaveConvert;
|
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOALeaveConvert;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveService;
|
import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveService;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -60,4 +59,12 @@ public class BpmOALeaveController {
|
|||||||
return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult));
|
return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得请假申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOALeaveRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOALeaveDO leave = leaveService.getByProcessInstanceId(processInstanceId);
|
||||||
|
return success(BpmOALeaveConvert.INSTANCE.convert(leave));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,4 +49,14 @@ public class BpmOAOvertimeController {
|
|||||||
|
|
||||||
return success(BpmOAOvertimeConvert.INSTANCE.convert(overtime));
|
return success(BpmOAOvertimeConvert.INSTANCE.convert(overtime));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得加班申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAOvertimeRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAOvertimeDO overtime = overtimeService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
return success(BpmOAOvertimeConvert.INSTANCE.convert(overtime));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,6 @@ import cn.iocoder.yudao.module.bpm.service.oa.BpmOAProcureService;
|
|||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -69,4 +68,13 @@ public class BpmOAProcureController {
|
|||||||
return success("操作成功");
|
return success("操作成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得OA 采购申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAProcureRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAProcureDO oaProcure = bpmOaProcureService.getByProcessInstanceId(processInstanceId);
|
||||||
|
return success(BpmOAProcureConvert.INSTANCE.convert(oaProcure));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
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.module.bpm.controller.admin.oa.vo.procure.BpmOAProcurePageReqVO;
|
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procure.BpmOAProcureRespVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procure.BpmOAProcureRespVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procurepay.BpmOAProcurePayPageReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procurepay.BpmOAProcurePayPageReqVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procurepay.BpmOAProcurePayRespVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procurepay.BpmOAProcurePayRespVO;
|
||||||
@ -15,13 +14,11 @@ import cn.iocoder.yudao.module.bpm.service.oa.BpmOAProcureService;
|
|||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
@ -86,5 +83,13 @@ public class BpmOAProcurePayController {
|
|||||||
return success(BeanUtils.toBean(list, BpmOAProcureRespVO.class));
|
return success(BeanUtils.toBean(list, BpmOAProcureRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得采购支付")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAProcurePayRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAProcurePayDO oAProcurePay = oAProcurePayService.getByProcessInstanceId(processInstanceId);
|
||||||
|
return success(BeanUtils.toBean(oAProcurePay, BpmOAProcurePayRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -49,4 +49,14 @@ public class BpmOARegularController {
|
|||||||
|
|
||||||
return success(BpmOARegularConvert.INSTANCE.convert(regular));
|
return success(BpmOARegularConvert.INSTANCE.convert(regular));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得转正申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOARegularRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOARegularDO regular = regularService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
return success(BpmOARegularConvert.INSTANCE.convert(regular));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.reimbursement.BpmOAReimbursementCreateReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.reimbursement.BpmOAReimbursementCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.reimbursement.BpmOAReimbursementRespVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.reimbursement.BpmOAReimbursementRespVO;
|
||||||
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAReimbursementConvert;
|
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAReimbursementDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAReimbursementDO;
|
||||||
import cn.iocoder.yudao.module.bpm.service.oa.BpmOAReimbursementService;
|
import cn.iocoder.yudao.module.bpm.service.oa.BpmOAReimbursementService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -57,4 +56,13 @@ public class BpmOAReimbursementController {
|
|||||||
// return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult));
|
// return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult));
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得报销申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAReimbursementRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAReimbursementDO reimbursement = service.getByProcessInstanceId(processInstanceId);
|
||||||
|
return success(service.convert(reimbursement));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -49,4 +49,14 @@ public class BpmOASealController {
|
|||||||
|
|
||||||
return success(BpmOASealConvert.INSTANCE.convert(seal));
|
return success(BpmOASealConvert.INSTANCE.convert(seal));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得用章申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOASealRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOASealDO seal = sealService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
return success(BpmOASealConvert.INSTANCE.convert(seal));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.second.BpmOASecondCreateReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.second.BpmOASecondCreateReqVO;
|
||||||
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.second.BpmOASecondRespVO;
|
||||||
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOASecondConvert;
|
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOASecondConvert;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOASecondDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOASecondDO;
|
||||||
import cn.iocoder.yudao.module.bpm.service.oa.BpmOASecondService;
|
import cn.iocoder.yudao.module.bpm.service.oa.BpmOASecondService;
|
||||||
@ -40,8 +41,17 @@ public class BpmOASecondController {
|
|||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@Operation(summary = "获得借调申请")
|
@Operation(summary = "获得借调申请")
|
||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
public CommonResult<?> getLeave(@RequestParam("id") Long id) {
|
public CommonResult<BpmOASecondRespVO> getLeave(@RequestParam("id") Long id) {
|
||||||
BpmOASecondDO second = service.getSecond(id);
|
BpmOASecondDO second = service.getSecond(id);
|
||||||
return success(BpmOASecondConvert.INSTANCE.convert(second));
|
return success(BpmOASecondConvert.INSTANCE.convert(second));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得借调申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOASecondRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOASecondDO second = service.getByProcessInstanceId(processInstanceId);
|
||||||
|
return success(BpmOASecondConvert.INSTANCE.convert(second));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ public class BpmOAShiftjobsController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@Operation(summary = "获得用章申请")
|
@Operation(summary = "获得调岗申请")
|
||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
public CommonResult<BpmOAShiftjobsRespVO> getShiftjobs(@RequestParam("id") Long id) {
|
public CommonResult<BpmOAShiftjobsRespVO> getShiftjobs(@RequestParam("id") Long id) {
|
||||||
|
|
||||||
@ -74,6 +74,30 @@ public class BpmOAShiftjobsController {
|
|||||||
//设置新负责人昵称
|
//设置新负责人昵称
|
||||||
bpmOAShiftjobsRespVO.setNewParentName(userApi.getUser(shiftjobs.getNewParentId()).getCheckedData().getNickname());
|
bpmOAShiftjobsRespVO.setNewParentName(userApi.getUser(shiftjobs.getNewParentId()).getCheckedData().getNickname());
|
||||||
|
|
||||||
|
return success(bpmOAShiftjobsRespVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getByProcessInstanceId")
|
||||||
|
@Operation(summary = "获得调岗申请")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<BpmOAShiftjobsRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
BpmOAShiftjobsDO shiftjobs = shiftjobsService.getByProcessInstanceId(processInstanceId);
|
||||||
|
|
||||||
|
BpmOAShiftjobsRespVO bpmOAShiftjobsRespVO = BpmOAShiftjobsConvert.INSTANCE.convert(shiftjobs);
|
||||||
|
//设置原部门名称
|
||||||
|
bpmOAShiftjobsRespVO.setOldDeptName(deptApi.getDept(shiftjobs.getOldDeptId()).getCheckedData().getName());
|
||||||
|
//设置原岗位名称
|
||||||
|
bpmOAShiftjobsRespVO.setOldPostName(postApi.getPost(shiftjobs.getOldPostId()).getCheckedData().getName());
|
||||||
|
//设置原负责人昵称
|
||||||
|
bpmOAShiftjobsRespVO.setOldParentName(userApi.getUser(shiftjobs.getOldParentId()).getCheckedData().getNickname());
|
||||||
|
|
||||||
|
//设置新部门名称
|
||||||
|
bpmOAShiftjobsRespVO.setNewDeptName(deptApi.getDept(shiftjobs.getNewDeptId()).getCheckedData().getName());
|
||||||
|
//设置新岗位名称
|
||||||
|
bpmOAShiftjobsRespVO.setNewPostName(postApi.getPost(shiftjobs.getNewPostId()).getCheckedData().getName());
|
||||||
|
//设置新负责人昵称
|
||||||
|
bpmOAShiftjobsRespVO.setNewParentName(userApi.getUser(shiftjobs.getNewParentId()).getCheckedData().getNickname());
|
||||||
|
|
||||||
return success(bpmOAShiftjobsRespVO);
|
return success(bpmOAShiftjobsRespVO);
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,12 @@ public class BpmOACashCreateReqVO {
|
|||||||
@NotNull(message = "报销总金额不能为空")
|
@NotNull(message = "报销总金额不能为空")
|
||||||
private BigDecimal totalMoney;
|
private BigDecimal totalMoney;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,9 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.contract;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
|
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -45,13 +43,22 @@ public class BpmOAContractCreateReqVO {
|
|||||||
@Schema(description = "对方负责人", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "对方负责人", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private String oHeadName;
|
private String oHeadName;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
|
|
||||||
public BpmOAContractCreateReqVO() {
|
public BpmOAContractCreateReqVO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BpmOAContractCreateReqVO(String contractName, String contractNumber, LocalDate signingDate, String mCompanyName, String mHeadName, String oCompanyName, String oHeadName, List<UploadUserFile> fileItems) {
|
public BpmOAContractCreateReqVO(String contractName, String contractNumber, LocalDate signingDate,
|
||||||
|
String mCompanyName, String mHeadName, String oCompanyName,
|
||||||
|
String oHeadName, String processInstanceId, List<UploadUserFile> fileItems,
|
||||||
|
Integer result) {
|
||||||
this.contractName = contractName;
|
this.contractName = contractName;
|
||||||
this.contractNumber = contractNumber;
|
this.contractNumber = contractNumber;
|
||||||
this.signingDate = signingDate;
|
this.signingDate = signingDate;
|
||||||
@ -59,13 +66,31 @@ public class BpmOAContractCreateReqVO {
|
|||||||
this.mHeadName = mHeadName;
|
this.mHeadName = mHeadName;
|
||||||
this.oCompanyName = oCompanyName;
|
this.oCompanyName = oCompanyName;
|
||||||
this.oHeadName = oHeadName;
|
this.oHeadName = oHeadName;
|
||||||
|
this.processInstanceId = processInstanceId;
|
||||||
|
this.result = result;
|
||||||
this.fileItems = fileItems;
|
this.fileItems = fileItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResult(Integer result) {
|
||||||
|
this.result = result;
|
||||||
|
}
|
||||||
|
|
||||||
public String getContractName() {
|
public String getContractName() {
|
||||||
return contractName;
|
return contractName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getProcessInstanceId() {
|
||||||
|
return processInstanceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProcessInstanceId(String processInstanceId) {
|
||||||
|
this.processInstanceId = processInstanceId;
|
||||||
|
}
|
||||||
|
|
||||||
public void setContractName(String contractName) {
|
public void setContractName(String contractName) {
|
||||||
this.contractName = contractName;
|
this.contractName = contractName;
|
||||||
}
|
}
|
||||||
|
@ -20,9 +20,6 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class BpmOAEntryCreateReqVO {
|
public class BpmOAEntryCreateReqVO {
|
||||||
|
|
||||||
@Schema(description = "入职申请表单主键", example = "1")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
@Schema(description = "新入职用户部门编号", example = "10237")
|
@Schema(description = "新入职用户部门编号", example = "10237")
|
||||||
private Long entryDeptId;
|
private Long entryDeptId;
|
||||||
|
|
||||||
@ -56,6 +53,12 @@ public class BpmOAEntryCreateReqVO {
|
|||||||
@Schema(description = "薪资情况", example = "27005")
|
@Schema(description = "薪资情况", example = "27005")
|
||||||
private String salary;
|
private String salary;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
|
|
||||||
|
@ -51,6 +51,12 @@ public class BpmOAEvectionCreateReqVO {
|
|||||||
@NotNull(message = "出差时长不能为空")
|
@NotNull(message = "出差时长不能为空")
|
||||||
private BigDecimal timeLength;
|
private BigDecimal timeLength;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,12 @@ public class BpmOAImprestCreateReqVO {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
||||||
private LocalDate date;
|
private LocalDate date;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,12 @@ public class BpmOAIncentiveCreateReqVO {
|
|||||||
@NotNull(message = "奖惩事由不能为空")
|
@NotNull(message = "奖惩事由不能为空")
|
||||||
private String reason;
|
private String reason;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems ;
|
private List<UploadUserFile> fileItems ;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,12 @@ public class BpmOALeaveBaseVO {
|
|||||||
@NotNull(message = "原因不能为空")
|
@NotNull(message = "原因不能为空")
|
||||||
private String reason;
|
private String reason;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems ;
|
private List<UploadUserFile> fileItems ;
|
||||||
|
|
||||||
|
@ -43,6 +43,12 @@ public class BpmOAOvertimeCreateReqVO {
|
|||||||
@NotNull(message = "加班时长不能为空")
|
@NotNull(message = "加班时长不能为空")
|
||||||
private BigDecimal timeLength;
|
private BigDecimal timeLength;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,12 @@ public class BpmOARegularCreateReqVO {
|
|||||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private String notes;
|
private String notes;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,12 @@ public class BpmOAReimbursementCreateReqVO {
|
|||||||
@NotNull(message = "报销发票总数不能为空")
|
@NotNull(message = "报销发票总数不能为空")
|
||||||
private Integer totalQuantity ;
|
private Integer totalQuantity ;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems ;
|
private List<UploadUserFile> fileItems ;
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,12 @@ public class BpmOASealCreateReqVO {
|
|||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
||||||
private LocalDate useDate;
|
private LocalDate useDate;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,12 @@ public class BpmOASecondCreateReqVO {
|
|||||||
@Schema(description = "押金", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "押金", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private Long deposit;
|
private Long deposit;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<UploadUserFile> fileItems ;
|
private List<UploadUserFile> fileItems ;
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,12 @@ public class BpmOAShiftjobsCreateReqVO {
|
|||||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private String notes;
|
private String notes;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private List<UploadUserFile> fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.controller.admin.task;
|
package cn.iocoder.yudao.module.bpm.controller.admin.task;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
||||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmHistoryProcessInstanceDO;
|
||||||
|
import cn.iocoder.yudao.module.bpm.service.task.BpmHistoryProcessInstanceService;
|
||||||
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
|
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
|
||||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
||||||
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
||||||
@ -41,6 +44,9 @@ public class BpmTaskController {
|
|||||||
@Resource
|
@Resource
|
||||||
private AdminUserApi userApi;
|
private AdminUserApi userApi;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BpmHistoryProcessInstanceService historyProcessInstanceService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* add by yaojun 2024.1.3
|
* add by yaojun 2024.1.3
|
||||||
* 流程审核添加了抄送用户(多用户)的功能
|
* 流程审核添加了抄送用户(多用户)的功能
|
||||||
@ -178,4 +184,19 @@ public class BpmTaskController {
|
|||||||
|
|
||||||
return success(convertList(userIds, id -> userMap.get(Long.valueOf(id))));
|
return success(convertList(userIds, id -> userMap.get(Long.valueOf(id))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get-history-task")
|
||||||
|
@Operation(summary = "获得历史审批记录")
|
||||||
|
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
|
||||||
|
public CommonResult<Map<String, List<BpmTaskRespVO>>> getHistoryTask(@RequestParam("processInstanceId") String processInstanceId) {
|
||||||
|
|
||||||
|
List<BpmHistoryProcessInstanceDO> historyProcessInstanceDOs = historyProcessInstanceService.getHistoryProcessInstanceDO(processInstanceId);
|
||||||
|
if (CollectionUtil.isEmpty(historyProcessInstanceDOs)) {
|
||||||
|
return success(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> historyProcessInstanceIds = convertList(historyProcessInstanceDOs, BpmHistoryProcessInstanceDO::getHistoryProcessInstanceId);
|
||||||
|
|
||||||
|
return success(taskService.getTaskListByProcessInstanceIds(historyProcessInstanceIds));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package cn.iocoder.yudao.module.bpm.dal.dataobject.task;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bpm 历史流程实例关联表
|
||||||
|
* 主要关联 被拒绝的流程实例
|
||||||
|
*/
|
||||||
|
@TableName(value = "bpm_history_process_instance", autoResultMap = true)
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BpmHistoryProcessInstanceDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号,自增
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流程实例的编号
|
||||||
|
* 关联 ProcessInstance 的 id 属性
|
||||||
|
*/
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 历史流程实例的编号组
|
||||||
|
*/
|
||||||
|
private String historyProcessInstanceId;
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package cn.iocoder.yudao.module.bpm.dal.mysql.task;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmHistoryProcessInstanceDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface BpmHistoryProcessInstanceMapper extends BaseMapperX<BpmHistoryProcessInstanceDO> {
|
||||||
|
}
|
@ -20,6 +20,7 @@ import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOACashItemMapper;
|
|||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOACashMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOACashMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
||||||
import cn.iocoder.yudao.module.bpm.service.financialpayment.FinancialPaymentService;
|
import cn.iocoder.yudao.module.bpm.service.financialpayment.FinancialPaymentService;
|
||||||
|
import cn.iocoder.yudao.module.bpm.service.task.BpmHistoryProcessInstanceService;
|
||||||
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
|
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
|
||||||
import cn.iocoder.yudao.module.system.api.bank.BankApi;
|
import cn.iocoder.yudao.module.system.api.bank.BankApi;
|
||||||
import cn.iocoder.yudao.module.system.api.bank.dto.BankRespDTO;
|
import cn.iocoder.yudao.module.system.api.bank.dto.BankRespDTO;
|
||||||
@ -86,6 +87,10 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
|
|||||||
@Resource
|
@Resource
|
||||||
private AdminUserApi userApi;
|
private AdminUserApi userApi;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy // 解决循环依赖
|
||||||
|
private BpmHistoryProcessInstanceService historyProcessInstanceService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createCash(Long userId, BpmOACashCreateReqVO createReqVO) {
|
public Long createCash(Long userId, BpmOACashCreateReqVO createReqVO) {
|
||||||
@ -109,6 +114,13 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
|
|||||||
// 将工作流的编号,更新到 OA 现金支出单中
|
// 将工作流的编号,更新到 OA 现金支出单中
|
||||||
cashMapper.updateById(new BpmOACashDO().setId(cash.getId()).setProcessInstanceId(processInstanceId));
|
cashMapper.updateById(new BpmOACashDO().setId(cash.getId()).setProcessInstanceId(processInstanceId));
|
||||||
|
|
||||||
|
// 判断是否为重新发起的流程
|
||||||
|
if (createReqVO.getProcessInstanceId() != null && createReqVO.getResult() == 3) {
|
||||||
|
|
||||||
|
// 将历史流程编号存入关联表中
|
||||||
|
historyProcessInstanceService.createHistoryProcessInstance(processInstanceId, createReqVO.getProcessInstanceId());
|
||||||
|
}
|
||||||
|
|
||||||
List<Long> procureIds = new ArrayList<>();
|
List<Long> procureIds = new ArrayList<>();
|
||||||
for (BpmOACashItemDO cashItemDO : bpmOACashItemDOS) {
|
for (BpmOACashItemDO cashItemDO : bpmOACashItemDOS) {
|
||||||
//报销类别为 采购费时
|
//报销类别为 采购费时
|
||||||
|
@ -31,4 +31,11 @@ public interface BpmOAContractService {
|
|||||||
* @return 出差申请
|
* @return 出差申请
|
||||||
*/
|
*/
|
||||||
BpmOAContractDO getContract(Long id);
|
BpmOAContractDO getContract(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定出差申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 出差申请
|
||||||
|
*/
|
||||||
|
BpmOAContractDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.service.oa;
|
package cn.iocoder.yudao.module.bpm.service.oa;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
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.controller.admin.oa.vo.contract.BpmOAContractCreateReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.contract.BpmOAContractCreateReqVO;
|
||||||
@ -87,4 +88,14 @@ public class BpmOAContractServiceImpl extends BpmOABaseService implements BpmOAC
|
|||||||
|
|
||||||
return contractMapper.selectById(id);
|
return contractMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOAContractDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
List<BpmOAContractDO> bpmOAContractDOS = contractMapper.selectList(BpmOAContractDO::getProcessInstanceId, processInstanceId);
|
||||||
|
if (CollectionUtil.isEmpty(bpmOAContractDOS)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return bpmOAContractDOS.get(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,4 +37,5 @@ public interface BpmOAEntryService {
|
|||||||
* @return 入职申请信息
|
* @return 入职申请信息
|
||||||
*/
|
*/
|
||||||
BpmOAEntryDO getEntryByProcessInstanceId(String processInstanceId);
|
BpmOAEntryDO getEntryByProcessInstanceId(String processInstanceId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -31,4 +31,11 @@ public interface BpmOAEvectionService {
|
|||||||
* @return 出差申请
|
* @return 出差申请
|
||||||
*/
|
*/
|
||||||
BpmOAEvectionDO getEvection(Long id);
|
BpmOAEvectionDO getEvection(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定的出差申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 出差申请
|
||||||
|
*/
|
||||||
|
BpmOAEvectionDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -83,4 +83,10 @@ public class BpmOAEvectionServiceImpl extends BpmOABaseService implements BpmOAE
|
|||||||
|
|
||||||
return evectionMapper.selectById(id);
|
return evectionMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOAEvectionDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
return evectionMapper.selectOne(BpmOAEvectionDO::getProcessInstanceId, processInstanceId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,4 +37,11 @@ public interface BpmOAIncentiveService {
|
|||||||
* @return 奖惩申请
|
* @return 奖惩申请
|
||||||
*/
|
*/
|
||||||
BpmOAIncentiveDO getIncentive(Long id);
|
BpmOAIncentiveDO getIncentive(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定奖惩流程
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 奖惩申请
|
||||||
|
*/
|
||||||
|
BpmOAIncentiveDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.service.oa;
|
package cn.iocoder.yudao.module.bpm.service.oa;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
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.controller.admin.oa.vo.incentive.BpmOAIncentiveCreateReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.incentive.BpmOAIncentiveCreateReqVO;
|
||||||
@ -83,4 +84,14 @@ public class BpmOAIncentiveServiceImpl extends BpmOABaseService implements BpmOA
|
|||||||
|
|
||||||
return incentiveMapper.selectById(id);
|
return incentiveMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOAIncentiveDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
List<BpmOAIncentiveDO> bpmOAIncentiveDOS = incentiveMapper.selectList(BpmOAIncentiveDO::getProcessInstanceId, processInstanceId);
|
||||||
|
if (CollectionUtil.isEmpty(bpmOAIncentiveDOS)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return bpmOAIncentiveDOS.get(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,4 +58,11 @@ public interface BpmOALeaveService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<BpmOALeaveRpcVO> getLeaveListByTime(String time);
|
List<BpmOALeaveRpcVO> getLeaveListByTime(String time);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定请假申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 出差申请
|
||||||
|
*/
|
||||||
|
BpmOALeaveDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.service.oa;
|
package cn.iocoder.yudao.module.bpm.service.oa;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.BpmOALeaveDTO;
|
import cn.iocoder.yudao.framework.common.pojo.BpmOALeaveDTO;
|
||||||
@ -143,4 +144,13 @@ public class BpmOALeaveServiceImpl extends BpmOABaseService implements BpmOALeav
|
|||||||
return leaveMapper.getLeaveListByTime(time);
|
return leaveMapper.getLeaveListByTime(time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOALeaveDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
List<BpmOALeaveDO> list = leaveMapper.selectList(BpmOALeaveDO::getProcessInstanceId, processInstanceId);
|
||||||
|
if (CollectionUtil.isEmpty(list)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return list.get(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,4 +37,11 @@ public interface BpmOAOvertimeService {
|
|||||||
* @return 加班申请
|
* @return 加班申请
|
||||||
*/
|
*/
|
||||||
BpmOAOvertimeDO getOvertime(Long id);
|
BpmOAOvertimeDO getOvertime(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定的加班申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 加班申请
|
||||||
|
*/
|
||||||
|
BpmOAOvertimeDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.service.oa;
|
package cn.iocoder.yudao.module.bpm.service.oa;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
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.controller.admin.oa.vo.overtime.BpmOAOvertimeCreateReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.overtime.BpmOAOvertimeCreateReqVO;
|
||||||
@ -83,4 +84,14 @@ public class BpmOAOvertimeServiceImpl extends BpmOABaseService implements BpmOAO
|
|||||||
|
|
||||||
return overtimeMapper.selectById(id);
|
return overtimeMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOAOvertimeDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
List<BpmOAOvertimeDO> bpmOAOvertimeDOS = overtimeMapper.selectList(BpmOAOvertimeDO::getProcessInstanceId, processInstanceId);
|
||||||
|
if (!CollectionUtil.isEmpty(bpmOAOvertimeDOS)) {
|
||||||
|
return bpmOAOvertimeDOS.get(0);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,4 +66,11 @@ public interface BpmOAProcureService {
|
|||||||
* @param result
|
* @param result
|
||||||
*/
|
*/
|
||||||
void updateEvectionResult(Long id, Integer result);
|
void updateEvectionResult(Long id, Integer result);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定的采购申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 采购申请
|
||||||
|
*/
|
||||||
|
BpmOAProcureDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.service.oa;
|
package cn.iocoder.yudao.module.bpm.service.oa;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
|
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||||
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;
|
||||||
@ -13,7 +14,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procure.BpmOAProcureSa
|
|||||||
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
|
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
|
||||||
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAProcureConvert;
|
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAProcureConvert;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAProcureDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAProcureDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAReimbursementDO;
|
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAProcureMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAProcureMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -114,4 +114,14 @@ public class BpmOAProcureServiceImpl extends BpmOABaseService implements BpmOAPr
|
|||||||
bpmOaProcureMapper.updateById(new BpmOAProcureDO().setId(id).setResult(result));
|
bpmOaProcureMapper.updateById(new BpmOAProcureDO().setId(id).setResult(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOAProcureDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
List<BpmOAProcureDO> list = bpmOaProcureMapper.selectList(BpmOAProcureDO::getProcessInstanceId, processInstanceId);
|
||||||
|
if (!CollectionUtil.isEmpty(list)) {
|
||||||
|
return list.get(0);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -37,4 +37,11 @@ public interface BpmOARegularService {
|
|||||||
* @return 转正申请
|
* @return 转正申请
|
||||||
*/
|
*/
|
||||||
BpmOARegularDO getRegular(Long id);
|
BpmOARegularDO getRegular(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定的转正申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 转正申请
|
||||||
|
*/
|
||||||
|
BpmOARegularDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -83,4 +83,10 @@ public class BpmOARegularServiceImpl extends BpmOABaseService implements BpmOARe
|
|||||||
|
|
||||||
return regularMapper.selectById(id);
|
return regularMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOARegularDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
return regularMapper.selectOne(BpmOARegularDO::getProcessInstanceId, processInstanceId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,4 +37,11 @@ public interface BpmOASealService {
|
|||||||
* @return 用章申请
|
* @return 用章申请
|
||||||
*/
|
*/
|
||||||
BpmOASealDO getSeal(Long id);
|
BpmOASealDO getSeal(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定的用章申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 用章申请
|
||||||
|
*/
|
||||||
|
BpmOASealDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -83,4 +83,10 @@ public class BpmOASealServiceImpl extends BpmOABaseService implements BpmOASealS
|
|||||||
|
|
||||||
return sealMapper.selectById(id);
|
return sealMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOASealDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
return sealMapper.selectOne(BpmOASealDO::getProcessInstanceId, processInstanceId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,4 +37,11 @@ public interface BpmOASecondService {
|
|||||||
* @return 借调申请
|
* @return 借调申请
|
||||||
*/
|
*/
|
||||||
BpmOASecondDO getSecond(Long id);
|
BpmOASecondDO getSecond(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定的借调申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 借调申请
|
||||||
|
*/
|
||||||
|
BpmOASecondDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -80,4 +80,10 @@ public class BpmOASecondServiceImpl extends BpmOABaseService implements BpmOASec
|
|||||||
|
|
||||||
return secondMapper.selectById(id);
|
return secondMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOASecondDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
return secondMapper.selectOne(BpmOASecondDO::getProcessInstanceId, processInstanceId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,4 +37,11 @@ public interface BpmOAShiftjobsService {
|
|||||||
* @return 调岗申请
|
* @return 调岗申请
|
||||||
*/
|
*/
|
||||||
BpmOAShiftjobsDO getShiftjobs(Long id);
|
BpmOAShiftjobsDO getShiftjobs(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定的调岗申请
|
||||||
|
* @param processInstanceId 流程实例编号
|
||||||
|
* @return 调岗申请
|
||||||
|
*/
|
||||||
|
BpmOAShiftjobsDO getByProcessInstanceId(String processInstanceId);
|
||||||
}
|
}
|
||||||
|
@ -83,4 +83,10 @@ public class BpmOAShiftjobsServiceImpl extends BpmOABaseService implements BpmOA
|
|||||||
|
|
||||||
return shiftjobsMapper.selectById(id);
|
return shiftjobsMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BpmOAShiftjobsDO getByProcessInstanceId(String processInstanceId) {
|
||||||
|
|
||||||
|
return shiftjobsMapper.selectByProcessInstanceId(processInstanceId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
package cn.iocoder.yudao.module.bpm.service.task;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmHistoryProcessInstanceDO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 历史流程实例 Service 接口
|
||||||
|
*/
|
||||||
|
public interface BpmHistoryProcessInstanceService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建历史流程关联记录
|
||||||
|
* @param ProcessInstanceId 流程实例ID
|
||||||
|
* @param historyProcessInstanceId 历史流程实例ID
|
||||||
|
*/
|
||||||
|
void createHistoryProcessInstance(String ProcessInstanceId, String historyProcessInstanceId);
|
||||||
|
|
||||||
|
List<BpmHistoryProcessInstanceDO> getHistoryProcessInstanceDO(String processInstanceId);
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package cn.iocoder.yudao.module.bpm.service.task;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmHistoryProcessInstanceDO;
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmHistoryProcessInstanceMapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BPM 历史流程实例 Service 实现类
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
@Validated
|
||||||
|
public class BpmHistoryProcessInstanceServiceImpl implements BpmHistoryProcessInstanceService{
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BpmHistoryProcessInstanceMapper historyProcessInstanceMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createHistoryProcessInstance(String ProcessInstanceId, String historyProcessInstanceId) {
|
||||||
|
|
||||||
|
BpmHistoryProcessInstanceDO historyProcessInstanceDO = new BpmHistoryProcessInstanceDO()
|
||||||
|
.setProcessInstanceId(ProcessInstanceId)
|
||||||
|
.setHistoryProcessInstanceId(historyProcessInstanceId);
|
||||||
|
|
||||||
|
historyProcessInstanceMapper.insert(historyProcessInstanceDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BpmHistoryProcessInstanceDO> getHistoryProcessInstanceDO(String processInstanceId) {
|
||||||
|
|
||||||
|
return historyProcessInstanceMapper.selectList(BpmHistoryProcessInstanceDO::getProcessInstanceId, processInstanceId);
|
||||||
|
}
|
||||||
|
}
|
@ -89,6 +89,14 @@ public interface BpmTaskService {
|
|||||||
*/
|
*/
|
||||||
List<BpmTaskRespVO> getTaskListByProcessInstanceId(String processInstanceId);
|
List<BpmTaskRespVO> getTaskListByProcessInstanceId(String processInstanceId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指令流程实例的流程任务列表,包括所有状态的
|
||||||
|
*
|
||||||
|
* @param processInstanceIds 流程实例的编号
|
||||||
|
* @return 流程任务列表
|
||||||
|
*/
|
||||||
|
Map<String, List<BpmTaskRespVO>> getTaskListByProcessInstanceIds(List<String> processInstanceIds);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过任务 ID 集合,获取任务扩展表信息集合
|
* 通过任务 ID 集合,获取任务扩展表信息集合
|
||||||
@ -229,4 +237,6 @@ public interface BpmTaskService {
|
|||||||
* @return task
|
* @return task
|
||||||
*/
|
*/
|
||||||
BpmTaskExtDO getTaskByProcessInstanceIdAndResult(String processInstanceId, Integer result);
|
BpmTaskExtDO getTaskByProcessInstanceIdAndResult(String processInstanceId, Integer result);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -344,6 +344,52 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
return BpmTaskConvert.INSTANCE.convertChildrenList(result);
|
return BpmTaskConvert.INSTANCE.convertChildrenList(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, List<BpmTaskRespVO>> getTaskListByProcessInstanceIds(List<String> processInstanceIds) {
|
||||||
|
|
||||||
|
Map<String, List<BpmTaskRespVO>> respVOS = new HashMap<>();
|
||||||
|
|
||||||
|
// 获得任务列表
|
||||||
|
List<HistoricTaskInstance> tasks = historyService.createHistoricTaskInstanceQuery()
|
||||||
|
.processInstanceIdIn(processInstanceIds)
|
||||||
|
.orderByHistoricTaskInstanceStartTime().desc() // 创建时间倒序
|
||||||
|
.list();
|
||||||
|
if (CollUtil.isEmpty(tasks)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得任务列表
|
||||||
|
List<BpmTaskExtDO> bpmTaskExtDOs = taskExtMapper.selectList(BpmTaskExtDO::getProcessInstanceId, processInstanceIds);
|
||||||
|
|
||||||
|
/* 剔除自动审批的Task记录 */
|
||||||
|
bpmTaskExtDOs = bpmTaskExtDOs.stream()
|
||||||
|
.filter(bpmTaskExtDO -> !BpmConstants.AUTO_APPRAVAL.equals(bpmTaskExtDO.getReason()) || BpmConstants.SELF_TASK_NAME.equals(bpmTaskExtDO.getName()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
List<String> taskIds = convertList(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
|
||||||
|
tasks = tasks.stream().filter(task -> taskIds.contains(task.getId())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 获得 User Map
|
||||||
|
Set<Long> userIds = convertSet(bpmTaskExtDOs, BpmTaskExtDO::getAssigneeUserId);
|
||||||
|
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
|
||||||
|
// 获得 Dept Map
|
||||||
|
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(userMap.values(), AdminUserRespDTO::getDeptId));
|
||||||
|
|
||||||
|
// 获得BpmTaskExtDO map
|
||||||
|
Map<String, BpmTaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
|
||||||
|
|
||||||
|
// 获得 task MAP
|
||||||
|
Map<String, List<HistoricTaskInstance>> taskMap = convertMultiMap(tasks, HistoricTaskInstance::getProcessInstanceId);
|
||||||
|
taskMap.forEach((processInstanceId, taskList) -> {
|
||||||
|
|
||||||
|
// 拼接数据
|
||||||
|
List<BpmTaskRespVO> result = BpmTaskConvert.INSTANCE.convertList3(taskList, bpmTaskExtDOMap, null, userMap, deptMap);
|
||||||
|
|
||||||
|
respVOS.put(processInstanceId, result);
|
||||||
|
});
|
||||||
|
|
||||||
|
return respVOS;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BpmTaskExtDO> getTaskListByTaskIdList(List<String> taskIdList) {
|
public List<BpmTaskExtDO> getTaskListByTaskIdList(List<String> taskIdList) {
|
||||||
return taskExtMapper.selectListByTaskIds(taskIdList);
|
return taskExtMapper.selectListByTaskIds(taskIdList);
|
||||||
|
Loading…
Reference in New Issue
Block a user