diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java b/laws-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java index b00a28cb..c04a5226 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java @@ -32,6 +32,8 @@ public interface IFileSplitItemsEOService extends IService int insertInfo(Map parameter, String id, String type); + int insertInfo2(Map parameter, String id, String type); + IPage getInfoPage(Map parameter); int batchDeleteItems(String ids); diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 630dee48..8ecdc913 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -24,6 +24,7 @@ import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServi import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.laws.common.mapper.LawsCommonMapper; +import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper; import com.jero.modules.laws.documenttool.service.IDocumentSplitService; import com.jero.modules.laws.labeldatabase.entity.LawsLabelDatabase; import com.jero.modules.laws.labeldatabase.service.ILawsLabelDatabaseService; @@ -153,6 +154,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl SPECIAL_FIELD = Arrays.asList("keywords", "key_controller", "applicable_components"); + private static final List SPECIAL_FIELD = Arrays.asList("keywords", "applicable_components"); @Value("${download.enable}") public void setEnable(boolean enable) { @@ -504,6 +507,145 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl parameter, String id, String type){ + StringBuilder fieldsBuilder = new StringBuilder(); // 字段名称 + List valuesList = new ArrayList<>();// 字段值 + StringBuilder valuesBuilder = new StringBuilder(); // 字段值 + + // 查询全部字段列表 + List fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName()); + // 列表展示字段 + List fieldListSelect = fieldList.stream().filter(v -> YesOrNoEnum.YES.getValue() + .equals(String.valueOf(v.getIsShowList()))).collect(Collectors.toList()); + + // 查询全部字段属性 +// List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue()); + // 文件类型字段 + List onlFieldFileList = fieldListSelect.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); + List fieldFieldList = onlFieldFileList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList()); + // 日期类型字段(单日期选择) + List onlFieldDateList = fieldListSelect.stream().filter(e -> FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); + List fieldDateList = onlFieldDateList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList()); + // 人员选择类型 + List onlFieldPersonList = fieldListSelect.stream().filter(e -> FieldTypeEnum.PERSON.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); + List fieldPersonList = onlFieldPersonList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList()); + // 标准选择类型 + List onlFieldStanList = fieldListSelect.stream().filter(e -> FieldTypeEnum.STANDARD.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); + List fieldStanList = onlFieldStanList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList()); + + List fieldPersonIdList = new ArrayList<>(); + fieldPersonList.forEach(item->{ + String fieldPersonId = item + "_id"; + fieldPersonIdList.add(fieldPersonId); + }); + List standardIdList = new ArrayList<>(); + fieldStanList.forEach(item->{ + String fieldStanId = item + "_id"; + standardIdList.add(fieldStanId); + }); + for (Map.Entry entry : parameter.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + // 处理日期,文件,人员选择类型的字段 + //处理日期格式 + if (fieldDateList.contains(key) && ("create_time".equals(key) || "update_time".equals(key))) { + if (ObjectUtils.isNotEmpty(value)) { + if(value.toString().equals("") || value.toString().equals("null")){ + continue; + } + value = "str_to_date('" + value + "','%Y-%m-%d')"; + } else { + value = null; + } + valuesList.add(String.valueOf(value)); + valuesBuilder.append("," + value); + } else if (fieldFieldList.contains(key)) { + //处理文件类型 + if (ObjectUtils.isNotEmpty(value)) { + if("add".equals(type) || "import".equals(type)) { + String valueTemp = UUID.randomUUID().toString().replace("-", ""); + //修改文件表关联信息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); + valuesList.add(valueTemp); + valuesBuilder.append("," + "'" + valueTemp + "'"); + } else if("set".equals(type) || "merge".equals(type) ||"copy".equals(type)){ + valuesList.add(String.valueOf(value)); + valuesBuilder.append("," + "'" + value + "'"); + } else if("update".equals(type)){ + // 前端标识 key_flag 0-未修改, 1-已修改 + if(value.toString().contains(",")){ // 新加了多个文件 + String valueTemp = UUID.randomUUID().toString().replace("-", ""); + //修改文件表关联信息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); + valuesList.add(valueTemp); + valuesBuilder.append("," + "'" + valueTemp + "'"); + } else { + List ossFiles = ossFileService.getFileInfosByConnectId(value.toString()); + if(CollectionUtil.isNotEmpty(ossFiles)){ // 没有修改文件 + valuesList.add(String.valueOf(value)); + valuesBuilder.append("," + "'" + value + "'"); + } else { // 新加了一个文件 + String valueTemp = UUID.randomUUID().toString().replace("-", ""); + //修改文件表关联信息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); + valuesList.add(valueTemp); + valuesBuilder.append("," + "'" + valueTemp + "'"); + } + } + + } + } else { + valuesList.add(String.valueOf(value)); + valuesBuilder.append("," + "'" + value + "'"); + } + } else if(fieldPersonList.contains(key)){ // || fieldStanList.contains(key) + // 人员选择类型 标准选择类型 + if(ObjectUtil.isNotNull(parameter.get(key+"_id"))) { + value = parameter.get(key + "_id"); + } + valuesList.add(String.valueOf(value)); + valuesBuilder.append("," + "'" + value + "'"); + } else if(fieldPersonIdList.contains(key) || standardIdList.contains(key)){ + continue; + } else { + if ("item_content".equals(key)) { + value = value.toString().replaceAll("\\\\", "\\\\\\\\").replaceAll("'", "\\\\'"); + } + valuesList.add(String.valueOf(value)); + valuesBuilder.append("," + "'" + value + "'"); + } + + fieldsBuilder.append("," + key); + } + String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code"; + List mustValues = getMustValues2(id); + valuesList.addAll(0, mustValues); + String insertField = mustFields + fieldsBuilder.toString(); + return documentSplitMapper.insertLawsDocumentSplit(insertField, valuesList); + } + /** * 根据信息id更新排序字段 * @param parameter @@ -562,6 +704,19 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl getMustValues2(String id) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List list = new ArrayList<>(); + list.add(id); + list.add(sysUser.getUsername()); + list.add(sdf.format(new Date())); + list.add(sysUser.getUsername()); + list.add(sdf.format(new Date())); + list.add(sysUser.getOrgCode()); + return list; + } + @Override public IPage getInfoPage(Map parameter) { String cut = (String) parameter.get("cut");// 中英文切换标识 @@ -2365,14 +2520,14 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl path = - sysDictItemList.stream().filter(o -> treePath.equals(o.getLevelPath())) + sysDictItemList.stream().filter(o -> treePath.equals(o.getLevelPath()) + || treePath.equals(o.getItemText())) .collect(Collectors.toList()); if (!path.isEmpty()){ if (path.size() > 1) { @@ -2612,7 +2768,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl path = - partNameList.stream().filter(o -> treePath.equals(o.getLevelPath())) + partNameList.stream().filter(o -> treePath.equals(o.getLevelPath()) || treePath.equals(o.getName())) .collect(Collectors.toList()); if (!path.isEmpty()){ if (path.size() > 1) { @@ -2770,7 +2926,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl finalSarFileSplitItemsEO = sarFileSplitItemsEO; + sarFileSplitItemsEO.forEach((k, v) -> { + String str = String.valueOf(v); + finalSarFileSplitItemsEO.put(k, str.replace("'", "\\'")); + }); + insertInfo2(finalSarFileSplitItemsEO,id,"import"); // 添加条款 } private List buildTree(List> addItemsEOList, Long treeListDisplay, String menuId){