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

This commit is contained in:
zhn
2022-12-19 10:33:04 +08:00
parent ea129c82d2
commit 087139185f
2 changed files with 98 additions and 7 deletions
@@ -9,7 +9,11 @@ import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.cert.template.entity.ParamsTemplateEO;
import com.jero.modules.cert.template.service.IParamsTemplateEOService;
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.mapper.SysDictItemMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -17,16 +21,28 @@ import org.apache.commons.lang.StringUtils;
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.PutMapping;
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.stream.Collectors;
/**
/**
* @Description: 参数模板表
* @Author: jero-boot
* @Date: 2022-04-21
@@ -39,7 +55,9 @@ import java.util.List;
public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO, IParamsTemplateEOService> {
@Autowired
private IParamsTemplateEOService paramsTemplateEOService;
@Autowired
private SysDictItemMapper sysDictItemMapper;
/**
* 分页列表查询
*
@@ -70,15 +88,86 @@ public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO,
QueryWrapper<ParamsTemplateEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().like(StringUtils.isNotEmpty(paramsTemplateEO.getParamsTemplateName()), ParamsTemplateEO::getParamsTemplateName, paramsTemplateEO.getParamsTemplateName())
.eq(StringUtils.isNotEmpty(paramsTemplateEO.getRegion()), ParamsTemplateEO::getRegion, paramsTemplateEO.getRegion());
// .eq(StringUtils.isNotEmpty(paramsTemplateEO.getState()), ParamsTemplateEO::getState, paramsTemplateEO.getState())
queryWrapper.orderBy(StringUtils.isNotBlank(paramsTemplateEO.getOrderByField()), "1".equals(paramsTemplateEO.getOrderBy())?true:false, paramsTemplateEO.getOrderByField())
.orderBy(StringUtils.isBlank(paramsTemplateEO.getOrderByField()), false, "update_time");
// paramsTemplateEO.setOrderByField("region");
// paramsTemplateEO.setOrderBy("1");
if(StringUtils.isNotBlank(paramsTemplateEO.getOrderByField())){
if("params_template_name".equals(paramsTemplateEO.getOrderByField())
|| "create_time".equals(paramsTemplateEO.getOrderByField())
|| "update_time".equals(paramsTemplateEO.getOrderByField())){
queryWrapper.orderBy(StringUtils.isNotBlank(paramsTemplateEO.getOrderByField()),
OrderEnum.POSITIVE.getValue().equals(paramsTemplateEO.getOrderBy())?true:false,
"convert("+paramsTemplateEO.getOrderByField()+" using gbk)");
}
}else{
queryWrapper.orderBy(StringUtils.isBlank(paramsTemplateEO.getOrderByField()), false, "update_time");
}
Page<ParamsTemplateEO> page = new Page<ParamsTemplateEO>(pageNo, pageSize);
IPage<ParamsTemplateEO> pageList = paramsTemplateEOService.page(page, queryWrapper);
//适用地区排序(特殊处理)
pageList = regionSort(paramsTemplateEO, pageNo, pageSize, queryWrapper, pageList);
return Result.OK(cut, pageList);
}
private IPage<ParamsTemplateEO> regionSort(ParamsTemplateEO paramsTemplateEO, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, QueryWrapper<ParamsTemplateEO> queryWrapper, IPage<ParamsTemplateEO> pageList) {
if(StringUtils.isNotBlank(paramsTemplateEO.getOrderByField())
&& "region".equals(paramsTemplateEO.getOrderByField())){
List<SysDictItem> regionDictItemList = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.REGION.getValue());
List<ParamsTemplateEO> list = paramsTemplateEOService.list(queryWrapper);
for (ParamsTemplateEO templateEO : list) {
if(StringUtils.isNotEmpty(templateEO.getRegion())){
StringBuilder regionBuilder = new StringBuilder();
for (String s : templateEO.getRegion().split(",")) {
String regionName = regionDictItemList.stream().filter(e -> e.getItemValue().equals(s)).map(f -> f.getItemText()).collect(Collectors.joining(","));
regionBuilder.append(regionName).append(",");
}
templateEO.setRegionName(regionBuilder.substring(0, regionBuilder.toString().length() - 1));
}else{
templateEO.setRegion("");
}
}
Collator comparator = Collator.getInstance(Locale.CHINESE);
if (OrderEnum.POSITIVE.getValue().equals(paramsTemplateEO.getOrderBy())) {
Collections.sort(list, (e1, e2) -> {
return comparator.compare(e1.getRegionName(), e2.getRegionName());
});
} else if (OrderEnum.REVERSE.getValue().equals(paramsTemplateEO.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<ParamsTemplateEO> 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;
}
/**
* 列表查询
*
@@ -76,6 +76,8 @@ public class ParamsTemplateEO implements Serializable {
@Dict(dicCode = "region")
@ApiModelProperty(value = "适用地区")
private java.lang.String region;
@TableField(exist = false)
private java.lang.String regionName;
/**内容说明*/
@Excel(name = "内容说明", width = 15)