郑永安
2023-09-19 69185134fcfaf913ea45f1255677225a2cc311a4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.gk.hotwork.Scheduls.location;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gk.hotwork.Domain.Enum.ErrorCode;
import com.gk.hotwork.Domain.UserInfo;
import com.gk.hotwork.Domain.Utils.Msg;
import com.gk.hotwork.Domain.Utils.StringUtils;
import com.gk.hotwork.Service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
 
import java.math.BigDecimal;
import java.util.Date;
 
/**
 * @author : jingjy
 * @date : 2021/12/7 17:29
 */
//@Configuration
//@EnableScheduling
//@ConditionalOnProperty(prefix = "scheduling", name = "enabled", havingValue = "true")
public class LocationTask {
    private final UserService userService;
 
    public LocationTask(UserService userService) {
        this.userService = userService;
    }
 
//    @Scheduled(cron = "0/10 * * * * ?") //每隔10秒执行一次
    public void getCross() throws Exception {
        Msg msg = userService.getRealGps();
        if (msg.getCode().equals(ErrorCode.SUCCESS.getCode())){
//            JSONObject jsonResult = JSONObject.parseObject();
//            String status = jsonResult.getString("status");
//            String msgInfo = jsonResult.getString("msginfo");
//
//            if (status.equals("1")){
//                return;
//            }
            JSONArray array = JSONArray.parseArray(msg.getResult().toString());
            if (array == null){
                return;
            }
 
            for(int i = 0; i < array.size(); i++){
                JSONObject object = array.getJSONObject(i);
                String deviceNo = object.getString("deviceNo");
                String empNo = object.getString("empNo");
                String name = object.getString("empName");
                if (StringUtils.isBlank(deviceNo)){
                    return;
                }
                UserInfo userInfo = userService.selectUserByCard(deviceNo,empNo,name);
                if (userInfo == null){
                    continue;
                }
                String crossX = object.getString("crossX");
                crossX =StringUtils.isBlank(crossX)?"0":crossX;
                String crossY = object.getString("crossY");
                crossY =StringUtils.isBlank(crossY)?"0":crossY;
                userInfo.setCrossX(new BigDecimal(crossX));
                userInfo.setCrossY(new BigDecimal(crossY));
 
                BigDecimal latitude = object.getBigDecimal("latitude");
                BigDecimal longitude = object.getBigDecimal("longitude");
                Integer area = object.getInteger("area");
                String layer = object.getString("layer");
                userInfo.setLatitude(latitude);
                userInfo.setLongitude(longitude);
                userInfo.setArea(area);
                userInfo.setLayer(layer);
                userInfo.setUpdateat(new Date());
                userService.updateById(userInfo);
            }
        }
 
    }
}