| | |
| | | import com.ruoyi.framework.web.service.TokenService; |
| | | import com.ruoyi.system.dto.AuditDTO; |
| | | import com.ruoyi.system.emums.ApprovalTypeEnum; |
| | | import com.ruoyi.system.model.AssetMain; |
| | | import com.ruoyi.system.model.AssetType; |
| | | import com.ruoyi.system.model.OaApproval; |
| | | import com.ruoyi.system.model.OaApprovalApplicationAdvertisement; |
| | | import com.ruoyi.system.model.OaApprovalApplicationAsset; |
| | | import com.ruoyi.system.model.OaApprovalApplicationAssetItem; |
| | | import com.ruoyi.system.model.OaApprovalApplicationAttendance; |
| | | import com.ruoyi.system.model.OaApprovalApplicationChange; |
| | | import com.ruoyi.system.model.OaApprovalApplicationContract; |
| | | import com.ruoyi.system.model.OaApprovalApplicationDispose; |
| | | import com.ruoyi.system.model.OaApprovalApplicationMoney; |
| | | import com.ruoyi.system.model.OaApprovalApplicationPayment; |
| | | import com.ruoyi.system.model.OaApprovalApplicationPurchase; |
| | | import com.ruoyi.system.model.OaApprovalApplicationReimbursement; |
| | | import com.ruoyi.system.model.OaApprovalApplicationReimbursementItem; |
| | | import com.ruoyi.system.model.OaApprovalApplicationStorage; |
| | | import com.ruoyi.system.model.OaApprovalApplications; |
| | | import com.ruoyi.system.model.OaApprovalFlowAudit; |
| | | import com.ruoyi.system.model.OaApprovalFlowNode; |
| | | import com.ruoyi.system.model.OaApprovalTodo; |
| | | import com.ruoyi.system.query.ApprovalDetailQuery; |
| | | import com.ruoyi.system.model.*; |
| | | import com.ruoyi.system.query.ApprovalTodoListQuery; |
| | | import com.ruoyi.system.service.AssetMainService; |
| | | import com.ruoyi.system.service.AssetTypeService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationAdvertisementService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationAssetItemService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationAssetService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationAttendanceService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationChangeService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationContactService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationContractService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationDisposeService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationMoneyService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationPaymentService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationPurchaseItemService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationPurchaseService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationReimbursementItemService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationReimbursementService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; |
| | | import com.ruoyi.system.service.OaApprovalApplicationStorageService; |
| | | import com.ruoyi.system.service.*; |
| | | |
| | | import com.ruoyi.system.service.OaApprovalApplicationsService; |
| | | import com.ruoyi.system.service.OaApprovalFlowAuditService; |
| | | import com.ruoyi.system.service.OaApprovalFlowNodeService; |
| | |
| | | import com.ruoyi.system.service.OaApprovalService; |
| | | import com.ruoyi.system.service.OaApprovalTodoService; |
| | | import com.ruoyi.system.service.TDeptService; |
| | | import com.ruoyi.system.vo.AdvertisementDetailVO; |
| | | import com.ruoyi.system.vo.ApprovalFlowNodeListVO; |
| | | import com.ruoyi.system.vo.ApprovalTodoVO; |
| | | import com.ruoyi.system.vo.BackDetailVO; |
| | | import com.ruoyi.system.vo.BorrowDetailVO; |
| | | import com.ruoyi.system.vo.BusinessTripDetailVO; |
| | | import com.ruoyi.system.vo.ChangeDetailVO; |
| | | import com.ruoyi.system.vo.ContactDetailVO; |
| | | import com.ruoyi.system.vo.ContractDetailVO; |
| | | import com.ruoyi.system.vo.DisposeDetailVO; |
| | | import com.ruoyi.system.vo.GrabDetailVO; |
| | | import com.ruoyi.system.vo.GrabListVO; |
| | | import com.ruoyi.system.vo.LeaveDestroyDetailVO; |
| | | import com.ruoyi.system.vo.LeaveDetailVO; |
| | | import com.ruoyi.system.vo.MoneyDetailVO; |
| | | import com.ruoyi.system.vo.OutDetailVO; |
| | | import com.ruoyi.system.vo.PaymentDetailVO; |
| | | import com.ruoyi.system.vo.PurchaseDetailVO; |
| | | import com.ruoyi.system.vo.PurchaseListVO; |
| | | import com.ruoyi.system.vo.ReimbursementDetailVO; |
| | | import com.ruoyi.system.vo.StorageDetailVO; |
| | | import com.ruoyi.system.vo.StorageListVO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | |
| | | @Resource |
| | | private OaApprovalApplicationsService approvalApplicationsService; |
| | | @Resource |
| | | private OaApprovalApplicationAdvertisementService approvalApplicationAdvertisementService; |
| | | private OaApprovalApplicationAdService approvalApplicationAdvertisementService; |
| | | @Resource |
| | | private OaApprovalApplicationContactService approvalApplicationContactService; |
| | | @Resource |
| | |
| | | private OaApprovalApplicationMoneyService approvalApplicationMoneyService; |
| | | @Resource |
| | | private AssetMainService assetMainService; |
| | | @Resource |
| | | |
| | | private AssetInventoryRecordService assetInventoryRecordService; |
| | | @Resource |
| | | private OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; |
| | | @Resource |
| | |
| | | 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, OaApprovalApplicationAd> approvalApplicationAdMap = approvalApplicationAdvertisementService.lambdaQuery() |
| | | .in(OaApprovalApplicationAd::getApprovalApplicationId, applicationIds).list() |
| | | .stream().collect(Collectors.toMap(OaApprovalApplicationAd::getApprovalApplicationId, e -> e)); |
| | | Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery() |
| | | .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list() |
| | | .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e)); |
| | |
| | | List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); |
| | | for (OaApprovalApplications approvalApplication : approvalApplications) { |
| | | ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); |
| | | approvalTodoVO.setReason(approvalApplication.getReason()); |
| | | approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus()); |
| | | approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason()); |
| | | approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); |
| | |
| | | } |
| | | break; |
| | | case 17: |
| | | OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAdvertisement!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle()); |
| | | approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); |
| | | OaApprovalApplicationAd oaApprovalApplicationAd = approvalApplicationAdMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAd !=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAd.getTitle()); |
| | | approvalTodoVO.setContent(oaApprovalApplicationAd.getContent()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationAd.getTotalAmount()); |
| | | } |
| | | break; |
| | | } |
| | |
| | | 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, OaApprovalApplicationAd> approvalApplicationAdMap = approvalApplicationAdvertisementService.lambdaQuery() |
| | | .in(OaApprovalApplicationAd::getApprovalApplicationId, applicationIds).list() |
| | | .stream().collect(Collectors.toMap(OaApprovalApplicationAd::getApprovalApplicationId, e -> e)); |
| | | Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery() |
| | | .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list() |
| | | .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e)); |
| | |
| | | List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); |
| | | for (OaApprovalApplications approvalApplication : approvalApplications) { |
| | | ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); |
| | | approvalTodoVO.setReason(approvalApplication.getReason()); |
| | | approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus()); |
| | | approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason()); |
| | | approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); |
| | |
| | | } |
| | | break; |
| | | case 17: |
| | | OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAdvertisement!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle()); |
| | | approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); |
| | | OaApprovalApplicationAd oaApprovalApplicationAd = approvalApplicationAdMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAd !=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAd.getTitle()); |
| | | approvalTodoVO.setContent(oaApprovalApplicationAd.getContent()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationAd.getTotalAmount()); |
| | | } |
| | | break; |
| | | } |
| | |
| | | if (dto.getApprovalStatus() == 0) { |
| | | // 中断审批流程 |
| | | approvalApplications.setApprovalStatus(3); |
| | | approvalApplications.setReason(dto.getReason()); |
| | | approvalApplicationsService.updateById(approvalApplications); |
| | | // 删除除当前审批人该申请单的未处理的所有待办 |
| | | approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>() |
| | |
| | | borrowApplications.setReturnStatus(0); |
| | | } |
| | | approvalApplicationAssetService.updateById(borrowApplications); |
| | | saveAssetRecord(0,ApprovalTypeEnum.RETURN.getDesc(),back.stream().map(OaApprovalApplicationAssetItem::getAssetMainId) |
| | | .collect(Collectors.toList())); |
| | | |
| | | case 10: |
| | | assetMains.forEach(assetMain -> { |
| | | assetMain.setDisposed(1); |
| | | }); |
| | | saveAssetRecord(null,ApprovalTypeEnum.ASSET_DISPOSE.getDesc(),assetMains |
| | | .stream().map(AssetMain::getId).collect(Collectors.toList())); |
| | | break; |
| | | case 7: |
| | | assetMains.forEach(assetMain -> { |
| | | assetMain.setInUse(1); |
| | | }); |
| | | saveAssetRecord(1,ApprovalTypeEnum.GRAB.getDesc(),assetMains |
| | | .stream().map(AssetMain::getId).collect(Collectors.toList())); |
| | | break; |
| | | default: |
| | | assetMains.forEach(assetMain -> { |
| | | assetMain.setBorrowed(1); |
| | | }); |
| | | saveAssetRecord(1,ApprovalTypeEnum.BORROW.getDesc(),assetMains |
| | | .stream().map(AssetMain::getId).collect(Collectors.toList())); |
| | | break; |
| | | } |
| | | assetMainService.updateBatchById(assetMains); |
| | |
| | | if (approval.getApprovalCategory().equals(ApprovalTypeEnum.IN_STOCK.getCode())) { |
| | | assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId()); |
| | | } |
| | | // 资产变更 |
| | | if (approval.getApprovalCategory().equals(ApprovalTypeEnum.ASSET_CHANGE.getCode())) { |
| | | List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery() |
| | | .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list(); |
| | | List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList()); |
| | | saveAssetRecord(1,ApprovalTypeEnum.ASSET_CHANGE.getDesc(),AssetMainIds); |
| | | } |
| | | |
| | | } else { |
| | | log.info("不为最后一个审批节点"); |
| | | // 生成下一个节点的待办事项 |
| | |
| | | } |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | private void saveAssetRecord(Integer type, String approvalType,List<Integer> assetMainIds) { |
| | | List<AssetInventoryRecord> res = new ArrayList<>(); |
| | | Map<Integer, Integer> warehouseMap = assetMainService.lambdaQuery().isNotNull(AssetMain::getWarehouseId).list().stream().collect(Collectors.toMap(AssetMain::getId, AssetMain::getWarehouseId)); |
| | | for (Integer assetMainId : assetMainIds) { |
| | | AssetInventoryRecord assetInventoryRecord = new AssetInventoryRecord(); |
| | | assetInventoryRecord.setAssetMainId(assetMainId); |
| | | assetInventoryRecord.setWarehouseId(warehouseMap.get(assetMainId)); |
| | | assetInventoryRecord.setType(type); |
| | | assetInventoryRecord.setRemarks(approvalType); |
| | | res.add(assetInventoryRecord); |
| | | } |
| | | assetInventoryRecordService.saveBatch(res); |
| | | } |
| | | } |