diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/AutoPoiDictConfig.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/AutoPoiDictConfig.java index 52608ae03..1b249c233 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/AutoPoiDictConfig.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/AutoPoiDictConfig.java @@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j; import com.jero.common.api.CommonAPI; import com.jero.common.system.vo.DictModel; import com.jero.common.util.oConvertUtils; +import org.apache.commons.lang3.StringUtils; import org.jeecgframework.dict.service.AutoPoiDictServiceI; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -31,7 +32,8 @@ public class AutoPoiDictConfig implements AutoPoiDictServiceI { /** * 通过字典查询easypoi,所需字典文本 - * + * + * 特殊说明:英文文本对应dicCode格式:dicCode_en,且dicTable为空 * @Author:scott * @since:2019-04-09 * @return @@ -42,7 +44,11 @@ public class AutoPoiDictConfig implements AutoPoiDictServiceI { List dictList = null; // step.1 如果没有字典表则使用系统字典表 if (oConvertUtils.isEmpty(dicTable)) { - dictList = commonAPI.queryDictItemsByCode(dicCode); + if("en".equals(dicCode.substring(dicCode.lastIndexOf("_")+1))) { + dictList = commonAPI.queryDictItemsByCode(dicCode.substring(0, dicCode.lastIndexOf("_"))); + } else { + dictList = commonAPI.queryDictItemsByCode(dicCode); + } } else { try { dicText = oConvertUtils.getString(dicText, dicCode); @@ -51,9 +57,21 @@ public class AutoPoiDictConfig implements AutoPoiDictServiceI { log.error(e.getMessage(),e); } } - for (DictModel t : dictList) { - if(t!=null){ - dictReplaces.add(t.getText() + "_" + t.getValue()); + if("en".equals(dicCode.substring(dicCode.lastIndexOf("_")+1))) { // 显示英文文本 + for (DictModel t : dictList) { + if (t != null) { + if(StringUtils.isBlank(t.getTextEn())){ // 字典值对应英文文本为空,则显示中文 + dictReplaces.add(t.getText() + "_" + t.getValue()); + } else { + dictReplaces.add(t.getTextEn() + "_" + t.getValue()); + } + } + } + } else { // 显示中文文本 + for (DictModel t : dictList) { + if (t != null) { + dictReplaces.add(t.getText() + "_" + t.getValue()); + } } } if (dictReplaces != null && dictReplaces.size() != 0) { diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java index 6c1d94d50..56bb99597 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/controller/ParamsInfoEOController.java @@ -63,6 +63,8 @@ public class ParamsInfoEOController extends JeroController page = new Page(pageNo, pageSize); IPage pageList = paramsInfoEOService.page(page, queryWrapper); +// List rows = pageList.getRecords(); +// paramsInfoEOService.getTreeDictItemText(rows, cut); return Result.OK(cut, pageList); } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/entity/ParamsInfoEO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/entity/ParamsInfoEO.java index ba863e01c..6c1162f49 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/entity/ParamsInfoEO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/entity/ParamsInfoEO.java @@ -77,8 +77,8 @@ public class ParamsInfoEO implements Serializable { private String paramsName; /**技术领域*/ - @Excel(name = "*技术领域", width = 15, dicCode = "technology_territory") - @Dict(dicCode = "technology_territory") + @Excel(name = "*技术领域", width = 15) +// @Dict(dicCode = "technology_territory") @ApiModelProperty(value = "技术领域") private String technologyTerritory; diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/ParamsInfoEOMapper.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/ParamsInfoEOMapper.java index 95bce2855..586d63afa 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/ParamsInfoEOMapper.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/ParamsInfoEOMapper.java @@ -1,6 +1,7 @@ package com.jero.modules.cert.template.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.cert.template.vo.ParamsInfoEnExport; import com.jero.modules.cert.template.vo.ParamsInfoVO; import com.jero.modules.cert.template.entity.ParamsInfoEO; import org.apache.ibatis.annotations.Param; @@ -16,4 +17,6 @@ import java.util.List; public interface ParamsInfoEOMapper extends BaseMapper { List selectListWithCert(@Param("paramsInfoVO") ParamsInfoVO paramsInfoVO); + + List selectListWithCertForEnExport(@Param("paramsInfoVO") ParamsInfoVO paramsInfoVO); } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/xml/ParamsInfoEOMapper.xml b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/xml/ParamsInfoEOMapper.xml index 37b75a019..3867e87ed 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/xml/ParamsInfoEOMapper.xml +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/mapper/xml/ParamsInfoEOMapper.xml @@ -54,6 +54,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pi.id as id, pi.create_by as create_by, @@ -112,4 +143,14 @@ + + \ No newline at end of file diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/IParamsInfoEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/IParamsInfoEOService.java index 8229dbd75..cea2cdb3b 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/IParamsInfoEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/IParamsInfoEOService.java @@ -1,8 +1,8 @@ package com.jero.modules.cert.template.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.jero.modules.cert.template.vo.ParamsInfoVO; import com.jero.modules.cert.template.entity.ParamsInfoEO; +import com.jero.modules.cert.template.vo.ParamsInfoVO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -81,4 +81,6 @@ public interface IParamsInfoEOService extends IService { * @param request */ void exportParamsInfo(String cut, ParamsInfoVO paramsInfoVO, String exportExcelName, HttpServletResponse response, HttpServletRequest request); + + void getTreeDictItemText(List paramsInfoEOList, String cut); } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java index 2ebd3b45b..c061d4b37 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java @@ -20,8 +20,10 @@ import com.jero.modules.cert.template.vo.ParamsInfoVO; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.split.common.ReadExcel; +import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.service.ISysDictItemService; +import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; import org.jeecgframework.poi.excel.ExcelExportUtil; @@ -59,6 +61,9 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl paramsInfoEOList = baseMapper.selectListWithCert(paramsInfoVO); // 中文数据导出 + getTreeDictItemText(paramsInfoEOList, cut); + List> sheetsList = new ArrayList<>(); + sheetsList = getCnExportSheetsList(paramsInfoEOList, fileNowPath); + workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF); - // 查询导出数据 - List paramsInfoEOList = baseMapper.selectListWithCert(paramsInfoVO); - if (CollectionUtil.isEmpty(paramsInfoEOList)) { - throw new JeroBootException("没有可导出的数据"); - } - - List fileTemplateList = new ArrayList<>(); - for (ParamsInfoEO paramsInfoEO : paramsInfoEOList) { - String fileTemplateConnectId = paramsInfoEO.getFileTemplateConnectId(); - if (StringUtils.isNotBlank(fileTemplateConnectId)) { - List ossFileList = ossFileService.getFileInfosByConnectId(fileTemplateConnectId); - List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); - paramsInfoEO.setFileTemplateName(StringUtils.join(fileNameList, ",")); - - fileTemplateList.addAll(ossFileList); - } - } - - // 查询导出参数项中认证类别最大级 - List nioNumber = paramsInfoEOList.stream().map(ParamsInfoEO::getNioNumber).collect(Collectors.toList()); - List certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(StringUtils.join(nioNumber, ",")); - List certCategoryNameList = new ArrayList<>(); - Map certCategoryMap = new HashMap<>(); - if (CollectionUtil.isNotEmpty(certCategoryParamsInfoEOList)) { - List certCategoryList = certCategoryParamsInfoEOList.stream().map(CertCategoryParamsInfoEO::getCertCategory).distinct().collect(Collectors.toList()); - List sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category"); - List finalCertCategoryList = certCategoryList; - certCategoryNameList = sysDictItemList.stream().filter(e-> finalCertCategoryList.contains(e.getItemValue())).map(SysDictItem::getItemText).collect(Collectors.toList()); - certCategoryMap = sysDictItemList.stream().filter(e-> finalCertCategoryList.contains(e.getItemValue())).collect(Collectors.toMap(c->c.getItemText(),c->c.getItemValue())); - } - //导出数据 - List> sheetsList = new ArrayList<>(); - - // 创建参数对象(用来设定excel得sheet得内容等信息) - ExportParams bussExportParams = new ExportParams(); - // 设置sheet得名称 - bussExportParams.setSheetName("企业参数表"); - bussExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题 - bussExportParams.setStyle(CommonExcelExportStyler.class); - // 创建sheet1使用得map - Map bussExportMap = new HashMap<>(); - // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName - bussExportMap.put("title", bussExportParams); - // 模版导出对应得实体类型 - bussExportMap.put("entity", ParamsInfoEO.class); - // sheet中要填充得数据 - bussExportMap.put("data", paramsInfoEOList); - sheetsList.add(bussExportMap); - - // 导出认证类别参数项 - if (CollectionUtil.isNotEmpty(certCategoryNameList)) { - // 所有数据 - List certCategoryParamsInfoListExport = new ArrayList<>(); - for (ParamsInfoEO paramsInfoEO : paramsInfoEOList) { - List categoryParamsInfoEOList = paramsInfoEO.getCertCategoryParamsInfoEOList(); - certCategoryParamsInfoListExport.addAll(categoryParamsInfoEOList); - } - if (CollectionUtil.isNotEmpty(certCategoryParamsInfoListExport)) { - for (String certCategoryName : certCategoryNameList) { - // 当前认证类别数据 - Map finalCertCategoryMap = certCategoryMap; - List certCategoryParamsInfoExport = certCategoryParamsInfoListExport.stream() - .filter(e -> finalCertCategoryMap.get(certCategoryName).equals(e.getCertCategory())) - .collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(certCategoryParamsInfoExport)) { - ExportParams certExportParams = new ExportParams(); - certExportParams.setSheetName(certCategoryName); - certExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题 - certExportParams.setStyle(CommonExcelExportStyler.class); - Map certExportMap = new HashMap<>(); - certExportMap.put("title", certExportParams); - certExportMap.put("entity", CertCategoryParamsInfoEO.class); - certExportMap.put("data", certCategoryParamsInfoExport); - sheetsList.add(certExportMap); - } - } - } - } - - workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF); - - //下载附件模板对应文件 - if (fileTemplateList != null && !fileTemplateList.isEmpty()) { - fileTemplateList = fileTemplateList.stream().distinct().collect(Collectors.toList()); - downLoadFileList(fileTemplateList,fileNowPath); + } else if (CutEnum.EN.getValue().equals(cut)) { + // 查询导出数据 + List paramsInfoEnExportList = baseMapper.selectListWithCertForEnExport(paramsInfoVO); // 英文数据导出 + getTreeDictItemTextForEnExport(paramsInfoEnExportList); + List> sheetsList = new ArrayList<>(); + sheetsList = getEnExportSheetsList(paramsInfoEnExportList, fileNowPath); + workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF); } @@ -440,6 +374,180 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl> getCnExportSheetsList(List paramsInfoEOList, String fileNowPath) throws IOException { + + if (CollectionUtil.isEmpty(paramsInfoEOList)) { + throw new JeroBootException("没有可导出的数据"); + } + + List fileTemplateList = new ArrayList<>(); + for (ParamsInfoEO paramsInfoEO : paramsInfoEOList) { + String fileTemplateConnectId = paramsInfoEO.getFileTemplateConnectId(); + if (StringUtils.isNotBlank(fileTemplateConnectId)) { + List ossFileList = ossFileService.getFileInfosByConnectId(fileTemplateConnectId); + List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); + paramsInfoEO.setFileTemplateName(StringUtils.join(fileNameList, ",")); + + fileTemplateList.addAll(ossFileList); + } + } + + // 查询导出参数项中认证类别最大级 + List nioNumber = paramsInfoEOList.stream().map(ParamsInfoEO::getNioNumber).collect(Collectors.toList()); + List certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(StringUtils.join(nioNumber, ",")); + List certCategoryNameList = new ArrayList<>(); + Map certCategoryMap = new HashMap<>(); + if (CollectionUtil.isNotEmpty(certCategoryParamsInfoEOList)) { + List certCategoryList = certCategoryParamsInfoEOList.stream().map(CertCategoryParamsInfoEO::getCertCategory).distinct().collect(Collectors.toList()); + List sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category"); + List finalCertCategoryList = certCategoryList; + certCategoryNameList = sysDictItemList.stream().filter(e-> finalCertCategoryList.contains(e.getItemValue())).map(SysDictItem::getItemText).collect(Collectors.toList()); + certCategoryMap = sysDictItemList.stream().filter(e-> finalCertCategoryList.contains(e.getItemValue())).collect(Collectors.toMap(c->c.getItemText(),c->c.getItemValue())); + } + //导出数据 + List> sheetsList = new ArrayList<>(); + + // 创建参数对象(用来设定excel得sheet得内容等信息) + ExportParams bussExportParams = new ExportParams(); + // 设置sheet得名称 + bussExportParams.setSheetName("企业参数表"); + bussExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题 + bussExportParams.setStyle(CommonExcelExportStyler.class); + // 创建sheet1使用得map + Map bussExportMap = new HashMap<>(); + // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName + bussExportMap.put("title", bussExportParams); + // 模版导出对应得实体类型 + bussExportMap.put("entity", ParamsInfoEO.class); + // sheet中要填充得数据 + bussExportMap.put("data", paramsInfoEOList); + sheetsList.add(bussExportMap); + + // 导出认证类别参数项 + if (CollectionUtil.isNotEmpty(certCategoryNameList)) { + // 所有数据 + List certCategoryParamsInfoListExport = new ArrayList<>(); + for (ParamsInfoEO paramsInfoEO : paramsInfoEOList) { + List categoryParamsInfoEOList = paramsInfoEO.getCertCategoryParamsInfoEOList(); + certCategoryParamsInfoListExport.addAll(categoryParamsInfoEOList); + } + if (CollectionUtil.isNotEmpty(certCategoryParamsInfoListExport)) { + for (String certCategoryName : certCategoryNameList) { + // 当前认证类别数据 + Map finalCertCategoryMap = certCategoryMap; + List certCategoryParamsInfoExport = certCategoryParamsInfoListExport.stream() + .filter(e -> finalCertCategoryMap.get(certCategoryName).equals(e.getCertCategory())) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(certCategoryParamsInfoExport)) { + ExportParams certExportParams = new ExportParams(); + certExportParams.setSheetName(certCategoryName); + certExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题 + certExportParams.setStyle(CommonExcelExportStyler.class); + Map certExportMap = new HashMap<>(); + certExportMap.put("title", certExportParams); + certExportMap.put("entity", CertCategoryParamsInfoEO.class); + certExportMap.put("data", certCategoryParamsInfoExport); + sheetsList.add(certExportMap); + } + } + } + } + //下载附件模板对应文件 + if (fileTemplateList != null && !fileTemplateList.isEmpty()) { + fileTemplateList = fileTemplateList.stream().distinct().collect(Collectors.toList()); + downLoadFileList(fileTemplateList,fileNowPath); + } + + return sheetsList; + } + + private List> getEnExportSheetsList(List paramsInfoEnExportList, String fileNowPath) throws IOException { + + if (CollectionUtil.isEmpty(paramsInfoEnExportList)) { + throw new JeroBootException("没有可导出的数据"); + } + + List fileTemplateList = new ArrayList<>(); + for (ParamsInfoEnExport paramsInfoEnExport : paramsInfoEnExportList) { + String fileTemplateConnectId = paramsInfoEnExport.getFileTemplateConnectId(); + if (StringUtils.isNotBlank(fileTemplateConnectId)) { + List ossFileList = ossFileService.getFileInfosByConnectId(fileTemplateConnectId); + List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); + paramsInfoEnExport.setFileTemplateName(StringUtils.join(fileNameList, ",")); + + fileTemplateList.addAll(ossFileList); + } + } + + // 查询导出参数项中认证类别最大级 + List nioNumber = paramsInfoEnExportList.stream().map(ParamsInfoEnExport::getNioNumber).collect(Collectors.toList()); + List certCategoryParamsInfoEOList = certCategoryParamsInfoEOService.selectListByNioNumber(StringUtils.join(nioNumber, ",")); + List certCategoryNameList = new ArrayList<>(); + Map certCategoryMap = new HashMap<>(); + if (CollectionUtil.isNotEmpty(certCategoryParamsInfoEOList)) { + List certCategoryList = certCategoryParamsInfoEOList.stream().map(CertCategoryParamsInfoEO::getCertCategory).distinct().collect(Collectors.toList()); + List sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category"); + List finalCertCategoryList = certCategoryList; + certCategoryNameList = sysDictItemList.stream().filter(e-> finalCertCategoryList.contains(e.getItemValue())).map(SysDictItem::getItemText).collect(Collectors.toList()); + certCategoryMap = sysDictItemList.stream().filter(e-> finalCertCategoryList.contains(e.getItemValue())).collect(Collectors.toMap(c->c.getItemText(),c->c.getItemValue())); + } + //导出数据 + List> sheetsList = new ArrayList<>(); + + // 创建参数对象(用来设定excel得sheet得内容等信息) + ExportParams bussExportParams = new ExportParams(); + // 设置sheet得名称 + bussExportParams.setSheetName("企业参数表"); + bussExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题 + bussExportParams.setStyle(CommonExcelExportStyler.class); + // 创建sheet1使用得map + Map bussExportMap = new HashMap<>(); + // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName + bussExportMap.put("title", bussExportParams); + // 模版导出对应得实体类型 + bussExportMap.put("entity", ParamsInfoEnExport.class); + // sheet中要填充得数据 + bussExportMap.put("data", paramsInfoEnExportList); + sheetsList.add(bussExportMap); + + // 导出认证类别参数项 + if (CollectionUtil.isNotEmpty(certCategoryNameList)) { + // 所有数据 + List certCategoryParamsInfoListExport = new ArrayList<>(); + for (ParamsInfoEnExport paramsInfoEnExport : paramsInfoEnExportList) { + List certCategoryParamsInfoEnExports = paramsInfoEnExport.getCertCategoryParamsInfoEnExportList(); + certCategoryParamsInfoListExport.addAll(certCategoryParamsInfoEnExports); + } + if (CollectionUtil.isNotEmpty(certCategoryParamsInfoListExport)) { + for (String certCategoryName : certCategoryNameList) { + // 当前认证类别数据 + Map finalCertCategoryMap = certCategoryMap; + List certCategoryParamsInfoExport = certCategoryParamsInfoListExport.stream() + .filter(e -> finalCertCategoryMap.get(certCategoryName).equals(e.getCertCategory())) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(certCategoryParamsInfoExport)) { + ExportParams certExportParams = new ExportParams(); + certExportParams.setSheetName(certCategoryName); + certExportParams.setType(ExcelType.XSSF); // 解决HSSFRichTextString cannot cast XSSFRichTextString问题 + certExportParams.setStyle(CommonExcelExportStyler.class); + Map certExportMap = new HashMap<>(); + certExportMap.put("title", certExportParams); + certExportMap.put("entity", CertCategoryParamsInfoEnExport.class); + certExportMap.put("data", certCategoryParamsInfoExport); + sheetsList.add(certExportMap); + } + } + } + } + //下载附件模板对应文件 + if (fileTemplateList != null && !fileTemplateList.isEmpty()) { + fileTemplateList = fileTemplateList.stream().distinct().collect(Collectors.toList()); + downLoadFileList(fileTemplateList,fileNowPath); + } + + return sheetsList; + } + private void downLoadFileList(List fileTemplateList,String fileNowPath) throws IOException { for(OSSFile fileExportDto : fileTemplateList){ String oldPath = fileExportDto.getUrl(); @@ -449,7 +557,6 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl paramsInfoEOList, String cut) { + //树形数据字典 + List categoryList = sysCategoryService.list(); + + for (ParamsInfoEO paramsInfoEO : paramsInfoEOList){ + String value = paramsInfoEO.getTechnologyTerritory(); + if (StringUtils.isNotBlank(value)) { + List idList = Arrays.asList(value.split(",")); + List sysCategoryList = categoryList.stream().filter(e -> idList.contains(e.getId())).collect(Collectors.toList()); + if (CutEnum.CN.getValue().equals(cut)) { + List nameList = sysCategoryList.stream().map(SysCategory::getName).collect(Collectors.toList()); + paramsInfoEO.setTechnologyTerritory(StringUtils.join(nameList, ",")); + } else { + List nameEnList = sysCategoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList()); + paramsInfoEO.setTechnologyTerritory(StringUtils.join(nameEnList, ",")); + } + } + } + } + + public void getTreeDictItemTextForEnExport(List paramsInfoEnExportList) { + //树形数据字典 + List categoryList = sysCategoryService.list(); + + for (ParamsInfoEnExport paramsInfoEnExport : paramsInfoEnExportList){ + String value = paramsInfoEnExport.getTechnologyTerritory(); + if (StringUtils.isNotBlank(value)) { + List idList = Arrays.asList(value.split(",")); + List sysCategoryList = categoryList.stream().filter(e -> idList.contains(e.getId())).collect(Collectors.toList()); + List nameEnList = sysCategoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList()); + paramsInfoEnExport.setTechnologyTerritory(StringUtils.join(nameEnList, ",")); + } + } + } } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/vo/ParamsInfoEnExport.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/vo/ParamsInfoEnExport.java index 83f432fb8..6a56cafdf 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/vo/ParamsInfoEnExport.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/vo/ParamsInfoEnExport.java @@ -8,6 +8,8 @@ import lombok.Data; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; +import java.util.List; + /** * @Author: liyawei * @Description: @@ -59,19 +61,19 @@ public class ParamsInfoEnExport { private String paramsName; /**技术领域*/ - @Excel(name = "*technology territory", width = 15, dicCode = "technology_territory") - @Dict(dicCode = "technology_territory") + @Excel(name = "*technology territory", width = 15) +// @Dict(dicCode = "technology_territory") @ApiModelProperty(value = "技术领域") private String technologyTerritory; /**参数批次*/ - @Excel(name = "*params batch", width = 15, dicCode = "params_batch") + @Excel(name = "*params batch", width = 15, dicCode = "params_batch_en") @Dict(dicCode = "params_batch") @ApiModelProperty(value = "参数批次") private String paramsBatch; /**责任领域*/ - @Excel(name = "*duty territory", width = 15, dicCode = "duty_territory") + @Excel(name = "*duty territory", width = 15, dicCode = "duty_territory_en") @Dict(dicCode = "duty_territory") @ApiModelProperty(value = "责任领域") private String dutyTerritory; @@ -82,7 +84,7 @@ public class ParamsInfoEnExport { private String description; /**认证类别*/ - @Excel(name = "cert category", width = 15, dicCode = "cert_category") + @Excel(name = "cert category", width = 15, dicCode = "cert_category_en") @Dict(dicCode = "cert_category") @ApiModelProperty(value = "认证类别") private String certCategory; @@ -110,4 +112,12 @@ public class ParamsInfoEnExport { @TableField(exist = false) private String fileTemplateName; //附件模板文件名 + /**参数模板id*/ + @ApiModelProperty(value = "参数模板id") + private String paramsTemplateId; + + @TableField(exist = false) + private List certCategoryParamsInfoEnExportList; // 认证类别参数列表 + + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java index a94ef2d79..2aff71a9b 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java @@ -51,6 +51,10 @@ public interface SysDictMapper extends BaseMapper { public String queryDictKeyByText(@Param("code") String code,@Param("text") String key); + /**根据code查询所有中文名*/ + @Select("select s.item_text from sys_dict_item s where s.dict_id = (select id from sys_dict where dict_code = #{code})") + public List queryDictNameByCode(@Param("code") String code); + @Deprecated public String queryTableDictTextByKey(@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("key") String key); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml index 56133cad0..7d9a4f9e2 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml @@ -4,7 +4,7 @@ diff --git a/jero-boot/jero-boot-modules/pom.xml b/jero-boot/jero-boot-modules/pom.xml index d1605c902..01f3ad0e8 100644 --- a/jero-boot/jero-boot-modules/pom.xml +++ b/jero-boot/jero-boot-modules/pom.xml @@ -161,6 +161,11 @@ prime-jwt 1.3.1 + + com.alibaba + fastjson + 1.2.62 + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryBaseEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryBaseEOService.java index 90159ed6d..c001cec47 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryBaseEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/IDummyInventoryBaseEOService.java @@ -36,7 +36,7 @@ public interface IDummyInventoryBaseEOService extends IService records = pageList.getRecords(); List createByList = records.stream().map(DummyInventoryBaseEO::getCreateBy).collect(Collectors.toList()); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.in(SysUser::getUsername, createByList); List userList = sysUserService.list(lambdaQueryWrapper); //订阅标识 @@ -187,7 +188,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl list = new ArrayList<>(); if(dummyInventoryBaseEOList.size() != 0){ - String base = JSONArray.fromObject(dummyInventoryBaseEOList).toString(); + String base = JSONArray.toJSONString(dummyInventoryBaseEOList); DummyContentChangeEO dummyContentChangeEOBase = new DummyContentChangeEO(); dummyContentChangeEOBase.setConnectId(dummyInventoryBaseEO.getId()); dummyContentChangeEOBase.setContentJson(base); list.add(dummyContentChangeEOBase); } if(dummyInventoryInfoEOList.size() != 0){ - String info = JSONArray.fromObject(dummyInventoryInfoEOList).toString(); + String info = JSONArray.toJSONString(dummyInventoryInfoEOList); DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO(); dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId()); dummyContentChangeEOInfo.setContentJson(info); @@ -242,39 +243,53 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl dummyContentChangeEOInfoList = iDummyContentChangeEOService.list(wrapperInfo); - //3.截止到现在发布,期间修改的数据(基础) - //数据为-->dummyInventoryBaseEOList - String dibName = dummyInventoryBaseEOList.get(0).getName(); - String dibUseExplain = dummyInventoryBaseEOList.get(0).getUseExplain(); + //3.对比基础表数据 + //3.1截止到现在发布,期间修改的数据(基础) + //最新的数据为-->dummyInventoryBaseEOList + + //3.2基础表数据对比 + String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson(); + List baseCJlist = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list + + //对比,获取值不同的字段 + Map> diff = null; + for(int i=0;i<= baseCJlist.size();i++) { + baseCJlist.get(i); + dummyInventoryBaseEOList.get(i); + diff = ListDiff.compareObject(baseCJlist.get(i), dummyInventoryBaseEOList.get(i)); + System.out.println(diff);//不同的字段原,现,{name=[虚拟清单33331122211, 虚拟清单3333444]} + } + + //4.对比详情表数据 + //4.1截止到现在发布,期间修改的数据(详情) + //现在的数据为-->dummyInventoryInfoEOList + //dummyInventoryInfoEOList + + //4.2详情表数据(一条基础数据可能对应多个详情数据---一对多) + /* String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson(); + List baseCJlist = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list + + //对比,获取值不同的字段 + Map> diff = null; + for(int i=0;i<= baseCJlist.size();i++) { + baseCJlist.get(i); + dummyInventoryBaseEOList.get(i); + diff = ListDiff.compareObject(baseCJlist.get(i), dummyInventoryBaseEOList.get(i)); + System.out.println(diff);//不同的字段原,现,{name=[虚拟清单33331122211, 虚拟清单3333444]} + }*/ + + for(DummyContentChangeEO dummyContentChangeEO : dummyContentChangeEOInfoList){ + String infoCJ = dummyContentChangeEO.getContentJson(); + List infoCJlist = JSONArray.parseArray(infoCJ, DummyContentChangeEO.class);//json转list + System.out.println(infoCJlist); + System.out.println(infoCJlist); + + +// JsonDiff.compareJson(infoCJjson,info,null); - //4.截止到现在发布,期间修改的数据(详情) - //数据为-->dummyInventoryInfoEOList - List contentJson = Arrays.asList(dummyContentChangeEOInfoList.get(0).getContentJson().split("},\\{")); - for(String midCJ:contentJson){ - List dccContentJson = Arrays.asList( midCJ.split("\",\"")); - System.out.println(dccContentJson); - } - //5.分别对比基础表数据和详情表数据 - - //5.1.基础表数据对比 - List dibContentJson = Arrays.asList(dummyContentChangeEOBaseList.get(0).getContentJson().split("\",\"")); - - //获取原虚拟清单名称 - String cJName = dibContentJson.get(6); - String trueCJName = disposeContentJson(cJName); - //获取原虚拟清单使用说明 - String cJUseExplain = dibContentJson.get(1); - String trueCJUseExplain = disposeContentJson(cJUseExplain); - //拼接本次发布时的修改信息 - if(!trueCJName.equals(dibName)) { - String cJNameMessage = dummyInventoryBaseEO.getUpdateBy() + "把" + trueCJName + "改为了" + dibName; - } - if(!trueCJUseExplain.equals(dibUseExplain)) { - String cJUseExplainMessage = dummyInventoryBaseEO.getUpdateBy() + "把" + trueCJUseExplain + "改为" + dibUseExplain; } - //5.2详情表数据(一条基础数据可能对应多个详情数据---一对多) //6.数据对比完成后.删除之前保存的dummy_inventory_info中的数据,重新保存最新的数据 @@ -289,12 +304,4 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl { + public static Map> compareObject(T obj1, T Obj2) + throws Exception { + Map> result = new HashMap>(); + + Field[] fs = obj1.getClass().getDeclaredFields(); + for (Field f : fs) { + f.setAccessible(true); + Object v1 = f.get(obj1); + Object v2 = f.get(Obj2); + if( ! equals(v1, v2) /*&& !f.getName().contains("update")*/ + && !f.getName().equals("updateTime") ){ + List resultList=new ArrayList<>(); + resultList.add(v1); + resultList.add(v2); + result.put(f.getName(), resultList); + + } + } + return result; + } + + public static boolean equals(Object obj1, Object obj2) { + if (obj1 == obj2) { + return true; + } + if (obj1 == null || obj2 == null) { + return false; + } + return obj1.equals(obj2); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java index f725ac89e..a9fc69a41 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java @@ -46,23 +46,23 @@ public class ProjectRelatedPersonnel implements Serializable { /**法规工程师*/ private java.lang.String lawEngineer; @TableField(exist = false) - @Excel(name = "法规工程师,lawEngineerName", width = 30,orderNum = "2") + @Excel(name = "法规工程师,lawEngineerName", width = 15,orderNum = "2") private java.lang.String lawEngineerName; /**工程接口人*/ private java.lang.String engineeringInterfacePerson; @TableField(exist = false) - @Excel(name = "工程接口人,engineeringInterfacePersonName", width = 30,orderNum = "3") + @Excel(name = "工程接口人,engineeringInterfacePersonName", width = 15,orderNum = "3") private java.lang.String engineeringInterfacePersonName; /**认证工程师*/ private java.lang.String certificationEngineer; @TableField(exist = false) - @Excel(name = "认证工程师,certificationEngineerName", width = 30,orderNum = "4") + @Excel(name = "认证工程师,certificationEngineerName", width = 15,orderNum = "4") private java.lang.String certificationEngineerName; /**备注*/ - @Excel(name = "备注,remark", width = 50,orderNum = "5") + @Excel(name = "备注,remark", width = 15,orderNum = "5") private java.lang.String remark; /**创建人*/ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ExportTemplateEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ExportTemplateEnum.java index cec962527..8fb305fb6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ExportTemplateEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ExportTemplateEnum.java @@ -4,7 +4,7 @@ package com.jero.modules.project.enums; */ public enum ExportTemplateEnum { - DUTY_TERRITORY("责任领域"," duty_territory"), + DUTY_TERRITORY("责任领域","duty_territory"), DUTY_TERRITORY_FIELD_of_PRODUCTION("生产领域","field_of_production"), // LAW_ENGINEER("法规工程师","lawEngineerName"), // ENGINEER_INTERFACE_PERSON("工程接口人","engineeringInterfacePersonName"), diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index f6cd6ecef..2f2c089b0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -9,11 +9,11 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.project.entity.ProjectRelatedPersonnel; -import com.jero.modules.project.enums.ExportTemplateEnum; import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper; import com.jero.modules.project.service.IProjectRelatedPersonnelService; import com.jero.modules.project.util.ExcelLangUtils; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysDictMapper; import com.jero.modules.system.mapper.SysUserMapper; import com.jero.modules.system.service.ISysDictService; @@ -60,6 +60,8 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl clazz, String title,String cut){ - List records=new ArrayList<>(); - ProjectRelatedPersonnel projectRelatedPersonnel=new ProjectRelatedPersonnel(); + List records = new ArrayList<>();; + // Step.1 组装查询条件 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ExportParams exportParams=null; // Step.2 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); try { + String fillingExplanationCN="填写说明\n" + + "1.导入数据从第三行开始,第一行为表头,第二行为填写说明,第三行是正式数据\n" + + "2.所有带*号的字段必须填写\n" + + "3.填写人员时,必须使用人员账号进行填写。\n" + + "4.填写的人员账号必须与系统中账号保持一致"; //中英切换模板 - if(CutEnum.CN.getValue().equals(cut)) { - projectRelatedPersonnel.setDutyTerritory(ExportTemplateEnum.DUTY_TERRITORY_FIELD_of_PRODUCTION.getName()); - exportParams=new ExportParams(title , "导出人:" + sysUser.getUsername(), title); + /* if(CutEnum.CN.getValue().equals(cut)) { + + exportParams=new ExportParams(title , fillingExplanationCN, title); }else{ - projectRelatedPersonnel.setDutyTerritory(ExportTemplateEnum.DUTY_TERRITORY_FIELD_of_PRODUCTION.getValue()); - exportParams=new ExportParams(title , "Exporter:" + sysUser.getUsername(), title); - } - projectRelatedPersonnel.setLawEngineerName("ning.chen,xinhui.wei"); - projectRelatedPersonnel.setEngineeringInterfacePersonName("ning.chen,xinhui.wei"); - projectRelatedPersonnel.setCertificationEngineerName("ning.chen,xinhui.wei"); - projectRelatedPersonnel.setRemark("xxxxx"); - if(projectRelatedPersonnel != null) { - records.add(projectRelatedPersonnel); + + exportParams=new ExportParams(title , ExportTemplateEnum.FILLING_EXPLANATION_EN.getName(), title); + }*/ + exportParams=new ExportParams(); + exportParams.setSheetName(title); + //查标签内容里的责任领域数据 + List dictItemNameList = sysDictMapper.queryDictNameByCode(DictCodeEnum.DUTY_TERRITORY.getValue()); + //新建相关人员表里的责任领域数据 + if (CollectionUtils.isNotEmpty(dictItemNameList)) { + for (String dictItemName : dictItemNameList) { + ProjectRelatedPersonnel projectRelatedPersonnel=new ProjectRelatedPersonnel(); + projectRelatedPersonnel.setDutyTerritory(dictItemName); + records.add(projectRelatedPersonnel); + } } + mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下 mv.addObject(NormalExcelConstants.CLASS, clazz);//!!!!这里设置中英切换 mv.addObject(NormalExcelConstants.PARAMS,exportParams); @@ -492,6 +505,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl lawEngineerUsers = new ArrayList<>(); if (StringUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineerName())){ List lawEngineerNameList = Arrays.asList(projectRelatedPersonnel.getLawEngineerName().split(",")); - if (CollectionUtils.isNotEmpty(lawEngineerNameList)) { + if (CollectionUtils.isNotEmpty(lawEngineerNameList) && StringUtils.isNotBlank(lawEngineerNameList.get(0))) { lawEngineerNameList = lawEngineerNameList.stream().distinct().collect(Collectors.toList()); lawEngineerUsers=sysUserService.queryUserIdListByNameList(lawEngineerNameList); if(lawEngineerUsers.size()!=lawEngineerNameList.size()){ @@ -567,19 +581,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl engineeringInterfacePersonUsers = new ArrayList<>(); if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePersonName())){ List engineeringInterfacePersonNameList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePersonName().split(",")); - if (CollectionUtils.isNotEmpty(engineeringInterfacePersonNameList)) { + if (CollectionUtils.isNotEmpty(engineeringInterfacePersonNameList) && StringUtils.isNotBlank(engineeringInterfacePersonNameList.get(0))) { engineeringInterfacePersonNameList = engineeringInterfacePersonNameList.stream().distinct().collect(Collectors.toList()); engineeringInterfacePersonUsers=sysUserService.queryUserIdListByNameList(engineeringInterfacePersonNameList); if(engineeringInterfacePersonUsers.size()!=engineeringInterfacePersonNameList.size()){ @@ -606,19 +615,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl certificationEngineerUsers = new ArrayList<>(); if (StringUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineerName())){ List certificationEngineerNameList = Arrays.asList(projectRelatedPersonnel.getCertificationEngineerName().split(",")); - if (CollectionUtils.isNotEmpty(certificationEngineerNameList)) { + if (CollectionUtils.isNotEmpty(certificationEngineerNameList) && StringUtils.isNotBlank(certificationEngineerNameList.get(0))) { certificationEngineerNameList = certificationEngineerNameList.stream().distinct().collect(Collectors.toList()); certificationEngineerUsers=sysUserService.queryUserIdListByNameList(certificationEngineerNameList); if(certificationEngineerUsers.size()!=certificationEngineerNameList.size()){ @@ -645,12 +649,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl records = projectRelatedPersonnelMapper.queryById(projectRelatedPersonnel.getId()); for (ProjectRelatedPersonnel data : records) { - if (StringUtils.isBlank(data.getLawEngineer())) {//数据库里法规工程师是空的 - projectRelatedPersonnel.setLawEngineer(projectRelatedPersonnel.getLawEngineer()); - }else{//数据库里不空,原+新 - StringBuilder law = new StringBuilder(data.getLawEngineer()); - String lawString = law.append(",").append(projectRelatedPersonnel.getLawEngineer()).toString(); - //去重 + //法规工程师 + String lawString = projectRelatedPersonnel.getLawEngineer(); + //去重 + if(StringUtils.isNotBlank(lawString)) { List lawList = Arrays.asList(lawString.split(",")); String lawDistinct = lawList.stream().distinct().collect(Collectors.joining(",")); - projectRelatedPersonnel.setLawEngineer(lawDistinct); } - if (StringUtils.isBlank(data.getEngineeringInterfacePerson())) {//数据库里工程接口人是空的 - projectRelatedPersonnel.setEngineeringInterfacePerson(projectRelatedPersonnel.getEngineeringInterfacePerson()); - }else{//数据库里不空,原+新 - StringBuilder interfacePerson = new StringBuilder(data.getEngineeringInterfacePerson()); - String interfaceString = interfacePerson.append(",").append(projectRelatedPersonnel.getEngineeringInterfacePerson()).toString(); - //去重 + //工程接口人 + String interfaceString = projectRelatedPersonnel.getEngineeringInterfacePerson(); + //去重 + if(StringUtils.isNotBlank(interfaceString)) { List interfaceList = Arrays.asList(interfaceString.split(",")); String interfaceDistinct = interfaceList.stream().distinct().collect(Collectors.joining(",")); projectRelatedPersonnel.setEngineeringInterfacePerson(interfaceDistinct); } - if (StringUtils.isBlank(data.getCertificationEngineer())) {//数据库里工程接口人是空的 - projectRelatedPersonnel.setCertificationEngineer(projectRelatedPersonnel.getCertificationEngineer()); - }else{//数据库里不空,原+新 - StringBuilder certification = new StringBuilder(data.getCertificationEngineer()); - String certificationString = certification.append(",").append(projectRelatedPersonnel.getCertificationEngineer()).toString(); - //去重 +// 工程接口人 + String certificationString = projectRelatedPersonnel.getCertificationEngineer(); + //去重 + if(StringUtils.isNotBlank(certificationString)) { List certificationList = Arrays.asList(certificationString.split(",")); - String certificationDistinct= certificationList.stream().distinct().collect(Collectors.joining(",")); + String certificationDistinct = certificationList.stream().distinct().collect(Collectors.joining(",")); projectRelatedPersonnel.setCertificationEngineer(certificationDistinct); } if (StringUtils.isBlank(data.getRemark())) {//数据库里备注是空的 projectRelatedPersonnel.setRemark(projectRelatedPersonnel.getRemark()); - } else {//数据库里备注不是空的 - if (StringUtils.isNotBlank(projectRelatedPersonnel.getRemark())) {//导入的备注不是空的 - } - - if (StringUtils.isNotBlank(projectRelatedPersonnel.getRemark())) {//导入的备注不是是空的,原+新 - StringBuilder remark = new StringBuilder(data.getRemark()); - projectRelatedPersonnel.setRemark(remark.append(",").append(projectRelatedPersonnel.getRemark()).toString()); - } else { - projectRelatedPersonnel.setRemark(data.getRemark()); - } + } else { + projectRelatedPersonnel.setRemark(""); } + Date now = new Date(); projectRelatedPersonnel.setUpdateTime(now); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); projectRelatedPersonnel.setUpdateBy(sysUser.getUsername()); - saveOrUpdate(projectRelatedPersonnel); + updateById(projectRelatedPersonnel); } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index a06768d9a..a36600081 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -546,6 +546,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl { + this.arrayValue.forEach((val) => { + if(item.value === val) { + arrayLabel.push(item) + } + }) + }) + this.$emit('changelabel', arrayLabel); } } }, diff --git a/jero-web/src/views/parameter/parameterlist/components/addModel.vue b/jero-web/src/views/parameter/parameterlist/components/addModel.vue index 6d699a2e0..841c5d98b 100644 --- a/jero-web/src/views/parameter/parameterlist/components/addModel.vue +++ b/jero-web/src/views/parameter/parameterlist/components/addModel.vue @@ -20,7 +20,7 @@ @@ -31,10 +31,10 @@ {{$t('Required')}} - + - - {{ item.text || item.label }} + + {{ item.label }} @@ -52,7 +52,7 @@ @@ -76,6 +76,195 @@ + + +
+
+ {{$t('parameterBatch')}} +
+ + + +
+
+ +
+
+ {{$t('areaOfResponsibility')}} +
+ + + +
+
+
+ + +
+
+ {{$t('ParameterDescription')}} +
+ + + +
+
+
+ + +
+
+ {{$t('certificationCategory')}} +
+ + + +
+
+
+ + +
+
+ {{$t('controlType')}} +
+ + + + + {{ item.label }} + + + + +
+
+ +
+
+ {{$t('controlVerification')}} +
+ + + + + {{ item.label }} + + + + +
+
+
+ + +
+
+ {{$t('controlAlternatives')}} +
+ + + +
+
+
+ + +
+
+ {{$t('attachmentTemplate')}} +
+ + + + + + {{ $t('clickUpload') }} + + +
+
+
+ + + + + + +
+
+ {{$t('standard')}} +
+ + + +
+
+ +
+
+ {{$t('ParameterName')}} +
+ + + +
+
+
+ + +
+
+ {{$t('ParameterDescription')}} +
+ + + +
+
+
+
+
+
+
@@ -96,11 +285,35 @@ export default { props: ['url'], data() { return { - isRequired: [ + isRequired: [ // 是否必填 {value:1, label: '是' }, {value:0, label: '否' } ], - CategoryTreeList: [], + controlType: [ // 控件类型 + {value:1, label: '文本' }, + {value:2, label: '下拉单选' }, + {value:3, label: '下拉多选' }, + {value:4, label: '附件' }, + {value:5, label: '文本+下拉单选' }, + {value:6, label: '文本+下拉多选' }, + {value:7, label: '文本+附件' }, + {value:8, label: '下拉单选+附件' }, + {value:9, label: '下拉多选+附件' }, + {value:10, label: '文本+下拉单选+附件' }, + ], + controlVerification: [ // 控件校验 + {value:1, label: '无' }, + {value:2, label: '中文' }, + {value:3, label: '正整数' }, + {value:4, label: '正浮点数' }, + {value:5, label: '整数或小数' }, + {value:6, label: '一位小数' }, + {value:7, label: '两位小数' }, + {value:8, label: '三位小数' }, + {value:9, label: '四位小数' }, + ], + CategoryTreeList: [], // 技术领域 + certCategoryParamsInfoEOList: [], // 认证类别得tab栏 formInline: {}, confirmLoading: false, visible: false, @@ -126,7 +339,8 @@ export default { }, disabled: false, projectNameList: [], - title: '' + title: '', + stateOne: '' } }, mounted() { @@ -134,6 +348,39 @@ export default { this.getSysCategoryTree() }, methods: { + clickButtonToUpload(item) { + // this.$refs.uploadFile.perentHandleFunc() + // this.$refs.uploadFile.state = item.flag + // this.$refs.uploadFile.visible = true + // this.uploadName = item.db_field_name + // getAction('sys/common/getFileInfos', { id: this.formInline[item.db_field_name] }).then((res) => { + // if (res.success) { + // this.$refs.uploadFile.perentHandleFunc(res.result) + // } else { + // this.$refs.uploadFile.perentHandleFunc() + // } + // }) + }, + Onchangelabel(val) { + this.certCategoryParamsInfoEOList = [] + console.log(val,'val。。。') + val.forEach((item) => { + let _tt = { + textVal: item.text, // tab + certCategory: '', // 所属认证类别 + paramsNumber: '', // 编号 + paramsName: '', // 参数名称 + description: ''// 参数说明 + } + this.certCategoryParamsInfoEOList.push(_tt) + }) + }, + Onchange() { + + }, + callback() { + + }, getSysCategoryTree() { getAction('/sys/category/getSysCategoryTree', {}).then((res) => { if (res.success) { diff --git a/jero-web/src/views/parameter/parameterlist/index.vue b/jero-web/src/views/parameter/parameterlist/index.vue index 4d62fb67b..3d377e855 100644 --- a/jero-web/src/views/parameter/parameterlist/index.vue +++ b/jero-web/src/views/parameter/parameterlist/index.vue @@ -109,11 +109,11 @@ export default { dataSource: [], confirmLoading: false, url: { - list: 'params/template/page', - add: 'params/template/add', - edit: 'params/template/edit', - deleteBatch: 'params/template/delete', - deleteAll: 'params/template/deleteBatch' + list: 'params/paramsInfo/page', + add: 'params/paramsInfo/add', + edit: 'params/paramsInfo/edit', + deleteBatch: 'params/paramsInfo/delete', + deleteAll: 'params/paramsInfo/deleteBatch' }, total: 0, pageSize: 10, @@ -124,12 +124,12 @@ export default { title: this.$t('NiONumber'), align: 'center', width: '10%', - dataIndex: 'region_dictText', + dataIndex: 'nioNumber', }, { title: this.$t('ParameterName'), align: 'center', - dataIndex: 'paramsTemplateName' + dataIndex: 'paramsName' }, { title: this.$t('ParameterDescription'), @@ -139,7 +139,7 @@ export default { { title: this.$t('areaOfResponsibility'), align: 'center', - dataIndex: 'state_dictText' + dataIndex: 'dutyTerritory' }, { title: this.$t('createTime'), diff --git a/jero-web/src/views/processCenter/processList/tabComponents/alreadyProcess/index.vue b/jero-web/src/views/processCenter/processList/tabComponents/alreadyProcess/index.vue index 4220196f2..d3d400b48 100644 --- a/jero-web/src/views/processCenter/processList/tabComponents/alreadyProcess/index.vue +++ b/jero-web/src/views/processCenter/processList/tabComponents/alreadyProcess/index.vue @@ -15,7 +15,7 @@ {{prcTypeName[text]}} - {{text && text == 0 ? '未完成':'已完成'}} + {{text && text == 0 ? $t('notFinished'):$t('Finished')}} {{$t('See')}} @@ -49,7 +49,7 @@ pageSize: 10, selectedRowKeys: [], prcTypeName: { - 1: '任务确认流程' + 1: this.$t('taskConfirmationProcess') }, columns: [ { diff --git a/jero-web/src/views/processCenter/processList/tabComponents/alreadySend/index.vue b/jero-web/src/views/processCenter/processList/tabComponents/alreadySend/index.vue index d7ca9c247..2bff799a8 100644 --- a/jero-web/src/views/processCenter/processList/tabComponents/alreadySend/index.vue +++ b/jero-web/src/views/processCenter/processList/tabComponents/alreadySend/index.vue @@ -15,7 +15,7 @@ {{prcTypeName[text]}} - {{text && text == 0 ? '未完成':'已完成'}} + {{text && text == 0 ? $t('notFinished'):$t('Finished')}} {{$t('See')}} @@ -50,7 +50,7 @@ pageSize: 10, selectedRowKeys: [], prcTypeName: { - 1: '任务确认流程' + 1: this.$t('taskConfirmationProcess') }, columns: [ { diff --git a/jero-web/src/views/processCenter/processList/tabComponents/monitorProcess/index.vue b/jero-web/src/views/processCenter/processList/tabComponents/monitorProcess/index.vue index 83b38fac5..dc0a74b2e 100644 --- a/jero-web/src/views/processCenter/processList/tabComponents/monitorProcess/index.vue +++ b/jero-web/src/views/processCenter/processList/tabComponents/monitorProcess/index.vue @@ -15,7 +15,7 @@ {{prcTypeName[text]}} - {{text && text == 0 ? '未完成':'已完成'}} + {{text && text == 0 ? $t('notFinished'):$t('Finished')}} {{$t('See')}} @@ -50,7 +50,7 @@ pageSize: 10, selectedRowKeys: [], prcTypeName: { - 1: '任务确认流程' + 1: this.$t('taskConfirmationProcess') }, columns: [ { diff --git a/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue b/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue index b6b4a61ca..c09adcfe2 100644 --- a/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue +++ b/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue @@ -47,7 +47,7 @@ pageSize: 10, selectedRowKeys: [], prcTypeName: { - 1: '任务确认流程' + 1: this.$t('taskConfirmationProcess') }, columns: [ { diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index 4652e1341..aa09a219b 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -583,427 +583,746 @@ export default { ] } }, - - mounted() { - if (this.$route.query.studioEngineer == this.userInfo().id) { - this.isDisplay = true - } else { - this.isDisplay = false - } - this.getList() - }, - methods: { - ...mapGetters(['userInfo']), - handleModule() { - + export default { + name: 'listOfRegulations', + components: { + ImportFile, + listAddModel, + listEditModel, + batSetting, + transferList, + globalAdvancedQuery }, - handleExport() { - - }, - //复制 - copyClick() { - if (this.selectedRowKeys.length > 0) { - let _this = this - this.$confirm({ - content: _this.$t('ConfirmReplication'), - onOk() { - let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys)) - deleteAction(_this.url.copyUrl, {ids: idList.join(',')}).then((res) => { - if (res.success) { - _this.$message.success(_this.$t('OperationSuccessful')) - _this.selectedRowKeys = [] - _this.getList() - } else { - _this.$message.warning(_this.$t('operationFailed')) + data() { + return { + columns: [ + { + title: this.$t('standard'), + align: 'center', + dataIndex: 'serialNumber', + width: 180, + fixed: 'left', + scopedSlots: { customRender: 'titleName' } + }, + { + title: this.$t('title'), + align: 'center', + dataIndex: 'title', + width: 180, + fixed: 'left', + scopedSlots: { customRender: 'titleName' } + }, + { + title: this.$t('subtitle'), + align: 'center', + dataIndex: 'subtitle', + width: 180, + fixed: 'left', + scopedSlots: { customRender: 'titleName' } + }, + { + title: this.$t('listConfirmationStatus'), + align: 'center', + ellipsis: true, + dataIndex: 'inventoryAffirmStatusName' + }, + { + title: this.$t('taskAffirmStatus'), + align: 'center', + ellipsis: true, + dataIndex: 'taskAffirmStatusName' + }, + // { + // title: this.$t('taskReleaseStatus'), + // align: 'center', + // dataIndex: 'taskReleaseStatus' + // }, + { + title: this.$t('correspondingStandard'), + align: 'center', + ellipsis: true, + dataIndex: 'correspondingStandard' + }, + { + title: this.$t('implementationCategory'), + align: 'center', + ellipsis: true, + dataIndex: 'implementType_dictText' + }, + { + title: this.$t('ImplementationDate'), + align: 'center', + ellipsis: true, + dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1' + }, + { + title: this.$t('vehicleInProductionDate'), + align: 'center', + ellipsis: true, + dataIndex: 'implementTime' + }, + { + title: 'WVTA ID', + align: 'center', + dataIndex: 'wvtaId', + ellipsis: true + }, + { + title: this.$t('certificationType'), + align: 'center', + ellipsis: true, + dataIndex: 'attestationType_dictText' + }, + { + title: this.$t('certificationLevel'), + align: 'center', + ellipsis: true, + dataIndex: 'attestationRank_dictText' + }, + // + { + title: this.$t('areaOfResponsibility'), + align: 'center', + ellipsis: true, + dataIndex: 'dutyTerritory_dictText' + }, + { + title: this.$t('regulatoryEngineer'), + align: 'center', + ellipsis: true, + dataIndex: 'regulationOwnerName' + }, + { + title: this.$t('certifiedEngineer'), + align: 'center', + ellipsis: true, + dataIndex: 'homologationEngineerName' + }, + { + title: this.$t('engineeringInterfacePerson'), + align: 'center', + ellipsis: true, + dataIndex: 'engineeringInterfacePersonName' + }, + { + title: this.$t('remarks'), + align: 'center', + ellipsis: true, + dataIndex: 'remark' + }, + { + title: this.$t('confirmationOfDesignConformity'), + children: [ + { + title: this.$t('Deliverables'), + dataIndex: 'designDeliverableTemplateName', + align: 'center', + scopedSlots: { customRender: 'designDeliverableTemplateName' } + }, + { + title: this.$t('Sponsor'), + dataIndex: 'designInitiatorName', + align: 'center' + }, + { + title: this.$t('personLiable'), + dataIndex: 'designDutyName', + align: 'center' + }, + { + title: this.$t('TaskCutOffTime'), + dataIndex: 'designDueDate', + align: 'center' } - }) - } - }) - } else { - this.$message.warning(this.$t('selectLeastOne')) - } - }, - //调取 - transferClick() { - if (this.selectedRowKeys.length > 0) { - this.$refs.transferListRef.transferModel(JSON.parse(JSON.stringify(this.selectedRowKeys))) - } else { - this.$message.warning(this.$t('selectLeastOne')) - } - }, - batSettingClick() { - if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { - this.$refs.batSettingRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys))) - } else { - this.$message.warning(this.$t('selectLeastOne')) - } - }, - handleAdd() { - this.$refs.addModelRef.addModel() - }, - handleDel() { - if (this.selectedRowKeys.length > 0) { - let _this = this - this.$confirm({ - content: _this.$t('ConfirmBatchDeletion'), - onOk() { - let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys)) - deleteAction(_this.url.deleteBatch, {ids: idList.join(',')}).then((res) => { - if (res.success) { - _this.$message.success(_this.$t('OperationSuccessful')) - _this.selectedRowKeys = [] - _this.getList() - } else { - _this.$message.warning(_this.$t('operationFailed')) + ] + }, + { + title: this.$t('PrehomoConfirmation'), + children: [ + { + title: this.$t('Deliverables'), + dataIndex: 'prehomoDeliverableTemplateName', + align: 'center', + scopedSlots: { customRender: 'prehomoDeliverableTemplateName' } + }, + { + title: this.$t('Sponsor'), + dataIndex: 'prehomoInitiatorName', + align: 'center' + }, + { + title: this.$t('personLiable'), + dataIndex: 'prehomoDutyName', + align: 'center' + }, + { + title: this.$t('TaskCutOffTime'), + dataIndex: 'prehomoDueDate', + align: 'center' } - }) + ] + }, + { + title: this.$t('verificationAndConformityconfirmation'), + children: [ + { + title: this.$t('Deliverables'), + dataIndex: 'verifyDeliverableTemplateName', + align: 'center', + scopedSlots: { customRender: 'verifyDeliverableTemplateName' } + }, + { + title: this.$t('Sponsor'), + dataIndex: 'verifyInitiatorName', + align: 'center' + }, + { + title: this.$t('personLiable'), + dataIndex: 'verifyDutyName', + align: 'center' + }, + { + title: this.$t('TaskCutOffTime'), + dataIndex: 'verifyDueDate', + align: 'center' + } + ] + }, + { + title: this.$t('operation'), + align: 'center', + fixed: 'right', + width: 140, + scopedSlots: { customRender: 'operation' } } - }) - } else { - this.$message.warning(this.$t('selectLeastOne')) + ], + columnsFile: [ + { + title: this.$t('deliverableTemplate'), + dataIndex: 'fileName', + align: 'center', + width: 260, + ellipsis: true + }, + { + title: this.$t('operation'), + align: 'center', + width: 130, + scopedSlots: { customRender: 'fileOperation' } + } + ], + visibleFile: false, + timeName: '', + dataSourceFile: [], + confirmLoading: false, + queryParamQuery: {}, + isDisplay: true, + selectedRowKeys: [], + visible: false, + formInline: {}, + rules: { + inventoryAffirmDueDate: [ + { + required: true, + message: this.$t('TaskCutOffTime') + this.$t('cannotEmpty'), + trigger: 'change' + } + ], + taskAffirmDueDate: [ + { + required: true, + message: this.$t('TaskCutOffTime') + this.$t('cannotEmpty'), + trigger: 'change' + } + ] + }, + queryParam: {}, + url: { + addModelList: '/project/projectLawsInventoryEO/queryPageInfoBussDocument', + list: '/project/projectLawsInventoryEO/list', + addModel: 'project/projectLawsInventoryEO/add', + editModel: '/project/projectLawsInventoryEO/edit', + deleteBatch: '/project/projectLawsInventoryEO/deleteBatch', + deleteOne: '/project/projectLawsInventoryEO/delete', + updateStatusBatch: '/project/projectLawsInventoryEO/updateStatusBatch', + matchRelevantPeople: '/project/projectLawsInventoryEO/matchRelevantPeople', + queryPersonByProject: '/project/projectRelatedPersonnel/queryPersonByProjectId', + setBatch: '/project/projectLawsInventoryEO/setBatch',//批量设置 + copyUrl: '/project/projectLawsInventoryEO/copyInfoByIds',//复制 + transferUrl: '/project/projectLawsInventoryEO/getPageInfoDummy'//调取 + }, + loading: false, + dataSource: [], + // fieldList | array |✔| 需要查询的列集合示例如下,type类型有:date/datetime/string/int/number + fieldList: [ + { + type: 'string', + value: 'correspondingStandard', + text: this.$t('correspondingStandard') + }, + { + type: '', + value: 'implementType', + text: this.$t('implementationCategory'), + dictCode: 'implement_type'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框 + }, + { + type: 'date', + value: 'xin1Che1Xing2Shi2Shi1Ri4Qi1', + text: this.$t('ImplementationDate') + }, + { + type: 'date', + value: 'implementTime', + text: this.$t('vehicleInProductionDate') + }, + { + type: 'string', + value: 'wvtaId', + text: 'WVTA ID' + }, + { + type: '', + value: 'attestationType', + text: this.$t('certificationType'), + dictCode: 'attestation_type'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框 + }, + { + type: '', + value: 'attestationRank', + text: this.$t('certificationLevel'), + dictCode: 'attestation_rank'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框 + }, + { + type: '', + value: 'dutyTerritory', + text: this.$t('areaOfResponsibility'), + dictCode: 'duty_territory'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框 + } + ] } }, - edit(item) { - this.$refs.editModelRef.editModel(JSON.parse(JSON.stringify(item))) + + mounted() { + if (this.$route.query.studioEngineer == this.userInfo().id) { + this.isDisplay = true + } else { + this.isDisplay = false + } + this.getList() }, - deleteLib(val) { - let _this = this - this.$confirm({ - content: _this.$t('ConfirmDelete'), - onOk() { - deleteAction(_this.url.deleteOne, {id: val.id}).then((res) => { - if (res.success) { - _this.$message.success(_this.$t('OperationSuccessful')) - _this.getList() - } else { - _this.$message.warning(_this.$t('operationFailed')) + methods: { + ...mapGetters(['userInfo']), + handleModule() { + + }, + handleExport() { + + }, + //复制 + copyClick() { + if (this.selectedRowKeys.length > 0) { + let _this = this + this.$confirm({ + content: _this.$t('ConfirmReplication'), + onOk() { + let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys)) + deleteAction(_this.url.copyUrl, { ids: idList.join(',') }).then((res) => { + if (res.success) { + _this.$message.success(_this.$t('OperationSuccessful')) + _this.selectedRowKeys = [] + _this.getList() + } else { + _this.$message.warning(_this.$t('operationFailed')) + } + }) } }) - } - }) - }, - onSelectChange(value) { - this.selectedRowKeys = value - }, - searchQuery() { - this.getList() - }, - searchReset() { - this.queryParam = {} - this.getList() - }, - addModelList() { - this.getList() - }, - handleSuperQuery(params, matchType) { - let sqp = {} - if (!params || (params && params.length == 0)) { - sqp['superQueryParams'] = '' - this.$refs.globalAdvancedQueryRef.superQueryFlag = false - } else { - this.$refs.globalAdvancedQueryRef.superQueryFlag = true - sqp['superQueryParams'] = encodeURI(JSON.stringify(params)) - sqp['superQueryMatchType'] = matchType - } - this.queryParamQuery = sqp - this.getList() - }, - getList() { - let query = { - ...this.queryParamQuery, - ...this.queryParam, - projectLibraryId: this.$route.query.id - } - this.loading = true - getAction(this.url.list, query).then((res) => { - if (res.success) { - this.dataSource = res.result - this.loading = false } else { - this.loading = false + this.$message.warning(this.$t('selectLeastOne')) } - }) - }, - getPersonnelList() { - this.getList() - }, - initiateListConfirmationcClick(name) { - this.timeName = name - if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { - let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) - let isTrue = true - for (let i = 0; i < this.dataSource.length; i++) { - for (let j = 0; j < selectedRowKeys.length; j++) { - if (this.dataSource[i].id == selectedRowKeys[j]) { - if ((this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'rejected') && - this.dataSource[i].homologationEngineerId && this.dataSource[i].regulationOwnerId) { - isTrue = true - } else { - this.$message.warning(this.$t('dataConfirmation')) - isTrue = false - return - } + }, + //调取 + transferClick() { + if (this.selectedRowKeys.length > 0) { + this.$refs.transferListRef.transferModel(JSON.parse(JSON.stringify(this.selectedRowKeys))) + } else { + this.$message.warning(this.$t('selectLeastOne')) + } + }, + batSettingClick() { + if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { + this.$refs.batSettingRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys))) + } else { + this.$message.warning(this.$t('selectLeastOne')) + } + }, + handleAdd() { + this.$refs.addModelRef.addModel() + }, + handleDel() { + if (this.selectedRowKeys.length > 0) { + let _this = this + this.$confirm({ + content: _this.$t('ConfirmBatchDeletion'), + onOk() { + let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys)) + deleteAction(_this.url.deleteBatch, { ids: idList.join(',') }).then((res) => { + if (res.success) { + _this.$message.success(_this.$t('OperationSuccessful')) + _this.selectedRowKeys = [] + _this.getList() + } else { + _this.$message.warning(_this.$t('operationFailed')) + } + }) } - } + }) + } else { + this.$message.warning(this.$t('selectLeastOne')) } - if (isTrue) { - this.visible = true - this.formInline = {} - } - } else { - this.$message.warning(this.$t('selectLeastOne')) - } - }, - initiateTaskConfirmationClick(name) { - this.timeName = name - if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { - let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) - let isTrue = true - for (let i = 0; i < this.dataSource.length; i++) { - for (let j = 0; j < selectedRowKeys.length; j++) { - if (this.dataSource[i].id == selectedRowKeys[j]) { - if ((this.dataSource[i].taskAffirmStatus == 'Not started' || this.dataSource[i].taskAffirmStatus == 'rejected') && - this.dataSource[i].engineeringInterfacePerson && this.dataSource[i].inventoryAffirmStatus == 'accepted') { - isTrue = true - } else { - isTrue = false - this.$message.warning(this.$t('taskDataConfirmation')) - return - } - } - } - } - if (isTrue) { - this.visible = true - this.formInline = {} - } - } else { - this.$message.warning(this.$t('selectLeastOne')) - } - }, - handleOk() { - this.$refs.ruleForm.validate(valid => { - if (valid) { - let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) - if (this.timeName == '清单') { - let query = { - operatorType: 0, - ids: selectedRowKeys.join(','), - projectLibraryId: this.$route.query.id, - ...this.formInline - } - this.confirmLoading = true - getAction(this.url.updateStatusBatch, query).then((res) => { + }, + edit(item) { + this.$refs.editModelRef.editModel(JSON.parse(JSON.stringify(item))) + }, + deleteLib(val) { + let _this = this + this.$confirm({ + content: _this.$t('ConfirmDelete'), + onOk() { + deleteAction(_this.url.deleteOne, { id: val.id }).then((res) => { if (res.success) { - this.$message.success(this.$t('OperationSuccessful')) - this.visible = false - this.selectedRowKeys = [] - this.confirmLoading = false - this.getList() + _this.$message.success(_this.$t('OperationSuccessful')) + _this.getList() } else { - this.$message.warning(this.$t('operationFailed')) - this.confirmLoading = false + _this.$message.warning(_this.$t('operationFailed')) } }) + } + }) + }, + onSelectChange(value) { + this.selectedRowKeys = value + }, + searchQuery() { + this.getList() + }, + searchReset() { + this.queryParam = {} + this.getList() + }, + addModelList() { + this.getList() + }, + handleSuperQuery(params, matchType) { + let sqp = {} + if (!params || (params && params.length == 0)) { + sqp['superQueryParams'] = '' + this.$refs.globalAdvancedQueryRef.superQueryFlag = false + } else { + this.$refs.globalAdvancedQueryRef.superQueryFlag = true + sqp['superQueryParams'] = encodeURI(JSON.stringify(params)) + sqp['superQueryMatchType'] = matchType + } + this.queryParamQuery = sqp + this.getList() + }, + getList() { + let query = { + ...this.queryParamQuery, + ...this.queryParam, + projectLibraryId: this.$route.query.id + } + this.loading = true + getAction(this.url.list, query).then((res) => { + if (res.success) { + this.dataSource = res.result + this.loading = false } else { - for (let i = 0; i < this.dataSource.length; i++) { - for (let j = 0; j < selectedRowKeys.length; j++) { - if (this.dataSource[i].id == selectedRowKeys[j]) { - this.dataSource[i].taskAffirmDueDate = this.formInline.taskAffirmDueDate - Object.keys(this.dataSource[i]).forEach(res => { - if (this.dataSource[i][res] && this.dataSource[i][res] instanceof String) { - this.dataSource[i][res] = this.dataSource[i][res].replace(/\"/g, '“') - this.dataSource[i][res] = this.dataSource[i][res].replace(/\'/g, '‘') - } - }) - setTimeout(() => { - this.startProcess(this.dataSource[i]) - }, 500) + this.loading = false + } + }) + }, + getPersonnelList() { + this.getList() + }, + initiateListConfirmationcClick(name) { + this.timeName = name + if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { + let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) + let isTrue = true + for (let i = 0; i < this.dataSource.length; i++) { + for (let j = 0; j < selectedRowKeys.length; j++) { + if (this.dataSource[i].id == selectedRowKeys[j]) { + if ((this.dataSource.inventoryAffirmStatus == 'Not started' || this.dataSource.inventoryAffirmStatus == 'rejected') && + this.dataSource.homologationEngineerId && this.dataSource.regulationOwnerId) { + isTrue = true + } else { + this.$message.warning(this.$t('dataConfirmation')) + isTrue = false + return } } } } - } - }) - }, - startProcess(value) { - let query = { - type: 1, - msg: JSON.stringify(value).replace(/\"/g, '\''), - projectNameId: this.$route.query.projectNameId, - projectName: this.$route.query.projectName, - taskAffirmDueDate: this.formInline.taskAffirmDueDate - } - postAction('/workFlow/startProcess', query).then((res) => { - if (res.success) { - this.completeTask(value, res.result) - } - }) - }, - completeTask(value, taskId) { - let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') - value.handlingTime = handlingTime - let query = { - userid: this.userInfo().id, - taskId: taskId, - json: JSON.stringify(value).replace(/\"/g, '\'') - } - postAction('/workFlow/completeTask', query).then((res) => { - if (res.success) { - this.visible = false - this.selectedRowKeys = [] - this.$message.success(this.$t('OperationSuccessful')) - this.$router.push({ - path: '/ProcessCenter' - }) + if (isTrue) { + this.visible = true + this.formInline = {} + } } else { - this.$message.warning(this.$t('operationFailed')) + this.$message.warning(this.$t('selectLeastOne')) } - }) - }, - getRowKeys(value, callBack) { - let isTrue = true - for (let i = 0; i < this.dataSource.length; i++) { - for (let j = 0; j < value.length; j++) { - if (this.dataSource[i].id == value[j]) { - if (this.dataSource[i].inventoryAffirmStatus == 'List to confirm') { - if (this.dataSource[i].roleCode == 1 && this.dataSource[i].regulationOwnerSubmitStatus) { + }, + initiateTaskConfirmationClick(name) { + this.timeName = name + if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { + let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) + let isTrue = true + for (let i = 0; i < this.dataSource.length; i++) { + for (let j = 0; j < selectedRowKeys.length; j++) { + if (this.dataSource[i].id == selectedRowKeys[j]) { + if ((this.dataSource[i].taskAffirmStatus == 'Not started' || this.dataSource[i].taskAffirmStatus == 'rejected') && + this.dataSource[i].engineeringInterfacePerson && this.dataSource[i].inventoryAffirmStatus == 'accepted') { + isTrue = true + } else { + isTrue = false + this.$message.warning(this.$t('taskDataConfirmation')) + return + } + } + } + } + if (isTrue) { + this.visible = true + this.formInline = {} + } + } else { + this.$message.warning(this.$t('selectLeastOne')) + } + }, + handleOk() { + this.$refs.ruleForm.validate(valid => { + if (valid) { + let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) + if (this.timeName == '清单') { + let query = { + operatorType: 0, + ids: selectedRowKeys.join(','), + projectLibraryId: this.$route.query.id, + ...this.formInline + } + this.confirmLoading = true + getAction(this.url.updateStatusBatch, query).then((res) => { + if (res.success) { + this.$message.success(this.$t('OperationSuccessful')) + this.visible = false + this.selectedRowKeys = [] + this.confirmLoading = false + this.getList() + } else { + this.$message.warning(this.$t('operationFailed')) + this.confirmLoading = false + } + }) + } else { + for (let i = 0; i < this.dataSource.length; i++) { + for (let j = 0; j < selectedRowKeys.length; j++) { + if (this.dataSource[i].id == selectedRowKeys[j]) { + this.dataSource[i].taskAffirmDueDate = this.formInline.taskAffirmDueDate + Object.keys(this.dataSource[i]).forEach(res => { + if (this.dataSource[i][res] && this.dataSource[i][res] instanceof String) { + this.dataSource[i][res] = this.dataSource[i][res].replace(/\"/g, '“') + this.dataSource[i][res] = this.dataSource[i][res].replace(/\'/g, '‘') + } + }) + setTimeout(() => { + this.startProcess(this.dataSource[i]) + }, 500) + } + } + } + } + } + }) + }, + startProcess(value) { + let query = { + type: 1, + msg: JSON.stringify(value).replace(/\"/g, '\''), + projectNameId: this.$route.query.projectNameId, + projectName: this.$route.query.projectName, + taskAffirmDueDate: this.formInline.taskAffirmDueDate + } + postAction('/workFlow/startProcess', query).then((res) => { + if (res.success) { + this.completeTask(value, res.result) + } + }) + }, + completeTask(value, taskId) { + let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') + value.handlingTime = handlingTime + let query = { + userid: this.userInfo().id, + taskId: taskId, + json: JSON.stringify(value).replace(/\"/g, '\'') + } + postAction('/workFlow/completeTask', query).then((res) => { + if (res.success) { + this.visible = false + this.selectedRowKeys = [] + this.$message.success(this.$t('OperationSuccessful')) + this.$router.push({ + path: '/ProcessCenter' + }) + } else { + this.$message.warning(this.$t('operationFailed')) + } + }) + }, + getRowKeys(value, callBack) { + let isTrue = true + for (let i = 0; i < this.dataSource.length; i++) { + for (let j = 0; j < value.length; j++) { + if (this.dataSource[i].id == value[j]) { + if (this.dataSource[i].inventoryAffirmStatus == 'List to confirm') { + if (this.dataSource[i].roleCode == 1 && this.dataSource[i].regulationOwnerSubmitStatus) { + isTrue = false + this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted')) + return + } else if (this.dataSource[i].roleCode == 2 && this.dataSource[i].homologationEngineerSubmitStatus) { + isTrue = false + this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted')) + return + } else if (this.dataSource[i].roleCode == 4 && (this.dataSource[i].homologationEngineerSubmitStatus && this.dataSource[i].regulationOwnerSubmitStatus)) { + isTrue = false + this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted')) + return + } + } else { isTrue = false - this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted')) - return - } else if (this.dataSource[i].roleCode == 2 && this.dataSource[i].homologationEngineerSubmitStatus) { - isTrue = false - this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted')) - return - } else if (this.dataSource[i].roleCode == 4 && (this.dataSource[i].homologationEngineerSubmitStatus && this.dataSource[i].regulationOwnerSubmitStatus)) { - isTrue = false - this.$message.warning(this.$t('The') + (i + 1) + this.$t('submitted')) + this.$message.warning(this.$t('The') + (i + 1) + this.$t('incorrectsubmitted')) return } - } else { - isTrue = false - this.$message.warning(this.$t('The') + (i + 1) + this.$t('incorrectsubmitted')) - return } } } - } - if (isTrue) { - callBack() - } - }, - updateStatusBatch(num, selectedRowKeys) { - let _this = this - let query = { - operatorType: 1, - ids: selectedRowKeys.join(','), - projectLibraryId: _this.$route.query.id, - operatorResult: num - } - getAction(_this.url.updateStatusBatch, query).then((res) => { - if (res.success) { - _this.$message.success(_this.$t('OperationSuccessful')) - _this.visible = false - this.selectedRowKeys = [] - _this.confirmLoading = false - _this.getList() - } else { - _this.$message.warning(_this.$t('operationFailed')) - _this.confirmLoading = false + if (isTrue) { + callBack() } - }) - }, - submitClick(num) { - let _this = this - if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { + }, + updateStatusBatch(num, selectedRowKeys) { + let _this = this + let query = { + operatorType: 1, + ids: selectedRowKeys.join(','), + projectLibraryId: _this.$route.query.id, + operatorResult: num + } + getAction(_this.url.updateStatusBatch, query).then((res) => { + if (res.success) { + _this.$message.success(_this.$t('OperationSuccessful')) + _this.visible = false + this.selectedRowKeys = [] + _this.confirmLoading = false + _this.getList() + } else { + _this.$message.warning(_this.$t('operationFailed')) + _this.confirmLoading = false + } + }) + }, + submitClick(num) { + let _this = this + if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { + this.$confirm({ + content: num == 0 ? _this.$t('confirmSubmit') : _this.$t('confirmOverrule'), + onOk() { + let selectedRowKeys = JSON.parse(JSON.stringify(_this.selectedRowKeys)) + _this.getRowKeys(selectedRowKeys, function() { + _this.updateStatusBatch(num, selectedRowKeys) + }) + } + }) + } else { + this.$message.warning(this.$t('selectLeastOne')) + } + }, + handleCancel() { + this.formInline = {} + this.visible = false + }, + dateChange(item) { + this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : '' + }, + pdfPreview(fileQuery) { + let fileName = fileQuery.fileName + let index1 = fileName.lastIndexOf('.') + let index2 = fileName.length + let fileSuffix = fileName.substring(index1, index2) + if (fileSuffix == '.pdf') { + window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id)) + } else if (fileSuffix == '.docx') { + let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) + window.open(url, '_blank') + } else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') { + let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) + window.open(url, '_blank') + } else { + downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id }) + } + }, + pdfPreviewClick(name, id) { + let fileName = name + let index1 = fileName.lastIndexOf('.') + let index2 = fileName.length + let fileSuffix = fileName.substring(index1, index2) + if (fileSuffix == '.pdf') { + window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id)) + } else if (fileSuffix == '.docx') { + let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix) + window.open(url, '_blank') + } else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') { + let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix) + window.open(url, '_blank') + } else { + downloadFile('/sys/common/downLoadFile', name, { id: id }) + } + }, + download(item) { + downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id }) + }, + clickButtonToUpload(item) { + this.loading = true + this.visibleFile = true + getAction('sys/common/getFileInfos', { id: item }).then((res) => { + if (res.success) { + this.dataSourceFile = res.result + this.loading = false + } else { + this.dataSourceFile = [] + this.loading = false + } + }) + }, + bringInRelevantPersonnelClick() { + let _this = this this.$confirm({ - content: num == 0 ? _this.$t('confirmSubmit') : _this.$t('confirmOverrule'), + content: _this.$t('confirmBringInRelevantPersonnel'), onOk() { - let selectedRowKeys = JSON.parse(JSON.stringify(_this.selectedRowKeys)) - _this.getRowKeys(selectedRowKeys, function () { - _this.updateStatusBatch(num, selectedRowKeys) + getAction(_this.url.matchRelevantPeople, { projectLibraryId: _this.$route.query.id }).then((res) => { + if (res.success) { + _this.$message.success(_this.$t('OperationSuccessful')) + _this.getList() + } else { + _this.$message.warning(_this.$t('operationFailed')) + } }) } }) - } else { - this.$message.warning(this.$t('selectLeastOne')) } - }, - handleCancel() { - this.formInline = {} - this.visible = false - }, - dateChange(item) { - this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : '' - }, - pdfPreview(fileQuery) { - let fileName = fileQuery.fileName - let index1 = fileName.lastIndexOf('.') - let index2 = fileName.length - let fileSuffix = fileName.substring(index1, index2) - if (fileSuffix == '.pdf') { - window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id)) - } else if (fileSuffix == '.docx') { - let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) - window.open(url, '_blank') - } else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') { - let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix) - window.open(url, '_blank') - } else { - downloadFile('/sys/common/downLoadFile', fileQuery.fileName, {id: fileQuery.id}) - } - }, - pdfPreviewClick(name, id) { - let fileName = name - let index1 = fileName.lastIndexOf('.') - let index2 = fileName.length - let fileSuffix = fileName.substring(index1, index2) - if (fileSuffix == '.pdf') { - window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id)) - } else if (fileSuffix == '.docx') { - let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix) - window.open(url, '_blank') - } else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') { - let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix) - window.open(url, '_blank') - } else { - downloadFile('/sys/common/downLoadFile', name, {id: id}) - } - }, - download(item) { - downloadFile('/sys/common/downLoadFile', item.fileName, {id: item.id}) - }, - clickButtonToUpload(item) { - this.loading = true - this.visibleFile = true - getAction('sys/common/getFileInfos', {id: item}).then((res) => { - if (res.success) { - this.dataSourceFile = res.result - this.loading = false - } else { - this.dataSourceFile = [] - this.loading = false - } - }) - }, - bringInRelevantPersonnelClick() { - let _this = this - this.$confirm({ - content: _this.$t('confirmBringInRelevantPersonnel'), - onOk() { - getAction(_this.url.matchRelevantPeople, {projectLibraryId: _this.$route.query.id}).then((res) => { - if (res.success) { - _this.$message.success(_this.$t('OperationSuccessful')) - _this.getList() - } else { - _this.$message.warning(_this.$t('operationFailed')) - } - }) - } - }) } } -}