上报库管理-表头排序

This commit is contained in:
zhn
2022-12-16 17:36:52 +08:00
parent 2893938273
commit 6428a6111a
6 changed files with 97 additions and 8 deletions
@@ -9,23 +9,35 @@ import com.jero.modules.cert.report.entity.ParamsReportEO;
import com.jero.modules.cert.report.entity.ParamsReportExportHistoryEO;
import com.jero.modules.cert.report.service.IParamsReportEOService;
import com.jero.modules.cert.report.service.IParamsReportExportHistoryEOService;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.system.util.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
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;
/**
/**
* @Description: 上报库
* @Author: jero-boot
* @Date: 2022-05-18
@@ -41,7 +53,7 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
@Autowired
private IParamsReportExportHistoryEOService paramsReportExportHistoryEOService;
/**
* 分页列表查询
*
@@ -67,14 +79,62 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
paramsReportEO.setTitle(paramsReportEO.getTitle().replace("%", "\\%"));
}
IPage page = new Page(pageNo, pageSize);
IPage pageList = paramsReportEOService.pageInfo(page, paramsReportEO);
List<ParamsReportEO> rows = pageList.getRecords();
for (ParamsReportEO row : rows) {
// IPage page = new Page(pageNo, pageSize);
// IPage pageList = paramsReportEOService.pageInfo(page, paramsReportEO);
// List<ParamsReportEO> rows = pageList.getRecords();
// for (ParamsReportEO row : rows) {
// row.setPageName(row.getProjectName() + "-" + row.getTargetMarket() + "-" + row.getTitle());
// }
List<ParamsReportEO> paramsReportEOS = paramsReportEOService.listInfo(paramsReportEO);
for (ParamsReportEO row : paramsReportEOS) {
row.setPageName(row.getProjectName() + "-" + row.getTargetMarket() + "-" + row.getTitle());
}
String orderBy = paramsReportEO.getOrderBy();
String orderByField = paramsReportEO.getOrderByField();
if(ObjectUtils.isNotEmpty(orderByField)) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
//编号 serialNumber
if ("projectName".equals(orderByField)) {
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
Collections.sort(paramsReportEOS, (e1, e2) -> {
return comparator.compare(e1.getPageName(), e2.getPageName());
});
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
Collections.sort(paramsReportEOS, (e1, e2) -> {
return comparator.compare(e2.getPageName(), e1.getPageName());
});
}
}
}
IPage pageList = getPages(pageNo,pageSize,paramsReportEOS);
return Result.OK(pageList);
}
public Page getPages(Integer currentPage, Integer pageSize, List<ParamsReportEO> 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;
}
/**
* 分页列表查询
@@ -82,4 +82,13 @@ public class ParamsReportEO implements Serializable {
@TableField(exist = false)
private String pageName; // 项目名称-国家-清单名称
//排序(1->正序, 2->倒序)
@TableField(exist = false)
private String orderBy;
//排序字段
@TableField(exist = false)
private String orderByField;
}
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.cert.report.entity.ParamsReportEO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: 上报库
* @Author: jero-boot
@@ -14,5 +16,6 @@ import org.apache.ibatis.annotations.Param;
public interface ParamsReportEOMapper extends BaseMapper<ParamsReportEO> {
IPage pageInfo(@Param("page") IPage page, @Param("paramsReportEO") ParamsReportEO paramsReportEO);
List<ParamsReportEO> listInfo(@Param("paramsReportEO") ParamsReportEO paramsReportEO);
}
@@ -57,5 +57,17 @@
<include refid="BaseQuerySql"/>
order by create_time desc
</select>
<select id="listInfo" resultMap="ParamsReportEOResultMap">
select tmp_tb.* from(
select <include refid="BaseColumnList"/>
from params_report pr
left join params_manifest as pm on pm.id = pr.old_params_manifest_id
left join project_library_base as plb on plb.id = pm.project_id
left join project_name_info as pni on plb.project_name_id = pni.id
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
) tmp_tb
<include refid="BaseQuerySql"/>
order by create_time desc
</select>
</mapper>
</mapper>
@@ -62,6 +62,7 @@ public interface IParamsReportEOService extends IService<ParamsReportEO> {
List<ParamsReportEO> queryList();
IPage pageInfo(IPage page, ParamsReportEO paramsReportEO);
List<ParamsReportEO> listInfo(ParamsReportEO paramsReportEO);
boolean isSync(String oldParamsManifestId, Integer version);
@@ -138,6 +138,10 @@ public class ParamsReportEOServiceImpl extends ServiceImpl<ParamsReportEOMapper,
public IPage pageInfo(IPage page, ParamsReportEO paramsReportEO) {
return paramsReportEOMapper.pageInfo(page, paramsReportEO);
}
@Override
public List<ParamsReportEO> listInfo(ParamsReportEO paramsReportEO) {
return paramsReportEOMapper.listInfo(paramsReportEO);
}
@Override
public boolean isSync(String oldParamsManifestId, Integer version) {