参数模板管理列表-表头排序
This commit is contained in:
+96
-7
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
|
||||
+2
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user