Commit bec3e674 authored by maoying's avatar maoying

合并developer分支代码

parents d9da3848 9ed82039
......@@ -45,5 +45,16 @@
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".apt_generated">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path=".apt_generated_tests">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
package com.yeejoin.amos.boot.biz.common.aop;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.DepartmentBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.bo.RoleBo;
import com.yeejoin.amos.boot.biz.common.interceptors.PermissionInterceptor;
import com.yeejoin.amos.boot.biz.common.interceptors.PermissionInterceptorContext;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.ObjectUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
......@@ -34,10 +25,22 @@ import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.DepartmentBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.bo.RoleBo;
import com.yeejoin.amos.boot.biz.common.interceptors.PermissionInterceptorContext;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
/**
* controller层切面 用于用户数据缓存 供 sql自动填充使用
......@@ -155,6 +158,11 @@ public class ControllerAop {
} else {
roleM = roles.get(sequenceNbr).get(0);
}
if(companyM!=null&&companyM.getRegionSeq()!=null)
{
FeignClientResult<RegionModel> result = Systemctl.regionClient.getRegion(Long.valueOf(companyM.getRegionSeq()));
company.setRegionCode(String.valueOf(result.getResult().getRegionCode()));
}
Bean.copyExistPropertis(roleM, role);
ReginParams reginParams = new ReginParams();
reginParams.setCompany(company);
......
......@@ -19,6 +19,7 @@ public class CompanyBo {
private String orgCode;
private Long parentId;
private Long sequenceNbr;
private String regionCode;
private List<CompanyBo> children;
public String getAddress() {
......@@ -116,4 +117,13 @@ public class CompanyBo {
public void setChildren(List<CompanyBo> children) {
this.children = children;
}
public String getRegionCode() {
return regionCode;
}
public void setRegionCode(String regionCode) {
this.regionCode = regionCode;
}
}
......@@ -44,4 +44,5 @@ public class BaseDto implements Serializable{
private Boolean isDelete=false;
}
......@@ -97,7 +97,7 @@ public class BusinessController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = true)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/getData", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取map", notes = "获取map")
@RestEventTrigger(value = "openapiLogEventHandler")
......
......@@ -12,6 +12,7 @@ import com.csoft.sdk.domain.response.CsoftDataApiXixianGetzhutiinfoResponse;
import com.yeejoin.amos.api.openapi.face.orm.dao.DataDictionaryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.alibaba.fastjson.JSONArray;
......@@ -57,7 +58,10 @@ public class TaBusinessServiceImpl extends BaseService<TaAccessConfigModel, TaAc
System.out.println(response.getResult());
JSONObject jsonObject = JSONObject.parseObject(response.getData());
JSONObject data = jsonObject.getJSONObject("data");
//如果不存在该企业 则直接返回null
if(ValidationUtil.isEmpty(data)){
return null;
}
//分割字符串 根据详细地址分割出 省/市/区、街道地址、小区地址
String address = data.getString("dom");
String area = address.substring(0,address.indexOf("区")+1);
......
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="target/generated-sources/annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".apt_generated">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path=".apt_generated_tests">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
......@@ -45,5 +45,16 @@
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".apt_generated">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path=".apt_generated_tests">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-api</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-module-kgd-api</artifactId>
<properties>
<tyboot.version>1.1.23-SNAPSHOT</tyboot.version>
</properties>
<dependencies>
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>amos-component-influxdb</artifactId>
<version>1.7.13-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.4.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.typroject</groupId>
<artifactId>tyboot-component-cache</artifactId>
<version>${tyboot.version}</version>
<exclusions>
<exclusion>
<groupId>org.typroject</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- j2cache 二级缓存 -->
<dependency>
<groupId>net.oschina.j2cache</groupId>
<artifactId>j2cache-spring-boot2-starter</artifactId>
<version>2.8.0-release</version>
</dependency>
<dependency>
<groupId>net.oschina.j2cache</groupId>
<artifactId>j2cache-core</artifactId>
<version>2.8.0-release</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.typroject</groupId>
<artifactId>tyboot-component-emq</artifactId>
<version>${tyboot.version}</version>
<exclusions>
<exclusion>
<groupId>org.typroject</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.yeejoin.amos.kgd.message;
public class Constant {
public static final String REGION = "REALTIME";
}
package com.yeejoin.amos.kgd.message;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqxListener;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.component.influxdb.InfluxDbConnection;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
import com.yeejoin.amos.kgd.message.model.MessageModel;
import net.oschina.j2cache.CacheChannel;
import net.oschina.j2cache.CacheObject;
@Component
public class IOTPropertyMessageAction extends EmqxListener{
private InfluxDbConnection influxDbConnection;
private InfluxdbUtil influxdbUtil;
private CacheChannel cacheChannel;
public static final int threadNum = 5;
ExecutorService service = Executors.newFixedThreadPool(threadNum);
private static final BlockingQueue<MessageModel> blockingQueue = new LinkedBlockingQueue<MessageModel>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
public IOTPropertyMessageAction(InfluxDbConnection influxDbConnection, InfluxdbUtil influxdbUtil, CacheChannel cacheChannel) {
this.influxDbConnection = influxDbConnection;
this.cacheChannel = cacheChannel;
this.influxdbUtil = influxdbUtil;
for (int i = 0; i < threadNum; i++) {
service.execute(task_runnable);
}
}
@Override
public void processMessage(String topic,MqttMessage mqttMessage) throws Exception {
MessageModel message = new MessageModel();
message.setPayload(mqttMessage.getPayload());
message.setTableName(topic.replace("/", "").replace("property", ""));
blockingQueue.add(message);
}
Runnable task_runnable = new Runnable() {
public void run() {
while (true) {
try {
MessageModel mqttMessage = blockingQueue.take();
String jsonStr = new String(mqttMessage.getPayload());
String tableName = mqttMessage.getTableName();
if ("iotlogs".contains(tableName)) {
continue;
}
Map<String, String> tagsMap = new HashMap<>();
tagsMap.put("iotCode", tableName);
Map<String, Object> fieldsMap = JSON.parseObject(jsonStr, Map.class);
String sql = "show field keys from " + tableName;
try {
List<Map<String, Object>> list = influxdbUtil.query(sql);
Map<String, Object> fieldsTempMap = new HashMap<>();
for (Map<String, Object> field : list) {
if (fieldsTempMap.containsKey(field.get("fieldKey").toString())) {
continue;
}
fieldsTempMap.put(field.get("fieldKey").toString(), field.get("fieldType").toString());
if (fieldsMap.containsKey(field.get("fieldKey"))) {
if ("integer".equals(field.get("fieldType").toString())) {
fieldsMap.put(field.get("fieldKey").toString(),
Integer.valueOf(fieldsMap.get(field.get("fieldKey")).toString()));
} else if ("float".equals(field.get("fieldType").toString())) {
fieldsMap.put(field.get("fieldKey").toString(),
Float.valueOf(fieldsMap.get(field.get("fieldKey")).toString()));
} else if ("double".equals(field.get("fieldType").toString())) {
fieldsMap.put(field.get("fieldKey").toString(),
Double.valueOf(fieldsMap.get(field.get("fieldKey")).toString()));
}
else {
if ("true".equals(fieldsMap.get(field.get("fieldKey")).toString().toLowerCase()) ||
"false".equals(fieldsMap.get(field.get("fieldKey")).toString().toLowerCase())) {
fieldsMap.put(field.get("fieldKey").toString(), Boolean.valueOf(fieldsMap.get(field.get("fieldKey")).toString()) ? 1 : 0);
} else {
fieldsMap.put(field.get("fieldKey").toString(),
fieldsMap.get(field.get("fieldKey")).toString());
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
fieldsMap.put("createdTime", simpleDateFormat.format(new Date()));
influxDbConnection.insert(tableName, tagsMap, fieldsMap);
CacheObject cacheObject = cacheChannel.get(Constant.REGION, tableName);
if (cacheObject.getValue() == null) {
cacheChannel.set(Constant.REGION, tableName, fieldsMap);
} else {
HashMap<String, Object> cacheData = (HashMap<String, Object>) cacheObject.getValue();
cacheData.putAll(fieldsMap);
cacheChannel.set(Constant.REGION, tableName, cacheData);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
};
}
package com.yeejoin.amos.kgd.message;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqxListener;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.component.influxdb.InfluxDbConnection;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
import com.yeejoin.amos.kgd.message.model.MessageModel;
import net.oschina.j2cache.CacheChannel;
import net.oschina.j2cache.CacheObject;
@Component
public class MaasMessageAction extends EmqxListener{
private InfluxDbConnection influxDbConnection;
private InfluxdbUtil influxdbUtil;
private CacheChannel cacheChannel;
public static final int threadNum = 5;
ExecutorService service = Executors.newFixedThreadPool(threadNum);
private static final BlockingQueue<MessageModel> blockingQueue = new LinkedBlockingQueue<MessageModel>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
public MaasMessageAction(InfluxDbConnection influxDbConnection, InfluxdbUtil influxdbUtil, CacheChannel cacheChannel) {
this.influxDbConnection = influxDbConnection;
this.cacheChannel = cacheChannel;
this.influxdbUtil = influxdbUtil;
for (int i = 0; i < threadNum; i++) {
service.execute(task_runnable);
}
}
@Override
public void processMessage(String topic,MqttMessage mqttMessage) throws Exception {
MessageModel message = new MessageModel();
message.setPayload(mqttMessage.getPayload());
message.setTableName(topic.replace("/", ""));
blockingQueue.add(message);
}
Runnable task_runnable = new Runnable() {
public void run() {
while (true) {
try {
MessageModel mqttMessage = blockingQueue.take();
String jsonStr = new String(mqttMessage.getPayload());
JSONObject data = JSONObject.parseObject(jsonStr);
String tableName = mqttMessage.getTableName();
Map<String, String> tagsMap = new HashMap<>();
Map<String, Object> fieldsMap = JSONObject.toJavaObject(data, HashMap.class);
String sql = "show field keys from " + tableName;
try {
List<Map<String, Object>> list = influxdbUtil.query(sql);
Map<String, Object> fieldsTempMap = new HashMap<>();
for (Map<String, Object> field : list) {
if (fieldsTempMap.containsKey(field.get("fieldKey").toString())) {
continue;
}
fieldsTempMap.put(field.get("fieldKey").toString(), field.get("fieldType").toString());
if (fieldsMap.containsKey(field.get("fieldKey"))) {
if ("integer".equals(field.get("fieldType").toString())) {
fieldsMap.put(field.get("fieldKey").toString(),
Integer.valueOf(fieldsMap.get(field.get("fieldKey")).toString()));
} else if ("float".equals(field.get("fieldType").toString())) {
fieldsMap.put(field.get("fieldKey").toString(),
Float.valueOf(fieldsMap.get(field.get("fieldKey")).toString()));
} else if ("double".equals(field.get("fieldType").toString())) {
fieldsMap.put(field.get("fieldKey").toString(),
Double.valueOf(fieldsMap.get(field.get("fieldKey")).toString()));
} else {
fieldsMap.put(field.get("fieldKey").toString(),
fieldsMap.get(field.get("fieldKey")).toString());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
fieldsMap.put("createdTime", simpleDateFormat.format(new Date()));
influxDbConnection.insert(tableName, tagsMap, fieldsMap);
CacheObject cacheObject = cacheChannel.get(Constant.REGION, tableName);
if (cacheObject.getValue() == null) {
cacheChannel.set(Constant.REGION, tableName, fieldsMap);
} else {
HashMap<String, Object> cacheData = (HashMap<String, Object>) cacheObject.getValue();
cacheData.putAll(fieldsMap);
cacheChannel.set(Constant.REGION, tableName, cacheData);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
};
}
package com.yeejoin.amos.kgd.message;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.typroject.tyboot.component.emq.EmqKeeper;
@Configuration
public class MessageConfig implements ApplicationListener<ApplicationReadyEvent>{
@Autowired
private EmqKeeper emqKeeper;
@Autowired
IOTPropertyMessageAction propertyMessageAction;
@Autowired
MaasMessageAction maasMessageAction;
@Value("spring.application.name")
private String serviceName;
public static final Integer DEFAULT_QOS = 2;
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
try {
emqKeeper.subscript(Topic.IOT_PROPERTY_MESSAGE.getShareTopicStr(serviceName), DEFAULT_QOS, propertyMessageAction);
emqKeeper.subscript(Topic.MAAS_CALCULATION_RESULTS.getShareTopicStr(serviceName), DEFAULT_QOS, maasMessageAction);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.yeejoin.amos.kgd.message;
public enum Topic {
MAAS_CALCULATION_RESULTS("maas/calculation/result"),
IOT_PROPERTY_MESSAGE("+/+/property"),
IOT_SHADOW_MESSAGE("+/+/shadow");
private String topicStr;
Topic(String topicStr) {
this.topicStr = topicStr;
}
public String getTopicStr() {
return topicStr;
}
public String getShareTopicStr(String groupName) {
String shareTopicStr = "$share/" + groupName.trim() + "/" + getTopicStr();
return shareTopicStr;
}
}
package com.yeejoin.amos.kgd.message.model;
import lombok.Data;
@Data
public class MessageModel {
private String tableName;
private byte[] payload;
}
package com.yeejoin.amos.kgd.service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import com.yeejoin.amos.component.feign.model.Page;
import com.yeejoin.amos.component.influxdb.InfluxDbConnection;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
import com.yeejoin.amos.kgd.message.Constant;
import net.oschina.j2cache.CacheChannel;
import net.oschina.j2cache.CacheObject;
@Component
public class LiveDataService {
private final Logger logger = LogManager.getLogger(LiveDataService.class);
@Autowired
private InfluxdbUtil influxdbUtil;
@Autowired
InfluxDbConnection influxDbConnection;
@Autowired
private CacheChannel cacheChannel;
public static final String SPACE = " ";
public static final String ASTERISK = "*";
public static final String DATE = "time";
public static final String COMMA = ",";
public static final String FROM = "FROM";
public static final String WHERE = "WHERE";
public static final String EQUALSIGN = "=";
public static final String AND = "AND";
public List queryHistoryDataForList(String tableName, String timeStart, String timeEnd, String fieldKeys, Map<String, Object> requestParams) {
StringBuffer sqlSb = new StringBuffer();
sqlSb.append("SELECT").append(SPACE);
if (ObjectUtils.isEmpty(fieldKeys)) {
sqlSb.append(SPACE).append(ASTERISK).append(SPACE);
} else {
fieldKeys = fieldKeys + ", createdTime ";
sqlSb.append(SPACE).append(fieldKeys).append(SPACE);
}
sqlSb.append(SPACE).append(FROM).append(SPACE);
sqlSb.append(tableName);
if (!ObjectUtils.isEmpty(requestParams)) {
sqlSb.append(SPACE).append(WHERE).append(SPACE);
sqlSb.append(DATE).append(">=").append("'").append(timeStart).append("'");
sqlSb.append(AND).append(DATE).append("<=").append("'").append(timeEnd).append("'");
Set<String> keys = requestParams.keySet();
StringBuffer whereSb = new StringBuffer();
for (String key : keys) {
whereSb.append(AND).append(SPACE).append(key).append(SPACE).append(EQUALSIGN).append(requestParams.get(key)).append(SPACE);
}
sqlSb.append(whereSb.toString());
}
sqlSb.append(SPACE).append("tz('Asia/Shanghai')");
List<Map<String, Object>> list = influxdbUtil.query(sqlSb.toString());
return list;
}
public Page<Map<String, Object>> queryHistoryDataForPage(String tableName, String timeStart, String timeEnd, String fieldKeys, Map<String, Object> requestParams, long current, long size) {
StringBuffer sqlSb = new StringBuffer();
StringBuffer countSb = new StringBuffer();
StringBuffer whereSb = new StringBuffer();
sqlSb.append("SELECT").append(SPACE);
if (ObjectUtils.isEmpty(fieldKeys)) {
sqlSb.append(SPACE).append(ASTERISK).append(SPACE);
} else {
fieldKeys = fieldKeys + ", createdTime ";
sqlSb.append(SPACE).append(fieldKeys).append(SPACE);
}
sqlSb.append(SPACE).append(FROM).append(SPACE);
sqlSb.append(tableName);
if (!ObjectUtils.isEmpty(requestParams)) {
whereSb.append(SPACE).append(WHERE).append(SPACE);
whereSb.append(DATE).append(">=").append("'").append(timeStart).append("'").append(SPACE);
whereSb.append(AND).append(SPACE).append(DATE).append("<=").append("'").append(timeEnd).append("'");
Set<String> keys = requestParams.keySet();
StringBuffer subWhereSb = new StringBuffer();
for (String key : keys) {
subWhereSb.append(AND).append(SPACE).append(key).append(SPACE).append(EQUALSIGN).append(requestParams.get(key)).append(SPACE);
}
whereSb.append(subWhereSb.toString());
}
sqlSb.append(" LIMIT ").append(size).append(" OFFSET ").append((current - 1) * size);
sqlSb.append(whereSb.toString());
sqlSb.append(SPACE).append("tz('Asia/Shanghai')");
countSb.append("SELECT COUNT(createdTime) FROM ").append(tableName);
countSb.append(whereSb.toString());
List<Map<String, Object>> count = influxdbUtil.query(countSb.toString());
List<Map<String, Object>> list = influxdbUtil.query(sqlSb.toString());
Page<Map<String, Object>> page = new Page<Map<String, Object>>();
page.setCurrent(current);
page.setSize(size);
page.setRecords(list);
page.setTotal((Double.valueOf(count.get(0).get("count").toString()).longValue()));
return page;
}
public Map<String, Object> queryrealTimeData(String tableName) {
CacheObject cacheObject = cacheChannel.get(Constant.REGION, tableName);
return (Map<String, Object>) cacheObject.getValue();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.avic.face.orm.dao.AvicCustomPathMapper">
</mapper>
......@@ -28,5 +28,6 @@
<module>amos-boot-module-ccs-api</module>
<module>amos-boot-module-avic-api</module>
<module>amos-boot-module-precontrol-api</module>
<module>amos-boot-module-kgd-api</module>
</modules>
</project>
\ No newline at end of file
......@@ -45,5 +45,16 @@
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".apt_generated">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path=".apt_generated_tests">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-biz</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-module-kgd-biz</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-kgd-api</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.yeejoin.amos.kgd.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.DateTimeUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.kgd.service.LiveDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@RestController
@Api(tags = "数据Api")
@RequestMapping(value = "/data")
public class DataManagerController extends BaseController{
@Autowired
LiveDataService liveDataService;
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(value = "列表查询数据")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ResponseModel query(
@RequestParam(value = "timeStart") String timeStart,
@RequestParam(value = "timeEnd") String timeEnd,
@RequestParam(value = "measurement") String measurement,
@RequestParam(value = "fieldKey", required = false) String fieldKey) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date start = DateTimeUtil.format(timeStart, DateTimeUtil.ISO_DATE_HOUR24_MIN_SEC);
Date end = DateTimeUtil.format(timeEnd, DateTimeUtil.ISO_DATE_HOUR24_MIN_SEC);
String startUTC = df.format(start);
String endUTC = df.format(end);
Map<String, Object> variables = new HashMap<>();
Enumeration<String> keys = request.getParameterNames();
while(keys.hasMoreElements()){
String name = (String)keys.nextElement();
String value = request.getParameter(name);
variables.put(name, value);
}
variables.remove("timeStart");
variables.remove("timeEnd");
variables.remove("measurement");
variables.remove("fieldKey");
return ResponseHelper.buildResponse(liveDataService.queryHistoryDataForList(measurement, startUTC, endUTC, fieldKey, variables));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(value = "分页查询数据")
@RequestMapping(value = "/page", method = RequestMethod.GET)
public ResponseModel page(
@RequestParam(value = "timeStart") String timeStart,
@RequestParam(value = "timeEnd") String timeEnd,
@RequestParam(value = "measurement") String measurement,
@RequestParam(value = "fieldKey", required = false) String fieldKey,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date start = DateTimeUtil.format(timeStart, DateTimeUtil.ISO_DATE_HOUR24_MIN_SEC);
Date end = DateTimeUtil.format(timeEnd, DateTimeUtil.ISO_DATE_HOUR24_MIN_SEC);
String startUTC = df.format(start);
String endUTC = df.format(end);
Map<String, Object> variables = new HashMap<>();
Enumeration<String> keys = request.getParameterNames();
while(keys.hasMoreElements()){
String name = (String)keys.nextElement();
String value = request.getParameter(name);
variables.put(name, value);
}
variables.remove("timeStart");
variables.remove("timeEnd");
variables.remove("measurement");
variables.remove("fieldKey");
variables.remove("current");
variables.remove("size");
return ResponseHelper.buildResponse(liveDataService.queryHistoryDataForPage(measurement, startUTC, endUTC, fieldKey, variables, current, size));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(value = "最新数据")
@RequestMapping(value = "/realTime", method = RequestMethod.GET)
public ResponseModel realTime(
@RequestParam(value = "measurement") String measurement) {
return ResponseHelper.buildResponse(liveDataService.queryrealTimeData(measurement));
}
}
......@@ -60,6 +60,7 @@
<module>amos-boot-module-equip-biz</module>
<module>amos-boot-module-ccs-biz</module>
<module>amos-boot-module-avic-biz</module>
<module>amos-boot-module-precontrol-biz</module>
<module>amos-boot-module-precontrol-biz</module>
<module>amos-boot-module-kgd-biz</module>
</modules>
</project>
\ No newline at end of file
This diff is collapsed.
/.apt_generated/
/.apt_generated_tests/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>
<artifactId>amos-boot-system-cas</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<artifactId>amos-boot-module-cas-api</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-common-api</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.boot.module.cas.api.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* Dto
*
* @author duanwei
* @date 2022-09-14
*/
@Data
public class IdxBizXnzsDto implements Serializable {
private static final long serialVersionUID = 1L;
private String axisData;
private double one;
private double two;
private double three;
private double four;
}
package com.yeejoin.amos.boot.module.cas.api.dto;
import lombok.Data;
import java.util.List;
@Data
public class ResultDto {
List<List<Double>> seriesData;
List<String> axisData;
}
package com.yeejoin.amos.boot.module.cas.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
*
*
* @author duanwei
* @date 2022-09-14
*/
@Data
//@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="IdxBizXnzs对象", description="")
public class IdxBizXnzs implements Serializable {
private static final long serialVersionUID = 1L;
private Boolean valid;
private String record;
private LocalDateTime date;
private String creator;
@TableField("creatorName")
private String creatorName;
private String status;
@TableField("instanceId")
private String instanceId;
@ApiModelProperty(value = "年份")
private Integer cNf;
@ApiModelProperty(value = "季度")
private String cJd;
@ApiModelProperty(value = "地市")
private String cDs;
@ApiModelProperty(value = "季度代码")
private Integer cJddm;
@ApiModelProperty(value = "政务大类")
private String cZwdl;
@ApiModelProperty(value = "政务大类代码")
private String cZwdldm;
@ApiModelProperty(value = "政务子类")
private String cZwzl;
@ApiModelProperty(value = "政务子类代码")
private String cZwzldm;
@ApiModelProperty(value = "效能指数")
private Double cXnzs;
@ApiModelProperty(value = "季度权重")
private Integer cJdqz;
@ApiModelProperty(value = "地市权重")
private Integer cDsqz;
@ApiModelProperty(value = "报表权重")
private Integer cBbqz;
}
package com.yeejoin.amos.boot.module.cas.api.mapper;
import com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto;
import com.yeejoin.amos.boot.module.cas.api.entity.IdxBizXnzs;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
* Mapper 接口
*
* @author duanwei
* @date 2022-09-14
*/
public interface IdxBizXnzsMapper extends BaseMapper<IdxBizXnzs> {
List<IdxBizXnzsDto> select();
List<IdxBizXnzsDto> selectZwdl();
}
package com.yeejoin.amos.boot.module.cas.api.service;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto;
import com.yeejoin.amos.boot.module.cas.api.dto.ResultDto;
import com.yeejoin.amos.boot.module.cas.api.entity.IdxBizXnzs;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* 服务类
*
* @author duanwei
* @date 2022-09-14
*/
public interface IIdxBizXnzsService extends IService<IdxBizXnzs> {
JSONObject select();
JSONObject selectZwdl();
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.cas.api.mapper.IdxBizXnzsMapper">
<select id="select" resultType="com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto">
SELECT
a.c_ds as `axisData`,
a.`one`,
b.`two`,
c.`three`,
d.`four`
FROM
(
SELECT
c_ds,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "one"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 0, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_ds
) AS a
LEFT JOIN (
SELECT
c_ds,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "two"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 1, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_ds
) AS b ON b.c_ds = a.c_ds
LEFT JOIN (
SELECT
c_ds,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "three"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 2, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_ds
) AS c ON c.c_ds = a.c_ds
LEFT JOIN (
SELECT
c_ds,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "four"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 3, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_ds
) AS d ON d.c_ds = a.c_ds
</select>
<select id="selectZwdl" resultType="com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto">
SELECT
a.c_zwdl as `axisData`,
a.`one`,
b.`two`,
c.`three`,
d.`four`
FROM
(
SELECT
c_zwdl,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "one"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 0, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_zwdl
) AS a
LEFT JOIN (
SELECT
c_zwdl,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "two"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 1, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_zwdl
) AS b ON b.c_zwdl = a.c_zwdl
LEFT JOIN (
SELECT
c_zwdl,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "three"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 2, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_zwdl
) AS c ON c.c_zwdl = a.c_zwdl
LEFT JOIN (
SELECT
c_zwdl,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "four"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 3, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_zwdl
) AS d ON d.c_zwdl = a.c_zwdl
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>
<artifactId>amos-boot-system-cas</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<artifactId>amos-boot-module-cas-biz</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-cas-api</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-common-biz</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
import com.yeejoin.amos.boot.biz.common.utils.oConvertUtils;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.net.InetAddress;
/**
* <pre>
* 特种设备服务启动类
* </pre>
*
* @author DELL
*/
@SpringBootApplication
@EnableTransactionManagement
@EnableConfigurationProperties
@ServletComponentScan
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@EnableEurekaClient
@EnableScheduling
@MapperScan({ "org.typroject.tyboot.demo.face.orm.dao*", "org.typroject.tyboot.face.*.orm.dao*",
"org.typroject.tyboot.core.auth.face.orm.dao*", "org.typroject.tyboot.component.*.face.orm.dao*",
"com.yeejoin.amos.boot.module.**.api.mapper", "com.yeejoin.amos.boot.biz.common.dao.mapper","com.yeejoin.amos.boot.module.common.biz.*" })
@ComponentScan(basePackages = { "org.typroject", "com.yeejoin.amos" })
public class AmosCasApplication {
private static final Logger logger = LoggerFactory.getLogger(AmosCasApplication.class);
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(AmosCasApplication.class, args);
Environment env = context.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path"));
logger.info("\n----------------------------------------------------------\n\t"
+ "Application Amos-Biz-Boot is running! Access URLs:\n\t" + "Swagger文档: \thttp://" + ip + ":" + port
+ path + "/doc.html\n" + "----------------------------------------------------------");
}
}
package com.yeejoin.amos.boot.module.cas.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto;
import com.yeejoin.amos.boot.module.cas.api.dto.ResultDto;
import com.yeejoin.amos.boot.module.cas.api.entity.IdxBizXnzs;
import com.yeejoin.amos.boot.module.cas.api.service.IIdxBizXnzsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
/**
*
*
* @author duanwei
* @date 2022-09-14
*/
@RestController
@Api(tags = "Api")
@RequestMapping(value = "/idx-biz-xnzs", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class IdxBizXnzsController extends BaseController {
@Autowired
IIdxBizXnzsService iIdxBizXnzsService;
/**
* 新增
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public boolean saveIdxBizXnzs(HttpServletRequest request, @RequestBody IdxBizXnzs idxBizXnzs){
return iIdxBizXnzsService.save(idxBizXnzs);
}
/**
* 根据id删除
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id){
return iIdxBizXnzsService.removeById(id);
}
/**
* 修改
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改", notes = "修改")
public boolean updateByIdIdxBizXnzs(HttpServletRequest request, @RequestBody IdxBizXnzs idxBizXnzs){
return iIdxBizXnzsService.updateById(idxBizXnzs);
}
/**
* 根据id查询
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public IdxBizXnzs selectById(HttpServletRequest request, @PathVariable Long id){
return iIdxBizXnzsService.getById(id);
}
/**
* 列表分页查询
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY ,needAuth = false)
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<IdxBizXnzs> listPage(String pageNum,String pageSize,
IdxBizXnzs idxBizXnzs){
Page<IdxBizXnzs> pageBean;
QueryWrapper<IdxBizXnzs> idxBizXnzsQueryWrapper = new QueryWrapper<>();
Class<? extends IdxBizXnzs> aClass = idxBizXnzs.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(idxBizXnzs);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(idxBizXnzs);
idxBizXnzsQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(idxBizXnzs);
idxBizXnzsQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(idxBizXnzs);
idxBizXnzsQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(idxBizXnzs);
idxBizXnzsQueryWrapper.eq(name, fileValue);
}
}
}catch (Exception e) {
}
});
IPage<IdxBizXnzs> page;
if (StringUtils.isBlank(pageNum) ||StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
}else{
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iIdxBizXnzsService.page(pageBean, idxBizXnzsQueryWrapper);
return page;
}
/**
* 查询
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY ,needAuth = false)
@RequestMapping(value = "/select", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查询地市", notes = "查询地市")
public ResponseModel<JSONObject> select(){
return ResponseHelper.buildResponse(iIdxBizXnzsService.select());
}
/**
* 查询政务大列
* @author 王龙
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@RequestMapping(value = "/selectZwdl", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET",value = "查询政务大类", notes = "查询政务大类")
public ResponseModel<JSONObject> selectZwdl() {
return ResponseHelper.buildResponse(iIdxBizXnzsService.selectZwdl());
}
}
package com.yeejoin.amos.boot.module.cas.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto;
import com.yeejoin.amos.boot.module.cas.api.dto.ResultDto;
import com.yeejoin.amos.boot.module.cas.api.entity.IdxBizXnzs;
import com.yeejoin.amos.boot.module.cas.api.mapper.IdxBizXnzsMapper;
import com.yeejoin.amos.boot.module.cas.api.service.IIdxBizXnzsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import springfox.documentation.spring.web.json.Json;
import java.util.*;
/**
* 服务实现类
*
* @author wanglong
* @date 2022-09-14
*/
@Service
public class IdxBizXnzsServiceImpl extends BaseService<IdxBizXnzsDto, IdxBizXnzs,IdxBizXnzsMapper> implements IIdxBizXnzsService {
@Autowired
private IdxBizXnzsMapper idxBizXnzsMapper;
private static final Logger log = LoggerFactory.getLogger(IdxBizXnzsServiceImpl.class);
@Override
public JSONObject select() {
/**
* 预返回数据
*/
JSONObject message = new JSONObject();
List<IdxBizXnzsDto> xnzsDtoList = idxBizXnzsMapper.select();
List<String> axisData = new ArrayList<>();
// List<List<Double>> seriesDataList=new ArrayList<>();
List<JSONObject> seriesDataList = new ArrayList<>();
String [] borderColor = {"#5966e6","#e7533b","#00c190","#8f57da","#f59c59","#19d3f3","#ff6692","#b6e880","#413a68","#f5c551","#4857c2","#ed553b","#01bb8d","#a561f3" };
String [] color = {"#354599","#7b393a","#047569","#584099","#835f4a","#15a7c7","#834166","#5e825c","#835a9c","#a18a49","#354599","#7b393b","#037569","#6f4ab4"};
int i = 0;
for(IdxBizXnzsDto bizXnzsDto : xnzsDtoList){
// List<Double> list=new ArrayList<>();
JSONObject firstJson = new JSONObject();
JSONObject secondJson = new JSONObject();
JSONObject thirdly = new JSONObject();
axisData.add(bizXnzsDto.getAxisData());
JSONArray json = new JSONArray();
Double[] doubles = {bizXnzsDto.getOne(),bizXnzsDto.getTwo(),bizXnzsDto.getThree(),bizXnzsDto.getFour()};
thirdly.put("borderWidth","2");
thirdly.put("borderColor",borderColor[i]);
thirdly.put("color",color[i]);
secondJson.put("normal",thirdly);
i = i+1;
Arrays.sort(doubles);
json.add(doubles[0]);
json.add((doubles[0]+doubles[1])/2);
json.add((doubles[1]+doubles[2])/2);
json.add((doubles[2]+doubles[3])/2);
json.add(doubles[3]);
firstJson.put("value",json);
firstJson.put("itemStyle",secondJson);
seriesDataList.add(firstJson);
// seriesDataList.add(list);
}
message.put("axisData",axisData);
message.put("seriesData",seriesDataList);
return message;
}
/**
* 查询政务大列
* @return
*/
@Override
public JSONObject selectZwdl() {
/**
* 预返回数据
*/
JSONObject message = new JSONObject();
List<String> axisData=new ArrayList<>();
// List<List<Double>> seriesDataList=new ArrayList<>();
List<JSONObject> seriesDataList = new ArrayList<>();
/**
* 颜色
*/
String [] borderColor = {"#5966e6","#e7533b","#00c190","#8f57da","#f59c59","#19d3f3","#ff6692","#b6e880","#413a68","#f5c551","#4857c2","#ed553b","#01bb8d","#a561f3" };
String [] color = {"#354599","#7b393a","#047569","#584099","#835f4a","#15a7c7","#834166","#5e825c","#835a9c","#a18a49","#354599","#7b393b","#037569","#6f4ab4"};
int i =0;
/**
* 获取政务大列数据
*/
List<IdxBizXnzsDto> zwdlDto = idxBizXnzsMapper.selectZwdl();
/**
* 组装返回数据
*/
for(IdxBizXnzsDto idxBizXnzsDto : zwdlDto ) {
/**
* 子数据
*/
JSONObject firstJson = new JSONObject();
JSONObject secondJson = new JSONObject();
JSONObject thirdly = new JSONObject();
//预返回箱线图数据
// List<Double> list = new ArrayList<>();
JSONArray json = new JSONArray();
//添加政务大类
axisData.add(idxBizXnzsDto.getAxisData());
//添加最近四季度
Double[] ottf = {idxBizXnzsDto.getOne(),idxBizXnzsDto.getTwo(),idxBizXnzsDto.getThree(), idxBizXnzsDto.getFour()};
thirdly.put("borderWidth","2");
thirdly.put("borderColor",borderColor[i]);
thirdly.put("color",color[i]);
secondJson.put("normal",thirdly);
i = i+1;
//排序(从小到大)
Arrays.sort(ottf);
/**
* 添加箱线图数据
*/
json.add(ottf[0]);
json.add((ottf[0]+ottf[1])/2);
json.add((ottf[1]+ottf[2])/2);
json.add((ottf[2]+ottf[3])/2);
json.add(ottf[3]);
firstJson.put("value",json);
firstJson.put("itemStyle",secondJson);
seriesDataList.add(firstJson);
}
message.put("seriesData",seriesDataList);
message.put("axisData",axisData);
return message;
}
}
#DB properties:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://172.16.10.210:3306/amos_idx_biz?allowMultiQueries=true&serverTimezone=GMT%2B8\
&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=Yeejoin@2020
##eureka properties:
eureka.client.service-url.defaultZone =http://172.16.10.210:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://172.16.3.99:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url=http://172.16.3.99:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.3.99:${server.port}${server.servlet.context-path}/swagger-ui.html
#redis properties:
spring.redis.database=1
spring.redis.host=172.16.10.210
spring.redis.port=6379
spring.redis.password=yeejoin@2020
spring.redis.lettuce.pool.max-active=200
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
spring.redis.expire.time=300
spring.application.name=CAS
server.servlet.context-path=/cas
server.port=12000
spring.profiles.active=dev
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
logging.config=classpath:logback-${spring.profiles.active}.xml
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
redis.cache.failure.time=10800
##liquibase
spring.liquibase.change-log = classpath:/db/changelog/changelog-master.xml
spring.liquibase.enabled= true
## DB properties:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=25
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=120000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
## eureka properties:
eureka.client.registry-fetch-interval-seconds=5
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url-path=/actuator/health
eureka.instance.lease-expiration-duration-in-seconds=10
eureka.instance.lease-renewal-interval-in-seconds=5
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url-path=/actuator/info
eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}${server.servlet.context-path}/doc.html
## redis properties:
spring.redis.lettuce.pool.max-active=200
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
spring.redis.expire.time=300
## emqx properties:
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.90:1883
emqx.user-name=super
emqx.password=123456
fire-rescue=123
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<!-- <changeSet author="xl" id="2022-06-27-01">-->
<!-- <preConditions onFail="MARK_RAN">-->
<!-- <tableExists tableName="tz_task"/>-->
<!-- </preConditions>-->
<!-- <comment>modify table tz_task add task_type columns</comment>-->
<!-- <sql>-->
<!-- ALTER TABLE `tz_task` add task_type varchar(255) DEFAULT NULL COMMENT '任务类型';-->
<!-- </sql>-->
<!-- </changeSet>-->
</databaseChangeLog>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<include file="cas-1.0.0.0.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" />
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/tzs.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<!--日志文件大小-->
<MaxFileSize>30mb</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="INFO"/>
<logger name="org.mybatis" level="INFO" />
<logger name="java.sql.Connection" level="INFO"/>
<logger name="java.sql.Statement" level="INFO"/>
<logger name="java.sql.PreparedStatement" level="INFO"/>
<logger name="org.springframework" level="INFO"/>
<logger name="com.baomidou.mybatisplus" level="INFO"/>
<logger name="org.apache.activemq" level="INFO"/>
<logger name="org.typroject" level="INFO"/>
<logger name="com.yeejoin" level="INFO"/>
<!-- 日志输出级别 -->
<root level="DEBUG">
<!-- <appender-ref ref="FILE" /> -->
<appender-ref ref="STDOUT" />
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>
<artifactId>amos-boot-system-cas</artifactId>
<parent>
<artifactId>amos-biz-boot</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<packaging>pom</packaging>
<modules>
<module>amos-boot-module-cas-api</module>
<module>amos-boot-module-cas-biz</module>
</modules>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-biz-common</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-biz-boot</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-system-kgd</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-kgd-biz</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.yeejoin.amos;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.typroject.tyboot.core.restful.exception.GlobalExceptionHandler;
import com.yeejoin.amos.boot.biz.common.utils.oConvertUtils;
/**
* <pre>
* 服务启动类
* </pre>
*/
@SpringBootApplication
@EnableTransactionManagement
@EnableConfigurationProperties
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yeejoin"})
@EnableAsync
@MapperScan({"org.typroject.tyboot.demo.face.orm.dao*", "org.typroject.tyboot.face.*.orm.dao*",
"org.typroject.tyboot.core.auth.face.orm.dao*", "org.typroject.tyboot.component.*.face.orm.dao*",
"com.yeejoin.amos.boot.module.*.api.mapper", "com.yeejoin.amos.boot.biz.common.dao.mapper",
"com.yeejoin.amos.avic.face.orm.dao*"})
@ComponentScan(basePackages = {"org.typroject", "com.yeejoin"})
public class AmoKGDApplication {
private static final Logger logger = LoggerFactory.getLogger(AmoKGDApplication.class);
public static void main(String[] args) throws UnknownHostException {
ConfigurableApplicationContext context = SpringApplication.run(AmoKGDApplication.class, args);
Environment env = context.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path"));
GlobalExceptionHandler.setAlwaysOk(true);
logger.info("\n----------------------------------------------------------\n\t"
+ "Application Amos-Biz-Boot is running! Access URLs:\n\t" + "Swagger文档: \thttp://" + ip + ":" + port
+ path + "/doc.html\n" + "----------------------------------------------------------");
}
}
## DB properties:
spring.datasource.url=jdbc:mysql://172.16.3.18:3306/amos_idx_biz?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=Yeejoin@2020
## eureka properties:
eureka.instance.hostname=172.16.3.18
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:10001/eureka/
## redis properties:
spring.redis.database=1
spring.redis.host=172.16.3.18
spring.redis.port=6379
spring.redis.password=yeejoin@2020
spring.cache.type=GENERIC
j2cache.open-spring-cache=true
j2cache.cache-clean-mode=passive
j2cache.allow-null-values=true
j2cache.redis-client=lettuce
j2cache.l2-cache-open=true
j2cache.broadcast=net.oschina.j2cache.cache.support.redis.SpringRedisPubSubPolicy
j2cache.L1.provider_class=caffeine
j2cache.L2.provider_class=net.oschina.j2cache.cache.support.redis.SpringRedisProvider
j2cache.L2.config_section=lettuce
j2cache.sync_ttl_to_redis=true
j2cache.default_cache_null_object=false
j2cache.serialization=fst
caffeine.properties=/caffeine.properties
lettuce.mode=single
lettuce.namespace=
lettuce.storage=generic
lettuce.channel=j2cache
lettuce.scheme=redis
lettuce.hosts=${spring.redis.host}:${spring.redis.port}
lettuce.password=${spring.redis.password}
lettuce.database=${spring.redis.database}
lettuce.sentinelMasterId=
lettuce.maxTotal=100
lettuce.maxIdle=10
lettuce.minIdle=10
lettuce.timeout=10000
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.3.18:2883
emqx.user-name=super
emqx.password=a123456
emqx.max-inflight=1000
spring.influx.url=http://39.98.246.31:8086
spring.influx.password=Yeejoin@2020
spring.influx.user=root
spring.influx.database=iot_platform
spring.influx.retention_policy=default
spring.influx.retention_policy_time=30d
spring.influx.actions=10000
spring.influx.bufferLimit=20000
knife4j.production=false
knife4j.enable=true
knife4j.basic.enable=true
knife4j.basic.username=admin
knife4j.basic.password=a1234560
management.security.enabled=true
spring.security.user.name=admin
spring.security.user.password=a1234560
\ No newline at end of file
spring.application.name=AMOS-BIZ-KGD-API
server.servlet.context-path=/kgd
server.port=33002
server.uri-encoding=UTF-8
spring.profiles.active=dev
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
logging.config=classpath:logback-${spring.profiles.active}.xml
## mybatis-plus配置控制台打印完整带参数SQL语句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
## DB properties:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=25
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=120000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
##liquibase
spring.liquibase.change-log=classpath:/db/changelog/changelog-master.xml
spring.liquibase.enabled=true
## eureka properties:
eureka.client.registry-fetch-interval-seconds=5
eureka.instance.prefer-ip-address=true
eureka.instance.health-check-url-path=/actuator/health
eureka.instance.lease-expiration-duration-in-seconds=10
eureka.instance.lease-renewal-interval-in-seconds=5
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url-path=/actuator/info
eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}${server.servlet.context-path}/doc.html
## redis properties:
spring.redis.lettuce.pool.max-active=200
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## redis失效时间
redis.cache.failure.time=10800
spring.servlet.multipart.maxFileSize=100MB
spring.servlet.multipart.maxRequestSize=100MB
spring.main.allow-bean-definition-overriding=true
spring.http.encoding.charset=utf-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
</databaseChangeLog>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" />
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/ccs.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>7</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>30mb</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="DEBUG"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="com.baomidou.mybatisplus" level="DEBUG"/>
<logger name="org.springframework" level="DEBUG"/>
<logger name="org.typroject" level="DEBUG"/>
<logger name="com.yeejoin" level="DEBUG"/>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
This diff is collapsed.
/.apt_generated/
/.apt_generated_tests/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>
<artifactId>amos-boot-system-tdc</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<artifactId>amos-boot-module-tdc-api</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<scope>compile</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.amosframework.boot</groupId>-->
<!-- <artifactId>amos-boot-module-common-api</artifactId>-->
<!-- <version>${amos-biz-boot.version}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>amos-component-rule</artifactId>
<exclusions>
<exclusion>
<groupId>org.typroject</groupId>
<artifactId>tyboot-core-auth</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.boot.module.tdc.api.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@Accessors(chain = true)
@TableName("tdc_check_result")
public class CheckResultDto {
@ApiModelProperty(value="校验时间")
private Date checkDate;
@ApiModelProperty(value="模型名称")
private String name;
}
package com.yeejoin.amos.boot.module.tdc.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @author xxz
*/
@Data
@Accessors(chain = true)
@TableName("tdc_model")
@ApiModel(value="CheckModel对象", description="校验模型表")
public class CheckModel {
private static final long serialVersionUID = 1L;
@TableId(value = "sequence_nbr", type = IdType.ID_WORKER)
protected Long sequenceNbr;
@ApiModelProperty(value = "模型名称")
private String modelName;
@ApiModelProperty(value = "机构code")
private String amosOrgCode;
@ApiModelProperty(value = "机构名称")
private String amosOrgName;
@ApiModelProperty(value = "指标表名")
private String idxTableName;
@ApiModelProperty(value = "校验状态")
private int checkStatus;
@ApiModelProperty(value = "校验时间")
private Date checkDate;
@ApiModelProperty(value = "模型图片地址")
private String modelPictureUrl;
}
package com.yeejoin.amos.boot.module.tdc.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @author DELL
*/
@Data
@Accessors(chain = true)
@TableName("tdc_report")
@ApiModel(value="CheckReport对象", description="校验报告表")
public class CheckReport {
private static final long serialVersionUID = 1L;
@TableId(value = "sequence_nbr", type = IdType.ID_WORKER)
protected Long sequenceNbr;
@ApiModelProperty(value = "报告名称")
private String name;
@ApiModelProperty(value = "机构code")
private String amosOrgCode;
@ApiModelProperty(value = "机构名称")
private String amosOrgName;
@ApiModelProperty(value = "报告地址")
private String reportUrl;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "校验人名称")
private String checkPeopleName;
}
package com.yeejoin.amos.boot.module.tdc.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true )
@Accessors(chain = true)
@TableName("tdc_check_result")
public class CheckResult extends BaseEntity {
@ApiModelProperty(value="模型Id")
private String modelId;
@ApiModelProperty(value="检查项")
private String checkItem;
@ApiModelProperty(value="检查项名称")
private String checkItemLabel;
@ApiModelProperty(value="检查项值")
private String checkItemValue;
@ApiModelProperty(value="检查项标准值")
private String checkItemRealValue;
@ApiModelProperty(value="检查项结果")
private String checkItemResult;
@ApiModelProperty(value="校验时间")
private Date checkDate;
@ApiModelProperty(value="批次号")
private String batchNo;
@ApiModelProperty(value="检查结果说明")
private String checkExplain;
@ApiModelProperty(value="校验类型")
private String checkType;
@ApiModelProperty(value="模型所属机构")
private String amosOrgCode;
@ApiModelProperty(value="模型所属机构名称")
private String amosOrgName;
@ApiModelProperty(value="模型名称")
private String modelName;
}
package com.yeejoin.amos.boot.module.tdc.api.feign;
import com.alibaba.fastjson.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
/**
* @author DELL
*/
@FeignClient(value = "AMOS-IDX", path = "idx")
public interface IdxFeignService {
/**
* 查询表详情和表字段
*
* @param tableId
* @return
*/
@RequestMapping(value = "/table/{tableId}", method = RequestMethod.GET)
ResponseModel<JSONObject> queryByTableId(@PathVariable String tableId);
}
package com.yeejoin.amos.boot.module.tdc.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckModel;
import org.mapstruct.Mapper;
/**
* Mapper接口
* @author xxz
*/
@Mapper
public interface CheckModelMapper extends BaseMapper<CheckModel> {
}
package com.yeejoin.amos.boot.module.tdc.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import org.mapstruct.Mapper;
/**
* @author DELL
*/
@Mapper
public interface CheckReportMapper extends BaseMapper<CheckReport> {
}
package com.yeejoin.amos.boot.module.tdc.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import org.mapstruct.Mapper;
import java.util.Date;
import java.util.List;
/**
* 检验结果的Mapper层
*/
@Mapper
public interface CheckResultMapper extends BaseMapper<CheckResult> {
List<CheckResultDto> selectResult(String code);
}
package com.yeejoin.amos.boot.module.tdc.api.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckModel;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author xxz
*/
@Service
public interface CheckModelService extends IService<CheckModel> {
/**
* 根据机构编码查询模型list
* @param amosOrgCode 机构编码
* @return 模型list
*/
List<CheckModel> selectByOrgCode(String amosOrgCode);
/**
* 查询最后一次校验模型
* @return 模型obj
*/
CheckModel selectOneByDate();
}
package com.yeejoin.amos.boot.module.tdc.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import org.springframework.stereotype.Service;
/**
* @author DELL
*/
@Service
public interface CheckReportService extends IService<CheckReport> {
IPage<CheckReport> selectAll(int current, int size, String amosOrgCode);
}
package com.yeejoin.amos.boot.module.tdc.api.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public interface CheckResultService extends IService<CheckResult> {
List<CheckResultDto> selectResult(String code);
List<CheckResult> selectCheckResult(String modelId,String amosOrgCode);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.tdc.api.mapper.CheckModelMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.tdc.api.mapper.CheckReportMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.tdc.api.mapper.CheckResultMapper">
<select id="selectResult" resultType="com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto">
select check_date, case when check_type="1" then '全站校验' else `model_name` end as `name`
from `tdc_check_result` where amos_org_code=#{code} GROUP BY batch_no;
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>
<artifactId>amos-boot-system-tdc</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<artifactId>amos-boot-module-tdc-biz</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-tdc-api</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.amosframework.boot</groupId>-->
<!-- <artifactId>amos-boot-module-common-biz</artifactId>-->
<!-- <version>${amos-biz-boot.version}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
package com.yeejoin.amos;
import com.yeejoin.amos.boot.biz.common.utils.oConvertUtils;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.net.InetAddress;
/**
* <pre>
* 三维校验服务启动类
* </pre>
*
* @author DELL
*/
@SpringBootApplication
@EnableTransactionManagement
@EnableConfigurationProperties
@ServletComponentScan
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@EnableEurekaClient
@EnableScheduling
@MapperScan({ "org.typroject.tyboot.demo.face.orm.dao*", "org.typroject.tyboot.face.*.orm.dao*",
"org.typroject.tyboot.core.auth.face.orm.dao*", "org.typroject.tyboot.component.*.face.orm.dao*",
"com.yeejoin.amos.boot.module.**.api.mapper", "com.yeejoin.amos.boot.biz.common.dao.mapper" })
@ComponentScan(basePackages = { "org.typroject", "com.yeejoin.amos" })
public class AmosTdcApplication {
private static final Logger logger = LoggerFactory.getLogger(AmosTdcApplication.class);
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(AmosTdcApplication.class, args);
Environment env = context.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path"));
logger.info("\n----------------------------------------------------------\n\t"
+ "Application Amos-Biz-Boot is running! Access URLs:\n\t" + "Swagger文档: \thttp://" + ip + ":" + port
+ path + "/doc.html\n" + "----------------------------------------------------------");
}
// /**
// * 初始化MQTT
// *
// * @throws MqttException
// */
// @Bean
// public void initMqtt() throws MqttException {
// emqKeeper.getMqttClient().subscribe("/idx/idx_biz_carcyl_unit_inspect", 1, carcylUnitInspectMqTtlListener);
// emqKeeper.getMqttClient().subscribe("/tm/tz_base_enterprise_info", 1, baseEnterpriseMqTtlListener);
// emqKeeper.getMqttClient().subscribe("/tz/privilege_company_add_update",1, privilegeCompanyUpdateAddListener);
// emqKeeper.getMqttClient().subscribe("/tz/privilege_company_delete",1, privilegeCompanyDeleteListener);
//// emqKeeper.getMqttClient().subscribe("topic_mqtt_exam", 1, examMqTtlListener);
//// emqKeeper.getMqttClient().subscribe("topic_mqtt_exam_record", 1, examMqTtRecordListener);
// }
// @Bean
// public void initToken() {
// startPlatformTokenService.getToken();
// }
}
package com.yeejoin.amos.boot.module.tdc.biz.controller;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckModel;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckModelService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
/**
* @author xxz
*/
@RestController
@Api(tags = "校验模型api")
@RequestMapping(value = "/model")
public class CheckModelController {
@Autowired
CheckModelService checkModelService;
/**
* 根据amosOrgCode查询
* return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "selectByOrgCode/{amosOrgCode}")
@ApiOperation(httpMethod = "GET",value = "根据amosOrgCode查询模型列表", notes = "根据amosOrgCode查询模型列表")
public ResponseModel<List<CheckModel>> selectByOrgCode(@PathVariable String amosOrgCode) {
return ResponseHelper.buildResponse(checkModelService.selectByOrgCode(amosOrgCode));
}
/**
* 根据amosOrgCode查询
* return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "selectOneByDate")
@ApiOperation(httpMethod = "GET",value = "查询最后一次校验模型", notes = "查询最后一次校验模型")
public ResponseModel<CheckModel> selectOneByDate() {
return ResponseHelper.buildResponse(checkModelService.selectOneByDate());
}
}
package com.yeejoin.amos.boot.module.tdc.biz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckReportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
/**
* 校验报告
* @author DELL
*/
@RestController
@Api(tags = "校验报告api")
@RequestMapping(value = "/report")
public class CheckReportController {
@Autowired
CheckReportService checkReportService;
/**
* 根据amosOrgCode查询
* return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "selectAll")
@ApiOperation(httpMethod = "GET",value = "根据amosOrgCode查询模型列表", notes = "根据amosOrgCode查询模型列表")
public ResponseModel<IPage<CheckReport>> selectAll(int current, int size, String amosOrgCode) {
return ResponseHelper.buildResponse(checkReportService.selectAll(current,size,amosOrgCode));
}
}
package com.yeejoin.amos.boot.module.tdc.biz.controller;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckResultService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
/**
* 校验结果
* @author xxz
*/
@RestController
@Api(tags = "校验结果Api")
@RequestMapping(value = "/check-result")
public class CheckResultController extends BaseController {
@Autowired
CheckResultService checkResultService;
/**
* cs
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/selectResult/{code}")
@ApiOperation(httpMethod = "GET", value = "result", notes = "result")
public ResponseModel<List<CheckResultDto>> selectResult(@PathVariable(value = "code") String code) {
return ResponseHelper.buildResponse(checkResultService.selectResult(code));
}
/**
* 根据amosOrgCode、modelId查询不合格项
* return
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/selectCheckResult/{amosOrgCode}/{modelId}")
@ApiOperation(httpMethod = "GET",value = "查询最后一次校验模型", notes = "查询最后一次校验模型")
public ResponseModel<List<CheckResult>> selectCheckResult(@PathVariable String amosOrgCode, @PathVariable String modelId) {
return ResponseHelper.buildResponse(checkResultService.selectCheckResult(amosOrgCode,modelId));
}
}
package com.yeejoin.amos.boot.module.tdc.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckModel;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckModelMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckModelService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author xxz
*/
@Service
public class CheckModelImpl extends ServiceImpl<CheckModelMapper, CheckModel> implements CheckModelService {
@Override
public List<CheckModel> selectByOrgCode(String amosOrgCode) {
LambdaQueryWrapper<CheckModel> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CheckModel::getAmosOrgCode, amosOrgCode);
return baseMapper.selectList(wrapper);
}
@Override
public CheckModel selectOneByDate() {
LambdaQueryWrapper<CheckModel> wrapper = new LambdaQueryWrapper<>();
wrapper.isNotNull(CheckModel::getCheckDate).orderByDesc(CheckModel::getCheckDate).last("limit 1");
return baseMapper.selectOne(wrapper);
}
}
package com.yeejoin.amos.boot.module.tdc.biz.service.impl;
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.yeejoin.amos.boot.module.tdc.api.entity.CheckModel;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckReportMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckReportService;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.List;
/**
* @author DELL
*/
@Service
public class CheckReportImpl extends ServiceImpl<CheckReportMapper, CheckReport> implements CheckReportService {
@Override
public IPage<CheckReport> selectAll(int current,int size,String amosOrgCode) {
Page page = new Page(current,size);
if(ValidationUtil.isEmpty(amosOrgCode)){
return this.page(page);
}else{
LambdaQueryWrapper<CheckReport> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CheckReport::getAmosOrgCode, amosOrgCode);
return this.page(page,wrapper);
}
}
}
package com.yeejoin.amos.boot.module.tdc.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckModel;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckResultMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckResultService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class CheckResultImpl extends ServiceImpl<CheckResultMapper, CheckResult> implements CheckResultService {
@Autowired
CheckResultMapper checkResultMapper;
@Override
public List<CheckResultDto> selectResult(String code) {
return checkResultMapper.selectResult(code);
}
@Override
public List<CheckResult> selectCheckResult(String modelId,String amosOrgCode) {
LambdaQueryWrapper<CheckResult> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CheckResult::getCheckItemResult, "1")
.eq(CheckResult::getAmosOrgCode, amosOrgCode)
.eq(CheckResult::getModelId, modelId);
return baseMapper.selectList(wrapper);
}
}
## DB properties:
spring.datasource.url=jdbc:mysql://172.16.11.201:3306/dl_amos_idx_biz?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=Yeejoin@2020
## eureka properties:
eureka.instance.hostname=172.16.11.201
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:10001/eureka/
## redis properties:
spring.redis.database=1
spring.redis.host=172.16.11.201
spring.redis.port=6379
spring.redis.password=1234560
## emqx properties:
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.11.201:1883
emqx.user-name=admin
emqx.password=public
#mqtt.scene.host=mqtt://172.16.10.201:18083/mqtt
#mqtt.client.product.id=mqtt
mqtt.topic=topic_mqtt
#spring.mqtt.completionTimeout=3000
\ No newline at end of file
spring.application.name=TDC-FHZ
server.servlet.context-path=/tdc
server.port=13000
spring.profiles.active=dev
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
logging.config=classpath:logback-${spring.profiles.active}.xml
## mybatis-plus配置控制台打印完整带参数SQL语句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
## DB properties:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=25
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=120000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
##liquibase
spring.liquibase.change-log=classpath:/db/changelog/changelog-master.xml
spring.liquibase.enabled=true
## eureka properties:
eureka.client.registry-fetch-interval-seconds=5
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url-path=/actuator/health
eureka.instance.lease-expiration-duration-in-seconds=10
eureka.instance.lease-renewal-interval-in-seconds=5
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url-path=/actuator/info
eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}${server.servlet.context-path}/doc.html
## redis properties:
spring.redis.lettuce.pool.max-active=200
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## redis失效时间
redis.cache.failure.time=10800
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<include file="tdc-1.0.0.0.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
</databaseChangeLog>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" />
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/tzs.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<!--日志文件大小-->
<MaxFileSize>30mb</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="INFO"/>
<logger name="org.mybatis" level="INFO" />
<logger name="java.sql.Connection" level="INFO"/>
<logger name="java.sql.Statement" level="INFO"/>
<logger name="java.sql.PreparedStatement" level="INFO"/>
<logger name="org.springframework" level="INFO"/>
<logger name="com.baomidou.mybatisplus" level="INFO"/>
<logger name="org.apache.activemq" level="INFO"/>
<logger name="org.typroject" level="INFO"/>
<logger name="com.yeejoin" level="INFO"/>
<!-- 日志输出级别 -->
<root level="DEBUG">
<!-- <appender-ref ref="FILE" /> -->
<appender-ref ref="STDOUT" />
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>
<artifactId>amos-boot-system-tdc</artifactId>
<parent>
<artifactId>amos-biz-boot</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<packaging>pom</packaging>
<modules>
<module>amos-boot-module-tdc-api</module>
<module>amos-boot-module-tdc-biz</module>
</modules>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-biz-common</artifactId>
<version>${amos-biz-boot.version}</version>
<exclusions>
<exclusion>
<artifactId>poi-ooxml</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>amos-feign-privilege</artifactId>
<version>1.7.12-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.boot.module.tzs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* 使用单位
*
* @author duanwei
* @date 2022-09-08
*/
@Data
@Accessors(chain = true)
@ApiModel(value="SpeUseUnit对象", description="使用单位")
public class SpeUseUnitDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位名称")
private String name;
@ApiModelProperty(value = "统一社会信用代码")
private String cerCode;
@ApiModelProperty(value = "单位性质")
private String unitNature;
@ApiModelProperty(value = "营业执照图片")
private String cerImgUrl;
@ApiModelProperty(value = "营业执照登记机关")
private String cerRegiOrg;
@ApiModelProperty(value = "注册地址_省")
private String cerAddrProvince;
@ApiModelProperty(value = "注册地址_市")
private String cerAddrCity;
@ApiModelProperty(value = "注册地址")
private String cerAddrArea;
@ApiModelProperty(value = "注册大厦(小区)")
private String cerAddrVillage;
@ApiModelProperty(value = "注册地址_街道")
private String cerAddrStreet;
@ApiModelProperty(value = "注册地址_详细地址")
private String cerAddrDetail;
@ApiModelProperty(value = "法定代表人")
private String legalPerson;
@ApiModelProperty(value = "法人手机")
private String legalPersonPhone;
@ApiModelProperty(value = "负责人")
private String responPerson;
@ApiModelProperty(value = "负责人手机")
private String responPersonPhone;
@ApiModelProperty(value = "所在地邮政编码")
private String zipCode;
@ApiModelProperty(value = "办公地址_省")
private String offiAddrProvince;
@ApiModelProperty(value = "办公地址_市")
private String offiAddrCity;
@ApiModelProperty(value = "办公地址")
private String offiAddrArea;
@ApiModelProperty(value = "办公地址_街道")
private String offiAddrStreet;
@ApiModelProperty(value = "办公大厦(小区)")
private String offiAddrVillage;
@ApiModelProperty(value = "办公地址_详细地址")
private String offiAddrDetail;
@ApiModelProperty(value = "冻结原因")
private String frozenReason;
@ApiModelProperty(value = "单位所属行业")
private String industry;
@ApiModelProperty(value = "值班电话")
private String onDutyPhone;
@ApiModelProperty(value = "管辖分局ID")
private String auditOrgId;
@ApiModelProperty(value = "管辖分局")
private String auditOrgName;
@ApiModelProperty(value = "管辖分局编码")
private String auditOrgCode;
@ApiModelProperty(value = "单位状态")
private Integer status;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "删除状态")
private Integer delFlag;
@ApiModelProperty(value = "创建人")
private String createBy;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新人")
private String updateBy;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "组织机构ID")
private String sysOrgId;
@ApiModelProperty(value = "所属组织机构编码")
private String sysOrgCode;
@ApiModelProperty(value = "96333救援电话")
private String rescueCall;
@ApiModelProperty(value = "同步id")
private String syncId;
}
package com.yeejoin.amos.boot.module.tzs.api.entity;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
/**
* 使用单位
*
* @author duanwei
* @date 2022-09-08
*/
@Data
@Accessors(chain = true)
@ApiModel(value="SpeUseUnit对象", description="使用单位")
public class SpeUseUnit implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位名称")
private String name;
@ApiModelProperty(value = "统一社会信用代码")
private String cerCode;
@ApiModelProperty(value = "单位性质")
private String unitNature;
@ApiModelProperty(value = "营业执照图片")
private String cerImgUrl;
@ApiModelProperty(value = "营业执照登记机关")
private String cerRegiOrg;
@ApiModelProperty(value = "注册地址_省")
private String cerAddrProvince;
@ApiModelProperty(value = "注册地址_市")
private String cerAddrCity;
@ApiModelProperty(value = "注册地址")
private String cerAddrArea;
@ApiModelProperty(value = "注册大厦(小区)")
private String cerAddrVillage;
@ApiModelProperty(value = "注册地址_街道")
private String cerAddrStreet;
@ApiModelProperty(value = "注册地址_详细地址")
private String cerAddrDetail;
@ApiModelProperty(value = "法定代表人")
private String legalPerson;
@ApiModelProperty(value = "法人手机")
private String legalPersonPhone;
@ApiModelProperty(value = "负责人")
private String responPerson;
@ApiModelProperty(value = "负责人手机")
private String responPersonPhone;
@ApiModelProperty(value = "所在地邮政编码")
private String zipCode;
@ApiModelProperty(value = "办公地址_省")
private String offiAddrProvince;
@ApiModelProperty(value = "办公地址_市")
private String offiAddrCity;
@ApiModelProperty(value = "办公地址")
private String offiAddrArea;
@ApiModelProperty(value = "办公地址_街道")
private String offiAddrStreet;
@ApiModelProperty(value = "办公大厦(小区)")
private String offiAddrVillage;
@ApiModelProperty(value = "办公地址_详细地址")
private String offiAddrDetail;
@ApiModelProperty(value = "冻结原因")
private String frozenReason;
@ApiModelProperty(value = "单位所属行业")
private String industry;
@ApiModelProperty(value = "值班电话")
private String onDutyPhone;
@ApiModelProperty(value = "管辖分局ID")
private String auditOrgId;
@ApiModelProperty(value = "管辖分局")
private String auditOrgName;
@ApiModelProperty(value = "管辖分局编码")
private String auditOrgCode;
@ApiModelProperty(value = "单位状态")
private Integer status;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "删除状态")
private Integer delFlag;
@ApiModelProperty(value = "创建人")
private String createBy;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新人")
private String updateBy;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "组织机构ID")
private String sysOrgId;
@ApiModelProperty(value = "所属组织机构编码")
private String sysOrgCode;
@ApiModelProperty(value = "96333救援电话")
private String rescueCall;
@ApiModelProperty(value = "同步id")
private String syncId;
}
package com.yeejoin.amos.boot.module.tzs.api.mapper;
import com.yeejoin.amos.boot.module.tzs.api.entity.SpeUseUnit;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 使用单位 Mapper 接口
*
* @author duanwei
* @date 2022-09-08
*/
public interface SpeUseUnitMapper extends BaseMapper<SpeUseUnit> {
}
package com.yeejoin.amos.boot.module.tzs.api.service;
import com.yeejoin.amos.boot.module.tzs.api.entity.SpeUseUnit;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 使用单位 服务类
*
* @author duanwei
* @date 2022-09-08
*/
public interface ISpeUseUnitService extends IService<SpeUseUnit> {
}
......@@ -32,4 +32,6 @@ public interface ITzBaseEnterpriseInfoService extends IService<TzBaseEnterpriseI
List<EquEnterDto> getInfoByUseUnit(String useUnit);
TzBaseEnterpriseInfoDto selectByUseUnit(String useUnit);
String syncEnterpriseInfo();
}
......@@ -20,9 +20,9 @@
produce.factory_num,
CONCAT(use1.province,'/',use1.city,'/',use1.county)AS area,
use1.address
FROM tz_jg_supervise_info supervise
FROM tz_jg_use_info use1
LEFT JOIN
tz_jg_use_info use1 ON use1.sequence_code =
tz_jg_supervise_info supervise ON use1.sequence_code =
supervise.sequence_code
LEFT JOIN tz_jg_maintenance_info maintenance ON
maintenance.sequence_code
......
......@@ -3,6 +3,8 @@ package com.yeejoin.amos;
import java.net.InetAddress;
import java.net.UnknownHostException;
import com.yeejoin.amos.boot.module.tzs.biz.listener.PrivilegeCompanyDeleteListener;
import com.yeejoin.amos.boot.module.tzs.biz.listener.PrivilegeCompanyUpdateAddListener;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
......@@ -63,6 +65,12 @@ public class AmosTzsApplication {
@Autowired
private StartPlatformTokenService startPlatformTokenService;
@Autowired
private PrivilegeCompanyUpdateAddListener privilegeCompanyUpdateAddListener;
@Autowired
private PrivilegeCompanyDeleteListener privilegeCompanyDeleteListener;
public static void main(String[] args) throws UnknownHostException {
ConfigurableApplicationContext context = SpringApplication.run(AmosTzsApplication.class, args);
Environment env = context.getEnvironment();
......@@ -84,6 +92,8 @@ public class AmosTzsApplication {
public void initMqtt() throws MqttException {
emqKeeper.getMqttClient().subscribe("/idx/idx_biz_carcyl_unit_inspect", 1, carcylUnitInspectMqTtlListener);
emqKeeper.getMqttClient().subscribe("/tm/tz_base_enterprise_info", 1, baseEnterpriseMqTtlListener);
emqKeeper.getMqttClient().subscribe("/tz/privilege_company_add_update",1, privilegeCompanyUpdateAddListener);
emqKeeper.getMqttClient().subscribe("/tz/privilege_company_delete",1, privilegeCompanyDeleteListener);
// emqKeeper.getMqttClient().subscribe("topic_mqtt_exam", 1, examMqTtlListener);
// emqKeeper.getMqttClient().subscribe("topic_mqtt_exam_record", 1, examMqTtRecordListener);
}
......
......@@ -9,6 +9,8 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.PageParam;
import com.yeejoin.amos.boot.module.tzs.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tzs.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
......@@ -167,9 +169,19 @@ public class TzBaseEnterpriseInfoController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/getInfo", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
@ApiOperation(httpMethod = "GET", value = "根据企业名称查询", notes = "根据企业名称查询")
public ResponseModel<TzBaseEnterpriseInfoDto> selectByUseUnit(HttpServletRequest request, String useUnit) {
return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.selectByUseUnit(useUnit));
}
/**
* 将监管系统全量用户导入 业务企业表 和 平台企业表
* @return OK
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/syncUnitData", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "同步企业信息", notes = "同步企业信息")
public ResponseModel<String> syncUnitData(){
return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.syncEnterpriseInfo());
}
}
package com.yeejoin.amos.boot.module.tzs.biz.listener;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.tzs.biz.utils.RedisUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqxListener;
import org.typroject.tyboot.core.foundation.context.RequestContext;
@Component
@Slf4j
public class PrivilegeCompanyDeleteListener extends EmqxListener {
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Value("${admin.appkey}")
String appkey;
@Override
public void processMessage(String s, MqttMessage message) throws Exception {
System.out.println(message);
JSONObject object = null;
try {
object = JSONObject.parseObject(message.toString());
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
RequestContext.setAppKey(appkey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
//通过sequence_nbr删除企业
Privilege.companyClient.deleteCompany(object.getString("sequence_nbr"));
}
}
package com.yeejoin.amos.boot.module.tzs.biz.listener;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.injector.methods.Update;
import com.yeejoin.amos.boot.module.tzs.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tzs.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.TzBaseEnterpriseInfoServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.utils.DesUtil;
import com.yeejoin.amos.boot.module.tzs.biz.utils.RedisUtil;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.ApplicationModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.pqc.math.linearalgebra.PolynomialRingGF2;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqxListener;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Component
@Slf4j
public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
@Autowired
TzBaseEnterpriseInfoServiceImpl tzBaseEnterpriseInfoService;
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Value("${admin.appkey}")
String appkey;
@Override
public void processMessage(String s, MqttMessage message) throws Exception {
System.out.println(message);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
JSONObject object = null;
try {
object = JSONObject.parseObject(message.toString());
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
RequestContext.setAppKey(appkey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
Collection<CompanyModel> companyModels = Privilege.companyClient.queryAgencyTree(null).getResult();
Map<String , CompanyModel> companyMap = new HashMap<>();
getCompanyInfoMap(companyModels,companyMap);
//判断库中company是否重复
CompanyModel companyPrivilegeModel = Privilege.companyClient.queryByCompanyName(object.getString("unit_name")).getResult();
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_unit",object.getString("unit_name"));
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = tzBaseEnterpriseInfoService.getOne(queryWrapper);
CompanyModel companyModel = new CompanyModel();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
Date syncDate = sdf.parse(object.getString("sync_date"));
Date recDate = sdf.parse(object.getString("issue_date"));
tzBaseEnterpriseInfo.setSequenceNbr(object.getLong("sequence_nbr"));
tzBaseEnterpriseInfo.setAddress(object.getString("reg_address"));
tzBaseEnterpriseInfo.setUnitType(object.getString("cert_type"));
tzBaseEnterpriseInfo.setUseCode(object.getString("unit_code"));
tzBaseEnterpriseInfo.setUseUnit(object.getString("unit_name"));
tzBaseEnterpriseInfo.setProvince(object.getString("province"));
tzBaseEnterpriseInfo.setCity(object.getString("city"));
tzBaseEnterpriseInfo.setDistrict(object.getString("district"));
tzBaseEnterpriseInfo.setSyncDate(syncDate);
tzBaseEnterpriseInfo.setSyncState(object.getInteger("sync_state"));
tzBaseEnterpriseInfo.setRecDate(recDate);
companyModel.setSequenceNbr(object.getLong("sequence_nbr"));
companyModel.setCompanyName(object.getString("unit_name"));
companyModel.setCompanyCode(object.getString("unit_code"));
companyModel.setLevel("company");
companyModel.setAgencyCode("tzs");
companyModel.setCompanyType(object.getString("cert_type"));
companyModel.setAddress(object.getString("reg_address"));
//业务表更新条件构造器
UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("Use_unit",object.getString("unit_name"));
try {
if(ValidationUtil.isEmpty(object.getString("reg_code")) || ValidationUtil.isEmpty(companyMap.get(object.getString("reg_code")))){
tzBaseEnterpriseInfo.setSuperviseOrgCode(companyMap.get("610000").getOrgCode());
tzBaseEnterpriseInfo.setSuperviseOrgName(companyMap.get("610000").getCompanyName());
companyModel.setParentId(companyMap.get("610000").getSequenceNbr());
}else{
tzBaseEnterpriseInfo.setSuperviseOrgCode(companyMap.get(object.getString("reg_code")).getOrgCode());
tzBaseEnterpriseInfo.setSuperviseOrgName(companyMap.get(object.getString("reg_code")).getCompanyName());
companyModel.setParentId(companyMap.get(object.getString("reg_code")).getSequenceNbr());
}
} catch (Exception e) {
System.out.println("名称为"+object.getString("unit_name")+"的许可企业同步企业信息时出错:"+e.getMessage());
}
try {
if (tzBaseEnterprisePrivilegeInfo == null && companyPrivilegeModel == null) {
//当企业表、平台表 中没有时
tzBaseEnterpriseInfoService.save(tzBaseEnterpriseInfo);
Privilege.companyClient.create(companyModel);
} else if(tzBaseEnterprisePrivilegeInfo == null){
//企业表没有,平台表有
tzBaseEnterpriseInfoService.save(tzBaseEnterpriseInfo);
Privilege.companyClient.update(companyModel, tzBaseEnterprisePrivilegeInfo.getSequenceNbr());
} else if(companyPrivilegeModel == null){
//平台表没有,企业表有
Privilege.companyClient.create(companyModel);
tzBaseEnterpriseInfoService.update(tzBaseEnterpriseInfo,updateWrapper);
}
else {
//当企业表、平台表 中有时
if (tzBaseEnterprisePrivilegeInfo.getRecDate().compareTo(object.getDate("issue_date")) < 1) {
tzBaseEnterpriseInfoService.update(tzBaseEnterpriseInfo,updateWrapper);
Privilege.companyClient.update(companyModel, tzBaseEnterprisePrivilegeInfo.getSequenceNbr());
} else {
System.out.println("该数据不是最新的数据 不用更新");
}
}
} catch(Exception e) {
System.out.println("名称为"+object.getString("unit_name")+"的公司:"+e.getMessage());
}
}
public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels,Map<String, CompanyModel> map){
if(companyModels == null){
return map;
}
Iterator iter = companyModels.iterator();
while(iter.hasNext()){
String json = JSON.toJSONString(iter.next());
CompanyModel companyModel = JSON.parseObject(json,CompanyModel.class);
String code = companyModel.getCompanyCode();
if(code.length() >=6){
code = code.substring(0, 6);
}
map.put(code,companyModel);
getCompanyInfoMap(companyModel.getChildren(),map);
}
return map;
}
}
......@@ -57,7 +57,7 @@ public class ESAlertCalledService {
public void init() throws Exception
{
//初始化ES,重建索引
//initEs();
initEs();
}
/**
......
package com.yeejoin.amos.boot.module.tzs.biz.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.tzs.api.dto.SpeUseUnitDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.SpeUseUnit;
import com.yeejoin.amos.boot.module.tzs.api.mapper.SpeUseUnitMapper;
import com.yeejoin.amos.boot.module.tzs.api.service.ISpeUseUnitService;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
/**
* 使用单位 服务实现类
*
* @author duanwei
* @date 2022-09-08
*/
@Service
public class SpeUseUnitServiceImpl extends BaseService<SpeUseUnitDto, SpeUseUnit, SpeUseUnitMapper> implements ISpeUseUnitService {
}
package com.yeejoin.amos.boot.module.tzs.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -9,10 +10,13 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.EquEnterDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.BaseUnitLicence;
import com.yeejoin.amos.boot.module.tzs.api.entity.PageParam;
import com.yeejoin.amos.boot.module.tzs.api.entity.SpeUseUnit;
import com.yeejoin.amos.boot.module.tzs.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tzs.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.tzs.api.service.IBaseUnitLicenceService;
import com.yeejoin.amos.boot.module.tzs.api.service.ISpeUseUnitService;
import com.yeejoin.amos.boot.module.tzs.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.tzs.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.tzs.flc.api.dto.RegUnitIcDto;
import com.yeejoin.amos.boot.module.tzs.flc.api.entity.RegUnitIc;
import com.yeejoin.amos.boot.module.tzs.flc.biz.service.impl.RegUnitIcServiceImpl;
......@@ -20,13 +24,15 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
/**
......@@ -41,6 +47,15 @@ public class TzBaseEnterpriseInfoServiceImpl
implements ITzBaseEnterpriseInfoService {
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Value("${admin.appkey}")
String appkey;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
......@@ -52,6 +67,9 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
private IBaseUnitLicenceService iBaseUnitLicenceService;
@Autowired
private ISpeUseUnitService speUseUnitService;
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
......@@ -133,4 +151,94 @@ public class TzBaseEnterpriseInfoServiceImpl
}
@Override
public String syncEnterpriseInfo() {
RequestContext.setAppKey(appkey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
List<TzBaseEnterpriseInfo> baseEnterpriseInfoList = new ArrayList<>();
//获取平台企业表企业名称及sequence_code,并装入map中
Collection<CompanyModel> companyModels = Privilege.companyClient.queryAgencyTree(null).getResult();
Map<String,CompanyModel> companyMap = new HashMap<>();
getCompanyInfoMap(companyModels,companyMap);
int size = 500;
int total = speUseUnitService.count();
int current = total/size+1;
for(int i = 0; i<current; i++){
IPage<SpeUseUnit> page = new Page<>();
page.setCurrent(i);
page.setSize(size);
List<SpeUseUnit> speUseUnitList = speUseUnitService.page(page).getRecords();
for (SpeUseUnit speUseUnit : speUseUnitList) {
if(!speUseUnit.getAuditOrgName().equals("西安市工商局经开分局") && !speUseUnit.getAuditOrgName().equals("碑林区市场监督管理局")){
continue;
}
if(ValidationUtil.isEmpty(companyMap.get(speUseUnit.getAuditOrgName()))){
continue;
}
TzBaseEnterpriseInfo baseEnterpriseInfo = new TzBaseEnterpriseInfo();
baseEnterpriseInfo.setUseUnit(speUseUnit.getName());
baseEnterpriseInfo.setUseCode(speUseUnit.getCerCode());
baseEnterpriseInfo.setUnitType(speUseUnit.getUnitNature());
baseEnterpriseInfo.setRegistrationAuthority(speUseUnit.getCerRegiOrg());
baseEnterpriseInfo.setProvince(speUseUnit.getOffiAddrProvince());
baseEnterpriseInfo.setCity(speUseUnit.getOffiAddrCity());
baseEnterpriseInfo.setDistrict(speUseUnit.getOffiAddrArea());
baseEnterpriseInfo.setStreet(speUseUnit.getOffiAddrStreet());
baseEnterpriseInfo.setCommunity(speUseUnit.getOffiAddrVillage());
baseEnterpriseInfo.setAddress(speUseUnit.getOffiAddrDetail());
baseEnterpriseInfo.setLegalPerson(speUseUnit.getLegalPerson());
baseEnterpriseInfo.setLegalPhone(speUseUnit.getLegalPersonPhone());
baseEnterpriseInfo.setUseContact(speUseUnit.getResponPerson());
baseEnterpriseInfo.setContactPhone(speUseUnit.getResponPersonPhone());
baseEnterpriseInfo.setIndustry(speUseUnit.getIndustry());
baseEnterpriseInfo.setSuperviseOrgName(speUseUnit.getAuditOrgName());
baseEnterpriseInfo.setSuperviseOrgCode(speUseUnit.getAuditOrgCode());
baseEnterpriseInfo.setOperatingStatus(String.valueOf(speUseUnit.getStatus()));
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfo.setSuperviseOrgCode(companyMap.get(speUseUnit.getAuditOrgName()).getOrgCode());
baseEnterpriseInfoList.add(baseEnterpriseInfo);
CompanyModel companyModel = new CompanyModel();
String address = speUseUnit.getOffiAddrProvince()+speUseUnit.getOffiAddrCity()+speUseUnit.getOffiAddrArea()+speUseUnit.getOffiAddrStreet()+speUseUnit.getOffiAddrVillage()+speUseUnit.getOffiAddrDetail();
companyModel.setCompanyName(speUseUnit.getName());
companyModel.setCompanyCode(speUseUnit.getCerCode());
companyModel.setLevel("company");
companyModel.setAgencyCode("tzs");
companyModel.setCompanyType("使用单位");
companyModel.setAddress(address);
companyModel.setParentId(companyMap.get(speUseUnit.getAuditOrgName()).getParentId());
//保存平台和业务的企业信息
try {
Privilege.companyClient.create(companyModel);
this.save(baseEnterpriseInfo);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
return "ok";
}
public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels,Map<String, CompanyModel> map){
if(companyModels == null){
return map;
}
Iterator iter = companyModels.iterator();
while(iter.hasNext()){
String json = JSON.toJSONString(iter.next());
CompanyModel companyModel = JSON.parseObject(json,CompanyModel.class);
map.put(companyModel.getCompanyName(),companyModel);
getCompanyInfoMap(companyModel.getChildren(),map);
}
return map;
}
}
......@@ -13,6 +13,7 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.tzs.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.tzs.flc.api.feign.AccessFeignService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -20,7 +21,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
......@@ -89,6 +92,14 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
* 使用单位的类型,数据来源:cb_data_dictionary code = 1232
*/
private static String USE_UNIT_TYPE_CODE = "1232";
/**
* 生产单位的类型,数据来源:cb_data_dictionary code = 1230
*/
private static String PRODUCT_UNIT_TYPE_CODE = "1230";
/**
* 充装单位的类型,数据来源:cb_data_dictionary code = 1231
*/
private static String FILLING_UNIT_TYPE_CODE = "1231";
/**
* 单位类型,数据来源:cb_data_dictionary type = UNIT_TYPE
......@@ -216,7 +227,7 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
}
// 2.组织返回数据
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
if (USE_UNIT_TYPE_CODE.equals(unitType)) {
if (USE_UNIT_TYPE_CODE.equals(unitType) || PRODUCT_UNIT_TYPE_CODE.equals(unitType) || FILLING_UNIT_TYPE_CODE.equals(unitType)) {
// 本地库有的化 就不去其他系统查询
RegUnitIc regUnitIc = regUnitIcService
.getOne(new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, unitCode));
......@@ -238,20 +249,22 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
// URI.create("/accessapi/business/getData"));
// ResponseEntity<JSONObject> responseEntity = restTemplate.exchange(requestEntity,JSONObject.class);
// JSONObject result = responseEntity.getBody();
// 2.2 工商信息组装
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0,area.indexOf("市")+1);
String district = area.substring(city.length());
regUnitInfoDto.setCity(city);
regUnitInfoDto.setDistrict(district);
regUnitInfoDto.setStree(String.valueOf(resultMap.get("street")));
regUnitInfoDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitInfoDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitInfoDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
regUnitInfoDto.setName(String.valueOf(resultMap.get("unitName")));
regUnitInfoDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
}
if(!ValidationUtil.isEmpty(resultMap)){
// 2.2 工商信息组装
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0,area.indexOf("市")+1);
String district = area.substring(city.length());
regUnitInfoDto.setCity(city);
regUnitInfoDto.setDistrict(district);
regUnitInfoDto.setStree(String.valueOf(resultMap.get("street")));
regUnitInfoDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitInfoDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitInfoDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
regUnitInfoDto.setName(String.valueOf(resultMap.get("unitName")));
regUnitInfoDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
}
}
} else {
RegUnitIc regUnitIc = regUnitIcService
.getOne(new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, unitCode));
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment