参数导出模板管理列表-表头排序

This commit is contained in:
zhn
2022-12-19 11:27:30 +08:00
parent bba68c5453
commit a829a5a0c9
4 changed files with 110 additions and 10 deletions
@@ -68,3 +68,7 @@ ADD COLUMN `brand` varchar(255) NULL COMMENT '品牌' AFTER `prc_num`;
-- 法规意见收集表添加字段
ALTER TABLE `laws_opinion_gather`
ADD COLUMN `brand` varchar(255) NULL COMMENT '品牌' AFTER `evaluator_ids`;
-- 参数导出模板管理添加字段 2022-12-19(未同步生产库)
ALTER TABLE `params_export_template`
ADD COLUMN `region` varchar(1000) NULL COMMENT '适用地区' AFTER `file_connect_id`;
@@ -9,7 +9,10 @@ import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.cert.report.entity.ParamsExportTemplateEO;
import com.jero.modules.cert.report.enums.ExportTemplateStateEnum;
import com.jero.modules.cert.report.service.IParamsExportTemplateEOService;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.mapper.SysDictItemMapper;
import com.jero.modules.system.util.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -17,14 +20,25 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -40,7 +54,9 @@ import java.util.Map;
public class ParamsExportTemplateEOController extends JeroController<ParamsExportTemplateEO, IParamsExportTemplateEOService> {
@Autowired
private IParamsExportTemplateEOService paramsExportTemplateEOService;
@Autowired
private SysDictItemMapper sysDictItemMapper;
/**
* 分页列表查询
*
@@ -62,17 +78,30 @@ public class ParamsExportTemplateEOController extends JeroController<ParamsExpor
paramsExportTemplateEO.setTemplateName(paramsExportTemplateEO.getTemplateName().replace("%", "\\%"));
}
if (StringUtils.isNotBlank(paramsExportTemplateEO.getOrderByField())) {
paramsExportTemplateEO.setOrderByField(LineHumpUtil.humpToLine2(paramsExportTemplateEO.getOrderByField()));
}
// if (StringUtils.isNotBlank(paramsExportTemplateEO.getOrderByField())) {
// paramsExportTemplateEO.setOrderByField(LineHumpUtil.humpToLine2(paramsExportTemplateEO.getOrderByField()));
// }
paramsExportTemplateEO.setOrderBy("2");
paramsExportTemplateEO.setOrderByField("template_name");
QueryWrapper<ParamsExportTemplateEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().like(StringUtils.isNotEmpty(paramsExportTemplateEO.getTemplateName()), ParamsExportTemplateEO::getTemplateName, paramsExportTemplateEO.getTemplateName());
queryWrapper.orderBy(StringUtils.isNotBlank(paramsExportTemplateEO.getOrderByField()), "1".equals(paramsExportTemplateEO.getOrderBy())?true:false, paramsExportTemplateEO.getOrderByField())
.orderBy(StringUtils.isBlank(paramsExportTemplateEO.getOrderByField()), false, "create_time"); // 默认按创建时间降序
if(StringUtils.isNotBlank(paramsExportTemplateEO.getOrderByField())){
if("template_name".equals(paramsExportTemplateEO.getOrderByField())
|| "update_time".equals(paramsExportTemplateEO.getOrderByField())){
queryWrapper.orderBy(org.apache.commons.lang.StringUtils.isNotBlank(paramsExportTemplateEO.getOrderByField()),
OrderEnum.POSITIVE.getValue().equals(paramsExportTemplateEO.getOrderBy())?true:false,
"convert("+paramsExportTemplateEO.getOrderByField()+" using gbk)");
}
}else{
queryWrapper.orderBy(StringUtils.isBlank(paramsExportTemplateEO.getOrderByField()), false, "create_time");
}
Page<ParamsExportTemplateEO> page = new Page<ParamsExportTemplateEO>(pageNo, pageSize);
IPage<ParamsExportTemplateEO> pageList = paramsExportTemplateEOService.page(page, queryWrapper);
//适用地区排序(特殊处理)
pageList = regionSort(paramsExportTemplateEO,pageNo,pageSize,queryWrapper,pageList);
// 处理 状态 中英文
List<ParamsExportTemplateEO> rows = pageList.getRecords();
Map<String, String> stateMap = ExportTemplateStateEnum.toMap(cut);
@@ -82,6 +111,68 @@ public class ParamsExportTemplateEOController extends JeroController<ParamsExpor
return Result.OK(pageList);
}
private IPage<ParamsExportTemplateEO> regionSort(ParamsExportTemplateEO paramsExportTemplateEO,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
QueryWrapper<ParamsExportTemplateEO> queryWrapper,
IPage<ParamsExportTemplateEO> pageList) {
if(org.apache.commons.lang.StringUtils.isNotBlank(paramsExportTemplateEO.getOrderByField())
&& "region".equals(paramsExportTemplateEO.getOrderByField())){
List<SysDictItem> regionDictItemList = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.REGION.getValue());
List<ParamsExportTemplateEO> list = paramsExportTemplateEOService.list(queryWrapper);
for (ParamsExportTemplateEO paramsExportTemplateEOTemp : list) {
if(org.apache.commons.lang.StringUtils.isNotEmpty(paramsExportTemplateEOTemp.getRegion())){
StringBuilder regionBuilder = new StringBuilder();
for (String s : paramsExportTemplateEOTemp.getRegion().split(",")) {
String regionName = regionDictItemList.stream().filter(e -> e.getItemValue().equals(s)).map(f -> f.getItemText()).collect(Collectors.joining(","));
regionBuilder.append(regionName).append(",");
}
paramsExportTemplateEOTemp.setRegionName(regionBuilder.substring(0, regionBuilder.toString().length() - 1));
}else{
paramsExportTemplateEOTemp.setRegionName("");
}
}
Collator comparator = Collator.getInstance(Locale.CHINESE);
if (OrderEnum.POSITIVE.getValue().equals(paramsExportTemplateEO.getOrderBy())) {
Collections.sort(list, (e1, e2) -> {
return comparator.compare(e1.getRegionName(), e2.getRegionName());
});
} else if (OrderEnum.REVERSE.getValue().equals(paramsExportTemplateEO.getOrderBy())) {
Collections.sort(list, (e1, e2) -> {
return comparator.compare(e2.getRegionName(), e1.getRegionName());
});
}
pageList = getPages(pageNo, pageSize, list);
}
return pageList;
}
public Page getPages(Integer currentPage, Integer pageSize, List<ParamsExportTemplateEO> list){
Page page =new Page();
if(list==null){
return null;
}
int size = list.size();
if(pageSize > size){
pageSize = size;
}
if(pageSize!=0){
//求出最⼤页数,防⽌currentPage越界
int maxPage = size % pageSize ==0? size / pageSize : size / pageSize +1;
if(currentPage > maxPage){
currentPage = maxPage;
}
}
//当前页第⼀条数据的下标
int curIdx = currentPage >1?(currentPage -1)* pageSize :0;
List pageList =new ArrayList();
//将当前页的数据放进pageList
for(int i =0; i < pageSize && curIdx + i < size; i++){
pageList.add(list.get(curIdx + i));
}
page.setCurrent(currentPage).setSize(pageSize).setTotal(list.size()).setRecords(pageList);
return page;
}
/**
* 列表查询
*
@@ -91,4 +91,9 @@ public class ParamsExportTemplateEO implements Serializable {
@TableField(exist = false)
private String orderByField; // 字段
//适用地区
private String region;
@TableField(exist = false)
private String regionName;
}
@@ -117,7 +117,7 @@ public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO,
}
templateEO.setRegionName(regionBuilder.substring(0, regionBuilder.toString().length() - 1));
}else{
templateEO.setRegion("");
templateEO.setRegionName("");
}
}
Collator comparator = Collator.getInstance(Locale.CHINESE);