diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/FileSplitItemsEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/FileSplitItemsEOController.java index 40ddf04d1..2de4836e7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/FileSplitItemsEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/FileSplitItemsEOController.java @@ -58,7 +58,7 @@ public class FileSplitItemsEOController extends JeroController getSplitItemsById(String id){ - Map item = fileSplitItemsEOService.selectByPrimaryKey(id); + Map item = fileSplitItemsEOService.getInfoById(id); return Result.OK(item); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java index 85ca00333..5139a7987 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java @@ -48,6 +48,12 @@ public class SarFileSplitInfoController extends JeroController queryPageList(SarFileSplitInfoEOPage sarFileSplitInfoEOPage) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getSerialNumber())){ + sarFileSplitInfoEOPage.setSerialNumber(sarFileSplitInfoEOPage.getSerialNumber().replace("%","\\%")); + } + if(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getTitle())){ + sarFileSplitInfoEOPage.setTitle(sarFileSplitInfoEOPage.getTitle().replace("%","\\%")); + } queryWrapper.like(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getSerialNumber()), SarFileSplitInfoEO::getSerialNumber, sarFileSplitInfoEOPage.getSerialNumber()) .like(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getTitle()), SarFileSplitInfoEO::getTitle, sarFileSplitInfoEOPage.getTitle()) .orderBy(StringUtils.isNotBlank(sarFileSplitInfoEOPage.getOrderByField()), "1".equals(sarFileSplitInfoEOPage.getOrderBy())?true:false, SarFileSplitInfoEO::getCreateTime) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java index fa11c08eb..fcbf8e94f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java @@ -29,7 +29,7 @@ public interface IFileSplitItemsEOService extends IService int updateItemContent(Map parameter); - int insertInfo(Map parameter, String id); + int insertInfo(Map parameter, String id, String type); IPage getInfoPage(Map parameter); @@ -43,6 +43,8 @@ public interface IFileSplitItemsEOService extends IService Map selectByPrimaryKey(String id); + Map getInfoById(String id); + Map batchMergeItems(String ids); int batchSet(Map parameter); 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 c1dcf0a03..c88bbfe0d 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 @@ -7,6 +7,7 @@ import cn.hutool.core.util.ZipUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.utils.IOUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -189,7 +190,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl parameter, String id){ + public int insertInfo(Map parameter, String id, String type){ StringBuilder fieldsBuilder = new StringBuilder(); // 字段名称 StringBuilder valuesBuilder = new StringBuilder(); // 字段值 @@ -362,18 +363,57 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl oSSFileList = new ArrayList<>(); - for (String fileId : value.toString().split(",")) { - OSSFile ossFile = new OSSFile(); - ossFile.setId(fileId); - ossFile.setConnectId(valueTemp); - oSSFileList.add(ossFile); + if("add".equals(type) || "import".equals(type)) { + String valueTemp = UUID.randomUUID().toString().replace("-", ""); + // value = valueTemp; + //修改文件表关联信息connect_id + List oSSFileList = new ArrayList<>(); + for (String fileId : value.toString().split(",")) { + OSSFile ossFile = new OSSFile(); + ossFile.setId(fileId); + ossFile.setConnectId(valueTemp); + oSSFileList.add(ossFile); + } + ossFileService.updateFileInfo(oSSFileList); + valuesBuilder.append("," + "'" + valueTemp + "'"); + } else if("set".equals(type) || "merge".equals(type) ||"copy".equals(type)){ + valuesBuilder.append("," + "'" + value + "'"); + } else if("update".equals(type)){ + // 前端标识 key_flag 0-未修改, 1-已修改 + if(value.toString().contains(",")){ + String valueTemp = UUID.randomUUID().toString().replace("-", ""); + // value = valueTemp; + //修改文件表关联信息connect_id + List oSSFileList = new ArrayList<>(); + for (String fileId : value.toString().split(",")) { + OSSFile ossFile = new OSSFile(); + ossFile.setId(fileId); + ossFile.setConnectId(valueTemp); + oSSFileList.add(ossFile); + } + ossFileService.updateFileInfo(oSSFileList); + valuesBuilder.append("," + "'" + valueTemp + "'"); + } else { + List ossFiles = ossFileService.getFileInfosByConnectId(value.toString()); + if(CollectionUtil.isNotEmpty(ossFiles)){ + valuesBuilder.append("," + "'" + value + "'"); + } else { + String valueTemp = UUID.randomUUID().toString().replace("-", ""); + // value = valueTemp; + //修改文件表关联信息connect_id + List oSSFileList = new ArrayList<>(); + for (String fileId : value.toString().split(",")) { + OSSFile ossFile = new OSSFile(); + ossFile.setId(fileId); + ossFile.setConnectId(valueTemp); + oSSFileList.add(ossFile); + } + ossFileService.updateFileInfo(oSSFileList); + valuesBuilder.append("," + "'" + valueTemp + "'"); + } + } + } - ossFileService.updateFileInfo(oSSFileList); - valuesBuilder.append("," + "'" + valueTemp + "'"); } else { valuesBuilder.append("," + "'" + value + "'"); } @@ -719,7 +759,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl queryItemIdList = new ArrayList<>(); @@ -743,6 +783,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl selectByPrimaryKey(String id) { + Map itemsMap = dao.selectByPrimaryKey(id); + return itemsMap; + } + + @Override + public Map getInfoById(String id) { Map itemsMap = dao.selectByPrimaryKey(id); // 查询条款表单字段 List formFieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue()); @@ -822,7 +868,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl { if(ObjectUtils.isNotEmpty(item.get(dbFieldName))) { @@ -830,15 +877,17 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl { if(StringUtils.isNotBlank((String)item.get(dbFieldName))) { - con.append(",").append(item.get(dbFieldName).toString()); + con.append(item.get(dbFieldName).toString()).append(","); } }); // 合并 if(ObjectUtils.isNotEmpty(con)){ @@ -847,6 +896,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl oldItemMap : oldItemMapList){ - num = num + (Double)oldItemMap.get(dbFieldName); //累加数字 + if(ObjectUtil.isNotEmpty(oldItemMap.get(dbFieldName))) { + num = num + (Double) oldItemMap.get(dbFieldName); //累加数字 + } } - }else if(FieldTypeEnum.STANDARD.getValue().equals(fieldType)){ - - }else if(FieldTypeEnum.TEXT_LINK.getValue().equals(fieldType)){ + newItemMap.put(dbFieldName, num); } } @@ -887,7 +937,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl oldItemsValList = sarFileSplitItemsValEOMapper.queryItemsValByMenuId(oldItemIdList); @@ -923,21 +973,23 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl newItemMap = new HashMap<>(); Map oldItemMap = dao.selectByPrimaryKey(itemId); - newItemMap.putAll(oldItemMap); - newItemMap.putAll(parameter); + if(ObjectUtil.isNotEmpty(oldItemMap)) { + newItemMap.putAll(oldItemMap); + newItemMap.putAll(parameter); - // 先删除 后新增 - dao.deleteByPrimaryKey(itemId); + // 先删除 后新增 + dao.deleteByPrimaryKey(itemId); - newItemMap.remove("id"); - newItemMap.remove("creation_user"); - newItemMap.remove("creation_time"); - newItemMap.remove("modify_user"); - newItemMap.remove("modify_time"); - newItemMap.remove("sys_org_code"); - newItemMap = filterMap(newItemMap); - insertInfo(newItemMap, itemId); - resultCount ++; + newItemMap.remove("id"); + newItemMap.remove("creation_user"); + newItemMap.remove("creation_time"); + newItemMap.remove("modify_user"); + newItemMap.remove("modify_time"); + newItemMap.remove("sys_org_code"); + newItemMap = filterMap(newItemMap); + insertInfo(newItemMap, itemId, "set"); + resultCount++; + } } return resultCount; } @@ -951,10 +1003,45 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl getSheetTableList) { //此处需要做各种验证,数据库操作 try { - //树形数据字典 - List categoryList = sysCategoryService.list(); - //普通数据字典 - List dictItemList = sysDictItemServiceImpl.selectItemsAll(); + List onlCgformFieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue()); + // 树形数据字典 dictId + List dictIdList = onlCgformFieldList.stream() + .filter(e -> (YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm())) + || "条款内容".equals(e.getDbFieldName())) + && FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()) + && StringUtils.isNotBlank(e.getDictId()) + ) + .map(OnlCgformField :: getDictId) + .distinct() + .collect(Collectors.toList()); + // 普通数据字典 dictCode + List dictCodeList = onlCgformFieldList.stream() + .filter(e -> (YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm())) + || "条款内容".equals(e.getDbFieldName())) + && (FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType()) || FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())) + && StringUtils.isNotBlank(e.getDictField()) + ) + .map(OnlCgformField :: getDictField) + .distinct() + .collect(Collectors.toList()); + + // 树形数据字典 + List categoryList = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(dictIdList)){ + LambdaQueryWrapper categoryWrapper = new LambdaQueryWrapper<>(); + categoryWrapper.in(CollectionUtil.isNotEmpty(dictIdList), SysCategory::getSysDictId, dictIdList); + categoryList = sysCategoryService.list(categoryWrapper); + } + + // 普通数据字典 + List dictItemList = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(dictCodeList)) { + for (String dictCode : dictCodeList) { + List dictItems = sysDictItemServiceImpl.selectItemsByDictCode(dictCode); + dictItemList.addAll(dictItems); + } + } + // 表头 List> fieldList = getImportOnlField(ModuleEnum.FILE_SPLIT_ITEMS.getValue(),cut); //验证导入数据是否符合规则 @@ -1870,21 +1957,26 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl userIdList = new ArrayList<>(); for(int u=0 ; u buildTree(List> addItemsEOList, Long treeListDisplay, String menuId){ @@ -2423,7 +2520,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl> getImportOnlField(String flag, String cut) { List fieldList = onlCgformFieldService.getFieldList(flag); if (fieldList.size() != 0) { - //过滤出搜索条件() + //过滤出导入字段 fieldList = fieldList.stream() .filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm())) || "条款内容".equals(e.getDbFieldName())) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java index 7d9fbd5aa..4dda3bf27 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java @@ -221,7 +221,7 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl sarFileSplitItemsValEOList = sarFileSplitItemsValEOMapper.queryItemsValByMenuId(oldItemIdList);