ClaimDelFlow.java 4.7 KB

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