skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/constant/RainfallConstant.java
@@ -18,4 +18,8 @@ public static final List<String> RAIN_FALL_RANGES = Arrays.asList("(250,+)", "(100,250]", "(50,100]", "(25,50]" , "(10,25]", "(5,10]", "(0.1,5]", "[0,0.1]"); public static final String CONTAINS_CHINESE = "1" ; public static final String NOT_CONTAINS_CHINESE = "9" ; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/StBdDataController.java
New file @@ -0,0 +1,50 @@ package cn.gistack.sm.sjztmd.controller; import cn.gistack.sm.sjztmd.entity.StBdData; import cn.gistack.sm.sjztmd.service.IStBdDataService; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j @Api(tags = "北斗平台监测数据") @RestController @RequestMapping("/sjztmd/stBdData") @AllArgsConstructor public class StBdDataController extends BladeController { private final IStBdDataService stBdDataService; /** * 分页查询北斗平台监测数据 * @param stBdData 北斗平台监测数据 * @param query 查询条件 * @return 北斗平台监测数据 */ @ApiOperation(value="分页查询北斗平台监测数据", notes="分页查询北斗平台监测数据") @GetMapping("/list") public R<IPage<StBdData>> list(StBdData stBdData, Query query) throws Exception { IPage<StBdData> pageList = stBdDataService.page(Condition.getPage(query), Condition.getQueryWrapper(stBdData)); return R.data(pageList); } /** * 批量插入北斗平台监测数据 * @param stBdDataStr 北斗平台监测数据 * @return 插入结果 */ @PostMapping("/insert") public R<Boolean> insert(String stBdDataStr){ return R.status(stBdDataService.insertData(stBdDataStr)); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/StBdData.java
New file @@ -0,0 +1,69 @@ package cn.gistack.sm.sjztmd.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.Date; @Data @TableName("\"st_bd_data\"") @ApiModel(value = "北斗平台监测数据", description = "北斗平台监测数据") public class StBdData implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @ApiModelProperty(value = "id") @TableId(value = "\"id\"",type = IdType.NONE) private String id; /** * 消息内容 */ @TableField(value = "\"content\"") @ApiModelProperty(value = "消息内容") private String content; /** * 发送卡号 */ @TableField(value = "\"from_addr\"") @ApiModelProperty(value = "发送卡号") private String fromAddr; /** * 接收卡号 */ @TableField(value = "\"to_addr\"") @ApiModelProperty(value = "接收卡号") private String toAddr; /** * 入库时间 */ @ApiModelProperty(value = "入库时间") @TableField("\"create_time\"") private Date createTime; /** * 通信时间 */ @ApiModelProperty(value = "通信时间") @TableField("\"tm\"") private Date tm; /** * 编码类型 */ @ApiModelProperty(value = "编码类型: 1表示消息内容含有中文,9表示消息内容不包含中文") @TableField("\"code_type\"") private String codeType; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/StBdDataMapper.java
New file @@ -0,0 +1,7 @@ package cn.gistack.sm.sjztmd.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.gistack.sm.sjztmd.entity.StBdData; public interface StBdDataMapper extends BaseMapper<StBdData> { } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/StBdDataMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="cn.gistack.sm.sjztmd.mapper.StBdDataMapper"> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IStBdDataService.java
New file @@ -0,0 +1,9 @@ package cn.gistack.sm.sjztmd.service; import cn.gistack.sm.sjztmd.entity.StBdData; import com.baomidou.mybatisplus.extension.service.IService; public interface IStBdDataService extends IService<StBdData>{ Boolean insertData(String stBdDataStr); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/StBdDataServiceImpl.java
New file @@ -0,0 +1,67 @@ package cn.gistack.sm.sjztmd.service.impl; import cn.gistack.sm.sjztmd.constant.RainfallConstant; import cn.gistack.sm.sjztmd.entity.StBdData; import cn.gistack.sm.sjztmd.mapper.StBdDataMapper; import cn.gistack.sm.sjztmd.service.IStBdDataService; import cn.gistack.sm.sjztmd.vo.StBdDataVO; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springblade.core.log.exception.ServiceException; import org.springframework.stereotype.Service; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; @Service @DS("zt") public class StBdDataServiceImpl extends ServiceImpl<StBdDataMapper, StBdData> implements IStBdDataService { private static final ObjectMapper objectMapper = new ObjectMapper(); @Override public Boolean insertData(String stBdDataStr) { StBdDataVO stBdDataVO; try { stBdDataVO = objectMapper.readValue(stBdDataStr, StBdDataVO.class); } catch (JsonProcessingException e) { throw new ServiceException("转换北斗平台监测数据失败,详情:" + e.getMessage()); } List<StBdDataVO.CommInfo> commInfos = stBdDataVO.getCommInfos(); if (null == commInfos || commInfos.isEmpty()) { throw new ServiceException("获取北斗平台数据失败,无效的commInfos"); } List<StBdData> stBdDataList = new ArrayList<>(); for (StBdDataVO.CommInfo commInfo : commInfos) { StBdData stBdData = new StBdData(); stBdData.setId(UUID.randomUUID().toString().replaceAll("-", "")); stBdData.setTm(commInfo.getTime()); stBdData.setCreateTime(new Date()); stBdData.setFromAddr(commInfo.getFromAddr()); stBdData.setToAddr(commInfo.getToAddr()); String content = commInfo.getContent(); stBdData.setContent(content); boolean isContainsChinese = contentIsContainChinese(content); stBdData.setCodeType(isContainsChinese? RainfallConstant.CONTAINS_CHINESE : RainfallConstant.NOT_CONTAINS_CHINESE); stBdDataList.add(stBdData); } this.saveBatch(stBdDataList); return true; } private boolean contentIsContainChinese(String content) { if (content == null || content.isEmpty()) { return false; } String chinesePattern = "[\u4e00-\u9fa5]"; Pattern pattern = Pattern.compile(chinesePattern); Matcher matcher = pattern.matcher(content); return matcher.find(); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StBdDataVO.java
New file @@ -0,0 +1,24 @@ package cn.gistack.sm.sjztmd.vo; import lombok.Data; import java.util.Date; import java.util.List; @Data public class StBdDataVO { private List<CommInfo> commInfos; @lombok.Data public static class CommInfo { private String toAddr; private String content; private Date time; private String fromAddr; } }