feat(高级检索): 全部

This commit is contained in:
yjz
2024-06-21 16:33:42 +08:00
parent 53d3dffe19
commit 1d64159d5f
3 changed files with 33 additions and 8 deletions
@@ -15,7 +15,6 @@ 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.vo.LoginUser;
import com.jero.common.system.vo.SysDepartTreeModel;
import com.jero.common.util.IntekeyUtils;
import com.jero.common.util.MessageUtils;
import com.jero.common.util.MinioUtil;
@@ -251,6 +250,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
LawsTag createByTag = new LawsTag();
createByTag.setDbFieldName(FieldCommon.CREATE_BY);
fieldListSelect.add(createByTag);
// 加一个create_time字段
LawsTag createTimeTag = new LawsTag();
createTimeTag.setDbFieldName("create_time");
fieldListSelect.add(createTimeTag);
// 获取分页参数
Integer pageNo = Integer.valueOf(parameterMap.get("pageNo").toString());
Integer pageSize = Integer.valueOf(parameterMap.get("pageSize").toString());
@@ -81,8 +81,8 @@ public class LawsHomeSearchController {
@AutoLog(value = "首页-高级检索(全部)", operateType = CommonConstant.OPERATE_TYPE_1)
@ApiOperation(value="首页-高级检索(全部)", notes="首页-高级检索(全部)")
@GetMapping(value = "/getAdvancedSearchAll")
public Result<IPage<Map<String,Object>>> getAdvancedSearchAll(Map<String,Object> parameterMap) {
@PostMapping(value = "/getAdvancedSearchAll")
public Result<IPage<Map<String,Object>>> getAdvancedSearchAll(@RequestBody Map<String,Object> parameterMap) {
return lawsHomeSearchService.getAdvancedSearchAll(parameterMap);
}
@@ -71,6 +71,7 @@ import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.CompletableFuture;
@@ -1326,6 +1327,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
}
private ModelAndView exportExcelByAll(Map<String, Object> parameterMap) {
parameterMap.put("pageNo", "1");
parameterMap.put("pageSize", "-1");
Result<IPage<Map<String, Object>>> advancedSearchAll = getAdvancedSearchAll(parameterMap);
List<LawsHomeAdvancedSearchExportExcelVO> lawsHomeAdvancedSearchExportExcelVOS =
JSON.parseArray(JSON.toJSONString(advancedSearchAll.getResult().getRecords()),
@@ -1445,6 +1448,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
@Override
public Result<IPage<Map<String, Object>>> getAdvancedSearchAll(Map<String, Object> parameterMap) {
Map<String, Object> originalParameterMap = new HashMap<>(parameterMap);
Map<String, Object> parameterMapByEnterprise = new HashMap<>(parameterMap);
boolean isEnterprise = true;
// 外来标准法规
@@ -1488,20 +1492,37 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
// 汇总数据
List<Map> maps1 = JSON.parseArray(JSON.toJSONString(commonPageNoPermissionsResult.getResult().getRecords()),
Map.class);
for (Map map : maps1) {
map.put("resource_type", LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD);
}
List<Map> maps2 = JSON.parseArray(
JSON.toJSONString(commonPageNoPermissionsResultByEnterpriseResult.getResult().getRecords()),
Map.class);
for (Map map : maps2) {
map.put("resource_type", LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD);
}
maps1.addAll(maps2);
// 排序
Comparator<Map> createTime = Comparator.comparing(map -> (Date) map.get("create_time"));
Comparator<Map> createTime = Comparator.comparing(map -> {
String createTimeStr = String.valueOf(map.get("create_time"));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return sdf.parse(createTimeStr);
} catch (ParseException e) {
throw new RuntimeException(e);
}
});
Comparator<Map> reversed = createTime.reversed();
maps1.sort(reversed);
// 手动分页
maps1 = maps1.stream()
.skip((Math.max(1, (Long) parameterMap.get("pageNo")) - 1) * (Long) parameterMap.get("pageSize"))
.limit((Long) parameterMap.get("pageSize"))
.collect(Collectors.toList());
if (!"-1".equals(originalParameterMap.get("pageSize"))){
maps1 = maps1.stream()
.skip((Math.max(1, Long.parseLong((String) originalParameterMap.get("pageNo"))) - 1) * Long.parseLong((String) originalParameterMap.get("pageSize")))
.limit(Long.parseLong((String) originalParameterMap.get("pageSize")))
.collect(Collectors.toList());
}
commonPageNoPermissionsResult.getResult().setRecords((List<Map<String, Object>>) (List<?>)maps1);
commonPageNoPermissionsResult.getResult().setTotal(maps1.size());
}