src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
@@ -26,4 +26,9 @@ //现存量 private String currentStock; //订单 private String npsNo; //工单 private String workOrderNo; } src/main/java/com/ruoyi/stock/service/StockInRecordService.java
@@ -12,7 +12,7 @@ public interface StockInRecordService extends IService<StockInRecord> { IPage<StockInRecordDto> listPage(Page page, StockInRecordDto stockInRecordDto); int add(StockInRecordDto stockInRecordDto); Long add(StockInRecordDto stockInRecordDto); int update(Long id, StockInRecordDto stockInRecordDto); src/main/java/com/ruoyi/stock/service/StockInventoryService.java
@@ -43,5 +43,5 @@ void updateOrCreateStockInventory(StockInRecord stockInRecord); void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception; void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception; } src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -52,12 +52,17 @@ // 新增入库 @Override @Transactional(rollbackFor = Exception.class) public int add(StockInRecordDto stockInRecordDto) { public Long add(StockInRecordDto stockInRecordDto) { String no = OrderUtils.countTodayByCreateTime(stockInRecordMapper, "RK"); stockInRecordDto.setInboundBatches(no); StockInRecord stockInRecord = new StockInRecord(); BeanUtils.copyProperties(stockInRecordDto, stockInRecord); return stockInRecordMapper.insert(stockInRecord); int insertRows = stockInRecordMapper.insert(stockInRecord); Long insertId = stockInRecord.getId(); // 替换为你的实际主键字段:getRecordId()/getInboundId() 等 return insertRows > 0 ? insertId : null; } @Override @@ -127,7 +132,7 @@ public int updateStockInRecord(StockInRecordDto stockInRecordDto) { LoginUser loginUser = SecurityUtils.getLoginUser(); try { stockInventoryService.addApproveByPurchase(loginUser, stockInRecordDto); stockInventoryService.addApproveByPurchase(loginUser, stockInRecordDto,stockInRecordDto.getId()); } catch (Exception e) { e.printStackTrace(); } src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -78,11 +78,11 @@ stockInRecordDto.setWarnNum(stockInventoryDto.getWarnNum()); stockInRecordDto.setLockedQuantity(stockInventoryDto.getLockedQuantity()); stockInRecordDto.setType("0"); int add = stockInRecordService.add(stockInRecordDto); Long id = stockInRecordService.add(stockInRecordDto); LoginUser loginUser = SecurityUtils.getLoginUser(); if (add > 0) { if (id != null) { try { addApproveByPurchase(loginUser, stockInRecordDto); addApproveByPurchase(loginUser, stockInRecordDto,id); } catch (Exception e) { e.printStackTrace(); } @@ -90,7 +90,7 @@ return true; } public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception { public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception { ApproveProcessVO approveProcessVO = new ApproveProcessVO(); approveProcessVO.setApproveType(9); approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId()); @@ -100,7 +100,7 @@ approveProcessVO.setApproveTime(LocalDate.now().toString()); approveProcessVO.setInventoryReview(false); approveProcessVO.setStorageType("合格入库"); approveProcessVO.setRecordId(stockInRecordDto.getId()); approveProcessVO.setRecordId(id); approveProcessService.addApprove(approveProcessVO); } src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -64,13 +64,13 @@ stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId()); stockInRecordDto.setRemark(stockUninventoryDto.getRemark()); stockInRecordDto.setType("1"); int add = stockInRecordService.add(stockInRecordDto); Long id = stockInRecordService.add(stockInRecordDto); LoginUser loginUser = SecurityUtils.getLoginUser(); if (add > 0){ if (id != null) { try { addApproveByPurchase(loginUser,stockInRecordDto); }catch (Exception e){ addApproveByPurchase(loginUser, stockInRecordDto,id); } catch (Exception e) { e.printStackTrace(); } } @@ -78,7 +78,7 @@ return 1; } public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception { public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception { ApproveProcessVO approveProcessVO = new ApproveProcessVO(); approveProcessVO.setApproveType(9); approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId()); @@ -88,12 +88,13 @@ approveProcessVO.setApproveTime(LocalDate.now().toString()); approveProcessVO.setInventoryReview(false); approveProcessVO.setStorageType("不合格入库"); approveProcessVO.setRecordId(stockInRecordDto.getId()); approveProcessVO.setRecordId(id); approveProcessService.addApprove(approveProcessVO); } /** * 更新或创建非良品库存信息 * * @param stockInRecord 非良品库存DTO对象 */ public void updateOrCreateStockUninventory(StockInRecord stockInRecord) { @@ -142,7 +143,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; @@ -152,18 +153,18 @@ public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) { List<StockUnInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto); ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class); util.exportExcel(response,list, "不合格库存信息"); 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); @@ -172,7 +173,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("解冻数量不能超过冻结数量"); } stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().subtract(stockInventoryDto.getLockedQuantity())); src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -58,16 +58,25 @@ </select> <select id="selectByRecord" resultType="com.ruoyi.stock.dto.StockInRecordDto"> SELECT po.nps_no, pwo.work_order_no, sir.*, p.product_name as product_name, p.product_name AS product_name, pm.model, pm.unit, u.nick_name as createBy FROM stock_in_record as sir LEFT JOIN product_model as pm on sir.product_model_id = pm.id LEFT JOIN product as p on pm.product_id = p.id LEFT JOIN sys_user as u on sir.create_user = u.user_id WHERE sir.id= #{id} order by sir.id desc u.nick_name AS createBy FROM stock_in_record AS sir LEFT JOIN product_model AS pm ON sir.product_model_id = pm.id LEFT JOIN product AS p ON pm.product_id = p.id LEFT JOIN sys_user AS u ON sir.create_user = u.user_id LEFT JOIN quality_inspect qi ON qi.id = sir.record_id LEFT JOIN production_product_main ppm ON ppm.id = qi.product_main_id LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id LEFT JOIN product_order po ON po.id = pwo.product_order_id WHERE sir.id = 233 ORDER BY sir.id DESC </select> </mapper>