合并代码

This commit is contained in:
zyx.net
2022-12-28 16:12:31 +08:00
63 changed files with 3391 additions and 210 deletions
@@ -127,6 +127,10 @@ 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`;
-- 参数收集清单-操作记录(历史日志) 2022-12-26 未同步生产环境
CREATE TABLE `laws_weilai`.`params_collect_manifest_log` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
@@ -16,6 +16,7 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.ImportExcelUtil;
import com.jero.common.util.SqlInjectionUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.enums.FixedFieldEnum;
import com.jero.modules.enums.IsTagDict;
import com.jero.modules.system.entity.SysDict;
@@ -23,8 +24,10 @@ import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.model.SysDictTree;
import com.jero.modules.system.model.TreeSelectModel;
import com.jero.modules.system.service.IProjectUserBrandService;
import com.jero.modules.system.service.ISysDictItemService;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.vo.SysDictPage;
import com.jero.modules.utils.HanYuPinYinUtil;
import io.swagger.annotations.Api;
@@ -53,6 +56,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
@@ -74,6 +78,10 @@ public class SysDictController {
private ISysDictItemService sysDictItemService;
@Autowired
public RedisTemplate<String, Object> redisTemplate;
@Autowired
private ISysUserService sysUserService;
@Autowired
private IProjectUserBrandService projectUserBrandService;
@RequestMapping(value = "/page", method = RequestMethod.GET)
@ApiOperation(value = "字典控制器-分页列表查询", notes = "字典控制器-分页列表查询")
@@ -757,4 +765,17 @@ public class SysDictController {
}
}
@ApiOperation(value = "查询出当前用户可配置品牌")
@GetMapping(value = "/getBrandDict")
public Result<List<DictModel>> getBrandDict() {
List<DictModel> dictModels = sysDictService.queryDictItemsByCode(DictCodeEnum.BRAND.getValue());
if (!sysUserService.isAdministrator()) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> brands = projectUserBrandService.queryBrandByUserId(sysUser.getId());
dictModels = dictModels.stream().filter(dictModel -> brands.contains(dictModel.getValue())).collect(Collectors.toList());
}
return Result.OK(dictModels);
}
}
@@ -11,11 +11,9 @@ import com.jero.common.constant.CommonConstant;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.system.entity.*;
import com.jero.modules.system.enums.AdmininstratorAuthRoleEnum;
import com.jero.modules.system.model.TreeModel;
import com.jero.modules.system.service.ISysPermissionDataRuleService;
import com.jero.modules.system.service.ISysPermissionService;
import com.jero.modules.system.service.ISysRolePermissionService;
import com.jero.modules.system.service.ISysRoleService;
import com.jero.modules.system.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -36,6 +34,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
@@ -62,6 +61,9 @@ public class SysRoleController {
@Autowired
private ISysPermissionService sysPermissionService;
@Autowired
private ISysUserService sysUserService;
/**
* 分页列表查询
* @param role
@@ -187,6 +189,11 @@ public class SysRoleController {
public Result<List<SysRole>> queryall() {
Result<List<SysRole>> result = new Result<>();
List<SysRole> list = sysRoleService.list();
//系统管理员才能授权的角色
if (!sysUserService.isAdministrator()) {
List<String> roleCodes = AdmininstratorAuthRoleEnum.getRoleCodes();
list = list.stream().filter(sysRole -> !roleCodes.contains(sysRole.getRoleCode())).collect(Collectors.toList());
}
if(list==null||list.size()<=0) {
result.error500("未找到角色信息");
}else {
@@ -0,0 +1,36 @@
package com.jero.modules.system.enums;
import com.jero.common.util.oConvertUtils;
import java.util.ArrayList;
import java.util.List;
public enum AdmininstratorAuthRoleEnum {
admin("admin","系统管理员"),
//brand_administrator("BrandAdministrator","品牌管理员"),
external_reports_manager("ExternalReportsManager","对外报告管理员"),
country_card_manage("countryCardManage","countryCard管理员");
String roleCode;
String roleName;
AdmininstratorAuthRoleEnum() {
}
AdmininstratorAuthRoleEnum(String roleCode, String roleName) {
this.roleCode = roleCode;
this.roleName = roleName;
}
public static List<String> getRoleCodes(){
List<String> list = new ArrayList<>();
for (AdmininstratorAuthRoleEnum val : AdmininstratorAuthRoleEnum.values()) {
list.add(val.roleCode);
}
return list;
}
}
@@ -109,6 +109,14 @@ public class ParamsManifestEO implements Serializable {
@ApiModelProperty(value = "说明")
private String explanation;
//排序字段
@TableField(exist = false)
private String orderByField;
//排序规则
@TableField(exist = false)
private String orderBy;
@ApiModelProperty(value = "项目相关版本对应的项目id")
private String projectVersionId;
@@ -73,7 +73,44 @@
from params_manifest pm left join params_template pt on pm.params_template_id = pt.id
) tmp_tb
<include refid="BaseQuerySql"/>
order by create_time desc
<if test="paramsManifestEO.orderByField == 'create_time'">
order by CONVERT( tmp_tb.create_time USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="paramsManifestEO.orderByField == 'create_by'">
order by CONVERT( tmp_tb.create_by USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="paramsManifestEO.orderByField == 'version'">
order by CONVERT( tmp_tb.version USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="paramsManifestEO.orderByField == 'finish_time'">
order by CONVERT( tmp_tb.finish_time USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="paramsManifestEO.orderByField == 'project_version'">
order by CONVERT( tmp_tb.project_version USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="paramsManifestEO.orderByField == 'params_template_name'">
order by CONVERT( tmp_tb.params_template_name USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="paramsManifestEO.orderByField == 'state'">
order by CONVERT( tmp_tb.state USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="paramsManifestEO.orderByField == 'title'">
order by CONVERT( tmp_tb.title USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="paramsManifestEO.orderBy == 1 and paramsManifestEO.orderByField != null and paramsManifestEO.orderByField != ''">
asc
</if>
<if test="paramsManifestEO.orderBy == 2 and paramsManifestEO.orderByField != null and paramsManifestEO.orderByField != ''">
desc
</if>
<if test="paramsManifestEO.orderByField == null or paramsManifestEO.orderByField == ''">
order by tmp_tb.create_time desc
</if>
</select>
<select id="pageInfoAll" resultMap="ParamsManifestEOResultMapForCopy">
@@ -194,4 +231,4 @@
WHERE user_id = #{userId}) a ON pm.project_id = a.id
where pm.state = #{state}
</select>
</mapper>
</mapper>
@@ -379,6 +379,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
@Override
public IPage pageInfo(IPage page, ParamsManifestEO paramsManifestEO) {
// paramsManifestEO.setOrderByField("title");
// paramsManifestEO.setOrderBy("1");
IPage rows = paramsManifestEOMapper.pageInfo(page, paramsManifestEO);
return rows;
}
@@ -11,6 +11,10 @@ import com.jero.common.system.vo.DictModel;
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.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.ocr.util.LineHumpUtil;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
@@ -21,14 +25,23 @@ 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.util.ArrayList;
import java.text.Collator;
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;
@@ -49,6 +62,9 @@ public class ParamsExportTemplateEOController extends JeroController<ParamsExpor
@Autowired
private ISysDictService sysDictService;
@Autowired
private SysDictItemMapper sysDictItemMapper;
/**
* 分页列表查询
*
@@ -70,20 +86,31 @@ 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()));
// }
QueryWrapper<ParamsExportTemplateEO> queryWrapper = new QueryWrapper<>();
if(StringUtils.isNotBlank(paramsExportTemplateEO.getRegion())){
queryWrapper.in("region",paramsExportTemplateEO.getRegion());
}
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);
@@ -99,6 +126,69 @@ 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;
}
/**
private String getRegion(ParamsExportTemplateEO paramsExportTemplateEO, List<DictModel> regionList, ParamsExportTemplateEO exportTemplateEO) {
//适用地区
List<DictModel> dictModelList = new ArrayList<>();
@@ -4,27 +4,46 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.cert.report.entity.ParamsReportConfigEO;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.cert.report.entity.ParamsReportEO;
import com.jero.modules.cert.report.entity.ParamsReportExportHistoryEO;
import com.jero.modules.cert.report.service.IParamsReportConfigEOService;
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.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
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.util.*;
import java.util.stream.Collectors;
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;
/**
@@ -46,7 +65,11 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
@Autowired
private IParamsReportConfigEOService paramsReportConfigEOService;
@Autowired
private ISysDictService sysDictService;
/**
* 分页列表查询
*
@@ -72,12 +95,44 @@ 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) {
row.setPageName(row.getProjectName() + "-" + row.getTargetMarket() + "-" + row.getTitle());
// 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<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
List<ParamsReportEO> paramsReportEOS = paramsReportEOService.listInfo(paramsReportEO);
for (ParamsReportEO row : paramsReportEOS) {
String market = getMarket(paramsReportEO, targetMarketList, row);
if(StringUtils.isNotBlank(row.getProjectName())){
if(StringUtils.isBlank(market)){
row.setProjectName(row.getProjectName()+ "-00");
}else{
row.setProjectName(row.getProjectName()+"-" +market+ "-00");
}
row.setPageName(row.getProjectName());
}
}
String orderBy = paramsReportEO.getOrderBy();
String orderByField = paramsReportEO.getOrderByField();
if(ObjectUtils.isNotEmpty(orderByField)) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
//项目名称 pageName
if ("pageName".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);
}
@@ -128,6 +183,59 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
return Result.OK(pageList);
}
private String getMarket(ParamsReportEO paramsReportEO, List<DictModel> targetMarketList, ParamsReportEO row) {
List<DictModel> dictModelList = new ArrayList<>();
String targetMarket = "";
if(StringUtils.isNotBlank(row.getTargetMarket())){
for (String s : row.getTargetMarket().split(",")) {
List<DictModel> dictModelListTemp = targetMarketList.stream()
.filter(e -> s.equals(e.getValue())).collect(Collectors.toList());
dictModelList.addAll(dictModelListTemp);
}
}
if(dictModelList.size() != 0){
StringBuilder sb = new StringBuilder();
for (DictModel dictModel : dictModelList) {
if(CutEnum.CN.getValue().equals(paramsReportEO)){
sb.append(dictModel.getText()+",");
}else{
sb.append(dictModel.getTextEn()+",");
}
}
if(StringUtils.isNotBlank(sb)){
targetMarket = sb.substring(0,sb.length()-1);
}
}
return targetMarket;
}
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;
}
/**
* 分页列表查询
*
@@ -97,4 +97,9 @@ public class ParamsExportTemplateEO implements Serializable {
@TableField(exist = false)
private String orderByField; // 字段
//适用地区
private String region;
@TableField(exist = false)
private String regionName;
}
@@ -81,9 +81,21 @@ public class ParamsReportEO implements Serializable {
@ApiModelProperty(value = "目标市场")
private String targetMarket;
@TableField(exist = false)
private String cut;
@TableField(exist = false)
private String pageName; // 项目名称-国家-清单名称
//排序(1->正序, 2->倒序)
@TableField(exist = false)
private String orderBy;
//排序字段
@TableField(exist = false)
private String orderByField;
@TableField(exist = false)
private List<HashMap<String, String>> configList;
@@ -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) {
@@ -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;
/**
* 分页列表查询
*
@@ -63,22 +81,87 @@ public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO,
paramsTemplateEO.setParamsTemplateName(paramsTemplateEO.getParamsTemplateName().replace("%","\\%"));
}
if (StringUtils.isNotBlank(paramsTemplateEO.getOrderByField())) {
paramsTemplateEO.setOrderByField(LineHumpUtil.humpToLine2(paramsTemplateEO.getOrderByField()));
}
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");
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.setRegionName("");
}
}
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)
@@ -3,8 +3,8 @@ package com.jero.modules.collection.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.collection.entity.OnlCgformCollection;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Map;
@@ -22,4 +22,6 @@ public interface OnlCgformCollectionMapper extends BaseMapper<OnlCgformCollectio
List<OnlCgformCollection> queryListByDocumentId(@Param("document_id") String document_id);
IPage queryPageList(IPage page,@Param("params") Map<String, Object> params);
List<Map<String,Object>> infoList(@Param("params") Map<String, Object> params);
}
@@ -54,6 +54,65 @@
#{item}
</foreach>
</if>
order by occ.create_time desc
<if test="params.orderByField == 'serial_number' or params.orderByField == 'title'">
order by CONVERT( ${params.orderByField} USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="params.orderByField == 'create_time'">
order by occ.create_time
</if>
<if test="params.orderBy == 1">
asc
</if>
<if test="params.orderBy == 2">
desc
</if>
<if test="params.orderByField == null or params.orderByField == ''">
order by occ.create_time desc
</if>
</select>
</mapper>
<select id="infoList" parameterType="java.util.Map" resultType="hashmap">
select
occ.id,
occ.create_time as createTime,
occ.create_by as createBy,
bdl.serial_number as serialNumber,
bdl.title,
bdl.state,
occ.document_id as documentId
from
onl_cgform_collection occ
right join buss_document_library bdl on occ.document_id = bdl.id
where occ.create_by = #{params.createBy}
<if test="params.serialNumber != null and params.serialNumber != ''">
<!--搜索条件:编号;包含%,单独搜索-->
<choose>
<when test='params.serialNumber != null and params.serialNumber != "" and params.serialNumber.contains("%")'>
and bdl.serial_number like '%1%%' escape '1'
</when>
<otherwise>
and bdl.serial_number like concat(concat('%',#{params.serialNumber}),'%')
</otherwise>
</choose>
</if>
<if test="params.title != null and params.title != ''">
<!--搜索条件:标题;包含%,单独搜索-->
<choose>
<when test='params.title != null and params.title != "" and params.title.contains("%")'>
and bdl.title like '%1%%' escape '1'
</when>
<otherwise>
and bdl.title like concat(concat('%',#{params.title}),'%')
</otherwise>
</choose>
</if>
<if test="params.state != null and params.state != '' ">
and bdl.state in
<foreach collection="params.state.split(',')" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>
@@ -13,12 +13,14 @@ import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServi
import com.jero.modules.collection.entity.OnlCgformCollection;
import com.jero.modules.collection.mapper.OnlCgformCollectionMapper;
import com.jero.modules.collection.service.IOnlCgformCollectionService;
import com.jero.modules.document.enums.LawsStateEnum;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import com.jero.modules.subscribe.mapper.OnlCgformSubscribeMapper;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,7 +28,12 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -221,16 +228,90 @@ public class OnlCgformCollectionServiceImpl extends ServiceImpl<OnlCgformCollect
@Override
public IPage<OnlCgformCollection> queryPageList(Map<String, Object> params) {
// params.put("orderByField","serial_number");
// params.put("orderBy","1");
if(ObjectUtils.isEmpty(params.get("orderByField"))){
params.put("orderBy","");
}
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
IPage page = new Page(pageNo, pageSize);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
params.put("createBy",sysUser.getUsername());
IPage result = onlCgformCollectionMapper.queryPageList(page,params);
IPage result = new Page();
//表头排序(状态单独处理)
if(ObjectUtils.isNotEmpty(params.get("orderByField")) && "state".equals((String) params.get("orderByField"))){
List<Map<String, Object>> infoList = onlCgformCollectionMapper.infoList(params);
result = stateSort(params,pageNo,pageSize,result,infoList);
}else{
result = onlCgformCollectionMapper.queryPageList(page,params);
}
List<Map<String,Object>> records = result.getRecords();
dataDispose(records,params);
return result;
}
public IPage stateSort(Map<String, Object> parameter, int pageNo, int pageSize, IPage infoPage,List<Map<String, Object>> infoList) {
List<Map<String,Object>> list = new LinkedList<>();
//状态排序,需要特殊处理 现行,即将实施,草稿,被替代,废止
if(ObjectUtils.isNotEmpty(parameter.get("orderByField")) && "state".equals((String) parameter.get("orderByField"))){
List<Map<String, Object>> active = infoList.stream()
.filter(e -> LawsStateEnum.ACTIVE.getValue().equals(e.get("state"))).collect(Collectors.toList());
List<Map<String, Object>> theUpcoming = infoList.stream()
.filter(e -> LawsStateEnum.THE_UPCOMING.getValue().equals(e.get("state"))).collect(Collectors.toList());
List<Map<String, Object>> draft = infoList.stream()
.filter(e -> LawsStateEnum.DRAFT.getValue().equals(e.get("state"))).collect(Collectors.toList());
List<Map<String, Object>> beReplaced = infoList.stream()
.filter(e -> LawsStateEnum.BE_REPLACED.getValue().equals(e.get("state"))).collect(Collectors.toList());
List<Map<String, Object>> abolish = infoList.stream()
.filter(e -> LawsStateEnum.ABOLISH.getValue().equals(e.get("state"))).collect(Collectors.toList());
if ("1".equals((String) parameter.get("orderBy"))) {
//正序
list.addAll(active);
list.addAll(theUpcoming);
list.addAll(draft);
list.addAll(beReplaced);
list.addAll(abolish);
} else if ("2".equals((String) parameter.get("orderBy"))) {
//倒序
list.addAll(abolish);
list.addAll(beReplaced);
list.addAll(draft);
list.addAll(theUpcoming);
list.addAll(active);
}
if(ObjectUtils.isNotEmpty(list)){
infoPage = getPages(pageNo, pageSize, list);
}
}
return infoPage;
}
public IPage getPages(Integer currentPage, Integer pageSize, List<Map<String,Object>> list){
IPage 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;
}
public void dataDispose(List<Map<String,Object>> datas, Map<String,Object> params){
if(CollectionUtils.isNotEmpty(datas)){
@@ -297,4 +378,4 @@ public class OnlCgformCollectionServiceImpl extends ServiceImpl<OnlCgformCollect
throw new JeroBootException("删除订阅信息失败!");
}
}
}
}
@@ -32,6 +32,7 @@ import com.jero.modules.collection.service.IOnlCgformCollectionService;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.entity.OSSFileForDocumentLibrary;
import com.jero.modules.document.enums.FieldTypeEnum;
import com.jero.modules.document.enums.LawsStateEnum;
import com.jero.modules.document.enums.SearchEnum;
import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
@@ -613,10 +614,25 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//跳转详情的标识
map.put("click", "true");
}
//单独处理发布日期和标准实施日期
//单独处理发布日期编号标题状态技术领域适用地区
if ("issue_time".equals(onlCgformField.getDbFieldName())) {
map.put("sort", "true");//列表排序标识
}
if ("serial_number".equals(onlCgformField.getDbFieldName())) {
map.put("sort", "true");//列表排序标识
}
if ("title".equals(onlCgformField.getDbFieldName())) {
map.put("sort", "true");//列表排序标识
}
if ("state".equals(onlCgformField.getDbFieldName())) {
map.put("sort", "true");//列表排序标识
}
if ("technology_territory".equals(onlCgformField.getDbFieldName())) {
map.put("sort", "true");//列表排序标识
}
if ("region".equals(onlCgformField.getDbFieldName())) {
map.put("sort", "true");//列表排序标识
}
map.put("db_field_name", onlCgformField.getDbFieldName());//字段
if (CutEnum.CN.getValue().equals(cut)) {
map.put("db_field_txt", onlCgformField.getDbFieldTxt());//字段中文名
@@ -3962,6 +3978,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
IPage page = new Page(pageNo, pageSize);
IPage infoPage = bussDocumentLibraryEOMapper.getInfoPage(page, " " + StringUtils.join(fieldListNew, ","), condition);
infoPage = stateSort(parameter, fieldListNew, condition, pageNo, pageSize, infoPage);
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
//过滤出树形字段
@@ -4021,6 +4040,71 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
return infoPage;
}
private IPage stateSort(Map<String, Object> parameter, List<String> fieldListNew, String condition, int pageNo, int pageSize, IPage infoPage) {
List<Map<String,Object>> list = new LinkedList<>();
//状态排序需要特殊处理 现行即将实施草稿被替代废止
if(ObjectUtils.isNotEmpty(parameter.get("orderByField")) && "state".equals((String) parameter.get("orderByField"))){
List<Map<String, Object>> infoList = bussDocumentLibraryEOMapper.getInfoList(" " + StringUtils.join(fieldListNew, ","), condition);
List<Map<String, Object>> active = infoList.stream()
.filter(e -> LawsStateEnum.ACTIVE.getValue().equals(e.get("state"))).collect(Collectors.toList());
List<Map<String, Object>> theUpcoming = infoList.stream()
.filter(e -> LawsStateEnum.THE_UPCOMING.getValue().equals(e.get("state"))).collect(Collectors.toList());
List<Map<String, Object>> draft = infoList.stream()
.filter(e -> LawsStateEnum.DRAFT.getValue().equals(e.get("state"))).collect(Collectors.toList());
List<Map<String, Object>> beReplaced = infoList.stream()
.filter(e -> LawsStateEnum.BE_REPLACED.getValue().equals(e.get("state"))).collect(Collectors.toList());
List<Map<String, Object>> abolish = infoList.stream()
.filter(e -> LawsStateEnum.ABOLISH.getValue().equals(e.get("state"))).collect(Collectors.toList());
if ("1".equals((String) parameter.get("orderBy"))) {
//正序
list.addAll(active);
list.addAll(theUpcoming);
list.addAll(draft);
list.addAll(beReplaced);
list.addAll(abolish);
} else if ("2".equals((String) parameter.get("orderBy"))) {
//倒序
list.addAll(abolish);
list.addAll(beReplaced);
list.addAll(draft);
list.addAll(theUpcoming);
list.addAll(active);
}
if(ObjectUtils.isNotEmpty(list)){
infoPage = getPages(pageNo, pageSize, list);
}
}
return infoPage;
}
public IPage getPages(Integer currentPage, Integer pageSize, List<Map<String,Object>> list){
IPage 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;
}
@NotNull
public String getConditionStr(Map<String, Object> parameter) {
@@ -4134,11 +4218,18 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}else{
//处理列表表头排序
if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) {
conditionSb.append(" order by " + (String) parameter.get("orderByField"));
if ("1".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" asc");//正序
} else if ("2".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" desc");//倒序
String orderByField = (String) parameter.get("orderByField");
if("serial_number".equals(orderByField)
|| "title".equals(orderByField)
|| "title_en".equals(orderByField)
|| "region".equals(orderByField)
|| "technology_territory".equals(orderByField)){
conditionSb.append(" order by " + "CONVERT("+orderByField +" USING gbk) COLLATE gbk_chinese_ci");
orderBySort(parameter, conditionSb);
}else if("issue_time".equals(orderByField)){
conditionSb.append(" order by " + (String) parameter.get("orderByField"));
orderBySort(parameter, conditionSb);
}
} else {
conditionSb.append(" order by create_time desc");
@@ -4148,6 +4239,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
return condition;
}
private void orderBySort(Map<String, Object> parameter, StringBuilder conditionSb) {
if ("1".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" asc");//正序
} else if ("2".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" desc");//倒序
}
}
/**
* 收藏和订阅
@@ -10,11 +10,13 @@ import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.dummy.entity.DummyInventoryBaseEO;
import com.jero.modules.dummy.enums.InventoryStateEnum;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.dummy.service.IDummyInventoryBaseEOService;
import com.jero.modules.dummy.vo.VirtualCreaterVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -58,9 +60,32 @@ public class DummyInventoryBaseEOController extends JeroController<DummyInventor
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// dummyInventoryBaseEO.setName("*发*");
QueryWrapper<DummyInventoryBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryBaseEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
//处理表头排序
if(StringUtils.isNotBlank(dummyInventoryBaseEO.getOrderByField())){
//名称,创建人
if("name".equals(dummyInventoryBaseEO.getOrderByField())
|| "create_By".equals(dummyInventoryBaseEO.getOrderByField())){
if(OrderEnum.POSITIVE.getValue().equals(dummyInventoryBaseEO.getOrderBy())){
//conditionSb.append(" order by " + "CONVERT("+orderByField +"USING gbk) COLLATE gbk_chinese_ci");
queryWrapper.orderBy(true,true,"convert("+dummyInventoryBaseEO.getOrderByField()+" using gbk)");
// queryWrapper.orderBy(true,true,"convert("+dummyInventoryBaseEO.getOrderByField()+" using gbk");
}else if(OrderEnum.REVERSE.getValue().equals(dummyInventoryBaseEO.getOrderBy())){
queryWrapper.orderBy(true,false,"convert("+dummyInventoryBaseEO.getOrderByField()+" using gbk)");
}
}
//清单状态
if("state".equals(dummyInventoryBaseEO.getOrderByField())){
if(OrderEnum.POSITIVE.getValue().equals(dummyInventoryBaseEO.getOrderBy())){
queryWrapper.orderByAsc("state");
}else if(OrderEnum.REVERSE.getValue().equals(dummyInventoryBaseEO.getOrderBy())){
queryWrapper.orderByDesc("state");
}
}
}else{
queryWrapper.orderByDesc("create_time");
}
Page<DummyInventoryBaseEO> page = new Page<DummyInventoryBaseEO>(pageNo, pageSize);
IPage<DummyInventoryBaseEO> pageList = dummyInventoryBaseEOService.getPageInfo(page,queryWrapper);
return Result.OK(dummyInventoryBaseEO.getCut(),pageList);
@@ -87,4 +87,12 @@ public class DummyInventoryBaseEO implements Serializable {
@TableField(exist = false)
private String cut;
//排序(1->正序, 2->倒序)
@TableField(exist = false)
private String orderBy;
//排序字段
@TableField(exist = false)
private String orderByField;
}
@@ -94,6 +94,8 @@ public class DummyInventoryInfoEO implements Serializable {
private java.lang.String shi4Yong4Fan4Wei2;
@TableField(exist = false)
private String shi4Yong4Fan4Wei2_dictText;
@TableField(exist = false)
private java.lang.String shi4Yong4Fan4Wei2Str;
/**状态*/
@Excel(name = "状态", width = 15,dicCode ="state")
@@ -103,6 +105,9 @@ public class DummyInventoryInfoEO implements Serializable {
@TableField(exist = false)
private String state_dictText;
@TableField(exist = false)
private java.lang.String stateStr;
/**对应标准*/
@Excel(name = "对应标准", width = 15)
@ApiModelProperty(value = "对应标准")
@@ -159,6 +164,9 @@ public class DummyInventoryInfoEO implements Serializable {
@TableField(exist = false)
private String attestationRank_dictText;
@TableField(exist = false)
private java.lang.String attestationRankStr;
/**适用增补件*/
@ApiModelProperty(value = "适用增补件")
@Excel(name = "适用增补件", width = 15)
@@ -180,6 +188,9 @@ public class DummyInventoryInfoEO implements Serializable {
@TableField(exist = false)
private String dutyTerritory_dictText;
@TableField(exist = false)
private java.lang.String dutyTerritoryStr;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@@ -313,6 +324,14 @@ public class DummyInventoryInfoEO implements Serializable {
//文档库id
private String bussDocumentLibraryId;
//排序(1->正序, 2->倒序)
@TableField(exist = false)
private String orderBy;
//排序字段
@TableField(exist = false)
private String orderByField;
@@ -0,0 +1,40 @@
package com.jero.modules.dummy.enums;
/**
* @description
* @date 2022/1/21 15:22
* @auth zhn
*/
public enum AttestationRankEnum {
WVTA("WVTA","WVTA"),
VTA("Com.Cert-VTA","Com.Cert-VTA"),
MARKET("Com.Cert-Market","Com.Cert-Market"),
REGU("Regu-Market","Regu-Market"),
NA("NA","NA");
String name;
String value;
private AttestationRankEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@@ -0,0 +1,37 @@
package com.jero.modules.dummy.enums;
/**
* @description
* @date 2022/1/21 15:22
* @auth zhn
*/
public enum OrderEnum {
POSITIVE("正序","1"),
REVERSE("倒序","2");
String name;
String value;
private OrderEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@@ -16,11 +16,14 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.common.util.oss.CosBootUtil;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.enums.LawsStateEnum;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.dummy.entity.DummyInventoryBaseEO;
import com.jero.modules.dummy.entity.DummyInventoryInfoEO;
import com.jero.modules.dummy.entity.DummyInventoryInfoEOEn;
import com.jero.modules.dummy.enums.AttestationRankEnum;
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.dummy.mapper.DummyInventoryInfoEOMapper;
import com.jero.modules.dummy.service.IDummyInventoryInfoEOService;
import com.jero.modules.dummy.util.DeepCopyListUtil;
@@ -60,6 +63,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.Collator;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -379,20 +383,181 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
@Override
public List<DummyInventoryInfoEO> queryList(DummyInventoryInfoEO dummyInventoryInfoEO,HttpServletRequest req) {
long startTime = System.currentTimeMillis();
// dummyInventoryInfoEO.setOrderBy("2");
// dummyInventoryInfoEO.setOrderByField("shi4Yong4Fan4Wei2");
String orderBy = dummyInventoryInfoEO.getOrderBy();
String orderByField = dummyInventoryInfoEO.getOrderByField();
QueryWrapper<DummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoEO,req.getParameterMap());
// queryWrapper.in("dummy_inventory_base_id",dummyInventoryInfoEO.getDummyInventoryBaseId());
queryWrapper.orderByDesc("create_time","serial_number");
//新车型实施日期,在产车实施日期(排序)
if("xin1_che1_xing2_shi2_shi1_ri4_qi1".equals(orderByField) || "implement_time".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
queryWrapper.orderByAsc(orderByField);
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
queryWrapper.orderByDesc(orderByField);
}
}
if(StringUtils.isBlank(orderByField)){
queryWrapper.orderByDesc("create_time","serial_number");
}
List<DummyInventoryInfoEO> dummyInventoryInfoEOList = this.list(queryWrapper);
log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime));
//数据字典
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
//技术领域处理
treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList);
log.info("二阶段消耗时间:" + (System.currentTimeMillis() - startTime));
this.dataDicDispose(dummyInventoryInfoEOList,dummyInventoryInfoEO.getCut());
log.info("三阶段消耗时间:" + (System.currentTimeMillis() - startTime));
treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList,sysDictItems);
//表头排序
dummyInventoryInfoEOList = hearSort(orderBy, orderByField, dummyInventoryInfoEOList);
return dummyInventoryInfoEOList;
}
private List<DummyInventoryInfoEO> hearSort(String orderBy, String orderByField, List<DummyInventoryInfoEO> dummyInventoryInfoEOList) {
if(ObjectUtils.isNotEmpty(orderByField)){
Collator comparator = Collator.getInstance(Locale.CHINESE);
//编号
if("serialNumber".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(dummyInventoryInfoEOList,(e1, e2)->{
return comparator.compare(e1.getSerialNumber(),e2.getSerialNumber());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
return comparator.compare(e2.getSerialNumber(),e1.getSerialNumber());
});
}
}
//适用范围
if("shi4Yong4Fan4Wei2".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(dummyInventoryInfoEOList,(e1, e2)->{
return comparator.compare(e1.getShi4Yong4Fan4Wei2Str(),e2.getShi4Yong4Fan4Wei2Str());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
return comparator.compare(e2.getShi4Yong4Fan4Wei2Str(),e1.getShi4Yong4Fan4Wei2Str());
});
}
}
//WVTA ID
if("wvtaId".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(dummyInventoryInfoEOList,(e1, e2)->{
return comparator.compare(e1.getWvtaId(),e2.getWvtaId());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
return comparator.compare(e2.getWvtaId(),e1.getWvtaId());
});
}
}
List<DummyInventoryInfoEO> list = new LinkedList<>();
//状态(现行,即将实施,草稿,被替代,废止)
dummyInventoryInfoEOList = stateSort(orderBy, orderByField, dummyInventoryInfoEOList, list);
//认证级别(WVTACom.-VTACert.-MarketReg.-Market,NA
dummyInventoryInfoEOList = attestationRankSort(orderBy, orderByField, dummyInventoryInfoEOList, list);
//责任领域
if("dutyTerritory".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
return comparator.compare(e1.getDutyTerritoryStr(),e2.getDutyTerritoryStr());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{
return comparator.compare(e2.getDutyTerritoryStr(),e1.getDutyTerritoryStr());
});
}
}
}
return dummyInventoryInfoEOList;
}
private List<DummyInventoryInfoEO> attestationRankSort(String orderBy, String orderByField, List<DummyInventoryInfoEO> dummyInventoryInfoEOList, List<DummyInventoryInfoEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "attestationRank".equals(orderByField)){
List<DummyInventoryInfoEO> wvta = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.WVTA.getValue())).collect(Collectors.toList());
List<DummyInventoryInfoEO> vta = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.VTA.getValue())).collect(Collectors.toList());
List<DummyInventoryInfoEO> market = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.MARKET.getValue())).collect(Collectors.toList());
List<DummyInventoryInfoEO> regu = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.REGU.getValue())).collect(Collectors.toList());
List<DummyInventoryInfoEO> na = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.NA.getValue())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
list.addAll(wvta);
list.addAll(vta);
list.addAll(market);
list.addAll(regu);
list.addAll(na);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(na);
list.addAll(regu);
list.addAll(market);
list.addAll(vta);
list.addAll(wvta);
}
}
if(ObjectUtils.isNotEmpty(list)){
return list;
}else{
return dummyInventoryInfoEOList;
}
}
private List<DummyInventoryInfoEO> stateSort(String orderBy, String orderByField, List<DummyInventoryInfoEO> dummyInventoryInfoEOList, List<DummyInventoryInfoEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "state".equals(orderByField)){
List<DummyInventoryInfoEO> active = dummyInventoryInfoEOList.stream()
.filter(e -> LawsStateEnum.ACTIVE.getName().equals(e.getStateStr())).collect(Collectors.toList());
List<DummyInventoryInfoEO> theUpcoming = dummyInventoryInfoEOList.stream()
.filter(e -> LawsStateEnum.THE_UPCOMING.getName().equals(e.getStateStr())).collect(Collectors.toList());
List<DummyInventoryInfoEO> draft = dummyInventoryInfoEOList.stream()
.filter(e -> LawsStateEnum.DRAFT.getName().equals(e.getStateStr())).collect(Collectors.toList());
List<DummyInventoryInfoEO> beReplaced = dummyInventoryInfoEOList.stream()
.filter(e -> LawsStateEnum.BE_REPLACED.getName().equals(e.getStateStr())).collect(Collectors.toList());
List<DummyInventoryInfoEO> abolish = dummyInventoryInfoEOList.stream()
.filter(e -> LawsStateEnum.ABOLISH.getName().equals(e.getStateStr())).collect(Collectors.toList());
if ("1".equals(orderBy)) {
//正序
list.addAll(active);
list.addAll(theUpcoming);
list.addAll(draft);
list.addAll(beReplaced);
list.addAll(abolish);
} else if ("2".equals(orderBy)) {
//倒序
list.addAll(abolish);
list.addAll(beReplaced);
list.addAll(draft);
list.addAll(theUpcoming);
list.addAll(active);
}
}
if(ObjectUtils.isNotEmpty(list)){
return list;
}else{
return dummyInventoryInfoEOList;
}
}
/**
* 数据字典数据处理方法 -> 虚拟清单使用@Dict翻译效率太慢了,200条数据需要处理1分钟。
* @param datas
@@ -997,7 +1162,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
* @param dummyInventoryInfoEO
* @param dummyInventoryInfoEOList
*/
private void treeDict(DummyInventoryInfoEO dummyInventoryInfoEO, List<DummyInventoryInfoEO> dummyInventoryInfoEOList) {
private void treeDict(DummyInventoryInfoEO dummyInventoryInfoEO, List<DummyInventoryInfoEO> dummyInventoryInfoEOList,List<SysDictItem> sysDictItems) {
List<String> deliverableList = new ArrayList<>();
if(dummyInventoryInfoEOList.size() != 0){
@@ -1026,6 +1191,42 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
List<SysCategory> categoryList = sysCategoryService.list();
for (DummyInventoryInfoEO record : dummyInventoryInfoEOList) {
String shi4Yong4Fan4Wei2 = record.getShi4Yong4Fan4Wei2();
String state = record.getState();
String attestationRank = record.getAttestationRank();
String dutyTerritory = record.getDutyTerritory();
if(StringUtils.isBlank(record.getWvtaId())){
record.setWvtaId("");
}
//适用范围 apply_scope
if(StringUtils.isNotBlank(shi4Yong4Fan4Wei2)){
String applyScope = getItemText(dummyInventoryInfoEO.getCut(), sysDictItems, shi4Yong4Fan4Wei2, "apply_scope");
record.setShi4Yong4Fan4Wei2Str(applyScope);
}else{
record.setShi4Yong4Fan4Wei2Str("");
}
//状态 state
if(StringUtils.isNotBlank(state)){
String stateTemp = getItemText(dummyInventoryInfoEO.getCut(), sysDictItems, state, "state");
record.setStateStr(stateTemp);
}else{
record.setStateStr("");
}
//认证级别 attestation_rank
if(StringUtils.isNotBlank(attestationRank)){
String attestationRankTemp = getItemText(dummyInventoryInfoEO.getCut(), sysDictItems, attestationRank, "attestation_rank");
record.setAttestationRankStr(attestationRankTemp);
}else{
record.setAttestationRankStr("");
}
//责任领域 duty_territory
if(StringUtils.isNotBlank(dutyTerritory)){
String dutyTerritoryTemp = getItemText(dummyInventoryInfoEO.getCut(), sysDictItems, dutyTerritory, "duty_territory");
record.setDutyTerritoryStr(dutyTerritoryTemp);
}else{
record.setDutyTerritoryStr("");
}
//技术领域
if (categoryList.size() != 0 && StringUtils.isNotBlank(record.getTechnologyTerritory())) {
List<String> technologyTerritoryList = Arrays.asList(record.getTechnologyTerritory().split(","));
@@ -1079,6 +1280,30 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
}
}
private String getItemText(String cut, List<SysDictItem> sysDictItems, String field,String dictCode) {
StringBuilder sb = new StringBuilder();
for (String s : field.split(",")) {
List<SysDictItem> sysDictItemList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(dictCode))
.collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(sysDictItemList)){
List<SysDictItem> collect = sysDictItemList.stream().filter(e -> s.equals(e.getItemValue())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect)){
if(CutEnum.CN.getValue().equals(cut)){
sb.append(collect.get(0).getItemText());
}else{
sb.append(collect.get(0).getEnName());
}
}
}
}
String substring = "";
if(StringUtils.isNotBlank(sb)){
substring = sb.substring(0, sb.length());
}
return substring;
}
private String getTreeName(DummyInventoryInfoEO dummyInventoryInfoEO, List<SysCategory> categoryList, List<String> technologyTerritoryList) {
StringBuilder sb = new StringBuilder();
for (String technologyTerritory : technologyTerritoryList) {
@@ -34,7 +34,7 @@ public class ConfigManager
{
try
{
// get stream from the settings.properties resource and load it
// get from the settings.properties resource and load it
properties = new Properties();
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("settings.properties");
properties.load(stream);
@@ -58,4 +58,4 @@ public class ConfigManager
return property == null ? "" : property;
}
}
}
@@ -3,11 +3,14 @@ package com.jero.modules.project.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.project.service.INcrTrackService;
import com.jero.modules.project.vo.NcrTrackVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -19,7 +22,10 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.Collator;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
/**
* @description
@@ -51,10 +57,116 @@ public class NcrTrackController {
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
List<NcrTrackVO> pageInfo = iNcrTrackService.getPageInfo(ncrTrackVO);
//表头排序
orderHeader(ncrTrackVO, pageInfo);
Page pages = iNcrTrackService.getPages(pageNo, pageSize, pageInfo);
return Result.OK(ncrTrackVO.getCut(),pages);
}
private void orderHeader(NcrTrackVO ncrTrackVO, List<NcrTrackVO> pageInfo) {
String orderBy = ncrTrackVO.getOrderBy();
String orderByField = ncrTrackVO.getOrderByField();
if(ObjectUtils.isNotEmpty(orderByField)){
Collator comparator = Collator.getInstance(Locale.CHINESE);
//编号
if("serialNumber".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1, e2)->{
return comparator.compare(e1.getSerialNumber(),e2.getSerialNumber());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e2.getSerialNumber(),e1.getSerialNumber());
});
}
}
//标题
if("title".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e1.getTitle(),e2.getTitle());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e2.getTitle(),e1.getTitle());
});
}
}
//流程类型
if("flowType".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e1.getFlowType(),e2.getFlowType());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e2.getFlowType(),e1.getFlowType());
});
}
}
//责任领域
if("dutyTerritory".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e1.getDutyTerritory(),e2.getDutyTerritory());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e2.getDutyTerritory(),e1.getDutyTerritory());
});
}
}
//相关项目
if("projectName".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e1.getProjectName(),e2.getProjectName());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e2.getProjectName(),e1.getProjectName());
});
}
}
//问题类型
if("problemType".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e1.getProblemType(),e2.getProblemType());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e2.getProblemType(),e1.getProblemType());
});
}
}
//发起人
if("initiator".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e1.getInitiator(),e2.getInitiator());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e2.getInitiator(),e1.getInitiator());
});
}
}
//责任人
if("duty".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e1.getDuty(),e2.getDuty());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(pageInfo,(e1,e2)->{
return comparator.compare(e2.getDuty(),e1.getDuty());
});
}
}
}
}
/**
* 项目详情中项目未符合项跟踪
*
@@ -73,10 +185,94 @@ public class NcrTrackController {
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
List<NcrTrackVO> pageInfo = iNcrTrackService.getPageInfo(ncrTrackVO);
String orderBy = ncrTrackVO.getOrderBy();
String orderByField = ncrTrackVO.getOrderByField();
//表头排序
hearSort(ncrTrackVO, pageInfo, orderBy, orderByField);
Page pages = iNcrTrackService.getPages(pageNo, pageSize, pageInfo);
return Result.OK(pages);
}
private void hearSort(NcrTrackVO ncrTrackVO, List<NcrTrackVO> pageInfo, String orderBy, String orderByField) {
if(StringUtils.isNotBlank(orderByField)) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
//编号 serialNumber
if ("serialNumber".equals(orderByField)) {
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e1.getSerialNumber(), e2.getSerialNumber());
});
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e2.getSerialNumber(), e1.getSerialNumber());
});
}
}
//流程类型 flowType
if ("flowType".equals(orderByField)) {
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e1.getFlowType(), e2.getFlowType());
});
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e2.getFlowType(), e1.getFlowType());
});
}
}
//责任领域 dutyTerritory
if ("dutyTerritory".equals(orderByField)) {
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e1.getDutyTerritory(), e2.getDutyTerritory());
});
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e2.getDutyTerritory(), e1.getDutyTerritory());
});
}
}
//问题类型 problemType
if ("problemType".equals(orderByField)) {
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e1.getProblemType(), e2.getProblemType());
});
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e2.getProblemType(), e1.getProblemType());
});
}
}
//发起人 initiator
if ("initiator".equals(orderByField)) {
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e1.getInitiator(), e2.getInitiator());
});
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e2.getInitiator(), e1.getInitiator());
});
}
}
//责任人 duty
if ("duty".equals(orderByField)) {
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e1.getDuty(), e2.getDuty());
});
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
Collections.sort(pageInfo, (e1, e2) -> {
return comparator.compare(e2.getDuty(), e1.getDuty());
});
}
}
}
}
/**
* 导出数据
* @param request
@@ -468,6 +468,18 @@ public class ProjectLawsInventoryEO implements Serializable {
@ApiModelProperty(value = "文档库id/标准id")
private String standId;
@TableField(exist = false)
@ApiModelProperty(value = "调取虚拟清单中文档ids")
private String dummyids;//调取虚拟清单中文档ids
//排序(1->正序, 2->倒序)
@TableField(exist = false)
private String orderBy;
//排序字段
@TableField(exist = false)
private String orderByField;
@ApiModelProperty(value = "导出的excel的名称")
@TableField(exist = false)
private String excelName;
@@ -120,6 +120,8 @@ public class ProjectTaskInventoryEO implements Serializable {
@ApiModelProperty(value = "认证进度")
@Dict(dicCode = "certification_progress")
private String certificationProgress;
@TableField(exist = false)
private String certificationProgressName;
/**认证进度备注*/
@Excel(name = "认证进度备注", width = 15)
@@ -150,6 +152,8 @@ public class ProjectTaskInventoryEO implements Serializable {
@Dict(dicCode ="duty_territory")
@Excel(name = "责任领域", width = 20)
private String dutyTerritory;
@TableField(exist = false)
private String dutyTerritoryName;
/**设计符合性 待办id**/
@TableField(exist = false)
@@ -337,4 +341,12 @@ public class ProjectTaskInventoryEO implements Serializable {
@TableField(exist = false)
private String prehomoDutyId;
//排序(1->正序, 2->倒序)
@TableField(exist = false)
private String orderBy;
//排序字段
@TableField(exist = false)
private String orderByField;
}
@@ -0,0 +1,48 @@
package com.jero.modules.project.enums;
/**
* 当前状态枚举类
*/
public enum ColourEnum {
RED("红色","1"), // 未完成
YELLOW("黄色","2"), // 已完成
GREEN("绿色","3"), // 展示数据
BLUE("蓝色","4") // 展示数据
;
String name;
String value;
private ColourEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value) {
ColourEnum[] values = values();
for (ColourEnum taskStatusEnum : values) {
if (taskStatusEnum.value.equals(value)) {
return taskStatusEnum.name;
}
}
return null;
}
}
@@ -153,6 +153,8 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
if(StringUtils.isNotBlank(trackVO.getDutyTerritory())){
String dutyTerritory = pull(dictItemList, trackVO.getDutyTerritory(), "duty_territory", ncrTrackVO.getCut());
trackVO.setDutyTerritory(dutyTerritory);
}else{
trackVO.setDutyTerritory("");
}
//设计符合性确认
String designPId = trackVO.getDesignPId();//流程实例id
@@ -431,6 +433,8 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
ncrTrackVO.setTitle(title);//标题
if(StringUtils.isNotBlank(flowType)){
ncrTrackVO.setFlowType(name);//流程类型
}else{
ncrTrackVO.setFlowType("");//流程类型
}
ncrTrackVO.setDutyTerritory(dutyTerritory);//责任领域
ncrTrackVO.setProjectName(projectName);//相关项目
@@ -31,7 +31,9 @@ import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.dummy.entity.DummyInventoryBaseEO;
import com.jero.modules.dummy.entity.DummyInventoryInfoEO;
import com.jero.modules.dummy.enums.AttestationRankEnum;
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.dummy.service.IDummyInventoryInfoEOService;
import com.jero.modules.dummy.service.impl.DummyInventoryBaseEOServiceImpl;
import com.jero.modules.dummy.util.DeepCopyListUtil;
@@ -114,6 +116,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.text.Collator;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -265,10 +268,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.list(wrapperTemp);
//调取
String dummyInventoryBaseId = projectLawsInventoryEO.getDummyInventoryBaseId();
if(StringUtils.isNotBlank(dummyInventoryBaseId)){
if(StringUtils.isNotBlank(projectLawsInventoryEO.getDummyids())){
//查询虚拟清单对应清单维护中的数据
LambdaQueryWrapper<DummyInventoryInfoEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,projectLawsInventoryEO.getDummyInventoryBaseId());
lambdaQueryWrapper.in(DummyInventoryInfoEO::getId,Arrays.asList(projectLawsInventoryEO.getDummyids().split(",")));
List<DummyInventoryInfoEO> dummyInventoryInfoEOList = dummyInventoryInfoEOService.list(lambdaQueryWrapper);
List<DummyInventoryInfoEO> dummyInventoryInfoEOListNew = new ArrayList<>();
if(dummyInventoryInfoEOList.size() != 0){
@@ -873,10 +876,244 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut());
log.info("三阶段消耗时间:" + (System.currentTimeMillis() - startTime));
dataDictDispose(result,projectLawsInventoryEO.getCut());
log.debug("处理数据字典消耗时间:" + (System.currentTimeMillis() - startTime));
//表头排序
result = hearSort(projectLawsInventoryEO, result);
return result;
}
private List<ProjectLawsInventoryEO> hearSort(ProjectLawsInventoryEO projectLawsInventoryEO, List<ProjectLawsInventoryEO> result) {
// String orderBy = "1";
// String orderByField = "serialNumber";
String orderBy = projectLawsInventoryEO.getOrderBy();
String orderByField = projectLawsInventoryEO.getOrderByField();
if(ObjectUtils.isNotEmpty(orderByField)){
Collator comparator = Collator.getInstance(Locale.CHINESE);
//编号 serialNumber
if("serialNumber".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getSerialNumber(),e2.getSerialNumber());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getSerialNumber(),e1.getSerialNumber());
});
}
}
// WVTA ID wvtaId
if("wvtaId".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getWvtaId(),e2.getWvtaId());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getWvtaId(),e1.getWvtaId());
});
}
}
// 责任领域 dutyTerritory_dictText
if("dutyTerritory".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getDutyTerritory_dictText(),e2.getDutyTerritory_dictText());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getDutyTerritory_dictText(),e1.getDutyTerritory_dictText());
});
}
}
// 法规工程师 regulationOwnerName
if("regulationOwnerName".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getRegulationOwnerName(),e2.getRegulationOwnerName());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getRegulationOwnerName(),e1.getRegulationOwnerName());
});
}
}
// 认证工程师 homologationEngineerName
if("homologationEngineerName".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getHomologationEngineerName(),e2.getHomologationEngineerName());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getHomologationEngineerName(),e1.getHomologationEngineerName());
});
}
}
// 工程接口人 engineeringInterfacePersonName
if("engineeringInterfacePersonName".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getEngineeringInterfacePersonName(),e2.getEngineeringInterfacePersonName());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getEngineeringInterfacePersonName(),e1.getEngineeringInterfacePersonName());
});
}
}
List<ProjectLawsInventoryEO> list = new LinkedList<>();
// 清单确认状态未发起法规待确认认证待确认接受法规拒绝认证拒绝 inventoryAffirmStatusName
//InventoryAffirmStatusEnum
if("inventoryAffirmStatusName".equals(orderByField)){
result = inventorySort(orderBy,orderByField,result,list);
}
// 任务确认状态未发起待确认接受拒绝 taskAffirmStatusName
//TaskAffirmStatusEnum
if("taskAffirmStatusName".equals(orderByField)){
result = taskSort(orderBy,orderByField,result,list);
}
// 认证级别WVTACom.-VTACert.-MarketReg.-Market attestationRank_dictText
if("attestationRank".equals(orderByField)){
result = attestationRankSort(orderBy,orderByField,result,list);
}
}
log.info("四阶段消耗时间:" + (System.currentTimeMillis() - startTime));
return result;
}
//清单确认状态排序
private List<ProjectLawsInventoryEO> inventorySort(String orderBy, String orderByField,
List<ProjectLawsInventoryEO> dummyInventoryInfoEOList,
List<ProjectLawsInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "inventoryAffirmStatusName".equals(orderByField)){
List<ProjectLawsInventoryEO> notStarted = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.NOT_STARTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> regEngToConfirm = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REG_ENG_TO_CONFIRM.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> homoEngToConfirm = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.HOMO_ENG_TO_CONFIRM.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> accepted = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.ACCEPTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> regEngRejected = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REG_ENG_REJECTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> homoEngRejected = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.HOMO_ENG_REJECTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> listToConfirm = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.LIST_TO_CONFIRM.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> rejected = dummyInventoryInfoEOList.stream()
.filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REJECTED.getName())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
list.addAll(notStarted);
list.addAll(listToConfirm);
list.addAll(regEngToConfirm);
list.addAll(homoEngToConfirm);
list.addAll(accepted);
list.addAll(rejected);
list.addAll(regEngRejected);
list.addAll(homoEngRejected);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(homoEngRejected);
list.addAll(regEngRejected);
list.addAll(rejected);
list.addAll(accepted);
list.addAll(homoEngToConfirm);
list.addAll(regEngToConfirm);
list.addAll(listToConfirm);
list.addAll(notStarted);
}
}
if(ObjectUtils.isNotEmpty(list)){
return list;
}else{
return dummyInventoryInfoEOList;
}
}
// 任务确认状态排序
private List<ProjectLawsInventoryEO> taskSort(String orderBy, String orderByField,
List<ProjectLawsInventoryEO> dummyInventoryInfoEOList,
List<ProjectLawsInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "taskAffirmStatusName".equals(orderByField)){
List<ProjectLawsInventoryEO> notStarted = dummyInventoryInfoEOList.stream()
.filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.NOT_STARTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> listToConfirm = dummyInventoryInfoEOList.stream()
.filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> accepted = dummyInventoryInfoEOList.stream()
.filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.ACCEPTED.getName())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> rejected = dummyInventoryInfoEOList.stream()
.filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.REJECTED.getName())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
list.addAll(notStarted);
list.addAll(listToConfirm);
list.addAll(accepted);
list.addAll(rejected);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(rejected);
list.addAll(accepted);
list.addAll(listToConfirm);
list.addAll(notStarted);
}
}
if(ObjectUtils.isNotEmpty(list)){
return list;
}else{
return dummyInventoryInfoEOList;
}
}
//认证级别
private List<ProjectLawsInventoryEO> attestationRankSort(String orderBy, String orderByField,
List<ProjectLawsInventoryEO> dummyInventoryInfoEOList,
List<ProjectLawsInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "attestationRank".equals(orderByField)){
List<ProjectLawsInventoryEO> wvta = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.WVTA.getValue())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> vta = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.VTA.getValue())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> market = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.MARKET.getValue())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> regu = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.REGU.getValue())).collect(Collectors.toList());
List<ProjectLawsInventoryEO> na = dummyInventoryInfoEOList.stream()
.filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.NA.getValue())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
List<ProjectLawsInventoryEO> collect = dummyInventoryInfoEOList.stream().filter(e -> StringUtils.isBlank(e.getAttestationRank_dictText())).collect(Collectors.toList());
list.addAll(collect);
list.addAll(wvta);
list.addAll(vta);
list.addAll(market);
list.addAll(regu);
list.addAll(na);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(na);
list.addAll(regu);
list.addAll(market);
list.addAll(vta);
list.addAll(wvta);
List<ProjectLawsInventoryEO> collect = dummyInventoryInfoEOList.stream().filter(e -> StringUtils.isBlank(e.getAttestationRank_dictText())).collect(Collectors.toList());
list.addAll(collect);
}
}
if(ObjectUtils.isNotEmpty(list)){
return list;
}else{
return dummyInventoryInfoEOList;
}
}
/**
* 数据字典数据处理方法
* @param result 返回值
@@ -886,6 +1123,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
if(CollectionUtils.isNotEmpty(result)){
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.getBaseMapper().selectItemsAll();
for (ProjectLawsInventoryEO projectLawsInventoryEO : result) {
if(StringUtils.isBlank(projectLawsInventoryEO.getWvtaId())){
projectLawsInventoryEO.setWvtaId("");
}
if(StringUtils.isBlank(projectLawsInventoryEO.getDutyTerritory_dictText())){
projectLawsInventoryEO.setDutyTerritory_dictText("");
}
//处理适用地区
String region = projectLawsInventoryEO.getRegion();
if(StringUtils.isNotEmpty(region)){
@@ -912,6 +1155,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
if(StringUtils.isNotEmpty(attestationRank)){
String attestationRank_dictText = disposeShowDictItemValue(sysDictItems, attestationRank,cut,ProjectInventoryFieldEnum.ATTESTATION_RANK.getValue());
projectLawsInventoryEO.setAttestationRank_dictText(attestationRank_dictText);
}else{
projectLawsInventoryEO.setAttestationRank_dictText("");
}
//处理责任领域
@@ -1099,14 +1344,20 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//认证工程师id
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())){
userIdList.add(projectLawsInventoryEO.getHomologationEngineerId());
}else{
projectLawsInventoryEO.setHomologationEngineerName("");
}
//法规工程师id
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())){
userIdList.add(projectLawsInventoryEO.getRegulationOwnerId());
}else{
projectLawsInventoryEO.setRegulationOwnerName("");
}
//工程接口人id
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())){
userIdList.add(projectLawsInventoryEO.getEngineeringInterfacePerson());
}else{
projectLawsInventoryEO.setEngineeringInterfacePersonName("");
}
//设计符合性确认
@@ -10,10 +10,33 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.collect.service.IParamsManifestEOService;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.enums.*;
import com.jero.modules.project.mapper.*;
import com.jero.modules.project.entity.ConditionAssessmentEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLawsInventoryLogEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectLibraryRoleRelEO;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.entity.ProjectTaskPlanning;
import com.jero.modules.project.entity.ProjectUserPermission;
import com.jero.modules.project.enums.CertificationProgressEnum;
import com.jero.modules.project.enums.CurrentProjectStatusEnum;
import com.jero.modules.project.enums.DesignComplianceStatusEnum;
import com.jero.modules.project.enums.InventoryAffirmStatusEnum;
import com.jero.modules.project.enums.OperatorTypeEnum;
import com.jero.modules.project.enums.PermissionDescriptionEnum;
import com.jero.modules.project.enums.ProjectRoleEnum;
import com.jero.modules.project.enums.ProjectUserLocationEnum;
import com.jero.modules.project.enums.TaskAffirmStatusEnum;
import com.jero.modules.project.enums.TopEnum;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectUserPermissionMapper;
import com.jero.modules.project.service.IConditionAssessmentEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectLibraryRoleRelEOService;
@@ -46,8 +69,20 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.Collator;
import java.text.ParseException;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@@ -740,17 +775,17 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
projectIds.addAll(permissionProjectIds);
}
}
//if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) {
// //如果是Viewer,根据配置的品牌筛选可访问的项目
// List<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
// if (ObjectUtils.isNotEmpty(brandTypes)) {
// QueryWrapper<ProjectLibraryBase> queryWrapper = new QueryWrapper<>();
// queryWrapper.in("brand",brandTypes);
// if (ObjectUtils.isNotEmpty(list(queryWrapper))) {
// projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet()));
// }
// }
//}
if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) {
//如果是Viewer,根据配置的品牌筛选可访问的项目
List<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
if (ObjectUtils.isNotEmpty(brandTypes)) {
QueryWrapper<ProjectLibraryBase> queryWrapper = new QueryWrapper<>();
queryWrapper.in("brand",brandTypes);
if (ObjectUtils.isNotEmpty(list(queryWrapper))) {
projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet()));
}
}
}
List<ProjectLibraryBase> result = projectLibraryBaseMapper.queryPageList(params);
disposeData(result,"",false);
@@ -837,11 +872,12 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
}
List<ProjectLibraryBase> resultLast = new ArrayList<>();
//权限筛选
if (isViewer != 0) {
return resultNew;
resultLast = resultNew;
} else {
List<ProjectLibraryBase> resultLast = new ArrayList<>();
for (ProjectLibraryBase projectLibraryBase : resultNew) {
//判断父项目是否有权限
if (!projectIds.contains(projectLibraryBase.getId())) {
@@ -871,7 +907,65 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
}
return resultLast;
}
//表头排序
// params.put("orderBy","1");
// params.put("orderByField","digitalPlatform");
hearSort(params, resultLast);
return resultLast;
}
private void hearSort(Map<String, Object> params, List<ProjectLibraryBase> resultLast) {
if(ObjectUtils.isNotEmpty(params.get("orderByField"))){
Collator comparator = Collator.getInstance(Locale.CHINESE);
//项目名称,R&H Studio,车型平台,数字平台
if("projectName".equals(params.get("orderByField"))){
if(OrderEnum.POSITIVE.getValue().equals(params.get("orderBy"))){
Collections.sort(resultLast,(e1, e2)->{
return comparator.compare(e1.getProjectName(),e2.getProjectName());
});
}else if(OrderEnum.REVERSE.getValue().equals(params.get("orderBy"))){
Collections.sort(resultLast,(e1,e2)->{
return comparator.compare(e2.getProjectName(),e1.getProjectName());
});
}
}
//R&H Studio
if("studioEngineerName".equals(params.get("orderByField"))){
if(OrderEnum.POSITIVE.getValue().equals(params.get("orderBy"))){
Collections.sort(resultLast,(e1, e2)->{
return comparator.compare(e1.getStudioEngineerName(),e2.getStudioEngineerName());
});
}else if(OrderEnum.REVERSE.getValue().equals(params.get("orderBy"))){
Collections.sort(resultLast,(e1,e2)->{
return comparator.compare(e2.getStudioEngineerName(),e1.getStudioEngineerName());
});
}
}
//车型平台
if("vehiclePlatform".equals(params.get("orderByField"))){
if(OrderEnum.POSITIVE.getValue().equals(params.get("orderBy"))){
Collections.sort(resultLast,(e1, e2)->{
return comparator.compare(e1.getVehiclePlatform(),e2.getVehiclePlatform());
});
}else if(OrderEnum.REVERSE.getValue().equals(params.get("orderBy"))){
Collections.sort(resultLast,(e1,e2)->{
return comparator.compare(e2.getVehiclePlatform(),e1.getVehiclePlatform());
});
}
}
//数字平台
if("digitalPlatform".equals(params.get("orderByField"))){
if(OrderEnum.POSITIVE.getValue().equals(params.get("orderBy"))){
Collections.sort(resultLast,(e1, e2)->{
return comparator.compare(e1.getDigitalPlatform(),e2.getDigitalPlatform());
});
}else if(OrderEnum.REVERSE.getValue().equals(params.get("orderBy"))){
Collections.sort(resultLast,(e1,e2)->{
return comparator.compare(e2.getDigitalPlatform(),e1.getDigitalPlatform());
});
}
}
}
}
@@ -14,6 +14,7 @@ import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsg2Vo;
import com.jero.modules.feishu.vo.FeishuMsgVo;
@@ -51,6 +52,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.Collator;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -289,9 +291,264 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
).collect(Collectors.toList());
disposeData(result,projectTaskInventoryEO.getCut());
}
result = hearSort(projectTaskInventoryEO, result);
return result;
}
private List<ProjectTaskInventoryEO> hearSort(ProjectTaskInventoryEO projectTaskInventoryEO, List<ProjectTaskInventoryEO> result) {
//标准信息 serialNumber
// String orderBy = "1";
// String orderByField = "projectStatusAssess";
String orderBy = projectTaskInventoryEO.getOrderBy();
String orderByField = projectTaskInventoryEO.getOrderByField();
if(ObjectUtils.isNotEmpty(orderByField)) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
//编号 serialNumber
if ("serialNumber".equals(orderByField)) {
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
Collections.sort(result, (e1, e2) -> {
return comparator.compare(e1.getSerialNumber(), e2.getSerialNumber());
});
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
Collections.sort(result, (e1, e2) -> {
return comparator.compare(e2.getSerialNumber(), e1.getSerialNumber());
});
}
}
// 责任领域 dutyTerritoryName
if("dutyTerritory".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e1.getDutyTerritoryName(),e2.getDutyTerritoryName());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e2.getDutyTerritoryName(),e1.getDutyTerritoryName());
});
}
}
// 认证进度 certificationProgressName
if("certificationProgressName".equals(orderByField)){
if(OrderEnum.POSITIVE.getValue().equals(orderBy)){
Collections.sort(result,(e1, e2)->{
return comparator.compare(e2.getCertificationProgressName(),e1.getCertificationProgressName());
});
}else if(OrderEnum.REVERSE.getValue().equals(orderBy)){
Collections.sort(result,(e1,e2)->{
return comparator.compare(e1.getCertificationProgressName(),e2.getCertificationProgressName());
});
}
}
List<ProjectTaskInventoryEO> list = new LinkedList<>();
// 设计符合性确认 designFlowTaskStatus ReviewResultEnum
result = designSort(result, orderBy, orderByField, list);
// Pre-Homo确认 prehomoFlowTaskStatus ReviewResultEnum
result = preSort(result, orderBy, orderByField, list);
// 验证符合性确认 verifyFlowTaskStatus ReviewResultEnum
result = verifySort(result, orderBy, orderByField, list);
// 当前状态 projectStatusAssess
result = colourSort(result, orderBy, orderByField, list);
}
return result;
}
private List<ProjectTaskInventoryEO> designSort(List<ProjectTaskInventoryEO> result,
String orderBy,
String orderByField,
List<ProjectTaskInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "designFlowTaskStatus".equals(orderByField)){
List<ProjectTaskInventoryEO> conformity = result.stream()
.filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> inconformity = result.stream()
.filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toTrack = result.stream()
.filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> uninvolved = result.stream()
.filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toBeConfirmed = result.stream()
.filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> terminationOfTask = result.stream()
.filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
//状态为空的
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
list.addAll(toBeConfirmed);
list.addAll(conformity);
list.addAll(inconformity);
list.addAll(toTrack);
list.addAll(uninvolved);
list.addAll(terminationOfTask);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(terminationOfTask);
list.addAll(uninvolved);
list.addAll(toTrack);
list.addAll(inconformity);
list.addAll(conformity);
list.addAll(toBeConfirmed);
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getDesignFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
}
}
if(ObjectUtils.isEmpty(list)){
return result;
}else{
return list;
}
}
private List<ProjectTaskInventoryEO> preSort(List<ProjectTaskInventoryEO> result,
String orderBy,
String orderByField,
List<ProjectTaskInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "prehomoFlowTaskStatus".equals(orderByField)){
List<ProjectTaskInventoryEO> conformity = result.stream()
.filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> inconformity = result.stream()
.filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toTrack = result.stream()
.filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> uninvolved = result.stream()
.filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toBeConfirmed = result.stream()
.filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> terminationOfTask = result.stream()
.filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
list.addAll(toBeConfirmed);
list.addAll(conformity);
list.addAll(inconformity);
list.addAll(toTrack);
list.addAll(uninvolved);
list.addAll(terminationOfTask);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(terminationOfTask);
list.addAll(uninvolved);
list.addAll(toTrack);
list.addAll(inconformity);
list.addAll(conformity);
list.addAll(toBeConfirmed);
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
}
}
if(ObjectUtils.isEmpty(list)){
return result;
}else{
return list;
}
}
private List<ProjectTaskInventoryEO> verifySort(List<ProjectTaskInventoryEO> result,
String orderBy,
String orderByField,
List<ProjectTaskInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "verifyFlowTaskStatus".equals(orderByField)){
List<ProjectTaskInventoryEO> conformity = result.stream()
.filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> inconformity = result.stream()
.filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toTrack = result.stream()
.filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> uninvolved = result.stream()
.filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> toBeConfirmed = result.stream()
.filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> terminationOfTask = result.stream()
.filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
list.addAll(toBeConfirmed);
list.addAll(conformity);
list.addAll(inconformity);
list.addAll(toTrack);
list.addAll(uninvolved);
list.addAll(terminationOfTask);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
list.addAll(terminationOfTask);
list.addAll(uninvolved);
list.addAll(toTrack);
list.addAll(inconformity);
list.addAll(conformity);
list.addAll(toBeConfirmed);
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getVerifyFlowTaskStatus())).collect(Collectors.toList());
list.addAll(collect);
}
}
if(ObjectUtils.isEmpty(list)){
return result;
}else{
return list;
}
}
private List<ProjectTaskInventoryEO> colourSort(List<ProjectTaskInventoryEO> result,
String orderBy,
String orderByField,
List<ProjectTaskInventoryEO> list) {
if(ObjectUtils.isNotEmpty(orderByField) && "projectStatusAssess".equals(orderByField)){
List<ProjectTaskInventoryEO> red = result.stream()
.filter(e -> ColourEnum.RED.getValue().equals(e.getProjectStatusAssess())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> yellow = result.stream()
.filter(e -> ColourEnum.YELLOW.getValue().equals(e.getProjectStatusAssess())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> green = result.stream()
.filter(e -> ColourEnum.GREEN.getValue().equals(e.getProjectStatusAssess())).collect(Collectors.toList());
List<ProjectTaskInventoryEO> blue = result.stream()
.filter(e -> ColourEnum.BLUE.getValue().equals(e.getProjectStatusAssess())).collect(Collectors.toList());
if (OrderEnum.POSITIVE.getValue().equals(orderBy)) {
//正序
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getProjectStatusAssess())).collect(Collectors.toList());
blue.addAll(collect);
list.addAll(green);
list.addAll(yellow);
list.addAll(red);
list.addAll(blue);
} else if (OrderEnum.REVERSE.getValue().equals(orderBy)) {
//倒序
List<ProjectTaskInventoryEO> collect = result.stream()
.filter(e -> StringUtils.isBlank(e.getProjectStatusAssess())).collect(Collectors.toList());
blue.addAll(collect);
list.addAll(blue);
list.addAll(red);
list.addAll(yellow);
list.addAll(green);
}
}
if(ObjectUtils.isEmpty(list)){
return result;
}else{
return list;
}
}
@Override
public Result<?> processCall(JSONObject jsonObject) {
String requestSource = jsonObject.getString("requestSource");
@@ -1341,7 +1598,33 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
*/
public void disposeData(List<ProjectTaskInventoryEO> result,String cut){
if(CollectionUtils.isNotEmpty(result)){
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsByDictCode("duty_territory");
List<SysDictItem> certificationProgress = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress");
for (ProjectTaskInventoryEO projectTaskInventoryEO : result) {
//责任领域
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getDutyTerritory())){
List<SysDictItem> collect = dictItemList.stream()
.filter(dict -> StringUtils.equals(dict.getItemValue(), projectTaskInventoryEO.getDutyTerritory())).collect(Collectors.toList());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
projectTaskInventoryEO.setDutyTerritoryName(collect.get(0).getItemText());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
projectTaskInventoryEO.setDutyTerritoryName(collect.get(0).getEnName());
}
}else{
projectTaskInventoryEO.setDutyTerritoryName("");
}
//认证进度 certificationProgress
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getCertificationProgress())){
List<SysDictItem> collect = certificationProgress.stream()
.filter(dict -> StringUtils.equals(dict.getItemValue(), projectTaskInventoryEO.getCertificationProgress())).collect(Collectors.toList());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
projectTaskInventoryEO.setCertificationProgressName(collect.get(0).getItemText());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
projectTaskInventoryEO.setCertificationProgressName(collect.get(0).getEnName());
}
}else{
projectTaskInventoryEO.setCertificationProgressName("");
}
if(StringUtils.isNotEmpty(projectTaskInventoryEO.getDesignStatus())){
String textByValue = DesignComplianceStatusEnum.getTextByValue(projectTaskInventoryEO.getDesignStatus(), cut);
projectTaskInventoryEO.setDesignStatus(textByValue);
@@ -147,6 +147,13 @@ public class NcrTrackVO implements Serializable {
private String administrator;
//排序(1->正序, 2->倒序)
private String orderBy;
//排序字段
private String orderByField;
}
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import org.apache.ibatis.annotations.Select;
import org.springframework.data.repository.query.Param;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -21,4 +21,7 @@ public interface OnlCgformSubscribeMapper extends BaseMapper<OnlCgformSubscribe>
List<OnlCgformSubscribe> queryListByDocumentId(@Param("document_id") String document_id);
IPage queryPageList(IPage page, @Param("params") Map<String,Object> params);
List<Map<String,Object>> infoList(@Param("params") Map<String,Object> params);
}
@@ -48,7 +48,67 @@
</otherwise>
</choose>
</if>
<if test="params.state != null and params.state != '' ">
and bdl.state in
<foreach collection="params.state.split(',')" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="params.orderByField == 'serial_number' or params.orderByField == 'title'">
order by CONVERT( ${params.orderByField} USING gbk) COLLATE gbk_chinese_ci
</if>
<if test="params.orderByField == 'create_time'">
order by ocs.create_time
</if>
<if test="params.orderBy == 1">
asc
</if>
<if test="params.orderBy == 2">
desc
</if>
<if test="params.orderByField == null or params.orderByField == ''">
order by ocs.create_time desc
</if>
</select>
<select id="infoList" parameterType="java.util.Map" resultType="hashmap">
select
ocs.id,
ocs.create_time as createTime,
ocs.create_by as createBy,
bdl.serial_number as serialNumber,
bdl.title,
bdl.state,
ocs.document_id as documentId
from
onl_cgform_subscribe ocs
right join
buss_document_library bdl on ocs.document_id = bdl.id
where ocs.create_by = #{params.createBy}
<if test="params.serialNumber != null and params.serialNumber != ''">
<!--搜索条件:编号;包含%,单独搜索-->
<choose>
<when test='params.serialNumber != null and params.serialNumber != "" and params.serialNumber.contains("%")'>
and bdl.serial_number like '%1%%' escape '1'
</when>
<otherwise>
and bdl.serial_number like concat(concat('%',#{params.serialNumber}),'%')
</otherwise>
</choose>
</if>
<if test="params.title != null and params.title != ''">
<!--搜索条件:标题;包含%,单独搜索-->
<choose>
<when test='params.title != null and params.title != "" and params.title.contains("%")'>
and bdl.title like '%1%%' escape '1'
</when>
<otherwise>
and bdl.title like concat(concat('%',#{params.title}),'%')
</otherwise>
</choose>
</if>
<if test="params.state != null and params.state != '' ">
and bdl.state in
<foreach collection="params.state.split(',')" index="index" item="item" open="(" separator="," close=")">
@@ -57,4 +117,4 @@
</if>
order by ocs.create_time desc
</select>
</mapper>
</mapper>
@@ -10,6 +10,7 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
import com.jero.modules.collection.service.impl.OnlCgformCollectionServiceImpl;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import com.jero.modules.subscribe.mapper.OnlCgformSubscribeMapper;
@@ -17,13 +18,18 @@ import com.jero.modules.subscribe.service.IOnlCgformSubscribeService;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -40,6 +46,8 @@ public class OnlCgformSubscribeServiceImpl extends ServiceImpl<OnlCgformSubscrib
private OnlCgformSubscribeMapper onlCgformSubscribeMapper;
@Autowired
private SysDictItemServiceImpl sysDictItemServiceImpl;
@Autowired
private OnlCgformCollectionServiceImpl onlCgformCollectionService;
/**
* 保存
*
@@ -203,12 +211,24 @@ public class OnlCgformSubscribeServiceImpl extends ServiceImpl<OnlCgformSubscrib
@Override
public IPage<OnlCgformSubscribe> queryPageList(Map<String,Object> params) {
// params.put("orderByField","title");
// params.put("orderBy","1");
if(ObjectUtils.isEmpty(params.get("orderByField"))){
params.put("orderBy",null);
}
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
IPage page = new Page(pageNo, pageSize);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
params.put("createBy",sysUser.getUsername());
IPage result = onlCgformSubscribeMapper.queryPageList(page,params);
IPage result = new Page();
//表头排序(状态单独处理)
if(ObjectUtils.isNotEmpty(params.get("orderByField")) && "state".equals((String) params.get("orderByField"))){
List<Map<String, Object>> mapList = onlCgformSubscribeMapper.infoList(params);
result = onlCgformCollectionService.stateSort(params,pageNo,pageSize,result,mapList);
}else{
result = onlCgformSubscribeMapper.queryPageList(page,params);
}
List<Map<String,Object>> records = result.getRecords();
dataDispose(records,params);
return result;
@@ -271,4 +291,4 @@ public class OnlCgformSubscribeServiceImpl extends ServiceImpl<OnlCgformSubscrib
}
}
}
}
}