瀏覽代碼

修改版本状态接口

fengyanjie 4 年之前
父節點
當前提交
0df6767bb0

+ 2 - 3
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/ClassDefChangeRecordController.java

@@ -8,7 +8,6 @@ import com.persagy.dmp.rwd.edit.service.ClassDefChangeRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 @RestController
@@ -29,8 +28,8 @@ public class ClassDefChangeRecordController {
     }
 
     @PostMapping("/update")
-    public MapResponse update(@RequestBody ClassDefChangeRecord param) {
-        return service.update(param);
+    public MapResponse update(@RequestBody List<ClassDefChangeRecord> list) {
+        return service.update(list);
     }
 
     @PostMapping("/delete")

+ 2 - 3
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/FuncidDefChangeRecordController.java

@@ -8,7 +8,6 @@ import com.persagy.dmp.rwd.edit.service.FuncidDefChangeRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 @RestController
@@ -29,8 +28,8 @@ public class FuncidDefChangeRecordController {
     }
 
     @PostMapping("/update")
-    public MapResponse update(@RequestBody FuncidDefChangeRecord param) {
-        return service.update(param);
+    public MapResponse update(@RequestBody List<FuncidDefChangeRecord> list) {
+        return service.update(list);
     }
 
     @PostMapping("/delete")

+ 5 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/RwdeditVersionController.java

@@ -32,6 +32,11 @@ public class RwdeditVersionController {
         return service.update(param);
     }
 
+    @PostMapping("/delete")
+    public MapResponse delete(@RequestBody RwdeditVersion param) {
+        return service.delete(param);
+    }
+
     @PostMapping("/download")
     public void download(@RequestParam String version, HttpServletResponse response) {
         service.download(response, version);

+ 0 - 5
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/repository/ClassDefChangeRecordRepository.java

@@ -13,10 +13,5 @@ public interface ClassDefChangeRecordRepository extends JpaRepository<ClassDefCh
     @Modifying
     @Query(nativeQuery = true, value = "update rwd_def_class_change_record set version = ?1 where version is null and id in (?2)")
     Integer addVersion(String version, List<Integer> idList);
-
-    @Modifying
-    @Query(nativeQuery = true, value = "update rwd_def_class_change_record set state = ?2 where version = ?1")
-    Integer batchUpdateStateByVersion(String version, Integer state);
-
 }
 

+ 0 - 4
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/repository/FuncidDefChangeRecordRepository.java

@@ -13,9 +13,5 @@ public interface FuncidDefChangeRecordRepository extends JpaRepository<FuncidDef
     @Modifying
     @Query(nativeQuery = true, value = "update rwd_def_funcid_change_record set version = ?1 where version is null and id in (?2)")
     Integer addVersion(String version, List<Integer> idList);
-
-    @Modifying
-    @Query(nativeQuery = true, value = "update rwd_def_class_change_record set state = ?2 where version = ?1")
-    Integer batchUpdateStateByVersion(String version, Integer state);
 }
 

+ 55 - 37
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/ClassDefChangeRecordService.java

@@ -18,6 +18,8 @@ import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
 import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -30,6 +32,9 @@ public class ClassDefChangeRecordService {
     ClassDefService classDefService;
 
     @Autowired
+    RwdeditVersionService rwdeditVersionService;
+
+    @Autowired
     CriteriaUtils criteriaUtils;
 
     private List<BooleanExpression> parse(ObjectNode object) {
@@ -91,7 +96,7 @@ public class ClassDefChangeRecordService {
             param.setParentCode(classDef.getParentCode());
         }
         QClassDefChangeRecord qt = QClassDefChangeRecord.classDefChangeRecord;
-        BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(1));
+        BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(1)).and(qt.version.isNull());
         Iterable<ClassDefChangeRecord> all = repository.findAll(ex);
         List<ClassDefChangeRecord> list = new ArrayList<>();
         all.forEach(list::add);
@@ -117,59 +122,72 @@ public class ClassDefChangeRecordService {
     }
 
     @Transactional
-    public MapResponse update(ClassDefChangeRecord param) {
+    public MapResponse update(List<ClassDefChangeRecord> list) {
         MapResponse response = new MapResponse();
-        if (param.getId() == null) {
-            response.setFail("id is required");
-            return response;
-        }
-        if (param.getState() == null) {
-            response.setFail("state is required");
-            return response;
-        }
-        List<ClassDefChangeRecord> data = repository.findAllById(Arrays.asList(param.getId()));
-        if (data.size() == 0) {
-            response.setFail("id not exists");
-            return response;
-        }
-        ClassDefChangeRecord changeRecord = data.get(0);
-        changeRecord.setState(param.getState());
-        if (param.getState() == 2) {
-            changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
-            changeRecord.setConfirmTime(new Date());
-        }
-        if (param.getState() == 3) {
-            changeRecord.setPublishUser(UserUtils.currentUserId() + "");
-            changeRecord.setPublishTime(new Date());
-        }
-        if (param.getState() == 4) {
-            changeRecord.setFinishTime(new Date());
+        List<Integer> idList = list.stream().map(ClassDefChangeRecord::getId).collect(Collectors.toList());
+        List<ClassDefChangeRecord> data = repository.findAllById(idList);
+        Map<Integer, ClassDefChangeRecord> dataMap = data.stream().collect(Collectors.toMap(ClassDefChangeRecord::getId, Function.identity()));
+        for (ClassDefChangeRecord param : list) {
+            ClassDefChangeRecord changeRecord = dataMap.get(param.getId());
+            if (changeRecord.getState() == 1) {
+                if (param.getAliasCode() != null) {
+                    changeRecord.setAliasCode(param.getAliasCode());
+                }
+                if (param.getAliasName() != null) {
+                    changeRecord.setAliasName(param.getAliasName());
+                }
+            }
+            if (param.getState() != null) {
+                switch (param.getState()) {
+                    case 2: {
+                        changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
+                        changeRecord.setConfirmTime(new Date());
+                        break;
+                    }
+                    case 3: {
+                        changeRecord.setPublishUser(UserUtils.currentUserId() + "");
+                        changeRecord.setPublishTime(new Date());
+                        break;
+                    }
+                    case 4: {
+                        changeRecord.setFinishTime(new Date());
+                        break;
+                    }
+                    default: {
+                        break;
+                    }
+                }
+            }
         }
-        repository.save(changeRecord);
-        response.add("id", param.getId());
+        repository.saveAll(data);
         return response;
     }
 
     @Transactional
     public MapResponse addVersion(String version, List<Integer> idList) {
         MapResponse response = new MapResponse();
+        JacksonCriteria criteria = JacksonCriteria.newInstance();
+        criteria.add("version", version);
+        Long count = rwdeditVersionService.query(criteria).getCount();
+        if (count == 0) {
+            response.setFail("version not exists");
+            return response;
+        }
         Integer num = repository.addVersion(version, idList);
         response.setMessage("update num: " + num);
         return response;
     }
 
     @Transactional
-    public MapResponse batchUpdateState(String version, Integer state) {
-        MapResponse response = new MapResponse();
-        Integer num = repository.batchUpdateStateByVersion(version, state);
-        response.setMessage("update num: " + num);
-        return response;
-    }
-
-    @Transactional
     public MapResponse delete(List<Integer> param) {
         MapResponse response = new MapResponse();
         List<ClassDefChangeRecord> list = repository.findAllById(param);
+        for (ClassDefChangeRecord changeRecord : list) {
+            if (changeRecord.getState() != 1 || changeRecord.getVersion() != null) {
+                response.setFail(changeRecord.getId() + " 不可删除!");
+                return response;
+            }
+        }
         repository.deleteAll(list);
         return response;
     }

+ 63 - 36
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefChangeRecordService.java

@@ -18,6 +18,8 @@ import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
 import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -30,6 +32,9 @@ public class FuncidDefChangeRecordService {
     FuncidDefService funcidDefService;
 
     @Autowired
+    RwdeditVersionService rwdeditVersionService;
+
+    @Autowired
     CriteriaUtils criteriaUtils;
 
     private List<BooleanExpression> parse(ObjectNode object) {
@@ -142,59 +147,81 @@ public class FuncidDefChangeRecordService {
     }
 
     @Transactional
-    public MapResponse update(FuncidDefChangeRecord param) {
+    public MapResponse update(List<FuncidDefChangeRecord> list) {
         MapResponse response = new MapResponse();
-        if (param.getId() == null) {
-            response.setFail("id is required");
-            return response;
-        }
-        if (param.getState() == null) {
-            response.setFail("state is required");
-            return response;
-        }
-        List<FuncidDefChangeRecord> data = repository.findAllById(Arrays.asList(param.getId()));
-        if (data.size() == 0) {
-            response.setFail("id not exists");
-            return response;
-        }
-        FuncidDefChangeRecord changeRecord = data.get(0);
-        changeRecord.setState(param.getState());
-        if (param.getState() == 2) {
-            changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
-            changeRecord.setConfirmTime(new Date());
-        }
-        if (param.getState() == 3) {
-            changeRecord.setPublishUser(UserUtils.currentUserId() + "");
-            changeRecord.setPublishTime(new Date());
-        }
-        if (param.getState() == 4) {
-            changeRecord.setFinishTime(new Date());
+        List<Integer> idList = list.stream().map(FuncidDefChangeRecord::getId).collect(Collectors.toList());
+        List<FuncidDefChangeRecord> data = repository.findAllById(idList);
+        Map<Integer, FuncidDefChangeRecord> dataMap = data.stream().collect(Collectors.toMap(FuncidDefChangeRecord::getId, Function.identity()));
+        for (FuncidDefChangeRecord param : list) {
+            FuncidDefChangeRecord changeRecord = dataMap.get(param.getId());
+            if (changeRecord.getState() == 1) {
+                if (param.getAliasCode() != null) {
+                    changeRecord.setAliasCode(param.getAliasCode());
+                }
+                if (param.getAliasName() != null) {
+                    changeRecord.setAliasName(param.getAliasName());
+                }
+                if (param.getFirstTag() != null) {
+                    changeRecord.setFirstTag(param.getFirstTag());
+                }
+                if (param.getSecondTag() != null) {
+                    changeRecord.setSecondTag(param.getSecondTag());
+                }
+                if (param.getNote() != null) {
+                    changeRecord.setNote(param.getNote());
+                }
+            }
+            if (param.getState() != null) {
+                switch (param.getState()) {
+                    case 2: {
+                        changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
+                        changeRecord.setConfirmTime(new Date());
+                        break;
+                    }
+                    case 3: {
+                        changeRecord.setPublishUser(UserUtils.currentUserId() + "");
+                        changeRecord.setPublishTime(new Date());
+                        break;
+                    }
+                    case 4: {
+                        changeRecord.setFinishTime(new Date());
+                        break;
+                    }
+                    default: {
+                        break;
+                    }
+                }
+            }
         }
-        repository.save(changeRecord);
-        response.add("id", param.getId());
+        repository.saveAll(data);
         return response;
     }
 
     @Transactional
     public MapResponse addVersion(String version, List<Integer> idList) {
         MapResponse response = new MapResponse();
+        JacksonCriteria criteria = JacksonCriteria.newInstance();
+        criteria.add("version", version);
+        Long count = rwdeditVersionService.query(criteria).getCount();
+        if (count == 0) {
+            response.setFail("version not exists");
+            return response;
+        }
         Integer num = repository.addVersion(version, idList);
         response.setMessage("update num: " + num);
         return response;
     }
 
     @Transactional
-    public MapResponse batchUpdateState(String version, Integer state) {
-        MapResponse response = new MapResponse();
-        Integer num = repository.batchUpdateStateByVersion(version, state);
-        response.setMessage("update num: " + num);
-        return response;
-    }
-
-    @Transactional
     public MapResponse delete(List<Integer> param) {
         MapResponse response = new MapResponse();
         List<FuncidDefChangeRecord> list = repository.findAllById(param);
+        for (FuncidDefChangeRecord changeRecord : list) {
+            if (changeRecord.getState() != 1 || changeRecord.getVersion() != null) {
+                response.setFail(changeRecord.getId() + " 不可删除!");
+                return response;
+            }
+        }
         repository.deleteAll(list);
         return response;
     }

+ 59 - 10
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/RwdeditVersionService.java

@@ -7,6 +7,8 @@ import com.persagy.common.date.DateUtils;
 import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.rwd.edit.config.web.UserUtils;
+import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
 import com.persagy.dmp.rwd.edit.entity.QRwdeditVersion;
 import com.persagy.dmp.rwd.edit.entity.RwdeditVersion;
 import com.persagy.dmp.rwd.edit.repository.RwdeditVersionRepository;
@@ -18,10 +20,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.transaction.Transactional;
 import java.io.*;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 
 @Service
 public class RwdeditVersionService {
@@ -39,8 +38,13 @@ public class RwdeditVersionService {
     private FuncidDefChangeRecordService funcidDefChangeRecordService;
 
     private List<BooleanExpression> parse(ObjectNode criteria) {
-        // TODO
-        return null;
+        List<BooleanExpression> list = new LinkedList<>();
+        QRwdeditVersion qt = QRwdeditVersion.rwdeditVersion;
+        list.addAll(CriteriaUtils.parse(qt.version, criteria.get("version")));
+        list.addAll(CriteriaUtils.parse(qt.createTime, criteria.get("createTime")));
+        list.addAll(CriteriaUtils.parse(qt.createUser, criteria.get("createUser")));
+        list.addAll(CriteriaUtils.parse(qt.state, criteria.get("state")));
+        return list;
     }
 
     public PagedResponse<RwdeditVersion> query(JacksonCriteria criteria) {
@@ -89,8 +93,24 @@ public class RwdeditVersionService {
             response.setFail("version not exists");
             return response;
         }
-        classDefChangeRecordService.batchUpdateState(version, state);
-        funcidDefChangeRecordService.batchUpdateState(version, state);
+        JacksonCriteria criteria = JacksonCriteria.newInstance();
+        criteria.add("version", version);
+        //修改类型变更记录状态
+        List<ClassDefChangeRecord> classDefList = classDefChangeRecordService.query(criteria).getData();
+        if (classDefList != null) {
+            for (ClassDefChangeRecord classDefChangeRecord : classDefList) {
+                classDefChangeRecord.setState(state);
+            }
+            classDefChangeRecordService.update(classDefList);
+        }
+        //修改信息点变更记录状态
+        List<FuncidDefChangeRecord> funcidDefList = funcidDefChangeRecordService.query(criteria).getData();
+        if (funcidDefList != null) {
+            for (FuncidDefChangeRecord funcidDefChangeRecord : funcidDefList) {
+                funcidDefChangeRecord.setState(state);
+            }
+            funcidDefChangeRecordService.update(funcidDefList);
+        }
         RwdeditVersion rwdeditVersion = data.get();
         rwdeditVersion.setState(state);
         repository.save(rwdeditVersion);
@@ -98,12 +118,41 @@ public class RwdeditVersionService {
     }
 
     @Transactional
+    public MapResponse delete(RwdeditVersion param) {
+        MapResponse response = new MapResponse();
+        String version = param.getVersion();
+        Integer state = param.getState();
+        if (version == null) {
+            response.setFail("version is required");
+            return response;
+        }
+        Optional<RwdeditVersion> data = repository.findById(version);
+        if (!data.isPresent()) {
+            response.setFail("version not exists");
+            return response;
+        }
+        RwdeditVersion rwdeditVersion = data.get();
+        if (state == 1) {
+            repository.delete(rwdeditVersion);
+        } else {
+            JacksonCriteria criteria = JacksonCriteria.newInstance();
+            criteria.add("version", rwdeditVersion.getVersion());
+            PagedResponse<ClassDefChangeRecord> classDefResponse = classDefChangeRecordService.query(criteria);
+            PagedResponse<FuncidDefChangeRecord> funcidDefResponse = funcidDefChangeRecordService.query(criteria);
+            if (classDefResponse.getCount() == 0 && funcidDefResponse.getCount() == 0) {
+                repository.delete(rwdeditVersion);
+            } else {
+                response.setFail("该版本有变更记录不可直接删除");
+            }
+        }
+        return response;
+    }
+
+    @Transactional
     public void download(HttpServletResponse resp, String version) {
         String fileName = DateUtils.format(new Date()) + ".sql";
         List<String> sqlList = new ArrayList<>();
-//        sqlList.add("-- 类型变更");
         sqlList.addAll(classDefChangeRecordService.getSqlList(version));
-//        sqlList.add("-- 信息点变更");
         sqlList.addAll(funcidDefChangeRecordService.getSqlList(version));
 
         OutputStream out = null;