ApsSchedulingController.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.rongwei.rwapsserver.aps.controller;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.core.util.IdcardUtil;
  4. import com.rongwei.rwapsserver.aps.domain.EquipmentRunTime;
  5. import com.rongwei.rwapsserver.aps.domain.ProduceOrder;
  6. import com.rongwei.rwapsserver.aps.domain.ProductionProcesses;
  7. import com.rongwei.rwapsserver.aps.service.ProductionScheduleService;
  8. import com.rongwei.rwapsserver.aps.util.ApsException;
  9. import com.rongwei.rwapsserver.aps.vo.ProductionScheduleRetVo;
  10. import com.rongwei.rwapsserver.aps.vo.ProductionScheduleVo;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.cloud.commons.util.IdUtils;
  14. import org.springframework.web.bind.annotation.*;
  15. import java.math.BigDecimal;
  16. import java.util.ArrayList;
  17. import java.util.Arrays;
  18. import java.util.List;
  19. import java.util.UUID;
  20. /**
  21. * APS排程接口
  22. */
  23. @RestController
  24. @RequestMapping("apsSchedule")
  25. @Slf4j
  26. public class ApsSchedulingController {
  27. @Autowired
  28. private ProductionScheduleService productionScheduleService;
  29. /**
  30. * 流程任务运行API
  31. * @param productionScheduleVo
  32. * @return
  33. */
  34. @PostMapping("/productionSchedule")
  35. public ProductionScheduleRetVo productionSchedule(@RequestBody ProductionScheduleVo productionScheduleVo) throws Exception{
  36. ProductionScheduleRetVo productionScheduleRetVo = null;
  37. try{
  38. productionScheduleRetVo = productionScheduleService.productionSchedule(productionScheduleVo);
  39. productionScheduleRetVo.setCode("200");
  40. }catch(ApsException ae){
  41. productionScheduleRetVo = new ProductionScheduleRetVo();
  42. productionScheduleRetVo.setCode("500");
  43. productionScheduleRetVo.setMsg(ae.getMessage());
  44. }catch(Exception e){
  45. e.printStackTrace();
  46. log.error("排程平台异常:",e);
  47. productionScheduleRetVo = new ProductionScheduleRetVo();
  48. productionScheduleRetVo.setCode("500");
  49. productionScheduleRetVo.setMsg("排程异常,请联系管理员");
  50. }
  51. return productionScheduleRetVo;
  52. }
  53. /**
  54. * test
  55. * @return
  56. */
  57. @PostMapping("/test")
  58. public ProductionScheduleRetVo test(@RequestBody ProductionScheduleVo productionScheduleVo) throws Exception{
  59. productionScheduleVo.setProcesses(processesInit());
  60. ProductionScheduleRetVo productionScheduleRetVo = productionScheduleService.productionSchedule(productionScheduleVo);
  61. return productionScheduleRetVo;
  62. }
  63. private List<ProductionProcesses> processesInit(){
  64. List<ProductionProcesses> processes = new ArrayList<>();
  65. for(int i=0;i<5;i++){
  66. String id1 = (i*2+1)+"";
  67. String id2 = (i*2+2)+"";
  68. ProductionProcesses processes1 = new ProductionProcesses();
  69. processes1.setId(id1);
  70. processes1.setCutfinishmin(70);
  71. processes1.setIfLock(false);
  72. processes1.setSeriesProduceMark("1100^_^1100H14冷轧卷普料 厚6.8*宽1025mm 6吨^_^1025.00");
  73. processes1.setProduceTime(720);
  74. processes1.setPrepressworkmin(55);
  75. processes1.setNextProcessesIds(Arrays.asList(new String[]{id2}));
  76. ProduceOrder produceOrder1 = new ProduceOrder("34f200bcbac748fb8f817eea88fb9a5d","订单1", DateUtil.parseDateTime("2024-06-22 08:00:00"));
  77. processes1.setProduceOrder(Arrays.asList(new ProduceOrder[]{produceOrder1}));
  78. processes1.setMinWaitTime(600);
  79. processes1.setVolumeMetal("1100");
  80. processes1.setOptionalEquipments(Arrays.asList(new String[]{"0001be252874536843730b100018","0001be252874536843730b100017","0001be252874536843730b100016"}));
  81. processes1.setUnitProduceTime(360);
  82. processes1.setProcessType("铸轧");
  83. processes1.setBsProcessesId(Arrays.asList(new String[]{"f29671831358404ab047848aade7e681"}));
  84. ProductionProcesses processes2 = new ProductionProcesses();
  85. processes2.setId(id2);
  86. processes2.setIfLock(false);
  87. processes2.setSeriesProduceMark("1100^_^1100H14冷轧卷普料 厚6.8*宽1025mm 6吨^_^1025.00");
  88. processes2.setProduceTime(1440);
  89. processes2.setPreviousProcessesIds(Arrays.asList(new String[]{id1}));
  90. processes2.setProduceOrder(Arrays.asList(new ProduceOrder[]{produceOrder1}));
  91. processes2.setMinWaitTime(310);
  92. processes2.setMaxWaitTime(3000);
  93. processes2.setVolumeMetal("1100");
  94. processes2.setOptionalEquipments(Arrays.asList(new String[]{"0001be252874536843730b100158","0001be252874536843730b100162","0001be252874536843730b100160"}));
  95. processes2.setUnitProduceTime(3100);
  96. processes2.setVolumeWidth(new BigDecimal("1025"));
  97. processes2.setSinglerollweight(new BigDecimal("5.8"));
  98. processes2.setBottleneck(true);
  99. processes2.setProcessType("成退");
  100. processes2.setBsProcessesId(Arrays.asList(new String[]{"d8ac56ea9335401f871cd691d1ba9442"}));
  101. processes.add(processes1);
  102. processes.add(processes2);
  103. }
  104. for(int i=6;i<14;i++){
  105. String id1 = (i*2+1)+"";
  106. String id2 = (i*2+2)+"";
  107. ProductionProcesses processes1 = new ProductionProcesses();
  108. processes1.setId(id1);
  109. processes1.setCutfinishmin(70);
  110. processes1.setIfLock(false);
  111. processes1.setSeriesProduceMark("1100^_^1100H14冷轧卷普料 厚6.8*宽1025mm 6吨^_^1025.00");
  112. processes1.setProduceTime(600);
  113. processes1.setPrepressworkmin(55);
  114. processes1.setNextProcessesIds(Arrays.asList(new String[]{id2}));
  115. ProduceOrder produceOrder1 = new ProduceOrder("34f200bcbac748fb8f817eea88fb9a5d","订单1", DateUtil.parseDateTime("2024-06-22 08:00:00"));
  116. processes1.setProduceOrder(Arrays.asList(new ProduceOrder[]{produceOrder1}));
  117. processes1.setMinWaitTime(600);
  118. processes1.setVolumeMetal("1100");
  119. processes1.setOptionalEquipments(Arrays.asList(new String[]{"0001be252874536843730b100018","0001be252874536843730b100017","0001be252874536843730b100016"}));
  120. processes1.setUnitProduceTime(360);
  121. processes1.setProcessType("铸轧");
  122. processes1.setBsProcessesId(Arrays.asList(new String[]{"f29671831358404ab047848aade7e682"}));
  123. ProductionProcesses processes2 = new ProductionProcesses();
  124. processes2.setId(id2);
  125. processes2.setIfLock(false);
  126. processes2.setSeriesProduceMark("1100^_^1100H14冷轧卷普料 厚6.8*宽1025mm 6吨^_^1025.00");
  127. processes2.setProduceTime(1680);
  128. processes2.setPreviousProcessesIds(Arrays.asList(new String[]{id1}));
  129. processes2.setProduceOrder(Arrays.asList(new ProduceOrder[]{produceOrder1}));
  130. processes2.setMinWaitTime(310);
  131. processes2.setMaxWaitTime(3000);
  132. processes2.setVolumeMetal("1100");
  133. processes2.setOptionalEquipments(Arrays.asList(new String[]{"0001be252874536843730b100158","0001be252874536843730b100162","0001be252874536843730b100160"}));
  134. processes2.setUnitProduceTime(3100);
  135. processes2.setBottleneck(true);
  136. processes2.setVolumeWidth(new BigDecimal("1100"));
  137. processes2.setSinglerollweight(new BigDecimal("7.2"));
  138. processes2.setProcessType("成退");
  139. processes2.setBsProcessesId(Arrays.asList(new String[]{"d8ac56ea9335401f871cd691d1ba9443"}));
  140. processes.add(processes1);
  141. processes.add(processes2);
  142. }
  143. return processes;
  144. }
  145. }