From 929c6698f4d7598997fc233e09c39c3bdce9fcf8 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 14 八月 2025 10:23:15 +0800
Subject: [PATCH] 判断合格绝对值的问题
---
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java | 137 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 137 insertions(+), 0 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
new file mode 100644
index 0000000..f4c5291
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
@@ -0,0 +1,137 @@
+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.mapper.WarehouseHistoryMapper;
+import com.yuanchu.mom.pojo.InsOrder;
+import com.yuanchu.mom.pojo.InsProduct;
+import com.yuanchu.mom.pojo.InsSample;
+import com.yuanchu.mom.pojo.WarehouseHistory;
+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 {
+
+ private InsProductMapper insProductMapper;
+
+ private InsOrderMapper insOrderMapper;
+
+ private InsSampleMapper insSampleMapper;
+
+ private WarehouseHistoryMapper warehouseHistoryMapper;
+
+ @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);
+ //鍑哄叆搴撹褰曞叏閮ㄥ垹鎺�
+ warehouseHistoryMapper.delete(Wrappers.<WarehouseHistory>lambdaQuery().in(WarehouseHistory::getInsSampleId, collect));
+ //鍏ㄩ儴鎾ら攢,鏍峰搧鍜岄」鐩笉鑳藉垹鎺�,涓嶇劧妫�楠屼笅鍗曠殑鎾ら攢娌℃湁鏁版嵁
+ } else {
+ List<InsProduct> products = insProductMapper.selectBatchIds(ids);
+ //濡傛灉璇ユ楠屽崟鏌愪釜鏍峰搧涓嬬殑椤圭洰鍏ㄩ儴閮芥挙閿�浜�,閭d箞杩欎釜鏍峰搧鐨勫嚭鍏ュ簱璁板綍涔熼渶瑕佸垹鎺�
+ List<Integer> sampleIds = products.stream().map(InsProduct::getInsSampleId).distinct().collect(Collectors.toList());
+ //椤圭洰鍒犳帀
+ insProductMapper.deleteBatchIds(ids);
+ for (Integer sampleId : sampleIds) {
+ Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
+ .eq(InsProduct::getInsSampleId, sampleId)
+ .eq(InsProduct::getState, 1));
+ if (count <= 0) {
+ //鍑哄叆搴撹褰曞叏閮ㄥ垹鎺�
+ warehouseHistoryMapper.delete(Wrappers.<WarehouseHistory>lambdaQuery().eq(WarehouseHistory::getInsSampleId, sampleId));
+ //瀵瑰簲鐨勬牱鍝佸垹鎺�
+ insSampleMapper.deleteById(sampleId);
+ }
+ }
+ }
+ }
+ insOrder.setIsRevocation(state);
+ insOrderMapper.updateById(insOrder);
+
+ }
+}
+
+
+
+
--
Gitblit v1.9.3