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