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") @ApiOperation(value = "查询卸料平台最新一条实时数据", notes = "查询卸料平台最新一条实时数据", httpMethod = "POST")
@ApiImplicitParam(name = "devSn", value = "设备编号", paramType = "query", required = true, dataType = "Integer") @ApiImplicitParam(name = "devSn", value = "设备编号", paramType = "query", required = true, dataType = "Integer")
@PostMapping(value = "/getNewestDischargingPlatformCurrentData") @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)); return Result.success(dischargingPlatformCurrentDataService.getNewestDischargingPlatformCurrentData(map));
} }

View File

@ -19,7 +19,7 @@ import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface DischargingPlatformCurrentDataMapper extends BaseMapper<DischargingPlatformCurrentData> { 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); 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"> <!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"> <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.* SELECT a.*
from discharging_platform_current_data a from discharging_platform_current_data a
WHERE dev_sn=#{devSn} WHERE dev_sn=#{devSn}
ORDER BY recive_time DESC ORDER BY recive_time DESC
LIMIT 1 LIMIT 1
</select> </select>
<select id="getTodayDischargingPlatformCurrentDataList" <select id="getTodayDischargingPlatformCurrentDataList"
resultType="com.zhgd.xmgl.modules.discharging.entity.DischargingPlatformCurrentData" parameterType="map"> 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); void saveDischargingPlatformCurrentData(DischargingPlatformCurrentData dischargingPlatformCurrentData);
EntityMap getNewestDischargingPlatformCurrentData(Map<String, Object> map); DischargingPlatformCurrentData getNewestDischargingPlatformCurrentData(Map<String, Object> map);
List<DischargingPlatformCurrentData> getTodayDischargingPlatformCurrentDataList(Map<String, Object> map); List<DischargingPlatformCurrentData> getTodayDischargingPlatformCurrentDataList(Map<String, Object> map);

View File

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

View File

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

View File

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

View File

@ -126,13 +126,14 @@ public class VehiclePositionFenceController {
/** /**
* 批量删除 * 批量删除
* *
* @param ids * @param paramMap
* @return * @return
*/ */
@ApiOperation(value = "批量删除车辆(人员)定位-围栏信息", notes = "批量删除车辆(人员)定位-围栏信息", httpMethod = "POST") @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") @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<>(); Result<VehiclePositionFence> result = new Result<>();
if (ids == null || "".equals(ids.trim())) { if (ids == null || "".equals(ids.trim())) {
result.error500("参数不识别!"); result.error500("参数不识别!");

View File

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

View File

@ -52,6 +52,24 @@ public class XiwonUtil {
supplier.get(); 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);
} }
} }