PurchaseFlow.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package com.sd.business.flow;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5. import com.fjhx.flow.core.FlowDelegate;
  6. import com.fjhx.flow.enums.FlowStatusEnum;
  7. import com.sd.business.entity.apply.po.ApplyBuy;
  8. import com.sd.business.entity.apply.po.ApplyBuyBom;
  9. import com.sd.business.entity.purchase.enums.PurchaseEnums;
  10. import com.sd.business.entity.purchase.po.Purchase;
  11. import com.sd.business.entity.purchase.po.PurchaseBom;
  12. import com.sd.business.entity.purchase.vo.PurchaseBomVo;
  13. import com.sd.business.entity.purchase.vo.PurchaseVo;
  14. import com.sd.business.service.apply.ApplyBuyBomService;
  15. import com.sd.business.service.apply.ApplyBuyService;
  16. import com.sd.business.service.purchase.PurchaseBomService;
  17. import com.sd.business.service.purchase.PurchaseService;
  18. import org.springframework.beans.BeanUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. /**
  24. * 发起流程
  25. */
  26. @Service
  27. public class PurchaseFlow extends FlowDelegate {
  28. @Autowired
  29. private PurchaseService purchaseService;
  30. @Autowired
  31. private PurchaseBomService purchaseBomService;
  32. @Autowired
  33. private ApplyBuyService applyBuyService;
  34. @Autowired
  35. private ApplyBuyBomService applyBuyBomService;
  36. @Override
  37. public String getFlowKey() {
  38. return "purchase";
  39. }
  40. /**
  41. * 流程发起
  42. */
  43. @Override
  44. public Long start(Long flowId, JSONObject submitData) {
  45. PurchaseVo purchase = submitData.toJavaObject(PurchaseVo.class);
  46. //判断是否存在采购ID,如果存在说明已经暂存
  47. if (ObjectUtil.isNotEmpty(purchase.getId())){
  48. purchase.setFlowStatus(PurchaseEnums.IN_PROGRESS.getKey());
  49. purchase.setFlowId(flowId);
  50. //修改采购暂存表的数据
  51. purchaseService.updateById(purchase);
  52. //删除采购bom表的数据
  53. purchaseBomService.remove(Wrappers.<PurchaseBom>lambdaQuery().eq(PurchaseBom::getPurchaseId,purchase.getId()));
  54. //获取到采购bom表的数据
  55. List<PurchaseBom> purchaseBomList = purchase.getPurchaseBomList();
  56. //添加采购bom表的数据
  57. purchaseBomList.forEach(purchaseBom -> purchaseBom.setPurchaseId(purchase.getId()));
  58. purchaseBomService.saveBatch(purchaseBomList);
  59. }else {
  60. //修改状态为进行中
  61. purchase.setFlowStatus(PurchaseEnums.IN_PROGRESS.getKey());
  62. purchase.setFlowId(flowId);
  63. purchaseService.save(purchase);
  64. //获取到采购bom表的数据
  65. List<PurchaseBom> purchaseBomList = purchase.getPurchaseBomList();
  66. //添加采购bom表的数据
  67. purchaseBomList.forEach(purchaseBom -> purchaseBom.setPurchaseId(purchase.getId()));
  68. purchaseBomService.saveBatch(purchaseBomList);
  69. }
  70. return purchase.getId();
  71. }
  72. /**
  73. * 流程结束
  74. * @param flowId
  75. * @param businessId
  76. * @param submitData
  77. */
  78. @Override
  79. public void end(Long flowId, Long businessId, JSONObject submitData) {
  80. Purchase purchase = purchaseService.getById(businessId);
  81. purchase.setFlowStatus(PurchaseEnums.PASSED.getKey());
  82. purchase.setFlowId(flowId);
  83. //修改采购暂存表的数据
  84. purchaseService.updateById(purchase);
  85. //修改申购表的状态为已申购
  86. ApplyBuy applyBuy = new ApplyBuy();
  87. applyBuy.setId(purchase.getApplyBuyId());
  88. applyBuy.setFlowStatus(4);
  89. applyBuyService.updateById(applyBuy);
  90. //查询采购合同bom表的信息
  91. List<PurchaseBom> purchaseBoms = purchaseBomService.list(Wrappers.<PurchaseBom>lambdaQuery().eq(PurchaseBom::getPurchaseId, businessId));
  92. List<ApplyBuyBom> applyBuyBomList = new ArrayList<>();
  93. //修改申购bom表的采购数量
  94. for (PurchaseBom purchaseBom : purchaseBoms) {
  95. ApplyBuyBom applyBuyBom = new ApplyBuyBom();
  96. applyBuyBom.setPurchaseQuantity(purchaseBom.getPurchaseQuantity());
  97. applyBuyBom.setId(purchaseBom.getApplyBuyBomId());
  98. applyBuyBomList.add(applyBuyBom);
  99. }
  100. applyBuyBomService.updateBatchById(applyBuyBomList);
  101. }
  102. /**
  103. * 流程驳回
  104. * @param flowId
  105. * @param businessId
  106. * @param flowStatus
  107. */
  108. @Override
  109. public void reject(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
  110. Purchase purchase = purchaseService.getById(businessId);
  111. purchase.setFlowStatus(PurchaseEnums.REJECTED.getKey());
  112. purchase.setFlowId(flowId);
  113. //修改采购暂存表的数据
  114. purchaseService.updateById(purchase);
  115. }
  116. }