From a00890e840b80a741f62eb6cb31b46f13be6202f Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 24 十月 2024 16:46:45 +0800
Subject: [PATCH] 附件调试修改+辐射站点报告生成

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

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java
index 83eaf1d..d480b47 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java
@@ -1,5 +1,7 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.dto.HistoryDto;
@@ -20,6 +22,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
 * @author Administrator
@@ -42,6 +45,8 @@
     private WarehouseCellService warehouseCellService;
 
     private InsSampleMapper insSampleMapper;
+
+    private InsOrderStateMapper insOrderStateMapper;
 
     private InsProductMapper insProductMapper;
 
@@ -98,11 +103,37 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int upShelf(WarehouseShelf warehouseShelf) {
-        warehouseCellMapper.update(null, Wrappers.<WarehouseCell>lambdaUpdate()
-                .eq(WarehouseCell::getShelfId, warehouseShelf.getWarehouseId())
-                .gt(WarehouseCell::getRow, warehouseShelf.getRow())
-                .gt(WarehouseCell::getCol, warehouseShelf.getCol())
-                .set(WarehouseCell::getState, 0));
+        WarehouseShelf shelf = warehouseShelfMapper.selectById(warehouseShelf.getId());
+        if (shelf.getCol()>=warehouseShelf.getCol() && shelf.getRow() >= warehouseShelf.getRow()) {
+            //濡傛灉缁存姢鐨勬暟鎹皬浜庡師鏈夌殑琛屽垪鏁板彲浠ヨ繘琛屼慨鏀�
+            warehouseCellMapper.update(null, Wrappers.<WarehouseCell>lambdaUpdate()
+                    .eq(WarehouseCell::getShelfId, warehouseShelf.getId())
+                    .and(true, wrapper -> wrapper.gt(WarehouseCell::getRow, warehouseShelf.getRow())
+                            .or()
+                            .gt(WarehouseCell::getCol, warehouseShelf.getCol()))
+                    .set(WarehouseCell::getState, 0));
+        }else {
+            //濡傛灉缁存姢鐨勬暟鎹ぇ浜庡師鏈夌殑琛屽垪鏁伴渶瑕佽繘琛岄澶栨坊鍔�
+            List<WarehouseCell> cells = new ArrayList<>();
+            for (int i = 1; i < warehouseShelf.getRow() + 1; i++) {
+                for (int a = 1; a < warehouseShelf.getCol() + 1; a++) {
+                    WarehouseCell cell = new WarehouseCell();
+                    cell.setRow(i);
+                    cell.setCol(a);
+                    cell.setState(1);
+                    cell.setShelfId(warehouseShelf.getId());
+                    WarehouseCell warehouseCell = warehouseCellMapper.selectOne(Wrappers.<WarehouseCell>lambdaQuery()
+                            .eq(WarehouseCell::getShelfId, warehouseShelf.getId())
+                            .eq(WarehouseCell::getRow, i)
+                            .eq(WarehouseCell::getCol, a));
+                    if (ObjectUtils.isNotEmpty(warehouseCell)){
+                        cell.setId(warehouseCell.getId());
+                    }
+                    cells.add(cell);
+                }
+            }
+            warehouseCellService.saveOrUpdateBatch(cells);
+        }
         warehouseShelfMapper.updateById(warehouseShelf);
         return 0;
     }
@@ -139,7 +170,7 @@
     }
 
     @Override
-    public int outWarehouse(String sampleCode) {
+    public int outWarehouse(String sampleCode, boolean a) {
         List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode).select(InsSample::getId,InsSample::getCellId));
         if(samples.size()!=1){
             throw new ErrorException("鏍峰搧缂栧彿杈撳叆鏈夎");
@@ -147,6 +178,21 @@
         if(samples.get(0).getCellId()==null){
             throw new ErrorException("鏍峰搧 " + sampleCode + " 鏈叆搴�");
         }
+        if (!a) {
+            //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙)
+            List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
+                    .eq(InsOrderState::getInsOrderId, samples.get(0).getInsOrderId())
+                    .eq(InsOrderState::getInsState, 5));
+            List<Integer> orderIds = new ArrayList<Integer>();
+            orderIds.add(6);
+            if (CollectionUtils.isEmpty(orderStates)) {
+                List<Integer> collect = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
+                        .eq(InsOrderState::getInsOrderId, samples.get(0).getInsOrderId())).stream().map(InsOrderState::getInsState).distinct().collect(Collectors.toList());
+                if (collect.size()!=0 && !collect.containsAll(orderIds)) {
+                    throw new ErrorException("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙鎴栫户缁瘯楠�,鏆傛椂鏃犳硶鍑哄簱!");
+                }
+            }
+        }
         WarehouseHistory history = new WarehouseHistory();
         history.setState(2);
         history.setInsSampleId(samples.get(0).getId());

--
Gitblit v1.9.3