问题修复
This commit is contained in:
+6
@@ -33,5 +33,11 @@ public interface ErrorCodeConstants{
|
|||||||
|
|
||||||
|
|
||||||
ErrorCode PROJECT_AREA_HAS_OCCUPIED = new ErrorCode(1000007014, "项目更新失败,所选区域已被其他进行中项目占用");
|
ErrorCode PROJECT_AREA_HAS_OCCUPIED = new ErrorCode(1000007014, "项目更新失败,所选区域已被其他进行中项目占用");
|
||||||
|
|
||||||
|
ErrorCode PROJECT_NOT_STARTING = new ErrorCode(1000007015, "任务更新失败,项目还没开始");
|
||||||
|
|
||||||
|
ErrorCode DISCUSS_ADD_FAIL = new ErrorCode(1000007016, "活动操作失败,只有任务在进行中才可以新增活动");
|
||||||
|
|
||||||
|
ErrorCode DISCUSS_TASK_IS_DRAFT = new ErrorCode(100000701, "活动操作失败,所属任务为草稿");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-3
@@ -47,7 +47,4 @@ public class ResourceBaseVO {
|
|||||||
|
|
||||||
private Integer number;
|
private Integer number;
|
||||||
|
|
||||||
@ApiModelProperty("唯一资源被占用")
|
|
||||||
private Boolean occupied;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-3
@@ -48,7 +48,4 @@ public class ResourceExcelVO {
|
|||||||
|
|
||||||
private Integer number;
|
private Integer number;
|
||||||
|
|
||||||
@ApiModelProperty("唯一资源被占用")
|
|
||||||
private Boolean occupied;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-3
@@ -58,7 +58,4 @@ public class ResourceExportReqVO {
|
|||||||
|
|
||||||
private Integer number;
|
private Integer number;
|
||||||
|
|
||||||
@ApiModelProperty("唯一资源被占用")
|
|
||||||
private Boolean occupied;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-3
@@ -60,7 +60,4 @@ public class ResourcePageReqVO extends PageParam {
|
|||||||
|
|
||||||
private Integer number;
|
private Integer number;
|
||||||
|
|
||||||
@ApiModelProperty("唯一资源被占用")
|
|
||||||
private Boolean occupied;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-3
@@ -71,7 +71,4 @@ public class ResourceDO extends BaseDO {
|
|||||||
|
|
||||||
@ApiModelProperty("数量")
|
@ApiModelProperty("数量")
|
||||||
private Integer number;
|
private Integer number;
|
||||||
|
|
||||||
@ApiModelProperty("唯一资源被占用")
|
|
||||||
private Boolean occupied;
|
|
||||||
}
|
}
|
||||||
|
|||||||
+25
@@ -12,9 +12,12 @@ import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO;
|
|||||||
import cn.iocoder.yudao.module.farm.controller.admin.workHour.dto.WorkUserMsgDTO;
|
import cn.iocoder.yudao.module.farm.controller.admin.workHour.dto.WorkUserMsgDTO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.WorkHourBaseVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.WorkHourBaseVO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.task.TaskMapper;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.workHour.WorkHourMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.workHour.WorkHourMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.enums.TaskStatus;
|
||||||
import cn.iocoder.yudao.module.farm.service.area.AreaService;
|
import cn.iocoder.yudao.module.farm.service.area.AreaService;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
@@ -63,9 +66,13 @@ public class DiscussServiceImpl implements DiscussService {
|
|||||||
private AreaService areaService;
|
private AreaService areaService;
|
||||||
@Resource
|
@Resource
|
||||||
private AreaMapper areaMapper;
|
private AreaMapper areaMapper;
|
||||||
|
@Resource
|
||||||
|
private TaskMapper taskMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createDiscuss(DiscussCreateReqVO createReqVO) {
|
public Long createDiscuss(DiscussCreateReqVO createReqVO) {
|
||||||
|
//只有所属任务进行中才可以添加活动
|
||||||
|
this.canDiscussCreated(BeanUtil.copyProperties(createReqVO, DiscussDO.class));
|
||||||
// 插入
|
// 插入
|
||||||
DiscussDO discuss = DiscussConvert.INSTANCE.convert(createReqVO);
|
DiscussDO discuss = DiscussConvert.INSTANCE.convert(createReqVO);
|
||||||
discussMapper.insert(discuss);
|
discussMapper.insert(discuss);
|
||||||
@@ -111,6 +118,8 @@ public class DiscussServiceImpl implements DiscussService {
|
|||||||
public void updateDiscuss(DiscussUpdateReqVO updateReqVO) {
|
public void updateDiscuss(DiscussUpdateReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
this.validateDiscussExists(updateReqVO.getId());
|
this.validateDiscussExists(updateReqVO.getId());
|
||||||
|
//只有所属任务进行中才可以修改活动
|
||||||
|
this.canDiscussCreated(BeanUtil.copyProperties(updateReqVO, DiscussDO.class));
|
||||||
// 更新
|
// 更新
|
||||||
DiscussDO updateObj = DiscussConvert.INSTANCE.convert(updateReqVO);
|
DiscussDO updateObj = DiscussConvert.INSTANCE.convert(updateReqVO);
|
||||||
discussMapper.updateById(updateObj);
|
discussMapper.updateById(updateObj);
|
||||||
@@ -213,4 +222,20 @@ public class DiscussServiceImpl implements DiscussService {
|
|||||||
PageVO<DiscussDTO> returnList = PageUtil.convertPageInfo(discussDTOList);
|
PageVO<DiscussDTO> returnList = PageUtil.convertPageInfo(discussDTOList);
|
||||||
return R.success(returnList);
|
return R.success(returnList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务进行中才能创建活动
|
||||||
|
*/
|
||||||
|
public void canDiscussCreated(DiscussDO discussDO){
|
||||||
|
TaskDO taskDO = taskMapper.selectById(discussDO.getTaskId());
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDO)){
|
||||||
|
if (!taskDO.getStatus().equals(TaskStatus.STARTED)){
|
||||||
|
throw exception(DISCUSS_ADD_FAIL);
|
||||||
|
}
|
||||||
|
if (taskDO.getDraft()){
|
||||||
|
throw exception(DISCUSS_TASK_IS_DRAFT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-1
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.iocoder.yudao.framework.common.page.PageUtil;
|
import cn.iocoder.yudao.framework.common.page.PageUtil;
|
||||||
import cn.iocoder.yudao.framework.common.page.PageVO;
|
import cn.iocoder.yudao.framework.common.page.PageVO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO;
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO;
|
||||||
@@ -21,6 +22,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.zsw.base.R;
|
import com.zsw.base.R;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.security.core.parameters.P;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -156,7 +158,14 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
queryWrapperX.orderByDesc(ProjectDO::getId);
|
queryWrapperX.orderByDesc(ProjectDO::getId);
|
||||||
List<ProjectDO> list = projectMapper.selectPage(new Page<>(pageDTO.getPageNum(), pageDTO.getPageSize()), queryWrapperX).getRecords();
|
|
||||||
|
projectMapper.selectList(queryWrapperX);
|
||||||
|
PageParam pageParam = new PageParam();
|
||||||
|
pageParam.setPageNo(pageDTO.getPageNum());
|
||||||
|
pageParam.setPageSize(pageDTO.getPageSize());
|
||||||
|
List<ProjectDO> list = projectMapper.selectPage(pageParam, queryWrapperX).getList();
|
||||||
|
|
||||||
|
// List<ProjectDO> list = projectMapper.selectPage(new Page<>(pageDTO.getPageNum(), pageDTO.getPageSize()), queryWrapperX).getRecords();
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(list)){
|
if (ObjectUtil.isEmpty(list)){
|
||||||
return R.success(PageUtil.emptyPage(pageDTO, ProjectListDTO.class));
|
return R.success(PageUtil.emptyPage(pageDTO, ProjectListDTO.class));
|
||||||
|
|||||||
+23
-11
@@ -30,6 +30,7 @@ import cn.iocoder.yudao.module.farm.dal.mysql.project.ProjectMapper;
|
|||||||
import cn.iocoder.yudao.module.farm.dal.mysql.resource.ResourceMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.resource.ResourceMapper;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.resourceType.ResourceTypeMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.resourceType.ResourceTypeMapper;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.taskCate.TaskCateMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.taskCate.TaskCateMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.enums.ProjectStateEnum;
|
||||||
import cn.iocoder.yudao.module.farm.enums.TaskMemberEnum;
|
import cn.iocoder.yudao.module.farm.enums.TaskMemberEnum;
|
||||||
import cn.iocoder.yudao.module.farm.enums.TaskStatus;
|
import cn.iocoder.yudao.module.farm.enums.TaskStatus;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||||
@@ -42,6 +43,7 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.zsw.base.R;
|
import com.zsw.base.R;
|
||||||
|
import javafx.concurrent.Task;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
@@ -99,10 +101,13 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createTask(TaskCreateReqVO createReqVO) {
|
public Long createTask(TaskCreateReqVO createReqVO) {
|
||||||
|
TaskDO task = BeanUtil.copyProperties(createReqVO, TaskDO.class);
|
||||||
|
//检查项目能否开始
|
||||||
|
this.canTheTaskStart(task);
|
||||||
//检查任务资源数量
|
//检查任务资源数量
|
||||||
this.checkTaskResourceNumber(BeanUtil.copyProperties(createReqVO, TaskDO.class));
|
this.checkTaskResourceNumber(task);
|
||||||
|
task.setDeptId(Objects.requireNonNull(SecurityFrameworkUtils.getLoginUser()).getDeptId());
|
||||||
// 插入
|
// 插入
|
||||||
TaskDO task = TaskConvert.INSTANCE.convert(createReqVO);
|
|
||||||
taskMapper.insert(task);
|
taskMapper.insert(task);
|
||||||
// 返回
|
// 返回
|
||||||
return task.getId();
|
return task.getId();
|
||||||
@@ -110,13 +115,15 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateTask(TaskUpdateReqVO updateReqVO) {
|
public void updateTask(TaskUpdateReqVO updateReqVO) {
|
||||||
|
TaskDO task = BeanUtil.copyProperties(updateReqVO, TaskDO.class);
|
||||||
|
//检查项目能否开始
|
||||||
|
this.canTheTaskStart(task);
|
||||||
// 校验存在
|
// 校验存在
|
||||||
this.validateTaskExists(updateReqVO.getId());
|
this.validateTaskExists(updateReqVO.getId());
|
||||||
//检查任务资源数量
|
//检查任务资源数量
|
||||||
this.checkTaskResourceNumber(BeanUtil.copyProperties(updateReqVO, TaskDO.class));
|
this.checkTaskResourceNumber(task);
|
||||||
// 更新
|
// 更新
|
||||||
TaskDO updateObj = TaskConvert.INSTANCE.convert(updateReqVO);
|
taskMapper.updateById(task);
|
||||||
taskMapper.updateById(updateObj);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -489,16 +496,10 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
//更改成进行中
|
//更改成进行中
|
||||||
if (taskDO.getStatus().equals(TaskStatus.STARTED)){
|
if (taskDO.getStatus().equals(TaskStatus.STARTED)){
|
||||||
resourceDO.setNumber(resourceDO.getNumber() - item.getNum());
|
resourceDO.setNumber(resourceDO.getNumber() - item.getNum());
|
||||||
if (resourceDO.getSolo()){
|
|
||||||
//唯一资源 更改成 已占用
|
|
||||||
resourceDO.setOccupied(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//更改成已完成
|
//更改成已完成
|
||||||
if (taskDO.getStatus().equals(TaskStatus.COMPLETE)){
|
if (taskDO.getStatus().equals(TaskStatus.COMPLETE)){
|
||||||
if (resourceDO.getSolo()){
|
if (resourceDO.getSolo()){
|
||||||
//唯一资源 更改成 未占用, 并返还数量
|
|
||||||
resourceDO.setOccupied(false);
|
|
||||||
resourceDO.setNumber(resourceDO.getNumber() + item.getNum());
|
resourceDO.setNumber(resourceDO.getNumber() + item.getNum());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -509,5 +510,16 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务能否开始,只有所属项目开始了才可以开始
|
||||||
|
*/
|
||||||
|
public void canTheTaskStart(TaskDO taskDO){
|
||||||
|
if (!taskDO.getDraft() && taskDO.getStatus().equals(TaskStatus.STARTED)){
|
||||||
|
ProjectDO project = projectMapper.selectById(taskDO.getProjectId());
|
||||||
|
if (!project.getState().equals(ProjectStateEnum.STARTING)){
|
||||||
|
throw exception(PROJECT_NOT_STARTING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user