SubscribeFlowByWdly.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.fjhx.purchase.flow;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.dynamic.datasource.annotation.DS;
  4. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  5. import com.fjhx.common.constant.SourceConstant;
  6. import com.fjhx.common.enums.CodingRuleEnum;
  7. import com.fjhx.common.service.coding.CodingRuleService;
  8. import com.fjhx.flow.core.FlowDelegate;
  9. import com.fjhx.flow.core.FlowThreadLocalUtil;
  10. import com.fjhx.purchase.entity.subscribe.enums.SubscribeStatusEnum;
  11. import com.fjhx.purchase.entity.subscribe.po.Subscribe;
  12. import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
  13. import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
  14. import com.fjhx.purchase.service.subscribe.SubscribeService;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Component;
  17. import java.util.List;
  18. /**
  19. * @Author:yzc
  20. * @DATE:2023/4/20 19:16
  21. */
  22. @DS(SourceConstant.PURCHASE)
  23. @Component
  24. public class SubscribeFlowByWdly extends FlowDelegate {
  25. @Autowired
  26. private CodingRuleService codingRuleService;
  27. @Autowired
  28. private SubscribeFlow subscribeFlow;
  29. @Autowired
  30. private SubscribeService subscribeService;
  31. @Autowired
  32. private SubscribeDetailService subscribeDetailService;
  33. @Override
  34. public String getFlowKey() {
  35. return "wdly_apply_purchase";
  36. }
  37. /**
  38. * 发起流程
  39. *
  40. * @param flowId 流程ID
  41. * @param submitData 申购数据
  42. * @return
  43. */
  44. @Override
  45. public Long start(Long flowId, JSONObject submitData) {
  46. Subscribe subscribe = submitData.toJavaObject(Subscribe.class);
  47. // subscribe.setCode(CodeEnum.SUBSCRIBE.getCode());
  48. subscribe.setCode(codingRuleService.createCode(CodingRuleEnum.SUBSCRIBE.getKey(), null));
  49. subscribe.setProcessInstanceId("wdly_apply_purchase");
  50. subscribe.setFlowId(flowId);
  51. subscribe.setSubcribeStatus(SubscribeStatusEnum.UNDER_REVIEW.getKey());
  52. subscribeService.save(subscribe);
  53. List<SubscribeDetail> SubscribeDetails = subscribe.getSubscribeDetailList();
  54. if (CollectionUtils.isNotEmpty(SubscribeDetails)) {
  55. for (SubscribeDetail s : SubscribeDetails) {
  56. s.setSubscribeId(subscribe.getId());
  57. }
  58. subscribeDetailService.saveBatch(SubscribeDetails);
  59. }
  60. return subscribe.getId();
  61. }
  62. /**
  63. * 结束流程
  64. *
  65. * @param flowId 流程ID
  66. * @param businessId 业务ID
  67. * @param submitData 数据
  68. */
  69. @Override
  70. public void end(Long flowId, Long businessId, JSONObject submitData) {
  71. subscribeFlow.end(flowId, businessId, submitData);
  72. }
  73. /**
  74. * 重新发起编辑方法
  75. */
  76. public void reStart() {
  77. //获取提交的数据
  78. JSONObject submitData = FlowThreadLocalUtil.getCurrentData();
  79. //编辑申购信息
  80. Subscribe subscribe = submitData.toJavaObject(Subscribe.class);
  81. subscribe.setSubcribeStatus(SubscribeStatusEnum.UNDER_REVIEW.getKey());
  82. subscribeService.updateById(subscribe);
  83. //编辑申购明细
  84. List<SubscribeDetail> subscribeDetails = subscribe.getSubscribeDetailList();
  85. if (CollectionUtils.isNotEmpty(subscribeDetails)) {
  86. //更新明细列表信息
  87. subscribeDetails.forEach(item -> item.setSubscribeId(subscribe.getId()));
  88. subscribeDetailService.editLinked(subscribeDetails, SubscribeDetail::getSubscribeId, subscribe.getId());
  89. }
  90. }
  91. }