From 8ce578f52d2dc071beb043560baded7803787f07 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期三, 06 九月 2023 17:36:22 +0800
Subject: [PATCH] 删除鹓雏管理端的时间限制

---
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java |  217 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 184 insertions(+), 33 deletions(-)

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 df39e9c..706aff9 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
@@ -1,13 +1,23 @@
 package com.yuanchu.limslaboratory.service.impl;
 
-import com.yuanchu.limslaboratory.mapper.PlanMapper;
-import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+
+import cn.hutool.core.date.DateUtil;
+import com.yuanchu.limslaboratory.mapper.*;
+import com.yuanchu.limslaboratory.pojo.Inspection;
+import com.yuanchu.limslaboratory.pojo.InspectionProduct;
+import com.yuanchu.limslaboratory.pojo.NonConformanceReview;
+import com.yuanchu.limslaboratory.pojo.Report;
 import com.yuanchu.limslaboratory.service.PlanService;
+import com.yuanchu.limslaboratory.utils.MyUtil;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -23,39 +33,180 @@
     @Resource
     private PlanMapper planMapper;
 
-    /**
-     * 鏌ヨ妫�楠岃鍒�
-     *
-     * @return
-     */
+    @Resource
+    InspectionProductMapper inspectionProductMapper;
+
+    @Resource
+    UserMapper userMapper;
+
+    @Resource
+    InstrumentMapper instrumentMapper;
+
+    @Resource
+    ReportMapper reportMapper;
+
+    @Resource
+    InspectionMapper inspectionMapper;
+
+    @Resource
+    InspectionMaterialMapper inspectionMaterialMapper;
+
+    @Resource
+    LinkDetectionMapper linkDetectionMapper;
+
+    @Resource
+    private NonConformanceReviewMapper nonConformanceReviewMapper;
+
+    //鏌ヨ妫�楠岃鍒�
     @Override
-    public List<PlanVo> selectAllPlan(Integer deviceId, Date beginTime, Date endTime, Integer userId) {
-        //鑾峰彇鏁版嵁搴撴暟鎹�
-        List<PlanVo> planVos = planMapper.selectAllPlan(deviceId, beginTime, endTime, userId);
-        //娣诲姞璁″垝宸ユ湡鍜屾楠岃繘搴�
-        planVos.forEach(planVo -> {
-            //娣诲姞妫�楠岃繘搴�
-            //鍒ゆ柇鏄惁鏄凡瀹屾垚
-            if (planVo.getState() != null) {
-                planVo.setProgress(100);
+    public List<Map<String, Object>> selectAllPlan(String code, String beginTime, String endTime, Integer status) {
+        return planMapper.selectAllPlan(code, beginTime, endTime, status);
+    }
+
+    //鍒嗛厤-->閫夋嫨妫�楠屼汉
+    @Override
+    public List<Map<String, Object>> choosecheck() {
+        return userMapper.selectUser();
+    }
+
+    //鍒嗛厤-->閫夋嫨璁惧
+    @Override
+    public List<Map<String, Object>> chooseinstum() {
+        return instrumentMapper.chooseinstum();
+    }
+
+    //鍒嗛厤浜哄憳涓庤澶�
+    @Override
+    public String distribution(Integer id, Integer userId, Integer instrumentId) {
+        InspectionProduct inspectionProduct = new InspectionProduct();
+        inspectionProduct.setId(id);
+        //鎵ц浜�
+        inspectionProduct.setUserId(userId);
+        inspectionProduct.setInstrumentId(instrumentId);
+        inspectionProductMapper.updateById(inspectionProduct);
+        return "鍒嗛厤瀹屾垚!";
+    }
+
+    //妫�楠�
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Integer check(Integer id, String value) {
+        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 inspectionProduct.getTestState();
+    }
+
+    //涓婃姤
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String reported(Integer id) {
+        /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
+        //鍏堝垽鏂楠岀粨鏋�
+        List<Integer> results = inspectionProductMapper.getresult(id);
+        int count = 0;
+        for (Integer result : results) {
+            if (result != null && result == 1) {
+                count++;
             }
-            //鍒ゆ柇鏄惁鏄湭鍒嗛厤
-            if (planVo.getCheckproject() == null) {
-                planVo.setProgress(0);
+        }
+        //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
+        if (results.contains(0)) {
+            Inspection inspection = new Inspection();
+            inspection.setId(id);
+            inspection.setInspectionStatus(0);
+            //鏇存柊妫�楠屽崟
+            inspectionMapper.updateById(inspection);
+            //娣诲姞涓嶅悎鏍间俊鎭埌璇勫
+            NonConformanceReview nonConformanceReview = new NonConformanceReview();
+            LocalDateTime localDateTime = DateUtil.toLocalDateTime(DateUtil.date());
+            nonConformanceReview.setCreatedTime(localDateTime);
+            nonConformanceReview.setUpdatedTime(localDateTime);
+        } else if (count == results.size()) {
+            Inspection inspection = new Inspection();
+            inspection.setId(id);
+            inspection.setInspectionStatus(1);
+            inspectionMapper.updateById(inspection);
+        } else return "椤圭洰鏈楠屽畬!";
+        //鐢熸垚鎶ュ憡鍗�
+        Report report = new Report();
+        //鐢熸垚鎶ュ憡鍗曞彿
+        String recode = MyUtil.getTimeSixNumberCode("BG", "BG");
+        //鑾峰彇妫�楠岀粨璁�
+        String conclusion = "";
+        Inspection inspection = inspectionMapper.selectById(id);
+        if (inspection.getInspectionStatus().equals(1)) {
+            conclusion = "鍚堟牸";
+        } else {
+            conclusion = "涓嶅悎鏍�";
+        }
+        report.setCode(recode);
+        report.setStatus(0);
+        report.setConclusion(conclusion);
+        report.setInspectionId(id);
+        //鏂板妫�楠屾姤鍛�
+        reportMapper.insert(report);
+        return "涓婃姤鎴愬姛!";
+    }
+
+
+    /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+        boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
+        boolean isControlValueSatisfied = isValueSatisfied(controlValueStr, detectionValueStr);
+
+        if (isStandardValueSatisfied && isControlValueSatisfied) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+
+    private boolean isValueSatisfied(String valueStr, String detectionValueStr) {
+        String substring = valueStr.substring(1, 2);
+        if (substring.equals("=")) {
+            String operator = valueStr.substring(0, 2);
+            Double standardValue = Double.parseDouble(valueStr.substring(2));
+            Double detectionValue = Double.parseDouble(detectionValueStr);
+            switch (operator) {
+                case ">=":
+                    return detectionValue >= standardValue;
+                case "<=":
+                    return detectionValue <= standardValue;
+                default:
+                    return false;
             }
-            //鍒ゆ柇鏄惁鏄繘琛屼腑
-            if (planVo.getState() == null && planVo.getCheckproject() != null) {
-                planVo.setProgress(50);
+        } else {
+            String operator = valueStr.substring(0, 1);
+            Double standardValue = Double.parseDouble(valueStr.substring(1));
+            Double detectionValue = Double.parseDouble(detectionValueStr);
+            switch (operator) {
+                case ">":
+                    return detectionValue > standardValue;
+                case "鈮�":
+                    return detectionValue >= standardValue;
+                case "鈮�":
+                    return detectionValue <= standardValue;
+                case "<":
+                    return detectionValue < standardValue;
+                case "=":
+                    return detectionValue.equals(standardValue);
+                default:
+                    return false;
             }
-            //娣诲姞璁″垝宸ユ湡
-            if (planVo.getFinishtime() != null && planVo.getStarttime() != null) {
-                long startTimeInMillis = planVo.getStarttime().getTime();
-                long endTimeInMillis = planVo.getFinishtime().getTime();
-                long durationInMillis = endTimeInMillis - startTimeInMillis;
-                long duration = durationInMillis / (1000 * 60 * 60);
-                planVo.setDuration(Integer.valueOf((int) duration));
-            }
-        });
-        return planVos;
+        }
     }
 }

--
Gitblit v1.9.3