需求bug
This commit is contained in:
@ -40,6 +40,13 @@ public class ZtReleaseController {
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/getById", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
|
||||
public Result getById(@RequestBody ZtReleaseQo qo){
|
||||
ZtReleaseDTO ztRelease = releaseService.getReleaseById(qo.getId());
|
||||
return Result.success(ztRelease);
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = "/modifyRelease", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
|
||||
public Result modifyRelease(@RequestBody ZtReleaseDTO dto){
|
||||
releaseService.modifyRelease(dto);
|
||||
|
@ -44,6 +44,32 @@ public class ZtTaskController {
|
||||
@Autowired
|
||||
private IZtTaskService ztTaskService;
|
||||
|
||||
@Autowired
|
||||
private IZtProjectService projectService;
|
||||
@Autowired
|
||||
private IZtStoryService storyService;
|
||||
@Autowired
|
||||
private IZtUserService userService;
|
||||
@Autowired
|
||||
private IZtProjectstoryService projectstoryService;
|
||||
@Autowired
|
||||
private IZtKanbanlaneService kanbanlaneService;
|
||||
|
||||
@Autowired
|
||||
private com.sa.zentao.service.IZtStoryService IZtStoryService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IZtExecutionprojectService executionprojectService;
|
||||
|
||||
@Autowired
|
||||
private IZtProjectproductService projectproductService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IZtStoryspecService storyspecService;
|
||||
|
||||
|
||||
@RequestMapping(value = "/taskPageList", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
|
||||
public Result<PageInfo<ZtTaskDTO>> taskPageList(@RequestBody ZtProjectQo qo){
|
||||
|
||||
@ -160,16 +186,7 @@ public class ZtTaskController {
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private IZtProjectService projectService;
|
||||
@Autowired
|
||||
private IZtStoryService storyService;
|
||||
@Autowired
|
||||
private IZtUserService userService;
|
||||
@Autowired
|
||||
private IZtProjectstoryService projectstoryService;
|
||||
@Autowired
|
||||
private IZtKanbanlaneService kanbanlaneService;
|
||||
|
||||
|
||||
|
||||
@RequestMapping(value = "/uploadTask", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
|
||||
@ -256,19 +273,6 @@ public class ZtTaskController {
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
private com.sa.zentao.service.IZtStoryService IZtStoryService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IZtExecutionprojectService executionprojectService;
|
||||
|
||||
@Autowired
|
||||
private IZtProjectproductService projectproductService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IZtStoryspecService storyspecService;
|
||||
|
||||
|
||||
//同步中道
|
||||
@ -421,6 +425,87 @@ public class ZtTaskController {
|
||||
|
||||
|
||||
|
||||
//同步中道
|
||||
@RequestMapping(value = "/syncZdTaskByExecution", method = RequestMethod.GET, produces = "application/json; charset=UTF-8")
|
||||
public Result syncZdTaskByExecution(@RequestParam("implementName")String implementName){
|
||||
|
||||
|
||||
if(StringUtils.isEmpty(implementName)){
|
||||
return Result.success();
|
||||
}
|
||||
List<ZtProject> list1 = this.projectService.list(new QueryWrapper<ZtProject>().lambda().eq(ZtProject::getName, implementName)
|
||||
.eq(ZtProject::getType,"sprint")
|
||||
);
|
||||
if(CollectionUtils.isEmpty(list1)){
|
||||
throw new BusinessException("未查询到");
|
||||
}
|
||||
ZtProject sprint = this.projectService.getOne(new QueryWrapper<ZtProject>().lambda().eq(ZtProject::getName, implementName)
|
||||
.eq(ZtProject::getType, "sprint"));
|
||||
|
||||
ZtProjectDTO d=projectService.selectPrdByName(implementName);
|
||||
if(d!=null){
|
||||
// 新系统执行id
|
||||
Integer myExecId = list1.get(0).getId();
|
||||
//执行id
|
||||
Integer id = d.getId();
|
||||
|
||||
List<ZtTaskDTO> taskDTOS=this.ztTaskService.taskListPrd(id);
|
||||
|
||||
for (ZtTaskDTO task:taskDTOS) {
|
||||
List<ZtTask> list = this.ztTaskService.list(new QueryWrapper<ZtTask>().lambda().eq(ZtTask::getName, task.getName()));
|
||||
// if(!CollectionUtils.isEmpty(list)){
|
||||
// continue;
|
||||
// }
|
||||
|
||||
//老的
|
||||
ZtTask ztTask = new ZtTask();
|
||||
BeanUtils.copyProperties(task,ztTask,"id");
|
||||
if(ztTask.getDeadline()!=null){
|
||||
ztTask.setDeadlineTime(ztTask.getDeadline().getTime()/1000);
|
||||
}
|
||||
ZtExecutionproject project = this.executionprojectService.getOne(new QueryWrapper<ZtExecutionproject>().lambda()
|
||||
.eq(ZtExecutionproject::getExecution, myExecId));
|
||||
Integer projectId = project.getProject();
|
||||
ztTask.setExecution(myExecId);
|
||||
ztTask.setProject(projectId);
|
||||
this.ztTaskService.save(ztTask);
|
||||
|
||||
kanbanlaneService.addTask( myExecId, Arrays.asList(ztTask));
|
||||
if(ztTask.getStatus().equals("closed")){
|
||||
kanbanlaneService.changeStatus(myExecId,ztTask.getId(),"task","closed");
|
||||
}
|
||||
if(ztTask.getStatus().equals("doing")){
|
||||
try {
|
||||
kanbanlaneService.changeStatus(myExecId,ztTask.getId(),"task","developing");
|
||||
}catch (Exception e){
|
||||
log.error("",e);
|
||||
}
|
||||
|
||||
}
|
||||
if(ztTask.getStatus().equals("done")){
|
||||
kanbanlaneService.changeStatus(myExecId,ztTask.getId(),"task","developed");
|
||||
}
|
||||
if(ztTask.getStatus().equals("cancel")){
|
||||
kanbanlaneService.changeStatus(myExecId,ztTask.getId(),"task","canceled");
|
||||
}
|
||||
if(ztTask.getStatus().equals("wait")){
|
||||
kanbanlaneService.changeStatus(myExecId,ztTask.getId(),"task","wait");
|
||||
}
|
||||
if(ztTask.getStatus().equals("pause")){
|
||||
kanbanlaneService.changeStatus(myExecId,ztTask.getId(),"task","pause");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//同步中道
|
||||
@RequestMapping(value = "/test", method = RequestMethod.GET, produces = "application/json; charset=UTF-8")
|
||||
public Result test(@RequestParam("implementName")String implementName){
|
||||
|
@ -171,7 +171,8 @@ public class ZtUserController {
|
||||
.set(ZtUser::getUserType,user.getUserType())
|
||||
.set(ZtUser::getEmail,user.getEmail())
|
||||
.set(ZtUser::getProductIds,ztUser.getProductIds())
|
||||
.set(ZtUser::getPhone,ztUser.getPhone())
|
||||
.set(ZtUser::getColor,user.getColor())
|
||||
.set(ZtUser::getPhone,ztUser.getPhone())
|
||||
.eq(ZtUser::getId,ztUser.getId())
|
||||
);
|
||||
this.actionService.addAction(ActionType.USER, ActionStatus.BJ,ztUser.getId(),null,null,null,RiskUserThreadLocal.get().getName(),null,user.getAccount());
|
||||
|
@ -30,10 +30,10 @@ public class ZtReleaseDTO implements Serializable {
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
private String project;
|
||||
|
||||
private Integer project;
|
||||
private String projectName;
|
||||
private Integer product;
|
||||
|
||||
private String productName;
|
||||
private String branch;
|
||||
|
||||
private Integer shadow;
|
||||
|
@ -29,6 +29,9 @@ public class ZtProject implements Serializable {
|
||||
|
||||
private Integer project;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String projectName;
|
||||
|
||||
private Integer charter;
|
||||
|
||||
private String model;
|
||||
|
@ -28,7 +28,7 @@ public class ZtRelease implements Serializable {
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
private String project;
|
||||
private Integer project;
|
||||
|
||||
private Integer product;
|
||||
|
||||
|
@ -27,7 +27,7 @@ public class ZtReleaseDetails implements Serializable {
|
||||
private Integer releaseId;
|
||||
|
||||
private Integer objectId;
|
||||
|
||||
//story
|
||||
private String objectType;
|
||||
// released已发布 closed 关闭
|
||||
private String status;
|
||||
|
@ -28,6 +28,7 @@ public enum ActionStatus {
|
||||
KSCE(21, "tested","开始测试"),
|
||||
CSWC(20, "tested","测试完成"),
|
||||
|
||||
|
||||
LOGIN(100, "login","登录"),
|
||||
;
|
||||
|
||||
|
@ -11,6 +11,8 @@ public enum ActionType {
|
||||
|
||||
XQ(4, "story","需求"),
|
||||
|
||||
FB(4, "release","发布"),
|
||||
|
||||
USERXQ(14, "user-story","用户需求"),
|
||||
|
||||
WTFK(15, "story-feedback","问题反馈"),
|
||||
@ -21,6 +23,8 @@ public enum ActionType {
|
||||
|
||||
LOGIN(7, "LOGIN","登录"),
|
||||
USER(8, "user","用户"),
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.sa.zentao.mapper;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.sa.zentao.dao.ZtTaskDTO;
|
||||
import com.sa.zentao.entity.ZtTask;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
@ -19,4 +20,7 @@ import java.util.List;
|
||||
public interface ZtTaskMapper extends BaseMapper<ZtTask> {
|
||||
|
||||
List<ZtTaskDTO> taskPageList(@Param("qo") ZtProjectQo qo);
|
||||
|
||||
@DS("slave")
|
||||
List<ZtTaskDTO> taskListPrd(@Param("id") Integer id);
|
||||
}
|
||||
|
@ -27,6 +27,8 @@ public class ZtReleaseQo extends BaseQo {
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
|
||||
|
||||
private String assignedTo;
|
||||
|
||||
private Integer project;
|
||||
|
@ -46,4 +46,6 @@ public interface IZtReleaseService extends IService<ZtRelease> {
|
||||
void removeStory(ZtReleaseQo qo);
|
||||
|
||||
void batchSyncStory(ZtReleaseQo qo);
|
||||
|
||||
ZtReleaseDTO getReleaseById(Integer id);
|
||||
}
|
||||
|
@ -46,9 +46,9 @@ public interface IZtStoryService extends IService<ZtStory> {
|
||||
|
||||
List<ZtStoryDTO> storyNoSyncProject(ZtProjectQo qo);
|
||||
|
||||
void startStory(Integer story,Integer execution);
|
||||
void startStory(Integer story);
|
||||
|
||||
void finishStory(Integer story,Integer execution);
|
||||
void finishStory(Integer story);
|
||||
//测试完毕
|
||||
void testedStory(Integer story);
|
||||
//测试中
|
||||
|
@ -52,4 +52,5 @@ public interface IZtTaskService extends IService<ZtTask> {
|
||||
|
||||
ZtTaskDTO getTaskById(Integer id);
|
||||
|
||||
List<ZtTaskDTO> taskListPrd(Integer id);
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ public class ZtProductServiceImpl extends ServiceImpl<ZtProductMapper, ZtProduct
|
||||
|
||||
}
|
||||
for (ZtProjectDTO d:ztProjectDTOS) {
|
||||
d.setChildren(result.stream().filter(o->o.getProgram()==d.getId()).collect(Collectors.toList()));
|
||||
d.setChildren(result.stream().filter(o->o.getProgram().equals(d.getId())).collect(Collectors.toList()));
|
||||
d.setId(100000000+d.getId());
|
||||
if(!StringUtils.isEmpty(d.getPm())){
|
||||
ZtUser ztUser = userMap.get(d.getPm());
|
||||
|
@ -139,6 +139,7 @@ public class ZtProjectServiceImpl extends ServiceImpl<ZtProjectMapper, ZtProject
|
||||
ztProject.setPath(String.format(",%d,",ztProject.getId()));
|
||||
ztProject.setGrade(1);
|
||||
ztProject.setLeft(0f);
|
||||
ztProject.setEstimate(0f);
|
||||
ztProject.setConsumed(0f);
|
||||
ztProject.setOrder(0);
|
||||
ztProject.setParent(0);
|
||||
@ -147,8 +148,9 @@ public class ZtProjectServiceImpl extends ServiceImpl<ZtProjectMapper, ZtProject
|
||||
|
||||
ztProject.setPath(pProject.getPath()+""+String.format("%d,",ztProject.getId()));
|
||||
ztProject.setGrade(pProject.getGrade()+1);
|
||||
ztProject.setLeft(2f);
|
||||
ztProject.setConsumed(4f);
|
||||
ztProject.setEstimate(0f);
|
||||
ztProject.setLeft(0f);
|
||||
ztProject.setConsumed(0f);
|
||||
ztProject.setOrder(pProject.getOrder()+5);
|
||||
}
|
||||
this.baseMapper.updateById(ztProject);
|
||||
@ -622,11 +624,18 @@ public class ZtProjectServiceImpl extends ServiceImpl<ZtProjectMapper, ZtProject
|
||||
order=ztProjectstory.getOrder()+5;
|
||||
}
|
||||
List saveList=new ArrayList();
|
||||
Map<Integer,ZtStory> sMap = getStoryMap(storyIds);
|
||||
|
||||
|
||||
for (Integer sId:storyIds) {
|
||||
ZtProjectstory ztProjectstory = new ZtProjectstory();
|
||||
ztProjectstory.setOrder(order);
|
||||
ztProjectstory.setStory(sId);
|
||||
ztProjectstory.setProduct(ztProject.getParent());
|
||||
ZtStory ztStory = sMap.get(sId);
|
||||
if(ztStory!=null){
|
||||
ztProjectstory.setProduct(ztStory.getProduct());
|
||||
}
|
||||
ztProjectstory.setType(ProjectTypeEnums.project.getValue());
|
||||
ztProjectstory.setProject(project);
|
||||
saveList.add(ztProjectstory);
|
||||
order+=5;
|
||||
@ -636,6 +645,18 @@ public class ZtProjectServiceImpl extends ServiceImpl<ZtProjectMapper, ZtProject
|
||||
|
||||
}
|
||||
|
||||
private Map<Integer, ZtStory> getStoryMap(List<Integer> storyIds) {
|
||||
if(CollectionUtils.isEmpty(storyIds)){
|
||||
return new HashMap<>();
|
||||
}
|
||||
List<ZtStory> storyList = this.storyService.listByIds(storyIds);
|
||||
if(CollectionUtils.isEmpty(storyList)){
|
||||
return new HashMap<>();
|
||||
}else{
|
||||
return storyList.stream().collect(Collectors.toMap(ZtStory::getId,o->o));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ZtProjectDTO> implementByProject(ZtProjectQo qo) {
|
||||
|
||||
@ -790,7 +811,7 @@ public class ZtProjectServiceImpl extends ServiceImpl<ZtProjectMapper, ZtProject
|
||||
|
||||
|
||||
List<ZtProjectstory> syncStoryList = this.projectstoryService.list(new QueryWrapper<ZtProjectstory>()
|
||||
.lambda().ne(ZtProjectstory::getProject, excludeId)
|
||||
.lambda().eq(ZtProjectstory::getProject, excludeId)
|
||||
.in(ZtProjectstory::getStory, storyIds)
|
||||
);
|
||||
|
||||
|
@ -8,6 +8,8 @@ import com.github.pagehelper.PageInfo;
|
||||
import com.sa.zentao.conf.RiskUserThreadLocal;
|
||||
import com.sa.zentao.dao.*;
|
||||
import com.sa.zentao.entity.*;
|
||||
import com.sa.zentao.enums.ActionStatus;
|
||||
import com.sa.zentao.enums.ActionType;
|
||||
import com.sa.zentao.enums.ProjectTypeEnums;
|
||||
import com.sa.zentao.enums.StoryStageEnums;
|
||||
import com.sa.zentao.mapper.ZtReleaseMapper;
|
||||
@ -43,11 +45,29 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
private IZtProjectService projectService;
|
||||
@Autowired
|
||||
private IZtUserService userService;
|
||||
@Autowired
|
||||
private IZtActionService actionService;
|
||||
@Autowired
|
||||
private IZtProjectproductService projectproductService;
|
||||
|
||||
@Autowired
|
||||
private IZtProductService productService;
|
||||
|
||||
@Autowired
|
||||
private IZtNoticeService noticeService;
|
||||
|
||||
@Autowired
|
||||
private IZtProjectstoryService projectstoryService;
|
||||
|
||||
@Autowired
|
||||
private IZtStoryService storyService;
|
||||
|
||||
@Override
|
||||
public void addRelease(ZtReleaseDTO dto) {
|
||||
if(StringUtils.isEmpty(dto.getProject())){
|
||||
Integer project = dto.getProject();
|
||||
|
||||
|
||||
if(project==null||project==0){
|
||||
throw new BusinessException("请选择项目");
|
||||
}
|
||||
|
||||
@ -57,6 +77,12 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
ztRelease.setCreatedby(RiskUserThreadLocal.get().getName());
|
||||
ztRelease.setStatus("reviewing");
|
||||
ztRelease.setCreateddate(new Date());
|
||||
ZtProjectproduct projectproduct = this.projectproductService.getOne(new QueryWrapper<ZtProjectproduct>().lambda()
|
||||
.eq(ZtProjectproduct::getProject, project));
|
||||
if(projectproduct!=null){
|
||||
ztRelease.setProduct(projectproduct.getProduct());
|
||||
}
|
||||
|
||||
this.baseMapper.insert(ztRelease);
|
||||
|
||||
|
||||
@ -71,7 +97,7 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
List<ZtStory> sList = this.storyService.list(new QueryWrapper<ZtStory>()
|
||||
.lambda().eq(ZtStory::getStatus, "active")
|
||||
.in(ZtStory::getId,list.stream().map(o->o.getStory()).collect(Collectors.toList()))
|
||||
.in(ZtStory::getId,list.stream().map(o->o.getStory()).distinct().collect(Collectors.toList()))
|
||||
.eq(ZtStory::getStage, StoryStageEnums.tested.getValue()));
|
||||
if(!CollectionUtils.isEmpty(sList)){
|
||||
List<ZtReleaseDetails> releaseStoryList = this.releaseDetailsService.list(new QueryWrapper<ZtReleaseDetails>().lambda()
|
||||
@ -95,12 +121,17 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
}
|
||||
}
|
||||
|
||||
actionService.addAction(ActionType.FB, ActionStatus.XJ, ztRelease.getId(), ztRelease.getProduct() + "", ztRelease.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), dto.getDanger(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void modifyRelease(ZtReleaseDTO dto) {
|
||||
ZtRelease ztRelease = this.baseMapper.selectById(dto.getId());
|
||||
String danger = ztRelease.getDanger();
|
||||
String executions = ztRelease.getExecutions();
|
||||
|
||||
|
||||
if(ztRelease==null){
|
||||
throw new BusinessException("未查询到数据");
|
||||
@ -111,6 +142,46 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
String project = ztRelease.getExecutions();
|
||||
String[] split = project.split(",");
|
||||
|
||||
|
||||
String execStr = dto.getExecutions();
|
||||
if(!StringUtils.isEmpty(execStr)&&!execStr.equals(executions)){
|
||||
List<String> execIds = new ArrayList<String>(Arrays.asList(execStr.split(",")));
|
||||
|
||||
List<ZtProjectstory> list = this.projectstoryService.list(new QueryWrapper<ZtProjectstory>().lambda()
|
||||
.in(ZtProjectstory::getProject, execIds)
|
||||
.eq(ZtProjectstory::getType, ProjectTypeEnums.execution.getValue())
|
||||
);
|
||||
|
||||
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
List<ZtStory> sList = this.storyService.list(new QueryWrapper<ZtStory>()
|
||||
.lambda().eq(ZtStory::getStatus, "active")
|
||||
.in(ZtStory::getId,list.stream().map(o->o.getStory()).distinct().collect(Collectors.toList()))
|
||||
.eq(ZtStory::getStage, StoryStageEnums.tested.getValue()));
|
||||
if(!CollectionUtils.isEmpty(sList)){
|
||||
List<ZtReleaseDetails> releaseStoryList = this.releaseDetailsService.list(new QueryWrapper<ZtReleaseDetails>().lambda()
|
||||
.in(ZtReleaseDetails::getObjectId, sList.stream().map(o -> o.getId()).collect(Collectors.toList())));
|
||||
List<Integer> sIds = releaseStoryList.stream().map(o -> o.getObjectId().intValue()).collect(Collectors.toList());
|
||||
this.releaseDetailsService.remove(new QueryWrapper<ZtReleaseDetails>().lambda().eq(ZtReleaseDetails::getReleaseId,ztRelease.getId()));
|
||||
|
||||
List<ZtReleaseDetails> saveBatch=new ArrayList<>();
|
||||
for (ZtStory s:sList) {
|
||||
if(!sIds.contains(s.getId())){
|
||||
ZtReleaseDetails e=new ZtReleaseDetails();
|
||||
e.setObjectId(s.getId());
|
||||
e.setObjectType("story");
|
||||
e.setReleaseId(ztRelease.getId());
|
||||
e.setStatus("wait");
|
||||
saveBatch.add(e);
|
||||
}
|
||||
}
|
||||
releaseDetailsService.saveBatch(saveBatch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
actionService.addAction(ActionType.FB, ActionStatus.BJ, ztRelease.getId(), ztRelease.getProduct() + "", ztRelease.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(),danger==null?null: danger.equals(dto.getDanger())?"":dto.getDanger(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -157,9 +228,12 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
}
|
||||
ztRelease.setAssignedTo(dto.getAssignedTo());
|
||||
this.baseMapper.updateById(ztRelease);
|
||||
actionService.addAction(ActionType.FB, ActionStatus.FP, ztRelease.getId(), ztRelease.getProduct() + "", ztRelease.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), "", "");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void userReview(ZtReleaseQo dto) {
|
||||
ZtRelease ztRelease = this.baseMapper.selectById(dto.getId());
|
||||
if(ztRelease==null){
|
||||
@ -187,15 +261,11 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
}
|
||||
|
||||
this.baseMapper.updateById(ztRelease);
|
||||
|
||||
actionService.addAction(ActionType.FB, ActionStatus.PS, ztRelease.getId(), ztRelease.getProduct() + "", ztRelease.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), "", ztRelease.getAssignedTo());
|
||||
}
|
||||
@Autowired
|
||||
private IZtNoticeService noticeService;
|
||||
|
||||
@Autowired
|
||||
private IZtProjectstoryService projectstoryService;
|
||||
|
||||
@Autowired
|
||||
private IZtStoryService storyService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@ -265,6 +335,8 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
}
|
||||
|
||||
this.baseMapper.updateById(ztRelease);
|
||||
actionService.addAction(ActionType.FB, ActionStatus.FB, ztRelease.getId(), ztRelease.getProduct() + "", ztRelease.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), "", "");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -321,7 +393,7 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
public PageInfo<ZtStoryDTO> projectStoryPageList(ZtReleaseQo qo) {
|
||||
ZtRelease ztRelease = this.baseMapper.selectById(qo.getId());
|
||||
|
||||
String project = ztRelease.getProject();
|
||||
Integer project = ztRelease.getProject();
|
||||
|
||||
// 项目查找所有迭代
|
||||
List<ZtExecutionproject> execList = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda().eq(ZtExecutionproject::getProject, project));
|
||||
@ -340,7 +412,8 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
List<ZtRelease> ztReleases = this.baseMapper.selectList(new QueryWrapper<ZtRelease>().lambda().eq(ZtRelease::getProject, project));
|
||||
|
||||
List<ZtReleaseDetails> list = this.releaseDetailsService.list(new QueryWrapper<ZtReleaseDetails>().lambda()
|
||||
.in(ZtReleaseDetails::getReleaseId, ztReleases.stream().map(o -> o.getId()).collect(Collectors.toList())).ne(ZtReleaseDetails::getStatus, "closed")
|
||||
.ne(ZtReleaseDetails::getStatus, "closed")
|
||||
.in(ZtReleaseDetails::getObjectId,storyIdList)
|
||||
.eq(ZtReleaseDetails::getObjectType, "story")
|
||||
);
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
@ -355,6 +428,9 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
}
|
||||
}
|
||||
qo.setStoryList(execStorys.stream().map(o->o.getStory()).collect(Collectors.toList()));
|
||||
if(CollectionUtils.isEmpty(execStorys)){
|
||||
return new PageInfo<ZtStoryDTO>();
|
||||
}
|
||||
Page<ZtReleaseDTO> page = PageHelper.startPage(qo.getCurrentPage(), qo.getPageSize());
|
||||
List<ZtStoryDTO> storyList = this.releaseDetailsService.storyPageList(qo);
|
||||
|
||||
@ -385,17 +461,23 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void removeStory(ZtReleaseQo qo) {
|
||||
Integer id = qo.getId();
|
||||
Integer storyId = qo.getStoryId();
|
||||
|
||||
ZtRelease ztRelease = this.baseMapper.selectById(id);
|
||||
|
||||
ZtReleaseDetails releaseDetails = this.releaseDetailsService.getOne(new QueryWrapper<ZtReleaseDetails>().lambda().eq(ZtReleaseDetails::getReleaseId, id)
|
||||
.eq(ZtReleaseDetails::getObjectId, storyId));
|
||||
releaseDetails.setStatus("closed");
|
||||
this.releaseDetailsService.updateById(releaseDetails);
|
||||
List<ZtReleaseDetails> releaseDetails = this.releaseDetailsService.list(new QueryWrapper<ZtReleaseDetails>().lambda()
|
||||
.eq(ZtReleaseDetails::getReleaseId, id)
|
||||
.in(ZtReleaseDetails::getObjectId, qo.getStoryList()).eq(ZtReleaseDetails::getObjectType,"story"));
|
||||
for (ZtReleaseDetails d:releaseDetails) {
|
||||
d.setStatus("closed");
|
||||
}
|
||||
this.releaseDetailsService.saveOrUpdateBatch(releaseDetails);
|
||||
|
||||
actionService.addAction(ActionType.FB, ActionStatus.BJ, ztRelease.getId(), ztRelease.getProduct() + "", ztRelease.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), "", "");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -403,11 +485,12 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
public void batchSyncStory(ZtReleaseQo qo) {
|
||||
List<Integer> storyList = qo.getStoryList();
|
||||
List<ZtReleaseDetails> list = this.releaseDetailsService.list(new QueryWrapper<ZtReleaseDetails>().lambda()
|
||||
.eq(ZtReleaseDetails::getObjectType, "story").ne(ZtReleaseDetails::getStatus, "closed")
|
||||
.eq(ZtReleaseDetails::getObjectType, "story")
|
||||
.ne(ZtReleaseDetails::getStatus, "closed")
|
||||
.in(ZtReleaseDetails::getObjectId, storyList)
|
||||
);
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
throw new BusinessException("需求已被关联需求id :"+ list.get(0).getId());
|
||||
throw new BusinessException("需求已被关联需求id :"+ list.get(0).getObjectId());
|
||||
}
|
||||
List<ZtReleaseDetails> saveBatch=new ArrayList<>();
|
||||
for (Integer story:storyList) {
|
||||
@ -421,5 +504,41 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
|
||||
|
||||
releaseDetailsService.saveBatch(saveBatch);
|
||||
|
||||
ZtRelease ztRelease = this.baseMapper.selectById(qo.getId());
|
||||
|
||||
actionService.addAction(ActionType.FB, ActionStatus.BJ, ztRelease.getId(), ztRelease.getProduct() + "", ztRelease.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), "", "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZtReleaseDTO getReleaseById(Integer id) {
|
||||
ZtRelease ztRelease = this.baseMapper.selectById(id);
|
||||
ZtReleaseDTO d=new ZtReleaseDTO();
|
||||
BeanUtils.copyProperties(ztRelease,d);
|
||||
Map<String, ZtUser> userMap = this.userService.userMapByIds(null);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
ZtUser ztUser = userMap.get(d.getAssignedTo());
|
||||
if(ztUser!=null){
|
||||
d.setAssignedToName(ztUser.getNickname());
|
||||
}
|
||||
Integer productId = d.getProduct();
|
||||
if(productId!=null&&productId!=0){
|
||||
ZtProduct p = this.productService.getById(productId);
|
||||
d.setProductName(p.getName());
|
||||
}
|
||||
ZtProject ztProject = this.projectService.getById(d.getProject());
|
||||
if(ztProject!=null){
|
||||
d.setProjectName(ztProject.getName());
|
||||
}
|
||||
|
||||
ztUser = userMap.get(d.getCreatedby());
|
||||
if(ztUser!=null){
|
||||
d.setCreatedby(ztUser.getNickname());
|
||||
}
|
||||
return d;
|
||||
}
|
||||
}
|
||||
|
@ -134,6 +134,7 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
return new PageInfo<ZtStoryDTO>(list);
|
||||
}
|
||||
|
||||
|
||||
private Map<Integer, List<ZtStoryreviewDTO>> getReviewMap(List<ZtStoryDTO> list) {
|
||||
List<ZtStoryreview> list1 = storyreviewService.list(new QueryWrapper<ZtStoryreview>().lambda().in(ZtStoryreview::getStory
|
||||
, list.stream().map(o -> o.getId()).collect(Collectors.toList())
|
||||
@ -432,68 +433,6 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
|
||||
|
||||
|
||||
// if(dto.getExecution()!=null&&dto.getExecution()!=0){
|
||||
// //1.没有绑定 解绑
|
||||
// ZtProjectstory execStory = this.projectstoryService.getOne(new QueryWrapper<ZtProjectstory>().lambda().eq(ZtProjectstory::getStory, ztStory.getId())
|
||||
// .ne(ZtProjectstory::getExecution, 0));
|
||||
// //如果没有关联过迭代 去关联 第一次
|
||||
// if(execStory==null){
|
||||
// //如果是产品型需求 加项目 加迭代 如果是项目型产品 加迭代
|
||||
//
|
||||
// if (ztStory.getProduct() != null&&ztStory.getProduct()!=0) {
|
||||
// List<ZtExecutionproject> execlist = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda()
|
||||
// .eq(ZtExecutionproject::getExecution, dto.getExecution()));
|
||||
// if(CollectionUtils.isEmpty(execlist)){
|
||||
// List<ZtProjectproduct> list = this.projectproductService.list(new QueryWrapper<ZtProjectproduct>()
|
||||
// .lambda().eq(ZtProjectproduct::getProduct, ztStory.getProduct()));
|
||||
// ZtProjectproduct ztProjectproduct = list.get(0);
|
||||
//
|
||||
//
|
||||
// ZtProjectstory ztProjectstory = new ZtProjectstory();
|
||||
// ztProjectstory.setOrder(1);
|
||||
// ztProjectstory.setStory(ztStory.getId());
|
||||
// ztProjectstory.setProject(ztProjectproduct.getProject());
|
||||
// this.projectstoryService.save(ztProjectstory);
|
||||
// //添加执行
|
||||
// }else{
|
||||
//
|
||||
// ZtProjectstory ztProjectstory = new ZtProjectstory();
|
||||
// ztProjectstory.setOrder(1);
|
||||
// ztProjectstory.setStory(ztStory.getId());
|
||||
// ztProjectstory.setProject(execlist.get(0).getProject());
|
||||
// this.projectstoryService.save(ztProjectstory);
|
||||
// }
|
||||
// }
|
||||
// ZtProjectDTO d=new ZtProjectDTO();
|
||||
// d.setExcludeId(dto.getExecution());
|
||||
// d.setStoryIds(new ArrayList<>(){{add(ztStory.getId());}});
|
||||
// projectService.executionSyncStory(d);
|
||||
// }
|
||||
// else if(dto.getExecution().intValue()==pList.get(0).getExecution().intValue()){
|
||||
// //编辑没动 不用管
|
||||
// }else{
|
||||
//
|
||||
//
|
||||
//
|
||||
// //2.绑定了 切换
|
||||
// //1. 删除projectStory 迭代的 删除看板
|
||||
// projectService.removeExecutionStory(ztStory.getId(),dto.getExecution());
|
||||
// //2. 新增
|
||||
// ZtProjectDTO d=new ZtProjectDTO();
|
||||
// d.setExcludeId(dto.getExecution());
|
||||
// d.setStoryIds(new ArrayList<>(){{add(ztStory.getId());}});
|
||||
// projectService.executionSyncStory(d);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// else{
|
||||
// List<ZtTask> list = this.taskService.list(new QueryWrapper<ZtTask>().lambda().eq(ZtTask::getStory, ztStory.getId()));
|
||||
// if(!CollectionUtils.isEmpty(list)){
|
||||
// throw new BusinessException("当前任务已开始无法更换迭代");
|
||||
// }
|
||||
// //3可能解绑 查询是否以前关联过
|
||||
// projectService.removeExecutionStory(ztStory.getId());
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
@ -503,13 +442,15 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
return;
|
||||
}
|
||||
|
||||
List<ZtExecutionproject> execProjectList = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda().eq(ZtExecutionproject::getProject, execList));
|
||||
List<ZtExecutionproject> execProjectList = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda()
|
||||
.in(ZtExecutionproject::getExecution, execList));
|
||||
|
||||
|
||||
|
||||
|
||||
for (Integer execId:execList) {
|
||||
List<ZtExecutionproject> fProjectList = execProjectList.stream().filter(o -> o.getExecution().intValue() == execId.intValue()).collect(Collectors.toList());
|
||||
List<ZtExecutionproject> fProjectList = execProjectList.stream()
|
||||
.filter(o -> o.getExecution().intValue() == execId.intValue()).collect(Collectors.toList());
|
||||
Integer project = fProjectList.get(0).getProject();
|
||||
|
||||
List<ZtProjectstory> list = this.projectstoryService.list(new QueryWrapper<ZtProjectstory>().lambda()
|
||||
@ -647,6 +588,7 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
return BeanCopyUtil.copyListProperties(closed,ZtStoryDTO::new);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PageInfo<ZtStoryDTO> projectStoryPageList(ZtProjectQo qo) {
|
||||
Page<ZtStoryDTO> page = PageHelper.startPage(qo.getCurrentPage(), qo.getPageSize());
|
||||
@ -757,7 +699,7 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
.list(new QueryWrapper<ZtProjectstory>().lambda()
|
||||
.in(ZtProjectstory::getStory,
|
||||
allList.stream().map(o->o.getStory()).collect(Collectors.toList()))
|
||||
.ne(ZtProjectstory::getProject,execution)
|
||||
.eq(ZtProjectstory::getProject,execution)
|
||||
);
|
||||
List<Integer> syncIds = syncList.stream().map(o -> o.getStory()).collect(Collectors.toList());
|
||||
|
||||
@ -804,9 +746,10 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
return BeanCopyUtil.copyListProperties(ztStories, ZtStoryDTO::new);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void startStory(Integer id, Integer execution) {
|
||||
public void startStory(Integer id) {
|
||||
if(id==null||id==0){
|
||||
return;
|
||||
}
|
||||
@ -829,23 +772,27 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
ztStory.setStage("developing");
|
||||
ztStory.setStartDate(new Date());
|
||||
this.baseMapper.updateById(ztStory);
|
||||
if(execution!=null&&execution!=0){
|
||||
//查 ready
|
||||
//backlog
|
||||
ZtKanbancell backlog = this.kanbanlaneService.getZtKanbanlane("story", "backlog", execution);
|
||||
ZtKanbancell ready = this.kanbanlaneService.getZtKanbanlane("story", "ready", execution);
|
||||
ZtKanbancell toCell = this.kanbanlaneService.getZtKanbanlane("story", "developing", execution);
|
||||
Integer fromId = backlog.getCards().contains(id.toString()) ? backlog.getColumn() : ready.getColumn();
|
||||
|
||||
|
||||
KanbanQo qo = new KanbanQo();
|
||||
qo.setStatusType("developing");
|
||||
qo.setTabType("story");
|
||||
qo.setId(ztStory.getId());
|
||||
qo.setFromId(fromId);
|
||||
qo.setToId(toCell.getColumn());
|
||||
kanbanlaneService.changeStatus(qo);
|
||||
List<Integer> executionId = getExecutionId(ztStory);
|
||||
for (Integer execution:executionId) {
|
||||
kanbanlaneService.changeStatus(execution,id,"story","developing");
|
||||
}
|
||||
// if(execution!=null&&execution!=0){
|
||||
// //查 ready
|
||||
// //backlog
|
||||
// ZtKanbancell backlog = this.kanbanlaneService.getZtKanbanlane("story", "backlog", execution);
|
||||
// ZtKanbancell ready = this.kanbanlaneService.getZtKanbanlane("story", "ready", execution);
|
||||
// ZtKanbancell toCell = this.kanbanlaneService.getZtKanbanlane("story", "developing", execution);
|
||||
// Integer fromId = backlog.getCards().contains(id.toString()) ? backlog.getColumn() : ready.getColumn();
|
||||
//
|
||||
//
|
||||
// KanbanQo qo = new KanbanQo();
|
||||
// qo.setStatusType("developing");
|
||||
// qo.setTabType("story");
|
||||
// qo.setId(ztStory.getId());
|
||||
// qo.setFromId(fromId);
|
||||
// qo.setToId(toCell.getColumn());
|
||||
// kanbanlaneService.changeStatus(qo);
|
||||
// }
|
||||
actionService.addAction(ActionType.XQ, ActionStatus.KS, ztStory.getId(), ztStory.getProduct() + "", ztStory.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), null, "");
|
||||
|
||||
@ -853,7 +800,7 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void finishStory(Integer id, Integer execution) {
|
||||
public void finishStory(Integer id) {
|
||||
|
||||
if(id==null||id==0){
|
||||
return;
|
||||
@ -873,7 +820,11 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
}else{
|
||||
ztStory.setStage("tested");
|
||||
this.baseMapper.updateById(ztStory);
|
||||
kanbanlaneService.changeStatus(execution,id,"story","tested");
|
||||
List<Integer> executionId = this.getExecutionId(ztStory);
|
||||
for (Integer execution:executionId ) {
|
||||
kanbanlaneService.changeStatus(execution,id,"story","tested");
|
||||
}
|
||||
|
||||
actionService.addAction(ActionType.XQ, ActionStatus.CSWC, ztStory.getId(), ztStory.getProduct() + "", ztStory.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), null, "");
|
||||
}
|
||||
@ -884,13 +835,20 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
.in(ZtTask::getStatus, Arrays.asList("wait", "doing", "pause"))
|
||||
.eq(ZtTask::getType,"devel")
|
||||
);
|
||||
|
||||
if(Arrays.asList("wait").contains(ztStory.getStage())){
|
||||
this.startStory(id);
|
||||
return ;
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
return;
|
||||
}
|
||||
ztStory.setStage("developed");
|
||||
this.baseMapper.updateById(ztStory);
|
||||
kanbanlaneService.changeStatus(execution,id,"story","developed");
|
||||
List<Integer> executionId = this.getExecutionId(ztStory);
|
||||
for (Integer execution:executionId ) {
|
||||
kanbanlaneService.changeStatus(execution,id,"story","developed");
|
||||
}
|
||||
|
||||
actionService.addAction(ActionType.XQ, ActionStatus.WC, ztStory.getId(), ztStory.getProduct() + "", ztStory.getProject(), null,
|
||||
RiskUserThreadLocal.get().getName(), null, "");
|
||||
}
|
||||
@ -914,9 +872,9 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
if("closed".equals(ztStory.getStatus())){
|
||||
throw new BusinessException("当前已关闭");
|
||||
}
|
||||
if(!"testing".equals(ztStory.getStage())){
|
||||
throw new BusinessException("当前无法更改测试状态");
|
||||
}
|
||||
// if(!"testing".equals(ztStory.getStage())){
|
||||
// throw new BusinessException("当前无法更改测试状态");
|
||||
// }
|
||||
List<Integer> execIds = getExecutionId(ztStory);
|
||||
if(CollectionUtils.isEmpty(execIds)){
|
||||
throw new BusinessException("当前无迭代,不可以更改");
|
||||
@ -926,6 +884,9 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
.in(ZtTask::getType,"test","devel")
|
||||
);
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
if("developed".equals(ztStory.getStage())){
|
||||
this.testingStory(story);
|
||||
}
|
||||
return;
|
||||
}
|
||||
String oldStatus = ztStory.getStage();
|
||||
@ -1024,6 +985,7 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
RiskUserThreadLocal.get().getName(), null, "");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void testingStory(Integer story) {
|
||||
if(story==null||story==0){
|
||||
@ -1356,7 +1318,7 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
|
||||
List<ZtProjectstory> list = this.projectstoryService.list(new QueryWrapper<ZtProjectstory>().lambda()
|
||||
.eq(ZtProjectstory::getStory, ztStory.getId())
|
||||
.ne(ZtProjectstory::getType, ProjectTypeEnums.execution.getValue())
|
||||
.eq(ZtProjectstory::getType, ProjectTypeEnums.execution.getValue())
|
||||
);
|
||||
if(CollectionUtils.isEmpty(list)){
|
||||
return new ArrayList<>();
|
||||
@ -1486,6 +1448,9 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
@Override
|
||||
public ZtStoryDTO getStoryById(Integer id,Integer execution) {
|
||||
ZtStory ztStory = this.baseMapper.selectById(id);
|
||||
if(ztStory==null){
|
||||
throw new BusinessException("未查询到数据");
|
||||
}
|
||||
ZtStoryDTO d=new ZtStoryDTO();
|
||||
|
||||
BeanUtils.copyProperties(ztStory,d);
|
||||
@ -1545,6 +1510,7 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
return d;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<ZtProject> execListByProject(ZtStoryDTO dto) {
|
||||
|
||||
@ -1689,7 +1655,6 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<ZtStoryDTO> storyListByExecution(ZtProjectQo qo) {
|
||||
List<ZtProjectstory> list = projectstoryService.list(new QueryWrapper<ZtProjectstory>().lambda().eq(ZtProjectstory::getProject, qo.getId())
|
||||
@ -1707,6 +1672,7 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ProductStoryStatus getProductStatus(String status) {
|
||||
|
||||
|
||||
|
@ -221,6 +221,11 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
|
||||
return dto;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ZtTaskDTO> taskListPrd(Integer id) {
|
||||
return this.baseMapper.taskListPrd(id);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PageInfo<ZtTaskDTO> myTaskPageList(ZtProjectQo qo) {
|
||||
@ -467,11 +472,21 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
|
||||
}
|
||||
if("devel".equals(ztTask.getType())){
|
||||
//处理需求
|
||||
this.storyService.startStory(ztTask.getStory(),ztTask.getExecution());
|
||||
|
||||
if("done".equals(ztTask.getStatus())){
|
||||
this.storyService.finishStory(ztTask.getStory());
|
||||
}else if("doing".equals(ztTask.getStatus())){
|
||||
this.storyService.startStory(ztTask.getStory());
|
||||
}
|
||||
}
|
||||
if("test".equals(ztTask.getType())){
|
||||
//处理需求
|
||||
this.storyService.testingStory(ztTask.getStory());
|
||||
if("done".equals(ztTask.getStatus())){
|
||||
this.storyService.testedStory(ztTask.getStory());
|
||||
}else if("doing".equals(ztTask.getStatus())){
|
||||
this.storyService.testingStory(ztTask.getStory());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -489,7 +504,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
|
||||
}else
|
||||
if("devel".equals(type)){
|
||||
//开发
|
||||
this.storyService.finishStory(ztTask.getStory(),ztTask.getExecution());
|
||||
this.storyService.finishStory(ztTask.getStory());
|
||||
}
|
||||
|
||||
}
|
||||
@ -566,7 +581,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
|
||||
}else
|
||||
if("devel".equals(type)){
|
||||
//开发
|
||||
this.storyService.finishStory(ztTask.getStory(),ztTask.getExecution());
|
||||
this.storyService.finishStory(ztTask.getStory());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -22,12 +22,12 @@ spring:
|
||||
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
|
||||
datasource:
|
||||
master:
|
||||
url: jdbc:mysql://192.168.1.161:3306/zentao?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true
|
||||
username: devgps
|
||||
password: dev@2021GPS
|
||||
# url: jdbc:mysql://192.168.3.200:3306/zentao_dev?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true
|
||||
# username: root
|
||||
# password: PX4fTAAsJ#T!1
|
||||
# url: jdbc:mysql://192.168.1.161:3306/zentao?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true
|
||||
# username: devgps
|
||||
# password: dev@2021GPS
|
||||
url: jdbc:mysql://192.168.3.200:3306/zentao_dev?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true
|
||||
username: root
|
||||
password: PX4fTAAsJ#T!1
|
||||
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
|
||||
slave:
|
||||
|
@ -184,7 +184,7 @@
|
||||
and ps.project =#{qo.project}
|
||||
</if>
|
||||
<if test="qo.execution != null ">
|
||||
and ps.execution =#{qo.execution}
|
||||
and ps.project =#{qo.execution}
|
||||
</if>
|
||||
<if test="qo.module != null ">
|
||||
and s.module =#{qo.module}
|
||||
|
@ -206,6 +206,11 @@
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
<select id="taskListPrd" resultType="com.sa.zentao.dao.ZtTaskDTO">
|
||||
|
||||
select * from zt_task where execution = #{id}
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
Reference in New Issue
Block a user