Browse Source

创新- 定时任务 导致之前的 数据丢失

huangpeng 3 months ago
parent
commit
050242c036

+ 29 - 32
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/service/impl/EquEnergyMeterCenterDosageMonthServiceImpl.java

@@ -11,6 +11,7 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -55,37 +56,33 @@ public class EquEnergyMeterCenterDosageMonthServiceImpl  extends ServiceImpl<Equ
 
 
     public void setUpdateWrapper(UpdateWrapper<EquEnergyMeterCenterDosageMonthDo> updateWrapper, EquEnergyMeterCenterDosageMonthDo equEnergyMeterCenterDosageMonthDo){
-        updateWrapper.eq("id",equEnergyMeterCenterDosageMonthDo.getId())
-                .set("day1",equEnergyMeterCenterDosageMonthDo.getDay1())
-                .set("day2",equEnergyMeterCenterDosageMonthDo.getDay2())
-                .set("day3",equEnergyMeterCenterDosageMonthDo.getDay3())
-                .set("day4",equEnergyMeterCenterDosageMonthDo.getDay4())
-                .set("day5",equEnergyMeterCenterDosageMonthDo.getDay5())
-                .set("day6",equEnergyMeterCenterDosageMonthDo.getDay6())
-                .set("day7",equEnergyMeterCenterDosageMonthDo.getDay7())
-                .set("day8",equEnergyMeterCenterDosageMonthDo.getDay8())
-                .set("day9",equEnergyMeterCenterDosageMonthDo.getDay9())
-                .set("day10",equEnergyMeterCenterDosageMonthDo.getDay10())
-                .set("day11",equEnergyMeterCenterDosageMonthDo.getDay11())
-                .set("day12",equEnergyMeterCenterDosageMonthDo.getDay12())
-                .set("day13",equEnergyMeterCenterDosageMonthDo.getDay13())
-                .set("day14",equEnergyMeterCenterDosageMonthDo.getDay14())
-                .set("day15",equEnergyMeterCenterDosageMonthDo.getDay15())
-                .set("day16",equEnergyMeterCenterDosageMonthDo.getDay16())
-                .set("day17",equEnergyMeterCenterDosageMonthDo.getDay17())
-                .set("day18",equEnergyMeterCenterDosageMonthDo.getDay18())
-                .set("day19",equEnergyMeterCenterDosageMonthDo.getDay19())
-                .set("day20",equEnergyMeterCenterDosageMonthDo.getDay20())
-                .set("day21",equEnergyMeterCenterDosageMonthDo.getDay21())
-                .set("day22",equEnergyMeterCenterDosageMonthDo.getDay22())
-                .set("day23",equEnergyMeterCenterDosageMonthDo.getDay23())
-                .set("day24",equEnergyMeterCenterDosageMonthDo.getDay24())
-                .set("day25",equEnergyMeterCenterDosageMonthDo.getDay25())
-                .set("day26",equEnergyMeterCenterDosageMonthDo.getDay26())
-                .set("day27",equEnergyMeterCenterDosageMonthDo.getDay27())
-                .set("day28",equEnergyMeterCenterDosageMonthDo.getDay28())
-                .set("day29",equEnergyMeterCenterDosageMonthDo.getDay29())
-                .set("day30",equEnergyMeterCenterDosageMonthDo.getDay30())
-                .set("day31",equEnergyMeterCenterDosageMonthDo.getDay31());
+        updateWrapper.eq("id",equEnergyMeterCenterDosageMonthDo.getId());
+        try {
+            setDayFields(updateWrapper, equEnergyMeterCenterDosageMonthDo);
+        } catch (NoSuchFieldException | IllegalAccessException e) {
+            throw new RuntimeException("反射设置 day 字段失败", e);
+        }
+    }
+
+
+
+    public static void setDayFields(UpdateWrapper<EquEnergyMeterCenterDosageMonthDo> updateWrapper, EquEnergyMeterCenterDosageMonthDo entity) throws NoSuchFieldException, IllegalAccessException {
+        // 获取实体类对象
+        Class<?> clazz = entity.getClass();
+
+        // 遍历 day1 到 day31 字段
+        for (int i = 1; i <= 31; i++) {
+            String fieldName = "day" + i;
+
+            // 通过反射获取字段值
+            Field field = clazz.getDeclaredField(fieldName);
+            field.setAccessible(true); // 突破私有权限
+            Object value = field.get(entity);
+
+            // 非空时才设置字段
+            if (value != null) {
+                updateWrapper.set(fieldName, value);
+            }
+        }
     }
 }

+ 29 - 32
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/service/impl/EquEnergyMeterDosageMonthSetviceImpl.java

@@ -10,6 +10,7 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -54,37 +55,33 @@ public class EquEnergyMeterDosageMonthSetviceImpl extends
 
 
     public void setUpdateWrapper(UpdateWrapper<EquEnergyMeterDosageMonthDo> updateWrapper, EquEnergyMeterDosageMonthDo equEnergyMeterDosageMonthDo){
-        updateWrapper.eq("id",equEnergyMeterDosageMonthDo.getId())
-                .set("day1",equEnergyMeterDosageMonthDo.getDay1())
-                .set("day2",equEnergyMeterDosageMonthDo.getDay2())
-                .set("day3",equEnergyMeterDosageMonthDo.getDay3())
-                .set("day4",equEnergyMeterDosageMonthDo.getDay4())
-                .set("day5",equEnergyMeterDosageMonthDo.getDay5())
-                .set("day6",equEnergyMeterDosageMonthDo.getDay6())
-                .set("day7",equEnergyMeterDosageMonthDo.getDay7())
-                .set("day8",equEnergyMeterDosageMonthDo.getDay8())
-                .set("day9",equEnergyMeterDosageMonthDo.getDay9())
-                .set("day10",equEnergyMeterDosageMonthDo.getDay10())
-                .set("day11",equEnergyMeterDosageMonthDo.getDay11())
-                .set("day12",equEnergyMeterDosageMonthDo.getDay12())
-                .set("day13",equEnergyMeterDosageMonthDo.getDay13())
-                .set("day14",equEnergyMeterDosageMonthDo.getDay14())
-                .set("day15",equEnergyMeterDosageMonthDo.getDay15())
-                .set("day16",equEnergyMeterDosageMonthDo.getDay16())
-                .set("day17",equEnergyMeterDosageMonthDo.getDay17())
-                .set("day18",equEnergyMeterDosageMonthDo.getDay18())
-                .set("day19",equEnergyMeterDosageMonthDo.getDay19())
-                .set("day20",equEnergyMeterDosageMonthDo.getDay20())
-                .set("day21",equEnergyMeterDosageMonthDo.getDay21())
-                .set("day22",equEnergyMeterDosageMonthDo.getDay22())
-                .set("day23",equEnergyMeterDosageMonthDo.getDay23())
-                .set("day24",equEnergyMeterDosageMonthDo.getDay24())
-                .set("day25",equEnergyMeterDosageMonthDo.getDay25())
-                .set("day26",equEnergyMeterDosageMonthDo.getDay26())
-                .set("day27",equEnergyMeterDosageMonthDo.getDay27())
-                .set("day28",equEnergyMeterDosageMonthDo.getDay28())
-                .set("day29",equEnergyMeterDosageMonthDo.getDay29())
-                .set("day30",equEnergyMeterDosageMonthDo.getDay30())
-                .set("day31",equEnergyMeterDosageMonthDo.getDay31());
+        updateWrapper.eq("id",equEnergyMeterDosageMonthDo.getId());
+        try {
+            setDayFields(updateWrapper, equEnergyMeterDosageMonthDo);
+        } catch (NoSuchFieldException | IllegalAccessException e) {
+            throw new RuntimeException("反射设置 day 字段失败", e);
+        }
+
+    }
+
+    public static void setDayFields(UpdateWrapper<EquEnergyMeterDosageMonthDo> updateWrapper, EquEnergyMeterDosageMonthDo entity) throws NoSuchFieldException, IllegalAccessException {
+        // 获取实体类对象
+        Class<?> clazz = entity.getClass();
+
+        // 遍历 day1 到 day31 字段
+        for (int i = 1; i <= 31; i++) {
+            String fieldName = "day" + i;
+
+            // 通过反射获取字段值
+            Field field = clazz.getDeclaredField(fieldName);
+            field.setAccessible(true); // 突破私有权限
+            Object value = field.get(entity);
+
+            // 非空时才设置字段
+            if (value != null) {
+                updateWrapper.set(fieldName, value);
+            }
+        }
     }
+
 }