diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 81f7c30aa..07bd60c80 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -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, diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java index 255863335..f8327a592 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java @@ -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; /** *

@@ -74,6 +78,10 @@ public class SysDictController { private ISysDictItemService sysDictItemService; @Autowired public RedisTemplate 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> getBrandDict() { + List dictModels = sysDictService.queryDictItemsByCode(DictCodeEnum.BRAND.getValue()); + if (!sysUserService.isAdministrator()) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List brands = projectUserBrandService.queryBrandByUserId(sysUser.getId()); + dictModels = dictModels.stream().filter(dictModel -> brands.contains(dictModel.getValue())).collect(Collectors.toList()); + } + return Result.OK(dictModels); + } + + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java index b061f8eb5..0dc1ac2bd 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java @@ -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; /** *

@@ -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> queryall() { Result> result = new Result<>(); List list = sysRoleService.list(); + //系统管理员才能授权的角色 + if (!sysUserService.isAdministrator()) { + List roleCodes = AdmininstratorAuthRoleEnum.getRoleCodes(); + list = list.stream().filter(sysRole -> !roleCodes.contains(sysRole.getRoleCode())).collect(Collectors.toList()); + } if(list==null||list.size()<=0) { result.error500("未找到角色信息"); }else { diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/AdmininstratorAuthRoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/AdmininstratorAuthRoleEnum.java new file mode 100644 index 000000000..ac94c8e78 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/AdmininstratorAuthRoleEnum.java @@ -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 getRoleCodes(){ + List list = new ArrayList<>(); + for (AdmininstratorAuthRoleEnum val : AdmininstratorAuthRoleEnum.values()) { + list.add(val.roleCode); + } + return list; + } + + +} + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsManifestEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsManifestEO.java index 8b69c75d7..be60202e5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsManifestEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsManifestEO.java @@ -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; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml index 9b618d292..223479319 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml @@ -73,7 +73,44 @@ from params_manifest pm left join params_template pt on pm.params_template_id = pt.id ) tmp_tb - order by create_time desc + + order by CONVERT( tmp_tb.create_time USING gbk) COLLATE gbk_chinese_ci + + + order by CONVERT( tmp_tb.create_by USING gbk) COLLATE gbk_chinese_ci + + + order by CONVERT( tmp_tb.version USING gbk) COLLATE gbk_chinese_ci + + + order by CONVERT( tmp_tb.finish_time USING gbk) COLLATE gbk_chinese_ci + + + order by CONVERT( tmp_tb.project_version USING gbk) COLLATE gbk_chinese_ci + + + order by CONVERT( tmp_tb.params_template_name USING gbk) COLLATE gbk_chinese_ci + + + order by CONVERT( tmp_tb.state USING gbk) COLLATE gbk_chinese_ci + + + order by CONVERT( tmp_tb.title USING gbk) COLLATE gbk_chinese_ci + + + asc + + + desc + + + order by tmp_tb.create_time desc + + + + + + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java index 1ece7352d..25152045a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java @@ -379,6 +379,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl 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 page = new Page(pageNo, pageSize); IPage pageList = paramsExportTemplateEOService.page(page, queryWrapper); + + //适用地区排序(特殊处理) + pageList = regionSort(paramsExportTemplateEO,pageNo,pageSize,queryWrapper,pageList); + // 处理 状态 中英文 List rows = pageList.getRecords(); Map stateMap = ExportTemplateStateEnum.toMap(cut); @@ -99,6 +126,69 @@ public class ParamsExportTemplateEOController extends JeroController regionSort(ParamsExportTemplateEO paramsExportTemplateEO, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + QueryWrapper queryWrapper, + IPage pageList) { + if(org.apache.commons.lang.StringUtils.isNotBlank(paramsExportTemplateEO.getOrderByField()) + && "region".equals(paramsExportTemplateEO.getOrderByField())){ + List regionDictItemList = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.REGION.getValue()); + List 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 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 regionList, ParamsExportTemplateEO exportTemplateEO) { //适用地区 List dictModelList = new ArrayList<>(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java index e1962639d..ba63518c4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java @@ -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 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 rows = pageList.getRecords(); +// for (ParamsReportEO row : rows) { +// row.setPageName(row.getProjectName() + "-" + row.getTargetMarket() + "-" + row.getTitle()); +// } + //目标市场 + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + List 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 targetMarketList, ParamsReportEO row) { + List dictModelList = new ArrayList<>(); + String targetMarket = ""; + if(StringUtils.isNotBlank(row.getTargetMarket())){ + for (String s : row.getTargetMarket().split(",")) { + List 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 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; + } + /** * 分页列表查询 * diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsExportTemplateEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsExportTemplateEO.java index fcce32d27..468b24d7a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsExportTemplateEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsExportTemplateEO.java @@ -97,4 +97,9 @@ public class ParamsExportTemplateEO implements Serializable { @TableField(exist = false) private String orderByField; // 字段 + //适用地区 + private String region; + @TableField(exist = false) + private String regionName; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsReportEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsReportEO.java index 0c501baac..d0fea988f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsReportEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/entity/ParamsReportEO.java @@ -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> configList; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/ParamsReportEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/ParamsReportEOMapper.java index 80e4464e3..18726f1dd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/ParamsReportEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/ParamsReportEOMapper.java @@ -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 { IPage pageInfo(@Param("page") IPage page, @Param("paramsReportEO") ParamsReportEO paramsReportEO); + List listInfo(@Param("paramsReportEO") ParamsReportEO paramsReportEO); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportEOMapper.xml index 164200a28..8f9924712 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportEOMapper.xml @@ -57,5 +57,17 @@ order by create_time desc + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/IParamsReportEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/IParamsReportEOService.java index 6c2c6bcac..5504cd064 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/IParamsReportEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/IParamsReportEOService.java @@ -62,6 +62,7 @@ public interface IParamsReportEOService extends IService { List queryList(); IPage pageInfo(IPage page, ParamsReportEO paramsReportEO); + List listInfo(ParamsReportEO paramsReportEO); boolean isSync(String oldParamsManifestId, Integer version); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportEOServiceImpl.java index fd73ae440..85005e384 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportEOServiceImpl.java @@ -138,6 +138,10 @@ public class ParamsReportEOServiceImpl extends ServiceImpl listInfo(ParamsReportEO paramsReportEO) { + return paramsReportEOMapper.listInfo(paramsReportEO); + } @Override public boolean isSync(String oldParamsManifestId, Integer version) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateEOController.java index d6640cb1e..13f88bac3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/controller/ParamsTemplateEOController.java @@ -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 { @Autowired private IParamsTemplateEOService paramsTemplateEOService; - + @Autowired + private SysDictItemMapper sysDictItemMapper; + /** * 分页列表查询 * @@ -63,22 +81,87 @@ public class ParamsTemplateEOController extends JeroController 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 page = new Page(pageNo, pageSize); IPage pageList = paramsTemplateEOService.page(page, queryWrapper); + + //适用地区排序(特殊处理) + pageList = regionSort(paramsTemplateEO, pageNo, pageSize, queryWrapper, pageList); return Result.OK(cut, pageList); } + private IPage regionSort(ParamsTemplateEO paramsTemplateEO, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, QueryWrapper queryWrapper, IPage pageList) { + if(StringUtils.isNotBlank(paramsTemplateEO.getOrderByField()) + && "region".equals(paramsTemplateEO.getOrderByField())){ + List regionDictItemList = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.REGION.getValue()); + List 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 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; + } + /** * 列表查询 * diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java index f0358630f..a0d633a64 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/template/entity/ParamsTemplateEO.java @@ -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) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/OnlCgformCollectionMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/OnlCgformCollectionMapper.java index c32719cb8..ff3a85cce 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/OnlCgformCollectionMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/OnlCgformCollectionMapper.java @@ -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 queryListByDocumentId(@Param("document_id") String document_id); IPage queryPageList(IPage page,@Param("params") Map params); + + List> infoList(@Param("params") Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/xml/OnlCgformCollectionMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/xml/OnlCgformCollectionMapper.xml index 7fd9b3043..2cca02b0b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/xml/OnlCgformCollectionMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/mapper/xml/OnlCgformCollectionMapper.xml @@ -54,6 +54,65 @@ #{item} - order by occ.create_time desc + + order by CONVERT( ${params.orderByField} USING gbk) COLLATE gbk_chinese_ci + + + + order by occ.create_time + + + asc + + + desc + + + order by occ.create_time desc + - \ No newline at end of file + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/service/impl/OnlCgformCollectionServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/service/impl/OnlCgformCollectionServiceImpl.java index 90371551a..d475d8a21 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/service/impl/OnlCgformCollectionServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/collection/service/impl/OnlCgformCollectionServiceImpl.java @@ -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 queryPageList(Map 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> infoList = onlCgformCollectionMapper.infoList(params); + result = stateSort(params,pageNo,pageSize,result,infoList); + }else{ + result = onlCgformCollectionMapper.queryPageList(page,params); + } List> records = result.getRecords(); dataDispose(records,params); return result; } + public IPage stateSort(Map parameter, int pageNo, int pageSize, IPage infoPage,List> infoList) { + List> list = new LinkedList<>(); + //状态排序,需要特殊处理 现行,即将实施,草稿,被替代,废止 + if(ObjectUtils.isNotEmpty(parameter.get("orderByField")) && "state".equals((String) parameter.get("orderByField"))){ + List> active = infoList.stream() + .filter(e -> LawsStateEnum.ACTIVE.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> theUpcoming = infoList.stream() + .filter(e -> LawsStateEnum.THE_UPCOMING.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> draft = infoList.stream() + .filter(e -> LawsStateEnum.DRAFT.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> beReplaced = infoList.stream() + .filter(e -> LawsStateEnum.BE_REPLACED.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> 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> 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> datas, Map params){ if(CollectionUtils.isNotEmpty(datas)){ @@ -297,4 +378,4 @@ public class OnlCgformCollectionServiceImpl extends ServiceImpl categoryList = sysCategoryService.list(); //过滤出树形字段 @@ -4021,6 +4040,71 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl parameter, List fieldListNew, String condition, int pageNo, int pageSize, IPage infoPage) { + List> list = new LinkedList<>(); + //状态排序,需要特殊处理 现行,即将实施,草稿,被替代,废止 + if(ObjectUtils.isNotEmpty(parameter.get("orderByField")) && "state".equals((String) parameter.get("orderByField"))){ + List> infoList = bussDocumentLibraryEOMapper.getInfoList(" " + StringUtils.join(fieldListNew, ","), condition); + List> active = infoList.stream() + .filter(e -> LawsStateEnum.ACTIVE.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> theUpcoming = infoList.stream() + .filter(e -> LawsStateEnum.THE_UPCOMING.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> draft = infoList.stream() + .filter(e -> LawsStateEnum.DRAFT.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> beReplaced = infoList.stream() + .filter(e -> LawsStateEnum.BE_REPLACED.getValue().equals(e.get("state"))).collect(Collectors.toList()); + List> 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> 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 parameter) { @@ -4134,11 +4218,18 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl parameter, StringBuilder conditionSb) { + if ("1".equals((String) parameter.get("orderBy"))) { + conditionSb.append(" asc");//正序 + } else if ("2".equals((String) parameter.get("orderBy"))) { + conditionSb.append(" desc");//倒序 + } + } + /** * 收藏和订阅 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/controller/DummyInventoryBaseEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/controller/DummyInventoryBaseEOController.java index 813b3dd32..1788da961 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/controller/DummyInventoryBaseEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/controller/DummyInventoryBaseEOController.java @@ -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 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 page = new Page(pageNo, pageSize); IPage pageList = dummyInventoryBaseEOService.getPageInfo(page,queryWrapper); return Result.OK(dummyInventoryBaseEO.getCut(),pageList); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryBaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryBaseEO.java index 16bf188a8..44c3b2bd2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryBaseEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryBaseEO.java @@ -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; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java index e025e9890..4b0c27a13 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java @@ -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; + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/AttestationRankEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/AttestationRankEnum.java new file mode 100644 index 000000000..b47ca94be --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/AttestationRankEnum.java @@ -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; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/OrderEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/OrderEnum.java new file mode 100644 index 000000000..52f36d2fb --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/OrderEnum.java @@ -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; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java index 5ade388ea..be4930f0c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java @@ -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 queryList(DummyInventoryInfoEO dummyInventoryInfoEO,HttpServletRequest req) { long startTime = System.currentTimeMillis(); +// dummyInventoryInfoEO.setOrderBy("2"); +// dummyInventoryInfoEO.setOrderByField("shi4Yong4Fan4Wei2"); + String orderBy = dummyInventoryInfoEO.getOrderBy(); + String orderByField = dummyInventoryInfoEO.getOrderByField(); + QueryWrapper 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 dummyInventoryInfoEOList = this.list(queryWrapper); log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime)); + //数据字典 + List 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 hearSort(String orderBy, String orderByField, List 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 list = new LinkedList<>(); + //状态(现行,即将实施,草稿,被替代,废止) + dummyInventoryInfoEOList = stateSort(orderBy, orderByField, dummyInventoryInfoEOList, list); + + //认证级别(WVTA,Com.-VTA,Cert.-Market,Reg.-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 attestationRankSort(String orderBy, String orderByField, List dummyInventoryInfoEOList, List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "attestationRank".equals(orderByField)){ + List wvta = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.WVTA.getValue())).collect(Collectors.toList()); + List vta = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.VTA.getValue())).collect(Collectors.toList()); + List market = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.MARKET.getValue())).collect(Collectors.toList()); + List regu = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRankStr().startsWith(AttestationRankEnum.REGU.getValue())).collect(Collectors.toList()); + List 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 stateSort(String orderBy, String orderByField, List dummyInventoryInfoEOList, List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "state".equals(orderByField)){ + List active = dummyInventoryInfoEOList.stream() + .filter(e -> LawsStateEnum.ACTIVE.getName().equals(e.getStateStr())).collect(Collectors.toList()); + List theUpcoming = dummyInventoryInfoEOList.stream() + .filter(e -> LawsStateEnum.THE_UPCOMING.getName().equals(e.getStateStr())).collect(Collectors.toList()); + List draft = dummyInventoryInfoEOList.stream() + .filter(e -> LawsStateEnum.DRAFT.getName().equals(e.getStateStr())).collect(Collectors.toList()); + List beReplaced = dummyInventoryInfoEOList.stream() + .filter(e -> LawsStateEnum.BE_REPLACED.getName().equals(e.getStateStr())).collect(Collectors.toList()); + List 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 dummyInventoryInfoEOList) { + private void treeDict(DummyInventoryInfoEO dummyInventoryInfoEO, List dummyInventoryInfoEOList,List sysDictItems) { List deliverableList = new ArrayList<>(); if(dummyInventoryInfoEOList.size() != 0){ @@ -1026,6 +1191,42 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl 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 technologyTerritoryList = Arrays.asList(record.getTechnologyTerritory().split(",")); @@ -1079,6 +1280,30 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl sysDictItems, String field,String dictCode) { + StringBuilder sb = new StringBuilder(); + for (String s : field.split(",")) { + List sysDictItemList = sysDictItems.stream() + .filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(dictCode)) + .collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(sysDictItemList)){ + List 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 categoryList, List technologyTerritoryList) { StringBuilder sb = new StringBuilder(); for (String technologyTerritory : technologyTerritoryList) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/helpers/ConfigManager.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/helpers/ConfigManager.java index efddcd5fa..8ad7fafea 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/helpers/ConfigManager.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/helpers/ConfigManager.java @@ -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; } -} \ No newline at end of file +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java index fb65e58dc..3638b75e0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java @@ -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 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 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 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 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 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java index c4a643ca0..d198a80ac 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java @@ -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; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java index 37aef3e07..55fc88a64 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java @@ -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; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ColourEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ColourEnum.java new file mode 100644 index 000000000..3261a49a9 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ColourEnum.java @@ -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; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java index a0a200fe1..a5d170034 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java @@ -153,6 +153,8 @@ public class NcrTrackServiceImpl extends ServiceImpl 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 ncrTrackVO.setTitle(title);//标题 if(StringUtils.isNotBlank(flowType)){ ncrTrackVO.setFlowType(name);//流程类型 + }else{ + ncrTrackVO.setFlowType("");//流程类型 } ncrTrackVO.setDutyTerritory(dutyTerritory);//责任领域 ncrTrackVO.setProjectName(projectName);//相关项目 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 43dc27a3e..ac03aa424 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -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 projectLawsInventoryEOList = this.list(wrapperTemp); //调取 String dummyInventoryBaseId = projectLawsInventoryEO.getDummyInventoryBaseId(); - if(StringUtils.isNotBlank(dummyInventoryBaseId)){ + if(StringUtils.isNotBlank(projectLawsInventoryEO.getDummyids())){ //查询虚拟清单对应清单维护中的数据 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,projectLawsInventoryEO.getDummyInventoryBaseId()); + lambdaQueryWrapper.in(DummyInventoryInfoEO::getId,Arrays.asList(projectLawsInventoryEO.getDummyids().split(","))); List dummyInventoryInfoEOList = dummyInventoryInfoEOService.list(lambdaQueryWrapper); List dummyInventoryInfoEOListNew = new ArrayList<>(); if(dummyInventoryInfoEOList.size() != 0){ @@ -873,10 +876,244 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl hearSort(ProjectLawsInventoryEO projectLawsInventoryEO, List 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 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); + } + // 认证级别(WVTA,Com.-VTA,Cert.-Market,Reg.-Market) attestationRank_dictText + if("attestationRank".equals(orderByField)){ + result = attestationRankSort(orderBy,orderByField,result,list); + } + } log.info("四阶段消耗时间:" + (System.currentTimeMillis() - startTime)); return result; } + //清单确认状态排序 + private List inventorySort(String orderBy, String orderByField, + List dummyInventoryInfoEOList, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "inventoryAffirmStatusName".equals(orderByField)){ + List notStarted = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.NOT_STARTED.getName())).collect(Collectors.toList()); + List regEngToConfirm = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REG_ENG_TO_CONFIRM.getName())).collect(Collectors.toList()); + List homoEngToConfirm = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.HOMO_ENG_TO_CONFIRM.getName())).collect(Collectors.toList()); + List accepted = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.ACCEPTED.getName())).collect(Collectors.toList()); + List regEngRejected = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.REG_ENG_REJECTED.getName())).collect(Collectors.toList()); + List homoEngRejected = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.HOMO_ENG_REJECTED.getName())).collect(Collectors.toList()); + List listToConfirm = dummyInventoryInfoEOList.stream() + .filter(e -> e.getInventoryAffirmStatusName().equals(InventoryAffirmStatusEnum.LIST_TO_CONFIRM.getName())).collect(Collectors.toList()); + List 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 taskSort(String orderBy, String orderByField, + List dummyInventoryInfoEOList, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "taskAffirmStatusName".equals(orderByField)){ + List notStarted = dummyInventoryInfoEOList.stream() + .filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.NOT_STARTED.getName())).collect(Collectors.toList()); + List listToConfirm = dummyInventoryInfoEOList.stream() + .filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getName())).collect(Collectors.toList()); + List accepted = dummyInventoryInfoEOList.stream() + .filter(e -> e.getTaskAffirmStatusName().equals(TaskAffirmStatusEnum.ACCEPTED.getName())).collect(Collectors.toList()); + List 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 attestationRankSort(String orderBy, String orderByField, + List dummyInventoryInfoEOList, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "attestationRank".equals(orderByField)){ + List wvta = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.WVTA.getValue())).collect(Collectors.toList()); + List vta = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.VTA.getValue())).collect(Collectors.toList()); + List market = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.MARKET.getValue())).collect(Collectors.toList()); + List regu = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.REGU.getValue())).collect(Collectors.toList()); + List na = dummyInventoryInfoEOList.stream() + .filter(e -> e.getAttestationRank_dictText().startsWith(AttestationRankEnum.NA.getValue())).collect(Collectors.toList()); + + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + List 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 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 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 0) { - // //如果是Viewer,根据配置的品牌筛选可访问的项目 - // List brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); - // if (ObjectUtils.isNotEmpty(brandTypes)) { - // QueryWrapper 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 brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); + if (ObjectUtils.isNotEmpty(brandTypes)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("brand",brandTypes); + if (ObjectUtils.isNotEmpty(list(queryWrapper))) { + projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet())); + } + } + } List result = projectLibraryBaseMapper.queryPageList(params); disposeData(result,"",false); @@ -837,11 +872,12 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl resultLast = new ArrayList<>(); //权限筛选 if (isViewer != 0) { - return resultNew; + resultLast = resultNew; } else { - List resultLast = new ArrayList<>(); + for (ProjectLibraryBase projectLibraryBase : resultNew) { //判断父项目是否有权限 if (!projectIds.contains(projectLibraryBase.getId())) { @@ -871,7 +907,65 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl params, List 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()); + }); + } + } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java index 40625b660..b722bc011 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java @@ -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 hearSort(ProjectTaskInventoryEO projectTaskInventoryEO, List 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 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 designSort(List result, + String orderBy, + String orderByField, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "designFlowTaskStatus".equals(orderByField)){ + List conformity = result.stream() + .filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List inconformity = result.stream() + .filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List toTrack = result.stream() + .filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List uninvolved = result.stream() + .filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List toBeConfirmed = result.stream() + .filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + List terminationOfTask = result.stream() + .filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getDesignFlowTaskStatus())).collect(Collectors.toList()); + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + //状态为空的 + List 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 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 preSort(List result, + String orderBy, + String orderByField, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "prehomoFlowTaskStatus".equals(orderByField)){ + List conformity = result.stream() + .filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List inconformity = result.stream() + .filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List toTrack = result.stream() + .filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List uninvolved = result.stream() + .filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List toBeConfirmed = result.stream() + .filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + List terminationOfTask = result.stream() + .filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getPrehomoFlowTaskStatus())).collect(Collectors.toList()); + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + List 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 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 verifySort(List result, + String orderBy, + String orderByField, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "verifyFlowTaskStatus".equals(orderByField)){ + List conformity = result.stream() + .filter(e -> ReviewResultEnum.CONFORMITY.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List inconformity = result.stream() + .filter(e -> ReviewResultEnum.INCONFORMITY.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List toTrack = result.stream() + .filter(e -> ReviewResultEnum.TO_TRACK.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List uninvolved = result.stream() + .filter(e -> ReviewResultEnum.UNINVOLVED.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List toBeConfirmed = result.stream() + .filter(e -> ReviewResultEnum.TO_BE_CONFIRMED.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + List terminationOfTask = result.stream() + .filter(e -> ReviewResultEnum.TERMINATION_OF_TASK.getValue().equals(e.getVerifyFlowTaskStatus())).collect(Collectors.toList()); + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + List 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 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 colourSort(List result, + String orderBy, + String orderByField, + List list) { + if(ObjectUtils.isNotEmpty(orderByField) && "projectStatusAssess".equals(orderByField)){ + List red = result.stream() + .filter(e -> ColourEnum.RED.getValue().equals(e.getProjectStatusAssess())).collect(Collectors.toList()); + List yellow = result.stream() + .filter(e -> ColourEnum.YELLOW.getValue().equals(e.getProjectStatusAssess())).collect(Collectors.toList()); + List green = result.stream() + .filter(e -> ColourEnum.GREEN.getValue().equals(e.getProjectStatusAssess())).collect(Collectors.toList()); + List blue = result.stream() + .filter(e -> ColourEnum.BLUE.getValue().equals(e.getProjectStatusAssess())).collect(Collectors.toList()); + + if (OrderEnum.POSITIVE.getValue().equals(orderBy)) { + //正序 + List 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 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 result,String cut){ if(CollectionUtils.isNotEmpty(result)){ + List dictItemList = sysDictItemServiceImpl.selectItemsByDictCode("duty_territory"); + List certificationProgress = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress"); for (ProjectTaskInventoryEO projectTaskInventoryEO : result) { + //责任领域 + if(StringUtils.isNotEmpty(projectTaskInventoryEO.getDutyTerritory())){ + List 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 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); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java index 39ab25d35..58f8e6978 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java @@ -147,6 +147,13 @@ public class NcrTrackVO implements Serializable { private String administrator; + //排序(1->正序, 2->倒序) + private String orderBy; + + //排序字段 + private String orderByField; + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/mapper/OnlCgformSubscribeMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/mapper/OnlCgformSubscribeMapper.java index e453fd655..90b7b9223 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/mapper/OnlCgformSubscribeMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/mapper/OnlCgformSubscribeMapper.java @@ -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 List queryListByDocumentId(@Param("document_id") String document_id); IPage queryPageList(IPage page, @Param("params") Map params); + + List> infoList(@Param("params") Map params); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/mapper/xml/OnlCgformSubscribeMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/mapper/xml/OnlCgformSubscribeMapper.xml index 3eecf85f9..cce2a1288 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/mapper/xml/OnlCgformSubscribeMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/mapper/xml/OnlCgformSubscribeMapper.xml @@ -48,7 +48,67 @@ - + + + and bdl.state in + + #{item} + + + + order by CONVERT( ${params.orderByField} USING gbk) COLLATE gbk_chinese_ci + + + order by ocs.create_time + + + asc + + + desc + + + order by ocs.create_time desc + + + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/service/impl/OnlCgformSubscribeServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/service/impl/OnlCgformSubscribeServiceImpl.java index af993cf26..a24fa9ae1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/service/impl/OnlCgformSubscribeServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/subscribe/service/impl/OnlCgformSubscribeServiceImpl.java @@ -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 queryPageList(Map 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> mapList = onlCgformSubscribeMapper.infoList(params); + result = onlCgformCollectionService.stateSort(params,pageNo,pageSize,result,mapList); + }else{ + result = onlCgformSubscribeMapper.queryPageList(page,params); + } List> records = result.getRecords(); dataDispose(records,params); return result; @@ -271,4 +291,4 @@ public class OnlCgformSubscribeServiceImpl extends ServiceImpl @@ -115,6 +116,8 @@ pageSize: 10 }, //搜索条件 total: 0, + orderBy: '1', + orderByField: '', //列表表头 columns: [ { @@ -123,6 +126,7 @@ key: 'serialNumber', scopedSlots: { customRender: 'serialNumber' }, align: 'center', + sorter:true, ellipsis: true, width: 180 }, @@ -139,6 +143,7 @@ align: 'center', width: 180, ellipsis: true, + sorter:true, dataIndex: 'state' }, { @@ -146,6 +151,7 @@ align: 'center', width: 180, ellipsis: true, + sorter:true, dataIndex: 'createTime' }, { @@ -167,9 +173,22 @@ this.loadData() }, methods: { + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + if(sorter.columnKey == 'serialNumber'){ + this.orderByField = 'serial_number' + } else if(sorter.columnKey == 'createTime') { + this.orderByField = 'create_time' + } else{ + this.orderByField = sorter.columnKey + } + this.loadData() + }, //获取列表数据 loadData() { let params = { + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParams } this.loading = true diff --git a/jero-web/src/views/documentManage/subscribtion/index.vue b/jero-web/src/views/documentManage/subscribtion/index.vue index 3e45140b2..619f9dd51 100644 --- a/jero-web/src/views/documentManage/subscribtion/index.vue +++ b/jero-web/src/views/documentManage/subscribtion/index.vue @@ -68,6 +68,7 @@ :dataSource="tableData" :pagination="false" :loading="loading" + @change="tableOnChange" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" > @@ -114,6 +115,8 @@ pageSize: 10 }, //搜索条件 total: 0, + orderBy: '1', + orderByField: '', //列表表头 columns: [ { @@ -123,6 +126,7 @@ align: 'center', width: 180, scopedSlots: { customRender: 'serialNumber' }, + sorter:true, ellipsis: true }, { @@ -138,6 +142,7 @@ align: 'center', width: 180, dataIndex: 'state', + sorter:true, ellipsis: true }, { @@ -145,6 +150,7 @@ align: 'center', width: 180, dataIndex: 'createTime', + sorter:true, ellipsis: true }, { @@ -177,9 +183,22 @@ this.loadData() }, methods: { + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + if(sorter.columnKey == 'serialNumber'){ + this.orderByField = 'serial_number' + } else if(sorter.columnKey == 'createTime') { + this.orderByField = 'create_time' + } else{ + this.orderByField = sorter.columnKey + } + this.loadData() + }, //获取列表数据 loadData() { let params = { + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParams } this.loading = true diff --git a/jero-web/src/views/documentTools/virtualList/components/transferList.vue b/jero-web/src/views/documentTools/virtualList/components/transferList.vue new file mode 100644 index 000000000..62b60efdf --- /dev/null +++ b/jero-web/src/views/documentTools/virtualList/components/transferList.vue @@ -0,0 +1,261 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/documentTools/virtualList/components/transferListvirtal.vue b/jero-web/src/views/documentTools/virtualList/components/transferListvirtal.vue new file mode 100644 index 000000000..3c60725cf --- /dev/null +++ b/jero-web/src/views/documentTools/virtualList/components/transferListvirtal.vue @@ -0,0 +1,254 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue b/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue index ffad9f9d9..4959732c7 100644 --- a/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue +++ b/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue @@ -90,6 +90,7 @@ +

@@ -122,6 +123,13 @@ {{$t('batSetting')}}
+ +
+ + {{$t('Transfer')}} +
@@ -215,6 +224,8 @@ + + @@ -246,6 +247,8 @@ ], queryParam: {}, administrators:false, + orderBy: '1', + orderByField: '' } }, mounted() { @@ -269,6 +272,11 @@ this.selectedRowKeys = [] this.getList() }, + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + this.orderByField = sorter.columnKey + this.getList() + }, setCreatorClick() { if (this.selectedRowKeys.length > 0) { let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) @@ -415,6 +423,8 @@ let query = { pageNo: this.pageNo, pageSize: this.pageSize, + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParam } this.loading = true diff --git a/jero-web/src/views/parameter/ParameterTemplate/index.vue b/jero-web/src/views/parameter/ParameterTemplate/index.vue index 5c95dfc52..5b6095701 100644 --- a/jero-web/src/views/parameter/ParameterTemplate/index.vue +++ b/jero-web/src/views/parameter/ParameterTemplate/index.vue @@ -56,6 +56,7 @@ rowKey="id" :data-source="dataSource" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" + @change="tableOnChange" :columns="columns" > @@ -131,6 +132,8 @@ export default { toggleSearchStatus: false, selectedRowKeys: [], selectedRowKeysArray: '', + orderBy: '1', + orderByField: '', formInline: {}, rules: { paramsTemplateName:[ @@ -154,11 +157,20 @@ export default { pageNo: 1, title: '新增', columns: [ + { + title: this.$t('zoneOfApplication'), + align: 'center', + width: 160, + ellipsis: true, + sorter:true, + dataIndex: 'region_dictText', + }, { title: this.$t('parameterTemplate'), align: 'center', width: 180, ellipsis: true, + sorter:true, dataIndex: 'paramsTemplateName', scopedSlots: { customRender: 'projectName' } }, @@ -181,6 +193,7 @@ export default { align: 'center', dataIndex: 'createTime', width: 160, + sorter:true, ellipsis: true, }, { @@ -188,6 +201,7 @@ export default { align: 'center', width: 160, ellipsis: true, + sorter:true, dataIndex: 'updateTime' }, { @@ -354,10 +368,27 @@ export default { this.queryParam[value] = id this.queryParam = { ...this.queryParam } }, + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + if(sorter.columnKey == 'region_dictText'){ + this.orderByField = 'region' + } else if(sorter.columnKey == 'paramsTemplateName') { + this.orderByField = 'params_template_name' + } else if(sorter.columnKey == 'createTime') { + this.orderByField = 'create_time' + } else if(sorter.columnKey == 'updateTime') { + this.orderByField = 'update_time' + } else{ + this.orderByField = sorter.columnKey + } + this.getList() + }, getList() { let query = { pageNo: this.pageNo, pageSize: this.pageSize, + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParam } this.loading = true diff --git a/jero-web/src/views/parameter/escalationlibrary/index.vue b/jero-web/src/views/parameter/escalationlibrary/index.vue index b7199aa7d..b55b4775f 100644 --- a/jero-web/src/views/parameter/escalationlibrary/index.vue +++ b/jero-web/src/views/parameter/escalationlibrary/index.vue @@ -39,6 +39,7 @@ :scroll="{x: '100%',y:'calc(100vh - 158px)'}" rowKey="id" :data-source="dataSource" + @change="tableOnChange" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :columns="columns" > @@ -126,6 +127,8 @@ paramsManifestId:'', selectedRowKeysArray: '', formInline: {}, + orderBy: '1', + orderByField: '', rules: { paramsTemplateName: [ { required: true, message: this.$t('PleaseEnter') + this.$t('templateName'), trigger: 'change' } @@ -156,6 +159,7 @@ align: 'center', width: '17%', dataIndex: 'projectName', + sorter:true, scopedSlots: { customRender: 'projectName' } }, { @@ -304,10 +308,21 @@ // } // }) }, + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + if(sorter.columnKey == 'projectName') { + this.orderByField = 'pageName' + } else{ + this.orderByField = sorter.columnKey + } + this.getList() + }, getList() { let query = { pageNo: this.pageNo, pageSize: this.pageSize, + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParam } this.loading = true diff --git a/jero-web/src/views/parameter/parameterexport/index.vue b/jero-web/src/views/parameter/parameterexport/index.vue index 720c7d695..7a85044bb 100644 --- a/jero-web/src/views/parameter/parameterexport/index.vue +++ b/jero-web/src/views/parameter/parameterexport/index.vue @@ -51,6 +51,7 @@ :scroll="{x: '100%',y:'calc(100vh - 160px)'}" rowKey="id" :data-source="dataSource" + @change="tableOnChange" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :columns="columns" > @@ -126,6 +127,8 @@ export default { selectedRowKeys: [], selectedRowKeysArray: '', formInline: {}, + orderBy: '1', + orderByField: '', rules: { paramsTemplateName:[ { required: true, message: this.$t('PleaseEnter')+this.$t('templateName'), trigger: 'change' }, @@ -161,6 +164,7 @@ export default { title: this.$t('templateName'), align: 'center', dataIndex: 'templateName', + sorter:true, ellipsis: true, width: 300, scopedSlots: { customRender: 'templateName' } @@ -199,6 +203,7 @@ export default { align: 'center', width: 180, ellipsis: true, + sorter:true, dataIndex: 'updateTime' }, { @@ -352,10 +357,23 @@ export default { this.queryParam[value] = id this.queryParam = { ...this.queryParam } }, + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + if(sorter.columnKey == 'templateName') { + this.orderByField = 'template_name' + } else if(sorter.columnKey == 'updateTime') { + this.orderByField = 'update_time' + } else{ + this.orderByField = sorter.columnKey + } + this.getList() + }, getList() { let query = { pageNo: this.pageNo, pageSize: this.pageSize, + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParam } this.loading = true diff --git a/jero-web/src/views/projectManagement/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/components/ProjectDetails.vue index 1a5bf7a42..ad4a6cc24 100644 --- a/jero-web/src/views/projectManagement/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/components/ProjectDetails.vue @@ -59,6 +59,13 @@ @click="urlClick(queryForm.ipdInfo)" >{{queryForm.ipdInfo}}
+
+ {{$t('brand')}} + {{queryForm.brand}} +
diff --git a/jero-web/src/views/projectManagement/components/TaskList.vue b/jero-web/src/views/projectManagement/components/TaskList.vue index b00ceffd6..7fabf0766 100644 --- a/jero-web/src/views/projectManagement/components/TaskList.vue +++ b/jero-web/src/views/projectManagement/components/TaskList.vue @@ -109,6 +109,7 @@ :scroll="{x: true,y:'calc(100vh - 335px)'}" :data-source="dataSource" rowKey="id" + @change="tableOnChange" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :columns="columns" > @@ -255,12 +256,14 @@ align: 'center', dataIndex: 'standard', width: 202, + sorter:true, scopedSlots: { customRender: 'standardInformation' } }, { title: this.$t('areaOfResponsibility'), align: 'center', width: 180, + sorter:true, dataIndex: 'areaOfResponsibility', scopedSlots: { customRender: 'areaOfResponsibility' } }, @@ -268,6 +271,7 @@ title: this.$t('confirmationOfDesignConformity'), align: 'center', width: 240, + sorter:true, dataIndex: 'confirmationOfDesignConformity', scopedSlots: { customRender: 'confirmationOfDesignConformity' } }, @@ -275,6 +279,7 @@ title: this.$t('PrehomoConfirmation'), align: 'center', width: 240, + sorter:true, dataIndex: 'PrehomoConfirmation', scopedSlots: { customRender: 'PrehomoConfirmation' } }, @@ -282,6 +287,7 @@ title: this.$t('verificationAndConformityconfirmation'), align: 'center', width: 240, + sorter:true, dataIndex: 'verificationAndConformityconfirmation', scopedSlots: { customRender: 'verificationAndConformityconfirmation' } }, @@ -289,6 +295,7 @@ title: this.$t('CertificationProgress'), align: 'center', width: 150, + sorter:true, dataIndex: 'CertificationProgress', scopedSlots: { customRender: 'CertificationProgress' } }, @@ -296,11 +303,14 @@ title: this.$t('CurrentStatus'), align: 'center', width: 150, + sorter:true, dataIndex: 'CurrentProjectStatusEvaluation', scopedSlots: { customRender: 'CurrentProjectStatusEvaluation' } } ], selectedRowKeys: [], + orderBy: '1', + orderByField: '', status: { 'NotDone': '待办', @@ -536,7 +546,27 @@ CertificationDirectory() { this.$refs.certificationDirectoryRef.addModel() }, - + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + if(sorter.columnKey == 'standard'){ + this.orderByField = 'serialNumber' + } else if(sorter.columnKey == 'areaOfResponsibility') { + this.orderByField = 'dutyTerritory' + } else if(sorter.columnKey == 'confirmationOfDesignConformity') { + this.orderByField = 'designFlowTaskStatus' + } else if(sorter.columnKey == 'PrehomoConfirmation') { + this.orderByField = 'prehomoFlowTaskStatus' + } else if(sorter.columnKey == 'verificationAndConformityconfirmation') { + this.orderByField = 'verifyFlowTaskStatus' + } else if(sorter.columnKey == 'CertificationProgress') { + this.orderByField = 'certificationProgressName' + } else if(sorter.columnKey == 'CurrentProjectStatusEvaluation') { + this.orderByField = 'projectStatusAssess' + } else{ + this.orderByField = sorter.columnKey + } + this.getList() + }, getList() { let queryParam = JSON.parse(JSON.stringify(this.queryParam)) Object.keys(queryParam).forEach(val => { @@ -549,6 +579,8 @@ } let query = { projectLibraryId: this.$route.query.id, + orderBy: this.orderBy, + orderByField: this.orderByField, ...queryParam } this.loading = true diff --git a/jero-web/src/views/projectManagement/components/TaskParameterCollection.vue b/jero-web/src/views/projectManagement/components/TaskParameterCollection.vue index 716bd1aec..f6b9294f6 100644 --- a/jero-web/src/views/projectManagement/components/TaskParameterCollection.vue +++ b/jero-web/src/views/projectManagement/components/TaskParameterCollection.vue @@ -163,6 +163,7 @@ align: 'center', width: 80, ellipsis: true, + sorter:true, dataIndex: 'state' }, { @@ -177,6 +178,7 @@ align: 'center', width: 120, ellipsis: true, + sorter:true, dataIndex: 'projectVersion' }, { @@ -185,6 +187,7 @@ dataIndex: 'finishTime', width: 180, ellipsis: true, + sorter:true, scopedSlots: { customRender: 'collectionCompletionTime' } }, { @@ -192,6 +195,7 @@ align: 'center', width: 80, ellipsis: true, + sorter:true, dataIndex: 'version' }, { @@ -206,6 +210,7 @@ align: 'center', width: 160, ellipsis: true, + sorter:true, dataIndex: 'createTime' }, { @@ -219,6 +224,8 @@ token: Vue.ls.get(ACCESS_TOKEN), selectedRowKeys: [], queryParam: {}, + orderBy: '1', + orderByField: '', url: { list: 'params/manifest/page', add: 'params/manifest/add', @@ -312,9 +319,6 @@ } else { this.$message.warning(this.$t('thisbuttonCompleted')) } - }, - handleTableChange() { - }, // 历史版本 historicalVersion(historicalRow) { @@ -431,11 +435,26 @@ this.pageSize = pageSize this.getlist() }, + handleTableChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + if(sorter.columnKey == 'projectVersion'){ + this.orderByField = 'project_version' + } else if(sorter.columnKey == 'finishTime') { + this.orderByField = 'finish_time' + } else if(sorter.columnKey == 'createTime') { + this.orderByField = 'create_time' + } else{ + this.orderByField = sorter.columnKey + } + this.getlist() + }, getlist() { let query = { projectId: this.$route.query.parentId ? this.$route.query.parentId : this.$route.query.id, pageSize: this.pageSize, pageNo: this.pageNo, + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParam } this.loading = true diff --git a/jero-web/src/views/projectManagement/components/addModel.vue b/jero-web/src/views/projectManagement/components/addModel.vue index 2e7a8b3f8..f81163685 100644 --- a/jero-web/src/views/projectManagement/components/addModel.vue +++ b/jero-web/src/views/projectManagement/components/addModel.vue @@ -224,6 +224,20 @@
+ +
+
+ {{$t('brand')}} +
+ + + +
+
diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index 65f0e03d9..12c43c681 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -208,6 +208,7 @@ :scroll="{x: '100%',y:'calc(100vh - 356px)'}" rowKey="id" :data-source="dataSource" + @change="tableOnChange" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :columns="columns" > @@ -300,7 +301,8 @@ - + + @@ -91,6 +92,8 @@ return { queryParam: {}, loading: false, + orderBy: '1', + orderByField: '', dataSource: [], selectedRowKeys: [], columns: [ @@ -100,6 +103,7 @@ dataIndex: 'serialNumber', scopedSlots: { customRender: 'standard' }, ellipsis: true, + sorter:true, width: 180 }, { @@ -115,6 +119,7 @@ align: 'center', dataIndex: 'flowType', ellipsis: true, + sorter:true, width: 180 }, { @@ -122,6 +127,7 @@ align: 'center', dataIndex: 'dutyTerritory', ellipsis: true, + sorter:true, width: 180 }, { @@ -129,6 +135,7 @@ align: 'center', dataIndex: 'problemType', ellipsis: true, + sorter:true, width: 180 }, { @@ -136,6 +143,7 @@ align: 'center', dataIndex: 'initiator', ellipsis: true, + sorter:true, width: 140 }, { @@ -143,6 +151,7 @@ align: 'center', dataIndex: 'duty', ellipsis: true, + sorter:true, width: 140 } ], @@ -218,11 +227,18 @@ } downloadFilePost(this.url.exportData, this.$t('NonConformance') + '.xls', query, this.Deselect) }, + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + this.orderByField = sorter.columnKey + this.getList() + }, getList() { let query = { pageNo: this.pageNo, pageSize: this.pageSize, projectLibraryId: this.$route.query.id, + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParam } this.loading = true diff --git a/jero-web/src/views/projectManagement/components/transferList.vue b/jero-web/src/views/projectManagement/components/transferList.vue index 30f90c44b..db2cf7d98 100644 --- a/jero-web/src/views/projectManagement/components/transferList.vue +++ b/jero-web/src/views/projectManagement/components/transferList.vue @@ -56,7 +56,7 @@
{{$t('cancel')}} - {{$t('submit')}} + {{$t('determine')}}
@@ -166,27 +166,30 @@ if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { this.confirmLoading = true let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) - postAction(this.url.addModel, { - dummyInventoryBaseId: selectedRowKeys.join(','), - projectLibraryId: this.$route.query.id, - flag: flag - }).then((res) => { - if (res.success) { - this.confirmLoading = false - this.$message.success(this.$t('OperationSuccessful')) - this.visible = false - this.selectedRowKeys = [] - this.$emit('transferListForm') - } else { - if (res.message == '该虚拟清单的维护清单中没有数据,是否需要添加') { - this.confirmLoading = false - this.getAdd() - return - } - this.$message.warning(this.$t('operationFailed')) - this.confirmLoading = false - } - }) + this.confirmLoading = false + this.$emit('transferListForm',selectedRowKeys.join(',')) + this.selectedRowKeys = [] + // postAction(this.url.addModel, { + // dummyInventoryBaseId: selectedRowKeys.join(','), + // projectLibraryId: this.$route.query.id, + // flag: flag + // }).then((res) => { + // if (res.success) { + // this.confirmLoading = false + // this.$message.success(this.$t('OperationSuccessful')) + // this.visible = false + // this.selectedRowKeys = [] + // this.$emit('transferListForm') + // } else { + // if (res.message == '该虚拟清单的维护清单中没有数据,是否需要添加') { + // this.confirmLoading = false + // this.getAdd() + // return + // } + // this.$message.warning(this.$t('operationFailed')) + // this.confirmLoading = false + // } + // }) } else { this.$message.warning(this.$t('selectLeastOne')) } diff --git a/jero-web/src/views/projectManagement/components/transferListvirtal.vue b/jero-web/src/views/projectManagement/components/transferListvirtal.vue new file mode 100644 index 000000000..0de24d099 --- /dev/null +++ b/jero-web/src/views/projectManagement/components/transferListvirtal.vue @@ -0,0 +1,255 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/projectLibrary/index.vue b/jero-web/src/views/projectManagement/projectLibrary/index.vue index ad55299ec..8615a0fe6 100644 --- a/jero-web/src/views/projectManagement/projectLibrary/index.vue +++ b/jero-web/src/views/projectManagement/projectLibrary/index.vue @@ -88,6 +88,17 @@
+ +
+
+ {{$t('brand')}} +
+ +
+
@@ -120,6 +131,7 @@ :pagination="false" :scroll="{x: '100%'}" rowKey="id" + @change="tableOnChange" :data-source="dataSource" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :columns="columns" @@ -203,6 +215,7 @@ align: 'left', dataIndex: 'projectName', width: 180, + sorter:true, ellipsis: true, scopedSlots: { customRender: 'projectName' } }, @@ -224,9 +237,17 @@ title: this.$t('StudioEngineer'), align: 'center', width: 180, + sorter:true, ellipsis: true, dataIndex: 'studioEngineerName' }, + { + title: this.$t('brand'), + align: 'center', + width: 180, + ellipsis: true, + dataIndex: 'brand' + }, { title: this.$t('explain'), align: 'center', @@ -246,6 +267,7 @@ align: 'center', width: 180, ellipsis: true, + sorter:true, dataIndex: 'vehiclePlatform' }, { @@ -253,6 +275,7 @@ align: 'center', width: 180, ellipsis: true, + sorter:true, dataIndex: 'digitalPlatform' }, { @@ -265,6 +288,8 @@ ], userInfoQuery: {}, queryParam: {}, + orderBy: '1', + orderByField: '', administrators: false } }, @@ -396,10 +421,17 @@ this.queryParam[value] = id this.queryParam = { ...this.queryParam } }, + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + this.orderByField = sorter.columnKey + this.getList() + }, getList() { let query = { pageNo: this.pageNo, pageSize: this.pageSize, + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParam } this.loading = true diff --git a/jero-web/src/views/projectManagement/projectNonConformance/index.vue b/jero-web/src/views/projectManagement/projectNonConformance/index.vue index 3c58f2543..36c01e653 100644 --- a/jero-web/src/views/projectManagement/projectNonConformance/index.vue +++ b/jero-web/src/views/projectManagement/projectNonConformance/index.vue @@ -155,6 +155,7 @@ :loading="loading" :pagination="false" :scroll="{x: '100%'}" + @change="tableOnChange" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :data-source="dataSource" :columns="columns" @@ -205,6 +206,7 @@ align: 'center', dataIndex: 'serialNumber', width: 170, + sorter:true, scopedSlots: { customRender: 'standard' } }, { @@ -219,6 +221,7 @@ align: 'center', dataIndex: 'flowType', width: 180, + sorter:true, ellipsis: true }, { @@ -226,6 +229,7 @@ align: 'center', dataIndex: 'dutyTerritory', width: 180, + sorter:true, ellipsis: true }, { @@ -233,6 +237,7 @@ align: 'center', dataIndex: 'projectName', width: 180, + sorter:true, ellipsis: true }, { @@ -240,24 +245,29 @@ align: 'center', dataIndex: 'problemType', width: 140, + sorter:true, ellipsis: true }, { title: this.$t('Sponsor'), align: 'center', dataIndex: 'initiator', + sorter:true, width: 140 }, { title: this.$t('personLiable'), align: 'center', dataIndex: 'duty', + sorter:true, width: 140 } ], total: 0, pageSize: 10, pageNo: 1, + orderBy: '1', + orderByField: '', url: { page: '/project/ncrTrackController/queryPage', exportData: '/project/ncrTrackController/exportData' @@ -333,10 +343,17 @@ this.pageSize = pageSize this.getList() }, + tableOnChange(pagination, filters, sorter) { + this.orderBy = sorter.order == 'ascend' ? '1' : '2' + this.orderByField = sorter.columnKey + this.getList() + }, getList() { let query = { pageNo: this.pageNo, pageSize: this.pageSize, + orderBy: this.orderBy, + orderByField: this.orderByField, ...this.queryParam } this.loading = true diff --git a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue index 096d43f20..0fb8e8e20 100644 --- a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue +++ b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue @@ -23,6 +23,17 @@ :triggerChange="false" :dictCode="'region'"/> + +
+
+ {{$t('brand')}} +
+ +
+
{{$t('query')}} diff --git a/jero-web/src/views/regulationsKanban/index.vue b/jero-web/src/views/regulationsKanban/index.vue index 6ec89741c..1de4b6044 100644 --- a/jero-web/src/views/regulationsKanban/index.vue +++ b/jero-web/src/views/regulationsKanban/index.vue @@ -86,14 +86,14 @@ :columns="columns" @change="tableOnChange" > - + {{ text }} - - {{ text }} - + + + diff --git a/jero-web/src/views/system/UserAnnouncementList.vue b/jero-web/src/views/system/UserAnnouncementList.vue index c05737509..4f4da31a3 100644 --- a/jero-web/src/views/system/UserAnnouncementList.vue +++ b/jero-web/src/views/system/UserAnnouncementList.vue @@ -103,104 +103,105 @@ import DynamicNotice from '../../components/tools/DynamicNotice' import Vue from 'vue' import { ACCESS_TOKEN } from '@/store/mutation-types' -export default { - name: 'UserAnnouncementList', - mixins: [JeroListMixin], - components: { - DynamicNotice, - ShowAnnouncement - }, - data() { - return { - description: '系统通告表管理页面', - queryParam: {}, - selectedRowKeys: [], - // '5': this.$t('taskRegulationComplianceTask'), - msgCategoryQuery: { - '1': this.$t('SubscriptionNotification'), - '2': this.$t('warningInformation'), - '3': this.$t('ForwardPush') - // '4': this.$t('CollectinguthenticationParameters'), - // '6':this.$t('RegulationListConfirmationTask'), - // '7':this.$t('RegulationListConfirmationNotification'), - // '8':this.$t('RegulationTaskConfirmation'), - // '9':this.$t('DesignComplianceTask'), - // '10':this.$t('PreHomoTask'), - // '11':this.$t('ValidationTask'), - // '12':this.$t('DesignComplianceNotification'), - // '13':this.$t('PreHomoNotification'), - // '14':this.$t('ValidationComplianceNotification'), - // '15':this.$t('RegulationTaskConfirmationNotification'), - // '17':this.$t('listConfirmation'), - // '18':this.$t('taskAffirm'), - // '19':this.$t('complianceConfirmation'), - // '20':this.$t('collectionLegislativeComments'), - // '21':this.$t('regulatoryAndTechnicalAssessment'), - }, - columns: [ - { - title: this.$t('MessageContent'), - align: 'left', - dataIndex: 'msgContent', - ellipsis: true, - scopedSlots: { customRender: 'msgTitile' } + export default { + name: 'UserAnnouncementList', + mixins: [JeroListMixin], + components: { + DynamicNotice, + ShowAnnouncement + }, + data() { + return { + description: '系统通告表管理页面', + queryParam: {}, + selectedRowKeys: [], + // '5': this.$t('taskRegulationComplianceTask'), + msgCategoryQuery: { + '1': this.$t('SubscriptionNotification'), + '2': this.$t('warningInformation'), + '3': this.$t('ForwardPush') + // '4': this.$t('CollectinguthenticationParameters'), + // '6':this.$t('RegulationListConfirmationTask'), + // '7':this.$t('RegulationListConfirmationNotification'), + // '8':this.$t('RegulationTaskConfirmation'), + // '9':this.$t('DesignComplianceTask'), + // '10':this.$t('PreHomoTask'), + // '11':this.$t('ValidationTask'), + // '12':this.$t('DesignComplianceNotification'), + // '13':this.$t('PreHomoNotification'), + // '14':this.$t('ValidationComplianceNotification'), + // '15':this.$t('RegulationTaskConfirmationNotification'), + // '17':this.$t('listConfirmation'), + // '18':this.$t('taskAffirm'), + // '19':this.$t('complianceConfirmation'), + // '20':this.$t('collectionLegislativeComments'), + // '21':this.$t('regulatoryAndTechnicalAssessment'), }, - { - title: this.$t('Sponsor'), - align: 'left', - ellipsis: true, - dataIndex: 'initiator', - width: 200 + columns: [ + { + title: this.$t('MessageContent'), + align: 'left', + dataIndex: 'msgContent', + ellipsis: true, + scopedSlots: { customRender: 'msgTitile' } + }, + { + title: this.$t('Sponsor'), + align: 'left', + ellipsis: true, + dataIndex: 'initiator', + width: 200 + }, + { + title: this.$t('MessageType'), + align: 'left', + ellipsis: true, + dataIndex: 'msgCategory', + width: 200, + scopedSlots: { customRender: 'msgCategory' } + }, + { + title: this.$t('NotificationTime'), + align: 'left', + ellipsis: true, + width: 200, + dataIndex: 'sendTime' + }, + { + title: '', + align: 'left', + ellipsis: true, + width: 50 + } + ], + url: { + list: '/sys/sysAnnouncementSend/getMyAnnouncementSend', + editCementSend: 'sys/sysAnnouncementSend/editByAnntIdAndUserId', + readAllMsg: 'sys/sysAnnouncementSend/read', + deleteUrl: 'sys/sysAnnouncementSend/deleteBatch' }, - { - title: this.$t('MessageType'), - align: 'left', - ellipsis: true, - dataIndex: 'msgCategory', - width: 200, - scopedSlots: { customRender: 'msgCategory' } - }, - { - title: this.$t('NotificationTime'), - align: 'left', - ellipsis: true, - width: 200, - dataIndex: 'sendTime' - }, - { - title: '', - align: 'left', - ellipsis: true, - width: 50 - } - ], - url: { - list: '/sys/sysAnnouncementSend/getMyAnnouncementSend', - editCementSend: 'sys/sysAnnouncementSend/editByAnntIdAndUserId', - readAllMsg: 'sys/sysAnnouncementSend/read', - deleteUrl: 'sys/sysAnnouncementSend/deleteBatch' - }, - loading: false, - openPath: '', - formData: '', - language: '' - } - }, - watch: { - $route: function(res) { - console.log(res) - this.loadData() - } - }, - mounted() { - this.language = localStorage.getItem('language') || '' - }, - methods: { - expandIcon(props) { - if (props.expanded) { - return { - props.onExpand(props.record, e) - } + loading: false, + openPath: '', + formData: '', + language: '' + } + }, + watch: { + $route: function(res) { + console.log(res) + this.loadData() + } + }, + mounted() { + this.language = localStorage.getItem('language') || '' + }, + methods: { + expandIcon(props) { + if (props.expanded) { + return + { + props.onExpand(props.record, e) + } } /> } else { diff --git a/jero-web/src/views/system/modules/UserModal.vue b/jero-web/src/views/system/modules/UserModal.vue index 9cf300277..7a36a6149 100644 --- a/jero-web/src/views/system/modules/UserModal.vue +++ b/jero-web/src/views/system/modules/UserModal.vue @@ -80,11 +80,19 @@ :type="'select'" :triggerChange="false" :dictCode="'duty_territory'"/> - - + + + + + + + + + {{ item.text || item.label }} + + + @@ -230,7 +238,9 @@ modaltoggleFlag: true, confirmDirty: false, viewshow: false, + viewshowbrand: false, selectedDepartKeys: [], //保存用户选择部门id + brandsList: [], //保存用户选择部门id checkedDepartKeys: [], checkedDepartNames: [], // 保存部门的名称 =>title checkedDepartNameString: '', // 保存部门的名称 =>title @@ -360,8 +370,16 @@ } }) }, + barndslist(){ + getAction('/sys/dict/getBrandDict', {}).then((res) => { + if (res.success) { + this.brandsList = res.result + } else { + this.brandsList = [] + } + }) + }, loadUserRoles(userid) { - console.log(11) queryUserRole({ userid: userid }).then((res) => { if (res.success) { this.selectedRole = res.result @@ -370,10 +388,17 @@ if(val.roleCode == 'Viewer' && item == val.id){ this.$nextTick(() => { this.viewshow = true + this.viewshowbrand = true + }) + return + } else if(val.roleCode == 'BrandAdministrator' && item == val.id) { + this.$nextTick(() => { + this.viewshowbrand = true }) return }else{ this.viewshow = false + this.viewshowbrand = false } }) }) @@ -398,10 +423,17 @@ if(val.roleCode == 'Viewer' && item == val.id){ this.$nextTick(() => { this.viewshow = true + this.viewshowbrand = true + }) + return + } else if(val.roleCode == 'BrandAdministrator' && item == val.id) { + this.$nextTick(() => { + this.viewshowbrand = true }) return }else{ this.viewshow = false + this.viewshowbrand = false } }) }) @@ -465,6 +497,7 @@ let that = this this.disabled = false that.initialRoleList() + that.barndslist() if (record.activitiSync) { this.disabled = true }