ProdBeginConfirmFlow.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.fjhx.mes.flow;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fjhx.common.enums.FlowStatusEnum1;
  4. import com.fjhx.common.utils.Assert;
  5. import com.fjhx.flow.core.FlowDelegate;
  6. import com.fjhx.flow.enums.FlowStatusEnum;
  7. import com.fjhx.flow.enums.NodeTypeEnum;
  8. import com.fjhx.mes.entity.production.dto.ProductionBeginConfirmDto;
  9. import com.fjhx.mes.entity.production.po.ProductionBeginConfirm;
  10. import com.fjhx.mes.entity.production.po.ProductionOrder;
  11. import com.fjhx.mes.service.production.ProduceOrderService;
  12. import com.fjhx.mes.service.production.ProductionBeginConfirmService;
  13. import org.springframework.stereotype.Component;
  14. import javax.annotation.Resource;
  15. @Component
  16. public class ProdBeginConfirmFlow extends FlowDelegate {
  17. @Resource
  18. private ProduceOrderService produceOrderService;
  19. @Resource
  20. private ProductionBeginConfirmService productionBeginConfirmService;
  21. @Override
  22. public String getFlowKey() {
  23. return "prod_begin_confirm_flow";
  24. }
  25. @Override
  26. public Long start(Long flowId, JSONObject submitData) {
  27. ProductionBeginConfirmDto dto = submitData.toJavaObject(ProductionBeginConfirmDto.class);
  28. Assert.notEmpty(dto.getProdOrderId(), "生产订单Id不能为空!");
  29. ProductionOrder orderById = produceOrderService.getById(dto.getProdOrderId());
  30. Assert.notEmpty(orderById, "查询不到生产信息!");
  31. dto.setFlowId(flowId);
  32. dto.setStatus(FlowStatusEnum1.UNDER_REVIEW.getKey());
  33. //回填单号
  34. submitData.put("orderCode", orderById.getCode());
  35. productionBeginConfirmService.save(dto);
  36. return dto.getId();
  37. }
  38. @Override
  39. public void defaultMethod(Long flowId, Long businessId, NodeTypeEnum handleNodeType, FlowStatusEnum flowStatus, JSONObject submitData) {
  40. ProductionBeginConfirmDto dto = submitData.toJavaObject(ProductionBeginConfirmDto.class);
  41. productionBeginConfirmService.updateById(dto);
  42. super.defaultMethod(flowId, businessId, handleNodeType, flowStatus, submitData);
  43. }
  44. @Override
  45. public void end(Long flowId, Long businessId, JSONObject submitData) {
  46. ProductionBeginConfirm pbcById = productionBeginConfirmService.getById(businessId);
  47. productionBeginConfirmService.update(q -> q
  48. .eq(ProductionBeginConfirm::getId, businessId)
  49. .set(ProductionBeginConfirm::getStatus, FlowStatusEnum1.PASS.getKey())
  50. );
  51. produceOrderService.update(q -> q
  52. .eq(ProductionOrder::getId, pbcById.getProdOrderId())
  53. .set(ProductionOrder::getIsAgreeWork, pbcById.getIsAgreeWork())
  54. .set(ProductionOrder::getProdBeginConfirmId, businessId)
  55. );
  56. }
  57. }