Compare commits
9
Commits
a68409917e
..
obf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25cd9c520c | ||
|
|
a3bf49c0fc | ||
|
|
0d6efc7a0c | ||
|
|
b25ea3ff6c | ||
|
|
7fac46f308 | ||
|
|
25e3b27c34 | ||
|
|
42b16f70b9 | ||
|
|
a9d92dd9a3 | ||
|
|
1380c846f5 |
@@ -1,18 +0,0 @@
|
||||
-------------------------
|
||||
------------ xj_emergency
|
||||
-------------------------
|
||||
|
||||
CREATE TABLE `large_screen_data`
|
||||
(
|
||||
`id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_persian_ci NOT NULL COMMENT '主键',
|
||||
`type` varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开关类型(参考entity)',
|
||||
`center_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '应急中心id',
|
||||
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '开启状态(0:未开启 1:开启)',
|
||||
`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '名称(体检机构才有值)',
|
||||
`value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '值',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`create_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`update_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
@@ -38,6 +38,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
<module>font-resources</module>
|
||||
<module>monitoring-sync</module>
|
||||
<module>renkang-test</module>
|
||||
<module>xj-anyan-api</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>functional-modules</artifactId>
|
||||
<version>2.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>xj-anyan-api</artifactId>
|
||||
<description>xj安眼系统API</description>
|
||||
<version>2.0.0</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.retry</groupId>
|
||||
<artifactId>spring-retry</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
-98
@@ -1,98 +0,0 @@
|
||||
package com.renkang.anyan.client;
|
||||
|
||||
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.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: AnYanClient xj安眼系统接口调用客户端
|
||||
* @Author: feng
|
||||
* @Date: 2025-8-1
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface AnYanClient {
|
||||
/**
|
||||
* 获取服务访问令牌
|
||||
* @return
|
||||
*/
|
||||
String getAuthToken();
|
||||
|
||||
/**
|
||||
* 刷新口令
|
||||
*/
|
||||
void refreshToken();
|
||||
|
||||
/**
|
||||
* 体检医院人数统计查询
|
||||
* @param medicalYear 体检年份
|
||||
* @return
|
||||
*/
|
||||
List<MedicalPeopleNumStatisticsVO> examinationStatistics(Integer medicalYear);
|
||||
|
||||
/**
|
||||
* 健康打卡数据统计查询(血压,减重,血糖)
|
||||
* @param beginDate
|
||||
* @param endDate
|
||||
* @return
|
||||
*/
|
||||
HealthSignStatVO healthCheckStatistics(Date beginDate, Date endDate);
|
||||
|
||||
/**
|
||||
*健康打卡异常数据详细查询(血压)
|
||||
* @param healthSignListParam
|
||||
* @return
|
||||
*/
|
||||
IPage<BloodPressureList> bloodPressureList(HealthSignListParam healthSignListParam);
|
||||
|
||||
/**
|
||||
*健康打卡异常数据详细查询(减重)
|
||||
* @param healthSignListParam
|
||||
* @return
|
||||
*/
|
||||
IPage<WeightPressureList> weightPressureList(HealthSignListParam healthSignListParam);
|
||||
|
||||
/**
|
||||
*健康打卡异常数据详细查询(血糖)
|
||||
* @param healthSignListParam
|
||||
* @return
|
||||
*/
|
||||
IPage<BloodSugarClockSList> bloodSugarClockSList(HealthSignListParam healthSignListParam);
|
||||
|
||||
/**
|
||||
* 油田医院数据查询
|
||||
* @return
|
||||
*/
|
||||
List<HospitalListVO> hospitalList();
|
||||
|
||||
/**
|
||||
* 健康小屋基础数据查询
|
||||
* @return
|
||||
*/
|
||||
List<HealthRoomVO> healthPlaceHomList();
|
||||
|
||||
/**
|
||||
* 健康小屋详细数据查询
|
||||
* @param healthRoomDTO
|
||||
* @return
|
||||
*/
|
||||
IPage<HealthPlaceHomDetailsVO> bloodSugarClockSList(HealthRoomDTO healthRoomDTO);
|
||||
|
||||
/**
|
||||
* 当年体检异常人数统计
|
||||
* @param medicalYear 年份
|
||||
* @return
|
||||
*/
|
||||
MedicalAbnormalStatisticsVO medicalAbnormalStatistics(Integer medicalYear);
|
||||
|
||||
/**
|
||||
* 当年体检异常人员列表
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
IPage<MedicalAbnormalVO> medicalAbnormalList(MedicalAbnormalDTO param);
|
||||
}
|
||||
-166
@@ -1,166 +0,0 @@
|
||||
package com.renkang.anyan.client;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.renkang.anyan.config.AnYanProperties;
|
||||
import com.renkang.anyan.config.RestTemplateUtil;
|
||||
import com.renkang.anyan.constants.AnYanConstants;
|
||||
import com.renkang.anyan.enums.AnYanApiEnum;
|
||||
import com.renkang.anyan.model.dto.AuthParam;
|
||||
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.*;
|
||||
import com.renkang.anyan.utils.PageResultToBeanUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.exception.ExceptionAssertsUtil;
|
||||
import org.jeecg.util.RedisClientUtil;
|
||||
import org.jeecg.util.RedisKeyPrefix;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.retry.annotation.EnableRetry;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: AnYanClientExecutor xj安眼系统接口调用执行器
|
||||
* @Author: feng
|
||||
* @Date: 2025-8-1
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
@EnableRetry
|
||||
@RequiredArgsConstructor
|
||||
public class AnYanClientExecutor implements AnYanClient {
|
||||
private final RedisClientUtil redisClientUtil;
|
||||
private final AnYanProperties anYanProperties;
|
||||
|
||||
@Override
|
||||
public String getAuthToken() {
|
||||
String token = redisClientUtil.get(new RedisKeyPrefix(AnYanConstants.AN_YAN_API_TOKEN_PREFIX) ,"token",String.class);
|
||||
if(StringUtils.isEmpty(token)){
|
||||
AuthResult authResult = getAuthTokenExecutor();
|
||||
if(ObjectUtil.isNotEmpty(authResult) && StrUtil.isNotEmpty(authResult.getAccess_token())){
|
||||
token = authResult.getAccess_token();
|
||||
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in())? authResult.getExpires_in() : 7200;
|
||||
redisClientUtil.set(new RedisKeyPrefix(expireSeconds,AnYanConstants.AN_YAN_API_TOKEN_PREFIX),"token", token);
|
||||
}
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
private AuthResult getAuthTokenExecutor(){
|
||||
AuthParam authParam = new AuthParam();
|
||||
authParam.setClient_id(anYanProperties.getClientId());
|
||||
authParam.setClient_secret(anYanProperties.getClientSecret());
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
|
||||
ResponseEntity<AuthResult> responseEntity = RestTemplateUtil.postExchange(AnYanApiEnum.QUERY_AUTH_TOKEN,headers,authParam,AuthResult.class);
|
||||
if(HttpStatus.OK.equals(responseEntity.getStatusCode()) && ObjectUtils.isNotEmpty(responseEntity.getBody())){
|
||||
return responseEntity.getBody();
|
||||
}else {
|
||||
ExceptionAssertsUtil.fail("------安眼系统获取token失败------" + responseEntity.getBody());
|
||||
}
|
||||
return new AuthResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refreshToken() {
|
||||
AuthResult authResult = getAuthTokenExecutor();
|
||||
if(ObjectUtil.isNotEmpty(authResult) && StrUtil.isNotEmpty(authResult.getAccess_token())){
|
||||
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in())? authResult.getExpires_in() : 7200;
|
||||
redisClientUtil.set(new RedisKeyPrefix(expireSeconds,AnYanConstants.AN_YAN_API_TOKEN_PREFIX),"token", authResult.getAccess_token());
|
||||
}
|
||||
}
|
||||
|
||||
private HttpHeaders buildTokenHeader(){
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.add(AnYanConstants.AUTHORIZATION, AnYanConstants.TOKEN_TYPE + getAuthToken());
|
||||
return headers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MedicalPeopleNumStatisticsVO> examinationStatistics(Integer medicalYear) {
|
||||
if(null == medicalYear){ medicalYear = DateUtil.year(new Date()); }
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("medicalYear",String.valueOf(medicalYear));
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HEALTH_EXAMINATION_STATISTICS, buildTokenHeader(), param);
|
||||
List<Object> listMaps = (List<Object>) result.getResult();
|
||||
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, MedicalPeopleNumStatisticsVO.class)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public HealthSignStatVO healthCheckStatistics(Date beginDate, Date endDate) {
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("inputDateBegin",ObjectUtil.isEmpty(beginDate)? DateUtil.today() : DateUtil.formatDate(beginDate));
|
||||
param.put("inputDateEnd",ObjectUtil.isEmpty(endDate)? DateUtil.today() : DateUtil.formatDate(endDate));
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HEALTH_CHECK_STATISTICS, buildTokenHeader(), param);
|
||||
return BeanUtil.toBean(result.getResult(),HealthSignStatVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<BloodPressureList> bloodPressureList(HealthSignListParam healthSignListParam) {
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.BLOOD_PRESSURE_LIST, buildTokenHeader(), healthSignListParam);
|
||||
return new PageResultToBeanUtil<BloodPressureList>().transform(result,BloodPressureList.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<WeightPressureList> weightPressureList(HealthSignListParam healthSignListParam) {
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.WEIGHT_PRESSURE_LIST, buildTokenHeader(), healthSignListParam);
|
||||
return new PageResultToBeanUtil<WeightPressureList>().transform(result,WeightPressureList.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<BloodSugarClockSList> bloodSugarClockSList(HealthSignListParam healthSignListParam) {
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.BLOOD_SUGAR_CLOCKS_LIST, buildTokenHeader(), healthSignListParam);
|
||||
return new PageResultToBeanUtil<BloodSugarClockSList>().transform(result,BloodSugarClockSList.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HospitalListVO> hospitalList() {
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HOSPITAL_LIST, buildTokenHeader(), null);
|
||||
List<Object> listMaps = (List<Object>) result.getResult();
|
||||
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, HospitalListVO.class)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HealthRoomVO> healthPlaceHomList() {
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HEALTH_PLACE_ROOM_LIST, buildTokenHeader(),null);
|
||||
List<Object> listMaps = (List<Object>) result.getResult();
|
||||
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, HealthRoomVO.class)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<HealthPlaceHomDetailsVO> bloodSugarClockSList(HealthRoomDTO healthRoomDTO) {
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HEALTH_PLACE_ROOM_INFO_LIST, buildTokenHeader(), healthRoomDTO);
|
||||
return new PageResultToBeanUtil<HealthPlaceHomDetailsVO>().transform(result,HealthPlaceHomDetailsVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MedicalAbnormalStatisticsVO medicalAbnormalStatistics(Integer medicalYear) {
|
||||
if(null == medicalYear){ medicalYear = DateUtil.year(new Date()); }
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("medicalYear",medicalYear);
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.MEDICAL_ABNORMAL_STATISTICS, buildTokenHeader(), param);
|
||||
return BeanUtil.toBean(result.getResult(),MedicalAbnormalStatisticsVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<MedicalAbnormalVO> medicalAbnormalList(MedicalAbnormalDTO param) {
|
||||
Result<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.MEDICAL_ABNORMAL_LIST, buildTokenHeader(), param);
|
||||
return new PageResultToBeanUtil<MedicalAbnormalVO>().transform(result,MedicalAbnormalVO.class);
|
||||
}
|
||||
|
||||
}
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
package com.renkang.anyan.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @Description: AnYanProperties
|
||||
* @Author: feng
|
||||
* @Date: 2025-8-1
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@Configuration
|
||||
@ConfigurationProperties(prefix = "variable.anyan")
|
||||
public class AnYanProperties {
|
||||
/**
|
||||
*服务调用地址
|
||||
*/
|
||||
private String host = "";
|
||||
/**
|
||||
* clientId
|
||||
*/
|
||||
private String clientId = "";
|
||||
/**
|
||||
*clientSecret
|
||||
*/
|
||||
private String clientSecret = "";
|
||||
/**
|
||||
*链接超时时间
|
||||
*/
|
||||
private Long timeout = 3000L;
|
||||
/**
|
||||
*读取超时时间
|
||||
*/
|
||||
private Long readTimeout = 30000L;
|
||||
}
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
package com.renkang.restaurant.config;
|
||||
|
||||
import com.renkang.anyan.client.AnYanClient;
|
||||
import com.renkang.anyan.config.AnYanProperties;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.exception.ExceptionAssertsUtil;
|
||||
import org.jeecg.common.util.SpringContextUtils;
|
||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.client.ClientHttpRequestInterceptor;
|
||||
import org.springframework.http.client.ClientHttpResponse;
|
||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Duration;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @Description: AnYanClient xj安眼系统接口调用客户端
|
||||
* @Author: feng
|
||||
* @Date: 2025-8-1
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@RequiredArgsConstructor
|
||||
public class AnYanRestTemplateConfig {
|
||||
private final AnYanProperties properties;
|
||||
|
||||
@Bean
|
||||
public RestTemplate anYanTemplate() {
|
||||
ClientHttpRequestInterceptor authInterceptor = authInterceptor();
|
||||
return new RestTemplateBuilder()
|
||||
.setConnectTimeout(Duration.of(properties.getTimeout(), ChronoUnit.MILLIS))
|
||||
.setReadTimeout(Duration.of(properties.getReadTimeout(), ChronoUnit.MILLIS))
|
||||
.additionalMessageConverters(new StringHttpMessageConverter(StandardCharsets.UTF_8), new MappingJackson2HttpMessageConverter())
|
||||
.additionalInterceptors(authInterceptor)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义拦截器处理接口鉴权失败, 配合spring retry使用从而避免因token失效导致的接口调用失败
|
||||
*/
|
||||
public ClientHttpRequestInterceptor authInterceptor(){
|
||||
return (httpRequest, bytes, clientHttpRequestExecution) -> {
|
||||
ClientHttpResponse execute;
|
||||
try {
|
||||
execute = clientHttpRequestExecution.execute(httpRequest, bytes);
|
||||
HttpStatus httpStatus =execute.getStatusCode();
|
||||
if (Arrays.asList(HttpStatus.UNAUTHORIZED,HttpStatus.FORBIDDEN).contains(httpStatus)) {
|
||||
SpringContextUtils.getBean("anYanClientExecutor", AnYanClient.class).refreshToken();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("---------安眼平台API调用异常-------e{}",e.getMessage(),e);
|
||||
ExceptionAssertsUtil.fail("安眼平台API调用失败");
|
||||
throw e;
|
||||
}
|
||||
return execute;
|
||||
};
|
||||
}
|
||||
}
|
||||
-79
@@ -1,79 +0,0 @@
|
||||
package com.renkang.anyan.config;
|
||||
|
||||
import com.renkang.anyan.enums.AnYanApiEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.SpringContextUtils;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Description: RestTemplate 工具类 (更多请求方式自行封装)
|
||||
* @Author: feng
|
||||
* @Date: 2025-8-1
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Slf4j
|
||||
public class RestTemplateUtil {
|
||||
private static RestTemplate restTemplate;
|
||||
private static AnYanProperties properties;
|
||||
|
||||
public static RestTemplate getRestTemplate() {
|
||||
if (Objects.isNull(restTemplate)) {
|
||||
restTemplate = SpringContextUtils.getBean("anYanTemplate", RestTemplate.class);
|
||||
}
|
||||
return restTemplate;
|
||||
}
|
||||
|
||||
public static AnYanProperties getProperties() {
|
||||
if (Objects.isNull(properties)) {
|
||||
properties = SpringContextUtils.getBean(AnYanProperties.class);
|
||||
}
|
||||
return properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用调用方法
|
||||
* @param api 接口
|
||||
* @param requestBody 参数
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
public static <T> ResponseEntity<T> postExchange(AnYanApiEnum api, HttpHeaders headers ,Object requestBody,Class<T> responseType) {
|
||||
String url = getProperties().getHost() + api.getMethodPath() + api.getMethodParam();
|
||||
HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody);
|
||||
return getRestTemplate().exchange(url, api.getHttpMethod(), requestEntity, responseType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用调用方法
|
||||
* @param api 请求接口
|
||||
* @param headers 请求头
|
||||
* @param requestBody body参数
|
||||
* @return Result对象
|
||||
*/
|
||||
public static Result<Object> postExchange(AnYanApiEnum api, HttpHeaders headers,Object requestBody) {
|
||||
String url = getProperties().getHost() + api.getMethodPath() +api.getMethodParam();
|
||||
HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody,headers);
|
||||
return responseHandler(getRestTemplate().exchange(url, api.getHttpMethod(), requestEntity, Result.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* ResponseEntity 转 Result
|
||||
* @param entity
|
||||
* @return
|
||||
*/
|
||||
private static <T extends Result<Object>> Result<Object> responseHandler(ResponseEntity<T> entity) {
|
||||
if(HttpStatus.OK.equals(entity.getStatusCode()) && ObjectUtils.isNotEmpty(entity.getBody())){
|
||||
return entity.getBody();
|
||||
}else{
|
||||
return Result.error("天眼系统API调用失败");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
package com.renkang.anyan.constants;
|
||||
|
||||
import org.jeecg.util.RedisKeyPrefix;
|
||||
|
||||
/**
|
||||
* @Description: AnYanConstants 常量
|
||||
* @Author: feng
|
||||
* @Date: 2025-8-01
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface AnYanConstants {
|
||||
/**
|
||||
* token传递请求头参数
|
||||
*/
|
||||
String AUTHORIZATION = "authorization";
|
||||
/**
|
||||
* token类型
|
||||
*/
|
||||
String TOKEN_TYPE = "bearer ";
|
||||
/**
|
||||
* 缓存调用安眼系统接口鉴权token缓存key
|
||||
*/
|
||||
String AN_YAN_API_TOKEN_PREFIX = "exterior:anyan:api:";
|
||||
}
|
||||
-86
@@ -1,86 +0,0 @@
|
||||
package com.renkang.anyan.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.springframework.http.HttpMethod;
|
||||
/**
|
||||
* @Description: AnYanApiEnum xj安眼系统接口枚举类
|
||||
* @Author: feng
|
||||
* @Date: 2025-8-1
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Getter
|
||||
public enum AnYanApiEnum {
|
||||
/**
|
||||
* 1.获取token接口
|
||||
*/
|
||||
QUERY_AUTH_TOKEN("/oauth/oauth/token","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
* 2.体检人数统计查询
|
||||
*/
|
||||
HEALTH_EXAMINATION_STATISTICS("/aygc-znhpt-sys/0/aystatistics/peopleHealthExaminationStatistics","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*3.健康打卡数据统计查询(血压,减重,血糖)
|
||||
*/
|
||||
HEALTH_CHECK_STATISTICS("/aygc-znhpt-sys/0/aystatistics/healthCheckStatistics","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*4.健康打卡异常数据详细查询(血压)
|
||||
*/
|
||||
BLOOD_PRESSURE_LIST("/aygc-znhpt-sys/0/aystatistics/bloodPressureList","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*5.健康打卡异常数据详细查询(减重)
|
||||
*/
|
||||
WEIGHT_PRESSURE_LIST("/aygc-znhpt-sys/0/aystatistics/weightPressureList","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*6.健康打卡异常数据详细查询(血糖)
|
||||
*/
|
||||
BLOOD_SUGAR_CLOCKS_LIST("/aygc-znhpt-sys/0/aystatistics/bloodSugarClockSList","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*7.体检异常数据统计查询(暂定)
|
||||
*/
|
||||
MEDICAL_ABNORMAL_STATISTICS("","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*8.体检异常数据清单(暂定)
|
||||
*/
|
||||
MEDICAL_ABNORMAL_LIST("","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*9.油田医院数据查询
|
||||
*/
|
||||
HOSPITAL_LIST("/aygc-znhpt-sys/0/aystatistics/HospitalList","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*10.健康小屋基础数据查询
|
||||
*/
|
||||
HEALTH_PLACE_ROOM_LIST("/aygc-znhpt-sys/0/aystatistics/HealthPlaceHomList","", HttpMethod.POST),
|
||||
|
||||
/**
|
||||
*11.健康小屋详细数据查询
|
||||
*/
|
||||
HEALTH_PLACE_ROOM_INFO_LIST("/aygc-znhpt-sys/0/aystatistics/initEmpHealthRoomCheckinInfoPages","", HttpMethod.POST);
|
||||
|
||||
/**
|
||||
* 接口路径
|
||||
*/
|
||||
private String methodPath;
|
||||
/**
|
||||
* 接口的路径参数
|
||||
*/
|
||||
private String methodParam;
|
||||
/**
|
||||
* 接口请求方式
|
||||
*/
|
||||
private HttpMethod httpMethod;
|
||||
|
||||
AnYanApiEnum(String methodPath, String methodParam, HttpMethod httpMethod) {
|
||||
this.methodPath = methodPath;
|
||||
this.methodParam = methodParam;
|
||||
this.httpMethod = httpMethod;
|
||||
}
|
||||
}
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
package com.renkang.anyan.model.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AuthParam {
|
||||
/**
|
||||
*grant_type
|
||||
*/
|
||||
private String grant_type = "client_credentials";
|
||||
/**
|
||||
* client_id
|
||||
*/
|
||||
private String client_id;
|
||||
/**
|
||||
* client_secret
|
||||
*/
|
||||
private String client_secret;
|
||||
}
|
||||
-74
@@ -1,74 +0,0 @@
|
||||
package com.renkang.anyan.model.dto;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.jeecg.common.aspect.annotation.Dict;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class HealthRoomDTO {
|
||||
/**
|
||||
* 健康小屋ID
|
||||
*/
|
||||
@Schema(title = "健康小屋ID")
|
||||
@NotNull
|
||||
private String healthRoomId;
|
||||
/**
|
||||
* 检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加
|
||||
*/
|
||||
@Schema(title = "检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加")
|
||||
@Dict(dicCode = "xj_check_type")
|
||||
private String checkType;
|
||||
/**
|
||||
* 单位名称
|
||||
*/
|
||||
@Schema(title = "单位名称")
|
||||
private String departName;
|
||||
/**
|
||||
* 员工姓名
|
||||
*/
|
||||
@Schema(title = "员工姓名")
|
||||
private String name;
|
||||
/**
|
||||
* 检查日期起期 参数为空时,默认为今年第一天,如:2025-01-01
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@Schema(title = "检查日期起期 参数为空时,默认为今年第一天,如:2025-01-01")
|
||||
private Date checkInDateBegin;
|
||||
/**
|
||||
* 检查日期止期 参数为空时,默认为今天
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@Schema(title = "检查日期止期 参数为空时,默认为今天")
|
||||
private Date checkInDateEnd;
|
||||
/**
|
||||
* 是否成功控降 是否成功空降,1:是/0.否
|
||||
*/
|
||||
@Schema(title = "是否成功控降 是否成功空降,1:是/0.否")
|
||||
private String successFlag;
|
||||
/**
|
||||
* 页码 从1开始
|
||||
*/
|
||||
@Schema(title = "页码 从1开始")
|
||||
private Integer pageNo;
|
||||
/**
|
||||
* 每页数量
|
||||
*/
|
||||
@Schema(title = "每页数量")
|
||||
private Integer pageSize;
|
||||
|
||||
public HealthRoomDTO() {
|
||||
Date date = new Date();
|
||||
this.checkInDateBegin = DateUtil.beginOfYear(date);
|
||||
this.checkInDateEnd = DateUtil.endOfDay(date);
|
||||
this.pageNo = 1;
|
||||
this.pageSize = 10;
|
||||
}
|
||||
}
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
package com.renkang.anyan.model.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 健康打卡异常数据详情查询参数
|
||||
*/
|
||||
@Data
|
||||
public class HealthSignListParam {
|
||||
/**
|
||||
*单位
|
||||
*/
|
||||
@Schema(title = "单位")
|
||||
private String departName;
|
||||
/**
|
||||
* 员工姓名
|
||||
*/
|
||||
@Schema(title = "员工姓名")
|
||||
private String name;
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
@Schema(title = "开始时间")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date inputDateBegin;
|
||||
/**
|
||||
*结束时间
|
||||
*/
|
||||
@Schema(title = "结束时间")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date inputDateEnd;
|
||||
/**
|
||||
* pageNo
|
||||
*/
|
||||
@Schema(title = "pageNo")
|
||||
private Integer pageNo = 1;
|
||||
/**
|
||||
* pageSize
|
||||
*/
|
||||
@Schema(title = "pageSize")
|
||||
private Integer pageSize = 10;
|
||||
}
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
package com.renkang.anyan.model.dto;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class MedicalAbnormalDTO {
|
||||
/**
|
||||
* 单位名称
|
||||
*/
|
||||
private String departName;
|
||||
/**
|
||||
* 员工姓名
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 检查日期起期 参数为空时,默认为今年第一天,如:2025-01-01
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@Schema(title = "检查日期起期 参数为空时,默认为今年第一天,如:2025-01-01")
|
||||
private Date checkInDateBegin;
|
||||
/**
|
||||
* 检查日期止期 参数为空时,默认为今天
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@Schema(title = "检查日期止期 参数为空时,默认为今天")
|
||||
private Date checkInDateEnd;
|
||||
/**
|
||||
* 查询类型 1:心血管异常/2:脑血管异常/3:冠脉CT异常
|
||||
*/
|
||||
@Schema(title = "查询类型 1:心血管异常/2:脑血管异常/3:冠脉CT异常")
|
||||
@NotNull
|
||||
private String queryType;
|
||||
/**
|
||||
* 页码 从1开始
|
||||
*/
|
||||
@Schema(title = "页码 从1开始")
|
||||
private Integer pageNo;
|
||||
/**
|
||||
* 每页数量
|
||||
*/
|
||||
@Schema(title = "每页数量")
|
||||
private Integer pageSize;
|
||||
|
||||
public MedicalAbnormalDTO() {
|
||||
Date date = new Date();
|
||||
this.checkInDateBegin = DateUtil.beginOfYear(date);
|
||||
this.checkInDateEnd = DateUtil.endOfDay(date);
|
||||
this.pageNo = 1;
|
||||
this.pageSize = 10;
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AuthResult {
|
||||
/**
|
||||
*范围
|
||||
*/
|
||||
private String scope;
|
||||
/**
|
||||
*有效期
|
||||
*/
|
||||
private Integer expires_in;
|
||||
/**
|
||||
* token_type
|
||||
*/
|
||||
private String token_type;
|
||||
/**
|
||||
* token
|
||||
*/
|
||||
private String access_token;
|
||||
}
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Schema(title="健康打卡血压异常数据详细", description="健康打卡血压异常数据详细")
|
||||
public class BloodPressureList extends XjUserBaseInfo {
|
||||
/**
|
||||
*收缩压
|
||||
*/
|
||||
@Schema(title = "收缩压")
|
||||
private String sbp;
|
||||
/**
|
||||
*收缩压是否异常
|
||||
*/
|
||||
@Schema(title = "收缩压是否异常")
|
||||
private String sbpFlag;
|
||||
/**
|
||||
*舒张压
|
||||
*/
|
||||
@Schema(title = "舒张压")
|
||||
private String dbp;
|
||||
/**
|
||||
*舒张压是否异常
|
||||
*/
|
||||
@Schema(title = "舒张压是否异常")
|
||||
private String dbpFlag;
|
||||
/**
|
||||
*填报时间 YYYY-MM-DD
|
||||
*/
|
||||
@Schema(title = "填报时间")
|
||||
private String inputDate;
|
||||
}
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Schema(title="健康打卡血糖异常数据详细", description="健康打卡血糖异常数据详细")
|
||||
public class BloodSugarClockSList extends XjUserBaseInfo {
|
||||
/**
|
||||
*血糖值
|
||||
*/
|
||||
@Schema(title = "血糖值")
|
||||
private String bsVal;
|
||||
/**
|
||||
*血糖是否异常
|
||||
*/
|
||||
@Schema(title = "血糖是否异常")
|
||||
private String bsFlag;
|
||||
/**
|
||||
*填报时间 YYYY-MM-DD
|
||||
*/
|
||||
@Schema(title = "填报时间")
|
||||
private String inputDate;
|
||||
}
|
||||
-56
@@ -1,56 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.jeecg.common.aspect.annotation.Dict;
|
||||
|
||||
@Data
|
||||
@Schema(title="健康小屋数据详情列表", description="健康小屋数据详情列表")
|
||||
public class HealthPlaceHomDetailsVO {
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@Schema(title = "单位")
|
||||
private String departName;
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@Schema(title = "姓名")
|
||||
private String name;
|
||||
/**
|
||||
* 检查日期
|
||||
*/
|
||||
@Schema(title = "检查日期")
|
||||
private String checkInDate;
|
||||
/**
|
||||
* 检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加
|
||||
*/
|
||||
@Schema(title = "检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加")
|
||||
@Dict(dicCode = "xj_check_type")
|
||||
private String checkType;
|
||||
/**
|
||||
* 去年体检值 前一年的体检值(初始值)
|
||||
*/
|
||||
@Schema(title = "去年体检值 前一年的体检值(初始值)")
|
||||
private String lastVal;
|
||||
/**
|
||||
* 控降目标 一人一档(控降目标值)
|
||||
*/
|
||||
@Schema(title = "控降目标 一人一档(控降目标值")
|
||||
private String goalVal;
|
||||
/**
|
||||
* 目前测量值 目前控降数值(可和健康打卡最新值一致)
|
||||
*/
|
||||
@Schema(title = "目前测量值 目前控降数值(可和健康打卡最新值一致)")
|
||||
private String currentVal;
|
||||
/**
|
||||
* 控降差值 和控降目标对比
|
||||
*/
|
||||
@Schema(title = "控降差值 和控降目标对比")
|
||||
private String compareVal;
|
||||
/**
|
||||
* 是否成功空降,1:是/0.否
|
||||
*/
|
||||
@Schema(title = "是否成功空降,1:是/0.否")
|
||||
private String successFlag;
|
||||
}
|
||||
-39
@@ -1,39 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(title="健康小屋数据VO", description="健康小屋数据VO")
|
||||
public class HealthPlaceHomListVO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@Schema(title = "单位")
|
||||
private String departName;
|
||||
/**
|
||||
* 地点
|
||||
*/
|
||||
@Schema(title = "地点")
|
||||
private String address;
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
@Schema(title = "经度")
|
||||
private String lon;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
@Schema(title = "纬度")
|
||||
private String lat;
|
||||
/**
|
||||
* 建设时间 YYYY-MM-DD
|
||||
*/
|
||||
@Schema(title = "建设时间(YYYY-MM-DD)")
|
||||
private String buildDate;
|
||||
}
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(title="新疆健康小屋对象", description="新疆健康小屋对象")
|
||||
public class HealthRoomVO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
/**
|
||||
* 地址
|
||||
*/
|
||||
@Schema(title = "地址")
|
||||
private String address;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@Schema(title = "单位")
|
||||
private String departName;
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
@Schema(title = "经度")
|
||||
private String lon;
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
@Schema(title = "纬度")
|
||||
private String lat;
|
||||
/**
|
||||
* 建设时间 yyyy-MM-dd
|
||||
*/
|
||||
@Schema(title = "建设时间")
|
||||
private String buildDate;
|
||||
}
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(title="打卡人数统计", description="打卡人数统计")
|
||||
public class HealthSignStatVO {
|
||||
/**
|
||||
* 减重打卡总人数
|
||||
*/
|
||||
@Schema(title = "减重打卡总人数")
|
||||
private String weigtTotalCount;
|
||||
/**
|
||||
* 减重异常人数
|
||||
*/
|
||||
@Schema(title = "减重异常人数")
|
||||
private String weigtAbCount;
|
||||
/**
|
||||
* 血压打卡总人数
|
||||
*/
|
||||
@Schema(title = "血压打卡总人数")
|
||||
private String bpTotalCount;
|
||||
/**
|
||||
* 血压异常人数
|
||||
*/
|
||||
@Schema(title = "血压异常人数")
|
||||
private String bpAbCount;
|
||||
|
||||
/**
|
||||
* 血糖打卡总人数
|
||||
*/
|
||||
@Schema(title = "血糖打卡总人数")
|
||||
private String bsTotalCount;
|
||||
/**
|
||||
* 血糖异常人数
|
||||
*/
|
||||
@Schema(title = "血糖异常人数")
|
||||
private String bsAbCount;
|
||||
}
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(title="油田医院VO", description="油田医院VO")
|
||||
public class HospitalListVO {
|
||||
/**
|
||||
* 医院名称
|
||||
*/
|
||||
@Schema(title = "医院名称")
|
||||
private String hospitalName;
|
||||
/**
|
||||
* 别名
|
||||
*/
|
||||
@Schema(title = "别名")
|
||||
private String alias;
|
||||
/**
|
||||
* 地点
|
||||
*/
|
||||
@Schema(title = "地点")
|
||||
private String address;
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
@Schema(title = "经度")
|
||||
private String lon;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
@Schema(title = "纬度")
|
||||
private String lat;
|
||||
/**
|
||||
* 签约时间 YYYY-MM-DD
|
||||
*/
|
||||
@Schema(title = "签约时间(YYYY-MM-DD)")
|
||||
private String contractDate;
|
||||
}
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MedicalAbnormalStatisticsVO {
|
||||
private Integer totalCount;
|
||||
// 心血管异常人数
|
||||
private Integer cardiovaAbCount;
|
||||
// 脑血管异常人数
|
||||
private Integer cerebrovAbCount;
|
||||
// 冠脉ct异常人数
|
||||
private Integer cctaAbCount;
|
||||
}
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.jeecg.common.aspect.annotation.Dict;
|
||||
|
||||
@Data
|
||||
public class MedicalAbnormalVO {
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@Schema(title = "单位")
|
||||
private String departName;
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@Schema(title = "姓名")
|
||||
private String name;
|
||||
/**
|
||||
* 身份证号
|
||||
*/
|
||||
@Schema(title = "身份证号")
|
||||
private String idCard;
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
@Schema(title = "性别")
|
||||
@Dict(dicCode = "sex2")
|
||||
private Integer sex;
|
||||
/**
|
||||
* 年龄
|
||||
*/
|
||||
@Schema(title = "年龄")
|
||||
private Integer age;
|
||||
/**
|
||||
* 体检医院
|
||||
*/
|
||||
@Schema(title = "体检医院")
|
||||
private String hospitalName;
|
||||
/**
|
||||
* 检查日期
|
||||
*/
|
||||
@Schema(title = "检查日期")
|
||||
private String checkInDate;
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MedicalPeopleNumStatisticsVO {
|
||||
/**
|
||||
* 医院名称
|
||||
*/
|
||||
@Schema(title = "医院名称")
|
||||
private String hospitalName;
|
||||
/**
|
||||
* 别名 为了显示或别的目的,医院名称过长导致不好显示,最好增加短的别名,如果没有则和hospitalName保持一致
|
||||
*/
|
||||
@Schema(title = "别名")
|
||||
private String alias;
|
||||
/**
|
||||
* 已参检人数
|
||||
*/
|
||||
@Schema(title = "已参检人数")
|
||||
private Integer checkedCount;
|
||||
}
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Schema(title="健康打卡体重异常数据详细", description="健康打卡体重异常数据详细")
|
||||
public class WeightPressureList extends XjUserBaseInfo {
|
||||
/**
|
||||
*腰围(CM)
|
||||
*/
|
||||
@Schema(title = "腰围(CM)")
|
||||
private String waist;
|
||||
/**
|
||||
*身高(M)
|
||||
*/
|
||||
@Schema(title = "身高(M)")
|
||||
private String height;
|
||||
/**
|
||||
*体重(KG)
|
||||
*/
|
||||
@Schema(title = "体重(KG)")
|
||||
private String weight;
|
||||
/**
|
||||
*BMI
|
||||
*/
|
||||
@Schema(title = "BMI")
|
||||
private String bmi;
|
||||
/**
|
||||
*BMI是否异常(1:是/0:否)
|
||||
*/
|
||||
@Schema(title = "BMI是否异常(1:是/0:否)")
|
||||
private String bmiFlag;
|
||||
/**
|
||||
*填报时间 YYYY-MM-DD
|
||||
*/
|
||||
@Schema(title = "填报时间")
|
||||
private String inputDate;
|
||||
}
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
package com.renkang.anyan.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 员工基本信息
|
||||
*/
|
||||
@Data
|
||||
public class XjUserBaseInfo {
|
||||
/**
|
||||
*单位
|
||||
*/
|
||||
@Schema(title = "单位")
|
||||
private String departName;
|
||||
/**
|
||||
*姓名
|
||||
*/
|
||||
@Schema(title = "姓名")
|
||||
private String name;
|
||||
/**
|
||||
*身份证号
|
||||
*/
|
||||
@Schema(title = "身份证号")
|
||||
private String idCard;
|
||||
/**
|
||||
*年龄
|
||||
*/
|
||||
@Schema(title = "年龄")
|
||||
private String age;
|
||||
/**
|
||||
*性别
|
||||
*/
|
||||
@Schema(title = "性别")
|
||||
private String sex;
|
||||
}
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
package com.renkang.anyan.utils;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* IPage 类型装换
|
||||
* @param <T>
|
||||
*/
|
||||
public class PageResultToBeanUtil<T> {
|
||||
|
||||
public IPage<T> transform(Result<Object> result,Class<T> tClass) {
|
||||
IPage<?> page = BeanUtil.toBean(result.getResult(), Page.class);
|
||||
IPage<T> iPage = new Page<>();
|
||||
BeanUtil.copyProperties(page,iPage,"records");
|
||||
if(page.getTotal() > 0){
|
||||
iPage.setRecords(page.getRecords().stream().map(o ->BeanUtil.toBean(o, tClass)).collect(Collectors.toList()));
|
||||
}
|
||||
return iPage;
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- feign -->
|
||||
|
||||
@@ -13,18 +13,22 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-consultation-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-emergency-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-im-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-cloud-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -50,4 +54,21 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>biz-obf</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.wvengen</groupId>
|
||||
<artifactId>proguard-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod, Exceptions, MethodParameters
|
||||
-keep @org.springframework.stereotype.Service class *
|
||||
-keep @org.springframework.web.bind.annotation.RestController class *
|
||||
-keep @org.springframework.context.annotation.Configuration class * { *; }
|
||||
-keep @org.springframework.stereotype.Component class *
|
||||
-keep class lombok.** { *; }
|
||||
-keepclassmembers enum * { # 保留枚举结构
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
-keepclassmembers class * implements java.io.Serializable { *; }
|
||||
-keepclassmembers class * {
|
||||
@org.springframework.web.bind.annotation.*Mapping *;
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
private static synthetic java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
@lombok.Getter *;
|
||||
@lombok.Setter *;
|
||||
}
|
||||
# MyBatis 专用保留规则
|
||||
-keep interface com.renkang.**.mapper.** { *; }
|
||||
-keep class com.renkang.**.entity.** { *; }
|
||||
-keep class com.renkang.**.bean.** { *; }
|
||||
-keep class com.renkang.**.model.** { *; }
|
||||
-keep class com.renkang.**.vo.** { *; }
|
||||
-keepparameternames
|
||||
|
||||
# 关闭优化和压缩(避免框架兼容性问题)
|
||||
-dontshrink # 不删除未使用代码
|
||||
-dontoptimize # 不优化字节码[5,6](@ref)
|
||||
-keepdirectories
|
||||
-dontusemixedcaseclassnames
|
||||
-adaptclassstrings
|
||||
# 混淆选项
|
||||
-useuniqueclassmembernames # 成员名称唯一化
|
||||
-ignorewarnings
|
||||
+2
-2
@@ -4,11 +4,11 @@ import com.renkang.consultation.api.storge.redis.ConHealthInfoRedisTunnel;
|
||||
import com.renkang.consultation.entity.ConHealthInfo;
|
||||
import com.renkang.consultation.mapper.ConHealthInfoMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@Component
|
||||
public class ComposeConHealthInfo {
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@ import com.renkang.consultation.entity.ConKnowledge;
|
||||
import com.renkang.consultation.mapper.ConKnowledgeMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Repository
|
||||
@Component
|
||||
public class ComposeConKnowledge {
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -4,11 +4,11 @@ import com.renkang.consultation.api.storge.db.ConKnowledgeCategoryDbTunnel;
|
||||
import com.renkang.consultation.api.storge.redis.ConKnowledgeCategoryRedisTunnel;
|
||||
import com.renkang.consultation.entity.ConKnowledgeCategory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@Component
|
||||
public class ComposeConKnowledgeCategory {
|
||||
|
||||
@Autowired
|
||||
|
||||
+2
-2
@@ -5,11 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.renkang.consultation.entity.ConKnowledgeCategory;
|
||||
import com.renkang.consultation.mapper.ConKnowledgeCategoryMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@Component
|
||||
public class ConKnowledgeCategoryDbTunnel {
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@ import com.renkang.consultation.entity.ConDoctorFollow;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Repository
|
||||
@Component
|
||||
public class ConDoctorFollowReidsTunnel {
|
||||
|
||||
@Autowired
|
||||
|
||||
+2
-2
@@ -4,11 +4,11 @@ import com.renkang.consultation.api.RedisConstants;
|
||||
import com.renkang.consultation.entity.ConHealthInfo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@Component
|
||||
public class ConHealthInfoRedisTunnel {
|
||||
|
||||
@Autowired
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@ import com.renkang.consultation.entity.ConHospitalFollow;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Repository
|
||||
@Component
|
||||
public class ConHospitalFollowReidsTunnel {
|
||||
|
||||
@Autowired
|
||||
|
||||
+2
-2
@@ -4,11 +4,11 @@ import com.renkang.consultation.api.RedisConstants;
|
||||
import com.renkang.consultation.entity.ConKnowledgeCategory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@Component
|
||||
public class ConKnowledgeCategoryRedisTunnel {
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
FROM anapsix/alpine-java:8_server-jre_unlimited
|
||||
|
||||
MAINTAINER xxx@163.com
|
||||
|
||||
|
||||
ENV PROFILE_NAME dev
|
||||
ENV SERVER_PORT 7010
|
||||
ENV NACOS_SERVER_ADDR nacos250:8848
|
||||
ENV NACOS_USERNAME xjuser
|
||||
ENV NACOS_PASSWORD Aa135790!123
|
||||
ENV NACOS_NAMESPACE 3af98a54-4a44-4576-8e28-bf5781c0dccf
|
||||
ENV NACOS_GROUP dev
|
||||
ENV PROFILE_NAME=dev \
|
||||
SERVER_PORT=7010 \
|
||||
NACOS_SERVER_ADDR=nacos250:8848 \
|
||||
NACOS_USERNAME=xjuser \
|
||||
NACOS_PASSWORD=Aa135790!123 \
|
||||
NACOS_NAMESPACE=3af98a54-4a44-4576-8e28-bf5781c0dccf \
|
||||
NACOS_GROUP=dev
|
||||
|
||||
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
@@ -20,6 +17,6 @@ WORKDIR /health-consultation-start
|
||||
|
||||
EXPOSE 7010
|
||||
|
||||
ADD ./target/health-consultation-start.jar ./
|
||||
COPY ./target/health-consultation-start-xj.jar ./
|
||||
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-consultation-start.jar
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-consultation-start-xj.jar
|
||||
@@ -9,6 +9,11 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>health-consultation-start</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!--微服务启动 starter-->
|
||||
<dependency>
|
||||
@@ -24,6 +29,7 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-consultation-biz</artifactId>
|
||||
<classifier>${biz-classifier}</classifier>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
<version>2.0.0</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<!--项目子模块-->
|
||||
<modules>
|
||||
<module>health-consultation-api</module>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- feign -->
|
||||
|
||||
-5
@@ -3,20 +3,15 @@ package com.renkang.emergency.entity;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName("emergency_health_room")
|
||||
@Schema(title="新疆健康小屋", description="新疆健康小屋表")
|
||||
public class EmergencyHealthRoom {
|
||||
|
||||
/**
|
||||
|
||||
-101
@@ -1,101 +0,0 @@
|
||||
package com.renkang.emergency.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName("large_screen_data")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Schema(title = "large_screen_data对象", description = "large_screen_data")
|
||||
public class LargeScreenData implements Serializable {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@Schema(title = "主键")
|
||||
private String id;
|
||||
|
||||
private String centerId;
|
||||
|
||||
/**
|
||||
* 开关类型
|
||||
* 最新呼入电话gross 最新受理电话alerdyreceive 突发重大伤病应急jqqz 重大伤病应急就医dbjy 累计受理totaldeal 累计处置totalacceptance
|
||||
*
|
||||
* 120oneTwenty 应急就医hospital
|
||||
*
|
||||
* 体检人数medical
|
||||
*
|
||||
* 减重今日打卡weightLossCountDay 减重本月打卡weightLossCountMonth 减重今日异常weightLossAbnormalCountDay 减重本月异常weightLossAbnormalCountMonth
|
||||
* 血糖今日打卡bloodSugarCountDay 血糖本月打卡bloodSugarCountMonth 血糖今日异常bloodSugarAbnormalCountDay 血糖本月异常bloodSugarAbnormalCountMonth
|
||||
* 血压今日打卡bloodPressureCountDay 血压本月打卡bloodPressureCountMonth 血压今日异常bloodPressureAbnormalCountDay 血压本月异常bloodPressureAbnormalCountMonth
|
||||
*
|
||||
* 体检总totalCount 心血管异常cardiovaAbCount 脑血管异常cerebrovAbCount 冠状CT异常cctaAbCount
|
||||
*/
|
||||
@Schema(title = "开关类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 开启状态(0:未开启 1:开启)
|
||||
*/
|
||||
@Schema(title = "开启状态(0:未开启 1:开启)")
|
||||
private String status;
|
||||
|
||||
@Schema(title = "名称(体检机构才有值)")
|
||||
private String name;
|
||||
|
||||
@Schema(title = "值")
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@Schema(title = "创建人")
|
||||
private String createBy;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@Schema(title = "创建时间")
|
||||
private Date createTime;
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@Schema(title = "更新人")
|
||||
private String updateBy;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@Schema(title = "更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
public LargeScreenData() {}
|
||||
|
||||
|
||||
public LargeScreenData(LargeScreenDataValueDTO dto){
|
||||
this.id = dto.getId();
|
||||
this.centerId = dto.getCenterId();
|
||||
this.type = dto.getType();
|
||||
this.status = dto.getStatus();
|
||||
this.name = dto.getName();
|
||||
this.value = dto.getValue();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+3
-3
@@ -68,10 +68,10 @@ public class Resource implements Serializable {
|
||||
@Schema(title = "纬度")
|
||||
private BigDecimal latitude;
|
||||
/**
|
||||
* 资源类型(1:油田医院 3:健康小屋 5:救护车) 202508xj 项目字典发生变化 , 使用字典resource_type ,
|
||||
* 资源类型(1:油田医院 2:合作医院 3:医疗点 4: )
|
||||
*/
|
||||
@Excel(name = "资源类型(1:油田医院 3:健康小屋 5:救护车)", width = 15)
|
||||
@Schema(title = "资源类型(1:油田医院 3:健康小屋 5:救护车 )")
|
||||
@Excel(name = "资源类型(1:油田医院 2:合作医院 3:医疗点 4: )", width = 15)
|
||||
@Schema(title = "资源类型(1:油田医院 2:合作医院 3:医疗点 4: )")
|
||||
private String type;
|
||||
/**
|
||||
* 救治范围
|
||||
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
package com.renkang.emergency.entity.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LargeScreenDataValueDTO {
|
||||
private String id;
|
||||
private String centerId;
|
||||
private String value;
|
||||
private String name;
|
||||
private String type;
|
||||
private String status;
|
||||
}
|
||||
-157
@@ -1,157 +0,0 @@
|
||||
package com.renkang.emergency.entity.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DataDetailVO {
|
||||
private String centerId;
|
||||
private String module;
|
||||
/**
|
||||
* 服务详情
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 应急就医
|
||||
*/
|
||||
private String emergencyNum;
|
||||
private String emergencyNumStatus;
|
||||
|
||||
/**
|
||||
* 重大伤病
|
||||
*/
|
||||
private String illNum;
|
||||
private String illNumStatus;
|
||||
/**
|
||||
* 受理电话
|
||||
*/
|
||||
private String latestAcceptCall;
|
||||
private String latestAcceptCallStatus;
|
||||
/**
|
||||
* 呼入电话
|
||||
*/
|
||||
private String latestCall;
|
||||
private String latestCallStatus;
|
||||
/**
|
||||
* 累计受理
|
||||
*/
|
||||
private String totalAccept;
|
||||
private String totalAcceptStatus;
|
||||
/**
|
||||
* 累计处置
|
||||
*/
|
||||
private String totalDisposal;
|
||||
private String totalDisposalStatus;
|
||||
|
||||
|
||||
/**
|
||||
* 主诉分类
|
||||
*/
|
||||
|
||||
/**
|
||||
* 应急就医
|
||||
*/
|
||||
private String emergencyCount;
|
||||
private String emergencyCountStatus;
|
||||
|
||||
/**
|
||||
* 120
|
||||
*/
|
||||
private String hospitalCount;
|
||||
private String hospitalCountStatus;
|
||||
|
||||
/**
|
||||
* 健康打卡人数
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 减重今日打卡人数
|
||||
*/
|
||||
private String weightLossCountDay;
|
||||
private String weightLossCountDayStatus;
|
||||
/**
|
||||
* 减重本月打卡人数
|
||||
*/
|
||||
private String weightLossCountMonth;
|
||||
private String weightLossCountMonthStatus;
|
||||
/**
|
||||
* 减重今日异常人数
|
||||
*/
|
||||
private String weightLossAbnormalCountDay;
|
||||
private String weightLossAbnormalCountDayStatus;
|
||||
/**
|
||||
* 减重本月异常人数
|
||||
*/
|
||||
private String weightLossAbnormalCountMonth;
|
||||
private String weightLossAbnormalCountMonthStatus;
|
||||
/**
|
||||
* 血糖今日打卡人数
|
||||
*/
|
||||
private String bloodSugarCountDay;
|
||||
private String bloodSugarCountDayStatus;
|
||||
/**
|
||||
* 血糖本月打卡人数
|
||||
*/
|
||||
private String bloodSugarCountMonth;
|
||||
private String bloodSugarCountMonthStatus;
|
||||
/**
|
||||
* 血糖今日异常人数
|
||||
*/
|
||||
private String bloodSugarAbnormalCountDay;
|
||||
private String bloodSugarAbnormalCountDayStatus;
|
||||
/**
|
||||
* 血糖本月异常人数
|
||||
*/
|
||||
private String bloodSugarAbnormalCountMonth;
|
||||
private String bloodSugarAbnormalCountMonthStatus;
|
||||
/**
|
||||
* 血压今日打卡人数
|
||||
*/
|
||||
private String bloodPressureCountDay;
|
||||
private String bloodPressureCountDayStatus;
|
||||
/**
|
||||
* 血压本月打卡人数
|
||||
*/
|
||||
private String bloodPressureCountMonth;
|
||||
private String bloodPressureCountMonthStatus;
|
||||
/**
|
||||
* 血压今日异常人数
|
||||
*/
|
||||
private String bloodPressureAbnormalCountDay;
|
||||
private String bloodPressureAbnormalCountDayStatus;
|
||||
/**
|
||||
* 血压本月异常人数
|
||||
*/
|
||||
private String bloodPressureAbnormalCountMonth;
|
||||
private String bloodPressureAbnormalCountMonthStatus;
|
||||
|
||||
/**
|
||||
* 体检数据
|
||||
*/
|
||||
|
||||
/**
|
||||
* 体检总人数
|
||||
*/
|
||||
private String totalCount;
|
||||
private String totalCountStatus;
|
||||
|
||||
/**
|
||||
* 心血管异常人数
|
||||
*/
|
||||
private String cardiovaAbCount;
|
||||
private String cardiovaAbCountStatus;
|
||||
|
||||
/**
|
||||
* 脑血管异常人数
|
||||
*/
|
||||
private String cerebrovAbCount;
|
||||
private String cerebrovAbCountStatus;
|
||||
|
||||
/**
|
||||
* 冠状ct异常人数
|
||||
*/
|
||||
private String cctaAbCount;
|
||||
private String cctaAbCountStatus;
|
||||
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
package com.renkang.emergency.entity.vo;
|
||||
|
||||
import com.renkang.emergency.entity.LargeScreenData;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MedicalDataVO {
|
||||
private String id;
|
||||
private String centerId;
|
||||
private String name;
|
||||
private String status;
|
||||
private String count;
|
||||
|
||||
public MedicalDataVO() {}
|
||||
public MedicalDataVO(LargeScreenData data) {
|
||||
id = data.getId();
|
||||
centerId = data.getCenterId();
|
||||
name = data.getName();
|
||||
count = data.getValue();
|
||||
status = data.getStatus();
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>health-emergency-biz</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<!--定时任务-->
|
||||
<dependency>
|
||||
@@ -18,20 +19,20 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-emergency-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-cloud-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-im-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>xj-anyan-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
@@ -50,4 +51,21 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>biz-obf</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.wvengen</groupId>
|
||||
<artifactId>proguard-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod, Exceptions, MethodParameters
|
||||
-keep @org.springframework.stereotype.Service class *
|
||||
-keep @org.springframework.web.bind.annotation.RestController class *
|
||||
-keep @org.springframework.context.annotation.Configuration class * { *; }
|
||||
-keep @org.springframework.stereotype.Component class *
|
||||
-keep class lombok.** { *; }
|
||||
-keepclassmembers enum * { # 保留枚举结构
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
-keepclassmembers class * implements java.io.Serializable { *; }
|
||||
-keepclassmembers class * {
|
||||
@org.springframework.web.bind.annotation.*Mapping *;
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
private static synthetic java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
@lombok.Getter *;
|
||||
@lombok.Setter *;
|
||||
}
|
||||
# MyBatis 专用保留规则
|
||||
-keep interface com.renkang.**.mapper.** { *; }
|
||||
-keep class com.renkang.**.entity.** { *; }
|
||||
-keep class com.renkang.**.bean.** { *; }
|
||||
-keep class com.renkang.**.model.** { *; }
|
||||
-keep class com.renkang.**.vo.** { *; }
|
||||
-keepparameternames
|
||||
|
||||
# 关闭优化和压缩(避免框架兼容性问题)
|
||||
-dontshrink # 不删除未使用代码
|
||||
-dontoptimize # 不优化字节码[5,6](@ref)
|
||||
-keepdirectories
|
||||
-dontusemixedcaseclassnames
|
||||
-adaptclassstrings
|
||||
# 混淆选项
|
||||
-useuniqueclassmembernames # 成员名称唯一化
|
||||
-ignorewarnings
|
||||
-7
@@ -3,7 +3,6 @@ package com.renkang.emergency.controller;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Validator;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.renkang.emergency.api.service.impl.LargeScreenImpl;
|
||||
import com.renkang.emergency.async.AsyncImportService;
|
||||
@@ -94,9 +93,6 @@ public class TblQimoNoticeController {
|
||||
if (!checkCallBackType(qimoVo)) {
|
||||
return "200";
|
||||
}
|
||||
// if(!"8027,8028,8029,8030".contains(qimoVo.getAgentName()) || !"8027,8028,8029,8030".contains(qimoVo.getExten()) ){//新疆使用的工号排除
|
||||
// return "200";
|
||||
// }
|
||||
GlobalUtils.setHttpFeignToken();
|
||||
// 七陌重复推送处理,3分钟内同ID去重
|
||||
if (redisUtil.get(qimoVo.getCallSheetID()) != null) {
|
||||
@@ -104,9 +100,6 @@ public class TblQimoNoticeController {
|
||||
}
|
||||
redisUtil.set(qimoVo.getCallSheetID(), qimoVo.getCalledNo(), 60 * 3);
|
||||
|
||||
if(StrUtil.isNotBlank(qimoVo.getCallNo()) && qimoVo.getCallNo().startsWith("0086")){
|
||||
qimoVo.setCallNo(qimoVo.getCallNo().substring(4));
|
||||
}
|
||||
TblQimoNotice notice = QimoVoUtil.copyToEntity(qimoVo);
|
||||
if (!"1".equals(qimoNotice)) {
|
||||
return "200"; // 不推送
|
||||
|
||||
+4
-67
@@ -1,13 +1,9 @@
|
||||
package com.renkang.emergency.largeScreen.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.renkang.anyan.model.vo.MedicalPeopleNumStatisticsVO;
|
||||
import com.renkang.emergency.entity.dto.*;
|
||||
import com.renkang.emergency.entity.vo.DataDetailVO;
|
||||
import com.renkang.emergency.entity.vo.MedicalDataVO;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.*;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.*;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenService;
|
||||
import com.renkang.emergency.service.ITbUserHelpMacService;
|
||||
import com.renkang.emergency.service.ITblAmbulanceGpsService;
|
||||
@@ -29,11 +25,11 @@ import java.util.List;
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class LargeScreenNewController {
|
||||
|
||||
private final ITbUserHelpMacService tbUserHelpMacService;
|
||||
private final YcLargeScreenService ycLargeScreenService;
|
||||
private final ITblAmbulanceGpsService tblAmbulanceGpsService;
|
||||
private final ILargeScreenService largeScreenService;
|
||||
private final ILargeScreenDataService largeScreenDataService;
|
||||
|
||||
/**
|
||||
* 获取地图
|
||||
@@ -46,7 +42,7 @@ public class LargeScreenNewController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务详情数据-24.09.19 新版大屏接口 25-07-28 修改假数据逻辑
|
||||
* 服务详情数据-24.09.19 新版大屏接口
|
||||
*/
|
||||
@PostMapping("/statisticsNew")
|
||||
@Operation(summary = "服务详情数据", description = "服务详情数据")
|
||||
@@ -151,68 +147,9 @@ public class LargeScreenNewController {
|
||||
}
|
||||
|
||||
@GetMapping("runTest")
|
||||
@Operation(summary = "初始化假数据", description = "初始化假数据")
|
||||
@Operation(summary = "推假数据", description = "推假数据")
|
||||
public void runTest(){
|
||||
largeScreenDataService.runTest();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑或新增
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("editValue")
|
||||
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){
|
||||
return Result.ok(largeScreenDataService.editData(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("deleteValue")
|
||||
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){
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 假数据查询(体检人数)
|
||||
*/
|
||||
@GetMapping("medicalDataDetail")
|
||||
public Result<List<MedicalDataVO>> medicalDataDetail(@RequestParam(name = "centerId") String centerId){
|
||||
return Result.ok(largeScreenDataService.medicalDataDetail(centerId));
|
||||
largeScreenService.runTest();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+18
-18
@@ -3,21 +3,21 @@ package com.renkang.emergency.largeScreen.entity.vo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
//@Data
|
||||
//public class MedicalPeopleNumStatisticsVO {
|
||||
// /**
|
||||
// * 医院名称
|
||||
// */
|
||||
// @Schema(title = "医院名称")
|
||||
// private String hospitalName;
|
||||
// /**
|
||||
// * 已参检人数
|
||||
// */
|
||||
// @Schema(title = "已参检人数")
|
||||
// private Integer checkedCount;
|
||||
// /**
|
||||
// * 应检人数 (可能无法提供 先冗余)
|
||||
// */
|
||||
// @Schema(title = "应检人数 (可能无法提供 先冗余)")
|
||||
// private Integer totalCount;
|
||||
//}
|
||||
@Data
|
||||
public class MedicalPeopleNumStatisticsVO {
|
||||
/**
|
||||
* 医院名称
|
||||
*/
|
||||
@Schema(title = "医院名称")
|
||||
private String hospitalName;
|
||||
/**
|
||||
* 已参检人数
|
||||
*/
|
||||
@Schema(title = "已参检人数")
|
||||
private Integer checkedCount;
|
||||
/**
|
||||
* 应检人数 (可能无法提供 先冗余)
|
||||
*/
|
||||
@Schema(title = "应检人数 (可能无法提供 先冗余)")
|
||||
private Integer totalCount;
|
||||
}
|
||||
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
package com.renkang.emergency.largeScreen.mapper;
|
||||
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import com.renkang.emergency.entity.LargeScreenData;
|
||||
|
||||
/**
|
||||
* @Description: large_screen
|
||||
* @Author: wang hao
|
||||
* @Date: 2025-07-04
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface LargeScreenDataMapper extends MPJBaseMapper<LargeScreenData> {
|
||||
|
||||
}
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
package com.renkang.emergency.largeScreen.service;
|
||||
|
||||
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.MedicalDataVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: LargeScreenData
|
||||
* @Author: wang hao
|
||||
* @Date: 2025-07-25
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface ILargeScreenDataService extends IService<LargeScreenData> {
|
||||
|
||||
void runTest();
|
||||
|
||||
Boolean editValue(LargeScreenDataValueDTO dto);
|
||||
|
||||
Boolean editData(DataDetailVO dto);
|
||||
|
||||
Boolean deleteValue(LargeScreenDataValueDTO dto);
|
||||
|
||||
Boolean editMedicalValue(List<LargeScreenDataValueDTO> dtoList);
|
||||
|
||||
DataDetailVO dataDetail(String centerId, String module);
|
||||
|
||||
List<MedicalDataVO> medicalDataDetail(String centerId);
|
||||
}
|
||||
+1
-5
@@ -2,7 +2,6 @@ package com.renkang.emergency.largeScreen.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.renkang.anyan.model.vo.MedicalPeopleNumStatisticsVO;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.*;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.*;
|
||||
|
||||
@@ -40,8 +39,5 @@ public interface ILargeScreenService extends IService<LargeScreenMap> {
|
||||
|
||||
void runJob();
|
||||
|
||||
/**
|
||||
* 同步安眼系统中的油田医院数据和监控小屋数据定时任务
|
||||
*/
|
||||
void syncAnYanHospital();
|
||||
void runTest();
|
||||
}
|
||||
|
||||
-433
@@ -1,433 +0,0 @@
|
||||
package com.renkang.emergency.largeScreen.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
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.MedicalDataVO;
|
||||
import com.renkang.emergency.largeScreen.mapper.LargeScreenDataMapper;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: large_screen_data
|
||||
* @Author: wang hao
|
||||
* @Date: 2025-07-25
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMapper, LargeScreenData> implements ILargeScreenDataService {
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void runTest() {
|
||||
if (CollUtil.isNotEmpty(list())) {
|
||||
return;
|
||||
}
|
||||
List<LargeScreenData> list = new ArrayList<>();
|
||||
// 服务详情
|
||||
LargeScreenData service1 = new LargeScreenData();
|
||||
service1.setType("gross");
|
||||
list.add(service1);
|
||||
LargeScreenData service2 = new LargeScreenData();
|
||||
service2.setType("alerdyreceive");
|
||||
list.add(service2);
|
||||
LargeScreenData service3 = new LargeScreenData();
|
||||
service3.setType("jqqz");
|
||||
list.add(service3);
|
||||
LargeScreenData service4 = new LargeScreenData();
|
||||
service4.setType("dbjy");
|
||||
list.add(service4);
|
||||
LargeScreenData service5 = new LargeScreenData();
|
||||
service5.setType("totaldeal");
|
||||
list.add(service5);
|
||||
LargeScreenData service6 = new LargeScreenData();
|
||||
service6.setType("totalacceptance");
|
||||
list.add(service6);
|
||||
|
||||
// 主诉分类
|
||||
|
||||
|
||||
// 体检人数
|
||||
LargeScreenData medical1 = new LargeScreenData();
|
||||
medical1.setType("medical");
|
||||
medical1.setName("克拉玛依医院");
|
||||
list.add(medical1);
|
||||
|
||||
// 健康打卡人数
|
||||
|
||||
|
||||
// 体检数据
|
||||
|
||||
saveBatch(list);
|
||||
}
|
||||
|
||||
public Boolean editValue(LargeScreenDataValueDTO dto) {
|
||||
if (StrUtil.isEmpty(dto.getCenterId())) {
|
||||
return false;
|
||||
}
|
||||
LambdaQueryWrapper<LargeScreenData> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LargeScreenData::getType, dto.getType());
|
||||
queryWrapper.eq(LargeScreenData::getCenterId, dto.getCenterId());
|
||||
queryWrapper.eq(ObjUtil.isNotEmpty(dto.getId()),LargeScreenData::getId, dto.getId());
|
||||
if (CollUtil.isNotEmpty(list())) {
|
||||
LambdaUpdateWrapper<LargeScreenData> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(LargeScreenData::getType, dto.getType());
|
||||
updateWrapper.eq(ObjUtil.isNotEmpty(dto.getId()),LargeScreenData::getId, dto.getId());
|
||||
updateWrapper.set(LargeScreenData::getValue, dto.getValue());
|
||||
updateWrapper.set(LargeScreenData::getStatus, dto.getStatus());
|
||||
return update(updateWrapper);
|
||||
}
|
||||
return save(new LargeScreenData(dto));
|
||||
}
|
||||
|
||||
@Transactional()
|
||||
public Boolean editData(DataDetailVO dto){
|
||||
List<LargeScreenData> list = new ArrayList<>();
|
||||
switch (dto.getModule()) {
|
||||
case "9":
|
||||
// 服务详情
|
||||
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType,
|
||||
Arrays.asList("gross", "alerdyreceive", "jqqz", "dbjy", "totaldeal", "totalacceptance")));
|
||||
LargeScreenData service1 = new LargeScreenData();
|
||||
service1.setType("gross");
|
||||
service1.setStatus(dto.getLatestCallStatus());
|
||||
service1.setValue(dto.getLatestCall());
|
||||
service1.setCenterId(dto.getCenterId());
|
||||
list.add(service1);
|
||||
LargeScreenData service2 = new LargeScreenData();
|
||||
service2.setType("alerdyreceive");
|
||||
service2.setStatus(dto.getLatestAcceptCallStatus());
|
||||
service2.setValue(dto.getLatestAcceptCall());
|
||||
service2.setCenterId(dto.getCenterId());
|
||||
list.add(service2);
|
||||
LargeScreenData service3 = new LargeScreenData();
|
||||
service3.setType("jqqz");
|
||||
service3.setStatus(dto.getIllNumStatus());
|
||||
service3.setValue(dto.getIllNum());
|
||||
service3.setCenterId(dto.getCenterId());
|
||||
list.add(service3);
|
||||
LargeScreenData service4 = new LargeScreenData();
|
||||
service4.setType("dbjy");
|
||||
service4.setStatus(dto.getEmergencyNumStatus());
|
||||
service4.setValue(dto.getEmergencyNum());
|
||||
service4.setCenterId(dto.getCenterId());
|
||||
list.add(service4);
|
||||
LargeScreenData service5 = new LargeScreenData();
|
||||
service5.setType("totaldeal");
|
||||
service5.setStatus(dto.getTotalAcceptStatus());
|
||||
service5.setValue(dto.getTotalAccept());
|
||||
service5.setCenterId(dto.getCenterId());
|
||||
list.add(service5);
|
||||
LargeScreenData service6 = new LargeScreenData();
|
||||
service6.setType("totalacceptance");
|
||||
service6.setStatus(dto.getTotalDisposalStatus());
|
||||
service6.setValue(dto.getTotalDisposal());
|
||||
service6.setCenterId(dto.getCenterId());
|
||||
list.add(service6);
|
||||
break;
|
||||
case "31":
|
||||
// 主诉分类
|
||||
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType,
|
||||
Arrays.asList("oneTwenty", "hospital")));
|
||||
LargeScreenData type1 = new LargeScreenData();
|
||||
type1.setType("oneTwenty");
|
||||
type1.setStatus(dto.getHospitalCountStatus());
|
||||
type1.setValue(dto.getHospitalCount());
|
||||
type1.setCenterId(dto.getCenterId());
|
||||
list.add(type1);
|
||||
LargeScreenData type2 = new LargeScreenData();
|
||||
type2.setType("hospital");
|
||||
type2.setStatus(dto.getEmergencyCountStatus());
|
||||
type2.setValue(dto.getEmergencyCount());
|
||||
type2.setCenterId(dto.getCenterId());
|
||||
list.add(type2);
|
||||
break;
|
||||
case "33":
|
||||
// 健康打卡
|
||||
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType,
|
||||
Arrays.asList("weightLossCountDay", "weightLossCountMonth", "weightLossAbnormalCountDay", "weightLossAbnormalCountMonth",
|
||||
"bloodSugarCountDay", "bloodSugarCountMonth", "bloodSugarAbnormalCountDay", "bloodSugarAbnormalCountMonth",
|
||||
"bloodPressureCountDay", "bloodPressureCountMonth", "bloodPressureAbnormalCountDay", "bloodPressureAbnormalCountMonth",
|
||||
"totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount")));
|
||||
|
||||
LargeScreenData sign1 = new LargeScreenData();
|
||||
sign1.setType("weightLossCountDay");
|
||||
sign1.setStatus(dto.getWeightLossCountDayStatus());
|
||||
sign1.setValue(dto.getWeightLossCountDay());
|
||||
sign1.setCenterId(dto.getCenterId());
|
||||
list.add(sign1);
|
||||
LargeScreenData sign2 = new LargeScreenData();
|
||||
sign2.setType("weightLossCountMonth");
|
||||
sign2.setStatus(dto.getWeightLossCountMonthStatus());
|
||||
sign2.setValue(dto.getWeightLossCountMonth());
|
||||
sign2.setCenterId(dto.getCenterId());
|
||||
list.add(sign2);
|
||||
LargeScreenData sign3 = new LargeScreenData();
|
||||
sign3.setType("weightLossAbnormalCountDay");
|
||||
sign3.setStatus(dto.getWeightLossAbnormalCountDayStatus());
|
||||
sign3.setValue(dto.getWeightLossAbnormalCountDay());
|
||||
sign3.setCenterId(dto.getCenterId());
|
||||
list.add(sign3);
|
||||
LargeScreenData sign4 = new LargeScreenData();
|
||||
sign4.setType("weightLossAbnormalCountMonth");
|
||||
sign4.setStatus(dto.getWeightLossAbnormalCountMonthStatus());
|
||||
sign4.setValue(dto.getWeightLossAbnormalCountMonth());
|
||||
sign4.setCenterId(dto.getCenterId());
|
||||
list.add(sign4);
|
||||
LargeScreenData sign5 = new LargeScreenData();
|
||||
sign5.setType("bloodSugarCountDay");
|
||||
sign5.setStatus(dto.getBloodSugarCountDayStatus());
|
||||
sign5.setValue(dto.getBloodSugarCountDay());
|
||||
sign5.setCenterId(dto.getCenterId());
|
||||
list.add(sign5);
|
||||
LargeScreenData sign6 = new LargeScreenData();
|
||||
sign6.setType("bloodSugarCountMonth");
|
||||
sign6.setStatus(dto.getBloodSugarCountMonthStatus());
|
||||
sign6.setValue(dto.getBloodSugarCountMonth());
|
||||
sign6.setCenterId(dto.getCenterId());
|
||||
list.add(sign6);
|
||||
LargeScreenData sign7 = new LargeScreenData();
|
||||
sign7.setType("bloodSugarAbnormalCountDay");
|
||||
sign7.setStatus(dto.getBloodSugarAbnormalCountDayStatus());
|
||||
sign7.setValue(dto.getBloodSugarAbnormalCountDay());
|
||||
sign7.setCenterId(dto.getCenterId());
|
||||
list.add(sign7);
|
||||
LargeScreenData sign8 = new LargeScreenData();
|
||||
sign8.setType("bloodSugarAbnormalCountMonth");
|
||||
sign8.setStatus(dto.getBloodSugarAbnormalCountMonthStatus());
|
||||
sign8.setValue(dto.getBloodSugarAbnormalCountMonth());
|
||||
sign8.setCenterId(dto.getCenterId());
|
||||
list.add(sign8);
|
||||
LargeScreenData sign9 = new LargeScreenData();
|
||||
sign9.setType("bloodPressureCountDay");
|
||||
sign9.setStatus(dto.getBloodPressureCountDayStatus());
|
||||
sign9.setValue(dto.getBloodPressureCountDay());
|
||||
sign9.setCenterId(dto.getCenterId());
|
||||
list.add(sign9);
|
||||
LargeScreenData sign10 = new LargeScreenData();
|
||||
sign10.setType("bloodPressureCountMonth");
|
||||
sign10.setStatus(dto.getBloodPressureCountMonthStatus());
|
||||
sign10.setValue(dto.getBloodPressureCountMonth());
|
||||
sign10.setCenterId(dto.getCenterId());
|
||||
list.add(sign10);
|
||||
LargeScreenData sign11 = new LargeScreenData();
|
||||
sign11.setType("bloodPressureAbnormalCountDay");
|
||||
sign11.setStatus(dto.getBloodPressureAbnormalCountDayStatus());
|
||||
sign11.setValue(dto.getBloodPressureAbnormalCountDay());
|
||||
sign11.setCenterId(dto.getCenterId());
|
||||
list.add(sign11);
|
||||
LargeScreenData sign12 = new LargeScreenData();
|
||||
sign12.setType("bloodPressureAbnormalCountMonth");
|
||||
sign12.setStatus(dto.getBloodPressureAbnormalCountMonthStatus());
|
||||
sign12.setValue(dto.getBloodPressureAbnormalCountMonth());
|
||||
sign12.setCenterId(dto.getCenterId());
|
||||
list.add(sign12);
|
||||
break;
|
||||
case "34":
|
||||
// 体检数据
|
||||
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType,
|
||||
Arrays.asList("totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount")));
|
||||
LargeScreenData medicalData1 = new LargeScreenData();
|
||||
medicalData1.setType("totalCount");
|
||||
medicalData1.setStatus(dto.getTotalCountStatus());
|
||||
medicalData1.setValue(dto.getTotalCount());
|
||||
medicalData1.setCenterId(dto.getCenterId());
|
||||
list.add(medicalData1);
|
||||
LargeScreenData medicalData2 = new LargeScreenData();
|
||||
medicalData2.setType("cardiovaAbCount");
|
||||
medicalData2.setStatus(dto.getCardiovaAbCountStatus());
|
||||
medicalData2.setValue(dto.getCardiovaAbCount());
|
||||
medicalData2.setCenterId(dto.getCenterId());
|
||||
list.add(medicalData2);
|
||||
LargeScreenData medicalData3 = new LargeScreenData();
|
||||
medicalData3.setType("cerebrovAbCount");
|
||||
medicalData3.setStatus(dto.getCerebrovAbCountStatus());
|
||||
medicalData3.setValue(dto.getCerebrovAbCount());
|
||||
medicalData3.setCenterId(dto.getCenterId());
|
||||
list.add(medicalData3);
|
||||
LargeScreenData medicalData4 = new LargeScreenData();
|
||||
medicalData4.setType("cctaAbCount");
|
||||
medicalData4.setStatus(dto.getCctaAbCountStatus());
|
||||
medicalData4.setValue(dto.getCctaAbCount());
|
||||
medicalData4.setCenterId(dto.getCenterId());
|
||||
list.add(medicalData4);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return saveBatch(list);
|
||||
}
|
||||
|
||||
public Boolean deleteValue(LargeScreenDataValueDTO dto) {
|
||||
return remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getId, dto.getId()));
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean editMedicalValue(List<LargeScreenDataValueDTO> dtoList) {
|
||||
remove(new LambdaQueryWrapper<LargeScreenData>().in(LargeScreenData::getType,"medical","32"));
|
||||
if (CollUtil.isNotEmpty(dtoList)) {
|
||||
saveBatch(dtoList.stream().map(LargeScreenData::new).collect(Collectors.toList()));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public DataDetailVO dataDetail(String centerId, String module) {
|
||||
DataDetailVO vo = new DataDetailVO();
|
||||
List<LargeScreenData> list = new ArrayList<>();
|
||||
switch (module) {
|
||||
case "9":
|
||||
// 查询服务详情相关数据
|
||||
list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
|
||||
Arrays.asList("gross", "alerdyreceive", "jqqz", "dbjy", "totaldeal", "totalacceptance")));
|
||||
break;
|
||||
case "31":
|
||||
// 查询主诉分类相关数据
|
||||
list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
|
||||
Arrays.asList("oneTwenty", "hospital")));
|
||||
break;
|
||||
case "33":
|
||||
// 查询健康打卡相关数据
|
||||
list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
|
||||
Arrays.asList("weightLossCountDay", "weightLossCountMonth", "weightLossAbnormalCountDay", "weightLossAbnormalCountMonth",
|
||||
"bloodSugarCountDay", "bloodSugarCountMonth", "bloodSugarAbnormalCountDay", "bloodSugarAbnormalCountMonth",
|
||||
"bloodPressureCountDay", "bloodPressureCountMonth", "bloodPressureAbnormalCountDay", "bloodPressureAbnormalCountMonth",
|
||||
"totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount")));
|
||||
break;
|
||||
case "34":
|
||||
// 查询体检数据相关
|
||||
list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
|
||||
Arrays.asList("totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount")));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
return vo;
|
||||
}
|
||||
for (LargeScreenData largeScreenData : list) {
|
||||
switch (largeScreenData.getType()) {
|
||||
case "gross":
|
||||
vo.setLatestCall(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setLatestCallStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "alerdyreceive":
|
||||
vo.setLatestAcceptCall(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setLatestAcceptCallStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "jqqz":
|
||||
vo.setIllNum(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setIllNumStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "dbjy":
|
||||
vo.setEmergencyNum(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setEmergencyNumStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "totaldeal":
|
||||
vo.setTotalAccept(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setTotalAcceptStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "totalacceptance":
|
||||
vo.setTotalDisposal(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setTotalDisposalStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "oneTwenty":
|
||||
vo.setHospitalCount(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setHospitalCountStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "hospital":
|
||||
vo.setEmergencyCount(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setEmergencyCountStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "weightLossCountDay":
|
||||
vo.setWeightLossCountDay(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setWeightLossCountDayStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "weightLossCountMonth":
|
||||
vo.setWeightLossCountMonth(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setWeightLossCountMonthStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "weightLossAbnormalCountDay":
|
||||
vo.setWeightLossAbnormalCountDay(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setWeightLossAbnormalCountDayStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "weightLossAbnormalCountMonth":
|
||||
vo.setWeightLossAbnormalCountMonth(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setWeightLossAbnormalCountMonthStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "bloodSugarCountDay":
|
||||
vo.setBloodSugarCountDay(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setBloodSugarCountDayStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "bloodSugarCountMonth":
|
||||
vo.setBloodSugarCountMonth(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setBloodSugarCountMonthStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "bloodSugarAbnormalCountDay":
|
||||
vo.setBloodSugarAbnormalCountDay(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setBloodSugarAbnormalCountDayStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "bloodSugarAbnormalCountMonth":
|
||||
vo.setBloodSugarAbnormalCountMonth(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setBloodSugarAbnormalCountMonthStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "bloodPressureCountDay":
|
||||
vo.setBloodPressureCountDay(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setBloodPressureCountDayStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "bloodPressureCountMonth":
|
||||
vo.setBloodPressureCountMonth(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setBloodPressureCountMonthStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "bloodPressureAbnormalCountDay":
|
||||
vo.setBloodPressureAbnormalCountDay(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setBloodPressureAbnormalCountDayStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "bloodPressureAbnormalCountMonth":
|
||||
vo.setBloodPressureAbnormalCountMonth(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setBloodPressureAbnormalCountMonthStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "totalCount":
|
||||
vo.setTotalCount(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setTotalCountStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "cardiovaAbCount":
|
||||
vo.setCardiovaAbCount(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setCardiovaAbCountStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "cerebrovAbCount":
|
||||
vo.setCerebrovAbCount(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setCerebrovAbCountStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
case "cctaAbCount":
|
||||
vo.setCctaAbCount(String.valueOf(largeScreenData.getValue()));
|
||||
vo.setCctaAbCountStatus(largeScreenData.getStatus());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
public List<MedicalDataVO> medicalDataDetail(String centerId){
|
||||
List<LargeScreenData> list = list(new LambdaQueryWrapper<LargeScreenData>()
|
||||
.in(LargeScreenData::getType, "medical","32").eq(LargeScreenData::getCenterId, centerId));
|
||||
if (CollUtil.isEmpty(list)){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return list.stream().map(MedicalDataVO::new).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
+110
-205
@@ -8,35 +8,31 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.anyan.client.AnYanClient;
|
||||
import com.renkang.anyan.model.vo.HealthSignStatVO;
|
||||
import com.renkang.anyan.model.vo.MedicalPeopleNumStatisticsVO;
|
||||
import com.renkang.emergency.bean.response.XjDemandTypeFakerData;
|
||||
import com.renkang.emergency.bean.response.XjHealthSignFakerData;
|
||||
import com.renkang.emergency.bean.response.XjMedicalCountFakerData;
|
||||
import com.renkang.emergency.bean.response.XjMedicalDataFakerData;
|
||||
import com.renkang.emergency.entity.*;
|
||||
import com.renkang.emergency.entity.vo.DataDetailVO;
|
||||
import com.renkang.emergency.entity.vo.MedicalDataVO;
|
||||
import com.renkang.emergency.entity.EmergencyHealthRoom;
|
||||
import com.renkang.emergency.entity.Resource;
|
||||
import com.renkang.emergency.entity.TblHelpCentorVo;
|
||||
import com.renkang.emergency.entity.TblUserHelpVo;
|
||||
import com.renkang.emergency.largeScreen.entity.dto.*;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.*;
|
||||
import com.renkang.emergency.largeScreen.mapper.LargeScreenMapper;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
|
||||
import com.renkang.emergency.service.IEmergencyHealthRoomService;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenService;
|
||||
import com.renkang.emergency.service.IResourceService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.jeecg.common.api.dto.ServiceFakerData;
|
||||
import org.jeecg.common.api.dto.YcMedicalCenterFakerData;
|
||||
import org.jeecg.common.constant.FakerDataConstant;
|
||||
import org.jeecg.common.exception.ExceptionAssertsUtil;
|
||||
import org.jeecg.common.util.RedisUtil;
|
||||
import org.jeecg.util.RedisClientUtil;
|
||||
import org.jeecg.util.RedisKeyPrefix;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -56,8 +52,6 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
|
||||
private final IEmergencyHealthRoomService roomService;
|
||||
private final RedisClientUtil redisClientUtil;
|
||||
private final RedisUtil redisUtil;
|
||||
private final ILargeScreenDataService screenDataService;
|
||||
private final AnYanClient anYanClient;
|
||||
|
||||
|
||||
private static final double MIN_LONGITUDE = 80.0;
|
||||
@@ -120,7 +114,6 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
|
||||
baseVO.setBuildDate(new Date());
|
||||
list.add(baseVO);
|
||||
}
|
||||
List<com.renkang.anyan.model.vo.HealthRoomVO> healthRoomVOS = anYanClient.healthPlaceHomList();
|
||||
// 查询第三方接口返回 此接口返回对象跟原有可能不太一样 要注意
|
||||
return list;
|
||||
}
|
||||
@@ -274,230 +267,142 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
|
||||
|
||||
@Override
|
||||
public List<MedicalPeopleNumStatisticsVO> medicalPeopleNumStatistics (MedicalPeopleNumStatisticsDTO dto){
|
||||
Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(dto.getCenterId()) ?
|
||||
FakerDataConstant.XJ_MEDICAL_COUNT_ENABLE + ":" + dto.getCenterId() : FakerDataConstant.XJ_MEDICAL_COUNT_ENABLE);
|
||||
if (enable != null && enable) {
|
||||
List<MedicalPeopleNumStatisticsVO> vo = XjMedicalCountFakerData(dto.getCenterId());
|
||||
if (vo != null) {
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
List<MedicalPeopleNumStatisticsVO> list = redisClientUtil.getList(MEDICAL,MEDICAL_PEOPLE_NUM_STATISTICS,MedicalPeopleNumStatisticsVO.class);
|
||||
|
||||
// 获取假数据
|
||||
List<MedicalDataVO> medicalDataList = screenDataService.medicalDataDetail(dto.getCenterId());
|
||||
if (CollUtil.isEmpty(list)){
|
||||
list = new ArrayList<>();
|
||||
for (MedicalDataVO medicalData : medicalDataList) {
|
||||
if ("1".equals(medicalData.getStatus())){
|
||||
MedicalPeopleNumStatisticsVO vo = new MedicalPeopleNumStatisticsVO();
|
||||
vo.setHospitalName(medicalData.getName());
|
||||
vo.setCheckedCount(Integer.valueOf(medicalData.getCount()));
|
||||
list.add(vo);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
for (MedicalPeopleNumStatisticsVO statistics : list) {
|
||||
MedicalDataVO medicalData = medicalDataList.stream().filter(item -> item.getName().equals(statistics.getHospitalName())).findFirst().orElse(null);
|
||||
if (null != medicalData){
|
||||
if ("1".equals(medicalData.getStatus())){
|
||||
if (medicalData.getCount().contains("+")){
|
||||
statistics.setCheckedCount(statistics.getCheckedCount()+Integer.parseInt(medicalData.getCount().replace("+", "").trim()));
|
||||
}else {
|
||||
statistics.setCheckedCount(Integer.parseInt(medicalData.getCount().replace("+", "").trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MedicalAbnormalStatisticsVO medicalAbnormalStatistics (MedicalAbnormalStatisticsDTO dto){
|
||||
MedicalAbnormalStatisticsVO statisticsVO = redisClientUtil.get(MEDICAL,MEDICAL_ABNORMAL_STATISTICS,MedicalAbnormalStatisticsVO.class);
|
||||
// 获取假数据
|
||||
DataDetailVO dataDetailVO = screenDataService.dataDetail(dto.getCenterId(), "34");
|
||||
if (ObjUtil.isEmpty(statisticsVO)){
|
||||
statisticsVO = new MedicalAbnormalStatisticsVO();
|
||||
if (null != dataDetailVO){
|
||||
if ("1".equals(dataDetailVO.getTotalCountStatus())){
|
||||
statisticsVO.setTotalCount(Integer.valueOf(dataDetailVO.getTotalCount()));
|
||||
}
|
||||
if ("1".equals(dataDetailVO.getCardiovaAbCountStatus())){
|
||||
statisticsVO.setCardiovaAbCount(Integer.valueOf(dataDetailVO.getCardiovaAbCount()));
|
||||
}
|
||||
if ("1".equals(dataDetailVO.getCerebrovAbCountStatus())){
|
||||
statisticsVO.setCerebrovAbCount(Integer.valueOf(dataDetailVO.getCerebrovAbCount()));
|
||||
}
|
||||
if ("1".equals(dataDetailVO.getCctaAbCountStatus())){
|
||||
statisticsVO.setCctaAbCount(Integer.valueOf(dataDetailVO.getCctaAbCount()));
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (null != dataDetailVO){
|
||||
if ("1".equals(dataDetailVO.getTotalCountStatus())){
|
||||
if (dataDetailVO.getTotalCount().contains("+")){
|
||||
statisticsVO.setTotalCount(statisticsVO.getTotalCount() + Integer.parseInt(dataDetailVO.getTotalCount().replace("+", "").trim()));
|
||||
}else {
|
||||
statisticsVO.setTotalCount(Integer.valueOf(dataDetailVO.getTotalCount().replace("+", "").trim()));
|
||||
}
|
||||
}
|
||||
if ("1".equals(dataDetailVO.getCardiovaAbCountStatus())){
|
||||
if (dataDetailVO.getCardiovaAbCount().contains("+")){
|
||||
statisticsVO.setCardiovaAbCount(statisticsVO.getCardiovaAbCount() + Integer.parseInt(dataDetailVO.getCardiovaAbCount().replace("+", "").trim()));
|
||||
}else {
|
||||
statisticsVO.setCardiovaAbCount(Integer.valueOf(dataDetailVO.getCardiovaAbCount().replace("+", "").trim()));
|
||||
}
|
||||
}
|
||||
if ("1".equals(dataDetailVO.getCerebrovAbCountStatus())){
|
||||
if (dataDetailVO.getCerebrovAbCount().contains("+")){
|
||||
statisticsVO.setCerebrovAbCount(statisticsVO.getCerebrovAbCount() + Integer.parseInt(dataDetailVO.getCerebrovAbCount().replace("+", "").trim()));
|
||||
}else {
|
||||
statisticsVO.setCerebrovAbCount(Integer.valueOf(dataDetailVO.getCerebrovAbCount().replace("+", "").trim()));
|
||||
}
|
||||
}
|
||||
if ("1".equals(dataDetailVO.getCctaAbCountStatus())){
|
||||
if (dataDetailVO.getCctaAbCount().contains("+")){
|
||||
statisticsVO.setCctaAbCount(statisticsVO.getCctaAbCount() + Integer.parseInt(dataDetailVO.getCctaAbCount().replace("+", "").trim()));
|
||||
}else {
|
||||
statisticsVO.setCctaAbCount(Integer.valueOf(dataDetailVO.getCctaAbCount().replace("+", "").trim()));
|
||||
}
|
||||
}
|
||||
Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(dto.getCenterId())
|
||||
? FakerDataConstant.XJ_MEDICAL_DATA_ENABLE + ":" + dto.getCenterId() : FakerDataConstant.XJ_MEDICAL_DATA_ENABLE);
|
||||
if (enable != null && enable) {
|
||||
MedicalAbnormalStatisticsVO vo = XjMedicalDataFakerDataNew(dto.getCenterId());
|
||||
if (vo != null) {
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MedicalAbnormalStatisticsVO statisticsVO = redisClientUtil.get(MEDICAL,MEDICAL_ABNORMAL_STATISTICS,MedicalAbnormalStatisticsVO.class);
|
||||
if (ObjUtil.isEmpty(statisticsVO)){
|
||||
return new MedicalAbnormalStatisticsVO();
|
||||
}
|
||||
return statisticsVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HealthSignVO healthSign(HealthSignDTO dto) {
|
||||
// 健康打卡数据
|
||||
HealthSignVO vo = redisClientUtil.get(MEDICAL, HEALTH_SIGN, HealthSignVO.class);
|
||||
// 获取数据
|
||||
DataDetailVO dataDetailVO = screenDataService.dataDetail(dto.getCenterId(), "33");
|
||||
|
||||
if (dataDetailVO == null) {
|
||||
return vo != null ? vo : new HealthSignVO();
|
||||
}
|
||||
|
||||
if (vo == null) {
|
||||
vo = newHealthSignVO(dataDetailVO);
|
||||
} else {
|
||||
updateHealthSignVO(vo, dataDetailVO);
|
||||
}
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
private HealthSignVO newHealthSignVO(DataDetailVO dataDetailVO) {
|
||||
HealthSignVO vo = new HealthSignVO();
|
||||
|
||||
// 减重
|
||||
setIfActive(vo::setWeightLossCountDay, dataDetailVO.getWeightLossCountDayStatus(), dataDetailVO.getWeightLossCountDay());
|
||||
setIfActive(vo::setWeightLossCountMonth, dataDetailVO.getWeightLossCountMonthStatus(), dataDetailVO.getWeightLossCountMonth());
|
||||
setIfActive(vo::setWeightLossAbnormalCountDay, dataDetailVO.getWeightLossAbnormalCountDayStatus(), dataDetailVO.getWeightLossAbnormalCountDay());
|
||||
setIfActive(vo::setWeightLossAbnormalCountMonth, dataDetailVO.getWeightLossAbnormalCountMonthStatus(), dataDetailVO.getWeightLossAbnormalCountMonth());
|
||||
|
||||
// 血糖
|
||||
setIfActive(vo::setBloodSugarCountDay, dataDetailVO.getBloodSugarCountDayStatus(), dataDetailVO.getBloodSugarCountDay());
|
||||
setIfActive(vo::setBloodSugarCountMonth, dataDetailVO.getBloodSugarCountMonthStatus(), dataDetailVO.getBloodSugarCountMonth());
|
||||
setIfActive(vo::setBloodSugarAbnormalCountDay, dataDetailVO.getBloodSugarAbnormalCountDayStatus(), dataDetailVO.getBloodSugarAbnormalCountDay());
|
||||
setIfActive(vo::setBloodSugarAbnormalCountMonth, dataDetailVO.getBloodSugarAbnormalCountMonthStatus(), dataDetailVO.getBloodSugarAbnormalCountMonth());
|
||||
|
||||
// 血压
|
||||
setIfActive(vo::setBloodPressureCountDay, dataDetailVO.getBloodPressureCountDayStatus(), dataDetailVO.getBloodPressureCountDay());
|
||||
setIfActive(vo::setBloodPressureCountMonth, dataDetailVO.getBloodPressureCountMonthStatus(), dataDetailVO.getBloodPressureCountMonth());
|
||||
setIfActive(vo::setBloodPressureAbnormalCountDay, dataDetailVO.getBloodPressureAbnormalCountDayStatus(), dataDetailVO.getBloodPressureAbnormalCountDay());
|
||||
setIfActive(vo::setBloodPressureAbnormalCountMonth, dataDetailVO.getBloodPressureAbnormalCountMonthStatus(), dataDetailVO.getBloodPressureAbnormalCountMonth());
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
private void updateHealthSignVO(HealthSignVO vo, DataDetailVO dataDetailVO) {
|
||||
// 减重
|
||||
updateIfActive(vo::getWeightLossCountDay, vo::setWeightLossCountDay,
|
||||
dataDetailVO.getWeightLossCountDayStatus(), dataDetailVO.getWeightLossCountDay());
|
||||
updateIfActive(vo::getWeightLossCountMonth, vo::setWeightLossCountMonth,
|
||||
dataDetailVO.getWeightLossCountMonthStatus(), dataDetailVO.getWeightLossCountMonth());
|
||||
updateIfActive(vo::getWeightLossAbnormalCountDay, vo::setWeightLossAbnormalCountDay,
|
||||
dataDetailVO.getWeightLossAbnormalCountDayStatus(), dataDetailVO.getWeightLossAbnormalCountDay());
|
||||
updateIfActive(vo::getWeightLossAbnormalCountMonth, vo::setWeightLossAbnormalCountMonth,
|
||||
dataDetailVO.getWeightLossAbnormalCountMonthStatus(), dataDetailVO.getWeightLossAbnormalCountMonth());
|
||||
|
||||
// 血糖
|
||||
updateIfActive(vo::getBloodSugarCountDay, vo::setBloodSugarCountDay,
|
||||
dataDetailVO.getBloodSugarCountDayStatus(), dataDetailVO.getBloodSugarCountDay());
|
||||
updateIfActive(vo::getBloodSugarCountMonth, vo::setBloodSugarCountMonth,
|
||||
dataDetailVO.getBloodSugarCountMonthStatus(), dataDetailVO.getBloodSugarCountMonth());
|
||||
updateIfActive(vo::getBloodSugarAbnormalCountDay, vo::setBloodSugarAbnormalCountDay,
|
||||
dataDetailVO.getBloodSugarAbnormalCountDayStatus(), dataDetailVO.getBloodSugarAbnormalCountDay());
|
||||
updateIfActive(vo::getBloodSugarAbnormalCountMonth, vo::setBloodSugarAbnormalCountMonth,
|
||||
dataDetailVO.getBloodSugarAbnormalCountMonthStatus(), dataDetailVO.getBloodSugarAbnormalCountMonth());
|
||||
|
||||
// 血压
|
||||
updateIfActive(vo::getBloodPressureCountDay, vo::setBloodPressureCountDay,
|
||||
dataDetailVO.getBloodPressureCountDayStatus(), dataDetailVO.getBloodPressureCountDay());
|
||||
updateIfActive(vo::getBloodPressureCountMonth, vo::setBloodPressureCountMonth,
|
||||
dataDetailVO.getBloodPressureCountMonthStatus(), dataDetailVO.getBloodPressureCountMonth());
|
||||
updateIfActive(vo::getBloodPressureAbnormalCountDay, vo::setBloodPressureAbnormalCountDay,
|
||||
dataDetailVO.getBloodPressureAbnormalCountDayStatus(), dataDetailVO.getBloodPressureAbnormalCountDay());
|
||||
updateIfActive(vo::getBloodPressureAbnormalCountMonth, vo::setBloodPressureAbnormalCountMonth,
|
||||
dataDetailVO.getBloodPressureAbnormalCountMonthStatus(), dataDetailVO.getBloodPressureAbnormalCountMonth());
|
||||
}
|
||||
|
||||
private void setIfActive(Consumer<Integer> setter, String status, String value) {
|
||||
if ("1".equals(status) && value != null) {
|
||||
setter.accept(Integer.valueOf(value));
|
||||
}
|
||||
}
|
||||
|
||||
private void updateIfActive(Supplier<Integer> getter, Consumer<Integer> setter,
|
||||
String status, String value) {
|
||||
if ("1".equals(status) && value != null) {
|
||||
int current = getter.get() != null ? getter.get() : 0;
|
||||
if (value.contains("+")) {
|
||||
setter.accept(current + Integer.parseInt(value.replace("+", "")));
|
||||
} else {
|
||||
setter.accept(Integer.parseInt(value));
|
||||
public HealthSignVO healthSign (HealthSignDTO dto){
|
||||
Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(dto.getCenterId())
|
||||
? FakerDataConstant.XJ_HEALTH_SIGN_COUNT_ENABLE + ":" + dto.getCenterId() : FakerDataConstant.XJ_HEALTH_SIGN_COUNT_ENABLE);
|
||||
if (enable != null && enable) {
|
||||
HealthSignVO vo = XjHealthSignFakerDataNew(dto.getCenterId());
|
||||
if (vo != null) {
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
HealthSignVO vo = redisClientUtil.get(MEDICAL,HEALTH_SIGN,HealthSignVO.class);
|
||||
if (null == vo){
|
||||
return new HealthSignVO();
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void runJob(){
|
||||
Date today = new Date();
|
||||
// 体检人数统计查询
|
||||
List<MedicalPeopleNumStatisticsVO> medicalPeopleNumStatisticsVOS = anYanClient.examinationStatistics(DateUtil.thisYear());
|
||||
redisClientUtil.set(MEDICAL,MEDICAL_PEOPLE_NUM_STATISTICS,medicalPeopleNumStatisticsVOS);
|
||||
List<MedicalPeopleNumStatisticsVO> medicalPeopleNumStatisticsList = new ArrayList<>();
|
||||
redisClientUtil.set(MEDICAL,MEDICAL_PEOPLE_NUM_STATISTICS,medicalPeopleNumStatisticsList);
|
||||
|
||||
// 体检异常数据查询
|
||||
List<MedicalAbnormalStatisticsVO> medicalAbnormalStatisticsList = new ArrayList<>();
|
||||
redisClientUtil.set(MEDICAL,MEDICAL_ABNORMAL_STATISTICS,medicalAbnormalStatisticsList);
|
||||
|
||||
// 减重 健康打卡数据今日查询
|
||||
HealthSignDataVO weightLossDay = new HealthSignDataVO();
|
||||
// 减重 健康打卡数据本月查询
|
||||
HealthSignDataVO weightLossMonth = new HealthSignDataVO();
|
||||
|
||||
// 血压 健康打卡数据今日查询
|
||||
HealthSignDataVO bloodPressureDay = new HealthSignDataVO();
|
||||
// 血压 健康打卡数据本月查询
|
||||
HealthSignDataVO bloodPressureMonth = new HealthSignDataVO();
|
||||
|
||||
// 血糖 健康打卡数据今日查询
|
||||
HealthSignDataVO bloodSugarDay = new HealthSignDataVO();
|
||||
// 血糖 健康打卡数据本月查询
|
||||
HealthSignDataVO bloodSugarMonth = new HealthSignDataVO();
|
||||
|
||||
// 健康打卡今日数据查询
|
||||
HealthSignStatVO healthSignToday = anYanClient.healthCheckStatistics(DateUtil.beginOfDay(today), DateUtil.endOfDay(today));
|
||||
// 健康打卡本月数据查询
|
||||
HealthSignStatVO healthSignMonth = anYanClient.healthCheckStatistics(DateUtil.beginOfMonth(today), DateUtil.endOfMonth(today));
|
||||
// 减重 血压 血糖 三种数据整合存
|
||||
HealthSignVO healthSign = new HealthSignVO();
|
||||
|
||||
healthSign.setWeightLossCountDay(Integer.valueOf(healthSignToday.getWeigtTotalCount()));
|
||||
healthSign.setWeightLossAbnormalCountDay(Integer.valueOf(healthSignToday.getWeigtAbCount()));
|
||||
healthSign.setBloodPressureCountDay(Integer.valueOf(healthSignToday.getBpTotalCount()));
|
||||
healthSign.setBloodPressureAbnormalCountDay(Integer.valueOf(healthSignToday.getBpAbCount()));
|
||||
healthSign.setBloodSugarCountDay(Integer.valueOf(healthSignToday.getBsTotalCount()));
|
||||
healthSign.setBloodSugarAbnormalCountDay(Integer.valueOf(healthSignToday.getBsAbCount()));
|
||||
|
||||
healthSign.setWeightLossCountMonth(Integer.valueOf(healthSignMonth.getWeigtTotalCount()));
|
||||
healthSign.setWeightLossAbnormalCountMonth(Integer.valueOf(healthSignMonth.getWeigtAbCount()));
|
||||
healthSign.setBloodPressureCountMonth(Integer.valueOf(healthSignMonth.getBpTotalCount()));
|
||||
healthSign.setBloodPressureAbnormalCountMonth(Integer.valueOf(healthSignMonth.getBpAbCount()));
|
||||
healthSign.setBloodSugarCountMonth(Integer.valueOf(healthSignMonth.getBpTotalCount()));
|
||||
healthSign.setBloodSugarAbnormalCountMonth(Integer.valueOf(healthSignMonth.getBpAbCount()));
|
||||
|
||||
redisClientUtil.set(MEDICAL,HEALTH_SIGN,healthSign);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void syncAnYanHospital() {
|
||||
//更新医院信息
|
||||
//更新健康小屋信息
|
||||
|
||||
public void runTest(){
|
||||
// 体检人数统计
|
||||
List<MedicalPeopleNumStatisticsVO> medicalPeopleNumStatisticsList = new ArrayList<>();
|
||||
MedicalPeopleNumStatisticsVO statistics1 = new MedicalPeopleNumStatisticsVO();
|
||||
statistics1.setHospitalName("克拉玛依市诚裕慈惠综合门诊部门有限公司");
|
||||
statistics1.setCheckedCount(220);
|
||||
statistics1.setTotalCount(550);
|
||||
medicalPeopleNumStatisticsList.add(statistics1);
|
||||
MedicalPeopleNumStatisticsVO statistics2 = new MedicalPeopleNumStatisticsVO();
|
||||
statistics2.setHospitalName("昌吉州宝石花医院");
|
||||
statistics2.setCheckedCount(156);
|
||||
statistics2.setTotalCount(200);
|
||||
medicalPeopleNumStatisticsList.add(statistics2);
|
||||
MedicalPeopleNumStatisticsVO statistics3 = new MedicalPeopleNumStatisticsVO();
|
||||
statistics3.setHospitalName("中心医院");
|
||||
statistics3.setCheckedCount(86);
|
||||
statistics3.setTotalCount(100);
|
||||
medicalPeopleNumStatisticsList.add(statistics3);
|
||||
MedicalPeopleNumStatisticsVO statistics4 = new MedicalPeopleNumStatisticsVO();
|
||||
statistics4.setHospitalName("克拉玛依市中西医结合医院(市人民医院)");
|
||||
statistics4.setCheckedCount(23);
|
||||
statistics4.setTotalCount(30);
|
||||
medicalPeopleNumStatisticsList.add(statistics4);
|
||||
MedicalPeopleNumStatisticsVO statistics5 = new MedicalPeopleNumStatisticsVO();
|
||||
statistics5.setHospitalName("新疆医院");
|
||||
statistics5.setCheckedCount(15);
|
||||
statistics5.setTotalCount(20);
|
||||
medicalPeopleNumStatisticsList.add(statistics5);
|
||||
redisClientUtil.set(MEDICAL,MEDICAL_PEOPLE_NUM_STATISTICS,medicalPeopleNumStatisticsList);
|
||||
|
||||
// 体检异常数据查询
|
||||
MedicalAbnormalStatisticsVO abnormalStatistics = new MedicalAbnormalStatisticsVO();
|
||||
abnormalStatistics.setTotalCount(18000);
|
||||
abnormalStatistics.setCardiovaAbCount(2000);
|
||||
abnormalStatistics.setCerebrovAbCount(1500);
|
||||
abnormalStatistics.setCctaAbCount(200);
|
||||
redisClientUtil.set(MEDICAL,MEDICAL_ABNORMAL_STATISTICS,abnormalStatistics);
|
||||
|
||||
// 减重 血压 血糖 三种数据整合存
|
||||
HealthSignVO healthSign = new HealthSignVO();
|
||||
healthSign.setWeightLossCountDay(86);
|
||||
healthSign.setWeightLossAbnormalCountDay(6);
|
||||
healthSign.setWeightLossCountMonth(956);
|
||||
healthSign.setWeightLossAbnormalCountMonth(56);
|
||||
|
||||
healthSign.setBloodSugarCountDay(8);
|
||||
healthSign.setBloodSugarAbnormalCountDay(5);
|
||||
healthSign.setBloodSugarCountMonth(156);
|
||||
healthSign.setBloodSugarAbnormalCountMonth(56);
|
||||
|
||||
healthSign.setBloodPressureCountDay(18);
|
||||
healthSign.setBloodPressureAbnormalCountDay(3);
|
||||
healthSign.setBloodPressureCountMonth(350);
|
||||
healthSign.setBloodPressureAbnormalCountMonth(30);
|
||||
redisClientUtil.set(MEDICAL,HEALTH_SIGN,healthSign);
|
||||
}
|
||||
|
||||
public static String[] generateRandomLocation() {
|
||||
|
||||
-16
@@ -1,8 +1,6 @@
|
||||
package com.renkang.emergency.largeScreen.task;
|
||||
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenService;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -18,18 +16,4 @@ public class LargeScreenJob {
|
||||
largeScreenService.runJob();
|
||||
log.info("========结束缓存大屏数据========");
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步安眼系统中的油田医院数据和监控小屋数据定时任务 ,回写至emergency_resource表
|
||||
* @return 执行状态
|
||||
*/
|
||||
@XxlJob(value = "syncAnYanHospital")
|
||||
public ReturnT<String> syncAnYanHospital() {
|
||||
try {
|
||||
largeScreenService.syncAnYanHospital();
|
||||
return ReturnT.SUCCESS;
|
||||
} catch (Exception e) {
|
||||
return ReturnT.FAIL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+9
-26
@@ -7,8 +7,6 @@ import com.renkang.emergency.bean.response.XjDemandTypeFakerData;
|
||||
import com.renkang.emergency.entity.TblHelpCenter;
|
||||
import com.renkang.emergency.entity.TblHelpCentorVo;
|
||||
import com.renkang.emergency.entity.TblUserHelpVo;
|
||||
import com.renkang.emergency.entity.vo.DataDetailVO;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
|
||||
import com.renkang.emergency.mapper.TblHelpCenterMapper;
|
||||
import com.renkang.emergency.service.ITbHelpCenterService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -33,8 +31,6 @@ public class TblHelpCenterServiceImpl extends ServiceImpl<TblHelpCenterMapper, T
|
||||
private EmergencyOrderApiService emergencyOrderApiService;
|
||||
@Resource
|
||||
private RedisUtil redisUtil;
|
||||
@Resource
|
||||
private ILargeScreenDataService screenDataService;
|
||||
|
||||
/**
|
||||
* 主诉分类统计
|
||||
@@ -44,38 +40,25 @@ public class TblHelpCenterServiceImpl extends ServiceImpl<TblHelpCenterMapper, T
|
||||
*/
|
||||
@Override
|
||||
public List<TblHelpCentorVo> sicknessTypeStatistic(String sex, String depart,String centerId) {
|
||||
Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(centerId) ? FakerDataConstant.XJ_DEMAND_TYPE_ENABLE + ":" + centerId : FakerDataConstant.XJ_DEMAND_TYPE_ENABLE);
|
||||
if (enable != null && enable) {
|
||||
List<TblHelpCentorVo> vo = XjDemandTypeFakerData(centerId);
|
||||
if (vo != null) {
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
List<TblHelpCentorVo> statistic = emergencyOrderApiService.getSicknessTypeStatistic(sex, depart);
|
||||
for (TblHelpCentorVo tblHelpCentorVo : statistic) {
|
||||
if (tblHelpCentorVo.getType().equals("0")) {
|
||||
tblHelpCentorVo.setName("120");
|
||||
} else if(tblHelpCentorVo.getType().equals("1")){
|
||||
tblHelpCentorVo.setName("应急就医");
|
||||
}else if (tblHelpCentorVo.getType().equals("2")){
|
||||
tblHelpCentorVo.setName("急救联动");
|
||||
}else {
|
||||
tblHelpCentorVo.setName("其他");
|
||||
}
|
||||
}
|
||||
// 获取假数据
|
||||
DataDetailVO dataDetailVO = screenDataService.dataDetail(centerId, "31");
|
||||
statistic.forEach(item->{
|
||||
if (item.getType().equals("0")) {
|
||||
if ("1".equals(dataDetailVO.getHospitalCountStatus())){
|
||||
if (dataDetailVO.getHospitalCount().contains("+")){
|
||||
item.setCount(item.getCount()+Integer.parseInt(dataDetailVO.getHospitalCount().replace("+", "").trim()));
|
||||
}else {
|
||||
item.setCount(Integer.parseInt(dataDetailVO.getHospitalCount().replace("+", "").trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.getType().equals("1")) {
|
||||
if ("1".equals(dataDetailVO.getEmergencyCountStatus())){
|
||||
if (dataDetailVO.getEmergencyCount().contains("+")){
|
||||
item.setCount(item.getCount()+Integer.parseInt(dataDetailVO.getEmergencyCount().replace("+", "").trim()));
|
||||
}else {
|
||||
item.setCount(Integer.parseInt(dataDetailVO.getEmergencyCount().replace("+", "").trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return statistic;
|
||||
}
|
||||
|
||||
|
||||
+17
-69
@@ -14,8 +14,6 @@ import com.renkang.emergency.entity.TblUserHelp;
|
||||
import com.renkang.emergency.entity.TblUserHelpVo;
|
||||
import com.renkang.emergency.entity.dto.PhoneListDTO;
|
||||
import com.renkang.emergency.entity.dto.StatisticsDTO;
|
||||
import com.renkang.emergency.entity.vo.DataDetailVO;
|
||||
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
|
||||
import com.renkang.emergency.mapper.TblUserHelpMapper;
|
||||
import com.renkang.emergency.service.ISysNotifySmsPhoneService;
|
||||
import com.renkang.emergency.service.ITbUserHelpMacService;
|
||||
@@ -72,8 +70,6 @@ public class TblUserHelpServiceImpl extends ServiceImpl<TblUserHelpMapper, TblUs
|
||||
private ISysCache sysCache;
|
||||
@Resource
|
||||
private Validator validator;
|
||||
@Resource
|
||||
private ILargeScreenDataService screenDataService;
|
||||
|
||||
/**
|
||||
* 服务详情数据
|
||||
@@ -101,6 +97,13 @@ public class TblUserHelpServiceImpl extends ServiceImpl<TblUserHelpMapper, TblUs
|
||||
*/
|
||||
@Override
|
||||
public TblUserHelpVo statisticsNew(StatisticsDTO dto) {
|
||||
Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(dto.getCenterId()) ? FakerDataConstant.YC_SERVICE_ENABLE + ":" + dto.getCenterId() : FakerDataConstant.YC_SERVICE_ENABLE);
|
||||
if (enable != null && enable) {
|
||||
TblUserHelpVo vo = xianFakerDataNew(dto.getCenterId());
|
||||
if (vo != null) {
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
LambdaQueryWrapper<TblUserHelp> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (StrUtil.isNotBlank(dto.getCondition()) && !"1".equals(dto.getCondition())) {
|
||||
// 1:全部,2:年,3:月,4:周
|
||||
@@ -119,70 +122,19 @@ public class TblUserHelpServiceImpl extends ServiceImpl<TblUserHelpMapper, TblUs
|
||||
if (StrUtil.isNotBlank(dto.getCenterId())) {
|
||||
queryWrapper.eq(TblUserHelp::getCenterId, dto.getCenterId());
|
||||
}
|
||||
|
||||
TblUserHelpVo vo = new TblUserHelpVo();
|
||||
// 获取云坐席数据
|
||||
List<TblUserHelp> list = this.list(queryWrapper);
|
||||
|
||||
// 获取假数据
|
||||
DataDetailVO dataDetailVO = screenDataService.dataDetail(dto.getCenterId(), "9");
|
||||
// 呼入电话
|
||||
if ("1".equals(dataDetailVO.getLatestCallStatus())) {
|
||||
if (dataDetailVO.getLatestCall().contains("+")) {
|
||||
vo.setGross(list.size() + Integer.parseInt(dataDetailVO.getLatestCall().replace("+", "").trim()));
|
||||
} else {
|
||||
vo.setGross(Integer.valueOf(dataDetailVO.getLatestCall().replace("+", "").trim()));
|
||||
}
|
||||
} else {
|
||||
vo.setGross(list.size());
|
||||
}
|
||||
// 受理电话
|
||||
if ("1".equals(dataDetailVO.getLatestAcceptCallStatus())) {
|
||||
if (dataDetailVO.getLatestAcceptCall().contains("+")) {
|
||||
int count = Math.toIntExact(list.stream().filter(a -> "1".equals(a.getStatus()) || "2".equals(a.getStatus())).count());
|
||||
vo.setAlerdyreceive(count + Integer.parseInt(dataDetailVO.getLatestAcceptCall().replace("+", "").trim()));
|
||||
} else {
|
||||
vo.setAlerdyreceive(Integer.parseInt(dataDetailVO.getLatestAcceptCall().replace("+", "").trim()));
|
||||
}
|
||||
} else {
|
||||
int count = Math.toIntExact(list.stream().filter(a -> "1".equals(a.getStatus()) || "2".equals(a.getStatus())).count());
|
||||
vo.setAlerdyreceive(count);
|
||||
}
|
||||
// 突发重大伤病应急
|
||||
if ("1".equals(dataDetailVO.getIllNumStatus())) {
|
||||
if (dataDetailVO.getIllNum().contains("+")) {
|
||||
int count = Math.toIntExact(list.stream().filter(a -> "2".equals(a.getType())).count());
|
||||
vo.setJqqz(count + Integer.parseInt(dataDetailVO.getIllNum().replace("+", "").trim()));
|
||||
} else {
|
||||
vo.setJqqz(Integer.parseInt(dataDetailVO.getIllNum().replace("+", "").trim()));
|
||||
}
|
||||
} else {
|
||||
int count = Math.toIntExact(list.stream().filter(a -> "2".equals(a.getType())).count());
|
||||
vo.setJqqz(count);
|
||||
}
|
||||
// 重大伤病应急就医
|
||||
if ("1".equals(dataDetailVO.getEmergencyNumStatus())) {
|
||||
if (dataDetailVO.getEmergencyNum().contains("+")) {
|
||||
int count = Math.toIntExact(list.stream().filter(a -> "1".equals(a.getType())).count());
|
||||
vo.setDbjy(count + Integer.parseInt(dataDetailVO.getEmergencyNum().replace("+", "").trim()));
|
||||
}else {
|
||||
vo.setDbjy(Integer.parseInt(dataDetailVO.getEmergencyNum().replace("+", "").trim()));
|
||||
}
|
||||
}else {
|
||||
int count = Math.toIntExact(list.stream().filter(a -> "1".equals(a.getType())).count());
|
||||
vo.setDbjy(count);
|
||||
}
|
||||
// 呼入电话数量
|
||||
vo.setGross(list.size());
|
||||
// 受理电话数量
|
||||
vo.setAlerdyreceive((int) list.stream().filter(a -> "1".equals(a.getStatus()) || "2".equals(a.getStatus())).count());
|
||||
// 突发重大伤病应急数量
|
||||
vo.setJqqz((int) list.stream().filter(a -> "2".equals(a.getType())).count());
|
||||
// 重大伤病应急就医数量
|
||||
vo.setDbjy((int) list.stream().filter(a -> "1".equals(a.getType())).count());
|
||||
// 累计处置
|
||||
Integer totalAcceptance = tblUserHelpMapper.getTotalAcceptance();
|
||||
if ("1".equals(dataDetailVO.getTotalDisposalStatus())) {
|
||||
if (dataDetailVO.getTotalDisposal().contains("+")) {
|
||||
vo.setTotalacceptance(totalAcceptance + Integer.parseInt(dataDetailVO.getTotalDisposal().replace("+", "").trim()));
|
||||
}else {
|
||||
vo.setTotalacceptance(Integer.parseInt(dataDetailVO.getTotalDisposal().replace("+", "").trim()));
|
||||
}
|
||||
}else {
|
||||
vo.setTotalacceptance(totalAcceptance);
|
||||
}
|
||||
vo.setTotalacceptance(tblUserHelpMapper.getTotalAcceptance());
|
||||
return vo;
|
||||
}
|
||||
|
||||
@@ -340,11 +292,7 @@ public class TblUserHelpServiceImpl extends ServiceImpl<TblUserHelpMapper, TblUs
|
||||
vo.setDepartName("未知");
|
||||
vo.setOrgName("未知");
|
||||
vo.setTime(record.getHelpTime());
|
||||
String phone = record.getOutMobile();
|
||||
if (StrUtil.isNotBlank(phone) && phone.startsWith("0086")) { //新版网关去掉中国区号
|
||||
phone = phone.substring(4);
|
||||
}
|
||||
vo.setPhone(phone);
|
||||
vo.setPhone(record.getOutMobile());
|
||||
LoginUserNew loginUserNew = userMap.get(record.getUserId());
|
||||
if (loginUserNew != null) {
|
||||
SysDepart thirdDepart = sysCache.getDepartByOrgCode(GlobalUtils.getThirdDepartOrgCode(loginUserNew.getOrgCode()));
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
FROM anapsix/alpine-java:8_server-jre_unlimited
|
||||
|
||||
MAINTAINER xxx@163.com
|
||||
|
||||
|
||||
ENV PROFILE_NAME dev
|
||||
ENV SERVER_PORT 7011
|
||||
ENV NACOS_SERVER_ADDR nacos250:8848
|
||||
ENV NACOS_USERNAME xjuser
|
||||
ENV NACOS_PASSWORD Aa135790!123
|
||||
ENV NACOS_NAMESPACE 3af98a54-4a44-4576-8e28-bf5781c0dccf
|
||||
ENV NACOS_GROUP dev
|
||||
ENV PROFILE_NAME=dev \
|
||||
SERVER_PORT=7011 \
|
||||
NACOS_SERVER_ADDR=nacos250:8848 \
|
||||
NACOS_USERNAME=xjuser \
|
||||
NACOS_PASSWORD=Aa135790!123 \
|
||||
NACOS_NAMESPACE=3af98a54-4a44-4576-8e28-bf5781c0dccf \
|
||||
NACOS_GROUP=dev
|
||||
|
||||
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
@@ -20,6 +17,6 @@ WORKDIR /health-emergency-start
|
||||
|
||||
EXPOSE 7011
|
||||
|
||||
ADD ./target/health-emergency-start.jar ./
|
||||
COPY ./target/health-emergency-start-xj.jar ./
|
||||
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-emergency-start.jar
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-emergency-start-xj.jar
|
||||
@@ -9,6 +9,11 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>health-emergency-start</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!--微服务启动 starter-->
|
||||
<dependency>
|
||||
@@ -20,6 +25,7 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-emergency-biz</artifactId>
|
||||
<classifier>${biz-classifier}</classifier>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
<version>2.0.0</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<!--项目子模块-->
|
||||
<modules>
|
||||
<module>health-emergency-api</module>
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -9,14 +9,17 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>health-im-biz</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-im-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-cloud-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<!--腾讯云即时对话pom-->
|
||||
<dependency>
|
||||
@@ -35,6 +38,7 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-consultation-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
@@ -54,4 +58,21 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>biz-obf</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.wvengen</groupId>
|
||||
<artifactId>proguard-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod, Exceptions, MethodParameters
|
||||
-keep @org.springframework.stereotype.Service class *
|
||||
-keep @org.springframework.web.bind.annotation.RestController class *
|
||||
-keep @org.springframework.context.annotation.Configuration class * { *; }
|
||||
-keep @org.springframework.stereotype.Component class *
|
||||
-keep class lombok.** { *; }
|
||||
-keepclassmembers enum * { # 保留枚举结构
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
-keepclassmembers class * implements java.io.Serializable { *; }
|
||||
-keepclassmembers class * {
|
||||
@org.springframework.web.bind.annotation.*Mapping *;
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
private static synthetic java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
@lombok.Getter *;
|
||||
@lombok.Setter *;
|
||||
}
|
||||
# MyBatis 专用保留规则
|
||||
-keep interface com.renkang.**.mapper.** { *; }
|
||||
-keep class com.renkang.**.entity.** { *; }
|
||||
-keep class com.renkang.**.bean.** { *; }
|
||||
-keep class com.renkang.**.model.** { *; }
|
||||
-keep class com.renkang.**.vo.** { *; }
|
||||
-keepparameternames
|
||||
|
||||
# 关闭优化和压缩(避免框架兼容性问题)
|
||||
-dontshrink # 不删除未使用代码
|
||||
-dontoptimize # 不优化字节码[5,6](@ref)
|
||||
-keepdirectories
|
||||
-dontusemixedcaseclassnames
|
||||
-adaptclassstrings
|
||||
# 混淆选项
|
||||
-useuniqueclassmembernames # 成员名称唯一化
|
||||
-ignorewarnings
|
||||
@@ -1,15 +1,12 @@
|
||||
FROM anapsix/alpine-java:8_server-jre_unlimited
|
||||
|
||||
MAINTAINER xxx@163.com
|
||||
|
||||
|
||||
ENV PROFILE_NAME dev
|
||||
ENV SERVER_PORT 7012
|
||||
ENV NACOS_SERVER_ADDR nacos250:8848
|
||||
ENV NACOS_USERNAME xjuser
|
||||
ENV NACOS_PASSWORD Aa135790!123
|
||||
ENV NACOS_NAMESPACE 3af98a54-4a44-4576-8e28-bf5781c0dccf
|
||||
ENV NACOS_GROUP dev
|
||||
ENV PROFILE_NAME=dev \
|
||||
SERVER_PORT=7012 \
|
||||
NACOS_SERVER_ADDR=nacos250:8848 \
|
||||
NACOS_USERNAME=xjuser \
|
||||
NACOS_PASSWORD=Aa135790!123 \
|
||||
NACOS_NAMESPACE=3af98a54-4a44-4576-8e28-bf5781c0dccf \
|
||||
NACOS_GROUP=dev
|
||||
|
||||
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
@@ -20,6 +17,6 @@ WORKDIR /health-im-start
|
||||
|
||||
EXPOSE 7012
|
||||
|
||||
ADD ./target/health-im-start.jar ./
|
||||
COPY ./target/health-im-start-xj.jar ./
|
||||
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-im-start.jar
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-im-start-xj.jar
|
||||
@@ -9,6 +9,11 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>health-im-start</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!--微服务启动 starter-->
|
||||
<dependency>
|
||||
@@ -20,6 +25,7 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-im-biz</artifactId>
|
||||
<classifier>${biz-classifier}</classifier>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
<version>2.0.0</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<!--项目子模块-->
|
||||
<modules>
|
||||
<module>health-im-api</module>
|
||||
|
||||
@@ -24,11 +24,19 @@
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-consultation-api</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-consultation-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-consultation-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>obf</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- emergency 应急模块-->
|
||||
@@ -36,11 +44,19 @@
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-emergency-api</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-emergency-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-emergency-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>obf</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- IM IM通信模块-->
|
||||
@@ -48,11 +64,19 @@
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-im-api</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-im-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-im-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>obf</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- watch 手表模块-->
|
||||
@@ -60,27 +84,33 @@
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-watch-api</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-watch-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-watch-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>obf</classifier>
|
||||
</dependency>
|
||||
<!-- modules 组件-->
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>data-center-api</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>xj-anyan-api</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>font-resources</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- starter -->
|
||||
@@ -88,16 +118,19 @@
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>renkang-starter-batch</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>renkang-starter-aspose-word</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>renkang-test</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
|
||||
@@ -10,26 +10,32 @@
|
||||
</parent>
|
||||
|
||||
<artifactId>health-watch-biz</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-watch-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-emergency-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-cloud-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>renkang-starter-batch</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>data-center-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -39,6 +45,7 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>renkang-starter-aspose-word</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
@@ -55,6 +62,7 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>font-resources</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
@@ -74,5 +82,21 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>biz-obf</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.wvengen</groupId>
|
||||
<artifactId>proguard-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod, Exceptions, MethodParameters
|
||||
-keep @org.springframework.stereotype.Service class *
|
||||
-keep @org.springframework.web.bind.annotation.RestController class *
|
||||
-keep @org.springframework.context.annotation.Configuration class * { *; }
|
||||
-keep @org.springframework.stereotype.Component class *
|
||||
-keep class lombok.** { *; }
|
||||
-keepclassmembers enum * { # 保留枚举结构
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
-keepclassmembers class * implements java.io.Serializable { *; }
|
||||
-keepclassmembers class * {
|
||||
@org.springframework.web.bind.annotation.*Mapping *;
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
private static synthetic java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
@lombok.Getter *;
|
||||
@lombok.Setter *;
|
||||
}
|
||||
# MyBatis 专用保留规则
|
||||
-keep interface com.renkang.**.mapper.** { *; }
|
||||
-keep class com.renkang.**.mapper.provider** { *; }
|
||||
-keep class com.renkang.**.entity.** { *; }
|
||||
-keep class com.renkang.**.bean.** { *; }
|
||||
-keep class com.renkang.**.model.** { *; }
|
||||
-keep class com.renkang.**.vo.** { *; }
|
||||
-keep class com.renkang.**.task.**
|
||||
-keep class com.renkang.**.task.**Constants { *; }
|
||||
-keepparameternames
|
||||
|
||||
# 关闭优化和压缩(避免框架兼容性问题)
|
||||
-dontshrink # 不删除未使用代码
|
||||
-dontoptimize # 不优化字节码[5,6](@ref)
|
||||
-keepdirectories
|
||||
-dontusemixedcaseclassnames
|
||||
-adaptclassstrings
|
||||
# 混淆选项
|
||||
-useuniqueclassmembernames # 成员名称唯一化
|
||||
-ignorewarnings
|
||||
+3
-3
@@ -686,7 +686,7 @@ public class WatchMonitorDataServiceImpl extends ServiceImpl<WatchMonitorDataMap
|
||||
WatchMonitorDataVo vo = new WatchMonitorDataVo();
|
||||
BeanUtil.copyProperties(watchMonitorData, vo);
|
||||
vo.setCreateTime(watchMonitorData.getCreateDate());
|
||||
if (ObjUtil.isEmpty(watchMonitorData.getLonGd()) || ObjUtil.isEmpty(watchMonitorData.getLatGd())) {
|
||||
if (StringUtils.hasLength(String.valueOf(watchMonitorData.getLon())) || StringUtils.hasLength(String.valueOf(watchMonitorData.getLat()))) {
|
||||
String code = watchMonitorData.getOrgCode();
|
||||
if (StringUtils.hasLength(code)) {
|
||||
SysDepart sysDepart = orgMap.get(GlobalUtils.getThirdDepartOrgCode(code));
|
||||
@@ -696,8 +696,8 @@ public class WatchMonitorDataServiceImpl extends ServiceImpl<WatchMonitorDataMap
|
||||
}
|
||||
}
|
||||
} else {
|
||||
vo.setLat(watchMonitorData.getLatGd());
|
||||
vo.setLon(watchMonitorData.getLonGd());
|
||||
vo.setLat(BigDecimal.valueOf(watchMonitorData.getLat()));
|
||||
vo.setLon(BigDecimal.valueOf(watchMonitorData.getLon()));
|
||||
}
|
||||
LoginUserNew userNew = userMap.get(watchMonitorData.getBindUserId());
|
||||
if (ObjectUtil.isNotNull(userNew)) {
|
||||
|
||||
+1
-1
@@ -358,7 +358,7 @@ public class WatchServiceImpl implements IWatchService {
|
||||
//体温
|
||||
WatchH5IndexItemVo tempVo = new WatchH5IndexItemVo();
|
||||
tempVo.setWdType("temperature");
|
||||
List<WatchH5IndexItemVo> list = Arrays.asList(sleepVo, stepsVo, hearRateVo, stressVo, spo2Vo, tempVo);
|
||||
List<WatchH5IndexItemVo> list = Arrays.asList(sleepVo, stepsVo, hearRateVo, stepsVo, spo2Vo, tempVo);
|
||||
return list.parallelStream()
|
||||
.peek(itemVo -> {
|
||||
itemVo.setWarnMin("0.0");
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
FROM anapsix/alpine-java:8_server-jre_unlimited
|
||||
|
||||
MAINTAINER xxx@163.com
|
||||
|
||||
|
||||
ENV PROFILE_NAME dev
|
||||
ENV SERVER_PORT 7098
|
||||
ENV NACOS_SERVER_ADDR nacos250:8848
|
||||
ENV NACOS_USERNAME xjuser
|
||||
ENV NACOS_PASSWORD Aa135790!123
|
||||
ENV NACOS_NAMESPACE 3af98a54-4a44-4576-8e28-bf5781c0dccf
|
||||
ENV NACOS_GROUP dev
|
||||
ENV PROFILE_NAME=dev \
|
||||
SERVER_PORT=7098 \
|
||||
NACOS_SERVER_ADDR=nacos250:8848 \
|
||||
NACOS_USERNAME=xjuser \
|
||||
NACOS_PASSWORD=Aa135790!123 \
|
||||
NACOS_NAMESPACE=3af98a54-4a44-4576-8e28-bf5781c0dccf \
|
||||
NACOS_GROUP=dev
|
||||
|
||||
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
@@ -20,6 +17,6 @@ WORKDIR /health-watch-start
|
||||
|
||||
EXPOSE 7098
|
||||
|
||||
ADD ./target/health-watch-start.jar ./
|
||||
COPY ./target/health-watch-start-xj.jar ./
|
||||
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-watch-start.jar
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-watch-start-xj.jar
|
||||
@@ -11,6 +11,10 @@
|
||||
|
||||
<artifactId>health-watch-start</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!--微服务启动 starter-->
|
||||
<dependency>
|
||||
@@ -22,11 +26,13 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-watch-biz</artifactId>
|
||||
<classifier>${biz-classifier}</classifier>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>renkang-test</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -20,8 +20,4 @@
|
||||
<version>2.0.0</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -4,6 +4,7 @@ import org.jeecg.modules.exports.entity.CommonExportsInfo;
|
||||
import org.jeecg.modules.imports.entity.CommonImports;
|
||||
import org.jeecg.modules.imports.entity.CommonImportsDetail;
|
||||
import org.jeecg.modules.imports.entity.CommonImportsInfo;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -11,6 +12,7 @@ import java.util.List;
|
||||
/**
|
||||
* @author Jiang Shunzhi
|
||||
*/
|
||||
@Component
|
||||
public class ImportExportApiFallback implements ImportExportApi {
|
||||
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-cloud-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -20,10 +20,12 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-consultation-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-local-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
@@ -79,8 +81,25 @@
|
||||
<dependency>
|
||||
<groupId>com.renkang</groupId>
|
||||
<artifactId>health-watch-api</artifactId>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>biz-obf</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.wvengen</groupId>
|
||||
<artifactId>proguard-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod, Exceptions, MethodParameters
|
||||
-keep @org.springframework.stereotype.Service class *
|
||||
-keep @org.springframework.web.bind.annotation.RestController class *
|
||||
-keep @org.springframework.context.annotation.Configuration class * { *; }
|
||||
-keep @org.springframework.stereotype.Component class *
|
||||
-keep class lombok.** { *; }
|
||||
-keepclassmembers enum * { # 保留枚举结构
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
-keepclassmembers class * implements java.io.Serializable { *; }
|
||||
-keepclassmembers class * {
|
||||
@org.springframework.web.bind.annotation.*Mapping *;
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
private static synthetic java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
|
||||
}
|
||||
-keepclassmembers class * {
|
||||
@lombok.Getter *;
|
||||
@lombok.Setter *;
|
||||
}
|
||||
# MyBatis 专用保留规则
|
||||
-keep interface org.jeecg.**.mapper.** { *; }
|
||||
-keep class org.jeecg.**.entity.** { *; }
|
||||
-keep class org.jeecg.**.bean.** { *; }
|
||||
-keep class org.jeecg.**.model.** { *; }
|
||||
-keep class org.jeecg.**.vo.** { *; }
|
||||
-keepparameternames
|
||||
|
||||
# 关闭优化和压缩(避免框架兼容性问题)
|
||||
-dontshrink # 不删除未使用代码
|
||||
-dontoptimize # 不优化字节码[5,6](@ref)
|
||||
-keepdirectories
|
||||
-dontusemixedcaseclassnames
|
||||
-adaptclassstrings
|
||||
# 混淆选项
|
||||
-useuniqueclassmembernames # 成员名称唯一化
|
||||
-ignorewarnings
|
||||
+7
-5
@@ -30,12 +30,14 @@ public class WxConfig {
|
||||
configImpl.setSecret(config.getSecret());
|
||||
configMap.put(miniAppName, configImpl);
|
||||
});
|
||||
String defaultAppName = miniAppProperties.getDefaultAppName();
|
||||
if (StrUtil.isBlank(defaultAppName) || !configMap.containsKey(defaultAppName)) {
|
||||
defaultAppName = configMap.keySet().iterator().next();
|
||||
}
|
||||
WxMaService wxMaService = new WxMaServiceImpl();
|
||||
wxMaService.setMultiConfigs(configMap, defaultAppName);
|
||||
if (!configMap.isEmpty()) {
|
||||
String defaultAppName = miniAppProperties.getDefaultAppName();
|
||||
if (StrUtil.isBlank(defaultAppName) || !configMap.containsKey(defaultAppName)) {
|
||||
defaultAppName = configMap.keySet().iterator().next();
|
||||
}
|
||||
wxMaService.setMultiConfigs(configMap, defaultAppName);
|
||||
}
|
||||
return wxMaService;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
FROM anapsix/alpine-java:8_server-jre_unlimited
|
||||
|
||||
MAINTAINER xxx@163.com
|
||||
|
||||
|
||||
ENV PROFILE_NAME dev
|
||||
ENV SERVER_PORT 7001
|
||||
ENV NACOS_SERVER_ADDR nacos250:8848
|
||||
ENV NACOS_USERNAME xjuser
|
||||
ENV NACOS_PASSWORD Aa135790!123
|
||||
ENV NACOS_NAMESPACE 3af98a54-4a44-4576-8e28-bf5781c0dccf
|
||||
ENV NACOS_GROUP dev
|
||||
ENV PROFILE_NAME=dev \
|
||||
SERVER_PORT=7001 \
|
||||
NACOS_SERVER_ADDR=nacos250:8848 \
|
||||
NACOS_USERNAME=xjuser \
|
||||
NACOS_PASSWORD=Aa135790!123 \
|
||||
NACOS_NAMESPACE=3af98a54-4a44-4576-8e28-bf5781c0dccf \
|
||||
NACOS_GROUP=dev
|
||||
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
|
||||
@@ -19,6 +16,6 @@ WORKDIR /jeecg-system-start
|
||||
|
||||
EXPOSE 7001
|
||||
|
||||
ADD ./target/jeecg-system-start.jar ./
|
||||
COPY ./target/jeecg-system-start-xj.jar ./
|
||||
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-start.jar
|
||||
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-start-xj.jar
|
||||
@@ -11,6 +11,10 @@
|
||||
<artifactId>jeecg-system-start</artifactId>
|
||||
<description>System项目微服务启动</description>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>false</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- 引入jeecg-boot-starter-cloud依赖 -->
|
||||
<dependency>
|
||||
@@ -21,6 +25,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-biz</artifactId>
|
||||
<classifier>${biz-classifier}</classifier>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -12,10 +12,6 @@
|
||||
<artifactId>jeecg-system</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<maven.install.skip>true</maven.install.skip>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>jeecg-system-api</module>
|
||||
<module>jeecg-system-biz</module>
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<biz-classifier>xj</biz-classifier>
|
||||
<!-- 基础配置 -->
|
||||
<java.version>1.8</java.version>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
@@ -257,6 +258,13 @@
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-biz</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>obf</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- jeecg tools -->
|
||||
@@ -270,18 +278,21 @@
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
<version>${jeecgboot-renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<!-- system 单体 api -->
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-local-api</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
<!-- system 微服务 api -->
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-system-cloud-api</artifactId>
|
||||
<version>${renkang.version}</version>
|
||||
<classifier>xj</classifier>
|
||||
</dependency>
|
||||
|
||||
<!--微服务启动依赖-->
|
||||
@@ -646,6 +657,13 @@
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<classifier>xj</classifier> <!-- 设置classifier -->
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- 指定JDK编译版本 -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
@@ -728,12 +746,90 @@
|
||||
<configuration>
|
||||
<!--设置为true,以便把本地的system的jar也包括进来-->
|
||||
<includeSystemScope>true</includeSystemScope>
|
||||
<!-- 可选:为可执行包设置新 classifier -->
|
||||
<classifier>xj</classifier>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>biz-obf</id>
|
||||
<properties>
|
||||
<biz-classifier>obf</biz-classifier>
|
||||
</properties>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.wvengen</groupId>
|
||||
<artifactId>proguard-maven-plugin</artifactId>
|
||||
<version>2.7.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase> <!-- 在打包阶段执行混淆 -->
|
||||
<goals>
|
||||
<goal>proguard</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<putLibraryJarsInTempDir>true</putLibraryJarsInTempDir>
|
||||
<injar>${project.build.finalName}-xj.jar</injar>
|
||||
<outjar>${project.build.finalName}-obf.jar</outjar> <!-- 输出混淆后JAR -->
|
||||
<obfuscate>true</obfuscate>
|
||||
<libs>
|
||||
<lib>${java.home}/lib/rt.jar</lib> <!-- JDK 核心库 -->
|
||||
</libs>
|
||||
<proguardInclude>proguard.cfg</proguardInclude> <!-- 模块独立规则 -->
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>3.6.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-obf-jar</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>attach-artifact</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifacts>
|
||||
<artifact>
|
||||
<file>${project.build.directory}/${project.build.finalName}-obf.jar
|
||||
</file>
|
||||
<type>jar</type>
|
||||
<classifier>obf</classifier> <!-- 关键:标识混淆JAR -->
|
||||
</artifact>
|
||||
</artifacts>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-dependencies</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/dependency</outputDirectory>
|
||||
<includeScope>provided</includeScope>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>local</id>
|
||||
<activation>
|
||||
@@ -810,6 +906,7 @@
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.3.0</version>
|
||||
<configuration>
|
||||
<classifier>xj</classifier>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass>${start-class}</mainClass>
|
||||
|
||||
Reference in New Issue
Block a user