合并分支 'feature_dev_20221010_extend' 到 'dev_2nd_period_test'
Feature dev 20221010 extend 查看合并请求 laws-nio/laws-weilai!227
This commit is contained in:
@@ -18,3 +18,7 @@ ALTER TABLE `laws_weilai`.`params_manifest`
|
|||||||
ADD COLUMN `project_version` varchar(255) NULL COMMENT '相关项目版本' AFTER `params_template_name`,
|
ADD COLUMN `project_version` varchar(255) NULL COMMENT '相关项目版本' AFTER `params_template_name`,
|
||||||
ADD COLUMN `explanation` varchar(2000) NULL COMMENT '说明' AFTER `project_version`;
|
ADD COLUMN `explanation` varchar(2000) NULL COMMENT '说明' AFTER `project_version`;
|
||||||
|
|
||||||
|
-- 项目库修改认证软件版本字段长度---------2022-11-01 未同步生产环境
|
||||||
|
ALTER TABLE `laws_weilai`.`project_library_base`
|
||||||
|
MODIFY COLUMN `software_version` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '软件版本' AFTER `explanation`;
|
||||||
|
|
||||||
|
|||||||
+121
-49
@@ -2456,13 +2456,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
if (StringUtils.isNotEmpty(paramsCollectManifestVO.getExportName())) {
|
if (StringUtils.isNotEmpty(paramsCollectManifestVO.getExportName())) {
|
||||||
fileOriName = paramsCollectManifestVO.getExportName();
|
fileOriName = paramsCollectManifestVO.getExportName();
|
||||||
}
|
}
|
||||||
//创建临时文件夹
|
|
||||||
String fileNowPath = uploadpath + "/tempZip/" + UUID.randomUUID().toString().replace("-","") + File.separator + fileOriName;
|
|
||||||
File nowFile = new File(fileNowPath);
|
|
||||||
if (nowFile.exists()) {
|
|
||||||
nowFile.delete();
|
|
||||||
}
|
|
||||||
nowFile.mkdirs();
|
|
||||||
try{
|
try{
|
||||||
String fileName = fileOriName + ".xlsx";
|
String fileName = fileOriName + ".xlsx";
|
||||||
// 设置表格相关属性
|
// 设置表格相关属性
|
||||||
@@ -2478,13 +2472,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
cellStyle.setWrapText(true);
|
cellStyle.setWrapText(true);
|
||||||
// cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
|
// cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
|
||||||
cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
|
cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
|
||||||
|
|
||||||
XSSFCellStyle cellStyle1 =workbook.createCellStyle();
|
XSSFCellStyle cellStyle1 =workbook.createCellStyle();
|
||||||
cellStyle1.setAlignment(XSSFCellStyle.ALIGN_CENTER);
|
cellStyle1.setAlignment(XSSFCellStyle.ALIGN_CENTER);
|
||||||
XSSFCellStyle cellStyleLink =workbook.createCellStyle();
|
|
||||||
XSSFFont font = workbook.createFont();
|
|
||||||
font.setColor(HSSFColor.LIGHT_BLUE.index);
|
|
||||||
cellStyleLink.setFont(font);
|
|
||||||
cellStyleLink.setWrapText(true);
|
|
||||||
//合并单元格
|
//合并单元格
|
||||||
CellRangeAddress region1 =
|
CellRangeAddress region1 =
|
||||||
new CellRangeAddress(1, 1, 0, headers.length - 1); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
new CellRangeAddress(1, 1, 0, headers.length - 1); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
||||||
@@ -2495,7 +2486,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
List<String> fieldList = Arrays.asList(field.split(",")); // list形式
|
List<String> fieldList = Arrays.asList(field.split(",")); // list形式
|
||||||
|
|
||||||
// 查询导出数据
|
// 查询导出数据
|
||||||
List<Map<String, Object>> allParamsInfoList = queryForExportDre(paramsCollectManifestVO); // id记得去掉
|
List<Map<String, Object>> allParamsInfoList = queryForExportDre(paramsCollectManifestVO, request); // id记得去掉
|
||||||
|
|
||||||
// 在excel表中添加表头
|
// 在excel表中添加表头
|
||||||
XSSFRow row = sheetItems.createRow(0);
|
XSSFRow row = sheetItems.createRow(0);
|
||||||
@@ -2540,7 +2531,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
XSSFCell cell3 = row3.createCell(i);
|
XSSFCell cell3 = row3.createCell(i);
|
||||||
XSSFRichTextString text = new XSSFRichTextString(exampleRow[i]);
|
XSSFRichTextString text = new XSSFRichTextString(exampleRow[i]);
|
||||||
cell3.setCellValue(text);
|
cell3.setCellValue(text);
|
||||||
cell3.setCellStyle(cellStyle1);
|
cell3.setCellStyle(cellStyle);
|
||||||
sheetItems.setColumnWidth(i, 20 * 256); // 设置单元格宽度
|
sheetItems.setColumnWidth(i, 20 * 256); // 设置单元格宽度
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2562,24 +2553,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
}
|
}
|
||||||
|
|
||||||
String repFileName = fileName.replaceAll("/","_");
|
String repFileName = fileName.replaceAll("/","_");
|
||||||
excelOS = new FileOutputStream(fileNowPath + File.separator + repFileName);
|
|
||||||
response.setHeader("Content-Disposition",
|
response.setHeader("Content-Disposition",
|
||||||
"attachment; filename=\""+ ReadExcel.encodeFileName(fileOriName+".zip", request) +"\"");
|
"attachment; filename=\""+ ReadExcel.encodeFileName(repFileName+".xlsx", request) +"\"");
|
||||||
response.setContentType("application/force-download");
|
response.setContentType("application/force-download");
|
||||||
response.flushBuffer();
|
response.flushBuffer();
|
||||||
os = response.getOutputStream();
|
os = response.getOutputStream();
|
||||||
workbook.write(excelOS);
|
workbook.write(os);
|
||||||
excelOS.flush();
|
|
||||||
excelOS.close();
|
|
||||||
ZipUtil.zip(fileNowPath,fileNowPath+".zip");
|
|
||||||
FileInputStream fis = new FileInputStream(fileNowPath+".zip");
|
|
||||||
int len = 0;
|
|
||||||
while ((len = fis.read()) != -1) {
|
|
||||||
os.write(len);
|
|
||||||
}
|
|
||||||
os.flush();
|
|
||||||
os.close(); // 后开先关
|
|
||||||
fis.close(); // 先开后关
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (e instanceof JeroBootException){
|
if (e instanceof JeroBootException){
|
||||||
throw new JeroBootException(e.getMessage());
|
throw new JeroBootException(e.getMessage());
|
||||||
@@ -2593,10 +2572,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
|
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
// IOUtils.closeQuietly(os);
|
IOUtils.closeQuietly(os);
|
||||||
IOUtils.closeQuietly(excelOS);
|
try {
|
||||||
File tempZipFile = new File(uploadpath + "/tempZip");
|
if (workbook != null) {
|
||||||
FileUtil.deleteContents(tempZipFile);
|
workbook.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("发生异常,异常信息为:"+e.getMessage(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2986,7 +2969,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
dbFieldExampleList.add("是/否");
|
dbFieldExampleList.add("是/否");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dbFieldExampleList.add("下拉多选#文本");
|
dbFieldExampleList.add("下拉多选+文本");
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
dbFieldNameList.add(onlCgformField.getDbFieldEnName()); // 字段英文名
|
dbFieldNameList.add(onlCgformField.getDbFieldEnName()); // 字段英文名
|
||||||
@@ -3021,6 +3004,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
if (ConfigLockEnum.NO.getValue().equals(paramsConfigEO.getIsLock())) { // 只导出未冻结的配置列
|
if (ConfigLockEnum.NO.getValue().equals(paramsConfigEO.getIsLock())) { // 只导出未冻结的配置列
|
||||||
dbFieldListConfig.add(paramsConfigEO.getId());
|
dbFieldListConfig.add(paramsConfigEO.getId());
|
||||||
dbFieldNameListConfig.add(paramsConfigEO.getConfigName());
|
dbFieldNameListConfig.add(paramsConfigEO.getConfigName());
|
||||||
|
dbFieldExampleList.add("XX!XX!XX#XXXXX");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3150,24 +3134,35 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 导出待填写数据,可以勾选导出
|
// 导出待填写数据,可以勾选导出
|
||||||
private List<Map<String, Object>> queryForExportDre(ParamsCollectManifestVO paramsCollectManifestVO) {
|
private List<Map<String, Object>> queryForExportDre(ParamsCollectManifestVO paramsCollectManifestVO, HttpServletRequest req) {
|
||||||
String paramsManifestId = paramsCollectManifestVO.getParamsManifestId();
|
String paramsManifestId = paramsCollectManifestVO.getParamsManifestId();
|
||||||
// String paramsTemplateId = paramsCollectManifestVO.getParamsTemplateId();
|
|
||||||
// Integer paramsTemplatePublishVersion = paramsCollectManifestVO.getParamsTemplatePublishVersion();
|
|
||||||
String cut = paramsCollectManifestVO.getCut();
|
String cut = paramsCollectManifestVO.getCut();
|
||||||
String ids = paramsCollectManifestVO.getIds();
|
List<String> idList = new ArrayList<>();
|
||||||
|
if (StringUtils.isNotBlank(paramsCollectManifestVO.getIds())) {
|
||||||
|
idList = Arrays.asList(paramsCollectManifestVO.getIds().split(","));
|
||||||
|
}
|
||||||
|
List<String> stateList = new ArrayList<String>(){{
|
||||||
|
add(CollectManifestStateEnum.WAIT_FILL.getValue());
|
||||||
|
add(CollectManifestStateEnum.CERT_BACK.getValue());
|
||||||
|
}};
|
||||||
|
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
|
||||||
ParamsCollectManifestEO queryEO = new ParamsCollectManifestEO();
|
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
||||||
queryEO.setParamsManifestId(paramsManifestId);
|
BeanUtils.copyProperties(paramsCollectManifestVO, paramsCollectManifestEO);
|
||||||
|
paramsCollectManifestEO.setParamsManifestId(null);
|
||||||
|
QueryWrapper<ParamsCollectManifestEO> queryWrapper = QueryGenerator.initQueryWrapper(paramsCollectManifestEO, req.getParameterMap());
|
||||||
|
queryWrapper.lambda().eq(ParamsCollectManifestEO::getParamsManifestId, paramsManifestId)
|
||||||
|
.eq(ParamsCollectManifestEO::getDre, loginUser.getUsername())
|
||||||
|
.in(ParamsCollectManifestEO::getState, stateList)
|
||||||
|
.notIn(ParamsCollectManifestEO::getControlType, ControlTypeEnum.Title.getValue())
|
||||||
|
.orderByDesc(ParamsCollectManifestEO::getDelFlag)
|
||||||
|
.orderByDesc(ParamsCollectManifestEO::getAddFlag)
|
||||||
|
.orderByDesc(ParamsCollectManifestEO::getChangeFlag)
|
||||||
|
.orderByAsc(ParamsCollectManifestEO::getNioNumber)
|
||||||
|
.in(CollectionUtil.isNotEmpty(idList), ParamsCollectManifestEO::getId, idList);
|
||||||
|
|
||||||
// String userTypes = paramsCollectManifestVO.getUserTypes();
|
List<ParamsCollectManifestEO> dataList = list(queryWrapper); // 查询导出数据
|
||||||
queryEO.setUserTypes(CollectManifestUserTypeEnum.DRE.getValue());
|
|
||||||
queryEO.setDreForAuth(loginUser.getUsername());
|
|
||||||
queryEO.setState(CollectManifestStateEnum.WAIT_FILL.getValue() + "," + CollectManifestStateEnum.CERT_BACK.getValue());
|
|
||||||
|
|
||||||
List<Map<String, Object>> dataList = paramsCollectManifestEOMapper.listInfoForExport(queryEO, ids); // 查询导出数据
|
|
||||||
if (dataList == null || dataList.isEmpty()){
|
if (dataList == null || dataList.isEmpty()){
|
||||||
// 没有查到数据,进行提示
|
// 没有查到数据,进行提示
|
||||||
if (CutEnum.EN.getValue().equals(paramsCollectManifestVO.getCut())) {
|
if (CutEnum.EN.getValue().equals(paramsCollectManifestVO.getCut())) {
|
||||||
@@ -3181,7 +3176,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
Map<String,String> controlVerifyMap = ControlVerifyEnum.toMapForExport(cut);
|
Map<String,String> controlVerifyMap = ControlVerifyEnum.toMapForExport(cut);
|
||||||
Map<String,String> controlTypeMap = ControlTypeEnum.toMapForExport(cut);
|
Map<String,String> controlTypeMap = ControlTypeEnum.toMapForExport(cut);
|
||||||
// 插入配置列和认证类别列数据
|
// 插入配置列和认证类别列数据
|
||||||
for (Map<String, Object> record1 : dataList) {
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
|
for (ParamsCollectManifestEO collectManifestEO: dataList) {
|
||||||
|
Map<String, Object> record1 = objectToMapDre(collectManifestEO);
|
||||||
String controlType = (String) record1.get("control_type");
|
String controlType = (String) record1.get("control_type");
|
||||||
String controlVerify = (String) record1.get("control_verify");
|
String controlVerify = (String) record1.get("control_verify");
|
||||||
String isMust = (String) record1.get("is_must");
|
String isMust = (String) record1.get("is_must");
|
||||||
@@ -3190,8 +3187,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
record1.put("control_type", controlTypeMap.get(controlType));
|
record1.put("control_type", controlTypeMap.get(controlType));
|
||||||
record1.put("control_verify", controlVerifyMap.get(controlVerify));
|
record1.put("control_verify", controlVerifyMap.get(controlVerify));
|
||||||
|
|
||||||
|
result.add(record1);
|
||||||
}
|
}
|
||||||
return dataList;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void downLoadFileList(List<OSSFile> fileTemplateList,Map<String ,String> fileNowPathMap) {
|
private void downLoadFileList(List<OSSFile> fileTemplateList,Map<String ,String> fileNowPathMap) {
|
||||||
@@ -3309,6 +3307,80 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将对象转Map
|
||||||
|
* @param obj 待转对象
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Map<String, Object> objectToMapDre(Object obj) {
|
||||||
|
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
// 获取f对象对应类中的所有属性域
|
||||||
|
List<Field> list = findAllFieldsOfSelfAndSuperClass(obj.getClass());
|
||||||
|
for (Field field : list) {
|
||||||
|
|
||||||
|
String varName = field.getName();
|
||||||
|
try {
|
||||||
|
// 获取原来的访问控制权限
|
||||||
|
boolean accessFlag = field.isAccessible();
|
||||||
|
// 修改访问控制权限
|
||||||
|
field.setAccessible(true);
|
||||||
|
// 获取在对象f中属性fields[i]对应的对象中的变量
|
||||||
|
Object o = field.get(obj);
|
||||||
|
if (o != null) {
|
||||||
|
if (Date.class.equals(field.getType())) {
|
||||||
|
Date date = (Date) o;
|
||||||
|
String pattern = "";
|
||||||
|
if ("deadline".equals(varName) || "reportTime".equals(varName)) {
|
||||||
|
pattern = "yyyy-MM-dd";
|
||||||
|
} else {
|
||||||
|
pattern = "yyyy-MM-dd HH:mm:ss";
|
||||||
|
}
|
||||||
|
SimpleDateFormat formatter=new SimpleDateFormat(pattern);
|
||||||
|
String time=formatter.format(date);
|
||||||
|
map.put(toUnderlineCase(varName), time);
|
||||||
|
} else {
|
||||||
|
map.put(toUnderlineCase(varName), o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 恢复访问控制权限
|
||||||
|
field.setAccessible(accessFlag);
|
||||||
|
} catch (IllegalArgumentException ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
} catch (IllegalAccessException ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 驼峰转 转 下划线
|
||||||
|
* userName ----> user_name
|
||||||
|
* user_name ----> user_name
|
||||||
|
*
|
||||||
|
* @param camelCaseStr 驼峰字符串
|
||||||
|
* @return 带下滑线的String
|
||||||
|
*/
|
||||||
|
private String toUnderlineCase(String camelCaseStr) {
|
||||||
|
if (camelCaseStr == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 将驼峰字符串转换成数组
|
||||||
|
char[] charArray = camelCaseStr.toCharArray();
|
||||||
|
StringBuffer buffer = new StringBuffer();
|
||||||
|
//处理字符串
|
||||||
|
for (int i = 0, l = charArray.length; i < l; i++) {
|
||||||
|
if (charArray[i] >= 65 && charArray[i] <= 90) {
|
||||||
|
buffer.append("_").append(charArray[i] += 32);
|
||||||
|
} else {
|
||||||
|
buffer.append(charArray[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return buffer.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过实体类获取 URL Params
|
* 通过实体类获取 URL Params
|
||||||
*
|
*
|
||||||
@@ -3841,7 +3913,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
private Map<String, Object> validatePull(String configName, String controlValues, String value, String mustInput, Boolean isSingle, String cut) {
|
private Map<String, Object> validatePull(String configName, String controlValues, String value, String mustInput, Boolean isSingle, String cut) {
|
||||||
String errorMsg = "";
|
String errorMsg = "";
|
||||||
int countError= 0;
|
int countError= 0;
|
||||||
List<String> controlValueList = Arrays.asList(controlValues.split(","));
|
List<String> controlValueList = Arrays.asList(controlValues.replaceAll(",", ",").split(","));
|
||||||
Map<String, Object> resultMap = new HashMap<>();
|
Map<String, Object> resultMap = new HashMap<>();
|
||||||
// StringBuilder newValue = new StringBuilder();
|
// StringBuilder newValue = new StringBuilder();
|
||||||
|
|
||||||
@@ -3858,7 +3930,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
|||||||
if (StringUtils.isNotEmpty(value)) {
|
if (StringUtils.isNotEmpty(value)) {
|
||||||
//判断是否是单选
|
//判断是否是单选
|
||||||
if (isSingle) {
|
if (isSingle) {
|
||||||
if (StringUtils.isNotBlank(value) && value.contains(",")) {
|
if (StringUtils.isNotBlank(value) && (value.contains("!") ||value.contains("!"))) {
|
||||||
if (CutEnum.CN.getValue().equals(cut)) {
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
errorMsg += configName + "为单选项;";
|
errorMsg += configName + "为单选项;";
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+1
@@ -17,6 +17,7 @@ import java.util.Map;
|
|||||||
public interface ProjectLibraryBaseMapper extends BaseMapper<ProjectLibraryBase> {
|
public interface ProjectLibraryBaseMapper extends BaseMapper<ProjectLibraryBase> {
|
||||||
/**分页列表*/
|
/**分页列表*/
|
||||||
List<ProjectLibraryBase> queryPageList(@Param("params") Map<String, Object> params);
|
List<ProjectLibraryBase> queryPageList(@Param("params") Map<String, Object> params);
|
||||||
|
List<ProjectLibraryBase> queryMaimList();
|
||||||
// IPage<ProjectLibraryBase> queryPageList(IPage page, Map<String, Object> params);
|
// IPage<ProjectLibraryBase> queryPageList(IPage page, Map<String, Object> params);
|
||||||
|
|
||||||
List<ProjectLibraryBase> getList(@Param("projectLibraryBase") ProjectLibraryBase projectLibraryBase);
|
List<ProjectLibraryBase> getList(@Param("projectLibraryBase") ProjectLibraryBase projectLibraryBase);
|
||||||
|
|||||||
+9
@@ -119,6 +119,15 @@
|
|||||||
</where>
|
</where>
|
||||||
order by plb.sort desc, plb.create_time desc
|
order by plb.sort desc, plb.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
<select id="queryMaimList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
|
||||||
|
|
||||||
|
<include refid="select_item"/>
|
||||||
|
|
||||||
|
<where>
|
||||||
|
parent_id = '' or parent_id is null
|
||||||
|
</where>
|
||||||
|
order by plb.sort desc, plb.create_time desc
|
||||||
|
</select>
|
||||||
<!-- <select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">-->
|
<!-- <select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">-->
|
||||||
|
|
||||||
<!-- <include refid="select_item"/>-->
|
<!-- <include refid="select_item"/>-->
|
||||||
|
|||||||
+162
-9
@@ -50,6 +50,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
@@ -491,19 +492,45 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
|||||||
+ "-" + projectVersion);
|
+ "-" + projectVersion);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//所有主项目
|
||||||
|
List<ProjectLibraryBase> projectLibraryBaseListParent = projectLibraryBaseMapper.queryMaimList();
|
||||||
|
disposeData(projectLibraryBaseListParent,"",false);
|
||||||
|
for(ProjectLibraryBase projectLibraryBase: projectLibraryBaseListParent){
|
||||||
|
//目标市场
|
||||||
|
String targetMarket = getMarket(params, targetMarketList, projectLibraryBase);
|
||||||
|
//主项目的版本号
|
||||||
|
String projectVersion = "";
|
||||||
|
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||||
|
projectVersion = "00";
|
||||||
|
}else{
|
||||||
|
projectVersion = projectLibraryBase.getProjectVersion();
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){
|
||||||
|
projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
|
||||||
|
+ "-" + projectLibraryBase.getYearName()
|
||||||
|
+ "-" + targetMarket
|
||||||
|
+ "-" + projectVersion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//项目名称模糊查询特殊处理(因为项目名称是多字段拼接的)
|
//项目名称模糊查询特殊处理(因为项目名称是多字段拼接的)
|
||||||
if(ObjectUtils.isNotEmpty(params.get("projectName"))){
|
if(ObjectUtils.isNotEmpty(params.get("projectName"))){
|
||||||
result = result.stream().filter(e->e.getProjectName().toLowerCase().contains(String.valueOf(params.get("projectName")).toLowerCase())).collect(Collectors.toList());
|
result = result.stream().filter(e->e.getProjectName().toLowerCase().contains(String.valueOf(params.get("projectName")).toLowerCase())).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
//数据组装
|
|
||||||
List<ProjectLibraryBase> resultTemp = new LinkedList<>();
|
|
||||||
for (ProjectLibraryBase projectLibraryBase : result) {
|
|
||||||
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
|
||||||
resultTemp.add(projectLibraryBase);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (ProjectLibraryBase projectLibraryBase : resultTemp) {
|
//处理搜索版本号,(因为列表展示数据是以主项目为主并绑定子项目, 所以搜索的时候只有子项目这种情况需要特殊处理)
|
||||||
|
List<ProjectLibraryBase> resultNew = getProjectLibraryBases(result, projectLibraryBaseListParent);
|
||||||
|
|
||||||
|
|
||||||
|
//数据组装
|
||||||
|
// List<ProjectLibraryBase> resultTemp = new LinkedList<>();
|
||||||
|
// for (ProjectLibraryBase projectLibraryBase : result) {
|
||||||
|
// if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||||
|
// resultTemp.add(projectLibraryBase);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
for (ProjectLibraryBase projectLibraryBase : resultNew) {
|
||||||
//子项目
|
//子项目
|
||||||
List<ProjectLibraryBase> children = result.stream()
|
List<ProjectLibraryBase> children = result.stream()
|
||||||
.filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList());
|
.filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList());
|
||||||
@@ -527,9 +554,135 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return resultTemp;
|
return resultNew;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private List<ProjectLibraryBase> getProjectLibraryBases(List<ProjectLibraryBase> result, List<ProjectLibraryBase> projectLibraryBaseListParent) {
|
||||||
|
//result中的主项目以及子项目对应的主项目
|
||||||
|
List<ProjectLibraryBase> resultParent = new LinkedList<>();
|
||||||
|
for (ProjectLibraryBase projectLibraryBase : result) {
|
||||||
|
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||||
|
resultParent.add(projectLibraryBase);
|
||||||
|
}else{
|
||||||
|
//子项目
|
||||||
|
List<ProjectLibraryBase> collect = result.stream()
|
||||||
|
.filter(e -> projectLibraryBase.getId().equals(e.getParentId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if(ObjectUtils.isNotEmpty(collect)){
|
||||||
|
resultParent.addAll(collect);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//搜索结果中子项目的子项目
|
||||||
|
List<ProjectLibraryBase> resultChild = new ArrayList<>();
|
||||||
|
//所有子项目
|
||||||
|
List<ProjectLibraryBase> childrenListTemp = result.stream().filter(e -> StringUtils.isNotBlank(e.getParentId())).collect(Collectors.toList());
|
||||||
|
List<String> childrenIdListTemp = childrenListTemp.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
//子项目的子项目
|
||||||
|
List<ProjectLibraryBase> collect3 = result.stream().filter(e -> StringUtils.isNotBlank(e.getParentId()) && childrenIdListTemp.contains(e.getParentId())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
if(ObjectUtils.isNotEmpty(collect3)){
|
||||||
|
//子项目的子项目的父id
|
||||||
|
List<String> childList = collect3.stream().map(ProjectLibraryBase::getParentId).collect(Collectors.toList());
|
||||||
|
//子项目
|
||||||
|
resultChild = childrenListTemp.stream().filter(e -> childList.contains(e.getId())).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//所有的主项目与通过筛选条件查询来的主项目进行过滤
|
||||||
|
List<ProjectLibraryBase> resultNew = new LinkedList<>();
|
||||||
|
//主项目
|
||||||
|
List<ProjectLibraryBase> collect1 = result.stream().filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList());
|
||||||
|
resultNew.addAll(collect1);
|
||||||
|
for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseListParent) {
|
||||||
|
//子项目
|
||||||
|
List<ProjectLibraryBase> collect = result.stream().filter(e -> projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList());
|
||||||
|
if(ObjectUtils.isNotEmpty(collect)){
|
||||||
|
resultNew.add(projectLibraryBase);
|
||||||
|
}
|
||||||
|
//子项目的子项目
|
||||||
|
if(ObjectUtils.isNotEmpty(resultChild)){
|
||||||
|
List<ProjectLibraryBase> collect2 = resultChild.stream().filter(e -> e.getParentId().equals(projectLibraryBase.getId())).collect(Collectors.toList());
|
||||||
|
if(ObjectUtils.isNotEmpty(collect2)){
|
||||||
|
resultNew.add(projectLibraryBase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resultNew = resultNew.stream().distinct().collect(Collectors.toList());
|
||||||
|
return resultNew;
|
||||||
|
}
|
||||||
|
// /**
|
||||||
|
// * 分页列表查询
|
||||||
|
// *
|
||||||
|
// * @return
|
||||||
|
// */
|
||||||
|
// @Override
|
||||||
|
// public List<ProjectLibraryBase> queryPageList(Map<String,Object> params) {
|
||||||
|
// List<ProjectLibraryBase> result = projectLibraryBaseMapper.queryPageList(params);
|
||||||
|
// disposeData(result,"",false);
|
||||||
|
// //目标市场
|
||||||
|
// List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
||||||
|
//
|
||||||
|
// for(ProjectLibraryBase projectLibraryBase: result){
|
||||||
|
// //目标市场
|
||||||
|
// String targetMarket = getMarket(params, targetMarketList, projectLibraryBase);
|
||||||
|
// //主项目的版本号
|
||||||
|
// String projectVersion = "";
|
||||||
|
// if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||||
|
// projectVersion = "00";
|
||||||
|
// }else{
|
||||||
|
// projectVersion = projectLibraryBase.getProjectVersion();
|
||||||
|
// }
|
||||||
|
// if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){
|
||||||
|
// projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
|
||||||
|
// + "-" + projectLibraryBase.getYearName()
|
||||||
|
// + "-" + targetMarket
|
||||||
|
// + "-" + projectVersion);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// //项目名称模糊查询特殊处理(因为项目名称是多字段拼接的)
|
||||||
|
// if(ObjectUtils.isNotEmpty(params.get("projectName"))){
|
||||||
|
// result = result.stream().filter(e->e.getProjectName().toLowerCase().contains(String.valueOf(params.get("projectName")).toLowerCase())).collect(Collectors.toList());
|
||||||
|
// }
|
||||||
|
// //数据组装
|
||||||
|
// List<ProjectLibraryBase> resultTemp = new LinkedList<>();
|
||||||
|
// for (ProjectLibraryBase projectLibraryBase : result) {
|
||||||
|
// if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||||
|
// resultTemp.add(projectLibraryBase);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// for (ProjectLibraryBase projectLibraryBase : resultTemp) {
|
||||||
|
// //子项目
|
||||||
|
// List<ProjectLibraryBase> children = result.stream()
|
||||||
|
// .filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList());
|
||||||
|
// if(children.size() != 0){
|
||||||
|
// //子项目的基础上添加的子项目
|
||||||
|
// List<String> childrenIdList = children.stream().map(ProjectLibraryBase::getId).distinct().collect(Collectors.toList());
|
||||||
|
// List<ProjectLibraryBase> childrenList = result.stream()
|
||||||
|
// .filter(e -> StringUtils.isNotBlank(e.getParentId()) && childrenIdList.contains(e.getParentId())).collect(Collectors.toList());
|
||||||
|
// children.addAll(childrenList);
|
||||||
|
//
|
||||||
|
// //按版本排序
|
||||||
|
// Collections.sort(children);
|
||||||
|
// projectLibraryBase.setChildren(children);
|
||||||
|
// //最后一个版本号(主项目和主项目都需要设置)
|
||||||
|
// String versionLast = children.get(children.size() - 1).getProjectVersion();
|
||||||
|
// //主版本设置最后一个版本号(用于项目扩展中的版本号)
|
||||||
|
// projectLibraryBase.setVersionLast(versionLast);
|
||||||
|
// for (ProjectLibraryBase child : children) {
|
||||||
|
// //每个子版本版本设置最后一个版本号(用于项目扩展中的版本号)
|
||||||
|
// child.setVersionLast(versionLast);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return resultTemp;
|
||||||
|
// }
|
||||||
|
|
||||||
private String getMarket(Map<String, Object> params, List<DictModel> targetMarketList, ProjectLibraryBase projectLibraryBase) {
|
private String getMarket(Map<String, Object> params, List<DictModel> targetMarketList, ProjectLibraryBase projectLibraryBase) {
|
||||||
List<DictModel> dictModelList = new ArrayList<>();
|
List<DictModel> dictModelList = new ArrayList<>();
|
||||||
for (String s : projectLibraryBase.getTargetMarket().split(",")) {
|
for (String s : projectLibraryBase.getTargetMarket().split(",")) {
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
:disabled="item.isLock == '1' ? true: false"
|
:disabled="item.isLock == '1' ? true: false"
|
||||||
:placeholder="$t('pleaseEnter')+$t('chinese')"
|
:placeholder="$t('pleaseEnter')+$t('chinese')"
|
||||||
@input="onInput"
|
@input="onInput"
|
||||||
|
:maxLength="1000"
|
||||||
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
|
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
|
||||||
v-model="item.dataValue"/>
|
v-model="item.dataValue"/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
<a-input class="box-input inputWid"
|
<a-input class="box-input inputWid"
|
||||||
:placeholder="$t('pleaseEnter')+$t('chinese')"
|
:placeholder="$t('pleaseEnter')+$t('chinese')"
|
||||||
@input="onInput"
|
@input="onInput"
|
||||||
|
:maxLength="1000"
|
||||||
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
|
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
|
||||||
v-model="item.dataValue"/>
|
v-model="item.dataValue"/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -926,13 +926,16 @@
|
|||||||
} else if (long && long === 'en-us') {
|
} else if (long && long === 'en-us') {
|
||||||
this.cut = 'en'
|
this.cut = 'en'
|
||||||
}
|
}
|
||||||
|
console.log(this.formInline)
|
||||||
let query = {
|
let query = {
|
||||||
paramsManifestId: this.paramsManifest.id,
|
paramsManifestId: this.paramsManifest.id,
|
||||||
cut: this.cut,
|
cut: this.cut,
|
||||||
|
...this.formInline,
|
||||||
|
...this.queryParamQuery,
|
||||||
ids: this.selectedRowKeys.join(','),
|
ids: this.selectedRowKeys.join(','),
|
||||||
exportName:this.$route.query.projectName + '(' + this.$route.query.title + ')'
|
exportName:this.$route.query.projectName + '(' + this.$route.query.title + ')'
|
||||||
}
|
}
|
||||||
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
|
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.xlsx'
|
||||||
downloadFile('/params/collectManifest/exportDre', name , query , this.selectClear)
|
downloadFile('/params/collectManifest/exportDre', name , query , this.selectClear)
|
||||||
},
|
},
|
||||||
getList(){
|
getList(){
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-card :bordered="false">
|
<a-card :bordered="false">
|
||||||
<div class="table-operator" style="margin-bottom: 10px">
|
<div class="table-operator" style="margin-bottom: 10px">
|
||||||
<div @click="versionStatisticsClick" v-if="!this.$route.query.parentId"
|
<div @click="versionStatisticsClick"
|
||||||
|
v-if="!this.$route.query.parentId && $t('Parametercollection')!= activeKey"
|
||||||
class="operator-text">
|
class="operator-text">
|
||||||
<a-icon type="plus"/>
|
<a-icon type="plus"/>
|
||||||
{{$t('versionStatistics')}}
|
{{$t('versionStatistics')}}
|
||||||
</div>
|
</div>
|
||||||
|
<div v-else
|
||||||
|
class="operator-text">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-tabs v-model="activeKey" class="ant-tabs">
|
<a-tabs v-model="activeKey" class="ant-tabs">
|
||||||
<a-tab-pane :key="$t('CurrentStatusOfTheProject')" :tab="$t('CurrentStatusOfTheProject')">
|
<a-tab-pane :key="$t('CurrentStatusOfTheProject')" :tab="$t('CurrentStatusOfTheProject')">
|
||||||
@@ -22,7 +26,7 @@
|
|||||||
v-if="activeKey == $t('CertificationProgress')"/>
|
v-if="activeKey == $t('CertificationProgress')"/>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane :key="$t('Parametercollection')" :tab="$t('Parametercollection')">
|
<a-tab-pane :key="$t('Parametercollection')" :tab="$t('Parametercollection')">
|
||||||
<ParameterCollectionEchart @currentStatus="currentStatus" :idList="idList"
|
<ParameterCollectionEchart @currentStatus="currentStatus" :idList="[]"
|
||||||
v-if="activeKey == $t('Parametercollection')"/>
|
v-if="activeKey == $t('Parametercollection')"/>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
|
|||||||
Reference in New Issue
Block a user