XiaoRuby
2023-08-30 730443b70de88d328ffa275f51f69280fda979e4
Merge remote-tracking branch 'origin/master'

# Conflicts:
# sys/src/main/resources/application-dev.yml
已修改31个文件
已添加6个文件
674 ■■■■■ 文件已修改
framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/enums/InterfaceType.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/enums/MenuEnums.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/utils/MyClassUtil.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkDetectionMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LinkBasicInformationVo.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/LinkDetectionMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/RawMaterialMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/ClassifyMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/InstrumentMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sys/src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/MapHandlerRoleDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/resources/mapper/MenuMapper.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/resources/mapper/RoleManangeMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/resources/mapper/UserMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/limslaboratory/annotation/AuthHandler.java
@@ -1,28 +1,35 @@
package com.yuanchu.limslaboratory.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.yuanchu.limslaboratory.enums.InterfaceType;
import com.yuanchu.limslaboratory.enums.MenuEnums;
import java.lang.annotation.*;
/**
 * @author å¼ å®¾
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AuthHandler {
    /**
     * æŽ¥å£ç±»åž‹
     * @return
     */
    int type() default 0;
    InterfaceType type() default InterfaceType.NUll;
    /**
     * æŽ¥å£å
     * èœå•id
     * @return
     */
    String name() default "";
    MenuEnums menuId() default MenuEnums.NUll;
    /**
     * æ˜¯å¦éœ€è¦æ·»åŠ æ•°æ®åº“
     * @return
     */
    boolean isAdd() default false;
}
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;
    }
}
framework/src/main/java/com/yuanchu/limslaboratory/utils/MyClassUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.yuanchu.limslaboratory.utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
import org.springframework.core.type.classreading.MetadataReader;
import org.springframework.core.type.classreading.MetadataReaderFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.ClassUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.io.File;
import java.net.JarURLConnection;
import java.net.URL;
/**
 * @author å¼ å®¾
 */
@Component
@Slf4j
public class MyClassUtil {
    private final static String RESOURCE_PATTERN = "/**/*.class";
    /**
     * é€šè¿‡åŒ…名获取项目包下所有类
     *
     * @param BASE_PACKAGE åŒ…名
     * @return
     */
    public static List<Class<?>> getClassList(String BASE_PACKAGE) {
        List<Class<?>> classes = new ArrayList<>();
        //spring工具类,可以获取指定路径下的全部类
        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        try {
            String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX +
                    ClassUtils.convertClassNameToResourcePath(BASE_PACKAGE) + RESOURCE_PATTERN;
            Resource[] resources = resourcePatternResolver.getResources(pattern);
            //MetadataReader çš„工厂类
            MetadataReaderFactory readerfactory = new CachingMetadataReaderFactory(resourcePatternResolver);
            for (Resource resource : resources) {
                //用于读取类信息
                MetadataReader reader = readerfactory.getMetadataReader(resource);
                //扫描到的class
                String classname = reader.getClassMetadata().getClassName();
                log.info("classname={}", classname);
                Class<?> clazz = Class.forName(classname);
                classes.add(clazz);
            }
        } catch (Exception e) {
            log.error("获取class异常:", e);
        }
        return classes;
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.yuanchu.limslaboratory.annotation.AuthHandler;
import com.yuanchu.limslaboratory.mapper.InstrumentMapper;
import com.yuanchu.limslaboratory.mapper.UserMapper;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.yuanchu.limslaboratory.pojo.Report;
@@ -50,6 +51,9 @@
    @Resource
    UserMapper userMapper;
    @Resource
    private  InstrumentMapper instrumentMapper;
    @ApiOperation(value = "查询检验申请单列表")
    @ApiImplicitParams(value = {
@@ -117,7 +121,8 @@
    @ApiOperation(value = "新增检验单")
    @PostMapping("/addInspect")
    public Result addInspect(@RequestHeader("token") String token, @Validated @RequestBody InspectionVo inspectionVo) throws Exception {
    @AuthHandler
    public Result addInspect(@RequestHeader("X-Token") String token, @Validated @RequestBody InspectionVo inspectionVo) throws Exception {
        Object object = RedisUtil.get(token);
        Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
        return Result.success(inspectionService.addInspect((Integer) unmarshal.get("id"), inspectionVo));
@@ -128,15 +133,22 @@
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/selectInspectsListById")
    @AuthHandler
    public Result selectInspectsListById(Integer id) {
        return Result.success(inspectionService.selectInspectsListById(id));
    }
    @ApiOperation(value = "选择检验项目的责任人")
    @GetMapping("/selectUser")
    @AuthHandler
    public Result selectUser() {
        return Result.success(userMapper.selectUser());
    }
    @ApiOperation(value = "选择检验设备")
    @GetMapping("/selectEquipment")
    @AuthHandler
    public Result selectEquipment(){return Result.success(instrumentMapper.getInstrument());}
    @ApiOperation(value = "保存检验项目责任人")
    @ApiImplicitParams(value = {
@@ -144,8 +156,16 @@
            @ApiImplicitParam(name = "userProId", value = "责任人id", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/chooseUseProId")
    @AuthHandler
    public Result chooseUseProId(Integer id, Integer userProId) {
        return Result.success(inspectionService.chooseUseProId(id, userProId));
    }
    @ApiOperation("保存设备id")
    @GetMapping("/chooseEquipment")
    @AuthHandler
    public Result chooseEquipment(Integer id,Integer equipmentId){
        return Result.success(inspectionService.chooseEquipment(id, equipmentId));
    }
    @ApiOperation(value = "作废检验单")
@@ -153,10 +173,13 @@
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/delInspect")
    @AuthHandler
    public Result delInspect(Integer id) {
        return Result.success(inspectionService.delInspect(id));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java
@@ -2,8 +2,12 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.annotation.AuthHandler;
import com.yuanchu.limslaboratory.enums.InterfaceType;
import com.yuanchu.limslaboratory.enums.MenuEnums;
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
import com.yuanchu.limslaboratory.utils.MyUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
@@ -69,4 +73,21 @@
        return Result.success(map);
    }
    @ApiOperation("根据id查询Specifications表的Name")
    @GetMapping("/getSpecificationsName")
    public Result<?> getSpecificationsName(String id){
        return Result.success(linkBasicInformationService.getSpecificationsName(id));
    }
    @ApiOperation("删除")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "委托样品id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/delLink")
    @AuthHandler(type = InterfaceType.DELETE,menuId = MenuEnums.commissionInspection,isAdd = true)
    public Result<?> delLink(Integer id){
        linkBasicInformationService.delLink(id);
        return Result.success("删除成功!");
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java
@@ -49,9 +49,10 @@
    @Resource
    ProductService productService;
    @ApiOperation("链接-->获取样品名称")
    @GetMapping("/material")
    @AuthHandler
    public Result<?> getMaterialIdAndName(@RequestHeader("link") String link) {
        String redisLink = RedisUtil.get("viewId").toString();
        if (linkBasicInformationService.isIfViewUUID(redisLink)){
@@ -65,7 +66,6 @@
    @ApiOperation("链接-->获取规格型号")
    @GetMapping("/specification")
    @AuthHandler
    public Result<?> getSpecificationIdAndName(@RequestHeader("link") String link, String materialId) {
        String redisLink = RedisUtil.get("viewId").toString();
        if (linkBasicInformationService.isIfViewUUID(redisLink)){
@@ -80,7 +80,6 @@
            @ApiImplicitParam(name = "modelId", value = "型号id", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/chooseProject")
    @AuthHandler
    public Result<?> chooseProject(@RequestHeader("link") String link,  Integer modelId) {
        String redisLink = RedisUtil.get("viewId").toString();
        if (linkBasicInformationService.isIfViewUUID(redisLink)){
@@ -93,7 +92,6 @@
    @ApiOperation("链接-->添加委托报检申请单")
    @PostMapping("/addInspection")
    @AuthHandler
    public Result<?> addLinkBasicInformation(@RequestHeader("link") String link, @RequestBody LinkBasicInformation linkBasicInformation) {
        String redisLink = RedisUtil.get("viewId").toString();
        if (linkBasicInformationService.isIfViewUUID(redisLink)){
@@ -111,22 +109,27 @@
    @ApiOperation(value = "生成二维码所需的唯一码")
    @GetMapping("/getViewUUID")
    @AuthHandler
    public Result<?> getViewUUID(int day){
        return Result.success("生成成功",linkBasicInformationService.getViewUUID(day));
    }
    @ApiOperation(value = "查询二维码所需的唯一码")
    @GetMapping("/selectViewUUID")
    @AuthHandler
    public Result<?> selectViewUUID(){
        return Result.success("查询成功",linkBasicInformationService.selectViewUUID());
    }
    @ApiOperation(value = "检验唯一码是否有效")
    @GetMapping("/isIfViewUUID")
    @AuthHandler
    public Result<?> isIfViewUUID(String viewId){
        return Result.success("查询成功",linkBasicInformationService.isIfViewUUID(viewId));
    }
    @ApiOperation("获取样品信息以及委托信息")
    @GetMapping("/getContractsSampleInfo")
    public Result<?> getContractsSampleInfo(String viewId){
        return Result.success(linkBasicInformationService.getContractsSampleInfo(viewId));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java
@@ -5,6 +5,8 @@
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import com.yuanchu.limslaboratory.pojo.vo.LinkBasicInformationVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -28,4 +30,7 @@
    List<Map<String, Object>> selectLinkAll();
    LinkBasicInformation getLinkBasicInformation(@Param("uid")String uid);
    int deleteByID(Integer id);
}
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/pojo/LinkBasicInformation.java
@@ -65,6 +65,10 @@
    @ApiModelProperty(value = "委托备注", example = "委托备注YPBH123456789YPBH123456789YPBH123456789")
    private String entrustRemarks;
    @ApiModelProperty(value = "检验时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insTime;
    @TableLogic(value = "1", delval = "0")
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    private Integer state;
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java
@@ -60,7 +60,7 @@
    @ApiModelProperty(value = "LinkBasicInformation对象Id", hidden = true)
    private Integer linkBasicId;
    @TableLogic(value = "1", delval = "0")
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    private Integer state;
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LinkBasicInformationVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yuanchu.limslaboratory.pojo.vo;
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.yuanchu.limslaboratory.pojo.LinkDetection;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/29
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class LinkBasicInformationVo extends LinkBasicInformation implements Serializable{
    /**
     *样品信息
     */
    private List<LinkDetection> detectionList;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
@@ -78,6 +78,12 @@
     */
    String chooseUseProId(Integer id, Integer userProId);
    /**
     * ä¿å­˜è®¾å¤‡
     * @param id
     * @param equipmentId
     * @return
     */
    boolean chooseEquipment(Integer id, Integer equipmentId);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.Specifications;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import org.springframework.transaction.annotation.Transactional;
@@ -36,4 +37,11 @@
    Map<String, String> selectViewUUID();
    boolean isIfViewUUID(String uuid);
    LinkBasicInformation getContractsSampleInfo(String viewId);
    //根据委托样品id删除
    void delLink(Integer id);
    Specifications getSpecificationsName(String id);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -1,7 +1,9 @@
package com.yuanchu.limslaboratory.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Snowflake;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -132,6 +134,7 @@
            RawMaterial rawMaterial = new RawMaterial();
            rawMaterial.setId(inspectionVo.getId());
            rawMaterial.setType(1);
            rawMaterial.setInspectionDate(DateUtil.date());
            rawMaterial.setSurveyor(userMapper.selectById(id).getName());
            rawMaterialMapper.updateById(rawMaterial);
        }
@@ -286,12 +289,23 @@
        return "保存成功!";
    }
    @Override
    public boolean chooseEquipment(Integer id, Integer equipmentId) {
        UpdateWrapper<InspectionProduct>inspectionProductUpdateWrapper=new UpdateWrapper<>();
        inspectionProductUpdateWrapper.lambda().set(InspectionProduct::getInstrumentId,equipmentId)
                .eq(InspectionProduct::getId,id);
        return inspectionProductMapper.update(null,inspectionProductUpdateWrapper)>0;
    }
    /*根据样品名称,样品编号,型号规格获取型号id*/
    private Integer getSpecificationId(String name, String mcode, String specification) {
        //获取物料id
        Material material = materialMapper.selectOne(Wrappers.<Material>query()
                .eq("name", name)
                .eq("code", mcode));
        if (Objects.isNull(material)){
            return null;
        }
        //获取规格名称和型号名称
        String[] split = specification.split("-");
        String stName = split[0];
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java
@@ -1,9 +1,14 @@
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.mapper.SpecificationsMapper;
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper;
import com.yuanchu.limslaboratory.pojo.LinkDetection;
import com.yuanchu.limslaboratory.pojo.Specifications;
import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.service.LinkDetectionService;
@@ -11,6 +16,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.*;
@@ -29,11 +35,27 @@
    @Resource
    private LinkBasicInformationMapper linkBasicInformationMapper;
    @Resource
    private LinkDetectionMapper linkDetectionMapper;
    @Autowired
    private LinkDetectionService linkDetectionService;
    @Autowired
    private SpecificationsMapper specificationsMapperOn;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) {
        System.out.println(linkBasicInformation.getLinkDetectionList());
        QueryWrapper<LinkBasicInformation> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().select(LinkBasicInformation::getId).eq(LinkBasicInformation::getUid, linkBasicInformation.getUid());
        LinkBasicInformation linkBasicInformation1 = linkBasicInformationMapper.selectOne(queryWrapper);
        Optional.ofNullable(linkBasicInformation1.getId()).ifPresent(l->{
            //执行删除
            linkDetectionMapper.deleteByLinkbasic(linkBasicInformation1.getId());
            linkBasicInformationMapper.deleteByID(linkBasicInformation1.getId());
        });
        //委托编号
        String code = MyUtil.getTimeSixNumberCode("SL", "SL");
        linkBasicInformation.setEntrustCoding(code);
@@ -83,5 +105,28 @@
        return uuid.equals(RedisUtil.get("viewId"));
    }
    @Override
    public LinkBasicInformation getContractsSampleInfo(String viewId) {
        return linkBasicInformationMapper.getLinkBasicInformation(viewId);
    }
    //根据委托样品删除
    @Override
    public void delLink(Integer id) {
        LinkDetection linkDetection = new LinkDetection();
        linkDetection.setId(id);
        linkDetection.setState(0);
        linkDetectionService.updateById(linkDetection);
    }
    @Override
    public Specifications getSpecificationsName(String id) {
        QueryWrapper<Specifications>queryWrapper=new QueryWrapper<>();
        queryWrapper.lambda().select(Specifications::getName)
                .eq(Specifications::getId,id)
                .eq(Specifications::getState,1);
        return specificationsMapperOn.selectOne(queryWrapper);
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java
@@ -29,6 +29,7 @@
        for (LinkDetection linkDetection:linkDetectionList){
            linkDetection.setInspectionStatus(1);
            linkDetection.setLinkBasicId(id);
            linkDetection.setState(1);
        }
        linkDetectionMapper.insertBatchSomeColumn(linkDetectionList);
    }
inspection-server/src/main/resources/mapper/InspectionMapper.xml
@@ -4,7 +4,7 @@
    <select id="selectInspectsList" resultType="map">
        select i.id,
        i.code icode,
        type,
        i.type type,
        DATE_FORMAT(`form_time`,'%Y-%m-%d'),
        supplier,
        im.code mcode,
inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
@@ -1,15 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper">
    <delete id="deleteByID">
        delete from link_basic_information where id=#{id}
    </delete>
    <select id="getLinkBasicPage" resultType="map">
        SELECT l.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`,
        d.`specifications_models`,
        SELECT d.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`,
        s.name   specifications_models,
        DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') inspectionTime, DATE_FORMAT(l.`completion_deadline`,'%Y-%m-%d')
        completionDeadline, l.`contacts`,
        DATE_FORMAT(d.`date_survey`,'%Y-%m-%d') dateSurvey, d.`inspection_status`
        FROM link_basic_information l, link_detection d
        DATE_FORMAT(d.`date_survey`,'%Y-%m-%d') dateSurvey, d.`inspection_status`,
        DATE_FORMAT(l.`ins_time`,'%Y-%m-%d') insTime
        FROM link_basic_information l, link_detection d,specifications s
        WHERE l.`id` = d.`link_basic_id`
        AND l.`state` = 1
        and s.id=d.`specifications_models`
        AND d.`state` = 1
        and l.`state` = 1
        <if test="entrustCoding != null and entrustCoding != null">
            AND l.`entrust_coding` like concat('%', #{entrustCoding}, '%')
        </if>
@@ -25,8 +31,8 @@
    </select>
    <select id="selectLinkAll" resultType="java.util.Map">
        SELECT d.id ,
            DATE_FORMAT(l.`inspection_time`, '%Y-%m-%d') formTime,
        SELECT d.id,
               DATE_FORMAT(l.`inspection_time`, '%Y-%m-%d') formTime,
               l.`entrusted`                                supplier,
               d.`sample_number`                            mcode,
               d.`sample_name`                              name,
@@ -42,4 +48,58 @@
          AND l.`state` = 1
          and inspection_status = 1
    </select>
    <select id="getLinkBasicInformation" resultMap="getLinkBasicInformationMap">
        SELECT lb.entrust_coding        entrustCoding,
               lb.contacts              contacts,
               lb.contact_number        contactNumber,
               lb.contact_address       contactAddress,
               lb.completion_deadline   completionDeadline,
               lb.inspection_time       inspectionTime,
               lb.sample_delivery_mode  sampleDeliveryMode,
               lb.sample_delivery_phone sampleDeliveryPhone,
               lb.report_number         reportNumber,
               lb.entrust_remarks       entrustRemarks,
               lb.sample_sender         sampleSender,
               lb.entrusted             entrusted,
               lb.uid                   uid,
               ld.id                    id,
               ld.sample_number         sampleNumber,
               ld.sample_name           sampleName,
               ld.specifications_models specificationsModels,
               ld.unit                  unit,
               ld.experiment            experiment,
               ld.samples_number        samplesNumber,
               ld.remarks               remarks
        FROM link_basic_information lb left join
             link_detection ld
             on lb.id = ld.link_basic_id
        where lb.uid = #{uid}
          and lb.state = 1
    </select>
    <resultMap id="getLinkBasicInformationMap" type="com.yuanchu.limslaboratory.pojo.LinkBasicInformation">
        <result property="entrustCoding" column="entrustCoding"/>
        <result property="contacts" column="contacts"/>
        <result property="contactNumber" column="contactNumber"/>
        <result property="contactAddress" column="contactAddress"/>
        <result property="uid" column="uid"/>
        <result property="completionDeadline" column="completionDeadline"/>
        <result property="inspectionTime" column="inspectionTime"/>
        <result property="sampleDeliveryMode" column="sampleDeliveryMode"/>
        <result property="sampleDeliveryPhone" column="sampleDeliveryPhone"/>
        <result property="sampleSender" column="sampleSender"/>
        <result property="entrustRemarks" column="entrustRemarks"/>
        <result property="reportNumber" column="reportNumber"/>
        <result property="entrusted" column="entrusted"/>
        <collection property="linkDetectionList" ofType="LinkDetection">
            <result property="id" column="id"/>
            <result property="sampleNumber" column="sampleNumber"/>
            <result property="sampleName" column="sampleName"/>
            <result property="specificationsModels" column="specificationsModels"/>
            <result property="unit" column="unit"/>
            <result property="samplesNumber" column="samplesNumber"/>
            <result property="remarks" column="remarks"/>
            <result property="experiment" column="experiment"/>
        </collection>
    </resultMap>
</mapper>
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>
inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
@@ -26,11 +26,12 @@
               specifications_models                    specifications,
               unit,
               quantity                                 num,
               surveyor,
               type,
               DATE_FORMAT(inspection_date, '%Y-%m-%d') startTime,
               DATE_FORMAT(date_survey, '%Y-%m-%d')     endTime,
               DATE_FORMAT(create_time, '%Y-%m-%d')     formTime
        from lims_laboratory.raw_material
        where state = 1
          and type = 0
    </select>
</mapper>
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java
@@ -25,4 +25,6 @@
    //分配-->选择设备
    List<Map<String, Object>> chooseinstum();
    List<Instrument> getInstrument();
}
laboratory-server/src/main/resources/mapper/ClassifyMapper.xml
@@ -9,5 +9,8 @@
          <if test="fatherName!=null and fatherName!=''">
              AND father_name = #{fatherName}
          </if>
        <if test="sonName!=null and sonName!=''">
            and son_name=#{sonName}
        </if>
    </select>
</mapper>
laboratory-server/src/main/resources/mapper/InstrumentMapper.xml
@@ -46,4 +46,7 @@
                 left join lims_laboratory.classify c on c.id = instrument.classify_id
        where conditions in(1,5)
    </select>
    <select id="getInstrument" resultType="com.yuanchu.limslaboratory.pojo.Instrument">
        select id,equipment_name name from instrument  where 1=1  and state=1 and conditions=5
    </select>
</mapper>
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/SpecificationsMapper.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.Specifications;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import java.util.Map;
import java.util.Objects;
@@ -16,6 +17,7 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-11
 */
@Repository
public interface SpecificationsMapper extends BaseMapper<Specifications> {
    Map<String, Object> selectSNameSNName(int materialId);
sys/src/main/java/com/yuanchu/limslaboratory/aop/AuthRequestAspect.java
@@ -100,7 +100,7 @@
                //throw new AuthException("400","无权限");
            }
        } else {
            throw new AuthException("401", "登陆过期");
            throw new AuthException("401", "登陆过期!");
        }
    }
sys/src/main/java/com/yuanchu/limslaboratory/commandLineRunner/ResolutionRequestsCommandLineRunner.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
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;
import com.yuanchu.limslaboratory.utils.SpringUtil;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.annotation.Order;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
import org.springframework.core.type.classreading.MetadataReader;
import org.springframework.core.type.classreading.MetadataReaderFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Method;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/28
 */
@Component
@Order(1)
@Slf4j
public class ResolutionRequestsCommandLineRunner implements CommandLineRunner {
    @Autowired
    private RoleManageMapper roleManageMapper;
    @SneakyThrows
    @Override
    public void run(String... args) throws Exception {
        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(String.valueOf(differentMaps));log.info("新增接口成功!");
        }else {
            log.info("无需增加新的接口!");
        }
    }
}
sys/src/main/resources/application-dev.yml
@@ -75,7 +75,7 @@
    # redis访问密码(默认为空)
    password: null
    # redis连接超时时间(单位毫秒)
    timeout: 500
    timeout: 1000
    # redis连接池配置
    pool:
      # æœ€å¤§å¯ç”¨è¿žæŽ¥æ•°ï¼ˆé»˜è®¤ä¸º8,负数表示无限)
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;
@@ -72,4 +74,11 @@
    public Result<?> getRoleAndMenuByRole(Long roleId){
        return Result.success(roleManagerService.getRoleAndMenuByRole(roleId));
    }
    @AuthHandler(type = InterfaceType.SELECT,menuId = MenuEnums.role,isAdd = true)
    @ApiOperation("测试生成")
    @GetMapping("/test")
    public Result<?> test(Long roleId){
        return Result.success(null);
    }
}
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
@@ -39,4 +39,8 @@
    Map<String, Object>selctInterFaceType(String url);
    Map<String, Long> hasUrl(String type, String menuId, String roleId);
    List<Map<String, String>>getAllInterfaces();
    int insertInterfaceList(@Param("interfaceList") List<Map<String, String>>interfaceList);
}
user-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/MapHandlerRoleDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.yuanchu.limslaboratory.pojo.dto;
import com.yuanchu.limslaboratory.utils.JsonUtil;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/28
 */
@Component
public class MapHandlerRoleDto {
    public static  String comparingBySupplier(Object o){
        Map map= JsonUtil.jsonToPojo(JsonUtil.jsonToString(o),Map.class);
        return String.valueOf(map.get("url"));
    }
}
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
@@ -19,6 +19,7 @@
import com.yuanchu.limslaboratory.service.RoleManagerService;
import com.yuanchu.limslaboratory.utils.JsonUtil;
import com.yuanchu.limslaboratory.utils.MyUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -32,6 +33,7 @@
 * @Date 2023/8/23
 */
@Service
@Slf4j
public class RoleManagerServiceImpl implements RoleManagerService {
    @Resource
@@ -74,6 +76,9 @@
                    ,createTime
            ));
        });
        if(roleMenuList.size()<1){
            roleMenuList.add(new RoleMenu(null,nextId,39L,false,false,false,false,createTime));
        }
        //roleMenuAddList.forEach(System.out::println);
        int i = roleManageMapper.insertBatchRoleMenu(roleMenuList);
        return insert>0&&i>0;
@@ -149,6 +154,7 @@
        String type=null;
        Map<String, Object> stringIntegerMap = roleManageMapper.selctInterFaceType(url);
        if(Objects.isNull(stringIntegerMap)){
            log.warn("没有====》"+url+"请求资源");
            throw new AuthException("403","没有该资源");
        }
        String of = String.valueOf(stringIntegerMap.get("type"));
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
@@ -94,7 +94,8 @@
    }
    @Override
    public List<Map<String, Object>> getUserNameAndId() {
    public List<Map<String, Object>>
    getUserNameAndId() {
        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
        wrapper.select(User::getId, User::getName).eq(User::getType,1);
        return userMapper.selectMaps(wrapper);
user-server/src/main/resources/mapper/MenuMapper.xml
@@ -3,8 +3,15 @@
<mapper namespace="com.yuanchu.limslaboratory.mapper.MenuMapper">
    <select id="getMenuList" resultType="com.yuanchu.limslaboratory.pojo.Menu">
        select id,name,parent_id parentId
        select id, name, parent_id parentId
        from menu
        where state =1
        where state = 1
          and id != 39
       and parent_id != 39
    </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
@@ -108,6 +116,10 @@
          and menu_id = #{menuId}
          and ${type} = 1
    </select>
    <select id="getAllInterfaces" resultType="java.util.Map">
        select name, url
        from interface_info
    </select>
    <resultMap id="roleAndMenuById" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto">
        <result property="roleName" column="roleName"/>
        <result property="createTime" column="createTime"/>
user-server/src/main/resources/mapper/UserMapper.xml
@@ -43,5 +43,6 @@
        select id, name
        from lims_laboratory.user
        where job_state!=0
        and type=1
    </select>
</mapper>