From bcc80a6833abe9f24abdb978f7c7f01b664a574f Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 18 二月 2025 14:48:45 +0800 Subject: [PATCH] 优化调整 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 109 insertions(+), 3 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 6b88b75..f4c5291 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,11 +1,29 @@ 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 @@ -14,15 +32,103 @@ 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) { - insProductMapper.updateInspected(id); - return 0; + 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