认证-参数项导入
This commit is contained in:
+24
-15
@@ -8,9 +8,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.aspect.annotation.AutoLog;
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
import com.jero.common.system.base.controller.JeroController;
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
import com.jero.modules.cert.template.vo.ParamsInfoVO;
|
|
||||||
import com.jero.modules.cert.template.entity.ParamsInfoEO;
|
import com.jero.modules.cert.template.entity.ParamsInfoEO;
|
||||||
import com.jero.modules.cert.template.service.IParamsInfoEOService;
|
import com.jero.modules.cert.template.service.IParamsInfoEOService;
|
||||||
|
import com.jero.modules.cert.template.vo.ParamsInfoVO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -18,6 +18,7 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -57,7 +58,8 @@ public class ParamsInfoEOController extends JeroController<ParamsInfoEO, IParams
|
|||||||
@RequestParam(name="cut") String cut,
|
@RequestParam(name="cut") String cut,
|
||||||
HttpServletRequest req) {
|
HttpServletRequest req) {
|
||||||
LambdaQueryWrapper<ParamsInfoEO> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ParamsInfoEO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.like(StringUtils.isNotEmpty(paramsInfoEO.getNioNumber()), ParamsInfoEO::getNioNumber, paramsInfoEO.getNioNumber())
|
queryWrapper.eq(ParamsInfoEO::getParamsTemplateId, paramsInfoEO.getParamsTemplateId())
|
||||||
|
.like(StringUtils.isNotEmpty(paramsInfoEO.getNioNumber()), ParamsInfoEO::getNioNumber, paramsInfoEO.getNioNumber())
|
||||||
.like(StringUtils.isNotEmpty(paramsInfoEO.getParamsName()), ParamsInfoEO::getParamsName, paramsInfoEO.getParamsName())
|
.like(StringUtils.isNotEmpty(paramsInfoEO.getParamsName()), ParamsInfoEO::getParamsName, paramsInfoEO.getParamsName())
|
||||||
.eq(StringUtils.isNotEmpty(paramsInfoEO.getDutyTerritory()), ParamsInfoEO::getDutyTerritory, paramsInfoEO.getDutyTerritory())
|
.eq(StringUtils.isNotEmpty(paramsInfoEO.getDutyTerritory()), ParamsInfoEO::getDutyTerritory, paramsInfoEO.getDutyTerritory())
|
||||||
.orderByDesc(ParamsInfoEO::getCreateTime);
|
.orderByDesc(ParamsInfoEO::getCreateTime);
|
||||||
@@ -190,12 +192,14 @@ public class ParamsInfoEOController extends JeroController<ParamsInfoEO, IParams
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出excel
|
* 导出zip
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param parameter
|
* @param parameter
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/exportParamsInfoZip")
|
@AutoLog(value = "参数项基本信息表-导出")
|
||||||
|
@ApiOperation(value = "参数项基本信息表-导出", notes="参数项基本信息表-导出")
|
||||||
|
@PostMapping(value = "/exportParamsInfoZip")
|
||||||
public void exportParamsInfoZip(@RequestParam(value = "cut") String cut,
|
public void exportParamsInfoZip(@RequestParam(value = "cut") String cut,
|
||||||
@RequestParam(value = "exportName", required = false) String exportName,
|
@RequestParam(value = "exportName", required = false) String exportName,
|
||||||
@RequestParam(value = "paramsInfoVO", required = false) String parameter,
|
@RequestParam(value = "paramsInfoVO", required = false) String parameter,
|
||||||
@@ -208,16 +212,21 @@ public class ParamsInfoEOController extends JeroController<ParamsInfoEO, IParams
|
|||||||
paramsInfoEOService.exportParamsInfo(cut, paramsInfoVO, exportName, response, request);
|
paramsInfoEOService.exportParamsInfo(cut, paramsInfoVO, exportName, response, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过excel导入数据
|
* 导入
|
||||||
*
|
* @param file
|
||||||
* @param request
|
* @param cut
|
||||||
* @param response
|
* @param paramsTemplateId
|
||||||
* @return
|
* @return
|
||||||
*/
|
* @throws Exception
|
||||||
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
*/
|
||||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
@AutoLog(value = "参数项基本信息表-导入")
|
||||||
return super.importExcel(request, response, ParamsInfoEO.class);
|
@ApiOperation(value = "参数项基本信息表-导入")
|
||||||
}
|
@PostMapping(value = "/importParamsInfo")
|
||||||
|
public Result<?> importParamsInfo( MultipartFile file,
|
||||||
|
@RequestParam(value = "cut") String cut,
|
||||||
|
@RequestParam(value = "paramsTemplateId") String paramsTemplateId) throws Exception {
|
||||||
|
return paramsInfoEOService.importParamsInfo(file, cut, paramsTemplateId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+40
-11
@@ -1,27 +1,34 @@
|
|||||||
package com.jero.modules.cert.template.enums;
|
package com.jero.modules.cert.template.enums;
|
||||||
|
|
||||||
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liyawei
|
* @Author: liyawei
|
||||||
* @Description:
|
* @Description:
|
||||||
* @Date: Created in 15:51 2022/4/22
|
* @Date: Created in 15:51 2022/4/22
|
||||||
*/
|
*/
|
||||||
public enum ControlTypeEnum {
|
public enum ControlTypeEnum {
|
||||||
TEXT("文本","1"),
|
TEXT("文本", "text","1"),
|
||||||
PULL_SINGLE("下拉单选","2"),
|
PULL_SINGLE("下拉单选","pull single","2"),
|
||||||
PULL_MORE("下拉多选","3"),
|
PULL_MORE("下拉多选","pull more","3"),
|
||||||
FILE("附件","4"),
|
FILE("附件","file","4"),
|
||||||
TEXT_PULL_SINGLE("文本+下拉单选","5"),
|
TEXT_PULL_SINGLE("文本+下拉单选","text+pull single","5"),
|
||||||
TEXT_PULL_MORE("文本+下拉多选","6"),
|
TEXT_PULL_MORE("文本+下拉多选","text+pull more","6"),
|
||||||
TEXT_FILE("文本+附件","7"),
|
TEXT_FILE("文本+附件","text+file","7"),
|
||||||
PULL_SINGLE_FILE("下拉单选+附件","8"),
|
PULL_SINGLE_FILE("下拉单选+附件","pull single+file","8"),
|
||||||
PULL_MORE_FILE("下拉多选+附件","9"),
|
PULL_MORE_FILE("下拉多选+附件","pull more+file","9"),
|
||||||
TEXT_PULL_SINGLE_FILE("文本+下拉单选+附件","10");
|
TEXT_PULL_SINGLE_FILE("文本+下拉单选+附件","text+pull single file","10");
|
||||||
|
|
||||||
String name;
|
String name;
|
||||||
|
String enName;
|
||||||
String value;
|
String value;
|
||||||
|
|
||||||
ControlTypeEnum(String name, String value) {
|
ControlTypeEnum(String name, String enName, String value) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
this.enName = enName;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,4 +47,26 @@ public enum ControlTypeEnum {
|
|||||||
public void setValue(String value) {
|
public void setValue(String value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getEnName() {
|
||||||
|
return enName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnName(String enName) {
|
||||||
|
this.enName = enName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String,String> toMapForImport(String cut){
|
||||||
|
Map<String,String> map = new HashMap<>();
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
for (ControlTypeEnum controlTypeEnum : ControlTypeEnum.values()) {
|
||||||
|
map.put(controlTypeEnum.getName(), controlTypeEnum.getValue());
|
||||||
|
}
|
||||||
|
} else if (CutEnum.EN.getValue().equals(cut)) {
|
||||||
|
for (ControlTypeEnum controlTypeEnum : ControlTypeEnum.values()) {
|
||||||
|
map.put(controlTypeEnum.getEnName(), controlTypeEnum.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+39
-10
@@ -1,26 +1,33 @@
|
|||||||
package com.jero.modules.cert.template.enums;
|
package com.jero.modules.cert.template.enums;
|
||||||
|
|
||||||
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liyawei
|
* @Author: liyawei
|
||||||
* @Description: 控件类型为文本时需要该校验
|
* @Description: 控件类型为文本时需要该校验
|
||||||
* @Date: Created in 15:58 2022/4/22
|
* @Date: Created in 15:58 2022/4/22
|
||||||
*/
|
*/
|
||||||
public enum ControlVerifyEnum {
|
public enum ControlVerifyEnum {
|
||||||
NULL("无","1"),
|
NULL("无","null","1"),
|
||||||
CHINESE("中文","2"),
|
CHINESE("中文","chinese","2"),
|
||||||
POSITIVE_INTEGER("正整数","3"),
|
POSITIVE_INTEGER("正整数","positive integer","3"),
|
||||||
POSITIVE_FLOAT("正浮点数","4"),
|
POSITIVE_FLOAT("正浮点数","positive float","4"),
|
||||||
INTEGER_DECIMAL("整数或小数","5"),
|
INTEGER_DECIMAL("整数或小数","integer decimal","5"),
|
||||||
DECIMAL_ONE("一位小数","6"),
|
DECIMAL_ONE("一位小数","decimal one","6"),
|
||||||
DECIMAL_TWO("两位小数","7"),
|
DECIMAL_TWO("两位小数","decimal two","7"),
|
||||||
DECIMAL_THREE("三位小数","8"),
|
DECIMAL_THREE("三位小数","decimal three","8"),
|
||||||
DECIMAL_FOUR("四位小数","9");
|
DECIMAL_FOUR("四位小数","decimal four","9");
|
||||||
|
|
||||||
String name;
|
String name;
|
||||||
|
String enName;
|
||||||
String value;
|
String value;
|
||||||
|
|
||||||
ControlVerifyEnum(String name, String value) {
|
ControlVerifyEnum(String name, String enName, String value) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
this.enName = enName;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,4 +46,26 @@ public enum ControlVerifyEnum {
|
|||||||
public void setValue(String value) {
|
public void setValue(String value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getEnName() {
|
||||||
|
return enName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnName(String enName) {
|
||||||
|
this.enName = enName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String,String> toMapForImport(String cut){
|
||||||
|
Map<String,String> map = new HashMap<>();
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
for (ControlVerifyEnum controlVerifyEnum : ControlVerifyEnum.values()) {
|
||||||
|
map.put(controlVerifyEnum.getName(), controlVerifyEnum.getValue());
|
||||||
|
}
|
||||||
|
} else if (CutEnum.EN.getValue().equals(cut)) {
|
||||||
|
for (ControlVerifyEnum controlVerifyEnum : ControlVerifyEnum.values()) {
|
||||||
|
map.put(controlVerifyEnum.getEnName(), controlVerifyEnum.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-35
@@ -1,35 +0,0 @@
|
|||||||
package com.jero.modules.cert.template.enums;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author: liyawei
|
|
||||||
* @Description:
|
|
||||||
* @Date: Created in 11:20 2022/4/14
|
|
||||||
*/
|
|
||||||
public enum IsMustEnum {
|
|
||||||
YES("是","1"),
|
|
||||||
NO("否","0");
|
|
||||||
|
|
||||||
String name;
|
|
||||||
String value;
|
|
||||||
|
|
||||||
IsMustEnum(String name, String value) {
|
|
||||||
this.name = name;
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+65
@@ -0,0 +1,65 @@
|
|||||||
|
package com.jero.modules.cert.template.enums;
|
||||||
|
|
||||||
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liyawei
|
||||||
|
* @Description:
|
||||||
|
* @Date: Created in 11:20 2022/4/14
|
||||||
|
*/
|
||||||
|
public enum ParamsIsMustEnum {
|
||||||
|
YES("是","yes","1"),
|
||||||
|
NO("否","no","0");
|
||||||
|
|
||||||
|
String name;
|
||||||
|
String enName;
|
||||||
|
String value;
|
||||||
|
|
||||||
|
ParamsIsMustEnum(String name, String enName, String value) {
|
||||||
|
this.name = name;
|
||||||
|
this.enName = enName;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEnName() {
|
||||||
|
return enName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnName(String enName) {
|
||||||
|
this.enName = enName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String,String> toMapForImport(String cut){
|
||||||
|
Map<String,String> map = new HashMap<>();
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
for (ParamsIsMustEnum paramsIsMustEnum : ParamsIsMustEnum.values()) {
|
||||||
|
map.put(paramsIsMustEnum.getName(), paramsIsMustEnum.getValue());
|
||||||
|
}
|
||||||
|
} else if (CutEnum.EN.getValue().equals(cut)) {
|
||||||
|
for (ParamsIsMustEnum paramsIsMustEnum : ParamsIsMustEnum.values()) {
|
||||||
|
map.put(paramsIsMustEnum.getEnName(), paramsIsMustEnum.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+13
@@ -1,13 +1,18 @@
|
|||||||
package com.jero.modules.cert.template.service;
|
package com.jero.modules.cert.template.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.modules.cert.template.entity.ParamsInfoEO;
|
import com.jero.modules.cert.template.entity.ParamsInfoEO;
|
||||||
|
import com.jero.modules.cert.template.vo.CertCategoryParamsInfoCnImport;
|
||||||
|
import com.jero.modules.cert.template.vo.ParamsInfoCnImport;
|
||||||
import com.jero.modules.cert.template.vo.ParamsInfoVO;
|
import com.jero.modules.cert.template.vo.ParamsInfoVO;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 参数项基本信息表
|
* @Description: 参数项基本信息表
|
||||||
@@ -83,4 +88,12 @@ public interface IParamsInfoEOService extends IService<ParamsInfoEO> {
|
|||||||
void exportParamsInfo(String cut, ParamsInfoVO paramsInfoVO, String exportExcelName, HttpServletResponse response, HttpServletRequest request);
|
void exportParamsInfo(String cut, ParamsInfoVO paramsInfoVO, String exportExcelName, HttpServletResponse response, HttpServletRequest request);
|
||||||
|
|
||||||
void getTreeDictItemText(List<ParamsInfoEO> paramsInfoEOList, String cut);
|
void getTreeDictItemText(List<ParamsInfoEO> paramsInfoEOList, String cut);
|
||||||
|
|
||||||
|
Result<?> importParamsInfo(MultipartFile file, String cut, String paramsTemplateId) throws IOException;
|
||||||
|
|
||||||
|
Result<?> importParamsInfoData(List<ParamsInfoCnImport> paramsInfoEOList,
|
||||||
|
Map<String,List<CertCategoryParamsInfoCnImport>> certCategoryParamsInfoEOListMap,
|
||||||
|
String unzipfilepath,
|
||||||
|
String paramsTemplateId,
|
||||||
|
String cut);
|
||||||
}
|
}
|
||||||
|
|||||||
+621
-5
@@ -1,39 +1,52 @@
|
|||||||
package com.jero.modules.cert.template.service.impl;
|
package com.jero.modules.cert.template.service.impl;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||||
|
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.ZipUtil;
|
import cn.hutool.core.util.ZipUtil;
|
||||||
import com.aliyuncs.utils.IOUtils;
|
import com.aliyuncs.utils.IOUtils;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.constant.enums.CutEnum;
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
|
import com.jero.common.constant.enums.IsMustEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO;
|
import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO;
|
||||||
import com.jero.modules.cert.template.entity.ParamsInfoEO;
|
import com.jero.modules.cert.template.entity.ParamsInfoEO;
|
||||||
|
import com.jero.modules.cert.template.enums.ControlTypeEnum;
|
||||||
|
import com.jero.modules.cert.template.enums.ControlVerifyEnum;
|
||||||
|
import com.jero.modules.cert.template.enums.ParamsIsMustEnum;
|
||||||
import com.jero.modules.cert.template.mapper.ParamsInfoEOMapper;
|
import com.jero.modules.cert.template.mapper.ParamsInfoEOMapper;
|
||||||
import com.jero.modules.cert.template.service.ICertCategoryParamsInfoEOService;
|
import com.jero.modules.cert.template.service.ICertCategoryParamsInfoEOService;
|
||||||
import com.jero.modules.cert.template.service.IParamsInfoEOService;
|
import com.jero.modules.cert.template.service.IParamsInfoEOService;
|
||||||
import com.jero.modules.cert.template.utils.CommonExcelExportStyler;
|
import com.jero.modules.cert.template.utils.CommonExcelExportStyler;
|
||||||
import com.jero.modules.cert.template.vo.CertCategoryParamsInfoEnExport;
|
import com.jero.modules.cert.template.vo.*;
|
||||||
import com.jero.modules.cert.template.vo.ParamsInfoEnExport;
|
|
||||||
import com.jero.modules.cert.template.vo.ParamsInfoVO;
|
|
||||||
import com.jero.modules.oss.entity.OSSFile;
|
import com.jero.modules.oss.entity.OSSFile;
|
||||||
import com.jero.modules.oss.service.IOSSFileService;
|
import com.jero.modules.oss.service.IOSSFileService;
|
||||||
|
import com.jero.modules.split.common.FileUnZip;
|
||||||
import com.jero.modules.split.common.ReadExcel;
|
import com.jero.modules.split.common.ReadExcel;
|
||||||
import com.jero.modules.system.entity.SysCategory;
|
import com.jero.modules.system.entity.SysCategory;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
import com.jero.modules.system.service.ISysDictItemService;
|
import com.jero.modules.system.service.ISysDictItemService;
|
||||||
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
|
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||||
|
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
||||||
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.mock.web.MockMultipartFile;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -44,6 +57,8 @@ import java.nio.file.StandardOpenOption;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static com.jero.modules.split.util.ExcelUtil.checkObjAllFieldsIsNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 参数项基本信息表
|
* @Description: 参数项基本信息表
|
||||||
* @Author: jero-boot
|
* @Author: jero-boot
|
||||||
@@ -64,7 +79,6 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SysCategoryServiceImpl sysCategoryService;
|
private SysCategoryServiceImpl sysCategoryService;
|
||||||
|
|
||||||
|
|
||||||
@Value(value = "${jero.path.upload}")
|
@Value(value = "${jero.path.upload}")
|
||||||
private String uploadpath;
|
private String uploadpath;
|
||||||
/**
|
/**
|
||||||
@@ -607,6 +621,608 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<?> importParamsInfo(MultipartFile file, String cut, String paramsTemplateId) throws IOException {
|
||||||
|
//验证文件名是否合格
|
||||||
|
/* 截取后缀名 */
|
||||||
|
int pos = file.getOriginalFilename().lastIndexOf(".");
|
||||||
|
String str = file.getOriginalFilename().substring(pos+1).toLowerCase();
|
||||||
|
String filenameorg = file.getOriginalFilename().substring(0,pos);
|
||||||
|
String resultMsg = "";
|
||||||
|
//判断上传文件必须是zip
|
||||||
|
// TODO 允许导入rar
|
||||||
|
if (!str.equals("zip")) {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
resultMsg = "请上传zip文件";
|
||||||
|
}else{
|
||||||
|
resultMsg = "Please upload a zip file";
|
||||||
|
}
|
||||||
|
return Result.error(resultMsg);
|
||||||
|
}
|
||||||
|
String path = uploadpath + "/modal/"+filenameorg;
|
||||||
|
File saveDirectory = new File(path);
|
||||||
|
if(!saveDirectory.isDirectory()){
|
||||||
|
saveDirectory.mkdir();
|
||||||
|
}
|
||||||
|
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path +File.separator+ file.getOriginalFilename()));
|
||||||
|
try{
|
||||||
|
//解压缩
|
||||||
|
String zipEntryName = FileUnZip.unZipFiles(path +File.separator+ file.getOriginalFilename(),path);
|
||||||
|
// 数据相关处理,
|
||||||
|
// 1.获取其中的Excel,
|
||||||
|
List<File> excelfilelist = FileUnZip.readExcelFile(zipEntryName);
|
||||||
|
if(excelfilelist.size()<1){
|
||||||
|
//删除原上传文件
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
resultMsg = "压缩包内没有上传Excel数据";
|
||||||
|
}else{
|
||||||
|
resultMsg = "In the cabinet did not upload the Excel data";
|
||||||
|
}
|
||||||
|
return Result.error(1, resultMsg);
|
||||||
|
|
||||||
|
} else if (excelfilelist.size()>1) {
|
||||||
|
//删除原上传文件
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
resultMsg = "压缩包根目录下仅能存在一个excel为导入数据";
|
||||||
|
}else{
|
||||||
|
resultMsg = "Only one Excel file can be imported in the compressed package root directory";
|
||||||
|
}
|
||||||
|
return Result.error(1, resultMsg);
|
||||||
|
}
|
||||||
|
File excelfile = excelfilelist.get(0);
|
||||||
|
// 导入参数设置,默认即可
|
||||||
|
ImportParams params = new ImportParams();
|
||||||
|
try {
|
||||||
|
// 取数据 TODO 英文导入待处理
|
||||||
|
XSSFWorkbook workbook=new XSSFWorkbook(new FileInputStream(excelfile));
|
||||||
|
List<ParamsInfoCnImport> paramsInfoEOList = new ArrayList<>();
|
||||||
|
Map<String,List<CertCategoryParamsInfoCnImport>> certCategoryParamsInfoEOListMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 认证类别 数据字典 map
|
||||||
|
List<SysDictItem> sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category");
|
||||||
|
Map<String, String> certCategoryMap = sysDictItemList.stream().collect(Collectors.toMap(c->c.getItemText(),c->c.getItemValue()));
|
||||||
|
|
||||||
|
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
|
||||||
|
params.setStartSheetIndex(numSheet);
|
||||||
|
// 表头在第几行
|
||||||
|
// params.setTitleRows(1);
|
||||||
|
// 距离表头中间有几行不要的数据
|
||||||
|
// params.setStartRows(1);
|
||||||
|
//是否需要通过key-value导入方法,获取特定字段
|
||||||
|
// params.setReadSingleCell(true);
|
||||||
|
//判断一个cell是key的规则,可以自定义,默认就是 “:”
|
||||||
|
// params.setKeyMark(":");
|
||||||
|
String sheetName = workbook.getSheetName(numSheet);
|
||||||
|
// 第几个sheet页
|
||||||
|
if (numSheet == 0) { // 企业参数表
|
||||||
|
ExcelImportResult<ParamsInfoCnImport> result = ExcelImportUtil.importExcelMore(excelfile,ParamsInfoCnImport.class, params);
|
||||||
|
paramsInfoEOList = result.getList();
|
||||||
|
} else { // 认证类别参数表
|
||||||
|
if (certCategoryMap.containsKey(sheetName)) {
|
||||||
|
ExcelImportResult<CertCategoryParamsInfoCnImport> result = ExcelImportUtil.importExcelMore(excelfile, CertCategoryParamsInfoCnImport.class, params);
|
||||||
|
List<CertCategoryParamsInfoCnImport> list = result.getList();
|
||||||
|
if (CollectionUtil.isNotEmpty(list)) {
|
||||||
|
list.forEach(certCategoryParamsInfoEO -> {
|
||||||
|
certCategoryParamsInfoEO.setCertCategory(certCategoryMap.get(sheetName));
|
||||||
|
certCategoryParamsInfoEO.setParamsTemplateId(paramsTemplateId);
|
||||||
|
});
|
||||||
|
certCategoryParamsInfoEOListMap.put(sheetName, list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(paramsInfoEOList!=null &&!paramsInfoEOList.isEmpty()){
|
||||||
|
try {
|
||||||
|
String unzipfilepath = zipEntryName;
|
||||||
|
Result<?> message = importParamsInfoData(paramsInfoEOList,certCategoryParamsInfoEOListMap,unzipfilepath,paramsTemplateId,cut);
|
||||||
|
//删除原上传文件
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
return message;
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
//删除原上传文件
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
return Result.error(e.getMessage());
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
//删除原上传文件
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
resultMsg = "企业参数表没有可导入的数据,请检查!";
|
||||||
|
}else{
|
||||||
|
resultMsg = "No data to import, please check";
|
||||||
|
}
|
||||||
|
return Result.error(1, resultMsg);
|
||||||
|
}
|
||||||
|
} catch (NoSuchElementException e){
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
resultMsg = "没有可导入的数据,请检查!";
|
||||||
|
}else{
|
||||||
|
resultMsg = "No data to import, please check";
|
||||||
|
}
|
||||||
|
return Result.error(1, resultMsg);
|
||||||
|
} catch (JeroBootException e){
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
return Result.error(1, e.getMessage());
|
||||||
|
} catch (Exception e) {
|
||||||
|
//删除原上传文件
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
resultMsg = "读取失败,请严格按照模板文件导入数据";
|
||||||
|
}else{
|
||||||
|
resultMsg = "The data fails to be read. Import data strictly according to the template file";
|
||||||
|
}
|
||||||
|
return Result.error(1, resultMsg);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
//删除原上传文件
|
||||||
|
FileUnZip.deleteDir(saveDirectory);
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
resultMsg = "读取失败,请严格按照模板文件导入数据";
|
||||||
|
}else{
|
||||||
|
resultMsg = "The data fails to be read. Import data strictly according to the template file";
|
||||||
|
}
|
||||||
|
return Result.error(1, resultMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<?> importParamsInfoData(List<ParamsInfoCnImport> paramsInfoEOList,
|
||||||
|
Map<String,List<CertCategoryParamsInfoCnImport>> certCategoryParamsInfoEOListMap,
|
||||||
|
String unzipfilepath,
|
||||||
|
String paramsTemplateId,
|
||||||
|
String cut) {
|
||||||
|
//验证导入数据是否符合规则
|
||||||
|
Map map = validateImportDatas(paramsInfoEOList,certCategoryParamsInfoEOListMap,unzipfilepath,cut);
|
||||||
|
boolean isOk = (boolean) map.get("result");
|
||||||
|
if (!isOk) {
|
||||||
|
//验证没有通过
|
||||||
|
String message = (String) map.get("message");
|
||||||
|
return Result.error(message);
|
||||||
|
}
|
||||||
|
//将导入数据循环合并整理后 新增至相应表
|
||||||
|
paramsInfoEOList = (List<ParamsInfoCnImport>) map.get("paramsInfoEOList");
|
||||||
|
List<CertCategoryParamsInfoCnImport> certCategoryParamsInfoEOList = (List<CertCategoryParamsInfoCnImport>) map.get("certCategoryParamsInfoEOList");
|
||||||
|
|
||||||
|
List<ParamsInfoEO> paramsInfoEOS = new ArrayList<>();
|
||||||
|
for (ParamsInfoCnImport importDto : paramsInfoEOList) {
|
||||||
|
//判断此行数据是否全部为空,是则不读取
|
||||||
|
if (checkObjAllFieldsIsNull(importDto)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String[] fileIdList = importDto.getFileTemplateName().split(",");
|
||||||
|
String connectId = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
List<OSSFile> updateFileList = new ArrayList<>();
|
||||||
|
for (int i=0; i<fileIdList.length; i++) {
|
||||||
|
OSSFile ossFile = new OSSFile();
|
||||||
|
ossFile.setId(fileIdList[i]);
|
||||||
|
ossFile.setConnectId(connectId);
|
||||||
|
|
||||||
|
}
|
||||||
|
ossFileService.updateBatchById(updateFileList);
|
||||||
|
importDto.setFileTemplateConnectId(connectId);
|
||||||
|
ParamsInfoEO target = new ParamsInfoEO();
|
||||||
|
BeanUtils.copyProperties(importDto, target);
|
||||||
|
target.setParamsTemplateId(paramsTemplateId);
|
||||||
|
paramsInfoEOS.add(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<CertCategoryParamsInfoEO> certCategoryParamsInfoEOS = new ArrayList<>();
|
||||||
|
for (CertCategoryParamsInfoCnImport ccImportDto : certCategoryParamsInfoEOList) {
|
||||||
|
CertCategoryParamsInfoEO target = new CertCategoryParamsInfoEO();
|
||||||
|
BeanUtils.copyProperties(ccImportDto, target);
|
||||||
|
certCategoryParamsInfoEOS.add(target);
|
||||||
|
}
|
||||||
|
// 批量新增认证参数项
|
||||||
|
certCategoryParamsInfoEOService.saveBatch(certCategoryParamsInfoEOS);
|
||||||
|
// 批量新增参数项
|
||||||
|
Boolean isSuccess = saveBatch(paramsInfoEOS);
|
||||||
|
|
||||||
|
String msg = "";
|
||||||
|
if (isSuccess) {
|
||||||
|
int countSuccess = paramsInfoEOS.size();
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
msg = "成功导入" + countSuccess + "条";
|
||||||
|
} else {
|
||||||
|
msg = "import " + countSuccess + " datas successfully";
|
||||||
|
}
|
||||||
|
return Result.OK(msg, null);
|
||||||
|
} else {
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
msg = "导入失败";
|
||||||
|
} else {
|
||||||
|
msg = "import failed";
|
||||||
|
}
|
||||||
|
return Result.error(1, msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map validateImportDatas(List<ParamsInfoCnImport> paramsInfoEOList,
|
||||||
|
Map<String,List<CertCategoryParamsInfoCnImport>> certCategoryParamsInfoEOListMap,
|
||||||
|
String filepath,
|
||||||
|
String cut){
|
||||||
|
List<CertCategoryParamsInfoCnImport> certCategoryParamsInfoEOList = new ArrayList<>();
|
||||||
|
// 树形数据字典
|
||||||
|
List<SysCategory> categoryList = sysCategoryService.queryByTreeDicCode("technology_territory");
|
||||||
|
// 普通数据字典
|
||||||
|
List<SysDictItem> dictItemList = new ArrayList<>();
|
||||||
|
List<String> dictCodeList = new ArrayList<>();
|
||||||
|
dictCodeList.add("params_batch");
|
||||||
|
dictCodeList.add("duty_territory");
|
||||||
|
dictCodeList.add("cert_category");
|
||||||
|
for (String dictCode : dictCodeList) {
|
||||||
|
List<SysDictItem> dictItems = sysDictItemService.selectItemsByDictCode(dictCode);
|
||||||
|
dictItemList.addAll(dictItems);
|
||||||
|
}
|
||||||
|
Map<String,String> controlTypeEnumMap = ControlTypeEnum.toMapForImport(cut);
|
||||||
|
Map<String,String> controlVerifyEnumMap = ControlVerifyEnum.toMapForImport(cut);
|
||||||
|
Map<String,String> paramsIsMustEnumMap = ParamsIsMustEnum.toMapForImport(cut);
|
||||||
|
|
||||||
|
//树形数据字典
|
||||||
|
List<String> treeNameList = new ArrayList<>();
|
||||||
|
//普通数据字典
|
||||||
|
List<String> itemNameList = new ArrayList<>();
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
treeNameList = categoryList.stream().map(SysCategory::getName).collect(Collectors.toList());
|
||||||
|
itemNameList = dictItemList.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
|
||||||
|
} else if(CutEnum.EN.getValue().equals(cut)){
|
||||||
|
treeNameList = categoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList());
|
||||||
|
itemNameList = dictItemList.stream().map(SysDictItem::getEnName).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
//存放数据验证结果信息
|
||||||
|
List<String> stringMessage = new ArrayList<>();
|
||||||
|
int i = 2; //记录行号
|
||||||
|
int num = 0; //记录是第几条数据
|
||||||
|
//循环验证数据
|
||||||
|
for (ParamsInfoCnImport dto : paramsInfoEOList) {
|
||||||
|
//判断此行数据是否全部为空,是则不读取
|
||||||
|
if (checkObjAllFieldsIsNull(dto)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
int countError = 0; //记录失败数据数量
|
||||||
|
String errorMsg = "";
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg = "企业参数表 第" + i + "行:";
|
||||||
|
} else {
|
||||||
|
errorMsg = i + " line:";
|
||||||
|
}
|
||||||
|
|
||||||
|
// nio编号
|
||||||
|
String nioNumber = dto.getNioNumber();
|
||||||
|
validateMustAndLength(nioNumber, "nio编号", IsMustEnum.YES.getValue(),"15", errorMsg, countError, false, cut);
|
||||||
|
if (StringUtils.isNotEmpty(dto.getNioNumber())) {
|
||||||
|
// 校验nio编号 格式:字母数字横杠(-)
|
||||||
|
String nioNumberRegex = "^[A-Za-z0-9-]+$";
|
||||||
|
if (!nioNumber.matches(nioNumberRegex)) {
|
||||||
|
errorMsg += "nio编号格式错误,仅能为字母,数字,横杠(-)";
|
||||||
|
countError++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 是否必填
|
||||||
|
String isMust = dto.getIsMust();
|
||||||
|
validateMustAndLength(isMust, "是否必填", IsMustEnum.YES.getValue(), "50",errorMsg, countError, false, cut);
|
||||||
|
getCodeByName(isMust,"是否必填","enum",paramsIsMustEnumMap,null,null,errorMsg,countError,cut);
|
||||||
|
dto.setIsMust(isMust);
|
||||||
|
|
||||||
|
// 参数名称
|
||||||
|
String paramsName = dto.getParamsName();
|
||||||
|
validateMustAndLength(paramsName, "参数名称", IsMustEnum.YES.getValue(), "30",errorMsg, countError, false, cut);
|
||||||
|
|
||||||
|
// 技术领域
|
||||||
|
String technologyTerritory = dto.getTechnologyTerritory();
|
||||||
|
validateMustAndLength(technologyTerritory, "技术领域", IsMustEnum.YES.getValue(), "1000",errorMsg, countError, false, cut);
|
||||||
|
getCodeByName(technologyTerritory,"技术领域","treeDicCode",null,treeNameList,categoryList,errorMsg,countError,cut);
|
||||||
|
dto.setTechnologyTerritory(technologyTerritory);
|
||||||
|
|
||||||
|
// 参数批次
|
||||||
|
String paramsBatch = dto.getParamsBatch();
|
||||||
|
validateMustAndLength(paramsBatch, "参数批次", IsMustEnum.YES.getValue(), "50",errorMsg, countError, true, cut);
|
||||||
|
getCodeByName(paramsBatch,"参数批次","dicCode",null,itemNameList,dictItemList,errorMsg,countError,cut);
|
||||||
|
dto.setParamsBatch(paramsBatch);
|
||||||
|
|
||||||
|
// 责任领域
|
||||||
|
String dutyTerritory = dto.getDutyTerritory();
|
||||||
|
validateMustAndLength(dutyTerritory, "责任领域", IsMustEnum.YES.getValue(), "50",errorMsg, countError, true, cut);
|
||||||
|
getCodeByName(dutyTerritory,"责任领域","dicCode",null,itemNameList,dictItemList,errorMsg,countError,cut);
|
||||||
|
dto.setDutyTerritory(dutyTerritory);
|
||||||
|
|
||||||
|
// 参数说明
|
||||||
|
String description = dto.getDescription();
|
||||||
|
validateMustAndLength(description,"参数说明",IsMustEnum.YES.getValue(),"200",errorMsg,countError,false,cut);
|
||||||
|
|
||||||
|
// 认证类别
|
||||||
|
String certCategory = dto.getCertCategory();
|
||||||
|
validateMustAndLength(certCategory, "认证类别", IsMustEnum.YES.getValue(), "1000",errorMsg, countError, false, cut);
|
||||||
|
getCodeByName(certCategory,"认证类别","dicCode",null,itemNameList,dictItemList,errorMsg,countError,cut);
|
||||||
|
dto.setCertCategory(certCategory);
|
||||||
|
|
||||||
|
// 控件类型
|
||||||
|
String controlType = dto.getControlType();
|
||||||
|
validateMustAndLength(controlType, "控件类型", IsMustEnum.YES.getValue(), "50",errorMsg, countError, false, cut);
|
||||||
|
getCodeByName(controlType,"控件类型","enum",controlTypeEnumMap,null,null,errorMsg,countError,cut);
|
||||||
|
dto.setControlType(controlType);
|
||||||
|
|
||||||
|
// 控件备选值
|
||||||
|
String controlValues = dto.getControlValues();
|
||||||
|
validateMustAndLength(controlValues, "控件备选值", IsMustEnum.YES.getValue(), "500",errorMsg, countError, false, cut);
|
||||||
|
|
||||||
|
// 控件校验
|
||||||
|
String controlVerify = dto.getControlVerify();
|
||||||
|
validateMustAndLength(controlVerify, "控件校验", IsMustEnum.YES.getValue(), "50",errorMsg, countError, false, cut);
|
||||||
|
getCodeByName(controlVerify,"控件校验","enum",controlVerifyEnumMap,null,null,errorMsg,countError,cut);
|
||||||
|
dto.setControlVerify(controlVerify);
|
||||||
|
|
||||||
|
// 附件模板
|
||||||
|
String fileTemplateName = dto.getFileTemplateName();
|
||||||
|
if (StringUtils.isNotBlank(fileTemplateName)) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
fileTemplateName = fileTemplateName.replace(",",",");
|
||||||
|
for (String fileName : fileTemplateName.split(",")) {
|
||||||
|
List<File> nowFileList = FileUnZip.readFileByFilename(filepath, fileName);
|
||||||
|
if (nowFileList.size() == 0) {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg += "附件模板压缩包中没有" + fileName + "文件; ";
|
||||||
|
} else {
|
||||||
|
errorMsg += "附件模板 " + fileName + "isn't present in the cabinet;";
|
||||||
|
}
|
||||||
|
countError++;
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
FileInputStream input = new FileInputStream(nowFileList.get(0));
|
||||||
|
MultipartFile multipartFile =
|
||||||
|
new MockMultipartFile(nowFileList.get(0).getName(), nowFileList.get(0).getName(), "text/plain", input);
|
||||||
|
//文件存入文件表
|
||||||
|
OSSFile ossFile = ossFileService.uploadLocal(multipartFile, "", null,null);
|
||||||
|
if (ObjectUtils.isNotEmpty(ossFile)) {
|
||||||
|
sb.append(ossFile.getId() + ",");
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(sb)) {
|
||||||
|
String substring = sb.substring(0, sb.length() - 1);
|
||||||
|
String fileTemplateId = substring;
|
||||||
|
dto.setFileTemplateName(fileTemplateId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (countError > 0) {
|
||||||
|
stringMessage.add(errorMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Map.Entry<String, List<CertCategoryParamsInfoCnImport>> ccDtoMap : certCategoryParamsInfoEOListMap.entrySet()) {
|
||||||
|
String certCategory = ccDtoMap.getKey();
|
||||||
|
List<CertCategoryParamsInfoCnImport> ccDtoList = ccDtoMap.getValue();
|
||||||
|
for (CertCategoryParamsInfoCnImport ccDto : ccDtoList) {
|
||||||
|
//判断此行数据是否全部为空,是则不读取
|
||||||
|
if (checkObjAllFieldsIsNull(ccDto)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
int countError = 0; //记录失败数据数量
|
||||||
|
String errorMsg = "";
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg = certCategory + " 第" + i + "行:";
|
||||||
|
} else {
|
||||||
|
errorMsg = i + " line:";
|
||||||
|
}
|
||||||
|
|
||||||
|
// nio编号
|
||||||
|
String nioNumber = ccDto.getNioNumber();
|
||||||
|
validateMustAndLength(nioNumber, "nio编号", IsMustEnum.YES.getValue(),"15", errorMsg, countError, false, cut);
|
||||||
|
if (StringUtils.isNotEmpty(ccDto.getNioNumber())) {
|
||||||
|
// 校验nio编号 格式:字母数字横杠(-)
|
||||||
|
String nioNumberRegex = "^[A-Za-z0-9-]+$";
|
||||||
|
if (!nioNumber.matches(nioNumberRegex)) {
|
||||||
|
errorMsg += "nio编号格式错误,仅能为字母,数字,横杠(-)";
|
||||||
|
countError++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 编号
|
||||||
|
String paramsNumber = ccDto.getParamsNumber();
|
||||||
|
validateMustAndLength(paramsNumber, "编号", IsMustEnum.YES.getValue(),"15", errorMsg, countError, false, cut);
|
||||||
|
// 参数名称
|
||||||
|
String paramsName = ccDto.getParamsName();
|
||||||
|
validateMustAndLength(paramsName, "参数名称", IsMustEnum.YES.getValue(),"30", errorMsg, countError, false, cut);
|
||||||
|
// 参数说明
|
||||||
|
String description = ccDto.getDescription();
|
||||||
|
validateMustAndLength(description, "参数说明", IsMustEnum.YES.getValue(),"200", errorMsg, countError, false, cut);
|
||||||
|
|
||||||
|
if (countError > 0) {
|
||||||
|
stringMessage.add(errorMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
certCategoryParamsInfoEOList.addAll(ccDtoList);
|
||||||
|
}
|
||||||
|
// 校验同 nio下认证参数编号唯一
|
||||||
|
List<CertCategoryParamsInfoCnImport> ccDtoAfterDistinct = certCategoryParamsInfoEOList.stream()
|
||||||
|
.collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
|
||||||
|
new TreeSet<>(Comparator.comparing(o -> o.getNioNumber() + ";" + o.getCertCategory()))), ArrayList::new));
|
||||||
|
if (ccDtoAfterDistinct.size() < certCategoryParamsInfoEOList.size()) {
|
||||||
|
stringMessage.add("导入数据中存在重复认证编号;");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Map map = new HashMap();
|
||||||
|
if (stringMessage.isEmpty()) {
|
||||||
|
map.put("result", true);
|
||||||
|
map.put("paramsInfoEOList", paramsInfoEOList);
|
||||||
|
map.put("certCategoryParamsInfoEOList", certCategoryParamsInfoEOList);
|
||||||
|
map.put("message", "");
|
||||||
|
} else {
|
||||||
|
map.put("result", false);
|
||||||
|
String html = "";
|
||||||
|
for (String message : stringMessage) {
|
||||||
|
html += message + "</br>";
|
||||||
|
}
|
||||||
|
map.put("message", html);
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateMustAndLength (String fieldData, String fieldName, String mustInput, String dbLength, String errorMsg, int countError, Boolean isSingle, String cut) {
|
||||||
|
if (IsMustEnum.YES.getValue().equals(mustInput) && StringUtils.isEmpty(fieldData)) {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg += fieldName + "为必填项,不能为空;";
|
||||||
|
} else {
|
||||||
|
errorMsg += fieldName + " is mandatory and cannot be empty;";
|
||||||
|
}
|
||||||
|
countError++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(fieldData) && fieldData.length() > Long.parseLong(dbLength)) {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg += fieldName + "不能超过" + dbLength + "个字符;";
|
||||||
|
} else {
|
||||||
|
errorMsg += fieldName + " can not be more than" + dbLength + "char;";
|
||||||
|
}
|
||||||
|
countError++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isSingle) {
|
||||||
|
//判断是否是单选
|
||||||
|
if (StringUtils.isNotBlank(fieldData) && fieldData.contains(",")) {
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg += fieldName + "为单选项;";
|
||||||
|
} else {
|
||||||
|
errorMsg += fieldName + " is single type;";
|
||||||
|
}
|
||||||
|
countError++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getCodeByName(String value, String fieldName, String type, Map enumMap, List judgeData, List coverData,String errorMsg, int countError,String cut) {
|
||||||
|
if ("treeDicCode".equals(type)) {
|
||||||
|
// 树形字典类型
|
||||||
|
List<String> treeNameList = judgeData;
|
||||||
|
List<SysCategory> categoryList = coverData;
|
||||||
|
//判断数据是否匹配
|
||||||
|
if (StringUtils.isNotBlank(value)) {
|
||||||
|
value = value.replace(",",",");
|
||||||
|
for (String valueTemp : value.split(",")) {
|
||||||
|
String lastValue = valueTemp;
|
||||||
|
if(valueTemp.contains("/")){
|
||||||
|
lastValue = valueTemp.substring(valueTemp.lastIndexOf("/")+1);
|
||||||
|
}
|
||||||
|
if (!treeNameList.contains(lastValue)) {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg += fieldName + "中的" + lastValue + "与数据字典不匹配;";
|
||||||
|
} else {
|
||||||
|
errorMsg += fieldName +" "+ lastValue + " does not match the data dictionary;";
|
||||||
|
}
|
||||||
|
countError++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<String> valueIdList = new ArrayList<>();
|
||||||
|
//文字转ID
|
||||||
|
if (StringUtils.isNotBlank(value)) {
|
||||||
|
value = value.replace(",",",");
|
||||||
|
for (String valueTemp : value.split(",")) {
|
||||||
|
String lastValue = valueTemp;
|
||||||
|
if(valueTemp.contains("/")){
|
||||||
|
lastValue = valueTemp.substring(valueTemp.lastIndexOf("/")+1);
|
||||||
|
}
|
||||||
|
if (treeNameList.contains(lastValue)) {
|
||||||
|
List<SysCategory> collect = new ArrayList<>();
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
String finalLastValue = lastValue;
|
||||||
|
collect = categoryList.stream().filter(e -> e.getName().equals(finalLastValue)).collect(Collectors.toList());
|
||||||
|
} else if(CutEnum.EN.getValue().equals(cut)) {
|
||||||
|
String finalLastValue1 = lastValue;
|
||||||
|
collect = categoryList.stream().filter(e -> e.getEnName().equals(finalLastValue1)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
if (collect.size() != 0) {
|
||||||
|
if(collect.size() == 1){
|
||||||
|
valueIdList.add(collect.get(0).getId());
|
||||||
|
} else {
|
||||||
|
for(SysCategory sysCategory : collect){
|
||||||
|
List<String> nameList = sysCategoryService.getParentPath(sysCategory);
|
||||||
|
List<String> targetNameList = Arrays.asList(valueTemp.split("/"));
|
||||||
|
if(nameList.size() == targetNameList.size() && targetNameList.containsAll(nameList)) {
|
||||||
|
valueIdList.add(sysCategory.getId());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
value = StringUtils.join(valueIdList, ",");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ("dicCode".equals(type)) {
|
||||||
|
// 普通字典类型
|
||||||
|
List<String> itemNameList = judgeData;
|
||||||
|
List<SysDictItem> dictItemList = coverData;
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(value)) {
|
||||||
|
value = value.replace(",",",");
|
||||||
|
for (String valueTemp : value.split(",")) {
|
||||||
|
if (!itemNameList.contains(valueTemp)) {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg += fieldName + "中的" + valueTemp + "与数据字典不匹配;";
|
||||||
|
} else{
|
||||||
|
errorMsg += fieldName + " " + valueTemp + " does not match the data dictionary";
|
||||||
|
}
|
||||||
|
countError++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String valueId = "";
|
||||||
|
//文字转数据字典id
|
||||||
|
if (StringUtils.isNotBlank(value)) {
|
||||||
|
value = value.replace(",",",");
|
||||||
|
for (String valueTemp : value.split(",")) {
|
||||||
|
if (itemNameList.contains(valueTemp)) {
|
||||||
|
List<SysDictItem> collect = new ArrayList<>();
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(valueTemp)).collect(Collectors.toList());
|
||||||
|
} else if(CutEnum.EN.getValue().equals(cut)) {
|
||||||
|
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getEnName()) && e.getEnName().equals(valueTemp)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
valueId += collect.get(0).getItemValue() + ",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(valueId)) {
|
||||||
|
value = valueId.substring(0, valueId.length() - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ("enum".equals(type)) {
|
||||||
|
// 枚举类型
|
||||||
|
if (StringUtils.isNotBlank(value)) {
|
||||||
|
if (enumMap.containsKey(value)) {
|
||||||
|
value = (String) enumMap.get(value);
|
||||||
|
} else {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
errorMsg += fieldName + "中的" + value + "不正确;";
|
||||||
|
} else{
|
||||||
|
errorMsg += fieldName + " " + value + " is not correct";
|
||||||
|
}
|
||||||
|
countError++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void getTreeDictItemTextForEnExport(List<ParamsInfoEnExport> paramsInfoEnExportList) {
|
public void getTreeDictItemTextForEnExport(List<ParamsInfoEnExport> paramsInfoEnExportList) {
|
||||||
//树形数据字典
|
//树形数据字典
|
||||||
List<SysCategory> categoryList = sysCategoryService.list();
|
List<SysCategory> categoryList = sysCategoryService.list();
|
||||||
|
|||||||
+2
@@ -56,6 +56,7 @@ public class ParamsTemplateEOServiceImpl extends ServiceImpl<ParamsTemplateEOMap
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void deleteById(String id) {
|
public void deleteById(String id) {
|
||||||
|
// TODO 关联删除参数项
|
||||||
removeById(id);
|
removeById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,6 +68,7 @@ public class ParamsTemplateEOServiceImpl extends ServiceImpl<ParamsTemplateEOMap
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void deleteByIds(List<String> ids) {
|
public void deleteByIds(List<String> ids) {
|
||||||
|
// TODO 关联删除参数项
|
||||||
removeByIds(ids);
|
removeByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
package com.jero.modules.cert.template.vo;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liyawei
|
||||||
|
* @Description:
|
||||||
|
* @Date: Created in 19:18 2022/4/28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CertCategoryParamsInfoCnImport {
|
||||||
|
/**主键*/
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**创建人*/
|
||||||
|
@ApiModelProperty(value = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**创建日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "创建日期")
|
||||||
|
private java.util.Date createTime;
|
||||||
|
|
||||||
|
/**更新人*/
|
||||||
|
@ApiModelProperty(value = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**更新日期*/
|
||||||
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@ApiModelProperty(value = "更新日期")
|
||||||
|
private java.util.Date updateTime;
|
||||||
|
|
||||||
|
/**所属部门*/
|
||||||
|
@ApiModelProperty(value = "所属部门")
|
||||||
|
private String sysOrgCode;
|
||||||
|
|
||||||
|
/**编号*/
|
||||||
|
@Excel(name = "*number", width = 15, orderNum = "2")
|
||||||
|
@ApiModelProperty(value = "编号")
|
||||||
|
private String paramsNumber;
|
||||||
|
|
||||||
|
/**参数名称*/
|
||||||
|
@Excel(name = "*params name", width = 15, orderNum = "3")
|
||||||
|
@ApiModelProperty(value = "参数名称")
|
||||||
|
private String paramsName;
|
||||||
|
|
||||||
|
/**参数说明*/
|
||||||
|
@Excel(name = "description", width = 36, orderNum = "4")
|
||||||
|
@ApiModelProperty(value = "参数说明")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
/**nio编号*/
|
||||||
|
@Excel(name = "*nio number", width = 15, orderNum = "1")
|
||||||
|
@ApiModelProperty(value = "nio编号")
|
||||||
|
private String nioNumber;
|
||||||
|
|
||||||
|
/**所属认证类别*/
|
||||||
|
@ApiModelProperty(value = "所属认证类别")
|
||||||
|
private String certCategory;
|
||||||
|
|
||||||
|
/**参数模板id*/
|
||||||
|
@ApiModelProperty(value = "参数模板id")
|
||||||
|
private String paramsTemplateId;
|
||||||
|
}
|
||||||
-3
@@ -1,14 +1,11 @@
|
|||||||
package com.jero.modules.cert.template.vo;
|
package com.jero.modules.cert.template.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liyawei
|
* @Author: liyawei
|
||||||
* @Description:
|
* @Description:
|
||||||
|
|||||||
+80
@@ -0,0 +1,80 @@
|
|||||||
|
package com.jero.modules.cert.template.vo;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liyawei
|
||||||
|
* @Description:
|
||||||
|
* @Date: Created in 14:00 2022/4/28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ParamsInfoCnImport {
|
||||||
|
|
||||||
|
/**nio编号*/
|
||||||
|
@Excel(name = "*nio编号", width = 15)
|
||||||
|
@ApiModelProperty(value = "nio编号")
|
||||||
|
private String nioNumber;
|
||||||
|
|
||||||
|
/**是否必填*/
|
||||||
|
@Excel(name = "*是否必填", width = 15)
|
||||||
|
@ApiModelProperty(value = "是否必填")
|
||||||
|
private String isMust;
|
||||||
|
|
||||||
|
/**参数名称*/
|
||||||
|
@Excel(name = "*参数名称", width = 15)
|
||||||
|
@ApiModelProperty(value = "参数名称")
|
||||||
|
private String paramsName;
|
||||||
|
|
||||||
|
/**技术领域*/
|
||||||
|
@Excel(name = "*技术领域", width = 15)
|
||||||
|
@ApiModelProperty(value = "技术领域")
|
||||||
|
private String technologyTerritory;
|
||||||
|
|
||||||
|
/**参数批次*/
|
||||||
|
@Excel(name = "*参数批次", width = 15)
|
||||||
|
@ApiModelProperty(value = "参数批次")
|
||||||
|
private String paramsBatch;
|
||||||
|
|
||||||
|
/**责任领域*/
|
||||||
|
@Excel(name = "*责任领域", width = 15)
|
||||||
|
@ApiModelProperty(value = "责任领域")
|
||||||
|
private String dutyTerritory;
|
||||||
|
|
||||||
|
/**参数说明*/
|
||||||
|
@Excel(name = "参数说明", width = 36)
|
||||||
|
@ApiModelProperty(value = "参数说明")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
/**认证类别*/
|
||||||
|
@Excel(name = "认证类别", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证类别")
|
||||||
|
private String certCategory;
|
||||||
|
|
||||||
|
/**控件类型*/
|
||||||
|
@Excel(name = "*控件类型", width = 15)
|
||||||
|
@ApiModelProperty(value = "控件类型")
|
||||||
|
private String controlType;
|
||||||
|
|
||||||
|
/**控件校验*/
|
||||||
|
@Excel(name = "控件校验", width = 15)
|
||||||
|
@ApiModelProperty(value = "控件校验")
|
||||||
|
private String controlVerify;
|
||||||
|
|
||||||
|
/**控件备选值*/
|
||||||
|
@Excel(name = "控件备选值", width = 15)
|
||||||
|
@ApiModelProperty(value = "控件备选值")
|
||||||
|
private String controlValues;
|
||||||
|
|
||||||
|
/**附件模板*/
|
||||||
|
@ApiModelProperty(value = "附件模板")
|
||||||
|
private String fileTemplateConnectId;
|
||||||
|
|
||||||
|
@Excel(name = "附件模板", width = 15)
|
||||||
|
private String fileTemplateName; //附件模板文件名
|
||||||
|
|
||||||
|
/**参数模板id*/
|
||||||
|
@ApiModelProperty(value = "参数模板id")
|
||||||
|
private String paramsTemplateId;
|
||||||
|
}
|
||||||
-3
@@ -1,6 +1,5 @@
|
|||||||
package com.jero.modules.cert.template.vo;
|
package com.jero.modules.cert.template.vo;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.jero.common.aspect.annotation.Dict;
|
import com.jero.common.aspect.annotation.Dict;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@@ -109,14 +108,12 @@ public class ParamsInfoEnExport {
|
|||||||
private String fileTemplateConnectId;
|
private String fileTemplateConnectId;
|
||||||
|
|
||||||
@Excel(name = "file template", width = 15)
|
@Excel(name = "file template", width = 15)
|
||||||
@TableField(exist = false)
|
|
||||||
private String fileTemplateName; //附件模板文件名
|
private String fileTemplateName; //附件模板文件名
|
||||||
|
|
||||||
/**参数模板id*/
|
/**参数模板id*/
|
||||||
@ApiModelProperty(value = "参数模板id")
|
@ApiModelProperty(value = "参数模板id")
|
||||||
private String paramsTemplateId;
|
private String paramsTemplateId;
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private List<CertCategoryParamsInfoEnExport> certCategoryParamsInfoEnExportList; // 认证类别参数列表
|
private List<CertCategoryParamsInfoEnExport> certCategoryParamsInfoEnExportList; // 认证类别参数列表
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+80
@@ -0,0 +1,80 @@
|
|||||||
|
package com.jero.modules.cert.template.vo;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liyawei
|
||||||
|
* @Description:
|
||||||
|
* @Date: Created in 14:01 2022/4/28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ParamsInfoEnImport {
|
||||||
|
|
||||||
|
/**nio编号*/
|
||||||
|
@Excel(name = "*nio number", width = 15)
|
||||||
|
@ApiModelProperty(value = "nio编号")
|
||||||
|
private String nioNumber;
|
||||||
|
|
||||||
|
/**是否必填*/
|
||||||
|
@Excel(name = "*is must", width = 15)
|
||||||
|
@ApiModelProperty(value = "是否必填")
|
||||||
|
private String isMust;
|
||||||
|
|
||||||
|
/**参数名称*/
|
||||||
|
@Excel(name = "*param name", width = 15)
|
||||||
|
@ApiModelProperty(value = "参数名称")
|
||||||
|
private String paramsName;
|
||||||
|
|
||||||
|
/**技术领域*/
|
||||||
|
@Excel(name = "*technology territory", width = 15)
|
||||||
|
@ApiModelProperty(value = "技术领域")
|
||||||
|
private String technologyTerritory;
|
||||||
|
|
||||||
|
/**参数批次*/
|
||||||
|
@Excel(name = "*params batch", width = 15)
|
||||||
|
@ApiModelProperty(value = "参数批次")
|
||||||
|
private String paramsBatch;
|
||||||
|
|
||||||
|
/**责任领域*/
|
||||||
|
@Excel(name = "*duty territory", width = 15)
|
||||||
|
@ApiModelProperty(value = "责任领域")
|
||||||
|
private String dutyTerritory;
|
||||||
|
|
||||||
|
/**参数说明*/
|
||||||
|
@Excel(name = "description", width = 36)
|
||||||
|
@ApiModelProperty(value = "参数说明")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
/**认证类别*/
|
||||||
|
@Excel(name = "cert category", width = 15)
|
||||||
|
@ApiModelProperty(value = "认证类别")
|
||||||
|
private String certCategory;
|
||||||
|
|
||||||
|
/**控件类型*/
|
||||||
|
@Excel(name = "*control type", width = 15)
|
||||||
|
@ApiModelProperty(value = "控件类型")
|
||||||
|
private String controlType;
|
||||||
|
|
||||||
|
/**控件校验*/
|
||||||
|
@Excel(name = "control verify", width = 15)
|
||||||
|
@ApiModelProperty(value = "控件校验")
|
||||||
|
private String controlVerify;
|
||||||
|
|
||||||
|
/**控件备选值*/
|
||||||
|
@Excel(name = "control values", width = 15)
|
||||||
|
@ApiModelProperty(value = "控件备选值")
|
||||||
|
private String controlValues;
|
||||||
|
|
||||||
|
/**附件模板*/
|
||||||
|
@ApiModelProperty(value = "附件模板")
|
||||||
|
private String fileTemplateConnectId;
|
||||||
|
|
||||||
|
@Excel(name = "file template", width = 15)
|
||||||
|
private String fileTemplateName; //附件模板文件名
|
||||||
|
|
||||||
|
/**参数模板id*/
|
||||||
|
@ApiModelProperty(value = "参数模板id")
|
||||||
|
private String paramsTemplateId;
|
||||||
|
}
|
||||||
+2
@@ -40,4 +40,6 @@ public interface SysCategoryMapper extends BaseMapper<SysCategory> {
|
|||||||
public void updateDictDelFlag(@Param("flag") int delFlag, @Param("id") String id);
|
public void updateDictDelFlag(@Param("flag") int delFlag, @Param("id") String id);
|
||||||
|
|
||||||
public String getFieldInfo(@Param("fieldName") String fieldName);
|
public String getFieldInfo(@Param("fieldName") String fieldName);
|
||||||
|
|
||||||
|
List<SysCategory> queryByTreeDicCode( @Param("dicCode") String dicCode);
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -43,4 +43,10 @@
|
|||||||
and is_model = 1
|
and is_model = 1
|
||||||
and is_delete = 0
|
and is_delete = 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryByTreeDicCode" resultType="com.jero.modules.system.entity.SysCategory">
|
||||||
|
select * from sys_category
|
||||||
|
where sys_dict_id = (select id from sys_dict where dict_code = #{dicCode})
|
||||||
|
and del_flag=0
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+2
@@ -83,4 +83,6 @@ public interface ISysCategoryService extends IService<SysCategory> {
|
|||||||
* @param id
|
* @param id
|
||||||
*/
|
*/
|
||||||
public void updateDictDelFlag(int delFlag,String id);
|
public void updateDictDelFlag(int delFlag,String id);
|
||||||
|
|
||||||
|
List<SysCategory> queryByTreeDicCode(String dicCode);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -291,4 +291,9 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
|
|||||||
public void updateDictDelFlag(int delFlag, String id) {
|
public void updateDictDelFlag(int delFlag, String id) {
|
||||||
baseMapper.updateDictDelFlag(delFlag,id);
|
baseMapper.updateDictDelFlag(delFlag,id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysCategory> queryByTreeDicCode(String dicCode) {
|
||||||
|
return sysCategoryMapper.queryByTreeDicCode(dicCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user