From b4d1d4c8e4f7ef743e6fc7d2969a5e608a8433da Mon Sep 17 00:00:00 2001 From: liyawei Date: Mon, 4 Apr 2022 20:58:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=A1=E6=AC=BE=E5=88=97=E8=A1=A8=E5=AF=BC?= =?UTF-8?q?=E5=87=BAbug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/BussDocumentLibraryEOMapper.java | 2 +- .../xml/BussDocumentLibraryEOMapper.xml | 7 + .../IBussDocumentLibraryEOService.java | 1 + .../BussDocumentLibraryEOServiceImpl.java | 6 +- .../impl/FileSplitItemsEOServiceImpl.java | 181 ++++++++++++++++-- 5 files changed, 179 insertions(+), 18 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/mapper/BussDocumentLibraryEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/mapper/BussDocumentLibraryEOMapper.java index 2047cae83..30086c92c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/mapper/BussDocumentLibraryEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/mapper/BussDocumentLibraryEOMapper.java @@ -90,7 +90,7 @@ public interface BussDocumentLibraryEOMapper extends BaseMapper> queryListByIds(@Param("ids") String ids); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/mapper/xml/BussDocumentLibraryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/mapper/xml/BussDocumentLibraryEOMapper.xml index 78be81527..7886fc5f2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/mapper/xml/BussDocumentLibraryEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/mapper/xml/BussDocumentLibraryEOMapper.xml @@ -82,4 +82,11 @@ where id=#{id} + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/IBussDocumentLibraryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/IBussDocumentLibraryEOService.java index d3a5e37b2..75ca620c7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/IBussDocumentLibraryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/IBussDocumentLibraryEOService.java @@ -193,4 +193,5 @@ public interface IBussDocumentLibraryEOService extends IService ids); + List> queryListByIds(String ids); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 624498b40..90491e8bc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.google.common.collect.Maps; import com.jero.common.constant.CommonConstant; import com.jero.common.constant.WebsocketConst; import com.jero.common.constant.enums.*; @@ -4105,6 +4104,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl> queryListByIds(String ids) { + return bussDocumentLibraryEOMapper.queryListByIds(ids); + } + private void putMapCn(String id,String serialNumber,String moduleType, String content,String title,String fileText, String fileName,String cut,Map stringMap, 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 53325b6b4..c8792c886 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 @@ -21,6 +21,7 @@ import com.jero.common.util.DateUtils; import com.jero.generater.modules.online.cgform.entity.OnlCgformField; import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl; import com.jero.modules.document.enums.FieldTypeEnum; +import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.ocr.util.UUIDUtils; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; @@ -46,6 +47,8 @@ import com.jero.modules.split.util.POIReadExcelToHtml; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysCategoryTreeVO; import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.util.UserUtils; @@ -114,6 +117,11 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl fieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue()); -// // 日期类型字段 -// List onlCgformFieldList = fieldList.stream() -// .filter(e -> FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType())) -// .collect(Collectors.toList()); -// List fieldDateList = onlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 日期类型字段 + List onlCgformFieldList = fieldList.stream() + .filter(e -> FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fieldDateList = onlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 人员选择 + List onlCgformFieldPersonList = fieldList.stream() + .filter(e -> FieldTypeEnum.PERSON.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fieldPersonList = onlCgformFieldPersonList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 标准选择 + List onlCgformFieldStanList = fieldList.stream() + .filter(e -> FieldTypeEnum.STANDARD.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fieldStanList = onlCgformFieldStanList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 文件字段 + List onlCgformFieldFileList = fieldList.stream() + .filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fileList = onlCgformFieldFileList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 列表显示字段 if (fieldList.size() != 0) { // 过滤得到列表字段(is_show_list-->列表是否显示0否 1是) @@ -445,21 +469,68 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl treeFieldList = fieldList.stream() .filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())) .collect(Collectors.toList()); - //数据字典 + + // 数据字典 List sysDictItems = sysDictItemServiceImpl.selectItemsAll(); - //下拉选处理数据字典 + // 下拉选处理数据字典 List records = infoPage.getRecords(); - List idList = new ArrayList<>(); + List fileIdList = new ArrayList<>(); for (Map record : records) { Map record1 = (Map) record; - idList.add((String) record1.get("id")); for (Map.Entry entry : record1.entrySet()) { List collect = fieldList.stream() - .filter(e -> entry.getKey().equals(e.getDictField()) && !FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())) + .filter(e -> entry.getKey().equals(e.getDbFieldName()) && !FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())) .collect(Collectors.toList()); - //下拉选处理数据字典 + // 下拉选处理数据字典 dictItem(sysDictItems, entry, collect, cut); + // 树形结构处理数据字典 treeDictItem(categoryList, entry, treeFieldList, cut); + // 文件类型 获取connectId 用于列表回显文件名 + if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())){ + fileIdList.add((String)entry.getValue()); + } + // 单日期 + if(fieldDateList.contains(entry.getKey()) && ObjectUtil.isNotEmpty(entry.getValue())){ + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + entry.setValue(dateFormat.format((Date)entry.getValue())); + } + // 人员选择 + if(fieldPersonList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())) { + List sysUserList = sysUserService.listByIds(Arrays.asList(entry.getValue().toString().split(","))); + StringBuilder stringBuilder = new StringBuilder(); + for(SysUser user : sysUserList){ + stringBuilder.append(user.getRealname()).append("(").append(user.getUsername()).append("),"); + } + String value = stringBuilder.substring(0, stringBuilder.lastIndexOf(",")); + entry.setValue(value); + } + // 标准选择 + if(fieldStanList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())) { + List> documentLibraryEOList = documentLibraryEOService.queryListByIds(entry.getValue().toString()); + if(CollectionUtil.isNotEmpty(documentLibraryEOList)){ + String value = StringUtils.join(documentLibraryEOList.stream().map(map->map.get("serial_number")).collect(Collectors.toList()),","); + entry.setValue(value); + } + } + } + } + // 拼接文件名 + if(fileIdList.size() != 0){ + List fileInfos = ossFileService.getFileInfos(StringUtils.join(fileIdList, ",")); + if(fileInfos.size() != 0){ + for (Map record : records) { + Map record1 = (Map) record; + for (Map.Entry entry : record1.entrySet()) { + if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())){ + String value = (String) entry.getValue(); + List ossFileList = fileInfos.stream().filter(e -> value.equals(e.getConnectId())).collect(Collectors.toList()); + if(ossFileList.size() != 0){ + List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); + entry.setValue(StringUtils.join(fileNameList,",")); + } + } + } + } } } return infoPage; @@ -536,7 +607,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl> mapList = queryCondition("4", null); + List> mapList = queryCondition(ModuleEnum.FILE_SPLIT_ITEMS.getValue(), null); //查询条件处理 for (Map.Entry entry : parameter.entrySet()) { @@ -586,6 +657,14 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl= '" + value.split(",")[0] + "'" + + " and " + "date_format(" + key + ",'%Y-%m-%d') <= '" + value.split(",")[1] + "'"); + } else { + conditionSb.append(" and " + "date_format(" + key + ",'%Y-%m-%d') = '" + value + "'"); + } } } } @@ -2146,9 +2225,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl sysDictItems, Map.Entry entry, List collect, String cut) { - Map map = new HashMap<>(); //通过dictField判断字段是否为下拉选(不为空则为下拉选) if (collect.size() != 0 && StringUtils.isNotBlank(collect.get(0).getDictField())) { + String dictCode = collect.get(0).getDictField(); String value = (String) entry.getValue(); //数据字典中文 List dictItemsCh = new ArrayList<>(); @@ -2157,7 +2236,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl dictItemList = sysDictItems.stream() - .filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(entry.getKey())) + .filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(dictCode)) .collect(Collectors.toList()); if (dictItemList.size() != 0) { List dictItems = dictItemList.stream() @@ -2315,12 +2394,34 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl> itemsDataForExport = dao.queryByOrdersForExport(field,idList, infoId); // 查询条款表所有字段 List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue()); + // 日期类型字段 + List onlCgformFieldList = fieldList.stream() + .filter(e -> FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fieldDateList = onlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 人员选择 + List onlCgformFieldPersonList = fieldList.stream() + .filter(e -> FieldTypeEnum.PERSON.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fieldPersonList = onlCgformFieldPersonList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 标准选择 + List onlCgformFieldStanList = fieldList.stream() + .filter(e -> FieldTypeEnum.STANDARD.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fieldStanList = onlCgformFieldStanList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 文件字段 + List onlCgformFieldFileList = fieldList.stream() + .filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fileList = onlCgformFieldFileList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + // 过滤导出字段 if (fieldList.size() != 0) { fieldList = fieldList.stream() .filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm())) || "条款内容".equals(e.getDbFieldTxt())) .collect(Collectors.toList()); } + //树形数据字典 List categoryList = sysCategoryService.list(); //过滤出树形字段 @@ -2329,16 +2430,64 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl sysDictItems = sysDictItemServiceImpl.selectItemsAll(); + List fileIdList = new ArrayList<>(); // 处理数据下拉框,树形结构数据及中英文切换 for (Map record : itemsDataForExport) { Map record1 = (Map) record; for (Map.Entry entry : record1.entrySet()) { List collect = fieldList.stream() - .filter(e -> entry.getKey().equals(e.getDictField()) && !FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())) + .filter(e -> entry.getKey().equals(e.getDbFieldName()) && !FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())) .collect(Collectors.toList()); //下拉选处理数据字典 dictItem(sysDictItems, entry, collect, cut); + // 树形结构处理数据字典 treeDictItem(categoryList, entry, treeFieldList, cut); + // 文件类型 获取connectId 用于列表回显文件名 + if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())){ + fileIdList.add((String)entry.getValue()); + } + // 单日期 + if(fieldDateList.contains(entry.getKey()) && ObjectUtil.isNotEmpty(entry.getValue())){ + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + entry.setValue(dateFormat.format((Date)entry.getValue())); + } + // 人员选择 + if(fieldPersonList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())) { + List sysUserList = sysUserService.listByIds(Arrays.asList(entry.getValue().toString().split(","))); + StringBuilder stringBuilder = new StringBuilder(); + for(SysUser user : sysUserList){ + stringBuilder.append(user.getRealname()).append("(").append(user.getUsername()).append("),"); + } + String value = stringBuilder.substring(0, stringBuilder.lastIndexOf(",")); + entry.setValue(value); + } + // 标准选择 + if(fieldStanList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())) { + List> documentLibraryEOList = documentLibraryEOService.queryListByIds(entry.getValue().toString()); + if(CollectionUtil.isNotEmpty(documentLibraryEOList)){ + String value = StringUtils.join(documentLibraryEOList.stream().map(map->map.get("serial_number")).collect(Collectors.toList()),","); + entry.setValue(value); + } + } + } + } + // 拼接文件名 + if(fileIdList.size() != 0){ + List fileInfos = ossFileService.getFileInfos(StringUtils.join(fileIdList, ",")); + if(fileInfos.size() != 0){ + for (Map record : itemsDataForExport) { + Map record1 = (Map) record; + for (Map.Entry entry : record1.entrySet()) { + if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank((String) entry.getValue())){ + String value = (String) entry.getValue(); + List ossFileList = fileInfos.stream().filter(e -> value.equals(e.getConnectId())).collect(Collectors.toList()); + if(ossFileList.size() != 0){ + List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); + entry.setValue(StringUtils.join(fileNameList,",")); + } + } + } + } } } return itemsDataForExport;