Browse Source

添加上料时长+下料时长

DLC 1 year ago
parent
commit
5eafabfe3d

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

@@ -1,7 +1,6 @@
 package com.rongwei.bscommon.sys.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -249,17 +248,19 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                             if (apsCraftRouteStepDoList1.size() == 1) {
                                 apsProcessOperationDo.setPlanprocessrall(processVo.get(0).getPlanprocessrall());
                                 if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
+                                    BigDecimal loadingmin = apsProcessOperationDo.getLoadingmin() == null ? BigDecimal.valueOf(0) : apsProcessOperationDo.getLoadingmin();
+                                    BigDecimal cuttingmin = apsProcessOperationDo.getCuttingmin() == null ? BigDecimal.valueOf(0) : apsProcessOperationDo.getCuttingmin();
                                     if (apsProcessOperationDo.getTimeway().equals("10")) {
-                                        //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)
+                                        //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*(上料时长+下料时长+(输入单卷重/(输入物料宽度/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)));
+                                        BigDecimal onceprocessmin = new BigDecimal(df.format(loadingmin.add(cuttingmin).add(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.setProcesstotaltime(new BigDecimal(df.format(loadingmin.add(cuttingmin).add(apsProcessOperationDo.getOnceprocessmin()).multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())))));
                                     }
                                 }
                             } else {
@@ -411,17 +412,19 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         apsProcessOperationDo.setCraftstepid(apsCraftRouteStepDo.getId());
 
                         if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
+                            BigDecimal loadingmin = apsProcessOperationDo.getLoadingmin() == null ? BigDecimal.valueOf(0) : apsProcessOperationDo.getLoadingmin();
+                            BigDecimal cuttingmin = apsProcessOperationDo.getCuttingmin() == null ? BigDecimal.valueOf(0) : apsProcessOperationDo.getCuttingmin();
                             if (apsProcessOperationDo.getTimeway().equals("10")) {
-                                //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)
+                                //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*(上料时长+下料时长+(输入单卷重/(输入物料宽度/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)));
+                                BigDecimal onceprocessmin = new BigDecimal(df.format(loadingmin.add(cuttingmin).add(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.setProcesstotaltime(new BigDecimal(df.format(loadingmin.add(cuttingmin).add(apsProcessOperationDo.getOnceprocessmin()).multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())))));
                             }
                         }
 
@@ -779,17 +782,19 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     if (apsProcessOperationDos.size() == 1) {
                         apsProcessOperationDo.setPlanprocessrall(planinrall);
                         if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
+                            BigDecimal loadingmin = apsProcessOperationDo.getLoadingmin() == null ? BigDecimal.valueOf(0) : apsProcessOperationDo.getLoadingmin();
+                            BigDecimal cuttingmin = apsProcessOperationDo.getCuttingmin() == null ? BigDecimal.valueOf(0) : apsProcessOperationDo.getCuttingmin();
                             if (apsProcessOperationDo.getTimeway().equals("10")) {
-                                //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)
+                                //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*(上料时长+下料时长+(输入单卷重/(输入物料宽度/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)));
+                                BigDecimal onceprocessmin = new BigDecimal(df.format(loadingmin.add(cuttingmin).add(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.setProcesstotaltime(new BigDecimal(df.format(loadingmin.add(cuttingmin).add(apsProcessOperationDo.getOnceprocessmin()).multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())))));
                             }
                         }
 //                        ApsProcessOperationDo operationDo = processOperationDos.stream().filter(item -> item.getId().equals(apsProcessOperationDo.getPreviousprocessid())).findFirst().get();