From 423189d101d532e13e0a0d35a6651107aa1cae34 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 21 十一月 2024 14:56:23 +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