From 0047f8ce5986c577e6b887403dd24ea884c9ce4b Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 10 三月 2026 13:15:19 +0800
Subject: [PATCH] 入库前需审批,审批后入库(消息通知)
---
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java | 82 ++++++++++++++++++++++++++++++++++------
1 files changed, 69 insertions(+), 13 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 2d5b8f5..ab630bb 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.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,24 +62,71 @@
stockInRecordDto.setRecordType(stockUninventoryDto.getRecordType());
stockInRecordDto.setStockInNum(stockUninventoryDto.getQualitity());
stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
+ stockInRecordDto.setRemark(stockUninventoryDto.getRemark());
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);
+ int add = stockInRecordService.add(stockInRecordDto);
+
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (add > 0){
+ try {
+ addApproveByPurchase(loginUser,stockInRecordDto);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
}
+
return 1;
}
+ public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) 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(stockInRecordDto.getId());
+ 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
@Transactional(rollbackFor = Exception.class)
public Integer subtractStockUninventory(StockUninventoryDto stockUninventoryDto) {
--
Gitblit v1.9.3