add 国内法规

This commit is contained in:
liao
2023-08-22 14:06:09 +08:00
parent f5c52a6fc9
commit 4f028fff04
7 changed files with 430 additions and 289 deletions
@@ -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<LawsBasicInfo, ILawsBasicInfoService> {
@Autowired
private ILawsBasicInfoService lawsBasicInfoService;
/**
* 分页列表查询
*
* @param lawsBasicInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "基础信息-分页列表查询")
@ApiOperation(value="基础信息-分页列表查询", notes="基础信息-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<LawsBasicInfo>> queryPageList(LawsBasicInfo lawsBasicInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
IPage<LawsBasicInfo> 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<List<LawsBasicInfo>> queryList(LawsBasicInfo lawsBasicInfo, HttpServletRequest req) {
List<LawsBasicInfo> list = lawsBasicInfoService.queryList(lawsBasicInfo, req);
return Result.OK(list);
}
/**
* 添加
*
* @param lawsBasicInfo
* @return
*/
@AutoLog(value = "基础信息-添加")
@ApiOperation(value="基础信息-添加", notes="基础信息-添加")
@PostMapping(value = "/add")
public Result<T> add(@Validated @RequestBody LawsBasicInfo lawsBasicInfo) {
lawsBasicInfoService.add(lawsBasicInfo);
return Result.OK("操作成功!");
}
/**
* 编辑
*
* @param lawsBasicInfo
* @return
*/
@AutoLog(value = "基础信息-编辑")
@ApiOperation(value="基础信息-编辑", notes="基础信息-编辑")
@PostMapping(value = "/edit")
public Result<T> 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<T> delete(@RequestBody Map<String, String> 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<T> deleteBatch(@RequestBody Map<String, String> 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<LawsBasicInfo> 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<LawsBasicInfo> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, LawsBasicInfo.class);
}
@AutoLog(value = "标准法规库(国内标准)-分页列表查询")
@ApiOperation(value="标准法规库(国内标准)-分页列表查询", notes="标准法规库(国内标准)-分页列表查询")
@PostMapping(value = "/getDomesticStandardPage")
public Result<IPage<Map<String,Object>>> getDomesticStandardPage(@RequestBody Map<String,Object> parameter) {
return Result.OK(lawsBasicInfoService.getDomesticStandardPage(parameter));
}
@AutoLog(value = "标准法规库(海外标准)-分页列表查询")
@ApiOperation(value="标准法规库(海外标准)-分页列表查询", notes="标准法规库(海外标准)-分页列表查询")
@PostMapping(value = "/getForeignStandardPage")
public Result<IPage<Map<String,Object>>> getForeignStandardPage(@RequestBody Map<String,Object> parameter) {
return Result.OK(lawsBasicInfoService.getForeignStandardPage(parameter));
}
}
@@ -31,7 +31,7 @@ import java.util.Map;
*/
@Api(tags="多日期选择关联")
@RestController
@RequestMapping("/document/lawsDateRelation")
@RequestMapping("/laws/regulation/lawsDateRelation")
@Slf4j
public class LawsDateRelationController extends JeroController<LawsDateRelation, ILawsDateRelationService> {
@Autowired
@@ -31,7 +31,7 @@ import java.util.Map;
*/
@Api(tags="文件关联")
@RestController
@RequestMapping("/document/lawsFileRelation")
@RequestMapping("/laws/regulation/lawsFileRelation")
@Slf4j
public class LawsFileRelationController extends JeroController<LawsFileRelation, ILawsFileRelationService> {
@Autowired
@@ -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<LawsBasicInfo> {
/**
* 分页查询
*
* @param lawsBasicInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
IPage<LawsBasicInfo> queryPage(LawsBasicInfo lawsBasicInfo, Integer pageNo, Integer pageSize, HttpServletRequest req);
/**
* 列表查询
*
* @param lawsBasicInfo
* @param req
* @return
*/
List<LawsBasicInfo> queryList(LawsBasicInfo lawsBasicInfo, HttpServletRequest req);
/**
* @Author: liao
* @Date: 2023/8/21 15:05
* @Description: 标准法规库(国内标准)-分页列表查询
**/
IPage<Map<String,Object>> getDomesticStandardPage(Map<String, Object> 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<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
LawsBasicInfo queryById(String id);
* @Author: liao
* @Date: 2023/8/21 15:05
* @Description: 标准法规库(海外标准)-分页列表查询
**/
IPage<Map<String,Object>> getForeignStandardPage(Map<String, Object> parameter);
}
@@ -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<LawsBasicInfoMapper, LawsBasicInfo> implements ILawsBasicInfoService {
/**
* 分页查询
*
* @param lawsBasicInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<LawsBasicInfo> queryPage(LawsBasicInfo lawsBasicInfo, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
QueryWrapper<LawsBasicInfo> queryWrapper = QueryGenerator.initQueryWrapper(lawsBasicInfo, req.getParameterMap());
Page<LawsBasicInfo> page = new Page<>(pageNo, pageSize);
return page(page, queryWrapper);
}
/**
* 列表查询
*
* @param lawsBasicInfo
* @param req
* @return
*/
@Override
public List<LawsBasicInfo> 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<Map<String,Object>> getDomesticStandardPage(Map<String, Object> parameter) {
String cut = MessageUtils.getLanguage().getValue();
// 获取需要查询的字段集合(拼接select后面的返回字段)
List<LawsTag> fieldList = getFieldList(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue());
// 获取查询返回字段集合
List<String> selectField = getSelectField(fieldList);
//封装查询条件(包含高级搜索)
String condition = getConditionStr(parameter);
int pageNo = Integer.parseInt(parameter.get("pageNo").toString());
int pageSize = Integer.parseInt(parameter.get("pageSize").toString());
IPage<Map<String,Object>> page = new Page<>(pageNo, pageSize);
IPage<Map<String,Object>> infoPage = lawsTagMapper.getInfoPage(page, " " + StringUtils.join(selectField, ","), condition);
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
//过滤出树形字段
List<LawsTag> treeFieldList = fieldList.stream()
.filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
//过滤出文件字段
List<LawsTag> lawsTagFileList = fieldList.stream()
.filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
List<String> fileList = lawsTagFileList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList());
List<Map<String,Object>> records = infoPage.getRecords();
//数据字典
List<SysDictItem> sysDictItems = sysDictItemService.selectItemsAll();
//下拉选处理数据字典
List<String> idList = new java.util.ArrayList<>();
List<String> fileIdLidt = new java.util.ArrayList<>();
for (Map<String,Object> record : records) {
Map<String, Object> record1 = (Map) record;
idList.add((String) record1.get("id"));
for (Map.Entry<String, Object> 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<OSSFile> fileInfos = ossFileService.getFileInfos(StringUtils.join(fileIdLidt, ","));
if(!fileInfos.isEmpty()){
for (Map<String,Object> record : records) {
Map<String, Object> record1 = (Map) record;
idList.add((String) record1.get("id"));
for (Map.Entry<String, Object> entry : record1.entrySet()) {
String value = (String) entry.getValue();
if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank(value)){
List<OSSFile> ossFileList = fileInfos.stream().filter(e -> value.equals(e.getConnectId())).collect(Collectors.toList());
if(!ossFileList.isEmpty()){
List<String> 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<Map<String,Object>> getForeignStandardPage(Map<String, Object> 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<SysCategory> categoryList, Map.Entry<String, Object> entry, List<LawsTag> treeFieldList, String cut,String flag) {
List<String> 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<String> idList = Arrays.asList(value.split(","));
List<SysCategory> sysCategoryList = categoryList.stream().filter(e -> idList.contains(e.getId())).collect(Collectors.toList());
List<String> nameList = sysCategoryList.stream().map(SysCategory::getName).collect(Collectors.toList());
List<String> 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<String> ids) {
removeByIds(ids);
}
* @Author: liao
* @Date: 2023/8/22 13:42
* @Description: 属性字典处理中文
**/
public void dictItem(List<SysDictItem> sysDictItems, Map.Entry<String, Object> entry, String cut, List<LawsTag> fieldList,String flag) {
//通过dictField判断字段是否为下拉选(不为空则为下拉选)
List<LawsTag> lawsTagFieldList = fieldList.stream().filter(field ->
entry.getKey().equals(field.getDbFieldName())).collect(Collectors.toList());
//数据字典中文
List<String> dictItemsCh = new java.util.ArrayList<>();
List<String> 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<SysDictItem> dictItemList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(lawsTagFieldList.get(0).getDictField()))
.collect(Collectors.toList());
if (dictItemList.size() != 0) {
List<SysDictItem> dictItems = dictItemList.stream()
.filter(e -> itemValue.equals(e.getItemValue()))
.collect(Collectors.toList());
if (dictItems.size() != 0) {
List<String> 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<String, Object> parameter) {
String cut = MessageUtils.getLanguage().getValue();
//查询条件
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
//过滤查询条件字段类型使用
List<Map<String, Object>> mapList = queryCondition(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue(), cut, null);
//查询条件处理
for (Map.Entry<String, Object> 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<String, Object> 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<Map<String, Object>> queryCondition(String flag, String cut, String searchFlag) {
List<LawsTag> fieldList = getFieldList(flag);
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(MyStringUtils.valueOf(e.getIsQuery()))).collect(Collectors.toList());
//树形数据字典
Map<String,Object> params = new HashedMap();
params.put("cut",cut);
List<Map<String, Object>> list = new java.util.ArrayList<>();
for (LawsTag lawsTag : fieldList) {
Map<String, Object> 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<String> getSelectField(List<LawsTag> fieldList) {
// 筛选获取日期类型字段
List<String> 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<String> tempFieldList = fieldList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList());
// 创建一个新的用于返回的字段列表
List<String> 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<LawsTag> getFieldList(String flag) {
List<LawsTag> 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<String, Object> parameter, StringBuilder conditionSb) {
if ("1".equals(parameter.get("orderBy"))) {
conditionSb.append(" asc");//正序
} else if ("2".equals(parameter.get("orderBy"))) {
conditionSb.append(" desc");//倒序
}
}
}
@@ -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<LawsTag> {
/**
* 分页列表查询
@@ -30,5 +33,21 @@ public interface LawsTagMapper extends BaseMapper<LawsTag> {
@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<LawsTag> getFieldList(@Param("tableName") String tableName);
/**
* @Author: liao
* @Date: 2023/8/22 11:58
* @Description: 国内法规-分页查询
**/
IPage<Map<String,Object>> getInfoPage(@org.apache.ibatis.annotations.Param("page") IPage<Map<String,Object>> page,
@org.apache.ibatis.annotations.Param("field") String field,
@org.apache.ibatis.annotations.Param("condition") String condition);
void executeDDL(@Param("sqlStr") String var1);
}
@@ -73,6 +73,18 @@
order by f.order_num
</select>
<select id="getFieldList" resultType="com.jero.modules.tag.entity.LawsTag">
select * from laws_tag tag
left join laws_area area on tag.show_area = area.id
where tag.table_name =#{tableName} and tag.is_delete = 0
order by area.sort asc, tag.order_num asc, tag.create_time asc
</select>
<select id="getInfoPage" resultType="java.util.Map">
select ${field} from laws_basic_info ${condition}
</select>
<update id="executeDDL" parameterType="java.lang.String">
${sqlStr}
</update>