From f3e891d508ca3915589c3f916a2826b4844e3980 Mon Sep 17 00:00:00 2001 From: liyawei Date: Sat, 2 Apr 2022 16:59:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=8B=86=E5=88=86=E6=9D=A1?= =?UTF-8?q?=E6=AC=BE-=E8=AF=A6=E6=83=85=E6=A0=91=E5=BD=A2=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E8=BD=AC=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/FileSplitItemsEOServiceImpl.java | 76 ++++++++++++++++--- 1 file changed, 67 insertions(+), 9 deletions(-) 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 72900c622..7eba1cbcc 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 @@ -655,7 +655,27 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl selectByPrimaryKey(String id) { - return dao.selectByPrimaryKey(id); + Map itemsMap = dao.selectByPrimaryKey(id); + // 查询条款表单字段 + List formFieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue()); + if (formFieldList.size() != 0) { + //过滤出表单字段中 控件类型为树结构的 + formFieldList = formFieldList.stream() + .filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm())) + && FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + } + for (OnlCgformField onlCgformField : formFieldList){ + String fieldType = onlCgformField.getFieldShowType(); + String dbFieldName = onlCgformField.getDbFieldName(); + if (FieldTypeEnum.FILE.getValue().equals(fieldType)) { + if (StringUtils.isNotBlank(itemsMap.get(dbFieldName).toString())) { + String[] values = itemsMap.get(dbFieldName).toString().split(","); + itemsMap.put(dbFieldName, values); + } + } + } + return itemsMap; } @Transactional @@ -702,7 +722,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl { - if(ObjectUtils.isNotEmpty(item.get(dbFieldName))) { + if(StringUtils.isNotBlank(item.get(dbFieldName).toString())) { con.append(",").append(item.get(dbFieldName).toString()); } }); // 合并 @@ -713,7 +733,20 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl oldItemMap : oldItemMapList){ + if(StringUtils.isNotBlank(oldItemMap.get(dbFieldName).toString())){ + connectIds += oldItemMap.get(dbFieldName).toString(); + } + } + if(connectIds != null){ + List ossFileList = ossFileService.getFileInfosByConnectId(connectIds); + ossFileList.forEach(file->{ + file.setConnectId(firstItemMap.get(dbFieldName).toString()); + }); + ossFileService.updateFileInfo(ossFileList); + } } else if(FieldTypeEnum.TEXT_NUMBER.getValue().equals(fieldType)){ Double num = null; for(Map oldItemMap : oldItemMapList){ @@ -1107,7 +1140,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl1) { //删除原上传文件 FileUnZip.deleteDir(saveDirectory); - return Result.error("压缩包内有多个Excel数据源"); + return Result.error("压缩包根目录下仅能存在一个excel为导入数据"); } File excelfile = excelfilelist.get(0); // 导入参数设置,默认即可 @@ -1121,7 +1154,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl dbfieldList = Arrays.asList(dbfields.split(",")); // 有顺序 // 解析excel,并返回校验信息 - result = read(excelfile, dbfieldList); + result = read(excelfile, dbfieldList,fields); Long getExcelInfo = System.currentTimeMillis(); //excel读取到的数据 List> datas = result; @@ -1174,6 +1207,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl> read(File file, List dbfieldList) { + private List> read(File file, List dbfieldList, String[] titles) { try { //最终返回数据 List> list = new ArrayList<>(); @@ -1245,18 +1280,39 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl map = null; //获得所有数据 //从第x行开始获取 for (int x = 2; x <= totalRowNum; x++) { map = new HashMap(); //获得第i行对象 - Row row = sheet.getRow(x); + Row rowTitle = sheet.getRow(x); //如果一行里的所有单元格都为空则不放进list里面 int a = 0; for (int y = 0; y < cellLength; y++) { @@ -1689,7 +1745,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; + html += message + ";"; +// html += message + "
"; } map.put("message", html); } @@ -1901,6 +1958,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm())) || "条款内容".equals(e.getDbFieldTxt())) + .sorted(Comparator.comparing(OnlCgformField::getOrderNum)) // 必须按顺序 .collect(Collectors.toList()); } //树形数据字典