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);
|
}
|
}
|
|
}
|
}
|