From 27469e94ce15f353cf9b8ffcd8536c8f071cfa78 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Tue, 23 Jul 2024 09:43:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=95=E9=AA=8C=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aqgqj/basis/entity/dto/ParamsDto.java | 17 ++++++ .../aqgqj/basis/entity/vo/ExperConfigVo.java | 4 +- .../bonus/aqgqj/basis/entity/vo/TestVo.java | 4 +- .../impl/ExperimentStandardServiceImpl.java | 1 + .../service/impl/ExperimentalServiceImpl.java | 10 ++++ .../java/com/bonus/aqgqj/model/SysUser.java | 2 + .../com/bonus/aqgqj/utils/SystemUtils.java | 54 +++++++++++++++++-- .../com/bonus/aqgqj/webResult/Constants.java | 15 ++++++ .../mappers/basis/ExperimentalMapper.xml | 8 +++ .../resources/mappers/system/UserMapper.xml | 2 +- 10 files changed, 108 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java index 940e576..6b69e90 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java @@ -1,7 +1,10 @@ package com.bonus.aqgqj.basis.entity.dto; import com.bonus.aqgqj.base.entity.PageEntity; +import com.bonus.aqgqj.utils.UserUtil; import lombok.Data; +import org.apache.catalina.User; +import org.apache.commons.lang3.StringUtils; /** * @className:ParamsDto @@ -42,4 +45,18 @@ public class ParamsDto extends PageEntity { */ private Long[] ids; + /** + * 角色编码 + */ + private String roleCode = UserUtil.getLoginUser() !=null && StringUtils.isNotBlank(UserUtil.getLoginUser().getRoleCode()) ? UserUtil.getLoginUser().getRoleCode() : null; + /** + * 班组ID + */ + private String teamId = UserUtil.getLoginUser() !=null && StringUtils.isNotBlank(UserUtil.getLoginUser().getTeamId()) ? UserUtil.getLoginUser().getTeamId() : "-1"; + + /** + * 是否是班组长 + */ + private String isTeamLeader = UserUtil.getLoginUser() !=null && StringUtils.isNotBlank(UserUtil.getLoginUser().getIsTeamLeader()) ? UserUtil.getLoginUser().getIsTeamLeader() : "0"; + } diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java index 430299e..1658133 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java @@ -60,7 +60,7 @@ public class ExperConfigVo { * 创建人 */ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long createUser = UserUtil.getLoginUser().getId(); + private Long createUser = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -1; /** * 创建时间 */ @@ -71,7 +71,7 @@ public class ExperConfigVo { * 修改人 */ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long updateUser = UserUtil.getLoginUser().getId(); + private Long updateUser = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -1; /** * 修改时间 */ diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java index cd6627e..40653ba 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java @@ -123,7 +123,7 @@ public class TestVo { * 创建人 */ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long createUser = UserUtil.getLoginUser().getId(); + private Long createUser = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -1; /** * 创建时间 */ @@ -134,7 +134,7 @@ public class TestVo { * 修改人 */ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long updateUser = UserUtil.getLoginUser().getId(); + private Long updateUser = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -1; /** * 修改时间 */ diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java index 59c0843..0966ead 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java @@ -360,4 +360,5 @@ public class ExperimentStandardServiceImpl implements ExperimentStandardService } return null; } + } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java index 4584bfd..f01f470 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java @@ -10,6 +10,7 @@ import com.bonus.aqgqj.basis.entity.vo.*; import com.bonus.aqgqj.basis.service.ExperimentalService; import com.bonus.aqgqj.utils.DateTimeHelper; import com.bonus.aqgqj.utils.ServerResponse; +import com.bonus.aqgqj.utils.SystemUtils; import com.bonus.aqgqj.webResult.Constants; import com.bonus.aqgqj.webResult.HttpStatus; import lombok.extern.slf4j.Slf4j; @@ -124,6 +125,9 @@ public class ExperimentalServiceImpl implements ExperimentalService { @Transactional(rollbackFor = Exception.class) public ServerResponse addTestData(TestVo vo) { try { + if(!SystemUtils.isExperimentalTeam()){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "非试验班组,无法添加试验数据"); + } // 整体数据校验数据 String validResult = validatorsUtils.valid(vo, TestVo.Query.class); if (StringUtils.isNotBlank(validResult)) { @@ -194,6 +198,9 @@ public class ExperimentalServiceImpl implements ExperimentalService { if(vo.getId() == null){ return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数不完整"); } + if(!SystemUtils.isExperimentalTeam()){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "非试验班组,无法修改试验数据"); + } // 处于审核流程中的数据无法进行修改 int isCheck = mapper.isCheck(vo.getId()); if(isCheck > 0){ @@ -323,6 +330,9 @@ public class ExperimentalServiceImpl implements ExperimentalService { if(dto.getIds() == null || dto.getIds().length == 0){ return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"未提交审查数据"); } + if(!SystemUtils.isExperimentalTeam()){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "非试验班组,无法提交审查数据"); + } // 判断提交数据中是否存在流程数据或者存在待试验项 List list = Arrays.asList(dto.getIds()); int result = mapper.isNotEditData(list); diff --git a/src/main/java/com/bonus/aqgqj/model/SysUser.java b/src/main/java/com/bonus/aqgqj/model/SysUser.java index e797c9d..c6483b4 100644 --- a/src/main/java/com/bonus/aqgqj/model/SysUser.java +++ b/src/main/java/com/bonus/aqgqj/model/SysUser.java @@ -115,6 +115,8 @@ public class SysUser extends PageEntity { private String roleCode; /**班组ID*/ private String teamId; + /**是否是班组长*/ + private String isTeamLeader; public interface Status { diff --git a/src/main/java/com/bonus/aqgqj/utils/SystemUtils.java b/src/main/java/com/bonus/aqgqj/utils/SystemUtils.java index 1f16fd3..5cff8a5 100644 --- a/src/main/java/com/bonus/aqgqj/utils/SystemUtils.java +++ b/src/main/java/com/bonus/aqgqj/utils/SystemUtils.java @@ -1,9 +1,13 @@ package com.bonus.aqgqj.utils; +import com.bonus.aqgqj.webResult.Constants; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import java.util.Objects; + @Component @Slf4j public class SystemUtils { @@ -63,9 +67,51 @@ public class SystemUtils { } } + /** + * 是否是试验班组-试验人员 + * @return Boolean + * @author cwchen + * @date 2024/7/23 9:30 + */ + public static Boolean isExperimentalTeam(){ + if(UserUtil.getLoginUser() == null){ + return false; + } + String roleCode = StringUtils.isNotBlank(UserUtil.getLoginUser().getRoleCode()) ? UserUtil.getLoginUser().getRoleCode() : null; + String teamId = StringUtils.isNotBlank(UserUtil.getLoginUser().getTeamId()) ? UserUtil.getLoginUser().getTeamId() : "-1"; + String isTeamLeader = StringUtils.isNotBlank(UserUtil.getLoginUser().getIsTeamLeader()) ? UserUtil.getLoginUser().getIsTeamLeader() : "0"; + if(Objects.equals(Constants.EXPERIMENTALTEAM,roleCode) + && !Objects.equals(Constants.VALUE_DATA,teamId) + && Objects.equals(isTeamLeader,Constants.VALUE_DATA2)){ + return true; + }else if(Objects.equals(Constants.ADMIDMINISTRATORS,roleCode) ){ + return true; + }else{ + return false; + } + } - - - - + /** + * 是否是试验班组-班组长 + * @return Boolean + * @author cwchen + * @date 2024/7/23 9:30 + */ + public static Boolean isExperimentalTeamLeader(){ + if(UserUtil.getLoginUser() == null){ + return false; + } + String roleCode = StringUtils.isNotBlank(UserUtil.getLoginUser().getRoleCode()) ? UserUtil.getLoginUser().getRoleCode() : null; + String teamId = StringUtils.isNotBlank(UserUtil.getLoginUser().getTeamId()) ? UserUtil.getLoginUser().getTeamId() : "-1"; + String isTeamLeader = StringUtils.isNotBlank(UserUtil.getLoginUser().getIsTeamLeader()) ? UserUtil.getLoginUser().getIsTeamLeader() : "0"; + if(Objects.equals(Constants.EXPERIMENTALTEAM,roleCode) + && !Objects.equals(Constants.VALUE_DATA,teamId) + && Objects.equals(isTeamLeader,Constants.VALUE_DATA3)){ + return true; + }else if(Objects.equals(Constants.ADMIDMINISTRATORS,roleCode) ){ + return true; + }else{ + return false; + } + } } diff --git a/src/main/java/com/bonus/aqgqj/webResult/Constants.java b/src/main/java/com/bonus/aqgqj/webResult/Constants.java index c4445f8..dc0c529 100644 --- a/src/main/java/com/bonus/aqgqj/webResult/Constants.java +++ b/src/main/java/com/bonus/aqgqj/webResult/Constants.java @@ -144,5 +144,20 @@ public class Constants public static final String ERROR_RESULT2 = "不通过"; public static final String SUCCESS_RESULT = "合格"; + /**管理员*/ + public static final String ADMIDMINISTRATORS = "administrators"; + /**技术负责人*/ + public static final String TECHNICALDIRECTOR = "technicalDirector"; + /**中心负责人*/ + public static final String CENTERTRALMANAGER = "centerManager"; + /**试验班组*/ + public static final String EXPERIMENTALTEAM = "experimentalTeam"; + /**综合班组*/ + public static final String INTEGRATEDTEAM = "integratedTeam"; + + public static final String VALUE_DATA = "-1"; + public static final String VALUE_DATA2 = "0"; + public static final String VALUE_DATA3 = "1"; + } diff --git a/src/main/resources/mappers/basis/ExperimentalMapper.xml b/src/main/resources/mappers/basis/ExperimentalMapper.xml index 3529be4..3ccb0e7 100644 --- a/src/main/resources/mappers/basis/ExperimentalMapper.xml +++ b/src/main/resources/mappers/basis/ExperimentalMapper.xml @@ -293,6 +293,14 @@ AND INSTR(tsd.sampleDevCode,#{devTypeCode}) + + + AND ts.team_id = #{teamId} + + + AND ts.team_id = -1 + + ORDER BY FIELD(audtiStatus, '审阅不通过','审核不通过','审批不通过','待试验','待提交','待审阅','待审核','待审批','试验结束') ASC,dispatch_time ASC diff --git a/src/main/resources/mappers/system/UserMapper.xml b/src/main/resources/mappers/system/UserMapper.xml index e869c40..c32a8d7 100644 --- a/src/main/resources/mappers/system/UserMapper.xml +++ b/src/main/resources/mappers/system/UserMapper.xml @@ -50,7 +50,7 @@