Commit 40b684cc authored by 韩桐桐's avatar 韩桐桐

导出功能能:设备,使用登记证,企业

parent 7d6694ba
package com.yeejoin.amos.boot.biz.common.dto;
import lombok.Getter;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.nio.file.Files;
@Getter
public class ByteArrayMultipartFile implements MultipartFile {
private byte[] bytes;
private String name;
private String originalFilename;
private String contentType;
public ByteArrayMultipartFile() {
}
public ByteArrayMultipartFile(String name, String originalFilename, String contentType, byte[] bytes) {
super();
this.name = name;
this.originalFilename = originalFilename;
this.contentType = contentType;
this.bytes = bytes;
}
@Override
public boolean isEmpty() {
return bytes.length == 0;
}
@Override
public long getSize() {
return bytes.length;
}
@Override
public InputStream getInputStream() {
return new ByteArrayInputStream(bytes);
}
@Override
public void transferTo(File destination) throws IOException {
try (OutputStream outputStream = Files.newOutputStream(destination.toPath())) {
outputStream.write(bytes);
}
}
}
......@@ -2,13 +2,16 @@ package com.yeejoin.amos.boot.biz.common.excel;
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.yeejoin.amos.boot.biz.common.dto.ByteArrayMultipartFile;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
......@@ -16,9 +19,7 @@ import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.*;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
......@@ -31,6 +32,53 @@ public class ExcelUtil {
private static final Integer DUTY_CAR_START_INDEX = 5;
public static MultipartFile createTemplateExcelFile(String fileName,
String sheetName,
List<? extends Object> data,
Class<?> model,
DataSources dataDictionaryMapper,
boolean flag) {
// 设置单元格样式策略
HorizontalCellStyleStrategy horizontalCellStyleStrategy = setMyCellStyle();
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
// 用于存储下拉列表约束的Map
Map<Integer, String[]> explicitListConstraintMap = new HashMap<>();
// 如果flag为true,处理模型类中的显式约束注解
if (flag) {
Field[] declaredFields = model.getDeclaredFields();
for (Field field : declaredFields) {
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
resolveExplicitConstraint(explicitListConstraintMap, explicitConstraint, dataDictionaryMapper);
}
}
// 创建Excel写入器
ExcelWriter excelWriter = EasyExcel.write(out, model)
.excelType(ExcelTypeEnum.XLSX)
.registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy)
.build();
// 创建工作表
WriteSheet writeSheet = EasyExcel.writerSheet(sheetName).build();
excelWriter.write(data, writeSheet);
excelWriter.finish();
return new ByteArrayMultipartFile(fileName, // 文件名
fileName + ".xlsx", // 原始文件名
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // Content-Type
out.toByteArray());
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("生成Excel模板失败", e);
}
}
/**
* 生成excel模板
*
......@@ -83,7 +131,7 @@ public class ExcelUtil {
* @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,
extends Object> data, Class<?> model, List<String> dayByMonth, String[] dutyNameList,
DataSources dataDictionaryMapper,
boolean flag) {
......@@ -128,7 +176,7 @@ public class ExcelUtil {
// 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)
ExcelTypeEnum.XLSX)).head(dutyCarTitleList).excelType(ExcelTypeEnum.XLSX)
.sheet(sheetName).registerWriteHandler(new TemplateCellWriteHandlerDate(explicitListConstraintMap))
.registerWriteHandler(new TemplateCellWriteHandler())
.registerWriteHandler(horizontalCellStyleStrategy);
......
package com.yeejoin.amos.boot.biz.common.utils;
import com.alibaba.fastjson.JSONObject;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Objects;
......@@ -40,4 +41,42 @@ public class CommonUtils {
Object value = method.invoke(o, new Object[]{});
return value;
}
/**
* 深度copyJSONObjet ,用于多个jsonobjectg合并
* @param source
* @param target
* @return
*/
public static JSONObject deepMergeJSONObject(JSONObject source, JSONObject target) {
if (target == null) return source;
for (String key : source.keySet()) {
Object value = source.get(key);
if (!target.containsKey(key)) {
target.put(key, value); // 直接添加新键
} else {
// 若值为 JSONObject,递归合并
if (value instanceof JSONObject) {
deepMergeJSONObject((JSONObject) value, target.getJSONObject(key));
}
// 若值为 JSONArray,需处理数组合并(如叠加元素)
else if (value instanceof com.alibaba.fastjson.JSONArray) {
com.alibaba.fastjson.JSONArray srcArr = (com.alibaba.fastjson.JSONArray) value;
com.alibaba.fastjson.JSONArray tgtArr = target.getJSONArray(key);
for (Object item : srcArr) {
if (item instanceof JSONObject) {
// 若数组元素为对象,可递归合并(需匹配逻辑)
tgtArr.add(item); // 简单追加示例
} else {
tgtArr.add(item); // 基础类型直接添加
}
}
}
else {
target.put(key, value); // 非对象/数组则覆盖
}
}
}
return target;
}
}
......@@ -20,30 +20,45 @@ public class NameUtils {
* @return 转换后的字符串
*/
public static String underline2Camel(String line, boolean... smallCamel) {
if (line == null || "".equals(line)) {
if (line == null || line.isEmpty()) {
return "";
}
StringBuffer sb = new StringBuffer();
Matcher matcher = NUMBER_PATTERN.matcher(line);
//匹配正则表达式
while (matcher.find()) {
String word = matcher.group();
//当是true 或则是空的情况
if ((smallCamel.length == 0 || smallCamel[0]) && matcher.start() == 0) {
sb.append(Character.toLowerCase(word.charAt(0)));
} else {
sb.append(Character.toUpperCase(word.charAt(0)));
// 如果包含下划线,执行下划线转驼峰逻辑
if (line.contains("_")) {
StringBuffer sb = new StringBuffer();
Matcher matcher = NUMBER_PATTERN.matcher(line);
while (matcher.find()) {
String word = matcher.group();
if ((smallCamel.length == 0 || smallCamel[0]) && matcher.start() == 0) {
sb.append(Character.toLowerCase(word.charAt(0)));
} else {
sb.append(Character.toUpperCase(word.charAt(0)));
}
int index = word.lastIndexOf('_');
if (index > 0) {
sb.append(word.substring(1, index).toLowerCase());
} else {
sb.append(word.substring(1).toLowerCase());
}
}
int index = word.lastIndexOf('_');
if (index > 0) {
sb.append(word.substring(1, index).toLowerCase());
return sb.toString();
}
// 如果没有下划线但是全大写(例如 STOREY),按驼峰规则转换
if (line.equals(line.toUpperCase())) {
if (smallCamel.length == 0 || smallCamel[0]) {
return line.substring(0, 1).toLowerCase() + line.substring(1).toLowerCase();
} else {
sb.append(word.substring(1).toLowerCase());
return line.substring(0, 1).toUpperCase() + line.substring(1).toLowerCase();
}
}
return sb.toString();
// 否则(已是驼峰格式等),直接返回
return line;
}
/**
* 驼峰法转下划线
*
......
package com.yeejoin.amos.boot.biz.common.utils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
public class RequestContextWrapper {
private final String appKey;
private final String product;
private final String token;
private final String exeUserId;
private RequestContextWrapper(String appKey, String product, String token, String exeUserId) {
this.appKey = appKey;
this.product = product;
this.token = token;
this.exeUserId = exeUserId;
}
/**
* 捕获当前线程上下文
* @return RequestContextWrapper
*/
public static RequestContextWrapper capture() {
return new RequestContextWrapper(
RequestContext.getAppKey(),
RequestContext.getProduct(),
RequestContext.getToken(),
RequestContext.getExeUserId()
);
}
/**
* 应用上下文到目标线程
*/
public void apply() {
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(token);
RequestContext.setExeUserId(exeUserId);
}
}
\ No newline at end of file
......@@ -275,7 +275,7 @@ public class TzBaseEnterpriseInfoController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/export")
@ApiOperation(httpMethod = "GET", value = "企业信息列表数据导出", notes = "企业信息列表数据导出")
@ApiOperation(httpMethod = "GET", value = "企业信息列表数据导出-废弃-整合到jg服务,统一导出", notes = "企业信息列表数据导出-废弃-整合到jg服务,统一导出")
public void baseEnterpriseExport(HttpServletResponse response, String ids, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
iTzBaseEnterpriseInfoService.export(response, ids, tzBaseEnterpriseInfoDto);
}
......
......@@ -622,13 +622,15 @@ public class TzBaseEnterpriseInfoServiceImpl
return map;
}
/**
/**
* 整合到jg服务,统一导出
* 企业信息列表数据导出
*
* @param response 响应
* @param ids 数据id
*/
@Override
@Deprecated
public void export(HttpServletResponse response, String ids, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
List<BaseEnterpriseVo> exportData;
if (StringUtils.isEmpty(ids)) { // 前端不选行,导出列表所有的数据
......
package com.yeejoin.amos.boot.module.jg.api.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 配合DictUtil.dictCode2DictName(xx)方法实现 字典值转换
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface DictCode2DictName {
/**
* 字典类型
*/
String type() default "";
/**
* 对应处理类的bean名称
*/
String typeHandler() default "";
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.module.jg.api.annotation.DictCode2DictName;
import lombok.Data;
import java.util.Date;
/**
* 企业信息
*/
@Data
public class BaseEnterpriseVo {
@ExcelProperty(value = "单位类型")
String unitType;
@ExcelProperty(value = "单位统一信用代码")
String useCode;
@ExcelProperty(value = "单位名称")
String useUnit;
@ExcelProperty(value = "监管系统唯一编码")
String superviseCode;
@ExcelProperty(value = "使用单位证件类型")
String useUnitCertificate;
@ExcelProperty(value = "监管机构组织机构代码")
String superviseOrgCode;
@ExcelProperty(value = "监管机构名称")
String superviseOrgName;
@ExcelProperty(value = "单位所在省份名称")
String province;
@ExcelProperty(value = "单位所在城市名称")
String city;
@ExcelProperty(value = "单位所在区县名称")
String district;
@ExcelProperty(value = "单位所在街道名称")
String street;
@ExcelProperty(value = "单位所在社区名称")
String community;
@ExcelProperty(value = "单位详细地址")
String address;
@ExcelProperty(value = "使用单位法人")
String legalPerson;
@ExcelProperty(value = "法人联系电话")
String legalPhone;
@ExcelProperty(value = "使用单位联系人")
String useContact;
@ExcelProperty(value = "联系人联系电话")
String contactPhone;
@ExcelProperty(value = "管辖机构")
String governingBody;
@ExcelProperty(value = "所属行业")
String industry;
@ExcelProperty(value = "登记机关")
String registrationAuthority;
@ExcelProperty(value = "核准时间")
Date approvalTime;
@ExcelProperty(value = "经营状态")
String operatingStatus;
@ExcelProperty(value = "涉及设备类型")
String equipCategory;
@ExcelProperty(value = "行业主管部门")
@DictCode2DictName(type = "HYZGBM", typeHandler = "cbDataDictTypeHandler")
String industrySupervisor;
@ExcelProperty(value = "注册类型")
String registerType;
@ExcelProperty("证书类型")
String certType;
@ExcelProperty("证书编号(核准证编号)")
String certNo;
@JsonFormat(pattern = "yyyy-MM-dd")
@ExcelProperty("有效期至")
Date expiryDate;
@JsonFormat(pattern = "yyyy-MM-dd")
@ExcelProperty("发证日期")
Date issueDate;
@JsonFormat(pattern = "yyyy-MM-dd")
@ExcelProperty("变更日期")
Date changeDate;
@ExcelProperty("许可方式/许可状态")
String applyType;
@ExcelProperty("备注")
String remark;
@ExcelProperty("许可项目/检验类型/设备品种(核准项目名称)")
String itemCodeName;
@ExcelProperty("许可子项目/检验项目/充装介质类别")
String subItemName;
@ExcelProperty("许可参数/充装介质名称")
String parameter;
@ExcelProperty("固定检验地址")
String itemAddress;
@ExcelProperty("发证机关")
String approvedOrgan;
}
package com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yeejoin.amos.boot.module.jg.api.annotation.DictCode2DictName;
import lombok.Data;
/**
......@@ -8,37 +10,73 @@ import lombok.Data;
*/
@Data
public class CertificateVo {
@ExcelIgnore
String sequenceNbr;
@ExcelProperty(value = "使用登记证编号", index = 0)
@ExcelProperty(value = "使用登记证编号")
String useRegistrationCode;
@ExcelProperty(value = "登记类型", index = 1)
@ExcelProperty(value = "登记类型")
String regType;
@ExcelProperty(value = "使用单位", index = 2)
@ExcelProperty(value = "使用单位")
String useUnitName;
@ExcelProperty(value = "使用单位地址", index = 3)
@ExcelProperty(value = "使用单位地址")
String useUnitAddress;
@ExcelProperty(value = "登记机关", index = 4)
@ExcelProperty(value = "登记机关")
String receiveOrgName;
@ExcelProperty(value = "设备种类", index = 5)
@ExcelProperty(value = "设备种类")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equList;
@ExcelProperty(value = "设备类别", index = 6)
@ExcelProperty(value = "设备类别")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equCategory;
@ExcelProperty(value = "设备品种", index = 7)
@ExcelProperty(value = "设备品种")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equDefine;
@ExcelProperty(value = "设备使用地址", index = 8)
@ExcelProperty(value = "设备使用地址")
String equUseAddress;
@ExcelProperty(value = "使用登记证状态", index = 9)
@ExcelProperty(value = "使用登记证状态")
String certificateStatus;
@ExcelProperty(value = "办理日期", index = 10)
@ExcelProperty(value = "办理日期")
String auditPassDate;
@ExcelProperty(value = "产品名称")
String productName;
@ExcelProperty(value = "产品编号")
String factoryNum;
@ExcelProperty(value = "单位内编号")
String useInnerCode;
@ExcelProperty(value = "设备代码")
String equCode;
@ExcelProperty(value = "监管码")
String supervisoryCode;
@ExcelProperty(value = "设备状态")
String equStateName;
@ExcelProperty(value = "工程(装置)名称")
String projectContraption;
@ExcelProperty(value = "工程(装置)编号")
String projectContraptionNo;
@ExcelProperty(value = "管道设备数量(m)")
String pipelineLength;
@ExcelProperty(value = "管道使用地点")
String fullAddress;
}
package com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yeejoin.amos.boot.module.jg.api.annotation.DictCode2DictName;
import com.yeejoin.amos.boot.module.jg.api.common.BizCustomDateSerializer;
import lombok.Data;
/**
......@@ -8,28 +13,867 @@ import lombok.Data;
*/
@Data
public class ManageEquipmentVo {
@ExcelProperty(value = "设备来源", index = 0)
String DATA_SOURCE_NAME;
@ExcelProperty(value = "设备种类", index = 1)
String EQU_LIST;
@ExcelProperty(value = "设备类别", index = 2)
String EQU_CATEGORY;
@ExcelProperty(value = "设备品种", index = 3)
String EQU_DEFINE;
@ExcelProperty(value = "设备名称", index = 4)
String PRODUCT_NAME;
@ExcelProperty(value = "设备代码", index = 5)
String EQU_CODE;
@ExcelProperty(value = "出厂编号/产品编码", index = 6)
String FACTORY_NUM;
@ExcelProperty(value = "制造单位", index = 7)
String PRODUCE_UNIT_NAME;
@ExcelProperty(value = "设备种类")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equList;
@ExcelProperty(value = "设备类别")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equCategory;
@ExcelProperty(value = "设备品种")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equDefine;
@ExcelProperty(value = "96333识别码")
String code96333;
@ExcelProperty(value = "监管码")
String supervisoryCode;
@ExcelProperty(value = "使用登记证编号")
String useRegistrationCode;
@ExcelProperty(value = "出厂编号/产品编号")
String factoryNum;
@ExcelProperty(value = "设备代码")
String equCode;
@ExcelProperty(value = "设备状态")
@DictCode2DictName(type = "SHZT", typeHandler = "cbDataDictTypeHandler")
String equState;
@ExcelProperty(value = "设备总价值(万元)")
String equPrice;
@ExcelProperty(value = "设备单位内编号")
String useInnerCode;
// @ExcelProperty(value = "总图图号")
// String drawingDo;
@ExcelProperty(value = "设备型号")
String equType;
@ExcelProperty(value = "管道名称")
String productName;
@ExcelProperty(value = "设备使用地点省")
String provinceName;
@ExcelProperty(value = "设备使用地点市")
String cityName;
@ExcelProperty(value = "设备使用地点区(县)")
String countyName;
// @ExcelProperty(value = "设备使用地点街道(镇)")
// String factoryUseSiteStreet;
@ExcelProperty(value = "设备详细使用地点")
String fullAddress;
@ExcelProperty(value = "设备使用场所")
@DictCode2DictName(type = "ADDRESS", typeHandler = "cbDataDictTypeHandler")
String usePlace;
@ExcelProperty(value = "产权单位社会信用代码")
String estateUnitCreditCode;
@ExcelProperty(value = "产权单位名称")
String estateUnitName;
// @ExcelProperty(value = "工程(装置)名称")
// String projectContraption;
@ExcelProperty(value = "车辆VIN码(车架号)")
String identificationCode;
@ExcelProperty(value = "车牌号")
String carNumber;
@ExcelProperty(value = "属地监管部门")
String orgBranchName;
@ExcelProperty(value = "使用单位统一社会信用代码")
String useUnitCreditCode;
@ExcelProperty(value = "使用单位")
String useUnitName;
@ExcelProperty(value = "信息化管理情况")
String informationSituation;
@ExcelProperty(value = "检验/检测机构统一代码")
String inspectOrgCode;
@ExcelProperty(value = "检验/检测机构名称")
String inspectOrgName;
@ExcelProperty(value = "检验报告编号")
String inspectReportNo;
@ExcelProperty(value = "检验/检测结论")
@DictCode2DictName(type = "JYJL", typeHandler = "cbDataDictTypeHandler")
String inspectConclusion;
@ExcelProperty(value = "检验/检测类型")
@DictCode2DictName(type = "JYJC", typeHandler = "cbDataDictTypeHandler")
String inspectType;
@ExcelProperty(value = "检验/检测人员名称")
String inspectStaff;
@ExcelProperty(value = "制造单位统一社会信用代码")
String produceUnitCreditCode;
@ExcelProperty(value = "制造单位名称")
String produceUnitName;
@ExcelProperty(value = "制造许可编号")
String produceLicenseNum;
@ExcelProperty(value = "制造国")
String produceCountry;
// @ExcelProperty(value = "制造标准")
// String factoryStandard;
@ExcelProperty(value = "设计单位统一社会信用代码")
String designUnitCreditCode;
@ExcelProperty(value = "设计单位名称")
String designUnitName;
@ExcelProperty(value = "设计许可编号")
String designLicenseNum;
@ExcelProperty(value = "设计使用年限")
String designUseDate;
@ExcelProperty(value = "设计文件鉴定单位")
String appraisalUnit;
@ExcelProperty(value = "安装单位")
String installPropertyUnitName;
@ExcelProperty(value = "安装负责人")
String installLeaderName;
@ExcelProperty(value = "安全管理员联系电话")
String phone;
@ExcelProperty(value = "安装地点")
String installAddress;
@ExcelProperty(value = "维保单位")
String meUnitName;
// @ExcelProperty(value = "安装及使用维护保养说明")
// String insUseMaintainExplain;
@ExcelProperty(value = "施工区域-省")
String installProvince;
@ExcelProperty(value = "施工区域-市")
String installCity;
@ExcelProperty(value = "施工区域-区/县")
String installCounty;
@ExcelProperty(value = "安全管理员")
String safetyManager;
@ExcelProperty(value = "安装负责人联系电话")
String installLeaderPhone;
@ExcelProperty(value = "维保人员一")
String meMaster;
@ExcelProperty(value = "维保人员一联系方式")
String meMasterPhone;
@ExcelProperty(value = "维保人员二")
String meMaster1;
@ExcelProperty(value = "维保人员二联系方式")
String meMaster1Phone;
@ExcelProperty(value = "备注")
String informationManageCode;
// @ExcelProperty(value = "检验/检测日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String inspectDate;
// @ExcelProperty(value = "制造日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String produceDate;
// @ExcelProperty(value = "安装日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String installStartDate;
// @ExcelProperty(value = "设计日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String designDate;
// @ExcelProperty(value = "设计文件鉴定日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String appraisalDate;
// @ExcelProperty(value = "延期使用年限日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String delayServiceLifeDate;
// @ExcelProperty(value = "维保合同结束日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String informEnd;
// @ExcelProperty(value = "维保合同开始日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String informStart;
// @ExcelProperty(value = "下次检验/检测日期", 72)
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String nextInspectDate;
@ExcelProperty(value = "门数")
String numberDoors;
@ExcelProperty(value = "控制方式")
@DictCode2DictName(type = "KZFS", typeHandler = "cbDataDictTypeHandler")
String controlMode;
@ExcelProperty(value = "倾斜角")
String angleRoll;
@ExcelProperty(value = "提升高度")
String liftingHeight;
@ExcelProperty(value = "整机防爆标志")
String explosionproofSignComplete;
@ExcelProperty(value = "区域防爆等级")
@DictCode2DictName(type = "FBDJ", typeHandler = "cbDataDictTypeHandler")
String explosionproofGrade;
@ExcelProperty(value = "额定速度")
String ratedSpeed;
@ExcelProperty(value = "层数")
String storey;
@ExcelProperty(value = "顶升方式")
@DictCode2DictName(type = "DSXS", typeHandler = "cbDataDictTypeHandler")
String jackingType;
@ExcelProperty(value = "额定载重量")
String ratedLoadCapacity;
@ExcelProperty(value = "名义速度")
String nominalSpeed;
@ExcelProperty(value = "额定速度(下行)")
String ratedSpeedDown;
@ExcelProperty(value = "名义宽度")
String nominalWidth;
@ExcelProperty(value = "油缸数量")
String numberCylinders;
@ExcelProperty(value = "轿门位置")
String doorPosition;
@ExcelProperty(value = "输送能力")
String conveyingCapacity;
@ExcelProperty(value = "站数")
String stand;
@ExcelProperty(value = "额定速度(上行)")
String ratedSpeedUp;
@ExcelProperty(value = "使用区段长度")
String useSectionLength;
@ExcelProperty(value = "大车运行速度")
String bigcarRunSpeed;
@ExcelProperty(value = "小车运行速度")
String smallcarrunSpeed;
@ExcelProperty(value = "工作幅度")
String spanWorkingRange;
@ExcelProperty(value = "起升速度")
String liftingSpeed;
@ExcelProperty(value = "吊笼工作行程")
String workStrokeCage;
@ExcelProperty(value = "层数")
String numberStorey;
@ExcelProperty(value = "悬臂长度")
String cantileverLength;
@ExcelProperty(value = "额定起重量")
String ratedLiftingCapacity;
@ExcelProperty(value = "最大起重量")
String maxLiftingCapacity;
@ExcelProperty(value = "适停车辆尺寸(长)")
String parkingVehicleLength;
@ExcelProperty(value = "额定提升速度")
String ratedLiftingSpeed;
@ExcelProperty(value = "自由端高度")
String heightFreeEnd;
@ExcelProperty(value = "单车最大(进)时间")
String bicycleMaxComeTime;
@ExcelProperty(value = "单车最大(出)时间")
String bicycleMaxExitTime;
@ExcelProperty(value = "额定起重力矩")
String ratedLiftingTorque;
@ExcelProperty(value = "监检结束时高度")
String checkFinishedHeight;
@ExcelProperty(value = "吊笼数量")
String hangingCagesNumber;
@ExcelProperty(value = "横移速度")
String ratedTraverseSpeed;
@ExcelProperty(value = "工作级别")
@DictCode2DictName(type = "GZJB", typeHandler = "cbDataDictTypeHandler")
String workLevel;
@ExcelProperty(value = "运行速度")
String runningSpeed;
@ExcelProperty(value = "起升高度")
String liftingHeight1;
@ExcelProperty(value = "适停车辆尺寸(宽)")
String parkingVehicleWeight;
@ExcelProperty(value = "整机防爆标志")
String explosionproofSignComplete1;
@ExcelProperty(value = "最大起重力矩")
String maxLiftingTorque;
@ExcelProperty(value = "燃爆物质")
String explosiveSubstance;
@ExcelProperty(value = "存容量")
String storageCapacity;
@ExcelProperty(value = "升降速度")
String ratedLiftSpeed;
@ExcelProperty(value = "适停车辆尺寸(高)")
String parkingVehicleHeight;
@ExcelProperty(value = "额定载重量")
String ratedLoadCapacity1;
@ExcelProperty(value = "额定乘员数")
String ratedMembers;
@ExcelProperty(value = "监检结束高度")
String checkFinshedHeight;
@ExcelProperty(value = "区域防爆等级")
@DictCode2DictName(type = "FBDJ", typeHandler = "cbDataDictTypeHandler")
String explosionProofGrade;
@ExcelProperty(value = "变幅速度")
String derrickingSpeed;
@ExcelProperty(value = "车架(底盘)编号")
String frameNo;
@ExcelProperty(value = "发动机(行走电机)编号")
String engineNo;
@ExcelProperty(value = "额定起重量")
String liftingCapacity;
@ExcelProperty(value = "观光列车牵引车头座位数")
String tractorSeatNumber;
@ExcelProperty(value = "轴距")
String wheelBase;
@ExcelProperty(value = "传动方式")
String transmissionMode;
@ExcelProperty(value = "自重")
String weight;
@ExcelProperty(value = "车架结构")
String frameStructure;
@ExcelProperty(value = "空载最大起升高度")
String maxLiftingHeight;
@ExcelProperty(value = "额定载客人数")
String passengersNumber;
@ExcelProperty(value = "最大行驶坡度")
String maxDrivingSlope;
@ExcelProperty(value = "观光列车车厢数")
String carsNumber;
@ExcelProperty(value = "观光列车每节车厢座位数")
String seatNumber;
@ExcelProperty(value = "防爆设备保护级别")
@DictCode2DictName(type = "FBDJ", typeHandler = "cbDataDictTypeHandler")
String protectGrade;
@ExcelProperty(value = "驾驶方式")
String drivingMode;
@ExcelProperty(value = "轮距(后)")
String trackWidthBehind;
@ExcelProperty(value = "整车整备质量")
String vehicleMass;
@ExcelProperty(value = "动力方式")
String powerMode;
@ExcelProperty(value = "防爆气体/粉尘组别")
String gasGroup;
@ExcelProperty(value = "空载最大运行速度")
String carryingIdlerMaxRunningSpeed;
@ExcelProperty(value = "轮距(前)")
String trackWidthFront;
@ExcelProperty(value = "最大运行速度")
String maxRunningSpeed;
@ExcelProperty(value = "防爆温度组别")
String temperatureGroup;
@ExcelProperty(value = "锅炉本体水(油)容积")
String waterOilVolumeOfBoilerProper;
@ExcelProperty(value = "再热器进(出)口压力")
String reheaterInletOutletPressure;
@ExcelProperty(value = "水(耐)压试验压力")
String hydrostaticTestPressure;
@ExcelProperty(value = "无损检测比例")
String proportionOfNdtForPressureParts;
@ExcelProperty(value = "水(耐)压试验介质")
String hydrostaticTestMedium;
@ExcelProperty(value = "额定工作压力")
String ratedWorkingPressure;
@ExcelProperty(value = "有机热载体锅炉气密试验介质/压力")
String glAirtightTest;
@ExcelProperty(value = "给水温度")
String feedwaterTemperature;
@ExcelProperty(value = "主要受压力部件名称")
@DictCode2DictName(type = "GLBJMC", typeHandler = "cbDataDictTypeHandler")
String nameOfPressureParts;
@ExcelProperty(value = "热处理时间")
String heatTreatmentTimeOfPressureParts;
@ExcelProperty(value = "燃烧方式")
String combustionMode;
@ExcelProperty(value = "再热蒸汽流量")
String reheatSteamFlow;
@ExcelProperty(value = "热处理温度")
String heatTreatmentTemperatureOfPressureParts;
@ExcelProperty(value = "整装锅炉本体液压试验介质/压力")
String hydraulicTestMediumPressureOfPackagedBoilerBody;
@ExcelProperty(value = "额定蒸发量(热功率)")
String ratedEvaporationCapacityThermalPower;
@ExcelProperty(value = "燃料(热源)种类")
@DictCode2DictName(type = "GLZL", typeHandler = "cbDataDictTypeHandler")
String fuelType;
@ExcelProperty(value = "壁厚")
String wallThicknessOfPressureParts;
@ExcelProperty(value = "额定出/回水(油)温度")
String ratedOutletReturnWaterOilTemperature;
@ExcelProperty(value = "材料")
String materialOfPressureParts;
@ExcelProperty(value = "设备级别")
@DictCode2DictName(type = "GLJB", typeHandler = "cbDataDictTypeHandler")
String deviceLevel;
@ExcelProperty(value = "设计热效率")
String designThermalEfficiency;
@ExcelProperty(value = "额定工作温度")
String ratedOperatingTemperature;
@ExcelProperty(value = "再热器进(出)口温度")
String inletOutletTemperatureOfReheater;
@ExcelProperty(value = "容器型号")
String container;
@ExcelProperty(value = "厚度(衬里)")
String fixedLining;
@ExcelProperty(value = "厚度(筒体(球壳))")
String thickness;
@ExcelProperty(value = "厚度(夹套)")
String fixedJacket;
@ExcelProperty(value = "设计温度(夹套)")
String temperatureJacket;
@ExcelProperty(value = "最高允许工作压力(管程)")
String maxPressurePipe;
@ExcelProperty(value = "材料(夹套)")
String materialJacket;
@ExcelProperty(value = "压力")
String chamberPressure;
@ExcelProperty(value = "设计温度(管程)")
String temperaturePipe;
@ExcelProperty(value = "设计压力")
String designPressure;
@ExcelProperty(value = "容器自重")
String selfWeight;
@ExcelProperty(value = "盛装介质重量")
String mediumWeight;
@ExcelProperty(value = "主体结构")
String chamberMain;
@ExcelProperty(value = "充装介质")
@DictCode2DictName(type = "FILLING_MEDIUM", typeHandler = "platformDictTypeHandler")
String chargingMedium;
@ExcelProperty(value = "材料(筒体)")
String materialCylinder;
@ExcelProperty(value = "容器容积")
String containerVolume;
@ExcelProperty(value = "材料(瓶体)")
String bottleBody;
@ExcelProperty(value = "瓶体内含氧量")
String oxygen;
@ExcelProperty(value = "无损检测方法(管路)")
@DictCode2DictName(type = "RQJCFF", typeHandler = "cbDataDictTypeHandler")
String glLossless;
@ExcelProperty(value = "气瓶安装位置")
String installationPosition;
@ExcelProperty(value = "容器高(长)")
String height;
@ExcelProperty(value = "人均舱容")
String perCapitaCabinCapacity;
@ExcelProperty(value = "最高允许工作压力(壳程)")
String maxPressureShell;
@ExcelProperty(value = "设计温度(壳程)")
String temperatureShell;
@ExcelProperty(value = "耐压试验压力(气瓶)")
String qpPressure;
@ExcelProperty(value = "主体结构型式")
@DictCode2DictName(type = "RQJG", typeHandler = "cbDataDictTypeHandler")
String mainStructureType;
@ExcelProperty(value = "泄漏试验压力")
String leakPressure;
@ExcelProperty(value = "设计压力(夹套)")
String pressureJacket;
@ExcelProperty(value = "压力介质")
String pressureMedium;
@ExcelProperty(value = "保温绝热方式")
String insulation;
@ExcelProperty(value = "材料(筒体(球壳))")
String materialCylinderShell;
@ExcelProperty(value = "公称工作压力")
String nominalWorkingPressure;
@ExcelProperty(value = "容积")
String volume;
@ExcelProperty(value = "气体置换后压力")
String displacementPressure;
@ExcelProperty(value = "容器内径")
String pressureVesselDiameter;
@ExcelProperty(value = "无损检测方法(气瓶)")
@DictCode2DictName(type = "RQJCFF", typeHandler = "cbDataDictTypeHandler")
String qpLossless;
@ExcelProperty(value = "介质(管程)")
String mediumPipe;
@ExcelProperty(value = "无损检测比例(管路)")
String glRatio;
@ExcelProperty(value = "材料(端塞)")
String endPlug;
@ExcelProperty(value = "支座型式")
String support;
@ExcelProperty(value = "泄漏试验种类")
String leakage;
@ExcelProperty(value = "设计温度")
String designTemperature;
@ExcelProperty(value = "介质")
String medium;
@ExcelProperty(value = "耐压试验压力")
String withstandPressureTest;
@ExcelProperty(value = "热处理方式")
String heatTreatmentMethod;
@ExcelProperty(value = "最大充装量")
String maxFill;
@ExcelProperty(value = "外径")
String outsideDiameter;
@ExcelProperty(value = "气密性试验压力(管路)")
String glAirTightness;
@ExcelProperty(value = "额定质量")
String ratedQuality;
@ExcelProperty(value = "介质(壳程)")
String mediumShell;
@ExcelProperty(value = "安装型式")
String installation;
@ExcelProperty(value = "壁厚")
String wallThickness;
@ExcelProperty(value = "温度")
String temperature;
@ExcelProperty(value = "无损检测比例(气瓶)")
String qpRatio;
@ExcelProperty(value = "气密性试验压力(气瓶)")
String qpAirTightness;
@ExcelProperty(value = "氧舱品种")
String oxygenChamber;
@ExcelProperty(value = "无损检测方法")
@DictCode2DictName(type = "RQJCFF", typeHandler = "cbDataDictTypeHandler")
String checkLossless;
@ExcelProperty(value = "长度")
String length;
@ExcelProperty(value = "规格")
String specification;
@ExcelProperty(value = "罐车编号")
String carNum;
@ExcelProperty(value = "设计压力(壳程)")
String pressureHousingPath;
@ExcelProperty(value = "额定进舱人数")
String ratedEntryCapacity;
@ExcelProperty(value = "使用环境温度")
String ambientTemperature;
@ExcelProperty(value = "最高允许工作压力(夹套)")
String maxPressureJacket;
@ExcelProperty(value = "材料(管路)")
String piping;
@ExcelProperty(value = "材料(衬里)")
String pressureMaterialLining;
@ExcelProperty(value = "热处理温度")
String qpHeatTreatmentTemperature;
@ExcelProperty(value = "材料(封头)")
String pressureMaterialHead;
@ExcelProperty(value = "腐蚀裕量")
String corrosionMargin;
@ExcelProperty(value = "设计压力(管程)")
String pressurePipe;
@ExcelProperty(value = "单瓶容积")
String singleBottleVolume;
@ExcelProperty(value = "工作压力")
String workingPressure;
@ExcelProperty(value = "耐压试验压力(管路)")
String glPressure;
@ExcelProperty(value = "型号")
String modelNumber;
@ExcelProperty(value = "工作温度")
String workTemperature;
@ExcelProperty(value = "厚度(封头)")
String fixedHead;
@ExcelProperty(value = "耐压试验种类")
String withstandVoltage;
@ExcelProperty(value = "厚度(筒体)")
String thicknessCylinder;
@ExcelProperty(value = "介质(夹套)")
String mediumJacket;
@ExcelProperty(value = "滑索长度")
String slideLength;
@ExcelProperty(value = "运行速度")
String runningSpeed1;
@ExcelProperty(value = "运行高度")
String operatingHeight;
@ExcelProperty(value = "轨道高度")
String trackHeight;
@ExcelProperty(value = "回转速度")
String slewingSpeed;
@ExcelProperty(value = "回转直径")
String rotaryDiameter;
@ExcelProperty(value = "车辆数量")
String numberOfVehicles;
@ExcelProperty(value = "单侧摆角")
String unilateralSwingAngle;
@ExcelProperty(value = "承载人数")
String numberOfPassengers;
@ExcelProperty(value = "倾角")
String dip;
@ExcelProperty(value = "设备高度")
String equipmentHeight;
@ExcelProperty(value = "高差")
String altitudeDifference;
@ExcelProperty(value = "主电机型式")
String mainMotorModel;
@ExcelProperty(value = "斜长")
String obliqueLength;
@ExcelProperty(value = "支架数据")
String supportsCount;
@ExcelProperty(value = "平距")
String horizontalDistance;
@ExcelProperty(value = "张紧油压(重锤重量)")
String oilPressureHeavyHammer;
@ExcelProperty(value = "速度")
String speed;
@ExcelProperty(value = "主电机功率")
String mainMotorPower;
@ExcelProperty(value = "运载工具数量和类型")
String numberAndTypeOfVehicles;
@ExcelProperty(value = "运量")
String freightVolume;
@ExcelProperty(value = "索距")
String cablePitch;
@ExcelProperty(value = "运载索")
@DictCode2DictName(type = "YZS", typeHandler = "cbDataDictTypeHandler")
String carrierLine;
@ExcelProperty(value = "承载索")
String bearingCable;
}
package com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yeejoin.amos.boot.module.jg.api.annotation.DictCode2DictName;
import lombok.Data;
/**
* 管道已纳管设备
*/
@Data
public class PipeEquipmentVo {
@ExcelProperty(value = "工程(装置)编号/项目编号")
String projectContraptionNo;
@ExcelProperty(value = "工程(装置)名称/项目名称")
String projectContraption;
@ExcelProperty(value = "设备种类")
String equListName;
@ExcelProperty(value = "设备类别")
String equCategoryName;
@ExcelProperty(value = "设备品种")
String equDefineName;
@ExcelProperty(value = "使用单位名称")
String useUnitName;
@ExcelProperty(value = "使用登记证")
String useRegistrationCode;
@ExcelProperty(value = "属地监管部门")
String orgName;
@ExcelProperty(value = "监管码")
String supervisoryCode;
@ExcelProperty(value = "投入年月")
String useDate;
@ExcelProperty(value = " 设备使用地点省")
@DictCode2DictName(typeHandler = "regionCodeTypeHandler")
String province;
@ExcelProperty(value = " 设备使用地点市")
@DictCode2DictName(typeHandler = "regionCodeTypeHandler")
String city;
@ExcelProperty(value = "设备使用地点区(县)")
@DictCode2DictName(typeHandler = "regionCodeTypeHandler")
String county;
@ExcelProperty(value = "设备使用地点街道(镇)")
@DictCode2DictName(typeHandler = "regionCodeTypeHandler")
String street;
@ExcelProperty(value = "设备详细使用地点")
String address;
@ExcelProperty(value = "管道编号")
String pipelineNumber;
@ExcelProperty(value = "管道名称(登记单元)")
String pipeName;
@ExcelProperty(value = "设计单位")
String designUnitName;
@ExcelProperty(value = "设计-压力(MPa)")
String pressure;
@ExcelProperty(value = "设计-介质")
String medium;
@ExcelProperty(value = "设计-温度(℃)")
String temperature;
@ExcelProperty(value = "工作条件-温度(℃)")
String workTemperature;
@ExcelProperty(value = "检验/检测机构名称")
String inspectOrgName;
@ExcelProperty(value = "安装单位")
String uscUnitName;
@ExcelProperty(value = "安装年月")
String uscDate;
@ExcelProperty(value = "工作条件-压力(MPa)")
String workPressure;
@ExcelProperty(value = "检验结论")
@DictCode2DictName(type = "JYJL", typeHandler = "cbDataDictTypeHandler")
String inspectConclusion;
@ExcelProperty(value = "下次检验日期")
String nextInspectDate;
@ExcelProperty(value = "管道规格-管道长度(m)")
String pipeLength;
@ExcelProperty(value = "管道级别")
@DictCode2DictName(type = "GYGDHIS", typeHandler = "cbDataDictTypeHandler")
String deviceLevel;
@ExcelProperty(value = "工作条件-介质")
String workMedium;
@ExcelProperty(value = "管道规格-公称直径(mm)")
String nominalDiameter;
@ExcelProperty(value = "管道规格-公称壁厚(mm)")
String wallThickness;
@ExcelProperty(value = "备注")
String remarks;
}
package com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yeejoin.amos.boot.module.jg.api.annotation.DictCode2DictName;
import lombok.Data;
/**
......@@ -8,28 +9,868 @@ import lombok.Data;
*/
@Data
public class UnregulatedEquipVo {
@ExcelProperty(value = "设备来源", index = 0)
String DATA_SOURCE_NAME;
@ExcelProperty(value = "设备种类", index = 1)
String EQU_LIST;
@ExcelProperty(value = "设备类别", index = 2)
String EQU_CATEGORY;
@ExcelProperty(value = "设备品种", index = 3)
String EQU_DEFINE;
@ExcelProperty(value = "设备名称", index = 4)
String PRODUCT_NAME;
@ExcelProperty(value = "设备代码", index = 5)
String EQU_CODE;
@ExcelProperty(value = "出厂编号/产品编码", index = 6)
String FACTORY_NUM;
@ExcelProperty(value = "制造单位", index = 7)
String PRODUCE_UNIT_NAME;
@ExcelProperty(value = "设备种类")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equList;
@ExcelProperty(value = "设备类别")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equCategory;
@ExcelProperty(value = "设备品种")
@DictCode2DictName(typeHandler = "equipCategoryDictTypeHandler")
String equDefine;
@ExcelProperty(value = "96333识别码")
String code96333;
@ExcelProperty(value = "监管码")
String supervisoryCode;
@ExcelProperty(value = "使用登记证编号")
String useRegistrationCode;
@ExcelProperty(value = "出厂编号/产品编号")
String factoryNum;
@ExcelProperty(value = "设备代码")
String equCode;
@ExcelProperty(value = "设备状态")
@DictCode2DictName(type = "SHZT", typeHandler = "cbDataDictTypeHandler")
String equState;
@ExcelProperty(value = "设备总价值(万元)")
String equPrice;
@ExcelProperty(value = "设备单位内编号")
String useInnerCode;
// @ExcelProperty(value = "总图图号")
// String drawingDo;
@ExcelProperty(value = "设备型号")
String equType;
@ExcelProperty(value = "管道名称")
String productName;
@ExcelProperty(value = "设备使用地点省")
String provinceName;
@ExcelProperty(value = "设备使用地点市")
String cityName;
@ExcelProperty(value = "设备使用地点区(县)")
String countyName;
// @ExcelProperty(value = "设备使用地点街道(镇)")
// String factoryUseSiteStreet;
@ExcelProperty(value = "设备详细使用地点")
String fullAddress;
@ExcelProperty(value = "设备使用场所")
@DictCode2DictName(type = "ADDRESS", typeHandler = "cbDataDictTypeHandler")
String usePlace;
@ExcelProperty(value = "产权单位社会信用代码")
String estateUnitCreditCode;
@ExcelProperty(value = "产权单位名称")
String estateUnitName;
// @ExcelProperty(value = "工程(装置)名称")
// String projectContraption;
@ExcelProperty(value = "车辆VIN码(车架号)")
String identificationCode;
@ExcelProperty(value = "车牌号")
String carNumber;
@ExcelProperty(value = "属地监管部门")
String orgBranchName;
@ExcelProperty(value = "使用单位统一社会信用代码")
String useUnitCreditCode;
@ExcelProperty(value = "使用单位")
String useUnitName;
@ExcelProperty(value = "信息化管理情况")
String informationSituation;
@ExcelProperty(value = "检验/检测机构统一代码")
String inspectOrgCode;
@ExcelProperty(value = "检验/检测机构名称")
String inspectOrgName;
@ExcelProperty(value = "检验报告编号")
String inspectReportNo;
@ExcelProperty(value = "检验/检测结论")
@DictCode2DictName(type = "JYJL", typeHandler = "cbDataDictTypeHandler")
String inspectConclusion;
@ExcelProperty(value = "检验/检测类型")
@DictCode2DictName(type = "JYJC", typeHandler = "cbDataDictTypeHandler")
String inspectType;
@ExcelProperty(value = "检验/检测人员名称")
String inspectStaff;
@ExcelProperty(value = "制造单位统一社会信用代码")
String produceUnitCreditCode;
@ExcelProperty(value = "制造单位名称")
String produceUnitName;
@ExcelProperty(value = "制造许可编号")
String produceLicenseNum;
@ExcelProperty(value = "制造国")
String produceCountry;
// @ExcelProperty(value = "制造标准")
// String factoryStandard;
@ExcelProperty(value = "设计单位统一社会信用代码")
String designUnitCreditCode;
@ExcelProperty(value = "设计单位名称")
String designUnitName;
@ExcelProperty(value = "设计许可编号")
String designLicenseNum;
@ExcelProperty(value = "设计使用年限")
String designUseDate;
@ExcelProperty(value = "设计文件鉴定单位")
String appraisalUnit;
@ExcelProperty(value = "安装单位")
String installPropertyUnitName;
@ExcelProperty(value = "安装负责人")
String installLeaderName;
@ExcelProperty(value = "安全管理员联系电话")
String phone;
@ExcelProperty(value = "安装地点")
String installAddress;
@ExcelProperty(value = "维保单位")
String meUnitName;
// @ExcelProperty(value = "安装及使用维护保养说明")
// String insUseMaintainExplain;
@ExcelProperty(value = "施工区域-省")
String installProvince;
@ExcelProperty(value = "施工区域-市")
String installCity;
@ExcelProperty(value = "施工区域-区/县")
String installCounty;
@ExcelProperty(value = "安全管理员")
String safetyManager;
@ExcelProperty(value = "安装负责人联系电话")
String installLeaderPhone;
@ExcelProperty(value = "维保人员一")
String meMaster;
@ExcelProperty(value = "维保人员一联系方式")
String meMasterPhone;
@ExcelProperty(value = "维保人员二")
String meMaster1;
@ExcelProperty(value = "维保人员二联系方式")
String meMaster1Phone;
@ExcelProperty(value = "备注")
String informationManageCode;
// @ExcelProperty(value = "检验/检测日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String inspectDate;
// @ExcelProperty(value = "制造日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String produceDate;
// @ExcelProperty(value = "安装日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String installStartDate;
// @ExcelProperty(value = "设计日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String designDate;
// @ExcelProperty(value = "设计文件鉴定日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String appraisalDate;
// @ExcelProperty(value = "延期使用年限日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String delayServiceLifeDate;
// @ExcelProperty(value = "维保合同结束日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String informEnd;
// @ExcelProperty(value = "维保合同开始日期")
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String informStart;
// @ExcelProperty(value = "下次检验/检测日期", 72)
// @JsonFormat(pattern = "yyyy-MM-dd")
// @JsonSerialize(using = BizCustomDateSerializer.class)
// String nextInspectDate;
@ExcelProperty(value = "门数")
String numberDoors;
@ExcelProperty(value = "控制方式")
@DictCode2DictName(type = "KZFS", typeHandler = "cbDataDictTypeHandler")
String controlMode;
@ExcelProperty(value = "倾斜角")
String angleRoll;
@ExcelProperty(value = "提升高度")
String liftingHeight;
@ExcelProperty(value = "整机防爆标志")
String explosionproofSignComplete;
@ExcelProperty(value = "区域防爆等级")
@DictCode2DictName(type = "FBDJ", typeHandler = "cbDataDictTypeHandler")
String explosionproofGrade;
@ExcelProperty(value = "额定速度")
String ratedSpeed;
@ExcelProperty(value = "层数")
String storey;
@ExcelProperty(value = "顶升方式")
@DictCode2DictName(type = "DSXS", typeHandler = "cbDataDictTypeHandler")
String jackingType;
@ExcelProperty(value = "额定载重量")
String ratedLoadCapacity;
@ExcelProperty(value = "名义速度")
String nominalSpeed;
@ExcelProperty(value = "额定速度(下行)")
String ratedSpeedDown;
@ExcelProperty(value = "名义宽度")
String nominalWidth;
@ExcelProperty(value = "油缸数量")
String numberCylinders;
@ExcelProperty(value = "轿门位置")
String doorPosition;
@ExcelProperty(value = "输送能力")
String conveyingCapacity;
@ExcelProperty(value = "站数")
String stand;
@ExcelProperty(value = "额定速度(上行)")
String ratedSpeedUp;
@ExcelProperty(value = "使用区段长度")
String useSectionLength;
@ExcelProperty(value = "大车运行速度")
String bigcarRunSpeed;
@ExcelProperty(value = "小车运行速度")
String smallcarrunSpeed;
@ExcelProperty(value = "工作幅度")
String spanWorkingRange;
@ExcelProperty(value = "起升速度")
String liftingSpeed;
@ExcelProperty(value = "吊笼工作行程")
String workStrokeCage;
@ExcelProperty(value = "层数")
String numberStorey;
@ExcelProperty(value = "悬臂长度")
String cantileverLength;
@ExcelProperty(value = "额定起重量")
String ratedLiftingCapacity;
@ExcelProperty(value = "最大起重量")
String maxLiftingCapacity;
@ExcelProperty(value = "适停车辆尺寸(长)")
String parkingVehicleLength;
@ExcelProperty(value = "额定提升速度")
String ratedLiftingSpeed;
@ExcelProperty(value = "自由端高度")
String heightFreeEnd;
@ExcelProperty(value = "单车最大(进)时间")
String bicycleMaxComeTime;
@ExcelProperty(value = "单车最大(出)时间")
String bicycleMaxExitTime;
@ExcelProperty(value = "额定起重力矩")
String ratedLiftingTorque;
@ExcelProperty(value = "监检结束时高度")
String checkFinishedHeight;
@ExcelProperty(value = "吊笼数量")
String hangingCagesNumber;
@ExcelProperty(value = "横移速度")
String ratedTraverseSpeed;
@ExcelProperty(value = "工作级别")
@DictCode2DictName(type = "GZJB", typeHandler = "cbDataDictTypeHandler")
String workLevel;
@ExcelProperty(value = "运行速度")
String runningSpeed;
@ExcelProperty(value = "起升高度")
String liftingHeight1;
@ExcelProperty(value = "适停车辆尺寸(宽)")
String parkingVehicleWeight;
@ExcelProperty(value = "整机防爆标志")
String explosionproofSignComplete1;
@ExcelProperty(value = "最大起重力矩")
String maxLiftingTorque;
@ExcelProperty(value = "燃爆物质")
String explosiveSubstance;
@ExcelProperty(value = "存容量")
String storageCapacity;
@ExcelProperty(value = "升降速度")
String ratedLiftSpeed;
@ExcelProperty(value = "适停车辆尺寸(高)")
String parkingVehicleHeight;
@ExcelProperty(value = "额定载重量")
String ratedLoadCapacity1;
@ExcelProperty(value = "额定乘员数")
String ratedMembers;
@ExcelProperty(value = "监检结束高度")
String checkFinshedHeight;
@ExcelProperty(value = "区域防爆等级")
@DictCode2DictName(type = "FBDJ", typeHandler = "cbDataDictTypeHandler")
String explosionProofGrade;
@ExcelProperty(value = "变幅速度")
String derrickingSpeed;
@ExcelProperty(value = "车架(底盘)编号")
String frameNo;
@ExcelProperty(value = "发动机(行走电机)编号")
String engineNo;
@ExcelProperty(value = "额定起重量")
String liftingCapacity;
@ExcelProperty(value = "观光列车牵引车头座位数")
String tractorSeatNumber;
@ExcelProperty(value = "轴距")
String wheelBase;
@ExcelProperty(value = "传动方式")
String transmissionMode;
@ExcelProperty(value = "自重")
String weight;
@ExcelProperty(value = "车架结构")
String frameStructure;
@ExcelProperty(value = "空载最大起升高度")
String maxLiftingHeight;
@ExcelProperty(value = "额定载客人数")
String passengersNumber;
@ExcelProperty(value = "最大行驶坡度")
String maxDrivingSlope;
@ExcelProperty(value = "观光列车车厢数")
String carsNumber;
@ExcelProperty(value = "观光列车每节车厢座位数")
String seatNumber;
@ExcelProperty(value = "防爆设备保护级别")
@DictCode2DictName(type = "FBDJ", typeHandler = "cbDataDictTypeHandler")
String protectGrade;
@ExcelProperty(value = "驾驶方式")
String drivingMode;
@ExcelProperty(value = "轮距(后)")
String trackWidthBehind;
@ExcelProperty(value = "整车整备质量")
String vehicleMass;
@ExcelProperty(value = "动力方式")
String powerMode;
@ExcelProperty(value = "防爆气体/粉尘组别")
String gasGroup;
@ExcelProperty(value = "空载最大运行速度")
String carryingIdlerMaxRunningSpeed;
@ExcelProperty(value = "轮距(前)")
String trackWidthFront;
@ExcelProperty(value = "最大运行速度")
String maxRunningSpeed;
@ExcelProperty(value = "防爆温度组别")
String temperatureGroup;
@ExcelProperty(value = "锅炉本体水(油)容积")
String waterOilVolumeOfBoilerProper;
@ExcelProperty(value = "再热器进(出)口压力")
String reheaterInletOutletPressure;
@ExcelProperty(value = "水(耐)压试验压力")
String hydrostaticTestPressure;
@ExcelProperty(value = "无损检测比例")
String proportionOfNdtForPressureParts;
@ExcelProperty(value = "水(耐)压试验介质")
String hydrostaticTestMedium;
@ExcelProperty(value = "额定工作压力")
String ratedWorkingPressure;
@ExcelProperty(value = "有机热载体锅炉气密试验介质/压力")
String glAirtightTest;
@ExcelProperty(value = "给水温度")
String feedwaterTemperature;
@ExcelProperty(value = "主要受压力部件名称")
@DictCode2DictName(type = "GLBJMC", typeHandler = "cbDataDictTypeHandler")
String nameOfPressureParts;
@ExcelProperty(value = "热处理时间")
String heatTreatmentTimeOfPressureParts;
@ExcelProperty(value = "燃烧方式")
String combustionMode;
@ExcelProperty(value = "再热蒸汽流量")
String reheatSteamFlow;
@ExcelProperty(value = "热处理温度")
String heatTreatmentTemperatureOfPressureParts;
@ExcelProperty(value = "整装锅炉本体液压试验介质/压力")
String hydraulicTestMediumPressureOfPackagedBoilerBody;
@ExcelProperty(value = "额定蒸发量(热功率)")
String ratedEvaporationCapacityThermalPower;
@ExcelProperty(value = "燃料(热源)种类")
@DictCode2DictName(type = "GLZL", typeHandler = "cbDataDictTypeHandler")
String fuelType;
@ExcelProperty(value = "壁厚")
String wallThicknessOfPressureParts;
@ExcelProperty(value = "额定出/回水(油)温度")
String ratedOutletReturnWaterOilTemperature;
@ExcelProperty(value = "材料")
String materialOfPressureParts;
@ExcelProperty(value = "设备级别")
@DictCode2DictName(type = "GLJB", typeHandler = "cbDataDictTypeHandler")
String deviceLevel;
@ExcelProperty(value = "设计热效率")
String designThermalEfficiency;
@ExcelProperty(value = "额定工作温度")
String ratedOperatingTemperature;
@ExcelProperty(value = "再热器进(出)口温度")
String inletOutletTemperatureOfReheater;
@ExcelProperty(value = "容器型号")
String container;
@ExcelProperty(value = "厚度(衬里)")
String fixedLining;
@ExcelProperty(value = "厚度(筒体(球壳))")
String thickness;
@ExcelProperty(value = "厚度(夹套)")
String fixedJacket;
@ExcelProperty(value = "设计温度(夹套)")
String temperatureJacket;
@ExcelProperty(value = "最高允许工作压力(管程)")
String maxPressurePipe;
@ExcelProperty(value = "材料(夹套)")
String materialJacket;
@ExcelProperty(value = "压力")
String chamberPressure;
@ExcelProperty(value = "设计温度(管程)")
String temperaturePipe;
@ExcelProperty(value = "设计压力")
String designPressure;
@ExcelProperty(value = "容器自重")
String selfWeight;
@ExcelProperty(value = "盛装介质重量")
String mediumWeight;
@ExcelProperty(value = "主体结构")
String chamberMain;
@ExcelProperty(value = "充装介质")
@DictCode2DictName(type = "FILLING_MEDIUM", typeHandler = "platformDictTypeHandler")
String chargingMedium;
@ExcelProperty(value = "材料(筒体)")
String materialCylinder;
@ExcelProperty(value = "容器容积")
String containerVolume;
@ExcelProperty(value = "材料(瓶体)")
String bottleBody;
@ExcelProperty(value = "瓶体内含氧量")
String oxygen;
@ExcelProperty(value = "无损检测方法(管路)")
@DictCode2DictName(type = "RQJCFF", typeHandler = "cbDataDictTypeHandler")
String glLossless;
@ExcelProperty(value = "气瓶安装位置")
String installationPosition;
@ExcelProperty(value = "容器高(长)")
String height;
@ExcelProperty(value = "人均舱容")
String perCapitaCabinCapacity;
@ExcelProperty(value = "最高允许工作压力(壳程)")
String maxPressureShell;
@ExcelProperty(value = "设计温度(壳程)")
String temperatureShell;
@ExcelProperty(value = "耐压试验压力(气瓶)")
String qpPressure;
@ExcelProperty(value = "主体结构型式")
@DictCode2DictName(type = "RQJG", typeHandler = "cbDataDictTypeHandler")
String mainStructureType;
@ExcelProperty(value = "泄漏试验压力")
String leakPressure;
@ExcelProperty(value = "设计压力(夹套)")
String pressureJacket;
@ExcelProperty(value = "压力介质")
String pressureMedium;
@ExcelProperty(value = "保温绝热方式")
String insulation;
@ExcelProperty(value = "材料(筒体(球壳))")
String materialCylinderShell;
@ExcelProperty(value = "公称工作压力")
String nominalWorkingPressure;
@ExcelProperty(value = "容积")
String volume;
@ExcelProperty(value = "气体置换后压力")
String displacementPressure;
@ExcelProperty(value = "容器内径")
String pressureVesselDiameter;
@ExcelProperty(value = "无损检测方法(气瓶)")
@DictCode2DictName(type = "RQJCFF", typeHandler = "cbDataDictTypeHandler")
String qpLossless;
@ExcelProperty(value = "介质(管程)")
String mediumPipe;
@ExcelProperty(value = "无损检测比例(管路)")
String glRatio;
@ExcelProperty(value = "材料(端塞)")
String endPlug;
@ExcelProperty(value = "支座型式")
String support;
@ExcelProperty(value = "泄漏试验种类")
String leakage;
@ExcelProperty(value = "设计温度")
String designTemperature;
@ExcelProperty(value = "介质")
String medium;
@ExcelProperty(value = "耐压试验压力")
String withstandPressureTest;
@ExcelProperty(value = "热处理方式")
String heatTreatmentMethod;
@ExcelProperty(value = "最大充装量")
String maxFill;
@ExcelProperty(value = "外径")
String outsideDiameter;
@ExcelProperty(value = "气密性试验压力(管路)")
String glAirTightness;
@ExcelProperty(value = "额定质量")
String ratedQuality;
@ExcelProperty(value = "介质(壳程)")
String mediumShell;
@ExcelProperty(value = "安装型式")
String installation;
@ExcelProperty(value = "壁厚")
String wallThickness;
@ExcelProperty(value = "温度")
String temperature;
@ExcelProperty(value = "无损检测比例(气瓶)")
String qpRatio;
@ExcelProperty(value = "气密性试验压力(气瓶)")
String qpAirTightness;
@ExcelProperty(value = "氧舱品种")
String oxygenChamber;
@ExcelProperty(value = "无损检测方法")
@DictCode2DictName(type = "RQJCFF", typeHandler = "cbDataDictTypeHandler")
String checkLossless;
@ExcelProperty(value = "长度")
String length;
@ExcelProperty(value = "规格")
String specification;
@ExcelProperty(value = "罐车编号")
String carNum;
@ExcelProperty(value = "设计压力(壳程)")
String pressureHousingPath;
@ExcelProperty(value = "额定进舱人数")
String ratedEntryCapacity;
@ExcelProperty(value = "使用环境温度")
String ambientTemperature;
@ExcelProperty(value = "最高允许工作压力(夹套)")
String maxPressureJacket;
@ExcelProperty(value = "材料(管路)")
String piping;
@ExcelProperty(value = "材料(衬里)")
String pressureMaterialLining;
@ExcelProperty(value = "热处理温度")
String qpHeatTreatmentTemperature;
@ExcelProperty(value = "材料(封头)")
String pressureMaterialHead;
@ExcelProperty(value = "腐蚀裕量")
String corrosionMargin;
@ExcelProperty(value = "设计压力(管程)")
String pressurePipe;
@ExcelProperty(value = "单瓶容积")
String singleBottleVolume;
@ExcelProperty(value = "工作压力")
String workingPressure;
@ExcelProperty(value = "耐压试验压力(管路)")
String glPressure;
@ExcelProperty(value = "型号")
String modelNumber;
@ExcelProperty(value = "工作温度")
String workTemperature;
@ExcelProperty(value = "厚度(封头)")
String fixedHead;
@ExcelProperty(value = "耐压试验种类")
String withstandVoltage;
@ExcelProperty(value = "厚度(筒体)")
String thicknessCylinder;
@ExcelProperty(value = "介质(夹套)")
String mediumJacket;
@ExcelProperty(value = "滑索长度")
String slideLength;
@ExcelProperty(value = "运行速度")
String runningSpeed1;
@ExcelProperty(value = "运行高度")
String operatingHeight;
@ExcelProperty(value = "轨道高度")
String trackHeight;
@ExcelProperty(value = "回转速度")
String slewingSpeed;
@ExcelProperty(value = "回转直径")
String rotaryDiameter;
@ExcelProperty(value = "车辆数量")
String numberOfVehicles;
@ExcelProperty(value = "单侧摆角")
String unilateralSwingAngle;
@ExcelProperty(value = "承载人数")
String numberOfPassengers;
@ExcelProperty(value = "倾角")
String dip;
@ExcelProperty(value = "设备高度")
String equipmentHeight;
@ExcelProperty(value = "高差")
String altitudeDifference;
@ExcelProperty(value = "主电机型式")
String mainMotorModel;
@ExcelProperty(value = "斜长")
String obliqueLength;
@ExcelProperty(value = "支架数据")
String supportsCount;
@ExcelProperty(value = "平距")
String horizontalDistance;
@ExcelProperty(value = "张紧油压(重锤重量)")
String oilPressureHeavyHammer;
@ExcelProperty(value = "速度")
String speed;
@ExcelProperty(value = "主电机功率")
String mainMotorPower;
@ExcelProperty(value = "运载工具数量和类型")
String numberAndTypeOfVehicles;
@ExcelProperty(value = "运量")
String freightVolume;
@ExcelProperty(value = "索距")
String cablePitch;
@ExcelProperty(value = "运载索")
@DictCode2DictName(type = "YZS", typeHandler = "cbDataDictTypeHandler")
String carrierLine;
@ExcelProperty(value = "承载索")
String bearingCable;
}
......@@ -97,14 +97,10 @@ public class IdxBizJgProjectContraptionController extends BaseController {
@ApiOperation(httpMethod = "GET", value = "根据入参 分页查询(当前)单位下的工程管道", notes = "根据入参 分页查询(当前)单位下的工程管道")
public ResponseModel<IPage<IdxBizJgProjectContraption>> proConPageByParams(
@RequestParam Map<String, String> params,
@RequestParam(value = "sort",required = false) String sort,
@RequestParam(value = "sort", required = false) String sort,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<IdxBizJgProjectContraption> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
ReginParams reginParams = getSelectedOrgInfo();
return ResponseHelper.buildResponse(idxBizJgProjectContraptionServiceImpl.proConPageByParams(sort,params, page, reginParams));
return ResponseHelper.buildResponse(idxBizJgProjectContraptionServiceImpl.proConPageByParams(current, size, sort, params, getSelectedOrgInfo()));
}
......
......@@ -86,14 +86,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
@GetMapping(value = "/{record}")
@ApiOperation(httpMethod = "GET", value = "根据record查询设备注册信息详情", notes = "根据record查询设备注册信息详情")
public ResponseModel<Object> selectOne(@PathVariable String record, @RequestParam(required = false) String isCopy) {
CompanyBo companyBo = getSelectedOrgInfo().getCompany();
String companyLevel;
if(companyBo.getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)){
companyLevel = companyBo.getLevel();
} else {
companyLevel = BaseController.COMPANY_TYPE_SUPERVISION;
}
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.getEquipmentRegisterByRecord(record, isCopy, companyLevel));
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.getEquipmentRegisterByRecord(record, isCopy));
}
......
......@@ -3,12 +3,16 @@ package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.RequestContextWrapper;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.service.IJgTableDataExportService;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -20,11 +24,14 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
/**
* JG表格数据导出
*/
@Slf4j
@RestController
@Api(tags = "JG表格数据导出")
@RequestMapping(value = "/dataExport")
......@@ -48,16 +55,22 @@ public class JgTableDataExportController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/certificate")
@ApiOperation(httpMethod = "GET", value = "登记证列表数据导出", notes = "登记证列表数据导出")
public void certificateExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
iJgTableDataExportService.certificate(response, Arrays.asList(ids.split(",")));
public ResponseModel<String> certificateExport(JgUseRegistrationManageDto dto,
@RequestParam(value = "ids", required = false) String ids,
@RequestParam(value = "sort", required = false) String sort) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
new Thread(() -> {
contextWrapper.apply();
iJgTableDataExportService.certificate(getSelectedOrgInfo(), dto, ids == null ? new ArrayList<>() : Arrays.asList(ids.split(",")), sort);
}).start();
return ResponseHelper.buildResponse("后台处理中,请注意下载!");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/maintenance")
@ApiOperation(httpMethod = "GET", value = "维保备案列表数据导出", notes = "维保备案列表数据导出")
public void maintenanceExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.maintenance(response, Arrays.asList(ids.split(",")));
}
......@@ -65,7 +78,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/installation")
@ApiOperation(httpMethod = "GET", value = "安装告知列表数据导出", notes = "安装告知列表数据导出")
public void installationExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.installation(response, Arrays.asList(ids.split(",")));
}
......@@ -73,7 +86,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/maintain")
@ApiOperation(httpMethod = "GET", value = "维修告知列表数据导出", notes = "维修告知列表数据导出")
public void maintainExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.maintain(response, Arrays.asList(ids.split(",")));
}
......@@ -81,7 +94,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/reform")
@ApiOperation(httpMethod = "GET", value = "改造告知列表数据导出", notes = "改造告知列表数据导出")
public void reformExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.reform(response, Arrays.asList(ids.split(",")));
}
......@@ -89,7 +102,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/transfer")
@ApiOperation(httpMethod = "GET", value = "移装告知列表数据导出", notes = "移装告知列表数据导出")
public void transferExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.transfer(response, Arrays.asList(ids.split(",")));
}
......@@ -118,7 +131,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/changeRegistrationUnit")
@ApiOperation(httpMethod = "GET", value = "单位变更列表数据导出", notes = "单位变更列表数据导出")
public void changeRegistrationUnitExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.changeRegistrationUnit(response, Arrays.asList(ids.split(",")));
}
......@@ -126,7 +139,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/changeRegistrationReform")
@ApiOperation(httpMethod = "GET", value = "改造登记列表数据导出", notes = "改造登记列表数据导出")
public void changeRegistrationReformExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.changeRegistrationReform(response, Arrays.asList(ids.split(",")));
}
......@@ -134,7 +147,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/enableDisable")
@ApiOperation(httpMethod = "GET", value = "启用停用列表数据导出", notes = "启用停用列表数据导出")
public void enableDisableExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.enableDisable(response, Arrays.asList(ids.split(",")));
}
......@@ -142,7 +155,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/scrapCancel")
@ApiOperation(httpMethod = "GET", value = "注销报废列表数据导出", notes = "注销报废列表数据导出")
public void scrapCancelExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.scrapCancel(response, Arrays.asList(ids.split(",")));
}
......@@ -150,7 +163,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/changeRegistrationTransfer")
@ApiOperation(httpMethod = "GET", value = "移装变更列表数据导出", notes = "移装变更列表数据导出")
public void changeRegistrationTransferExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.changeRegistrationTransfer(response, Arrays.asList(ids.split(",")));
}
......@@ -158,7 +171,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/changeRegistrationName")
@ApiOperation(httpMethod = "GET", value = "更名变更列表数据导出", notes = "更名变更列表数据导出")
public void changeRegistrationNameExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.changeRegistrationName(response, Arrays.asList(ids.split(",")));
}
......@@ -166,7 +179,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/vehicleInformation")
@ApiOperation(httpMethod = "GET", value = "车气登记列表数据导出", notes = "车气登记列表数据导出")
public void vehicleInformationExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.vehicleInformation(response, Arrays.asList(ids.split(",")));
}
......@@ -174,31 +187,77 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/changeVehicleRegistrationUnit")
@ApiOperation(httpMethod = "GET", value = "车用气瓶变更列表数据导出", notes = "车用气瓶变更列表数据导出")
public void changeVehicleRegistrationUnitExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.changeVehicleRegistrationUnit(response, Arrays.asList(ids.split(",")));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/unregulatedEquip")
@ApiOperation(httpMethod = "GET", value = "未纳管设备列表数据导出", notes = "未纳管设备列表数据导出")
public void unregulatedEquipExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
iJgTableDataExportService.unregulatedEquip(response, Arrays.asList(ids.split(",")));
public ResponseModel<String> unregulatedEquipExport(@RequestParam Map<String, Object> map) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
new Thread(() -> {
contextWrapper.apply();
iJgTableDataExportService.unregulatedEquip(getSelectedOrgInfo(), map);
}).start();
return ResponseHelper.buildResponse("后台处理中,请注意下载!");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/manageEquipment")
@ApiOperation(httpMethod = "GET", value = "已纳管设备列表数据导出", notes = "已纳管设备列表数据导出")
public void manageEquipmentExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
iJgTableDataExportService.manageEquipment(response, Arrays.asList(ids.split(",")));
public ResponseModel<String> manageEquipmentExport(@RequestParam Map<String, Object> map) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
new Thread(() -> {
contextWrapper.apply();
iJgTableDataExportService.manageEquipment(getSelectedOrgInfo(), map);
}).start();
return ResponseHelper.buildResponse("后台处理中,请注意下载!");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/equipTransfer")
@ApiOperation(httpMethod = "GET", value = "设备移交列表数据导出", notes = "设备移交列表数据导出")
public void equipTransferExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
Assert.hasText(ids, "未选择导出数据");
iJgTableDataExportService.equipTransfer(response, Arrays.asList(ids.split(",")));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/unregulatedPipe")
@ApiOperation(httpMethod = "GET", value = "未纳管压力管道列表数据导出", notes = "未纳管压力管道列表数据导出")
public ResponseModel<String> unregulatedPipe(@RequestParam Map<String, String> params,
@RequestParam(value = "sort", required = false) String sort) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
new Thread(() -> {
contextWrapper.apply();
iJgTableDataExportService.unregulatedPipe(params, sort, getSelectedOrgInfo());
}).start();
return ResponseHelper.buildResponse("后台处理中,请注意下载!");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/managePipe")
@ApiOperation(httpMethod = "GET", value = "已纳管压力管道列表数据导出", notes = "已纳管压力管道列表数据导出")
public ResponseModel<String> managePipe(@RequestParam Map<String, String> params,
@RequestParam(value = "sort", required = false) String sort) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
new Thread(() -> {
contextWrapper.apply();
iJgTableDataExportService.managePipe(params, sort, getSelectedOrgInfo());
}).start();
return ResponseHelper.buildResponse("后台处理中,请注意下载!");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/enterpriseInformationExport")
@ApiOperation(httpMethod = "GET", value = "基础设置-企业信息列表数据导出", notes = "基础设置-企业信息列表数据导出")
public ResponseModel<String> managePipe(String ids, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
new Thread(() -> {
contextWrapper.apply();
iJgTableDataExportService.enterpriseInformationExport(ids, tzBaseEnterpriseInfoDto, getSelectedOrgInfo());
}).start();
return ResponseHelper.buildResponse("后台处理中,请注意下载!");
}
}
......@@ -149,19 +149,7 @@ public class JgUseRegistrationManageController extends BaseController {
@RequestParam(value = "sort", required = false) String sort,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<JgUseRegistrationManageDto> page = new Page<JgUseRegistrationManageDto>();
page.setCurrent(current);
page.setSize(size);
ReginParams info = getSelectedOrgInfo();
if (info.getCompany().getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)) {
dto.setDataType(BaseController.COMPANY_TYPE_COMPANY);
dto.setUseUnitCreditCode(CompanyTypeEnum.INDIVIDUAL.getName().equals(info.getCompany().getCompanyType()) ?
info.getCompany().getCompanyCode().split("_")[1] : info.getCompany().getCompanyCode());
} else {
dto.setDataType(BaseController.COMPANY_TYPE_SUPERVISION);
dto.setReceiveCompanyCode(info.getCompany().getCompanyCode());
}
dto.setIsDoBusiness(ValidationUtil.isEmpty(dto.getIsDoBusiness()) ? "1" : "");
Page<JgUseRegistrationManageDto> page = jgUseRegistrationManageServiceImpl.buildFilter(dto, current, size);
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.queryForJgUseRegistrationManagePage(page, dto, sort));
}
......
package com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.typeHandler.DictTypeHandler;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
/**
* 业务字典处理器
*/
@Component("equipCategoryDictTypeHandler")
@RequiredArgsConstructor
public class EquipCategoryDictTypeHandler implements DictTypeHandler {
private final EquipmentCategoryMapper equipmentCategoryMapper;;
private final Map<String, String> cache = new ConcurrentHashMap<>();
// dictType 未用到
@Override
public String handle(String dictType, String dictCode) {
if (StringUtils.isEmpty(dictCode)) {
return null;
}
// 汉字不做转化
if (!dictCode.isEmpty() && dictCode.matches("^[\\u4e00-\\u9fa5]+$")){
return dictCode;
}
return cache.computeIfAbsent(dictCode, (k) -> {
LambdaQueryWrapper<EquipmentCategory> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(EquipmentCategory::getCode, dictCode);
EquipmentCategory equipmentCategory = equipmentCategoryMapper.selectOne(wrapper);
return Optional.ofNullable(equipmentCategory).map(EquipmentCategory::getName).orElse(null);
});
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler;
import com.yeejoin.amos.boot.biz.common.typeHandler.DictTypeHandler;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
/**
* 平台维护的字典处理器
*/
@Slf4j
@Component("platformDictTypeHandler")
@RequiredArgsConstructor
public class PlatformDictTypeHandler implements DictTypeHandler {
private final Map<String, String> cache = new ConcurrentHashMap<>();
@Override
public String handle(String dictType, String dictCode) {
if (StringUtils.isEmpty(dictCode)){
return null;
}
return cache.computeIfAbsent(dictCode, k -> {
try {
List<DictionarieValueModel> result = Systemctl.dictionarieClient.dictValues(dictType).getResult();
return result.stream()
.filter(Objects::nonNull)
.filter(dict -> dict.getDictDataKey() != null && dict.getDictDataKey().equals(dictCode))
.findFirst()
.map(DictionarieValueModel::getDictDataValue)
.orElse(null);
} catch (Exception e) {
log.error("获取字典数据失败,dictType: {}, error: {}", dictType, e.getMessage(), e);
return null;
}
});
}
}
package com.yeejoin.amos.boot.module.jg.biz.feign;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.feign.FeignConfiguration;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import org.springframework.cloud.openfeign.FeignClient;
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.typroject.tyboot.core.restful.utils.ResponseModel;
@FeignClient(name = "TZS-JCZS", path = "/jczs", configuration = {FeignConfiguration.class})
public interface JczsServiceFeignClient {
/**
* 企业信息列表分页查询
*/
@RequestMapping(value = "/baseEnterprise/page", method = RequestMethod.GET)
ResponseModel<Page<TzBaseEnterpriseInfoDto>> page(@RequestParam("page") int page,
@RequestParam("size") int size,
@RequestParam("keyword") String keyword,
@RequestBody TzBaseEnterpriseInfoDto dto);
}
......@@ -21,7 +21,7 @@ public interface IIdxBizJgProjectContraptionService extends IService<IdxBizJgPro
Boolean deleteProjectAndEquInfoBySeq(Long sequenceNbr);
IPage<IdxBizJgProjectContraption> proConPageByParams(String sort, Map<String, String> params, Page<IdxBizJgProjectContraption> page, ReginParams reginParams);
IPage<IdxBizJgProjectContraption> proConPageByParams(int current, int size, String sort, Map<String, String> params, ReginParams reginParams);
List<IdxBizJgProjectContraption> proConListByParams(Map<String, String> params, ReginParams reginParams);
......
......@@ -22,7 +22,7 @@ public interface IIdxBizJgRegisterInfoService {
boolean batchDeleteByRecord(Map<String,Object> map);
Map<String, Map<String, Object>> getEquipmentRegisterByRecord(String record, String isCopy, String companyLevel);
Map<String, Map<String, Object>> getEquipmentRegisterByRecord(String record, String isCopy);
Page<JSONObject> queryForEquipmentRegisterPage(JSONObject jsonObject);
......
package com.yeejoin.amos.boot.module.jg.biz.service;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* JG表格数据导出接口类
*/
public interface IJgTableDataExportService {
void gen(String jsonName, String voName,String tableName);
void gen(String jsonName, String voName, String tableName);
void certificate(HttpServletResponse response, List<String> ids);
void certificate(ReginParams reginParams, JgUseRegistrationManageDto dto, List<String> ids, String sort);
void maintenance(HttpServletResponse response, List<String> ids);
......@@ -43,10 +47,15 @@ public interface IJgTableDataExportService {
void changeVehicleRegistrationUnit(HttpServletResponse response, List<String> ids);
void unregulatedEquip(HttpServletResponse response, List<String> ids);
void unregulatedEquip(ReginParams reginParams, Map<String, Object> map);
void manageEquipment(HttpServletResponse response, List<String> ids);
void manageEquipment(ReginParams reginParams, Map<String, Object> map);
void equipTransfer(HttpServletResponse response, List<String> ids);
void managePipe(Map<String, String> params, String sort, ReginParams reginParams);
void unregulatedPipe(Map<String, String> params, String sort, ReginParams reginParams);
void enterpriseInformationExport(String ids, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto, ReginParams reginParams);
}
......@@ -19,6 +19,7 @@ import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
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.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.EquipSourceEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.PipelineEnum;
......@@ -129,6 +130,8 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
private DataDictionaryServiceImpl dataDictionaryServiceImpl;
@Autowired
private RedisUtils redisUtils;
@Autowired
private JgUseRegistrationManageServiceImpl registrationManageService;
@Override
public boolean saveOrUpdateData(IdxBizJgProjectContraption projectContraption) {
......@@ -144,6 +147,34 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
}
/**
* 根据证的seq查询其下的工程装置
*/
public List<IdxBizJgProjectContraption> queryProConByCertSeq(String certSeq) {
JgUseRegistrationManage certManage = registrationManageService.getBaseMapper().selectById(certSeq);
List<IdxBizJgProjectContraption> result = this.lambdaQuery()
.eq(IdxBizJgProjectContraption::getIsDelete, Boolean.FALSE)
.isNull(IdxBizJgProjectContraption::getProjectContraptionParentId)
.eq(IdxBizJgProjectContraption::getUseRegistrationCode, certManage.getUseRegistrationCode())
.list();
if (!ValidationUtil.isEmpty(result)) {
result.forEach(record -> {
BigDecimal pipelineLength = BigDecimal.valueOf(record.getPipelineLength());
BigDecimal roundedValue = pipelineLength.setScale(3, RoundingMode.HALF_UP);
BigDecimal strippedValue = roundedValue.stripTrailingZeros();
record.setPipelineLength(Double.valueOf(strippedValue.toPlainString()));
record.setDataSourceName(EquipSourceEnum.getDataSourceName(record.getDataSource()));
record.setFullAddress(
Stream.of(record.getProvinceName(), record.getCityName(), record.getCountyName(), record.getStreetName(), record.getAddress())
.map(value -> value == null ? "" : value)
.collect(Collectors.joining())
);
});
}
return result;
}
/**
* 根据工程装置seq物理删除装置表数据和对应设备信息(数据库+es)
*
* @param sequenceNbr 工程装置表seq
......@@ -179,12 +210,14 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
* 根据入参 分页查询(当前)单位下的工程管道
*
* @param params 查询参数 Map
* @param page 分页
* @param reginParams 当前登录人信息
* @return result
*/
@Override
public IPage<IdxBizJgProjectContraption> proConPageByParams(String sort, Map<String, String> params, Page<IdxBizJgProjectContraption> page, ReginParams reginParams) {
public IPage<IdxBizJgProjectContraption> proConPageByParams(int current, int size, String sort, Map<String, String> params, ReginParams reginParams) {
Page<IdxBizJgProjectContraption> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
CompanyBo company = reginParams.getCompany();
String companyType = company.getCompanyType();
String companyCode = company.getCompanyCode();
......
......@@ -21,10 +21,7 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
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.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.biz.common.utils.*;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
......@@ -97,7 +94,7 @@ import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......@@ -300,16 +297,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
@Autowired
private TzsUserInfoMapper tzsUserInfoMapper;
@Autowired
private ShCarEquServiceImpl shCarEquService;
@Autowired
private ShCarServiceImpl shCarService;
@Autowired
private IIdxBizJgProjectContraptionService idxBizJgProjectContraptionService;
private IdxBizJgProjectContraptionServiceImpl idxBizJgProjectContraptionService;
@Value("classpath:/json/urlInfo.json")
private Resource urlInfo;
@Autowired
private CommonServiceImpl commonServiceImpl;
private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
public IdxBizJgRegisterInfo getOneData(String record) {
return this.getOne(new QueryWrapper<IdxBizJgRegisterInfo>().eq("RECORD", record));
}
......@@ -1078,10 +1073,16 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
* 查询设备注册信息详情
*
* @param record
* @param companyLevel
* @return
*/
public Map<String, Map<String, Object>> getEquipmentRegisterByRecord(String record, String isCopy, String companyLevel) {
public Map<String, Map<String, Object>> getEquipmentRegisterByRecord(String record, String isCopy) {
CompanyBo companyBo = getSelectedOrgInfo().getCompany();
String companyLevel;
if(companyBo.getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)){
companyLevel = companyBo.getLevel();
} else {
companyLevel = BaseController.COMPANY_TYPE_SUPERVISION;
}
Map<String, Map<String, Object>> resultMap = new HashMap<>();
// 设备种类
Map<String, Object> equIpClassMap = this.getEquIpClassMap(record, "");
......@@ -4780,33 +4781,24 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
*/
public List<JSONObject> queryEquipInIds(List<String> ids) {
List<JSONObject> result = new ArrayList<>();
SearchRequest request = new SearchRequest();
request.indices("idx_biz_view_jg_all");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true);
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
if (!ObjectUtils.isEmpty(ids)) {
BoolQueryBuilder seqBuilder = QueryBuilders.boolQuery();
seqBuilder.must(QueryBuilders.termsQuery("SEQUENCE_NBR.keyword", ids));
boolMust.must(seqBuilder);
}
builder.query(boolMust);
builder.sort("REC_DATE", SortOrder.DESC);
request.source(builder);
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits().getHits()) {
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
JSONObject source = jsonObject.getJSONObject("sourceAsMap");
if (!ValidationUtil.isEmpty(source.get(DATA_SOURCE))) {
String s = source.get(DATA_SOURCE).toString();
source.put(DATA_SOURCE, s);
source.put(DATA_SOURCE_NAME, EquipSourceEnum.getDataSourceName(s));
}
result.add(source);
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
List<CompletableFuture<JSONObject>> futures = new ArrayList<>();
ids.forEach(record ->{
CompletableFuture<JSONObject> future = CompletableFuture.supplyAsync(() -> {
JSONObject itemJsonObject = new JSONObject();
contextWrapper.apply();
Map<String, Map<String, Object>> registerByRecord = idxBizJgRegisterInfoService.getEquipmentRegisterByRecord(record, "0");
registerByRecord.values().forEach(i -> CommonUtils.deepMergeJSONObject(new JSONObject(i),itemJsonObject));
return itemJsonObject;
}, executorService);
futures.add(future);
});
for (CompletableFuture<JSONObject> future : futures) {
try {
result.add(future.get());
} catch (InterruptedException | ExecutionException e) {
log.error("执行失败", e);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
}
......@@ -5011,4 +5003,44 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
throw new RuntimeException(sendVerifyCodeResult.getMessage());
}
/**
* 根据工程装置ids设备数据
*/
public List<JSONObject> queryPipeEquipInIds(List<String> proConSeqs) {
List<JSONObject> result = new ArrayList<>();
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
List<CompletableFuture<JSONArray>> futures = new ArrayList<>();
proConSeqs.forEach(seq ->{
CompletableFuture<JSONArray> future = CompletableFuture.supplyAsync(() -> {
JSONArray resultArray = new JSONArray();
contextWrapper.apply();
Map<String, Map<String, Object>> details = idxBizJgProjectContraptionService.details(seq);
Map<String, Object> objectMap = details.get(EQUIP_INFO_FORM_ID);
JSONArray pipeList = JSON.parseArray(JSON.toJSONString(objectMap.get(PIPELINE_LIST)));
pipeList.forEach(pipeEqu -> {
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(pipeEqu));
for (Map.Entry<String, Object> entry : objectMap.entrySet()) {
if (!PIPELINE_LIST.equals(entry.getKey())) {
jsonObject.put(entry.getKey(), entry.getValue());
}
}
resultArray.add(jsonObject);
});
return resultArray;
}, executorService);
futures.add(future);
});
for (CompletableFuture<JSONArray> future : futures) {
try {
future.get().stream()
.filter(o -> o instanceof JSONObject)
.map(o -> (JSONObject) o)
.forEach(result::add);
} catch (InterruptedException | ExecutionException e) {
log.error("执行失败", e);
}
}
return result;
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.boot.biz.common.utils.RequestContextWrapper;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo.*;
import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.CbDataDictTypeHandler;
import com.yeejoin.amos.boot.module.jg.biz.feign.JczsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.IJgTableDataExportService;
import com.yeejoin.amos.boot.module.jg.biz.utils.DictUtil;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
/**
* JG列表数据导出实现类
......@@ -63,9 +90,24 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
@Autowired
private IdxBizJgRegisterInfoServiceImpl idxBizJgRegisterInfoService;
@Autowired
private JgEquipTransferMapper equipTransferMapper;
private EmqKeeper emqKeeper;
@Autowired
private JgEquipTransferServiceImpl equipTransferService;
@Autowired
JgUseRegistrationManageServiceImpl jgUseRegistrationManageServiceImpl;
@Autowired
IdxBizJgProjectContraptionServiceImpl idxBizJgProjectContraptionService;
@Autowired
JczsServiceFeignClient jczsServiceFeignClient;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
private CbDataDictTypeHandler cbDataDictTypeHandler;
private final String BUCKET_NAME = "upload";
private final String UPLOAD_PATH = "/tzs/excelTempFile";
private final int PAGE_SIZE = 100;
private final String DOWNLOAD_TOPIC = "/topic/download/excel/%s";
private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
@Override
......@@ -156,17 +198,131 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
}
/**
* 登记证列表数据导出
* 发送主题消息,给企业推送excel下载提醒
*
* @param response 响应
* @param ids 数据id
* @param topic 主体格式为: /download/excel/${userId}
* @param jsonObject 文件名称 + excel文件路径(minio)
*/
public void sendDownLoadExcelMsg(String topic, JSONObject jsonObject) {
try {
emqKeeper.getMqttClient().publish(topic, JSONObject.toJSONString(jsonObject).getBytes(StandardCharsets.UTF_8), 2, false);
} catch (Exception e) {
log.error(e.getMessage());
}
}
/**
* 上传excel文件到minio服务器
*
* @param templateExcelFile 文件
* @return minio文件路径
*/
private String uploadExcelFile(MultipartFile templateExcelFile) {
FeignClientResult<Map<String, String>> uploadResult = Systemctl.fileStorageClient.updateBucketFile(templateExcelFile, BUCKET_NAME, UPLOAD_PATH);
String urlString = "";
if (uploadResult != null && uploadResult.getResult() != null) {
for (String s : uploadResult.getResult().keySet()) {
urlString = s;
}
}
return urlString;
}
/**
* 登记证列表数据导出
*/
@Override
public void certificate(HttpServletResponse response, List<String> ids) {
List<CertificateVo> exportData = useRegistrationManageMapper.queryCertificateInIds(ids);
ExcelUtil.createTemplate(response, "使用登记证列表数据", "使用登记证列表", exportData, CertificateVo.class, null, false);
public void certificate(ReginParams reginParams, JgUseRegistrationManageDto dto, List<String> ids, String sort) {
AgencyUserModel userModel = reginParams.getUserModel();
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
List<CertificateVo> exportData;
if (ids.isEmpty()) {
// 查询首页数据
int currentPage = 1;
Page<JgUseRegistrationManageDto> firstPage = jgUseRegistrationManageServiceImpl.buildFilter(dto, currentPage, PAGE_SIZE);
Page<JgUseRegistrationManageDto> dtoPage = jgUseRegistrationManageServiceImpl.queryForJgUseRegistrationManagePage(firstPage, dto, sort);
long total = dtoPage.getTotal();
int totalPage = (int) Math.ceil((double) total / PAGE_SIZE);
// 用于收集所有分页结果
List<CompletableFuture<List<String>>> futures = new ArrayList<>();
// 添加第一页数据
List<String> idsCollected = dtoPage.getRecords().stream()
.map(JgUseRegistrationManageDto::getSequenceNbr)
.map(String::valueOf)
.collect(Collectors.toList());
// 多线程处理从第2页开始的数据
for (int i = 2; i <= totalPage; i++) {
int pageIndex = i;
CompletableFuture<List<String>> future = CompletableFuture.supplyAsync(() -> {
// 恢复上下文到子线程
contextWrapper.apply();
Page<JgUseRegistrationManageDto> page = jgUseRegistrationManageServiceImpl.buildFilter(dto, pageIndex, PAGE_SIZE);
Page<JgUseRegistrationManageDto> resultPage = jgUseRegistrationManageServiceImpl.queryForJgUseRegistrationManagePage(page, dto, sort);
return resultPage.getRecords().stream()
.map(JgUseRegistrationManageDto::getSequenceNbr)
.map(String::valueOf)
.collect(Collectors.toList());
}, executorService);
futures.add(future);
}
// 等待所有线程完成
for (CompletableFuture<List<String>> future : futures) {
try {
idsCollected.addAll(future.get());
} catch (InterruptedException | ExecutionException e) {
log.error("分页查询线程执行失败", e);
}
}
ids.addAll(idsCollected);
}
// 查询数据
List<CertificateVo> equData = useRegistrationManageMapper.queryCertificateInIds(ids);
// 填充数据
exportData = this.packageCertificateDetailsField(equData);
DictUtil.dictCode2DictName(exportData);
MultipartFile templateExcelFile = ExcelUtil.createTemplateExcelFile("使用登记证列表数据", "使用登记证列表", exportData, CertificateVo.class, null, false);
String urlString = this.uploadExcelFile(templateExcelFile);
this.sendDownLoadExcelMsg(String.format(DOWNLOAD_TOPIC, userModel.getUserId()), new JSONObject()
.fluentPut("fileName", "使用登记证列表数据")
.fluentPut("url", urlString)
.fluentPut("time", new Date().getTime()));
}
/**
* 填充使用登记证详情字段
* 普通设备填充设备信息,管道填充工程装置
*/
private List<CertificateVo> packageCertificateDetailsField(List<CertificateVo> equdata) {
List<CertificateVo> exportData = new ArrayList<>();
equdata.forEach(data -> {
if ("压力管道".equals(data.getEquList())) {
List<IdxBizJgProjectContraption> contraptions = idxBizJgProjectContraptionService.queryProConByCertSeq(data.getSequenceNbr());
for (IdxBizJgProjectContraption obj : contraptions) {
BeanUtil.copyProperties(obj, data);
exportData.add(data);
}
} else {
List<JSONObject> jsonObjects = jgUseRegistrationManageServiceImpl.queryEquByCertificateSeq(Long.valueOf(data.getSequenceNbr()));
for (JSONObject obj : jsonObjects) {
BeanUtil.copyProperties(obj, data);
exportData.add(data);
}
}
});
return exportData;
}
/**
* 维保备案列表数据导出
*
......@@ -195,7 +351,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 维修告知列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void maintain(HttpServletResponse response, List<String> ids) {
......@@ -207,7 +363,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 改造告知列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void reform(HttpServletResponse response, List<String> ids) {
......@@ -219,7 +375,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 移装告知列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void transfer(HttpServletResponse response, List<String> ids) {
......@@ -231,7 +387,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 使用登记列表数据导出
*
* @param response 响应
* @param dto 筛选面板数据
* @param dto 筛选面板数据
*/
@Override
public void registration(HttpServletResponse response, JgUseRegistrationDto dto, String client) {
......@@ -257,9 +413,9 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
}
List<RegistrationVo> exportData = registrationMapper.queryRegistrationInIds(dto, client);
for (RegistrationVo vo : exportData) {
if (vo.getRegType()== null) {
if (vo.getRegType() == null) {
vo.setRegType("新增登记");
} else if(vo.getRegType().equals("1")){
} else if (vo.getRegType().equals("1")) {
vo.setRegType("历史登记");
}
}
......@@ -270,7 +426,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 单位变更列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void changeRegistrationUnit(HttpServletResponse response, List<String> ids) {
......@@ -282,7 +438,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 改造登记列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void changeRegistrationReform(HttpServletResponse response, List<String> ids) {
......@@ -295,7 +451,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 启用停用列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void enableDisable(HttpServletResponse response, List<String> ids) {
......@@ -308,7 +464,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 注销报废列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void scrapCancel(HttpServletResponse response, List<String> ids) {
......@@ -321,7 +477,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 移装变更列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void changeRegistrationTransfer(HttpServletResponse response, List<String> ids) {
......@@ -334,7 +490,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 更名变更列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void changeRegistrationName(HttpServletResponse response, List<String> ids) {
......@@ -348,7 +504,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 车气登记列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void vehicleInformation(HttpServletResponse response, List<String> ids) {
......@@ -357,12 +513,11 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
}
/**
* 车用气瓶变更列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void changeVehicleRegistrationUnit(HttpServletResponse response, List<String> ids) {
......@@ -373,29 +528,100 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
/**
* 未纳管设备列表数据导出
*
* @param response 响应
* @param ids 数据id
*/
@Override
public void unregulatedEquip(HttpServletResponse response, List<String> ids) {
public void unregulatedEquip(ReginParams reginParams, Map<String, Object> map) {
AgencyUserModel userModel = reginParams.getUserModel();
List<String> ids = getEquRecords(map);
// 查询数据
List<JSONObject> jsonObjects = idxBizJgRegisterInfoService.queryEquipInIds(ids);
List<UnregulatedEquipVo> exportData = JSON.parseArray(JSON.toJSONString(jsonObjects), UnregulatedEquipVo.class);
ExcelUtil.createTemplate(response, "未纳管设备列表数据", "未纳管设备列表", exportData, UnregulatedEquipVo.class, null, false);
DictUtil.dictCode2DictName(exportData);
MultipartFile templateExcelFile = ExcelUtil.createTemplateExcelFile("未纳管设备列表数据", "未纳管设备列表", exportData, UnregulatedEquipVo.class, null, false);
String urlString = this.uploadExcelFile(templateExcelFile);
this.sendDownLoadExcelMsg(String.format(DOWNLOAD_TOPIC, userModel.getUserId()), new JSONObject()
.fluentPut("fileName", "未纳管设备列表数据")
.fluentPut("url", urlString)
.fluentPut("time", new Date().getTime()));
}
private List<String> getEquRecords(Map<String, Object> map) {
List<String> ids = new ArrayList<>(Optional.ofNullable(map.get("ids"))
.map(Object::toString)
.filter(s -> !s.isEmpty())
.map(s -> Arrays.stream(s.split(","))
.collect(Collectors.toList()))
.orElse(Collections.emptyList()));
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
if (ids.isEmpty()) {
// 查询首页数据
Page<JSONObject> jsonObjectPage = idxBizJgRegisterInfoService.queryForEquipmentRegisterPage(new JSONObject(map).fluentPut("size", PAGE_SIZE).fluentPut("number", 1));
long total = jsonObjectPage.getTotal();
int totalPage = (int) Math.ceil((double) total / PAGE_SIZE);
// 用于收集所有分页结果
List<CompletableFuture<List<String>>> futures = new ArrayList<>();
// 添加第一页数据
List<String> idsCollected = jsonObjectPage.getRecords().stream()
.map(jsonObject -> jsonObject.getString("record"))
.map(String::valueOf)
.collect(Collectors.toList());
// 多线程处理从第2页开始的数据
for (int i = 2; i <= totalPage; i++) {
int pageIndex = i;
CompletableFuture<List<String>> future = CompletableFuture.supplyAsync(() -> {
// 恢复上下文到子线程
contextWrapper.apply();
Page<JSONObject> resultPage = idxBizJgRegisterInfoService.queryForEquipmentRegisterPage(new JSONObject(map).fluentPut("size", PAGE_SIZE).fluentPut("number", pageIndex));
return resultPage.getRecords().stream()
.map(jsonObject -> jsonObject.getString("record"))
.map(String::valueOf)
.collect(Collectors.toList());
}, executorService);
futures.add(future);
}
// 等待所有线程完成
for (CompletableFuture<List<String>> future : futures) {
try {
idsCollected.addAll(future.get());
} catch (InterruptedException | ExecutionException e) {
log.error("分页查询线程执行失败", e);
}
}
ids.addAll(idsCollected);
}
return ids;
}
/**
* 已纳管设备列表数据导出
*
* @param response 响应
* @param ids 数据id
*/
@Override
public void manageEquipment(HttpServletResponse response, List<String> ids) {
public void manageEquipment(ReginParams reginParams, Map<String, Object> map) {
AgencyUserModel userModel = reginParams.getUserModel();
List<String> ids = getEquRecords(map);
// 查询数据
List<JSONObject> jsonObjects = idxBizJgRegisterInfoService.queryEquipInIds(ids);
List<ManageEquipmentVo> exportData = JSON.parseArray(JSON.toJSONString(jsonObjects), ManageEquipmentVo.class);
ExcelUtil.createTemplate(response, "已纳管设备列表数据", "已纳管设备列表", exportData, ManageEquipmentVo.class, null, false);
DictUtil.dictCode2DictName(exportData);
MultipartFile templateExcelFile = ExcelUtil.createTemplateExcelFile("已纳管设备列表数据", "已纳管设备列表", exportData, ManageEquipmentVo.class, null, false);
String urlString = this.uploadExcelFile(templateExcelFile);
this.sendDownLoadExcelMsg(String.format(DOWNLOAD_TOPIC, userModel.getUserId()), new JSONObject()
.fluentPut("fileName", "已纳管设备列表数据")
.fluentPut("url", urlString)
.fluentPut("time", new Date().getTime()));
}
......@@ -403,11 +629,186 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* 设备移交列表数据导出
*
* @param response 响应
* @param ids 数据id
* @param ids 数据id
*/
@Override
public void equipTransfer(HttpServletResponse response, List<String> ids) {
List<EquipTransferVo> exportData = equipTransferService.queryTransferInIds(ids);
ExcelUtil.createTemplate(response, "设备移交列表数据", "设备移交列表", exportData, EquipTransferVo.class, null, false);
}
private List<String> getProConSeqs(Map<String, String> params, String sort, ReginParams reginParams) {
List<String> ids = new ArrayList<>(Optional.ofNullable(params.get("ids"))
.map(Object::toString)
.filter(s -> !s.isEmpty())
.map(s -> Arrays.stream(s.split(","))
.collect(Collectors.toList()))
.orElse(Collections.emptyList()));
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
if (ids.isEmpty()) {
// 查询首页数据
IPage<IdxBizJgProjectContraption> projectContraptionIPage = idxBizJgProjectContraptionService.proConPageByParams(1, PAGE_SIZE, sort, params, reginParams);
long total = projectContraptionIPage.getTotal();
int totalPage = (int) Math.ceil((double) total / PAGE_SIZE);
// 用于收集所有分页结果
List<CompletableFuture<List<String>>> futures = new ArrayList<>();
// 添加第一页数据
List<String> idsCollected = projectContraptionIPage.getRecords().stream()
.map(BaseEntity::getSequenceNbr)
.map(String::valueOf)
.collect(Collectors.toList());
// 多线程处理从第2页开始的数据
for (int i = 2; i <= totalPage; i++) {
int pageIndex = i;
CompletableFuture<List<String>> future = CompletableFuture.supplyAsync(() -> {
// 恢复上下文到子线程
contextWrapper.apply();
IPage<IdxBizJgProjectContraption> resultPage = idxBizJgProjectContraptionService.proConPageByParams(pageIndex, PAGE_SIZE, sort, params, reginParams);
return resultPage.getRecords().stream()
.map(BaseEntity::getSequenceNbr)
.map(String::valueOf)
.collect(Collectors.toList());
}, executorService);
futures.add(future);
}
// 等待所有线程完成
for (CompletableFuture<List<String>> future : futures) {
try {
idsCollected.addAll(future.get());
} catch (InterruptedException | ExecutionException e) {
log.error("分页查询线程执行失败", e);
}
}
ids.addAll(idsCollected);
}
return ids;
}
/**
* 已纳管压力管道列表数据导出
*
* @param params
* @param sort
* @param reginParams
*/
@Override
public void managePipe(Map<String, String> params, String sort, ReginParams reginParams) {
AgencyUserModel userModel = reginParams.getUserModel();
List<String> proConSeqs = getProConSeqs(params, sort, reginParams);
List<JSONObject> jsonObjects = idxBizJgRegisterInfoService.queryPipeEquipInIds(proConSeqs);
List<PipeEquipmentVo> exportData = JSON.parseArray(JSON.toJSONString(jsonObjects), PipeEquipmentVo.class);
DictUtil.dictCode2DictName(exportData);
MultipartFile templateExcelFile = ExcelUtil.createTemplateExcelFile("已纳管压力管道列表数据", "已纳管压力管道列表", exportData, PipeEquipmentVo.class, null, false);
String urlString = this.uploadExcelFile(templateExcelFile);
this.sendDownLoadExcelMsg(String.format(DOWNLOAD_TOPIC, userModel.getUserId()), new JSONObject()
.fluentPut("fileName", "已纳管压力管道列表")
.fluentPut("url", urlString)
.fluentPut("time", new Date().getTime()));
}
/**
* 未纳管压力管道列表数据导出
*
* @param params
* @param sort
* @param reginParams
*/
@Override
public void unregulatedPipe(Map<String, String> params, String sort, ReginParams reginParams) {
AgencyUserModel userModel = reginParams.getUserModel();
List<String> proConSeqs = getProConSeqs(params, sort, reginParams);
List<JSONObject> jsonObjects = idxBizJgRegisterInfoService.queryPipeEquipInIds(proConSeqs);
List<PipeEquipmentVo> exportData = JSON.parseArray(JSON.toJSONString(jsonObjects), PipeEquipmentVo.class);
DictUtil.dictCode2DictName(exportData);
MultipartFile templateExcelFile = ExcelUtil.createTemplateExcelFile("未纳管压力管道列表数据", "未纳管压力管道列表", exportData, PipeEquipmentVo.class, null, false);
String urlString = this.uploadExcelFile(templateExcelFile);
this.sendDownLoadExcelMsg(String.format(DOWNLOAD_TOPIC, userModel.getUserId()), new JSONObject()
.fluentPut("fileName", "未纳管压力管道列表")
.fluentPut("url", urlString)
.fluentPut("time", new Date().getTime()));
}
private List<String> getEnterSeqs(String ids, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto, ReginParams reginParams) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
List<String> idsList = new ArrayList<>();
if (StringUtils.isEmpty(ids)) {
ResponseModel<Page<TzBaseEnterpriseInfoDto>> page = jczsServiceFeignClient.page(1, PAGE_SIZE, null, tzBaseEnterpriseInfoDto);
Page<TzBaseEnterpriseInfoDto> pageResult = page.getResult();
int totalPage = (int) Math.ceil((double) pageResult.getTotal() / PAGE_SIZE);
List<CompletableFuture<List<String>>> futures = new ArrayList<>();
List<String> idsCollected = pageResult.getRecords().stream()
.map(BaseDto::getSequenceNbr)
.map(String::valueOf)
.collect(Collectors.toList());
for (int i = 2; i <= totalPage; i++) {
int pageIndex = i;
CompletableFuture<List<String>> future = CompletableFuture.supplyAsync(() -> {
contextWrapper.apply();
ResponseModel<Page<TzBaseEnterpriseInfoDto>> page1 = jczsServiceFeignClient.page(pageIndex, PAGE_SIZE, null, tzBaseEnterpriseInfoDto);
Page<TzBaseEnterpriseInfoDto> resultPage = page1.getResult();
return resultPage.getRecords().stream()
.map(BaseDto::getSequenceNbr)
.map(String::valueOf)
.collect(Collectors.toList());
}, executorService);
futures.add(future);
}
for (CompletableFuture<List<String>> future : futures) {
try {
idsCollected.addAll(future.get());
} catch (InterruptedException | ExecutionException e) {
log.error("分页查询线程执行失败", e);
}
}
idsList.addAll(idsCollected);
} else {
idsList.addAll(Arrays.asList(ids.split(",")));
}
return idsList;
}
/**
* 基础设置-企业信息列表数据导出
*
* @param ids
* @param tzBaseEnterpriseInfoDto
* @param reginParams
*/
@Override
public void enterpriseInformationExport(String ids, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto, ReginParams reginParams) {
AgencyUserModel userModel = reginParams.getUserModel();
ObjectMapper objectMapper = new ObjectMapper();
List<String> enterSeqs = getEnterSeqs(ids, tzBaseEnterpriseInfoDto, reginParams);
List<Map<String, String>> enterInfoWithExport = tzBaseEnterpriseInfoMapper.getEnterInfoWithExport(enterSeqs);
List<BaseEnterpriseVo> exportData = JSON.parseArray(JSON.toJSONString(enterInfoWithExport), BaseEnterpriseVo.class);
exportData.forEach(item -> {
String categoryJson = item.getEquipCategory();
if (categoryJson != null && !categoryJson.isEmpty()) {
try {
List<String> codes = objectMapper.readValue(categoryJson, new TypeReference<List<String>>() {});
List<String> names = codes.stream()
.map(x -> cbDataDictTypeHandler.handle("BJSBZL",x))
.filter(Objects::nonNull)
.collect(Collectors.toList());
item.setEquipCategory(String.join("、", names));
} catch (Exception e) {
e.printStackTrace();
}
}
});
MultipartFile templateExcelFile = ExcelUtil.createTemplateExcelFile("企业信息列表数据", "企业信息列表列表", exportData, BaseEnterpriseVo.class, null, false);
String urlString = this.uploadExcelFile(templateExcelFile);
this.sendDownLoadExcelMsg(String.format(DOWNLOAD_TOPIC, userModel.getUserId()), new JSONObject()
.fluentPut("fileName", "企业信息列表")
.fluentPut("url", urlString)
.fluentPut("time", new Date().getTime()));
}
}
\ No newline at end of file
......@@ -7,15 +7,16 @@ 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.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
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.FormValue;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.dto.UseFlagParamDto;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CertificateStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.EquipSourceEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationTransferService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgUseRegistrationManageService;
......@@ -54,6 +55,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -150,6 +152,16 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
private static final long SCROLL_TIMEOUT = 180000;
private static final int SIZE = 1000;
@Autowired
private RedisUtils redisUtils;
/**
* 用户选择信心redis获取
**/
protected ReginParams getSelectedOrgInfo() {
return JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
}
/**
* 将已经通过使用登记审批的证信息录入到 jg-use-registration-manage 表中
......@@ -275,6 +287,23 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
return Boolean.TRUE;
}
public Page<JgUseRegistrationManageDto> buildFilter(JgUseRegistrationManageDto dto, int current, int size) {
Page<JgUseRegistrationManageDto> page = new Page<JgUseRegistrationManageDto>();
page.setCurrent(current);
page.setSize(size);
ReginParams info = getSelectedOrgInfo();
if (info.getCompany().getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)) {
dto.setDataType(BaseController.COMPANY_TYPE_COMPANY);
dto.setUseUnitCreditCode(CompanyTypeEnum.INDIVIDUAL.getName().equals(info.getCompany().getCompanyType()) ?
info.getCompany().getCompanyCode().split("_")[1] : info.getCompany().getCompanyCode());
} else {
dto.setDataType(BaseController.COMPANY_TYPE_SUPERVISION);
dto.setReceiveCompanyCode(info.getCompany().getCompanyCode());
}
dto.setIsDoBusiness(ValidationUtil.isEmpty(dto.getIsDoBusiness()) ? "1" : "");
return page;
}
/**
* 分页查询
......
package com.yeejoin.amos.boot.module.jg.biz.utils;
import cn.hutool.extra.spring.SpringUtil;
import com.yeejoin.amos.boot.biz.common.typeHandler.DictTypeHandler;
import com.yeejoin.amos.boot.biz.common.typeHandler.TypeHandler;
import com.yeejoin.amos.boot.module.jg.api.annotation.DictCode2DictName;
import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Field;
import java.util.List;
import java.util.Objects;
@Slf4j
public class DictUtil {
/**
* 配合注解@DictCode2DictName(code="",type="")使用
* 将字段从dictCode转化为dictName
*
* @param data 需要转化的数据
*/
public static void dictCode2DictName(Object data) {
if (data == null) {
return;
}
// 处理 List 类型
if (data instanceof List<?>) {
List<?> list = (List<?>) data;
for (Object item : list) {
dictCode2DictName(item); // 递归处理每个元素
}
} else {
// 处理单个对象
Field[] fields = data.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
if (field.isAnnotationPresent(DictCode2DictName.class)) {
try {
DictCode2DictName annotation = field.getAnnotation(DictCode2DictName.class);
String code = Objects.toString(field.get(data));
String type = annotation.type();
String typeHandler = annotation.typeHandler();
String name = "";
Object handler = SpringUtil.getBean(typeHandler);
if (handler instanceof DictTypeHandler) {
name = ((DictTypeHandler) handler).handle(type, code);
} else if (handler instanceof TypeHandler) {
name = Objects.toString(((TypeHandler) handler).handle(code));
} else {
log.warn("未识别的 handler 类型:{}", handler.getClass().getName());
}
field.set(data, name);
} catch (IllegalAccessException | IllegalArgumentException e) {
log.error("字段赋值失败: {}, 类型: {}", field.getName(), data.getClass().getName(), e);
}
}
}
}
}
}
......@@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 企业数据信息 Mapper 接口
......@@ -104,4 +105,7 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
* @return TzBaseEnterpriseInfo
*/
TzBaseEnterpriseInfo selectByUseUnitCode(String useUnitCode);
List<Map<String,String>> getEnterInfoWithExport(@Param("ids") List<String> ids);
}
......@@ -374,4 +374,18 @@
<select id="selectByUseUnitCode" resultType="com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo">
select * from tz_base_enterprise_info where use_unit_code = #{useUnitCode}
</select>
<select id="getEnterInfoWithExport" resultType="java.util.Map">
select *
from amos_tzs_biz.tz_base_enterprise_info tbei
left join amos_tzs_biz.tz_base_unit_licence tbul on tbei."use_unit_code" = tbul."unit_code"
<where>
<if test='ids != null'>
and tbei.sequence_nbr in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</where>
</select>
</mapper>
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