From b0bbbf71d1e6ecdbe4abbcc39127f5aac6502f1e Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期三, 20 五月 2026 16:39:25 +0800
Subject: [PATCH] feat(production): 添加产品主记录审核功能
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 54 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 37 insertions(+), 17 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 b09e03d..c0cc9d0 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -48,12 +48,15 @@
import java.util.Objects;
import java.util.stream.Collectors;
+import static cn.hutool.core.date.LocalDateTimeUtil.between;
+
@Service
@AllArgsConstructor
@Transactional(rollbackFor = Exception.class)
public class ProductionProductMainServiceImpl extends ServiceImpl<ProductionProductMainMapper, ProductionProductMain> implements ProductionProductMainService {
private final SalesLedgerMapper salesLedgerMapper;
+ private final ProductionMachineRecordMapper productionMachineRecordMapper;
private IQualityInspectService qualityInspectService;
private ProductionProductMainMapper productionProductMainMapper;
@@ -227,8 +230,12 @@
}
productOrderMapper.updateById(productOrder);
}
-
- //nextAddProductMain(productionProductOutput) // 鐢变簬闇�瑕佸鏍革紝鎵�浠ラ渶瑕佹媶灏佷笅鏉�
+ ProductAuditVo productAuditVo = new ProductAuditVo();
+ productAuditVo.setId(productionProductMain.getId());
+ productAuditVo.setAuditStatus(AuditEnum.AUDIT_SUCCESS);
+ productAuditVo.setAuditOpinion("");
+ auditProductMain(productAuditVo);
+// nextAddProductMain(productionProductOutput) // 鐢变簬闇�瑕佸鏍革紝鎵�浠ラ渶瑕佹媶灏佷笅鏉�
return true;
}
@@ -368,21 +375,34 @@
/*娣诲姞鐢熶骇鏍哥畻 鍖哄垎宸ュ簭鏄浠惰繕鏄鏃�*/
BigDecimal workHours = productProcess.getSalaryQuota();
- ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
- String userIds = productWorkOrder.getUserIds();
- if (ObjectUtils.isNotEmpty(userIds)) {
- for (String s : userIds.split(",")) {
- SalesLedgerProductionAccounting salesLedgerProductionAccounting = SalesLedgerProductionAccounting.builder()
- .productMainId(productionProductMain.getId())
- .schedulingUserId(Long.parseLong(s))
- .schedulingUserName(userMapper.selectUserById(Long.parseLong(s)).getNickName())
- .finishedNum(productQty)
- .workHours(workHours)
- .process(productProcess.getName())
- .schedulingDate(LocalDate.now())
- .tenantId(productionProductOutput.getTenantId())
- .build();
- salesLedgerProductionAccountingMapper.insert(salesLedgerProductionAccounting);
+ List<ProductionMachineRecord> productionMachineRecords = productionMachineRecordMapper.selectList(Wrappers.<ProductionMachineRecord>lambdaQuery().eq(ProductionMachineRecord::getWorkOrderId, productionProductMain.getWorkOrderId()));
+ if (ObjectUtils.isNotEmpty(productionMachineRecords)) {
+ for (ProductionMachineRecord productionMachineRecord : productionMachineRecords) {
+ //璇存槑宸茬粡娣诲姞杩囦簡锛屼笉娣诲姞浜�
+ if (productionMachineRecord.getReportStatus()) {
+ continue;
+ }
+ for (String s : productionMachineRecord.getOperatorId().split(",")) {
+ Long minutes = 0L;
+ if (productionMachineRecord.getMachineStartTime() != null) {
+ minutes = between(productionMachineRecord.getMachineStartTime(), LocalDateTime.now()).toMinutes();
+ }
+ SalesLedgerProductionAccounting salesLedgerProductionAccounting = SalesLedgerProductionAccounting.builder()
+ .productMainId(productionProductMain.getId())
+ .schedulingUserId(Long.parseLong(s))
+ .schedulingUserName(userMapper.selectUserById(Long.parseLong(s)).getNickName())
+ .finishedNum(productQty)
+ .workHours(workHours)
+ .process(productProcess.getName())
+ .schedulingDate(LocalDate.now())
+ .tenantId(productionProductOutput.getTenantId())
+ .deviceId(productionMachineRecord.getMachineId())
+ .workHour(minutes)
+ .build();
+ salesLedgerProductionAccountingMapper.insert(salesLedgerProductionAccounting);
+ }
+ productionMachineRecord.setReportStatus(true);
+ productionMachineRecordMapper.updateById(productionMachineRecord);
}
}
}
--
Gitblit v1.9.3