zss
2023-08-22 8c37d903a2fe25d5857c4555c791d552bec60cb8
改动6.0
已修改11个文件
已添加2个文件
226 ■■■■■ 文件已修改
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineChartVO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineSeriesVO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionProductMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/PlanMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/InstrumentMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java
@@ -6,6 +6,8 @@
import com.yuanchu.limslaboratory.service.HomeService;
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;
@@ -55,4 +57,13 @@
        StatisticsDataVo statisticsData =homeService.qualified();
        return Result.success(statisticsData);
    }
    @ApiOperation("统计")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "type", value = "1:本周;2:本月;3:本年", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/turno")
    public Result turno(Integer type) {
        return Result.success(homeService.turno(type));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
@@ -48,5 +48,11 @@
    //计算原材料合格率
    Long qualifiedfin(Integer i);
    //查询该日期的原材料检验数量
    Integer getMaterByDay(String dayofWeek);
    //查询该日期的成品检验数量
    Integer getFinByDay(String dayofWeek);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
@@ -14,8 +14,7 @@
 */
public interface InspectionProductMapper extends BaseMapper<InspectionProduct> {
    //根据项目id将已有的检验结论改为null
    void upda(Integer id);
    //根据检验单id查询检验项目的检验结果
    List<Integer> getresult(Integer id);
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineChartVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.yuanchu.limslaboratory.pojo.vo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class LineChartVO {
    private List<String> xAxis = new ArrayList<>();
    private List<LineSeriesVO> series = new ArrayList<>();
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineSeriesVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.limslaboratory.pojo.vo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class LineSeriesVO {
    private String name;
    private List<Object> data =new ArrayList<>();
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java
@@ -1,5 +1,6 @@
package com.yuanchu.limslaboratory.service;
import com.yuanchu.limslaboratory.pojo.vo.LineChartVO;
import com.yuanchu.limslaboratory.pojo.vo.ProjectNumVo;
import com.yuanchu.limslaboratory.pojo.vo.StatisticsDataVo;
@@ -34,4 +35,11 @@
     * @return
     */
    StatisticsDataVo qualified();
    /**
     * ç»Ÿè®¡
     * @param type
     * @return
     */
    LineChartVO turno(Integer type);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
@@ -2,6 +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.vo.ProjectNumVo;
import com.yuanchu.limslaboratory.pojo.vo.StatisticsDataVo;
import com.yuanchu.limslaboratory.service.HomeService;
@@ -10,6 +12,12 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.DayOfWeek;
import java.time.LocalDate;
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;
@@ -95,6 +103,61 @@
        return statisticsDataVo;
    }
    //统计
    @Override
    @Transactional(rollbackFor = Exception.class)
    public LineChartVO turno(Integer type) {
        LineChartVO lineChartVO = new LineChartVO();
        List<LineSeriesVO> series = new ArrayList<>();
        //构建第一个lineSeriesVO1(原材料检验数量)
        LineSeriesVO lineSeriesVO1 = new LineSeriesVO();
        lineSeriesVO1.setName("原材料检验数量");
        //构建第二个lineSeriesVO2(成品检验数量)
        LineSeriesVO lineSeriesVO2 = new LineSeriesVO();
        lineSeriesVO2.setName("成品检验数量");
        //构建第三个lineSeriesVO3(原材料合格率)
        LineSeriesVO lineSeriesVO3 = new LineSeriesVO();
        lineSeriesVO3.setName("原材料合格率");
        //构建第四个lineSeriesVO4(成品合格率)
        LineSeriesVO lineSeriesVO4 = new LineSeriesVO();
        lineSeriesVO4.setName("成品合格率");
        List<Object> list1 = new ArrayList<>();
        List<Object> list2 = new ArrayList<>();
        List<Object> list3 = new ArrayList<>();
        List<Object> list4 = new ArrayList<>();
        switch (type) {
            case 1:         /*本周*/
                List<String> dayofWeeks = getDayofWeeks();
                lineChartVO.setXAxis(dayofWeeks);
                for (String dayofWeek : dayofWeeks) {
                    //查询该日期的原材料检验数量
                    Integer allMaterByDay = inspectionMapper.getMaterByDay(dayofWeek);
                    list1.add(allMaterByDay);
                    //查询该日期的成品检验数量
                    Integer allFinByDay = inspectionMapper.getFinByDay(dayofWeek);
                    list2.add(allFinByDay);
                    //
                }
                lineSeriesVO1.setData(list1);
                break;
            case 2:         /*本月*/
                List<String> dayofMonths = getDayofMonth();
                lineChartVO.setXAxis(dayofMonths);
                break;
            case 3:         /*本年*/
                List<String> monthofYears = getMonthofYear();
                lineChartVO.setXAxis(monthofYears);
                break;
        }
        series.add(lineSeriesVO1);
        series.add(lineSeriesVO2);
        series.add(lineSeriesVO3);
        series.add(lineSeriesVO4);
        lineChartVO.setSeries(series);
        return lineChartVO;
    }
    /*计算百分比*/
    private BigDecimal getRadio(Integer all, Long num) {
        if (all.intValue() == 0) {
@@ -105,4 +168,61 @@
        BigDecimal divide = numBigDecimal.divide(allBigDecimal, 4, BigDecimal.ROUND_HALF_UP);
        return divide.multiply(new BigDecimal(100));
    }
    /*获取本年月份list集合*/
    private List<String> getMonthofYear() {
        // èŽ·å–å½“å‰å¹´ä»½
        int year = YearMonth.now().getYear();
        // åˆ›å»ºæœˆä»½åˆ—表
        List<String> months = new ArrayList<>();
        // æ·»åŠ æœˆä»½åˆ°åˆ—è¡¨
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
        for (int i = 1; i <= 12; i++) {
            YearMonth month = YearMonth.of(year, i);
            String monthString = month.format(formatter);
            months.add(monthString);
        }
        return months;
    }
    /*获取本月日份list集合*/
    private List<String> getDayofMonth() {
        // èŽ·å–å½“å‰æ—¥æœŸ
        LocalDate now = LocalDate.now();
        // èŽ·å–å½“å‰æœˆä»½
        YearMonth currentMonth = YearMonth.from(now);
        // èŽ·å–è¯¥æœˆçš„å¤©æ•°
        int daysInMonth = currentMonth.lengthOfMonth();
        // åˆ›å»ºæ—¥æœŸåˆ—表
        List<String> dates = new ArrayList<>();
        // æ·»åŠ æ—¥æœŸåˆ°åˆ—è¡¨
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        for (int i = 1; i <= daysInMonth; i++) {
            LocalDate date = currentMonth.atDay(i);
            String dateString = date.format(formatter);
            dates.add(dateString);
        }
        return dates;
    }
    /*获取本周日份list集合*/
    private List<String> getDayofWeeks() {
        // èŽ·å–å½“å‰æ—¥æœŸ
        LocalDate now = LocalDate.now();
        // èŽ·å–æœ¬å‘¨çš„ç¬¬ä¸€å¤©å’Œæœ€åŽä¸€å¤©
        LocalDate startOfWeek = now.with(DayOfWeek.MONDAY);
        LocalDate endOfWeek = now.with(DayOfWeek.SUNDAY);
        // åˆ›å»ºæ—¥æœŸåˆ—表
        List<String> dates = new ArrayList<>();
        // æ·»åŠ æ—¥æœŸåˆ°åˆ—è¡¨
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        while (!startOfWeek.isAfter(endOfWeek)) {
            String dateString = startOfWeek.format(formatter);
            dates.add(dateString);
            startOfWeek = startOfWeek.plusDays(1);
        }
        return dates;
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
@@ -10,8 +10,10 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -76,19 +78,22 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public String check(Integer id, String value) {
        //如果检验值不为空
        if (StringUtils.isNotBlank(value)) {
            InspectionProduct inspectionProduct = inspectionProductMapper.selectById(id);
            //判断检测值是否满足标准值和内控值的要求,如果不满足则检验结论为不合格0
            String required = inspectionProduct.getRequired();//标准值
            String internal = inspectionProduct.getInternal();//内控值
            inspectionProduct.setTestValue(value);
            inspectionProduct.setTestState(checkValues(required, internal, value));
            inspectionProductMapper.updateById(inspectionProduct);
        List<Integer> list = Arrays.stream(value.split(",")).map(s -> {
            int values = checkValues(required, internal, s);
            return values;
        }).collect(Collectors.toList());
        if (list.contains(0)) {
            //如果其中一个检验值不合格则该项目检验不合格
            inspectionProduct.setTestState(0);
        } else {
            //如果检验值为空,将原有的检验结论覆盖为null
            inspectionProductMapper.upda(id);
            inspectionProduct.setTestState(1);
        }
        inspectionProductMapper.updateById(inspectionProduct);
        return "提交成功!";
    }
inspection-server/src/main/resources/mapper/InspectionMapper.xml
@@ -103,4 +103,22 @@
            and inspection_status is null
        </if>
    </select>
    <!--查询该日期的原材料检验数量-->
    <select id="getMaterByDay" resultType="java.lang.Integer">
        select count(id)
        from lims_laboratory.inspection
        where state = 1
          and type = 0
          and create_time = #{dayofWeek}
    </select>
    <!--查询该日期的成品检验数量-->
    <select id="getFinByDay" resultType="java.lang.Integer">
        select count(id)
        from lims_laboratory.inspection
        where state = 1
          and type in (1, 2)
          and create_time = #{dayofWeek}
    </select>
</mapper>
inspection-server/src/main/resources/mapper/InspectionProductMapper.xml
@@ -1,12 +1,7 @@
<?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.InspectionProductMapper">
    <update id="upda">
        update lims_laboratory.inspection_product
        set test_state=null
        where id = #{id}
          and state = 1
    </update>
    <!--根据检验单id查询检验项目的检验结果-->
    <select id="getresult" resultType="java.lang.Integer">
inspection-server/src/main/resources/mapper/PlanMapper.xml
@@ -16,6 +16,7 @@
        <result property="unit" column="unit"/>
        <result property="required" column="required"/>
        <result property="internal" column="internal"/>
        <result property="test_value" column="test_value"/>
        <result property="testState" column="testState"/>
        <result property="checker" column="checker"/>
        <result property="instrumentname" column="instrumentname"/>
@@ -33,6 +34,7 @@
        ip.unit,
        required,
        internal,
        test_value,
        test_state testState,
        u.name checker,
        equipment_name instrumentname
laboratory-server/src/main/resources/mapper/InstrumentMapper.xml
@@ -44,5 +44,6 @@
               equipment_name name
        from lims_laboratory.instrument
                 left join lims_laboratory.classify c on c.id = instrument.classify_id
        where conditions in(1,5)
    </select>
</mapper>