From 4f3a98f19143865cdc1de4791e8a95d96bd40c65 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 01 八月 2025 13:27:59 +0800
Subject: [PATCH] yys 密码已重置

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java |  223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 223 insertions(+), 0 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
new file mode 100644
index 0000000..2f7409b
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
@@ -0,0 +1,223 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+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.ruoyi.basic.mapper.StandardProductListMapper;
+import com.ruoyi.basic.pojo.StandardProductList;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.dto.InsProductBindingDto;
+import com.ruoyi.inspect.mapper.InsOrderMapper;
+import com.ruoyi.inspect.mapper.InsProductMapper;
+import com.ruoyi.inspect.mapper.InsSampleMapper;
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.pojo.InsSample;
+import com.ruoyi.inspect.service.InsProductService;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@AllArgsConstructor
+@Transactional(rollbackFor = Exception.class)
+public class InsProductServiceImpl extends ServiceImpl<InsProductMapper, InsProduct>
+        implements InsProductService {
+
+    private InsProductMapper insProductMapper;
+
+    private InsOrderMapper insOrderMapper;
+
+    private InsSampleMapper insSampleMapper;
+
+    private StandardProductListMapper standardProductListMapper;
+
+    @Override
+    public int selectOrderManDay(Integer orderId) {
+        return insProductMapper.selectOrderManDay(orderId);
+    }
+
+    @Override
+    public int updateInspected(Integer id, String ids) {
+        InsOrder insOrder = new InsOrder();
+        insOrder.setId(id);
+        insOrder.setIsRevocation(1);//闇�瑕佸鏍�
+        insOrder.setRevocationInsProductIds(ids);
+        return insOrderMapper.updateById(insOrder);
+    }
+
+    @Override
+    public boolean write(InsOrder insOrder) {
+        insOrderMapper.updateById(insOrder);
+        return true;
+    }
+
+    //鏌ヨ寰呮椤圭洰
+    @Override
+    public IPage<InsProduct> selectNoProducts(Page page, InsProduct insProduct, Integer orderId, String ids) {
+        List<Integer> noIds = null;
+        if (StringUtils.isNotBlank(ids)) {
+            noIds = Arrays.asList(ids.split(",")).stream()
+                    .map(Integer::parseInt)
+                    .collect(Collectors.toList());
+        }
+        IPage<InsProduct> insProductIPage = baseMapper.selectNoProducts(page, orderId, noIds);
+        return insProductIPage;
+    }
+
+    //瀹℃牳寰呮鎾ら攢
+    @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()));
+            }
+            //insProductMapper.updateInspected(id);
+        }
+        //涓嶉�氳繃
+        insOrder.setIsRevocation(0);
+        insOrderMapper.updateById(insOrder);
+
+    }
+
+
+    /**
+     * 鏍规嵁妫�楠岄」id鏌ヨ妫�楠岄」鏍戜俊鎭�
+     * @param productId
+     * @return
+     */
+    @Override
+    public List<InsProduct> getProductTreeByProductId(Integer productId) {
+        // 鏌ヨ妫�楠岄」淇℃伅
+        InsProduct insProduct = insProductMapper.selectById(productId);
+        String tree = insProduct.getFactory() + " - " +
+                insProduct.getLaboratory() + " - " +
+                insProduct.getSampleType() + " - " +
+                insProduct.getSample() + " - " +
+                insProduct.getModel();
+        // 鏌ヨ鏍囧噯鏍�
+        List<StandardProductList> standardProductLists = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
+                .eq(StandardProductList::getStandardMethodListId, insProduct.getStandardMethodListId())
+                .eq(StandardProductList::getTree, tree));
+
+        List<InsProduct> insProducts = standardProductLists.stream().map(standardProductList -> {
+            InsProduct product = new InsProduct();
+            BeanUtils.copyProperties(standardProductList, product);
+            // 闃叉搴忓垪鍖栭敊璇�
+            product.setTemplate(null);
+            product.setStyle(null);
+            return product;
+        }).sorted((o1, o2) -> (o1.getSort() == null ? 0 : o1.getSort())
+                - (o2.getSort() == null ? 0 : o2.getSort())).collect(Collectors.toList());
+        return insProducts;
+    }
+
+    /**
+     * 鐗规畩妫�楠岄」缁戝畾
+     * @param insProductBindingDto
+     * @return
+     */
+    @Override
+    public boolean bindingProductTreeByProductId(InsProductBindingDto insProductBindingDto) {
+        if (insProductBindingDto.getInsProductId() == null) {
+            throw new ErrorException("缂哄皯妫�楠岄」缁戝畾id");
+        }
+
+        List<InsProduct> insProductBindingList = insProductBindingDto.getInsProductBindingList();
+        // 鏌ヨ鍘熸湰妫�楠岄」
+        InsProduct insProduct = insProductMapper.selectById(insProductBindingDto.getInsProductId());
+
+        for (InsProduct product : insProductBindingList) {
+            product.setBindingProductId(insProductBindingDto.getInsProductId());
+            product.setAsk(null);
+            product.setTell(null);
+            product.setPrice(null);
+            product.setManHour(null);
+            product.setSection(null);
+            // 鍏宠仈鏍囪瘑
+            product.setRawMaterialTag(insProduct.getRawMaterialTag());
+            product.setRepetitionTag(insProduct.getRepetitionTag());
+            product.setInsSampleId(insProduct.getInsSampleId());
+            product.setIsBinding(1);
+            product.setState(1);
+        }
+
+        // 鍒ゆ柇鏄惁鏄數缂嗘槸鐢电紗闇�瑕佹坊鍔犳墍鏈夌數缂嗗叧鑱斿叧绯�
+        if (StringUtils.isNotBlank(insProduct.getCableTag())) {
+            // 鏌ヨ鍏朵粬鐢电紗
+            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+                    .eq(InsProduct::getInsSampleId, insProduct.getInsSampleId())
+                    .eq(InsProduct::getStructureItemParameterId, insProduct.getStructureItemParameterId())
+                    .isNotNull(InsProduct::getCableTag));
+            for (InsProduct product : insProducts) {
+                for (InsProduct insProduct1 : insProductBindingList) {
+                    insProduct1.setId(null);
+                    insProduct1.setBindingProductId(product.getId());
+                    insProduct1.setCableTag(product.getCableTag());
+                }
+                this.saveBatch(insProductBindingList);
+            }
+        } else {
+            this.saveBatch(insProductBindingList);
+        }
+
+        return true;
+    }
+
+    /**
+     * 鍒犻櫎鐗规畩妫�楠岄」缁戝畾淇℃伅
+     * @param productId
+     * @return
+     */
+    @Override
+    public boolean removeBindingProductTree(Integer productId) {
+        // 鏌ヨ妫�楠岄」
+        InsProduct insProduct = insProductMapper.selectById(productId);
+        // 鍒ゆ柇鏄惁鏄數缂嗛厤缃�, 闇�瑕佸垹闄ゅ叧鑱旂殑鎵�鏈夌殑妫�楠岄」
+        if (StringUtils.isNotBlank(insProduct.getCableTag())) {
+            insProductMapper.delete(Wrappers.<InsProduct>lambdaQuery()
+                    .eq(InsProduct::getInsSampleId, insProduct.getInsSampleId())
+                    .eq(InsProduct::getIsBinding, 1)
+                    .isNotNull(InsProduct::getBindingProductId)
+                    .eq(InsProduct::getStructureItemParameterId, insProduct.getStructureItemParameterId())
+                    .isNotNull(InsProduct::getCableTag));
+        } else {
+            insProductMapper.deleteById(productId);
+        }
+        return false;
+    }
+
+
+}
+
+
+
+

--
Gitblit v1.9.3