package com.ruoyi.web.controller.api;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.basic.PageInfo;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.TDept;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.framework.web.service.TokenService;
|
import com.ruoyi.system.dto.AddLeaveDTO;
|
import com.ruoyi.system.dto.AuditDTO;
|
import com.ruoyi.system.emums.ApprovalTypeEnum;
|
import com.ruoyi.system.model.*;
|
import com.ruoyi.system.query.ApprovalDetailQuery;
|
import com.ruoyi.system.query.ApprovalTodoListQuery;
|
import com.ruoyi.system.service.*;
|
import com.ruoyi.system.vo.*;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 审批流程节点审核记录表 前端控制器
|
* </p>
|
*
|
* @author WuGuanFengYue
|
* @since 2025-09-15
|
*/
|
@RestController
|
@RequestMapping("/oa-approval-flow-audit")
|
@Api(tags = "通用审批接口")
|
public class OaApprovalFlowAuditController {
|
@Resource
|
private OaApprovalTodoService approvalTodoService;
|
@Resource
|
private OaApprovalFlowAuditService approvalFlowAuditService;
|
@Resource
|
private OaApprovalApplicationStorageService approvalApplicationStorageService;
|
@Resource
|
private OaApprovalApplicationPurchaseService approvalApplicationPurchaseService;
|
@Resource
|
private OaApprovalApplicationPurchaseItemService approvalApplicationPurchaseItemService;
|
@Resource
|
private OaApprovalApplicationAssetItemService approvalApplicationAssetItemService;
|
@Resource
|
private TokenService tokenService;
|
@Resource
|
private OaApprovalService approvalService;
|
|
@Resource
|
private OaApprovalApplicationsService approvalApplicationsService;
|
@Resource
|
private OaApprovalApplicationAdvertisementService approvalApplicationAdvertisementService;
|
@Resource
|
private OaApprovalApplicationContactService approvalApplicationContactService;
|
@Resource
|
private OaApprovalApplicationPaymentService approvalApplicationPaymentService;
|
@Resource
|
private OaApprovalApplicationContractService approvalApplicationContractService;
|
@Resource
|
private OaApprovalApplicationMoneyService approvalApplicationMoneyService;
|
@Resource
|
private AssetMainService assetMainService;
|
@Resource
|
private OaApprovalApplicationReimbursementService approvalApplicationReimbursementService;
|
@Resource
|
private OaApprovalApplicationReimbursementItemService approvalApplicationReimbursementItemService;
|
@Resource
|
private OaApprovalFlowNodeService approvalFlowNodeService;
|
@Resource
|
private OaApprovalApplicationAssetService approvalApplicationAssetService;
|
@Resource
|
private ISysUserService sysUserService;
|
@Resource
|
private OaApprovalApplicationDisposeService approvalApplicationDisposeService;
|
@Resource
|
private OaApprovalApplicationChangeService approvalApplicationChangeService;
|
@Resource
|
private OaApprovalApplicationAttendanceService approvalApplicationAttendanceService;
|
@Resource
|
private TDeptService deptService;
|
@Resource
|
private AssetTypeService assetTypeService;
|
@Resource
|
private OaApprovalTodoService oaApprovalTodoService;
|
@Resource
|
private OaApprovalFlowService approvalFlowService;
|
|
|
|
@ApiOperation("我审批的")
|
@PostMapping("/pageList")
|
public R<PageInfo<ApprovalTodoVO>> pageList(@RequestBody ApprovalTodoListQuery query) {
|
List<ApprovalTodoVO> resList = new ArrayList<>();
|
Long userId = tokenService.getLoginUser().getUserId();
|
query.setUserId(userId);
|
PageInfo<ApprovalTodoVO> res = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
|
PageInfo<OaApprovalTodo> pageInfo = approvalTodoService.pageListAudit(query);
|
List<OaApprovalTodo> list = pageInfo.getRecords();
|
if (list.isEmpty()){
|
return R.ok(new PageInfo<>());
|
}
|
res.setTotal(pageInfo.getTotal());
|
List<Integer> applicationIds = list.stream().map(OaApprovalTodo::getApplicationId).collect(Collectors.toList());
|
Map<Integer, OaApprovalApplicationReimbursement> approvalApplicationReimbursementMap = approvalApplicationReimbursementService.lambdaQuery()
|
.in(OaApprovalApplicationReimbursement::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationReimbursement::getApprovalApplicationId, e -> e));
|
Map<Integer, OaApprovalApplicationMoney> oaApprovalApplicationMoneyMap = approvalApplicationMoneyService.lambdaQuery()
|
.in(OaApprovalApplicationMoney::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationMoney::getApprovalApplicationId, e -> e));
|
Map<Integer, OaApprovalApplicationPayment> approvalApplicationPaymentMap = approvalApplicationPaymentService.lambdaQuery()
|
.in(OaApprovalApplicationPayment::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationPayment::getApprovalApplicationId, e -> e));
|
Map<Integer, OaApprovalApplicationStorage> applicationStorageMap = approvalApplicationStorageService.lambdaQuery()
|
.in(OaApprovalApplicationStorage::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationStorage::getApprovalApplicationId, e -> e));
|
Map<Integer, OaApprovalApplicationAsset> approvalApplicationAssetMap = approvalApplicationAssetService.lambdaQuery()
|
.in(OaApprovalApplicationAsset::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationAsset::getApprovalApplicationId, e -> e));
|
Map<Integer, OaApprovalApplicationDispose> approvalApplicationDisposeMap = approvalApplicationDisposeService.lambdaQuery()
|
.in(OaApprovalApplicationDispose::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationDispose::getApprovalApplicationId, e -> e));
|
Map<Integer, OaApprovalApplicationChange> approvalApplicationChangeMap = approvalApplicationChangeService.lambdaQuery()
|
.in(OaApprovalApplicationChange::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationChange::getApprovalApplicationId, e -> e));
|
Map<Integer, OaApprovalApplicationPurchase> approvalApplicationPurchaseMap = approvalApplicationPurchaseService.lambdaQuery()
|
.in(OaApprovalApplicationPurchase::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationPurchase::getApprovalApplicationId, e -> e));
|
Map<Integer, List<OaApprovalApplicationAssetItem>> approvalApplicationAssetItemMap = approvalApplicationAssetItemService.lambdaQuery()
|
.in(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.groupingBy(OaApprovalApplicationAssetItem::getApprovalApplicationId));
|
Map<Integer, OaApprovalApplicationAdvertisement> approvalApplicationAdvertisementMap = approvalApplicationAdvertisementService.lambdaQuery()
|
.in(OaApprovalApplicationAdvertisement::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationAdvertisement::getApprovalApplicationId, e -> e));
|
Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery()
|
.in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list()
|
.stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e));
|
|
Map<Integer, AssetMain> assetMainMap = assetMainService.list().stream().collect(Collectors.toMap(AssetMain::getId, e -> e));
|
Map<Integer, OaApprovalTodo> approvalTodoMap = list.stream().collect(Collectors.toMap(OaApprovalTodo::getApplicationId, e -> e));
|
Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e));
|
Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e));
|
Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e));
|
List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list();
|
for (OaApprovalApplications approvalApplication : approvalApplications) {
|
ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO();
|
approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory());
|
switch (approvalTodoVO.getApprovalCategory()){
|
case 1:
|
case 2:
|
case 3:
|
case 4:
|
default:
|
OaApprovalApplicationAttendance oaApprovalApplicationAttendance = applicationAttendanceMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationAttendance!=null){
|
approvalTodoVO.setStartTime(oaApprovalApplicationAttendance.getStartTime());
|
approvalTodoVO.setEndTime(oaApprovalApplicationAttendance.getEndTime());
|
approvalTodoVO.setDuration(oaApprovalApplicationAttendance.getDuration());
|
}
|
break;
|
}
|
SysUser sysUser = userMap.get(approvalApplication.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
approvalTodoVO.setApplyUserName(sysUser.getUserName());
|
TDept tDept = deptMap.get(Integer.parseInt(sysUser.getDeptId()));
|
if (tDept!=null){
|
approvalTodoVO.setApplyDeptName(tDept.getDeptName());
|
}
|
}
|
approvalTodoVO.setApplicationCode(approvalApplication.getApplicationCode());
|
approvalTodoVO.setCreateTime(approvalApplication.getCreateTime());
|
OaApprovalTodo oaApprovalTodo = approvalTodoMap.get(approvalApplication.getId());
|
approvalTodoVO.setId(oaApprovalTodo.getId());
|
approvalTodoVO.setApplicationId(approvalApplication.getId());
|
|
switch (approvalTodoVO.getApprovalCategory()){
|
case 5:
|
OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationPurchase!=null){
|
approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount());
|
}
|
break;
|
case 6:
|
OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationStorage!=null){
|
approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType());
|
}
|
break;
|
case 7:
|
StringBuilder temp = new StringBuilder();
|
List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationAssetItems!=null){
|
for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) {
|
AssetMain assetMain = assetMainMap.get(oaApprovalApplicationAssetItem.getAssetMainId());
|
if (assetMain!=null){
|
temp.append(assetMain.getAssetName()).append(",");
|
}
|
}
|
// 去除最后一位字符
|
if (StringUtils.hasLength(temp.toString())){
|
approvalTodoVO.setAssetName(temp.substring(0, temp.length() - 1));
|
}else{
|
approvalTodoVO.setAssetName("");
|
}
|
}
|
break;
|
case 8:
|
OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationAssetOut!=null){
|
approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime());
|
}
|
break;
|
case 9:
|
OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationAssetBack!=null){
|
approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
|
}
|
break;
|
case 10:
|
OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationDispose!=null){
|
approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType());
|
}
|
break;
|
case 11:
|
OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationChange!=null){
|
Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId();
|
TDept tDept = deptMap.get(ownershipDeptId);
|
if (tDept!=null){
|
approvalTodoVO.setOwnershipDeptName(tDept.getDeptName());
|
}
|
}
|
break;
|
case 12:
|
OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationReimbursement!=null){
|
approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount());
|
}
|
break;
|
case 13:
|
OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationMoney!=null){
|
approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount());
|
approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription());
|
|
}
|
break;
|
case 15:
|
OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationPayment!=null){
|
approvalTodoVO.setAmount(oaApprovalApplicationPayment.getApplyAmount());
|
approvalTodoVO.setDescription(approvalApplication.getApplicationReason());
|
|
}
|
break;
|
case 17:
|
OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId());
|
if (oaApprovalApplicationAdvertisement!=null){
|
approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent());
|
approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount());
|
}
|
break;
|
}
|
|
resList.add(approvalTodoVO);
|
}
|
res.setRecords(resList);
|
return R.ok(res);
|
}
|
|
|
@ApiOperation(value = "合同文件审批详情")
|
@GetMapping(value = "/detailContract")
|
public R<ContractDetailVO> detailContract(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery()
|
.eq(OaApprovalApplicationContract::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
ContractDetailVO res = new ContractDetailVO();
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTRACT.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList( sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setContractUrl(approvalApplicationContract.getContractUrl());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "进度款支付审批详情")
|
@GetMapping(value = "/detailPayment")
|
public R<PaymentDetailVO> detailPayment(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationPayment approvalApplicationPayment = approvalApplicationPaymentService.lambdaQuery()
|
.eq(OaApprovalApplicationPayment::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
PaymentDetailVO res = new PaymentDetailVO();
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PAYMENT.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
// todo 三阶段设计项目表之后完善
|
res.setProjectName("本期还未涉及到项目");
|
res.setApplyAmount(approvalApplicationPayment.getApplyAmount());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "请假申请审批详情")
|
@GetMapping(value = "/detailLeave")
|
public R<LeaveDetailVO> detailLeave(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
|
.eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
LeaveDetailVO res = new LeaveDetailVO();
|
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setStartTime(approvalApplicationAttendance.getStartTime());
|
res.setEndTime(approvalApplicationAttendance.getEndTime());
|
res.setDuration(approvalApplicationAttendance.getDuration());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "销假审批详情")
|
@GetMapping(value = "/detailLeaveDestroy")
|
public R<LeaveDestroyDetailVO> detailLeaveDestroy(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
|
.eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
OaApprovalApplicationAttendance leaveApplication = approvalApplicationAttendanceService.getById(approvalApplicationAttendance.getLeaveApprovalApplicationId());
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
LeaveDestroyDetailVO res = new LeaveDestroyDetailVO();
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE_DESTROY.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setStartTime(approvalApplicationAttendance.getStartTime());
|
res.setEndTime(approvalApplicationAttendance.getEndTime());
|
res.setStartTimeLeave(leaveApplication.getStartTime());
|
res.setEndTimeLeave(leaveApplication.getEndTime());
|
res.setDurationLeave(leaveApplication.getDuration());
|
res.setDuration(approvalApplicationAttendance.getDuration());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "外出申请审批详情")
|
@GetMapping(value = "/detailOut")
|
public R<OutDetailVO> detailOut(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
|
.eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
OutDetailVO res = new OutDetailVO();
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.OUT.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setStartTime(approvalApplicationAttendance.getStartTime());
|
res.setEndTime(approvalApplicationAttendance.getEndTime());
|
res.setDuration(approvalApplicationAttendance.getDuration());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "出差审批详情")
|
@GetMapping(value = "/detailBusinessTrip")
|
public R<BusinessTripDetailVO> detailBusinessTrip(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
|
.eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
BusinessTripDetailVO res = new BusinessTripDetailVO();
|
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BUSINESS_TRIP.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setStartTime(approvalApplicationAttendance.getStartTime());
|
res.setEndTime(approvalApplicationAttendance.getEndTime());
|
res.setDuration(approvalApplicationAttendance.getDuration());
|
res.setAddress(approvalApplicationAttendance.getAddress());
|
res.setProjectName(approvalApplicationAttendance.getProjectName());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "采购审批详情-采购物品清单")
|
@PostMapping(value = "/detailPurchaseList")
|
public R<PageInfo<PurchaseListVO>> detailPurchaseList(@RequestBody ApprovalDetailQuery query) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
query.setId(approvalApplications.getId());
|
PageInfo<PurchaseListVO> items = approvalApplicationPurchaseItemService.pageList(query);
|
return R.ok(items);
|
}
|
@ApiOperation(value = "采购审批详情")
|
@GetMapping(value = "/detailPurchase")
|
public R<PurchaseDetailVO> detailPurchase(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationPurchase approvalApplicationPurchase = approvalApplicationPurchaseService.lambdaQuery()
|
.eq(OaApprovalApplicationPurchase::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
PurchaseDetailVO res = new PurchaseDetailVO();
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PURCHASE.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setCreateTime(approvalApplications.getCreateTime());
|
res.setTotalAmount(approvalApplicationPurchase.getTotalAmount());
|
res.setTitle(approvalApplicationPurchase.getTitle());
|
AssetType assetType = assetTypeService.getById(approvalApplicationPurchase.getAssetTypeId());
|
if (assetType!=null){
|
res.setAssetTypeName(assetType.getTypeName());
|
}
|
return R.ok(res);
|
}
|
@ApiOperation(value = "物品领用-领用资产列表")
|
@PostMapping(value = "/detailGrabList")
|
public R<PageInfo<GrabListVO>> detailGrabList(@RequestBody ApprovalDetailQuery query) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
query.setId(approvalApplications.getId());
|
PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
|
return R.ok(items);
|
}
|
@ApiOperation(value = "物品领用审批详情")
|
@GetMapping(value = "/detailGrab")
|
public R<GrabDetailVO> detailGrab(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery()
|
.eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
GrabDetailVO res = new GrabDetailVO();
|
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.GRAB.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setOperateTime(approvalApplicationAsset.getOperateTime());
|
res.setTitle(approvalApplicationAsset.getTitle());
|
AssetType assetType = assetTypeService.getById(approvalApplicationAsset.getAssetTypeId());
|
if (assetType!=null){
|
res.setAssetTypeName(assetType.getTypeName());
|
}
|
return R.ok(res);
|
}
|
@ApiOperation(value = "资产入库-入库资产列表")
|
@PostMapping(value = "/detailInStockList")
|
public R<PageInfo<StorageListVO>> detailInStockList(@RequestBody ApprovalDetailQuery query) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
query.setId(approvalApplications.getId());
|
PageInfo<StorageListVO> items = approvalApplicationStorageService.pageList(query);
|
return R.ok(items);
|
}
|
@ApiOperation(value = "资产入库审批详情")
|
@GetMapping(value = "/detailInStock")
|
public R<StorageDetailVO> detailInStock(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationStorage approvalApplicationStorage = approvalApplicationStorageService.lambdaQuery()
|
.eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
StorageDetailVO res = new StorageDetailVO();
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.IN_STOCK.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setTitle(approvalApplicationStorage.getTitle());
|
res.setStorageType(approvalApplicationStorage.getStorageType());
|
res.setStorageTime(approvalApplicationStorage.getStorageTime());
|
res.setRemarks(approvalApplicationStorage.getTitle());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "物品借用-借用资产列表")
|
@PostMapping(value = "/detailBurrowList")
|
public R<PageInfo<GrabListVO>> detailBurrowList(@RequestBody ApprovalDetailQuery query) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
query.setId(approvalApplications.getId());
|
PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
|
return R.ok(items);
|
}
|
@ApiOperation(value = "物品借用审批详情")
|
@GetMapping(value = "/detailBurrow")
|
public R<BorrowDetailVO> detailBurrow(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery()
|
.eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
BorrowDetailVO res = new BorrowDetailVO();
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BURROW.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setOperateTime(approvalApplicationAsset.getOperateTime());
|
res.setExpectReturnDate(approvalApplicationAsset.getExpectReturnDate());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "物品借用归还-归还资产列表")
|
@PostMapping(value = "/detailBackList")
|
public R<PageInfo<GrabListVO>> detailBackList(@RequestBody ApprovalDetailQuery query) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
query.setId(approvalApplications.getId());
|
PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
|
return R.ok(items);
|
}
|
@ApiOperation(value = "物品借用归还审批详情")
|
@GetMapping(value = "/detailBack")
|
public R<BackDetailVO> detailBack(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplicationsBack = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationAsset approvalApplicationAssetBack = approvalApplicationAssetService.lambdaQuery()
|
.eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplicationsBack.getId())
|
.last("limit 1").one();
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalApplicationAssetBack.getBorrowApplicationId());
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplicationsBack.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
BackDetailVO res = new BackDetailVO();
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.RETURN.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplicationsBack.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplicationsBack.getId());
|
res.setApplicationReason(approvalApplicationsBack.getApplicationReason());
|
res.setAttachmentUrl(approvalApplicationsBack.getAttachmentUrl());
|
res.setOperateTime(approvalApplicationAssetBack.getOperateTime());
|
res.setExpectReturnDate(approvalApplicationAssetBack.getExpectReturnDate());
|
res.setTitle(approvalApplicationAssetBack.getTitle());
|
res.setApplicationCode(approvalApplications.getApplicationCode());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "资产处置-处置资产列表")
|
@PostMapping(value = "/detailDisposeList")
|
public R<PageInfo<GrabListVO>> detailDisposeList(@RequestBody ApprovalDetailQuery query) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
query.setId(approvalApplications.getId());
|
PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
|
return R.ok(items);
|
}
|
@ApiOperation(value = "资产处置审批详情")
|
@GetMapping(value = "/detailDispose")
|
public R<DisposeDetailVO> detailDispose(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationDispose approvalApplicationDispose = approvalApplicationDisposeService.lambdaQuery()
|
.eq(OaApprovalApplicationDispose::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
DisposeDetailVO res = new DisposeDetailVO();
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_DISPOSE.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
|
res.setDisposeTime(approvalApplicationDispose.getDisposeTime());
|
res.setTitle(approvalApplicationDispose.getTitle());
|
AssetType assetType = assetTypeService.getById(approvalApplicationDispose.getAssetTypeId());
|
if (assetType!=null){
|
res.setAssetTypeName(assetType.getTypeName());
|
}
|
res.setDisposeType(approvalApplicationDispose.getDisposeType());
|
res.setDisposeTotalAmount(approvalApplicationDispose.getDisposeTotalAmount());
|
return R.ok(res);
|
}
|
|
@ApiOperation(value = "资产变更-变更资产列表")
|
@PostMapping(value = "/detailChangeList")
|
public R<PageInfo<GrabListVO>> detailChangeList(@RequestBody ApprovalDetailQuery query) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
query.setId(approvalApplications.getId());
|
PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
|
return R.ok(items);
|
}
|
@ApiOperation(value = "资产变更审批详情")
|
@GetMapping(value = "/detailChange")
|
public R<ChangeDetailVO> detailChange(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationChange approvalApplicationChange = approvalApplicationChangeService.lambdaQuery()
|
.eq(OaApprovalApplicationChange::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
ChangeDetailVO res = new ChangeDetailVO();
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_CHANGE.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
AssetType assetType = assetTypeService.getById(approvalApplicationChange.getAssetTypeId());
|
if (assetType!=null){
|
res.setAssetTypeName(assetType.getTypeName());
|
}
|
res.setChangeTime(approvalApplicationChange.getChangeTime());
|
res.setTitle(approvalApplicationChange.getTitle());
|
TDept dept = deptService.getById(approvalApplicationChange.getOwnershipDeptId());
|
if (dept!=null){
|
res.setOwnershipDeptName(dept.getDeptName());
|
}
|
// todo 三阶段完善 仓库名称
|
res.setWarehouseName("三阶段完善");
|
res.setAddress(approvalApplicationChange.getAddress());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "报销申请审批详情")
|
@GetMapping(value = "/detailReimbursement")
|
public R<ReimbursementDetailVO> detailReimbursement(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationReimbursement approvalApplicationReimbursement = approvalApplicationReimbursementService.lambdaQuery()
|
.eq(OaApprovalApplicationReimbursement::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalApplicationReimbursementItem> oaApprovalApplicationReimbursementItems = approvalApplicationReimbursementItemService.lambdaQuery()
|
.eq(OaApprovalApplicationReimbursementItem::getApprovalApplicationId, approvalApplications.getId())
|
.list();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
ReimbursementDetailVO res = new ReimbursementDetailVO();
|
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.REIMBURSEMENT.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
|
res.setType(approvalApplicationReimbursement.getType());
|
res.setApprovalApplicationReimbursementItems(oaApprovalApplicationReimbursementItems);
|
return R.ok(res);
|
}
|
@ApiOperation(value = "款项申请审批详情")
|
@GetMapping(value = "/detailMoney")
|
public R<MoneyDetailVO> detailMoney(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery()
|
.eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
MoneyDetailVO res = new MoneyDetailVO();
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.MONEY.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setProjectName(approvalApplicationMoney.getProjectName());
|
res.setApplyAmount(approvalApplicationMoney.getApplyAmount());
|
res.setDescription(approvalApplicationMoney.getDescription());
|
res.setPayer(approvalApplicationMoney.getPayer());
|
res.setPayee(approvalApplicationMoney.getPayee());
|
res.setPayeeContact(approvalApplicationMoney.getPayeeContact());
|
res.setPayeeAccount(approvalApplicationMoney.getPayeeAccount());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "内部联系单审批详情")
|
@GetMapping(value = "/detailContact")
|
public R<ContactDetailVO> detailContact(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery()
|
.eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
ContactDetailVO res = new ContactDetailVO();
|
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTACT.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setDescription(approvalApplicationMoney.getDescription());
|
return R.ok(res);
|
}
|
@ApiOperation(value = "广告制作审批详情")
|
@GetMapping(value = "/detailAdvertisement")
|
public R<AdvertisementDetailVO> detailAdvertisement(@ApiParam("待办事项id")Integer id) {
|
OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
|
OaApprovalApplicationAdvertisement applicationAdvertisement = approvalApplicationAdvertisementService.lambdaQuery()
|
.eq(OaApprovalApplicationAdvertisement::getApprovalApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
|
List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
|
.orderByAsc(OaApprovalFlowAudit::getSortOrder)
|
.list();
|
AdvertisementDetailVO res = new AdvertisementDetailVO();
|
|
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
|
.eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ADVERTISEMENT.getCode())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder)
|
.eq(OaApprovalFlowNode::getStatus, 1).list();
|
SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
|
if (sysUser!=null){
|
res.setUserName(sysUser.getUserName());
|
TDept dept = deptService.getById(sysUser.getDeptId());
|
if (dept!=null){
|
res.setDeptName(dept.getDeptName());
|
}
|
}
|
List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
|
res.setApprovalFlowNodeListVOS(flowNodeList);
|
res.setApprovalApplicationId(approvalApplications.getId());
|
res.setApplicationReason(approvalApplications.getApplicationReason());
|
res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
|
res.setTitle(applicationAdvertisement.getTitle());
|
res.setCreateTime(approvalApplications.getCreateTime());
|
res.setContent(applicationAdvertisement.getContent());
|
res.setNumber(applicationAdvertisement.getNumber());
|
res.setTotalAmount(applicationAdvertisement.getTotalAmount());
|
res.setSpec(applicationAdvertisement.getSpec());
|
return R.ok(res);
|
}
|
private List<ApprovalFlowNodeListVO> getFlowNodeList(SysUser sysUser, List<OaApprovalFlowAudit> approvalFlowAudits
|
,List<OaApprovalFlowNode> approvalFlowNodes) {
|
List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS = new ArrayList<>();
|
Map<Integer, OaApprovalFlowAudit> approvalFlowAuditMap = approvalFlowAudits.stream().collect(Collectors.toMap(OaApprovalFlowAudit::getFlowNodeId, e -> e));
|
|
ApprovalFlowNodeListVO approvalFlowNodeListVO = new ApprovalFlowNodeListVO();
|
approvalFlowNodeListVO.setFlowName("发起");
|
if (sysUser!=null){
|
approvalFlowNodeListVO.setUserName(sysUser.getUserName());
|
}
|
approvalFlowNodeListVOS.add(approvalFlowNodeListVO);
|
for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) {
|
ApprovalFlowNodeListVO approvalFlowNodeVO = new ApprovalFlowNodeListVO();
|
|
OaApprovalFlowAudit approvalFlowAudit = approvalFlowAuditMap.get(approvalFlowNode.getId());
|
if (approvalFlowAudit!=null){
|
approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName());
|
approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName());
|
approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl());
|
approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus());
|
}else{
|
approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName());
|
}
|
approvalFlowNodeListVOS.add(approvalFlowNodeVO);
|
}
|
return approvalFlowNodeListVOS;
|
}
|
|
|
|
@Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT)
|
@ApiOperation(value = "通用审批接口")
|
@PostMapping(value = "/audit")
|
public R addLeave(@RequestBody AuditDTO dto) {
|
|
OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId());
|
Integer currentFlowNodeId = approvalApplications.getCurrentFlowNodeId();
|
Long userId = tokenService.getLoginUser().getUserId();
|
SysUser sysUser = sysUserService.selectUserById(userId);
|
|
OaApprovalTodo approvalTodo = approvalTodoService.lambdaQuery().eq(OaApprovalTodo::getUserId, userId)
|
.eq(OaApprovalTodo::getFlowNodeId, currentFlowNodeId)
|
.eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
|
.last("limit 1").one();
|
approvalTodo.setStatus(1);
|
approvalTodo.setHandleTime(LocalDateTime.now());
|
approvalTodoService.updateById(approvalTodo);
|
|
OaApproval approval = approvalService.getById(approvalApplications.getApprovalId());
|
if (dto.getApprovalStatus()==0){
|
// 中断审批流程
|
approvalApplications.setApprovalStatus(3);
|
approvalApplicationsService.updateById(approvalApplications);
|
// 删除除当前审批人该申请单的未处理的所有待办
|
approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
|
.eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
|
.eq(OaApprovalTodo::getStatus,0));
|
}
|
OaApprovalFlowNode oaApprovalFlowNode = approvalFlowNodeService.getById(currentFlowNodeId);
|
OaApprovalFlowAudit approvalFlowAudit = new OaApprovalFlowAudit();
|
approvalFlowAudit.setApprovalApplicationId(approvalApplications.getId());
|
approvalFlowAudit.setFlowNodeId(approvalApplications.getCurrentFlowNodeId());
|
approvalFlowAudit.setFlowName(oaApprovalFlowNode.getFlowName());
|
approvalFlowAudit.setSortOrder(oaApprovalFlowNode.getSortOrder());
|
approvalFlowAudit.setUserId(userId.intValue());
|
approvalFlowAudit.setUserName(sysUser.getUserName());
|
approvalFlowAudit.setApprovalStatus(dto.getApprovalStatus() != 0);
|
approvalFlowAudit.setApprovalTime(LocalDateTime.now());
|
approvalFlowAudit.setReason(dto.getReason());
|
approvalFlowAuditService.save(approvalFlowAudit);
|
List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId())
|
.orderByAsc(OaApprovalFlowNode::getSortOrder).list();
|
if (dto.getApprovalStatus()==1){
|
// 判断当前是否处于最后一个节点
|
if(approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size()-1).getId())){
|
// 审批通过 审批流程结束
|
approvalApplications.setApprovalStatus(2);
|
approvalApplicationsService.updateById(approvalApplications);
|
if (approval.getApprovalCategory()==10||approval.getApprovalCategory()==7
|
||approval.getApprovalCategory()==8||approval.getApprovalCategory()==9){
|
List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery()
|
.eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list();
|
List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList());
|
List<AssetMain> assetMains = assetMainService.lambdaQuery().in(AssetMain::getId, AssetMainIds).list();
|
switch (approval.getApprovalCategory()){
|
case 10:
|
assetMains.forEach(assetMain -> {
|
assetMain.setDisposed(1);
|
});
|
break;
|
case 7:
|
assetMains.forEach(assetMain -> {
|
assetMain.setInUse(1);
|
});
|
break;
|
default:
|
assetMains.forEach(assetMain -> {
|
assetMain.setBorrowed(1);
|
});
|
break;
|
}
|
assetMainService.updateBatchById(assetMains);
|
}
|
}else{
|
// 生成下一个节点的待办事项
|
for (int i = 0; i < approvalFlowNodes.size(); i++) {
|
if(approvalApplications.getCurrentFlowNodeId()
|
.equals(approvalFlowNodes.get(i).getId())){
|
approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i+1).getId());
|
OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodeService.getById(approvalFlowNodes.get(i + 1).getId());
|
approvalTodoService.createApprovalTodos(approvalApplications.getId(),
|
approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId());
|
}
|
}
|
}
|
|
}
|
|
return R.ok();
|
}
|
}
|