diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/ExamineController.java b/src/main/java/com/bonus/aqgqj/basis/controller/ExamineController.java new file mode 100644 index 0000000..8522062 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/controller/ExamineController.java @@ -0,0 +1,45 @@ +package com.bonus.aqgqj.basis.controller; + +import com.bonus.aqgqj.annotation.DecryptAndVerify; +import com.bonus.aqgqj.annotation.LogAnnotation; +import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; +import com.bonus.aqgqj.basis.service.ExamineService; +import com.bonus.aqgqj.system.vo.EncryptedReq; +import com.bonus.aqgqj.utils.ServerResponse; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @className:ExamineController + * @author:cwchen + * @date:2024-07-23-9:47 + * @version:1.0 + * @description:审查-controller + */ +@RestController +@RequestMapping("/examine/") +@Slf4j +public class ExamineController { + + @Resource(name = "ExamineService") + private ExamineService service; + + @PostMapping(value = "getList") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + @LogAnnotation(operModul = "审查管理", operation = "查询列表", operDesc = "系统级事件", operType = "查询") +// @PreAuthorize("@pms.hasPermission('sys:examine:query')" ) + public ServerResponse getList(EncryptedReq data) { + PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); + List list = service.getList(data.getData()); + PageInfo pageInfo = new PageInfo<>(list); + return ServerResponse.createSuccessPage(pageInfo, data.getData().getPage(), data.getData().getLimit()); + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/dao/ExamineMapper.java b/src/main/java/com/bonus/aqgqj/basis/dao/ExamineMapper.java new file mode 100644 index 0000000..514a837 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/dao/ExamineMapper.java @@ -0,0 +1,26 @@ +package com.bonus.aqgqj.basis.dao; + +import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @className:ExamineMapper + * @author:cwchen + * @date:2024-07-23-9:48 + * @version:1.0 + * @description:审查-mapper + */ +@Repository(value = "ExamineMapper") +public interface ExamineMapper { + /** + * 试验审查列表 + * @param dto + * @return List + * @author cwchen + * @date 2024/7/23 10:15 + */ + List getList(ParamsDto dto); +} 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..42da916 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,28 @@ public class ParamsDto extends PageEntity { */ private Long[] ids; + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; + + /** + * 角色编码 + */ + 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/ExamineService.java b/src/main/java/com/bonus/aqgqj/basis/service/ExamineService.java new file mode 100644 index 0000000..5f5beef --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/service/ExamineService.java @@ -0,0 +1,24 @@ +package com.bonus.aqgqj.basis.service; + +import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; + +import java.util.List; + +/** + * @className:ExamineService + * @author:cwchen + * @date:2024-07-23-9:47 + * @version:1.0 + * @description:审查-service + */ +public interface ExamineService { + /** + * 试验审查列表 + * @param data + * @return List + * @author cwchen + * @date 2024/7/23 10:14 + */ + List getList(ParamsDto data); +} diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExamineServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExamineServiceImpl.java new file mode 100644 index 0000000..4e43dc9 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExamineServiceImpl.java @@ -0,0 +1,38 @@ +package com.bonus.aqgqj.basis.service.impl; + +import com.bonus.aqgqj.basis.dao.ExamineMapper; +import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; +import com.bonus.aqgqj.basis.service.ExamineService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @className:ExamineServiceImpl + * @author:cwchen + * @date:2024-07-23-9:47 + * @version:1.0 + * @description:审查-impl + */ +@Service(value = "ExamineService") +@Slf4j +public class ExamineServiceImpl implements ExamineService { + + @Resource(name = "ExamineMapper") + private ExamineMapper mapper; + + @Override + public List getList(ParamsDto dto) { + List list = new ArrayList<>(); + try { + list = mapper.getList(dto); + } catch (Exception e) { + log.error(e.toString(), e); + } + return list; + } +} 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/ExamineMapper.xml b/src/main/resources/mappers/basis/ExamineMapper.xml new file mode 100644 index 0000000..6350e57 --- /dev/null +++ b/src/main/resources/mappers/basis/ExamineMapper.xml @@ -0,0 +1,95 @@ + + + + + + + diff --git a/src/main/resources/mappers/basis/ExperimentalMapper.xml b/src/main/resources/mappers/basis/ExperimentalMapper.xml index 3529be4..9ef0d0c 100644 --- a/src/main/resources/mappers/basis/ExperimentalMapper.xml +++ b/src/main/resources/mappers/basis/ExperimentalMapper.xml @@ -262,7 +262,7 @@ WHEN process_status = 2 AND audti_status = 2 THEN '审核不通过' WHEN process_status = 3 AND audti_status = 0 THEN '待审批' WHEN process_status = 3 AND audti_status = 2 THEN '审批不通过' - WHEN process_status = 4 AND audti_status = 1 THEN '试验结束' + WHEN process_status = 4 AND audti_status = 1 THEN '试验完成' ELSE '待试验' END AS audtiStatus, ts.remarks @@ -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 @@ + + + +
+
+
+ +
+
-
+
+ +
+
+
+
+
+ +
+
+
+ +
+ + + +
+
+
+
+ + + + + + \ No newline at end of file