ClaimDelFlow.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package com.fjhx.sale.flow;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.dynamic.datasource.annotation.DSTransactional;
  4. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.fjhx.account.entity.account.po.AccountRunningWater;
  7. import com.fjhx.account.service.account.AccountRunningWaterService;
  8. import com.fjhx.flow.core.FlowDelegate;
  9. import com.fjhx.flow.enums.FlowStatusEnum;
  10. import com.fjhx.sale.entity.claim.po.Claim;
  11. import com.fjhx.sale.entity.claim.po.ClaimContract;
  12. import com.fjhx.sale.service.claim.ClaimContractService;
  13. import com.fjhx.sale.service.claim.ClaimService;
  14. import com.ruoyi.common.exception.ServiceException;
  15. import com.ruoyi.common.utils.SecurityUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Component;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.math.BigDecimal;
  20. import java.util.List;
  21. import java.util.stream.Collectors;
  22. /**
  23. * 外销合同流程
  24. *
  25. * @Author:caozj
  26. * @DATE:2023/4/3 17:38
  27. */
  28. @Component
  29. //@DS(SourceConstant.SALE)
  30. public class ClaimDelFlow extends FlowDelegate {
  31. @Autowired
  32. private ClaimService claimService;
  33. @Autowired
  34. private AccountRunningWaterService accountRunningWaterService;
  35. @Autowired
  36. private ClaimContractService claimContractService;
  37. @Override
  38. public String getFlowKey() {
  39. return "claim_del_flow";
  40. }
  41. /**
  42. * 发起流程
  43. *
  44. * @param flowId 流程ID
  45. * @param submitData
  46. * @return 业务id
  47. */
  48. @Override
  49. public Long start(Long flowId, JSONObject submitData) {
  50. AccountRunningWater water = submitData.toJavaObject(AccountRunningWater.class);
  51. return water.getId();
  52. }
  53. /**
  54. * 结束流程
  55. *
  56. * @param flowId 流程ID
  57. * @param businessId 业务ID
  58. * @param submitData 数据
  59. */
  60. @Override
  61. @DSTransactional
  62. public void end(Long flowId, Long businessId, JSONObject submitData) {
  63. //通过流水ID查找出到账认领的数据
  64. List<Claim> claimList = claimService.list(Wrappers.<Claim>query().lambda().eq(Claim::getBusinessId, businessId));
  65. if (CollectionUtils.isEmpty(claimList)) {
  66. throw new ServiceException("当前流水暂无认领合同,不能取消认领");
  67. }
  68. List<Long> claimIds = claimList.stream().map(Claim::getId).collect(Collectors.toList());
  69. claimService.removeBatchByIds(claimIds);
  70. claimContractService.remove(Wrappers.<ClaimContract>query().lambda().in(ClaimContract::getClaimId, claimIds));
  71. //更新流水数据为认领状态---已认领金额还原
  72. AccountRunningWater water = new AccountRunningWater();
  73. water.setCompanyId(SecurityUtils.getCompanyId());
  74. water.setId(businessId);
  75. water.setIsClaim(0);//未认领状态
  76. water.setClaimAmount(BigDecimal.ZERO);
  77. accountRunningWaterService.updateById(water);
  78. }
  79. /**
  80. * 重新发起
  81. * @param flowId
  82. * @param businessId
  83. * @param flowStatus
  84. * @param submitData
  85. */
  86. @Override
  87. @Transactional(rollbackFor = Exception.class)
  88. public void relaunch(Long flowId, Long businessId, FlowStatusEnum flowStatus, JSONObject submitData) {
  89. }
  90. /**
  91. * 驳回
  92. * @param flowId
  93. * @param businessId
  94. * @param flowStatus
  95. */
  96. @Override
  97. public void reject(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
  98. }
  99. /**
  100. * 退回发起人
  101. * @param flowId
  102. * @param businessId
  103. * @param flowStatus
  104. */
  105. @Override
  106. public void cancellation(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
  107. }
  108. }