提交 a6bdfdbc authored 作者: 任建彩's avatar 任建彩

项目节点

上级 65bd1fc7
......@@ -3,6 +3,8 @@ package com.zrqx.olive.project.controller;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.common.CheckAdminToken;
import com.common.CommonResult;
import com.utils.Copy;
import com.utils.DateUtils;
......@@ -25,6 +28,8 @@ import com.zrqx.olive.project.request.UpdateProjectNodeDateRequest;
import com.zrqx.olive.project.request.UpdateProjectNodeRequest;
import com.zrqx.olive.project.service.ProjectNodeService;
import com.zrqx.olive.project.vo.ProjectNodeListVo;
import com.zrqx.olive.system.response.SystemAdminResponse;
import com.zrqx.olive.system.service.SystemAdminService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -37,32 +42,47 @@ import lombok.extern.slf4j.Slf4j;
public class ProjectNodeController {
@Autowired
private ProjectNodeService service;
@Autowired
private SystemAdminService systemAdminService;
@Autowired
private CheckAdminToken checkAdminToken;
@ApiOperation(value = "新建任务清单", notes = "新建任务清单")
@PostMapping(value = "/save")
public CommonResult<Boolean> save(@RequestBody SaveProjectNodeRequest form) {
return service.saveProjectNode(form);
public CommonResult<Boolean> save(@RequestBody SaveProjectNodeRequest form,HttpServletRequest request) throws Exception {
String token = checkAdminToken.getTokenFormRequest(request);
SystemAdminResponse systemAdminResponse = systemAdminService.getInfoByToken(token);
return service.saveProjectNode(form,systemAdminResponse);
}
@ApiOperation(value = "完成状态", notes = "完成状态")
@PostMapping(value = "/status")
public CommonResult<String> status(@RequestBody UpdateProjectNodeRequest form) {
public CommonResult<Boolean> status(@RequestBody UpdateProjectNodeRequest form) {
if(StringUtils.isNotBlank(form.getProjectId())) {
ProjectNode node = service.getById(form.getId());
QueryWrapper<ProjectNode> qw = new QueryWrapper<ProjectNode>();
if(form.getPid()!=null) {
qw.eq("pid", form.getPid());
qw.eq("project_id", form.getProjectId());
}
ProjectNode node = service.getOne(qw);
node.setStatus(form.getStatus());
service.updateById(node);
service.update(node, qw);
}
return null ;
return CommonResult.success(true) ;
}
@ApiOperation(value = "截止时间", notes = "截止时间")
@PostMapping(value = "/endDate")
public CommonResult<String> endDate(@RequestBody UpdateProjectNodeDateRequest form) {
public CommonResult<Boolean> endDate(@RequestBody UpdateProjectNodeDateRequest form) {
if(StringUtils.isNotBlank(form.getProjectId())) {
ProjectNode node = service.getById(form.getId());
Date time = DateUtils.strToDateTime(form.getDeadline(), DateUtils.DATE_FORMAT_YYYY_MM_DD);
node.setDeadline(time);
service.updateById(node);
QueryWrapper<ProjectNode> qw = new QueryWrapper<ProjectNode>();
if(form.getPid()!=null) {
qw.eq("pid", form.getPid());
qw.eq("project_id", form.getProjectId());
}
ProjectNode node = service.getOne(qw);
node.setDeadline(form.getDeadline());
service.update(node, qw);
}
return null ;
return CommonResult.success(true) ;
}
@ApiOperation(value = "新增自定义分类", notes = "新增一个")
@PostMapping(value = "/saveOrUpdate")
......@@ -72,7 +92,7 @@ public class ProjectNodeController {
if (entity.getTaskName()==null || entity.getTaskName()=="") {
return CommonResult.failed("模块名称不能为空!");
}
if(entity.getId()==null) {
if(entity.getPid()==null) {
ProjectNode type=new ProjectNode();
BeanUtils.copyProperties(entity,type);
QueryWrapper<ProjectNode> queryWrapper = new QueryWrapper<>();
......@@ -98,7 +118,7 @@ public class ProjectNodeController {
return CommonResult.success("操作失败!");
}
}else {
ProjectNode type = service.getById(entity.getId());
ProjectNode type = service.getById(entity.getPid());
BeanUtils.copyProperties(entity,type);
type.setCreateTime(new Date());
if(!service.updateById(type)){
......@@ -112,12 +132,17 @@ public class ProjectNodeController {
}
@ApiOperation(value = "删除模块", notes = "删除模块")
@PostMapping(value = "delete")
public CommonResult<Boolean> delete(@RequestParam(value = "oid") String oid) {
ProjectNode diyType = service.getById(oid);
public CommonResult<Boolean> delete(@RequestParam(value = "pid") Integer pid,String projectId) {
QueryWrapper<ProjectNode> qw1 = new QueryWrapper<ProjectNode>();
if(pid!=null) {
qw1.eq("pid", pid);
qw1.eq("project_id", projectId);
}
ProjectNode diyType = service.getOne(qw1);
if(diyType.getPid().equals("0")) {
QueryWrapper<ProjectNode> qw = new QueryWrapper<>();
if(StringUtils.isNotBlank(oid)) {
qw.eq("parent_id", oid);
if(pid!=null) {
qw.eq("parent_id", pid);
}
List<ProjectNode> list= service.list(qw);
if(list!=null && list.size()>0){
......@@ -126,16 +151,21 @@ public class ProjectNodeController {
}
}
}
if(!service.removeById(oid)){
if(!service.remove(qw1)){
return CommonResult.success("操作失败!");
}
return CommonResult.success(true);
}
@ApiOperation(value = "查询根据ID自定义分类", notes = "根据ID查询")
@GetMapping(value = "getId")
public CommonResult<ProjectNode> getById(String oid) {
return CommonResult.success(service.getById(oid));
public CommonResult<ProjectNode> getById(Integer pid,String projectId) {
QueryWrapper<ProjectNode> qw = new QueryWrapper<ProjectNode>();
if(pid!=null) {
qw.eq("pid", pid);
qw.eq("project_id", projectId);
}
ProjectNode node = service.getOne(qw);
return CommonResult.success(node);
}
@ApiOperation(value = "查询全部模块tree", notes = "查询列表")
@GetMapping(value = "tree")
......@@ -146,19 +176,25 @@ public class ProjectNodeController {
}
qw.orderByAsc("sort");
List<ProjectNode> list = service.list(qw);
List<ProjectNodeListVo> voList = Copy.copyList(list , ProjectNodeListVo.class, obj -> obj.getParentId().equals("0"));
List<ProjectNodeListVo> voList = Copy.copyList(list , ProjectNodeListVo.class, obj -> obj.getParentId().equals(0));
tree(list,voList);
return CommonResult.success(voList);
}
public List<ProjectNodeListVo> tree(List<ProjectNode> list,List<ProjectNodeListVo> voList){
voList.forEach(entity ->{
//第一次设置 一级分类的子类 后续递归设置 子类的子类
entity.setList(Copy.copyList(list, ProjectNodeListVo.class,obj -> obj.getParentId().equals(entity.getPid())));
entity.setChildren(Copy.copyList(list, ProjectNodeListVo.class,obj -> obj.getParentId().equals(entity.getPid())));
//当前分类存在子类 开始递归子类
if(entity.getList().size() > 0){
tree(list, entity.getList());
if(entity.getChildren().size() > 0){
/*
* for (ProjectNode node : list) { String timeToStr =
* DateUtils.dateTimeToStr(node.getDeadline(),
* DateUtils.DATE_FORMAT_YYYY_MM_DD); entity.setDeadline(timeToStr); }
*/
tree(list, entity.getChildren());
}else{
entity.setList(null);
entity.setChildren(null);
}
});
return voList;
......
......@@ -2,10 +2,6 @@ package com.zrqx.olive.project.model;
import java.util.Date;
import org.springframework.data.annotation.Id;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
......@@ -21,24 +17,20 @@ import lombok.experimental.Accessors;
@ApiModel(value="T_ProjectNode对象", description="添加项目节点")
public class ProjectNode {
@Id
@TableId(value = "id", type = IdType.ASSIGN_UUID)
@ApiModelProperty("自定义分类id,新增时不需要填写")
private Integer id;
@ApiModelProperty("分类pid,新增时不需要填写")
private Integer pid;
@ApiModelProperty(value = "分类名称")
private String taskName;
@ApiModelProperty(value = "负责人")
private String principal;
@ApiModelProperty(value = "父类id")
private Integer parentId;
@ApiModelProperty(value = "父类id", required = true)
private String parentId="0";
@ApiModelProperty(value = "排序号")
private Integer sort;
@ApiModelProperty(value = "分类编号")
private String code;
@ApiModelProperty(value = "截止时间")
private Date deadline;
private String deadline;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty("项目Id")
......
package com.zrqx.olive.project.request;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import com.zrqx.olive.project.vo.ProjectNodeListVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -16,14 +20,10 @@ public class ProjectNodeListRequest implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty("分类id,新增时不需要填写")
private Integer id;
@ApiModelProperty("分类pid")
private Integer pid;
@ApiModelProperty(value = "分类名称")
private String taskName;
@ApiModelProperty(value = "负责人")
private String principal;
@ApiModelProperty(value = "父类id")
private Integer parentId;
@ApiModelProperty(value = "排序号")
......@@ -34,4 +34,7 @@ public class ProjectNodeListRequest implements Serializable {
private String projectId;
@ApiModelProperty(value = "状态 0:未完成 1:已完成")
private Integer status;
@ApiModelProperty(value = "子分类")
private List<ProjectNodeListRequest> children = new ArrayList<ProjectNodeListRequest>();
}
......@@ -18,7 +18,7 @@ public class UpdateProjectNodeDateRequest implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty("分类id,新增时不需要填写")
private Integer id;
private Integer pid;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty(value = "截止时间")
......
......@@ -18,7 +18,7 @@ public class UpdateProjectNodeRequest implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty("分类id,新增时不需要填写")
private Integer id;
private Integer pid;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty(value = "状态 0:未完成 1:已完成")
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.common.CommonResult;
import com.zrqx.olive.project.model.ProjectNode;
import com.zrqx.olive.project.request.SaveProjectNodeRequest;
import com.zrqx.olive.system.response.SystemAdminResponse;
/**
*
* 自定义分类service
......@@ -37,5 +38,5 @@ public interface ProjectNodeService extends IService<ProjectNode>{
* @author 任建彩
* @date 2021年10月14日
*/
CommonResult<Boolean> saveProjectNode(SaveProjectNodeRequest form);
CommonResult<Boolean> saveProjectNode(SaveProjectNodeRequest form,SystemAdminResponse systemAdminResponse);
}
......@@ -15,6 +15,8 @@ import com.zrqx.olive.project.model.ProjectNode;
import com.zrqx.olive.project.request.ProjectNodeListRequest;
import com.zrqx.olive.project.request.SaveProjectNodeRequest;
import com.zrqx.olive.project.service.ProjectNodeService;
import com.zrqx.olive.project.vo.ProjectNodeListVo;
import com.zrqx.olive.system.response.SystemAdminResponse;
/**
* 自定义分类
*/
......@@ -49,15 +51,29 @@ public class ProjectNodeServiceImpl extends ServiceImpl<ProjectNodeDao,ProjectNo
}
@Override
public CommonResult<Boolean> saveProjectNode(SaveProjectNodeRequest form) {
public CommonResult<Boolean> saveProjectNode(SaveProjectNodeRequest form,SystemAdminResponse systemAdminResponse) {
// TODO Auto-generated method stub
if(StringUtils.isNotBlank(form.getProjectId())) {
for (ProjectNodeListRequest request : form.getMenuListData()) {
ProjectNode node = new ProjectNode();
BeanUtils.copyProperties(form, request);
BeanUtils.copyProperties(request, node);
node.setStatus(0);
node.setProjectId(form.getProjectId());
node.setCreateTime(new Date());
node.setPrincipal(systemAdminResponse.getRealName());
mapper.insert(node);
List<ProjectNodeListRequest> children = request.getChildren();
if(children.size()>0) {
for (ProjectNodeListRequest listRequest : children) {
node = new ProjectNode();
BeanUtils.copyProperties(listRequest, node);
node.setStatus(0);
node.setProjectId(form.getProjectId());
node.setCreateTime(new Date());
node.setPrincipal(systemAdminResponse.getRealName());
mapper.insert(node);
}
}
}
}
return CommonResult.success(true);
......
......@@ -2,6 +2,7 @@ package com.zrqx.olive.project.vo;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import io.swagger.annotations.ApiModel;
......@@ -18,8 +19,6 @@ public class ProjectNodeListVo implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty("分类id,新增时不需要填写")
private Integer id;
@ApiModelProperty("分类pid")
private Integer pid;
@ApiModelProperty(value = "分类名称")
......@@ -36,6 +35,8 @@ public class ProjectNodeListVo implements Serializable {
private String projectId;
@ApiModelProperty(value = "状态 0:未完成 1:已完成")
private Integer status;
@ApiModelProperty(value = "截止时间")
private String deadline;
@ApiModelProperty(value = "子分类")
private List<ProjectNodeListVo> list = new ArrayList<ProjectNodeListVo>();
private List<ProjectNodeListVo> children = new ArrayList<ProjectNodeListVo>();
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论