From 15032d66c35c8154316a4f0170f3b6f470bf4c50 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 29 四月 2026 18:01:20 +0800
Subject: [PATCH] fix:1.报工合格数量更改
---
src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java | 33 +++++++++-------
src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java | 2
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 9 ++--
src/main/resources/mapper/production/ProductionAccountMapper.xml | 19 +++++++++
4 files changed, 43 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java
index 47cb059..5d86e7c 100644
--- a/src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java
+++ b/src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java
@@ -8,49 +8,52 @@
import java.time.LocalDate;
@Data
-@Schema(name = "ProductionAccountVo", description = "鐢熶骇鏍哥畻鍒嗛〉杩斿洖瀵硅薄")
+@Schema(name = "ProductionAccountVo", description = "production account page result")
public class ProductionAccountVo {
- @Schema(description = "瀹㈡埛鍚堝悓鍙�")
+ @Schema(description = "customer contract no")
private String customerContractNo;
- @Schema(description = "椤圭洰鍚嶇О")
+ @Schema(description = "project name")
private String projectName;
- @Schema(description = "瀹㈡埛鍚嶇О")
+ @Schema(description = "customer name")
private String customerName;
- @Schema(description = "浜у搧澶х被")
+ @Schema(description = "product category")
private String productCategory;
- @Schema(description = "瑙勬牸鍨嬪彿")
+ @Schema(description = "specification model")
private String specificationModel;
- @Schema(description = "鍗曚綅")
+ @Schema(description = "unit")
private String unit;
- @Schema(description = "鐢熶骇浜篒D")
+ @Schema(description = "scheduling user id")
private Long schedulingUserId;
- @Schema(description = "鐢熶骇浜哄悕绉�")
+ @Schema(description = "scheduling user name")
private String schedulingUserName;
- @Schema(description = "宸ヨ祫")
+ @Schema(description = "wages")
private BigDecimal wages;
- @Schema(description = "鐢熶骇鏁伴噺")
+ @Schema(description = "finished quantity")
private BigDecimal finishedNum;
- @Schema(description = "宸ユ椂瀹氶")
+ @Schema(description = "salary quota")
private BigDecimal workHours;
- @Schema(description = "宸ュ簭")
+ @Schema(description = "output rate")
+ private String outputRate;
+
+ @Schema(description = "process")
private String process;
- @Schema(description = "鐢熶骇鏃ユ湡")
+ @Schema(description = "scheduling date")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate schedulingDate;
- @Schema(description = "鐢熶骇鏈堜唤(yyyy-MM)")
+ @Schema(description = "scheduling month(yyyy-MM)")
private String schedulingMonth;
}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
index badf048..5e1daef 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
@@ -23,7 +23,7 @@
@Schema(description = "浜у搧id")
private Long productModelId;
- @Schema(description = "鎶ュ伐鏁伴噺(鎬绘暟閲�)")
+ @Schema(description = "鍚堟牸鏁伴噺")
private BigDecimal quantity;
@Schema(description = "鍒涘缓鏃堕棿")
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 9b967c4..216aafa 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -293,7 +293,8 @@
productionProductOutput.setQuantity(defaultDecimal(dto.getQuantity()));
productionProductOutput.setScrapQty(defaultDecimal(dto.getScrapQty()));
productionProductOutputMapper.insert(productionProductOutput);
- BigDecimal productQty = productionProductOutput.getQuantity().subtract(productionProductOutput.getScrapQty());
+ BigDecimal reportQty = defaultDecimal(productionProductOutput.getQuantity());
+ BigDecimal productQty = reportQty;
List<ProductionOrderRoutingOperation> routingOperationList = productionOrderRoutingOperationMapper.selectList(
Wrappers.<ProductionOrderRoutingOperation>lambdaQuery()
@@ -534,8 +535,8 @@
ProductionOperationTask productionOperationTask = productionOperationTaskMapper.selectById(productionProductMain.getProductionOperationTaskId());
if (productionOperationTask != null && productionProductOutput != null) {
- BigDecimal validQuantity = defaultDecimal(productionProductOutput.getQuantity()).subtract(defaultDecimal(productionProductOutput.getScrapQty()));
- productionOperationTask.setCompleteQuantity(defaultDecimal(productionOperationTask.getCompleteQuantity()).subtract(validQuantity));
+ BigDecimal reportQuantity = defaultDecimal(productionProductOutput.getQuantity());
+ productionOperationTask.setCompleteQuantity(defaultDecimal(productionOperationTask.getCompleteQuantity()).subtract(reportQuantity));
productionOperationTask.setActualEndTime(null);
if (defaultDecimal(productionOperationTask.getCompleteQuantity()).compareTo(BigDecimal.ZERO) <= 0) {
productionOperationTask.setCompleteQuantity(BigDecimal.ZERO);
@@ -556,7 +557,7 @@
.eq(ProductionOrderRoutingOperation::getProductionOrderId, routingOperation.getProductionOrderId()));
boolean isLastOperation = routingOperation.getDragSort() != null && routingOperation.getDragSort().equals(routingOperationList.size());
if (isLastOperation) {
- BigDecimal newCompleteQty = defaultDecimal(productionOrder.getCompleteQuantity()).subtract(validQuantity);
+ BigDecimal newCompleteQty = defaultDecimal(productionOrder.getCompleteQuantity()).subtract(reportQuantity);
productionOrder.setCompleteQuantity(newCompleteQty.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : newCompleteQty);
productionOrder.setEndTime(null);
}
diff --git a/src/main/resources/mapper/production/ProductionAccountMapper.xml b/src/main/resources/mapper/production/ProductionAccountMapper.xml
index f213a5f..2841854 100644
--- a/src/main/resources/mapper/production/ProductionAccountMapper.xml
+++ b/src/main/resources/mapper/production/ProductionAccountMapper.xml
@@ -38,6 +38,18 @@
) as decimal(18,4)) as wages,
cast(sum(ifnull(pa.finished_num, 0)) as decimal(18,4)) as finishedNum,
cast(sum(ifnull(pa.work_hours, 0)) as decimal(18,4)) as workHours,
+ case
+ when sum(ifnull(ppo.quantity, 0) + ifnull(ppo.scrapQty, 0)) = 0 then '0%'
+ else concat(
+ cast(
+ round(
+ sum(ifnull(ppo.quantity, 0)) /
+ sum(ifnull(ppo.quantity, 0) + ifnull(ppo.scrapQty, 0)) * 100, 2
+ ) as char
+ ),
+ '%'
+ )
+ end as outputRate,
group_concat(distinct pa.technology_operation_name order by pa.technology_operation_name separator ',') as process,
case
when count(distinct date(pa.scheduling_date)) = 1 then min(date(pa.scheduling_date))
@@ -55,6 +67,13 @@
left join product_model pm on pm.id = ifnull(poro.product_model_id, po.product_model_id)
left join product p on pm.product_id = p.id
left join product p_parent on p_parent.id = p.parent_id
+ left join (
+ select production_product_main_id,
+ cast(sum(ifnull(quantity, 0)) as decimal(18,4)) as quantity,
+ cast(sum(ifnull(scrap_qty, 0)) as decimal(18,4)) as scrapQty
+ from production_product_output
+ group by production_product_main_id
+ ) ppo on ppo.production_product_main_id = ppm.id
<where>
<if test="c != null">
<if test="c.productCategory != null and c.productCategory != ''">
--
Gitblit v1.9.3