上报库管理-表头排序

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.entity.ParamsReportExportHistoryEO;
import com.jero.modules.cert.report.service.IParamsReportEOService; import com.jero.modules.cert.report.service.IParamsReportEOService;
import com.jero.modules.cert.report.service.IParamsReportExportHistoryEOService; import com.jero.modules.cert.report.service.IParamsReportExportHistoryEOService;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.system.util.StringUtils; import com.jero.modules.system.util.StringUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; 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 org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Locale;
/** /**
* @Description: 上报库 * @Description: 上报库
* @Author: jero-boot * @Author: jero-boot
* @Date: 2022-05-18 * @Date: 2022-05-18
@@ -67,14 +79,62 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
paramsReportEO.setTitle(paramsReportEO.getTitle().replace("%", "\\%")); paramsReportEO.setTitle(paramsReportEO.getTitle().replace("%", "\\%"));
} }
IPage page = new Page(pageNo, pageSize); // IPage page = new Page(pageNo, pageSize);
IPage pageList = paramsReportEOService.pageInfo(page, paramsReportEO); // IPage pageList = paramsReportEOService.pageInfo(page, paramsReportEO);
List<ParamsReportEO> rows = pageList.getRecords(); // List<ParamsReportEO> rows = pageList.getRecords();
for (ParamsReportEO row : rows) { // 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()); 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); 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) @TableField(exist = false)
private String pageName; // 项目名称-国家-清单名称 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 com.jero.modules.cert.report.entity.ParamsReportEO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @Description: 上报库 * @Description: 上报库
* @Author: jero-boot * @Author: jero-boot
@@ -14,5 +16,6 @@ import org.apache.ibatis.annotations.Param;
public interface ParamsReportEOMapper extends BaseMapper<ParamsReportEO> { public interface ParamsReportEOMapper extends BaseMapper<ParamsReportEO> {
IPage pageInfo(@Param("page") IPage page, @Param("paramsReportEO") ParamsReportEO 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"/> <include refid="BaseQuerySql"/>
order by create_time desc order by create_time desc
</select> </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(); List<ParamsReportEO> queryList();
IPage pageInfo(IPage page, ParamsReportEO paramsReportEO); IPage pageInfo(IPage page, ParamsReportEO paramsReportEO);
List<ParamsReportEO> listInfo(ParamsReportEO paramsReportEO);
boolean isSync(String oldParamsManifestId, Integer version); boolean isSync(String oldParamsManifestId, Integer version);
@@ -138,6 +138,10 @@ public class ParamsReportEOServiceImpl extends ServiceImpl<ParamsReportEOMapper,
public IPage pageInfo(IPage page, ParamsReportEO paramsReportEO) { public IPage pageInfo(IPage page, ParamsReportEO paramsReportEO) {
return paramsReportEOMapper.pageInfo(page, paramsReportEO); return paramsReportEOMapper.pageInfo(page, paramsReportEO);
} }
@Override
public List<ParamsReportEO> listInfo(ParamsReportEO paramsReportEO) {
return paramsReportEOMapper.listInfo(paramsReportEO);
}
@Override @Override
public boolean isSync(String oldParamsManifestId, Integer version) { public boolean isSync(String oldParamsManifestId, Integer version) {