XiaoRuby
2023-08-24 e0ef38a77c4bbe67d8a9eab46134ed00fb1e8293
Merge remote-tracking branch 'origin/master'
已修改13个文件
已重命名5个文件
已删除1个文件
已添加13个文件
1234 ■■■■ 文件已修改
chart-server/pom.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/controller/WorkController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/mapper/WorkMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/pojo/LineChartVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/pojo/LineSeriesVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/service/WorkService.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/java/com/yuanchu/limslaboratory/service/impl/WorkServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/src/main/resources/mapper/WorkMapper.xml 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/ReportMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/MenuMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/lims.sql 590 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductModelController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductModelService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sys/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
chart-server/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>lims-laboratory</artifactId>
        <groupId>com.yuanchu</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>chart-server</artifactId>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.yunchu.limslaboratory</groupId>
            <artifactId>framework</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.yunchu.limslaboratory</groupId>
            <artifactId>inspection-server</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>
chart-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java
chart-server/src/main/java/com/yuanchu/limslaboratory/controller/WorkController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.yuanchu.limslaboratory.controller;
import com.yuanchu.limslaboratory.pojo.vo.ProjectNumVo;
import com.yuanchu.limslaboratory.service.WorkService;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Api(tags = "智能图表-->工作统计")
@RestController
@RequestMapping("/work")
public class WorkController {
    @Resource
    WorkService workService;
    @ApiOperation("责任人项目数统计")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "startTime", value = "检验开始日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "endTime", value = "检验结束日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "type", value = "检验类型(0:原材料;1:成品;2:委托品)", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/dutyMater")
    public Result dutyMater(String startTime,String endTime,Integer type) {
        return Result.success(workService.dutyMater(startTime,endTime,type));
    }
    @ApiOperation("执行人项目数统计")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "startTime", value = "检验开始日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "endTime", value = "检验结束日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "type", value = "检验类型(0:原材料;1:成品;2:委托品)", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/executeMater")
    public Result executeMater(String startTime,String endTime,Integer type) {
        return Result.success(workService.executeMater(startTime,endTime,type));
    }
    @ApiOperation("责任人及时率")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "startTime", value = "检验开始日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "endTime", value = "检验结束日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "type", value = "检验类型(0:原材料;1:成品;2:委托品)", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/dutytimely")
    public Result dutytimely(String startTime,String endTime,Integer type) {
        return Result.success(workService.dutytimely(startTime,endTime,type));
    }
    @ApiOperation("执行人及时率")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "startTime", value = "检验开始日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "endTime", value = "检验结束日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "type", value = "检验类型(0:原材料;1:成品;2:委托品)", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/executetimely")
    public Result executetimely(String startTime,String endTime,Integer type) {
        return Result.success(workService.executetimely(startTime,endTime,type));
    }
}
chart-server/src/main/java/com/yuanchu/limslaboratory/mapper/WorkMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.yuanchu.limslaboratory.mapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
@Mapper
public interface WorkMapper {
    //责任人项目数统计
    List<Map<String, Object>> dutyMater(String startTime, String endTime, Integer type);
    //执行人项目数统计
    List<Map<String, Object>> executeMater(String startTime, String endTime, Integer type);
    //责任人及时率
    List<Map<String, Object>> dutytimely(String startTime, String endTime, Integer type);
    //执行人及时率
    List<Map<String, Object>> executetimely(String startTime, String endTime, Integer type);
}
chart-server/src/main/java/com/yuanchu/limslaboratory/pojo/LineChartVO.java
ÎļþÃû´Ó inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineChartVO.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.yuanchu.limslaboratory.pojo.vo;
package com.yuanchu.limslaboratory.pojo;
import lombok.Data;
chart-server/src/main/java/com/yuanchu/limslaboratory/pojo/LineSeriesVO.java
ÎļþÃû´Ó inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineSeriesVO.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.yuanchu.limslaboratory.pojo.vo;
package com.yuanchu.limslaboratory.pojo;
import lombok.Data;
chart-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java
ÎļþÃû´Ó inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java ÐÞ¸Ä
@@ -1,6 +1,6 @@
package com.yuanchu.limslaboratory.service;
import com.yuanchu.limslaboratory.pojo.vo.LineChartVO;
import com.yuanchu.limslaboratory.pojo.LineChartVO;
import com.yuanchu.limslaboratory.pojo.vo.ProjectNumVo;
import com.yuanchu.limslaboratory.pojo.vo.StatisticsDataVo;
chart-server/src/main/java/com/yuanchu/limslaboratory/service/WorkService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.yuanchu.limslaboratory.service;
import com.yuanchu.limslaboratory.pojo.LineChartVO;
import java.util.List;
import java.util.Map;
public interface WorkService {
    /**
     * è´£ä»»äººé¡¹ç›®æ•°ç»Ÿè®¡
     * @param startTime
     * @param endTime
     * @param type
     * @return
     */
    List<Map<String,Object>> dutyMater(String startTime, String endTime, Integer type);
    /**
     * æ‰§è¡Œäººé¡¹ç›®æ•°ç»Ÿè®¡
     * @param startTime
     * @param endTime
     * @param type
     * @return
     */
    List<Map<String,Object>> executeMater(String startTime, String endTime, Integer type);
    /**
     * è´£ä»»äººåŠæ—¶çއ
     * @param startTime
     * @param endTime
     * @param type
     * @return
     */
    List<Map<String,Object>> dutytimely(String startTime, String endTime, Integer type);
    /**
     * æ‰§è¡ŒäººåŠæ—¶çއ
     * @param startTime
     * @param endTime
     * @param type
     * @return
     */
    List<Map<String,Object>> executetimely(String startTime, String endTime, Integer type);
}
chart-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
ÎļþÃû´Ó inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java ÐÞ¸Ä
@@ -2,8 +2,8 @@
import com.yuanchu.limslaboratory.mapper.InspectionMapper;
import com.yuanchu.limslaboratory.mapper.InspectionProductMapper;
import com.yuanchu.limslaboratory.pojo.vo.LineChartVO;
import com.yuanchu.limslaboratory.pojo.vo.LineSeriesVO;
import com.yuanchu.limslaboratory.pojo.LineChartVO;
import com.yuanchu.limslaboratory.pojo.LineSeriesVO;
import com.yuanchu.limslaboratory.pojo.vo.ProjectNumVo;
import com.yuanchu.limslaboratory.pojo.vo.StatisticsDataVo;
import com.yuanchu.limslaboratory.service.HomeService;
@@ -17,7 +17,6 @@
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
chart-server/src/main/java/com/yuanchu/limslaboratory/service/impl/WorkServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.yuanchu.limslaboratory.service.impl;
import com.yuanchu.limslaboratory.mapper.WorkMapper;
import com.yuanchu.limslaboratory.pojo.LineChartVO;
import com.yuanchu.limslaboratory.service.WorkService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Service
public class WorkServiceImpl implements WorkService {
    @Resource
    WorkMapper workMapper;
    //责任人项目数统计
    @Override
    public List<Map<String,Object>> dutyMater(String startTime, String endTime, Integer type) {
        return  workMapper.dutyMater(startTime,endTime,type);
    }
    //执行人项目数统计
    @Override
    public List<Map<String,Object>> executeMater(String startTime, String endTime, Integer type) {
        return workMapper.executeMater(startTime,endTime,type);
    }
    //责任人及时率
    @Override
    public List<Map<String, Object>> dutytimely(String startTime, String endTime, Integer type) {
        return workMapper.dutytimely(startTime,endTime,type);
    }
    //执行人及时率
    @Override
    public List<Map<String, Object>> executetimely(String startTime, String endTime, Integer type) {
        return workMapper.executetimely(startTime,endTime,type);
    }
}
chart-server/src/main/resources/mapper/WorkMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,165 @@
<?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.WorkMapper">
    <!--责任人项目数统计-->
    <select id="dutyMater" resultType="java.util.Map">
        select n.name, æœªå®Œæˆ, å·²å®Œæˆ
        from (select distinct user.name, count(inspection_product.id) '未完成'
              from lims_laboratory.inspection_product
                       left join lims_laboratory.user on inspection_product.user_pro_id = user.id
              where state = 1
                and test_state is null
                and inspection_product.inspection_material_id in
                    (select id
                     from lims_laboratory.inspection_material
                     where inspection_material.state = 1
                       and inspection_id in
                           (select id
                            from lims_laboratory.inspection
                            where inspection.state = 1
                              and type = #{type}
                              and start_time between #{startTime} and #{endTime}))
              group by user.name) n,
             (select distinct user.name, count(inspection_product.id) '已完成'
              from lims_laboratory.inspection_product
                       left join lims_laboratory.user on inspection_product.user_pro_id = user.id
              where state = 1
                and test_state is not null
                and inspection_product.inspection_material_id in
                    (select id
                     from lims_laboratory.inspection_material
                     where inspection_material.state = 1
                       and inspection_id in
                           (select id
                            from lims_laboratory.inspection
                            where inspection.state = 1
                              and type = #{type}
                              and start_time between #{startTime} and #{endTime}))
              group by user.name) y
        where n.name = y.name
    </select>
    <!--执行人项目数统计-->
    <select id="executeMater" resultType="java.util.Map">
        select n.name, æœªå®Œæˆ, å·²å®Œæˆ
        from (select distinct user.name, count(inspection_product.id) '未完成'
              from lims_laboratory.inspection_product
                       left join lims_laboratory.user on inspection_product.user_id = user.id
              where state = 1
                and test_state is null
                and inspection_product.inspection_material_id in
                    (select id
                     from lims_laboratory.inspection_material
                     where inspection_material.state = 1
                       and inspection_id in
                           (select id
                            from lims_laboratory.inspection
                            where inspection.state = 1
                              and type = #{type}
                              and start_time between #{startTime} and #{endTime}))
              group by user.name) n,
             (select distinct user.name, count(inspection_product.id) '已完成'
              from lims_laboratory.inspection_product
                       left join lims_laboratory.user on inspection_product.user_id = user.id
              where state = 1
                and test_state is not null
                and inspection_product.inspection_material_id in
                    (select id
                     from lims_laboratory.inspection_material
                     where inspection_material.state = 1
                       and inspection_id in
                           (select id
                            from lims_laboratory.inspection
                            where inspection.state = 1
                              and type = #{type}
                              and start_time between #{startTime} and #{endTime}))
              group by user.name) y
        where n.name = y.name
    </select>
    <!--责任人执行率-->
    <select id="dutytimely" resultType="java.util.Map">
        select n.name, é¡¹ç›®æ€»æ•°, åŠæ—¶å®Œæˆæ•° / é¡¹ç›®æ€»æ•° * 100 '及时率'
        from (select distinct user.name, count(inspection_product.id) '项目总数'
              from lims_laboratory.inspection_product
                       left join lims_laboratory.user on inspection_product.user_pro_id = user.id
              where state = 1
                and inspection_product.inspection_material_id in
                    (select id
                     from lims_laboratory.inspection_material
                     where inspection_material.state = 1
                       and inspection_id in
                           (select id
                            from lims_laboratory.inspection
                            where inspection.state = 1
                              and type = #{type}
                              and start_time between #{startTime} and #{endTime}))
              group by user.name) n,
             (select distinct user.name, count(inspection_product.id) '及时完成数'
              from lims_laboratory.inspection_product
                       left join lims_laboratory.user
                                 on inspection_product.user_pro_id = user.id
                       left join lims_laboratory.inspection_material im
                                 on inspection_product.inspection_material_id = im.id
                       left join lims_laboratory.inspection
                                 on im.inspection_id = inspection.id
              where inspection_product.state = 1
                and test_state is not null
                and inspection_product.update_time between start_time and end_time
                and inspection_product.inspection_material_id in
                    (select id
                     from lims_laboratory.inspection_material
                     where inspection_material.state = 1
                       and inspection_id in
                           (select id
                            from inspection
                            where inspection.state = 1
                              and type = #{type}
                              and start_time between #{startTime} and #{endTime}))
              group by user.name) y
        where n.name = y.name
    </select>
    <!--执行人及时率-->
    <select id="executetimely" resultType="java.util.Map">
        select n.name, é¡¹ç›®æ€»æ•°, åŠæ—¶å®Œæˆæ•° / é¡¹ç›®æ€»æ•° * 100 '及时率'
        from (select distinct user.name, count(inspection_product.id) '项目总数'
              from lims_laboratory.inspection_product
                       left join lims_laboratory.user on inspection_product.user_id = user.id
              where state = 1
                and inspection_product.inspection_material_id in
                    (select id
                     from lims_laboratory.inspection_material
                     where inspection_material.state = 1
                       and inspection_id in
                           (select id
                            from lims_laboratory.inspection
                            where inspection.state = 1
                              and type = #{type}
                              and start_time between #{startTime} and #{endTime}))
              group by user.name) n,
             (select distinct user.name, count(inspection_product.id) '及时完成数'
              from lims_laboratory.inspection_product
                       left join lims_laboratory.user
                                 on inspection_product.user_id = user.id
                       left join lims_laboratory.inspection_material im
                                 on inspection_product.inspection_material_id = im.id
                       left join lims_laboratory.inspection
                                 on im.inspection_id = inspection.id
              where inspection_product.state = 1
                and test_state is not null
                and inspection_product.update_time between start_time and end_time
                and inspection_product.inspection_material_id in
                    (select id
                     from lims_laboratory.inspection_material
                     where inspection_material.state = 1
                       and inspection_id in
                           (select id
                            from inspection
                            where inspection.state = 1
                              and type = #{type}
                              and start_time between #{startTime} and #{endTime}))
              group by user.name) y
        where n.name = y.name
    </select>
</mapper>
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java
@@ -19,4 +19,11 @@
        Map map= JsonUtil.jsonToPojo(JsonUtil.jsonToString(o),Map.class);
        return String.valueOf(map.get("supplier"));
    }
    public static  String comparingByCode(Object o){
        Map map= JsonUtil.jsonToPojo(JsonUtil.jsonToString(o),Map.class);
        return String.valueOf(map.get("code"));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java
@@ -19,7 +19,7 @@
    private String imName;
    private String iCode;
    private String imCode;
    private Integer inspectionStatus;
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
@@ -43,7 +43,7 @@
    @ApiModelProperty(value = "审批人")
    @JsonSerialize
    private Integer approver;
    private String approver;
    @ApiModelProperty(value = "审核时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd ", timezone = "GMT+8")
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
@@ -26,13 +26,13 @@
    public NonConformanceReviewVo getNonConformanceReviewVo(NonConformingFeedbackDto nonConformingFeedbackDto) {
        QueryWrapper<NonConformanceReview>queryWrapper= new QueryWrapper<>();
        if (StringUtils.hasText(nonConformingFeedbackDto.getMaterialCode())){
            queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getMaterialCode,nonConformingFeedbackDto.getMaterialCode()));
            queryWrapper.lambda().and(a->a.like(NonConformanceReview::getMaterialCode,nonConformingFeedbackDto.getMaterialCode()));
        }
        if (StringUtils.hasText(nonConformingFeedbackDto.getMaterialName())){
            queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getMaterialName,nonConformingFeedbackDto.getMaterialName()));
            queryWrapper.lambda().and(a->a.like(NonConformanceReview::getMaterialName,nonConformingFeedbackDto.getMaterialName()));
        }
        if (StringUtils.hasText(nonConformingFeedbackDto.getInspectionCode())){
            queryWrapper.lambda().and(a->a.eq(NonConformanceReview::getInspectionCode,nonConformingFeedbackDto.getInspectionCode()));
            queryWrapper.lambda().and(a->a.like(NonConformanceReview::getInspectionCode,nonConformingFeedbackDto.getInspectionCode()));
        }
        Page<NonConformanceReview> page = new Page<>(nonConformingFeedbackDto.getCurrentPage(), nonConformingFeedbackDto.getPageNum(), true);
        IPage<NonConformanceReview> iPage = mapper.selectPage(page, queryWrapper);
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
@@ -11,6 +11,7 @@
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
@@ -168,8 +168,8 @@
            return allMap;
        }
        imInfos.forEach(l->{
            NameList.add(l.getICode()+"-"+l.getImName());
            projectByCodeAndNameDtos.add(new SelectProjectByCodeAndNameDto(l.getICode(),l.getImName()));
            NameList.add(l.getImCode()+"-"+l.getImName());
            projectByCodeAndNameDtos.add(new SelectProjectByCodeAndNameDto(l.getImCode(),l.getImName()));
        });
        List<ImInfo> imInfosAll = qualificationRateStatisticsMapper.selectProjection(projectByCodeAndNameDtos,dto);
        int total = imInfosAll.size();
@@ -177,7 +177,7 @@
        AtomicInteger i=new AtomicInteger(0);
        NameList.forEach(n->{
            imInfos.stream()
                    .filter(im-> Objects.equals(n,im.getICode()+"-"+im.getImName()))
                    .filter(im-> Objects.equals(n,im.getImCode()+"-"+im.getImName()))
                    .forEach(im->{
                        i.set(im.getIprInfos().size());
                    });
@@ -200,7 +200,11 @@
    @Override
    public List<Map<String, Object>> getSampleOptions() {
        return qualificationRateStatisticsMapper.getSampleOptions();
        List<Map<String, Object>> sampleOptions = qualificationRateStatisticsMapper.getSampleOptions();
        //去重样品
        List<Map<String, Object>> sampleOptionsDistinct = ArrayListUtil.oneObjectsDistinctByProperty(MapHandlerDto::comparingByCode, sampleOptions);
        sampleOptionsDistinct.forEach(System.out::println);
        return sampleOptionsDistinct;
    }
    public static String getPercent(long x, long y) {
inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
@@ -11,7 +11,7 @@
        i.end_time endTime
        FROM inspection i
        INNER JOIN inspection_material im ON i.id = im.inspection_id
        where (i.state = 1 AND i.inspection_status is NOT NULL and im.state=1)
        where (i.state = 1  and im.state=1)
        <if test="dto.beginDate!=null and dto.endDate!=null">
            DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            AND #{dto.endDate}
@@ -27,7 +27,7 @@
            and im.name=#{dto.sample}
        </if>
        <if test="dto.code!=null and dto.code!=''">
            and i.code=#{dto.code}
            and im.code=#{dto.code}
        </if>
    </select>
    <select id="selectProjectionsByCondition" resultMap="ImInfoMap">
@@ -40,7 +40,7 @@
        ipr.id iprId,
        ipr.`name` iprName,
        ipr.test_state testState,
        i.code iCode,
        im.code imCode,
        i.type type
        FROM
        inspection i,
@@ -70,7 +70,7 @@
            and im.name=#{dto.sample}
        </if>
        <if test="dto.code!=null and dto.code!=''">
            and i.code=#{dto.code}
            and im.code=#{dto.code}
        </if>
    </select>
    <select id="selectProjection" resultMap="ImInfoMap">
@@ -86,8 +86,6 @@
        AND  i.state = 1
        AND im.state = 1
        AND ipr.state = 1
        AND i.inspection_status is NOT NULL
        AND ipr.test_state is not null
        <if test="dto.beginDate!=null and dto.endDate!=null">
            DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            AND #{dto.endDate}
@@ -103,9 +101,9 @@
            and im.name=#{dto.sample}
        </if>
        <if test="dto.code!=null and dto.code!=''">
            and i.code=#{dto.code}
            and im.code=#{dto.code}
        </if>
        and i.code in
        and im.code in
        <foreach collection="list" item="l" open="(" close=")" separator="," >
            #{l.code}
        </foreach>
@@ -124,7 +122,7 @@
        i.end_time endTime
        FROM inspection i
        INNER JOIN inspection_material im ON i.id = im.inspection_id
        where (i.state = 1 AND i.inspection_status is NOT NULL and im.state=1)
        where (i.state = 1 and im.state=1)
        <if test="dto.beginDate!=null and dto.endDate!=null">
            DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
            AND #{dto.endDate}
@@ -140,7 +138,7 @@
            and im.name=#{dto.sample}
        </if>
        <if test="dto.code!=null and dto.code!=''">
            and i.code=#{dto.code}
            and im.code=#{dto.code}
        </if>
    </select>
    <select id="getSampleOptions" resultType="java.util.Map">
@@ -152,17 +150,17 @@
            i.inspection_status inspectionStatus,
            i.start_time startTime,
            i.end_time endTime,
            i.`code`
            im.`code` code
        FROM
            inspection i
                INNER JOIN inspection_material im ON i.id = im.inspection_id
        WHERE
            ( i.state = 1 AND i.inspection_status IS NOT NULL AND im.state = 1 )
            ( i.state = 1  AND im.state = 1 )
    </select>
    <resultMap id="ImInfoMap" type="com.yuanchu.limslaboratory.pojo.ImInfo">
        <result property="imId" column="imId"/>
        <result property="iCode" column="iCode"/>
        <result property="imCode" column="imCode"/>
        <result property="imName" column="imName"/>
        <result property="startTime" column="startTime"/>
        <result property="endTime" column="endTime"/>
inspection-server/src/main/resources/mapper/ReportMapper.xml
@@ -11,6 +11,7 @@
        im.name materialName,
        r.conclusion ,
        r.status ,
        r.approver approver,
        check_time,
        u.name
        from lims_laboratory.report r
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.yuanchu.limslaboratory.controller;
import com.yuanchu.limslaboratory.service.RoleManagerService;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/23
 */
@Api(tags = "实验室-->3、角色管理")
@RestController
@RequestMapping("/role-manager")
public class RoleMangerController {
    @Resource
    private RoleManagerService roleManagerService;
    @ApiOperation("获取菜单功能树")
    @GetMapping("/getMenusTree")
    public Result<?>getMenusTree() {
      return Result.success(roleManagerService.getMenusTree());
    };
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MenuMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.yuanchu.limslaboratory.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.limslaboratory.pojo.Menu;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/23
 */
@Repository
public interface MenuMapper extends BaseMapper<Menu> {
    List<Menu> getMenuList();
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.yuanchu.limslaboratory.pojo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/23
 */
@Data
public class Menu implements Serializable {
    /**
     * id
     */
    private Integer value;
    /**
     * èœå•名
     */
    private String label;
    /**
     * çˆ¶çº§id
     */
    private Integer parentId;
    /**
     * å­çº§èœå•信息
     */
    private List<Menu> children;
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.limslaboratory.pojo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/23
 */
@Data
public class Role implements Serializable {
    private Integer id;
    private Integer name;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
    private Integer state;
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.limslaboratory.service;
import com.yuanchu.limslaboratory.vo.Result;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/23
 */
public interface RoleManagerService {
    Object getMenusTree();
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yuanchu.limslaboratory.mapper.MenuMapper;
import com.yuanchu.limslaboratory.pojo.Menu;
import com.yuanchu.limslaboratory.service.RoleManagerService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Author å¼ å®¾
 * @Date 2023/8/23
 */
@Service
public class RoleManagerServiceImpl implements RoleManagerService {
    @Resource
    private MenuMapper menuMapper;
    @Override
    public Object getMenusTree() {
        List<Menu> menus = menuMapper.getMenuList();
        return menus.stream()
                .filter(t -> t.getParentId() == 0)
                .peek((menu) -> menu.setChildren(this.getEnumChildren(menu, menus)))
                .collect(Collectors.toList());
    }
    private List<Menu> getEnumChildren(Menu root, List<Menu> all) {
        return all.stream()
                .filter(t -> Objects.equals(t.getParentId(), root.getValue()))
                .peek(g -> {
                    //找子菜单
                    g.setChildren(getEnumChildren(g, all));
                })
                .collect(Collectors.toList());
    }
}
laboratory-server/src/main/resources/mapper/MenuMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
<?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.MenuMapper">
    <select id="getMenuList" resultType="com.yuanchu.limslaboratory.pojo.Menu">
        select id value,name label,parent_id parentId
        from menu
        where state =1
    </select>
</mapper>
pom.xml
@@ -23,6 +23,7 @@
        <module>inspection-server</module>
        <module>laboratory-server</module>
        <module>cnas-server</module>
        <module>chart-server</module>
    </modules>
    <properties>
sql/lims.sql
ÎļþÒÑɾ³ý
standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductModelController.java
@@ -34,7 +34,11 @@
    @Autowired
    private ProductModelService productModelService;
    @ApiOperation(value = "选择样品名称")
    @GetMapping("/selectmater")
    public Result selectmater() {
        return Result.success(productModelService.selectmater());
    }
    @ApiOperation(value = "添加标准-->选择项目分组")
    @GetMapping("/selectfather")
standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductModelService.java
@@ -18,6 +18,11 @@
public interface ProductModelService extends IService<ProductModel> {
    /**
     * é€‰æ‹©æ ·å“
     * @return
     */
    List<String> selectmater();
    /**
     * æ·»åŠ æ ‡å‡†-->选择项目分组
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java
@@ -29,6 +29,12 @@
    ProductModelMapper productModelMapper;
    //选择样品
    @Override
    public List<String> selectmater() {
        return productModelMapper.selectmater();
    }
    //添加标准-->选择项目分组
    @Override
    public List<String> selectfather() {
sys/pom.xml
@@ -56,6 +56,12 @@
            <artifactId>laboratory-server</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <!--智能图表模块-->
        <dependency>
            <groupId>com.yuanchu</groupId>
            <artifactId>chart-server</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <!--druid-->
        <dependency>