|
|
@@ -52,6 +52,7 @@ import org.springblade.modules.system.service.IDictBizService;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import springfox.documentation.annotations.ApiIgnore;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.LinkedList;
|
|
|
import java.util.List;
|
|
|
|
|
|
@@ -80,6 +81,7 @@ public class RtuBaseInfoController extends BladeController {
|
|
|
private final IDeptRegionService deptRegionService;
|
|
|
private final IBaseInfoRegionService baseInfoRegionService;
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 分页
|
|
|
*/
|
|
|
@@ -173,7 +175,7 @@ public class RtuBaseInfoController extends BladeController {
|
|
|
rtuInfoVO.setOrgName(dept.getDeptName());
|
|
|
}
|
|
|
LambdaQueryWrapper<RtuStatusEntity> statusWwrapper = Wrappers.<RtuStatusEntity>query().lambda();
|
|
|
- statusWwrapper.eq(RtuStatusEntity::getIsDeleted,0);
|
|
|
+ statusWwrapper.eq(RtuStatusEntity::getIsDeleted, 0);
|
|
|
statusWwrapper.eq(RtuStatusEntity::getRtuCode, detail.getRtuCode());
|
|
|
RtuStatusEntity statusEntity = rtuManageService.getOne(statusWwrapper);
|
|
|
if (null != statusEntity) {
|
|
|
@@ -237,25 +239,51 @@ public class RtuBaseInfoController extends BladeController {
|
|
|
@PostMapping("/save")
|
|
|
@ApiOperationSupport(order = 4)
|
|
|
@ApiOperation(value = "新增", notes = "传入rtuInfoEntity")
|
|
|
- public R save(@RequestBody RtuInfoEntity rtuInfoEntity) {
|
|
|
+ public R save(@RequestBody RtuInfoDTO dto) {
|
|
|
LambdaQueryWrapper<RtuInfoEntity> rtuwrapper = Wrappers.<RtuInfoEntity>query().lambda();
|
|
|
- rtuwrapper.eq(RtuInfoEntity::getRtuCode, rtuInfoEntity.getRtuCode());
|
|
|
+ rtuwrapper.eq(RtuInfoEntity::getRtuCode, dto.getRtuCode());
|
|
|
rtuwrapper.eq(RtuInfoEntity::getIsDeleted, 0L);
|
|
|
RtuInfoEntity entity = rtuBaseInfoService.getOne(rtuwrapper);
|
|
|
if (null != entity) {
|
|
|
return R.fail("测站编码已存在,请确认!");
|
|
|
}
|
|
|
LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
|
|
|
- wrapper.eq(RegionInfoEntity::getAdcd, rtuInfoEntity.getAdCode());
|
|
|
+ wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
|
|
|
wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
|
|
|
RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(wrapper);
|
|
|
- rtuInfoEntity.setAdDist(regionInfoEntity.getAdnm());
|
|
|
- LambdaQueryWrapper<RegionInfoEntity> wrapper2 = Wrappers.<RegionInfoEntity>query().lambda();
|
|
|
- wrapper2.eq(RegionInfoEntity::getAdcd, regionInfoEntity.getParentCode());
|
|
|
- wrapper2.eq(RegionInfoEntity::getIsDeleted, 0L);
|
|
|
- regionInfoEntity = baseInfoRegionService.getOne(wrapper2);
|
|
|
- rtuInfoEntity.setAdCity(regionInfoEntity.getAdnm());
|
|
|
- return R.status(rtuBaseInfoService.save(rtuInfoEntity));
|
|
|
+ dto.setAdDist(regionInfoEntity.getAdnm());
|
|
|
+ LambdaQueryWrapper<RegionInfoEntity> citywrapper = Wrappers.<RegionInfoEntity>query().lambda();
|
|
|
+ citywrapper.eq(RegionInfoEntity::getAdcd, regionInfoEntity.getParentCode());
|
|
|
+ citywrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
|
|
|
+ regionInfoEntity = baseInfoRegionService.getOne(citywrapper);
|
|
|
+ dto.setAdCity(regionInfoEntity.getAdnm());
|
|
|
+ dto.setIsRain(0);
|
|
|
+ dto.setIsRiver(0);
|
|
|
+ dto.setIsRes(0);
|
|
|
+ dto.setIsGround(0);
|
|
|
+ dto.setIsVideo(0);
|
|
|
+ if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
|
|
|
+ for (String kind : dto.getSiteKind()) {
|
|
|
+ if ("1".equals(kind)) {
|
|
|
+ dto.setIsRain(1);
|
|
|
+ } else if ("2".equals(kind)) {
|
|
|
+ dto.setIsRes(1);
|
|
|
+ } else if ("3".equals(kind)) {
|
|
|
+ dto.setIsGround(1);
|
|
|
+ } else if ("4".equals(kind)) {
|
|
|
+ dto.setIsVideo(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
|
|
|
+ String lng = this.getLng(dto.getLng().trim());
|
|
|
+ dto.setLng(lng);
|
|
|
+ }
|
|
|
+ if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
|
|
|
+ String lat = this.getLat(dto.getLat().trim());
|
|
|
+ dto.setLat(lat);
|
|
|
+ }
|
|
|
+ return R.status(rtuBaseInfoService.save(dto));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -263,9 +291,45 @@ public class RtuBaseInfoController extends BladeController {
|
|
|
*/
|
|
|
@PostMapping("/update")
|
|
|
@ApiOperationSupport(order = 5)
|
|
|
- @ApiOperation(value = "修改", notes = "传入rtuInfoEntity")
|
|
|
- public R update(@RequestBody RtuInfoEntity rtuInfoEntity) {
|
|
|
- return R.status(rtuBaseInfoService.updateById(rtuInfoEntity));
|
|
|
+ @ApiOperation(value = "修改", notes = "传入RtuInfoDTO")
|
|
|
+ public R update(@RequestBody RtuInfoDTO dto) {
|
|
|
+ LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
|
|
|
+ wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
|
|
|
+ wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
|
|
|
+ RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(wrapper);
|
|
|
+ dto.setAdDist(regionInfoEntity.getAdnm());
|
|
|
+ LambdaQueryWrapper<RegionInfoEntity> citywrapper = Wrappers.<RegionInfoEntity>query().lambda();
|
|
|
+ citywrapper.eq(RegionInfoEntity::getAdcd, regionInfoEntity.getParentCode());
|
|
|
+ citywrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
|
|
|
+ regionInfoEntity = baseInfoRegionService.getOne(citywrapper);
|
|
|
+ dto.setAdCity(regionInfoEntity.getAdnm());
|
|
|
+ dto.setIsRain(0);
|
|
|
+ dto.setIsRiver(0);
|
|
|
+ dto.setIsRes(0);
|
|
|
+ dto.setIsGround(0);
|
|
|
+ dto.setIsVideo(0);
|
|
|
+ if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
|
|
|
+ for (String kind : dto.getSiteKind()) {
|
|
|
+ if ("1".equals(kind)) {
|
|
|
+ dto.setIsRain(1);
|
|
|
+ } else if ("2".equals(kind)) {
|
|
|
+ dto.setIsRes(1);
|
|
|
+ } else if ("3".equals(kind)) {
|
|
|
+ dto.setIsGround(1);
|
|
|
+ } else if ("4".equals(kind)) {
|
|
|
+ dto.setIsVideo(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
|
|
|
+ String lng = this.getLng(dto.getLng().trim());
|
|
|
+ dto.setLng(lng);
|
|
|
+ }
|
|
|
+ if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
|
|
|
+ String lat = this.getLat(dto.getLat().trim());
|
|
|
+ dto.setLat(lat);
|
|
|
+ }
|
|
|
+ return R.status(rtuBaseInfoService.updateById(dto));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -273,10 +337,45 @@ public class RtuBaseInfoController extends BladeController {
|
|
|
*/
|
|
|
@PostMapping("/submit")
|
|
|
@ApiOperationSupport(order = 6)
|
|
|
- @ApiOperation(value = "新增或修改", notes = "传入rtuInfoEntity")
|
|
|
- public R submit(@RequestBody RtuInfoEntity rtuInfoEntity) {
|
|
|
-
|
|
|
- return R.status(rtuBaseInfoService.saveOrUpdate(rtuInfoEntity));
|
|
|
+ @ApiOperation(value = "新增或修改", notes = "传入RtuInfoDTO")
|
|
|
+ public R submit(@RequestBody RtuInfoDTO dto) {
|
|
|
+ LambdaQueryWrapper<RegionInfoEntity> wrapper = Wrappers.<RegionInfoEntity>query().lambda();
|
|
|
+ wrapper.eq(RegionInfoEntity::getAdcd, dto.getAdCode());
|
|
|
+ wrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
|
|
|
+ RegionInfoEntity regionInfoEntity = baseInfoRegionService.getOne(wrapper);
|
|
|
+ dto.setAdDist(regionInfoEntity.getAdnm());
|
|
|
+ LambdaQueryWrapper<RegionInfoEntity> citywrapper = Wrappers.<RegionInfoEntity>query().lambda();
|
|
|
+ citywrapper.eq(RegionInfoEntity::getAdcd, regionInfoEntity.getParentCode());
|
|
|
+ citywrapper.eq(RegionInfoEntity::getIsDeleted, 0L);
|
|
|
+ regionInfoEntity = baseInfoRegionService.getOne(citywrapper);
|
|
|
+ dto.setAdCity(regionInfoEntity.getAdnm());
|
|
|
+ dto.setIsRain(0);
|
|
|
+ dto.setIsRiver(0);
|
|
|
+ dto.setIsRes(0);
|
|
|
+ dto.setIsGround(0);
|
|
|
+ dto.setIsVideo(0);
|
|
|
+ if (dto.getSiteKind() != null && dto.getSiteKind().length > 0) {
|
|
|
+ for (String kind : dto.getSiteKind()) {
|
|
|
+ if ("1".equals(kind)) {
|
|
|
+ dto.setIsRain(1);
|
|
|
+ } else if ("2".equals(kind)) {
|
|
|
+ dto.setIsRes(1);
|
|
|
+ } else if ("3".equals(kind)) {
|
|
|
+ dto.setIsGround(1);
|
|
|
+ } else if ("4".equals(kind)) {
|
|
|
+ dto.setIsVideo(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null != dto.getLng() && dto.getLng().trim().length() > 0) {
|
|
|
+ String lng = this.getLng(dto.getLng().trim());
|
|
|
+ dto.setLng(lng);
|
|
|
+ }
|
|
|
+ if (null != dto.getLat() && dto.getLat().trim().length() > 0) {
|
|
|
+ String lat = this.getLat(dto.getLat().trim());
|
|
|
+ dto.setLat(lat);
|
|
|
+ }
|
|
|
+ return R.status(rtuBaseInfoService.saveOrUpdate(dto));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -335,4 +434,99 @@ public class RtuBaseInfoController extends BladeController {
|
|
|
return R.data(list);
|
|
|
}
|
|
|
|
|
|
+ private String getLng(String lngText) {
|
|
|
+ ArrayList<String> textArr = new ArrayList<>();
|
|
|
+ textArr.add("");
|
|
|
+ for (int l = 0; l < lngText.length(); l++) {
|
|
|
+ String subtext = lngText.substring(l, l + 1);
|
|
|
+ if (Func.isNumeric(subtext)) {
|
|
|
+ String str = textArr.get(textArr.size() - 1);
|
|
|
+ str += subtext;
|
|
|
+ textArr.set(textArr.size() - 1, str);
|
|
|
+ } else {
|
|
|
+ textArr.add("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ArrayList<String> tmp = new ArrayList<>();
|
|
|
+ for (String text : textArr) {
|
|
|
+ if (text.length() > 0) {
|
|
|
+ tmp.add(text);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (tmp.size() >= 4) {
|
|
|
+ //度分秒,秒有小数点
|
|
|
+ String v = tmp.get(2) + "." + tmp.get(3);
|
|
|
+ double lat = Double.parseDouble(v);
|
|
|
+ lat = lat / 60.0;
|
|
|
+ v = tmp.get(1);
|
|
|
+ lat = (Double.parseDouble(v) + lat) / 60.0;
|
|
|
+ v = tmp.get(0);
|
|
|
+ lat = Double.parseDouble(v) + lat;
|
|
|
+ return String.format("%.06f", lat);
|
|
|
+ } else if (tmp.size() == 3) {
|
|
|
+ //度分秒
|
|
|
+ String v = tmp.get(2);
|
|
|
+ double lat = Double.parseDouble(v);
|
|
|
+ lat = lat / 60.0;
|
|
|
+ v = tmp.get(1);
|
|
|
+ lat = (Double.parseDouble(v) + lat) / 60.0;
|
|
|
+ v = tmp.get(0);
|
|
|
+ lat = Double.parseDouble(v) + lat;
|
|
|
+ return String.format("%.06f", lat);
|
|
|
+ } else if (tmp.size() == 2) {
|
|
|
+ //度
|
|
|
+ String v = tmp.get(0) + "." + tmp.get(1);
|
|
|
+ double lat = Double.parseDouble(v);
|
|
|
+ return String.format("%.06f", lat);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getLat(String latText) {
|
|
|
+ ArrayList<String> textArr = new ArrayList<>();
|
|
|
+ textArr.add("");
|
|
|
+ for (int l = 0; l < latText.length(); l++) {
|
|
|
+ String subtext = latText.substring(l, l + 1);
|
|
|
+ if (Func.isNumeric(subtext)) {
|
|
|
+ String str = textArr.get(textArr.size() - 1);
|
|
|
+ str += subtext;
|
|
|
+ textArr.set(textArr.size() - 1, str);
|
|
|
+ } else {
|
|
|
+ textArr.add("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ArrayList<String> tmp = new ArrayList<>();
|
|
|
+ for (String text : textArr) {
|
|
|
+ if (text.length() > 0) {
|
|
|
+ tmp.add(text);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (tmp.size() >= 4) {
|
|
|
+ //度分秒,秒有小数点
|
|
|
+ String v = tmp.get(2) + "." + tmp.get(3);
|
|
|
+ double lat = Double.parseDouble(v);
|
|
|
+ lat = lat / 60.0;
|
|
|
+ v = tmp.get(1);
|
|
|
+ lat = (Double.parseDouble(v) + lat) / 60.0;
|
|
|
+ v = tmp.get(0);
|
|
|
+ lat = Double.parseDouble(v) + lat;
|
|
|
+ return String.format("%.06f", lat);
|
|
|
+ } else if (tmp.size() == 3) {
|
|
|
+ //度分秒
|
|
|
+ String v = tmp.get(2);
|
|
|
+ double lat = Double.parseDouble(v);
|
|
|
+ lat = lat / 60.0;
|
|
|
+ v = tmp.get(1);
|
|
|
+ lat = (Double.parseDouble(v) + lat) / 60.0;
|
|
|
+ v = tmp.get(0);
|
|
|
+ lat = Double.parseDouble(v) + lat;
|
|
|
+ return String.format("%.06f", lat);
|
|
|
+ } else if (tmp.size() == 2) {
|
|
|
+ //度
|
|
|
+ String v = tmp.get(0) + "." + tmp.get(1);
|
|
|
+ double lat = Double.parseDouble(v);
|
|
|
+ return String.format("%.06f", lat);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|