新增 流程历史关联表,储存被拒绝的流程的 新老实力编号
新增 重新发起的流程,查看详情可以 查询到历史的流程内容以及审批记录 每个流程追加 通过流程实例编号查询详情借口
This commit is contained in:
parent
aeaaca5935
commit
e363398132
@ -48,4 +48,16 @@ public class BpmOACashController {
|
||||
|
||||
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.dal.dataobject.oa.BpmOAContractDO;
|
||||
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.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@ -33,6 +35,12 @@ public class BpmOAContractController {
|
||||
@Resource
|
||||
private BpmOAContractService contractService;
|
||||
|
||||
@Resource
|
||||
private BpmHistoryProcessInstanceService historyProcessInstanceService;
|
||||
|
||||
@Resource
|
||||
private BpmTaskService taskService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建请求申请")
|
||||
public CommonResult<Long> createContract(@Valid @RequestBody BpmOAContractCreateReqVO createReqVO) {
|
||||
@ -48,4 +56,14 @@ public class BpmOAContractController {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@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
|
||||
|
@ -49,4 +49,14 @@ public class BpmOAEvectionController {
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
@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);
|
||||
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;
|
||||
|
||||
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.BpmOALeavePageReqVO;
|
||||
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.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 io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
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.web.bind.annotation.*;
|
||||
|
||||
@ -60,4 +59,12 @@ public class BpmOALeaveController {
|
||||
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));
|
||||
}
|
||||
|
||||
@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.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -69,4 +68,13 @@ public class BpmOAProcureController {
|
||||
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.PageResult;
|
||||
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.procurepay.BpmOAProcurePayPageReqVO;
|
||||
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.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
@ -86,5 +83,13 @@ public class BpmOAProcurePayController {
|
||||
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));
|
||||
}
|
||||
|
||||
@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.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.convert.oa.BpmOAReimbursementConvert;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAReimbursementDO;
|
||||
import cn.iocoder.yudao.module.bpm.service.oa.BpmOAReimbursementService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@ -57,4 +56,13 @@ public class BpmOAReimbursementController {
|
||||
// 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));
|
||||
}
|
||||
|
||||
@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.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.dal.dataobject.oa.BpmOASecondDO;
|
||||
import cn.iocoder.yudao.module.bpm.service.oa.BpmOASecondService;
|
||||
@ -40,8 +41,17 @@ public class BpmOASecondController {
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得借调申请")
|
||||
@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);
|
||||
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")
|
||||
@Operation(summary = "获得用章申请")
|
||||
@Operation(summary = "获得调岗申请")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
public CommonResult<BpmOAShiftjobsRespVO> getShiftjobs(@RequestParam("id") Long id) {
|
||||
|
||||
@ -74,6 +74,30 @@ public class BpmOAShiftjobsController {
|
||||
//设置新负责人昵称
|
||||
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);
|
||||
}
|
||||
|
@ -31,6 +31,12 @@ public class BpmOACashCreateReqVO {
|
||||
@NotNull(message = "报销总金额不能为空")
|
||||
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)
|
||||
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 io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
@ -45,13 +43,22 @@ public class BpmOAContractCreateReqVO {
|
||||
@Schema(description = "对方负责人", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
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)
|
||||
private List<UploadUserFile> fileItems;
|
||||
|
||||
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.contractNumber = contractNumber;
|
||||
this.signingDate = signingDate;
|
||||
@ -59,13 +66,31 @@ public class BpmOAContractCreateReqVO {
|
||||
this.mHeadName = mHeadName;
|
||||
this.oCompanyName = oCompanyName;
|
||||
this.oHeadName = oHeadName;
|
||||
this.processInstanceId = processInstanceId;
|
||||
this.result = result;
|
||||
this.fileItems = fileItems;
|
||||
}
|
||||
|
||||
public Integer getResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setResult(Integer result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
public String getContractName() {
|
||||
return contractName;
|
||||
}
|
||||
|
||||
public String getProcessInstanceId() {
|
||||
return processInstanceId;
|
||||
}
|
||||
|
||||
public void setProcessInstanceId(String processInstanceId) {
|
||||
this.processInstanceId = processInstanceId;
|
||||
}
|
||||
|
||||
public void setContractName(String contractName) {
|
||||
this.contractName = contractName;
|
||||
}
|
||||
|
@ -20,9 +20,6 @@ import java.util.List;
|
||||
@Data
|
||||
public class BpmOAEntryCreateReqVO {
|
||||
|
||||
@Schema(description = "入职申请表单主键", example = "1")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "新入职用户部门编号", example = "10237")
|
||||
private Long entryDeptId;
|
||||
|
||||
@ -56,6 +53,12 @@ public class BpmOAEntryCreateReqVO {
|
||||
@Schema(description = "薪资情况", example = "27005")
|
||||
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)
|
||||
private List<UploadUserFile> fileItems;
|
||||
|
||||
|
@ -51,6 +51,12 @@ public class BpmOAEvectionCreateReqVO {
|
||||
@NotNull(message = "出差时长不能为空")
|
||||
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)
|
||||
private List<UploadUserFile> fileItems;
|
||||
}
|
||||
|
@ -42,6 +42,12 @@ public class BpmOAImprestCreateReqVO {
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
||||
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)
|
||||
private List<UploadUserFile> fileItems;
|
||||
}
|
||||
|
@ -46,6 +46,12 @@ public class BpmOAIncentiveCreateReqVO {
|
||||
@NotNull(message = "奖惩事由不能为空")
|
||||
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)
|
||||
private List<UploadUserFile> fileItems ;
|
||||
}
|
||||
|
@ -35,6 +35,12 @@ public class BpmOALeaveBaseVO {
|
||||
@NotNull(message = "原因不能为空")
|
||||
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)
|
||||
private List<UploadUserFile> fileItems ;
|
||||
|
||||
|
@ -43,6 +43,12 @@ public class BpmOAOvertimeCreateReqVO {
|
||||
@NotNull(message = "加班时长不能为空")
|
||||
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)
|
||||
private List<UploadUserFile> fileItems;
|
||||
}
|
||||
|
@ -40,6 +40,12 @@ public class BpmOARegularCreateReqVO {
|
||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
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)
|
||||
private List<UploadUserFile> fileItems;
|
||||
}
|
||||
|
@ -47,6 +47,12 @@ public class BpmOAReimbursementCreateReqVO {
|
||||
@NotNull(message = "报销发票总数不能为空")
|
||||
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)
|
||||
private List<UploadUserFile> fileItems ;
|
||||
}
|
||||
|
@ -45,6 +45,12 @@ public class BpmOASealCreateReqVO {
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
||||
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)
|
||||
private List<UploadUserFile> fileItems;
|
||||
}
|
||||
|
@ -34,6 +34,12 @@ public class BpmOASecondCreateReqVO {
|
||||
@Schema(description = "押金", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
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)
|
||||
private List<UploadUserFile> fileItems ;
|
||||
}
|
||||
|
@ -47,6 +47,12 @@ public class BpmOAShiftjobsCreateReqVO {
|
||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
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)
|
||||
private List<UploadUserFile> fileItems;
|
||||
}
|
||||
|
@ -1,11 +1,14 @@
|
||||
package cn.iocoder.yudao.module.bpm.controller.admin.task;
|
||||
|
||||
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.PageResult;
|
||||
import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
||||
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.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.system.api.user.AdminUserApi;
|
||||
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
||||
@ -41,6 +44,9 @@ public class BpmTaskController {
|
||||
@Resource
|
||||
private AdminUserApi userApi;
|
||||
|
||||
@Resource
|
||||
private BpmHistoryProcessInstanceService historyProcessInstanceService;
|
||||
|
||||
/**
|
||||
* add by yaojun 2024.1.3
|
||||
* 流程审核添加了抄送用户(多用户)的功能
|
||||
@ -178,4 +184,19 @@ public class BpmTaskController {
|
||||
|
||||
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.enums.task.BpmProcessInstanceResultEnum;
|
||||
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.system.api.bank.BankApi;
|
||||
import cn.iocoder.yudao.module.system.api.bank.dto.BankRespDTO;
|
||||
@ -86,6 +87,10 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
|
||||
@Resource
|
||||
private AdminUserApi userApi;
|
||||
|
||||
@Resource
|
||||
@Lazy // 解决循环依赖
|
||||
private BpmHistoryProcessInstanceService historyProcessInstanceService;
|
||||
|
||||
|
||||
@Override
|
||||
public Long createCash(Long userId, BpmOACashCreateReqVO createReqVO) {
|
||||
@ -109,6 +114,13 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
|
||||
// 将工作流的编号,更新到 OA 现金支出单中
|
||||
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<>();
|
||||
for (BpmOACashItemDO cashItemDO : bpmOACashItemDOS) {
|
||||
//报销类别为 采购费时
|
||||
|
@ -31,4 +31,11 @@ public interface BpmOAContractService {
|
||||
* @return 出差申请
|
||||
*/
|
||||
BpmOAContractDO getContract(Long id);
|
||||
|
||||
/**
|
||||
* 获得指定出差申请
|
||||
* @param processInstanceId 流程实例编号
|
||||
* @return 出差申请
|
||||
*/
|
||||
BpmOAContractDO getByProcessInstanceId(String processInstanceId);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
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.dto.BpmProcessInstanceCreateReqDTO;
|
||||
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);
|
||||
}
|
||||
|
||||
@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 入职申请信息
|
||||
*/
|
||||
BpmOAEntryDO getEntryByProcessInstanceId(String processInstanceId);
|
||||
|
||||
}
|
||||
|
@ -31,4 +31,11 @@ public interface BpmOAEvectionService {
|
||||
* @return 出差申请
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmOAEvectionDO getByProcessInstanceId(String processInstanceId) {
|
||||
|
||||
return evectionMapper.selectOne(BpmOAEvectionDO::getProcessInstanceId, processInstanceId);
|
||||
}
|
||||
}
|
||||
|
@ -37,4 +37,11 @@ public interface BpmOAIncentiveService {
|
||||
* @return 奖惩申请
|
||||
*/
|
||||
BpmOAIncentiveDO getIncentive(Long id);
|
||||
|
||||
/**
|
||||
* 获得指定奖惩流程
|
||||
* @param processInstanceId 流程实例编号
|
||||
* @return 奖惩申请
|
||||
*/
|
||||
BpmOAIncentiveDO getByProcessInstanceId(String processInstanceId);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
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.dto.BpmProcessInstanceCreateReqDTO;
|
||||
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);
|
||||
}
|
||||
|
||||
@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
|
||||
*/
|
||||
List<BpmOALeaveRpcVO> getLeaveListByTime(String time);
|
||||
|
||||
/**
|
||||
* 获得指定请假申请
|
||||
* @param processInstanceId 流程实例编号
|
||||
* @return 出差申请
|
||||
*/
|
||||
BpmOALeaveDO getByProcessInstanceId(String processInstanceId);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package cn.iocoder.yudao.module.bpm.service.oa;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.BpmOALeaveDTO;
|
||||
@ -143,4 +144,13 @@ public class BpmOALeaveServiceImpl extends BpmOABaseService implements BpmOALeav
|
||||
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 加班申请
|
||||
*/
|
||||
BpmOAOvertimeDO getOvertime(Long id);
|
||||
|
||||
/**
|
||||
* 获得指定的加班申请
|
||||
* @param processInstanceId 流程实例编号
|
||||
* @return 加班申请
|
||||
*/
|
||||
BpmOAOvertimeDO getByProcessInstanceId(String processInstanceId);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
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.dto.BpmProcessInstanceCreateReqDTO;
|
||||
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);
|
||||
}
|
||||
|
||||
@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
|
||||
*/
|
||||
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;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
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.convert.oa.BpmOAProcureConvert;
|
||||
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.enums.task.BpmProcessInstanceResultEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -114,4 +114,14 @@ public class BpmOAProcureServiceImpl extends BpmOABaseService implements BpmOAPr
|
||||
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 转正申请
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmOARegularDO getByProcessInstanceId(String processInstanceId) {
|
||||
|
||||
return regularMapper.selectOne(BpmOARegularDO::getProcessInstanceId, processInstanceId);
|
||||
}
|
||||
}
|
||||
|
@ -37,4 +37,11 @@ public interface BpmOASealService {
|
||||
* @return 用章申请
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmOASealDO getByProcessInstanceId(String processInstanceId) {
|
||||
|
||||
return sealMapper.selectOne(BpmOASealDO::getProcessInstanceId, processInstanceId);
|
||||
}
|
||||
}
|
||||
|
@ -37,4 +37,11 @@ public interface BpmOASecondService {
|
||||
* @return 借调申请
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmOASecondDO getByProcessInstanceId(String processInstanceId) {
|
||||
|
||||
return secondMapper.selectOne(BpmOASecondDO::getProcessInstanceId, processInstanceId);
|
||||
}
|
||||
}
|
||||
|
@ -37,4 +37,11 @@ public interface BpmOAShiftjobsService {
|
||||
* @return 调岗申请
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
@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);
|
||||
|
||||
/**
|
||||
* 获得指令流程实例的流程任务列表,包括所有状态的
|
||||
*
|
||||
* @param processInstanceIds 流程实例的编号
|
||||
* @return 流程任务列表
|
||||
*/
|
||||
Map<String, List<BpmTaskRespVO>> getTaskListByProcessInstanceIds(List<String> processInstanceIds);
|
||||
|
||||
|
||||
/**
|
||||
* 通过任务 ID 集合,获取任务扩展表信息集合
|
||||
@ -229,4 +237,6 @@ public interface BpmTaskService {
|
||||
* @return task
|
||||
*/
|
||||
BpmTaskExtDO getTaskByProcessInstanceIdAndResult(String processInstanceId, Integer result);
|
||||
|
||||
|
||||
}
|
||||
|
@ -344,6 +344,52 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
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
|
||||
public List<BpmTaskExtDO> getTaskListByTaskIdList(List<String> taskIdList) {
|
||||
return taskExtMapper.selectListByTaskIds(taskIdList);
|
||||
|
Loading…
Reference in New Issue
Block a user