From 8c37d903a2fe25d5857c4555c791d552bec60cb8 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 22 八月 2023 17:48:44 +0800
Subject: [PATCH] 改动6.0

---
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineChartVO.java             |   17 +++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java    |  120 ++++++++++++++++++++++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java |    8 
 inspection-server/src/main/resources/mapper/PlanMapper.xml                                      |    2 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java         |    6 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineSeriesVO.java            |   16 +++
 inspection-server/src/main/resources/mapper/InspectionMapper.xml                                |   18 +++
 inspection-server/src/main/resources/mapper/InspectionProductMapper.xml                         |    7 -
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java    |   31 +++--
 laboratory-server/src/main/resources/mapper/InstrumentMapper.xml                                |    1 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java       |   11 ++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java             |    8 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java  |    3 
 13 files changed, 223 insertions(+), 25 deletions(-)

diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java
index 4fd39a0..72c98df 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java
+++ b/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));
+    }
 }
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
index 321f720..29ed397 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
@@ -110,10 +110,10 @@
     }
 
     @ApiOperation(value = "淇濆瓨妫�楠岄」鐩矗浠讳汉")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true)
-    })
+        @ApiImplicitParams(value = {
+                @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true),
+                @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true)
+        })
     @GetMapping("/chooseUseProId")
     public Result chooseUseProId(Integer id,Integer userProId) {
         return Result.success(inspectionService.chooseUseProId(id,userProId));
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
index fdf32b4..fc4b374 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
+++ b/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);
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
index 0349c07..70b37f2 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
@@ -14,8 +14,7 @@
  */
 public interface InspectionProductMapper extends BaseMapper<InspectionProduct> {
 
-    //鏍规嵁椤圭洰id灏嗗凡鏈夌殑妫�楠岀粨璁烘敼涓簄ull
-    void upda(Integer id);
+
 
     //鏍规嵁妫�楠屽崟id鏌ヨ妫�楠岄」鐩殑妫�楠岀粨鏋�
     List<Integer> getresult(Integer id);
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineChartVO.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineChartVO.java
new file mode 100644
index 0000000..46472e4
--- /dev/null
+++ b/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<>();
+
+
+}
+
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineSeriesVO.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/LineSeriesVO.java
new file mode 100644
index 0000000..57e0771
--- /dev/null
+++ b/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<>();
+
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java
index 0a93716..4d24674 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java
+++ b/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);
 }
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
index 79fb8cc..7370328 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
+++ b/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<>();
+        //鏋勫缓绗竴涓猯ineSeriesVO1(鍘熸潗鏂欐楠屾暟閲�)
+        LineSeriesVO lineSeriesVO1 = new LineSeriesVO();
+        lineSeriesVO1.setName("鍘熸潗鏂欐楠屾暟閲�");
+        //鏋勫缓绗簩涓猯ineSeriesVO2(鎴愬搧妫�楠屾暟閲�)
+        LineSeriesVO lineSeriesVO2 = new LineSeriesVO();
+        lineSeriesVO2.setName("鎴愬搧妫�楠屾暟閲�");
+        //鏋勫缓绗笁涓猯ineSeriesVO3(鍘熸潗鏂欏悎鏍肩巼)
+        LineSeriesVO lineSeriesVO3 = new LineSeriesVO();
+        lineSeriesVO3.setName("鍘熸潗鏂欏悎鏍肩巼");
+        //鏋勫缓绗洓涓猯ineSeriesVO4(鎴愬搧鍚堟牸鐜�)
+        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;
+    }
+
+
 }
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
index 94334c3..ccacfa4 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
+++ b/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);
-        } else {
-            //濡傛灉妫�楠屽�间负绌�,灏嗗師鏈夌殑妫�楠岀粨璁鸿鐩栦负null
-            inspectionProductMapper.upda(id);
+        InspectionProduct inspectionProduct = inspectionProductMapper.selectById(id);
+        //鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�0
+        String required = inspectionProduct.getRequired();//鏍囧噯鍊�
+        String internal = inspectionProduct.getInternal();//鍐呮帶鍊�
+        inspectionProduct.setTestValue(value);
+        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 {
+            inspectionProduct.setTestState(1);
         }
+        inspectionProductMapper.updateById(inspectionProduct);
         return "鎻愪氦鎴愬姛!";
     }
 
@@ -101,7 +106,7 @@
         List<Integer> results = inspectionProductMapper.getresult(id);
         int count = 0;
         for (Integer result : results) {
-            if (result != null && result==1) {
+            if (result != null && result == 1) {
                 count++;
             }
         }
diff --git a/inspection-server/src/main/resources/mapper/InspectionMapper.xml b/inspection-server/src/main/resources/mapper/InspectionMapper.xml
index 737fb6b..e97fc5a 100644
--- a/inspection-server/src/main/resources/mapper/InspectionMapper.xml
+++ b/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>
\ No newline at end of file
diff --git a/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml b/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml
index c8e4d6a..f1b39da 100644
--- a/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml
+++ b/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">
diff --git a/inspection-server/src/main/resources/mapper/PlanMapper.xml b/inspection-server/src/main/resources/mapper/PlanMapper.xml
index 87f4036..c0cf41a 100644
--- a/inspection-server/src/main/resources/mapper/PlanMapper.xml
+++ b/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
diff --git a/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml b/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml
index 092e24c..ab1509d 100644
--- a/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml
+++ b/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>

--
Gitblit v1.9.3