bug修复

This commit is contained in:
guo 2023-11-22 11:27:34 +08:00
parent be0aca9ad2
commit d3f21f0627
11 changed files with 77 additions and 50 deletions

View File

@ -114,7 +114,7 @@ public class DischargingPlatformCurrentDataController {
@ApiOperation(value = "查询卸料平台最新一条实时数据", notes = "查询卸料平台最新一条实时数据", httpMethod = "POST")
@ApiImplicitParam(name = "devSn", value = "设备编号", paramType = "query", required = true, dataType = "Integer")
@PostMapping(value = "/getNewestDischargingPlatformCurrentData")
public Result<EntityMap> getNewestDischargingPlatformCurrentData(@RequestBody Map<String, Object> map) {
public Result<DischargingPlatformCurrentData> getNewestDischargingPlatformCurrentData(@RequestBody Map<String, Object> map) {
return Result.success(dischargingPlatformCurrentDataService.getNewestDischargingPlatformCurrentData(map));
}

View File

@ -19,7 +19,7 @@ import org.apache.ibatis.annotations.Param;
@Mapper
public interface DischargingPlatformCurrentDataMapper extends BaseMapper<DischargingPlatformCurrentData> {
EntityMap getNewestDischargingPlatformCurrentData(Map<String, Object> map);
DischargingPlatformCurrentData getNewestDischargingPlatformCurrentData(Map<String, Object> map);
List<DischargingPlatformCurrentData> getTodayDischargingPlatformCurrentDataList(Map<String, Object> map);

View File

@ -2,13 +2,13 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.discharging.mapper.DischargingPlatformCurrentDataMapper">
<select id="getNewestDischargingPlatformCurrentData" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map">
<select id="getNewestDischargingPlatformCurrentData"
resultType="com.zhgd.xmgl.modules.discharging.entity.DischargingPlatformCurrentData" parameterType="map">
SELECT a.*
from discharging_platform_current_data a
WHERE dev_sn=#{devSn}
ORDER BY recive_time DESC
LIMIT 1
</select>
<select id="getTodayDischargingPlatformCurrentDataList"
resultType="com.zhgd.xmgl.modules.discharging.entity.DischargingPlatformCurrentData" parameterType="map">

View File

@ -18,7 +18,7 @@ public interface IDischargingPlatformCurrentDataService extends IService<Dischar
void saveDischargingPlatformCurrentData(DischargingPlatformCurrentData dischargingPlatformCurrentData);
EntityMap getNewestDischargingPlatformCurrentData(Map<String, Object> map);
DischargingPlatformCurrentData getNewestDischargingPlatformCurrentData(Map<String, Object> map);
List<DischargingPlatformCurrentData> getTodayDischargingPlatformCurrentDataList(Map<String, Object> map);

View File

@ -116,7 +116,7 @@ public class DischargingPlatformCurrentDataServiceImpl extends ServiceImpl<Disch
}
@Override
public EntityMap getNewestDischargingPlatformCurrentData(Map<String, Object> map) {
public DischargingPlatformCurrentData getNewestDischargingPlatformCurrentData(Map<String, Object> map) {
return dischargingPlatformCurrentDataMapper.getNewestDischargingPlatformCurrentData(map);
}

View File

@ -266,7 +266,12 @@ public class Project implements Serializable {
private String jzgProjectCode;
@ApiModelProperty(value = "金筑工访问host")
private String jzgHost;
@ApiModelProperty(value = "'携稳扬尘url'")
private String xiwonDustUrl;
@ApiModelProperty(value = "'携稳的appId'")
private String xiwonAppId;
@ApiModelProperty(value = "'携稳的appSecret'")
private String xiwonAppSecret;
/**
* runde平台token
*/

View File

@ -1,41 +1,33 @@
package com.zhgd.xmgl.modules.vehicleposition.controller;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.modules.vehicleposition.service.IVehiclePositionDayRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiImplicitParams;
import java.util.HashMap;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.oConvertUtils;
import org.apache.commons.collections.MapUtils;
import com.zhgd.xmgl.modules.vehicleposition.entity.VehiclePositionDayRecord;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.xmgl.modules.vehicleposition.service.IVehiclePositionDayRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.List;
/**
@ -63,6 +55,7 @@ public class VehiclePositionDayRecordController {
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "month", value = "类型月份如2020-10", paramType = "query", required = false, dataType = "String"),
@ApiImplicitParam(name = "devSn", value = "设备编号", dataType = "String", paramType = "query", required = false),
})
@GetMapping(value = "/page")
public Result<IPage<VehiclePositionDayRecord>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
@ -75,7 +68,10 @@ public class VehiclePositionDayRecordController {
* @return
*/
@ApiOperation(value = "列表查询车辆(人员)定位-日行数据信息", notes = "列表查询车辆(人员)定位-日行数据信息", httpMethod = "GET")
@ApiImplicitParam(name = "month", value = "类型月份如2020-10", paramType = "query", required = false, dataType = "String")
@ApiImplicitParams({
@ApiImplicitParam(name = "month", value = "类型月份如2020-10", paramType = "query", required = false, dataType = "String"),
@ApiImplicitParam(name = "devSn", value = "设备编号", dataType = "String", paramType = "query", required = false),
})
@GetMapping(value = "/list")
public Result<List<VehiclePositionDayRecord>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(vehiclePositionDayRecordService.queryList(paramMap));

View File

@ -126,13 +126,14 @@ public class VehiclePositionFenceController {
/**
* 批量删除
*
* @param ids
* @param paramMap
* @return
*/
@ApiOperation(value = "批量删除车辆(人员)定位-围栏信息", notes = "批量删除车辆(人员)定位-围栏信息", httpMethod = "POST")
@ApiImplicitParam(name = "id", value = "车辆(人员)定位-围栏ID字符串", paramType = "query", required = true, dataType = "String")
@ApiImplicitParam(name = "ids", value = "车辆(人员)定位-围栏ID字符串(多个以,分割)", paramType = "body", required = true, dataType = "String")
@PostMapping(value = "/deleteBatch")
public Result<VehiclePositionFence> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
public Result<VehiclePositionFence> deleteBatch(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
String ids = MapUtils.getString(paramMap, "ids");
Result<VehiclePositionFence> result = new Result<>();
if (ids == null || "".equals(ids.trim())) {
result.error500("参数不识别!");

View File

@ -50,9 +50,6 @@ public class ElectricalTask {
@Resource
private XiwonUtil xiwonUtil;
@Value("${xiwon.appId}")
private String appId;
/**
* 获取最新电量使用情况 每5分钟触发任务
*/

View File

@ -11,6 +11,8 @@ import com.zhgd.xmgl.modules.environment.entity.DustNoiseData;
import com.zhgd.xmgl.modules.environment.entity.EnvironmentDev;
import com.zhgd.xmgl.modules.environment.mapper.DustNoiseDataMapper;
import com.zhgd.xmgl.modules.environment.mapper.EnvironmentDevMapper;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.task.dto.EnvironmentDustDataDto;
import com.zhgd.xmgl.util.EnvironmentUtils;
import com.zhgd.xmgl.util.WindDirectionUtils;
@ -24,6 +26,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.text.DecimalFormat;
@ -48,9 +52,8 @@ public class EnvironmentDevTask {
@Value("${isGetEnvironmentData}")
private boolean isGetEnvironmentData;
@Value("${xiwon.postEnvironmentDustData:}")
private String postEnvironmentDustData;
@Autowired
private ProjectMapper projectMapper;
@Resource
private XiwonUtil xiwonUtil;
@ -134,21 +137,28 @@ public class EnvironmentDevTask {
@SchedulerLock(name = "getEnvironmentDustData", lockAtMostFor = 1000 * 60 * 5, lockAtLeastFor = 1000 * 60 * 3)
@Scheduled(cron = "0 0/5 * * * ?")
public void getEnvironmentDustData() {
log.info("获取扬尘数据(携稳)开始:{}", postEnvironmentDustData);
if (StringUtils.isNotBlank(postEnvironmentDustData)) {
// 获取所有
List<EnvironmentDev> devList = environmentDevMapper.selectList(null);
log.info("获取扬尘数据(携稳)开始任务");
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>()
.isNotNull(Project::getXiwonDustUrl)
.isNotNull(Project::getXiwonAppId)
.isNotNull(Project::getXiwonAppSecret)
);
for (Project project : projects) {
// 获取设备列表
List<EnvironmentDev> devList = environmentDevMapper.selectList(new LambdaQueryWrapper<EnvironmentDev>()
.eq(EnvironmentDev::getProjectSn, project.getProjectSn()));
devList.forEach(dev -> CompletableFuture.runAsync(() -> {
doGetEnvironmentDustData(dev);
doGetEnvironmentDustData(dev, project);
}).exceptionally(throwable -> {
log.error("err", throwable);
return null;
})
);
}
}
private void doGetEnvironmentDustData(EnvironmentDev dev) {
private void doGetEnvironmentDustData(EnvironmentDev dev, Project project) {
// 设备sn
String devSn = dev.getDeviceId();
log.info("doGetEnvironmentDustData设备sn{}", devSn);
@ -157,7 +167,7 @@ public class EnvironmentDevTask {
Map<String, Object> map = new HashMap<>(4);
map.put("pageSize", "10");
map.put("pageNum", "1");
JSONObject realTimeData = xiwonUtil.postForm(postEnvironmentDustData, map, JSONObject.class, (() -> {
JSONObject realTimeData = xiwonUtil.postDustForm(project.getXiwonDustUrl(), project.getXiwonAppId(), project.getXiwonAppSecret(), map, JSONObject.class, (() -> {
map.put("deviceSn", devSn);
if (newestData != null && newestData.getXiewenId() != null) {
map.put("dataId", newestData.getXiewenId());

View File

@ -52,6 +52,24 @@ public class XiwonUtil {
supplier.get();
}
return restTemplate.postForObject(url + "?" + MapUtil.join(map, "&", "="), requestEntity, returnClass);
String sendUrl = url + "?" + MapUtil.join(map, "&", "=");
log.info("postForm:url:{}", sendUrl);
return restTemplate.postForObject(sendUrl, requestEntity, returnClass);
}
public <T> T postDustForm(String url, String appId, String appSecret, Map<String, Object> map, Class<T> returnClass, Supplier supplier) {
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.set("appId", appId);
long currentTimeMillis = System.currentTimeMillis();
requestHeaders.set("requestTime", currentTimeMillis + "");
requestHeaders.set("sign", SecureUtil.md5(appId + appSecret + currentTimeMillis));
requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(requestHeaders);
if (supplier != null) {
supplier.get();
}
String sendUrl = url + "?" + MapUtil.join(map, "&", "=");
log.info("postForm: url:{}, appId:{}, appSecret:{}", sendUrl, appId, appSecret);
return restTemplate.postForObject(sendUrl, requestEntity, returnClass);
}
}