ソースを参照

计划作业时长逻辑优化

DLC 1 年間 前
コミット
3e36463176

+ 36 - 24
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationServiceImpl.java

@@ -242,8 +242,18 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                             if (apsCraftRouteStepDoList1.size() == 1) {
                                 apsProcessOperationDo.setPlanprocessrall(processVo.get(0).getPlanprocessrall());
                                 if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
-                                    //计划作业时长
-                                    apsProcessOperationDo.setProcesstotaltime(getProcesstotaltime(apsProcessOperationDo, aluminumdensity));
+                                    if (apsProcessOperationDo.getTimeway().equals("10")) {
+                                        //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)
+                                        BigDecimal prowidth = apsProcessOperationDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getProwidth();
+                                        BigDecimal thickness = apsProcessOperationDo.getThickness() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getThickness();
+                                        BigDecimal workspeed = apsProcessOperationDo.getWorkspeed() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getWorkspeed();
+                                        BigDecimal onceprocessmin = new BigDecimal(df.format(apsProcessOperationDo.getSinglerollweight().multiply(BigDecimal.valueOf(1000000000)).divide(prowidth.multiply(thickness).multiply(workspeed).multiply(aluminumdensity), 2, BigDecimal.ROUND_HALF_UP)));
+                                        apsProcessOperationDo.setOnceprocessmin(onceprocessmin);
+                                        apsProcessOperationDo.setProcesstotaltime(new BigDecimal(df.format(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall()).multiply(onceprocessmin))));
+                                    } else if (apsProcessOperationDo.getTimeway().equals("40")) {
+                                        //如果计时方式=按单次加工时长计时,计划作业时长=单次加工时长*计划加工卷数
+                                        apsProcessOperationDo.setProcesstotaltime(new BigDecimal(df.format(apsProcessOperationDo.getOnceprocessmin().multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())))));
+                                    }
                                 }
                             } else {
                                 apsProcessOperationDo.setPlanprocessrall(0);
@@ -394,8 +404,18 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         apsProcessOperationDo.setCraftstepid(apsCraftRouteStepDo.getId());
 
                         if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
-                            //计划作业时长
-                            apsProcessOperationDo.setProcesstotaltime(getProcesstotaltime(apsProcessOperationDo, aluminumdensity));
+                            if (apsProcessOperationDo.getTimeway().equals("10")) {
+                                //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)
+                                BigDecimal prowidth = apsProcessOperationDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getProwidth();
+                                BigDecimal thickness = apsProcessOperationDo.getThickness() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getThickness();
+                                BigDecimal workspeed = apsProcessOperationDo.getWorkspeed() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getWorkspeed();
+                                BigDecimal onceprocessmin = new BigDecimal(df.format(apsProcessOperationDo.getSinglerollweight().multiply(BigDecimal.valueOf(1000000000)).divide(prowidth.multiply(thickness).multiply(workspeed).multiply(aluminumdensity), 2, BigDecimal.ROUND_HALF_UP)));
+                                apsProcessOperationDo.setOnceprocessmin(onceprocessmin);
+                                apsProcessOperationDo.setProcesstotaltime(new BigDecimal(df.format(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall()).multiply(onceprocessmin))));
+                            } else if (apsProcessOperationDo.getTimeway().equals("40")) {
+                                //如果计时方式=按单次加工时长计时,计划作业时长=单次加工时长*计划加工卷数
+                                apsProcessOperationDo.setProcesstotaltime(new BigDecimal(df.format(apsProcessOperationDo.getOnceprocessmin().multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())))));
+                            }
                         }
 
                         //本道工序信息
@@ -717,8 +737,18 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     if (apsProcessOperationDos.size() == 1) {
                         apsProcessOperationDo.setPlanprocessrall(planinrall);
                         if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
-                            //计划作业时长
-                            apsProcessOperationDo.setProcesstotaltime(getProcesstotaltime(apsProcessOperationDo, aluminumdensity));
+                            if (apsProcessOperationDo.getTimeway().equals("10")) {
+                                //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)
+                                BigDecimal prowidth = apsProcessOperationDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getProwidth();
+                                BigDecimal thickness = apsProcessOperationDo.getThickness() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getThickness();
+                                BigDecimal workspeed = apsProcessOperationDo.getWorkspeed() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getWorkspeed();
+                                BigDecimal onceprocessmin = new BigDecimal(df.format(apsProcessOperationDo.getSinglerollweight().multiply(BigDecimal.valueOf(1000000000)).divide(prowidth.multiply(thickness).multiply(workspeed).multiply(aluminumdensity), 2, BigDecimal.ROUND_HALF_UP)));
+                                apsProcessOperationDo.setOnceprocessmin(onceprocessmin);
+                                apsProcessOperationDo.setProcesstotaltime(new BigDecimal(df.format(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall()).multiply(onceprocessmin))));
+                            } else if (apsProcessOperationDo.getTimeway().equals("40")) {
+                                //如果计时方式=按单次加工时长计时,计划作业时长=单次加工时长*计划加工卷数
+                                apsProcessOperationDo.setProcesstotaltime(new BigDecimal(df.format(apsProcessOperationDo.getOnceprocessmin().multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())))));
+                            }
                         }
 //                        ApsProcessOperationDo operationDo = processOperationDos.stream().filter(item -> item.getId().equals(apsProcessOperationDo.getPreviousprocessid())).findFirst().get();
 //                        apsProcessOperationDo.setPlanprocessrall(operationDo.getPlanprocessrall());
@@ -1171,22 +1201,4 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         }
         return String.join(",", equIds);
     }
-
-    /*
-     计划作业时长
-     */
-    private BigDecimal getProcesstotaltime(ApsProcessOperationDo apsProcessOperationDo, BigDecimal aluminumdensity) {
-        String processtotaltime = null;
-        if (apsProcessOperationDo.getTimeway().equals("10")) {
-            //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)
-            BigDecimal prowidth = apsProcessOperationDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getProwidth();
-            BigDecimal thickness = apsProcessOperationDo.getThickness() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getThickness();
-            BigDecimal workspeed = apsProcessOperationDo.getWorkspeed() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getWorkspeed();
-            processtotaltime = df.format(apsProcessOperationDo.getSinglerollweight().multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())).multiply(BigDecimal.valueOf(1000000000)).divide(prowidth.multiply(thickness).multiply(workspeed).multiply(aluminumdensity), 2, BigDecimal.ROUND_HALF_UP));
-        } else if (apsProcessOperationDo.getTimeway().equals("40")) {
-            //如果计时方式=按单次加工时长计时,计划作业时长=单次加工时长*计划加工卷数
-            processtotaltime = df.format(apsProcessOperationDo.getOnceprocessmin().multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())));
-        }
-        return new BigDecimal(processtotaltime);
-    }
 }