|
@@ -567,6 +567,73 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
|
|
|
}
|
|
|
//获取原项目的数据对象
|
|
|
Project entry = oldProject.get();
|
|
|
+
|
|
|
+ if (Objects.isNull(mtCompanyId)) {
|
|
|
+ mtCompanyId = entry.getMtCompanyId();
|
|
|
+ }
|
|
|
+
|
|
|
+ //区域ID判断
|
|
|
+ if (Objects.nonNull(entry.getRegionId()) && !Objects.equals(entry.getRegionId(), project.getRegionId())) {
|
|
|
+ //判断传入的区域ID合法性
|
|
|
+ Region oldRegion = regionService.getBaseMapper().selectById(entry.getRegionId());
|
|
|
+ Region newRegion = regionService.getBaseMapper().selectById(project.getRegionId());
|
|
|
+
|
|
|
+ if (Objects.nonNull(oldRegion) && Objects.equals(mtCompanyId, oldRegion.getMtCompanyId())
|
|
|
+ && Objects.nonNull(newRegion) && Objects.equals(mtCompanyId, newRegion.getMtCompanyId())) {
|
|
|
+
|
|
|
+ //查询project_user表中区域主管的信息
|
|
|
+ List<ProjectUser> projectUsers = projectUserService.getBaseMapper().selectList(
|
|
|
+ new QueryWrapper<ProjectUser>().lambda()
|
|
|
+ .eq(ProjectUser::getProjectId, projectId)
|
|
|
+ .eq(ProjectUser::getMtCompanyId, mtCompanyId)
|
|
|
+ .eq(ProjectUser::getUserRole, "REGION_DIRECTOR")
|
|
|
+ );
|
|
|
+ //修改project_user表中区域主管的信息
|
|
|
+ switch (projectUsers.size()) {
|
|
|
+ case 0:
|
|
|
+ //添加数据
|
|
|
+ if (projectUserService.getBaseMapper().insert(createProjectUser(projectId, mtCompanyId, newRegion)) != 1) {
|
|
|
+ rollbackByException("project_user表插入数据失败!");
|
|
|
+ }
|
|
|
+ ;
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ //修改数据
|
|
|
+ ProjectUser updateProjectUser = projectUsers.get(0);
|
|
|
+ updateProjectUser.setUpdateDate(LocalDateTime.now());
|
|
|
+ updateProjectUser.setUserId(newRegion.getUserId());
|
|
|
+
|
|
|
+ int i = projectUserService.getBaseMapper().update(updateProjectUser, new QueryWrapper<ProjectUser>()
|
|
|
+ .lambda()
|
|
|
+ .eq(ProjectUser::getProjectId, updateProjectUser.getProjectId())
|
|
|
+ .eq(ProjectUser::getMtCompanyId, mtCompanyId)
|
|
|
+ .eq(ProjectUser::getUserRole, "REGION_DIRECTOR"));
|
|
|
+ if (1 != i) {
|
|
|
+ rollbackByException("project_user表修改数据失败!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ //查出多个区域主管角色,删除数据
|
|
|
+ int delCount = projectUserService.getBaseMapper().delete(new QueryWrapper<ProjectUser>()
|
|
|
+ .lambda()
|
|
|
+ .eq(ProjectUser::getProjectId, projectId)
|
|
|
+ .eq(ProjectUser::getMtCompanyId, mtCompanyId)
|
|
|
+ .eq(ProjectUser::getUserRole, "REGION_DIRECTOR"));
|
|
|
+
|
|
|
+ //重新写入
|
|
|
+ int insert = projectUserService.getBaseMapper().insert(createProjectUser(projectId, mtCompanyId, newRegion));
|
|
|
+
|
|
|
+ if (delCount != projectUsers.size() || 1 != insert) {
|
|
|
+ rollbackByException("project_user表修改数据失败!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ rollbackByException("区域数据异常!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//如果原项目的结束时间和提交项目的结束时间不一样 更新维保计划表
|
|
|
if (!endDate.isEqual(entry.getEndDate())) {
|
|
|
//延期三个月
|
|
@@ -668,7 +735,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
|
|
|
if (!result)
|
|
|
return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
|
|
|
//生成项目操作记录
|
|
|
- ProjectHistory history = projectHistoryService.createOperaHistory(entry, project, project.getMtCompanyId());
|
|
|
+ ProjectHistory history = projectHistoryService.createOperaHistory(entry, project, mtCompanyId);
|
|
|
if (Objects.nonNull(history)) {
|
|
|
//保存项目操作记录
|
|
|
boolean projectResult = projectHistoryService.save(history);
|
|
@@ -681,6 +748,16 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
|
|
|
return RestResponse.success(null, MessageUtils.get("msg.modify.success"));
|
|
|
}
|
|
|
|
|
|
+ private ProjectUser createProjectUser(Long projectId, Long mtCompanyId, Region newRegion) {
|
|
|
+ ProjectUser insertProjectUser = new ProjectUser();
|
|
|
+ insertProjectUser.setUserId(newRegion.getUserId());
|
|
|
+ insertProjectUser.setProjectId(projectId);
|
|
|
+ insertProjectUser.setMtCompanyId(mtCompanyId);
|
|
|
+ insertProjectUser.setUserRole("REGION_DIRECTOR");
|
|
|
+ insertProjectUser.setCreateDate(LocalDateTime.now());
|
|
|
+ return insertProjectUser;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
public List<Map<String, String>> exportList(List<String> ids) {
|
|
|
return baseMapper.exportList(ids);
|
|
@@ -1007,4 +1084,9 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
|
|
|
}
|
|
|
return RestResponse.success("导入成功");
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ private void rollbackByException(String msg) {
|
|
|
+ throw new RuntimeException(msg);
|
|
|
+ }
|
|
|
}
|