From 5640fc8f31e729bc4ddb7881c305dc41fe20314a Mon Sep 17 00:00:00 2001
From: huangjiayang <5265313@qq.com>
Date: 星期二, 29 四月 2025 11:25:57 +0800
Subject: [PATCH] 【UPDATE-BUGFIX】优化计算气柜管路产能统计底表数据计算功能
---
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java | 25 ++++++++++++++++---------
aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml | 5 ++---
2 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
index b34c170..9c7677c 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java
@@ -148,6 +148,7 @@
apsProcessRoutes.sort((a, b)->b.getProcessNumber().compareTo(a.getProcessNumber()));
//鏄惁鎵惧埌褰撳墠宸ュ簭
boolean isCurrentProcess = false;
+ boolean lastProcessStartTimeIsBeforeNow = false;
ApsGasPipingRouteStat preApsProcessRoute = null;
for (int i=0;i<apsProcessRoutes.size();i++){
ApsProcessRoute apsProcessRoute = apsProcessRoutes.get(i);
@@ -172,14 +173,10 @@
apsGasPipingRouteStat.setProcessTotalTime(apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()));
//璁″垝寮�宸ユ棩 濡傛灉鏄綋鍓嶅簭
if(apsGasPipingPlan.getProcessNumber().equals(apsProcessRoute.getProcessNumber())) {
- if(apsGasPipingPlan.getOpStatus()==null || apsGasPipingPlan.getOpStatus().equals("瀹屽伐")){
- break;
- }
isCurrentProcess = true;
}
// 涓婁竴閬撳伐搴忕殑缁撴潫鏃堕棿 = 涓婁竴閬撳伐搴忕殑寮�濮嬫椂闂� + 涓婁竴閬撳伐搴忕殑鎬诲伐鏃�
if(i==0){
- apsGasPipingRouteStat.setProcessPlanEndDay(apsGasPipingPlan.getPlanEndDay());
LocalDate endLocalDate = LocalDate.ofInstant(apsGasPipingPlan.getPlanEndDay().toInstant(), ZoneId.systemDefault());
LocalDate nowLocalDate = LocalDate.now();
LocalDateTime planEndDay;
@@ -188,15 +185,25 @@
}else{
planEndDay = apsGasPipingPlan.getPlanEndDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
}
+ apsGasPipingRouteStat.setProcessPlanEndDay(Date.from(planEndDay.atZone(ZoneId.systemDefault()).toInstant()));
long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue();
LocalDateTime planStartDay = planEndDay.plusSeconds(-seconds);
apsGasPipingRouteStat.setProcessPlanStartDay(Date.from(planStartDay.atZone(ZoneId.systemDefault()).toInstant()));
+ if(planStartDay.isBefore(LocalDateTime.now())){
+ lastProcessStartTimeIsBeforeNow = true;
+ }
}else{
- apsGasPipingRouteStat.setProcessPlanEndDay(preApsProcessRoute.getProcessPlanEndDay());
- LocalDateTime planEndDay = apsGasPipingPlan.getPlanEndDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
- long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue();
- LocalDateTime planStartDay = planEndDay.plusSeconds(-seconds);
- apsGasPipingRouteStat.setProcessPlanStartDay(Date.from(planStartDay.atZone(ZoneId.systemDefault()).toInstant()));
+ if(lastProcessStartTimeIsBeforeNow){
+ Date now = new Date();
+ apsGasPipingRouteStat.setProcessPlanStartDay(now);
+ apsGasPipingRouteStat.setProcessPlanEndDay(now);
+ }else{
+ apsGasPipingRouteStat.setProcessPlanEndDay(preApsProcessRoute.getProcessPlanStartDay());
+ LocalDateTime planEndDay = preApsProcessRoute.getProcessPlanStartDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+ long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue();
+ LocalDateTime planStartDay = planEndDay.plusSeconds(-seconds);
+ apsGasPipingRouteStat.setProcessPlanStartDay(Date.from(planStartDay.atZone(ZoneId.systemDefault()).toInstant()));
+ }
}
//鎻掑叆 骞� 鏈� 鏃�
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml
index 902d4a1..2dfe64a 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml
@@ -79,7 +79,6 @@
<result property="planType" column="plan_type" />
<result property="planEndDay" column="plan_end_day" />
<result property="stdOp" column="std_op" />
- <result property="opStatus" column="op_status" />
<collection property="apsProcessRoutes" javaType="java.util.ArrayList" ofType="com.aps.core.domain.ApsProcessRoute">
<result property="processNumber" column="process_number_sub" />
<result property="processName" column="process_name" />
@@ -289,9 +288,9 @@
</update>
<select id="selectApsGasPipingPlanWithProcess" parameterType="ApsGasPipingPlan" resultMap="ApsGasPipingPlanResultWithProcess">
- select c.* from (select a.document_number,a.item_number,a.process_number,a.production_quantity,a.plan_type,a.plan_end_day,a.std_op,a.op_status,b.process_name,b.process_number as process_number_sub,b.standard_time,b.process_plan_start_day,b.process_plan_end_day from aps_gas_piping_plan a
+ select c.* from (select a.document_number,a.item_number,a.process_number,a.production_quantity,a.plan_type,a.plan_end_day,a.std_op,b.process_name,b.process_number as process_number_sub,b.standard_time,b.process_plan_start_day,b.process_plan_end_day from aps_gas_piping_plan a
left join aps_process_route b on a.document_number = b.work_order_no
- where a.document_status in ('0','1','2','4') and b.process_plan_start_day is not null and b.process_name in(select process_name from aps_standard_process where major='姘旀煖' or major='绠¤矾') ORDER BY a.document_number,b.process_number) c GROUP BY c.document_number,c.item_number,c.process_number,c.production_quantity,c.process_name,c.process_number_sub,c.standard_time,c.process_plan_start_day,c.plan_type,c.process_plan_end_day,c.plan_end_day,c.std_op,c.op_status
+ where a.document_status in ('0','1','2','4') and a.op_status!='瀹屽伐' and b.process_plan_start_day is not null and b.process_name in(select process_name from aps_standard_process where major='姘旀煖' or major='绠¤矾') ORDER BY a.document_number,b.process_number) c GROUP BY c.document_number,c.item_number,c.process_number,c.production_quantity,c.process_name,c.process_number_sub,c.standard_time,c.process_plan_start_day,c.plan_type,c.process_plan_end_day,c.plan_end_day,c.std_op
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3