You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.1 KiB

2 years ago
  1. package com.spring.modules.part.task;
  2. import com.spring.common.utils.DateUtils;
  3. import com.spring.modules.base.vo.PersonnelLevelVo;
  4. import com.spring.modules.part.service.PartService;
  5. import com.spring.modules.part.service.RoutingManagementService;
  6. import com.spring.modules.part.service.impl.RoutingManagementServiceImpl;
  7. import com.spring.modules.part.vo.LocationInformationVo;
  8. import com.spring.modules.part.vo.WorkCenterVo;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.slf4j.Logger;
  11. import org.slf4j.LoggerFactory;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.beans.factory.annotation.Value;
  14. import org.springframework.context.annotation.Configuration;
  15. import org.springframework.scheduling.annotation.EnableScheduling;
  16. import org.springframework.scheduling.annotation.Scheduled;
  17. import org.springframework.stereotype.Component;
  18. @Component
  19. @Configuration
  20. @EnableScheduling
  21. @Slf4j
  22. public class PartRelatedTask {
  23. @Value("${use-site}")
  24. private String useSite;
  25. private Logger logger = LoggerFactory.getLogger(getClass());
  26. @Autowired
  27. private RoutingManagementService routingManagementService;
  28. @Autowired
  29. private PartService partService;
  30. @Scheduled(cron = "${task.data.syncDataToPLM}")
  31. public void executeDeviceCollect() {
  32. String siteCon = convertToSQLString(useSite);
  33. // 同步库位
  34. LocationInformationVo locationVo = new LocationInformationVo();
  35. locationVo.setSiteCon(siteCon);
  36. routingManagementService.syncLocationToPLM(locationVo);
  37. // 同步人员等级
  38. PersonnelLevelVo laborClassVo = new PersonnelLevelVo();
  39. laborClassVo.setSiteCon(siteCon);
  40. routingManagementService.syncLaborClassToPLM(laborClassVo);
  41. // 同步加工中心
  42. WorkCenterVo workCenterVo = new WorkCenterVo();
  43. workCenterVo.setSiteCon(siteCon);
  44. routingManagementService.syncWorkCenterToPLM(workCenterVo);
  45. }
  46. /**
  47. * @description: 刷新物料件的方法
  48. * @author LR
  49. * @date 2024/9/23 10:15
  50. * @version 1.0
  51. */
  52. @Scheduled(cron = "${task.data.sync_part_catalog_to_plm}")
  53. public void syncPartCatalogToPlm(){
  54. try {
  55. //获取处理的文件数
  56. logger.info("同步物料件的操作 的开始时间:"+ DateUtils.getStringNow());
  57. partService.syncPartCatalogToPlm();
  58. logger.info("同步物料件的操作 的结束时间:"+DateUtils.getStringNow());
  59. } catch (Exception e) {
  60. logger.error("异常时间:"+DateUtils.getStringNow()+",同步物料件的操作 ,错误信息为:"+e.getMessage());
  61. }
  62. }
  63. private static String convertToSQLString(String input) {
  64. if (input == null || input.isEmpty()) {
  65. return "()";
  66. }
  67. String[] parts = input.split(",");
  68. StringBuilder sb = new StringBuilder("(");
  69. for (int i = 0; i < parts.length; i++) {
  70. sb.append("'").append(parts[i]).append("'");
  71. if (i < parts.length - 1) {
  72. sb.append(",");
  73. }
  74. }
  75. sb.append(")");
  76. return sb.toString();
  77. }
  78. }