|
|
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import jakarta.annotation.Resource;
|
|
|
|
|
@ -18,13 +19,12 @@ import org.dromara.project.domain.BusProjectTeamMember;
|
|
|
|
|
import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberCreateReq;
|
|
|
|
|
import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberQueryReq;
|
|
|
|
|
import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberUpdateReq;
|
|
|
|
|
import org.dromara.project.domain.vo.BusConstructionUserVo;
|
|
|
|
|
import org.dromara.project.domain.vo.BusProjectTeamMemberVo;
|
|
|
|
|
import org.dromara.project.mapper.BusProjectTeamMemberMapper;
|
|
|
|
|
import org.dromara.project.service.IBusConstructionUserService;
|
|
|
|
|
import org.dromara.project.service.IBusProjectService;
|
|
|
|
|
import org.dromara.project.service.IBusProjectTeamMemberService;
|
|
|
|
|
import org.dromara.project.service.IBusProjectTeamService;
|
|
|
|
|
import org.dromara.project.service.IBusProjectService;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@ -104,6 +104,7 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|
|
|
|
* @return 是否新增成功
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public Long insertByBo(ProjectTeamMemberCreateReq req) {
|
|
|
|
|
// 将实体类和 DTO 进行转换
|
|
|
|
|
BusProjectTeamMember projectTeamMember = new BusProjectTeamMember();
|
|
|
|
|
@ -111,16 +112,21 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|
|
|
|
// 数据校验
|
|
|
|
|
validEntityBeforeSave(projectTeamMember);
|
|
|
|
|
// 判断对应的用户与项目关联是否存在
|
|
|
|
|
if (this.getOne(new LambdaQueryWrapper<BusProjectTeamMember>()
|
|
|
|
|
.eq(BusProjectTeamMember::getMemberId, projectTeamMember.getMemberId())
|
|
|
|
|
.eq(BusProjectTeamMember::getTeamId, projectTeamMember.getTeamId())) != null) {
|
|
|
|
|
throw new ServiceException("用户和项目班组关联已存在", HttpStatus.CONFLICT);
|
|
|
|
|
BusProjectTeamMember teamMember = this.getOne(new LambdaQueryWrapper<BusProjectTeamMember>()
|
|
|
|
|
.eq(BusProjectTeamMember::getMemberId, projectTeamMember.getMemberId()));
|
|
|
|
|
if (teamMember != null) {
|
|
|
|
|
throw new ServiceException("当前用户以关联编号为:" + teamMember.getTeamId() + "的班组", HttpStatus.CONFLICT);
|
|
|
|
|
}
|
|
|
|
|
// 操作数据库
|
|
|
|
|
boolean save = this.save(projectTeamMember);
|
|
|
|
|
if (!save) {
|
|
|
|
|
throw new ServiceException("新增项目班组下的成员失败,数据库异常", HttpStatus.ERROR);
|
|
|
|
|
}
|
|
|
|
|
// 同步修改用户表的team_id字段
|
|
|
|
|
BusConstructionUser constructionUser = new BusConstructionUser();
|
|
|
|
|
constructionUser.setId(projectTeamMember.getMemberId());
|
|
|
|
|
constructionUser.setTeamId(projectTeamMember.getTeamId());
|
|
|
|
|
constructionUserService.updateById(constructionUser);
|
|
|
|
|
return projectTeamMember.getId();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -131,6 +137,7 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|
|
|
|
* @return 是否修改成功
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public Boolean updateByBo(ProjectTeamMemberUpdateReq req) {
|
|
|
|
|
// 将实体类和 DTO 进行转换
|
|
|
|
|
BusProjectTeamMember projectTeamMember = new BusProjectTeamMember();
|
|
|
|
|
@ -142,6 +149,11 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|
|
|
|
if (oldProjectTeamMember == null) {
|
|
|
|
|
throw new ServiceException("修改项目班组下的成员,数据不存在", HttpStatus.NOT_FOUND);
|
|
|
|
|
}
|
|
|
|
|
// 同步修改用户表的team_id字段
|
|
|
|
|
BusConstructionUser constructionUser = new BusConstructionUser();
|
|
|
|
|
constructionUser.setId(projectTeamMember.getMemberId());
|
|
|
|
|
constructionUser.setTeamId(projectTeamMember.getTeamId());
|
|
|
|
|
constructionUserService.updateById(constructionUser);
|
|
|
|
|
// 操作数据库
|
|
|
|
|
return this.updateById(projectTeamMember);
|
|
|
|
|
}
|
|
|
|
|
@ -190,6 +202,15 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|
|
|
|
if (isValid) {
|
|
|
|
|
//TODO 做一些业务上的校验,判断是否需要校验
|
|
|
|
|
}
|
|
|
|
|
List<BusProjectTeamMember> projectTeamMemberList = this.listByIds(ids);
|
|
|
|
|
if (projectTeamMemberList.size() != ids.size()) {
|
|
|
|
|
throw new ServiceException("删除项目班组下的成员失败,数据缺失", HttpStatus.NOT_FOUND);
|
|
|
|
|
}
|
|
|
|
|
List<Long> memberIds = projectTeamMemberList.stream().map(BusProjectTeamMember::getMemberId).toList();
|
|
|
|
|
LambdaUpdateWrapper<BusConstructionUser> queryWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
queryWrapper.in(BusConstructionUser::getId, memberIds);
|
|
|
|
|
queryWrapper.set(BusConstructionUser::getTeamId, null);
|
|
|
|
|
constructionUserService.update(null, queryWrapper);
|
|
|
|
|
return this.removeBatchByIds(ids);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -209,7 +230,8 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|
|
|
|
BeanUtils.copyProperties(projectTeamMember, projectTeamMemberVo);
|
|
|
|
|
// 关联获取施工人员信息
|
|
|
|
|
Long memberId = projectTeamMember.getMemberId();
|
|
|
|
|
projectTeamMemberVo.setConstructionUserVo(constructionUserService.queryById(memberId));
|
|
|
|
|
BusConstructionUser constructionUser = constructionUserService.getById(memberId);
|
|
|
|
|
projectTeamMemberVo.setMemberName(constructionUser.getUserName());
|
|
|
|
|
return projectTeamMemberVo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -276,11 +298,11 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|
|
|
|
BusProjectTeamMemberVo projectTeamMemberVo = new BusProjectTeamMemberVo();
|
|
|
|
|
BeanUtils.copyProperties(projectTeamMember, projectTeamMemberVo);
|
|
|
|
|
Long memberId = projectTeamMember.getMemberId();
|
|
|
|
|
BusConstructionUserVo constructionUserVo = null;
|
|
|
|
|
String memberName = null;
|
|
|
|
|
if (contractorIdContractorList.containsKey(memberId)) {
|
|
|
|
|
constructionUserVo = constructionUserService.getVo(contractorIdContractorList.get(memberId).get(0));
|
|
|
|
|
memberName = contractorIdContractorList.get(memberId).get(0).getUserName();
|
|
|
|
|
}
|
|
|
|
|
projectTeamMemberVo.setConstructionUserVo(constructionUserVo);
|
|
|
|
|
projectTeamMemberVo.setMemberName(memberName);
|
|
|
|
|
return projectTeamMemberVo;
|
|
|
|
|
}).toList();
|
|
|
|
|
projectTeamMemberVoPage.setRecords(projectTeamMemberVoList);
|
|
|
|
|
|