framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java
@@ -1,5 +1,8 @@ package com.yuanchu.limslaboratory.annotation; import com.yuanchu.limslaboratory.enums.InterfaceType; import com.yuanchu.limslaboratory.enums.MenuEnums; import java.lang.annotation.*; /** @@ -14,19 +17,13 @@ * æ¥å£ç±»å * @return */ int type() default 0; /** * æ¥å£å * @return */ String name() default ""; InterfaceType type() default InterfaceType.NUll; /** * èåid * @return */ String menuId() default ""; MenuEnums menuId() default MenuEnums.NUll; /** * æ¯å¦éè¦æ·»å æ°æ®åº framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ package com.yuanchu.limslaboratory.enums; /** * @Author å¼ å®¾ * @Date 2023/8/30 */ public enum InterfaceType { /** * æ¥å£ç±»å */ SELECT("select",0), ADD("add",1), UPDATE("update",2), DELETE("delete",3), NUll(); private String type; private Integer num; public String getType() { return type; } InterfaceType() { } public void setType(String type) { this.type = type; } public Integer getNum() { return this.num; } public void setNum(Integer num) { this.num = num; } InterfaceType(String type, Integer num) { this.type = type; this.num = num; } } framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,91 @@ package com.yuanchu.limslaboratory.enums; /** * @Author å¼ å®¾ * @Date 2023/8/29 */ public enum MenuEnums { /** * ç©ºæ ¼åºååè½æ¨¡å */ standardLibrary("æ ååº",1), index("æ ååº",38), inspectionManagement("æ¥æ£ç®¡ç",2), commissionInspection("å§ææ£éª",3), reportForInspection("åæææ¥æ£",4), experiment("è¯éªç®¡ç",5), inspectionApplication("æ°å¢æ£éª",6), planAssignments("æ£éªè®¡å",7), checkTheReport("æ£éªæ¥å",8), reportAuditing("æ¥åå®¡æ ¸",9), nonConformanceReview("ä¸åæ ¼ååé¦",10), nonConformingFeedback("ä¸åæ ¼åè¯å®¡",11), passRateStatistics("åæ ¼çç»è®¡",12), laboratory("å®éªå®¤ç®¡ç",13), ledger("设å¤å°è´¦",14), measure("计é管ç",15), gather("设å¤éé",16), personnel("人å管ç",17), org("ç»ç»æ¶æ",36), role("è§è²ç®¡ç",37), laboratoryManage("å®éªå®¤ç®¡ç",18), CNAS("CNS管ç",19), reviewAnnualPlan("å®¡æ ¸å¹´åº¦è®¡å",20), nonConformanceManage("ä¸ç¬¦å项管ç",21), nonConformanceStatistics("ä¸ç¬¦å项ç»è®¡",22), satisfactionSurveys("满æåº¦è°æ¥",23), chart("æºè½å¾è¡¨",24), center("å®éªä¸å¿",25), spc("SPCæ§å¶å¾",26), shota("æ£å¤ªåå¸å¾",27), work("å·¥ä½ç»è®¡",28), message("æ¶æ¯ä»£å",29), mymessage("æçæ¶æ¯",30), toDo("æç代å",31), personal("个人管ç",32), myInformation("æçä¿¡æ¯",33), baseData("åºç¡æ°æ®",34), basicDataMessage("åºç¡æ°æ®",35), home("主页",39), /** * 空 */ NUll(); MenuEnums() { } private String name; private Integer id; MenuEnums(String name, Integer id) { this.name = name; this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } } inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java
@@ -49,6 +49,8 @@ @Resource ProductService productService; @ApiOperation("龿¥-->è·åæ ·ååç§°") @GetMapping("/material") public Result<?> getMaterialIdAndName(@RequestHeader("link") String link) { inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java
@@ -14,4 +14,5 @@ */ public interface LinkDetectionMapper extends MyBaseMapper<LinkDetection> { int deleteByLinkbasic(Integer id); } inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java
@@ -1,7 +1,9 @@ package com.yuanchu.limslaboratory.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.mapper.LinkDetectionMapper; import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; import com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper; import com.yuanchu.limslaboratory.pojo.LinkDetection; @@ -12,6 +14,7 @@ import com.yuanchu.limslaboratory.utils.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -30,11 +33,23 @@ @Resource private LinkBasicInformationMapper linkBasicInformationMapper; @Resource private LinkDetectionMapper linkDetectionMapper; @Autowired private LinkDetectionService linkDetectionService; @Override @Transactional(rollbackFor = Exception.class) public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) { QueryWrapper<LinkBasicInformation> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().select(LinkBasicInformation::getId).eq(LinkBasicInformation::getUid, linkBasicInformation.getUid()); LinkBasicInformation linkBasicInformation1 = linkBasicInformationMapper.selectOne(queryWrapper); Optional.ofNullable(linkBasicInformation.getId()).ifPresent(l->{ //æ§è¡å é¤ linkDetectionMapper.deleteByLinkbasic(linkBasicInformation1.getId()); linkBasicInformationMapper.deleteById(linkBasicInformation1.getId()); }); //å§æç¼å· String code = MyUtil.getTimeSixNumberCode("SL", "SL"); linkBasicInformation.setEntrustCoding(code); inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml
@@ -2,4 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yuanchu.limslaboratory.mapper.LinkDetectionMapper"> <delete id="deleteByLinkbasic"> delete from link_detection where link_basic_id=#{id} </delete> </mapper> sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java
@@ -1,6 +1,7 @@ package com.yuanchu.limslaboratory.commandLineRunner; import com.yuanchu.limslaboratory.annotation.AuthHandler; import com.yuanchu.limslaboratory.mapper.MenuMapper; import com.yuanchu.limslaboratory.mapper.RoleManageMapper; import com.yuanchu.limslaboratory.utils.ArrayListUtil; import com.yuanchu.limslaboratory.utils.MyClassUtil; @@ -38,69 +39,77 @@ @Autowired private RoleManageMapper roleManageMapper; @Autowired private MenuMapper menuMapper; @SneakyThrows @Override public void run(String... args) throws Exception { //log.info("容å¨çæä¹åæ§è¡"); //List<Class<?>> classList = MyClassUtil.getClassList("com.yuanchu.limslaboratory.controller"); //List<Map<String, Object>> requestListInfo = new ArrayList<Map<String, Object>>(); //List<Map<String, Object>> urlList = new ArrayList<Map<String, Object>>(); //classList.stream().forEach(c -> { // Method[] methods = c.getMethods(); // //å»æå¯¹è±¡æ¹æ³ // List<Method> methodList = Arrays.stream(methods) // .filter(m -> !"notify".equals(m.getName()) && !"getClass".equals(m.getName()) // && !"hashCode".equals(m.getName()) && !"toString".equals(m.getName()) // && !"equals".equals(m.getName()) && !"wait".equals(m.getName()) && !"notifyAll".equals(m.getName())) // .collect(Collectors.toList()); // // for (int i = 0; i < methodList.size(); i++) { // Method method = methodList.get(i); // if (method.isAnnotationPresent(AuthHandler.class)) { // //è·åç±»ä¸è¯·æ±å°å // RequestMapping annotation = c.getAnnotation(RequestMapping.class); // StringBuilder builder = new StringBuilder(); // String apiInfo = null; // builder.append(annotation.value()[0]); // //è·åæ¹æ³ä¸æ³¨è§£ // if (method.isAnnotationPresent(PostMapping.class)) { // PostMapping post = method.getAnnotation(PostMapping.class); // builder.append(post.value()[0]); // } // if (method.isAnnotationPresent(GetMapping.class)) { // GetMapping get = method.getAnnotation(GetMapping.class); // builder.append(get.value()[0]); // } // if (method.isAnnotationPresent(DeleteMapping.class)) { // DeleteMapping delete = method.getAnnotation(DeleteMapping.class); // builder.append(delete.value()[0]); // } // if (method.isAnnotationPresent(PutMapping.class)) { // PutMapping put = method.getAnnotation(PutMapping.class); // builder.append(put.value()[0]); // } // if (method.isAnnotationPresent(ApiOperation.class)) { // ApiOperation api = method.getAnnotation(ApiOperation.class); // apiInfo = api.value(); // } // Map<String, Object> map = new HashMap<String, Object>(); // map.put("url", builder); // map.put("name", apiInfo); // urlList.add(map); // requestListInfo.add(map); // } // } //}); //requestListInfo.forEach(System.out::println); //List<Map<String, Object>> allInterfaces = roleManageMapper.getAllInterfaces(); //System.out.println(requestListInfo.size()); //List<Map<String, Object>> mapList = urlList.stream().filter(item -> !allInterfaces.stream() // .map(e -> e).distinct().collect(Collectors.toList()) // .contains(item)) // .collect(Collectors.toList()); //System.out.println("======================="); //mapList.forEach(System.out::println); log.info("容å¨çæä¹åæ§è¡"); List<Class<?>> classList = MyClassUtil.getClassList("com.yuanchu.limslaboratory.controller"); List<Map<String, String>> requestListInfo = new ArrayList<Map<String, String>>(); classList.stream().forEach(c -> { Method[] methods = c.getMethods(); //å»æå¯¹è±¡æ¹æ³ List<Method> methodList = Arrays.stream(methods) .filter(m -> !"notify".equals(m.getName()) && !"getClass".equals(m.getName()) && !"hashCode".equals(m.getName()) && !"toString".equals(m.getName()) && !"equals".equals(m.getName()) && !"wait".equals(m.getName()) && !"notifyAll".equals(m.getName())) .collect(Collectors.toList()); for (int i = 0; i < methodList.size(); i++) { Method method = methodList.get(i); boolean annotationPresent = method.isAnnotationPresent(AuthHandler.class); if (annotationPresent&&method.getAnnotation(AuthHandler.class).isAdd()) { //è·åç±»ä¸è¯·æ±å°å RequestMapping annotation = c.getAnnotation(RequestMapping.class); StringBuilder builder = new StringBuilder(); String apiInfo = null; builder.append(annotation.value()[0]); //è·åæ¹æ³ä¸æ³¨è§£ if (method.isAnnotationPresent(PostMapping.class)) { PostMapping post = method.getAnnotation(PostMapping.class); builder.append(post.value()[0]); } if (method.isAnnotationPresent(GetMapping.class)) { GetMapping get = method.getAnnotation(GetMapping.class); builder.append(get.value()[0]); } if (method.isAnnotationPresent(DeleteMapping.class)) { DeleteMapping delete = method.getAnnotation(DeleteMapping.class); builder.append(delete.value()[0]); } if (method.isAnnotationPresent(PutMapping.class)) { PutMapping put = method.getAnnotation(PutMapping.class); builder.append(put.value()[0]); } if (method.isAnnotationPresent(ApiOperation.class)) { ApiOperation api = method.getAnnotation(ApiOperation.class); apiInfo = api.value(); } Map<String, String> map = new HashMap<String, String>(); AuthHandler auth = method.getAnnotation(AuthHandler.class); map.put("menuId", String.valueOf(auth.menuId().getId())); map.put("type",String.valueOf(auth.type().getNum())); map.put("url", builder.toString()); map.put("name", apiInfo); requestListInfo.add(map); } } }); List<Map<String, String>> allInterfaces = roleManageMapper.getAllInterfaces(); List<Map<String, String>> differentMaps = requestListInfo.stream() .filter(map1 -> allInterfaces.stream() .map(map2 -> map2.get("url")) // è·åæå®é®çå¼ .noneMatch(value2 -> value2.equals(map1.get("url"))) // æ¥æ¾ä¸åçå¼ ).collect(Collectors.toList()); if(differentMaps.size()>0){ int insertInterfaceList = roleManageMapper.insertInterfaceList(differentMaps); if (insertInterfaceList>0) log.info("æ°å¢æ¥å£æåï¼"); }else { log.info("æ éå¢å æ°çæ¥å£ï¼"); } } user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
@@ -1,6 +1,8 @@ package com.yuanchu.limslaboratory.controller; import com.yuanchu.limslaboratory.annotation.AuthHandler; import com.yuanchu.limslaboratory.enums.InterfaceType; import com.yuanchu.limslaboratory.enums.MenuEnums; import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto; @@ -73,7 +75,7 @@ return Result.success(roleManagerService.getRoleAndMenuByRole(roleId)); } @AuthHandler(type = 1) @AuthHandler(type = InterfaceType.SELECT,menuId = MenuEnums.role,isAdd = true) @ApiOperation("æµè¯çæ") @GetMapping("/test") public Result<?> test(Long roleId){ user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java
@@ -5,6 +5,7 @@ import org.springframework.stereotype.Repository; import java.util.List; import java.util.Map; /** * @Author å¼ å®¾ @@ -15,5 +16,6 @@ List<Menu> getMenuList(); List<Map<String, Object>> getMenuNameAndId(); } user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java
@@ -40,5 +40,7 @@ Map<String, Long> hasUrl(String type, String menuId, String roleId); List<Map<String, Object>>getAllInterfaces(); List<Map<String, String>>getAllInterfaces(); int insertInterfaceList(@Param("interfaceList") List<Map<String, String>>interfaceList); } user-server/src/main/resources/mapper/MenuMapper.xml
@@ -7,4 +7,7 @@ from menu where state =1 </select> <select id="getMenuNameAndId" resultType="map"> select url,id,name from menu where state=1 </select> </mapper> user-server/src/main/resources/mapper/RoleManangeMapper.xml
@@ -17,6 +17,14 @@ #{createTime} ) </insert> <insert id="insertInterfaceList"> insert interface_info (id,name,url,menu_id,type,state) values <foreach collection="interfaceList" item="m" separator=","> (#{m.id},#{m.name},#{m.url},#{m.menuId},#{m.type},1) </foreach> </insert> <update id="updateRoleState"> UPDATE role SET state = 0 @@ -109,7 +117,7 @@ and ${type} = 1 </select> <select id="getAllInterfaces" resultType="java.util.Map"> select name,url select name, url from interface_info </select> <resultMap id="roleAndMenuById" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto">