优化项目逻辑
This commit is contained in:
		| @ -73,12 +73,12 @@ public class BusProject extends BaseEntity { | ||||
|     /** | ||||
|      * 项目类型 | ||||
|      */ | ||||
|     private String type; | ||||
|     private String projectType; | ||||
|  | ||||
|     /** | ||||
|      * 项目类型(1光伏 2风电) | ||||
|      * 项目类别 | ||||
|      */ | ||||
|     private String isType; | ||||
|     private String projectCategory; | ||||
|  | ||||
|     /** | ||||
|      * 删除时间 | ||||
|  | ||||
| @ -53,12 +53,12 @@ public class ProjectCreateReq implements Serializable { | ||||
|     /** | ||||
|      * 项目类型 | ||||
|      */ | ||||
|     private String type; | ||||
|     private String projectType; | ||||
|  | ||||
|     /** | ||||
|      * 项目类型(1光伏 2风电) | ||||
|      * 项目类别 | ||||
|      */ | ||||
|     private String isType; | ||||
|     private String projectCategory; | ||||
|  | ||||
|     /** | ||||
|      * 项目地址 | ||||
| @ -91,9 +91,14 @@ public class ProjectCreateReq implements Serializable { | ||||
|     private String onStreamTime; | ||||
|  | ||||
|     /** | ||||
|      * 打卡范围(09:00,18:00) | ||||
|      * 打卡时间开始 | ||||
|      */ | ||||
|     private String punchRange; | ||||
|     private String playCardStart; | ||||
|  | ||||
|     /** | ||||
|      * 打卡时间结束 | ||||
|      */ | ||||
|     private String playCardEnd; | ||||
|  | ||||
|     /** | ||||
|      * 设计总量 | ||||
|  | ||||
| @ -58,12 +58,12 @@ public class ProjectQueryReq implements Serializable { | ||||
|     /** | ||||
|      * 项目类型 | ||||
|      */ | ||||
|     private String type; | ||||
|     private String projectType; | ||||
|  | ||||
|     /** | ||||
|      * 项目类型(1光伏 2风电) | ||||
|      * 项目类别 | ||||
|      */ | ||||
|     private String isType; | ||||
|     private String projectCategory; | ||||
|  | ||||
|     /** | ||||
|      * 项目地址 | ||||
|  | ||||
| @ -63,12 +63,12 @@ public class ProjectUpdateReq implements Serializable { | ||||
|     /** | ||||
|      * 项目类型 | ||||
|      */ | ||||
|     private String type; | ||||
|     private String projectType; | ||||
|  | ||||
|     /** | ||||
|      * 项目类型(1光伏 2风电) | ||||
|      * 项目类别 | ||||
|      */ | ||||
|     private String isType; | ||||
|     private String projectCategory; | ||||
|  | ||||
|     /** | ||||
|      * 项目地址 | ||||
| @ -101,9 +101,14 @@ public class ProjectUpdateReq implements Serializable { | ||||
|     private String onStreamTime; | ||||
|  | ||||
|     /** | ||||
|      * 打卡范围(09:00,18:00) | ||||
|      * 打卡时间开始 | ||||
|      */ | ||||
|     private String punchRange; | ||||
|     private String playCardStart; | ||||
|  | ||||
|     /** | ||||
|      * 打卡时间结束 | ||||
|      */ | ||||
|     private String playCardEnd; | ||||
|  | ||||
|     /** | ||||
|      * 设计总量 | ||||
| @ -119,4 +124,9 @@ public class ProjectUpdateReq implements Serializable { | ||||
|      * 显示隐藏(0显示 1隐藏) | ||||
|      */ | ||||
|     private String showHidden; | ||||
|  | ||||
|     /** | ||||
|      * 排序字段 | ||||
|      */ | ||||
|     private Long sort; | ||||
| } | ||||
|  | ||||
| @ -85,15 +85,16 @@ public class BusProjectVo implements Serializable { | ||||
|     /** | ||||
|      * 项目类型 | ||||
|      */ | ||||
|     @ExcelProperty(value = "项目类型") | ||||
|     private String type; | ||||
|     @ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class) | ||||
|     @ExcelDictFormat(dictType = "project_type") | ||||
|     private String projectType; | ||||
|  | ||||
|     /** | ||||
|      * 项目类型(1光伏 2风电) | ||||
|      * 项目类别 | ||||
|      */ | ||||
|     @ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class) | ||||
|     @ExcelDictFormat(readConverterExp = "1=光伏,2=风电") | ||||
|     private String isType; | ||||
|     @ExcelDictFormat(dictType = "project_category_type") | ||||
|     private String projectCategory; | ||||
|  | ||||
|     /** | ||||
|      * 项目地址 | ||||
| @ -156,6 +157,11 @@ public class BusProjectVo implements Serializable { | ||||
|     @ExcelDictFormat(readConverterExp = "1=显示,2=隐藏") | ||||
|     private String showHidden; | ||||
|  | ||||
|     /** | ||||
|      * 排序字段 | ||||
|      */ | ||||
|     private Long sort; | ||||
|  | ||||
|     /** | ||||
|      * 创建时间 | ||||
|      */ | ||||
|  | ||||
| @ -91,15 +91,19 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj | ||||
|     /** | ||||
|      * 新增项目 | ||||
|      * | ||||
|      * @param dto 项目 | ||||
|      * @param req 项目 | ||||
|      * @return 新项目 id | ||||
|      */ | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public Long insertByBo(ProjectCreateReq dto) { | ||||
|     public Long insertByBo(ProjectCreateReq req) { | ||||
|         // 将实体类和 DTO 进行转换 | ||||
|         BusProject project = new BusProject(); | ||||
|         BeanUtils.copyProperties(dto, project); | ||||
|         BeanUtils.copyProperties(req, project); | ||||
|         String playCardStart = req.getPlayCardStart(); | ||||
|         String playCardEnd = req.getPlayCardEnd(); | ||||
|         String punchRange = playCardStart + "," + playCardEnd; | ||||
|         project.setPunchRange(punchRange); | ||||
|         // 数据校验 | ||||
|         validEntityBeforeSave(project, true); | ||||
|         // 写入数据库 | ||||
| @ -136,10 +140,17 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj | ||||
|         // 将实体类和 DTO 进行转换 | ||||
|         BusProject project = new BusProject(); | ||||
|         BeanUtils.copyProperties(req, project); | ||||
|         String playCardStart = req.getPlayCardStart(); | ||||
|         String playCardEnd = req.getPlayCardEnd(); | ||||
|         if (StringUtils.isNotBlank(playCardStart) && StringUtils.isNotBlank(playCardEnd)){ | ||||
|             String punchRange = playCardStart + "," + playCardEnd; | ||||
|             project.setPunchRange(punchRange); | ||||
|         } | ||||
|         // 数据校验 | ||||
|         validEntityBeforeSave(project, false); | ||||
|         // 权限校验 | ||||
|         validPermission(project); | ||||
|         Long userId = LoginHelper.getUserId(); | ||||
|         validAuth(project.getId(), userId); | ||||
|         // 判断是否存在 | ||||
|         BusProject oldProject = this.getById(project.getId()); | ||||
|         if (oldProject == null) { | ||||
| @ -163,22 +174,6 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 权限判断 | ||||
|      */ | ||||
|     private void validPermission(BusProject entity) { | ||||
|         Long entityId = entity.getId(); | ||||
|         // 获取当前登录用户 | ||||
|         Long userId = LoginHelper.getUserId(); | ||||
|         // 判断是否存在项目与登录用户关联 | ||||
|         QueryWrapper<BusUserProjectRelevancy> queryWrapper = new QueryWrapper<>(); | ||||
|         queryWrapper.eq("project_id", entityId); | ||||
|         queryWrapper.eq("user_id", userId); | ||||
|         if (userProjectRelevancyService.count(queryWrapper) <= 0) { | ||||
|             throw new ServiceException("当前用户无权限操作", HttpStatus.FORBIDDEN); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 校验并批量删除项目信息 | ||||
|      * | ||||
| @ -245,8 +240,8 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj | ||||
|         Long pId = req.getPId(); | ||||
|         String status = req.getStatus(); | ||||
|         String remark = req.getRemark(); | ||||
|         String type = req.getType(); | ||||
|         String isType = req.getIsType(); | ||||
|         String projectType = req.getProjectType(); | ||||
|         String projectCategory = req.getProjectCategory(); | ||||
|         String projectSite = req.getProjectSite(); | ||||
|         String principal = req.getPrincipal(); | ||||
|         String principalPhone = req.getPrincipalPhone(); | ||||
| @ -260,7 +255,6 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj | ||||
|         lqw.like(StringUtils.isNotBlank(projectName), BusProject::getProjectName, projectName); | ||||
|         lqw.like(StringUtils.isNotBlank(shortName), BusProject::getShortName, shortName); | ||||
|         lqw.like(StringUtils.isNotBlank(remark), BusProject::getRemark, remark); | ||||
|         lqw.like(StringUtils.isNotBlank(type), BusProject::getType, type); | ||||
|         lqw.like(StringUtils.isNotBlank(projectSite), BusProject::getProjectSite, projectSite); | ||||
|         lqw.like(StringUtils.isNotBlank(principal), BusProject::getPrincipal, principal); | ||||
|         lqw.like(StringUtils.isNotBlank(principalPhone), BusProject::getPrincipalPhone, principalPhone); | ||||
| @ -272,9 +266,11 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj | ||||
|         lqw.eq(ObjectUtils.isNotEmpty(pId), BusProject::getPId, pId); | ||||
|         lqw.eq(ObjectUtils.isNotEmpty(status), BusProject::getStatus, status); | ||||
|         lqw.eq(ObjectUtils.isNotEmpty(id), BusProject::getId, id); | ||||
|         lqw.eq(ObjectUtils.isNotEmpty(isType), BusProject::getIsType, isType); | ||||
|         lqw.eq(ObjectUtils.isNotEmpty(projectType), BusProject::getProjectType, projectType); | ||||
|         lqw.eq(ObjectUtils.isNotEmpty(projectCategory), BusProject::getProjectCategory, projectCategory); | ||||
|         lqw.eq(ObjectUtils.isNotEmpty(designTotal), BusProject::getDesignTotal, designTotal); | ||||
|         lqw.eq(ObjectUtils.isNotEmpty(showHidden), BusProject::getShowHidden, showHidden); | ||||
|         lqw.orderByAsc(BusProject::getSort); | ||||
|         return lqw; | ||||
|     } | ||||
|  | ||||
| @ -304,7 +300,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj | ||||
|         queryWrapper.eq("project_id", projectId); | ||||
|         queryWrapper.eq("user_id", userId); | ||||
|         if (userProjectRelevancyService.count(queryWrapper) <= 0) { | ||||
|             throw new ServiceException("无该项目的权限操作", HttpStatus.FORBIDDEN); | ||||
|             throw new ServiceException("当前用户无该项目权限操作", HttpStatus.FORBIDDEN); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; | ||||
| 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.core.toolkit.Wrappers; | ||||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
| import jakarta.annotation.Resource; | ||||
| @ -123,11 +124,12 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM | ||||
|             throw new ServiceException("新增项目班组下的成员失败,数据库异常", HttpStatus.ERROR); | ||||
|         } | ||||
|         // 同步修改用户表的team_id字段并添加入场时间 | ||||
|         BusConstructionUser constructionUser = new BusConstructionUser(); | ||||
|         constructionUser.setId(projectTeamMember.getMemberId()); | ||||
|         constructionUser.setTeamId(projectTeamMember.getTeamId()); | ||||
|         constructionUser.setEntryDate(new Date()); | ||||
|         constructionUserService.updateById(constructionUser); | ||||
|         LambdaUpdateWrapper<BusConstructionUser> constructionUserLuw = Wrappers.lambdaUpdate(BusConstructionUser.class) | ||||
|             .eq(BusConstructionUser::getId, projectTeamMember.getMemberId()) | ||||
|             .set(BusConstructionUser::getTeamId, projectTeamMember.getTeamId()) | ||||
|             .set(BusConstructionUser::getEntryDate, new Date()) | ||||
|             .set(BusConstructionUser::getLeaveDate, null); | ||||
|         constructionUserService.update(constructionUserLuw); | ||||
|         return projectTeamMember.getId(); | ||||
|     } | ||||
|  | ||||
| @ -151,10 +153,10 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM | ||||
|             throw new ServiceException("修改项目班组下的成员,数据不存在", HttpStatus.NOT_FOUND); | ||||
|         } | ||||
|         // 同步修改用户表的team_id字段 | ||||
|         BusConstructionUser constructionUser = new BusConstructionUser(); | ||||
|         constructionUser.setId(projectTeamMember.getMemberId()); | ||||
|         constructionUser.setTeamId(projectTeamMember.getTeamId()); | ||||
|         constructionUserService.updateById(constructionUser); | ||||
|         LambdaUpdateWrapper<BusConstructionUser> constructionUserLuw = Wrappers.lambdaUpdate(BusConstructionUser.class) | ||||
|             .eq(BusConstructionUser::getId, projectTeamMember.getMemberId()) | ||||
|             .set(BusConstructionUser::getTeamId, projectTeamMember.getTeamId()); | ||||
|         constructionUserService.update(constructionUserLuw); | ||||
|         // 操作数据库 | ||||
|         return this.updateById(projectTeamMember); | ||||
|     } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user