src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
@@ -35,4 +35,6 @@ List<LaboratoryVo.Laboratory> getLaboratoryByProject(@Param("project") String project); SysLaboratory getSysLaboratoryByName(String name); List<Map> getPersonInCharge(String project); } src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
@@ -13,6 +13,7 @@ <result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result> <result property="createTime" column="create_time"></result> <result property="updateTime" column="update_time"></result> <result property="project" column="project"></result> </resultMap> <sql id="queryWhereSql"> @@ -135,6 +136,15 @@ where name = #{0} and valid_flag = 1 </select> <select id="getPersonInCharge" resultType="java.util.Map"> select su.phone from sys_user as su left join base_role as br on br.role_id = br.id where su.project like concat("%",#{project},"%") and su.valid_flag = 1 and br.`name` = '实验负责人' </select> <update id="updateLabExport" parameterType="com.nanometer.smartlab.entity.SysLaboratory"> update sys_laboratory set type=#{type}, src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -82,6 +82,8 @@ @Resource SysLaboratoryContainerService sysLaboratoryContainer; @Resource SysLaboratoryService sysLaboratoryService; @Value("${message.url}") String url; @@ -1489,7 +1491,20 @@ } if(enable && "2".equals(warningId) ) { List<Map> personsInCharge = sysLaboratoryContainer.getContainerPersonInCharge(containerCode); //1.根据containerCode获取lab SysLaboratoryContainer container = sysLaboratoryContainer.getSysLaboratoryContainerByContainerCode(containerCode); SysLaboratory sysLaboratory = sysLaboratoryService.getSysLaboratory(container.getLaboratoryId()); String project = sysLaboratory.getProject(); //2.根据Lab的课题组判断人员 List<Map> personsInCharge = null; if (StringUtils.isBlank(project)) { //没有课题组就是实验室部门下的负责人 personsInCharge = sysLaboratoryContainer.getContainerPersonInCharge(containerCode); } else { //有课题组就是 所有课题组下的人员负责人 personsInCharge = sysLaboratoryService.getPersonInChargeByProjects(project); } Map param = new HashMap(); param.put("groupId", "securityManager"); List<BaseMeta> managers = baseMetaDao.getBaseMetaList(param); src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java
@@ -42,4 +42,5 @@ List<SysLaboratory> getSysLaboratoryListByUserId(String userId); List<Map> getPersonInChargeByProjects(String project); } src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
@@ -285,6 +285,20 @@ } @Override public List<Map> getPersonInChargeByProjects(String projectStr) { List<Map> result = new ArrayList<>(); String[] projectSplit = projectStr.split(","); for (int i = 0; i < projectSplit.length; i++) { String project = projectSplit[i]; if (StringUtils.isBlank(project)) continue; List<Map> tail = sysLaboratoryDao.getPersonInCharge(project); result.addAll(tail); } return result; } @Override @Transactional(propagation = Propagation.REQUIRED) public List<SysLaboratory> getSysLaboratoryListByDep(String depId) { try {