소스 검색

河南郸城调度方案库修改bug修复

1037015548@qq.com 11 달 전
부모
커밋
38eeb75791

+ 40 - 14
src/main/java/com/shkpr/service/aimodelpower/dbdao/services/WODispatchDatabaseDBServiceImpl.java

@@ -217,6 +217,23 @@ public class WODispatchDatabaseDBServiceImpl implements WODispatchDatabaseDBServ
         woDispatchDatabaseMapper.updateWiths(datas, andWheres, null, "");
         //TODO 先修改完方案库,再添加/处置建议
         if(!CollectionUtils.isEmpty(dispoalList)) {
+            Map<String, Object> dispoalQueryMap = new HashMap<>();
+            dispoalQueryMap.put(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY, andWheres.get(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY));
+            List<Map<String, Object>> dispoalListMap = woDispatchDatabaseDisposalMapper.batchQueryWiths("", "",
+                    dispoalQueryMap, new HashMap<>(), "", "");//原数据库的数据
+
+            //TODO 先对比集合,不存在的就删除
+            for (Map<String,Object> map:dispoalListMap){
+                boolean exists = dispoalList.stream()
+                        .anyMatch(dispoal -> map.get("key").equals(dispoal.getKey()));
+                if(!exists){
+                    Map<String,Object> delWhere = new HashMap<>();
+                    delWhere.put(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY,andWheres.get(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY));
+                    delWhere.put(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY_TWO,map.get("key"));
+                    woDispatchDatabaseDisposalMapper.deleteWiths(delWhere,new HashMap<>(),"");
+                }
+            }
+
             for (JPDispatchCmdBatchDispoal dispoal : dispoalList) {
                 Map<String, Object> entityMap = FastJsonUtil.obj2Map(dispoal, true);
                 entityMap.put(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY, andWheres.get(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY));
@@ -227,24 +244,33 @@ public class WODispatchDatabaseDBServiceImpl implements WODispatchDatabaseDBServ
                     woDispatchDatabaseDisposalMapper.inserts(entityMap);
                 } else {
                     //TODO 查询是否存在, 如果不存在则以传递值为值然后新增
-                    Map<String, Object> dispoalQueryMap = new HashMap<>();
-                    dispoalQueryMap.put(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY, andWheres.get(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY));
-                    dispoalQueryMap.put(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY_TWO, dispoal.getKey());
-                    List<Map<String, Object>> dispoalListMap = woDispatchDatabaseDisposalMapper.batchQueryWiths("", "",
-                            dispoalQueryMap, new HashMap<>(), "", "");
-                    if (CollectionUtils.isEmpty(dispoalListMap)) {
-                        //TODO 说明不存在
+                    if (dispoalListMap!=null) {
+                        boolean exists = dispoalListMap.stream()
+                                .anyMatch(map -> map.get("key").equals(dispoal.getKey()));
+                        if(!exists) {
+                            //TODO 说明不存在
+                            entityMap.put("key", dispoal.getKey());
+                            entityMap.put("create_time", TimeTool.getCurMsUTC());
+                            entityMap.put("usage", 0);
+                            woDispatchDatabaseDisposalMapper.inserts(entityMap);
+                        }else{
+                            //TODO 说明存在 ,则修改
+                            //TODO 说明不存在
+                            entityMap.put("update_time", TimeTool.getCurMsUTC());
+
+                            Map<String, Object> dispoalUpMap = new HashMap<>();
+                            dispoalUpMap.put(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY, andWheres.get(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY));
+                            dispoalUpMap.put(WODispatchDatabaseDisposalTable.W_INFO.PRIMARY_KEY_TWO, entityMap.get("key"));
+                            entityMap.remove("key");
+                            entityMap.remove("database_id");
+                            woDispatchDatabaseDisposalMapper.updateWiths(entityMap, dispoalUpMap, new HashMap<>(), "");
+                        }
+                    }else{
+                        //TODO 说明原数据库不存在
                         entityMap.put("key", dispoal.getKey());
                         entityMap.put("create_time", TimeTool.getCurMsUTC());
                         entityMap.put("usage", 0);
                         woDispatchDatabaseDisposalMapper.inserts(entityMap);
-                    } else {
-                        //TODO 说明存在 ,则修改
-                        //TODO 说明不存在
-                        entityMap.put("key", dispoal.getKey());
-                        entityMap.put("update_time", TimeTool.getCurMsUTC());
-                        entityMap.put("usage", 0);
-                        woDispatchDatabaseDisposalMapper.updateWiths(entityMap, dispoalQueryMap, new HashMap<>(), "");
                     }
                 }
             }

+ 4 - 3
src/main/java/com/shkpr/service/aimodelpower/jsonbean/woDispatchDatabase/JPDispatchDatabaseInfoUpdate.java

@@ -47,9 +47,10 @@ public class JPDispatchDatabaseInfoUpdate {
     private String param2 = null;//				复合参数1
 
 
-    @IntInitOrRange(init = -1, groups = {CommonParamValidReset.class})
-    private Long sampleBeginTime = -1L;//	int8		参考样本的起始时间(毫秒级UTC),如:iot采集数据的起始时间
-    private Long sampleEndTime = -1L;//	int8		参考样本的截止时间(毫秒级UTC),如:iot采集数据的截止时间
+//    @IntInitOrRange(init = -1, groups = {CommonParamValidReset.class})
+    private Long sampleBeginTime = null;//	int8		参考样本的起始时间(毫秒级UTC),如:iot采集数据的起始时间
+//    @IntInitOrRange(init = -1, groups = {CommonParamValidReset.class})
+    private Long sampleEndTime = null;//	int8		参考样本的截止时间(毫秒级UTC),如:iot采集数据的截止时间
 
     @StrNullOrSize(groups = { CommonParamValidReset.class})
     private String tags = null;//	附属标签项JSON串,如:[{"key":"k1","name":"突发事件","data":"停电"}]