新需求开发
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
||||
package com.renkang.emergency.controller;
|
||||
|
||||
import com.renkang.emergency.entity.XjAed;
|
||||
import com.renkang.emergency.service.IXjAedService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.jeecg.common.system.base.controller.JeecgController;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/emergency/xjAed")
|
||||
public class XjAedController extends JeecgController<XjAed, IXjAedService> {
|
||||
|
||||
private final IXjAedService xjAedService;
|
||||
|
||||
/**
|
||||
* 初始化新疆aed数据
|
||||
*/
|
||||
@GetMapping("dataInit")
|
||||
public void aedDataInit() {
|
||||
xjAedService.aedDataInit();
|
||||
}
|
||||
}
|
||||
+44
-36
@@ -4,26 +4,19 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.renkang.anyan.model.dto.HealthRoomDTO;
|
||||
import com.renkang.anyan.model.dto.HealthSignListParam;
|
||||
import com.renkang.anyan.model.dto.MedicalAbnormalDTO;
|
||||
import com.renkang.anyan.model.vo.BloodSugarClockSList;
|
||||
import com.renkang.anyan.model.vo.HealthRoomBaseVO;
|
||||
import com.renkang.anyan.model.vo.MedicalAbnormalVO;
|
||||
import com.renkang.anyan.model.vo.WeightPressureList;
|
||||
import com.renkang.anyan.model.vo.BloodPressureList;
|
||||
import com.renkang.anyan.model.vo.MedicalPeopleNumStatisticsVO;
|
||||
import com.renkang.anyan.model.vo.MedicalAbnormalStatisticsVO;
|
||||
import com.renkang.emergency.entity.dto.MedicalCenterDTO;
|
||||
import com.renkang.emergency.entity.dto.PhoneListDTO;
|
||||
import com.renkang.emergency.entity.dto.ResourcesAllDTO;
|
||||
import com.renkang.emergency.entity.dto.StatisticsDTO;
|
||||
import com.renkang.emergency.entity.dto.UserHealthCenterDTO;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.HealthRoomBaseDTO;
|
||||
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
|
||||
import com.renkang.anyan.model.vo.*;
|
||||
import com.renkang.emergency.entity.dto.*;
|
||||
import com.renkang.emergency.entity.vo.DataDetailVO;
|
||||
import com.renkang.emergency.entity.vo.LoveTrendVO;
|
||||
import com.renkang.emergency.entity.vo.MedicalDataVO;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.HealthRoomBaseDTO;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.HealthSignDTO;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.MedicalAbnormalStatisticsDTO;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.MedicalPeopleNumStatisticsDTO;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.*;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.HealthRoomVO;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.HealthSignVO;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.HospitalVO;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenService;
|
||||
import com.renkang.emergency.service.ITbUserHelpMacService;
|
||||
@@ -54,11 +47,12 @@ public class LargeScreenNewController {
|
||||
|
||||
/**
|
||||
* 获取地图
|
||||
* @param type 1:油田医院 2:健康小屋 5:救护车 不传则全部
|
||||
*
|
||||
* @param type 1:油田医院 3:健康小屋 4:aed 5:救护车 不传则全部
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/map")
|
||||
public Result<List<LargeScreenMap>> map(@RequestParam(name = "type",required = false) String type) {
|
||||
public Result<List<LargeScreenMap>> map(@RequestParam(name = "type", required = false) String type) {
|
||||
return Result.ok(largeScreenService.map(type));
|
||||
}
|
||||
|
||||
@@ -109,118 +103,121 @@ public class LargeScreenNewController {
|
||||
|
||||
@PostMapping("/healthRoomBase")
|
||||
@Operation(summary = "健康小屋基础数据", description = "健康小屋基础数据")
|
||||
public Result<List<HealthRoomBaseVO>> healthRoomBase(@RequestBody HealthRoomBaseDTO dto){
|
||||
public Result<List<HealthRoomBaseVO>> healthRoomBase(@RequestBody HealthRoomBaseDTO dto) {
|
||||
return Result.ok(largeScreenService.healthRoomBase(dto));
|
||||
}
|
||||
|
||||
@PostMapping("/healthRoomDetail")
|
||||
@Operation(summary = "健康小屋详情", description = "健康小屋详情")
|
||||
public Result<IPage<HealthRoomVO>> healthRoomDetail(@RequestBody HealthRoomDTO dto){
|
||||
public Result<IPage<HealthRoomVO>> healthRoomDetail(@RequestBody HealthRoomDTO dto) {
|
||||
return Result.ok(largeScreenService.healthRoomDetail(dto));
|
||||
}
|
||||
|
||||
@PostMapping("/medicalAbnormal")
|
||||
@Operation(summary = "体检异常数据详情列表", description = "体检异常数据详情列表")
|
||||
public Result<IPage<MedicalAbnormalVO>> medicalAbnormal(@RequestBody MedicalAbnormalDTO dto){
|
||||
public Result<IPage<MedicalAbnormalVO>> medicalAbnormal(@RequestBody MedicalAbnormalDTO dto) {
|
||||
return Result.ok(largeScreenService.medicalAbnormal(dto));
|
||||
}
|
||||
|
||||
@PostMapping("/healthWeightLoss")
|
||||
@Operation(summary = "健康打卡减重详情列表", description = "健康打卡减重详情列表")
|
||||
public Result<IPage<WeightPressureList>> healthWeightLoss(@RequestBody HealthSignListParam dto){
|
||||
public Result<IPage<WeightPressureList>> healthWeightLoss(@RequestBody HealthSignListParam dto) {
|
||||
return Result.ok(largeScreenService.healthWeightLoss(dto));
|
||||
}
|
||||
|
||||
@PostMapping("/healthBloodSugar")
|
||||
@Operation(summary = "健康打卡血糖详情列表", description = "健康打卡血糖详情列表")
|
||||
public Result<IPage<BloodSugarClockSList>> healthBloodSugar(@RequestBody HealthSignListParam dto){
|
||||
public Result<IPage<BloodSugarClockSList>> healthBloodSugar(@RequestBody HealthSignListParam dto) {
|
||||
return Result.ok(largeScreenService.healthBloodSugar(dto));
|
||||
}
|
||||
|
||||
@PostMapping("/healthBloodPressure")
|
||||
@Operation(summary = "健康打卡血压详情列表", description = "健康打卡血压详情列表")
|
||||
public Result<IPage<BloodPressureList>> healthBloodPressure(@RequestBody HealthSignListParam dto){
|
||||
public Result<IPage<BloodPressureList>> healthBloodPressure(@RequestBody HealthSignListParam dto) {
|
||||
return Result.ok(largeScreenService.healthBloodPressure(dto));
|
||||
}
|
||||
|
||||
@PostMapping("/medicalPeopleNumStatistics")
|
||||
@Operation(summary = "体检人数统计", description = "体检人数统计")
|
||||
public Result<List<MedicalPeopleNumStatisticsVO>> medicalPeopleNumStatistics(@RequestBody MedicalPeopleNumStatisticsDTO dto){
|
||||
public Result<List<MedicalPeopleNumStatisticsVO>> medicalPeopleNumStatistics(@RequestBody MedicalPeopleNumStatisticsDTO dto) {
|
||||
return Result.ok(largeScreenService.medicalPeopleNumStatistics(dto));
|
||||
}
|
||||
|
||||
@PostMapping("/medicalAbnormalStatistics")
|
||||
@Operation(summary = "体检异常数据统计", description = "体检异常数据统计")
|
||||
public Result<MedicalAbnormalStatisticsVO> medicalAbnormalStatistics(@RequestBody MedicalAbnormalStatisticsDTO dto){
|
||||
public Result<MedicalAbnormalStatisticsVO> medicalAbnormalStatistics(@RequestBody MedicalAbnormalStatisticsDTO dto) {
|
||||
return Result.ok(largeScreenService.medicalAbnormalStatistics(dto));
|
||||
}
|
||||
|
||||
@PostMapping("/healthSign")
|
||||
@Operation(summary = "健康打卡数据", description = "健康打卡数据")
|
||||
public Result<HealthSignVO> healthSign(@RequestBody HealthSignDTO dto){
|
||||
public Result<HealthSignVO> healthSign(@RequestBody HealthSignDTO dto) {
|
||||
return Result.ok(largeScreenService.healthSign(dto));
|
||||
}
|
||||
|
||||
@GetMapping("/hospital")
|
||||
@Operation(summary = "医院数据", description = "医院数据")
|
||||
public Result<List<HospitalVO>> hospital(){
|
||||
public Result<List<HospitalVO>> hospital() {
|
||||
return Result.ok(largeScreenService.hospital());
|
||||
}
|
||||
|
||||
@GetMapping("runTest")
|
||||
@Operation(summary = "初始化假数据", description = "初始化假数据")
|
||||
public void runTest(){
|
||||
public void runTest() {
|
||||
largeScreenService.runJob();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑或新增
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("editValue")
|
||||
public Result<Boolean> editValue(@RequestBody LargeScreenDataValueDTO dto){
|
||||
public Result<Boolean> editValue(@RequestBody LargeScreenDataValueDTO dto) {
|
||||
return Result.ok(largeScreenDataService.editValue(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑整个tab
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("editData")
|
||||
public Result<Boolean> editData(@RequestBody DataDetailVO dto){
|
||||
public Result<Boolean> editData(@RequestBody DataDetailVO dto) {
|
||||
return Result.ok(largeScreenDataService.editData(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("deleteValue")
|
||||
public Result<Boolean> deleteValue(@RequestBody LargeScreenDataValueDTO dto){
|
||||
public Result<Boolean> deleteValue(@RequestBody LargeScreenDataValueDTO dto) {
|
||||
return Result.ok(largeScreenDataService.deleteValue(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 体检医院编辑新增删除
|
||||
*
|
||||
* @param dtoList
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("editMedicalValue")
|
||||
public Result<Boolean> editMedicalValue(@RequestBody List<LargeScreenDataValueDTO> dtoList){
|
||||
public Result<Boolean> editMedicalValue(@RequestBody List<LargeScreenDataValueDTO> dtoList) {
|
||||
return Result.ok(largeScreenDataService.editMedicalValue(dtoList));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 假数据查询
|
||||
*/
|
||||
@GetMapping("dataDetail")
|
||||
public Result<DataDetailVO> dataDetail(@RequestParam(name = "centerId") String centerId, @RequestParam(name = "module") String module){
|
||||
return Result.ok(largeScreenDataService.dataDetail(centerId,module));
|
||||
public Result<DataDetailVO> dataDetail(@RequestParam(name = "centerId") String centerId, @RequestParam(name = "module") String module) {
|
||||
return Result.ok(largeScreenDataService.dataDetail(centerId, module));
|
||||
}
|
||||
|
||||
|
||||
@@ -228,8 +225,19 @@ public class LargeScreenNewController {
|
||||
* 假数据查询(体检人数)
|
||||
*/
|
||||
@GetMapping("medicalDataDetail")
|
||||
public Result<List<MedicalDataVO>> medicalDataDetail(@RequestParam(name = "centerId") String centerId){
|
||||
public Result<List<MedicalDataVO>> medicalDataDetail(@RequestParam(name = "centerId") String centerId) {
|
||||
return Result.ok(largeScreenDataService.medicalDataDetail(centerId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 假数据查询(关爱趋势)
|
||||
*/
|
||||
@GetMapping("loveTrend")
|
||||
public Result<IPage<LoveTrendVO>> loveTrend(@RequestParam(name = "centerId") String centerId,
|
||||
@RequestParam(name = "name", required = false) String name,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return Result.ok(largeScreenDataService.loveTrend(centerId, name,pageNo,pageSize));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+22
@@ -2,6 +2,7 @@ package com.renkang.emergency.largeScreen.entity.vo;
|
||||
|
||||
import com.renkang.emergency.entity.EmergencyHealthRoom;
|
||||
import com.renkang.emergency.entity.Resource;
|
||||
import com.renkang.emergency.entity.XjAed;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@@ -20,6 +21,14 @@ public class LargeScreenMap {
|
||||
|
||||
private String latitude;
|
||||
|
||||
private Integer jobNum;
|
||||
|
||||
private Integer runTime;
|
||||
|
||||
private String manageName;
|
||||
|
||||
private String managePhone;
|
||||
|
||||
public LargeScreenMap() {}
|
||||
|
||||
public LargeScreenMap(Resource resource) {
|
||||
@@ -29,6 +38,8 @@ public class LargeScreenMap {
|
||||
this.type = resource.getType();
|
||||
this.latitude = String.valueOf(resource.getLatitude());
|
||||
this.longitude = String.valueOf(resource.getLongitude());
|
||||
this.jobNum = resource.getJobNum();
|
||||
this.runTime = resource.getRunTime();
|
||||
}
|
||||
|
||||
public LargeScreenMap(EmergencyHealthRoom room) {
|
||||
@@ -39,4 +50,15 @@ public class LargeScreenMap {
|
||||
this.latitude = room.getLatitude();
|
||||
this.longitude = room.getLongitude();
|
||||
}
|
||||
|
||||
public LargeScreenMap(XjAed xjAed) {
|
||||
this.id = xjAed.getId();
|
||||
this.name = xjAed.getName();
|
||||
this.orgName = xjAed.getOrgCode();
|
||||
this.type = "4";
|
||||
this.latitude = String.valueOf(xjAed.getLatitude());
|
||||
this.longitude = String.valueOf(xjAed.getLongitude());
|
||||
this.manageName = xjAed.getManageName();
|
||||
this.managePhone = xjAed.getManagePhone();
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -1,9 +1,11 @@
|
||||
package com.renkang.emergency.largeScreen.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.renkang.emergency.entity.LargeScreenData;
|
||||
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
|
||||
import com.renkang.emergency.entity.vo.DataDetailVO;
|
||||
import com.renkang.emergency.entity.vo.LoveTrendVO;
|
||||
import com.renkang.emergency.entity.vo.MedicalDataVO;
|
||||
|
||||
import java.util.List;
|
||||
@@ -27,4 +29,6 @@ public interface ILargeScreenDataService extends IService<LargeScreenData> {
|
||||
DataDetailVO dataDetail(String centerId, String module);
|
||||
|
||||
List<MedicalDataVO> medicalDataDetail(String centerId);
|
||||
|
||||
IPage<LoveTrendVO> loveTrend(String centerId, String name,Integer pageNo,Integer pageSize);
|
||||
}
|
||||
|
||||
+45
-2
@@ -2,22 +2,28 @@ package com.renkang.emergency.largeScreen.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.PageUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.renkang.emergency.entity.LargeScreenData;
|
||||
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
|
||||
import com.renkang.emergency.entity.vo.DataDetailVO;
|
||||
import com.renkang.emergency.entity.vo.LoveTrendVO;
|
||||
import com.renkang.emergency.entity.vo.MedicalDataVO;
|
||||
import com.renkang.emergency.largeScreen.mapper.LargeScreenDataMapper;
|
||||
import com.renkang.emergency.largeScreen.mapper.LargeScreenMapper;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StreamUtils;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -389,4 +395,41 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
|
||||
}
|
||||
return list.stream().map(MedicalDataVO::new).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<LoveTrendVO> loveTrend(String centerId, String name, Integer pageNo, Integer pageSize) {
|
||||
try {
|
||||
ClassPathResource resource = new ClassPathResource("tempData/guanaiList.json");
|
||||
String jsonContent = StreamUtils.copyToString(resource.getInputStream(), StandardCharsets.UTF_8);
|
||||
List<LoveTrendVO> loveTrendVOList = JSONUtil.toList(jsonContent, LoveTrendVO.class);
|
||||
|
||||
if (CollUtil.isEmpty(loveTrendVOList)) {
|
||||
return new Page<>();
|
||||
}
|
||||
|
||||
// 根据 name 过滤
|
||||
if (StrUtil.isNotBlank(name)) {
|
||||
loveTrendVOList = loveTrendVOList.stream()
|
||||
.filter(vo -> vo.getName() != null && vo.getName().contains(name))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
int total = loveTrendVOList.size();
|
||||
int[] startEnd = PageUtil.transToStartEnd(pageNo - 1, pageSize);
|
||||
|
||||
// 确保不越界
|
||||
int start = Math.min(startEnd[0], total);
|
||||
int end = Math.min(startEnd[1], total);
|
||||
|
||||
List<LoveTrendVO> pageList = loveTrendVOList.subList(start, end);
|
||||
|
||||
Page<LoveTrendVO> page = new Page<>(pageNo, pageSize, total);
|
||||
page.setRecords(pageList);
|
||||
return page;
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return new Page<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+13
-2
@@ -19,6 +19,7 @@ import com.renkang.anyan.model.vo.*;
|
||||
import com.renkang.emergency.entity.EmergencyCenter;
|
||||
import com.renkang.emergency.entity.EmergencyHealthRoom;
|
||||
import com.renkang.emergency.entity.Resource;
|
||||
import com.renkang.emergency.entity.XjAed;
|
||||
import com.renkang.emergency.entity.vo.DataDetailVO;
|
||||
import com.renkang.emergency.entity.vo.MedicalDataVO;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.HealthRoomBaseDTO;
|
||||
@@ -35,6 +36,7 @@ import com.renkang.emergency.largeScreen.service.ILargeScreenService;
|
||||
import com.renkang.emergency.service.IEmergencyCenterService;
|
||||
import com.renkang.emergency.service.IEmergencyHealthRoomService;
|
||||
import com.renkang.emergency.service.IResourceService;
|
||||
import com.renkang.emergency.service.IXjAedService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.jeecg.util.RedisClientUtil;
|
||||
import org.jeecg.util.RedisKeyPrefix;
|
||||
@@ -64,6 +66,7 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
|
||||
private final String MEDICAL_ABNORMAL_STATISTICS = "medicalAbnormalStatistics";
|
||||
private final String HEALTH_SIGN = "healthSign";
|
||||
private final IEmergencyCenterService centerService;
|
||||
private final IXjAedService xjAedService;
|
||||
private final IResourceService resourceService;
|
||||
private final IEmergencyHealthRoomService roomService;
|
||||
private final RedisClientUtil redisClientUtil;
|
||||
@@ -80,8 +83,14 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
|
||||
.eq(StrUtil.isEmpty(type), Resource::getType, "1"));
|
||||
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||
}
|
||||
if (StrUtil.isEmpty(type) || type.equals("2")) {
|
||||
List<EmergencyHealthRoom> list = roomService.list();
|
||||
if (StrUtil.isEmpty(type) || type.equals("3")) {
|
||||
List<Resource> list = resourceService.list(new LambdaQueryWrapper<Resource>()
|
||||
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
|
||||
.eq(StrUtil.isEmpty(type), Resource::getType, "3"));
|
||||
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||
}
|
||||
if (StrUtil.isEmpty(type) || type.equals("4")){
|
||||
List<XjAed> list = xjAedService.list(new LambdaQueryWrapper<XjAed>().isNotNull(XjAed::getLatitude));
|
||||
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||
}
|
||||
if (StrUtil.isEmpty(type) || type.equals("5")) {
|
||||
@@ -515,6 +524,8 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
|
||||
resource.setId(room.getId());
|
||||
resource.setLatitude(TypeConversionUtil.toBigDecimalOfNull(room.getLat()));
|
||||
resource.setLongitude(TypeConversionUtil.toBigDecimalOfNull(room.getLon()));
|
||||
resource.setJobNum(room.getJobNum());
|
||||
resource.setRunTime(room.getRunTime());
|
||||
resource.setType("2");
|
||||
saveOrUpdateBatchList.add(resource);
|
||||
}
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package com.renkang.emergency.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.renkang.emergency.entity.XjAed;
|
||||
|
||||
public interface XjAedMapper extends BaseMapper<XjAed> {
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.renkang.emergency.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.renkang.emergency.entity.XjAed;
|
||||
|
||||
public interface IXjAedService extends IService<XjAed> {
|
||||
|
||||
void aedDataInit();
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
package com.renkang.emergency.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.renkang.emergency.entity.XjAed;
|
||||
import com.renkang.emergency.mapper.XjAedMapper;
|
||||
import com.renkang.emergency.service.IXjAedService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.poi.ss.usermodel.DateUtil;
|
||||
import org.apache.poi.xssf.usermodel.XSSFCell;
|
||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.jeecg.untils.CoordinateConverter;
|
||||
import org.jeecg.util.TypeConversionUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class XjAedServiceImpl extends ServiceImpl<XjAedMapper, XjAed> implements IXjAedService {
|
||||
|
||||
private final CoordinateConverter converter;
|
||||
|
||||
@Override
|
||||
public void aedDataInit() {
|
||||
String filePath = "D:\\Project\\Java\\rk\\文档\\新疆油田-24\\各二级单位坐标位置更正统计9.15(2).xlsx";
|
||||
|
||||
try (FileInputStream file = new FileInputStream(filePath);
|
||||
XSSFWorkbook workbook = new XSSFWorkbook(file)) {
|
||||
|
||||
// 获取第一个工作表
|
||||
XSSFSheet sheet = workbook.getSheetAt(0);
|
||||
List<XjAed> xjAedList = new ArrayList<>();
|
||||
// 从第二行开始(索引为1)
|
||||
for (int i = 2; i <= sheet.getLastRowNum(); i++) {
|
||||
XSSFRow row = sheet.getRow(i);
|
||||
if (row != null) {
|
||||
// 获取第一个单元格(索引0)的数据 设置地点
|
||||
XSSFCell firstCell = row.getCell(0);
|
||||
String firstCellValue = firstCell != null ? getCellValue(firstCell) : "[空]";
|
||||
|
||||
// 获取第二个单元格(索引1)的数据 经度
|
||||
XSSFCell secondCell = row.getCell(1);
|
||||
String secondCellValue = secondCell != null ? getCellValue(secondCell) : "[空]";
|
||||
|
||||
// 获取第三个单元格(索引1)的数据 纬度
|
||||
XSSFCell threeCell = row.getCell(2);
|
||||
String threeCellValue = secondCell != null ? getCellValue(threeCell) : "[空]";
|
||||
if (firstCellValue.equals("滴12生活点会议室")){
|
||||
System.out.println(1);
|
||||
}
|
||||
XjAed xjAed = new XjAed();
|
||||
xjAed.setName("自动体外除颤仪");
|
||||
xjAed.setAddress(firstCellValue);
|
||||
try {
|
||||
String[] split = converter.run(secondCellValue + "-" + threeCellValue).split("-");
|
||||
CoordinateConverter.Gps gps = CoordinateConverter.GPS84ToGCJ02(
|
||||
TypeConversionUtil.toDoubleOfNull(split[0]), TypeConversionUtil.toDoubleOfNull(split[1]));
|
||||
if (gps != null) {
|
||||
xjAed.setLongitude(BigDecimal.valueOf(gps.getLongitude()));
|
||||
xjAed.setLatitude(BigDecimal.valueOf(gps.getLatitude()));
|
||||
}
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
|
||||
}
|
||||
xjAedList.add(xjAed);
|
||||
}
|
||||
}
|
||||
// 过滤掉地点为空的数据
|
||||
xjAedList.removeIf(item -> {
|
||||
String address = item.getAddress();
|
||||
return address == null || address.isEmpty() || "/".equals(address) || "无".equals(address);});
|
||||
this.saveBatch(xjAedList);
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("读取Excel文件失败: " + e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单元格的值
|
||||
*/
|
||||
private String getCellValue(XSSFCell cell) {
|
||||
if (cell == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
switch (cell.getCellType()) {
|
||||
case STRING:
|
||||
return cell.getStringCellValue().trim();
|
||||
case NUMERIC:
|
||||
if (DateUtil.isCellDateFormatted(cell)) {
|
||||
return cell.getDateCellValue().toString();
|
||||
} else {
|
||||
// 处理数字格式,避免科学计数法
|
||||
double numericValue = cell.getNumericCellValue();
|
||||
if (numericValue == Math.floor(numericValue)) {
|
||||
// 如果是整数
|
||||
return String.valueOf((long) numericValue);
|
||||
} else {
|
||||
// 如果是小数
|
||||
return String.valueOf(numericValue);
|
||||
}
|
||||
}
|
||||
case BOOLEAN:
|
||||
return String.valueOf(cell.getBooleanCellValue());
|
||||
case FORMULA:
|
||||
try {
|
||||
return String.valueOf(cell.getNumericCellValue());
|
||||
} catch (Exception e) {
|
||||
return cell.getStringCellValue().trim();
|
||||
}
|
||||
case BLANK:
|
||||
return "";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user