* 'master' of http://221.0.232.152:9393/ability-center/share-platform:
  导入表头升序处理
  ...
  web导入能力实现
  能力数据导入
  屮

# Conflicts:
#	renren-admin/src/main/java/io/renren/modules/resource/controller/ResourceController.java
This commit is contained in:
huangweixiong 2022-06-17 14:58:38 +08:00
commit 7fa6cb05e5
4 changed files with 569 additions and 159 deletions

View File

@ -1,5 +1,6 @@
package io.renren.modules.resource.controller; package io.renren.modules.resource.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import io.renren.common.annotation.LogOperation; import io.renren.common.annotation.LogOperation;
@ -10,6 +11,7 @@ import io.renren.common.validator.ValidatorUtils;
import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.AddGroup;
import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.DefaultGroup;
import io.renren.modules.resource.dto.ResourceDTO; import io.renren.modules.resource.dto.ResourceDTO;
import io.renren.modules.resource.excel.ResourceExcelImportListener;
import io.renren.modules.resource.service.ResourceService; import io.renren.modules.resource.service.ResourceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -22,16 +24,21 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList; import javax.servlet.http.HttpServletRequest;
import java.util.Collections; import java.io.File;
import java.util.HashMap; import java.io.IOException;
import java.util.Map; import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* 资源表 * 资源表
@ -74,12 +81,20 @@ public class ResourceController {
@Value("${zsk.catalogIds}") @Value("${zsk.catalogIds}")
private String[] catalogIds; private String[] catalogIds;
@Value("${resource.path}")
private String uploadPath;
@Autowired @Autowired
private ResourceService resourceService; private ResourceService resourceService;
@Autowired @Autowired
private RestTemplate restTemplate; private RestTemplate restTemplate;
@Autowired
private JdbcTemplate jdbcTemplate;
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
private static final Logger logger = LoggerFactory.getLogger(ResourceController.class); private static final Logger logger = LoggerFactory.getLogger(ResourceController.class);
@GetMapping("/page") @GetMapping("/page")
@ -188,6 +203,40 @@ public class ResourceController {
return new Result().ok(dto.getId() == null ? "" : dto.getId()); return new Result().ok(dto.getId() == null ? "" : dto.getId());
} }
@PostMapping("/importResource")
@ApiOperation("导入")
@LogOperation("导入")
@ApiImplicitParams({
@ApiImplicitParam(name = "source", value = "请求来源", paramType = "string", dataType = "string")
})
public Result importResource(@RequestParam("file") MultipartFile uploadFile, HttpServletRequest request) {
List<Map<String, Object>> dept =
jdbcTemplate.queryForList("SELECT id,`name` FROM sys_dept");
logger.info("上传文件:" + uploadFile.getOriginalFilename());
String format = sdf.format(new Date());
File folder = new File(uploadPath + "upload" + File.separator + format);
logger.info(folder.getPath());
if (!folder.isDirectory()) {
folder.mkdirs();
}
// 对上传的文件重命名避免文件重名
String oldName = uploadFile.getOriginalFilename();
String newName = UUID.randomUUID().toString()
+ oldName.substring(oldName.lastIndexOf("."), oldName.length());
try {
// 文件保存
File file = new File(folder, newName);
uploadFile.transferTo(file);
EasyExcel.read(file, new ResourceExcelImportListener(0, dept, resourceService)).sheet(0).headRowNumber(6).doRead();
EasyExcel.read(file, new ResourceExcelImportListener(1, dept, resourceService)).sheet(1).headRowNumber(5).doRead();
EasyExcel.read(file, new ResourceExcelImportListener(2, dept, resourceService)).sheet(2).headRowNumber(5).doRead();
EasyExcel.read(file, new ResourceExcelImportListener(3, dept, resourceService)).sheet(3).headRowNumber(6).doRead();
} catch (IOException e) {
return new Result<String>().error(e.getMessage());
}
return new Result().ok(LocalDateTime.now().toString());
}
@PutMapping("/update") @PutMapping("/update")
@ApiOperation("修改") @ApiOperation("修改")
@LogOperation("修改") @LogOperation("修改")
@ -259,8 +308,14 @@ public class ResourceController {
String startTag = "<ZWCJ_mainPortResult>"; String startTag = "<ZWCJ_mainPortResult>";
String endTag = "</ZWCJ_mainPortResult>"; String endTag = "</ZWCJ_mainPortResult>";
String json = body.substring(body.indexOf(startTag) + startTag.length(), body.indexOf(endTag)); String json = body.substring(body.indexOf(startTag) + startTag.length(), body.indexOf(endTag));
HashMap map = JSONObject.parseObject(json, HashMap.class); List<Map> results = JSONObject.parseObject(json, LinkedList.class);
return new Result().ok(map);
List<Object> objects = results.stream()
.filter(item -> item.get("main") != null)
.map(item -> item.get("main"))
.collect(Collectors.toList());
return new Result().ok(objects);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return new Result().ok(new ArrayList(0)); return new Result().ok(new ArrayList(0));

View File

@ -10,188 +10,192 @@ import java.util.Date;
/** /**
* 资源属性表 * 资源属性表
* *
* @author dg * @author dg
* @since 1.0 2022-04-13 * @since 1.0 2022-04-13
*/ */
@Data @Data
@EqualsAndHashCode(callSuper=false) @EqualsAndHashCode(callSuper = false)
@TableName("tb_data_attr") @TableName("tb_data_attr")
public class AttrEntity implements Serializable{ public class AttrEntity implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId @TableId
private Long id; private Long id;
/** /**
* 资源ID表tb_data_resource主键 * 资源ID表tb_data_resource主键
*/ */
private Long dataResourceId; private Long dataResourceId;
/** /**
* 属性类型 * 属性类型
*/ */
private String attrType; private String attrType;
/** /**
* 属性值 * 属性值
*/ */
private String attrValue; private String attrValue;
/** /**
* 删除标志0:正常使用1:已删除9:其他 * 删除标志0:正常使用1:已删除9:其他
*/ */
private Integer delFlag; private Integer delFlag;
/** /**
* 创建人 * 创建人
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
private Long creator; private Long creator;
/** /**
* 创建时间 * 创建时间
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
private Date createDate; private Date createDate;
/** /**
* 修改人 * 修改人
*/ */
@TableField(fill = FieldFill.INSERT_UPDATE) @TableField(fill = FieldFill.INSERT_UPDATE)
private Long updater; private Long updater;
/** /**
* 更新时间 * 更新时间
*/ */
@TableField(fill = FieldFill.INSERT_UPDATE) @TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateDate; private Date updateDate;
private String note1; private String note1;
private String note2; private String note2;
private String note3; private String note3;
private String note4; private String note4;
private String note5; private String note5;
public Long getId() { public AttrEntity() {
return id; this.delFlag = 0;
} }
public void setId(Long id) { public Long getId() {
this.id = id; return id;
} }
public Long getDataResourceId() { public void setId(Long id) {
return dataResourceId; this.id = id;
} }
public void setDataResourceId(Long dataResourceId) { public Long getDataResourceId() {
this.dataResourceId = dataResourceId; return dataResourceId;
} }
public String getAttrType() { public void setDataResourceId(Long dataResourceId) {
return attrType; this.dataResourceId = dataResourceId;
} }
public void setAttrType(String attrType) { public String getAttrType() {
this.attrType = attrType; return attrType;
} }
public String getAttrValue() { public void setAttrType(String attrType) {
return attrValue; this.attrType = attrType;
} }
public void setAttrValue(String attrValue) { public String getAttrValue() {
this.attrValue = attrValue; return attrValue;
} }
public Integer getDelFlag() { public void setAttrValue(String attrValue) {
return delFlag; this.attrValue = attrValue;
} }
public void setDelFlag(Integer delFlag) { public Integer getDelFlag() {
this.delFlag = delFlag; return delFlag;
} }
public Long getCreator() { public void setDelFlag(Integer delFlag) {
return creator; this.delFlag = delFlag;
} }
public void setCreator(Long creator) { public Long getCreator() {
this.creator = creator; return creator;
} }
public Date getCreateDate() { public void setCreator(Long creator) {
return createDate; this.creator = creator;
} }
public void setCreateDate(Date createDate) { public Date getCreateDate() {
this.createDate = createDate; return createDate;
} }
public Long getUpdater() { public void setCreateDate(Date createDate) {
return updater; this.createDate = createDate;
} }
public void setUpdater(Long updater) { public Long getUpdater() {
this.updater = updater; return updater;
} }
public Date getUpdateDate() { public void setUpdater(Long updater) {
return updateDate; this.updater = updater;
} }
public void setUpdateDate(Date updateDate) { public Date getUpdateDate() {
this.updateDate = updateDate; return updateDate;
} }
public String getNote1() { public void setUpdateDate(Date updateDate) {
return note1; this.updateDate = updateDate;
} }
public void setNote1(String note1) { public String getNote1() {
this.note1 = note1; return note1;
} }
public String getNote2() { public void setNote1(String note1) {
return note2; this.note1 = note1;
} }
public void setNote2(String note2) { public String getNote2() {
this.note2 = note2; return note2;
} }
public String getNote3() { public void setNote2(String note2) {
return note3; this.note2 = note2;
} }
public void setNote3(String note3) { public String getNote3() {
this.note3 = note3; return note3;
} }
public String getNote4() { public void setNote3(String note3) {
return note4; this.note3 = note3;
} }
public void setNote4(String note4) { public String getNote4() {
this.note4 = note4; return note4;
} }
public String getNote5() { public void setNote4(String note4) {
return note5; this.note4 = note4;
} }
public void setNote5(String note5) { public String getNote5() {
this.note5 = note5; return note5;
} }
@Override public void setNote5(String note5) {
public String toString() { this.note5 = note5;
return "AttrEntity{" + }
"id=" + id +
", dataResourceId=" + dataResourceId + @Override
", attrType='" + attrType + '\'' + public String toString() {
", attrValue='" + attrValue + '\'' + return "AttrEntity{" +
", delFlag=" + delFlag + "id=" + id +
", creator=" + creator + ", dataResourceId=" + dataResourceId +
", createDate=" + createDate + ", attrType='" + attrType + '\'' +
", updater=" + updater + ", attrValue='" + attrValue + '\'' +
", updateDate=" + updateDate + ", delFlag=" + delFlag +
", note1='" + note1 + '\'' + ", creator=" + creator +
", note2='" + note2 + '\'' + ", createDate=" + createDate +
", note3='" + note3 + '\'' + ", updater=" + updater +
", note4='" + note4 + '\'' + ", updateDate=" + updateDate +
", note5='" + note5 + '\'' + ", note1='" + note1 + '\'' +
'}'; ", note2='" + note2 + '\'' +
} ", note3='" + note3 + '\'' +
", note4='" + note4 + '\'' +
", note5='" + note5 + '\'' +
'}';
}
} }

View File

@ -0,0 +1,351 @@
package io.renren.modules.resource.excel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import io.renren.modules.resource.dto.ResourceDTO;
import io.renren.modules.resource.entity.AttrEntity;
import io.renren.modules.resource.service.ResourceService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
/**
* 导入资源
*/
public class ResourceExcelImportListener extends AnalysisEventListener<Map<Integer, String>> {
private static final Logger logger = LoggerFactory.getLogger(ResourceExcelImportListener.class);
private int BATCH_COUNT = Runtime.getRuntime().availableProcessors() * 10;
private int sheet = 1; // 读取excel sheet
private List<Map<String, Object>> deptList; // 部门信息
private ResourceService resourceService;
private List<Map<Integer, String>> list = new ArrayList<>();
Map<Integer, String> headMap = null;
public ResourceExcelImportListener(int sheet, List<Map<String, Object>> deptList, ResourceService resourceService) {
this.sheet = sheet;
this.deptList = deptList;
this.resourceService = resourceService;
}
/**
* When analysis one row trigger invoke function.
*
* @param data one row value. Is is same as {@link AnalysisContext#readRowHolder()}
* @param context analysis context
*/
@Override
public void invoke(Map<Integer, String> data, AnalysisContext context) {
list.add(data);
if (list.size() > BATCH_COUNT) {
dealDate();
list.clear();
}
}
/**
* if have something to do after all analysis
*
* @param context
*/
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
dealDate();
}
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
if (this.headMap == null) {
this.headMap = headMap;
}
logger.info("sheet:" + sheet + "解析到一条头数据:{}", JSON.toJSONString(headMap));
}
/**
* 处理数据
*/
private void dealDate() {
list.stream().map(index -> {
Optional<Map<String, Object>> deptOptional =
deptList.stream().filter(dept -> index.values().contains(dept.getOrDefault("name", "").toString())).findAny();
if (!deptOptional.isPresent()) {
logger.info("找不到部门:{}", index.toString());
return null;
}
ResourceDTO resourceDTO = new ResourceDTO();
switch (sheet) {
case 0: // 需要跳过前6行
resourceDTO = getResourceDTO(resourceDTO, index, 0, Long.valueOf(deptOptional.get().get("id").toString()));
break;
case 1:
resourceDTO = getResourceDTO(resourceDTO, index, 1, Long.valueOf(deptOptional.get().get("id").toString()));
break;
case 2:
resourceDTO = getResourceDTO(resourceDTO, index, 2, Long.valueOf(deptOptional.get().get("id").toString()));
break;
case 3:
resourceDTO = getResourceDTO(resourceDTO, index, 3, Long.valueOf(deptOptional.get().get("id").toString()));
break;
default:
logger.error("不支持该sheet");
}
return resourceDTO;
}).filter(index -> index != null && StringUtils.isNotEmpty(index.getName())).forEach(index -> {
resourceService.insertWithAttrs(index);
logger.info("完成导入:{}", index.getName());
});
}
/**
* @param resourceDTO
* @return 获取导入对应参数
*/
private ResourceDTO getResourceDTO(ResourceDTO resourceDTO, Map<Integer, String> date, int sheet, Long deptId) {
List<AttrEntity> infoList = new ArrayList<>();
resourceDTO.setCreateDate(new Date());
switch (sheet) {
case 0: {
resourceDTO.setType("应用资源");
resourceDTO.setName(date.get(0));
AttrEntity attrEntity1 = new AttrEntity();
attrEntity1.setAttrType("应用状态");
attrEntity1.setAttrValue(date.get(1));
infoList.add(attrEntity1); // 应用状态
AttrEntity attrEntity2 = new AttrEntity();
attrEntity2.setAttrType("应用类型");
attrEntity2.setAttrValue(date.get(2));
infoList.add(attrEntity2); // 应用类型
AttrEntity attrEntity3 = new AttrEntity();
attrEntity3.setAttrType("应用领域");
attrEntity3.setAttrValue(date.get(3));
infoList.add(attrEntity3); // 应用领域
resourceDTO.setDescription(date.get(4)); // 描述
AttrEntity attrEntity4 = new AttrEntity();
attrEntity4.setAttrType("发布端");
attrEntity4.setAttrValue(date.get(5));
infoList.add(attrEntity4); // 发布端
resourceDTO.setDeptName(date.get(6));
resourceDTO.setDeptContacts(date.get(7)); // 部门联系人
resourceDTO.setDeptPhone(date.get(8)); // 部门联系人电话
AttrEntity attrEntity5 = new AttrEntity();
attrEntity5.setAttrType("应用展示视频");
attrEntity5.setAttrValue(date.get(9));
infoList.add(attrEntity5); // 应用展示视频
AttrEntity attrEntity6 = new AttrEntity();
attrEntity6.setAttrType("应用图片");
attrEntity6.setAttrValue(date.get(10));
infoList.add(attrEntity6); // 应用图片
AttrEntity attrEntity7 = new AttrEntity();
attrEntity7.setAttrType("功能介绍");
attrEntity7.setAttrValue(date.get(11));
infoList.add(attrEntity7); // 功能介绍
AttrEntity attrEntity8 = new AttrEntity();
attrEntity8.setAttrType("部署区域");
attrEntity8.setAttrValue(date.get(12));
infoList.add(attrEntity8); // 部署区域
AttrEntity attrEntity9 = new AttrEntity();
attrEntity9.setAttrType("是否统一登录");
attrEntity9.setAttrValue(date.get(13));
infoList.add(attrEntity9); // 是否统一登录
resourceDTO.setLink(date.get(14)); // 访问地址
resourceDTO.setShareCondition(date.get(15)); // 共享条件
resourceDTO.setShareMode(date.get(16)); // 共享类型
resourceDTO.setShareType(null);
AttrEntity attrEntity10 = new AttrEntity();
attrEntity10.setAttrType("等保定级");
attrEntity10.setAttrValue(date.get(17));
infoList.add(attrEntity10); // 等保定级
AttrEntity attrEntity11 = new AttrEntity();
attrEntity11.setAttrType("是否等保备案");
attrEntity11.setAttrValue(date.get(18));
infoList.add(attrEntity11); // 是否等保备案
AttrEntity attrEntity12 = new AttrEntity();
attrEntity12.setAttrType("服务商");
attrEntity12.setAttrValue(date.get(19));
infoList.add(attrEntity12); // 服务商
AttrEntity attrEntity13 = new AttrEntity();
attrEntity13.setAttrType("服务商联系人");
attrEntity13.setAttrValue(date.get(20));
infoList.add(attrEntity13); // 服务商联系人
AttrEntity attrEntity14 = new AttrEntity();
attrEntity14.setAttrType("服务商联系电话");
attrEntity14.setAttrValue(date.get(21));
infoList.add(attrEntity14); // 服务商联系人
AttrEntity attrEntity15 = new AttrEntity();
attrEntity15.setAttrType("常见问题");
attrEntity15.setAttrValue(date.get(22));
infoList.add(attrEntity15); // 常见问题
}
break;
case 1: {
resourceDTO.setType("组件服务");
resourceDTO.setName(date.get(0));
AttrEntity attrEntity1 = new AttrEntity();
attrEntity1.setAttrType("算法类别");
attrEntity1.setAttrValue(date.get(1));
infoList.add(attrEntity1); // 算法类别
AttrEntity attrEntity2 = new AttrEntity();
attrEntity2.setAttrType("是否免批");
attrEntity2.setAttrValue(date.get(2));
infoList.add(attrEntity2); // 算法类别
AttrEntity attrEntity3 = new AttrEntity();
attrEntity3.setAttrType("使用方式");
attrEntity3.setAttrValue(date.get(3));
infoList.add(attrEntity3); // 使用方式
AttrEntity attrEntity4 = new AttrEntity();
attrEntity4.setAttrType("部署位置");
attrEntity4.setAttrValue(date.get(4));
infoList.add(attrEntity4); // 部署位置
AttrEntity attrEntity5 = new AttrEntity();
attrEntity5.setAttrType("应用领域");
attrEntity5.setAttrValue(date.get(5));
infoList.add(attrEntity5); // 应用领域
resourceDTO.setShareCondition(date.get(6)); // 共享条件
resourceDTO.setShareMode(date.get(7)); // 共享类型
resourceDTO.setShareType(null);
resourceDTO.setDescription(date.get(8));
AttrEntity attrEntity6 = new AttrEntity();
attrEntity6.setAttrType("算法介绍视频");
attrEntity6.setAttrValue(date.get(9));
infoList.add(attrEntity5); // 应用领域
AttrEntity attrEntity7 = new AttrEntity();
attrEntity7.setAttrType("服务商");
attrEntity7.setAttrValue(date.get(10));
infoList.add(attrEntity7); // 服务商
AttrEntity attrEntity8 = new AttrEntity();
attrEntity8.setAttrType("服务商联系人");
attrEntity8.setAttrValue(date.get(11));
infoList.add(attrEntity8); // 服务商联系人
AttrEntity attrEntity9 = new AttrEntity();
attrEntity9.setAttrType("服务商联系电话");
attrEntity9.setAttrValue(date.get(12));
infoList.add(attrEntity9); // 服务商联系人
AttrEntity attrEntity10 = new AttrEntity();
attrEntity10.setAttrType("关联应用");
attrEntity10.setAttrValue(date.get(13));
infoList.add(attrEntity10); // 关联应用
AttrEntity attrEntity11 = new AttrEntity();
attrEntity11.setAttrType("算法优势");
attrEntity11.setAttrValue(date.get(14));
infoList.add(attrEntity11); // 算法优势
AttrEntity attrEntity12 = new AttrEntity();
attrEntity12.setAttrType("应用场景");
attrEntity12.setAttrValue(date.get(15));
infoList.add(attrEntity12); // 应用场景
resourceDTO.setLink(date.get(16));
resourceDTO.setApiMethodType(date.get(17));
AttrEntity attrEntity13 = new AttrEntity();
attrEntity13.setAttrType("技术文档");
attrEntity13.setAttrValue(date.get(18));
infoList.add(attrEntity13); // 技术文档
AttrEntity attrEntity14 = new AttrEntity();
attrEntity14.setAttrType("试用地址");
attrEntity14.setAttrValue(date.get(19));
infoList.add(attrEntity14); // 试用地址
AttrEntity attrEntity15 = new AttrEntity();
attrEntity15.setAttrType("是否收费");
attrEntity15.setAttrValue(date.get(20));
infoList.add(attrEntity15); // 是否收费
AttrEntity attrEntity16 = new AttrEntity();
attrEntity16.setAttrType("计费标准信息");
attrEntity16.setAttrValue(date.get(21));
infoList.add(attrEntity16); // 计费标准信息
AttrEntity attrEntity17 = new AttrEntity();
attrEntity17.setAttrType("常见问题");
attrEntity17.setAttrValue(date.get(22));
infoList.add(attrEntity17); // 常见问题
}
break;
case 2: {
resourceDTO.setType("知识库");
resourceDTO.setName(date.get(0));
resourceDTO.setLink(date.get(1));
resourceDTO.setDescription(date.get(2));
Date createDate = new Date(Long.parseLong(date.get(4)));
resourceDTO.setCreateDate(createDate);
AttrEntity attrEntity = new AttrEntity();
attrEntity.setAttrType("文件类型");
attrEntity.setAttrValue(date.get(6));
infoList.add(attrEntity);
this.headMap.keySet().stream().sorted().skip(6).forEach(key -> { // 表头后6个
AttrEntity attrEntity_ = new AttrEntity();
attrEntity_.setAttrType(this.headMap.get(key));
attrEntity_.setAttrValue(date.get(key));
infoList.add(attrEntity_);
});
}
case 3: {
resourceDTO.setType("基础设施");
resourceDTO.setName(date.get(0));
this.headMap.keySet().stream().sorted().skip(1).forEach(key -> { // 表头后1个
AttrEntity attrEntity_ = new AttrEntity();
attrEntity_.setAttrType(this.headMap.get(key));
attrEntity_.setAttrValue(date.get(key));
infoList.add(attrEntity_);
});
}
break;
}
resourceDTO.setInfoList(infoList);
resourceDTO.setDelFlag(0);
resourceDTO.setDeptId(deptId); // 所属部门
return resourceDTO;
}
}

View File

@ -34,9 +34,9 @@ spring:
wall: wall:
config: config:
multi-statement-allow: true multi-statement-allow: true
# 生产环境默认关掉flyway # 生产环境默认关掉flyway
flyway: flyway:
enable: false enabled: false
#上传的静态资源配置 #上传的静态资源配置
resource: resource:
root_url: 15.72.183.90 root_url: 15.72.183.90
@ -51,7 +51,7 @@ big_date:
hisense: hisense:
gateway: gateway:
url: http://15.72.184.7:8080 url: http://15.72.184.7:8080
qdyjj: qdyjj:
ipAndPort: 15.72.178.136:9494 ipAndPort: 15.72.178.136:9494