فهرست منبع

解决毛高占比统计和平方米克重加入大经编机的相关问题

wukai 3 هفته پیش
والد
کامیت
75551f92ba

+ 31 - 51
jjt-biz/src/main/java/com/jjt/biz/service/impl/ApiServiceImpl.java

@@ -6,7 +6,6 @@ import com.jjt.biz.service.ITwinDeviceService;
 import com.jjt.biz.vo.*;
 import com.jjt.calc.domain.TwinCalcDay;
 import com.jjt.calc.domain.TwinFormulaInfo;
-import com.jjt.calc.domain.TwinPanHeadInfo;
 import com.jjt.calc.service.ITwinCalcDayService;
 import com.jjt.calc.service.ITwinFormulaInfoService;
 import com.jjt.calc.service.ITwinPanHeadInfoService;
@@ -143,7 +142,6 @@ public class ApiServiceImpl implements IApiService {
     public void curr() {
         IndexData indexData = new IndexData();
         List<IndexAlarm> alarmList = new ArrayList<>();
-        List<IndexPan> panList = new ArrayList<>();
         //配方统计数据
         List<FormulaTotal> formulaTotal = new ArrayList<>();
         //配方明细数据
@@ -160,11 +158,6 @@ public class ApiServiceImpl implements IApiService {
         TwinDevice searchDevice = new TwinDevice();
         searchDevice.setOnline("1");
         List<TwinDevice> list = deviceService.selectTwinDeviceList(searchDevice);
-        Map<String, Long> panMap = new HashMap<>(16);
-        panHeadInfoService.selectTwinPanHeadInfoList(new TwinPanHeadInfo()).forEach(pan -> {
-            String key = pan.getDeviceId() + "_" + pan.getPhNum();
-            panMap.put(key, pan.getPhMax());
-        });
         List<Future<Map<String, Object>>> futureList = new ArrayList<>();
         for (int i = 0; i < list.size(); i++) {
             TwinDevice twinDevice = list.get(i);
@@ -179,6 +172,8 @@ public class ApiServiceImpl implements IApiService {
             for (Future<Map<String, Object>> future : futureList) {
                 Map<String, Object> map = future.get();
                 TwinDevice device = (TwinDevice) map.get("device");
+                //判断是否小经编
+                boolean isSmall = device.getDeviceCode().startsWith("C_");
                 currMap.put(device.getDeviceCode(), map);
                 StopDetailVO sdVO = new StopDetailVO();
                 sdVO.setDeviceId(device.getDeviceId());
@@ -251,19 +246,20 @@ public class ApiServiceImpl implements IApiService {
                 IndexPan pan = new IndexPan();
                 pan.setCode(device.getDeviceCode());
                 pan.setName(device.getDeviceName());
-                if (device.getDeviceCode().startsWith("C_")) {
-                    //处理配方明细数据
-                    FormulaDetail detail = new FormulaDetail(map);
-                    formulaDetail.add(detail);
 
+                //处理配方明细数据
+                FormulaDetail detail = new FormulaDetail(isSmall, map);
+                formulaDetail.add(detail);
+                //处理平方米克重明细数据
+                GramMassDetail gramMassDetail = new GramMassDetail(isSmall, map);
+
+                gramMassDetails.add(gramMassDetail);
+                if (isSmall) {
                     TwinFormulaInfo formulaInfo = new TwinFormulaInfo(map);
                     formulaInfos.add(formulaInfo);
                     //处理送经量数据
                     WarpRunIn warpRunIn = new WarpRunIn(map);
                     warpList.add(warpRunIn);
-                    //处理平方米克重明细数据
-                    GramMassDetail gramMassDetail = new GramMassDetail(map);
-                    gramMassDetails.add(gramMassDetail);
 
 
                     for (int i = 0; i < Tools.ALLOW_ALARM.length; i++) {
@@ -277,44 +273,29 @@ public class ApiServiceImpl implements IApiService {
                             alarmList.add(indexAlarm);
                         }
                     }
-
-                    int alarm27 = (int) map.get("Alarm_unit_27");
-                    if (alarm27 != 0) {
-                        IndexAlarm indexAlarm = new IndexAlarm();
-                        indexAlarm.setCode(device.getDeviceCode());
-                        indexAlarm.setName(device.getDeviceName());
-                        indexAlarm.setType(27);
-                        alarmList.add(indexAlarm);
-                    }
-
-                    int[] curr = new int[5];
-                    int[] max = new int[5];
-                    float[] panPercent = new float[5];
-                    boolean panFlag = false;
-                    for (int i = 0; i < curr.length; i++) {
-                        int pos = 15 + i;
-                        curr[i] = (int) map.get("Capacity_data_" + pos);
-                        if (curr[i] < 200) {
-                            //盘头小于200圈
-                            panFlag = true;
-                        }
-                        String key = device.getDeviceId() + "_" + (i + 1);
-                        max[i] = 15000;
-                        if (panMap.get(key) != null) {
-                            max[i] = Math.toIntExact(panMap.get(key));
-                        }
-
-                        panPercent[i] = BigDecimal.valueOf(curr[i] * 100L).divide(BigDecimal.valueOf(max[i]), 2, RoundingMode.HALF_UP).floatValue();
-                        if (panPercent[i] > 100) {
-                            panPercent[i] = 100;
-                        }
-                    }
-                    if (panFlag) {
-                        stopPan++;
+                } else {
+//                    TwinFormulaInfo formulaInfo = new TwinFormulaInfo(map);
+//                    formulaInfos.add(formulaInfo);
+                }
+                //盘头小于200圈的统计--start
+                int len = 5;
+                if (!isSmall) {
+                    len = 10;
+                }
+                boolean panFlag = false;
+                for (int i = 0; i < len; i++) {
+                    int pos = 15 + i;
+                    int v = (int) map.get("Capacity_data_" + pos);
+                    if (v < 200) {
+                        //盘头小于200圈
+                        panFlag = true;
+                        break;
                     }
-                    pan.setPanPercent(panPercent);
                 }
-                panList.add(pan);
+                if (panFlag) {
+                    stopPan++;
+                }
+                //盘头小于200圈的统计--end
             }
         } catch (InterruptedException | ExecutionException e) {
             throw new RuntimeException(e);
@@ -322,7 +303,6 @@ public class ApiServiceImpl implements IApiService {
 
         twinFormulaInfoService.update(formulaInfos);
         indexData.setAlarm(alarmList);
-        indexData.setPan(panList);
         IndexDevice device = new IndexDevice();
         device.setTotal(list.size());
         device.setOnline(onlineNum);

+ 145 - 54
jjt-biz/src/main/java/com/jjt/biz/vo/FormulaDetail.java

@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
 
+import java.lang.reflect.Field;
 import java.util.Map;
 
 /**
@@ -62,39 +63,39 @@ public class FormulaDetail {
     @ApiModelProperty("成品重")
     private Float formula_data_18;
     @ApiModelProperty("GB1送经量")
-    private Integer formula_data_19;
+    private String formula_data_19;
     @ApiModelProperty("GB2送经量")
-    private Integer formula_data_20;
+    private String formula_data_20;
     @ApiModelProperty("GB3送经量")
-    private Integer formula_data_21;
+    private String formula_data_21;
     @ApiModelProperty("GB4送经量")
-    private Integer formula_data_22;
+    private String formula_data_22;
     @ApiModelProperty("GB5送经量")
-    private Integer formula_data_23;
+    private String formula_data_23;
     @ApiModelProperty("牵拉密度")
     private Float formula_data_24;
     @ApiModelProperty("卷曲张力系数")
     private Float formula_data_25;
     @ApiModelProperty("GB1盘头剩余周长")
-    private Float capacity_data_10;
+    private String capacity_data_10;
     @ApiModelProperty("GB2盘头剩余周长")
-    private Float capacity_data_11;
+    private String capacity_data_11;
     @ApiModelProperty("GB3盘头剩余周长")
-    private Float capacity_data_12;
+    private String capacity_data_12;
     @ApiModelProperty("GB4盘头剩余周长")
-    private Float capacity_data_13;
+    private String capacity_data_13;
     @ApiModelProperty("GB5盘头剩余周长")
-    private Float capacity_data_14;
+    private String capacity_data_14;
     @ApiModelProperty("GB1盘头剩余圈数")
-    private Integer capacity_data_15;
+    private String capacity_data_15;
     @ApiModelProperty("GB2盘头剩余圈数")
-    private Integer capacity_data_16;
+    private String capacity_data_16;
     @ApiModelProperty("GB3盘头剩余圈数")
-    private Integer capacity_data_17;
+    private String capacity_data_17;
     @ApiModelProperty("GB4盘头剩余圈数")
-    private Integer capacity_data_18;
+    private String capacity_data_18;
     @ApiModelProperty("GB5盘头剩余圈数")
-    private Integer capacity_data_19;
+    private String capacity_data_19;
     @ApiModelProperty("纱线规格D")
     private String yarnD;
     @ApiModelProperty("纱线规格D底纱")
@@ -104,52 +105,140 @@ public class FormulaDetail {
     @ApiModelProperty("盘头根数信息")
     private String yarnPt;
 
+    @ApiModelProperty("大经编送经量")
+    private Float[] bigSj;
+
+    @ApiModelProperty("大经编盘头剩余周长")
+    private Float[] bigZc;
+    @ApiModelProperty("大经编盘头剩余圈数")
+    private Integer[] bigQs;
+
+
+    public FormulaDetail(boolean isSmall, Map<String, Object> map) {
 
-    public FormulaDetail(Map<String, Object> map) {
         TwinDevice twinDevice = (TwinDevice) map.get("device");
         this.deviceId = twinDevice.getDeviceId();
         this.device = twinDevice.getDeviceName();
-        this.formula_data_1 = (int) map.get("Formula_data_1");
-        this.formula_data_2 = (int) map.get("Formula_data_2");
-        this.formula_data_3 = (int) map.get("Formula_data_3");
-        this.formula_data_4 = (int) map.get("Formula_data_4");
-        this.formula_data_5 = (int) map.get("Formula_data_5");
-        this.formula_data_6 = (int) map.get("Formula_data_6");
-        this.formula_data_7 = (int) map.get("Formula_data_7");
-        this.formula_data_8 = (int) map.get("Formula_data_8");
-        this.formula_data_9 = (int) map.get("Formula_data_9");
-        this.formula_data_10 = (int) map.get("Formula_data_10");
-        this.formula_data_11 = (int) map.get("Formula_data_11");
-        this.formula_data_12 = (int) map.get("Formula_data_12");
-        this.formula_data_13 = (float) map.get("Formula_data_13");
-        this.formula_data_14 = (float) map.get("Formula_data_14");
-        this.formula_data_15 = (float) map.get("Formula_data_15");
-        this.formula_data_16 = (float) map.get("Formula_data_16");
-        this.formula_data_17 = (float) map.get("Formula_data_17");
-        this.formula_data_18 = (float) map.get("Formula_data_18");
-        this.formula_data_19 = (int) map.get("Formula_data_19");
-        this.formula_data_20 = (int) map.get("Formula_data_20");
-        this.formula_data_21 = (int) map.get("Formula_data_21");
-        this.formula_data_22 = (int) map.get("Formula_data_22");
-        this.formula_data_23 = (int) map.get("Formula_data_23");
-        this.formula_data_24 = (float) map.get("Formula_data_24");
-        this.formula_data_25 = (float) map.get("Formula_data_25");
-
-        this.capacity_data_10 = (float) map.get("Capacity_data_10");
-        this.capacity_data_11 = (float) map.get("Capacity_data_11");
-        this.capacity_data_12 = (float) map.get("Capacity_data_12");
-        this.capacity_data_13 = (float) map.get("Capacity_data_13");
-        this.capacity_data_14 = (float) map.get("Capacity_data_14");
-        this.capacity_data_15 = (int) map.get("Capacity_data_15");
-        this.capacity_data_16 = (int) map.get("Capacity_data_16");
-        this.capacity_data_17 = (int) map.get("Capacity_data_17");
-        this.capacity_data_18 = (int) map.get("Capacity_data_18");
-        this.capacity_data_19 = (int) map.get("Capacity_data_19");
-
+        if (isSmall) {
+            setSmall(map);
+        } else {
+            setBig(map);
+        }
         this.yarnDd = this.formula_data_4 + "/" + formula_data_5;
         this.yarnD = this.formula_data_4 + "/" + formula_data_5 + "/" + formula_data_6;
         this.yarnF = this.formula_data_7 + "/" + formula_data_8 + "/" + formula_data_9;
         this.yarnPt = this.formula_data_10 + "/" + formula_data_11 + "/" + formula_data_12 + "/" + formula_data_15;
+
+    }
+
+    private void setSmall(Map<String, Object> map) {
+        // 整数类型字段赋值
+        int[] intFields = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
+        for (int i : intFields) {
+            int value = (int) map.get("Formula_data_" + i);
+            try {
+                Field field = this.getClass().getDeclaredField("formula_data_" + i);
+                field.set(this, value);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+        // 浮点类型字段赋值
+        int[] floatFields = {13, 14, 15, 16, 17, 18, 24, 25};
+        for (int i : floatFields) {
+            float value = (float) map.get("Formula_data_" + i);
+            try {
+                Field field = this.getClass().getDeclaredField("formula_data_" + i);
+                field.set(this, value);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+        // 字符串类型字段赋值(整数转字符串)
+        int[] stringFormulaFields = {19, 20, 21, 22, 23};
+        for (int i : stringFormulaFields) {
+            try {
+                int value = (int) map.get("Formula_data_" + i);
+                this.getClass().getDeclaredField("formula_data_" + i).set(this, value + "");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+        // 容量数据(浮点转字符串)
+        int[] capacityFloatFields = {10, 11, 12, 13, 14};
+        for (int i : capacityFloatFields) {
+            try {
+                float value = (float) map.get("Capacity_data_" + i);
+                this.getClass().getDeclaredField("capacity_data_" + i).set(this, value + "");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+        // 容量数据(整数转字符串)
+        int[] capacityIntFields = {15, 16, 17, 18, 19};
+        for (int i : capacityIntFields) {
+            try {
+                int value = (int) map.get("Capacity_data_" + i);
+                this.getClass().getDeclaredField("capacity_data_" + i).set(this, value + "");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    private void setBig(Map<String, Object> map) {
+        this.formula_data_1 = (int) map.get("Formula_data_41");
+        this.formula_data_2 = (int) map.get("Formula_data_42");
+        this.formula_data_3 = (int) map.get("Formula_data_43");
+        this.formula_data_4 = (int) map.get("Formula_data_44");
+        this.formula_data_5 = (int) map.get("Formula_data_45");
+        this.formula_data_6 = (int) map.get("Formula_data_46");
+        this.formula_data_7 = (int) map.get("Formula_data_47");
+        this.formula_data_8 = (int) map.get("Formula_data_48");
+        this.formula_data_9 = (int) map.get("Formula_data_49");
+        this.formula_data_10 = (int) map.get("Formula_data_50");
+        this.formula_data_11 = (int) map.get("Formula_data_51");
+        this.formula_data_12 = (int) map.get("Formula_data_52");
+        this.formula_data_13 = (float) map.get("Formula_data_53");
+        this.formula_data_14 = (float) map.get("Formula_data_54");
+        this.formula_data_15 = (float) map.get("Formula_data_55");
+        this.formula_data_16 = (float) map.get("Formula_data_56");
+        this.formula_data_17 = (float) map.get("Formula_data_57");
+        this.formula_data_18 = (float) map.get("Formula_data_58");
+        this.formula_data_19 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_1")).intValue(),
+                ((Number) map.get("Formula_data_2")).intValue());
+        this.formula_data_20 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_3")).intValue(),
+                ((Number) map.get("Formula_data_4")).intValue());
+        this.formula_data_21 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_5")).intValue(),
+                ((Number) map.get("Formula_data_6")).intValue());
+        this.formula_data_22 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_7")).intValue(),
+                ((Number) map.get("Formula_data_8")).intValue());
+        this.formula_data_23 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_9")).intValue(),
+                ((Number) map.get("Formula_data_10")).intValue());
+
+
+        this.formula_data_24 = (float) map.get("Capacity_data_112");
+        int index = 10;
+        this.bigSj = new Float[index];
+        this.bigZc = new Float[index];
+        this.bigQs = new Integer[index];
+        for (int i = 0; i < index; i++) {
+            int sjIndex = 1;
+            int qsIndex = 15;
+            int zcIndex = 3;
+            bigSj[i] = (float) map.get("Formula_data_" + (i + sjIndex));
+            bigZc[i] = (float) map.get("Capacity_data_" + (i + zcIndex));
+            bigQs[i] = (int) map.get("Capacity_data_" + (i + qsIndex));
+        }
     }
 
     public void setCells(Cell[] cells) {
@@ -178,7 +267,9 @@ public class FormulaDetail {
         cells[22].setCellValue(this.formula_data_17);
         cells[23].setCellValue(this.formula_data_18);
         cells[24].setCellValue(this.formula_data_24);
-        cells[25].setCellValue(this.formula_data_25);
+        if (this.formula_data_25 != null) {
+            cells[25].setCellValue(this.formula_data_25);
+        }
     }
 
 

+ 76 - 24
jjt-biz/src/main/java/com/jjt/biz/vo/GramMassDetail.java

@@ -62,23 +62,46 @@ public class GramMassDetail {
     @ApiModelProperty("成品重")
     private Float formula_data_18;
     @ApiModelProperty("GB1送经量")
-    private Integer formula_data_19;
+    private String formula_data_19;
     @ApiModelProperty("GB2送经量")
-    private Integer formula_data_20;
+    private String formula_data_20;
     @ApiModelProperty("GB3送经量")
-    private Integer formula_data_21;
+    private String formula_data_21;
     @ApiModelProperty("GB4送经量")
-    private Integer formula_data_22;
+    private String formula_data_22;
     @ApiModelProperty("GB5送经量")
-    private Integer formula_data_23;
+    private String formula_data_23;
     @ApiModelProperty("牵拉密度")
     private Float formula_data_24;
     @ApiModelProperty("卷曲张力系数")
     private Float formula_data_25;
 
-    public GramMassDetail(Map<String, Object> map) {
+    public GramMassDetail(boolean isSmall, Map<String, Object> map) {
         TwinDevice twinDevice = (TwinDevice) map.get("device");
         this.device = twinDevice.getDeviceName();
+        if (isSmall) {
+            setSmall(map);
+        } else {
+            setBig(map);
+        }
+
+        //长
+        BigDecimal length = BigDecimal.valueOf(this.formula_data_16);
+        //宽
+        BigDecimal width = BigDecimal.valueOf(this.formula_data_17);
+        //面积
+        BigDecimal area = length.multiply(width);
+//       重量,单位kg,需要转换成克
+        BigDecimal weight = BigDecimal.valueOf(this.formula_data_18 * 1000);
+        //计算平方米克重 重量除以面积
+        if (area.floatValue() != 0 && weight.floatValue() != 0) {
+            this.gramMass = weight.divide(area, 2, RoundingMode.HALF_UP).floatValue();
+        }else {
+            this.gramMass = 0f;
+        }
+    }
+
+    private void setSmall(Map<String, Object> map) {
         this.formula_data_1 = (int) map.get("Formula_data_1");
         this.formula_data_2 = (int) map.get("Formula_data_2");
         this.formula_data_3 = (int) map.get("Formula_data_3");
@@ -97,26 +120,53 @@ public class GramMassDetail {
         this.formula_data_16 = (float) map.get("Formula_data_16");
         this.formula_data_17 = (float) map.get("Formula_data_17");
         this.formula_data_18 = (float) map.get("Formula_data_18");
-        this.formula_data_19 = (int) map.get("Formula_data_19");
-        this.formula_data_20 = (int) map.get("Formula_data_20");
-        this.formula_data_21 = (int) map.get("Formula_data_21");
-        this.formula_data_22 = (int) map.get("Formula_data_22");
-        this.formula_data_23 = (int) map.get("Formula_data_23");
+        this.formula_data_19 = (int) map.get("Formula_data_19") + "";
+        this.formula_data_20 = (int) map.get("Formula_data_20") + "";
+        this.formula_data_21 = (int) map.get("Formula_data_21") + "";
+        this.formula_data_22 = (int) map.get("Formula_data_22") + "";
+        this.formula_data_23 = (int) map.get("Formula_data_23") + "";
         this.formula_data_24 = (float) map.get("Formula_data_24");
         this.formula_data_25 = (float) map.get("Formula_data_25");
         this.gramMass = 0f;
-        //长
-        BigDecimal length = BigDecimal.valueOf(this.formula_data_16);
-        //宽
-        BigDecimal width = BigDecimal.valueOf(this.formula_data_17);
-        //面积
-        BigDecimal area = length.multiply(width);
-//       重量,单位kg,需要转换成克
-        BigDecimal weight = BigDecimal.valueOf(this.formula_data_18 * 1000);
-        //计算平方米克重 重量除以面积
-        if (area.floatValue() != 0 && weight.floatValue() != 0) {
-            this.gramMass = weight.divide(area, 2, RoundingMode.HALF_UP).floatValue();
-        }
+    }
+
+    private void setBig(Map<String, Object> map) {
+        this.formula_data_1 = (int) map.get("Formula_data_41");
+        this.formula_data_2 = (int) map.get("Formula_data_42");
+        this.formula_data_3 = (int) map.get("Formula_data_43");
+        this.formula_data_4 = (int) map.get("Formula_data_44");
+        this.formula_data_5 = (int) map.get("Formula_data_45");
+        this.formula_data_6 = (int) map.get("Formula_data_46");
+        this.formula_data_7 = (int) map.get("Formula_data_47");
+        this.formula_data_8 = (int) map.get("Formula_data_48");
+        this.formula_data_9 = (int) map.get("Formula_data_49");
+        this.formula_data_10 = (int) map.get("Formula_data_50");
+        this.formula_data_11 = (int) map.get("Formula_data_51");
+        this.formula_data_12 = (int) map.get("Formula_data_52");
+        this.formula_data_13 = (float) map.get("Formula_data_53");
+        this.formula_data_14 = (float) map.get("Formula_data_54");
+        this.formula_data_15 = (float) map.get("Formula_data_55");
+        this.formula_data_16 = (float) map.get("Formula_data_56");
+        this.formula_data_17 = (float) map.get("Formula_data_57");
+        this.formula_data_18 = (float) map.get("Formula_data_58");
+        this.formula_data_19 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_1")).intValue(),
+                ((Number) map.get("Formula_data_2")).intValue());
+        this.formula_data_20 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_3")).intValue(),
+                ((Number) map.get("Formula_data_4")).intValue());
+        this.formula_data_21 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_5")).intValue(),
+                ((Number) map.get("Formula_data_6")).intValue());
+        this.formula_data_22 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_7")).intValue(),
+                ((Number) map.get("Formula_data_8")).intValue());
+        this.formula_data_23 = String.format("%d,%d",
+                ((Number) map.get("Formula_data_9")).intValue(),
+                ((Number) map.get("Formula_data_10")).intValue());
+
+
+        this.formula_data_24 = (float) map.get("Capacity_data_112");
     }
 
     public void setCells(Cell[] cells) {
@@ -143,6 +193,8 @@ public class GramMassDetail {
         cells[20].setCellValue(this.formula_data_17);
         cells[21].setCellValue(this.formula_data_18);
         cells[22].setCellValue(this.formula_data_24);
-        cells[23].setCellValue(this.formula_data_25);
+        if (this.formula_data_25 != null) {
+            cells[23].setCellValue(this.formula_data_25);
+        }
     }
 }