update 企业标准年度制修订计划导入导出 改用模板
This commit is contained in:
+31
-12
@@ -3,10 +3,15 @@ package com.jero.modules.activiti.process.annualinit.controller;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.aspect.annotation.DictPoint;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.util.FileUtils;
|
||||
import com.jero.common.util.ZipUtil;
|
||||
import com.jero.modules.activiti.process.annualinit.entity.ProcessAnnualInitLink;
|
||||
import com.jero.modules.activiti.process.annualinit.service.ProcessAnnualInitLinkService;
|
||||
import com.jero.modules.activiti.process.annualinit.vo.ProcessAnnualInitLinkExcelVO;
|
||||
import com.jero.modules.laws.club.vo.excel.LawsClubJoinTeamExcel;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.system.vo.IdMapBody;
|
||||
@@ -14,6 +19,9 @@ import com.jero.modules.system.vo.IdsMapBody;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@@ -26,6 +34,8 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -46,8 +56,6 @@ public class ProcessAnnualInitLinkController extends JeroController<ProcessAnnua
|
||||
*/
|
||||
@Resource
|
||||
private ProcessAnnualInitLinkService processAnnualInitLinkService;
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
@@ -160,9 +168,24 @@ public class ProcessAnnualInitLinkController extends JeroController<ProcessAnnua
|
||||
*/
|
||||
@ApiOperation(value = "年度制修订计划流程关联标准-下载导入模板")
|
||||
@GetMapping(value = "/exportTemplate")
|
||||
public ModelAndView exportTemplate(HttpServletRequest req, ProcessAnnualInitLink processAnnualInitLink) {
|
||||
List<ProcessAnnualInitLink> records = new ArrayList<>();
|
||||
return super.exportListXls(records, ProcessAnnualInitLink.class, "年度制修订计划流程关联标准");
|
||||
public void exportTemplate(HttpServletResponse response) {
|
||||
ClassPathResource resource = new ClassPathResource("excelTemplate/企业标准年度制修订计划导入.xls");
|
||||
// 设置HTTP响应头,包括文件大小和内容类型
|
||||
response.setContentType("application/force-download");// 设置强制下载不打开
|
||||
response.addHeader("Content-Disposition", "attachment;fileName=" + new String("企业标准年度制修订计划导入.xls".getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
|
||||
try (InputStream inputStream = resource.getInputStream();
|
||||
OutputStream outputStream = response.getOutputStream()
|
||||
) {
|
||||
byte[] buf = new byte[1024];
|
||||
int len;
|
||||
while ((len = inputStream.read(buf)) > 0) {
|
||||
outputStream.write(buf, 0, len);
|
||||
}
|
||||
response.flushBuffer();
|
||||
} catch (Exception e) {
|
||||
response.setStatus(404);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -171,13 +194,9 @@ public class ProcessAnnualInitLinkController extends JeroController<ProcessAnnua
|
||||
@DictPoint
|
||||
@ApiOperation(value = "年度制修订计划流程关联标准-通过excel导入数据")
|
||||
@PostMapping(value = "/importExcel")
|
||||
public Result<List<ProcessAnnualInitLink>> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||
List<ProcessAnnualInitLink> excelData = super.getExcelData(request, ProcessAnnualInitLink.class);
|
||||
for (ProcessAnnualInitLink excelDatum : excelData) {
|
||||
String standardNumber = excelDatum.getStandardNumber();
|
||||
LawsEnterpriseStandard lawsEnterpriseStandard = enterpriseStandardService.queryByStandardNumber(standardNumber);
|
||||
excelDatum.setStandardId(lawsEnterpriseStandard.getId());
|
||||
}
|
||||
public Result<List<ProcessAnnualInitLinkExcelVO>> importExcel(HttpServletRequest request) {
|
||||
|
||||
List<ProcessAnnualInitLinkExcelVO> excelData = processAnnualInitLinkService.importExcel(request);
|
||||
return Result.OK(excelData);
|
||||
}
|
||||
|
||||
|
||||
+8
-8
@@ -40,7 +40,7 @@ public class ProcessAnnualInitLink implements Serializable {
|
||||
* 制修订类别
|
||||
*/
|
||||
@ApiModelProperty(value = "制修订类别")
|
||||
@Excel(name = "制修订类别", width = 15, dicCode = "esp_revision_type")
|
||||
@Excel(name = "*制修订类型", width = 15, dicCode = "esp_revision_type")
|
||||
@Dict(dicCode = "esp_revision_type")
|
||||
private String revisionType;
|
||||
/**
|
||||
@@ -52,19 +52,19 @@ public class ProcessAnnualInitLink implements Serializable {
|
||||
* 标准编号
|
||||
*/
|
||||
@ApiModelProperty(value = "标准编号")
|
||||
@Excel(name = "标准编号", width = 15)
|
||||
@Excel(name = "*企标编号", width = 15)
|
||||
private String standardNumber;
|
||||
/**
|
||||
* 标准名称
|
||||
*/
|
||||
@ApiModelProperty(value = "标准名称")
|
||||
@Excel(name = "标准名称", width = 15)
|
||||
@Excel(name = "*企标名称", width = 15)
|
||||
private String standardName;
|
||||
/**
|
||||
* 起草人
|
||||
*/
|
||||
@ApiModelProperty(value = "起草人")
|
||||
@Excel(name = "起草人", width = 15, dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')", dicCode = "id")
|
||||
@Excel(name = "*起草人", width = 15, dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')", dicCode = "id")
|
||||
@Dict(dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')", dicCode = "id")
|
||||
private String mainDraftingUser;
|
||||
/**
|
||||
@@ -77,21 +77,21 @@ public class ProcessAnnualInitLink implements Serializable {
|
||||
* 所在部门id
|
||||
*/
|
||||
@ApiModelProperty(value = "所在部门id")
|
||||
@Excel(name = "所在部门", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
|
||||
@Excel(name = "*所在部门", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
|
||||
@Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
|
||||
private String departId;
|
||||
/**
|
||||
* 专业模块
|
||||
*/
|
||||
@ApiModelProperty(value = "专业模块")
|
||||
@Excel(name = "专业模块", width = 15, dicCode = "professional_module")
|
||||
@Excel(name = "*专业模块", width = 15, dicCode = "professional_module")
|
||||
@Dict(dicCode = "professional_module")
|
||||
private String professionalModule;
|
||||
/**
|
||||
* 初稿完成日期
|
||||
*/
|
||||
@ApiModelProperty(value = "初稿完成日期")
|
||||
@Excel(name = "初稿完成日期", width = 15, format = "yyyy-MM-dd")
|
||||
@Excel(name = "*初稿完成日期", width = 15, format = "yyyy-MM-dd")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date draftCompleteDate;
|
||||
@@ -99,7 +99,7 @@ public class ProcessAnnualInitLink implements Serializable {
|
||||
* 计划归档日期
|
||||
*/
|
||||
@ApiModelProperty(value = "计划归档日期")
|
||||
@Excel(name = "计划归档日期", width = 15, format = "yyyy-MM-dd")
|
||||
@Excel(name = "*计划归档日期", width = 15, format = "yyyy-MM-dd")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date planArchivingDate;
|
||||
|
||||
+181
@@ -2,12 +2,21 @@ package com.jero.modules.activiti.process.annualinit.service;
|
||||
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.DictModel;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.modules.activiti.process.annualinit.entity.ProcessAnnualInitLink;
|
||||
import com.jero.modules.activiti.process.annualinit.mapper.ProcessAnnualInitLinkMapper;
|
||||
import com.jero.modules.activiti.process.annualinit.vo.ProcessAnnualInitLinkExcelVO;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -17,9 +26,15 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -35,6 +50,8 @@ public class ProcessAnnualInitLinkService extends ServiceImpl<ProcessAnnualInitL
|
||||
private ProcessAnnualInitLinkMapper processAnnualInitLinkMapper;
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||
|
||||
public IPage<ProcessAnnualInitLink> pageList(Page<ProcessAnnualInitLink> page, ProcessAnnualInitLink processAnnualInitLink, HttpServletRequest req) {
|
||||
QueryWrapper<ProcessAnnualInitLink> queryWrapper = QueryGenerator.initQueryWrapper(processAnnualInitLink, req.getParameterMap());
|
||||
@@ -74,5 +91,169 @@ public class ProcessAnnualInitLinkService extends ServiceImpl<ProcessAnnualInitL
|
||||
ProcessAnnualInitLink processAnnualInitLink = this.getById(id);
|
||||
return processAnnualInitLink;
|
||||
}
|
||||
|
||||
public List<ProcessAnnualInitLinkExcelVO> importExcel(HttpServletRequest request) {
|
||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
||||
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
||||
// 获取上传文件对象
|
||||
MultipartFile file = entity.getValue();
|
||||
//校验文件名
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
if (originalFilename != null) {
|
||||
String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
|
||||
if (!".xlsx".equals(substring)&&!".xls".equals(substring)) {
|
||||
throw new JeroBootException("文件类型错误:" + "请上传.xlsx或.xls文件!");
|
||||
}
|
||||
} else {
|
||||
throw new JeroBootException("文件错误:" + "文件名丢失,请上传正确的文件!");
|
||||
}
|
||||
ImportParams params = new ImportParams();
|
||||
params.setSheetNum(1);
|
||||
params.setHeadRows(1);
|
||||
try {
|
||||
//导入Excel格式校验,看匹配的字段文本概率
|
||||
Boolean t = ExcelImportCheckUtil.check(file.getInputStream(), ProcessAnnualInitLinkExcelVO.class, params);
|
||||
if (t == null) {
|
||||
throw new JeroBootException("导入数据为空!");
|
||||
}
|
||||
if(!t){
|
||||
throw new JeroBootException("文件格式有误,请下载模板后上传 !");
|
||||
}
|
||||
List<ProcessAnnualInitLinkExcelVO> excelList = ExcelImportUtil.importExcel(file.getInputStream(), ProcessAnnualInitLinkExcelVO.class, params);
|
||||
excelList = excelList.stream().skip(2).filter(item -> !Objects.isNull(item)).collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(excelList)) {
|
||||
throw new JeroBootException("没有数据可导入");
|
||||
}
|
||||
StringBuilder msg = validateExcelData(excelList); // 校验数据
|
||||
if (StringUtils.isNotEmpty(msg.toString())) {
|
||||
throw new JeroBootException(msg.toString());
|
||||
}
|
||||
for (ProcessAnnualInitLinkExcelVO excelDatum : excelList) {
|
||||
String standardNumber = excelDatum.getStandardNumber();
|
||||
LawsEnterpriseStandard lawsEnterpriseStandard = enterpriseStandardService.queryByStandardNumber(standardNumber);
|
||||
excelDatum.setStandardId(lawsEnterpriseStandard.getId());
|
||||
}
|
||||
return excelList;
|
||||
} catch (Exception e) {
|
||||
if(Objects.isNull(e.getMessage())){
|
||||
throw new JeroBootException("文件导入失败:请填写内容标题!");
|
||||
}
|
||||
log.error("文件导入失败:",e);
|
||||
throw new JeroBootException("文件导入失败:" + e.getMessage());
|
||||
} finally {
|
||||
try {
|
||||
file.getInputStream().close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private StringBuilder validateExcelData(List<ProcessAnnualInitLinkExcelVO> excelList) {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
//日期格式
|
||||
String users = excelList.stream().map(ProcessAnnualInitLinkExcelVO::getMainDraftingUser).collect(Collectors.joining(","));
|
||||
List<DictModel> dictModels = sysBaseAPI.translateDictFromTableByKeys("sys_user", "id", "CONCAT(realname, '(', username, ')')", users);
|
||||
Map<String, String> userMap = CollStreamUtil.toMap(dictModels, DictModel::getValue, DictModel::getText);
|
||||
List<DictModel> dictModels0 = sysBaseAPI.translateDictFromTableByKeys("sys_user", "email", "CONCAT(realname, '(', username, ')')", users);
|
||||
Map<String, String> emailMap = CollStreamUtil.toMap(dictModels0, DictModel::getValue, DictModel::getText);
|
||||
List<DictModel> dictModels1 = sysBaseAPI.getDictItems("esp_revision_type");
|
||||
Map<String, String> espRevisionTypeMap = CollStreamUtil.toMap(dictModels1, DictModel::getText, DictModel::getValue);
|
||||
|
||||
String departs = excelList.stream().map(ProcessAnnualInitLinkExcelVO::getDepartId).collect(Collectors.joining(","));
|
||||
List<DictModel> dictModels2 = sysBaseAPI.translateDictFromTableByKeys("sys_depart", "id", "depart_name", departs);
|
||||
Map<String, String> departMap = CollStreamUtil.toMap(dictModels2, DictModel::getValue, DictModel::getText);
|
||||
|
||||
List<DictModel> dictModels3 = sysBaseAPI.getDictItems("professional_module");
|
||||
Map<String, String> professionalModuleMap = CollStreamUtil.toMap(dictModels3, DictModel::getText, DictModel::getValue);
|
||||
|
||||
List<DictModel> dictModels4 = sysBaseAPI.getDictItems("yn");
|
||||
Map<String, String> ynMap = CollStreamUtil.toMap(dictModels4, DictModel::getText, DictModel::getValue);
|
||||
|
||||
for (int i = 0; i < excelList.size(); i++) {
|
||||
StringBuilder msgSub = new StringBuilder();
|
||||
ProcessAnnualInitLinkExcelVO excelVO = excelList.get(i);
|
||||
String revisionType = excelVO.getRevisionType();
|
||||
if (StringUtils.isBlank(revisionType)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "制修订类型不能为空;");
|
||||
}else if (!espRevisionTypeMap.containsKey(revisionType)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "制修订类型不存在;");
|
||||
}else {
|
||||
excelVO.setRevisionType(espRevisionTypeMap.get(revisionType));
|
||||
}
|
||||
String standardNumber = excelVO.getStandardNumber();
|
||||
LawsEnterpriseStandard lawsEnterpriseStandard = enterpriseStandardService.queryByStandardNumber(standardNumber);
|
||||
if (lawsEnterpriseStandard != null){
|
||||
excelVO.setStandardId(lawsEnterpriseStandard.getId());
|
||||
}
|
||||
String standardName = excelVO.getStandardName();
|
||||
|
||||
String mainDraftingUser = excelVO.getMainDraftingUser();
|
||||
if (StringUtils.isBlank(mainDraftingUser)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "起草人不能为空;");
|
||||
}else if (!userMap.containsKey(mainDraftingUser)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "起草人不存在;");
|
||||
}else {
|
||||
excelVO.setMainDraftingUser(userMap.get(mainDraftingUser));
|
||||
excelVO.setEmail(PasswordUtil.decrypt(emailMap.get(mainDraftingUser)));
|
||||
}
|
||||
String departId = excelVO.getDepartId();
|
||||
if (StringUtils.isBlank(departId)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "所在部门不能为空;");
|
||||
}else if (!departMap.containsKey(departId)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "所在部门不存在;");
|
||||
}else {
|
||||
excelVO.setDepartId(departMap.get(departId));
|
||||
}
|
||||
|
||||
String professionalModule = excelVO.getProfessionalModule();
|
||||
if (StringUtils.isBlank(professionalModule)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "专业模块不能为空;");
|
||||
}else if (!professionalModuleMap.containsKey(professionalModule)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "专业模块不存在;");
|
||||
}else {
|
||||
excelVO.setProfessionalModule(professionalModuleMap.get(professionalModule));
|
||||
}
|
||||
String draftCompleteDate = excelVO.getDraftCompleteDate();
|
||||
if (StringUtils.isBlank(draftCompleteDate)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "初稿完成日期不能为空;");
|
||||
}else {
|
||||
try {
|
||||
LocalDate.parse(draftCompleteDate);
|
||||
} catch (Exception e) {
|
||||
msgSub.append("第" + (i + 4) + "行" + "初稿完成日期格式不正确,应为yyyy-MM-dd;");
|
||||
}
|
||||
}
|
||||
String planArchivingDate = excelVO.getPlanArchivingDate();
|
||||
if (StringUtils.isBlank(planArchivingDate)){
|
||||
msgSub.append("第" + (i + 4) + "行" + "计划归档日期不能为空;");
|
||||
}else {
|
||||
try {
|
||||
LocalDate.parse(planArchivingDate);
|
||||
} catch (Exception e) {
|
||||
msgSub.append("第" + (i + 4) + "行" + "计划归档日期格式不正确,应为yyyy-MM-dd;");
|
||||
}
|
||||
}
|
||||
String haveEnglishVersion = excelVO.getHaveEnglishVersion();
|
||||
if (StringUtils.isNotBlank(haveEnglishVersion)){
|
||||
if (ynMap.containsKey(haveEnglishVersion)){
|
||||
excelVO.setHaveEnglishVersion(ynMap.get(haveEnglishVersion));
|
||||
}else {
|
||||
msgSub.append("第" + (i + 4) + "行" + "是否有英文版不存在;");
|
||||
}
|
||||
}
|
||||
String committee = excelVO.getCommittee();
|
||||
if (StringUtils.isNotBlank(committee)&&committee.length()>500){
|
||||
msgSub.append("第" + (i + 4) + "行" + "所属技术委员会最大为500字符;");
|
||||
}
|
||||
if (msgSub.length() > 0) {
|
||||
msg.append(msgSub).append("</br>");
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
package com.jero.modules.activiti.process.annualinit.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 年度制修订计划流程关联标准 Excel导入VO
|
||||
*
|
||||
* @author lijiarao
|
||||
* @since 2024-09-24 14:30:21
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "ProcessAnnualInitLinkExcelVO", description = "年度制修订计划流程关联标准 Excel导入VO")
|
||||
public class ProcessAnnualInitLinkExcelVO implements Serializable {
|
||||
private static final long serialVersionUID = 647513571439825961L;
|
||||
/**
|
||||
* 制修订类别
|
||||
*/
|
||||
@ApiModelProperty(value = "制修订类别")
|
||||
@Excel(name = "*制修订类型", width = 15)
|
||||
@Dict(dicCode = "esp_revision_type")
|
||||
private String revisionType;
|
||||
/**
|
||||
* 标准id
|
||||
*/
|
||||
@ApiModelProperty(value = "标准id")
|
||||
private String standardId;
|
||||
/**
|
||||
* 标准编号
|
||||
*/
|
||||
@ApiModelProperty(value = "标准编号")
|
||||
@Excel(name = "*企标编号", width = 15)
|
||||
private String standardNumber;
|
||||
/**
|
||||
* 标准名称
|
||||
*/
|
||||
@ApiModelProperty(value = "标准名称")
|
||||
@Excel(name = "*企标名称", width = 15)
|
||||
private String standardName;
|
||||
/**
|
||||
* 起草人
|
||||
*/
|
||||
@ApiModelProperty(value = "起草人")
|
||||
@Excel(name = "*起草人", width = 15)
|
||||
@Dict(dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')", dicCode = "id")
|
||||
private String mainDraftingUser;
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "邮箱")
|
||||
private String email;
|
||||
/**
|
||||
* 所在部门id
|
||||
*/
|
||||
@ApiModelProperty(value = "所在部门id")
|
||||
@Excel(name = "*所在部门")
|
||||
@Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
|
||||
private String departId;
|
||||
/**
|
||||
* 专业模块
|
||||
*/
|
||||
@ApiModelProperty(value = "专业模块")
|
||||
@Excel(name = "*专业模块", width = 15)
|
||||
@Dict(dicCode = "professional_module")
|
||||
private String professionalModule;
|
||||
/**
|
||||
* 初稿完成日期
|
||||
*/
|
||||
@ApiModelProperty(value = "初稿完成日期")
|
||||
@Excel(name = "*初稿完成日期", width = 15)
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private String draftCompleteDate;
|
||||
/**
|
||||
* 计划归档日期
|
||||
*/
|
||||
@ApiModelProperty(value = "计划归档日期")
|
||||
@Excel(name = "*计划归档日期", width = 15)
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private String planArchivingDate;
|
||||
/**
|
||||
* 是否有英文版
|
||||
*/
|
||||
@ApiModelProperty(value = "是否有英文版")
|
||||
@Excel(name = "是否有英文版", width = 15)
|
||||
@Dict(dicCode = "yn")
|
||||
private String haveEnglishVersion;
|
||||
/**
|
||||
* 所属技术委员会
|
||||
*/
|
||||
@ApiModelProperty(value = "所属技术委员会")
|
||||
@Excel(name = "所属技术委员会", width = 15)
|
||||
private String committee;
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user