From b7a69b6927fedad17f52b8326479e6d6cfd68446 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Mon, 8 May 2023 14:36:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=B3=95=E8=A7=84=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E3=80=81=E5=B8=82=E5=9C=BA=E8=AE=A4=E8=AF=81=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E3=80=81=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95=EF=BC=8C?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9=E4=B8=BA=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthDummyInventoryInfoEOController.java | 12 ++- .../IAuthDummyInventoryInfoEOService.java | 2 + .../AuthDummyInventoryInfoEOServiceImpl.java | 5 +- .../impl/DummyInventoryInfoEOServiceImpl.java | 101 +++++++++++++++--- .../ProjectLawsInventoryEOController.java | 4 +- .../IProjectLawsInventoryEOService.java | 2 + ...ctCertificationInventoryEOServiceImpl.java | 17 +++ .../ProjectLawsInventoryEOServiceImpl.java | 88 +++++++++++++++ 8 files changed, 212 insertions(+), 19 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryInfoEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryInfoEOController.java index a08f4af17..b0eb5a9f9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryInfoEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryInfoEOController.java @@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.dummy.entity.DummyInventoryInfoEO; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -57,7 +58,16 @@ public class AuthDummyInventoryInfoEOController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap()); - queryWrapper.orderByDesc("create_time"); + String orderByField = authDummyInventoryInfoEO.getOrderByField(); + String orderBy = authDummyInventoryInfoEO.getOrderBy(); + // 如果排序字段不为空 + if(StringUtils.isNotEmpty(orderByField)){ + // 转换字段 + orderByField = this.authDummyInventoryInfoEOService.convertOrderByField(orderByField); + queryWrapper.orderBy(true, "1".equals(orderBy)?true:false, orderByField); + }else { + queryWrapper.orderByDesc("create_time"); + } Page page = new Page(pageNo, pageSize); IPage pageList = this.authDummyInventoryInfoEOService.page(page, queryWrapper); this.authDummyInventoryInfoEOService.disposeData(pageList.getRecords(),authDummyInventoryInfoEO.getCut()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java index 4bbb55bc5..f13e5a99e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java @@ -113,6 +113,8 @@ public interface IAuthDummyInventoryInfoEOService extends IService datas, String cut); + String convertOrderByField(String orderByField); + /** * 获取责任领域名称 * @param cut diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java index 605ac3bf8..4d59bc41e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java @@ -607,8 +607,8 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl authDummyInventoryInfoEOList = this.list(queryWrapper); return authDummyInventoryInfoEOList; } - - private String convertOrderByField(String orderByField) { + @Override + public String convertOrderByField(String orderByField) { if(StringUtils.isEmpty(orderByField)){ return null; } @@ -620,6 +620,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl getPageInfo(DummyInventoryInfoEO dummyInventoryInfoEO,HttpServletRequest req) { + long startTime = System.currentTimeMillis(); + String orderBy = dummyInventoryInfoEO.getOrderBy(); + String orderByField = dummyInventoryInfoEO.getOrderByField(); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoEO, req.getParameterMap()); - queryWrapper.orderByDesc("create_time"); + //新车型实施日期,在产车实施日期(排序) + 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"); + } + + if(StringUtils.isNotEmpty(dummyInventoryInfoEO.getImplementTimeString())){ + String[] implementTimeArr = dummyInventoryInfoEO.getImplementTimeString().split(","); + + QueryWrapper phasedDetailsQueryWrap = new QueryWrapper<>(); + phasedDetailsQueryWrap.lambda().like(PhasedImplementationDetailsEO::getImplementationType,ImplementationTypeEnum.CAR_IN_PRODUCTION.getItemValue()); + phasedDetailsQueryWrap.lambda().ge(PhasedImplementationDetailsEO::getImplementationDate,implementTimeArr[0]); + phasedDetailsQueryWrap.lambda().le(PhasedImplementationDetailsEO::getImplementationDate,implementTimeArr[1]); + List bussDocumentLibraryIdList = this.phasedImplementationDetailsEOService.list(phasedDetailsQueryWrap) + .stream().map(PhasedImplementationDetailsEO::getBussDocumentLibraryId).collect(Collectors.toList()); + + queryWrapper.and(query -> { + query.and(q -> { + q.lambda().ge(DummyInventoryInfoEO::getImplementTime,implementTimeArr[0]); + q.lambda().le(DummyInventoryInfoEO::getImplementTime,implementTimeArr[1]); + }); + + if(CollectionUtils.isNotEmpty(bussDocumentLibraryIdList)){ + query.or(q -> { + q.lambda().in(DummyInventoryInfoEO::getBussDocumentLibraryId,bussDocumentLibraryIdList); + }); + } + }); + } + if(StringUtils.isNotEmpty(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String())){ + String[] newCarTimeArr = dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String().split(","); + + QueryWrapper phasedDetailsQueryWrap = new QueryWrapper<>(); + phasedDetailsQueryWrap.lambda().like(PhasedImplementationDetailsEO::getImplementationType,ImplementationTypeEnum.NEW_CAR_MODEL.getItemValue()); + phasedDetailsQueryWrap.lambda().ge(PhasedImplementationDetailsEO::getImplementationDate,newCarTimeArr[0]); + phasedDetailsQueryWrap.lambda().le(PhasedImplementationDetailsEO::getImplementationDate,newCarTimeArr[1]); + List bussDocumentLibraryIdList = this.phasedImplementationDetailsEOService.list(phasedDetailsQueryWrap) + .stream().map(PhasedImplementationDetailsEO::getBussDocumentLibraryId).collect(Collectors.toList()); + + queryWrapper.and(query -> { + query.and(q -> { + q.lambda().ge(DummyInventoryInfoEO::getXin1Che1Xing2Shi2Shi1Ri4Qi1,newCarTimeArr[0]); + q.lambda().le(DummyInventoryInfoEO::getXin1Che1Xing2Shi2Shi1Ri4Qi1,newCarTimeArr[1]); + }); + if(CollectionUtils.isNotEmpty(bussDocumentLibraryIdList)){ + query.or(q -> { + q.lambda().in(DummyInventoryInfoEO::getBussDocumentLibraryId,bussDocumentLibraryIdList); + }); + } + }); + } + Page page = new Page(dummyInventoryInfoEO.getPageNo(), dummyInventoryInfoEO.getPageSize()); IPage pageInfo = this.page(page, queryWrapper); //技术领域处理 // treeDict(dummyInventoryInfoEO, pageInfo); + List dummyInventoryInfoEOList = pageInfo.getRecords(); + log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime)); + //数据字典 + List sysDictItems = sysDictItemServiceImpl.selectItemsAll(); + //技术领域处理 + treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList,sysDictItems); + log.info("二阶段消耗时间:" + (System.currentTimeMillis() - startTime)); + this.dataDicDispose(dummyInventoryInfoEOList,dummyInventoryInfoEO.getCut()); + log.info("三阶段消耗时间:" + (System.currentTimeMillis() - startTime)); + treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList,sysDictItems); + // 数据处理 + this.disposeData(dummyInventoryInfoEOList,dummyInventoryInfoEO.getCut()); + //表头排序 + dummyInventoryInfoEOList = hearSort(orderBy, orderByField, dummyInventoryInfoEOList); return pageInfo; } @@ -634,18 +709,18 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl{ - if(e1.getXin1Che1Xing2Shi2Shi1Ri4Qi1() != null && e2.getXin1Che1Xing2Shi2Shi1Ri4Qi1() != null){ - String e1xin1Che1Xing2Shi2Shi1Ri4Qi = DateUtils.formatDate(e1.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); - String e2xin1Che1Xing2Shi2Shi1Ri4Qi = DateUtils.formatDate(e2.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); + if(e1.getXin1Che1Xing2Shi2Shi1Ri4Qi1String() != null && e2.getXin1Che1Xing2Shi2Shi1Ri4Qi1String() != null){ + String e1xin1Che1Xing2Shi2Shi1Ri4Qi = DateUtils.formatDate(e1.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + String e2xin1Che1Xing2Shi2Shi1Ri4Qi = DateUtils.formatDate(e2.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); return comparator.compare(e1xin1Che1Xing2Shi2Shi1Ri4Qi,e2xin1Che1Xing2Shi2Shi1Ri4Qi); } return 0; }); }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{ - if(e1.getXin1Che1Xing2Shi2Shi1Ri4Qi1() != null && e2.getXin1Che1Xing2Shi2Shi1Ri4Qi1() != null){ - String e1xin1Che1Xing2Shi2Shi1Ri4Qi = DateUtils.formatDate(e1.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); - String e2xin1Che1Xing2Shi2Shi1Ri4Qi = DateUtils.formatDate(e2.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); + if(e1.getXin1Che1Xing2Shi2Shi1Ri4Qi1String() != null && e2.getXin1Che1Xing2Shi2Shi1Ri4Qi1String() != null){ + String e1xin1Che1Xing2Shi2Shi1Ri4Qi = DateUtils.formatDate(e1.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + String e2xin1Che1Xing2Shi2Shi1Ri4Qi = DateUtils.formatDate(e2.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); return comparator.compare(e2xin1Che1Xing2Shi2Shi1Ri4Qi,e1xin1Che1Xing2Shi2Shi1Ri4Qi); } return 0; @@ -656,18 +731,18 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl{ - if(e1.getImplementTime() != null && e2.getImplementTime() != null){ - String e1ImplementTime = DateUtils.formatDate(e1.getImplementTime()); - String e2ImplementTime = DateUtils.formatDate(e2.getImplementTime()); + if(e1.getImplementTimeString() != null && e2.getImplementTimeString() != null){ + String e1ImplementTime = DateUtils.formatDate(e1.getImplementTimeString()); + String e2ImplementTime = DateUtils.formatDate(e2.getImplementTimeString()); return comparator.compare(e1ImplementTime,e2ImplementTime); } return 0; }); }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ Collections.sort(dummyInventoryInfoEOList,(e1,e2)->{ - if(e1.getImplementTime() != null && e2.getImplementTime() != null){ - String e1ImplementTime = DateUtils.formatDate(e1.getImplementTime()); - String e2ImplementTime = DateUtils.formatDate(e2.getImplementTime()); + if(e1.getImplementTimeString() != null && e2.getImplementTimeString() != null){ + String e1ImplementTime = DateUtils.formatDate(e1.getImplementTimeString()); + String e2ImplementTime = DateUtils.formatDate(e2.getImplementTimeString()); return comparator.compare(e2ImplementTime,e1ImplementTime); } return 0; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java index 3d0e91614..bc7d0d431 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java @@ -81,9 +81,7 @@ public class ProjectLawsInventoryEOController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = projectLawsInventoryEOService.page(page, queryWrapper); + IPage pageList = this.projectLawsInventoryEOService.queryPage(projectLawsInventoryEO,pageNo,pageSize,req); return Result.OK(pageList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index 5a1fac321..b27295e3e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -302,4 +302,6 @@ public interface IProjectLawsInventoryEOService extends IService groupByVerifyStatus(List pliEos); + + IPage queryPage(ProjectLawsInventoryEO projectLawsInventoryEO, Integer pageNo, Integer pageSize, HttpServletRequest req); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index f7770a7c2..53045640a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -1467,6 +1467,23 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl{ + String e1AttestationTypeName = (StringUtils.isNotEmpty(e1.getAttestationTypeName()) ? e1.getAttestationTypeName() : ""); + String e2AttestationTypeName = (StringUtils.isNotEmpty(e2.getAttestationTypeName()) ? e2.getAttestationTypeName() : ""); + return comparator.compare(e1AttestationTypeName,e2AttestationTypeName); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(datas,(e1,e2)->{ + String e1AttestationTypeName = (StringUtils.isNotEmpty(e1.getAttestationTypeName()) ? e1.getAttestationTypeName() : ""); + String e2AttestationTypeName = (StringUtils.isNotEmpty(e2.getAttestationTypeName()) ? e2.getAttestationTypeName() : ""); + return comparator.compare(e2AttestationTypeName,e1AttestationTypeName); + }); + } + } + // WVTA ID wvtaId if(StringUtils.equals("wvtaId",orderByField)){ if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ 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 c75184a8d..586ab8d10 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 @@ -1436,6 +1436,38 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl{ + String e1AttestationType = StringUtils.isNotBlank(e1.getAttestationType()) ? e1.getAttestationType() : ""; + String e2AttestationType = StringUtils.isNotBlank(e2.getAttestationType()) ? e2.getAttestationType() : ""; + return comparator.compare(e1AttestationType,e2AttestationType); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(result,(e1,e2)->{ + String e1AttestationType = StringUtils.isNotBlank(e1.getAttestationType()) ? e1.getAttestationType() : ""; + String e2AttestationType = StringUtils.isNotBlank(e2.getAttestationType()) ? e2.getAttestationType() : ""; + return comparator.compare(e2AttestationType,e1AttestationType); + }); + } + } + // 认证级别 attestationRank + if("attestationRank".equals(orderByField)){ + if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ + Collections.sort(result,(e1, e2)->{ + String e1AttestationRank = StringUtils.isNotBlank(e1.getAttestationRank()) ? e1.getAttestationRank() : ""; + String e2AttestationRank = StringUtils.isNotBlank(e2.getAttestationRank()) ? e2.getAttestationRank() : ""; + return comparator.compare(e1AttestationRank,e2AttestationRank); + }); + }else if(OrderEnum.REVERSE.getValue().equals(orderBy)){ + Collections.sort(result,(e1,e2)->{ + String e1AttestationRank = StringUtils.isNotBlank(e1.getAttestationRank()) ? e1.getAttestationRank() : ""; + String e2AttestationRank = StringUtils.isNotBlank(e2.getAttestationRank()) ? e2.getAttestationRank() : ""; + return comparator.compare(e2AttestationRank,e1AttestationRank); + }); + } + } // WVTA ID wvtaId if("wvtaId".equals(orderByField)){ if(OrderEnum.POSITIVE.getValue().equals(orderBy)){ @@ -13228,4 +13260,60 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl queryPage(ProjectLawsInventoryEO projectLawsInventoryEO, Integer pageNo, Integer pageSize, HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO, req.getParameterMap()); + queryWrapper.orderByDesc("create_time","serial_number"); + + String dutyTerritoryStr = ""; + if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDutyTerritory())) { + dutyTerritoryStr = projectLawsInventoryEO.getDutyTerritory(); + projectLawsInventoryEO.setDutyTerritory(null); + } + + String projectLibraryId = projectLawsInventoryEO.getProjectLibraryId(); + + if (StringUtils.isNotEmpty(dutyTerritoryStr)) { + String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*",""); + queryWrapper.and(query -> { + query.lambda().like(ProjectLawsInventoryEO::getDutyTerritory, finalDutyTerritoryStr); + if(StringUtils.contains(finalDutyTerritoryStr,",")){ + String[] dutyTerritoryArr = finalDutyTerritoryStr.split(","); + for (String duty : dutyTerritoryArr) { + query.or(q -> { + q.like("duty_territory",duty); + }); + } + } + }); + } + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + int isProjectRole = Integer.parseInt(projectLawsInventoryEO.getRoleCode()); + if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue()) + && isProjectRole != Integer.parseInt(ProjectRoleEnum.MANAGER.getValue()) + && isProjectRole != Integer.parseInt(ProjectRoleEnum.ADMIN.getValue()) + && isProjectRole != Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())){ + // 创建查询权限 + this.createQueryPermission(isProjectRole,currentUser,queryWrapper); + } + + Page page = new Page(pageNo, pageSize); + IPage pageList = this.page(page, queryWrapper); + List result = pageList.getRecords(); + if (isProjectRole == Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) { + //查当前用户Viewer对应责任领域 + List dutyTerritoryList = this.projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + result = result.stream().filter(e -> dutyTerritoryList.contains(e.getDutyTerritory())).collect(Collectors.toList()); + } else { + result = new ArrayList<>(); + } + } + this.dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut()); + this.dataDictDispose(result,projectLawsInventoryEO.getCut()); + //表头排序 + result = this.hearSort(projectLawsInventoryEO, result); + return pageList; + } }