From 2dbc49184bd74845c8da694c20d6fd03d7ac87e0 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 21 九月 2023 16:16:21 +0800
Subject: [PATCH] 修改   9.21

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java |  153 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 115 insertions(+), 38 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
index b3e0e7b..5d1290b 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
@@ -1,10 +1,7 @@
 package com.yuanchu.mom.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.mapper.*;
@@ -12,12 +9,9 @@
 import com.yuanchu.mom.pojo.vo.RawInsProductVo;
 import com.yuanchu.mom.pojo.vo.RawInspectVo;
 import com.yuanchu.mom.service.*;
-import com.yuanchu.mom.utils.MyUtil;
-import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -42,6 +36,62 @@
     @Resource
     InspectUnacceptedMapper inspectUnacceptedMapper;
 
+    @Resource
+    UserMapper userMapper;
+
+    //鏂板鍘熸潗鏂欐楠屽崟
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String addRawInspects(String userId, RawInspectVo rawInspectVo) {
+        //鎶ユ浜�(鏂板妫�楠屽崟鐨勪汉)
+        rawInspectVo.setUserName(userMapper.selectById(userId).getName());
+        //鏍¢獙鏍囧噯鍊�,鍐呮帶鍊兼牸寮�
+        List<RawInsProductVo> rawInsProductVos = rawInspectVo.getRawInsProducts();
+        /*鏂板鍘熸潗鏂欐楠屽崟*/
+        RawInspect rawInspect = new RawInspect();
+        BeanUtils.copyProperties(rawInspectVo, rawInspect);
+        rawInspectMapper.insert(rawInspect);
+        /*鏂板鍘熸潗鏂欐楠岄」鐩崟*/
+        List<RawInsProduct> rawInsProductList = rawInsProductVos.stream().map(rawInsProVo -> {
+            RawInsProduct rawInsProduct = new RawInsProduct();
+            BeanUtils.copyProperties(rawInsProVo, rawInsProduct);
+            if (ObjectUtils.isNotEmpty(rawInsProduct.getTestValue())) {
+                if (rawInsProduct.getTestValue().equals("杩�")) {
+                    rawInsProduct.setTestState(1);
+                } else if (rawInsProduct.getTestValue().equals("涓嶈繃")) {
+                    rawInsProduct.setTestState(0);
+                } else {
+                    //鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�0
+                    String required = rawInsProduct.getRequired();//鏍囧噯鍊�
+                    String internal = rawInsProduct.getInternal();//鍐呮帶鍊�
+                    String testValue = rawInsProduct.getTestValue();//妫�娴嬪��
+                    char req = required.charAt(0);
+                    List<Integer> list = Arrays.stream(testValue.split(",")).map(s -> {
+                        int values=2;
+                        if (req == '>' || req == '<' || req == '=') {
+                            values = checkValues(required, internal, s);
+                        }else {
+                            values = conValues(required, internal, s);
+                        }
+                        return values;
+                    }).collect(Collectors.toList());
+                    if (list.contains(0)) {
+                        //濡傛灉鍏朵腑涓�涓楠屽�间笉鍚堟牸鍒欒椤圭洰妫�楠屼笉鍚堟牸
+                        rawInsProduct.setTestState(0);
+                    } else {
+                        rawInsProduct.setTestState(1);
+                    }
+                }
+                rawInsProduct.setUserId(Integer.parseInt(userId));
+            }
+            rawInsProduct.setRawInspectId(rawInspect.getId());
+            return rawInsProduct;
+        }).collect(Collectors.toList());
+        //妫�楠岄」鐩壒閲忔坊鍔�
+        rawInsProductService.saveBatch(rawInsProductList);
+        return rawInspect.getId().toString();
+    }
+
 
     //鍒嗛〉鏌ヨ鍘熸潗鏂欐楠屽崟鍒楄〃
     @Override
@@ -51,7 +101,7 @@
 
     //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏
     @Override
-    public List<Map<String, Object>> selectRawInspectsListById(Integer id) {
+    public Map<String, Object> selectRawInspectsListById(Integer id) {
         return rawInspectMapper.selectRawInspectsListById(id);
     }
 
@@ -71,6 +121,7 @@
         RawInspect rawInspect = new RawInspect();
         rawInspect.setId(id);
         rawInspect.setInsState(1);
+        rawInspect.setInsTime(new Date());
         //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
         if (results.contains(0)) {
             rawInspect.setJudgeState(0);
@@ -83,7 +134,7 @@
         /*濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟*/
         if (rawInspect.getJudgeState() == 0) {
             InspectUnaccepted rawUnaccepted = InspectUnaccepted.builder()
-                    .reason(rawInspect.getName() + "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓哄師鏉愭枡涓嶅悎鏍�
+                    .reason(rawInspectMapper.selectById(id).getName() + "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓哄師鏉愭枡涓嶅悎鏍�
                     .rawInspectId(id)
                     .type(0)        //绫诲瀷涓哄師鏉愭枡
                     .build();
@@ -93,38 +144,64 @@
     }
 
 
-    //鏂板鍘熸潗鏂欐楠屽崟
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public String addRawInspects(String userName, RawInspectVo rawInspectVo) {
-        //鎶ユ浜�(鏂板妫�楠屽崟鐨勪汉)
-        rawInspectVo.setUserName(userName);
-        //鏍¢獙鏍囧噯鍊�,鍐呮帶鍊兼牸寮�
-        List<RawInsProductVo> rawInsProductVos = rawInspectVo.getRawInsProducts();
-        for (RawInsProductVo rawInsProductVo : rawInsProductVos) {
-            char internal = rawInsProductVo.getInternal().charAt(0);
-            char required = rawInsProductVo.getRequired().charAt(0);
-            if (internal != '>' && internal != '<' && internal != '=') {
-                if (required != '>' && required != '<' && required != '=') {
-                    return "鏍囧噯鍊艰緭鍏ユ牸寮忔湁闂!";
-                }
-                return "鍐呮帶鍊艰緭鍏ユ牸寮忔湁闂!";
+    /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+    //濡傛灉鏄辩殑鎿嶄綔
+    private int conValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+        double standVar = Double.parseDouble(standardValueStr);
+        double controlVar = Double.parseDouble(controlValueStr);
+        double detecVar = Double.parseDouble(detectionValueStr);
+        double a = standVar + controlVar;
+        double b = standVar - controlVar;
+        if (detecVar >= b && detecVar <= a) {
+            return 1;
+        }
+        return 0;
+    }
+    //濡傛灉鏄�> , < ,=鐨勬搷浣�
+    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;
+            }
+        } 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;
             }
         }
-        /*鏂板鍘熸潗鏂欐楠屽崟*/
-        RawInspect rawInspect = new RawInspect();
-        BeanUtils.copyProperties(rawInspectVo, rawInspect);
-        rawInspectMapper.insert(rawInspect);
-        /*鏂板鍘熸潗鏂欐楠岄」鐩崟*/
-        List<RawInsProduct> rawInsProductList = rawInsProductVos.stream().map(rawInsProVo -> {
-            RawInsProduct rawInsProduct = new RawInsProduct();
-            BeanUtils.copyProperties(rawInsProVo, rawInsProduct);
-            rawInsProduct.setRawInspectId(rawInspect.getId());
-            return rawInsProduct;
-        }).collect(Collectors.toList());
-        //妫�楠岄」鐩壒閲忔坊鍔�
-        rawInsProductService.saveBatch(rawInsProductList);
-        return "鏂板妫�楠屽崟鎴愬姛!";
     }
 }
 

--
Gitblit v1.9.3