From d9556baf0d11108ba0e9bfdf9e2f4b0d728597f8 Mon Sep 17 00:00:00 2001 From: huangjiayang <5265313@qq.com> Date: 星期二, 29 四月 2025 10:21:09 +0800 Subject: [PATCH] 【UPDATE-BUGFIX】优化计算气柜管路产能统计底表数据计算功能 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipingRouteStatServiceImpl.java | 53 +++++++++++--------------- aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingPlanMapper.xml | 6 ++- aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingPlan.java | 12 ++++++ 3 files changed, 38 insertions(+), 33 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingPlan.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingPlan.java index dd2c4f0..3f1f122 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingPlan.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipingPlan.java @@ -170,6 +170,18 @@ @Excel(name = "涓嬩竴宸ュ簭鍚嶇О") private String nextOpName; + /** 涓嬩竴宸ュ簭鍚嶇О */ + @Excel(name = "褰撳墠宸ュ簭鍚嶇О") + private String stdOp; + + public String getStdOp() { + return stdOp; + } + + public void setStdOp(String stdOp) { + this.stdOp = stdOp; + } + public String getOpStatus() { return opStatus; } 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 be5115c..b34c170 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 @@ -171,41 +171,32 @@ //宸ュ簭鎬诲伐鏃� 绛変簬 鏍囧噯宸ユ椂*鐢熶骇鏁伴噺 apsGasPipingRouteStat.setProcessTotalTime(apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity())); //璁″垝寮�宸ユ棩 濡傛灉鏄綋鍓嶅簭 - if(apsGasPipingRouteStat.getCurrentProcessNumber().toString().equals(apsGasPipingRouteStat.getRoadProcessNumber())) { - /* 瀵� stat.getProcessPlanStartDay() 鍜屽綋鍓嶆棩鏈� 杩涜瀵规瘮锛屽彧瀵规瘮鍒版棩锛屼笉鐢ㄧ鍗佸垎绉�*/ - LocalDate startLocalDate = LocalDate.ofInstant(apsProcessRoute.getProcessPlanStartDay().toInstant(), ZoneId.systemDefault()); - LocalDate nowLocalDate = LocalDate.now(); - if (startLocalDate.isBefore(nowLocalDate)) { - apsGasPipingRouteStat.setProcessPlanStartDay(new Date()); - }else{ - apsGasPipingRouteStat.setProcessPlanStartDay(apsProcessRoute.getProcessPlanStartDay()); + if(apsGasPipingPlan.getProcessNumber().equals(apsProcessRoute.getProcessNumber())) { + if(apsGasPipingPlan.getOpStatus()==null || apsGasPipingPlan.getOpStatus().equals("瀹屽伐")){ + break; } - LocalDateTime planStartDay = apsGasPipingRouteStat.getProcessPlanStartDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); - long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue(); - apsGasPipingRouteStat.setProcessPlanEndDay(Date.from(planStartDay.plusSeconds(seconds).atZone(ZoneId.systemDefault()).toInstant())); isCurrentProcess = true; - }else{ - // 涓婁竴閬撳伐搴忕殑缁撴潫鏃堕棿 = 涓婁竴閬撳伐搴忕殑寮�濮嬫椂闂� + 涓婁竴閬撳伐搴忕殑鎬诲伐鏃� - if(i==0){ - apsGasPipingRouteStat.setProcessPlanEndDay(apsGasPipingPlan.getPlanEndDay()); - LocalDate endLocalDate = LocalDate.ofInstant(apsGasPipingPlan.getPlanEndDay().toInstant(), ZoneId.systemDefault()); - LocalDate nowLocalDate = LocalDate.now(); - LocalDateTime planEndDay; - if(endLocalDate.isBefore(nowLocalDate)){ - planEndDay = LocalDateTime.now(); - }else{ - 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(i==0){ + apsGasPipingRouteStat.setProcessPlanEndDay(apsGasPipingPlan.getPlanEndDay()); + LocalDate endLocalDate = LocalDate.ofInstant(apsGasPipingPlan.getPlanEndDay().toInstant(), ZoneId.systemDefault()); + LocalDate nowLocalDate = LocalDate.now(); + LocalDateTime planEndDay; + if(endLocalDate.isBefore(nowLocalDate)){ + planEndDay = LocalDateTime.now(); }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())); + 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())); + }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())); } //鎻掑叆 骞� 鏈� 鏃� 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 32539f0..902d4a1 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 @@ -78,6 +78,8 @@ <result property="processNumber" column="process_number" /> <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" /> @@ -287,9 +289,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,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,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 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 + 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 </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3