Commit 44f51e56 authored by suhuiguang's avatar suhuiguang

Merge branch 'develop_tzs_96333' into develop_tzs_ymt

# Conflicts: # amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-biz/src/main/java/com/yeejoin/amos/boot/module/ymt/biz/service/impl/EquipmentCategoryServiceImpl.java
parents 7832b5df 00068a31
......@@ -6,3 +6,4 @@ target/
/org.eclipse
.settings
log/
amos-boot-system-tzs/.idea/
......@@ -22,5 +22,10 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.boot.module.common.api.excel;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.google.common.collect.Lists;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.web.multipart.MultipartFile;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.google.common.collect.Lists;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
public class ExcelUtil {
private static final Integer DUTY_CAR_START_INDEX = 5;
/**
* 生成excel模板
*
* @param response
* @param fileName 下载的文件名,
* @param sheetName sheet名
* @param data 导出的数据
* @param model 导出的头
* @param flag true模板填充下拉 false 不填充
*/
public static void createTemplate(HttpServletResponse response, String fileName, String sheetName,
List<? extends Object> data, Class<?> model, DataSources dataDictionaryMapper, boolean flag) {
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try {
// 下拉列表集合
Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
if (flag) {
// 循环获取对应列得下拉列表信息
Field[] declaredFields = model.getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i];
// 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper);
}
}
EasyExcel.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX), model)
.excelType(ExcelTypeEnum.XLSX).sheet(sheetName)
.registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy).doWrite(data);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
/**
* 生成excel模板
*
* @param response
* @param fileName 下载的文件名,
* @param sheetName sheet名
* @param data 导出的数据
* @param model 导出的头
* @param flag true模板填充下拉 false 不填充
*/
public static void createDutyTemplate(HttpServletResponse response, String fileName, String sheetName,
List<? extends Object> data, Class<?> model, List<String> dayByMonth, String[] dutyNameList,
DataSources dataDictionaryMapper, boolean flag, String typeFlag,boolean isTemplete) {
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try {
// 组装表头
List<List<String>> dutyCarTitleList = new ArrayList<>();
Field[] declaredFields = model.getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i];
ExcelProperty excelProperty = field.getAnnotation(ExcelProperty.class);
if (excelProperty != null) {
ArrayList<String> head = new ArrayList<>();
head.add(excelProperty.value()[0]);
dutyCarTitleList.add(head);
}
}
int size = dutyCarTitleList.size();
if (dayByMonth != null) {
for (int i = 0; i < dayByMonth.size(); i++) {
ArrayList<String> dutyDay = new ArrayList<>();
dutyDay.add(dayByMonth.get(i));
dutyCarTitleList.add(dutyDay);
}
}
// 下拉列表集合
Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
if (flag) {
// 组装下拉列表
for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i];
// 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper);
}
if (dayByMonth != null) {
for (int i = 0; i < dayByMonth.size(); i++) {
explicitListConstraintMap.put(size + i, dutyNameList);
}
}
}
private static final Integer DUTY_CAR_START_INDEX = 5;
/**
* 生成excel模板
*
* @param response
* @param fileName 下载的文件名,
* @param sheetName sheet名
* @param data 导出的数据
* @param model 导出的头
* @param flag true模板填充下拉 false 不填充
*/
public static void createTemplate(HttpServletResponse response, String fileName, String sheetName,
List<? extends Object> data, Class<?> model, DataSources dataDictionaryMapper, boolean flag) {
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try {
// 下拉列表集合
Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
if (flag) {
// 循环获取对应列得下拉列表信息
Field[] declaredFields = model.getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i];
// 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper);
}
}
EasyExcel.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX), model)
.excelType(ExcelTypeEnum.XLSX).sheet(sheetName)
.registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy).doWrite(data);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
/**
* 生成excel模板
*
* @param response
* @param fileName 下载的文件名,
* @param sheetName sheet名
* @param data 导出的数据
* @param model 导出的头
* @param flag true模板填充下拉 false 不填充
*/
public static void createDutyTemplate(HttpServletResponse response, String fileName, String sheetName,
List<? extends Object> data, Class<?> model, List<String> dayByMonth, String[] dutyNameList,
DataSources dataDictionaryMapper, boolean flag, String typeFlag, boolean isTemplete) {
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try {
// 组装表头
List<List<String>> dutyCarTitleList = new ArrayList<>();
Field[] declaredFields = model.getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i];
ExcelProperty excelProperty = field.getAnnotation(ExcelProperty.class);
if (excelProperty != null) {
ArrayList<String> head = new ArrayList<>();
head.add(excelProperty.value()[0]);
dutyCarTitleList.add(head);
}
}
int size = dutyCarTitleList.size();
if (dayByMonth != null) {
for (int i = 0; i < dayByMonth.size(); i++) {
ArrayList<String> dutyDay = new ArrayList<>();
dutyDay.add(dayByMonth.get(i));
dutyCarTitleList.add(dutyDay);
}
}
// 下拉列表集合
Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
if (flag) {
// 组装下拉列表
for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i];
// 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper);
}
if (dayByMonth != null) {
for (int i = 0; i < dayByMonth.size(); i++) {
explicitListConstraintMap.put(size + i, dutyNameList);
}
}
}
// String s = new String(fileName.getBytes(), "UTF-8");
// response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(s, "UTF-8"));
ExcelWriterSheetBuilder excelWriterSheetBuilder =EasyExcel
.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX))
.head(dutyCarTitleList)
.excelType(ExcelTypeEnum.XLSX).sheet(sheetName);
if ("WXXFZB".equals(typeFlag) && isTemplete) {
List<Map<Integer, String[]>> fireStationExplicitListConstraintMap = new ArrayList<Map<Integer, String[]>>();
List<List<Object>> resultList =new ArrayList<List<Object>>();
data.stream().forEach(i -> {
Map<Integer, String[]> map = new HashMap<>();
List<Object> detail = (List<Object>) i;
// 微型消防站中的对应单位微型消防站下拉列表数据的集合
List<String> fireStationDetailList = (List<String>) detail.get(detail.size()-1);
String[] strings = new String[fireStationDetailList.size()];
map.put(4, fireStationDetailList.toArray(strings));
map.putAll(explicitListConstraintMap);
fireStationExplicitListConstraintMap.add(map);
detail.remove(detail.size()-1);
resultList.add(detail);
});
excelWriterSheetBuilder.registerWriteHandler(
new TemplateDynamicCellWriteHandlerDate(fireStationExplicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy);
excelWriterSheetBuilder.doWrite(resultList);
}
else if("JJZB".equals(typeFlag) && isTemplete){
List<Map<Integer, String[]>> fireStationExplicitListConstraintMap = new ArrayList<Map<Integer, String[]>>();
List<List<Object>> resultList =new ArrayList<List<Object>>();
data.stream().forEach(i -> {
Map<Integer, String[]> map = new HashMap<>();
List<Object> detail = (List<Object>) i;
// 微型消防站中的对应单位微型消防站下拉列表数据的集合
List<String> fireStationDetailList = (List<String>) detail.get(detail.size()-1);
String[] strings = new String[fireStationDetailList.size()];
List<String> postTypeNameDetailList = (List<String>) detail.get(detail.size()-2);
String[] postTypeNamestrings = new String[postTypeNameDetailList.size()];
List<String> userNameDetailList = (List<String>) detail.get(detail.size()-3);
String[] userNamestrings = new String[userNameDetailList.size()];
List<String> companyNameList = (List<String>) detail.get(detail.size()-4);
String[] companyNameLists = new String[companyNameList.size()];
map.put(4, fireStationDetailList.toArray(strings));
map.put(3, postTypeNameDetailList.toArray(postTypeNamestrings));
map.put(2, userNameDetailList.toArray(userNamestrings));
map.put(1, companyNameList.toArray(companyNameLists));
map.putAll(explicitListConstraintMap);
fireStationExplicitListConstraintMap.add(map);
detail.remove(detail.size()-1);
detail.remove(detail.size()-1);
detail.remove(detail.size()-1);
detail.remove(detail.size()-1);
resultList.add(detail);
});
excelWriterSheetBuilder
.registerWriteHandler(
new TemplateDynamicCellWriteHandlerDate(fireStationExplicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy);
excelWriterSheetBuilder.doWrite(resultList);
}else {
excelWriterSheetBuilder = excelWriterSheetBuilder
.registerWriteHandler(
new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy);
excelWriterSheetBuilder.doWrite(data);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
/**
* 读取 Excel(第一个 sheet) 指定行开始读取
*
* @param excel 文件
* @param rowType 模板实体类
* @param header 指定不读取的表头行数,
* @param <T>
* @return 集合数据
* @throws Exception
*/
public static <T> List<T> readFirstSheetExcel(MultipartFile excel, Class<T> rowType, int header) throws Exception {
ExcelReader reader = getReader(excel, header);
if (reader == null) {
return new ArrayList<>();
}
return readExcel(reader, rowType, 0);
}
/**
* 读取 Excel(多个 sheet)
*
* @param reader 读取的excel
* @param rowModel excel模板实体类
* @param sheetCount sheet
* @param <T>
* @return
*/
public static <T> List<T> readExcel(ExcelReader reader, Class<T> rowModel, int sheetCount) {
if (reader == null) {
return new ArrayList<>();
}
ExcelListener<T> excelListener = new ExcelListener<>();
ReadSheet readSheet = EasyExcel.readSheet(sheetCount).head(rowModel).registerReadListener(excelListener)
.build();
reader.read(readSheet);
return excelListener.getList();
}
/**
* @param excel 需要解析的 Excel 文件
* @param header 指定不读取表头行数,
* @return
* @throws Exception
*/
public static ExcelReader getReader(MultipartFile excel, int header) throws Exception {
String fileName = excel.getOriginalFilename();
if (fileName == null) {
throw new Exception("文件不存在!");
}
if (!fileName.toLowerCase().endsWith(ExcelTypeEnum.XLS.getValue())
&& !fileName.toLowerCase().endsWith(ExcelTypeEnum.XLSX.getValue())) {
throw new Exception("文件类型异常!");
}
InputStream inputStream;
try {
inputStream = excel.getInputStream();
return EasyExcel.read(inputStream).headRowNumber(header).build();
} catch (IOException e) {
// do something
}
return null;
}
/**
* 解析注解内容 获取下列表信息
*
* @param explicitConstraint
* @return
*/
public static Map<Integer, String[]> resolveExplicitConstraint(Map<Integer, String[]> explicitListConstraintMap,
ExplicitConstraint explicitConstraint, DataSources dataDictionaryMapper) {
if (explicitConstraint == null) {
return null;
}
// 固定下拉信息
String[] source = explicitConstraint.source();
if (source.length > 0) {
explicitListConstraintMap.put(explicitConstraint.indexNum(), source);
}
// 动态下拉信息
Class<? extends ExplicitInterface>[] classes = explicitConstraint.sourceClass();
if (classes.length > 0) {
ExplicitInterface explicitInterface = null;
try {
explicitInterface = classes[0].newInstance();
String[] source1 = explicitInterface.source(explicitConstraint.type(), explicitConstraint.method(),
dataDictionaryMapper);
if (source1.length > 0) {
explicitListConstraintMap.put(explicitConstraint.indexNum(), source1);
}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 导出文件时为Writer生成OutputStream
*/
private static OutputStream getOutputStream(String fileName, HttpServletResponse response,
ExcelTypeEnum excelTypeEnum) throws Exception {
// 创建本地文件
String filePath = fileName + excelTypeEnum.getValue();
try {
fileName = new String(filePath.getBytes(), "UTF-8");
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "filename=" + fileName);
response.setHeader("Content-Disposition",
"attachment; filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8.name()));
return response.getOutputStream();
} catch (IOException e) {
throw new Exception("系统异常");
}
}
/**
* 创建我的cell 策略
*
* @return
*/
public static HorizontalCellStyleStrategy setMyCellStyle() {
ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcel
.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX))
.head(dutyCarTitleList)
.excelType(ExcelTypeEnum.XLSX).sheet(sheetName);
if ("WXXFZB".equals(typeFlag) && isTemplete) {
List<Map<Integer, String[]>> fireStationExplicitListConstraintMap = new ArrayList<Map<Integer, String[]>>();
List<List<Object>> resultList = new ArrayList<List<Object>>();
data.stream().forEach(i -> {
Map<Integer, String[]> map = new HashMap<>();
List<Object> detail = (List<Object>) i;
// 微型消防站中的对应单位微型消防站下拉列表数据的集合
List<String> fireStationDetailList = (List<String>) detail.get(detail.size() - 1);
String[] strings = new String[fireStationDetailList.size()];
map.put(4, fireStationDetailList.toArray(strings));
map.putAll(explicitListConstraintMap);
fireStationExplicitListConstraintMap.add(map);
detail.remove(detail.size() - 1);
resultList.add(detail);
});
excelWriterSheetBuilder.registerWriteHandler(
new TemplateDynamicCellWriteHandlerDate(fireStationExplicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy);
excelWriterSheetBuilder.doWrite(resultList);
} else if ("JJZB".equals(typeFlag) && isTemplete) {
List<Map<Integer, String[]>> fireStationExplicitListConstraintMap = new ArrayList<Map<Integer, String[]>>();
List<List<Object>> resultList = new ArrayList<List<Object>>();
data.stream().forEach(i -> {
Map<Integer, String[]> map = new HashMap<>();
List<Object> detail = (List<Object>) i;
// 微型消防站中的对应单位微型消防站下拉列表数据的集合
List<String> fireStationDetailList = (List<String>) detail.get(detail.size() - 1);
String[] strings = new String[fireStationDetailList.size()];
List<String> postTypeNameDetailList = (List<String>) detail.get(detail.size() - 2);
String[] postTypeNamestrings = new String[postTypeNameDetailList.size()];
List<String> userNameDetailList = (List<String>) detail.get(detail.size() - 3);
String[] userNamestrings = new String[userNameDetailList.size()];
List<String> companyNameList = (List<String>) detail.get(detail.size() - 4);
String[] companyNameLists = new String[companyNameList.size()];
map.put(4, fireStationDetailList.toArray(strings));
map.put(3, postTypeNameDetailList.toArray(postTypeNamestrings));
map.put(2, userNameDetailList.toArray(userNamestrings));
map.put(1, companyNameList.toArray(companyNameLists));
map.putAll(explicitListConstraintMap);
fireStationExplicitListConstraintMap.add(map);
detail.remove(detail.size() - 1);
detail.remove(detail.size() - 1);
detail.remove(detail.size() - 1);
detail.remove(detail.size() - 1);
resultList.add(detail);
});
excelWriterSheetBuilder
.registerWriteHandler(
new TemplateDynamicCellWriteHandlerDate(fireStationExplicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy);
excelWriterSheetBuilder.doWrite(resultList);
} else {
excelWriterSheetBuilder = excelWriterSheetBuilder
.registerWriteHandler(
new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy);
excelWriterSheetBuilder.doWrite(data);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
/**
* 读取 Excel(第一个 sheet) 指定行开始读取
*
* @param excel 文件
* @param rowType 模板实体类
* @param header 指定不读取的表头行数,
* @param <T>
* @return 集合数据
* @throws Exception
*/
public static <T> List<T> readFirstSheetExcel(MultipartFile excel, Class<T> rowType, int header) throws Exception {
ExcelReader reader = getReader(excel, header);
if (reader == null) {
return new ArrayList<>();
}
return readExcel(reader, rowType, 0);
}
/**
* 读取 Excel(多个 sheet)
*
* @param reader 读取的excel
* @param rowModel excel模板实体类
* @param sheetCount sheet
* @param <T>
* @return
*/
public static <T> List<T> readExcel(ExcelReader reader, Class<T> rowModel, int sheetCount) {
if (reader == null) {
return new ArrayList<>();
}
ExcelListener<T> excelListener = new ExcelListener<>();
ReadSheet readSheet = EasyExcel.readSheet(sheetCount).head(rowModel).registerReadListener(excelListener)
.build();
reader.read(readSheet);
return excelListener.getList();
}
/**
* @param excel 需要解析的 Excel 文件
* @param header 指定不读取表头行数,
* @return
* @throws Exception
*/
public static ExcelReader getReader(MultipartFile excel, int header) throws Exception {
String fileName = excel.getOriginalFilename();
if (fileName == null) {
throw new Exception("文件不存在!");
}
if (!fileName.toLowerCase().endsWith(ExcelTypeEnum.XLS.getValue())
&& !fileName.toLowerCase().endsWith(ExcelTypeEnum.XLSX.getValue())) {
throw new Exception("文件类型异常!");
}
InputStream inputStream;
try {
inputStream = excel.getInputStream();
return EasyExcel.read(inputStream).headRowNumber(header).build();
} catch (IOException e) {
// do something
}
return null;
}
/**
* 解析注解内容 获取下列表信息
*
* @param explicitConstraint
* @return
*/
public static Map<Integer, String[]> resolveExplicitConstraint(Map<Integer, String[]> explicitListConstraintMap,
ExplicitConstraint explicitConstraint, DataSources dataDictionaryMapper) {
if (explicitConstraint == null) {
return null;
}
// 固定下拉信息
String[] source = explicitConstraint.source();
if (source.length > 0) {
explicitListConstraintMap.put(explicitConstraint.indexNum(), source);
}
// 动态下拉信息
Class<? extends ExplicitInterface>[] classes = explicitConstraint.sourceClass();
if (classes.length > 0) {
ExplicitInterface explicitInterface = null;
try {
explicitInterface = classes[0].newInstance();
String[] source1 = explicitInterface.source(explicitConstraint.type(), explicitConstraint.method(),
dataDictionaryMapper);
if (source1.length > 0) {
explicitListConstraintMap.put(explicitConstraint.indexNum(), source1);
}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 导出文件时为Writer生成OutputStream
*/
private static OutputStream getOutputStream(String fileName, HttpServletResponse response,
ExcelTypeEnum excelTypeEnum) throws Exception {
// 创建本地文件
String filePath = fileName + excelTypeEnum.getValue();
try {
fileName = new String(filePath.getBytes(), "UTF-8");
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "filename=" + fileName);
response.setHeader("Content-Disposition",
"attachment; filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8.name()));
return response.getOutputStream();
} catch (IOException e) {
throw new Exception("系统异常");
}
}
/**
* 创建我的cell 策略
*
* @return
*/
public static HorizontalCellStyleStrategy setMyCellStyle() {
// // 头的策略
// WriteCellStyle headWriteCellStyle = new WriteCellStyle();
......@@ -352,92 +354,183 @@ public class ExcelUtil {
// // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
// return horizontalCellStyleStrategy;
// 表头样式策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 设置表头居中对齐
headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
// 表头前景色
headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
WriteFont headWriteFont = new WriteFont();
headWriteFont.setBold(true);
headWriteFont.setFontName("宋体");
headWriteFont.setFontHeightInPoints((short) 10);
headWriteCellStyle.setWriteFont(headWriteFont);
// 2 内容样式策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
WriteFont contentWriteFont = new WriteFont();
// 内容字体大小
contentWriteFont.setFontName("宋体");
contentWriteFont.setFontHeightInPoints((short) 10);
contentWriteCellStyle.setWriteFont(contentWriteFont);
// 设置自动换行
contentWriteCellStyle.setWrapped(true);
// 设置垂直居中
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 头默认了 FillPatternType所以可以不指定。
// contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
// 设置水平居中
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
// 设置边框样式
contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);
contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);
return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
}
/**
* 生成excel模板
*
* @param response
* @param fileName 下载的文件名,
* @param sheetName sheet名
* @param data 导出的数据
*/
public static void createTemplateWithHeaders(HttpServletResponse response, String fileName, String sheetName,
List<? extends Object> data, List<List<String>> heads, List<String> headstr, String fileType) {
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try {
// 下拉列表集合
List<List<Object>> listData = Lists.newArrayList();
// 表头样式策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 设置表头居中对齐
headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
// 表头前景色
headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
WriteFont headWriteFont = new WriteFont();
headWriteFont.setBold(true);
headWriteFont.setFontName("宋体");
headWriteFont.setFontHeightInPoints((short) 10);
headWriteCellStyle.setWriteFont(headWriteFont);
// 2 内容样式策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
WriteFont contentWriteFont = new WriteFont();
// 内容字体大小
contentWriteFont.setFontName("宋体");
contentWriteFont.setFontHeightInPoints((short) 10);
contentWriteCellStyle.setWriteFont(contentWriteFont);
// 设置自动换行
contentWriteCellStyle.setWrapped(true);
// 设置垂直居中
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 头默认了 FillPatternType所以可以不指定。
// contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
// 设置水平居中
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
// 设置边框样式
contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);
contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);
return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
}
/**
* 生成excel模板
*
* @param response
* @param fileName 下载的文件名,
* @param sheetName sheet名
* @param data 导出的数据
*/
public static void createTemplateWithHeaders(HttpServletResponse response, String fileName, String sheetName,
List<? extends Object> data, List<List<String>> heads, List<String> headstr, String fileType) {
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try {
// 下拉列表集合
List<List<Object>> listData = Lists.newArrayList();
for (Object t : data) {
List<Object> rowLine = new ArrayList<>();
for(String head: headstr) {
for (String head : headstr) {
List<Object> row = new ArrayList<>();
String getMethodName = "get" + head.substring(0,1).toUpperCase() + head.substring(1);
String getMethodName = "get" + head.substring(0, 1).toUpperCase() + head.substring(1);
Class clazz = t.getClass();
Method getMethod;
getMethod = clazz.getMethod(getMethodName, new Class[]{} );
getMethod = clazz.getMethod(getMethodName, new Class[]{});
Object value = getMethod.invoke(t, new Object[]{});
rowLine.add(value);
}
listData.add(rowLine);
}
ExcelTypeEnum typeEnum = null;
if("1039".equals(fileType)) {
typeEnum = ExcelTypeEnum.XLS;
} else if("1040".equals(fileType)) {
typeEnum = ExcelTypeEnum.XLSX;
}
EasyExcel.write(getOutputStream(fileName, response, typeEnum))
.excelType(typeEnum).sheet(sheetName)
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy)
.head(heads).doWrite(listData);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
ExcelTypeEnum typeEnum = null;
if ("1039".equals(fileType)) {
typeEnum = ExcelTypeEnum.XLS;
} else if ("1040".equals(fileType)) {
typeEnum = ExcelTypeEnum.XLSX;
}
EasyExcel.write(getOutputStream(fileName, response, typeEnum))
.excelType(typeEnum).sheet(sheetName)
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy)
.head(heads).doWrite(listData);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
private static ByteArrayOutputStream exportData2(List<?> subList, List<List<String>> heads) {
ByteArrayOutputStream singleOutputStream = new ByteArrayOutputStream();
ExcelWriter excelWriter = EasyExcel.write(singleOutputStream).build();
WriteSheet writeSheet = EasyExcel.writerSheet("电梯信息").build();
writeSheet.setHead(heads);
excelWriter.write(subList, writeSheet);
excelWriter.finish();
return singleOutputStream;
}
public static void exportWithMplThread2(HttpServletResponse response,
String fileName,
List<?> data,
List<List<String>> heads,
String fileType,
Executor executorService,
int pageSize) {
int dataSize = data.size();
int excelNumber = (int)Math.ceil((double)dataSize/pageSize);
int lastDataSize = dataSize % pageSize;
List<CompletableFuture<ByteArrayOutputStream>> futures = new ArrayList<>();
for (int i = 0; i < excelNumber; i++) {
int start = i * pageSize;
int end = start + pageSize;
if (i == excelNumber - 1) {
end = start + (lastDataSize == 0 ? pageSize : lastDataSize);
}
List<?> subList = data.subList(start, end);
CompletableFuture<ByteArrayOutputStream> future = CompletableFuture.supplyAsync(() -> exportData2(subList, heads), executorService)
.exceptionally(ex -> {
ex.printStackTrace();
return null; // Handle exception and return a default result or null
});
futures.add(future);
}
CompletableFuture<Void> allOfFuture = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
CompletableFuture<List<ByteArrayOutputStream>> combinedFuture = allOfFuture
.thenApply(v -> futures.stream()
.map(CompletableFuture::join)
.collect(Collectors.toList()));
List<ByteArrayOutputStream> results = combinedFuture.join();
try {
String encodedFileName = URLEncoder.encode(fileName + ".zip", StandardCharsets.UTF_8.name());
response.setContentType("application/zip");
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setHeader("Content-Disposition", "attachment; filename=" + encodedFileName);
List<File> tempList = new ArrayList<>();
ExcelTypeEnum typeEnum;
if ("1039".equals(fileType)) {
typeEnum = ExcelTypeEnum.XLS;
} else {
typeEnum = ExcelTypeEnum.XLSX;
}
results.forEach(b -> {
try {
File tempFile = File.createTempFile(fileName, typeEnum.getValue());
Files.write(tempFile.toPath(), b.toByteArray(), StandardOpenOption.CREATE);
tempList.add(tempFile);
} catch (IOException e) {
e.printStackTrace();
}
});
File[] tempFiles = tempList.toArray(new File[0]);
File zipFile = new File(fileName + ".zip");
ZipUtil.zip(zipFile, false, tempFiles);
Arrays.stream(tempFiles).forEach(File::delete);
try (OutputStream outputStream = response.getOutputStream();
FileInputStream zipFileStream = new FileInputStream(zipFile);
BufferedInputStream inputStream = new BufferedInputStream(zipFileStream)) {
byte[] buffer = new byte[8192];
int count;
while ((count = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, count);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
zipFile.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.yeejoin.amos.latentdanger.business.service.impl;
import com.google.common.collect.Sets;
import com.yeejoin.amos.boot.biz.common.constants.RuleConstant;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyPerson;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
......@@ -8,7 +7,6 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.rule.RuleTrigger;
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.RoleModel;
import com.yeejoin.amos.latentdanger.business.dto.LatentDangerRo;
import com.yeejoin.amos.latentdanger.business.feign.JcsFeignClient;
......@@ -17,15 +15,16 @@ import com.yeejoin.amos.latentdanger.common.enums.LatentDangerState;
import com.yeejoin.amos.latentdanger.dao.entity.LatentDanger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.*;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @Author: xl
......@@ -48,7 +47,8 @@ public class RuleDangerService {
latentDangerRo.setTerminal(RuleConstant.APP);
List<RoleModel> result = Privilege.roleClient.queryRoleList(roleName, null).getResult();
if (result.size() > 0) {
List<AgencyUserModel> userModels = Privilege.agencyUserClient.queryByRoleId(String.valueOf(result.get(0).getSequenceNbr()), null).getResult();
List<AgencyUserModel> userModels =
Privilege.agencyUserClient.queryByRoleId(String.valueOf(result.get(0).getSequenceNbr()), null).getResult();
//只发送给本部门的人员
Long pointId = latentDanger.getBizInfo().getLong("pointId");
......
......@@ -171,7 +171,9 @@ public class AsyncTask {
try {
List<RoleModel> result = Privilege.roleClient.queryRoleList(roleName, null).getResult();
if (result.size() > 0) {
List<AgencyUserModel> userModels = Privilege.agencyUserClient.queryByRoleId(String.valueOf(result.get(0).getSequenceNbr()), null).getResult();
List<AgencyUserModel> userModels =
Privilege.agencyUserClient.queryByRoleId(String.valueOf(result.get(0).getSequenceNbr()), null
).getResult();
List<String> userIds = userModels.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList());
model.setRecivers(userIds);
}
......
package com.yeejoin.amos.latentdanger.feign;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -41,6 +21,25 @@ import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.amos.latentdanger.business.util.CommonResponse;
import com.yeejoin.amos.latentdanger.business.util.Toke;
import com.yeejoin.amos.latentdanger.common.remote.IAMOSSecurityServer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service("remoteSecurityService-danger")
public class RemoteSecurityService {
......
......@@ -6,9 +6,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.beust.jcommander.internal.Sets;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.enums.RuleTypeEnum;
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;
......@@ -17,8 +18,19 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.supervision.business.constants.XJConstant;
import com.yeejoin.amos.supervision.business.dao.mapper.*;
import com.yeejoin.amos.supervision.business.dao.repository.*;
import com.yeejoin.amos.supervision.business.dao.mapper.CheckReportMapper;
import com.yeejoin.amos.supervision.business.dao.mapper.HiddenDangerMapper;
import com.yeejoin.amos.supervision.business.dao.mapper.PlanMapper;
import com.yeejoin.amos.supervision.business.dao.mapper.PlanTaskDetailMapper;
import com.yeejoin.amos.supervision.business.dao.mapper.PlanTaskMapper;
import com.yeejoin.amos.supervision.business.dao.mapper.PointMapper;
import com.yeejoin.amos.supervision.business.dao.mapper.RoutePointItemMapper;
import com.yeejoin.amos.supervision.business.dao.repository.ICheckDao;
import com.yeejoin.amos.supervision.business.dao.repository.IPlanDao;
import com.yeejoin.amos.supervision.business.dao.repository.IPlanTaskDao;
import com.yeejoin.amos.supervision.business.dao.repository.IPlanTaskDetailDao;
import com.yeejoin.amos.supervision.business.dao.repository.IPointInputItemDao;
import com.yeejoin.amos.supervision.business.dao.repository.IRoutePointDao;
import com.yeejoin.amos.supervision.business.dto.OrgUsrFormDto;
import com.yeejoin.amos.supervision.business.entity.mybatis.CheckChkExListBo;
import com.yeejoin.amos.supervision.business.entity.mybatis.PointCheckDetailBo;
......@@ -37,23 +49,28 @@ import com.yeejoin.amos.supervision.business.vo.CalDateVo;
import com.yeejoin.amos.supervision.business.vo.CodeOrderVo;
import com.yeejoin.amos.supervision.business.vo.LeavePlanTaskVo;
import com.yeejoin.amos.supervision.business.vo.PlanTaskVo;
import com.yeejoin.amos.supervision.common.enums.*;
import com.yeejoin.amos.boot.biz.common.enums.RuleTypeEnum;
import com.yeejoin.amos.supervision.common.enums.PlanStatusEnum;
import com.yeejoin.amos.supervision.common.enums.PlanTaskDetailIsFinishEnum;
import com.yeejoin.amos.supervision.common.enums.PlanTaskFinishStatusEnum;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import com.yeejoin.amos.supervision.core.common.request.CommonPageable;
import com.yeejoin.amos.supervision.core.common.response.AppCheckInputRespone;
import com.yeejoin.amos.supervision.core.common.response.AppPointCheckRespone;
import com.yeejoin.amos.supervision.core.util.DateUtil;
import com.yeejoin.amos.supervision.core.util.StringUtil;
import com.yeejoin.amos.supervision.dao.entity.*;
import com.yeejoin.amos.supervision.dao.entity.Check;
import com.yeejoin.amos.supervision.dao.entity.CheckReport;
import com.yeejoin.amos.supervision.dao.entity.HiddenDanger;
import com.yeejoin.amos.supervision.dao.entity.Plan;
import com.yeejoin.amos.supervision.dao.entity.PlanTask;
import com.yeejoin.amos.supervision.dao.entity.PlanTaskDetail;
import com.yeejoin.amos.supervision.dao.entity.Point;
import com.yeejoin.amos.supervision.exception.YeeException;
import com.yeejoin.amos.supervision.feign.RemoteSecurityService;
import com.yeejoin.amos.supervision.quartz.IJobService;
import org.apache.commons.collections.CollectionUtils;
import com.google.common.collect.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
......@@ -68,7 +85,17 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.sql.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
......
package com.yeejoin.amos.supervision.feign;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import com.yeejoin.amos.supervision.business.feign.JCSFeignClient;
import com.yeejoin.amos.supervision.common.remote.IAMOSSecurityServer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -42,9 +19,29 @@ import com.yeejoin.amos.feign.privilege.model.PermissionModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.amos.supervision.business.feign.JCSFeignClient;
import com.yeejoin.amos.supervision.business.util.CommonResponse;
import com.yeejoin.amos.supervision.business.util.Toke;
import org.typroject.tyboot.core.foundation.context.RequestContextModel;
import com.yeejoin.amos.supervision.common.remote.IAMOSSecurityServer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service("remoteSecurityService")
public class RemoteSecurityService {
......
......@@ -11,4 +11,9 @@ public interface BizCommonConstant {
* 所有平台企业数据redisKey
*/
String COMPANY_TREE_REDIS_KEY = "REGULATOR_UNIT_TREE";
/**
* 电梯数据key
*/
String OLD_ELEVATOR_REDIS_KEY = "OLD_ELEVATOR_REDIS_KEY";
}
......@@ -130,7 +130,7 @@ public class AlertCalledDto extends BaseDto {
private String useSiteCategory;
@ApiModelProperty(value = "电梯使用状态")
private Integer useStatus;
private String useStatus;
// 废弃
@ApiModelProperty(value = "警情地址")
......
......@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 警情查询DTO
......@@ -54,11 +55,11 @@ public class AlertCalledQueryDto {
@ApiModelProperty(value = "电梯地址")
private String elevatorAddress;
@ExcelProperty(value = "所属区域", index = 7)
@ExcelIgnore
@ApiModelProperty(value = "所属区域")
private String district;
@ExcelIgnore
@ExcelProperty(value = "所属区域", index = 7)
@ApiModelProperty(value = "市+区")
private String address;
......@@ -90,4 +91,6 @@ public class AlertCalledQueryDto {
@ApiModelProperty(value = "ID")
private Long sequenceNbr;
@ExcelIgnore
List<String> ids;
}
......@@ -30,11 +30,11 @@ public class BaseEnterpriseInfoDto extends BaseDto {
@ApiModelProperty(value = "统一社会信用代码")
@TableField("use_code")
private String socialCreditCode;
private String useCode;
@ApiModelProperty(value = "维护保养单位名称")
@TableField("supervise_org_name")
private String unitName;
@TableField("use_unit")
private String useUnit;
@ApiModelProperty(value = "省份")
@TableField("province")
......@@ -49,7 +49,7 @@ public class BaseEnterpriseInfoDto extends BaseDto {
private String district;
@ApiModelProperty(value = "区域代码")
@TableField("district")
@TableField("supervise_code")
private String regionCode;
@ApiModelProperty(value = "地址(详细地址,包括道路、门牌号码)")
......
......@@ -20,10 +20,10 @@ import java.util.List;
public class EnterpriseInfoExportDto {
@ExcelProperty(value = "统一社会信用代码", index = 1)
private String socialCreditCode;
private String useCode;
@ExcelProperty(value = "单位名称", index = 0)
private String unitName;
private String useUnit;
@ExcelProperty(value = "所属区域", index = 2)
private String district;
......
......@@ -69,9 +69,13 @@ public class RescueProcessDto extends BaseDto {
@ApiModelProperty(value = "是否伤亡")
private Boolean casualtiesStatus;
@ApiModelProperty(value = "伤亡情况")
@ApiModelProperty(value = "受伤人数")
private String casualtiesInfo;
@ApiModelProperty(value = "死亡人数")
private String dieNum;
@ApiModelProperty(value = "是否救援成功")
private Boolean rescueStatus;
......
......@@ -19,7 +19,7 @@ public class SpecialEquipmentDto {
@ExcelIgnore
@ApiModelProperty(value = "主键ID")
protected Long sequenceNbr;
protected String sequenceNbr;
@ApiModelProperty(value = "电梯应急救援识别码")
private Integer rescueCode;
......
......@@ -26,11 +26,11 @@ public class EnterpriseInfo extends BaseEntity {
@ApiModelProperty(value = "统一社会信用代码")
@TableField("use_code")
private String socialCreditCode;
private String useCode;
@ApiModelProperty(value = "维护保养单位名称")
@TableField("use_unit")
private String unitName;
private String useUnit;
@ApiModelProperty(value = "省份")
@TableField("province")
......@@ -45,7 +45,7 @@ public class EnterpriseInfo extends BaseEntity {
private String district;
@ApiModelProperty(value = "区域代码")
@TableField("district")
@TableField("supervise_code")
private String regionCode;
@ApiModelProperty(value = "地址(详细地址,包括道路、门牌号码)")
......
......@@ -89,12 +89,18 @@ public class RescueProcess extends BaseEntity {
private Boolean casualtiesStatus;
/**
* 伤亡情况
* 受伤人数
*/
@TableField("casualties_info")
private String casualtiesInfo;
/**
* 死亡人数
*/
@TableField("die_num")
private String dieNum;
/**
* 是否救援成功
*/
@TableField("rescue_status")
......
......@@ -72,7 +72,8 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
@Param("alertStatus") String alertStatus,
@Param("sortParam") String sortParam,
@Param("sortRule") String sortRule,
@Param("userIds") Set<String> userIds);
@Param("userIds") Set<String> userIds,
@Param("ids") List<String> ids);
Map<String, Integer> getTodayEmergencyCount(String regionCode);
......
......@@ -52,7 +52,8 @@ public interface IAlertCalledService {
String alertStage,
String alertStatus,
String sortParam,
String sortRule);
String sortRule,
List<String> ids);
/**
* 更新警情阶段信息
......
......@@ -257,6 +257,12 @@
#{item}
</foreach>
</if>
<if test="ids != null and ids.size>0">
AND a.sequence_nbr in
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="sortParam != null and sortParam != '' and sortRule != null and sortRule != '' ">
ORDER BY ${sortParam} ${sortRule}
</if>
......@@ -541,12 +547,10 @@
ifnull ( ibjui."LONGITUDE_LATITUDE"::json->> 'longitude', null ) AS longitude,
a.alert_stage AS alertStatus,
ibjui.RECORD AS elevatorId,
ibjri.SUPERVISORY_CODE AS elevatorCode
ibjoi.SUPERVISORY_CODE AS elevatorCode
FROM tz_alert_called a
LEFT JOIN tcb_elevator e ON e.sequence_nbr = a.equipment_id
LEFT JOIN idx_biz_jg_other_info ibjoi ON ibjoi.RECORD = a.equipment_id
LEFT JOIN idx_biz_jg_use_info ibjui ON ibjui.RECORD = ibjoi.RECORD
LEFT JOIN idx_biz_jg_register_info ibjri ON ibjri.RECORD = ibjoi.RECORD
WHERE a.is_delete = 0
<choose>
<when test="isHistory == true">
......
......@@ -110,7 +110,7 @@
LEFT JOIN idx_biz_jg_register_info jri on jui.RECORD = jri.RECORD
LEFT JOIN idx_biz_jg_maintenance_record_info mri on jui.RECORD = mri.RECORD
<where>
jri.EQU_LIST = '3000'
jri.EQU_LIST = '3000' AND joi.CLAIM_STATUS = '已认领' and jui.RECORD is not null
<if test="dto.regionCode != null and dto.regionCode != ''">
and (jui.PROVINCE = #{dto.regionCode} or jui.CITY = #{dto.regionCode} or jui.COUNTY = #{dto.regionCode}
)
......@@ -133,7 +133,8 @@
<if test="dto.useUnit != null and dto.useUnit != ''">
and jui.USE_UNIT_NAME like concat('%',#{dto.useUnit},'%')
</if>
GROUP BY
joi.RECORD
</where>
</select>
<!-- <select id="selectExportDataNew" resultType="com.yeejoin.amos.boot.module.elevator.api.dto.ElevatorDtoNew">-->
......@@ -332,7 +333,6 @@
<select id="selectElevatorList" resultType="java.util.Map">
SELECT
jui.RECORD AS sequenceNbr,
jui.USE_UNIT_NAME AS useUnit,
ifnull ( joi.CODE96333, null ) AS rescueCode,
ifnull ( joi.SUPERVISORY_CODE, null ) AS registerCode,
ifnull ( jui.USE_UNIT_NAME, null ) AS useUnit,
......@@ -362,9 +362,8 @@
AND jui.RECORD = #{elevator.originalId}
</if>
<if test="elevator.address!=null and elevator.address!='' ">
AND jui.ADDRESS = #{elevator.address}
AND jui.ADDRESS like concat('%', #{elevator.address}, '%')
</if>
limit 1
</select>
<select id="selectRegisterFiles" resultType="java.util.Map">
select USE_REGISTRATION_CERTIFICATE, USE_SIGN, PRODUCT_PHOTO
......@@ -400,7 +399,7 @@
LEFT JOIN idx_biz_jg_register_info jri on jui.RECORD = jri.RECORD
LEFT JOIN idx_biz_jg_maintenance_record_info mri on jui.RECORD = mri.RECORD
<where>
jri.EQU_LIST = '3000'
jri.EQU_LIST = '3000' AND joi.CLAIM_STATUS = '已认领' and jui.RECORD is not null
<if test="dto.regionCode != null and dto.regionCode != ''">
and (jui.PROVINCE = #{dto.regionCode} or jui.CITY = #{dto.regionCode} or jui.COUNTY = #{dto.regionCode}
)
......@@ -430,7 +429,8 @@
</if>
</where>
limit 10
GROUP BY
joi.RECORD
</select>
<select id="selectElevatorEsList" resultType="java.util.Map">
......@@ -471,15 +471,15 @@ limit 10
<select id="selectMtByAlertId" resultType="java.util.Map">
SELECT
tbei.sequence_nbr AS sequenceNbr,
ME_MASTER AS userName,
EMERGENCYCALL AS phone,
tbei.address AS address,
tbei.use_unit AS unitName,
ibjui."USE_UNIT_CREDIT_CODE" AS useCode
tbei.use_code AS useCode
FROM
idx_biz_jg_maintenance_record_info ibjmri
LEFT JOIN idx_biz_jg_use_info ibjui ON ibjmri."RECORD" = ibjui."RECORD"
LEFT JOIN tz_base_enterprise_info tbei ON ibjui."USE_UNIT_CREDIT_CODE" = tbei.use_code
LEFT JOIN tz_base_enterprise_info tbei ON ibjmri."ME_UNIT_CREDIT_CODE" = tbei.use_code
where
ibjmri.RECORD = #{sequenceNbr}
order by ibjmri.REC_DATE
......@@ -491,7 +491,8 @@ limit 10
ibjui.SAFETY_MANAGER AS manager,
ibjui.PHONE AS managerPhone,
ibjui.USE_UNIT_NAME as useUnitName,
tbei.address AS address
tbei.address AS address,
tbei.sequence_nbr AS unitId
FROM
idx_biz_jg_use_info ibjui
LEFT JOIN tz_base_enterprise_info tbei ON ibjui.USE_UNIT_CREDIT_CODE = tbei.use_code
......
......@@ -195,7 +195,7 @@ public class AlertCalledController extends BaseController {
alertCalledDto.setAddress(elevator.getAddress());
alertCalledDto.setRegistrationCode(elevator.getRegisterCode());
alertCalledDto.setDeviceId(String.valueOf(elevator.getRescueCode()));
alertCalledDto.setUseStatus(elevator.getUseStatus());
alertCalledDto.setUseStatus(String.valueOf(elevator.getUseStatus()));
alertCalledDto.setUseSiteCategory(elevator.getUseSiteCategory());
alertCalledDto.setAlarmType(AlertStageEnums.getEnumById(alertCalledDto.getAlarmTypeCode()).getValue());
alertCalledDto.setEquipmentClassification("电梯");
......@@ -454,7 +454,7 @@ public class AlertCalledController extends BaseController {
if (!ValidationUtil.isEmpty(alertCalled.getCallTimeStart())
&& !ValidationUtil.isEmpty(alertCalled.getCallTimeEnd())) {
queryWrapper.between("call_time", alertCalled.getCallTimeStart(),
alertCalled.getCallTimeEnd().getTime());
alertCalled.getCallTimeEnd());
}
} else {
queryWrapper.between("call_time", DateUtils.stampToDate(System.currentTimeMillis(), DateUtils.DATE_PATTERN),
......@@ -506,7 +506,7 @@ public class AlertCalledController extends BaseController {
alertCalledQueryDto.getWorkOrderNumber(),alertCalledQueryDto.getCreator(),alertCalledQueryDto.getEmergency(),alertCalledQueryDto.getEmergencyTimeStart(),
alertCalledQueryDto.getEmergencyTimeEnd(),alertCalledQueryDto.getEmergencyCall(),alertCalledQueryDto.getDeviceId(),alertCalledQueryDto.getElevatorAddress(),
alertCalledQueryDto.getDistrict(),alertCalledQueryDto.getAlertType(),alertCalledQueryDto.getAlertSource(),alertCalledQueryDto.getAlertStage(),alertCalledQueryDto.getAlertStatus(),
sortParam,sortRule);
sortParam,sortRule, null);
Page<AlertCalledQueryDto> result = new Page<AlertCalledQueryDto>(alertCalledQueryDto.getPageNum(),
alertCalledQueryDto.getPageSize());
long totle = pageBean.getTotal();
......@@ -541,7 +541,7 @@ public class AlertCalledController extends BaseController {
alertCalledQueryDto.getWorkOrderNumber(),alertCalledQueryDto.getCreator(),alertCalledQueryDto.getEmergency(),alertCalledQueryDto.getEmergencyTimeStart(),
alertCalledQueryDto.getEmergencyTimeEnd(),alertCalledQueryDto.getEmergencyCall(),alertCalledQueryDto.getDeviceId(),alertCalledQueryDto.getElevatorAddress(),
alertCalledQueryDto.getDistrict(),alertCalledQueryDto.getAlertType(),alertCalledQueryDto.getAlertSource(),alertCalledQueryDto.getAlertStage(),alertCalledQueryDto.getAlertStatus(),
sortParam,sortRule);
sortParam,sortRule, alertCalledQueryDto.getIds());
List<AlertCalledQueryDto> list = pageBean.getRecords();
String fileName = "处置记录" + System.currentTimeMillis();
......
......@@ -427,7 +427,7 @@ public class ElevatorController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/init", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "电梯信息放入es", notes = "电梯信息放入es")
public void init(@RequestParam(value = "num",required = false) Integer num) {
public ResponseModel<String> init(@RequestParam(value = "num",required = false) Integer num) {
Integer count = iElevatorService.selectUseInfoCount();
Integer times = 0;
if (ValidationUtil.isEmpty(num) && count != 0) {
......@@ -441,13 +441,16 @@ public class ElevatorController extends BaseController {
}
for(int i = 0; i <= times ; i ++ ) {
List<Map<String,Object>> mapList = iElevatorService.selectElevatorEsList(1,1000);
esElevatorService.saveEsElevator2ES(mapList);
List<Map<String,Object>> mapList = iElevatorService.selectElevatorEsList(0,1000);
if (!ObjectUtils.isEmpty(mapList)){
esElevatorService.saveEsElevator2ES(mapList);
}
// for (Elevator el:elevatorPage.getRecords()
// ) {
// esElevatorService.saveEsElevatorToES(el);
// }
}
return ResponseHelper.buildResponse("success");
}
......
......@@ -251,7 +251,7 @@ public class MaintenanceUnitController extends BaseController {
Object o = field.get(enterpriseInfo);
if (o != null) {
String name = NameUtils.camel2Underline(field.getName());
if ("city".equalsIgnoreCase(name) || "district".equalsIgnoreCase(name) || "qualification_level".equalsIgnoreCase(name)) {
if ("city".equalsIgnoreCase(name) ) {
String fileValue = (String) o;
enterpriseInfoQueryWrapper.eq(name, fileValue);
} else if ("credit_level".equalsIgnoreCase(name)) {
......@@ -264,7 +264,7 @@ public class MaintenanceUnitController extends BaseController {
// 此处由于写接口时表数据还未进行整理,所以此处先默认用文字做查询
enterpriseInfoQueryWrapper.like(name, "使用单位");
} else {
enterpriseInfoQueryWrapper.notLike(name, "使用单位");
enterpriseInfoQueryWrapper.like(name, "维保单位");
}
} else {
String fileValue = (String) o;
......@@ -301,7 +301,7 @@ public class MaintenanceUnitController extends BaseController {
Object o = field.get(enterpriseInfo);
if (o != null) {
String name = NameUtils.camel2Underline(field.getName());
if ("city".equalsIgnoreCase(name) || "district".equalsIgnoreCase(name) || "qualification_level".equalsIgnoreCase(name)) {
if ("city".equalsIgnoreCase(name) ) {
String fileValue = (String) o;
enterpriseInfoQueryWrapper.eq(name, fileValue);
} else if ("credit_level".equalsIgnoreCase(name)) {
......@@ -314,7 +314,7 @@ public class MaintenanceUnitController extends BaseController {
// 此处由于写接口时表数据还未进行整理,所以此处先默认用文字做查询
enterpriseInfoQueryWrapper.like(name, "使用单位");
} else {
enterpriseInfoQueryWrapper.notLike(name, "使用单位");
enterpriseInfoQueryWrapper.like(name, "维保单位");
}
} else {
String fileValue = (String) o;
......@@ -380,6 +380,7 @@ public class MaintenanceUnitController extends BaseController {
MaintenanceUnitDto maintenanceUnitVo = new MaintenanceUnitDto();
maintenanceUnitVo.setUnitName(ObjectUtils.isEmpty(list.get(0).get("unitName")) ? null :String.valueOf(list.get(0).get("unitName")));
maintenanceUnitVo.setAddress(ObjectUtils.isEmpty(list.get(0).get("address")) ? null :String.valueOf(list.get(0).get("address")));
maintenanceUnitVo.setSequenceNbr(ObjectUtils.isEmpty(list.get(0).get("sequenceNbr")) ? null : Long.valueOf(String.valueOf(list.get(0).get("sequenceNbr"))));
List<DutyPersonDto> dutyPersonList = new ArrayList<DutyPersonDto>();
DutyPersonDto principal = new DutyPersonDto();
principal.setDeptName("主要负责人1");
......
......@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.elevator.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.elevator.api.common.StringUtil;
import com.yeejoin.amos.boot.module.elevator.api.dto.ElevatorDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.ExportDto;
import com.yeejoin.amos.boot.module.elevator.api.entity.TemplateExport;
......@@ -15,7 +17,10 @@ import com.yeejoin.amos.boot.module.elevator.api.service.IRescueStationService;
import com.yeejoin.amos.boot.module.elevator.api.service.IUseUnitService;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.ElevatorServiceImpl;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.VoiceRecordFileServiceImpl;
import com.yeejoin.amos.boot.module.elevator.biz.utils.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.util.StopWatch;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
......@@ -25,6 +30,7 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.TemplateExportServiceImpl;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
......@@ -69,6 +75,12 @@ public class TemplateExportController extends BaseController {
@Autowired
VoiceRecordFileServiceImpl voiceRecordFileServiceImpl;
@Autowired
RedisUtil redisUtil;
@Autowired
Executor customExecutor;
/**
* 新增模板表
*
......@@ -177,7 +189,7 @@ public class TemplateExportController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "POST", value = "根据字段类型导出", notes = "根据字段类型导出")
@PostMapping("/exportByTypeParams")
public void exportByTypeParams(@RequestBody ExportDto exportDto, HttpServletResponse response) {
public void exportByTypeParams(@RequestBody ExportDto exportDto, HttpServletResponse response) throws Exception {
if (ValidationUtil.isEmpty(exportDto.getExportArray())
|| ValidationUtil.isEmpty(exportDto.getDataType())
|| ValidationUtil.isEmpty(exportDto.getFileName())
......@@ -206,9 +218,22 @@ public class TemplateExportController extends BaseController {
heads.add(tempList);
}
String fileName = exportDto.getFileName();
if("ELEVATOR".equals(exportDto.getExportType())) { // 查询电梯数据
list = elevatorServiceImpl.selectExportData(exportDto.getExportId());
sheetName = "电梯信息";
// 查询电梯数据
if("ELEVATOR".equals(exportDto.getExportType())) {
if(StringUtil.isNotEmpty(exportDto.getExportId())){
// 选择指定的行-导出逻辑
list = elevatorServiceImpl.selectExportData(exportDto.getExportId());
} else {
// 全部导出-导出逻辑,由于电梯为老存量数据,只是查看,故全部放到redis,解决全部导出时性能问题
if(redisUtil.hasKey(BizCommonConstant.OLD_ELEVATOR_REDIS_KEY)){
list = JSONObject.parseArray(redisUtil.get(BizCommonConstant.OLD_ELEVATOR_REDIS_KEY).toString(),ElevatorDto.class);
} else {
list = elevatorServiceImpl.selectExportData(exportDto.getExportId());
redisUtil.set(BizCommonConstant.OLD_ELEVATOR_REDIS_KEY,JSONObject.toJSONString(list));
}
}
ExcelUtil.exportWithMplThread2(response,fileName,list,heads,exportDto.getFileType(),customExecutor,10000);
return;
} else if("MAINTENANCE_COMPANY".equals(exportDto.getExportType())) { // 查询维保单位数据
list = iMaintenanceUnitService.selectExportData(exportDto.getExportId());
sheetName = "维保单位";
......@@ -222,7 +247,6 @@ public class TemplateExportController extends BaseController {
sheetName = "通话录音";
list = voiceRecordFileServiceImpl.selectExportData(exportDto.getExportId());
}
ExcelUtil.createTemplateWithHeaders(response, fileName, sheetName, list, heads, headstr, exportDto.getFileType());
ExcelUtil.createTemplateWithHeaders(response, fileName, sheetName, list,heads,headstr,exportDto.getFileType());
}
}
......@@ -7,11 +7,10 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.feign.AmosFeignService;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient;
import com.yeejoin.amos.boot.module.elevator.api.dto.DutyPersonDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.UseUnitDto;
import com.yeejoin.amos.boot.module.elevator.api.entity.Elevator;
import com.yeejoin.amos.boot.module.elevator.api.entity.UseUnit;
import com.yeejoin.amos.boot.module.elevator.api.service.IUseUnitService;
import com.yeejoin.amos.boot.module.elevator.api.dto.DutyPersonDto;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.ElevatorServiceImpl;
import com.yeejoin.amos.boot.module.elevator.biz.utils.BeanDtoVoUtils;
import io.swagger.annotations.Api;
......@@ -27,7 +26,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
......@@ -232,6 +230,8 @@ public class UseUnitController extends BaseController {
UseUnitDto useUnitVo = new UseUnitDto();
useUnitVo.setUseUnitName(ObjectUtils.isEmpty(useUnitMap.get("useUnitName")) ? null : String.valueOf(useUnitMap.get("useUnitName")));
useUnitVo.setAddress(ObjectUtils.isEmpty(useUnitMap.get("address")) ? null : String.valueOf(useUnitMap.get("address")));
useUnitVo.setSequenceNbr(ObjectUtils.isEmpty(useUnitMap.get("unitId")) ? null : Long.valueOf(useUnitMap.get(
"unitId").toString()));
List<DutyPersonDto> dutyPersonList = new ArrayList<DutyPersonDto>();
DutyPersonDto principal = new DutyPersonDto();
principal.setDeptName("主要负责人");
......
package com.yeejoin.amos.boot.module.elevator.biz.core.threadpool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Executor;
/**
* 线程池
*/
@Configuration
public class AmosThreadPool {
/**
* 日志记录器
*/
private static final Logger log = LoggerFactory.getLogger(AmosThreadPool.class);
/**
* 单例
*/
private static AmosThreadPool instance;
/**
* 执行服务
*/
private static ExecutorService executorService;
/**
* 获取单例
*
* @return
*/
public static AmosThreadPool getInstance() {
if (instance == null) {
synchronized (AmosThreadPool.class) {
if (instance == null) {
instance = new AmosThreadPool();
}
}
}
return instance;
}
static {
executorService = Executors
.newFixedThreadPool(20);
}
/**
* 执行线程
*
* @param task
*/
public void execute(Runnable task) {
executorService.execute(task);
@Bean
public Executor customExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 初始核心线程数
executor.setCorePoolSize(10);
// 最大线程数
executor.setMaxPoolSize(20);
// 任务队列容量
executor.setQueueCapacity(50);
// 线程名前缀
executor.setThreadNamePrefix("CustomExecutor-");
executor.initialize();
return executor;
}
}
package com.yeejoin.amos.boot.module.elevator.biz.listener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
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 com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.elevator.biz.utils.DesUtil;
import com.yeejoin.amos.boot.module.elevator.biz.utils.RedisUtil;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
......@@ -30,8 +13,15 @@ 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.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 java.util.*;
import java.util.stream.Collectors;
/**
* @Description: mqtt监听服务
......@@ -41,127 +31,123 @@ import lombok.extern.slf4j.Slf4j;
@Component
@Slf4j
public class BaseEnterpriseMqTtlListener extends EmqxListener {
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Autowired
RedisUtil redisUtil;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appkey;
@Autowired
RedisUtil redisUtil;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, 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")));
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
@Override
public void processMessage(String topic, MqttMessage message) throws Exception {
System.out.println(message);
JSONObject object = null;
try {
object = JSONObject.parseObject(message.toString());
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
platformTokenService.getToken();
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
// List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
// .map(i -> i.getAppCode()).collect(Collectors.toList());
FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(object.getLong("sequence_nbr"));
// FeignClientResult<Collection<CompanyModel>> cResult =
// Privilege.companyClient.queryAgencyTree(null);
String useCode = object.getString("use_code");
// if (useCode == null || !isUse(useCode, cResult.getResult())) {
if (cResult.getResult() == null) {
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(object.getString("use_unit"));
companyModel.setParentId(0L);
companyModel.setLevel("company");
String unitTypes = object.getString("unit_type");
companyModel.setCompanyType(unitTypes);
// companyModel.setSequenceNbr(object.getLong("sequence_nbr"));
companyModel.setCompanyCode(useCode);
if (object.getString("supervise_org_code") != null) {
FeignClientResult<HashMap<String, Object>> result = Privilege.companyClient
.queryByOrgcode(object.getString("supervise_org_code"));
// JSONObject parent =
// JSONObject.parseObject(JSONObject.toJSONString(result.getResult()));
if (result.getResult().get("sequenceNbr") != null) {
companyModel.setParentId(Long.valueOf(result.getResult().get("sequenceNbr").toString()));
}
}
FeignClientResult<CompanyModel> createResult = Privilege.companyClient.create(companyModel);
Long companySqr = createResult.getResult().getSequenceNbr();
String unitCode = object.getString("use_code");
if (unitCode == null || unitCode.length() < 6) {
log.error("公司统一信用代码长度不够6位");
throw new Exception("公司统一信用代码长度不够6位");
}
String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
if (uResult.getResult() == null) {
FeignClientResult<List<RoleModel>> roleListResult = Privilege.roleClient.queryRoleList(null, null);
List<RoleModel> allRoleList = roleListResult.getResult();
AgencyUserModel userModel = new AgencyUserModel();
userModel.setUserName(userName);
userModel.setRealName(userName);
userModel.setPassword(DesUtil.encode(userName, secretKey));
userModel.setRePassword(DesUtil.encode(userName, secretKey));
// userModel.setMobile(vo.getPhoneNo());
userModel.setLockStatus("UNLOCK");
// FeignClientResult<List<RoleModel>> list =
// Privilege.roleClient.queryRoleList("使用单位", "admin");
String[] unitTypeArray = unitTypes.split(",");
List<String> unitTypeList = Arrays.asList(unitTypeArray);
Set<String> roleNameSet = new HashSet<>();
Set<String> appCodesSet = new HashSet<>();
List<RoleModel> userRoleList = new ArrayList<>();
List<Long> roleIds = new ArrayList<>();
Map<Long, List<Long>> roleSeqMap = new HashMap<>();
for (String unitTypeStr : unitTypeList) {
DataDictionary unitType = iDataDictionaryService
.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, unitTypeStr));
String appCode = unitType.getTypeDesc() != null ? unitType.getTypeDesc() : "";
String[] appCodes = appCode.split(",");
Collections.addAll(appCodesSet, appCodes);
roleNameSet.add(unitType.getName());
userRoleList = allRoleList.stream().filter(r -> r.getRoleName().equals(unitType.getName()))
.collect(Collectors.toList());
for (RoleModel r : userRoleList) {
if (!roleIds.contains(r.getSequenceNbr())) {
roleIds.add(r.getSequenceNbr());
}
}
roleSeqMap.put(companySqr, roleIds);
}
userModel.setAppCodes(new ArrayList<>(appCodesSet));
userModel.setOrgRoleSeqs(roleSeqMap);
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(userModel);
String[] userIds = { userResult.getResult().getUserId() };
FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(object.getLong("sequence_nbr"));
// FeignClientResult<Collection<CompanyModel>> cResult =
// Privilege.companyClient.queryAgencyTree(null);
String useCode = object.getString("use_code");
// if (useCode == null || !isUse(useCode, cResult.getResult())) {
if (cResult.getResult() == null) {
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(object.getString("use_unit"));
companyModel.setParentId(0L);
companyModel.setLevel("company");
String unitTypes = object.getString("unit_type");
companyModel.setCompanyType(unitTypes);
// companyModel.setSequenceNbr(object.getLong("sequence_nbr"));
companyModel.setCompanyCode(useCode);
if (object.getString("supervise_org_code") != null) {
FeignClientResult<HashMap<String, Object>> result = Privilege.companyClient
.queryByOrgcode(object.getString("supervise_org_code"));
// JSONObject parent =
// JSONObject.parseObject(JSONObject.toJSONString(result.getResult()));
if (result.getResult().get("sequenceNbr") != null) {
companyModel.setParentId(Long.valueOf(result.getResult().get("sequenceNbr").toString()));
}
}
FeignClientResult<CompanyModel> createResult = Privilege.companyClient.create(companyModel);
Long companySqr = createResult.getResult().getSequenceNbr();
String unitCode = object.getString("use_code");
if (unitCode == null || unitCode.length() < 6) {
log.error("公司统一信用代码长度不够6位");
throw new Exception("公司统一信用代码长度不够6位");
}
String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
if (uResult.getResult() == null) {
FeignClientResult<List<RoleModel>> roleListResult = Privilege.roleClient.queryRoleList(null, null);
List<RoleModel> allRoleList = roleListResult.getResult();
AgencyUserModel userModel = new AgencyUserModel();
userModel.setUserName(userName);
userModel.setRealName(userName);
userModel.setPassword(DesUtil.encode(userName, secretKey));
userModel.setRePassword(DesUtil.encode(userName, secretKey));
// userModel.setMobile(vo.getPhoneNo());
userModel.setLockStatus("UNLOCK");
// FeignClientResult<List<RoleModel>> list =
// Privilege.roleClient.queryRoleList("使用单位", "admin");
String[] unitTypeArray = unitTypes.split(",");
List<String> unitTypeList = Arrays.asList(unitTypeArray);
Set<String> roleNameSet = new HashSet<>();
Set<String> appCodesSet = new HashSet<>();
List<RoleModel> userRoleList = new ArrayList<>();
List<Long> roleIds = new ArrayList<>();
Map<Long, List<Long>> roleSeqMap = new HashMap<>();
for (String unitTypeStr : unitTypeList) {
DataDictionary unitType = iDataDictionaryService
.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, unitTypeStr));
String appCode = unitType.getTypeDesc() != null ? unitType.getTypeDesc() : "";
String[] appCodes = appCode.split(",");
Collections.addAll(appCodesSet, appCodes);
roleNameSet.add(unitType.getName());
userRoleList = allRoleList.stream().filter(r -> r.getRoleName().equals(unitType.getName()))
.collect(Collectors.toList());
for (RoleModel r : userRoleList) {
if (!roleIds.contains(r.getSequenceNbr())) {
roleIds.add(r.getSequenceNbr());
}
}
roleSeqMap.put(companySqr, roleIds);
}
userModel.setAppCodes(new ArrayList<>(appCodesSet));
userModel.setOrgRoleSeqs(roleSeqMap);
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(userModel);
String[] userIds = {userResult.getResult().getUserId()};
// if (groupSeq != null) {
// Privilege.groupUserClient.create(groupSeq, Arrays.asList(userIds));
// }
}
}
}
}
}
}
private boolean isUse(String useCode, Collection<CompanyModel> companys) {
for (Object obj : companys) {
String json = JSONObject.toJSONString(obj);
CompanyModel companyMode = JSONObject.toJavaObject(JSONObject.parseObject(json), CompanyModel.class);
if (useCode.equals(companyMode.getCompanyCode())) {
return true;
} else if (companyMode.getChildren() != null) {
return isUse(useCode, companyMode.getChildren());
}
}
return false;
}
private boolean isUse(String useCode, Collection<CompanyModel> companys) {
for (Object obj : companys) {
String json = JSONObject.toJSONString(obj);
CompanyModel companyMode = JSONObject.toJavaObject(JSONObject.parseObject(json), CompanyModel.class);
if (useCode.equals(companyMode.getCompanyCode())) {
return true;
} else if (companyMode.getChildren() != null) {
return isUse(useCode, companyMode.getChildren());
}
}
return false;
}
}
......@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.StartPlatformTokenService;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -36,16 +37,14 @@ public class CarcylUnitInspectMqTtlListener extends EmqxListener {
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appkey;
@Autowired
RedisUtil redisUtil;
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, MqttMessage message) throws Exception {
......@@ -56,9 +55,7 @@ public class CarcylUnitInspectMqTtlListener extends EmqxListener {
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
RequestContext.setAppKey(appkey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
......
......@@ -5,18 +5,16 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.elevator.api.service.IEquipmentCategoryService;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.elevator.flc.api.service.IRegUnitInfoService;
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.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.component.emq.EmqxListener;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@Component
......@@ -40,11 +38,6 @@ public class PlatformUserTopicMessage extends EmqxListener {
@Autowired
RedisUtils redisUtil;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appKey;
@Autowired
IEquipmentCategoryService equipmentCategoryService;
......@@ -52,11 +45,12 @@ public class PlatformUserTopicMessage extends EmqxListener {
@Autowired
IRegUnitInfoService regUnitInfoService;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, MqttMessage message) {
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
JSONObject jsonObject = JSON.parseObject(message.toString());
JSONObject result = jsonObject.getJSONObject("result");
JSONObject dataResult = result.getJSONObject("result");
......
......@@ -5,10 +5,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.yeejoin.amos.boot.module.elevator.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.elevator.biz.service.impl.TzBaseEnterpriseInfoServiceImpl;
import com.yeejoin.amos.boot.module.elevator.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.elevator.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import lombok.extern.slf4j.Slf4j;
......@@ -16,14 +16,15 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
@Component
@Slf4j
......@@ -40,11 +41,8 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
@Autowired
RedisUtil redisUtil;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appKey;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String s, MqttMessage message) throws Exception {
......@@ -58,15 +56,13 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
//判断库中业务tz_base_enterprise_info是否存在
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code",object.getString("unit_code"));
queryWrapper.eq("use_code", object.getString("unit_code"));
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = tzBaseEnterpriseInfoService.getOne(queryWrapper);
if(!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)){
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
accessFeignService.updateSyncCompanyState(object.getString("sequence_nbr"));
return;
}
......@@ -95,14 +91,14 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
//业务表更新条件构造器
UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("use_code",object.getString("unit_code"));
updateWrapper.eq("use_code", object.getString("unit_code"));
String regCode = object.getString("reg_code");
CompanyModel supervisePrivilegeCompanyModel;
if (!ValidationUtil.isEmpty(regCode)) {
supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode(regCode).getResult();
if(ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)){
if (ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)) {
supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode("610000").getResult();
if (ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)) {
......@@ -120,37 +116,37 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
tzBaseEnterpriseInfo.setSuperviseOrgCode(supervisePrivilegeCompanyModel.getOrgCode());
tzBaseEnterpriseInfo.setSuperviseOrgName(supervisePrivilegeCompanyModel.getCompanyName());
if(ValidationUtil.isEmpty(tzBaseEnterpriseInfo.getUnitType())){
if (ValidationUtil.isEmpty(tzBaseEnterpriseInfo.getUnitType())) {
tzBaseEnterpriseInfo.setUnitType("");
}
try {
if (tzBaseEnterprisePrivilegeInfo == null ) {
if (tzBaseEnterprisePrivilegeInfo == null) {
tzBaseEnterpriseInfoService.save(tzBaseEnterpriseInfo);
accessFeignService.updateSyncCompanyState(object.getString("sequence_nbr"));
return;
}
} catch(Exception e) {
} catch (Exception e) {
logger.error("【" + object.getString("unit_name") + "】许可信息同步【失败】:" + e.getMessage());
}
}
public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels,Map<String, CompanyModel> map){
if(companyModels == null){
public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels, Map<String, CompanyModel> map) {
if (companyModels == null) {
return map;
}
Iterator iter = companyModels.iterator();
while(iter.hasNext()){
while (iter.hasNext()) {
String json = JSON.toJSONString(iter.next());
CompanyModel companyModel = JSON.parseObject(json,CompanyModel.class);
CompanyModel companyModel = JSON.parseObject(json, CompanyModel.class);
String code = companyModel.getCompanyCode();
if(code.length() >=6){
if (code.length() >= 6) {
code = code.substring(0, 6);
}
map.put(code,companyModel);
getCompanyInfoMap(companyModel.getChildren(),map);
map.put(code, companyModel);
getCompanyInfoMap(companyModel.getChildren(), map);
}
return map;
}
......
......@@ -8,15 +8,31 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.api.service.ISourceFileService;
import com.yeejoin.amos.boot.module.elevator.api.dto.*;
import com.yeejoin.amos.boot.module.elevator.api.entity.*;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledFormDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledObjsDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledRecordDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertHandlerDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertHandlerInfoDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertPaperInfoDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.FormValue;
import com.yeejoin.amos.boot.module.elevator.api.dto.TzsCitInfoDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.WechatMyBusinessListDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.WechatMyBussinessDto;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertCalled;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.elevator.api.entity.DispatchPaper;
import com.yeejoin.amos.boot.module.elevator.api.entity.DispatchTask;
import com.yeejoin.amos.boot.module.elevator.api.entity.Elevator;
import com.yeejoin.amos.boot.module.elevator.api.entity.TzsCitInfo;
import com.yeejoin.amos.boot.module.elevator.api.entity.VoiceRecordFile;
import com.yeejoin.amos.boot.module.elevator.api.enums.AlertStageEnums;
import com.yeejoin.amos.boot.module.elevator.api.enums.DispatchPaperEnums;
import com.yeejoin.amos.boot.module.elevator.api.enums.EquipmentClassifityEnum;
......@@ -41,7 +57,15 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
......@@ -141,7 +165,7 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
alertCalledDto.setProvince(String.valueOf(map.get("province")));
alertCalledDto.setCity(String.valueOf(map.get("city")));
alertCalledDto.setDistrict(String.valueOf(map.get("district")));
alertCalledDto.setUseStatus(Integer.valueOf(String.valueOf(map.get("useStatus"))));
alertCalledDto.setUseStatus(String.valueOf(map.get("useStatus")));
alertCalledDto.setUseSiteCategory(String.valueOf(map.get("useSiteCategory")));
alertCalledDto.setUseUnit(String.valueOf(map.get("useUnit")));
alertCalledDto.setRegionCode(String.valueOf(map.get("regionCode")));
......@@ -161,18 +185,6 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
// alertCalledDto.setUseUnit(elevator.getUseUnit());
// alertCalledDto.setRegionCode(elevator.getRegionCode());
// }
if(!ValidationUtil.isEmpty(alertCalledDto.getUseSiteCategory())) {
LambdaQueryWrapper<DataDictionary> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DataDictionary::getCode, alertCalledDto.getUseSiteCategory());
DataDictionary dataDictionary = iDataDictionaryService.getOne(wrapper);
if (!ValidationUtil.isEmpty(dataDictionary)) {
alertCalledDto.setUseSiteCategory(dataDictionary.getName());
} else {
alertCalledDto.setUseSiteCategory("");
}
} else {
alertCalledDto.setUseSiteCategory("");
}
String voiceRecord = "";
VoiceRecordFile temp = voiceRecordFileServiceImpl.getOne(new LambdaQueryWrapper<VoiceRecordFile>().eq(VoiceRecordFile::getAlertId,id).eq(VoiceRecordFile::getAlertStageCode,"860").orderByAsc(VoiceRecordFile::getRecDate));
if(temp != null) {
......@@ -232,16 +244,16 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
alertCalledDto.setProvince(elevator.getProvince());
alertCalledDto.setCity(elevator.getCity());
alertCalledDto.setDistrict(elevator.getDistrict());
alertCalledDto.setUseStatus(elevator.getUseStatus());
alertCalledDto.setUseStatus(String.valueOf(elevator.getUseStatus()));
alertCalledDto.setUseSiteCategory(elevator.getUseSiteCategory());
alertCalledDto.setUseUnit(elevator.getUseUnit());
alertCalledDto.setRegionCode(elevator.getRegionCode());
}
String voiceRecord = "";
VoiceRecordFile temp = voiceRecordFileServiceImpl.getOne(new LambdaQueryWrapper<VoiceRecordFile>().eq(VoiceRecordFile::getAlertId,id).eq(VoiceRecordFile::getAlertStageCode,"860").orderByAsc(VoiceRecordFile::getRecDate));
if(temp != null) {
voiceRecord = temp.getFilePath();
}
// VoiceRecordFile temp = voiceRecordFileServiceImpl.getOne(new LambdaQueryWrapper<VoiceRecordFile>().eq(VoiceRecordFile::getAlertId,id).eq(VoiceRecordFile::getAlertStageCode,"860").orderByAsc(VoiceRecordFile::getRecDate));
// if(temp != null) {
// voiceRecord = temp.getFilePath();
// }
AlertCalledFormDto alertCalledFormVo = new AlertCalledFormDto(alertCalledDto, formValue,voiceRecord);
return alertCalledFormVo;
}
......@@ -262,7 +274,8 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
String alertStage,
String alertStatus,
String sortParam,
String sortRule
String sortRule,
List<String> ids
) {
//获取当前登陆人所在单位的下的所有接警人员的userId
Set<String> userIds = new HashSet<>();
......@@ -280,7 +293,7 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
Page<List<AlertCalledQueryDto>>list = alertCalledMapper.queryAlertListByQueryDto(page,
workOrderNumber,creator,emergency,emergencyTimeStart,
emergencyTimeEnd,emergencyCall,deviceId,elevatorAddress,district,alertType,
alertSource,alertStage,alertStatus,sortParam,sortRule,userIds);
alertSource,alertStage,alertStatus,sortParam,sortRule,userIds,ids);
Page<AlertCalledQueryDto> page1 = new Page<>();
List<AlertCalledQueryDto> resultDtoList = JSONArray.parseArray(JSONArray.toJSONString(list.getRecords()),AlertCalledQueryDto.class);
page1.setCurrent(page.getCurrent());
......
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.elevator.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
......@@ -18,8 +19,6 @@ import com.yeejoin.amos.boot.module.elevator.api.dto.RescueProcessDto;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.elevator.api.entity.DispatchPaper;
import com.yeejoin.amos.boot.module.elevator.api.entity.DispatchTask;
import com.yeejoin.amos.boot.module.elevator.api.entity.Elevator;
import com.yeejoin.amos.boot.module.elevator.api.entity.MaintenanceUnit;
import com.yeejoin.amos.boot.module.elevator.api.enums.AlertStageEnums;
import com.yeejoin.amos.boot.module.elevator.api.enums.DispatchPaperEnums;
import com.yeejoin.amos.boot.module.elevator.api.enums.TzsCommonParam;
......@@ -181,7 +180,7 @@ public class DispatchPaperServiceImpl extends BaseService<DispatchPaperDto,Dispa
Map<String,Object> map = elevatorServiceImpl.selectByAlertId(alertId);
if(!ObjectUtils.isEmpty(map.get("sequenceNbr"))) {
List<Map<String,Object>> mapList = elevatorMapper.selectMtByAlertId(String.valueOf(map.get("sequenceNbr")));
if(ObjectUtils.isEmpty(mapList)){
if(!ObjectUtils.isEmpty(mapList) && CollectionUtils.isEmpty(mapList)){
dispatchPaper.setRepairOrgCreditCode(String.valueOf(mapList.get(0).get("useCode")));
}
}
......
......@@ -24,21 +24,18 @@ import com.yeejoin.amos.boot.module.elevator.api.entity.AlertCalled;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.elevator.api.entity.DispatchPaper;
import com.yeejoin.amos.boot.module.elevator.api.entity.DispatchTask;
import com.yeejoin.amos.boot.module.elevator.api.entity.Elevator;
import com.yeejoin.amos.boot.module.elevator.api.entity.MaintenanceUnit;
import com.yeejoin.amos.boot.module.elevator.api.entity.RescueProcess;
import com.yeejoin.amos.boot.module.elevator.api.entity.RescueStation;
import com.yeejoin.amos.boot.module.elevator.api.entity.Template;
import com.yeejoin.amos.boot.module.elevator.api.entity.UseUnit;
import com.yeejoin.amos.boot.module.elevator.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.elevator.api.entity.WechatRelation;
import com.yeejoin.amos.boot.module.elevator.api.enums.AlertStageEnums;
import com.yeejoin.amos.boot.module.elevator.api.enums.DispatchPaperEnums;
import com.yeejoin.amos.boot.module.elevator.api.enums.TzsCommonParam;
import com.yeejoin.amos.boot.module.elevator.api.mapper.DispatchTaskMapper;
import com.yeejoin.amos.boot.module.elevator.api.service.IDispatchTaskService;
import com.yeejoin.amos.boot.module.elevator.api.service.IMaintenanceUnitService;
import com.yeejoin.amos.boot.module.elevator.api.service.IRescueStationService;
import com.yeejoin.amos.boot.module.elevator.api.service.IUseUnitService;
import com.yeejoin.amos.boot.module.elevator.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.elevator.biz.utils.BeanDtoVoUtils;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -89,10 +86,7 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
AlertFormValueServiceImpl iAlertFormValueService;
@Autowired
IUseUnitService iUseUnitService;
@Autowired
IMaintenanceUnitService iMaintenanceUnitService;
ITzBaseEnterpriseInfoService enterpriseInfoService;
@Autowired
IRescueStationService iRescueStationService;
......@@ -185,12 +179,7 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
// Elevator elevator = elevatorServiceImpl.selectByAlertId(alertId);
Map<String,Object> map = elevatorServiceImpl.selectByAlertId(alertId);
String address = map.get("address") == null ? "" : String.valueOf(map.get("address"));
String useSiteCategory = "";
if (!ValidationUtil.isEmpty(String.valueOf(map.get("useSiteCategory")))) {
String categoryCode = String.valueOf(map.get("useSiteCategory"));
DataDictionary categoryDict = iDataDictionaryService.getByCode(categoryCode, "USE_SITE_CATEGORY");
useSiteCategory = ValidationUtil.isEmpty(categoryDict) ? "" : categoryDict.getName();
}
String useSiteCategory = map.get("useSiteCategory") == null ? "" : String.valueOf(map.get("useSiteCategory"));
String useUnit = String.valueOf(map.get("useUnit"));
content = content.replace("$call_time",createTime).replace("$address",address).replace("$rescue_code",rescueCode).replace("$use_site_category",useSiteCategory);
String typeCode = "";
......@@ -835,10 +824,11 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
flag = this.save(dispatchTask);
if(flag) { // 创建好派遣任务单以后根据任务单类型修改派遣单信息
// 社会信用代码 根据类型查找放入
MaintenanceUnit maintenanceUnit = null;
TzBaseEnterpriseInfo maintenanceUnit;
switch (dispatchTask.getOrgTypeCode()) {
case "useUnit": // 使用单位
UseUnit useUnit = iUseUnitService.getById(dispatchTask.getResponseOrgId());
TzBaseEnterpriseInfo useUnit =
enterpriseInfoService.getById(dispatchTask.getResponseOrgId());
dispatchPaper.setUseOrgId(useUnit.getSequenceNbr());
dispatchPaper.setUseOrgTaskId(dispatchTask.getSequenceNbr());
if(AlertStageEnums.getEnumById(dispatchPaper.getAlertCode()).getCode().equals(AlertStageEnums.KRJY.getCode())) {
......@@ -851,13 +841,13 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
}
break;
case "repairUnit":
maintenanceUnit = iMaintenanceUnitService.getById(dispatchTask.getResponseOrgId());
maintenanceUnit = enterpriseInfoService.getById(dispatchTask.getResponseOrgId());
dispatchPaper.setRepairOrgId(maintenanceUnit.getSequenceNbr());
dispatchPaper.setRepairOrgTaskId(dispatchTask.getSequenceNbr());
break;
case "levelOneUnit":
maintenanceUnit = iMaintenanceUnitService.getById(dispatchTask.getResponseOrgId());
String socialCreditCode = maintenanceUnit.getSocialCreditCode();
maintenanceUnit = enterpriseInfoService.getById(dispatchTask.getResponseOrgId());
String socialCreditCode = maintenanceUnit.getUseCode();
dispatchPaper.setRepairOrgId(maintenanceUnit.getSequenceNbr());
dispatchPaper.setRepairOrgTaskId(dispatchTask.getSequenceNbr());
// 修改动态字段
......
package com.yeejoin.amos.boot.module.elevator.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -450,7 +451,7 @@ public class ESElevatorServiceImpl {
if(!ValidationUtil.isEmpty(keyword)) {
BoolQueryBuilder qb0 = QueryBuilders.boolQuery().
must(QueryBuilders.termQuery("rescueCode", keyword));
must(QueryBuilders.matchQuery("rescueCode.keyword", keyword));
boolMust.should(qb0);
BoolQueryBuilder qb1 = QueryBuilders.boolQuery().
must(QueryBuilders.matchQuery("address", keyword));
......@@ -486,6 +487,7 @@ public class ESElevatorServiceImpl {
catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
result.setRecords(list);
result.setTotal(total);
......
package com.yeejoin.amos.boot.module.elevator.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.elevator.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.elevator.api.dto.ElevatorDto;
import com.yeejoin.amos.boot.module.elevator.biz.utils.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class ElevatorAppRunner implements ApplicationRunner {
@Autowired
RedisUtil redisUtil;
@Autowired
ElevatorServiceImpl elevatorServiceImpl;
@Override
public void run(ApplicationArguments args) {
// 缓存电梯数据
List<ElevatorDto> list = elevatorServiceImpl.selectExportData(null);
redisUtil.set(BizCommonConstant.OLD_ELEVATOR_REDIS_KEY, JSONObject.toJSONString(list));
}
}
......@@ -13,19 +13,21 @@ import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.biz.service.impl.SourceFileServiceImpl;
import com.yeejoin.amos.boot.module.elevator.api.dto.*;
import com.yeejoin.amos.boot.module.elevator.api.entity.*;
import com.yeejoin.amos.boot.module.elevator.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.ElevatorDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.ElevatorDtoNew;
import com.yeejoin.amos.boot.module.elevator.api.dto.ElevatorInsureDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.ElevatorWlInfoDto;
import com.yeejoin.amos.boot.module.elevator.api.entity.Elevator;
import com.yeejoin.amos.boot.module.elevator.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.elevator.api.enums.TzsCommonParam;
import com.yeejoin.amos.boot.module.elevator.api.mapper.ElevatorMapper;
import com.yeejoin.amos.boot.module.elevator.api.service.IElevatorInsureRelationService;
import com.yeejoin.amos.boot.module.elevator.api.service.IElevatorService;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
......@@ -153,7 +155,7 @@ public class ElevatorServiceImpl extends BaseService<ElevatorDto, Elevator, Elev
if(useSiteCategory != null) {
elevatorDto.setUseSiteCategoryName(useSiteCategory.getName());
}
if(elevatorDto.getUseStatus() == 1) {
if("1".equals(elevatorDto.getUseStatus())) {
elevatorDto.setUseStatusStr("在用");
} else {
elevatorDto.setUseStatusStr("停用");
......@@ -212,8 +214,9 @@ public class ElevatorServiceImpl extends BaseService<ElevatorDto, Elevator, Elev
public Map<String,Object> selectByAlertId(Long alertId) {
AlertCalledDto alertCalledDto = alertCalledServiceImpl.queryBySeq(alertId);
if (ValidationUtil.isEmpty(alertCalledDto)
|| ValidationUtil.isEmpty(alertCalledDto.getDeviceId()))
throw new BadRequest("警情不存在或者设备编码不存在");
|| ValidationUtil.isEmpty(alertCalledDto.getDeviceId())) {
throw new BadRequest("警情不存在或者设备编码不存在");
}
// 设备类型 和 编码 确定设备的使用单位或者维保单位
String equipmentClassificationCode = alertCalledDto.getEquipmentClassificationCode();
String deviceId = alertCalledDto.getEquipmentId();
......@@ -224,8 +227,9 @@ public class ElevatorServiceImpl extends BaseService<ElevatorDto, Elevator, Elev
// LambdaQueryWrapper<Elevator> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(Elevator::getSequenceNbr, deviceId);
// Elevator elevator = this.getOne(queryWrapper);
if (ValidationUtil.isEmpty(map))
throw new BadRequest("设备未找到");
if (ValidationUtil.isEmpty(map)) {
throw new BadRequest("设备未找到");
}
return map;
}
......
package com.yeejoin.amos.boot.module.elevator.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.elevator.api.dto.DispatchPaperFormDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.DispatchTaskDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.RescueProcessDto;
......@@ -60,6 +63,8 @@ public class RescueProcessServiceImpl extends BaseService<RescueProcessDto,Rescu
@Autowired
AlertCalledServiceImpl iAlertCalledService;
@Autowired
RedisUtils redisUtils;
/**
* 分页查询
*/
......@@ -173,6 +178,11 @@ public class RescueProcessServiceImpl extends BaseService<RescueProcessDto,Rescu
repairConsultServiceImpl.saveRepairConsultByAlertIdType(dispatchTask.getAlertId(),"PQ", dispatchTask.getSequenceNbr(),sendUser);
}
} else {
if (Boolean.TRUE.equals(rescueProcessDto.getCasualtiesStatus())){
updateMessage(rescueProcessDto, "injured_num");
updateMessage(rescueProcessDto, "die_num");
redisUtils.del(RedisKey.TZS_ALERTCALLED_ID+rescueProcessDto.getAlertId());
}
rescueProcessDto.setDispatchTime(null);
rescueProcessDto.setDispatchStatus(null);
rescueProcessDto.setDispatchUserId(null);
......@@ -253,6 +263,19 @@ public class RescueProcessServiceImpl extends BaseService<RescueProcessDto,Rescu
return flag;
}
private void updateMessage(RescueProcessDto rescueProcessDto, String fieldCode){
LambdaQueryWrapper<AlertFormValue> lambda = new QueryWrapper<AlertFormValue>().lambda();
lambda.eq(AlertFormValue::getAlertCalledId, rescueProcessDto.getAlertId());
lambda.eq(AlertFormValue::getFieldCode, fieldCode);
List<AlertFormValue> alertFormValues = iAlertFormValueService.getBaseMapper().selectList(lambda);
AlertFormValue alertFormValue = alertFormValues.get(0);
if ("die_num".equals(fieldCode)){
alertFormValue.setFieldValue(rescueProcessDto.getDieNum());
}else {
alertFormValue.setFieldValue(rescueProcessDto.getCasualtiesInfo());
}
iAlertFormValueService.updateById(alertFormValue);
}
@Override
public Boolean updateByAlertId(RescueProcessDto rescueProcessDto) {
QueryWrapper<RescueProcess> templateQueryWrapper = new QueryWrapper<>();
......
package com.yeejoin.amos.boot.module.elevator.biz.service.impl;
import com.yeejoin.amos.boot.module.elevator.biz.utils.RedisUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
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 com.yeejoin.amos.boot.module.elevator.biz.utils.RedisUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
@Service
public class StartPlatformTokenService {
@Value("${admin.product}")
String product;
@Value("${admin.appkey}")
String appkey;
@Value("${admin.user}")
String user;
@Value("${admin.password}")
String password;
@Value("${amos.secret.key}")
String secretKey;
@Autowired
RedisUtil redisUtil;
@Autowired
RedisUtil redisUtil;
@Autowired
AmosRequestContext amosRequestContext;
@Autowired
AmosRequestContext amosRequestContext;
public void getToken() {
RequestContext.setProduct(product);
RequestContext.setAppKey(appkey);
String token = amosRequestContext.getToken();
System.out.println("token:" + token);
RequestContext.setToken(token);
redisUtil.set("platform_token", token);
}
public void getToken() {
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setToken(amosRequestContext.getToken());
}
}
......@@ -11,8 +11,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.elevator.flc.biz.service.impl.RegUnitIcServiceImpl;
import com.yeejoin.amos.boot.module.elevator.flc.biz.service.impl.RegUnitInfoServiceImpl;
import com.yeejoin.amos.boot.module.elevator.api.dto.BaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.EquEnterDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.TzBaseEnterpriseInfoDto;
......@@ -21,7 +19,6 @@ import com.yeejoin.amos.boot.module.elevator.api.entity.PageParam;
import com.yeejoin.amos.boot.module.elevator.api.entity.SpeUseUnit;
import com.yeejoin.amos.boot.module.elevator.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.elevator.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.elevator.api.service.IBaseUnitLicenceService;
import com.yeejoin.amos.boot.module.elevator.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.elevator.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.elevator.flc.api.dto.RegUnitIcDto;
......@@ -30,19 +27,18 @@ import com.yeejoin.amos.boot.module.elevator.flc.api.entity.RegUnitIc;
import com.yeejoin.amos.boot.module.elevator.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.elevator.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.boot.module.elevator.flc.api.mapper.RegUnitInfoMapper;
import com.yeejoin.amos.boot.module.elevator.flc.biz.service.impl.RegUnitIcServiceImpl;
import com.yeejoin.amos.boot.module.elevator.flc.biz.service.impl.RegUnitInfoServiceImpl;
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.IdPasswordAuthModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -58,445 +54,425 @@ import java.util.stream.Collectors;
*/
@Service
public class TzBaseEnterpriseInfoServiceImpl
extends BaseService<TzBaseEnterpriseInfoDto, TzBaseEnterpriseInfo, TzBaseEnterpriseInfoMapper>
implements ITzBaseEnterpriseInfoService {
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Value("${admin.product.web}")
String webProduct;
@Value("${admin.appkey}")
String appkey;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
BaseUnitLicenceServiceImpl baseUnitLicenceService;
@Autowired
RegUnitIcServiceImpl regUnitIcService;
@Autowired
@Lazy
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
private IBaseUnitLicenceService iBaseUnitLicenceService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
@Autowired
private AccessFeignService accessFeignService;
@Autowired
private ITzBaseEnterpriseInfoService tzBaseEnterpriseInfoService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${tzs.admin.name:tzs_admin}")
private String tzsAdminName;
@Value("${tzs.admin.pwd:a1234567}")
private String tzsAdminPwd;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
/**机器人用户token缓存key */
public static final String TZS_USER_TOKEN = "TZS_USER_TOKEN";
/**
* 企业管理员变更缓存key前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
List<String> orgCodeList = new ArrayList<>();
if (tzBaseEnterpriseInfoDto.getSuperviseKey() != null) {
FeignClientResult<CompanyModel> result = Privilege.companyClient
.seleteOne(Long.valueOf(tzBaseEnterpriseInfoDto.getSuperviseKey()));
if (result.getResult() != null) {
tzBaseEnterpriseInfoDto.setSuperviseOrgCode(result.getResult().getOrgCode());
}
}
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
List<JSONObject> companyType1 = equipmentCategoryService.getCompanyType();
if (!ValidationUtil.isEmpty(companyType1)) {
for (JSONObject jsonObject : companyType1) {
String orgCode = jsonObject.getString("orgCode");
if (!ValidationUtil.isEmpty(orgCode)) {
orgCodeList.add(orgCode);
}
}
}
return this.baseMapper.pageList(page, tzBaseEnterpriseInfoDto,orgCodeList);
}
@Override
public TzBaseEnterpriseInfoDto detail(Long id) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = this.getById(id);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
tzBaseEnterpriseInfoDto.setSafetyTwoPhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyTwoPhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyTwoPhoto()));
tzBaseEnterpriseInfoDto.setSafetyOnePhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyOnePhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyOnePhoto()));
tzBaseEnterpriseInfoDto.setUnitBusinessLicense(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitBusinessLicense()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitBusinessLicense()));
tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur()));
tzBaseEnterpriseInfoDto.setEquipCategory(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getEquipCategory()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()));
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 管理员信息
RegUnitInfo regUnitInfo = regUnitInfoService.getOne(
new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
if (regUnitInfo != null) {
BeanUtils.copyProperties(regUnitInfo, regUnitInfoDto);
}
regUnitInfoDto.setAdminIdCardPhoto((ValidationUtil.isEmpty(regUnitInfo)||ValidationUtil.isEmpty(regUnitInfo.getAdminIdCardPhoto())) ? new ArrayList() : JSON.parseArray(regUnitInfo.getAdminIdCardPhoto()));
tzBaseEnterpriseInfoDto.setRegUnitInfoDto(regUnitInfoDto);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public TzBaseEnterpriseInfoDto getInfoByUseCode(String useCode) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_code", useCode));
return ObjectUtils.isEmpty(tzBaseEnterpriseInfo) ? null : getDetail(tzBaseEnterpriseInfo);
}
private TzBaseEnterpriseInfoDto getDetail(TzBaseEnterpriseInfo tzBaseEnterpriseInfo){
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = detail(tzBaseEnterpriseInfo.getSequenceNbr());
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
Map<String, Object> resultMap = accessFeignService.getData(tzBaseEnterpriseInfoDto.getUseCode()).getResult();
if (!ValidationUtil.isEmpty(resultMap)) {
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0, area.indexOf("市") + 1);
String district = area.substring(city.length());
if (district.equals("高新区")) {
district = "雁塔区";
}
String industryName = "";
DataDictionary dataDictionary = iDataDictionaryService.getByCode(String.valueOf(resultMap.get("industryCode")), "HYXLDM");
if (!ValidationUtil.isEmpty(dataDictionary)) {
industryName = dataDictionary.getName();
}
String approveDate = String.valueOf(resultMap.get("approval_time"));
approveDate = approveDate.contains("年") ? approveDate.replace("年", "-") : approveDate;
approveDate = approveDate.contains("月") ? approveDate.replace("月", "-") : approveDate;
approveDate = approveDate.contains("日") ? approveDate.replace("日", "-") : approveDate;
regUnitIcDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
String approve = approveDate.substring(0, 10) + "核准";
tzBaseEnterpriseInfoDto.setApproval(approve);
try {
regUnitIcDto.setApprovedDate(DateUtils.dateParse(approveDate, "yyyy-MM-dd"));
} catch (ParseException e) {
e.printStackTrace();
}
regUnitIcDto.setUnitName(String.valueOf(resultMap.get("unitName")));
regUnitIcDto.setRegisteredOrgan(String.valueOf(resultMap.get("registration_authority")));
for (DataDictionary djjg : iDataDictionaryService.getByType("DJJG")) {
if(djjg.getName().equals(resultMap.get("registration_authority"))){
regUnitIcDto.setRegisteredOrganCode(djjg.getSequenceNbr().toString());
}
}
regUnitIcDto.setBusinessState(String.valueOf(resultMap.get("operating_status")));
regUnitIcDto.setProvince("陕西省");
regUnitIcDto.setCity(city);
regUnitIcDto.setDistrict(district);
regUnitIcDto.setStree(String.valueOf(resultMap.get("street")));
regUnitIcDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitIcDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitIcDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
regUnitIcDto.setIndustryName(industryName);
regUnitIcDto.setRegisterAddress("陕西省/" + city + "/" + district);
ArrayList<Object> objects = new ArrayList<>();
objects.add("陕西省");
objects.add(city);
objects.add(district);
regUnitIcDto.setRegisterAddressList(objects);
regUnitIcDto.setIsNotAccess("1");
} else {
regUnitIcDto = tzBaseEnterpriseInfoDto.getRegUnitIcDto();
regUnitIcDto.setIsNotAccess("0");
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
tzBaseEnterpriseInfoDto.setApprovalTime(regUnitIcDto.getApprovedDate());
return tzBaseEnterpriseInfoDto;
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, String companyName) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit", companyName));
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = getDetail(tzBaseEnterpriseInfo);
ArrayList<TzBaseEnterpriseInfoDto> result = new ArrayList<>();
result.add(tzBaseEnterpriseInfoDto);
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
return page.setRecords(result);
}
@Override
public List<EquEnterDto> getInfoByUseUnit(String userUnit) {
return tzBaseEnterpriseInfoMapper.getInfoByUseUnit(userUnit);
}
@Override
public TzBaseEnterpriseInfoDto selectByUseUnit(String useUnit) {
if(ValidationUtil.isEmpty(useUnit)){
return new TzBaseEnterpriseInfoDto();
}
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectByUseUnit(useUnit);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@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;
current = current + 1;
for(int i = 1; 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.getSyncState() != 3){
CompanyModel companyPrivilegeModel = Privilege.companyClient.queryByCompanyCode(speUseUnit.getCerCode()).getResult();
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code",speUseUnit.getCerCode());
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = this.getOne(queryWrapper);
Map<String, Object> resultMap = accessFeignService.getData(speUseUnit.getCerCode()).getResult();
if (ValidationUtil.isEmpty(resultMap)){
if(!ValidationUtil.isEmpty(companyPrivilegeModel)){
List<AgencyUserModel> agencyUserModelList = Privilege.agencyUserClient.queryByCompanyId(companyPrivilegeModel.getSequenceNbr(),null,null,null).getResult();
if(ValidationUtil.isEmpty(agencyUserModelList)){
//spe表中的数据在工商查不到,且平台无用户,将删除企业数据
Privilege.companyClient.deleteCompany(String.valueOf(companyPrivilegeModel.getSequenceNbr()));
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
this.deleteBySeq(tzBaseEnterprisePrivilegeInfo.getSequenceNbr());
}
}
}
//spe表中的数据在工商查不到,设置spe表状态为1
speUseUnit.setSyncState(1);
speUseUnitService.updateById(speUseUnit);
}else {
CompanyModel privilegeCompanyModel = Privilege.companyClient.queryByCompanyName(String.valueOf(resultMap.get("registration_authority"))).getResult();
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(speUseUnit.getName());
companyModel.setCompanyCode(speUseUnit.getCerCode());
companyModel.setLevel("company");
companyModel.setAgencyCode("tzs");
companyModel.setCompanyType("使用单位");
companyModel.setAddress(String.valueOf(resultMap.get("address")));
companyModel.setParentId(privilegeCompanyModel.getSequenceNbr());
String area = String.valueOf(resultMap.get("area"));
String province = "";
if (area.contains("省")) {
province = area.substring(0, area.indexOf("省") + 1);
}
String city = "";
if (area.contains("市")) {
city = area.substring(province.length(), area.indexOf("市") + 1);
}
String district = area.substring(city.length() + province.length());
TzBaseEnterpriseInfo baseEnterpriseInfo = new TzBaseEnterpriseInfo();
baseEnterpriseInfo.setUseUnit(speUseUnit.getName());
baseEnterpriseInfo.setUseCode(speUseUnit.getCerCode());
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfo.setRegistrationAuthority(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setProvince(province);
baseEnterpriseInfo.setCity(city);
baseEnterpriseInfo.setDistrict(district);
baseEnterpriseInfo.setStreet(String.valueOf(resultMap.get("street")));
baseEnterpriseInfo.setCommunity(String.valueOf(resultMap.get("community")));
baseEnterpriseInfo.setAddress(String.valueOf(resultMap.get("address")));
baseEnterpriseInfo.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
baseEnterpriseInfo.setIndustry(String.valueOf(resultMap.get("industry")));
baseEnterpriseInfo.setSuperviseOrgName(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setSuperviseOrgCode(privilegeCompanyModel.getOrgCode());
baseEnterpriseInfo.setOperatingStatus(String.valueOf(resultMap.get("operating_status")));
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfoList.add(baseEnterpriseInfo);
//保存平台和业务的企业信息
try {
if (tzBaseEnterprisePrivilegeInfo == null && companyPrivilegeModel == null) {
//当企业表、平台表 中没有时
this.save(baseEnterpriseInfo);
Privilege.companyClient.create(companyModel);
} else if (tzBaseEnterprisePrivilegeInfo == null) {
//企业表没有,平台表有
this.save(baseEnterpriseInfo);
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
} else if (companyPrivilegeModel == null) {
//平台表没有,企业表有
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
Privilege.companyClient.create(companyModel);
} else {
//企业表有 平台表有
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
}
setSpeUseUnitState(3,speUseUnit);
} catch (Exception e) {
System.out.println(e.getMessage());
//当报错时 设置状态为 2
speUseUnit.setSyncState(2);
speUseUnitService.updateById(speUseUnit);
}
}
}
}
}
return "ok";
}
@Override
public TzBaseEnterpriseInfoDto companyInfoUpdate(Map<String, Object> map) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory")));
Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude");
tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map1.get("address")) ? null : map1.get("address"));
tzBaseEnterpriseInfo.setLongitude(ObjectUtils.isEmpty(map1.get("longitude")) ? null : String.valueOf(map1.get("longitude")));
tzBaseEnterpriseInfo.setLatitude(ObjectUtils.isEmpty(map1.get("latitude")) ? null : String.valueOf(map1.get("latitude")));
tzBaseEnterpriseInfo.setUseContact(ObjectUtils.isEmpty(map.get("useContact")) ? null : String.valueOf(map.get("useContact")));
tzBaseEnterpriseInfo.setContactPhone(ObjectUtils.isEmpty(map.get("contactPhone")) ? null : String.valueOf(map.get("contactPhone")));
tzBaseEnterpriseInfo.setUnitBusinessLicense(ObjectUtils.isEmpty(map.get("unitBusinessLicense")) ? null : JSON.toJSONString(map.get("unitBusinessLicense")));
tzBaseEnterpriseInfo.setIndustrySupervisor(ObjectUtils.isEmpty(map.get("industrySupervisor")) ? null : String.valueOf(map.get("industrySupervisor")));
tzBaseEnterpriseInfo.setSuperviseOrgCode(ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")));
tzBaseEnterpriseInfo.setSuperviseOrgName(ObjectUtils.isEmpty(map.get("superviseOrgName")) ? null : String.valueOf(map.get("superviseOrgName")));
//修改工商信息
RegUnitIc regUnitIc = new RegUnitIc();
List<String> addressList = (List<String>) map.get("registerAddressList");
tzBaseEnterpriseInfo.setProvince(addressList.get(0));
tzBaseEnterpriseInfo.setCity(addressList.get(1));
tzBaseEnterpriseInfo.setDistrict(addressList.get(3));
tzBaseEnterpriseInfo.setCommunity(ObjectUtils.isEmpty(map.get("community")) ? null : String.valueOf(map.get("community")));
tzBaseEnterpriseInfo.setStreet(ObjectUtils.isEmpty(map.get("stree")) ? null : String.valueOf(map.get("stree")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : String.valueOf(map.get("legalPerson")));
regUnitIc.setIndustryName(ObjectUtils.isEmpty(map.get("industryName")) ? null : String.valueOf(map.get("industryName")));
regUnitIc.setRegisteredOrgan(ObjectUtils.isEmpty(map.get("registeredOrgan")) ? null : String.valueOf(map.get("registeredOrgan")));
Date approvedDate = new Date();
try {
approvedDate = DateUtils.dateParse(String.valueOf(map.get("approvedDate")), "yyyy-MM-dd");
} catch (ParseException e) {
throw new RuntimeException(e);
}
regUnitIc.setBusinessState(ObjectUtils.isEmpty(map.get("businessState")) ? null : String.valueOf(map.get("businessState")));
regUnitIc.setApprovedDate(ObjectUtils.isEmpty(map.get("approvedDate")) ? null : approvedDate);
RegUnitIcDto regUnitIcDto = JSON.parseObject(JSON.toJSONString(map.get("regUnitIcDto")), new TypeReference<RegUnitIcDto>() {
});
extends BaseService<TzBaseEnterpriseInfoDto, TzBaseEnterpriseInfo, TzBaseEnterpriseInfoMapper>
implements ITzBaseEnterpriseInfoService {
@Autowired
RedisUtil redisUtil;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
BaseUnitLicenceServiceImpl baseUnitLicenceService;
@Autowired
RegUnitIcServiceImpl regUnitIcService;
@Autowired
@Lazy
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
@Autowired
private AccessFeignService accessFeignService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
/**
* 企业管理员变更缓存key前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
List<String> orgCodeList = new ArrayList<>();
if (tzBaseEnterpriseInfoDto.getSuperviseKey() != null) {
FeignClientResult<CompanyModel> result = Privilege.companyClient
.seleteOne(Long.valueOf(tzBaseEnterpriseInfoDto.getSuperviseKey()));
if (result.getResult() != null) {
tzBaseEnterpriseInfoDto.setSuperviseOrgCode(result.getResult().getOrgCode());
}
}
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
List<JSONObject> companyType1 = equipmentCategoryService.getCompanyType();
if (!ValidationUtil.isEmpty(companyType1)) {
for (JSONObject jsonObject : companyType1) {
String orgCode = jsonObject.getString("orgCode");
if (!ValidationUtil.isEmpty(orgCode)) {
orgCodeList.add(orgCode);
}
}
}
return this.baseMapper.pageList(page, tzBaseEnterpriseInfoDto, orgCodeList);
}
@Override
public TzBaseEnterpriseInfoDto detail(Long id) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = this.getById(id);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
tzBaseEnterpriseInfoDto.setSafetyTwoPhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyTwoPhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyTwoPhoto()));
tzBaseEnterpriseInfoDto.setSafetyOnePhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyOnePhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyOnePhoto()));
tzBaseEnterpriseInfoDto.setUnitBusinessLicense(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitBusinessLicense()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitBusinessLicense()));
tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur()));
tzBaseEnterpriseInfoDto.setEquipCategory(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getEquipCategory()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()));
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 管理员信息
RegUnitInfo regUnitInfo = regUnitInfoService.getOne(
new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
if (regUnitInfo != null) {
BeanUtils.copyProperties(regUnitInfo, regUnitInfoDto);
}
regUnitInfoDto.setAdminIdCardPhoto((ValidationUtil.isEmpty(regUnitInfo) || ValidationUtil.isEmpty(regUnitInfo.getAdminIdCardPhoto())) ? new ArrayList() : JSON.parseArray(regUnitInfo.getAdminIdCardPhoto()));
tzBaseEnterpriseInfoDto.setRegUnitInfoDto(regUnitInfoDto);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public TzBaseEnterpriseInfoDto getInfoByUseCode(String useCode) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_code", useCode));
return ObjectUtils.isEmpty(tzBaseEnterpriseInfo) ? null : getDetail(tzBaseEnterpriseInfo);
}
private TzBaseEnterpriseInfoDto getDetail(TzBaseEnterpriseInfo tzBaseEnterpriseInfo) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = detail(tzBaseEnterpriseInfo.getSequenceNbr());
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
Map<String, Object> resultMap = accessFeignService.getData(tzBaseEnterpriseInfoDto.getUseCode()).getResult();
if (!ValidationUtil.isEmpty(resultMap)) {
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0, area.indexOf("市") + 1);
String district = area.substring(city.length());
if (district.equals("高新区")) {
district = "雁塔区";
}
String industryName = "";
DataDictionary dataDictionary = iDataDictionaryService.getByCode(String.valueOf(resultMap.get("industryCode")), "HYXLDM");
if (!ValidationUtil.isEmpty(dataDictionary)) {
industryName = dataDictionary.getName();
}
String approveDate = String.valueOf(resultMap.get("approval_time"));
approveDate = approveDate.contains("年") ? approveDate.replace("年", "-") : approveDate;
approveDate = approveDate.contains("月") ? approveDate.replace("月", "-") : approveDate;
approveDate = approveDate.contains("日") ? approveDate.replace("日", "-") : approveDate;
regUnitIcDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
String approve = approveDate.substring(0, 10) + "核准";
tzBaseEnterpriseInfoDto.setApproval(approve);
try {
regUnitIcDto.setApprovedDate(DateUtils.dateParse(approveDate, "yyyy-MM-dd"));
} catch (ParseException e) {
e.printStackTrace();
}
regUnitIcDto.setUnitName(String.valueOf(resultMap.get("unitName")));
regUnitIcDto.setRegisteredOrgan(String.valueOf(resultMap.get("registration_authority")));
for (DataDictionary djjg : iDataDictionaryService.getByType("DJJG")) {
if (djjg.getName().equals(resultMap.get("registration_authority"))) {
regUnitIcDto.setRegisteredOrganCode(djjg.getSequenceNbr().toString());
}
}
regUnitIcDto.setBusinessState(String.valueOf(resultMap.get("operating_status")));
regUnitIcDto.setProvince("陕西省");
regUnitIcDto.setCity(city);
regUnitIcDto.setDistrict(district);
regUnitIcDto.setStree(String.valueOf(resultMap.get("street")));
regUnitIcDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitIcDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitIcDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
regUnitIcDto.setIndustryName(industryName);
regUnitIcDto.setRegisterAddress("陕西省/" + city + "/" + district);
ArrayList<Object> objects = new ArrayList<>();
objects.add("陕西省");
objects.add(city);
objects.add(district);
regUnitIcDto.setRegisterAddressList(objects);
regUnitIcDto.setIsNotAccess("1");
} else {
regUnitIcDto = tzBaseEnterpriseInfoDto.getRegUnitIcDto();
regUnitIcDto.setIsNotAccess("0");
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
tzBaseEnterpriseInfoDto.setApprovalTime(regUnitIcDto.getApprovedDate());
return tzBaseEnterpriseInfoDto;
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, String companyName) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit", companyName));
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = getDetail(tzBaseEnterpriseInfo);
ArrayList<TzBaseEnterpriseInfoDto> result = new ArrayList<>();
result.add(tzBaseEnterpriseInfoDto);
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
return page.setRecords(result);
}
@Override
public List<EquEnterDto> getInfoByUseUnit(String userUnit) {
return tzBaseEnterpriseInfoMapper.getInfoByUseUnit(userUnit);
}
@Override
public TzBaseEnterpriseInfoDto selectByUseUnit(String useUnit) {
if (ValidationUtil.isEmpty(useUnit)) {
return new TzBaseEnterpriseInfoDto();
}
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectByUseUnit(useUnit);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public String syncEnterpriseInfo() {
platformTokenService.getToken();
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;
current = current + 1;
for (int i = 1; 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.getSyncState() != 3) {
CompanyModel companyPrivilegeModel = Privilege.companyClient.queryByCompanyCode(speUseUnit.getCerCode()).getResult();
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code", speUseUnit.getCerCode());
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = this.getOne(queryWrapper);
Map<String, Object> resultMap = accessFeignService.getData(speUseUnit.getCerCode()).getResult();
if (ValidationUtil.isEmpty(resultMap)) {
if (!ValidationUtil.isEmpty(companyPrivilegeModel)) {
List<AgencyUserModel> agencyUserModelList = Privilege.agencyUserClient.queryByCompanyId(companyPrivilegeModel.getSequenceNbr(), null, null, null).getResult();
if (ValidationUtil.isEmpty(agencyUserModelList)) {
//spe表中的数据在工商查不到,且平台无用户,将删除企业数据
Privilege.companyClient.deleteCompany(String.valueOf(companyPrivilegeModel.getSequenceNbr()));
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
this.deleteBySeq(tzBaseEnterprisePrivilegeInfo.getSequenceNbr());
}
}
}
//spe表中的数据在工商查不到,设置spe表状态为1
speUseUnit.setSyncState(1);
speUseUnitService.updateById(speUseUnit);
} else {
CompanyModel privilegeCompanyModel = Privilege.companyClient.queryByCompanyName(String.valueOf(resultMap.get("registration_authority"))).getResult();
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(speUseUnit.getName());
companyModel.setCompanyCode(speUseUnit.getCerCode());
companyModel.setLevel("company");
companyModel.setAgencyCode("tzs");
companyModel.setCompanyType("使用单位");
companyModel.setAddress(String.valueOf(resultMap.get("address")));
companyModel.setParentId(privilegeCompanyModel.getSequenceNbr());
String area = String.valueOf(resultMap.get("area"));
String province = "";
if (area.contains("省")) {
province = area.substring(0, area.indexOf("省") + 1);
}
String city = "";
if (area.contains("市")) {
city = area.substring(province.length(), area.indexOf("市") + 1);
}
String district = area.substring(city.length() + province.length());
TzBaseEnterpriseInfo baseEnterpriseInfo = new TzBaseEnterpriseInfo();
baseEnterpriseInfo.setUseUnit(speUseUnit.getName());
baseEnterpriseInfo.setUseCode(speUseUnit.getCerCode());
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfo.setRegistrationAuthority(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setProvince(province);
baseEnterpriseInfo.setCity(city);
baseEnterpriseInfo.setDistrict(district);
baseEnterpriseInfo.setStreet(String.valueOf(resultMap.get("street")));
baseEnterpriseInfo.setCommunity(String.valueOf(resultMap.get("community")));
baseEnterpriseInfo.setAddress(String.valueOf(resultMap.get("address")));
baseEnterpriseInfo.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
baseEnterpriseInfo.setIndustry(String.valueOf(resultMap.get("industry")));
baseEnterpriseInfo.setSuperviseOrgName(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setSuperviseOrgCode(privilegeCompanyModel.getOrgCode());
baseEnterpriseInfo.setOperatingStatus(String.valueOf(resultMap.get("operating_status")));
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfoList.add(baseEnterpriseInfo);
//保存平台和业务的企业信息
try {
if (tzBaseEnterprisePrivilegeInfo == null && companyPrivilegeModel == null) {
//当企业表、平台表 中没有时
this.save(baseEnterpriseInfo);
Privilege.companyClient.create(companyModel);
} else if (tzBaseEnterprisePrivilegeInfo == null) {
//企业表没有,平台表有
this.save(baseEnterpriseInfo);
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
} else if (companyPrivilegeModel == null) {
//平台表没有,企业表有
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
Privilege.companyClient.create(companyModel);
} else {
//企业表有 平台表有
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
}
setSpeUseUnitState(3, speUseUnit);
} catch (Exception e) {
System.out.println(e.getMessage());
//当报错时 设置状态为 2
speUseUnit.setSyncState(2);
speUseUnitService.updateById(speUseUnit);
}
}
}
}
}
return "ok";
}
@Override
public TzBaseEnterpriseInfoDto companyInfoUpdate(Map<String, Object> map) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory")));
Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude");
tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map1.get("address")) ? null : map1.get("address"));
tzBaseEnterpriseInfo.setLongitude(ObjectUtils.isEmpty(map1.get("longitude")) ? null : String.valueOf(map1.get("longitude")));
tzBaseEnterpriseInfo.setLatitude(ObjectUtils.isEmpty(map1.get("latitude")) ? null : String.valueOf(map1.get("latitude")));
tzBaseEnterpriseInfo.setUseContact(ObjectUtils.isEmpty(map.get("useContact")) ? null : String.valueOf(map.get("useContact")));
tzBaseEnterpriseInfo.setContactPhone(ObjectUtils.isEmpty(map.get("contactPhone")) ? null : String.valueOf(map.get("contactPhone")));
tzBaseEnterpriseInfo.setUnitBusinessLicense(ObjectUtils.isEmpty(map.get("unitBusinessLicense")) ? null : JSON.toJSONString(map.get("unitBusinessLicense")));
tzBaseEnterpriseInfo.setIndustrySupervisor(ObjectUtils.isEmpty(map.get("industrySupervisor")) ? null : String.valueOf(map.get("industrySupervisor")));
tzBaseEnterpriseInfo.setSuperviseOrgCode(ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")));
tzBaseEnterpriseInfo.setSuperviseOrgName(ObjectUtils.isEmpty(map.get("superviseOrgName")) ? null : String.valueOf(map.get("superviseOrgName")));
//修改工商信息
RegUnitIc regUnitIc = new RegUnitIc();
List<String> addressList = (List<String>) map.get("registerAddressList");
tzBaseEnterpriseInfo.setProvince(addressList.get(0));
tzBaseEnterpriseInfo.setCity(addressList.get(1));
tzBaseEnterpriseInfo.setDistrict(addressList.get(3));
tzBaseEnterpriseInfo.setCommunity(ObjectUtils.isEmpty(map.get("community")) ? null : String.valueOf(map.get("community")));
tzBaseEnterpriseInfo.setStreet(ObjectUtils.isEmpty(map.get("stree")) ? null : String.valueOf(map.get("stree")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : String.valueOf(map.get("legalPerson")));
regUnitIc.setIndustryName(ObjectUtils.isEmpty(map.get("industryName")) ? null : String.valueOf(map.get("industryName")));
regUnitIc.setRegisteredOrgan(ObjectUtils.isEmpty(map.get("registeredOrgan")) ? null : String.valueOf(map.get("registeredOrgan")));
Date approvedDate = new Date();
try {
approvedDate = DateUtils.dateParse(String.valueOf(map.get("approvedDate")), "yyyy-MM-dd");
} catch (ParseException e) {
throw new RuntimeException(e);
}
regUnitIc.setBusinessState(ObjectUtils.isEmpty(map.get("businessState")) ? null : String.valueOf(map.get("businessState")));
regUnitIc.setApprovedDate(ObjectUtils.isEmpty(map.get("approvedDate")) ? null : approvedDate);
RegUnitIcDto regUnitIcDto = JSON.parseObject(JSON.toJSONString(map.get("regUnitIcDto")), new TypeReference<RegUnitIcDto>() {
});
// regUnitIcService.update(regUnitIc, new QueryWrapper<RegUnitIc>().eq("unit_code", regUnitIcDto.getUnitCode()));
//修改许可信息
List<BaseUnitLicence> licences = (List<BaseUnitLicence>) map.get("unitLicences");
//修改许可信息
List<BaseUnitLicence> licences = (List<BaseUnitLicence>) map.get("unitLicences");
// baseUnitLicenceService.saveOrUpdateBatch(licences);
// boolean b = tzBaseEnterpriseInfoService.updateById(tzBaseEnterpriseInfo);
boolean b = true;
boolean b = true;
if (b) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
......@@ -507,12 +483,12 @@ public class TzBaseEnterpriseInfoServiceImpl
}
@Override
public String setLabel(List<Long> enterpriseIds, List<String> enterpriseLabels) {
List<TzBaseEnterpriseInfo> tzBaseEnterpriseInfos = tzBaseEnterpriseInfoMapper.selectBatchIds(enterpriseIds);
if (!ObjectUtils.isEmpty(enterpriseLabels)) {
for (TzBaseEnterpriseInfo tzBaseEnterpriseInfo : tzBaseEnterpriseInfos) {
// 标签递增逻辑
@Override
public String setLabel(List<Long> enterpriseIds, List<String> enterpriseLabels) {
List<TzBaseEnterpriseInfo> tzBaseEnterpriseInfos = tzBaseEnterpriseInfoMapper.selectBatchIds(enterpriseIds);
if (!ObjectUtils.isEmpty(enterpriseLabels)) {
for (TzBaseEnterpriseInfo tzBaseEnterpriseInfo : tzBaseEnterpriseInfos) {
// 标签递增逻辑
// if (!ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getRegulatoryLabels())) {
// String result = checkLabel(enterpriseLabels, tzBaseEnterpriseInfo.getRegulatoryLabels());
// tzBaseEnterpriseInfo.setRegulatoryLabels(result);
......@@ -520,91 +496,73 @@ public class TzBaseEnterpriseInfoServiceImpl
// String labels = String.join(",", enterpriseLabels);
// tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
// }
String labels = String.join(",", enterpriseLabels);
tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
}
} else {
tzBaseEnterpriseInfos.forEach(item -> {
item.setRegulatoryLabels(null);
});
}
this.updateBatchById(tzBaseEnterpriseInfos);
return "success";
}
private String checkLabel(List<String> enterpriseLabels, String result) {
List<String> strings = Arrays.asList(result.split(","));
ArrayList<String> res = new ArrayList<>(strings);
List<String> collect = enterpriseLabels.stream().filter(item -> !strings.contains(item)).collect(Collectors.toList());
res.addAll(collect);
return String.join(",", res);
}
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
RequestContext.setAppKey(appkey);
RequestContext.setProduct(webProduct);
//获取机器人的token,获取不到则去登录
if (ObjectUtils.isEmpty(redisUtil.get(TZS_USER_TOKEN))) {
loginCtiUser();
}
RequestContext.setToken(String.valueOf(redisUtil.get(TZS_USER_TOKEN)));
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
regUnitInfo.setAdminIdNumber(String.valueOf(map.get("adminIdNumber")));
regUnitInfo.setAdminIdCardPhoto(JSON.toJSONString(map.get("adminIdCardPhoto")));
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(String.valueOf(map.get("adminTel")));
me.setRealName(String.valueOf(map.get("adminName")));
FeignClientResult<AgencyUserModel> updateResult = Privilege.agencyUserClient.update(me, String.valueOf(map.get("adminUserId")));
if (200 == updateResult.getStatus()) {
regUnitInfoService.update(regUnitInfo, new QueryWrapper<RegUnitInfo>().eq("unit_code", unitCode));
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
} else {
resultMap.put("fail", "平台用户修改失败,请联系管理员");
}
} else {
resultMap.put("fail", "平台用户不存在");
}
return resultMap;
}
//机器人用户登录
private void loginCtiUser() {
String passwd = DesUtil.encode(tzsAdminPwd, "qaz");
IdPasswordAuthModel loninData = new IdPasswordAuthModel();
loninData.setLoginId(tzsAdminName);
loninData.setPassword(passwd);
FeignClientResult loginResult = Privilege.authClient.idpassword(loninData);
if(loginResult.getStatus() == 200) {
HashMap resultMap = (HashMap) loginResult.getResult();
redisUtil.set(TZS_USER_TOKEN, resultMap.get("token").toString(), redisRegionTimeSecond);
}
}
public void setSpeUseUnitState(int state,SpeUseUnit speUseUnit){
speUseUnit.setSyncState(state);
speUseUnitService.updateById(speUseUnit);
}
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;
}
String labels = String.join(",", enterpriseLabels);
tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
}
} else {
tzBaseEnterpriseInfos.forEach(item -> {
item.setRegulatoryLabels(null);
});
}
this.updateBatchById(tzBaseEnterpriseInfos);
return "success";
}
private String checkLabel(List<String> enterpriseLabels, String result) {
List<String> strings = Arrays.asList(result.split(","));
ArrayList<String> res = new ArrayList<>(strings);
List<String> collect = enterpriseLabels.stream().filter(item -> !strings.contains(item)).collect(Collectors.toList());
res.addAll(collect);
return String.join(",", res);
}
@Override
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
platformTokenService.getToken();
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
regUnitInfo.setAdminIdNumber(String.valueOf(map.get("adminIdNumber")));
regUnitInfo.setAdminIdCardPhoto(JSON.toJSONString(map.get("adminIdCardPhoto")));
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(String.valueOf(map.get("adminTel")));
me.setRealName(String.valueOf(map.get("adminName")));
FeignClientResult<AgencyUserModel> updateResult = Privilege.agencyUserClient.update(me, String.valueOf(map.get("adminUserId")));
if (200 == updateResult.getStatus()) {
regUnitInfoService.update(regUnitInfo, new QueryWrapper<RegUnitInfo>().eq("unit_code", unitCode));
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
} else {
resultMap.put("fail", "平台用户修改失败,请联系管理员");
}
} else {
resultMap.put("fail", "平台用户不存在");
}
return resultMap;
}
public void setSpeUseUnitState(int state, SpeUseUnit speUseUnit) {
speUseUnit.setSyncState(state);
speUseUnitService.updateById(speUseUnit);
}
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,7 +13,7 @@ eureka.instance.metadata-map.management.api-docs=http://172.16.3.34:${server.por
eureka.instance.ip-address=172.16.3.34
## ES properties:
elasticsearch.username=elastic
elasticsearch.password=a123456
elasticsearch.password=123456
spring.elasticsearch.rest.uris=http://172.16.10.230:9200
## unit(h)
alertcall.es.synchrony.time=48
......
......@@ -124,11 +124,7 @@ tzs.wechat.tempId.supervise=P5XGbszS2Pc6kynvGjzPpZ--ikAwDZo6O7WdJ2EUxtE
## \uFFFD\uFFFD\uFFFD\u06BA\u0172\uFFFD\uFFFD\uFFFD\uFFFD\u00FB\uFFFDid\uFFFD\uFFFD\u01BD\u0328userId\uFFFD\uFFFD
tzs.wechat.test.userId=3393279
admin.product=AMOS-SERVICE-ADMIN
admin.appkey=AMOS_ADMIN
admin.user=admin_tzs
admin.password=a1234560
admin.product.web=AMOS-WEB-ADMIN
amos.secret.key=qazknife4j.production=false
knife4j.production=false
......
......@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.Menu;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.app.api.common.MobileLoginParam;
import com.yeejoin.amos.boot.module.app.api.dto.EquipExportDto;
import com.yeejoin.amos.boot.module.app.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.app.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.app.api.entity.PageParam;
......@@ -30,7 +29,14 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
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.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
......@@ -256,8 +262,8 @@ public class TzsAppController {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(value = "获取机器人登录token", notes = "获取机器人登录token")
@GetMapping(value = "/acquireToken")
synchronized public String getRobotLoginToken() {
return amosRequestContext.getToken();
synchronized public ResponseModel<String> getRobotLoginToken() {
return ResponseHelper.buildResponse(amosRequestContext.getToken());
}
/**
......
package com.yeejoin.amos.boot.module.app.biz.controller;
import com.yeejoin.amos.boot.module.app.biz.service.impl.TzsAuthServiceImpl;
import com.yeejoin.amos.component.robot.AmosRequestContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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;
@RestController
@Slf4j
@Api(tags = "wechat小程序接口")
@RequestMapping(value = "/wechat")
public class TzsWeChatController {
@Autowired
AmosRequestContext amosRequestContext;
@Autowired
TzsAuthServiceImpl authServiceImpl;
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(value = "获取机器人登录token", notes = "获取机器人登录token")
@GetMapping(value = "/api/acquireToken")
synchronized public ResponseModel<String> getRobotLoginToken() {
return ResponseHelper.buildResponse(authServiceImpl.getUserToken());
}
}
package com.yeejoin.amos.boot.module.app.biz.service.impl;
import com.yeejoin.amos.boot.module.app.biz.utils.RedisUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
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 com.yeejoin.amos.boot.module.app.biz.utils.RedisUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
@Service
public class StartPlatformTokenService {
@Value("${admin.product}")
String product;
@Value("${admin.appkey}")
String appkey;
@Value("${admin.user}")
String user;
@Value("${admin.password}")
String password;
@Value("${amos.secret.key}")
String secretKey;
@Autowired
RedisUtil redisUtil;
@Autowired
RedisUtil redisUtil;
@Autowired
AmosRequestContext amosRequestContext;
@Autowired
AmosRequestContext amosRequestContext;
public void getToken() {
RequestContext.setProduct(product);
RequestContext.setAppKey(appkey);
String token = amosRequestContext.getToken();
System.out.println("token:" + token);
RequestContext.setToken(token);
redisUtil.set("platform_token", token);
}
public void getToken() {
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setToken(amosRequestContext.getToken());
}
}
......@@ -39,6 +39,7 @@ import com.yeejoin.amos.feign.privilege.util.DesUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
......@@ -63,15 +64,6 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Value("${admin.product.web}")
String webProduct;
@Value("${admin.appkey}")
String appkey;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
......@@ -82,37 +74,24 @@ public class TzBaseEnterpriseInfoServiceImpl
RegUnitIcServiceImpl regUnitIcService;
@Autowired
@Lazy
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
private IBaseUnitLicenceService iBaseUnitLicenceService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
@Autowired
private AccessFeignService accessFeignService;
@Autowired
private ITzBaseEnterpriseInfoService tzBaseEnterpriseInfoService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${tzs.admin.name:tzs_admin}")
private String tzsAdminName;
@Value("${tzs.admin.pwd:a1234567}")
private String tzsAdminPwd;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
/**机器人用户token缓存key */
public static final String TZS_USER_TOKEN = "TZS_USER_TOKEN";
/**
* 企业管理员变更缓存key前缀
*/
......@@ -120,6 +99,9 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
......@@ -313,9 +295,7 @@ public class TzBaseEnterpriseInfoServiceImpl
@Override
public String syncEnterpriseInfo() {
RequestContext.setAppKey(appkey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
List<TzBaseEnterpriseInfo> baseEnterpriseInfoList = new ArrayList<>();
......@@ -538,16 +518,11 @@ public class TzBaseEnterpriseInfoServiceImpl
return String.join(",", res);
}
@Override
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
RequestContext.setAppKey(appkey);
RequestContext.setProduct(webProduct);
//获取机器人的token,获取不到则去登录
if (ObjectUtils.isEmpty(redisUtil.get(TZS_USER_TOKEN))) {
loginCtiUser();
}
RequestContext.setToken(String.valueOf(redisUtil.get(TZS_USER_TOKEN)));
platformTokenService.getToken();
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
......@@ -572,18 +547,6 @@ public class TzBaseEnterpriseInfoServiceImpl
return resultMap;
}
//机器人用户登录
private void loginCtiUser() {
String passwd = DesUtil.encode(tzsAdminPwd, "qaz");
IdPasswordAuthModel loninData = new IdPasswordAuthModel();
loninData.setLoginId(tzsAdminName);
loninData.setPassword(passwd);
FeignClientResult loginResult = Privilege.authClient.idpassword(loninData);
if(loginResult.getStatus() == 200) {
HashMap resultMap = (HashMap) loginResult.getResult();
redisUtil.set(TZS_USER_TOKEN, resultMap.get("token").toString(), redisRegionTimeSecond);
}
}
public void setSpeUseUnitState(int state,SpeUseUnit speUseUnit){
......
......@@ -48,6 +48,11 @@ public class TzsAuthServiceImpl implements TzsAuthService {
@Value("${cti.user.pwd}")
private String ctiUserPwd;
@Value("${amos.wechat.robot.user}")
private String weRobotUser;
@Value("${amos.wechat.robot.password}")
private String weRobotPassword;
/**
* saveUserRedis设置过期时间
......@@ -58,6 +63,7 @@ public class TzsAuthServiceImpl implements TzsAuthService {
@Autowired
private StartPlatformTokenService startPlatformTokenService;
String weChatToken = "WECHAT_TOKEN";
@Override
public List<String> getUserRegionCode() {
......@@ -149,20 +155,18 @@ public class TzsAuthServiceImpl implements TzsAuthService {
}
private void loginCtiUser() {
String passwd = DesUtil.encode(ctiUserPwd, "qaz");
IdPasswordAuthModel loninData = new IdPasswordAuthModel();
loninData.setLoginId(ctiUserName);
loninData.setPassword(passwd);
FeignClientResult loginResult = Privilege.authClient.idpassword(loninData);
private void loginUser(String userName, String password, String token) {
String pwd = DesUtil.encode(password, "qaz");
IdPasswordAuthModel loginData = new IdPasswordAuthModel();
loginData.setLoginId(userName);
loginData.setPassword(pwd);
FeignClientResult loginResult = Privilege.authClient.idpassword(loginData);
if(loginResult.getStatus() == 200) {
HashMap resultMap = (HashMap) loginResult.getResult();
redisUtils.set(RedisKey.CTI_USER_TOKEN, resultMap.get("token").toString(), redisRegionTimeSecond);
redisUtils.set(token, resultMap.get("token").toString(), redisRegionTimeSecond);
}
}
public void setRequestContext() {
// 需要登录后台账号
RequestContext.setAppKey("AMOS_STUDIO");
......@@ -173,10 +177,10 @@ public class TzsAuthServiceImpl implements TzsAuthService {
boolean validToken = TokenOperation.refresh(redisUtils.get(RedisKey.CTI_USER_TOKEN).toString());
// 登陆
if (!validToken) {
this.loginCtiUser();
this.loginUser(ctiUserName, ctiUserPwd, RedisKey.CTI_USER_TOKEN);
}
} else { // 登陆
this.loginCtiUser();
this.loginUser(ctiUserName, ctiUserPwd, RedisKey.CTI_USER_TOKEN);
}
}
String ctiToken = redisUtils.get(RedisKey.CTI_USER_TOKEN).toString();
......@@ -193,7 +197,6 @@ public class TzsAuthServiceImpl implements TzsAuthService {
}
private void saveUserRedis(AgencyUserModel user, String token) {
String authToken = RedisKey.buildReginKey(user.getUserId(), token);
if (redisUtils.hasKey(authToken)) {
......@@ -229,5 +232,23 @@ public class TzsAuthServiceImpl implements TzsAuthService {
redisUtils.set(authToken, JSONObject.toJSONString(reginParams), redisRegionTimeSecond);
}
public String getUserToken() {
// 需要登录后台账号
RequestContext.setAppKey("AMOS_STUDIO");
RequestContext.setProduct("AMOS_STUDIO_WEB");
synchronized (TzsAuthServiceImpl.class) {
if (redisUtils.hasKey(weChatToken)) {
// 验证token
boolean validToken = TokenOperation.refresh(redisUtils.get(weChatToken).toString());
// 登陆
if (!validToken) {
this.loginUser(weRobotUser, weRobotPassword, weChatToken);
}
} else { // 登陆
this.loginUser(weRobotUser, weRobotPassword, weChatToken);
}
}
String weToken = redisUtils.get(weChatToken).toString();
return weToken;
}
}
\ No newline at end of file
......@@ -13,7 +13,7 @@ eureka.instance.metadata-map.management.api-docs=http://172.16.3.32:${server.por
eureka.instance.ip-address=172.16.3.32
## ES properties:
elasticsearch.username=elastic
elasticsearch.password=a123456
elasticsearch.password=123456
spring.elasticsearch.rest.uris=http://172.16.10.230:9200
## unit(h)
alertcall.es.synchrony.time=48
......
......@@ -124,11 +124,7 @@ tzs.wechat.tempId.supervise=P5XGbszS2Pc6kynvGjzPpZ--ikAwDZo6O7WdJ2EUxtE
## \uFFFD\uFFFD\uFFFD\u06BA\u0172\uFFFD\uFFFD\uFFFD\uFFFD\u00FB\uFFFDid\uFFFD\uFFFD\u01BD\u0328userId\uFFFD\uFFFD
tzs.wechat.test.userId=3393279
admin.product=AMOS-SERVICE-ADMIN
admin.appkey=AMOS_ADMIN
admin.user=admin_tzs
admin.password=a1234560
admin.product.web=AMOS-WEB-ADMIN
amos.secret.key=qazknife4j.production=false
knife4j.production=false
......@@ -164,4 +160,7 @@ tzs.auth.user.photo=/public/common/userPic.png
tzs.WxApp.appId=wx48a1b1915b10d14b
tzs.WxApp.secret=ac4f4a9d3c97676badb70c19a2f37b16
tzs.WxApp.grant-type=authorization_code
\ No newline at end of file
tzs.WxApp.grant-type=authorization_code
amos.wechat.robot.user=we_robot
amos.wechat.robot.password=a1234567
\ No newline at end of file
......@@ -3,7 +3,6 @@ package com.yeejoin.amos.boot.module.cylinder.biz.service.impl;
import com.yeejoin.amos.boot.module.cylinder.biz.utils.RedisUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
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;
......@@ -11,34 +10,16 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
@Service
public class StartPlatformTokenService {
@Value("${admin.product}")
String product;
@Value("${admin.appkey}")
String appkey;
@Value("${admin.user}")
String user;
@Value("${admin.password}")
String password;
@Autowired
RedisUtil redisUtil;
@Value("${amos.secret.key}")
String secretKey;
@Autowired
AmosRequestContext amosRequestContext;
@Autowired
RedisUtil redisUtil;
@Autowired
AmosRequestContext amosRequestContext;
public void getToken() {
RequestContext.setProduct(product);
RequestContext.setAppKey(appkey);
String token = amosRequestContext.getToken();
System.out.println("token:" + token);
RequestContext.setToken(token);
redisUtil.set("platform_token", token);
}
public void getToken() {
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setToken(amosRequestContext.getToken());
}
}
......@@ -11,9 +11,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.cylinder.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.RegUnitIcServiceImpl;
import com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.RegUnitInfoServiceImpl;
import com.yeejoin.amos.boot.module.cylinder.api.dto.BaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.cylinder.api.dto.EquEnterDto;
import com.yeejoin.amos.boot.module.cylinder.api.dto.TzBaseEnterpriseInfoDto;
......@@ -22,26 +19,25 @@ import com.yeejoin.amos.boot.module.cylinder.api.entity.PageParam;
import com.yeejoin.amos.boot.module.cylinder.api.entity.SpeUseUnit;
import com.yeejoin.amos.boot.module.cylinder.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.cylinder.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.cylinder.api.service.IBaseUnitLicenceService;
import com.yeejoin.amos.boot.module.cylinder.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.cylinder.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.RegUnitIcDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.RegUnitInfoDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.entity.RegUnitIc;
import com.yeejoin.amos.boot.module.cylinder.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.cylinder.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.RegUnitInfoMapper;
import com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.RegUnitIcServiceImpl;
import com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.RegUnitInfoServiceImpl;
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.IdPasswordAuthModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil;
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.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -57,444 +53,425 @@ import java.util.stream.Collectors;
*/
@Service
public class TzBaseEnterpriseInfoServiceImpl
extends BaseService<TzBaseEnterpriseInfoDto, TzBaseEnterpriseInfo, TzBaseEnterpriseInfoMapper>
implements ITzBaseEnterpriseInfoService {
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Value("${admin.product.web}")
String webProduct;
@Value("${admin.appkey}")
String appkey;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
BaseUnitLicenceServiceImpl baseUnitLicenceService;
@Autowired
RegUnitIcServiceImpl regUnitIcService;
@Autowired
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
private IBaseUnitLicenceService iBaseUnitLicenceService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
@Autowired
private AccessFeignService accessFeignService;
@Autowired
private ITzBaseEnterpriseInfoService tzBaseEnterpriseInfoService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${tzs.admin.name:tzs_admin}")
private String tzsAdminName;
@Value("${tzs.admin.pwd:a1234567}")
private String tzsAdminPwd;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
/**机器人用户token缓存key */
public static final String TZS_USER_TOKEN = "TZS_USER_TOKEN";
/**
* 企业管理员变更缓存key前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
List<String> orgCodeList = new ArrayList<>();
if (tzBaseEnterpriseInfoDto.getSuperviseKey() != null) {
FeignClientResult<CompanyModel> result = Privilege.companyClient
.seleteOne(Long.valueOf(tzBaseEnterpriseInfoDto.getSuperviseKey()));
if (result.getResult() != null) {
tzBaseEnterpriseInfoDto.setSuperviseOrgCode(result.getResult().getOrgCode());
}
}
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
List<JSONObject> companyType1 = equipmentCategoryService.getCompanyType();
if (!ValidationUtil.isEmpty(companyType1)) {
for (JSONObject jsonObject : companyType1) {
String orgCode = jsonObject.getString("orgCode");
if (!ValidationUtil.isEmpty(orgCode)) {
orgCodeList.add(orgCode);
}
}
}
return this.baseMapper.pageList(page, tzBaseEnterpriseInfoDto,orgCodeList);
}
@Override
public TzBaseEnterpriseInfoDto detail(Long id) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = this.getById(id);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
tzBaseEnterpriseInfoDto.setSafetyTwoPhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyTwoPhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyTwoPhoto()));
tzBaseEnterpriseInfoDto.setSafetyOnePhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyOnePhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyOnePhoto()));
tzBaseEnterpriseInfoDto.setUnitBusinessLicense(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitBusinessLicense()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitBusinessLicense()));
tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur()));
tzBaseEnterpriseInfoDto.setEquipCategory(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getEquipCategory()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()));
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 管理员信息
RegUnitInfo regUnitInfo = regUnitInfoService.getOne(
new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
if (regUnitInfo != null) {
BeanUtils.copyProperties(regUnitInfo, regUnitInfoDto);
}
regUnitInfoDto.setAdminIdCardPhoto((ValidationUtil.isEmpty(regUnitInfo)||ValidationUtil.isEmpty(regUnitInfo.getAdminIdCardPhoto())) ? new ArrayList() : JSON.parseArray(regUnitInfo.getAdminIdCardPhoto()));
tzBaseEnterpriseInfoDto.setRegUnitInfoDto(regUnitInfoDto);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public TzBaseEnterpriseInfoDto getInfoByUseCode(String useCode) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_code", useCode));
return ObjectUtils.isEmpty(tzBaseEnterpriseInfo) ? null : getDetail(tzBaseEnterpriseInfo);
}
private TzBaseEnterpriseInfoDto getDetail(TzBaseEnterpriseInfo tzBaseEnterpriseInfo){
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = detail(tzBaseEnterpriseInfo.getSequenceNbr());
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
Map<String, Object> resultMap = accessFeignService.getData(tzBaseEnterpriseInfoDto.getUseCode()).getResult();
if (!ValidationUtil.isEmpty(resultMap)) {
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0, area.indexOf("市") + 1);
String district = area.substring(city.length());
if (district.equals("高新区")) {
district = "雁塔区";
}
String industryName = "";
DataDictionary dataDictionary = iDataDictionaryService.getByCode(String.valueOf(resultMap.get("industryCode")), "HYXLDM");
if (!ValidationUtil.isEmpty(dataDictionary)) {
industryName = dataDictionary.getName();
}
String approveDate = String.valueOf(resultMap.get("approval_time"));
approveDate = approveDate.contains("年") ? approveDate.replace("年", "-") : approveDate;
approveDate = approveDate.contains("月") ? approveDate.replace("月", "-") : approveDate;
approveDate = approveDate.contains("日") ? approveDate.replace("日", "-") : approveDate;
regUnitIcDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
String approve = approveDate.substring(0, 10) + "核准";
tzBaseEnterpriseInfoDto.setApproval(approve);
try {
regUnitIcDto.setApprovedDate(DateUtils.dateParse(approveDate, "yyyy-MM-dd"));
} catch (ParseException e) {
e.printStackTrace();
}
regUnitIcDto.setUnitName(String.valueOf(resultMap.get("unitName")));
regUnitIcDto.setRegisteredOrgan(String.valueOf(resultMap.get("registration_authority")));
for (DataDictionary djjg : iDataDictionaryService.getByType("DJJG")) {
if(djjg.getName().equals(resultMap.get("registration_authority"))){
regUnitIcDto.setRegisteredOrganCode(djjg.getSequenceNbr().toString());
}
}
regUnitIcDto.setBusinessState(String.valueOf(resultMap.get("operating_status")));
regUnitIcDto.setProvince("陕西省");
regUnitIcDto.setCity(city);
regUnitIcDto.setDistrict(district);
regUnitIcDto.setStree(String.valueOf(resultMap.get("street")));
regUnitIcDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitIcDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitIcDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
regUnitIcDto.setIndustryName(industryName);
regUnitIcDto.setRegisterAddress("陕西省/" + city + "/" + district);
ArrayList<Object> objects = new ArrayList<>();
objects.add("陕西省");
objects.add(city);
objects.add(district);
regUnitIcDto.setRegisterAddressList(objects);
regUnitIcDto.setIsNotAccess("1");
} else {
regUnitIcDto = tzBaseEnterpriseInfoDto.getRegUnitIcDto();
regUnitIcDto.setIsNotAccess("0");
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
tzBaseEnterpriseInfoDto.setApprovalTime(regUnitIcDto.getApprovedDate());
return tzBaseEnterpriseInfoDto;
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, String companyName) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit", companyName));
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = getDetail(tzBaseEnterpriseInfo);
ArrayList<TzBaseEnterpriseInfoDto> result = new ArrayList<>();
result.add(tzBaseEnterpriseInfoDto);
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
return page.setRecords(result);
}
@Override
public List<EquEnterDto> getInfoByUseUnit(String userUnit) {
return tzBaseEnterpriseInfoMapper.getInfoByUseUnit(userUnit);
}
@Override
public TzBaseEnterpriseInfoDto selectByUseUnit(String useUnit) {
if(ValidationUtil.isEmpty(useUnit)){
return new TzBaseEnterpriseInfoDto();
}
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectByUseUnit(useUnit);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@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;
current = current + 1;
for(int i = 1; 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.getSyncState() != 3){
CompanyModel companyPrivilegeModel = Privilege.companyClient.queryByCompanyCode(speUseUnit.getCerCode()).getResult();
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code",speUseUnit.getCerCode());
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = this.getOne(queryWrapper);
Map<String, Object> resultMap = accessFeignService.getData(speUseUnit.getCerCode()).getResult();
if (ValidationUtil.isEmpty(resultMap)){
if(!ValidationUtil.isEmpty(companyPrivilegeModel)){
List<AgencyUserModel> agencyUserModelList = Privilege.agencyUserClient.queryByCompanyId(companyPrivilegeModel.getSequenceNbr(),null,null,null).getResult();
if(ValidationUtil.isEmpty(agencyUserModelList)){
//spe表中的数据在工商查不到,且平台无用户,将删除企业数据
Privilege.companyClient.deleteCompany(String.valueOf(companyPrivilegeModel.getSequenceNbr()));
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
this.deleteBySeq(tzBaseEnterprisePrivilegeInfo.getSequenceNbr());
}
}
}
//spe表中的数据在工商查不到,设置spe表状态为1
speUseUnit.setSyncState(1);
speUseUnitService.updateById(speUseUnit);
}else {
CompanyModel privilegeCompanyModel = Privilege.companyClient.queryByCompanyName(String.valueOf(resultMap.get("registration_authority"))).getResult();
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(speUseUnit.getName());
companyModel.setCompanyCode(speUseUnit.getCerCode());
companyModel.setLevel("company");
companyModel.setAgencyCode("tzs");
companyModel.setCompanyType("使用单位");
companyModel.setAddress(String.valueOf(resultMap.get("address")));
companyModel.setParentId(privilegeCompanyModel.getSequenceNbr());
String area = String.valueOf(resultMap.get("area"));
String province = "";
if (area.contains("省")) {
province = area.substring(0, area.indexOf("省") + 1);
}
String city = "";
if (area.contains("市")) {
city = area.substring(province.length(), area.indexOf("市") + 1);
}
String district = area.substring(city.length() + province.length());
TzBaseEnterpriseInfo baseEnterpriseInfo = new TzBaseEnterpriseInfo();
baseEnterpriseInfo.setUseUnit(speUseUnit.getName());
baseEnterpriseInfo.setUseCode(speUseUnit.getCerCode());
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfo.setRegistrationAuthority(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setProvince(province);
baseEnterpriseInfo.setCity(city);
baseEnterpriseInfo.setDistrict(district);
baseEnterpriseInfo.setStreet(String.valueOf(resultMap.get("street")));
baseEnterpriseInfo.setCommunity(String.valueOf(resultMap.get("community")));
baseEnterpriseInfo.setAddress(String.valueOf(resultMap.get("address")));
baseEnterpriseInfo.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
baseEnterpriseInfo.setIndustry(String.valueOf(resultMap.get("industry")));
baseEnterpriseInfo.setSuperviseOrgName(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setSuperviseOrgCode(privilegeCompanyModel.getOrgCode());
baseEnterpriseInfo.setOperatingStatus(String.valueOf(resultMap.get("operating_status")));
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfoList.add(baseEnterpriseInfo);
//保存平台和业务的企业信息
try {
if (tzBaseEnterprisePrivilegeInfo == null && companyPrivilegeModel == null) {
//当企业表、平台表 中没有时
this.save(baseEnterpriseInfo);
Privilege.companyClient.create(companyModel);
} else if (tzBaseEnterprisePrivilegeInfo == null) {
//企业表没有,平台表有
this.save(baseEnterpriseInfo);
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
} else if (companyPrivilegeModel == null) {
//平台表没有,企业表有
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
Privilege.companyClient.create(companyModel);
} else {
//企业表有 平台表有
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
}
setSpeUseUnitState(3,speUseUnit);
} catch (Exception e) {
System.out.println(e.getMessage());
//当报错时 设置状态为 2
speUseUnit.setSyncState(2);
speUseUnitService.updateById(speUseUnit);
}
}
}
}
}
return "ok";
}
@Override
public TzBaseEnterpriseInfoDto companyInfoUpdate(Map<String, Object> map) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory")));
Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude");
tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map1.get("address")) ? null : map1.get("address"));
tzBaseEnterpriseInfo.setLongitude(ObjectUtils.isEmpty(map1.get("longitude")) ? null : String.valueOf(map1.get("longitude")));
tzBaseEnterpriseInfo.setLatitude(ObjectUtils.isEmpty(map1.get("latitude")) ? null : String.valueOf(map1.get("latitude")));
tzBaseEnterpriseInfo.setUseContact(ObjectUtils.isEmpty(map.get("useContact")) ? null : String.valueOf(map.get("useContact")));
tzBaseEnterpriseInfo.setContactPhone(ObjectUtils.isEmpty(map.get("contactPhone")) ? null : String.valueOf(map.get("contactPhone")));
tzBaseEnterpriseInfo.setUnitBusinessLicense(ObjectUtils.isEmpty(map.get("unitBusinessLicense")) ? null : JSON.toJSONString(map.get("unitBusinessLicense")));
tzBaseEnterpriseInfo.setIndustrySupervisor(ObjectUtils.isEmpty(map.get("industrySupervisor")) ? null : String.valueOf(map.get("industrySupervisor")));
tzBaseEnterpriseInfo.setSuperviseOrgCode(ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")));
tzBaseEnterpriseInfo.setSuperviseOrgName(ObjectUtils.isEmpty(map.get("superviseOrgName")) ? null : String.valueOf(map.get("superviseOrgName")));
//修改工商信息
RegUnitIc regUnitIc = new RegUnitIc();
List<String> addressList = (List<String>) map.get("registerAddressList");
tzBaseEnterpriseInfo.setProvince(addressList.get(0));
tzBaseEnterpriseInfo.setCity(addressList.get(1));
tzBaseEnterpriseInfo.setDistrict(addressList.get(3));
tzBaseEnterpriseInfo.setCommunity(ObjectUtils.isEmpty(map.get("community")) ? null : String.valueOf(map.get("community")));
tzBaseEnterpriseInfo.setStreet(ObjectUtils.isEmpty(map.get("stree")) ? null : String.valueOf(map.get("stree")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : String.valueOf(map.get("legalPerson")));
regUnitIc.setIndustryName(ObjectUtils.isEmpty(map.get("industryName")) ? null : String.valueOf(map.get("industryName")));
regUnitIc.setRegisteredOrgan(ObjectUtils.isEmpty(map.get("registeredOrgan")) ? null : String.valueOf(map.get("registeredOrgan")));
Date approvedDate = new Date();
try {
approvedDate = DateUtils.dateParse(String.valueOf(map.get("approvedDate")), "yyyy-MM-dd");
} catch (ParseException e) {
throw new RuntimeException(e);
}
regUnitIc.setBusinessState(ObjectUtils.isEmpty(map.get("businessState")) ? null : String.valueOf(map.get("businessState")));
regUnitIc.setApprovedDate(ObjectUtils.isEmpty(map.get("approvedDate")) ? null : approvedDate);
RegUnitIcDto regUnitIcDto = JSON.parseObject(JSON.toJSONString(map.get("regUnitIcDto")), new TypeReference<RegUnitIcDto>() {
});
extends BaseService<TzBaseEnterpriseInfoDto, TzBaseEnterpriseInfo, TzBaseEnterpriseInfoMapper>
implements ITzBaseEnterpriseInfoService {
@Autowired
RedisUtil redisUtil;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
BaseUnitLicenceServiceImpl baseUnitLicenceService;
@Autowired
RegUnitIcServiceImpl regUnitIcService;
@Autowired
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
@Autowired
private AccessFeignService accessFeignService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
/**
* 企业管理员变更缓存key前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
List<String> orgCodeList = new ArrayList<>();
if (tzBaseEnterpriseInfoDto.getSuperviseKey() != null) {
FeignClientResult<CompanyModel> result = Privilege.companyClient
.seleteOne(Long.valueOf(tzBaseEnterpriseInfoDto.getSuperviseKey()));
if (result.getResult() != null) {
tzBaseEnterpriseInfoDto.setSuperviseOrgCode(result.getResult().getOrgCode());
}
}
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
List<JSONObject> companyType1 = equipmentCategoryService.getCompanyType();
if (!ValidationUtil.isEmpty(companyType1)) {
for (JSONObject jsonObject : companyType1) {
String orgCode = jsonObject.getString("orgCode");
if (!ValidationUtil.isEmpty(orgCode)) {
orgCodeList.add(orgCode);
}
}
}
return this.baseMapper.pageList(page, tzBaseEnterpriseInfoDto, orgCodeList);
}
@Override
public TzBaseEnterpriseInfoDto detail(Long id) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = this.getById(id);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
tzBaseEnterpriseInfoDto.setSafetyTwoPhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyTwoPhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyTwoPhoto()));
tzBaseEnterpriseInfoDto.setSafetyOnePhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyOnePhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyOnePhoto()));
tzBaseEnterpriseInfoDto.setUnitBusinessLicense(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitBusinessLicense()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitBusinessLicense()));
tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur()));
tzBaseEnterpriseInfoDto.setEquipCategory(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getEquipCategory()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()));
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 管理员信息
RegUnitInfo regUnitInfo = regUnitInfoService.getOne(
new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
if (regUnitInfo != null) {
BeanUtils.copyProperties(regUnitInfo, regUnitInfoDto);
}
regUnitInfoDto.setAdminIdCardPhoto((ValidationUtil.isEmpty(regUnitInfo) || ValidationUtil.isEmpty(regUnitInfo.getAdminIdCardPhoto())) ? new ArrayList() : JSON.parseArray(regUnitInfo.getAdminIdCardPhoto()));
tzBaseEnterpriseInfoDto.setRegUnitInfoDto(regUnitInfoDto);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public TzBaseEnterpriseInfoDto getInfoByUseCode(String useCode) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_code", useCode));
return ObjectUtils.isEmpty(tzBaseEnterpriseInfo) ? null : getDetail(tzBaseEnterpriseInfo);
}
private TzBaseEnterpriseInfoDto getDetail(TzBaseEnterpriseInfo tzBaseEnterpriseInfo) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = detail(tzBaseEnterpriseInfo.getSequenceNbr());
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
Map<String, Object> resultMap = accessFeignService.getData(tzBaseEnterpriseInfoDto.getUseCode()).getResult();
if (!ValidationUtil.isEmpty(resultMap)) {
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0, area.indexOf("市") + 1);
String district = area.substring(city.length());
if (district.equals("高新区")) {
district = "雁塔区";
}
String industryName = "";
DataDictionary dataDictionary = iDataDictionaryService.getByCode(String.valueOf(resultMap.get("industryCode")), "HYXLDM");
if (!ValidationUtil.isEmpty(dataDictionary)) {
industryName = dataDictionary.getName();
}
String approveDate = String.valueOf(resultMap.get("approval_time"));
approveDate = approveDate.contains("年") ? approveDate.replace("年", "-") : approveDate;
approveDate = approveDate.contains("月") ? approveDate.replace("月", "-") : approveDate;
approveDate = approveDate.contains("日") ? approveDate.replace("日", "-") : approveDate;
regUnitIcDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
String approve = approveDate.substring(0, 10) + "核准";
tzBaseEnterpriseInfoDto.setApproval(approve);
try {
regUnitIcDto.setApprovedDate(DateUtils.dateParse(approveDate, "yyyy-MM-dd"));
} catch (ParseException e) {
e.printStackTrace();
}
regUnitIcDto.setUnitName(String.valueOf(resultMap.get("unitName")));
regUnitIcDto.setRegisteredOrgan(String.valueOf(resultMap.get("registration_authority")));
for (DataDictionary djjg : iDataDictionaryService.getByType("DJJG")) {
if (djjg.getName().equals(resultMap.get("registration_authority"))) {
regUnitIcDto.setRegisteredOrganCode(djjg.getSequenceNbr().toString());
}
}
regUnitIcDto.setBusinessState(String.valueOf(resultMap.get("operating_status")));
regUnitIcDto.setProvince("陕西省");
regUnitIcDto.setCity(city);
regUnitIcDto.setDistrict(district);
regUnitIcDto.setStree(String.valueOf(resultMap.get("street")));
regUnitIcDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitIcDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitIcDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
regUnitIcDto.setIndustryName(industryName);
regUnitIcDto.setRegisterAddress("陕西省/" + city + "/" + district);
ArrayList<Object> objects = new ArrayList<>();
objects.add("陕西省");
objects.add(city);
objects.add(district);
regUnitIcDto.setRegisterAddressList(objects);
regUnitIcDto.setIsNotAccess("1");
} else {
regUnitIcDto = tzBaseEnterpriseInfoDto.getRegUnitIcDto();
regUnitIcDto.setIsNotAccess("0");
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
tzBaseEnterpriseInfoDto.setApprovalTime(regUnitIcDto.getApprovedDate());
return tzBaseEnterpriseInfoDto;
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, String companyName) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit", companyName));
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = getDetail(tzBaseEnterpriseInfo);
ArrayList<TzBaseEnterpriseInfoDto> result = new ArrayList<>();
result.add(tzBaseEnterpriseInfoDto);
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
return page.setRecords(result);
}
@Override
public List<EquEnterDto> getInfoByUseUnit(String userUnit) {
return tzBaseEnterpriseInfoMapper.getInfoByUseUnit(userUnit);
}
@Override
public TzBaseEnterpriseInfoDto selectByUseUnit(String useUnit) {
if (ValidationUtil.isEmpty(useUnit)) {
return new TzBaseEnterpriseInfoDto();
}
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectByUseUnit(useUnit);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public String syncEnterpriseInfo() {
platformTokenService.getToken();
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;
current = current + 1;
for (int i = 1; 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.getSyncState() != 3) {
CompanyModel companyPrivilegeModel = Privilege.companyClient.queryByCompanyCode(speUseUnit.getCerCode()).getResult();
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code", speUseUnit.getCerCode());
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = this.getOne(queryWrapper);
Map<String, Object> resultMap = accessFeignService.getData(speUseUnit.getCerCode()).getResult();
if (ValidationUtil.isEmpty(resultMap)) {
if (!ValidationUtil.isEmpty(companyPrivilegeModel)) {
List<AgencyUserModel> agencyUserModelList = Privilege.agencyUserClient.queryByCompanyId(companyPrivilegeModel.getSequenceNbr(), null, null, null).getResult();
if (ValidationUtil.isEmpty(agencyUserModelList)) {
//spe表中的数据在工商查不到,且平台无用户,将删除企业数据
Privilege.companyClient.deleteCompany(String.valueOf(companyPrivilegeModel.getSequenceNbr()));
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
this.deleteBySeq(tzBaseEnterprisePrivilegeInfo.getSequenceNbr());
}
}
}
//spe表中的数据在工商查不到,设置spe表状态为1
speUseUnit.setSyncState(1);
speUseUnitService.updateById(speUseUnit);
} else {
CompanyModel privilegeCompanyModel = Privilege.companyClient.queryByCompanyName(String.valueOf(resultMap.get("registration_authority"))).getResult();
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(speUseUnit.getName());
companyModel.setCompanyCode(speUseUnit.getCerCode());
companyModel.setLevel("company");
companyModel.setAgencyCode("tzs");
companyModel.setCompanyType("使用单位");
companyModel.setAddress(String.valueOf(resultMap.get("address")));
companyModel.setParentId(privilegeCompanyModel.getSequenceNbr());
String area = String.valueOf(resultMap.get("area"));
String province = "";
if (area.contains("省")) {
province = area.substring(0, area.indexOf("省") + 1);
}
String city = "";
if (area.contains("市")) {
city = area.substring(province.length(), area.indexOf("市") + 1);
}
String district = area.substring(city.length() + province.length());
TzBaseEnterpriseInfo baseEnterpriseInfo = new TzBaseEnterpriseInfo();
baseEnterpriseInfo.setUseUnit(speUseUnit.getName());
baseEnterpriseInfo.setUseCode(speUseUnit.getCerCode());
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfo.setRegistrationAuthority(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setProvince(province);
baseEnterpriseInfo.setCity(city);
baseEnterpriseInfo.setDistrict(district);
baseEnterpriseInfo.setStreet(String.valueOf(resultMap.get("street")));
baseEnterpriseInfo.setCommunity(String.valueOf(resultMap.get("community")));
baseEnterpriseInfo.setAddress(String.valueOf(resultMap.get("address")));
baseEnterpriseInfo.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
baseEnterpriseInfo.setIndustry(String.valueOf(resultMap.get("industry")));
baseEnterpriseInfo.setSuperviseOrgName(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setSuperviseOrgCode(privilegeCompanyModel.getOrgCode());
baseEnterpriseInfo.setOperatingStatus(String.valueOf(resultMap.get("operating_status")));
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfoList.add(baseEnterpriseInfo);
//保存平台和业务的企业信息
try {
if (tzBaseEnterprisePrivilegeInfo == null && companyPrivilegeModel == null) {
//当企业表、平台表 中没有时
this.save(baseEnterpriseInfo);
Privilege.companyClient.create(companyModel);
} else if (tzBaseEnterprisePrivilegeInfo == null) {
//企业表没有,平台表有
this.save(baseEnterpriseInfo);
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
} else if (companyPrivilegeModel == null) {
//平台表没有,企业表有
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
Privilege.companyClient.create(companyModel);
} else {
//企业表有 平台表有
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
}
setSpeUseUnitState(3, speUseUnit);
} catch (Exception e) {
System.out.println(e.getMessage());
//当报错时 设置状态为 2
speUseUnit.setSyncState(2);
speUseUnitService.updateById(speUseUnit);
}
}
}
}
}
return "ok";
}
@Override
public TzBaseEnterpriseInfoDto companyInfoUpdate(Map<String, Object> map) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory")));
Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude");
tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map1.get("address")) ? null : map1.get("address"));
tzBaseEnterpriseInfo.setLongitude(ObjectUtils.isEmpty(map1.get("longitude")) ? null : String.valueOf(map1.get("longitude")));
tzBaseEnterpriseInfo.setLatitude(ObjectUtils.isEmpty(map1.get("latitude")) ? null : String.valueOf(map1.get("latitude")));
tzBaseEnterpriseInfo.setUseContact(ObjectUtils.isEmpty(map.get("useContact")) ? null : String.valueOf(map.get("useContact")));
tzBaseEnterpriseInfo.setContactPhone(ObjectUtils.isEmpty(map.get("contactPhone")) ? null : String.valueOf(map.get("contactPhone")));
tzBaseEnterpriseInfo.setUnitBusinessLicense(ObjectUtils.isEmpty(map.get("unitBusinessLicense")) ? null : JSON.toJSONString(map.get("unitBusinessLicense")));
tzBaseEnterpriseInfo.setIndustrySupervisor(ObjectUtils.isEmpty(map.get("industrySupervisor")) ? null : String.valueOf(map.get("industrySupervisor")));
tzBaseEnterpriseInfo.setSuperviseOrgCode(ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")));
tzBaseEnterpriseInfo.setSuperviseOrgName(ObjectUtils.isEmpty(map.get("superviseOrgName")) ? null : String.valueOf(map.get("superviseOrgName")));
//修改工商信息
RegUnitIc regUnitIc = new RegUnitIc();
List<String> addressList = (List<String>) map.get("registerAddressList");
tzBaseEnterpriseInfo.setProvince(addressList.get(0));
tzBaseEnterpriseInfo.setCity(addressList.get(1));
tzBaseEnterpriseInfo.setDistrict(addressList.get(3));
tzBaseEnterpriseInfo.setCommunity(ObjectUtils.isEmpty(map.get("community")) ? null : String.valueOf(map.get("community")));
tzBaseEnterpriseInfo.setStreet(ObjectUtils.isEmpty(map.get("stree")) ? null : String.valueOf(map.get("stree")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : String.valueOf(map.get("legalPerson")));
regUnitIc.setIndustryName(ObjectUtils.isEmpty(map.get("industryName")) ? null : String.valueOf(map.get("industryName")));
regUnitIc.setRegisteredOrgan(ObjectUtils.isEmpty(map.get("registeredOrgan")) ? null : String.valueOf(map.get("registeredOrgan")));
Date approvedDate = new Date();
try {
approvedDate = DateUtils.dateParse(String.valueOf(map.get("approvedDate")), "yyyy-MM-dd");
} catch (ParseException e) {
throw new RuntimeException(e);
}
regUnitIc.setBusinessState(ObjectUtils.isEmpty(map.get("businessState")) ? null : String.valueOf(map.get("businessState")));
regUnitIc.setApprovedDate(ObjectUtils.isEmpty(map.get("approvedDate")) ? null : approvedDate);
RegUnitIcDto regUnitIcDto = JSON.parseObject(JSON.toJSONString(map.get("regUnitIcDto")), new TypeReference<RegUnitIcDto>() {
});
// regUnitIcService.update(regUnitIc, new QueryWrapper<RegUnitIc>().eq("unit_code", regUnitIcDto.getUnitCode()));
//修改许可信息
List<BaseUnitLicence> licences = (List<BaseUnitLicence>) map.get("unitLicences");
//修改许可信息
List<BaseUnitLicence> licences = (List<BaseUnitLicence>) map.get("unitLicences");
// baseUnitLicenceService.saveOrUpdateBatch(licences);
// boolean b = tzBaseEnterpriseInfoService.updateById(tzBaseEnterpriseInfo);
boolean b = true;
boolean b = true;
if (b) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
......@@ -505,12 +482,12 @@ public class TzBaseEnterpriseInfoServiceImpl
}
@Override
public String setLabel(List<Long> enterpriseIds, List<String> enterpriseLabels) {
List<TzBaseEnterpriseInfo> tzBaseEnterpriseInfos = tzBaseEnterpriseInfoMapper.selectBatchIds(enterpriseIds);
if (!ObjectUtils.isEmpty(enterpriseLabels)) {
for (TzBaseEnterpriseInfo tzBaseEnterpriseInfo : tzBaseEnterpriseInfos) {
// 标签递增逻辑
@Override
public String setLabel(List<Long> enterpriseIds, List<String> enterpriseLabels) {
List<TzBaseEnterpriseInfo> tzBaseEnterpriseInfos = tzBaseEnterpriseInfoMapper.selectBatchIds(enterpriseIds);
if (!ObjectUtils.isEmpty(enterpriseLabels)) {
for (TzBaseEnterpriseInfo tzBaseEnterpriseInfo : tzBaseEnterpriseInfos) {
// 标签递增逻辑
// if (!ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getRegulatoryLabels())) {
// String result = checkLabel(enterpriseLabels, tzBaseEnterpriseInfo.getRegulatoryLabels());
// tzBaseEnterpriseInfo.setRegulatoryLabels(result);
......@@ -518,91 +495,72 @@ public class TzBaseEnterpriseInfoServiceImpl
// String labels = String.join(",", enterpriseLabels);
// tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
// }
String labels = String.join(",", enterpriseLabels);
tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
}
} else {
tzBaseEnterpriseInfos.forEach(item -> {
item.setRegulatoryLabels(null);
});
}
this.updateBatchById(tzBaseEnterpriseInfos);
return "success";
}
private String checkLabel(List<String> enterpriseLabels, String result) {
List<String> strings = Arrays.asList(result.split(","));
ArrayList<String> res = new ArrayList<>(strings);
List<String> collect = enterpriseLabels.stream().filter(item -> !strings.contains(item)).collect(Collectors.toList());
res.addAll(collect);
return String.join(",", res);
}
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
RequestContext.setAppKey(appkey);
RequestContext.setProduct(webProduct);
//获取机器人的token,获取不到则去登录
if (ObjectUtils.isEmpty(redisUtil.get(TZS_USER_TOKEN))) {
loginCtiUser();
}
RequestContext.setToken(String.valueOf(redisUtil.get(TZS_USER_TOKEN)));
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
regUnitInfo.setAdminIdNumber(String.valueOf(map.get("adminIdNumber")));
regUnitInfo.setAdminIdCardPhoto(JSON.toJSONString(map.get("adminIdCardPhoto")));
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(String.valueOf(map.get("adminTel")));
me.setRealName(String.valueOf(map.get("adminName")));
FeignClientResult<AgencyUserModel> updateResult = Privilege.agencyUserClient.update(me, String.valueOf(map.get("adminUserId")));
if (200 == updateResult.getStatus()) {
regUnitInfoService.update(regUnitInfo, new QueryWrapper<RegUnitInfo>().eq("unit_code", unitCode));
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
} else {
resultMap.put("fail", "平台用户修改失败,请联系管理员");
}
} else {
resultMap.put("fail", "平台用户不存在");
}
return resultMap;
}
//机器人用户登录
private void loginCtiUser() {
String passwd = DesUtil.encode(tzsAdminPwd, "qaz");
IdPasswordAuthModel loninData = new IdPasswordAuthModel();
loninData.setLoginId(tzsAdminName);
loninData.setPassword(passwd);
FeignClientResult loginResult = Privilege.authClient.idpassword(loninData);
if(loginResult.getStatus() == 200) {
HashMap resultMap = (HashMap) loginResult.getResult();
redisUtil.set(TZS_USER_TOKEN, resultMap.get("token").toString(), redisRegionTimeSecond);
}
}
public void setSpeUseUnitState(int state,SpeUseUnit speUseUnit){
speUseUnit.setSyncState(state);
speUseUnitService.updateById(speUseUnit);
}
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;
}
String labels = String.join(",", enterpriseLabels);
tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
}
} else {
tzBaseEnterpriseInfos.forEach(item -> {
item.setRegulatoryLabels(null);
});
}
this.updateBatchById(tzBaseEnterpriseInfos);
return "success";
}
private String checkLabel(List<String> enterpriseLabels, String result) {
List<String> strings = Arrays.asList(result.split(","));
ArrayList<String> res = new ArrayList<>(strings);
List<String> collect = enterpriseLabels.stream().filter(item -> !strings.contains(item)).collect(Collectors.toList());
res.addAll(collect);
return String.join(",", res);
}
@Override
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
platformTokenService.getToken();
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
regUnitInfo.setAdminIdNumber(String.valueOf(map.get("adminIdNumber")));
regUnitInfo.setAdminIdCardPhoto(JSON.toJSONString(map.get("adminIdCardPhoto")));
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(String.valueOf(map.get("adminTel")));
me.setRealName(String.valueOf(map.get("adminName")));
FeignClientResult<AgencyUserModel> updateResult = Privilege.agencyUserClient.update(me, String.valueOf(map.get("adminUserId")));
if (200 == updateResult.getStatus()) {
regUnitInfoService.update(regUnitInfo, new QueryWrapper<RegUnitInfo>().eq("unit_code", unitCode));
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
} else {
resultMap.put("fail", "平台用户修改失败,请联系管理员");
}
} else {
resultMap.put("fail", "平台用户不存在");
}
return resultMap;
}
public void setSpeUseUnitState(int state, SpeUseUnit speUseUnit) {
speUseUnit.setSyncState(state);
speUseUnitService.updateById(speUseUnit);
}
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,7 +13,7 @@ eureka.instance.metadata-map.management.api-docs=http://172.16.3.34:${server.por
eureka.instance.ip-address=172.16.3.34
## ES properties:
elasticsearch.username=elastic
elasticsearch.password=a123456
elasticsearch.password=123456
spring.elasticsearch.rest.uris=http://172.16.10.230:9200
## unit(h)
alertcall.es.synchrony.time=48
......
......@@ -124,11 +124,7 @@ tzs.wechat.tempId.supervise=P5XGbszS2Pc6kynvGjzPpZ--ikAwDZo6O7WdJ2EUxtE
## \uFFFD\uFFFD\uFFFD\u06BA\u0172\uFFFD\uFFFD\uFFFD\uFFFD\u00FB\uFFFDid\uFFFD\uFFFD\u01BD\u0328userId\uFFFD\uFFFD
tzs.wechat.test.userId=3393279
admin.product=AMOS-SERVICE-ADMIN
admin.appkey=AMOS_ADMIN
admin.user=admin_tzs
admin.password=a1234560
admin.product.web=AMOS-WEB-ADMIN
amos.secret.key=qazknife4j.production=false
knife4j.production=false
......
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.yeejoin.amos.boot.module.jczs.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.jczs.biz.service.impl.TzBaseEnterpriseInfoServiceImpl;
import com.yeejoin.amos.boot.module.jczs.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.jczs.biz.utils.RedisUtil;
......@@ -40,11 +41,9 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
@Autowired
RedisUtil redisUtil;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appKey;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String s, MqttMessage message) throws Exception {
......@@ -58,9 +57,7 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
//判断库中业务tz_base_enterprise_info是否存在
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
......
package com.yeejoin.amos.boot.module.jczs.biz.service.impl;
import com.yeejoin.amos.boot.module.jczs.biz.utils.RedisUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
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 com.yeejoin.amos.boot.module.jczs.biz.utils.RedisUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
@Service
public class StartPlatformTokenService {
@Value("${admin.product}")
String product;
@Value("${admin.appkey}")
String appkey;
@Value("${admin.user}")
String user;
@Value("${admin.password}")
String password;
@Autowired
RedisUtil redisUtil;
@Value("${amos.secret.key}")
String secretKey;
@Autowired
AmosRequestContext amosRequestContext;
@Autowired
RedisUtil redisUtil;
@Autowired
AmosRequestContext amosRequestContext;
public void getToken() {
RequestContext.setProduct(product);
RequestContext.setAppKey(appkey);
String token = amosRequestContext.getToken();
System.out.println("token:" + token);
RequestContext.setToken(token);
redisUtil.set("platform_token", token);
}
public void getToken() {
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setToken(amosRequestContext.getToken());
}
}
......@@ -11,8 +11,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.jczs.flc.biz.service.impl.RegUnitIcServiceImpl;
import com.yeejoin.amos.boot.module.jczs.flc.biz.service.impl.RegUnitInfoServiceImpl;
import com.yeejoin.amos.boot.module.jczs.api.dto.BaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.jczs.api.dto.EquEnterDto;
import com.yeejoin.amos.boot.module.jczs.api.dto.TzBaseEnterpriseInfoDto;
......@@ -21,7 +19,6 @@ import com.yeejoin.amos.boot.module.jczs.api.entity.PageParam;
import com.yeejoin.amos.boot.module.jczs.api.entity.SpeUseUnit;
import com.yeejoin.amos.boot.module.jczs.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.jczs.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.jczs.api.service.IBaseUnitLicenceService;
import com.yeejoin.amos.boot.module.jczs.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.jczs.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.jczs.flc.api.dto.RegUnitIcDto;
......@@ -30,12 +27,12 @@ import com.yeejoin.amos.boot.module.jczs.flc.api.entity.RegUnitIc;
import com.yeejoin.amos.boot.module.jczs.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.jczs.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.boot.module.jczs.flc.api.mapper.RegUnitInfoMapper;
import com.yeejoin.amos.boot.module.jczs.flc.biz.service.impl.RegUnitIcServiceImpl;
import com.yeejoin.amos.boot.module.jczs.flc.biz.service.impl.RegUnitInfoServiceImpl;
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.IdPasswordAuthModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -57,444 +54,421 @@ import java.util.stream.Collectors;
*/
@Service
public class TzBaseEnterpriseInfoServiceImpl
extends BaseService<TzBaseEnterpriseInfoDto, TzBaseEnterpriseInfo, TzBaseEnterpriseInfoMapper>
implements ITzBaseEnterpriseInfoService {
extends BaseService<TzBaseEnterpriseInfoDto, TzBaseEnterpriseInfo, TzBaseEnterpriseInfoMapper>
implements ITzBaseEnterpriseInfoService {
@Autowired
RedisUtil redisUtil;
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Value("${admin.product.web}")
String webProduct;
@Autowired
BaseUnitLicenceServiceImpl baseUnitLicenceService;
@Value("${admin.appkey}")
String appkey;
@Autowired
RegUnitIcServiceImpl regUnitIcService;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
BaseUnitLicenceServiceImpl baseUnitLicenceService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
@Autowired
RegUnitIcServiceImpl regUnitIcService;
@Autowired
private AccessFeignService accessFeignService;
@Autowired
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
@Autowired
StartPlatformTokenService platformTokenService;
/**
* 企业管理员变更缓存key前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
List<String> orgCodeList = new ArrayList<>();
if (tzBaseEnterpriseInfoDto.getSuperviseKey() != null) {
FeignClientResult<CompanyModel> result = Privilege.companyClient
.seleteOne(Long.valueOf(tzBaseEnterpriseInfoDto.getSuperviseKey()));
if (result.getResult() != null) {
tzBaseEnterpriseInfoDto.setSuperviseOrgCode(result.getResult().getOrgCode());
}
}
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
List<JSONObject> companyType1 = equipmentCategoryService.getCompanyType();
if (!ValidationUtil.isEmpty(companyType1)) {
for (JSONObject jsonObject : companyType1) {
String orgCode = jsonObject.getString("orgCode");
if (!ValidationUtil.isEmpty(orgCode)) {
orgCodeList.add(orgCode);
}
}
}
return this.baseMapper.pageList(page, tzBaseEnterpriseInfoDto, orgCodeList);
}
@Override
public TzBaseEnterpriseInfoDto detail(Long id) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = this.getById(id);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
tzBaseEnterpriseInfoDto.setSafetyTwoPhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyTwoPhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyTwoPhoto()));
tzBaseEnterpriseInfoDto.setSafetyOnePhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyOnePhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyOnePhoto()));
tzBaseEnterpriseInfoDto.setUnitBusinessLicense(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitBusinessLicense()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitBusinessLicense()));
tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur()));
tzBaseEnterpriseInfoDto.setEquipCategory(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getEquipCategory()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()));
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 管理员信息
RegUnitInfo regUnitInfo = regUnitInfoService.getOne(
new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
if (regUnitInfo != null) {
BeanUtils.copyProperties(regUnitInfo, regUnitInfoDto);
}
regUnitInfoDto.setAdminIdCardPhoto((ValidationUtil.isEmpty(regUnitInfo) || ValidationUtil.isEmpty(regUnitInfo.getAdminIdCardPhoto())) ? new ArrayList() : JSON.parseArray(regUnitInfo.getAdminIdCardPhoto()));
tzBaseEnterpriseInfoDto.setRegUnitInfoDto(regUnitInfoDto);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public TzBaseEnterpriseInfoDto getInfoByUseCode(String useCode) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_code", useCode));
return ObjectUtils.isEmpty(tzBaseEnterpriseInfo) ? null : getDetail(tzBaseEnterpriseInfo);
}
private TzBaseEnterpriseInfoDto getDetail(TzBaseEnterpriseInfo tzBaseEnterpriseInfo) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = detail(tzBaseEnterpriseInfo.getSequenceNbr());
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
Map<String, Object> resultMap = accessFeignService.getData(tzBaseEnterpriseInfoDto.getUseCode()).getResult();
if (!ValidationUtil.isEmpty(resultMap)) {
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0, area.indexOf("市") + 1);
String district = area.substring(city.length());
if (district.equals("高新区")) {
district = "雁塔区";
}
String industryName = "";
DataDictionary dataDictionary = iDataDictionaryService.getByCode(String.valueOf(resultMap.get("industryCode")), "HYXLDM");
if (!ValidationUtil.isEmpty(dataDictionary)) {
industryName = dataDictionary.getName();
}
String approveDate = String.valueOf(resultMap.get("approval_time"));
approveDate = approveDate.contains("年") ? approveDate.replace("年", "-") : approveDate;
approveDate = approveDate.contains("月") ? approveDate.replace("月", "-") : approveDate;
approveDate = approveDate.contains("日") ? approveDate.replace("日", "-") : approveDate;
regUnitIcDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
String approve = approveDate.substring(0, 10) + "核准";
tzBaseEnterpriseInfoDto.setApproval(approve);
try {
regUnitIcDto.setApprovedDate(DateUtils.dateParse(approveDate, "yyyy-MM-dd"));
} catch (ParseException e) {
e.printStackTrace();
}
regUnitIcDto.setUnitName(String.valueOf(resultMap.get("unitName")));
regUnitIcDto.setRegisteredOrgan(String.valueOf(resultMap.get("registration_authority")));
for (DataDictionary djjg : iDataDictionaryService.getByType("DJJG")) {
if (djjg.getName().equals(resultMap.get("registration_authority"))) {
regUnitIcDto.setRegisteredOrganCode(djjg.getSequenceNbr().toString());
}
}
regUnitIcDto.setBusinessState(String.valueOf(resultMap.get("operating_status")));
regUnitIcDto.setProvince("陕西省");
regUnitIcDto.setCity(city);
regUnitIcDto.setDistrict(district);
regUnitIcDto.setStree(String.valueOf(resultMap.get("street")));
regUnitIcDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitIcDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitIcDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
regUnitIcDto.setIndustryName(industryName);
regUnitIcDto.setRegisterAddress("陕西省/" + city + "/" + district);
ArrayList<Object> objects = new ArrayList<>();
objects.add("陕西省");
objects.add(city);
objects.add(district);
regUnitIcDto.setRegisterAddressList(objects);
regUnitIcDto.setIsNotAccess("1");
} else {
regUnitIcDto = tzBaseEnterpriseInfoDto.getRegUnitIcDto();
regUnitIcDto.setIsNotAccess("0");
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
tzBaseEnterpriseInfoDto.setApprovalTime(regUnitIcDto.getApprovedDate());
return tzBaseEnterpriseInfoDto;
}
@Autowired
private IBaseUnitLicenceService iBaseUnitLicenceService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
@Autowired
private AccessFeignService accessFeignService;
@Autowired
private ITzBaseEnterpriseInfoService tzBaseEnterpriseInfoService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${tzs.admin.name:tzs_admin}")
private String tzsAdminName;
@Value("${tzs.admin.pwd:a1234567}")
private String tzsAdminPwd;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
/**机器人用户token缓存key */
public static final String TZS_USER_TOKEN = "TZS_USER_TOKEN";
/**
* 企业管理员变更缓存key前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
List<String> orgCodeList = new ArrayList<>();
if (tzBaseEnterpriseInfoDto.getSuperviseKey() != null) {
FeignClientResult<CompanyModel> result = Privilege.companyClient
.seleteOne(Long.valueOf(tzBaseEnterpriseInfoDto.getSuperviseKey()));
if (result.getResult() != null) {
tzBaseEnterpriseInfoDto.setSuperviseOrgCode(result.getResult().getOrgCode());
}
}
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
List<JSONObject> companyType1 = equipmentCategoryService.getCompanyType();
if (!ValidationUtil.isEmpty(companyType1)) {
for (JSONObject jsonObject : companyType1) {
String orgCode = jsonObject.getString("orgCode");
if (!ValidationUtil.isEmpty(orgCode)) {
orgCodeList.add(orgCode);
}
}
}
return this.baseMapper.pageList(page, tzBaseEnterpriseInfoDto,orgCodeList);
}
@Override
public TzBaseEnterpriseInfoDto detail(Long id) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = this.getById(id);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
tzBaseEnterpriseInfoDto.setSafetyTwoPhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyTwoPhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyTwoPhoto()));
tzBaseEnterpriseInfoDto.setSafetyOnePhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyOnePhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyOnePhoto()));
tzBaseEnterpriseInfoDto.setUnitBusinessLicense(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitBusinessLicense()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitBusinessLicense()));
tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur()));
tzBaseEnterpriseInfoDto.setEquipCategory(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getEquipCategory()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()));
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 管理员信息
RegUnitInfo regUnitInfo = regUnitInfoService.getOne(
new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
if (regUnitInfo != null) {
BeanUtils.copyProperties(regUnitInfo, regUnitInfoDto);
}
regUnitInfoDto.setAdminIdCardPhoto((ValidationUtil.isEmpty(regUnitInfo)||ValidationUtil.isEmpty(regUnitInfo.getAdminIdCardPhoto())) ? new ArrayList() : JSON.parseArray(regUnitInfo.getAdminIdCardPhoto()));
tzBaseEnterpriseInfoDto.setRegUnitInfoDto(regUnitInfoDto);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public TzBaseEnterpriseInfoDto getInfoByUseCode(String useCode) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_code", useCode));
return ObjectUtils.isEmpty(tzBaseEnterpriseInfo) ? null : getDetail(tzBaseEnterpriseInfo);
}
private TzBaseEnterpriseInfoDto getDetail(TzBaseEnterpriseInfo tzBaseEnterpriseInfo){
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = detail(tzBaseEnterpriseInfo.getSequenceNbr());
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
Map<String, Object> resultMap = accessFeignService.getData(tzBaseEnterpriseInfoDto.getUseCode()).getResult();
if (!ValidationUtil.isEmpty(resultMap)) {
String area = String.valueOf(resultMap.get("area"));
String city = area.substring(0, area.indexOf("市") + 1);
String district = area.substring(city.length());
if (district.equals("高新区")) {
district = "雁塔区";
}
String industryName = "";
DataDictionary dataDictionary = iDataDictionaryService.getByCode(String.valueOf(resultMap.get("industryCode")), "HYXLDM");
if (!ValidationUtil.isEmpty(dataDictionary)) {
industryName = dataDictionary.getName();
}
String approveDate = String.valueOf(resultMap.get("approval_time"));
approveDate = approveDate.contains("年") ? approveDate.replace("年", "-") : approveDate;
approveDate = approveDate.contains("月") ? approveDate.replace("月", "-") : approveDate;
approveDate = approveDate.contains("日") ? approveDate.replace("日", "-") : approveDate;
regUnitIcDto.setUnitCode(String.valueOf(resultMap.get("creditCode")));
String approve = approveDate.substring(0, 10) + "核准";
tzBaseEnterpriseInfoDto.setApproval(approve);
try {
regUnitIcDto.setApprovedDate(DateUtils.dateParse(approveDate, "yyyy-MM-dd"));
} catch (ParseException e) {
e.printStackTrace();
}
regUnitIcDto.setUnitName(String.valueOf(resultMap.get("unitName")));
regUnitIcDto.setRegisteredOrgan(String.valueOf(resultMap.get("registration_authority")));
for (DataDictionary djjg : iDataDictionaryService.getByType("DJJG")) {
if(djjg.getName().equals(resultMap.get("registration_authority"))){
regUnitIcDto.setRegisteredOrganCode(djjg.getSequenceNbr().toString());
}
}
regUnitIcDto.setBusinessState(String.valueOf(resultMap.get("operating_status")));
regUnitIcDto.setProvince("陕西省");
regUnitIcDto.setCity(city);
regUnitIcDto.setDistrict(district);
regUnitIcDto.setStree(String.valueOf(resultMap.get("street")));
regUnitIcDto.setCommunity(String.valueOf(resultMap.get("community")));
regUnitIcDto.setAddress(String.valueOf(resultMap.get("address")));
regUnitIcDto.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
regUnitIcDto.setIndustryName(industryName);
regUnitIcDto.setRegisterAddress("陕西省/" + city + "/" + district);
ArrayList<Object> objects = new ArrayList<>();
objects.add("陕西省");
objects.add(city);
objects.add(district);
regUnitIcDto.setRegisterAddressList(objects);
regUnitIcDto.setIsNotAccess("1");
} else {
regUnitIcDto = tzBaseEnterpriseInfoDto.getRegUnitIcDto();
regUnitIcDto.setIsNotAccess("0");
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
tzBaseEnterpriseInfoDto.setApprovalTime(regUnitIcDto.getApprovedDate());
return tzBaseEnterpriseInfoDto;
}
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, String companyName) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit", companyName));
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = getDetail(tzBaseEnterpriseInfo);
ArrayList<TzBaseEnterpriseInfoDto> result = new ArrayList<>();
result.add(tzBaseEnterpriseInfoDto);
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
return page.setRecords(result);
}
@Override
public List<EquEnterDto> getInfoByUseUnit(String userUnit) {
return tzBaseEnterpriseInfoMapper.getInfoByUseUnit(userUnit);
}
@Override
public TzBaseEnterpriseInfoDto selectByUseUnit(String useUnit) {
if(ValidationUtil.isEmpty(useUnit)){
return new TzBaseEnterpriseInfoDto();
}
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectByUseUnit(useUnit);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@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;
current = current + 1;
for(int i = 1; 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.getSyncState() != 3){
CompanyModel companyPrivilegeModel = Privilege.companyClient.queryByCompanyCode(speUseUnit.getCerCode()).getResult();
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code",speUseUnit.getCerCode());
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = this.getOne(queryWrapper);
Map<String, Object> resultMap = accessFeignService.getData(speUseUnit.getCerCode()).getResult();
if (ValidationUtil.isEmpty(resultMap)){
if(!ValidationUtil.isEmpty(companyPrivilegeModel)){
List<AgencyUserModel> agencyUserModelList = Privilege.agencyUserClient.queryByCompanyId(companyPrivilegeModel.getSequenceNbr(),null,null,null).getResult();
if(ValidationUtil.isEmpty(agencyUserModelList)){
//spe表中的数据在工商查不到,且平台无用户,将删除企业数据
Privilege.companyClient.deleteCompany(String.valueOf(companyPrivilegeModel.getSequenceNbr()));
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
this.deleteBySeq(tzBaseEnterprisePrivilegeInfo.getSequenceNbr());
}
}
}
//spe表中的数据在工商查不到,设置spe表状态为1
speUseUnit.setSyncState(1);
speUseUnitService.updateById(speUseUnit);
}else {
CompanyModel privilegeCompanyModel = Privilege.companyClient.queryByCompanyName(String.valueOf(resultMap.get("registration_authority"))).getResult();
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(speUseUnit.getName());
companyModel.setCompanyCode(speUseUnit.getCerCode());
companyModel.setLevel("company");
companyModel.setAgencyCode("tzs");
companyModel.setCompanyType("使用单位");
companyModel.setAddress(String.valueOf(resultMap.get("address")));
companyModel.setParentId(privilegeCompanyModel.getSequenceNbr());
String area = String.valueOf(resultMap.get("area"));
String province = "";
if (area.contains("省")) {
province = area.substring(0, area.indexOf("省") + 1);
}
String city = "";
if (area.contains("市")) {
city = area.substring(province.length(), area.indexOf("市") + 1);
}
String district = area.substring(city.length() + province.length());
TzBaseEnterpriseInfo baseEnterpriseInfo = new TzBaseEnterpriseInfo();
baseEnterpriseInfo.setUseUnit(speUseUnit.getName());
baseEnterpriseInfo.setUseCode(speUseUnit.getCerCode());
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfo.setRegistrationAuthority(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setProvince(province);
baseEnterpriseInfo.setCity(city);
baseEnterpriseInfo.setDistrict(district);
baseEnterpriseInfo.setStreet(String.valueOf(resultMap.get("street")));
baseEnterpriseInfo.setCommunity(String.valueOf(resultMap.get("community")));
baseEnterpriseInfo.setAddress(String.valueOf(resultMap.get("address")));
baseEnterpriseInfo.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
baseEnterpriseInfo.setIndustry(String.valueOf(resultMap.get("industry")));
baseEnterpriseInfo.setSuperviseOrgName(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setSuperviseOrgCode(privilegeCompanyModel.getOrgCode());
baseEnterpriseInfo.setOperatingStatus(String.valueOf(resultMap.get("operating_status")));
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfoList.add(baseEnterpriseInfo);
//保存平台和业务的企业信息
try {
if (tzBaseEnterprisePrivilegeInfo == null && companyPrivilegeModel == null) {
//当企业表、平台表 中没有时
this.save(baseEnterpriseInfo);
Privilege.companyClient.create(companyModel);
} else if (tzBaseEnterprisePrivilegeInfo == null) {
//企业表没有,平台表有
this.save(baseEnterpriseInfo);
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
} else if (companyPrivilegeModel == null) {
//平台表没有,企业表有
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
Privilege.companyClient.create(companyModel);
} else {
//企业表有 平台表有
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
}
setSpeUseUnitState(3,speUseUnit);
} catch (Exception e) {
System.out.println(e.getMessage());
//当报错时 设置状态为 2
speUseUnit.setSyncState(2);
speUseUnitService.updateById(speUseUnit);
}
}
}
}
}
return "ok";
}
@Override
public TzBaseEnterpriseInfoDto companyInfoUpdate(Map<String, Object> map) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory")));
Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude");
tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map1.get("address")) ? null : map1.get("address"));
tzBaseEnterpriseInfo.setLongitude(ObjectUtils.isEmpty(map1.get("longitude")) ? null : String.valueOf(map1.get("longitude")));
tzBaseEnterpriseInfo.setLatitude(ObjectUtils.isEmpty(map1.get("latitude")) ? null : String.valueOf(map1.get("latitude")));
tzBaseEnterpriseInfo.setUseContact(ObjectUtils.isEmpty(map.get("useContact")) ? null : String.valueOf(map.get("useContact")));
tzBaseEnterpriseInfo.setContactPhone(ObjectUtils.isEmpty(map.get("contactPhone")) ? null : String.valueOf(map.get("contactPhone")));
tzBaseEnterpriseInfo.setUnitBusinessLicense(ObjectUtils.isEmpty(map.get("unitBusinessLicense")) ? null : JSON.toJSONString(map.get("unitBusinessLicense")));
tzBaseEnterpriseInfo.setIndustrySupervisor(ObjectUtils.isEmpty(map.get("industrySupervisor")) ? null : String.valueOf(map.get("industrySupervisor")));
tzBaseEnterpriseInfo.setSuperviseOrgCode(ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")));
tzBaseEnterpriseInfo.setSuperviseOrgName(ObjectUtils.isEmpty(map.get("superviseOrgName")) ? null : String.valueOf(map.get("superviseOrgName")));
//修改工商信息
RegUnitIc regUnitIc = new RegUnitIc();
List<String> addressList = (List<String>) map.get("registerAddressList");
tzBaseEnterpriseInfo.setProvince(addressList.get(0));
tzBaseEnterpriseInfo.setCity(addressList.get(1));
tzBaseEnterpriseInfo.setDistrict(addressList.get(3));
tzBaseEnterpriseInfo.setCommunity(ObjectUtils.isEmpty(map.get("community")) ? null : String.valueOf(map.get("community")));
tzBaseEnterpriseInfo.setStreet(ObjectUtils.isEmpty(map.get("stree")) ? null : String.valueOf(map.get("stree")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : String.valueOf(map.get("legalPerson")));
regUnitIc.setIndustryName(ObjectUtils.isEmpty(map.get("industryName")) ? null : String.valueOf(map.get("industryName")));
regUnitIc.setRegisteredOrgan(ObjectUtils.isEmpty(map.get("registeredOrgan")) ? null : String.valueOf(map.get("registeredOrgan")));
Date approvedDate = new Date();
try {
approvedDate = DateUtils.dateParse(String.valueOf(map.get("approvedDate")), "yyyy-MM-dd");
} catch (ParseException e) {
throw new RuntimeException(e);
}
regUnitIc.setBusinessState(ObjectUtils.isEmpty(map.get("businessState")) ? null : String.valueOf(map.get("businessState")));
regUnitIc.setApprovedDate(ObjectUtils.isEmpty(map.get("approvedDate")) ? null : approvedDate);
RegUnitIcDto regUnitIcDto = JSON.parseObject(JSON.toJSONString(map.get("regUnitIcDto")), new TypeReference<RegUnitIcDto>() {
});
@Override
public IPage<TzBaseEnterpriseInfoDto> page(PageParam pageParam, String companyName) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit", companyName));
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = getDetail(tzBaseEnterpriseInfo);
ArrayList<TzBaseEnterpriseInfoDto> result = new ArrayList<>();
result.add(tzBaseEnterpriseInfoDto);
Page<TzBaseEnterpriseInfoDto> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
return page.setRecords(result);
}
@Override
public List<EquEnterDto> getInfoByUseUnit(String userUnit) {
return tzBaseEnterpriseInfoMapper.getInfoByUseUnit(userUnit);
}
@Override
public TzBaseEnterpriseInfoDto selectByUseUnit(String useUnit) {
if (ValidationUtil.isEmpty(useUnit)) {
return new TzBaseEnterpriseInfoDto();
}
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectByUseUnit(useUnit);
if (tzBaseEnterpriseInfo != null) {
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
}
// 许可信息
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
}
@Override
public String syncEnterpriseInfo() {
platformTokenService.getToken();
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;
current = current + 1;
for (int i = 1; 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.getSyncState() != 3) {
CompanyModel companyPrivilegeModel = Privilege.companyClient.queryByCompanyCode(speUseUnit.getCerCode()).getResult();
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code", speUseUnit.getCerCode());
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = this.getOne(queryWrapper);
Map<String, Object> resultMap = accessFeignService.getData(speUseUnit.getCerCode()).getResult();
if (ValidationUtil.isEmpty(resultMap)) {
if (!ValidationUtil.isEmpty(companyPrivilegeModel)) {
List<AgencyUserModel> agencyUserModelList = Privilege.agencyUserClient.queryByCompanyId(companyPrivilegeModel.getSequenceNbr(), null, null, null).getResult();
if (ValidationUtil.isEmpty(agencyUserModelList)) {
//spe表中的数据在工商查不到,且平台无用户,将删除企业数据
Privilege.companyClient.deleteCompany(String.valueOf(companyPrivilegeModel.getSequenceNbr()));
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
this.deleteBySeq(tzBaseEnterprisePrivilegeInfo.getSequenceNbr());
}
}
}
//spe表中的数据在工商查不到,设置spe表状态为1
speUseUnit.setSyncState(1);
speUseUnitService.updateById(speUseUnit);
} else {
CompanyModel privilegeCompanyModel = Privilege.companyClient.queryByCompanyName(String.valueOf(resultMap.get("registration_authority"))).getResult();
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(speUseUnit.getName());
companyModel.setCompanyCode(speUseUnit.getCerCode());
companyModel.setLevel("company");
companyModel.setAgencyCode("tzs");
companyModel.setCompanyType("使用单位");
companyModel.setAddress(String.valueOf(resultMap.get("address")));
companyModel.setParentId(privilegeCompanyModel.getSequenceNbr());
String area = String.valueOf(resultMap.get("area"));
String province = "";
if (area.contains("省")) {
province = area.substring(0, area.indexOf("省") + 1);
}
String city = "";
if (area.contains("市")) {
city = area.substring(province.length(), area.indexOf("市") + 1);
}
String district = area.substring(city.length() + province.length());
TzBaseEnterpriseInfo baseEnterpriseInfo = new TzBaseEnterpriseInfo();
baseEnterpriseInfo.setUseUnit(speUseUnit.getName());
baseEnterpriseInfo.setUseCode(speUseUnit.getCerCode());
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfo.setRegistrationAuthority(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setProvince(province);
baseEnterpriseInfo.setCity(city);
baseEnterpriseInfo.setDistrict(district);
baseEnterpriseInfo.setStreet(String.valueOf(resultMap.get("street")));
baseEnterpriseInfo.setCommunity(String.valueOf(resultMap.get("community")));
baseEnterpriseInfo.setAddress(String.valueOf(resultMap.get("address")));
baseEnterpriseInfo.setLegalPerson(String.valueOf(resultMap.get("legalPeople")));
baseEnterpriseInfo.setIndustry(String.valueOf(resultMap.get("industry")));
baseEnterpriseInfo.setSuperviseOrgName(String.valueOf(resultMap.get("registration_authority")));
baseEnterpriseInfo.setSuperviseOrgCode(privilegeCompanyModel.getOrgCode());
baseEnterpriseInfo.setOperatingStatus(String.valueOf(resultMap.get("operating_status")));
baseEnterpriseInfo.setUnitType("使用单位");
baseEnterpriseInfoList.add(baseEnterpriseInfo);
//保存平台和业务的企业信息
try {
if (tzBaseEnterprisePrivilegeInfo == null && companyPrivilegeModel == null) {
//当企业表、平台表 中没有时
this.save(baseEnterpriseInfo);
Privilege.companyClient.create(companyModel);
} else if (tzBaseEnterprisePrivilegeInfo == null) {
//企业表没有,平台表有
this.save(baseEnterpriseInfo);
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
} else if (companyPrivilegeModel == null) {
//平台表没有,企业表有
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
Privilege.companyClient.create(companyModel);
} else {
//企业表有 平台表有
if (!companyPrivilegeModel.getCompanyType().contains(companyModel.getCompanyType())) {
companyPrivilegeModel.setCompanyType(companyPrivilegeModel.getCompanyType() + "," + companyModel.getCompanyType());
Privilege.companyClient.update(companyPrivilegeModel, companyPrivilegeModel.getSequenceNbr());
}
if (!tzBaseEnterprisePrivilegeInfo.getUnitType().contains(baseEnterpriseInfo.getUnitType())) {
tzBaseEnterprisePrivilegeInfo.setUnitType(tzBaseEnterprisePrivilegeInfo.getUnitType() + "," + baseEnterpriseInfo.getUnitType());
this.updateById(tzBaseEnterprisePrivilegeInfo);
}
}
setSpeUseUnitState(3, speUseUnit);
} catch (Exception e) {
System.out.println(e.getMessage());
//当报错时 设置状态为 2
speUseUnit.setSyncState(2);
speUseUnitService.updateById(speUseUnit);
}
}
}
}
}
return "ok";
}
@Override
public TzBaseEnterpriseInfoDto companyInfoUpdate(Map<String, Object> map) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory")));
Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude");
tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map1.get("address")) ? null : map1.get("address"));
tzBaseEnterpriseInfo.setLongitude(ObjectUtils.isEmpty(map1.get("longitude")) ? null : String.valueOf(map1.get("longitude")));
tzBaseEnterpriseInfo.setLatitude(ObjectUtils.isEmpty(map1.get("latitude")) ? null : String.valueOf(map1.get("latitude")));
tzBaseEnterpriseInfo.setUseContact(ObjectUtils.isEmpty(map.get("useContact")) ? null : String.valueOf(map.get("useContact")));
tzBaseEnterpriseInfo.setContactPhone(ObjectUtils.isEmpty(map.get("contactPhone")) ? null : String.valueOf(map.get("contactPhone")));
tzBaseEnterpriseInfo.setUnitBusinessLicense(ObjectUtils.isEmpty(map.get("unitBusinessLicense")) ? null : JSON.toJSONString(map.get("unitBusinessLicense")));
tzBaseEnterpriseInfo.setIndustrySupervisor(ObjectUtils.isEmpty(map.get("industrySupervisor")) ? null : String.valueOf(map.get("industrySupervisor")));
tzBaseEnterpriseInfo.setSuperviseOrgCode(ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")));
tzBaseEnterpriseInfo.setSuperviseOrgName(ObjectUtils.isEmpty(map.get("superviseOrgName")) ? null : String.valueOf(map.get("superviseOrgName")));
//修改工商信息
RegUnitIc regUnitIc = new RegUnitIc();
List<String> addressList = (List<String>) map.get("registerAddressList");
tzBaseEnterpriseInfo.setProvince(addressList.get(0));
tzBaseEnterpriseInfo.setCity(addressList.get(1));
tzBaseEnterpriseInfo.setDistrict(addressList.get(3));
tzBaseEnterpriseInfo.setCommunity(ObjectUtils.isEmpty(map.get("community")) ? null : String.valueOf(map.get("community")));
tzBaseEnterpriseInfo.setStreet(ObjectUtils.isEmpty(map.get("stree")) ? null : String.valueOf(map.get("stree")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : String.valueOf(map.get("legalPerson")));
regUnitIc.setIndustryName(ObjectUtils.isEmpty(map.get("industryName")) ? null : String.valueOf(map.get("industryName")));
regUnitIc.setRegisteredOrgan(ObjectUtils.isEmpty(map.get("registeredOrgan")) ? null : String.valueOf(map.get("registeredOrgan")));
Date approvedDate = new Date();
try {
approvedDate = DateUtils.dateParse(String.valueOf(map.get("approvedDate")), "yyyy-MM-dd");
} catch (ParseException e) {
throw new RuntimeException(e);
}
regUnitIc.setBusinessState(ObjectUtils.isEmpty(map.get("businessState")) ? null : String.valueOf(map.get("businessState")));
regUnitIc.setApprovedDate(ObjectUtils.isEmpty(map.get("approvedDate")) ? null : approvedDate);
RegUnitIcDto regUnitIcDto = JSON.parseObject(JSON.toJSONString(map.get("regUnitIcDto")), new TypeReference<RegUnitIcDto>() {
});
// regUnitIcService.update(regUnitIc, new QueryWrapper<RegUnitIc>().eq("unit_code", regUnitIcDto.getUnitCode()));
//修改许可信息
List<BaseUnitLicence> licences = (List<BaseUnitLicence>) map.get("unitLicences");
//修改许可信息
List<BaseUnitLicence> licences = (List<BaseUnitLicence>) map.get("unitLicences");
// baseUnitLicenceService.saveOrUpdateBatch(licences);
// boolean b = tzBaseEnterpriseInfoService.updateById(tzBaseEnterpriseInfo);
boolean b = true;
boolean b = true;
if (b) {
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
......@@ -505,12 +479,12 @@ public class TzBaseEnterpriseInfoServiceImpl
}
@Override
public String setLabel(List<Long> enterpriseIds, List<String> enterpriseLabels) {
List<TzBaseEnterpriseInfo> tzBaseEnterpriseInfos = tzBaseEnterpriseInfoMapper.selectBatchIds(enterpriseIds);
if (!ObjectUtils.isEmpty(enterpriseLabels)) {
for (TzBaseEnterpriseInfo tzBaseEnterpriseInfo : tzBaseEnterpriseInfos) {
// 标签递增逻辑
@Override
public String setLabel(List<Long> enterpriseIds, List<String> enterpriseLabels) {
List<TzBaseEnterpriseInfo> tzBaseEnterpriseInfos = tzBaseEnterpriseInfoMapper.selectBatchIds(enterpriseIds);
if (!ObjectUtils.isEmpty(enterpriseLabels)) {
for (TzBaseEnterpriseInfo tzBaseEnterpriseInfo : tzBaseEnterpriseInfos) {
// 标签递增逻辑
// if (!ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getRegulatoryLabels())) {
// String result = checkLabel(enterpriseLabels, tzBaseEnterpriseInfo.getRegulatoryLabels());
// tzBaseEnterpriseInfo.setRegulatoryLabels(result);
......@@ -518,91 +492,73 @@ public class TzBaseEnterpriseInfoServiceImpl
// String labels = String.join(",", enterpriseLabels);
// tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
// }
String labels = String.join(",", enterpriseLabels);
tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
}
} else {
tzBaseEnterpriseInfos.forEach(item -> {
item.setRegulatoryLabels(null);
});
}
this.updateBatchById(tzBaseEnterpriseInfos);
return "success";
}
private String checkLabel(List<String> enterpriseLabels, String result) {
List<String> strings = Arrays.asList(result.split(","));
ArrayList<String> res = new ArrayList<>(strings);
List<String> collect = enterpriseLabels.stream().filter(item -> !strings.contains(item)).collect(Collectors.toList());
res.addAll(collect);
return String.join(",", res);
}
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
RequestContext.setAppKey(appkey);
RequestContext.setProduct(webProduct);
//获取机器人的token,获取不到则去登录
if (ObjectUtils.isEmpty(redisUtil.get(TZS_USER_TOKEN))) {
loginCtiUser();
}
RequestContext.setToken(String.valueOf(redisUtil.get(TZS_USER_TOKEN)));
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
regUnitInfo.setAdminIdNumber(String.valueOf(map.get("adminIdNumber")));
regUnitInfo.setAdminIdCardPhoto(JSON.toJSONString(map.get("adminIdCardPhoto")));
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(String.valueOf(map.get("adminTel")));
me.setRealName(String.valueOf(map.get("adminName")));
FeignClientResult<AgencyUserModel> updateResult = Privilege.agencyUserClient.update(me, String.valueOf(map.get("adminUserId")));
if (200 == updateResult.getStatus()) {
regUnitInfoService.update(regUnitInfo, new QueryWrapper<RegUnitInfo>().eq("unit_code", unitCode));
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
} else {
resultMap.put("fail", "平台用户修改失败,请联系管理员");
}
} else {
resultMap.put("fail", "平台用户不存在");
}
return resultMap;
}
//机器人用户登录
private void loginCtiUser() {
String passwd = DesUtil.encode(tzsAdminPwd, "qaz");
IdPasswordAuthModel loninData = new IdPasswordAuthModel();
loninData.setLoginId(tzsAdminName);
loninData.setPassword(passwd);
FeignClientResult loginResult = Privilege.authClient.idpassword(loninData);
if(loginResult.getStatus() == 200) {
HashMap resultMap = (HashMap) loginResult.getResult();
redisUtil.set(TZS_USER_TOKEN, resultMap.get("token").toString(), redisRegionTimeSecond);
}
}
public void setSpeUseUnitState(int state,SpeUseUnit speUseUnit){
speUseUnit.setSyncState(state);
speUseUnitService.updateById(speUseUnit);
}
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;
}
String labels = String.join(",", enterpriseLabels);
tzBaseEnterpriseInfo.setRegulatoryLabels(labels);
}
} else {
tzBaseEnterpriseInfos.forEach(item -> {
item.setRegulatoryLabels(null);
});
}
this.updateBatchById(tzBaseEnterpriseInfos);
return "success";
}
private String checkLabel(List<String> enterpriseLabels, String result) {
List<String> strings = Arrays.asList(result.split(","));
ArrayList<String> res = new ArrayList<>(strings);
List<String> collect = enterpriseLabels.stream().filter(item -> !strings.contains(item)).collect(Collectors.toList());
res.addAll(collect);
return String.join(",", res);
}
@Override
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
platformTokenService.getToken();
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
regUnitInfo.setAdminIdNumber(String.valueOf(map.get("adminIdNumber")));
regUnitInfo.setAdminIdCardPhoto(JSON.toJSONString(map.get("adminIdCardPhoto")));
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(String.valueOf(map.get("adminTel")));
me.setRealName(String.valueOf(map.get("adminName")));
FeignClientResult<AgencyUserModel> updateResult = Privilege.agencyUserClient.update(me, String.valueOf(map.get("adminUserId")));
if (200 == updateResult.getStatus()) {
regUnitInfoService.update(regUnitInfo, new QueryWrapper<RegUnitInfo>().eq("unit_code", unitCode));
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
} else {
resultMap.put("fail", "平台用户修改失败,请联系管理员");
}
} else {
resultMap.put("fail", "平台用户不存在");
}
return resultMap;
}
public void setSpeUseUnitState(int state, SpeUseUnit speUseUnit) {
speUseUnit.setSyncState(state);
speUseUnitService.updateById(speUseUnit);
}
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,7 +13,7 @@ eureka.instance.metadata-map.management.api-docs=http://172.16.3.34:${server.por
eureka.instance.ip-address=172.16.3.34
## ES properties:
elasticsearch.username=elastic
elasticsearch.password=a123456
elasticsearch.password=123456
spring.elasticsearch.rest.uris=http://172.16.10.230:9200
## unit(h)
alertcall.es.synchrony.time=48
......
......@@ -122,11 +122,7 @@ tzs.wechat.tempId.supervise=P5XGbszS2Pc6kynvGjzPpZ--ikAwDZo6O7WdJ2EUxtE
## \uFFFD\uFFFD\uFFFD\u06BA\u0172\uFFFD\uFFFD\uFFFD\uFFFD\u00FB\uFFFDid\uFFFD\uFFFD\u01BD\u0328userId\uFFFD\uFFFD
tzs.wechat.test.userId=3393279
admin.product=AMOS-SERVICE-ADMIN
admin.appkey=AMOS_ADMIN
admin.user=admin_tzs
admin.password=a1234560
admin.product.web=AMOS-WEB-ADMIN
amos.secret.key=qazknife4j.production=false
knife4j.production=false
......
......@@ -32,6 +32,9 @@ public class TzsUserInfoDto extends BaseDto {
@ApiModelProperty(value = "岗位")
private String post;
@ApiModelProperty(value = "岗位名称")
private String postName;
@ApiModelProperty(value = "联系电话")
private String phone;
......@@ -62,6 +65,9 @@ public class TzsUserInfoDto extends BaseDto {
@ApiModelProperty(value = "单位名称")
private String unitName;
@ApiModelProperty(value = "单位编码")
private String unitCode;
@ApiModelProperty(value = "平台账号id")
private String amosUserId;
......
......@@ -52,6 +52,12 @@ public class TzsUserInfo extends BaseEntity {
private String post;
/**
* 岗位名称
*/
@TableField("post_name")
private String postName;
/**
* 联系电话
*/
@TableField("phone")
......@@ -105,6 +111,14 @@ public class TzsUserInfo extends BaseEntity {
*/
@TableField("unit_name")
private String unitName;
/**
* 企业编码
*/
@TableField("unit_code")
private String unitCode;
/**
* 头像
*/
......
......@@ -4,27 +4,29 @@
<select id="selectPageMessage" resultType="com.yeejoin.amos.boot.module.tcm.api.dto.TzsUserInfoDto">
SELECT
sequence_nbr ,
name,
certificate_type,
certificate_num,
post,
phone,
birthday,
unit_name,
speciality,
profile,
amos_user_name,
amos_user_id,
lock_status,
CASE
WHEN gender = 1 THEN
'男' ELSE '女'
END AS gender
sequence_nbr,
name,
certificate_type,
certificate_num,
post,
post_name,
phone,
birthday,
unit_name,
speciality,
profile,
amos_user_name,
amos_user_id,
lock_status,
CASE
WHEN gender = 1 THEN
'男' ELSE '女'
END AS gender
FROM
tzs_user_info
tzs_user_info
<where>
is_delete = false
is_delete = false
and unit_code = #{dto.unitCode}
<if test="dto.name != '' and dto.name != null">
and name like concat('%',#{dto.name},'%')
</if>
......@@ -43,10 +45,10 @@
<if test="dto.amosUserName != '' and dto.amosUserName != null">
and amos_user_name like concat('%',#{dto.amosUserName},'%')
</if>
<if test="dto.post != '' and dto.post != null">
and post like concat('%',#{dto.post},'%')
<if test="dto.postName != '' and dto.postName != null">
and post_name like concat('%',#{dto.postName},'%')
</if>
</where>
order by rec_date
order by rec_date desc
</select>
</mapper>
\ No newline at end of file
......@@ -37,6 +37,7 @@ import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.restful.exception.GlobalExceptionHandler;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import java.net.InetAddress;
......@@ -107,7 +108,7 @@ public class AmosTcmApplication {
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" + "----------------------------------------------------------");
......
......@@ -300,6 +300,14 @@ public class EquipmentCategoryController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/refresh")
@ApiOperation(httpMethod = "GET", value = "更新管辖分局树缓存,运维人员使用", notes = "更新管辖分局树缓存,运维人员使用")
public ResponseModel<Object> refreshTree(){
return ResponseHelper.buildResponse(equipmentCategoryService.creatTree());
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getTable")
@ApiOperation(httpMethod = "GET", value = "设备认领和设备管理通用接口", notes = "设备认领和设备管理通用接口")
public ResponseModel<Page<Map<String,Object>>> getTable(@RequestParam Map<String,Object> map) {
......
package com.yeejoin.amos.boot.module.tcm.biz.controller;
import com.alibaba.fastjson.JSON;
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.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.tcm.api.dto.EquEnterDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.PageParam;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tcm.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
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.ObjectUtils;
......@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -172,14 +173,14 @@ public class TzBaseEnterpriseInfoController {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/info", method = RequestMethod.GET)
@GetMapping(value = "/info")
@ApiOperation(httpMethod = "GET", value = "查询企业端当前登录人所在企业详情", notes = "查询企业端当前登录人所在企业详情")
public ResponseModel<IPage<TzBaseEnterpriseInfoDto>> pageInfo(PageParam pageParam) {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
if (ObjectUtils.isEmpty(reginParams)) {
return null;
List<CompanyModel> companyModels = FeignUtil.remoteCall(() -> Privilege.companyClient.queryListByChild(RequestContext.getExeUserId()));
if (companyModels.isEmpty()) {
throw new BadRequest("未指定人员归属单位信息");
}
return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.page(pageParam, reginParams.getCompany().getCompanyName()));
return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.page(pageParam, companyModels.get(0).getCompanyName()));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
......@@ -201,14 +202,7 @@ public class TzBaseEnterpriseInfoController {
@ApiOperation(httpMethod = "POST", value = "修改企业信息", notes = "修改企业信息")
public ResponseModel<Object> adminInfoUpdate(@RequestBody Map<String, Object> map) {
Map<String, Object> result = iTzBaseEnterpriseInfoService.adminInfoUpdate(map);
if (result.containsKey("fail")) {
ResponseModel responseModel = new ResponseModel();
responseModel.setStatus(500);
responseModel.setDevMessage(result.get("fail").toString());
return responseModel;
} else {
return ResponseHelper.buildResponse(result.get("success"));
}
return ResponseHelper.buildResponse(result);
}
/**
......
......@@ -10,6 +10,7 @@ import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserQualifications;
import com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserInfoService;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.TzsUserInfoServiceImpl;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
......@@ -18,11 +19,14 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -44,17 +48,17 @@ public class TzsUserInfoController extends BaseController {
public ResponseModel<TzsUserInfoDto> save(@RequestBody JSONObject map) {
Map<String, Object> userInfo = (Map<String, Object>)map.get("userInfo");
TzsUserInfoDto tzsUserInfo = JSON.parseObject(JSON.toJSONString(userInfo), TzsUserInfoDto.class);
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
if(!ObjectUtils.isEmpty(me)){
List<CompanyModel> companys = me.getCompanys();
if (!ObjectUtils.isEmpty(companys)){
tzsUserInfo.setUnitName(companys.get(0).getCompanyName());
}
List<CompanyModel> companyModels = FeignUtil.remoteCall(()->Privilege.companyClient.queryListByChild(RequestContext.getExeUserId()));
if(companyModels.isEmpty()){
throw new BadRequest("未指定人员归属单位信息");
}
tzsUserInfo.setUnitName(companyModels.get(0).getCompanyName());
tzsUserInfo.setUnitCode(companyModels.get(0).getCompanyCode());
tzsUserInfo.setRecDate(new Date());
Map<String, Object> qualificationsInfo = (Map<String, Object>)map.get("qualificationsInfo");
Object subForm = qualificationsInfo.get("subForm");
List<TzsUserQualifications> list = JSON.parseArray(JSON.toJSONString(subForm), TzsUserQualifications.class);
tzsUserInfo.setPostName(tzsUserInfoServiceImpl.setPostName(tzsUserInfo.getPost()));
tzsUserInfo = tzsUserInfoServiceImpl.createWithModel(tzsUserInfo);
if (!ObjectUtils.isEmpty(list)){
tzsUserInfoService.addQualificationsMessage(String.valueOf(tzsUserInfo.getSequenceNbr()),list);
......@@ -70,17 +74,18 @@ public class TzsUserInfoController extends BaseController {
@RequestParam Long rowId) {
Map<String, Object> userInfo = (Map<String, Object>)map.get("userInfo");
TzsUserInfo tzsUserInfo = JSON.parseObject(JSON.toJSONString(userInfo), TzsUserInfo.class);
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
if(!ObjectUtils.isEmpty(me)){
List<CompanyModel> companys = me.getCompanys();
if (!ObjectUtils.isEmpty(companys)){
tzsUserInfo.setUnitName(companys.get(0).getCompanyName());
}
List<CompanyModel> companyModels = FeignUtil.remoteCall(()->Privilege.companyClient.queryListByChild(RequestContext.getExeUserId()));
if(companyModels.isEmpty()){
throw new BadRequest("未指定人员归属单位信息");
}
tzsUserInfo.setUnitName(companyModels.get(0).getCompanyName());
tzsUserInfo.setUnitCode(companyModels.get(0).getCompanyCode());
Map<String, Object> qualificationsInfo = (Map<String, Object>)map.get("qualificationsInfo");
Object subForm = qualificationsInfo.get("subForm");
List<TzsUserQualifications> list = JSON.parseArray(JSON.toJSONString(subForm), TzsUserQualifications.class);
tzsUserInfo.setSequenceNbr(rowId);
tzsUserInfo.setRecDate(new Date());
tzsUserInfo.setPostName(tzsUserInfoServiceImpl.setPostName(tzsUserInfo.getPost()));
tzsUserInfoServiceImpl.updateById(tzsUserInfo);
if (!ObjectUtils.isEmpty(list)){
tzsUserInfoService.updateQualificationsMessage(String.valueOf(tzsUserInfo.getSequenceNbr()),list);
......@@ -113,10 +118,16 @@ public class TzsUserInfoController extends BaseController {
public ResponseModel<IPage<TzsUserInfoDto>> queryForPage(@RequestParam(value = "current") String current,
@RequestParam(value = "size") String size,
TzsUserInfoDto dto) {
List<CompanyModel> companyModels = FeignUtil.remoteCall(()->Privilege.companyClient.queryListByChild(RequestContext.getExeUserId()));
if(companyModels.isEmpty()){
throw new BadRequest("未指定人员归属单位信息");
}
dto.setUnitCode(companyModels.get(0).getCompanyCode());
Page<TzsUserInfoDto> page = new Page<>();
page.setCurrent(Long.parseLong(current));
page.setSize(Long.parseLong(size));
return ResponseHelper.buildResponse(tzsUserInfoService.page( dto,page));
return ResponseHelper.buildResponse(tzsUserInfoService.page(dto,page));
}
......
package com.yeejoin.amos.boot.module.tcm.biz.listener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.tcm.biz.utils.DesUtil;
import com.yeejoin.amos.boot.module.tcm.biz.utils.RedisUtil;
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 com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.tcm.biz.utils.DesUtil;
import com.yeejoin.amos.boot.module.tcm.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.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 java.util.*;
import java.util.stream.Collectors;
/**
* @Description: mqtt监听服务
......@@ -41,127 +31,123 @@ import lombok.extern.slf4j.Slf4j;
@Component
@Slf4j
public class BaseEnterpriseMqTtlListener extends EmqxListener {
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appkey;
@Autowired
@Autowired
RedisUtil redisUtil;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, 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")));
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
@Override
public void processMessage(String topic, MqttMessage message) throws Exception {
System.out.println(message);
JSONObject object = null;
try {
object = JSONObject.parseObject(message.toString());
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
platformTokenService.setRequestContext();
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
// List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
// .map(i -> i.getAppCode()).collect(Collectors.toList());
FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(object.getLong("sequence_nbr"));
// FeignClientResult<Collection<CompanyModel>> cResult =
// Privilege.companyClient.queryAgencyTree(null);
String useCode = object.getString("use_code");
// if (useCode == null || !isUse(useCode, cResult.getResult())) {
if (cResult.getResult() == null) {
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(object.getString("use_unit"));
companyModel.setParentId(0L);
companyModel.setLevel("company");
String unitTypes = object.getString("unit_type");
companyModel.setCompanyType(unitTypes);
// companyModel.setSequenceNbr(object.getLong("sequence_nbr"));
companyModel.setCompanyCode(useCode);
if (object.getString("supervise_org_code") != null) {
FeignClientResult<HashMap<String, Object>> result = Privilege.companyClient
.queryByOrgcode(object.getString("supervise_org_code"));
// JSONObject parent =
// JSONObject.parseObject(JSONObject.toJSONString(result.getResult()));
if (result.getResult().get("sequenceNbr") != null) {
companyModel.setParentId(Long.valueOf(result.getResult().get("sequenceNbr").toString()));
}
}
FeignClientResult<CompanyModel> createResult = Privilege.companyClient.create(companyModel);
Long companySqr = createResult.getResult().getSequenceNbr();
String unitCode = object.getString("use_code");
if (unitCode == null || unitCode.length() < 6) {
log.error("公司统一信用代码长度不够6位");
throw new Exception("公司统一信用代码长度不够6位");
}
String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
if (uResult.getResult() == null) {
FeignClientResult<List<RoleModel>> roleListResult = Privilege.roleClient.queryRoleList(null, null);
List<RoleModel> allRoleList = roleListResult.getResult();
AgencyUserModel userModel = new AgencyUserModel();
userModel.setUserName(userName);
userModel.setRealName(userName);
userModel.setPassword(DesUtil.encode(userName, secretKey));
userModel.setRePassword(DesUtil.encode(userName, secretKey));
// userModel.setMobile(vo.getPhoneNo());
userModel.setLockStatus("UNLOCK");
// FeignClientResult<List<RoleModel>> list =
// Privilege.roleClient.queryRoleList("使用单位", "admin");
String[] unitTypeArray = unitTypes.split(",");
List<String> unitTypeList = Arrays.asList(unitTypeArray);
Set<String> roleNameSet = new HashSet<>();
Set<String> appCodesSet = new HashSet<>();
List<RoleModel> userRoleList = new ArrayList<>();
List<Long> roleIds = new ArrayList<>();
Map<Long, List<Long>> roleSeqMap = new HashMap<>();
for (String unitTypeStr : unitTypeList) {
DataDictionary unitType = iDataDictionaryService
.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, unitTypeStr));
String appCode = unitType.getTypeDesc() != null ? unitType.getTypeDesc() : "";
String[] appCodes = appCode.split(",");
Collections.addAll(appCodesSet, appCodes);
roleNameSet.add(unitType.getName());
userRoleList = allRoleList.stream().filter(r -> r.getRoleName().equals(unitType.getName()))
.collect(Collectors.toList());
for (RoleModel r : userRoleList) {
if (!roleIds.contains(r.getSequenceNbr())) {
roleIds.add(r.getSequenceNbr());
}
}
roleSeqMap.put(companySqr, roleIds);
}
userModel.setAppCodes(new ArrayList<>(appCodesSet));
userModel.setOrgRoleSeqs(roleSeqMap);
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(userModel);
String[] userIds = { userResult.getResult().getUserId() };
FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(object.getLong("sequence_nbr"));
// FeignClientResult<Collection<CompanyModel>> cResult =
// Privilege.companyClient.queryAgencyTree(null);
String useCode = object.getString("use_code");
// if (useCode == null || !isUse(useCode, cResult.getResult())) {
if (cResult.getResult() == null) {
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(object.getString("use_unit"));
companyModel.setParentId(0L);
companyModel.setLevel("company");
String unitTypes = object.getString("unit_type");
companyModel.setCompanyType(unitTypes);
// companyModel.setSequenceNbr(object.getLong("sequence_nbr"));
companyModel.setCompanyCode(useCode);
if (object.getString("supervise_org_code") != null) {
FeignClientResult<HashMap<String, Object>> result = Privilege.companyClient
.queryByOrgcode(object.getString("supervise_org_code"));
// JSONObject parent =
// JSONObject.parseObject(JSONObject.toJSONString(result.getResult()));
if (result.getResult().get("sequenceNbr") != null) {
companyModel.setParentId(Long.valueOf(result.getResult().get("sequenceNbr").toString()));
}
}
FeignClientResult<CompanyModel> createResult = Privilege.companyClient.create(companyModel);
Long companySqr = createResult.getResult().getSequenceNbr();
String unitCode = object.getString("use_code");
if (unitCode == null || unitCode.length() < 6) {
log.error("公司统一信用代码长度不够6位");
throw new Exception("公司统一信用代码长度不够6位");
}
String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
if (uResult.getResult() == null) {
FeignClientResult<List<RoleModel>> roleListResult = Privilege.roleClient.queryRoleList(null, null);
List<RoleModel> allRoleList = roleListResult.getResult();
AgencyUserModel userModel = new AgencyUserModel();
userModel.setUserName(userName);
userModel.setRealName(userName);
userModel.setPassword(DesUtil.encode(userName, secretKey));
userModel.setRePassword(DesUtil.encode(userName, secretKey));
// userModel.setMobile(vo.getPhoneNo());
userModel.setLockStatus("UNLOCK");
// FeignClientResult<List<RoleModel>> list =
// Privilege.roleClient.queryRoleList("使用单位", "admin");
String[] unitTypeArray = unitTypes.split(",");
List<String> unitTypeList = Arrays.asList(unitTypeArray);
Set<String> roleNameSet = new HashSet<>();
Set<String> appCodesSet = new HashSet<>();
List<RoleModel> userRoleList = new ArrayList<>();
List<Long> roleIds = new ArrayList<>();
Map<Long, List<Long>> roleSeqMap = new HashMap<>();
for (String unitTypeStr : unitTypeList) {
DataDictionary unitType = iDataDictionaryService
.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, unitTypeStr));
String appCode = unitType.getTypeDesc() != null ? unitType.getTypeDesc() : "";
String[] appCodes = appCode.split(",");
Collections.addAll(appCodesSet, appCodes);
roleNameSet.add(unitType.getName());
userRoleList = allRoleList.stream().filter(r -> r.getRoleName().equals(unitType.getName()))
.collect(Collectors.toList());
for (RoleModel r : userRoleList) {
if (!roleIds.contains(r.getSequenceNbr())) {
roleIds.add(r.getSequenceNbr());
}
}
roleSeqMap.put(companySqr, roleIds);
}
userModel.setAppCodes(new ArrayList<>(appCodesSet));
userModel.setOrgRoleSeqs(roleSeqMap);
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(userModel);
String[] userIds = {userResult.getResult().getUserId()};
// if (groupSeq != null) {
// Privilege.groupUserClient.create(groupSeq, Arrays.asList(userIds));
// }
}
}
}
}
}
}
private boolean isUse(String useCode, Collection<CompanyModel> companys) {
for (Object obj : companys) {
String json = JSONObject.toJSONString(obj);
CompanyModel companyMode = JSONObject.toJavaObject(JSONObject.parseObject(json), CompanyModel.class);
if (useCode.equals(companyMode.getCompanyCode())) {
return true;
} else if (companyMode.getChildren() != null) {
return isUse(useCode, companyMode.getChildren());
}
}
return false;
}
private boolean isUse(String useCode, Collection<CompanyModel> companys) {
for (Object obj : companys) {
String json = JSONObject.toJSONString(obj);
CompanyModel companyMode = JSONObject.toJavaObject(JSONObject.parseObject(json), CompanyModel.class);
if (useCode.equals(companyMode.getCompanyCode())) {
return true;
} else if (companyMode.getChildren() != null) {
return isUse(useCode, companyMode.getChildren());
}
}
return false;
}
}
package com.yeejoin.amos.boot.module.tcm.biz.listener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.tcm.biz.utils.DesUtil;
import com.yeejoin.amos.boot.module.tcm.biz.utils.RedisUtil;
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 com.alibaba.fastjson.JSONObject;
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.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 java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description: mqtt监听服务
......@@ -33,78 +31,74 @@ import lombok.extern.slf4j.Slf4j;
@Component
@Slf4j
public class CarcylUnitInspectMqTtlListener extends EmqxListener {
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appkey;
@Autowired
@Autowired
RedisUtil redisUtil;
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Override
public void processMessage(String topic, 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")));
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
.map(i -> i.getAppCode()).collect(Collectors.toList());
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, MqttMessage message) throws Exception {
System.out.println(message);
JSONObject object = null;
try {
object = JSONObject.parseObject(message.toString());
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
platformTokenService.setRequestContext();
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
.map(i -> i.getAppCode()).collect(Collectors.toList());
String uuid = object.getString("id");
Long id = Long.valueOf(uuid.replaceAll("-","").hashCode());
FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(id);
if (cResult.getResult() == null) {
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(object.getString("inspect_unit_name"));
companyModel.setParentId(0L);
companyModel.setLevel("company");
companyModel.setSequenceNbr(id);
companyModel.setCompanyCode(object.getString("org_unit_name"));
companyModel.setCompanyType("检验单位");
Privilege.companyClient.create(companyModel);
}
Long id = Long.valueOf(uuid.replaceAll("-", "").hashCode());
FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(id);
if (cResult.getResult() == null) {
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(object.getString("inspect_unit_name"));
companyModel.setParentId(0L);
companyModel.setLevel("company");
companyModel.setSequenceNbr(id);
companyModel.setCompanyCode(object.getString("org_unit_name"));
companyModel.setCompanyType("检验单位");
Privilege.companyClient.create(companyModel);
}
String unitCode = object.getString("org_unit_name");
if (unitCode == null || unitCode.length() < 6) {
log.error("公司统一信用代码长度不够6位");
throw new Exception("公司统一信用代码长度不够6位");
}
String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
if (uResult.getResult() == null) {
AgencyUserModel userModel = new AgencyUserModel();
userModel.setUserName(userName);
userModel.setRealName(userName);
userModel.setPassword(DesUtil.encode(userName, secretKey));
userModel.setRePassword(DesUtil.encode(userName, secretKey));
// userModel.setMobile(vo.getPhoneNo());
userModel.setLockStatus("UNLOCK");
FeignClientResult<List<RoleModel>> list = Privilege.roleClient.queryRoleList("检验单位", "admin");
Map<Long, List<Long>> orgRoles = new HashMap<>();
List<Long> roleIds = new ArrayList<>();
roleIds.add(list.getResult().get(0).getSequenceNbr());
orgRoles.put(id, roleIds);
userModel.setAppCodes(appCodes);
userModel.setOrgRoleSeqs(orgRoles);
FeignClientResult<AgencyUserModel> userResult =Privilege.agencyUserClient.create(userModel);
String[] userIds = {userResult.getResult().getUserId()};
String unitCode = object.getString("org_unit_name");
if (unitCode == null || unitCode.length() < 6) {
log.error("公司统一信用代码长度不够6位");
throw new Exception("公司统一信用代码长度不够6位");
}
String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
if (uResult.getResult() == null) {
AgencyUserModel userModel = new AgencyUserModel();
userModel.setUserName(userName);
userModel.setRealName(userName);
userModel.setPassword(DesUtil.encode(userName, secretKey));
userModel.setRePassword(DesUtil.encode(userName, secretKey));
// userModel.setMobile(vo.getPhoneNo());
userModel.setLockStatus("UNLOCK");
FeignClientResult<List<RoleModel>> list = Privilege.roleClient.queryRoleList("检验单位", "admin");
Map<Long, List<Long>> orgRoles = new HashMap<>();
List<Long> roleIds = new ArrayList<>();
roleIds.add(list.getResult().get(0).getSequenceNbr());
orgRoles.put(id, roleIds);
userModel.setAppCodes(appCodes);
userModel.setOrgRoleSeqs(orgRoles);
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(userModel);
String[] userIds = {userResult.getResult().getUserId()};
// if (groupSeq != null) {
// Privilege.groupUserClient.create(groupSeq, Arrays.asList(userIds));
// }
}
}
}
}
}
......@@ -5,16 +5,15 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.tcm.api.service.IEquipmentCategoryService;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.tcm.flc.api.service.IRegUnitInfoService;
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.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.component.emq.EmqxListener;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
......@@ -39,23 +38,18 @@ public class PlatformUserTopicMessage extends EmqxListener {
@Autowired
RedisUtils redisUtil;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appKey;
@Autowired
IEquipmentCategoryService equipmentCategoryService;
@Autowired
IRegUnitInfoService regUnitInfoService;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, MqttMessage message) {
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.setRequestContext();
JSONObject jsonObject = JSON.parseObject(message.toString());
JSONObject result = jsonObject.getJSONObject("result");
JSONObject dataResult = result.getJSONObject("result");
......
......@@ -5,10 +5,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.TzBaseEnterpriseInfoServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.tcm.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import lombok.extern.slf4j.Slf4j;
......@@ -16,14 +16,16 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
@Component
@Slf4j
......@@ -40,11 +42,8 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
@Autowired
RedisUtil redisUtil;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appKey;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String s, MqttMessage message) throws Exception {
......@@ -58,15 +57,13 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.setRequestContext();
//判断库中业务tz_base_enterprise_info是否存在
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code",object.getString("unit_code"));
queryWrapper.eq("use_code", object.getString("unit_code"));
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = tzBaseEnterpriseInfoService.getOne(queryWrapper);
if(!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)){
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
accessFeignService.updateSyncCompanyState(object.getString("sequence_nbr"));
return;
}
......@@ -95,14 +92,14 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
//业务表更新条件构造器
UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("use_code",object.getString("unit_code"));
updateWrapper.eq("use_code", object.getString("unit_code"));
String regCode = object.getString("reg_code");
CompanyModel supervisePrivilegeCompanyModel;
if (!ValidationUtil.isEmpty(regCode)) {
supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode(regCode).getResult();
if(ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)){
if (ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)) {
supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode("610000").getResult();
if (ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)) {
......@@ -120,37 +117,37 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
tzBaseEnterpriseInfo.setSuperviseOrgCode(supervisePrivilegeCompanyModel.getOrgCode());
tzBaseEnterpriseInfo.setSuperviseOrgName(supervisePrivilegeCompanyModel.getCompanyName());
if(ValidationUtil.isEmpty(tzBaseEnterpriseInfo.getUnitType())){
if (ValidationUtil.isEmpty(tzBaseEnterpriseInfo.getUnitType())) {
tzBaseEnterpriseInfo.setUnitType("");
}
try {
if (tzBaseEnterprisePrivilegeInfo == null ) {
if (tzBaseEnterprisePrivilegeInfo == null) {
tzBaseEnterpriseInfoService.save(tzBaseEnterpriseInfo);
accessFeignService.updateSyncCompanyState(object.getString("sequence_nbr"));
return;
}
} catch(Exception e) {
} catch (Exception e) {
logger.error("【" + object.getString("unit_name") + "】许可信息同步【失败】:" + e.getMessage());
}
}
public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels,Map<String, CompanyModel> map){
if(companyModels == null){
public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels, Map<String, CompanyModel> map) {
if (companyModels == null) {
return map;
}
Iterator iter = companyModels.iterator();
while(iter.hasNext()){
while (iter.hasNext()) {
String json = JSON.toJSONString(iter.next());
CompanyModel companyModel = JSON.parseObject(json,CompanyModel.class);
CompanyModel companyModel = JSON.parseObject(json, CompanyModel.class);
String code = companyModel.getCompanyCode();
if(code.length() >=6){
if (code.length() >= 6) {
code = code.substring(0, 6);
}
map.put(code,companyModel);
getCompanyInfoMap(companyModel.getChildren(),map);
map.put(code, companyModel);
getCompanyInfoMap(companyModel.getChildren(), map);
}
return map;
}
......
......@@ -25,17 +25,9 @@ import com.yeejoin.amos.boot.module.tcm.flc.api.feign.PrivilegeFeginService;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
......@@ -122,7 +114,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
private String code;
@Autowired
RestHighLevelClient restHighLevelClient;
RestHighLevelClient restHighLevelClient;
@Autowired
private RedisUtils redisUtils;
......@@ -256,7 +248,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
//生成码
Map<String, String> codeMap;
synchronized (EquipmentCategoryServiceImpl.class) {
codeMap = creatCode(city, county, equipCategory, null,null);
codeMap = creatCode(city, county, equipCategory, null, null);
}
if (ObjectUtils.isEmpty(codeMap)) {
return new HashMap<>();
......@@ -276,7 +268,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
List<CategoryOtherInfo> categoryOtherInfo = categoryOtherInfoMapper.selectList(new QueryWrapper<CategoryOtherInfo>().eq("SUPERVISORY_CODE", supervisorCode));
if (categoryOtherInfo.size() > 0) {
// categoryOtherInfoMapper.updateCode(supervisorCode, equState);
supervisoryCodeInfoMapper.update(supervisoryCodeInfo,new QueryWrapper<SupervisoryCodeInfo>().eq("supervisory_code",supervisoryCodeInfo.getSupervisoryCode()));
supervisoryCodeInfoMapper.update(supervisoryCodeInfo, new QueryWrapper<SupervisoryCodeInfo>().eq("supervisory_code", supervisoryCodeInfo.getSupervisoryCode()));
} else {
supervisoryCodeInfo.setStatus(equState);
supervisoryCodeInfoMapper.insert(supervisoryCodeInfo);
......@@ -298,7 +290,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
@Override
public List<LinkedHashMap> creatTree() {
FeignClientResult tree = privilegeFeginService.tree(RequestContext.getToken(),RequestContext.getAppKey(),RequestContext.getProduct());
FeignClientResult tree = privilegeFeginService.tree(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult();
List<LinkedHashMap> treeData = deleteRegulatorTreeData(result);
List<LinkedHashMap> supervisionTree = treeData.stream().filter(e -> code.equals(e.get("orgCode"))).collect(Collectors.toList());
......@@ -337,15 +329,27 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
* @return 筛选过滤后不包含使用单位的管辖机构树
*/
private List<LinkedHashMap> deleteRegulatorTreeData(List<LinkedHashMap> result) {
// 需排除的公司类型
String excludeCompanyType = "检验检测机构";
Iterator it = result.iterator();
while (it.hasNext()) {
LinkedHashMap e = (LinkedHashMap) it.next();
//删除使用单位
if ("company".equals(e.get("level"))) {
it.remove();
// 一行数据可能 满足几个remove,所以需要删除后,继续下一循环
continue;
}
// 删除检验检测机构类似公司
if(excludeCompanyType.equals(e.get("companyType"))){
it.remove();
// 一行数据可能 满足几个remove,所以需要删除后,继续下一循环
continue;
}
if (e.get("companyName").toString().contains("行政审批局")) {
it.remove();
// 一行数据可能 满足几个remove,所以需要删除后,继续下一循环
continue;
}
if (!ObjectUtils.isEmpty(e.get("children"))) {
deleteRegulatorTreeData((List<LinkedHashMap>) e.get("children"));
......@@ -474,7 +478,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
/**
* 具体生成监管码和电梯96333识别码逻辑
*/
private synchronized Map<String, String> creatCode(String city, String county, String equipCategory, String code96333,String supervisionCode) {
private synchronized Map<String, String> creatCode(String city, String county, String equipCategory, String code96333, String supervisionCode) {
Map<String, String> resultMap = new HashMap<>();
StringBuilder supervisorCode = new StringBuilder();
StringBuilder elevatorCode = new StringBuilder();
......@@ -483,24 +487,24 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
//判断是否需要生成96333电梯码
if (equipCategory.startsWith("3") && !XIAN.equals(city)) {
//判断数据是否携带96333电梯码,携带则使用,不携带则生成
if("null".equals(code96333)){
if ("null".equals(code96333)) {
prefix = getPrefix(EquipmentCategoryEnum.XZQHDT.getCode(), city);
//查询未使用的电梯码
categoryOtherInfo = categoryOtherInfoMapper.selectElevatorCode(prefix, EquipmentCategoryEnum.WSY.getCode());
//如果存在未使用的电梯码则启用未使用的否则创建
String elevator = ObjectUtils.isEmpty(categoryOtherInfo) ? createElevatorCode(city, county) : categoryOtherInfo.getCode();
if(!ObjectUtils.isEmpty(categoryOtherInfo)){
supervisoryCodeInfoMapper.delete(new QueryWrapper<SupervisoryCodeInfo>().eq("code96333",categoryOtherInfo.getCode()));
if (!ObjectUtils.isEmpty(categoryOtherInfo)) {
supervisoryCodeInfoMapper.delete(new QueryWrapper<SupervisoryCodeInfo>().eq("code96333", categoryOtherInfo.getCode()));
}
elevatorCode.append(elevator);
resultMap.put("creatStatus",CREATE);
resultMap.put("creatStatus", CREATE);
} else {
elevatorCode.append(code96333);
resultMap.put("creatStatus",NOT_CREATE);
resultMap.put("creatStatus", NOT_CREATE);
}
}
//判断原数据是否存在监管码,存在则用原监管码即可,不存在则生成
if("null".equals(supervisionCode)){
if ("null".equals(supervisionCode)) {
String supervisor = createSupervisorCode(city, county, equipCategory);
supervisorCode.append(supervisor);
} else {
......@@ -519,12 +523,12 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
supervisoryCodeInfo.setCreateStatus(resultMap.get("creatStatus"));
supervisoryCodeInfo.setSupervisoryCode(String.valueOf(supervisorCode));
supervisoryCodeInfo.setStatus(equState);
if(ObjectUtils.isEmpty(selectOne)){
if (ObjectUtils.isEmpty(selectOne)) {
supervisoryCodeInfoMapper.insert(supervisoryCodeInfo);
} else {
selectOne.setCode96333(String.valueOf(elevatorCode));
supervisoryCodeInfoMapper.update(selectOne,
new QueryWrapper<SupervisoryCodeInfo>().eq("supervisory_code",selectOne.getSupervisoryCode()));
new QueryWrapper<SupervisoryCodeInfo>().eq("supervisory_code", selectOne.getSupervisoryCode()));
}
resultMap.put("superviseCode", ObjectUtils.isEmpty(supervisorCode) ? null : supervisorCode.toString());
resultMap.put("code96333", ObjectUtils.isEmpty(elevatorCode) ? null : elevatorCode.toString());
......@@ -792,7 +796,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
return list;
}
public List<EquipExportVo> getEquipExportData(EquipExportDto dto){
public List<EquipExportVo> getEquipExportData(EquipExportDto dto) {
ArrayList<EquipExportVo> list = new ArrayList<>();
List<JSONObject> objectList = getCompanyType();
if (!ValidationUtil.isEmpty(dto.getEQU_STATE())) {
......@@ -811,7 +815,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
dto.setORG_BRANCH_CODE(orgCode);
}
List<EquipExportVo> equipExportData = equipmentCategoryMapper.getEquipExportData(dto);
if (!ObjectUtils.isEmpty(equipExportData) ) {
if (!ObjectUtils.isEmpty(equipExportData)) {
list.addAll(equipExportData);
}
}
......@@ -851,23 +855,22 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
}
@Override
@Async
public void createEquipmentCategoryData() {
if(log.isInfoEnabled()){
if (log.isInfoEnabled()) {
log.info("初始化一码通总览数据开始");
}
equipmentCategoryDataService.remove(new QueryWrapper<>());
getCategoryData(null,null);
getCategoryData(null, null);
}
private List<EquipmentCategoryData> getCategoryData(List<String> unitCodes,List<String> orgBranchCodes) {
private List<EquipmentCategoryData> getCategoryData(List<String> unitCodes, List<String> orgBranchCodes) {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
List<EquipmentCategoryData> list = new ArrayList<>();
// 查询所有单位
List<Map<String, Object>> allUnitList = equipmentCategoryMapper.getAllUnit(unitCodes,orgBranchCodes);
List<Map<String, Object>> allUnitList = equipmentCategoryMapper.getAllUnit(unitCodes, orgBranchCodes);
// 统计查询不同单位、不同装备定义、不同状态下的设备数量
List<UseUnitCreditCodeCategoryDto> equipCountList = equipmentCategoryMapper.useUnitCreditCodeCategoryCount();
// 查询8大类设备定义
......@@ -875,31 +878,31 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
// 组织EquipmentCategoryData表数据
for (Map<String, Object> map : allUnitList) {
EquipmentCategoryData equipmentCategoryData = new EquipmentCategoryData();
if(ObjectUtils.isEmpty(map.get("supervise_org_code")) || ObjectUtils.isEmpty(map.get(USE_CODE))){
if (ObjectUtils.isEmpty(map.get("supervise_org_code")) || ObjectUtils.isEmpty(map.get(USE_CODE))) {
continue;
}
equipmentCategoryData.setOrgBranchCode(map.get("supervise_org_code").toString());
equipmentCategoryData.setUnitCode(map.get(USE_CODE).toString());
// 指定单位的设备统计信息
List<UseUnitCreditCodeCategoryDto> unitEquipCountList = equipCountList.stream().filter(r->r.getUseUnitCreditCode().equals(map.get(USE_CODE).toString())).collect(Collectors.toList());
unitEquipCountList = unitEquipCountList.stream().filter(r->r.getOrgBranchCode().equals(map.get(ORG_BRANCH_CODE).toString())).collect(Collectors.toList());
List<UseUnitCreditCodeCategoryDto> unitEquipCountList = equipCountList.stream().filter(r -> r.getUseUnitCreditCode().equals(map.get(USE_CODE).toString())).collect(Collectors.toList());
unitEquipCountList = unitEquipCountList.stream().filter(r -> r.getOrgBranchCode().equals(map.get(ORG_BRANCH_CODE).toString())).collect(Collectors.toList());
for (EquipmentCategory category : equipmentCategories) {
Map<String, Object> data = new HashMap<>();
data.put("waitClaim", unitEquipCountList.stream().filter(r->r.getEquList().equals(category.getCode()) && EquipmentCategoryEnum.DRL.getName().equals(r.getClaimStatus())).collect(Collectors.summarizingLong(UseUnitCreditCodeCategoryDto::getTotal)).getSum());
data.put("alreadyClaim", unitEquipCountList.stream().filter(r->r.getEquList().equals(category.getCode()) && EquipmentCategoryEnum.YRL.getName().equals(r.getClaimStatus())).collect(Collectors.summarizingLong(UseUnitCreditCodeCategoryDto::getTotal)).getSum());
data.put("refuseClaim", unitEquipCountList.stream().filter(r->r.getEquList().equals(category.getCode()) && EquipmentCategoryEnum.YJL.getName().equals(r.getClaimStatus())).collect(Collectors.summarizingLong(UseUnitCreditCodeCategoryDto::getTotal)).getSum());
data.put("waitClaim", unitEquipCountList.stream().filter(r -> r.getEquList().equals(category.getCode()) && EquipmentCategoryEnum.DRL.getName().equals(r.getClaimStatus())).collect(Collectors.summarizingLong(UseUnitCreditCodeCategoryDto::getTotal)).getSum());
data.put("alreadyClaim", unitEquipCountList.stream().filter(r -> r.getEquList().equals(category.getCode()) && EquipmentCategoryEnum.YRL.getName().equals(r.getClaimStatus())).collect(Collectors.summarizingLong(UseUnitCreditCodeCategoryDto::getTotal)).getSum());
data.put("refuseClaim", unitEquipCountList.stream().filter(r -> r.getEquList().equals(category.getCode()) && EquipmentCategoryEnum.YJL.getName().equals(r.getClaimStatus())).collect(Collectors.summarizingLong(UseUnitCreditCodeCategoryDto::getTotal)).getSum());
this.set8CategoryCountData(equipmentCategoryData, category, data);
}
equipmentCategoryData.setRecDate(new Date());
list.add(equipmentCategoryData);
}
if(!ObjectUtils.isEmpty(unitCodes)){
equipmentCategoryDataMapper.delete(new QueryWrapper<EquipmentCategoryData>().in("unit_code",unitCodes));
if (!ObjectUtils.isEmpty(unitCodes)) {
equipmentCategoryDataMapper.delete(new QueryWrapper<EquipmentCategoryData>().in("unit_code", unitCodes));
}
equipmentCategoryDataService.saveOrUpdateBatch(list);
stopWatch.stop();
if(log.isInfoEnabled()){
log.info("总览数据刷新结束,耗时:{} 秒",stopWatch.getTotalTimeSeconds());
if (log.isInfoEnabled()) {
log.info("总览数据刷新结束,耗时:{} 秒", stopWatch.getTotalTimeSeconds());
}
return list;
}
......@@ -938,19 +941,19 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
private List<EquipmentCategory> getEquipmentCategories() {
LambdaQueryWrapper<EquipmentCategory> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.likeLeft(EquipmentCategory::getCode,"000");
lambdaQueryWrapper.ne(EquipmentCategory::getCode,"7000");
lambdaQueryWrapper.ne(EquipmentCategory::getCode,"F000");
lambdaQueryWrapper.likeLeft(EquipmentCategory::getCode, "000");
lambdaQueryWrapper.ne(EquipmentCategory::getCode, "7000");
lambdaQueryWrapper.ne(EquipmentCategory::getCode, "F000");
return equipmentCategoryMapper.selectList(lambdaQueryWrapper);
}
private List<EquipmentCategoryData> updateEquipmentCategoryData(String unitCode,String orgBranchCode) {
private List<EquipmentCategoryData> updateEquipmentCategoryData(String unitCode, String orgBranchCode) {
List<String> unitCodeList = new ArrayList<>();
unitCodeList.add(unitCode);
List<String> orgBranchCodeList = new ArrayList<>();
orgBranchCodeList.add(orgBranchCode);
List<EquipmentCategoryData> equipmentCategoryData = getCategoryData(unitCodeList,null);
List<EquipmentCategoryData> equipmentCategoryData = getCategoryData(unitCodeList, null);
return equipmentCategoryData;
}
......@@ -961,7 +964,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
List<String> records = new ArrayList<>();
List<ESEquipmentCategoryDto> list = new ArrayList<>();
if(recordList.toString().contains("[")){
if (recordList.toString().contains("[")) {
for (String record : (List<String>) recordList) {
records.add(record);
ESEquipmentCategoryDto esEquipmentCategoryDto = new ESEquipmentCategoryDto();
......@@ -984,15 +987,15 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
orgBranchCodeList.add(String.valueOf(objectMap.get("orgBranchCode")));
}
if(!ObjectUtils.isEmpty(superviseCodeList)){
if (!ObjectUtils.isEmpty(superviseCodeList)) {
supervisoryCodeInfoMapper.updateStatus(superviseCodeList);
}
//删除涉及的19张表的数据
superviseInfoMapper.deleteDataAll(records);
// 根据统一信用代码更新总览表
if(!ObjectUtils.isEmpty(unitCodeList)){
getCategoryData(unitCodeList,orgBranchCodeList);
if (!ObjectUtils.isEmpty(unitCodeList)) {
getCategoryData(unitCodeList, orgBranchCodeList);
}
//删除es中的数据
esEquipmentCategory.deleteAll(list);
......@@ -1054,11 +1057,11 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
responseModel = idxFeignService.batchUpdate(null, null, map);
}
stopWatch.stop();
if(log.isInfoEnabled()){
log.info("通用提交耗时:{} 秒",stopWatch.getTotalTimeSeconds());
if (log.isInfoEnabled()) {
log.info("通用提交耗时:{} 秒", stopWatch.getTotalTimeSeconds());
}
} catch (Exception e) {
log.error(e.getMessage(),e);
log.error(e.getMessage(), e);
supervisoryCodeInfo.setStatus(EquipmentCategoryEnum.BF.getCode());
ResponseModel<Object> response = new ResponseModel<>();
response.setDevMessage(e.getMessage());
......@@ -1067,8 +1070,8 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
response.setStatus(HttpStatus.BAD_REQUEST.value());
return response;
} finally {
updateEquipmentCategoryData(unitCode,orgBranchCode);
supervisoryCodeInfoMapper.update(supervisoryCodeInfo,new QueryWrapper<SupervisoryCodeInfo>().eq("supervisory_code",supervisoryCodeInfo.getSupervisoryCode()));
updateEquipmentCategoryData(unitCode, orgBranchCode);
supervisoryCodeInfoMapper.update(supervisoryCodeInfo, new QueryWrapper<SupervisoryCodeInfo>().eq("supervisory_code", supervisoryCodeInfo.getSupervisoryCode()));
}
return responseModel;
}
......@@ -1100,6 +1103,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
Long count = bizJdbcTemplate.queryForObject(countSql, Long.class);
return count;
}
/**
* es数据同步
*
......@@ -1176,10 +1180,10 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
*/
public ESEquipmentCategoryDto saveESEquipmentCategory(Map<String, Object> map) {
//处理时间问题
String recDate1 = map.get("REC_DATE").toString().substring(0,19);
String recDate1 = map.get("REC_DATE").toString().substring(0, 19);
long time = Timestamp.valueOf(recDate1).getTime();
map.put("REC_DATE",time);
map.put("REC_DATE", time);
ESEquipmentCategoryDto dto = JSONObject.parseObject(toJSONString(map), ESEquipmentCategoryDto.class);
ESEquipmentCategoryDto save = esEquipmentCategory.save(dto);
if (!ObjectUtils.isEmpty(save)) {
......@@ -1191,6 +1195,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
}
return save;
}
public Page<JSONObject> queryByKeys(JSONObject map) {
// //根据当前登录人查询
if (!ValidationUtil.isEmpty(map.get(EQUSTATE))) {
......@@ -1219,12 +1224,12 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
//SEQUENCE_NBR
if (!ObjectUtils.isEmpty(map.getString("SEQUENCE_NBR"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.matchPhraseQuery("SEQUENCE_NBR", "*"+map.getString("SEQUENCE_NBR")+"*"));
meBuilder.must(QueryBuilders.matchPhraseQuery("SEQUENCE_NBR", "*" + map.getString("SEQUENCE_NBR") + "*"));
boolMust.must(meBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("ORG_BRANCH_NAME"))) {
BoolQueryBuilder query = QueryBuilders.boolQuery();
query.must(QueryBuilders.matchPhraseQuery("ORG_BRANCH_NAME", "*"+map.getString("ORG_BRANCH_NAME")+"*" ));
query.must(QueryBuilders.matchPhraseQuery("ORG_BRANCH_NAME", "*" + map.getString("ORG_BRANCH_NAME") + "*"));
boolMust.must(query);
}
if (!ObjectUtils.isEmpty(map.getString("ORG_BRANCH_CODE"))) {
......@@ -1234,12 +1239,12 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
}
if (!ObjectUtils.isEmpty(map.getString("USE_UNIT_NAME"))) {
BoolQueryBuilder query = QueryBuilders.boolQuery();
query.must(QueryBuilders.matchPhraseQuery("USE_UNIT_NAME", "*"+map.getString("USE_UNIT_NAME")+"*"));
query.must(QueryBuilders.matchPhraseQuery("USE_UNIT_NAME", "*" + map.getString("USE_UNIT_NAME") + "*"));
boolMust.must(query);
}
if (!ObjectUtils.isEmpty(map.getString("USE_UNIT_CREDIT_CODE"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.matchPhraseQuery("USE_UNIT_CREDIT_CODE", "*"+map.getString("USE_UNIT_CREDIT_CODE")+"*"));
meBuilder.must(QueryBuilders.matchPhraseQuery("USE_UNIT_CREDIT_CODE", "*" + map.getString("USE_UNIT_CREDIT_CODE") + "*"));
boolMust.must(meBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("EQU_LIST_CODE"))) {
......@@ -1249,23 +1254,23 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
}
if (!ObjectUtils.isEmpty(map.getString("EQU_LIST"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.matchPhraseQuery("EQU_LIST", "*"+map.getString("EQU_LIST")+"*"));
meBuilder.must(QueryBuilders.matchPhraseQuery("EQU_LIST", "*" + map.getString("EQU_LIST") + "*"));
boolMust.must(meBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("EQU_CATEGORY"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.matchPhraseQuery("EQU_CATEGORY", "*"+map.getString("EQU_CATEGORY")+"*"));
meBuilder.must(QueryBuilders.matchPhraseQuery("EQU_CATEGORY", "*" + map.getString("EQU_CATEGORY") + "*"));
boolMust.must(meBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("USE_ORG_CODE"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.wildcardQuery("USE_ORG_CODE", "*"+map.getString("USE_ORG_CODE").toLowerCase()+"*"));
meBuilder.must(QueryBuilders.wildcardQuery("USE_ORG_CODE", "*" + map.getString("USE_ORG_CODE").toLowerCase() + "*"));
boolMust.must(meBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("CODE96333"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.wildcardQuery("CODE96333", "*"+map.getString("CODE96333").toLowerCase()+"*"));
meBuilder.must(QueryBuilders.wildcardQuery("CODE96333", "*" + map.getString("CODE96333").toLowerCase() + "*"));
boolMust.must(meBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("EQU_CODE"))) {
......@@ -1276,7 +1281,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
if (!ObjectUtils.isEmpty(map.getString("SUPERVISORY_CODE"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.wildcardQuery("SUPERVISORY_CODE", "*"+map.getString("SUPERVISORY_CODE").toLowerCase()+"*"));
meBuilder.must(QueryBuilders.wildcardQuery("SUPERVISORY_CODE", "*" + map.getString("SUPERVISORY_CODE").toLowerCase() + "*"));
boolMust.must(meBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("USE_PLACE"))) {
......@@ -1289,14 +1294,14 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
query.must(QueryBuilders.matchPhraseQuery("ADDRESS", "*" + map.getString("ADDRESS") + "*"));
boolMust.must(query);
}
if (!ObjectUtils.isEmpty(map.getString("EQU_STATE")) ) {
if (!ObjectUtils.isEmpty(map.getString("EQU_STATE"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.matchQuery("EQU_STATE", map.getLong("EQU_STATE")));
boolMust.must(meBuilder);
}
if (!ObjectUtils.isEmpty(map.getString("STATUS"))) {
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.must(QueryBuilders.matchPhraseQuery("STATUS", "*"+map.getString("STATUS")+"*"));
meBuilder.must(QueryBuilders.matchPhraseQuery("STATUS", "*" + map.getString("STATUS") + "*"));
boolMust.must(meBuilder);
}
builder.query(boolMust);
......
......@@ -30,6 +30,7 @@ import com.yeejoin.amos.boot.module.tcm.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.boot.module.tcm.flc.api.mapper.RegUnitInfoMapper;
import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitIcServiceImpl;
import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -44,6 +45,7 @@ import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
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;
import java.text.ParseException;
import java.util.*;
......@@ -63,15 +65,6 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Value("${admin.product.web}")
String webProduct;
@Value("${admin.appkey}")
String appkey;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
......@@ -85,7 +78,7 @@ public class TzBaseEnterpriseInfoServiceImpl
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
private IBaseUnitLicenceService iBaseUnitLicenceService;
private StartPlatformTokenService platformTokenService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
......@@ -101,18 +94,6 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${tzs.admin.name:tzs_admin}")
private String tzsAdminName;
@Value("${tzs.admin.pwd:a1234567}")
private String tzsAdminPwd;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
/**机器人用户token缓存key */
public static final String TZS_USER_TOKEN = "TZS_USER_TOKEN";
/**
* 企业管理员变更缓存key前缀
*/
......@@ -313,10 +294,7 @@ public class TzBaseEnterpriseInfoServiceImpl
@Override
public String syncEnterpriseInfo() {
RequestContext.setAppKey(appkey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.setRequestContext();
List<TzBaseEnterpriseInfo> baseEnterpriseInfoList = new ArrayList<>();
//获取平台企业表企业名称及sequence_code,并装入map中
......@@ -536,54 +514,33 @@ public class TzBaseEnterpriseInfoServiceImpl
return String.join(",", res);
}
@Override
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
RequestContext.setAppKey(appkey);
RequestContext.setProduct(webProduct);
//获取机器人的token,获取不到则去登录
if (ObjectUtils.isEmpty(redisUtil.get(TZS_USER_TOKEN))) {
loginCtiUser();
}
RequestContext.setToken(String.valueOf(redisUtil.get(TZS_USER_TOKEN)));
//自己不能修改自己 所以需要设置为机器人
platformTokenService.setRequestContext();
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
regUnitInfo.setAdminIdNumber(String.valueOf(map.get("adminIdNumber")));
regUnitInfo.setAdminIdCardPhoto(JSON.toJSONString(map.get("adminIdCardPhoto")));
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(String.valueOf(map.get("adminTel")));
me.setRealName(String.valueOf(map.get("adminName")));
FeignClientResult<AgencyUserModel> updateResult = Privilege.agencyUserClient.update(me, String.valueOf(map.get("adminUserId")));
if (200 == updateResult.getStatus()) {
regUnitInfoService.update(regUnitInfo, new QueryWrapper<RegUnitInfo>().eq("unit_code", unitCode));
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
} else {
resultMap.put("fail", "平台用户修改失败,请联系管理员");
}
} else {
resultMap.put("fail", "平台用户不存在");
RegUnitInfo regUnitInfo = new RegUnitInfo();
String unitCode = String.valueOf(map.get("unitCode"));
regUnitInfo.setAdminName(String.valueOf(map.get("adminName")));
regUnitInfo.setAdminIdNumber(String.valueOf(map.get("adminIdNumber")));
regUnitInfo.setAdminIdCardPhoto(JSON.toJSONString(map.get("adminIdCardPhoto")));
regUnitInfo.setAdminTel(String.valueOf(map.get("adminTel")));
me.setMobile(regUnitInfo.getAdminTel());
me.setRealName(String.valueOf(map.get("adminName")));
try {
Privilege.agencyUserClient.update(me, me.getUserId());
regUnitInfoService.update(regUnitInfo, new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, unitCode));
} catch (Exception e) {
log.error(e.getMessage(),e);
throw new BadRequest(e.getMessage());
}
resultMap.put("success", regUnitInfo);
redisUtil.del(adminChange + map.get("adminTel"));
return resultMap;
}
//机器人用户登录
private void loginCtiUser() {
String passwd = DesUtil.encode(tzsAdminPwd, "qaz");
IdPasswordAuthModel loninData = new IdPasswordAuthModel();
loninData.setLoginId(tzsAdminName);
loninData.setPassword(passwd);
FeignClientResult loginResult = Privilege.authClient.idpassword(loninData);
if(loginResult.getStatus() == 200) {
HashMap resultMap = (HashMap) loginResult.getResult();
redisUtil.set(TZS_USER_TOKEN, resultMap.get("token").toString(), redisRegionTimeSecond);
}
}
public void setSpeUseUnitState(int state,SpeUseUnit speUseUnit){
speUseUnit.setSyncState(state);
speUseUnitService.updateById(speUseUnit);
......
......@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
......@@ -19,6 +18,7 @@ import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserInfoService;
import com.yeejoin.amos.boot.module.tcm.api.vo.TzsUserInfoVo;
import com.yeejoin.amos.boot.module.tcm.api.vo.TzsUserQualificationsVo;
import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -32,6 +32,7 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserInfo, TzsUserInfoMapper> implements ITzsUserInfoService {
......@@ -45,8 +46,11 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Autowired
private RedisUtils redisUtils;
@Autowired
private DataDictionaryMapper dataDictionaryMapper;
RegUnitInfoServiceImpl regUnitInfoService;
//企业人员角色
private final String USER_ROLE = "QYRYJS";
//企业人员用户组
......@@ -57,38 +61,37 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Autowired
private TzsUserQualificationsServiceImpl tzsUserQualificationsService;
@Override
public Page<TzsUserInfoDto> page(TzsUserInfoDto dto, Page<TzsUserInfoDto> page) {
Page<TzsUserInfoDto> tzsUserInfoDtoPage = tzsUserInfoMapper.selectPageMessage(page, dto);
tzsUserInfoDtoPage.getRecords().forEach(item ->{
if (!ObjectUtils.isEmpty(item.getProfile())){
tzsUserInfoDtoPage.getRecords().forEach(item -> {
if (!ObjectUtils.isEmpty(item.getProfile())) {
List<CommonFile> commonFiles = JSON.parseArray(item.getProfile(), CommonFile.class);
item.setProfile(commonFiles.get(0).getUrl());
}
if (!ObjectUtils.isEmpty(item.getBirthday())){
if (!ObjectUtils.isEmpty(item.getBirthday())) {
int age = getAge(item.getBirthday());
item.setAge(Math.max(age, 0));
}
if (!ObjectUtils.isEmpty(item.getPost())){
JSONArray objects = JSON.parseArray(item.getPost());
item.setPost(null);
LambdaQueryWrapper<DataDictionary> lambda = new QueryWrapper<DataDictionary>().lambda();
lambda.in(DataDictionary::getSequenceNbr, objects);
List<DataDictionary> dataDictionaries = dataDictionaryMapper.selectList(lambda);
dataDictionaries.forEach(post ->{
if (!ObjectUtils.isEmpty(item.getPost())){
item.setPost(item.getPost() + "," +post.getName());
}else {
item.setPost(post.getName());
}
});
}
});
return tzsUserInfoDtoPage;
}
public String setPostName(String postKey) {
JSONArray dictIds = JSON.parseArray(postKey);
if (dictIds == null || dictIds.isEmpty()) {
return "";
}
LambdaQueryWrapper<DataDictionary> lambda = new QueryWrapper<DataDictionary>().lambda();
lambda.in(DataDictionary::getSequenceNbr, dictIds);
List<DataDictionary> dataDictionaries = regUnitInfoService.initAllDataDictionaryList();
List<DataDictionary> postDataList = dataDictionaries.stream().filter(d -> dictIds.stream().anyMatch(id -> id.toString().equals(d.getSequenceNbr().toString()))).collect(Collectors.toList());
return postDataList.stream().map(DataDictionary::getName).collect(Collectors.joining(","));
}
public int getAge(Date birth) {
private int getAge(Date birth) {
Calendar cal = Calendar.getInstance();
int thisYear = cal.get(Calendar.YEAR);
int thisMonth = cal.get(Calendar.MONTH);
......@@ -151,8 +154,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
Map<String, Object> maps = new HashMap<>();
TzsUserInfo tzsUserInfo = tzsUserInfoMapper.selectById(id);
TzsUserInfoVo tzsUserInfoVo = new TzsUserInfoVo();
BeanUtils.copyProperties(tzsUserInfo, tzsUserInfoVo, "identification","profile","post");
if (!ObjectUtils.isEmpty(tzsUserInfo.getPost())){
BeanUtils.copyProperties(tzsUserInfo, tzsUserInfoVo, "identification", "profile", "post");
if (!ObjectUtils.isEmpty(tzsUserInfo.getPost())) {
tzsUserInfoVo.setPost(JSON.parseArray(tzsUserInfo.getPost()));
}
tzsUserInfoVo.setIdentification(ObjectUtils.isEmpty(tzsUserInfo.getIdentification()) ? new ArrayList() : JSON.parseArray(tzsUserInfo.getIdentification()));
......@@ -162,15 +165,15 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
lambda.eq(TzsUserQualifications::getUserInfoId, id);
ArrayList<TzsUserQualificationsVo> tzsUserQualificationsVos = new ArrayList<>();
List<TzsUserQualifications> list = tzsUserQualificationsService.getBaseMapper().selectList(lambda);
list.forEach(item ->{
list.forEach(item -> {
TzsUserQualificationsVo vo = new TzsUserQualificationsVo();
BeanUtils.copyProperties(item, vo,"file");
BeanUtils.copyProperties(item, vo, "file");
vo.setFile(ObjectUtils.isEmpty(item.getFile()) ? new ArrayList() : JSON.parseArray(item.getFile()));
tzsUserQualificationsVos.add(vo);
});
HashMap<String, Object> subForm = new HashMap<>();
subForm.put("subForm", tzsUserQualificationsVos);
maps.put("qualificationsInfo",subForm);
maps.put("qualificationsInfo", subForm);
return maps;
}
......@@ -262,7 +265,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
userResult = Privilege.agencyUserClient.unlockUsers(amosUserId);
lockStatus = 200 == userResult.getStatus() ? UNLOCK : LOCK;
}
if(!ObjectUtils.isEmpty(lockStatus)){
if (!ObjectUtils.isEmpty(lockStatus)) {
TzsUserInfo tzsUserInfo = new TzsUserInfo();
tzsUserInfo.setSequenceNbr(sequenceNbr);
tzsUserInfo.setLockStatus(lockStatus);
......
......@@ -115,7 +115,7 @@ public class RegUnitInfoController extends BaseController {
@ApiOperation(httpMethod = "GET", value = "单位注册校验", notes = "单位注册校验")
public ResponseModel<RegUnitInfoDto> unitCheck(@PathVariable String unitCode,
@RequestParam String unitType,
@RequestParam String companyName) {
@RequestParam(required = false) String companyName) {
if (ValidationUtil.isEmpty(unitCode)) {
throw new BadRequest("单位编码不能为空");
}
......@@ -159,8 +159,6 @@ public class RegUnitInfoController extends BaseController {
return ResponseHelper.buildResponse(iRegUnitInfoService.getDictionaryWithTreeFillId(type));
}
// @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/management-unit/tree")
@ApiOperation(httpMethod = "GET", value = "管辖机构树", notes = "管辖机构树")
......
......@@ -374,6 +374,9 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
if (resultMap == null){
throw new BadRequest("工商信息接口查询失败,请稍后再试!");
}
if (ObjectUtils.isEmpty(resultMap)) {
throw new BadRequest("未查询到企业信息,请核对!");
}
if(!ValidationUtil.isEmpty(resultMap)){
// 2.2 工商信息组装
String area = String.valueOf(resultMap.get("area"));
......@@ -479,7 +482,7 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
"getName", "getParent", null, "getCode");
}
private List<DataDictionary> initAllDataDictionaryList() {
public List<DataDictionary> initAllDataDictionaryList() {
List<DataDictionary> dictionaries;
// 使用双重检查锁定
if (redisUtil.hasKey(BizCommonConstant.TCM_ALL_DATA_DICT_REDIS_KEY)) {
......
......@@ -14,7 +14,7 @@ eureka.instance.metadata-map.management.api-docs=http://172.16.3.34:${server.por
eureka.instance.ip-address=172.16.3.34
## ES properties:
elasticsearch.username=elastic
elasticsearch.password=a123456
elasticsearch.password=123456
spring.elasticsearch.rest.uris=http://172.16.10.230:9200
## unit(h)
alertcall.es.synchrony.time=48
......
......@@ -132,11 +132,7 @@ tzs.wechat.tempId.supervise=P5XGbszS2Pc6kynvGjzPpZ--ikAwDZo6O7WdJ2EUxtE
## \uFFFD\uFFFD\uFFFD\u06BA\u0172\uFFFD\uFFFD\uFFFD\uFFFD\u00FB\uFFFDid\uFFFD\uFFFD\u01BD\u0328userId\uFFFD\uFFFD
tzs.wechat.test.userId=3393279
admin.product=AMOS-SERVICE-ADMIN
admin.appkey=AMOS_ADMIN
admin.user=admin_tzs
admin.password=a1234560
admin.product.web=AMOS-WEB-ADMIN
amos.secret.key=qazknife4j.production=false
knife4j.production=false
......
......@@ -21,7 +21,7 @@ public class EsElevator {
/** 主键 */
@Id
private Long sequenceNbr;
private String sequenceNbr;
/**
* 注册编码
......
package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.EsElevator;
import com.yeejoin.amos.boot.module.ymt.api.entity.SuperviseInfo;
import org.apache.ibatis.annotations.Param;
......@@ -21,4 +22,6 @@ public interface SuperviseInfoMapper extends BaseMapper<SuperviseInfo> {
List<String> selectSuperviseCodeList(@Param("records") List<String> records);
void deleteDataAll(@Param("records") List<String> records);
EsElevator selectElevatorEsList(String record);
}
......@@ -101,29 +101,29 @@
</update>
<select id="checkCode" resultType="java.util.Map">
SELECT
<if test="equCode != null and equCode != ''">
(SELECT COUNT ( 1 ) FROM idx_biz_jg_register_info ibjri
SELECT 1
<if test="useOrgCode != null and useOrgCode != ''">
,(SELECT COUNT ( 1 ) FROM idx_biz_jg_register_info ibjri
LEFT JOIN idx_biz_jg_other_info ibjoi ON ibjoi."RECORD" = ibjri."RECORD"
WHERE ibjri."EQU_CODE" = #{equCode}
<if test="type != 'save' ">
and ibjri."RECORD" != #{record} and ibjoi."CLAIM_STATUS" = '已认领'
WHERE ibjri."USE_ORG_CODE" = #{useOrgCode} and ibjoi."CLAIM_STATUS" = '已认领'
<if test="type != 'save'">
and ibjri."RECORD" != #{record}
</if>
) AS equCode,
) AS useOrgCode
</if>
<if test="useOrgCode != null and useOrgCode != ''">
(SELECT COUNT ( 1 ) FROM idx_biz_jg_register_info ibjri
<if test="equCode != null and equCode != ''">
,(SELECT COUNT ( 1 ) FROM idx_biz_jg_register_info ibjri
LEFT JOIN idx_biz_jg_other_info ibjoi ON ibjoi."RECORD" = ibjri."RECORD"
WHERE ibjri."USE_ORG_CODE" = #{useOrgCode}
<if test="type != 'save'">
and ibjri."RECORD" != #{record} and ibjoi."CLAIM_STATUS" = '已认领'
WHERE ibjri."EQU_CODE" = #{equCode} and ibjoi."CLAIM_STATUS" = '已认领'
<if test="type != 'save' ">
and ibjri."RECORD" != #{record}
</if>
) AS useOrgCode,
) AS equCode
</if>
<if test="code96333 != null and code96333 != ''">
(SELECT COUNT ( 1 ) FROM idx_biz_jg_other_info ibjoi WHERE ibjoi."CODE96333" = #{code96333}
,(SELECT COUNT ( 1 ) FROM idx_biz_jg_other_info ibjoi WHERE ibjoi."CODE96333" = #{code96333} and ibjoi."CLAIM_STATUS" = '已认领'
<if test="type != 'save'">
and ibjoi."RECORD" != #{record} and ibjoi."CLAIM_STATUS" = '已认领'
and ibjoi."RECORD" != #{record}
</if>
) AS code
</if>
......
......@@ -108,4 +108,28 @@
#{record}
</foreach>
</delete>
<select id="selectElevatorEsList" resultType="com.yeejoin.amos.boot.module.ymt.api.entity.EsElevator">
SELECT
jui.RECORD AS sequenceNbr,
ifnull ( jui.USE_INNER_CODE, null ) AS innerNum,
ifnull ( joi.CODE96333, null ) AS rescueCode,
ifnull ( joi.SUPERVISORY_CODE, null ) AS registerCode,
ifnull ( jui.ADDRESS, null ) AS address,
ifnull ( jui.PROVINCE_NAME, null ) AS province,
ifnull ( jui.CITY_NAME, null ) AS city,
ifnull ( jui.COUNTY_NAME, null ) AS district,
ifnull ( jui."LONGITUDE_LATITUDE"::json->> 'latitude', null ) AS latitude,
ifnull ( jui."LONGITUDE_LATITUDE"::json->> 'longitude', null ) AS longitude,
concat(jui.PROVINCE, '#',jui.CITY, '#',jui.COUNTY) AS regionCode
FROM
idx_biz_jg_use_info jui
LEFT JOIN idx_biz_jg_other_info joi ON jui.RECORD = joi.RECORD
LEFT JOIN idx_biz_jg_register_info jri ON jri.RECORD = jui.RECORD
WHERE jri.EQU_LIST = '3000'
AND joi.CLAIM_STATUS = '已认领'
AND jui.RECORD = #{record}
ORDER BY jui.REC_DATE
</select>
</mapper>
\ No newline at end of file
......@@ -5,6 +5,7 @@ import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -13,39 +14,37 @@ import org.springframework.context.annotation.Configuration;
@Slf4j
public class RedissonManager {
//集群环境使用
// @Value("${spring.redis.cluster.nodes}")
// private String clusterNodes;
@Value("${spring.redis.cluster.nodes:default}")
private String clusterNodes;
//通用
@Value("${spring.redis.password}")
private String password;
//单机环境使用
@Value("${spring.redis.host}")
@Value("${spring.redis.host:default}")
private String host;
//单机环境使用
@Value("${spring.redis.port}")
@Value("${spring.redis.port:default}")
private String port;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedissonClient redissonClient() {
Config config = new Config();
config.useClusterServers()
.addNodeAddress(clusterNodes.split(","))
.setPassword(password);
return Redisson.create(config);
}
@Bean
public RedissonClient redissonClient() {
//集群环境使用
// log.info("clusterNodes{}",clusterNodes);
// log.info("password{}",password);
//
// Config config = new Config();
// config.useClusterServers()
// .addNodeAddress(clusterNodes.split(","))
// .setPassword(password);
// return Redisson.create(config);
//单机打包使用
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "singleton", matchIfMissing = true)
public RedissonClient redissonSingletonClient() {
// 单机打包使用
Config config = new Config();
config.useSingleServer().setAddress(host + ":" + port).setPassword(password);
return Redisson.create(config);
......
......@@ -422,7 +422,7 @@ public class ElevatorController extends BaseController {
elevatorPage = elevatorService.page(elevatorPage);
for (Elevator el:elevatorPage.getRecords()
) {
esElevatorService.saveEsElevatorToES(el);
// esElevatorService.saveEsElevatorToES(el);
}
}
}
......
......@@ -400,27 +400,22 @@ public class EquipmentCategoryController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/exportImageZip")
@ApiOperation(httpMethod = "GET", value = "设备监管码、电梯码批量导出压缩包", notes = "设备监管码、电梯码批量导出压缩包")
public void exportImageZip(HttpServletResponse response, EquipExportDto dto, @RequestParam("type") String type, @RequestParam("pageNum") Long pageNum, @RequestParam("size") Long size) throws IOException {
public void exportImageZip(HttpServletResponse response, @RequestParam Map<String, Object> map) throws IOException {
String type = String.valueOf(map.get("type"));
ImageSizeEnums imageSizeEnums = ImageSizeEnums.getEnumByCode(type);
//创建list 存放图片
List<File> fileList = new ArrayList<>();
if (!ObjectUtils.isEmpty(dto.getUSE_PLACE())) {
String address = dto.getUSE_PLACE().substring(1, dto.getUSE_PLACE().length() - 1);
address = address.replace(", ", "/");
dto.setUSE_PLACE(address);
}
List<EquipExportVo> equipExportData = equipmentCategoryServiceImpl.exportImageZip(dto, pageNum, size);
List<EquipExportVo> unique = equipExportData.stream().filter(item -> !ObjectUtils.isEmpty(item.getSupervisoryCode())).collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(EquipExportVo::getSupervisoryCode))), ArrayList::new)
);
if (ImageSizeEnums.DT.getCode().equals(type)){
unique = unique.stream().filter(item -> !ObjectUtils.isEmpty(item.getCode96333())).collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(EquipExportVo::getCode96333))), ArrayList::new)
);
JSONObject jsonObject = new JSONObject(map);
Page<JSONObject> pageList = equipmentCategoryServiceImpl.queryByKeys(jsonObject);
List<JSONObject> equipExportData;
if (map.containsKey("ids") && !ObjectUtils.isEmpty(map.get("ids"))) {
List<String> strings = Arrays.asList(String.valueOf(map.get("ids")).split(","));
equipExportData = pageList.getRecords().stream().filter(item -> strings.contains(String.valueOf(item.get("SEQUENCE_NBR")))).collect(Collectors.toList());
} else {
equipExportData = pageList.getRecords();
}
if (ObjectUtils.isEmpty(unique)){
if (ObjectUtils.isEmpty(equipExportData)) {
File zipFile = File.createTempFile("设备码信息", ".zip");
File nullFile = File.createTempFile("当前导出数据为空+", ".txt");
fileList.add(nullFile);
......@@ -429,18 +424,22 @@ public class EquipmentCategoryController extends BaseController {
ImageUtils.downloadResourceZip("设备码信息.zip", zipFile.getAbsolutePath(), response);
zipFile.delete();
}
for (EquipExportVo equipExportDatum : unique) {
InputStream bgImgFile = getClass().getClassLoader().getResourceAsStream("temp/" + imageSizeEnums.getBgPath());
if (ImageSizeEnums.DT.getCode().equals(type) && !ObjectUtils.isEmpty(equipExportDatum.getCode96333()) && !ObjectUtils.isEmpty(equipExportDatum.getSupervisoryCode())) {
File QrCodeFile = File.createTempFile(equipExportDatum.getCode96333() + "+", ".png");
ImageUtils.creatQRCode(QrCodeFile, bgImgFile, imageSizeEnums.getWith(), imageSizeEnums.getHeight(), REGULATORY_CODE_PREFIX + equipExportDatum.getSupervisoryCode(), "", equipExportDatum.getCode96333(), imageSizeEnums.getSize(), imageSizeEnums.getImagesX(), imageSizeEnums.getImagesY(), imageSizeEnums.getText1X(), imageSizeEnums.getText1Y(), imageSizeEnums.getText2X(), imageSizeEnums.getText2Y());
if (ImageSizeEnums.DT.getCode().equals(type)) {
for (JSONObject equipExportDatum : equipExportData.stream().filter(item -> !ObjectUtils.isEmpty(item.get("CODE96333"))).collect(Collectors.toList())) {
InputStream bgImgFile = getClass().getClassLoader().getResourceAsStream("temp/" + imageSizeEnums.getBgPath());
File QrCodeFile = File.createTempFile(equipExportDatum.get("CODE96333") + "+", ".png");
ImageUtils.creatQRCode(QrCodeFile, bgImgFile, imageSizeEnums.getWith(), imageSizeEnums.getHeight(), REGULATORY_CODE_PREFIX + equipExportDatum.get("SUPERVISORY_CODE"), "", String.valueOf(equipExportDatum.get("CODE96333")), imageSizeEnums.getSize(), imageSizeEnums.getImagesX(), imageSizeEnums.getImagesY(), imageSizeEnums.getText1X(), imageSizeEnums.getText1Y(), imageSizeEnums.getText2X(), imageSizeEnums.getText2Y());
fileList.add(new File(QrCodeFile.getAbsolutePath()));
} else if (!ObjectUtils.isEmpty(equipExportDatum.getSupervisoryCode())) {
File QrCodeFile = File.createTempFile(equipExportDatum.getSupervisoryCode() + "+", ".png");
ImageUtils.creatQRCode(QrCodeFile, bgImgFile, imageSizeEnums.getWith(), imageSizeEnums.getHeight(), REGULATORY_CODE_PREFIX + equipExportDatum.getSupervisoryCode(), "", equipExportDatum.getSupervisoryCode(), imageSizeEnums.getSize(), imageSizeEnums.getImagesX(), imageSizeEnums.getImagesY(), imageSizeEnums.getText1X(), imageSizeEnums.getText1Y(), imageSizeEnums.getText2X(), imageSizeEnums.getText2Y());
bgImgFile.close();
}
} else {
for (JSONObject equipExportDatum : equipExportData.stream().filter(item -> !ObjectUtils.isEmpty(item.get("SUPERVISORY_CODE"))).collect(Collectors.toList())) {
InputStream bgImgFile = getClass().getClassLoader().getResourceAsStream("temp/" + imageSizeEnums.getBgPath());
File QrCodeFile = File.createTempFile(equipExportDatum.get("SUPERVISORY_CODE") + "+", ".png");
ImageUtils.creatQRCode(QrCodeFile, bgImgFile, imageSizeEnums.getWith(), imageSizeEnums.getHeight(), REGULATORY_CODE_PREFIX + equipExportDatum.get("SUPERVISORY_CODE"), "", String.valueOf(equipExportDatum.get("SUPERVISORY_CODE")), imageSizeEnums.getSize(), imageSizeEnums.getImagesX(), imageSizeEnums.getImagesY(), imageSizeEnums.getText1X(), imageSizeEnums.getText1Y(), imageSizeEnums.getText2X(), imageSizeEnums.getText2Y());
fileList.add(new File(QrCodeFile.getAbsolutePath()));
bgImgFile.close();
}
bgImgFile.close();
}
File zipFile = File.createTempFile("设备码信息", ".zip");
// 调用压缩方法
......@@ -451,4 +450,5 @@ public class EquipmentCategoryController extends BaseController {
}
}
......@@ -11,6 +11,7 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.ymt.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.ymt.biz.utils.DesUtil;
import com.yeejoin.amos.boot.module.ymt.biz.utils.RedisUtil;
import org.eclipse.paho.client.mqttv3.MqttMessage;
......@@ -44,11 +45,6 @@ public class BaseEnterpriseMqTtlListener extends EmqxListener {
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appkey;
@Autowired
RedisUtil redisUtil;
......@@ -58,6 +54,9 @@ public class BaseEnterpriseMqTtlListener extends EmqxListener {
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, MqttMessage message) throws Exception {
System.out.println(message);
......@@ -67,9 +66,7 @@ public class BaseEnterpriseMqTtlListener extends EmqxListener {
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
RequestContext.setAppKey(appkey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
// List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
......
package com.yeejoin.amos.boot.module.ymt.biz.listener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.ymt.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.ymt.biz.utils.DesUtil;
import com.yeejoin.amos.boot.module.ymt.biz.utils.RedisUtil;
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 com.alibaba.fastjson.JSONObject;
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.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 java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description: mqtt监听服务
......@@ -33,78 +31,74 @@ import lombok.extern.slf4j.Slf4j;
@Component
@Slf4j
public class CarcylUnitInspectMqTtlListener extends EmqxListener {
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.secret.key}")
String secretKey;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appkey;
@Autowired
@Autowired
RedisUtil redisUtil;
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Override
public void processMessage(String topic, 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")));
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
.map(i -> i.getAppCode()).collect(Collectors.toList());
@Value("${org.filter.group.seq}")
private Long groupSeq;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, MqttMessage message) throws Exception {
System.out.println(message);
JSONObject object = null;
try {
object = JSONObject.parseObject(message.toString());
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
platformTokenService.getToken();
FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
List<ApplicationModel> aList = aResult.getResult();
List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
.map(i -> i.getAppCode()).collect(Collectors.toList());
String uuid = object.getString("id");
Long id = Long.valueOf(uuid.replaceAll("-","").hashCode());
FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(id);
if (cResult.getResult() == null) {
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(object.getString("inspect_unit_name"));
companyModel.setParentId(0L);
companyModel.setLevel("company");
companyModel.setSequenceNbr(id);
companyModel.setCompanyCode(object.getString("org_unit_name"));
companyModel.setCompanyType("检验单位");
Privilege.companyClient.create(companyModel);
}
Long id = Long.valueOf(uuid.replaceAll("-", "").hashCode());
FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(id);
if (cResult.getResult() == null) {
CompanyModel companyModel = new CompanyModel();
companyModel.setCompanyName(object.getString("inspect_unit_name"));
companyModel.setParentId(0L);
companyModel.setLevel("company");
companyModel.setSequenceNbr(id);
companyModel.setCompanyCode(object.getString("org_unit_name"));
companyModel.setCompanyType("检验单位");
Privilege.companyClient.create(companyModel);
}
String unitCode = object.getString("org_unit_name");
if (unitCode == null || unitCode.length() < 6) {
log.error("公司统一信用代码长度不够6位");
throw new Exception("公司统一信用代码长度不够6位");
}
String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
if (uResult.getResult() == null) {
AgencyUserModel userModel = new AgencyUserModel();
userModel.setUserName(userName);
userModel.setRealName(userName);
userModel.setPassword(DesUtil.encode(userName, secretKey));
userModel.setRePassword(DesUtil.encode(userName, secretKey));
// userModel.setMobile(vo.getPhoneNo());
userModel.setLockStatus("UNLOCK");
FeignClientResult<List<RoleModel>> list = Privilege.roleClient.queryRoleList("检验单位", "admin");
Map<Long, List<Long>> orgRoles = new HashMap<>();
List<Long> roleIds = new ArrayList<>();
roleIds.add(list.getResult().get(0).getSequenceNbr());
orgRoles.put(id, roleIds);
userModel.setAppCodes(appCodes);
userModel.setOrgRoleSeqs(orgRoles);
FeignClientResult<AgencyUserModel> userResult =Privilege.agencyUserClient.create(userModel);
String[] userIds = {userResult.getResult().getUserId()};
String unitCode = object.getString("org_unit_name");
if (unitCode == null || unitCode.length() < 6) {
log.error("公司统一信用代码长度不够6位");
throw new Exception("公司统一信用代码长度不够6位");
}
String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
if (uResult.getResult() == null) {
AgencyUserModel userModel = new AgencyUserModel();
userModel.setUserName(userName);
userModel.setRealName(userName);
userModel.setPassword(DesUtil.encode(userName, secretKey));
userModel.setRePassword(DesUtil.encode(userName, secretKey));
// userModel.setMobile(vo.getPhoneNo());
userModel.setLockStatus("UNLOCK");
FeignClientResult<List<RoleModel>> list = Privilege.roleClient.queryRoleList("检验单位", "admin");
Map<Long, List<Long>> orgRoles = new HashMap<>();
List<Long> roleIds = new ArrayList<>();
roleIds.add(list.getResult().get(0).getSequenceNbr());
orgRoles.put(id, roleIds);
userModel.setAppCodes(appCodes);
userModel.setOrgRoleSeqs(orgRoles);
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(userModel);
String[] userIds = {userResult.getResult().getUserId()};
// if (groupSeq != null) {
// Privilege.groupUserClient.create(groupSeq, Arrays.asList(userIds));
// }
}
}
}
}
}
......@@ -5,16 +5,15 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.ymt.api.service.IEquipmentCategoryService;
import com.yeejoin.amos.boot.module.ymt.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.ymt.flc.api.service.IRegUnitInfoService;
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.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.component.emq.EmqxListener;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
......@@ -39,23 +38,18 @@ public class PlatformUserTopicMessage extends EmqxListener {
@Autowired
RedisUtils redisUtil;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appKey;
@Autowired
IEquipmentCategoryService equipmentCategoryService;
@Autowired
IRegUnitInfoService regUnitInfoService;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String topic, MqttMessage message) {
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
JSONObject jsonObject = JSON.parseObject(message.toString());
JSONObject result = jsonObject.getJSONObject("result");
JSONObject dataResult = result.getJSONObject("result");
......
......@@ -5,10 +5,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.ymt.biz.service.impl.TzBaseEnterpriseInfoServiceImpl;
import com.yeejoin.amos.boot.module.ymt.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.ymt.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import lombok.extern.slf4j.Slf4j;
......@@ -16,14 +16,15 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
@Component
@Slf4j
......@@ -40,11 +41,8 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
@Autowired
RedisUtil redisUtil;
@Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
String product;
@Value("${amos.system.user.app-key:AMOS_STUDIO}")
String appKey;
@Autowired
StartPlatformTokenService platformTokenService;
@Override
public void processMessage(String s, MqttMessage message) throws Exception {
......@@ -58,15 +56,13 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
} catch (Exception e) {
throw new Exception("公司同步消息解析失败");
}
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
//判断库中业务tz_base_enterprise_info是否存在
QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
queryWrapper.eq("use_code",object.getString("unit_code"));
queryWrapper.eq("use_code", object.getString("unit_code"));
TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = tzBaseEnterpriseInfoService.getOne(queryWrapper);
if(!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)){
if (!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)) {
accessFeignService.updateSyncCompanyState(object.getString("sequence_nbr"));
return;
}
......@@ -95,14 +91,14 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
//业务表更新条件构造器
UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("use_code",object.getString("unit_code"));
updateWrapper.eq("use_code", object.getString("unit_code"));
String regCode = object.getString("reg_code");
CompanyModel supervisePrivilegeCompanyModel;
if (!ValidationUtil.isEmpty(regCode)) {
supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode(regCode).getResult();
if(ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)){
if (ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)) {
supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode("610000").getResult();
if (ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)) {
......@@ -120,37 +116,37 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
tzBaseEnterpriseInfo.setSuperviseOrgCode(supervisePrivilegeCompanyModel.getOrgCode());
tzBaseEnterpriseInfo.setSuperviseOrgName(supervisePrivilegeCompanyModel.getCompanyName());
if(ValidationUtil.isEmpty(tzBaseEnterpriseInfo.getUnitType())){
if (ValidationUtil.isEmpty(tzBaseEnterpriseInfo.getUnitType())) {
tzBaseEnterpriseInfo.setUnitType("");
}
try {
if (tzBaseEnterprisePrivilegeInfo == null ) {
if (tzBaseEnterprisePrivilegeInfo == null) {
tzBaseEnterpriseInfoService.save(tzBaseEnterpriseInfo);
accessFeignService.updateSyncCompanyState(object.getString("sequence_nbr"));
return;
}
} catch(Exception e) {
} catch (Exception e) {
logger.error("【" + object.getString("unit_name") + "】许可信息同步【失败】:" + e.getMessage());
}
}
public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels,Map<String, CompanyModel> map){
if(companyModels == null){
public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels, Map<String, CompanyModel> map) {
if (companyModels == null) {
return map;
}
Iterator iter = companyModels.iterator();
while(iter.hasNext()){
while (iter.hasNext()) {
String json = JSON.toJSONString(iter.next());
CompanyModel companyModel = JSON.parseObject(json,CompanyModel.class);
CompanyModel companyModel = JSON.parseObject(json, CompanyModel.class);
String code = companyModel.getCompanyCode();
if(code.length() >=6){
if (code.length() >= 6) {
code = code.substring(0, 6);
}
map.put(code,companyModel);
getCompanyInfoMap(companyModel.getChildren(),map);
map.put(code, companyModel);
getCompanyInfoMap(companyModel.getChildren(), map);
}
return map;
}
......
......@@ -92,32 +92,32 @@ public class ESElevatorServiceImpl {
*
* @param elevator 电梯信息
*/
public EsElevator saveEsElevatorToES(Elevator elevator)
{
EsElevator esElevator = new EsElevator();
if(StringUtils.isNotEmpty(elevator.getLongitude())) {
esElevator.setLongitude(Double.parseDouble(elevator.getLongitude()));
}
if(StringUtils.isNotEmpty(elevator.getLatitude())) {
esElevator.setLatitude(Double.parseDouble(elevator.getLatitude()));
}
esElevator.setAddress(elevator.getAddress());
esElevator.setCity(elevator.getCity());
esElevator.setDistrict(elevator.getDistrict());
esElevator.setProvince(elevator.getProvince());
esElevator.setRegionCode(elevator.getRegionCode());
esElevator.setRescueCode(elevator.getRescueCode().toString());
esElevator.setRegisterCode(elevator.getRegisterCode());
esElevator.setSequenceNbr(elevator.getSequenceNbr());
esElevator.setInnerNum(elevator.getInnerNum());
if(StringUtils.isNotBlank(elevator.getLatitude()) && StringUtils.isNotBlank(elevator.getLongitude())) {
Double lat = Double.parseDouble(elevator.getLatitude());
Double lon = Double.parseDouble(elevator.getLongitude());
esElevator.setLocation(new GeoPoint(lat,lon));
}
esElavtorRepository.save(esElevator);
return esElevator;
}
// public EsElevator saveEsElevatorToES(Elevator elevator)
// {
// EsElevator esElevator = new EsElevator();
// if(StringUtils.isNotEmpty(elevator.getLongitude())) {
// esElevator.setLongitude(Double.parseDouble(elevator.getLongitude()));
// }
// if(StringUtils.isNotEmpty(elevator.getLatitude())) {
// esElevator.setLatitude(Double.parseDouble(elevator.getLatitude()));
// }
// esElevator.setAddress(elevator.getAddress());
// esElevator.setCity(elevator.getCity());
// esElevator.setDistrict(elevator.getDistrict());
// esElevator.setProvince(elevator.getProvince());
// esElevator.setRegionCode(elevator.getRegionCode());
// esElevator.setRescueCode(elevator.getRescueCode().toString());
// esElevator.setRegisterCode(elevator.getRegisterCode());
// esElevator.setSequenceNbr(elevator.getSequenceNbr());
// esElevator.setInnerNum(elevator.getInnerNum());
// if(StringUtils.isNotBlank(elevator.getLatitude()) && StringUtils.isNotBlank(elevator.getLongitude())) {
// Double lat = Double.parseDouble(elevator.getLatitude());
// Double lon = Double.parseDouble(elevator.getLongitude());
// esElevator.setLocation(new GeoPoint(lat,lon));
// }
// esElavtorRepository.save(esElevator);
// return esElevator;
// }
/**
......
......@@ -21,6 +21,7 @@ import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.boot.module.ymt.api.service.IEquipmentCategoryService;
import com.yeejoin.amos.boot.module.ymt.api.vo.EquipExportVo;
import com.yeejoin.amos.boot.module.ymt.biz.dao.ESElavtorRepository;
import com.yeejoin.amos.boot.module.ymt.biz.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.ymt.flc.api.feign.IdxFeignService;
......@@ -35,6 +36,7 @@ import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.geo.GeoPoint;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilders;
......@@ -42,6 +44,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -214,7 +217,8 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
@Autowired
private static final String TABLENAME = "tableName";
@Autowired
private ESElavtorRepository esElavtorRepository;
@Value("${regulator.unit.code}")
private String code;
......@@ -286,10 +290,6 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
@Autowired
RestHighLevelClient restHighLevelClient;
private static String USE_CODE = "use_code";
private static String ORG_BRANCH_CODE = "supervise_org_code";
private ExecutorService threadPool = Executors.newCachedThreadPool();
/**
......@@ -350,11 +350,11 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
if ("company".equals(level)) {
BoolQueryBuilder query = QueryBuilders.boolQuery();
query.must(QueryBuilders.matchPhraseQuery("USE_UNIT_CREDIT_CODE", companyCode));
query.must(QueryBuilders.matchPhraseQuery("USE_UNIT_CREDIT_CODE", companyCode));
boolMust.must(query);
} else {
BoolQueryBuilder query = QueryBuilders.boolQuery();
query.must(QueryBuilders.matchPhrasePrefixQuery("ORG_BRANCH_CODE", orgCode));
query.must(QueryBuilders.matchPhrasePrefixQuery("ORG_BRANCH_CODE", orgCode));
boolMust.must(query);
}
TermsAggregationBuilder field1Aggregation = AggregationBuilders
......@@ -371,7 +371,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
builder.aggregation(field1Aggregation);
builder.size(0);
request.source(builder);
Map<String,Object> statusCountMap = new HashMap<>();
Map<String, Object> statusCountMap = new HashMap<>();
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
Terms field1Terms = response.getAggregations().get("group_by_code");
......@@ -392,7 +392,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
item.put("waitClaim", this.getCountNumber(item.get("code").toString(), "waitClaim", statusCountMap));
item.put("alreadyClaim", this.getCountNumber(item.get("code").toString(), "alreadyClaim", statusCountMap));
item.put("refuseClaim", this.getCountNumber(item.get("code").toString(), "refuseClaim", statusCountMap));
item.put("sum", Long.parseLong(item.get("waitClaim").toString()) + Long.parseLong(item.get("alreadyClaim").toString()) + Long.parseLong(item.get("refuseClaim").toString()));
item.put("sum", Long.parseLong(item.get("waitClaim").toString()) + Long.parseLong(item.get("alreadyClaim").toString()) + Long.parseLong(item.get("refuseClaim").toString()));
list.add(item);
}
page.setCurrent(1);
......@@ -401,9 +401,9 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
return page;
}
private Long getCountNumber(String type, String status, Map<String, Object> statusCountMap) {
private Long getCountNumber(String type, String status, Map<String, Object> statusCountMap) {
String key = type + "|" + status;
return Long.parseLong(statusCountMap.getOrDefault(key,"0").toString());
return Long.parseLong(statusCountMap.getOrDefault(key, "0").toString());
}
/**
......@@ -588,11 +588,11 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
@Override
public String checkCode(Map<String, Object> obj) {
String result = null;
String type = (String) obj.get("type");
String code96333 = String.valueOf(obj.get("CODE96333"));
String equCode = (String) obj.get("EQU_CODE");
String useOrgCode = (String) obj.get("USE_ORG_CODE");
String record = (String) obj.get("id");
String type = ObjectUtils.isEmpty(obj.get("type")) ? null : String.valueOf(obj.get("type"));
String code96333 = ObjectUtils.isEmpty(obj.get("CODE96333")) ? null : String.valueOf(obj.get("CODE96333"));
String equCode = ObjectUtils.isEmpty(obj.get("EQU_CODE")) ? null : String.valueOf(obj.get("EQU_CODE"));
String useOrgCode = ObjectUtils.isEmpty(obj.get("USE_ORG_CODE")) ? null : String.valueOf(obj.get("USE_ORG_CODE"));
String record = ObjectUtils.isEmpty(obj.get("id")) ? null : String.valueOf(obj.get("id"));
Map<String, Long> map = categoryOtherInfoMapper.checkCode(type, code96333, equCode, useOrgCode, record);
if (map.containsKey("equCode") && map.get("equCode") > 0) {
result = "设备代码重复,请确认数据是否输入正确,或联系管辖机构处理。";
......@@ -1280,19 +1280,25 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
Object recordList = map.get("recordList");
List<String> records = new ArrayList<>();
List<ESEquipmentCategoryDto> list = new ArrayList<>();
List<EsElevator> esElevatorList = new ArrayList<>();
if (recordList.toString().contains("[")) {
for (String record : (List<String>) recordList) {
records.add(record);
ESEquipmentCategoryDto esEquipmentCategoryDto = new ESEquipmentCategoryDto();
esEquipmentCategoryDto.setSEQUENCE_NBR(record);
list.add(esEquipmentCategoryDto);
EsElevator esElevator = new EsElevator();
esElevator.setSequenceNbr(record);
esElevatorList.add(esElevator);
}
} else {
records.add(recordList.toString());
ESEquipmentCategoryDto esEquipmentCategoryDto = new ESEquipmentCategoryDto();
esEquipmentCategoryDto.setSEQUENCE_NBR(recordList.toString());
list.add(esEquipmentCategoryDto);
EsElevator esElevator = new EsElevator();
esElevator.setSequenceNbr(recordList.toString());
esElevatorList.add(esElevator);
}
//删除监管码表数据
List<String> superviseCodeList = superviseInfoMapper.selectSuperviseCodeList(records);
......@@ -1307,7 +1313,8 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
if (!ObjectUtils.isEmpty(superviseCodeList)) {
supervisoryCodeInfoMapper.updateStatus(superviseCodeList);
}
//删除es中elev中的相关数据
esElavtorRepository.deleteAll(esElevatorList);
//删除涉及的19张表的数据
superviseInfoMapper.deleteDataAll(records);
//删除es中的数据
......@@ -1334,10 +1341,10 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
useInfoFrom.put("REC_DATE", dateFormat.format(calendar.getTime()));
String unitCode = String.valueOf(useInfoFrom.get("USE_UNIT_CREDIT_CODE"));
LinkedHashMap supervisionMap = (LinkedHashMap) map.get(supervision_form_id);
boolean saveFlag = false;
String record = null;
LinkedHashMap superviseMap = (LinkedHashMap) map.get("data");
String equCategory = String.valueOf(superviseMap.get("equCategory"));
try {
String claimStatus = String.valueOf(superviseMap.get("claimStatus"));
String code96333 = String.valueOf(superviseMap.get("code96333"));
......@@ -1352,26 +1359,16 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
EquipmentCategoryServiceImpl categoryService = (EquipmentCategoryServiceImpl) AopContext.currentProxy();
//生成码
//集群模式使用
// RLock lock = redissonClient.getLock(LOCK_KEY);
// lock.lock(); // 获取锁
// log.info("加锁成功");
// codeMap = categoryService.creatCode(city, county, equCategory, code96333, supervisionCode);
// log.info("生成码成功");
// lock.unlock(); // 释放锁
// log.info("释放锁");
// log.info("已生成对应监管码或96333电梯识别码");
//单机模式使用
// boolean flag = false;
// if (lock.tryLock(3, 5, TimeUnit.SECONDS)) {
codeMap = categoryService.creatCode(city, county, equCategory, code96333, supervisionCode);
log.info("已生成对应监管码或96333电梯识别码");
// flag = true;
// }
// if (flag) {
// lock.unlock(); // 释放锁
// log.info("释放锁");
// }
//添加对应监管码和96333码调用通用新增保存接口进行修改
RLock lock = redissonClient.getLock(LOCK_KEY);
lock.lock(); // 获取锁
log.info("加锁成功");
codeMap = categoryService.creatCode(city, county, equCategory, code96333, supervisionCode);
log.info("生成码成功");
lock.unlock(); // 释放锁
log.info("释放锁");
log.info("已生成对应监管码或96333电梯识别码");
//删除map中的冗余数据,添加对应监管码和96333码调用idx多表单页提交接口吧保存数据
map.remove("data");
supervisionMap.put("CODE96333", codeMap.get("code96333"));
supervisionMap.put("SUPERVISORY_CODE", codeMap.get("superviseCode"));
map.put(supervision_form_id, supervisionMap);
......@@ -1413,11 +1410,15 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
if (log.isInfoEnabled()) {
log.info("通用提交耗时:{} 秒", stopWatch3.getTotalTimeSeconds());
}
String finalRecord = record;
threadPool.submit(() -> {
log.info("已生成对应监管码" + supervisionMap.get("SUPERVISORY_CODE"));
log.info("已生成对应96333电梯识别码" + supervisionMap.get("CODE96333"));
if (log.isInfoEnabled()) {
log.info("企业统一信用代码-------->>>>>>>>>>{}", unitCode);
log.info("已生成对应监管码" + supervisionMap.get("SUPERVISORY_CODE"));
log.info("已生成对应96333电梯识别码" + supervisionMap.get("CODE96333"));
}
supervisoryCodeInfoMapper.update(supervisoryCodeInfo, new QueryWrapper<SupervisoryCodeInfo>().eq("supervisory_code", supervisionMap.get("SUPERVISORY_CODE")));
log.info("unitCode-------->>>>>>>>>>{}", unitCode);
saveEsElevator2ES(finalRecord);
});
} catch (Exception e) {
log.error(e.getMessage(), e);
......@@ -1652,12 +1653,12 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
mainPartsList = getAccessoryEntity(registerForm, subFormMainPartsList, main_parts, record, date, type);
}
}
IdxBizJgRegisterInfo registerInfo =JSON.parseObject(JSON.toJSONString(registerForm), IdxBizJgRegisterInfo.class);
IdxBizJgRegisterInfo registerInfo = JSON.parseObject(JSON.toJSONString(registerForm), IdxBizJgRegisterInfo.class);
registerInfo.setRecord(record);
registerInfo.setRecDate(date);
registerInfo.setSequenceNbr("save".equals(type) ? null : registerForm.get("sequenceNbr").toString());
idxBizJgRegisterInfoService.saveOrUpdate(registerInfo);
if (!ObjectUtils.isEmpty(mainPartsList)) {
idxBizJgMainPartsService.saveOrUpdateBatch(mainPartsList);
}
......@@ -1667,14 +1668,14 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
return record;
}
private List getAccessoryEntity(Map<String, Object> map, List<String> list, String subFormType, String record, Date date,String type) {
private List getAccessoryEntity(Map<String, Object> map, List<String> list, String subFormType, String record, Date date, String type) {
List<IdxBizJgMainParts> mainPartsList = new ArrayList<>();
List<IdxBizJgProtectionDevices> protectionDevicesList = new ArrayList<>();
if ("mainParts".equals(subFormType)) {
for (Object s : list) {
List subFormMainPartsList = (ArrayList) map.get(s);
if(!ObjectUtils.isEmpty(subFormMainPartsList)){
if (!ObjectUtils.isEmpty(subFormMainPartsList)) {
for (Object obj : subFormMainPartsList) {
IdxBizJgMainParts mainParts = JSON.parseObject(JSON.toJSONString(obj), IdxBizJgMainParts.class);
mainParts.setRecord(record);
......@@ -1688,7 +1689,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
} else {
for (Object s : list) {
List subFormProtectionDevicesList = (ArrayList) map.get(s);
if(!ObjectUtils.isEmpty(subFormProtectionDevicesList)){
if (!ObjectUtils.isEmpty(subFormProtectionDevicesList)) {
for (Object obj : subFormProtectionDevicesList) {
IdxBizJgProtectionDevices protectionDevices = JSON.parseObject(JSON.toJSONString(obj), IdxBizJgProtectionDevices.class);
protectionDevices.setRecord(record);
......@@ -1703,7 +1704,24 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
}
//分页查询所有数据
private void saveEsElevator2ES(String record) {
List<String> recordList = new ArrayList<>();
recordList.add(record);
EsElevator esElevator = superviseInfoMapper.selectElevatorEsList(record);
if (!ObjectUtils.isEmpty(esElevator)) {
Double lat = esElevator.getLatitude();
Double lon = esElevator.getLongitude();
esElevator.setLocation(new GeoPoint(lat, lon));
}
esElavtorRepository.save(esElevator);
superviseInfoMapper.updateRecordBatch(recordList);
}
/**
* 分页查询所有数据
* @param map
* @return
*/
public Page<Map<String, Object>> getAll(Map<String, Object> map) {
String tableName = map.get(TABLENAME).toString();
Assert.hasText(tableName, "表名不能为空");
......
package com.yeejoin.amos.boot.module.ymt.biz.service.impl;
import com.yeejoin.amos.boot.module.ymt.biz.utils.RedisUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
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 com.yeejoin.amos.component.robot.AmosRequestContext;
@Service
public class StartPlatformTokenService {
@Value("${admin.product}")
String product;
@Value("${admin.appkey}")
String appkey;
@Value("${admin.user}")
String user;
@Value("${admin.password}")
String password;
@Autowired
RedisUtil redisUtil;
@Value("${amos.secret.key}")
String secretKey;
@Autowired
AmosRequestContext amosRequestContext;
@Autowired
RedisUtil redisUtil;
@Autowired
AmosRequestContext amosRequestContext;
public void getToken() {
RequestContext.setProduct(product);
RequestContext.setAppKey(appkey);
String token = amosRequestContext.getToken();
System.out.println("token:" + token);
RequestContext.setToken(token);
redisUtil.set("platform_token", token);
}
public void getToken() {
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setToken(amosRequestContext.getToken());
}
}
......@@ -41,7 +41,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -63,15 +62,6 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
RedisUtil redisUtil;
@Value("${admin.product}")
String product;
@Value("${admin.product.web}")
String webProduct;
@Value("${admin.appkey}")
String appkey;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
......@@ -84,8 +74,6 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
RegUnitInfoServiceImpl regUnitInfoService;
@Autowired
private IBaseUnitLicenceService iBaseUnitLicenceService;
@Autowired
private SpeUseUnitServiceImpl speUseUnitService;
......@@ -94,29 +82,23 @@ public class TzBaseEnterpriseInfoServiceImpl
private AccessFeignService accessFeignService;
@Autowired
private ITzBaseEnterpriseInfoService tzBaseEnterpriseInfoService;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RegUnitInfoMapper regUnitInfoMapper;
@Value("${tzs.admin.name:tzs_admin}")
private String tzsAdminName;
@Value("${tzs.admin.pwd:a1234567}")
private String tzsAdminPwd;
@Autowired
StartPlatformTokenService platformTokenService;
@Value("${redis.cache.failure.time}")
private Long redisRegionTimeSecond;
/**机器人用户token缓存key */
public static final String TZS_USER_TOKEN = "TZS_USER_TOKEN";
/**
* 企业管理员变更缓存key前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
......@@ -313,9 +295,7 @@ public class TzBaseEnterpriseInfoServiceImpl
@Override
public String syncEnterpriseInfo() {
RequestContext.setAppKey(appkey);
RequestContext.setProduct(product);
RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
platformTokenService.getToken();
List<TzBaseEnterpriseInfo> baseEnterpriseInfoList = new ArrayList<>();
......@@ -538,16 +518,11 @@ public class TzBaseEnterpriseInfoServiceImpl
return String.join(",", res);
}
@Override
public Map<String, Object> adminInfoUpdate(Map<String, Object> map) {
//每一个企业只有一个管理员,所以当前登录用户即管理员用户
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
RequestContext.setAppKey(appkey);
RequestContext.setProduct(webProduct);
//获取机器人的token,获取不到则去登录
if (ObjectUtils.isEmpty(redisUtil.get(TZS_USER_TOKEN))) {
loginCtiUser();
}
RequestContext.setToken(String.valueOf(redisUtil.get(TZS_USER_TOKEN)));
platformTokenService.getToken();
Map<String, Object> resultMap = new HashMap<>();
if (!ObjectUtils.isEmpty(me)) {
RegUnitInfo regUnitInfo = new RegUnitInfo();
......@@ -572,18 +547,6 @@ public class TzBaseEnterpriseInfoServiceImpl
return resultMap;
}
//机器人用户登录
private void loginCtiUser() {
String passwd = DesUtil.encode(tzsAdminPwd, "qaz");
IdPasswordAuthModel loninData = new IdPasswordAuthModel();
loninData.setLoginId(tzsAdminName);
loninData.setPassword(passwd);
FeignClientResult loginResult = Privilege.authClient.idpassword(loninData);
if(loginResult.getStatus() == 200) {
HashMap resultMap = (HashMap) loginResult.getResult();
redisUtil.set(TZS_USER_TOKEN, resultMap.get("token").toString(), redisRegionTimeSecond);
}
}
public void setSpeUseUnitState(int state,SpeUseUnit speUseUnit){
......
......@@ -19,6 +19,7 @@ spring.elasticsearch.rest.uris=http://172.16.10.230:9200
## unit(h)
alertcall.es.synchrony.time=48
#redis properties:
spring.redis.mode=singleton
spring.redis.database=1
spring.redis.host=172.16.10.230
spring.redis.port=16379
......
......@@ -122,11 +122,7 @@ tzs.wechat.tempId.supervise=P5XGbszS2Pc6kynvGjzPpZ--ikAwDZo6O7WdJ2EUxtE
## \uFFFD\uFFFD\uFFFD\u06BA\u0172\uFFFD\uFFFD\uFFFD\uFFFD\u00FB\uFFFDid\uFFFD\uFFFD\u01BD\u0328userId\uFFFD\uFFFD
tzs.wechat.test.userId=3393279
admin.product=AMOS-SERVICE-ADMIN
admin.appkey=AMOS_ADMIN
admin.user=admin_tzs
admin.password=a1234560
admin.product.web=AMOS-WEB-ADMIN
amos.secret.key=qazknife4j.production=false
knife4j.production=false
......
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