From a76e1d17d67641993dea6335cb8e1465a94df58d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 21 五月 2026 15:39:05 +0800
Subject: [PATCH] feat(stock): 优化库存管理和成品树结构功能 1- 为ApproveProcessMapper.xml和ProductBomMapper.xml添加排序功能 2- 在ProductionProductMainDto中新增bomInputQty字段用于产品结构投入数量 3- 修改ProductionProductMainServiceImpl中投入数量计算逻辑,使用前端传入的bomInputQty值 4- 在ProductWorkOrderDto中添加bomInputQty字段并在服务实现中计算标准投入数量 5- 更新SalesLedgerMapper.xml查询逻辑,从product_summary获取电压信息 6- 为SalesLedgerProduct添加stockId字段并修改库存扣减逻辑使用具体库存ID 7- 重构StockInventoryController中的成品库存树查询接口和导入导出功能 8- 新增成品和非成品库存导入导出的数据模型和Excel工具类 9- 优化StockInventoryServiceImpl中的库存扣减逻辑,支持按特定库存ID操作 10- 更新库存导入导出功能,区分成品和非成品类型并提供相应模板
---
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java | 69 ++++++++++++++++++++++++++--------
1 files changed, 52 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
index 3de1ca9..d421345 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -1,7 +1,6 @@
package com.ruoyi.staff.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,11 +12,9 @@
import com.ruoyi.project.system.mapper.SysPostMapper;
import com.ruoyi.staff.dto.StaffOnJobDto;
import com.ruoyi.staff.mapper.StaffContractMapper;
-import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper;
import com.ruoyi.staff.mapper.StaffLeaveMapper;
import com.ruoyi.staff.mapper.StaffOnJobMapper;
import com.ruoyi.staff.pojo.StaffContract;
-import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import com.ruoyi.staff.pojo.StaffLeave;
import com.ruoyi.staff.pojo.StaffOnJob;
import com.ruoyi.staff.service.IStaffOnJobService;
@@ -26,6 +23,7 @@
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -42,13 +40,14 @@
@Service
public class StaffOnJobServiceImpl extends ServiceImpl<StaffOnJobMapper, StaffOnJob> implements IStaffOnJobService {
-
+ @Autowired
private StaffOnJobMapper staffOnJobMapper;
-
+ @Autowired
private SysPostMapper sysPostMapper;
- private StaffJoinLeaveRecordMapper staffJoinLeaveRecordMapper;
+ @Autowired
private StaffContractMapper staffContractMapper;
+ @Autowired
private StaffLeaveMapper staffLeaveMapper;
@@ -69,6 +68,8 @@
throw new BaseException("缂栧彿涓�"+staffOnJobPrams.getStaffNo()+"鐨勫憳宸ュ凡缁忓瓨鍦�,鏃犳硶鏂板!!!");
}
// 鍒涘缓鍏ヨ亴鏁版嵁
+ staffOnJobPrams.setContractExpireTime(staffOnJobPrams.getContractEndTime());
+ staffOnJobPrams.setStaffState(1);
staffOnJobMapper.insert(staffOnJobPrams);
// 鍒涘缓鍚堝悓璁板綍
@@ -90,20 +91,21 @@
throw new BaseException("缂栧彿涓�"+staffOnJobParams.getStaffNo()+"鐨勫憳宸ヤ笉瀛樺湪,鏃犳硶鏇存柊!!!");
}
- // 鏇存柊鍛樺伐鏁版嵁
- String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
- BeanUtils.copyProperties(staffOnJobParams,job,ignoreProperties);
- staffOnJobMapper.updateById(job);
+ String[] ignoreProperties = {"id"};//鎺掗櫎鏇存柊灞炴��
// 鑾峰彇鏈�鏂板悎鍚屾暟鎹紝骞朵笖鏇存柊
StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery()
.eq(StaffContract::getStaffOnJobId, id)
+ .last("limit 1")
.orderByDesc(StaffContract::getId));
if (contract != null){
BeanUtils.copyProperties(staffOnJobParams,contract,ignoreProperties);
- return staffContractMapper.updateById(contract);
+ staffContractMapper.updateById(contract);
}
- return 0;
+
+ // 鏇存柊鍛樺伐鏁版嵁
+ staffOnJobParams.setContractExpireTime(staffOnJobParams.getContractEndTime());
+ return staffOnJobMapper.updateById(staffOnJobParams);
}
//鍒犻櫎鍏ヨ亴
@@ -118,19 +120,52 @@
return staffContractMapper.delete(Wrappers.<StaffContract>lambdaQuery().in(StaffContract::getStaffOnJobId, ids));
}
+ // 缁鍚堝悓
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int renewContract(Long id, StaffContract staffContract) {
+ // 鍒ゆ柇瀵硅薄鏄惁瀛樺湪
+ StaffOnJob job = staffOnJobMapper.selectById(id);
+ if (job == null){
+ throw new BaseException("璇ュ憳宸ヤ笉瀛樺湪,鏃犳硶鏇存柊!!!");
+ }
+
+ // 澧炲姞鍚堝悓
+ StaffContract newStaffContract = new StaffContract();
+ newStaffContract.setStaffOnJobId(id);
+ newStaffContract.setContractTerm(staffContract.getContractTerm());
+ newStaffContract.setContractStartTime(staffContract.getContractStartTime());
+ newStaffContract.setContractEndTime(staffContract.getContractEndTime());
+ staffContractMapper.insert(newStaffContract);
+
+ // 鏇存柊鍛樺伐鍚堝悓杩囨湡鏃堕棿
+ job.setContractExpireTime(staffContract.getContractEndTime());
+ staffOnJobMapper.updateById(job);
+ return 0;
+ }
+
//鍦ㄨ亴鍛樺伐璇︽儏
@Override
public StaffOnJobDto staffOnJobDetail(Long id) {
StaffOnJob staffOnJob = staffOnJobMapper.selectById(id);
+ if (staffOnJob == null) {
+ throw new IllegalArgumentException("璇ュ憳宸ヤ笉瀛樺湪");
+ }
+
StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
// 鏌ヨ宀椾綅鍚嶇О
- SysPost post = sysPostMapper.selectPostById((long) staffOnJob.getSysPostId());
- staffOnJobDto.setPostName(post.getPostName());
+ if (staffOnJob.getSysPostId() != null) {
+ SysPost post = sysPostMapper.selectPostById(staffOnJob.getSysPostId().longValue());
+ if (post != null) {
+ staffOnJobDto.setPostName(post.getPostName());
+ }
+ }
// 鏌ヨ鍚堝悓淇℃伅
StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery()
.eq(StaffContract::getStaffOnJobId, staffOnJob.getId())
+ .last("limit 1")
.orderByDesc(StaffContract::getId));
if (contract != null){
staffOnJobDto.setContractTerm(contract.getContractTerm());
@@ -145,12 +180,12 @@
public void staffOnJobExport(HttpServletResponse response, StaffOnJob staffOnJob) {
List<StaffOnJobDto> staffOnJobs = staffOnJobMapper.staffOnJobList(staffOnJob);
ExcelUtil<StaffOnJobDto> util = new ExcelUtil<StaffOnJobDto>(StaffOnJobDto.class);
- util.exportExcel(response, staffOnJobs, "鍦ㄨ亴鍛樺伐鍙拌处瀵煎嚭");
+ util.exportExcel(response, staffOnJobs, "鍛樺伐鍙拌处瀵煎嚭");
}
@Override
- public List<StaffJoinLeaveRecord> staffOnJobList() {
- return staffJoinLeaveRecordMapper.staffOnJobList();
+ public List<StaffOnJobDto> staffOnJobList(StaffOnJob staffOnJob) {
+ return staffOnJobMapper.staffOnJobList(staffOnJob);
}
@Override
--
Gitblit v1.9.3