AccountRequestFundsFlow.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.fjhx.account.flow;
  2. import cn.hutool.extra.spring.SpringUtil;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.dynamic.datasource.annotation.DS;
  5. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  6. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  7. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  8. import com.fjhx.account.entity.account.dto.AccountRequestFundsDto;
  9. import com.fjhx.account.entity.account.enums.AccountRequestFundsStatusEnum;
  10. import com.fjhx.account.entity.account.po.AccountRequestFunds;
  11. import com.fjhx.account.entity.account.po.AccountRequestFundsDetail;
  12. import com.fjhx.account.service.account.AccountRequestFundsDetailService;
  13. import com.fjhx.account.service.account.AccountRequestFundsService;
  14. import com.fjhx.common.constant.SourceConstant;
  15. import com.fjhx.file.utils.ObsFileUtil;
  16. import com.fjhx.flow.core.FlowDelegate;
  17. import com.obs.services.internal.ServiceException;
  18. import org.springframework.stereotype.Component;
  19. import oshi.util.FileUtil;
  20. import java.util.Date;
  21. import java.util.List;
  22. /**
  23. * 采购流程
  24. * @Author:caozj
  25. * @DATE:2023/4/3 17:38
  26. */
  27. @DS(SourceConstant.ACCOUNT)
  28. @Component
  29. public class AccountRequestFundsFlow extends FlowDelegate {
  30. @Override
  31. public String getFlowKey() {
  32. return "account_request_funds_flow";
  33. }
  34. /**
  35. * 发起流程
  36. * @param flowId 流程ID
  37. * @param submitData 请款表信息
  38. * @return
  39. */
  40. @Override
  41. public Long start(Long flowId, JSONObject submitData) {
  42. AccountRequestFundsService accountRequestFundsService = SpringUtil.getBean(AccountRequestFundsService.class);
  43. AccountRequestFundsDetailService accountRequestFundsDetailService = SpringUtil.getBean(AccountRequestFundsDetailService.class);
  44. AccountRequestFundsDto accountRequestFundsDto = submitData.toJavaObject( AccountRequestFundsDto.class);
  45. accountRequestFundsDto.setStatus(AccountRequestFundsStatusEnum.UNDER_REVIEW.getKey());
  46. accountRequestFundsDto.setProcessInstanceId(flowId);
  47. //添加请款表的信息
  48. accountRequestFundsService.save(accountRequestFundsDto);
  49. //获取请款详情表的详细信息
  50. List<AccountRequestFundsDetail> accountRequestFundsDetailList = accountRequestFundsDto.getAccountRequestFundsDetailList();
  51. if(CollectionUtils.isNotEmpty(accountRequestFundsDetailList)){
  52. accountRequestFundsDetailList.forEach(accountRequestFundsDetail -> accountRequestFundsDetail
  53. .setAccountRequestFundsId(accountRequestFundsDto.getId()));
  54. //添加请款详情表的信息
  55. accountRequestFundsDetailService.saveBatch(accountRequestFundsDetailList);
  56. }
  57. //添加附件信息
  58. ObsFileUtil.saveFile(accountRequestFundsDto.getFileList(),accountRequestFundsDto.getId());
  59. return accountRequestFundsDto.getId();
  60. }
  61. /**
  62. * 结束流程
  63. * @param flowId 流程ID
  64. * @param businessId 业务ID
  65. * @param submitData 请款表信息
  66. */
  67. @Override
  68. public void end(Long flowId, Long businessId, JSONObject submitData) {
  69. AccountRequestFundsService accountRequestFundsService = SpringUtil.getBean(AccountRequestFundsService.class);
  70. //通过业务ID查询申购数据
  71. AccountRequestFunds accountRequestFunds = accountRequestFundsService.getById(businessId);
  72. if(ObjectUtils.isEmpty(accountRequestFunds)){
  73. throw new ServiceException("请款表的数据不存在");
  74. }
  75. //修改申购状态为审批通过
  76. accountRequestFunds.setStatus(AccountRequestFundsStatusEnum.PASS.getKey());
  77. accountRequestFundsService.updateById(accountRequestFunds);
  78. }
  79. }