Преглед на файлове

项目组成员移除增加关联电梯判断

别傲 преди 5 години
родител
ревизия
60b91f3a5e

+ 1 - 5
lift-business-service/src/main/java/cn/com/ty/lift/business/project/controller/ProjectUserController.java

@@ -95,10 +95,6 @@ public class ProjectUserController {
     @PostMapping("/user/batch/remove")
     @Validation(fields = {"mtCompanyId", "projectId", "userList"})
     public RestResponse remove(@Val @RequestBody ProjectRequest request) {
-        int result = projectUserService.remove(request);
-        if (result > 0) {
-            return RestResponse.success(null, MessageUtils.get("msg.delete.success"));
-        }
-        return RestResponse.fail(MessageUtils.get("msg.delete.fail"));
+       return projectUserService.remove(request);
     }
 }

+ 4 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/mapper/ProjectUserMapper.java

@@ -8,6 +8,7 @@ import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResp
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -31,4 +32,7 @@ public interface ProjectUserMapper extends BaseMapper<ProjectUser> {
     int batchRemoveWithParams(ProjectRequest request);
 
     IPage<ProjectRelevanceResponse> findProjectListByUserId(IPage<ProjectRelevanceResponse> page, @Param("request") ProjectRequest request);
+
+    @Select("SELECT name FROM user_info WHERE user_id = #{userId}")
+    String queryNameById(Long userId);
 }

+ 17 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectLiftRelevanceService.java

@@ -28,7 +28,6 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.jms.core.JmsMessagingTemplate;
@@ -332,6 +331,23 @@ public class ProjectLiftRelevanceService extends ServiceImpl<ProjectLiftRelevanc
         return removeByMap(columnMap);
     }
 
+    /**
+     * @param projectId 项目id
+     * @param mtCompanyId 公司id
+     * @param userList 维保工列表
+     * @return 关联电梯列表
+     * @description 根据项目id和公司id,维保工列表查询关联电梯列表
+     * @date 2020/6/15 11:19 上午
+     */
+    public List<ProjectLiftRelevance> queryLiftRelevanceByProjectId(Long projectId, Long mtCompanyId, List<ProjectUser> userList) {
+        QueryWrapper<ProjectLiftRelevance> queryWrapper = new QueryWrapper<>();
+        LambdaQueryWrapper<ProjectLiftRelevance> lambda = queryWrapper.lambda();
+        lambda.eq(ProjectLiftRelevance::getMtCompanyId, mtCompanyId);
+        lambda.eq(ProjectLiftRelevance::getProjectId, projectId);
+        lambda.in(ProjectLiftRelevance::getWorkerId, userList);
+        return list(lambda);
+    }
+
     /**
      * @param projectId 项目ID
      * @return List<ProjectUser> userList项目组维保工列表

+ 32 - 7
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectUserService.java

@@ -1,6 +1,7 @@
 package cn.com.ty.lift.business.project.service;
 
 import cn.com.ty.lift.business.framework.util.MessageUtils;
+import cn.com.ty.lift.business.project.dao.entity.ProjectLiftRelevance;
 import cn.com.ty.lift.business.project.dao.entity.ProjectUser;
 import cn.com.ty.lift.business.project.dao.entity.model.request.ProjectRequest;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectRelevanceResponse;
@@ -8,6 +9,7 @@ import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResp
 import cn.com.ty.lift.business.project.dao.mapper.ProjectUserMapper;
 import cn.com.ty.lift.common.constants.CommonEnum;
 import cn.com.xwy.boot.web.dto.RestResponse;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -16,6 +18,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -27,6 +30,9 @@ import java.util.stream.Collectors;
 @Service
 public class ProjectUserService extends ServiceImpl<ProjectUserMapper, ProjectUser> {
 
+    @Resource
+    private ProjectLiftRelevanceService projectLiftRelevanceService;
+
     public List<ProjectUserResponse> getUserList(Long projectId, Long mtCompanyId) {
         return baseMapper.findUserListById(projectId, mtCompanyId);
     }
@@ -142,14 +148,33 @@ public class ProjectUserService extends ServiceImpl<ProjectUserMapper, ProjectUs
      * @description 批量删除项目组成员
      * @date 2020/1/11 10:43 上午
      */
-    public int remove(ProjectRequest request) {
+    public RestResponse remove(ProjectRequest request) {
         List<ProjectUser> userList = request.getUserList();
-        userList.forEach(entry -> {
-            entry.setProjectId(request.getProjectId());
-            entry.setMtCompanyId(request.getMtCompanyId());
-            entry.setUserRole(CommonEnum.DefaultRole.MTWORK.getCode());
-        });
-        return baseMapper.batchRemoveWithParams(request);
+        Long projectId = request.getProjectId();
+        Long mtCompanyId = request.getMtCompanyId();
+        List<ProjectLiftRelevance> list = projectLiftRelevanceService.queryLiftRelevanceByProjectId(projectId, mtCompanyId, userList);
+        if (CollUtil.isNotEmpty(list)) {
+            for (ProjectUser user : userList) {
+                for (ProjectLiftRelevance relevance : list) {
+                    Long userId = user.getUserId();
+                    if (userId.equals(relevance.getWorkerId())) {
+                        String name = baseMapper.queryNameById(userId);
+                        return RestResponse.success(null, name + MessageUtils.get("msg.list.relevance.exist"));
+                    }
+                }
+            }
+        } else {
+            userList.forEach(entry -> {
+                entry.setProjectId(projectId);
+                entry.setMtCompanyId(mtCompanyId);
+                entry.setUserRole(CommonEnum.DefaultRole.MTWORK.getCode());
+            });
+            int result = baseMapper.batchRemoveWithParams(request);
+            if (result > 0) {
+                return RestResponse.success(null, MessageUtils.get("msg.delete.success"));
+            }
+        }
+        return RestResponse.fail(MessageUtils.get("msg.delete.fail"));
     }
 
     public RestResponse relevanceProject(ProjectRequest request) {

+ 2 - 1
lift-business-service/src/main/resources/locale/response.properties

@@ -37,4 +37,5 @@ msg.project.not.exist=\u9879\u76EE\u4E0D\u5B58\u5728
 msg.contract.not.exist=\u5408\u540C\u4E0D\u5B58\u5728
 msg.maintenance.plan.not.exist=\u7EF4\u4FDD\u8BA1\u5212\u4E0D\u5B58\u5728
 msg.capital.not.sign.record=\u8BE5\u9879\u76EE\u8FD8\u6CA1\u6709\u7B7E\u5230\u8BB0\u5F55
-msg.longitude.error=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u7ECF\u7EAC\u5EA6
+msg.longitude.error=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u7ECF\u7EAC\u5EA6
+msg.list.relevance.exist=\u7EF4\u4FDD\u5DE5\u6709\u76F8\u5173\u7535\u68AF\u4E0D\u80FD\u79FB\u9664