UpdatePersonDeviceBoundTask.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.jpsoft.smart.schduled;
  2. import cn.hutool.core.date.DateField;
  3. import cn.hutool.core.date.DateUtil;
  4. import com.github.pagehelper.Page;
  5. import com.jpsoft.smart.modules.base.entity.DeviceInfo;
  6. import com.jpsoft.smart.modules.base.entity.PersonDeviceRelation;
  7. import com.jpsoft.smart.modules.base.entity.PersonInfo;
  8. import com.jpsoft.smart.modules.base.service.DeviceInfoService;
  9. import com.jpsoft.smart.modules.base.service.PersonDeviceRelationService;
  10. import com.jpsoft.smart.modules.base.service.PersonInfoService;
  11. import com.jpsoft.smart.modules.common.dto.Sort;
  12. import com.jpsoft.smart.modules.lapi.service.ILapiService;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.scheduling.annotation.Scheduled;
  16. import org.springframework.stereotype.Component;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import java.util.*;
  19. /**
  20. * @author 墨鱼_mo
  21. * @date 2020-4-8 14:27
  22. */
  23. @Component
  24. @Slf4j
  25. @Transactional
  26. public class UpdatePersonDeviceBoundTask {
  27. @Autowired
  28. private PersonDeviceRelationService personDeviceRelationService;
  29. @Autowired
  30. private ILapiService lapiService;
  31. @Autowired
  32. private PersonInfoService personInfoService;
  33. @Autowired
  34. private DeviceInfoService deviceInfoService;
  35. @Scheduled(cron = "0 0/10 * * * ?")
  36. public void run() {
  37. log.warn("人员设备绑定关系更新定时任务开始");
  38. List<PersonDeviceRelation> personDeviceRelationList = personDeviceRelationService.findByIsBoundAndUpdateTime(DateUtil.offset(new Date(),DateField.DAY_OF_MONTH, -1),500);
  39. if (personDeviceRelationList.size()>0){
  40. for (PersonDeviceRelation personDeviceRelation : personDeviceRelationList){
  41. try{
  42. lapiService.keepAlive(personDeviceRelation.getDeviceId());
  43. PersonInfo personInfo = personInfoService.get(personDeviceRelation.getPersonId());
  44. DeviceInfo deviceInfo = deviceInfoService.get(personDeviceRelation.getDeviceId());
  45. String faceDbId = lapiService.getFaceDbId(deviceInfo,personInfo.getCompanyName());
  46. Boolean isSuccessAdd = lapiService.isSuccessAddPerson(personInfo,deviceInfo,faceDbId);
  47. if (isSuccessAdd){
  48. personDeviceRelation.setIsBound(true);
  49. personDeviceRelation.setUpdateTime(new Date());
  50. }else {
  51. personDeviceRelation.setIsBound(false);
  52. personDeviceRelation.setUpdateTime(new Date());
  53. }
  54. }catch (Exception e){
  55. personDeviceRelation.setUpdateTime(new Date());
  56. personDeviceRelation.setIsBound(null);
  57. }
  58. personDeviceRelationService.update(personDeviceRelation);
  59. }
  60. }
  61. }
  62. }