diff --git a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsBasicInfoController.java b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsBasicInfoController.java index ee4a1725..a8a20200 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsBasicInfoController.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsBasicInfoController.java @@ -9,17 +9,8 @@ import com.jero.modules.laws.regulation.service.ILawsBasicInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.Arrays; -import java.util.List; import java.util.Map; @@ -31,147 +22,23 @@ import java.util.Map; */ @Api(tags="基础信息") @RestController -@RequestMapping("/document/lawsBasicInfo") +@RequestMapping("/laws/regulation/lawsBasicInfo") @Slf4j public class LawsBasicInfoController extends JeroController { @Autowired private ILawsBasicInfoService lawsBasicInfoService; - /** - * 分页列表查询 - * - * @param lawsBasicInfo - * @param pageNo - * @param pageSize - * @param req - * @return - */ - @AutoLog(value = "基础信息-分页列表查询") - @ApiOperation(value="基础信息-分页列表查询", notes="基础信息-分页列表查询") - @GetMapping(value = "/page") - public Result> queryPageList(LawsBasicInfo lawsBasicInfo, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - IPage pageList = lawsBasicInfoService.queryPage(lawsBasicInfo, pageNo, pageSize, req); - return Result.OK(pageList); - } - - /** - * 列表查询 - * - * @param lawsBasicInfo - * @param req - * @return - */ - @AutoLog(value = "基础信息-列表查询") - @ApiOperation(value="基础信息-列表查询", notes="基础信息-列表查询") - @GetMapping(value = "/list") - public Result> queryList(LawsBasicInfo lawsBasicInfo, HttpServletRequest req) { - List list = lawsBasicInfoService.queryList(lawsBasicInfo, req); - return Result.OK(list); - } - - /** - * 添加 - * - * @param lawsBasicInfo - * @return - */ - @AutoLog(value = "基础信息-添加") - @ApiOperation(value="基础信息-添加", notes="基础信息-添加") - @PostMapping(value = "/add") - public Result add(@Validated @RequestBody LawsBasicInfo lawsBasicInfo) { - lawsBasicInfoService.add(lawsBasicInfo); - return Result.OK("操作成功!"); - } - - /** - * 编辑 - * - * @param lawsBasicInfo - * @return - */ - @AutoLog(value = "基础信息-编辑") - @ApiOperation(value="基础信息-编辑", notes="基础信息-编辑") - @PostMapping(value = "/edit") - public Result edit(@Validated @RequestBody LawsBasicInfo lawsBasicInfo) { - lawsBasicInfoService.editById(lawsBasicInfo); - return Result.OK("操作成功!"); - } - - /** - * 通过id删除 - * - * @param map - * @return - */ - @AutoLog(value = "基础信息-通过id删除") - @ApiOperation(value="基础信息-通过id删除", notes="基础信息-通过id删除") - @PostMapping(value = "/delete") - public Result delete(@RequestBody Map map) { - if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){ - return Result.error("请选择数据!"); - } - lawsBasicInfoService.deleteById(map.get("id")); - return Result.OK("删除成功!"); - } - - /** - * 批量删除 - * - * @param map - * @return - */ - @AutoLog(value = "基础信息-批量删除") - @ApiOperation(value="基础信息-批量删除", notes="基础信息-批量删除") - @PostMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestBody Map map) { - if(!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))){ - return Result.error("请选择数据!"); - } - this.lawsBasicInfoService.deleteByIds(Arrays.asList(map.get("ids").split(","))); - return Result.OK("批量删除成功!"); - } - - /** - * 通过id查询 - * - * @param id - * @return - */ - @AutoLog(value = "基础信息-通过id查询") - @ApiOperation(value="基础信息-通过id查询", notes="基础信息-通过id查询") - @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { - LawsBasicInfo lawsBasicInfo = lawsBasicInfoService.queryById(id); - if(lawsBasicInfo==null) { - return Result.error("未找到对应数据"); - } - return Result.OK(lawsBasicInfo); - } - - /** - * 导出excel - * - * @param request - * @param lawsBasicInfo - */ - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, LawsBasicInfo lawsBasicInfo) { - return super.exportXls(request, lawsBasicInfo, LawsBasicInfo.class, "基础信息"); - } - - /** - * 通过excel导入数据 - * - * @param request - * @param response - * @return - */ - @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, LawsBasicInfo.class); - } + @AutoLog(value = "标准法规库(国内标准)-分页列表查询") + @ApiOperation(value="标准法规库(国内标准)-分页列表查询", notes="标准法规库(国内标准)-分页列表查询") + @PostMapping(value = "/getDomesticStandardPage") + public Result>> getDomesticStandardPage(@RequestBody Map parameter) { + return Result.OK(lawsBasicInfoService.getDomesticStandardPage(parameter)); + } + @AutoLog(value = "标准法规库(海外标准)-分页列表查询") + @ApiOperation(value="标准法规库(海外标准)-分页列表查询", notes="标准法规库(海外标准)-分页列表查询") + @PostMapping(value = "/getForeignStandardPage") + public Result>> getForeignStandardPage(@RequestBody Map parameter) { + return Result.OK(lawsBasicInfoService.getForeignStandardPage(parameter)); + } } diff --git a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsDateRelationController.java b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsDateRelationController.java index df6157be..1f361806 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsDateRelationController.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsDateRelationController.java @@ -31,7 +31,7 @@ import java.util.Map; */ @Api(tags="多日期选择关联") @RestController -@RequestMapping("/document/lawsDateRelation") +@RequestMapping("/laws/regulation/lawsDateRelation") @Slf4j public class LawsDateRelationController extends JeroController { @Autowired diff --git a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsFileRelationController.java b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsFileRelationController.java index f1ceca85..475e8d0f 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsFileRelationController.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/controller/LawsFileRelationController.java @@ -31,7 +31,7 @@ import java.util.Map; */ @Api(tags="文件关联") @RestController -@RequestMapping("/document/lawsFileRelation") +@RequestMapping("/laws/regulation/lawsFileRelation") @Slf4j public class LawsFileRelationController extends JeroController { @Autowired diff --git a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/service/ILawsBasicInfoService.java b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/service/ILawsBasicInfoService.java index c768d5bf..84a07760 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/service/ILawsBasicInfoService.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/service/ILawsBasicInfoService.java @@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.laws.regulation.entity.LawsBasicInfo; -import javax.servlet.http.HttpServletRequest; -import java.util.List; +import java.util.Map; /** * @Description: 基础信息 @@ -14,64 +13,17 @@ import java.util.List; * @Version: V1.0 */ public interface ILawsBasicInfoService extends IService { - - /** - * 分页查询 - * - * @param lawsBasicInfo - * @param pageNo - * @param pageSize - * @param req - * @return - */ - IPage queryPage(LawsBasicInfo lawsBasicInfo, Integer pageNo, Integer pageSize, HttpServletRequest req); - - /** - * 列表查询 - * - * @param lawsBasicInfo - * @param req - * @return - */ - List queryList(LawsBasicInfo lawsBasicInfo, HttpServletRequest req); + /** + * @Author: liao + * @Date: 2023/8/21 15:05 + * @Description: 标准法规库(国内标准)-分页列表查询 + **/ + IPage> getDomesticStandardPage(Map parameter); /** - * 保存 - * - * @param lawsBasicInfo - * @return - */ - void add(LawsBasicInfo lawsBasicInfo); - - /** - * 更新 - * - * @param lawsBasicInfo - * @return - */ - void editById(LawsBasicInfo lawsBasicInfo); - - /** - * 通过id删除 - * - * @param id - * @return - */ - void deleteById(String id); - - /** - * 批量删除 - * - * @param ids - * @return - */ - void deleteByIds(List ids); - - /** - * 通过id查询 - * - * @param id - * @return - */ - LawsBasicInfo queryById(String id); + * @Author: liao + * @Date: 2023/8/21 15:05 + * @Description: 标准法规库(海外标准)-分页列表查询 + **/ + IPage> getForeignStandardPage(Map parameter); } diff --git a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/service/impl/LawsBasicInfoServiceImpl.java b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/service/impl/LawsBasicInfoServiceImpl.java index 6002e259..582e20d4 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/service/impl/LawsBasicInfoServiceImpl.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/laws/regulation/service/impl/LawsBasicInfoServiceImpl.java @@ -1,20 +1,43 @@ package com.jero.modules.laws.regulation.service.impl; -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.jero.common.constant.enums.LanguageEnum; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; -import com.jero.common.system.query.QueryGenerator; +import com.jero.common.util.MessageUtils; +import com.jero.generater.modules.online.cgform.entity.OnlCgformField; +import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.laws.regulation.entity.LawsBasicInfo; import com.jero.modules.laws.regulation.mapper.LawsBasicInfoMapper; import com.jero.modules.laws.regulation.service.ILawsBasicInfoService; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; +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.service.ISysDictItemService; +import com.jero.modules.system.service.impl.SysCategoryServiceImpl; +import com.jero.modules.system.util.MyStringUtils; +import com.jero.modules.tag.entity.LawsTag; +import com.jero.modules.tag.enums.FileTableIdEnum; +import com.jero.modules.tag.mapper.LawsTagMapper; +import com.jero.modules.tag.service.ILawsTagService; +import com.spire.ms.System.Collections.ArrayList; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.map.HashedMap; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.servlet.http.HttpServletRequest; -import java.util.Date; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** @@ -27,93 +50,361 @@ import java.util.List; @Transactional(rollbackFor = JeroBootException.class) public class LawsBasicInfoServiceImpl extends ServiceImpl implements ILawsBasicInfoService { - - /** - * 分页查询 - * - * @param lawsBasicInfo - * @param pageNo - * @param pageSize - * @param req - * @return - */ - @Override - public IPage queryPage(LawsBasicInfo lawsBasicInfo, Integer pageNo, Integer pageSize, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsBasicInfo, req.getParameterMap()); - Page page = new Page<>(pageNo, pageSize); - return page(page, queryWrapper); - } - - /** - * 列表查询 - * - * @param lawsBasicInfo - * @param req - * @return - */ - @Override - public List queryList(LawsBasicInfo lawsBasicInfo, HttpServletRequest req) { - return list(QueryGenerator.initQueryWrapper(lawsBasicInfo, req.getParameterMap())); - } + @Autowired + private ILawsTagService lawsTagService; + @Autowired + private LawsTagMapper lawsTagMapper; + @Autowired + private SysCategoryServiceImpl sysCategoryService; + @Autowired + private ISysDictItemService sysDictItemService; + @Autowired + private IOSSFileService ossFileService; /** - * 保存 - * - * @param lawsBasicInfo - * @return - */ + * @Author: liao + * @Date: 2023/8/21 15:05 + * @Description: 标准法规库(国内标准)-分页列表查询 + **/ @Override - public void add(LawsBasicInfo lawsBasicInfo) { - Date now = new Date(); - lawsBasicInfo.setCreateTime(now); - lawsBasicInfo.setUpdateTime(now); - save(lawsBasicInfo); - } + public IPage> getDomesticStandardPage(Map parameter) { + String cut = MessageUtils.getLanguage().getValue(); + // 获取需要查询的字段集合(拼接select后面的返回字段) + List fieldList = getFieldList(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue()); + // 获取查询返回字段集合 + List selectField = getSelectField(fieldList); + //封装查询条件(包含高级搜索) + String condition = getConditionStr(parameter); + int pageNo = Integer.parseInt(parameter.get("pageNo").toString()); + int pageSize = Integer.parseInt(parameter.get("pageSize").toString()); + + + IPage> page = new Page<>(pageNo, pageSize); + IPage> infoPage = lawsTagMapper.getInfoPage(page, " " + StringUtils.join(selectField, ","), condition); + + //树形数据字典 + List categoryList = sysCategoryService.list(); + + //过滤出树形字段 + List treeFieldList = fieldList.stream() + .filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + //过滤出文件字段 + List lawsTagFileList = fieldList.stream() + .filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + + List fileList = lawsTagFileList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList()); + List> records = infoPage.getRecords(); + + //数据字典 + List sysDictItems = sysDictItemService.selectItemsAll(); + + //下拉选处理数据字典 + List idList = new java.util.ArrayList<>(); + List fileIdLidt = new java.util.ArrayList<>(); + for (Map record : records) { + Map record1 = (Map) record; + idList.add((String) record1.get("id")); + for (Map.Entry entry : record1.entrySet()) { + //下拉选处理数据字典 + dictItem(sysDictItems, entry, cut, fieldList,null); + treeDictItem(categoryList, entry, treeFieldList, cut,null); + if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())){ + fileIdLidt.add((String)entry.getValue()); + } + } + } + + if(!fileIdLidt.isEmpty()){ + List fileInfos = ossFileService.getFileInfos(StringUtils.join(fileIdLidt, ",")); + if(!fileInfos.isEmpty()){ + for (Map record : records) { + Map record1 = (Map) record; + idList.add((String) record1.get("id")); + for (Map.Entry entry : record1.entrySet()) { + String value = (String) entry.getValue(); + if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank(value)){ + List ossFileList = fileInfos.stream().filter(e -> value.equals(e.getConnectId())).collect(Collectors.toList()); + if(!ossFileList.isEmpty()){ + List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); + entry.setValue(StringUtils.join(fileNameList,",")); + } + } + } + } + } + } + + return null; + } /** - * 更新 - * - * @param lawsBasicInfo - * @return - */ + * @Author: liao + * @Date: 2023/8/21 15:05 + * @Description: 标准法规库(海外标准)-分页列表查询 + **/ @Override - public void editById(LawsBasicInfo lawsBasicInfo) { - Date now = new Date(); - lawsBasicInfo.setUpdateTime(now); - saveOrUpdate(lawsBasicInfo); - } + public IPage> getForeignStandardPage(Map parameter) { + return null; + } /** - * 通过id删除 - * - * @param id - * @return - */ - @Override - public void deleteById(String id) { - removeById(id); - } + * @Author: liao + * @Date: 2023/8/22 13:41 + * @Description: 属性字典处理中文 + **/ + public void treeDictItem(List categoryList, Map.Entry entry, List treeFieldList, String cut,String flag) { + List treeFields = treeFieldList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList()); + String key = entry.getKey(); + if (treeFields.contains(entry.getKey())) { + String value = MyStringUtils.valueOf(entry.getValue()); + if (StringUtils.isNotBlank(value)) { + List idList = Arrays.asList(value.split(",")); + List sysCategoryList = categoryList.stream().filter(e -> idList.contains(e.getId())).collect(Collectors.toList()); + List nameList = sysCategoryList.stream().map(SysCategory::getName).collect(Collectors.toList()); + List nameEnList = sysCategoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList()); + if (LanguageEnum.CN.getValue().equals(cut)) { + entry.setValue(StringUtils.join(nameList, ",")); + } else if(LanguageEnum.EN.getValue().equals(cut)){ + entry.setValue(StringUtils.join(nameEnList, ",")); + }else if("1".equals(flag)){ + entry.setValue(StringUtils.join(nameEnList, ",")); + } + } + } + } /** - * 批量删除 - * - * @param ids - * @return - */ - @Override - public void deleteByIds(List ids) { - removeByIds(ids); - } + * @Author: liao + * @Date: 2023/8/22 13:42 + * @Description: 属性字典处理中文 + **/ + public void dictItem(List sysDictItems, Map.Entry entry, String cut, List fieldList,String flag) { + //通过dictField判断字段是否为下拉选(不为空则为下拉选) + List lawsTagFieldList = fieldList.stream().filter(field -> + entry.getKey().equals(field.getDbFieldName())).collect(Collectors.toList()); + //数据字典中文 + List dictItemsCh = new java.util.ArrayList<>(); + List dictItemsEn = new java.util.ArrayList<>(); + for (LawsTag lawsTagField : lawsTagFieldList) { + if (FieldTypeEnum.PULL_SINGLE.getValue().equals(lawsTagField.getFieldShowType()) + || FieldTypeEnum.PULL_MORE.getValue().equals(lawsTagField.getFieldShowType())) { + String value = (String) entry.getValue(); + if (StringUtils.isNotBlank(value) && lawsTagFieldList.size() != 0 + && StringUtils.isNotBlank(lawsTagFieldList.get(0).getDictField())) { + for (String itemValue : value.split(",")) { + //字段的数据字典 + List dictItemList = sysDictItems.stream() + .filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(lawsTagFieldList.get(0).getDictField())) + .collect(Collectors.toList()); + if (dictItemList.size() != 0) { + List dictItems = dictItemList.stream() + .filter(e -> itemValue.equals(e.getItemValue())) + .collect(Collectors.toList()); + if (dictItems.size() != 0) { + List itemText = new java.util.ArrayList<>(); + if (LanguageEnum.CN.getValue().equals(cut)) { + itemText = dictItems.stream().map(SysDictItem::getItemText).collect(Collectors.toList()); + } else if(LanguageEnum.EN.getValue().equals(cut)) { + itemText = dictItems.stream().map(SysDictItem::getEnName).collect(Collectors.toList()); + }else if("1".equals(flag)){ + itemText = dictItems.stream().map(SysDictItem::getEnName).collect(Collectors.toList()); + } + dictItemsCh.addAll(itemText); + dictItemsEn.addAll(itemText); + } + } + } + } + } + } + + if (lawsTagFieldList.size() != 0 && StringUtils.isNotBlank(lawsTagFieldList.get(0).getDictField())) { + if(FieldTypeEnum.PULL_SINGLE.getValue().equals(lawsTagFieldList.get(0).getFieldShowType()) + || FieldTypeEnum.PULL_MORE.getValue().equals(lawsTagFieldList.get(0).getFieldShowType())){ + if (LanguageEnum.CN.getValue().equals(cut)) { + entry.setValue(StringUtils.join(dictItemsCh, ",")); + } else if(LanguageEnum.EN.getValue().equals(cut)){ + entry.setValue(StringUtils.join(dictItemsEn, ",")); + }else if("1".equals(flag)){ + entry.setValue(StringUtils.join(dictItemsEn, ",")); + } + } + } + } /** - * 通过id查询 - * - * @param id - * @return - */ - @Override - public LawsBasicInfo queryById(String id) { - return getById(id); - } + * @Author: liao + * @Date: 2023/8/22 11:02 + * @Description: 组装查询条件 + **/ + private String getConditionStr(Map parameter) { + String cut = MessageUtils.getLanguage().getValue(); + //查询条件 + StringBuilder conditionSb = new StringBuilder("where 1 = 1"); + + //过滤查询条件字段类型使用 + List> mapList = queryCondition(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue(), cut, null); + + //查询条件处理 + for (Map.Entry entry : parameter.entrySet()) { + String key = entry.getKey(); + if (!"pageNo".equals(key) && !"pageSize".equals(key)) { + String value = ""; + if(ObjectUtils.isNotEmpty(entry.getValue())){ + value = MyStringUtils.valueOf(entry.getValue()); + } + if (StringUtils.isNotBlank(value)) { + for (Map map : mapList) { + String fieldName = (String) map.get("db_field_name");//字段 + if (key.equals(fieldName)) { + //字段类型(判断是输入框还是下拉,等等) + String fieldType = (String) map.get("field_show_type");//字段类型 + if (FieldTypeEnum.TEXT_STRING.getValue().equals(fieldType) || FieldTypeEnum.TEXT_NUMBER.getValue().equals(fieldType)|| FieldTypeEnum.STANDARD.getValue().equals(fieldType)) { + if (value.contains("%")) { + // 字段内容可能包含%,是转义字符,做一下处理 + value = value.replace("%", "/%"); + } + conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')"); + } else if (FieldTypeEnum.PULL_SINGLE.getValue().equals(fieldType) + || FieldTypeEnum.PULL_MORE.getValue().equals(fieldType) + || FieldTypeEnum.TREE.getValue().equals(fieldType)) { + StringBuilder valueSb = new StringBuilder(); + StringBuilder condition = new StringBuilder(); + for (String valueTemp : value.split(",")) { + valueSb.append("'" + valueTemp + "',"); + condition.append(" or " + key + " like binary concat(concat('%','" + valueTemp + "'),'%')"); + } + condition.append(")"); + String substring = valueSb.substring(0, valueSb.length() - 1); + //下拉单选或下拉多选 + conditionSb.append(" and (" + key + " in(" + substring + ")" + condition); + + } else if (FieldTypeEnum.DATE_SINGLE.getValue().equals(fieldType)) { + //日期(区分单日期还时间范围) + if (value.contains(",")) { + conditionSb.append(" and " + "date_format(" + key + ",'%Y-%m-%d') >= '" + value.split(",")[0] + "'" + + " and " + "date_format(" + key + ",'%Y-%m-%d') <= '" + value.split(",")[1] + "'"); + } else { + conditionSb.append(" and " + "date_format(" + key + ",'%Y-%m-%d') = '" + value + "'"); + } + } else if (FieldTypeEnum.PERSON.getValue().equals(fieldType)) { + if (value.contains("%")) { + // 字段内容可能包含%,是转义字符,做一下处理 + value = value.replace("%", "/%"); + } + conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')"); + } + } + } + } + } + + } + + //处理列表表头排序 + if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) { + String orderByField = (String) parameter.get("orderByField"); + conditionSb.append(" order by " + parameter.get("orderByField")); + orderBySort(parameter, conditionSb); + } else { + conditionSb.append(" order by create_time desc"); + } + String condition = conditionSb.toString(); + return condition; + } + + private List> queryCondition(String flag, String cut, String searchFlag) { + List fieldList = getFieldList(flag); + fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(MyStringUtils.valueOf(e.getIsQuery()))).collect(Collectors.toList()); + //树形数据字典 + Map params = new HashedMap(); + params.put("cut",cut); + List> list = new java.util.ArrayList<>(); + for (LawsTag lawsTag : fieldList) { + Map map = new HashMap<>(); + map.put("field_show_type", lawsTag.getFieldShowType());//类型(判断是下拉还是输入框,等等) + map.put("dict_field", lawsTag.getDictField()); + map.put("db_field_name", lawsTag.getDbFieldName());//字段 + if (LanguageEnum.CN.getValue().equals(cut)) { + map.put("db_field_txt", lawsTag.getDbFieldTxt());//字段中文名 + } else { + map.put("db_field_txt", lawsTag.getDbFieldEnName());//字段英文名 + } + list.add(map); + } + return list; + } + + /** + * @Author: liao + * @Date: 2023/8/21 17:33 + * @Description: 获取查询返回字段集合 + **/ + private List getSelectField(List fieldList) { + // 筛选获取日期类型字段 + List dateFieldList = fieldList.stream().filter(lawsTag -> FieldTypeEnum.DATE_SINGLE + .equals(lawsTag.getFieldShowType())).collect(Collectors.toList()) + .stream().map(LawsTag::getDbFieldName).collect(Collectors.toList()); + // 只查询显示的字段 + if (CollectionUtils.isNotEmpty(fieldList)) { + fieldList = fieldList.stream().filter(lawsTag -> YesOrNoEnum.YES.getValue() + .equals(lawsTag.getIsShowList().toString())).collect(Collectors.toList()); + } + // 获取全部的字段列表 + List tempFieldList = fieldList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList()); + // 创建一个新的用于返回的字段列表 + List selectField = new ArrayList(); + // 查询主键 + selectField.add("id"); + tempFieldList.forEach(tempField -> { + String endField = null; + // 对日期格式和普通格式做处理 + if (dateFieldList.contains(tempField)) { + // 如果是日期格式 + String newField = "date_format(" + tempField + ", '%Y-%m-%d')"; + endField = "case when " + newField + " is null then \"\" else " + newField + " end " + tempField; + selectField.add(endField); + } else { + // 如果是普通格式 + endField = "case when " + tempField + " is null then \"\" else " + tempField + " end " + tempField; + selectField.add(endField); + } + }); + return selectField; + } + + /** + * @Author: liao + * @Date: 2023/8/21 17:56 + * @Description: 根据table_name查询字段集合 + **/ + private List getFieldList(String flag) { + List fieldList = new java.util.ArrayList<>(); + if (FileTableIdEnum.DOMESTIC_REGULATIONS.getValue().equals(flag)) { + // 国内法规 + fieldList = lawsTagMapper.getFieldList(FileTableIdEnum.DOMESTIC_REGULATIONS.getTableName()); + } else if (FileTableIdEnum.FOREIGN_REGULATIONS.getValue().equals(flag)) { + // 国外法规 + fieldList = lawsTagMapper.getFieldList(FileTableIdEnum.FOREIGN_REGULATIONS.getTableName()); + } else if (FileTableIdEnum.ENTERPRISE_STANDARDS.getValue().equals(flag)) { + // 企业标准 + fieldList = lawsTagMapper.getFieldList(FileTableIdEnum.ENTERPRISE_STANDARDS.getTableName()); + } + return fieldList; + } + + /** + * @Author: liao + * @Date: 2023/8/22 11:41 + * @Description: 给拼装的查询条件排序 + **/ + private void orderBySort(Map parameter, StringBuilder conditionSb) { + if ("1".equals(parameter.get("orderBy"))) { + conditionSb.append(" asc");//正序 + } else if ("2".equals(parameter.get("orderBy"))) { + conditionSb.append(" desc");//倒序 + } + } } diff --git a/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/LawsTagMapper.java b/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/LawsTagMapper.java index 465f80e5..443153a4 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/LawsTagMapper.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/LawsTagMapper.java @@ -3,9 +3,11 @@ package com.jero.modules.tag.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.modules.tag.entity.LawsTag; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Update; import org.springframework.data.repository.query.Param; +import java.util.List; import java.util.Map; /** @@ -14,6 +16,7 @@ import java.util.Map; * @Date: 2022-02-12 * @Version: V1.0 */ +@Mapper public interface LawsTagMapper extends BaseMapper { /** * 分页列表查询 @@ -30,5 +33,21 @@ public interface LawsTagMapper extends BaseMapper { @Update("update onl_cgform_field set is_delete = #{isDelete,jdbcType=INTEGER} where id = #{id,jdbcType=VARCHAR}") public void updateDictDelFlag(@Param("isDelete") int isDelete, @Param("id") String id); + /** + * @Author: liao + * @Date: 2023/8/21 16:52 + * @Description: 获取需要查询的字段 + **/ + List getFieldList(@Param("tableName") String tableName); + + /** + * @Author: liao + * @Date: 2023/8/22 11:58 + * @Description: 国内法规-分页查询 + **/ + IPage> getInfoPage(@org.apache.ibatis.annotations.Param("page") IPage> page, + @org.apache.ibatis.annotations.Param("field") String field, + @org.apache.ibatis.annotations.Param("condition") String condition); + void executeDDL(@Param("sqlStr") String var1); } diff --git a/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/LawsTagMapper.xml b/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/LawsTagMapper.xml index 8ef59a81..edda0665 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/LawsTagMapper.xml +++ b/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/LawsTagMapper.xml @@ -73,6 +73,18 @@ order by f.order_num + + + + + ${sqlStr}