From 74f9e1f4f009907d4f8ebda80f522a25a25f87f2 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 11 三月 2026 10:32:59 +0800
Subject: [PATCH] fix:同步(安全培训-筛选优化)
---
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java | 100 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 79 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
index 4c3233b..6fdef58 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -1,17 +1,23 @@
package com.ruoyi.stock.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl;
+import com.ruoyi.approve.vo.ApproveProcessVO;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.stock.dto.StockInRecordDto;
import com.ruoyi.stock.dto.StockInventoryDto;
import com.ruoyi.stock.dto.StockOutRecordDto;
import com.ruoyi.stock.dto.StockUninventoryDto;
-import com.ruoyi.stock.execl.StockInventoryExportData;
+import com.ruoyi.stock.execl.StockUnInventoryExportData;
import com.ruoyi.stock.mapper.StockUninventoryMapper;
+import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.pojo.StockUninventory;
import com.ruoyi.stock.service.StockInRecordService;
import com.ruoyi.stock.service.StockOutRecordService;
@@ -21,6 +27,8 @@
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDate;
+import java.util.Date;
import java.util.List;
/**
@@ -38,6 +46,7 @@
private StockUninventoryMapper stockUninventoryMapper;
private StockOutRecordService stockOutRecordService;
private StockInRecordService stockInRecordService;
+ private ApproveProcessServiceImpl approveProcessService;
@Override
public IPage<StockUninventoryDto> pageStockUninventory(Page page, StockUninventoryDto stockUninventoryDto) {
@@ -53,22 +62,71 @@
stockInRecordDto.setRecordType(stockUninventoryDto.getRecordType());
stockInRecordDto.setStockInNum(stockUninventoryDto.getQualitity());
stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
+ stockInRecordDto.setRemark(stockUninventoryDto.getRemark());
+ stockInRecordDto.setApproveStatus(0);
stockInRecordDto.setType("1");
- stockInRecordService.add(stockInRecordDto);
- //鍐嶈繘琛屾柊澧炲簱瀛樻暟閲忓簱瀛�
- //鍏堟煡璇㈠簱瀛樿〃涓殑浜у搧鏄惁瀛樺湪锛屼笉瀛樺湪鏂板锛屽瓨鍦ㄦ洿鏂�
- StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
- if (ObjectUtils.isEmpty(oldStockUnInventory)) {
- StockUninventory newStockUnInventory = new StockUninventory();
- newStockUnInventory.setProductModelId(stockUninventoryDto.getProductModelId());
- newStockUnInventory.setQualitity(stockUninventoryDto.getQualitity());
- newStockUnInventory.setVersion(1);
- newStockUnInventory.setRemark(stockUninventoryDto.getRemark());
- stockUninventoryMapper.insert(newStockUnInventory);
- }else {
- stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
+ Long id = stockInRecordService.add(stockInRecordDto);
+
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (id != null) {
+ try {
+ addApproveByPurchase(loginUser, stockInRecordDto,id);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
+
return 1;
+ }
+
+ public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception {
+ ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+ approveProcessVO.setApproveType(9);
+ approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
+ approveProcessVO.setApproveReason(stockInRecordDto.getInboundBatches());
+ approveProcessVO.setApproveUserIds(String.valueOf(1));
+ approveProcessVO.setApproveUser(loginUser.getUserId());
+ approveProcessVO.setApproveTime(LocalDate.now().toString());
+ approveProcessVO.setInventoryReview(false);
+ approveProcessVO.setStorageType("涓嶅悎鏍煎叆搴�");
+ approveProcessVO.setRecordId(id);
+ approveProcessService.addApprove(approveProcessVO);
+ }
+
+ /**
+ * 鏇存柊鎴栧垱寤洪潪鑹搧搴撳瓨淇℃伅
+ *
+ * @param stockInRecord 闈炶壇鍝佸簱瀛楧TO瀵硅薄
+ */
+ public void updateOrCreateStockUninventory(StockInRecord stockInRecord) {
+ // 鍏堟煡璇㈠簱瀛樿〃涓殑浜у搧鏄惁瀛樺湪
+ StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(
+ new QueryWrapper<StockUninventory>().lambda()
+ .eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId())
+ );
+
+ if (ObjectUtils.isEmpty(oldStockUnInventory)) {
+ // 涓嶅瓨鍦ㄥ垯鏂板
+ StockUninventory newStockUnInventory = new StockUninventory();
+ newStockUnInventory.setProductModelId(stockInRecord.getProductModelId());
+ newStockUnInventory.setQualitity(stockInRecord.getStockInNum());
+ newStockUnInventory.setVersion(1);
+ newStockUnInventory.setRemark(stockInRecord.getRemark());
+ stockUninventoryMapper.insert(newStockUnInventory);
+ } else {
+ LambdaUpdateWrapper<StockUninventory> updateWrapper = new LambdaUpdateWrapper<>();
+ if (stockInRecord.getStockInNum() != null) {
+ updateWrapper.setSql("qualitity = qualitity + " + stockInRecord.getStockInNum());
+ }
+ updateWrapper.setSql("version = version + 1");
+ String remark = stockInRecord.getRemark();
+ if (remark != null && !remark.isEmpty()) {
+ updateWrapper.set(StockUninventory::getRemark, remark);
+ }
+ updateWrapper.set(StockUninventory::getUpdateTime, new Date());
+ updateWrapper.eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId());
+ stockUninventoryMapper.update(null, updateWrapper);
+ }
}
@Override
@@ -86,7 +144,7 @@
StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
if (ObjectUtils.isEmpty(oldStockInventory)) {
throw new RuntimeException("浜у搧搴撳瓨涓嶅瓨鍦�");
- }else {
+ } else {
stockUninventoryMapper.updateSubtractStockUnInventory(stockUninventoryDto);
}
return 1;
@@ -94,20 +152,20 @@
@Override
public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
- List<StockInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto);
- ExcelUtil<StockInventoryExportData> util = new ExcelUtil<>(StockInventoryExportData.class);
- util.exportExcel(response,list, "涓嶅悎鏍煎簱瀛樹俊鎭�");
+ List<StockUnInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto);
+ ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class);
+ util.exportExcel(response, list, "涓嶅悎鏍煎簱瀛樹俊鎭�");
}
@Override
public Boolean frozenStock(StockInventoryDto stockInventoryDto) {
StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
- if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
+ if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity()) < 0) {
throw new RuntimeException("鍐荤粨鏁伴噺涓嶈兘瓒呰繃搴撳瓨鏁伴噺");
}
if (ObjectUtils.isEmpty(stockUninventory.getLockedQuantity())) {
stockUninventory.setLockedQuantity(stockInventoryDto.getLockedQuantity());
- }else {
+ } else {
stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().add(stockInventoryDto.getLockedQuantity()));
}
return this.updateById(stockUninventory);
@@ -116,7 +174,7 @@
@Override
public Boolean thawStock(StockInventoryDto stockInventoryDto) {
StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
- if (stockUninventory.getLockedQuantity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
+ if (stockUninventory.getLockedQuantity().compareTo(stockInventoryDto.getLockedQuantity()) < 0) {
throw new RuntimeException("瑙e喕鏁伴噺涓嶈兘瓒呰繃鍐荤粨鏁伴噺");
}
stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().subtract(stockInventoryDto.getLockedQuantity()));
--
Gitblit v1.9.3