|
@@ -1,11 +1,11 @@
|
|
|
package cn.com.ty.lift.business.project.service;
|
|
|
|
|
|
import cn.com.ty.lift.business.capital.dao.mapper.CommonMapper;
|
|
|
+import cn.com.ty.lift.business.framework.BusinessBasicException;
|
|
|
import cn.com.ty.lift.business.framework.util.MessageUtils;
|
|
|
import cn.com.ty.lift.business.library.dao.entity.Lift;
|
|
|
import cn.com.ty.lift.business.library.dao.entity.model.request.LiftRequest;
|
|
|
import cn.com.ty.lift.business.library.service.LiftService;
|
|
|
-import cn.com.ty.lift.business.library.service.PlatformCompanyLiftRelevanceService;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.MaintenancePlan;
|
|
|
import cn.com.ty.lift.business.maintenance.service.MaintenancePlanService;
|
|
|
import cn.com.ty.lift.business.project.dao.entity.ProjectLiftRelevance;
|
|
@@ -29,6 +29,7 @@ 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.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.jms.core.JmsMessagingTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -304,15 +305,57 @@ public class ProjectLiftRelevanceService extends ServiceImpl<ProjectLiftRelevanc
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public RestResponse batchModify(ProjectRequest request) {
|
|
|
Long newWorkerId = request.getWorkerId();
|
|
|
- List<ProjectLiftRelevance> list = request.getList();
|
|
|
- list.forEach(entry -> entry.setWorkerId(request.getWorkerId()));
|
|
|
- boolean result = updateBatchById(list);
|
|
|
+ //获取前端传过来的所有项目id
|
|
|
+ List<Long> projectIds = request.getList().stream().
|
|
|
+ map(ProjectLiftRelevance::getProjectId).
|
|
|
+ distinct().
|
|
|
+ collect(Collectors.toList());
|
|
|
+ //查询公司项目下的成员
|
|
|
+ List<ProjectUser> projectUsers = projectUserService.list(Wrappers.<ProjectUser>query().
|
|
|
+ select("mt_company_id", "user_id", "project_id").
|
|
|
+ eq("mt_company_id", request.getMtCompanyId()).
|
|
|
+ in("project_id", projectIds));
|
|
|
+ //创建待插入的项目成员列表
|
|
|
+ ArrayList<ProjectUser> insertProjectUsers = new ArrayList<>();
|
|
|
+ //循环前端传过来的项目电梯信息
|
|
|
+ request.getList().forEach(projectLiftRelevance -> {
|
|
|
+ //查询项目用户关联表中是否有这个关联
|
|
|
+ boolean hasUser = false;
|
|
|
+ for (ProjectUser projectUser : projectUsers) {
|
|
|
+ if (projectLiftRelevance.getProjectId().equals(projectUser.getProjectId()) &&
|
|
|
+ projectLiftRelevance.getMtCompanyId().equals(projectUser.getMtCompanyId()) &&
|
|
|
+ projectUser.getUserId().equals(projectLiftRelevance.getWorkerId())) {
|
|
|
+ hasUser = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //如果项目用户关联表中没有这个用户
|
|
|
+ if (!hasUser) {
|
|
|
+ ProjectUser projectUser = new ProjectUser();
|
|
|
+ projectUser.setProjectId(projectLiftRelevance.getProjectId());
|
|
|
+ projectUser.setUserId(newWorkerId);
|
|
|
+ projectUser.setMtCompanyId(projectLiftRelevance.getMtCompanyId());
|
|
|
+ projectUser.setUserRole(CommonEnum.DefaultRole.MTWORK.getCode());
|
|
|
+ projectUser.setCreatorId(10000L);
|
|
|
+ projectUser.setUpdateId(10000L);
|
|
|
+ insertProjectUsers.add(projectUser);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //批量保存项目用户关联信息
|
|
|
+ if (!projectUserService.saveBatch(projectUsers)) {
|
|
|
+ throw new BusinessBasicException("数据库保存失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取项目电梯关联信息
|
|
|
+ List<ProjectLiftRelevance> projectLiftRelevances = request.getList();
|
|
|
+ projectLiftRelevances.forEach(entry -> entry.setWorkerId(request.getWorkerId()));
|
|
|
+ boolean result = this.updateBatchById(projectLiftRelevances);
|
|
|
if (!result) return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
|
|
|
- for (ProjectLiftRelevance entry : list) {
|
|
|
+ for (ProjectLiftRelevance entry : projectLiftRelevances) {
|
|
|
sendMessage(entry.getProjectId(), entry.getMtCompanyId(), entry.getLiftId(), entry.getWorkerId(), newWorkerId);
|
|
|
}
|
|
|
//查询未完成的维保任务
|
|
|
- List<Long> liftIdList = list.stream().map(ProjectLiftRelevance::getLiftId).collect(Collectors.toList());
|
|
|
+ List<Long> liftIdList = projectLiftRelevances.stream().map(ProjectLiftRelevance::getLiftId).collect(Collectors.toList());
|
|
|
if (CollUtil.isNotEmpty(liftIdList)) {
|
|
|
List<MaintenancePlan> planList = maintenancePlanService.getPlanList(request.getMtCompanyId(), liftIdList);
|
|
|
//修改未完成的维保计划为新的维保负责人
|
|
@@ -351,9 +394,9 @@ public class ProjectLiftRelevanceService extends ServiceImpl<ProjectLiftRelevanc
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param projectId 项目id
|
|
|
+ * @param projectId 项目id
|
|
|
* @param mtCompanyId 公司id
|
|
|
- * @param userList 维保工列表
|
|
|
+ * @param userList 维保工列表
|
|
|
* @return 关联电梯列表
|
|
|
* @description 根据项目id和公司id,维保工列表查询关联电梯列表
|
|
|
* @date 2020/6/15 11:19 上午
|
|
@@ -410,10 +453,10 @@ public class ProjectLiftRelevanceService extends ServiceImpl<ProjectLiftRelevanc
|
|
|
return RestResponse.fail("用户存在关联电梯,无法取消");
|
|
|
}
|
|
|
boolean removeFlag = projectUserService.remove(new QueryWrapper<ProjectUser>()
|
|
|
- .eq("project_id", request.getProjectId())
|
|
|
- .eq("user_id", request.getWorkerId())
|
|
|
+ .eq("project_id", request.getProjectId())
|
|
|
+ .eq("user_id", request.getWorkerId())
|
|
|
);
|
|
|
- if(!removeFlag) {
|
|
|
+ if (!removeFlag) {
|
|
|
return RestResponse.fail("取消关联失败");
|
|
|
}
|
|
|
return RestResponse.success(ApiConstants.RESULT_SUCCESS, "操作成功");
|