From 20956b0f05f81ca47cf6c3e8f9b3b426e9cfd035 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期日, 24 九月 2023 21:54:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java |  298 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 192 insertions(+), 106 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 1d16519..aeb59ef 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,19 +1,20 @@
 package com.yuanchu.mom.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import cn.hutool.core.date.DateUtil;
+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.Task.SyncOrder;
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.*;
 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.*;
@@ -25,8 +26,7 @@
  * @createDate 2023-07-31 14:43:15
  */
 @Service
-public class RawInspectServiceImpl extends ServiceImpl<RawInspectMapper, RawInspect>
-        implements RawInspectService {
+public class RawInspectServiceImpl extends ServiceImpl<RawInspectMapper, RawInspect> implements RawInspectService {
 
     @Resource
     RawInspectMapper rawInspectMapper;
@@ -41,125 +41,211 @@
     InspectUnacceptedMapper inspectUnacceptedMapper;
 
     @Resource
-    DeviceService deviceService;
+    UserMapper userMapper;
 
-    @Resource
-    MaterialMapper materialMapper;
-
-    @Resource
-    UserService userService;
-
-    @Resource
-    SpecificationsService specificationsService;
-
-    @Resource
-    StandardService standardService;
-
-    @Resource
-    ProductMapper productMapper;
-
+    //鏂板鍘熸潗鏂欐楠屽崟-->鏍规嵁鍘熸潗鏂欑紪鐮佸緱鍒癷fs涓殑鎶ユ鏁版嵁
     @Override
-    public Map<String, Object> selectRawInspectsList(int pageSize, int countSize, String formTime, String createTime, int insState, int judgeState) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("count", rawInspectMapper.selectCount(new QueryWrapper<RawInspect>().eq("state", 1)));
-        map.put("data", rawInspectMapper.selectRawInspectsByLimit((pageSize - 1) * countSize, pageSize * countSize, formTime, createTime, insState, judgeState));
-        return map;
+    public RawInspectVo chooseIFS(String code) {
+        RawInspectVo rawInspectVo = new RawInspectVo();
+        List<Map<String, Object>> mapList = SyncOrder.ifsInterfaces();
+        for (Map<String, Object> map : mapList) {
+            //todo: 鍚庣画闇�瑕佸皢鐘舵�佹敼鎴愬緟妫�楠�
+            if (map.get("STATE").equals("宸叉帴鏀�")) {
+                if (map.get("PART_NO").toString().equals(code)) {
+                    rawInspectVo.setCode(map.get("PART_NO").toString());   //鍘熸潗鏂欑紪鐮�
+                    String[] split = map.get("PART_DESC").toString().split("锛�");
+                    rawInspectVo.setName(split[0]);   //鍘熸潗鏂欏悕绉�
+                    rawInspectVo.setSpecifications(split[1]);  //鍨嬪彿瑙勬牸
+                    rawInspectVo.setUnit(map.get("BUY_UNIT_MEAS").toString());  //鍗曚綅
+                    rawInspectVo.setNumber(Integer.parseInt(String.valueOf(map.get("QTY_TO_INSPECT"))));  //鏁伴噺
+                    rawInspectVo.setFormTime(DateUtil.parse(map.get("APPROVED_DATE").toString())); //鏉ユ枡鏃ユ湡
+                    rawInspectVo.setSupplier(map.get("SUPPLIER_NAME").toString()); //渚涘簲鍟�
+                }
+            }
+        }
+        //鏌ヨ璇ュ師鏉愭枡鏄惁鏈夋楠岄」鐩褰�
+        RawInspect rawInspect = rawInspectMapper.selOneByCode(code);
+        if (ObjectUtils.isNotEmpty(rawInspect)){
+            List<RawInsProduct> rawInsProductList = rawInsProductMapper.selectList(Wrappers.<RawInsProduct>query().eq("raw_inspect_id", rawInspect.getId()));
+            List<RawInsProductVo> rawInsProductVos = rawInsProductList.stream().map(rawInsProduct -> {
+                RawInsProductVo rawInsProductVo = new RawInsProductVo();
+                rawInsProductVo.setName(rawInsProduct.getName());
+                rawInsProductVo.setUnit(rawInsProduct.getUnit());
+                rawInsProductVo.setRequired(rawInsProduct.getRequired());
+                rawInsProductVo.setInternal(rawInsProduct.getInternal());
+                return rawInsProductVo;
+            }).collect(Collectors.toList());
+            rawInspectVo.setRawInsProducts(rawInsProductVos);
+        }
+        return rawInspectVo;
+    }
+
+    //鏂板鍘熸潗鏂欐楠屽崟
+    @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
+    public IPage<Map<String, Object>> selectRawInspectsList(Page<Object> page, String formTime, String code, Integer insState, String name) {
+        return rawInspectMapper.selectRawInspectsList(page, formTime, code, insState, name);
     }
 
     //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏
     @Override
-    public RawInspectVo selectRawInspectsListById(Integer id) {
-        //灏嗘楠屽崟鍩烘湰淇℃伅鏌ヨ鍑烘潵骞跺皝瑁呭埌RawInspectVo瀵硅薄涓�
-        RawInspect rawInspect = rawInspectMapper.selectById(id);
-        RawInspectVo rawInspectVo = new RawInspectVo();
-        BeanUtils.copyProperties(rawInspect, rawInspectVo);
-        //鏌ヨ妫�楠屽崟閲岄潰鐨勬楠岄」鐩�,骞跺皝瑁呭埌RawInspectVo瀵硅薄涓�
-        LambdaQueryWrapper<RawInsProduct> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(RawInsProduct::getRawInspectId, id);
-        List<RawInsProduct> rawInsProducts = rawInsProductMapper.selectList(queryWrapper);
-        //杩欓噷鏌ュ埌鐨勮澶噄d鍜屾楠屽憳id瑕佹煡璇㈠悕绉�
-        List<RawInsProductVo> rawInsProductVos = rawInsProducts.stream().map(rawInsProduct -> {
-            //灏嗕竴涓璞$殑鍊艰祴鍊肩粰鍙︿竴涓璞�
-            RawInsProductVo rawInsProductVo = new RawInsProductVo();
-            BeanUtils.copyProperties(rawInsProduct, rawInsProductVo);
-            //鑾峰彇璁惧鍚�(鍓嶆彁鏄鏋滃瓨鍦�)
-            if (rawInsProduct.getDeviceId() != null) {
-                String deviceName = deviceService.getDeviceNameById(rawInsProduct.getDeviceId());
-                rawInsProductVo.setDeviceName(deviceName);
-            }
-            //鑾峰彇鐢ㄦ埛鍚�(鍓嶆彁鏄鏋滃瓨鍦�)
-            if (rawInsProduct.getUserId() != null) {
-                String userName = userService.selectNameById(rawInsProduct.getUserId());
-                rawInsProductVo.setUserName(userName);
-            }
-            return rawInsProductVo;
-        }).collect(Collectors.toList());
-        rawInspectVo.setRawInsProducts(rawInsProductVos);
-        return rawInspectVo;
+    public Map<String, Object> selectRawInspectsListById(Integer id) {
+        return rawInspectMapper.selectRawInspectsListById(id);
     }
 
     //鏇存柊妫�楠岀姸鎬�(涓婃姤)
     @Override
-    public boolean updateRawInspectsById(Integer id) {
-        //鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀姸鎬佸拰妫�楠岀粨璁�
-        RawInspectVo rawInspectVo = selectRawInspectsListById(id);
-        RawInspect rawInspect = RawInspect.builder()
-                .id(id)
-                .insState(1)
-                .insTime(new Date())
-                .judgeState(rawInspectVo.getJudgeState())
-                .build();
-        rawInspectMapper.updateById(rawInspect);
-        //濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟
-        if (rawInspectVo.getJudgeState() == 0) {
+    @Transactional(rollbackFor = Exception.class)
+    public String updateRawInspectsById(Integer id,Integer number) {
+        /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
+        //鍏堝垽鏂楠岀粨鏋�
+        List<Integer> results = rawInsProductMapper.getresult(id);
+        int count = 0;
+        for (Integer result : results) {
+            if (result != null && result == 1) {
+                count++;
+            }
+        }
+        RawInspect rawInspect = new RawInspect();
+        rawInspect.setId(id);
+        rawInspect.setInsState(1);
+        rawInspect.setInsTime(new Date());
+        //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
+        if (results.contains(0)) {
+            rawInspect.setJudgeState(0);
+            //鏇存柊妫�楠屽崟
+            rawInspectMapper.updateById(rawInspect);
+        } else if (count == results.size()) {
+            rawInspect.setJudgeState(1);
+            rawInspectMapper.updateById(rawInspect);
+        } else return "椤圭洰鏈楠屽畬!";
+        /*濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟*/
+        if (rawInspect.getJudgeState() == 0) {
             InspectUnaccepted rawUnaccepted = InspectUnaccepted.builder()
-                    .reason(rawInspectVo.getName() + "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓哄師鏉愭枡涓嶅悎鏍�
+                    .reason(rawInspectMapper.selectById(id).getName() + "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓哄師鏉愭枡涓嶅悎鏍�
+                    .number(number)
                     .rawInspectId(id)
-                    .type(2)        //绫诲瀷涓哄師鏉愭枡
+                    .dealReasult(1)
+                    .type(0)        //绫诲瀷涓哄師鏉愭枡
                     .build();
             inspectUnacceptedMapper.insert(rawUnaccepted);
         }
-        return true;
+        return rawInspect.getJudgeState().toString();
     }
 
 
-    //鏂板妫�楠屽崟
-    @Override
-    public Integer addRawInspects(String userName, RawInspect rawInspect) {
-        rawInspect.setUserName(userName);
-        //鏂板妫�楠屽崟
-        rawInspectMapper.insert(rawInspect);
-        //鑾峰彇鐗╂枡id
-        Material material = materialMapper.selectOne(Wrappers.<Material>query()
-                .eq("name", rawInspect.getName())
-                .eq("code", rawInspect.getCode()));
-        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
-        String specification = rawInspect.getSpecifications();
-        String[] strings = specification.split("-");
-        String stName = strings[0];//瑙勬牸鍚嶇О
-        String spName = strings[1];//鍨嬪彿鍚嶇О
-        //鑾峰彇瑙勬牸id
-        Standard standard = standardService.getOne(Wrappers.<Standard>query()
-                .eq("name", stName)
-                .eq("material_id", material.getId()));
-        //鑾峰彇鍨嬪彿id
-        Specifications specifications = specificationsService.selectSpIdByname(standard.getId(), spName);
-        //鏍规嵁鍨嬪彿id鏌ヨ椤圭洰淇℃伅
-        List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specifications.getId()));
-        ArrayList<RawInsProduct> list = new ArrayList<>();
-        for (Product product : productList) {
-            RawInsProduct rawInsProduct = RawInsProduct.builder()
-                    .name(product.getName())
-                    .unit(product.getUnit())
-                    .required(product.getRequired())
-                    .internal(product.getInternal())
-                    .rawInspectId(rawInspect.getId())
-                    .build();
-            list.add(rawInsProduct);
+    /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+    //濡傛灉鏄辩殑鎿嶄綔
+    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;
         }
-        //妫�楠岄」鐩壒閲忔坊鍔�
-        rawInsProductService.saveBatch(list);
-        return rawInspect.getId();
+        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;
+            }
+        }
     }
 }
 

--
Gitblit v1.9.3