From 97bb7a8832281eafe0ef947ea095258d355e52f5 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 30 十二月 2024 15:57:51 +0800
Subject: [PATCH] 无源器件的数采+电路模版查询

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java |  119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 113 insertions(+), 6 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
index d3a347f..d4123f0 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
@@ -1,23 +1,130 @@
 package com.yuanchu.mom.service.impl;
 
+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.common.PrintChina;
+import com.yuanchu.mom.dto.InsProductDto;
+import com.yuanchu.mom.exception.ErrorException;
+import com.yuanchu.mom.mapper.InsOrderMapper;
 import com.yuanchu.mom.mapper.InsProductMapper;
+import com.yuanchu.mom.mapper.InsSampleMapper;
+import com.yuanchu.mom.pojo.InsOrder;
 import com.yuanchu.mom.pojo.InsProduct;
+import com.yuanchu.mom.pojo.InsSample;
 import com.yuanchu.mom.service.InsProductService;
+import com.yuanchu.mom.utils.QueryWrappers;
+import com.yuanchu.mom.vo.InsOrderPlanVO;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
 public class InsProductServiceImpl extends ServiceImpl<InsProductMapper, InsProduct>
-		implements InsProductService {
+        implements InsProductService {
 
-	private InsProductMapper insProductMapper;
+    private InsProductMapper insProductMapper;
 
-	@Override
-	public int selectOrderManDay(Integer orderId) {
-		return insProductMapper.selectOrderManDay(orderId);
-	}
+    private InsOrderMapper insOrderMapper;
+
+    private InsSampleMapper insSampleMapper;
+
+    @Override
+    public int selectOrderManDay(Integer orderId) {
+        return insProductMapper.selectOrderManDay(orderId);
+    }
+
+    @Override
+    public int updateInspected(Integer id, String ids) {
+        InsOrder insOrder = insOrderMapper.selectById(id);
+        insOrder.setIsRevocation(1);//闇�瑕佸鏍�
+        insOrder.setRevocationInsProductIds(ids);
+        insOrderMapper.updateById(insOrder);
+        //濡傛灉鏄唴閮ㄥ崟鏃犻渶瀹℃牳鎾ら攢
+        if (insOrder.getOrderType().equals("C")) {
+            checkUpdate(id, 1);
+        }
+        return 1;
+    }
+
+    @Override
+    public boolean write(InsProductDto insProductDto) {
+        List<InsProduct> insProducts = baseMapper.selectBatchIds(insProductDto.getIds());
+        for (InsProduct insProduct : insProducts) {
+            insProduct.setTemperature(insProductDto.getTemperature());
+            insProduct.setHumidity(insProductDto.getHumidity());
+        }
+        return updateBatchById(insProducts);
+    }
+
+    //鏌ヨ寰呮椤圭洰
+    @Override
+    public Map<String, Object> selectNoProducts(Page page, InsProduct insProduct, Integer orderId, String ids) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("head", PrintChina.printChina(InsProduct.class));
+        IPage<InsProduct> insProductIPage = baseMapper.selectNoProducts(page, orderId);
+        if (ObjectUtils.isNotEmpty(ids)) {
+            List<Integer> collect = Arrays.asList(ids.split(",")).stream()
+                    .map(Integer::parseInt)
+                    .collect(Collectors.toList());
+            List<InsProduct> products = insProductIPage.getRecords().stream().filter(record -> collect.contains(record.getId())).collect(Collectors.toList());
+            insProductIPage.setRecords(products);
+        }
+        map.put("body", insProductIPage);
+        return map;
+    }
+
+    //瀹℃牳寰呮鎾ら攢
+    @Override
+    public void checkUpdate(Integer orderId, Integer state) {
+        InsOrder insOrder = insOrderMapper.selectById(orderId);
+        if (state == 1) {
+            List<String> list = new ArrayList<>();
+            try {
+                list = Arrays.asList(insOrder.getRevocationInsProductIds().split(","));
+            } catch (Exception e) {
+                throw new ErrorException("杩樻病鏈夐�夋嫨搴旇瑕佹挙閿�鐨勬楠岄」鐩�");
+            }
+            List<Integer> ids = list.stream()
+                    .map(Integer::parseInt)
+                    .collect(Collectors.toList());
+            List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
+            List<Integer> collect = insSamples.stream().map(InsSample::getId).collect(Collectors.toList());
+            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, collect));
+            if (insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()).equals(ids)) {
+                //濡傛灉璇ユ楠屽崟涓嬬殑鎵�鏈夐」鐩叏閮ㄩ兘鎾ら攢,閭d箞杩欎釜鍗曞瓙涔熼渶瑕佹挙閿�
+                insOrder.setState(3);
+            }
+            else {
+                List<InsProduct> products = insProductMapper.selectBatchIds(ids);
+                //棣栧厛鏍规嵁閫夋嫨鐨勯」鐩甶d杩涜鎾ら攢椤圭洰
+                updateBatchById(products.stream().map(insProduct -> {
+                    insProduct.setState(0);
+                    return insProduct;
+                }).collect(Collectors.toList()));
+                //濡傛灉璇ユ楠屽崟鏌愪釜鏍峰搧涓嬬殑椤圭洰鍏ㄩ儴閮芥挙閿�浜�,閭d箞杩欎釜鏍峰搧涔熼渶瑕佸垹鎺�
+                List<Integer> sampleIds = products.stream().map(InsProduct::getInsSampleId).distinct().collect(Collectors.toList());
+                for (Integer sampleId : sampleIds) {
+                    Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
+                            .eq(InsProduct::getInsSampleId, sampleId)
+                            .eq(InsProduct::getState, 1));
+                    if(count<=0){
+                        insSampleMapper.deleteById(sampleId);
+                    }
+                }
+            }
+            //insProductMapper.updateInspected(id);
+        }
+        //涓嶉�氳繃
+        insOrder.setIsRevocation(0);
+        insOrderMapper.updateById(insOrder);
+
+    }
 }
 
 

--
Gitblit v1.9.3