diff --git a/src/main/java/com/biutag/supervisiondata/common/interceptor/CrossDomainInterceptor.java b/src/main/java/com/biutag/supervisiondata/common/interceptor/CrossDomainInterceptor.java new file mode 100644 index 0000000..a14e048 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/common/interceptor/CrossDomainInterceptor.java @@ -0,0 +1,32 @@ +package com.biutag.supervisiondata.common.interceptor; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.AsyncHandlerInterceptor; + + +/** +* 跨域拦截器 +* @author kami +* @since 2020-12-24 +*/ +@Component +@Slf4j +public class CrossDomainInterceptor implements AsyncHandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, @NotNull Object handler) { + response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); + response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, OPTIONS, DELETE, PUT"); + response.setHeader("Access-Control-Allow-Credentials", "true"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Headers", "Origin, Authorization, X-Requested-With, Content-Type, Accept, Key, X-TOKEN, X-OPEN, S-TOKEN,timestamp,requestId"); + if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { + response.setStatus(HttpServletResponse.SC_OK); + } + return true; + } +} diff --git a/src/main/java/com/biutag/supervisiondata/common/interceptor/MyLogInterceptor.java b/src/main/java/com/biutag/supervisiondata/common/interceptor/MyLogInterceptor.java new file mode 100644 index 0000000..00f9e05 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/common/interceptor/MyLogInterceptor.java @@ -0,0 +1,40 @@ +package com.biutag.supervisiondata.common.interceptor; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.slf4j.MDC; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +import java.util.Optional; + +/** + * @author kami + * @version 1.0 + * @since 2022/7/8 11:42 + */ +@Component +@Slf4j +public class MyLogInterceptor implements HandlerInterceptor { + + private static final ThreadLocal stopwatchThread = new ThreadLocal<>(); + + @Override + public boolean preHandle(HttpServletRequest request, @NotNull HttpServletResponse response, @NotNull Object handler) { + //如果有上层调用就用上层的ID + String traceId = Optional.ofNullable(request.getHeader("requestId")).orElse(System.nanoTime() + ""); + MDC.put("trace_id", traceId); + stopwatchThread.set(System.currentTimeMillis()); + return true; + } + + @Override + public void afterCompletion(HttpServletRequest request, @NotNull HttpServletResponse response, @NotNull Object handler, Exception ex) { + log.info("{} | 耗时 {}ms", request.getRequestURI(), System.currentTimeMillis() - stopwatchThread.get()); + stopwatchThread.remove(); + //调用结束后删除 + MDC.remove("trace_id"); + } +} diff --git a/src/main/java/com/biutag/supervisiondata/config/SpringInterceptorConfigurer.java b/src/main/java/com/biutag/supervisiondata/config/SpringInterceptorConfigurer.java new file mode 100644 index 0000000..3a2133e --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/config/SpringInterceptorConfigurer.java @@ -0,0 +1,34 @@ +package com.biutag.supervisiondata.config; + +import com.biutag.supervisiondata.common.interceptor.CrossDomainInterceptor; +import com.biutag.supervisiondata.common.interceptor.MyLogInterceptor; +import jakarta.annotation.Resource; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + + +/** + * 拦截器配置器 + * + * @author kami + * @since 2020-12-24 + */ +@Configuration +public class SpringInterceptorConfigurer implements WebMvcConfigurer { + + + @Resource + private MyLogInterceptor myLogInterceptor; + + @Resource + private CrossDomainInterceptor crossDomainInterceptor; + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(myLogInterceptor) + .addPathPatterns("/**"); + registry.addInterceptor(crossDomainInterceptor). + addPathPatterns("/**"); + } +} diff --git a/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalMapper.java index 29ebd48..83546dd 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalMapper.java @@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; /** @@ -13,23 +16,10 @@ import java.util.List; * @since 1.8 */ public interface RiskPersonalMapper extends BaseMapper { - - @Insert("") - int update(@Param("item") RiskPersonal item); - + /** + * 获取上一次最后的入库时间 + * @return 最后入库时间 + */ + @Select(" select max(create_time) from risk_personal ") + LocalDateTime selectMaxCreateTime(); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java index c5d6fee..f666671 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskPersonal.java @@ -71,6 +71,12 @@ public class RiskPersonal implements Serializable { */ @TableField("control_depart_name") String controlDepartName; + /** + * 管控部门类型 + * 1-第三方2-实有人口3-重点人员 + */ + @TableField("control_depart_type") + Integer controlDepartType; /** * 管控时间 diff --git a/src/main/java/com/biutag/supervisiondata/service/PersonalService.java b/src/main/java/com/biutag/supervisiondata/service/PersonalService.java new file mode 100644 index 0000000..53501c5 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/service/PersonalService.java @@ -0,0 +1,16 @@ +package com.biutag.supervisiondata.service; + +import java.time.LocalDateTime; + +/** + * @author kami on 2024-11-25 10:59:37 + * @version 0.0.1 + * @since 1.8 + */ +public interface PersonalService { + + /** + * 拉取人员信息 + */ + void pullPersonalInfo(); +} diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java new file mode 100644 index 0000000..f632f7a --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -0,0 +1,49 @@ +package com.biutag.supervisiondata.service.impl; + +import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; +import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; +import com.biutag.supervisiondata.repository.GBaseJJDRepository; +import com.biutag.supervisiondata.repository.RiskPersonalRepository; +import com.biutag.supervisiondata.service.PersonalService; +import com.biutag.supervisiondata.service.RiskPersonalService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +/** + * @author kami on 2024-11-25 11:01:11 + * @version 0.0.1 + * @since 1.8 + */ +@Slf4j +@Service +@AllArgsConstructor +public class PersonalServiceImpl implements PersonalService { + + private final RiskPersonalRepository personalRepository; + + private final GBaseJJDRepository gBaseJJDRepository; + + @Override + public void pullPersonalInfo() { + LocalDateTime start = personalRepository.getBaseMapper().selectMaxCreateTime(); + if(start == null) { + start = LocalDateTime.of(2024, 1,1,0,0,0); + } + LocalDateTime end = LocalDateTime.now(); + + // 获取接警数据 + List result = gBaseJJDRepository.getBaseMapper().selectDataToRisk(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), + end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + log.info("总条数 | {}条", result.size()); + + List personals = new ArrayList<>(); + + } +}