lyhzzz 1 éve
szülő
commit
601b40abc9

+ 1 - 0
src/main/java/com/fdkankan/manage_jp/common/ResultCode.java

@@ -45,6 +45,7 @@ public enum ResultCode  {
     CAMERA_NOT_MOVE(5026, "场景已在改相机,无需迁移"),
     CAMERA_TYPE_NOT_ERROR(5027, "相机类型不同,不能迁移"),
     SCENE_MODELING(5028, "正在计算中,请耐心等待"),
+    PROJECT_NOT_EXITS(5029, "项目不存在"),
 
 
     ;

+ 10 - 2
src/main/java/com/fdkankan/manage_jp/controller/ProjectController.java

@@ -5,6 +5,7 @@ import com.fdkankan.manage_jp.common.Result;
 import com.fdkankan.manage_jp.entity.Project;
 import com.fdkankan.manage_jp.service.IProjectService;
 import com.fdkankan.manage_jp.service.ISceneProService;
+import com.fdkankan.manage_jp.vo.request.ProjectAddSceneParam;
 import com.fdkankan.manage_jp.vo.request.ProjectParam;
 import com.fdkankan.manage_jp.vo.request.SceneParam;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,8 +54,15 @@ public class ProjectController extends BaseController{
     }
 
 
-    @PostMapping("addScene")
-    public Result addScene(){
+    @PostMapping("/addScene")
+    public Result addScene(@RequestBody ProjectAddSceneParam param){
+        projectService.addScene(param);
+        return Result.success();
+    }
+
+    @PostMapping("/delScene")
+    public Result delScene(@RequestBody ProjectAddSceneParam param){
+        projectService.delScene(param);
         return Result.success();
     }
 }

+ 6 - 0
src/main/java/com/fdkankan/manage_jp/service/IProjectNumService.java

@@ -16,4 +16,10 @@ import java.util.List;
 public interface IProjectNumService extends IService<ProjectNum> {
 
     List<ProjectNum> getByProjectId(List<Integer> projectIds);
+
+    void delNumList(Integer projectId, List<String> delNumList);
+
+    void addNumList(Integer projectId, List<String> addNumList);
+
+    void delByProjectId(Integer projectId);
 }

+ 5 - 0
src/main/java/com/fdkankan/manage_jp/service/IProjectService.java

@@ -2,6 +2,7 @@ package com.fdkankan.manage_jp.service;
 
 import com.fdkankan.manage_jp.entity.Project;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage_jp.vo.request.ProjectAddSceneParam;
 import com.fdkankan.manage_jp.vo.request.ProjectParam;
 
 import java.util.List;
@@ -23,4 +24,8 @@ public interface IProjectService extends IService<Project> {
     void del(Project param);
 
     List<Project> listByCompanyId(Long companyId);
+
+    void addScene(ProjectAddSceneParam param);
+
+    void delScene(ProjectAddSceneParam param);
 }

+ 33 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/ProjectNumServiceImpl.java

@@ -30,4 +30,37 @@ public class ProjectNumServiceImpl extends ServiceImpl<IProjectNumMapper, Projec
         wrapper.in(ProjectNum::getId,projectIds);
         return this.list(wrapper);
     }
+
+    @Override
+    public void delByProjectId(Integer projectId) {
+        LambdaQueryWrapper<ProjectNum> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ProjectNum::getProjectId,projectId);
+        this.remove(wrapper);
+    }
+
+    @Override
+    public void delNumList(Integer projectId, List<String> delNumList) {
+        if(delNumList.isEmpty()){
+            return;
+        }
+        LambdaQueryWrapper<ProjectNum> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ProjectNum::getProjectId,projectId);
+        wrapper.in(ProjectNum::getNum,delNumList);
+        this.remove(wrapper);
+    }
+
+    @Override
+    public void addNumList(Integer projectId, List<String> addNumList) {
+        if(addNumList.isEmpty()){
+            return;
+        }
+        List<ProjectNum> projectNums = new ArrayList<>(addNumList.size());
+        for (String num : addNumList) {
+            ProjectNum projectNum = new ProjectNum();
+            projectNum.setProjectId(projectId);
+            projectNum.setNum(num);
+            projectNums.add(projectNum);
+        }
+        this.saveBatch(projectNums);
+    }
 }

+ 43 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/ProjectServiceImpl.java

@@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage_jp.common.PageInfo;
 import com.fdkankan.manage_jp.common.ResultCode;
 import com.fdkankan.manage_jp.entity.Project;
+import com.fdkankan.manage_jp.entity.ProjectNum;
 import com.fdkankan.manage_jp.entity.User;
 import com.fdkankan.manage_jp.exception.BusinessException;
 import com.fdkankan.manage_jp.mapper.IProjectMapper;
 import com.fdkankan.manage_jp.service.ICompanyService;
+import com.fdkankan.manage_jp.service.IProjectNumService;
 import com.fdkankan.manage_jp.service.IProjectService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage_jp.service.IUserService;
+import com.fdkankan.manage_jp.vo.request.ProjectAddSceneParam;
 import com.fdkankan.manage_jp.vo.request.ProjectParam;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.util.StringUtil;
@@ -19,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -37,6 +41,8 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
     ICompanyService companyService;
     @Autowired
     IUserService userService;
+    @Autowired
+    IProjectNumService projectNumService;
 
     @Override
     public Object pageList(ProjectParam param) {
@@ -66,6 +72,7 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
         if(param.getId() == null){
             throw new BusinessException(ResultCode.PARAM_ERROR);
         }
+        projectNumService.delByProjectId(param.getId());
         this.removeById(param.getId());
     }
 
@@ -81,4 +88,40 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
         wrapper.in(Project::getCreateId,userIds);
         return this.list(wrapper);
     }
+
+
+    @Override
+    public void addScene(ProjectAddSceneParam param) {
+        if(param.getProjectId() == null || param.getNumList() == null || param.getNumList().isEmpty()){
+            throw new BusinessException(ResultCode.PARAM_ERROR);
+        }
+        Project project = this.getById(param.getProjectId());
+        if(project == null){
+            throw new BusinessException(ResultCode.PROJECT_NOT_EXITS);
+        }
+
+        List<ProjectNum> projectNums = projectNumService.getByProjectId(Arrays.asList(param.getProjectId()));
+        List<String> dbNumList = projectNums.stream().map(ProjectNum::getNum).collect(Collectors.toList());
+        List<String> numList = param.getNumList();
+
+        List<String> addNumList = numList.stream().filter(e -> !dbNumList.contains(e)).collect(Collectors.toList());
+        List<String> delNumList = dbNumList.stream().filter(e -> !numList.contains(e)).collect(Collectors.toList());
+
+        projectNumService.delNumList(param.getProjectId(),delNumList);
+        projectNumService.addNumList(param.getProjectId(),addNumList);
+
+    }
+
+    @Override
+    public void delScene(ProjectAddSceneParam param) {
+        if(param.getProjectId() == null || param.getNumList() == null || param.getNumList().isEmpty()){
+            throw new BusinessException(ResultCode.PARAM_ERROR);
+        }
+        Project project = this.getById(param.getProjectId());
+        if(project == null){
+            throw new BusinessException(ResultCode.PROJECT_NOT_EXITS);
+        }
+        projectNumService.delNumList(param.getProjectId(),param.getNumList());
+
+    }
 }

+ 11 - 0
src/main/java/com/fdkankan/manage_jp/vo/request/ProjectAddSceneParam.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage_jp.vo.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ProjectAddSceneParam {
+    private List<String> numList;
+    private Integer projectId;
+}