From 768b011a17b9e63e4b6570989824152145952eda Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 08 四月 2026 17:30:06 +0800
Subject: [PATCH] feat: 排产指派工人进行报工
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 27 +++++++++++++++++++++++----
1 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index fa34114..d3712b1 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -92,6 +92,25 @@
@Override
public Boolean addProductMain(ProductionProductMainDto dto) {
+ ProductWorkOrder workOrder = productWorkOrderMapper.selectById(dto.getWorkOrderId());
+ if (workOrder == null) {
+ throw new ServiceException("鎶ュ伐澶辫触,宸ュ崟涓嶅瓨鍦�");
+ }
+ Long currentUserId = dto.getUserId();
+ Long workerId = workOrder.getWorkerId();
+ Long handoverUserId = workOrder.getHandoverUserId();
+ boolean isWorker = workerId != null && workerId.equals(currentUserId);
+ boolean isHandover = handoverUserId != null && handoverUserId.equals(currentUserId);
+
+ if (!isWorker) {
+ // 涓嶆槸鎸囨淳宸ヤ汉
+ if (handoverUserId == null) {
+ throw new ServiceException("鎶ュ伐澶辫触,褰撳墠宸ュ崟鏈氦鎺�,鍙湁鎸囨淳宸ヤ汉鍙互鎶ュ伐");
+ }
+ if (!isHandover) {
+ throw new ServiceException("鎶ュ伐澶辫触,浣犱笉鏄宸ュ崟鐨勪氦鎺ヤ汉鍛�");
+ }
+ }
SysUser user = userMapper.selectUserById(dto.getUserId());
ProductionProductMain productionProductMain = new ProductionProductMain();
//褰撳墠宸ヨ壓璺嚎瀵瑰簲鐨勫伐搴忚鎯�
@@ -207,7 +226,7 @@
qualityInspectParamMapper.insert(param);
});
}
- }else {
+ } else {
//鐩存帴鍏ュ簱
stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId());
}
@@ -264,10 +283,10 @@
public Boolean removeProductMain(Long id) {
//鍒ゆ柇璇ユ潯鎶ュ伐鏄惁涓嶅悎鏍煎鐞�,濡傛灉涓嶅悎鏍煎鐞嗕簡锛屽垯涓嶅厑璁稿垹闄�
List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(Wrappers.<QualityInspect>lambdaQuery().eq(QualityInspect::getProductMainId, id));
- if (qualityInspects.size() > 0){
+ if (qualityInspects.size() > 0) {
List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.selectList(Wrappers.<QualityUnqualified>lambdaQuery()
.in(QualityUnqualified::getInspectId, qualityInspects.stream().map(QualityInspect::getId).collect(Collectors.toList())));
- if (qualityUnqualifieds.size() > 0 && qualityUnqualifieds.get(0).getInspectState()==1) {
+ if (qualityUnqualifieds.size() > 0 && qualityUnqualifieds.get(0).getInspectState() == 1) {
throw new ServiceException("璇ユ潯鎶ュ伐宸茬粡涓嶅悎鏍煎鐞嗕簡锛屼笉鍏佽鍒犻櫎");
}
}
@@ -321,7 +340,7 @@
new LambdaQueryWrapper<QualityInspectParam>()
.eq(QualityInspectParam::getInspectId, q.getId()));
qualityInspectMapper.deleteById(q.getId());
- stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
+ stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
});
// 鍒犻櫎浜у嚭璁板綍
--
Gitblit v1.9.3