TaskEQInspect.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.gyee.impala.schdule;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.gyee.impala.common.spring.InitialRunner;
  4. import com.gyee.impala.model.gdoa.EqQxjcljl;
  5. import com.gyee.impala.model.master.Casefaultrepair;
  6. import com.gyee.impala.model.master.ICasefaultrepairService;
  7. import com.gyee.impala.model.master.Knowcategory;
  8. import com.gyee.impala.model.master.Windturbine;
  9. import com.gyee.impala.service.gdoa.IEqQxjcljlService;
  10. import com.gyee.impala.service.master.KnowinspectService;
  11. import org.apache.kudu.client.KuduException;
  12. import org.springframework.scheduling.annotation.Scheduled;
  13. import org.springframework.stereotype.Component;
  14. import javax.annotation.Resource;
  15. import java.util.ArrayList;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * 来自国电oa的设备检修数据同步至kudu样本库
  21. */
  22. @Component
  23. public class TaskEQInspect {
  24. @Resource
  25. private KnowinspectService knowinspectService;
  26. @Resource
  27. private IEqQxjcljlService iEqQxjcljlService;
  28. @Resource
  29. private ICasefaultrepairService casefaultrepairService;
  30. //故障类型
  31. private Map<String,String> gzlx;
  32. /**
  33. * 每周六一点执行一次
  34. */
  35. @Scheduled(cron = "0 0 1 ? * 6")
  36. public void equipmentInspectTask(){
  37. String time = knowinspectService.selectMaxTime();
  38. knowinspectService.insertBatch(time);
  39. }
  40. /**
  41. * 每周六一点半执行一次
  42. */
  43. @Scheduled(cron = "0 30 1 ? * 6")
  44. public void caseFaultRepair(){
  45. String time = casefaultrepairService.selectMaxTime();
  46. QueryWrapper<EqQxjcljl> wrapper = new QueryWrapper<>();
  47. wrapper.notLike("USE_DEPT", "光伏").gt("ENDDATE",time);
  48. List<EqQxjcljl> list = iEqQxjcljlService.list(wrapper);
  49. List<Casefaultrepair> casefaultrepairs = new ArrayList<>();
  50. for (EqQxjcljl eqxjcljl : list) {
  51. Casefaultrepair cfr = new Casefaultrepair();
  52. String stid = InitialRunner.stationenMap.get(eqxjcljl.getUseDept());
  53. cfr.setStationid(stid);
  54. cfr.setStationname(eqxjcljl.getUseDept());
  55. String wtId = getWtId(stid, eqxjcljl.getEquipmentName());
  56. cfr.setWindturbineid(wtId);
  57. Windturbine windturbine = InitialRunner.wtMap.get(wtId);
  58. if(windturbine==null||windturbine.getName()==null) continue;
  59. cfr.setWindturbinename(windturbine.getName());
  60. cfr.setModelid(windturbine.getModel());
  61. String ftc = getFaultType(eqxjcljl.getQxname());
  62. cfr.setFaulttypecode(ftc);
  63. cfr.setFaulttypename(InitialRunner.faultTypeMap.get(ftc));
  64. cfr.setStarttime(eqxjcljl.getFinddate());
  65. cfr.setEndtime(eqxjcljl.getEnddate());
  66. cfr.setFaultreason(eqxjcljl.getCause());
  67. cfr.setTreatprocesses(eqxjcljl.getClgc());
  68. cfr.setSparepartsreplacement(eqxjcljl.getBjghqk());
  69. casefaultrepairs.add(cfr);
  70. }
  71. try {
  72. casefaultrepairService.insertBatch(casefaultrepairs);
  73. } catch (KuduException e) {
  74. e.printStackTrace();
  75. }
  76. }
  77. //OA检修获取故障类型
  78. private String getFaultType(String qxname) {
  79. if(gzlx==null ||gzlx.size()==0){
  80. gzlx = new HashMap<>();
  81. for (Knowcategory knowcategory : InitialRunner.faultTypeList) {
  82. gzlx.put(knowcategory.getName().replace("系统故障","")
  83. .replace("类故障","")
  84. .replace("故障",""), knowcategory.getCode());
  85. }
  86. }
  87. for (String s : gzlx.keySet()) {
  88. if(qxname.contains(s)){
  89. return gzlx.get(s);
  90. }
  91. }
  92. return "QT";
  93. }
  94. //OA检修获取风机id
  95. private String getWtId(String stid, String equipmentName) {
  96. if(stid==null||equipmentName==null) return null;
  97. String fj = equipmentName.replace("#", "").replace("风机", "");
  98. fj = fj.length() > 1 ? fj : "0" + fj;
  99. return stid.charAt(0)+"G01_"+fj;
  100. }
  101. }