From 4eb3f4662f0750628cfe71a1f53d4327c9634881 Mon Sep 17 00:00:00 2001 From: guoqibing Date: Wed, 9 Jul 2025 17:32:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=88=E6=8A=A5=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E9=82=AE=E4=BB=B6=E6=9C=AB=E7=8F=AD=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=8C=E4=BB=BB=E5=8A=A1=E5=88=87=E6=8D=A2=E8=BF=AD?= =?UTF-8?q?=E4=BB=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zentao/controller/ZtCountController.java | 1 + .../com/sa/zentao/dao/PerformanceDTO.java | 4 +- .../com/sa/zentao/dao/ProjectWorkTaskDTO.java | 4 +- .../com/sa/zentao/dao/WorkDetailsDTO.java | 2 +- .../com/sa/zentao/dao/ZtKanbancolumnDTO.java | 2 + .../com/sa/zentao/enums/KanbanCellType.java | 23 +++ src/main/java/com/sa/zentao/qo/StoryQo.java | 3 +- .../zentao/service/IZtKanbanlaneService.java | 11 ++ .../zentao/service/impl/IZtCountService.java | 141 ++++++++---------- .../service/impl/ZtKanbanlaneServiceImpl.java | 70 +++++++-- .../service/impl/ZtProjectServiceImpl.java | 1 + .../service/impl/ZtReleaseServiceImpl.java | 8 +- .../service/impl/ZtStoryServiceImpl.java | 19 ++- .../service/impl/ZtTaskServiceImpl.java | 10 ++ .../com/sa/zentao/utils/SFunctionColums.java | 1 + .../resources/mapper/ZtKanbancolumnMapper.xml | 2 +- .../resources/mapper/ZtStoryUserMapper.xml | 16 +- .../resources/templates/scope/UI工程师.xlsx | Bin 12698 -> 11366 bytes .../resources/templates/scope/开发工程师.xlsx | Bin 13365 -> 11898 bytes .../resources/templates/scope/测试工程师.xlsx | Bin 13224 -> 11914 bytes .../templates/scope/项目助理考核.xlsx | Bin 12449 -> 11132 bytes .../templates/scope/项目经理考核.xlsx | Bin 14058 -> 12724 bytes 22 files changed, 205 insertions(+), 113 deletions(-) create mode 100644 src/main/java/com/sa/zentao/enums/KanbanCellType.java diff --git a/src/main/java/com/sa/zentao/controller/ZtCountController.java b/src/main/java/com/sa/zentao/controller/ZtCountController.java index ea36598..c86f785 100644 --- a/src/main/java/com/sa/zentao/controller/ZtCountController.java +++ b/src/main/java/com/sa/zentao/controller/ZtCountController.java @@ -1,6 +1,7 @@ package com.sa.zentao.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.sa.zentao.conf.LoginRiskUser; import com.sa.zentao.conf.RiskUserThreadLocal; import com.sa.zentao.dao.*; import com.sa.zentao.entity.ZtBug; diff --git a/src/main/java/com/sa/zentao/dao/PerformanceDTO.java b/src/main/java/com/sa/zentao/dao/PerformanceDTO.java index fcd263c..55434c6 100644 --- a/src/main/java/com/sa/zentao/dao/PerformanceDTO.java +++ b/src/main/java/com/sa/zentao/dao/PerformanceDTO.java @@ -121,9 +121,9 @@ public class PerformanceDTO implements Serializable { @ExcelIgnore private BigDecimal meetScore=BigDecimal.ZERO; //周会议 - private BigDecimal meetWeek; + private BigDecimal meetWeek=BigDecimal.ZERO; //需求会议 - private BigDecimal meetStory; + private BigDecimal meetStory=BigDecimal.ZERO; //文档质量问题个数 private BigDecimal documentQualityProblem=BigDecimal.ZERO; //文档得分 diff --git a/src/main/java/com/sa/zentao/dao/ProjectWorkTaskDTO.java b/src/main/java/com/sa/zentao/dao/ProjectWorkTaskDTO.java index 908e8a3..d393cc5 100644 --- a/src/main/java/com/sa/zentao/dao/ProjectWorkTaskDTO.java +++ b/src/main/java/com/sa/zentao/dao/ProjectWorkTaskDTO.java @@ -32,10 +32,10 @@ public class ProjectWorkTaskDTO implements Serializable { //已验收需求总量 @ExcelProperty(value = "需求",index =5) private String storyName; - //验收通过率 + //任务名称 @ExcelProperty(value = "任务名称",index =6) private String taskName; - //验收不通过数量 + //任务类型 @ExcelProperty(value = "任务类型",index =7) private String typeName; //指派人 diff --git a/src/main/java/com/sa/zentao/dao/WorkDetailsDTO.java b/src/main/java/com/sa/zentao/dao/WorkDetailsDTO.java index d4aa567..2a4a7f1 100644 --- a/src/main/java/com/sa/zentao/dao/WorkDetailsDTO.java +++ b/src/main/java/com/sa/zentao/dao/WorkDetailsDTO.java @@ -52,6 +52,6 @@ public class WorkDetailsDTO implements Serializable { private UserType userType; @ExcelIgnore private String account; - + @ExcelIgnore private ZtMonthScopeDTO monthScoreDto; } diff --git a/src/main/java/com/sa/zentao/dao/ZtKanbancolumnDTO.java b/src/main/java/com/sa/zentao/dao/ZtKanbancolumnDTO.java index d31099d..8bd7b27 100644 --- a/src/main/java/com/sa/zentao/dao/ZtKanbancolumnDTO.java +++ b/src/main/java/com/sa/zentao/dao/ZtKanbancolumnDTO.java @@ -62,4 +62,6 @@ public class ZtKanbancolumnDTO implements Serializable { private String cardType; private String same; + // cellId + private Integer cellId; } diff --git a/src/main/java/com/sa/zentao/enums/KanbanCellType.java b/src/main/java/com/sa/zentao/enums/KanbanCellType.java new file mode 100644 index 0000000..e9956d9 --- /dev/null +++ b/src/main/java/com/sa/zentao/enums/KanbanCellType.java @@ -0,0 +1,23 @@ +package com.sa.zentao.enums; + + +public enum KanbanCellType { + + TASK("task"), + STORY("story"), + BUG( "bug"), + + ; + + private String value; + + private KanbanCellType(String value) { + this.value = value; + } + + + public String getValue() { + return this.value; + } + +} diff --git a/src/main/java/com/sa/zentao/qo/StoryQo.java b/src/main/java/com/sa/zentao/qo/StoryQo.java index 8d52570..497ddeb 100644 --- a/src/main/java/com/sa/zentao/qo/StoryQo.java +++ b/src/main/java/com/sa/zentao/qo/StoryQo.java @@ -10,7 +10,8 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class StoryQo extends BaseQo { - + private String orderName; + private String orderSort; private Integer id; private String title; diff --git a/src/main/java/com/sa/zentao/service/IZtKanbanlaneService.java b/src/main/java/com/sa/zentao/service/IZtKanbanlaneService.java index 14f1841..74ddbe6 100644 --- a/src/main/java/com/sa/zentao/service/IZtKanbanlaneService.java +++ b/src/main/java/com/sa/zentao/service/IZtKanbanlaneService.java @@ -3,6 +3,7 @@ package com.sa.zentao.service; import com.sa.zentao.dao.ZtKanbanlaneDTO; import com.sa.zentao.entity.*; import com.baomidou.mybatisplus.extension.service.IService; +import com.sa.zentao.enums.KanbanCellType; import com.sa.zentao.qo.KanbanQo; import com.sa.zentao.qo.ZtProjectQo; @@ -42,4 +43,14 @@ public interface IZtKanbanlaneService extends IService { public ZtKanbancell getZtKanbanlane(String type, String status, Integer id); // void removeExecutionStory(Integer execution, Integer story); + + /** + * 把元素从看板删除 + * @param execution + * @param objectId + * @param type bug task story + */ + void removeKanbanCell(Integer execution, Integer objectId, KanbanCellType type); + + void addKanbanCell(Integer execution, Integer objectId, KanbanCellType type,Object obj); } diff --git a/src/main/java/com/sa/zentao/service/impl/IZtCountService.java b/src/main/java/com/sa/zentao/service/impl/IZtCountService.java index 1d6a2d4..bfbe1bd 100644 --- a/src/main/java/com/sa/zentao/service/impl/IZtCountService.java +++ b/src/main/java/com/sa/zentao/service/impl/IZtCountService.java @@ -2183,12 +2183,15 @@ public class IZtCountService { dataMap.put("Bug密度", performanceDTO.getBugScore().toString()); dataMap.put("工作量饱和度", performanceDTO.getSaturationScore().toString()); - dataMap.put("代码质量", "5"); - dataMap.put("工作质量", "5"); - dataMap.put("文档质量", "15"); - dataMap.put("工作态度和责任感", "5"); - dataMap.put("创新贡献", "0"); - dataMap.put("质量贡献", "0"); + dataMap.put("代码质量", performanceDTO.getCodeQualityScore()==null?"0":performanceDTO.getCodeQualityScore().toString()); + + dataMap.put("工作态度", performanceDTO.getWorkAttitude()==null?"0":performanceDTO.getWorkAttitude().toString()); + //工作态度 不规范行为 + dataMap.put("文档质量", performanceDTO.getDocumentQualityScore()==null?"0":performanceDTO.getDocumentQualityScore().toString()); + //创新贡献 优质分享 + dataMap.put("创新贡献", performanceDTO.getExcellentShare()==null?"0":performanceDTO.getExcellentShare().toString()); + // + dataMap.put("质量贡献", performanceDTO.getQuality()==null?"0":performanceDTO.getQuality().toString()); dataMap.put("totalTask", performanceDTO.getTotalTask().toString()); dataMap.put("delayTask", performanceDTO.getDelayTask().toString()); @@ -2203,12 +2206,15 @@ public class IZtCountService { dataMap.put("总分", devlopTotal( + dataMap.get("工作量饱和度"), dataMap.get("准时率得分"), dataMap.get("Bug密度"), dataMap.get("代码质量"), dataMap.get("文档质量"), - dataMap.get("工作量饱和度"), - dataMap.get("工作态度和责任感") + dataMap.get("工作态度"), + + dataMap.get("创新贡献"), + dataMap.get("质量贡献") )); writeXlsx(name, "templates/scope/开发工程师.xlsx", name + "开发.xlsx", dataMap); @@ -2220,51 +2226,19 @@ public class IZtCountService { dataMap.put("date", DateUtils.formatDate(d, "yyyy-MM")); dataMap.put("总分", "100"); - dataMap.put("任务总量", performanceDTO.getTotalTask().toString()); - dataMap.put("超期数量", performanceDTO.getDelayTask().toString()); - dataMap.put("及时完成率", performanceDTO.getFinishPunctuality().toString()); + dataMap.put("及时完成率得分", performanceDTO.getPunctualityScore()==null?"0":performanceDTO.getPunctualityScore().toString()); + dataMap.put("设计质量", performanceDTO.getDesignScore()==null?"0":performanceDTO.getDesignScore().toString()); + dataMap.put("工作态度", performanceDTO.getWorkAttitude()==null?"0":performanceDTO.getWorkAttitude().toString()); + dataMap.put("工作量", performanceDTO.getUiWorkScore()==null?"0":performanceDTO.getUiWorkScore().toString()); + dataMap.put("创新贡献", performanceDTO.getExcellentShare()==null?"0":performanceDTO.getExcellentShare().toString()); + + dataMap.put("任务总量", performanceDTO.getTotalTask()==null?"0":performanceDTO.getTotalTask().toString()); + dataMap.put("超期数量", performanceDTO.getDelayTask()==null?"0":performanceDTO.getDelayTask().toString()); + dataMap.put("及时完成率", performanceDTO.getFinishPunctuality()==null?"0": performanceDTO.getFinishPunctuality().toString()); + + dataMap.put("总分", devlopTotal(dataMap.get("及时完成率得分"), dataMap.get("设计质量"), dataMap.get("工作态度"), dataMap.get("工作量"), dataMap.get("创新贡献"))); writeXlsx(name, "templates/scope/UI工程师.xlsx", name + "UI工程师.xlsx", dataMap); - InputStream templateFile = null; -// try { -// templateFile=IZtCountService.class.getClassLoader().getResourceAsStream("templates/scope/UI工程师.xlsx"); -//// templateFile = IZtCountService.class.getClassLoader().getResourceAsStream("templates/scope/开发工程师.xlsx"); -// -// -// //测试方案 -// // 读取模板 -// -// Workbook workbook = WorkbookFactory.create(templateFile); -// -// Sheet sheet = workbook.getSheetAt(0); -// workbook.setSheetName(0,name); -// // 替换占位符 -// for (Row row : sheet) { -// for (Cell cell : row) { -// if (cell.getCellType() == CellType.STRING) { -// String cellValue = cell.getStringCellValue(); -// for (Map.Entry entry : dataMap.entrySet()) { -// cellValue = cellValue.replace("{" + entry.getKey() + "}", entry.getValue()); -// } -// cell.setCellValue(cellValue); -// } -// } -// } -// -// // 生成新文件 -// try (FileOutputStream outputStream = new FileOutputStream(name+"UI工程师.xlsx")) { -// workbook.write(outputStream); -// } -// workbook.close(); -// }catch (Exception e){ -// log.error("",e); -// }finally { -// try { -// templateFile.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } } @@ -2279,21 +2253,21 @@ public class IZtCountService { dataMap.put("bug", bugManageScore(qo, perList, userMap)); dataMap.put("版本计划完成率", versionPlanScore(qo, perList, userMap)); - dataMap.put("项目文档", "10"); - dataMap.put("会议管理", performanceDTO.getMeetScore() + ""); - dataMap.put("问题管理", "5"); + dataMap.put("项目文档", performanceDTO.getDocumentQualityScore()==null?"0":performanceDTO.getDocumentQualityScore().toString()); + dataMap.put("会议管理", performanceDTO.getMeetScore()==null?"0": performanceDTO.getMeetScore() + ""); + dataMap.put("问题管理", performanceDTO.getDevelopFeedbackStory()==null?"0":performanceDTO.getDevelopFeedbackStory().toString()); dataMap.put("系统稳定性", "10"); dataMap.put("专业技能提升", "5"); - dataMap.put("普通bug",performanceDTO.getSlightBug().toString()); - dataMap.put("重大bug", performanceDTO.getSeriousBug().toString()); - dataMap.put("线上bug率", performanceDTO.getBugDensity().multiply(BigDecimal.valueOf(100)).toString()); - dataMap.put("分配工时", performanceDTO.getAllocationTime().toString()); - dataMap.put("可用工时", performanceDTO.getExamineTime().toString()); - dataMap.put("分配工时占比", performanceDTO.getAllocationTimeManageRate().multiply(BigDecimal.valueOf(100)).toString()); - dataMap.put("召开周会数量", performanceDTO.getMeetWeek().toString()); - dataMap.put("召开需求会议数量", performanceDTO.getMeetStory().toString()); + dataMap.put("普通bug",performanceDTO.getSlightBug()==null?"0":performanceDTO.getSlightBug().toString()); + dataMap.put("重大bug", performanceDTO.getSeriousBug()==null?"0": performanceDTO.getSeriousBug().toString()); + dataMap.put("线上bug率",performanceDTO.getBugDensity()==null?"0": performanceDTO.getBugDensity().multiply(BigDecimal.valueOf(100)).toString()); + dataMap.put("分配工时", performanceDTO.getAllocationTime()==null?"0": performanceDTO.getAllocationTime().toString()); + dataMap.put("可用工时", performanceDTO.getExamineTime()==null?"0": performanceDTO.getExamineTime().toString()); + dataMap.put("分配工时占比", performanceDTO.getAllocationTimeManageRate()==null?"0": performanceDTO.getAllocationTimeManageRate().multiply(BigDecimal.valueOf(100)).toString()); + dataMap.put("召开周会数量", performanceDTO.getMeetWeek()==null?"0": performanceDTO.getMeetWeek().toString()); + dataMap.put("召开需求会议数量", performanceDTO.getMeetStory()==null?"0": performanceDTO.getMeetStory().toString()); @@ -2569,11 +2543,11 @@ public class IZtCountService { dataMap.put("会议管理", performanceDTO.getMeetScore().toString()); - dataMap.put("上线需求数量", performanceDTO.getReleaseCount().toString()); - dataMap.put("及时验收数量", performanceDTO.getReleaseOnTimeCount().toString()); - dataMap.put("及时验收率", performanceDTO.getReleaseOnTimeRate().multiply(BigDecimal.valueOf(100)).toString()); - dataMap.put("召开周会数量", performanceDTO.getMeetWeek().toString()); - dataMap.put("召开需求数量", performanceDTO.getMeetStory().toString()); + dataMap.put("上线需求数量", performanceDTO.getReleaseCount()==null?"0": performanceDTO.getReleaseCount().toString()); + dataMap.put("及时验收数量", performanceDTO.getReleaseOnTimeCount()==null?"0":performanceDTO.getReleaseOnTimeCount().toString()); + dataMap.put("及时验收率", performanceDTO.getReleaseOnTimeRate()==null?"0": performanceDTO.getReleaseOnTimeRate().multiply(BigDecimal.valueOf(100)).toString()); + dataMap.put("召开周会数量", performanceDTO.getMeetWeek()==null?"0":performanceDTO.getMeetWeek().toString()); + dataMap.put("召开需求数量", performanceDTO.getMeetStory()==null?"0": performanceDTO.getMeetStory().toString()); @@ -2600,29 +2574,32 @@ public class IZtCountService { Map dataMap = new HashMap<>(); dataMap.put("name", name); dataMap.put("date", DateUtils.formatDate(d, "yyyy-MM")); - dataMap.put("准时率得分", performanceDTO.getPunctualityScore().toString()); + dataMap.put("准时率得分", performanceDTO.getPunctualityScore()==null?"0": performanceDTO.getPunctualityScore().toString()); dataMap.put("缺陷检出率", performanceDTO.getBugFindScore().toString()); - dataMap.put("测试文档", "20"); - dataMap.put("工作态度", "5"); - dataMap.put("质量贡献", "5"); - dataMap.put("线上Bug", "20"); + dataMap.put("测试文档", performanceDTO.getDocumentQualityScore()==null?"0":performanceDTO.getDocumentQualityScore().toString()); + + dataMap.put("工作态度", performanceDTO.getWorkAttitude()==null?"0":performanceDTO.getWorkAttitude().toString()); + dataMap.put("质量贡献", performanceDTO.getExcellentShare()==null?"0":performanceDTO.getExcellentShare().toString()); + + dataMap.put("线上Bug", performanceDTO.getBugScore()==null?"0":performanceDTO.getBugScore().toString()); - dataMap.put("任务总量", performanceDTO.getTotalTask().toString()); - dataMap.put("延期数量", performanceDTO.getDelayTask().toString()); - dataMap.put("及时完成率", performanceDTO.getFinishPunctuality().multiply(BigDecimal.valueOf(100)).toString()); - dataMap.put("创新贡献", performanceDTO.getExcellentShare().toString()); + dataMap.put("任务总量", performanceDTO.getTotalTask()==null?"0": performanceDTO.getTotalTask().toString()); + dataMap.put("延期数量", performanceDTO.getDelayTask() ==null?"0":performanceDTO.getDelayTask().toString()); + dataMap.put("及时完成率", performanceDTO.getFinishPunctuality() ==null?"0":performanceDTO.getFinishPunctuality().multiply(BigDecimal.valueOf(100)).toString()); + dataMap.put("创新贡献", performanceDTO.getExcellentShare() ==null?"0":performanceDTO.getExcellentShare().toString()); - dataMap.put("测试普通bug", performanceDTO.getDevSlightBug().toString()); - dataMap.put("测试重大bug", performanceDTO.getDevSeriousBug().toString()); - dataMap.put("缺陷检出分数", performanceDTO.getBugFindScore().multiply(BigDecimal.valueOf(100)).toString()); - dataMap.put("线上普通bug", performanceDTO.getSlightBug().toString()); - dataMap.put("线上重大bug", performanceDTO.getSeriousBug().toString()); + dataMap.put("测试普通bug", performanceDTO.getDevSlightBug()==null?"0": performanceDTO.getDevSlightBug().toString()); + dataMap.put("测试重大bug", performanceDTO.getDevSeriousBug() ==null?"0": performanceDTO.getDevSeriousBug().toString()); + dataMap.put("缺陷检出分数", performanceDTO.getBugFindScore()==null?"0": performanceDTO.getBugFindScore().multiply(BigDecimal.valueOf(100)).toString()); + dataMap.put("线上普通bug", performanceDTO.getSlightBug() ==null?"0": performanceDTO.getSlightBug().toString()); + dataMap.put("线上重大bug", performanceDTO.getSeriousBug()==null?"0": performanceDTO.getSeriousBug().toString()); dataMap.put("总分", devlopTotal(dataMap.get("准时率得分") - , dataMap.get("缺陷检出率"), dataMap.get("测试文档"), dataMap.get("工作态度"), dataMap.get("质量贡献"), dataMap.get("线上Bug"), dataMap.get("创新贡献")) + , dataMap.get("缺陷检出率"), + dataMap.get("测试文档"), dataMap.get("工作态度"), dataMap.get("质量贡献"), dataMap.get("线上Bug"), dataMap.get("创新贡献")) ); writeXlsx(name, "templates/scope/测试工程师.xlsx", name + "测试.xlsx", dataMap); diff --git a/src/main/java/com/sa/zentao/service/impl/ZtKanbanlaneServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtKanbanlaneServiceImpl.java index 57bfdef..2411917 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtKanbanlaneServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtKanbanlaneServiceImpl.java @@ -6,6 +6,7 @@ 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.KanbanCellType; import com.sa.zentao.enums.ProjectTypeEnums; import com.sa.zentao.mapper.ZtKanbancolumnMapper; import com.sa.zentao.mapper.ZtKanbanlaneMapper; @@ -17,6 +18,7 @@ import com.sa.zentao.utils.BeanCopyUtil; import com.sa.zentao.utils.DateUtils; import com.sa.zentao.utils.KanBanConstant; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -24,6 +26,7 @@ import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; /** *

@@ -367,25 +370,33 @@ public class ZtKanbanlaneServiceImpl extends ServiceImpl asList) { + ZtKanbanlane lane = this.baseMapper.selectOne(new QueryWrapper().lambda() .eq(ZtKanbanlane::getExecution, id).eq(ZtKanbanlane::getType, "task")); - List ztKanbancolumnDTOS = this.kanbancolumnMapper.listByLaneIds(Arrays.asList(lane.getId())); + List kanbancolumnList = this.kanbancolumnMapper.listByLaneIds(Arrays.asList(lane.getId())); - List backlog = ztKanbancolumnDTOS.stream().filter(o -> o.getType().equals("wait")) - .collect(Collectors.toList()); - ZtKanbancolumnDTO ztKanbancolumnDTO = backlog.get(0); + for (ZtTask ztTask:asList){ + String columnStatus=""; - ZtKanbancell kanbancell = this.kanbancellService.getOne(new QueryWrapper().lambda() - .eq(ZtKanbancell::getKanban, id).eq(ZtKanbancell::getColumn, ztKanbancolumnDTO.getId())); - if(StringUtils.isEmpty(kanbancell.getCards())){ - kanbancell.setCards(StringUtils.join(asList.stream().map(o->o.getId()).collect(Collectors.toList()),",")); - }else{ - kanbancell.setCards(kanbancell.getCards()+","+StringUtils.join(asList.stream().map(o->o.getId()).collect(Collectors.toList()),",")); + if(ztTask.getStatus().equals("wait")||ztTask.getStatus().equals("reviewing")||ztTask.getStatus().equals("draft")){ + columnStatus="wait"; + }else if(ztTask.getStatus().equals("doing")){ + columnStatus="developing"; + }else{ + columnStatus="developed"; + } + String finalColumnStatus = columnStatus; + ZtKanbancolumnDTO column = kanbancolumnList.stream().filter(o -> o.getCardType().equals("task")).filter(o->o.getType().equals(finalColumnStatus)).findFirst().orElseThrow(()->new BusinessException("看板不存在")); + ZtKanbancell kanbancell = this.kanbancellService.getById(column.getCellId()); + List cards = StringUtils.isEmpty(kanbancell.getCards()) ? Arrays.asList(ztTask.getId().toString()) : new ArrayList<>(Arrays.asList(kanbancell.getCards().split(","))){{add(ztTask.getId().toString());}}; + kanbancell.setCards(cards.stream().collect(Collectors.joining(","))); + this.kanbancellService.updateById(kanbancell); } - kanbancellService.updateById(kanbancell); } + @Override public void addBug(Integer id, List asList) { ZtKanbanlane lane = this.baseMapper.selectOne(new QueryWrapper().lambda() @@ -427,8 +438,24 @@ public class ZtKanbanlaneServiceImpl extends ServiceImpl sList =new ArrayList(Arrays.asList(split)); - if(sList.contains(story+"")){ - sList.remove(story + ""); + while (sList.contains(story.toString())){ + sList.remove(story.toString()); + } + cell.setCards(sList.stream().collect(Collectors.joining(","))); + this.kanbancellService.updateById(cell); + } + } + } + + @Override + public void removeKanbanCell(Integer execution, Integer objectId, KanbanCellType type) { + List list = this.kanbancellService.list(new QueryWrapper().lambda().eq(ZtKanbancell::getType,type.getValue()).eq(ZtKanbancell::getKanban, execution)); + for (ZtKanbancell cell:list) { + if(!StringUtils.isEmpty(cell.getCards())){ + String[] split = cell.getCards().split(","); + List sList =new ArrayList(Arrays.asList(split)); + if(sList.contains(objectId.toString())){ + sList.remove(objectId.toString()); cell.setCards(sList.stream().collect(Collectors.joining(","))); this.kanbancellService.updateById(cell); } @@ -436,6 +463,23 @@ public class ZtKanbanlaneServiceImpl extends ServiceImpl list = this.kanbancellService.list(new QueryWrapper().lambda().eq(ZtKanbancell::getType,type.getValue()).eq(ZtKanbancell::getKanban, execution)); + if(type==KanbanCellType.TASK){ + ZtKanbancell ztKanbancell = list.get(0); + ZtTask task=(ZtTask)obj; + addTask(execution,Arrays.asList(task)); + }else if(type==KanbanCellType.STORY){ + ZtKanbancell ztKanbancell = list.get(0); + ZtStory story=(ZtStory)obj; + addStory(execution,Arrays.asList(story)); + }else if(type==KanbanCellType.BUG){ + //TODO待处理 + } + } + private void taskChange(KanbanQo qo) { ZtTask ztTask = this.taskService.getById(qo.getId()); ztTask.setStatus(qo.getStatusType()); diff --git a/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java index 0064df8..69c4c69 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java @@ -872,6 +872,7 @@ public class ZtProjectServiceImpl extends ServiceImpl
"); b.append(""); b.append("" + - "" + "" // "" ); for (ZtStory s:ztStories) { @@ -467,11 +467,13 @@ public class ZtReleaseServiceImpl extends ServiceImpl
{id}
" + // ""; - String str=""; - +// String str=""; +// String str="\n"; + String str=""; str=str.replace("{nikename}",ztUser.getNickname()); str=str.replace("{title}",s.getTitle()); str=str.replace("{id}",s.getId().toString()); + str=str.replace("{dept}",ztUser.getDeptName()); str=str.replace("{status}","已发布"); str=str.replace("{releaseDate}",DateUtils.formatDate(release.getRealReleaseDate()==null?release.getReleaseDate():release.getRealReleaseDate(),"yyyy-MM-dd")); str=str.replace("{endDate}",DateUtils.formatDate(DateUtils.dateAddDay(release.getRealReleaseDate()==null?release.getReleaseDate():release.getRealReleaseDate(),14))); diff --git a/src/main/java/com/sa/zentao/service/impl/ZtStoryServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtStoryServiceImpl.java index be21301..cdd60c7 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtStoryServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtStoryServiceImpl.java @@ -641,7 +641,7 @@ public class ZtStoryServiceImpl extends ServiceImpl impl if (CollectionUtils.isEmpty(execList)) { return; } - + //迭代关联项目 List execProjectList = this.executionprojectService.list(new QueryWrapper().lambda() .in(ZtExecutionproject::getExecution, execList)); @@ -651,20 +651,25 @@ public class ZtStoryServiceImpl extends ServiceImpl impl .filter(o -> o.getExecution().intValue() == execId.intValue()).collect(Collectors.toList()); Integer project = fProjectList.get(0).getProject(); - //当前迭代绑定的项目 + //当前迭代绑定的项目 当前迭代的项目需求 List list = this.projectstoryService.list(new QueryWrapper().lambda() .eq(ZtProjectstory::getProject, project) .eq(ZtProjectstory::getStory, storyId) ); + //一个需求如果绑定多个项目 不是当前的项目 List bindProject = this.projectstoryService.list(new QueryWrapper().lambda() .ne(ZtProjectstory::getProject, project) + .eq(ZtProjectstory::getType,"project") .eq(ZtProjectstory::getStory, storyId) ); - if(!CollectionUtils.isEmpty(bindProject)){ - Integer oldProject = bindProject.get(0).getProject(); - //切换的迭代不是当前需求已经绑定的迭代 - this.projectstoryService.remove(new QueryWrapper().lambda().eq(ZtProjectstory::getProject, oldProject).eq(ZtProjectstory::getStory, storyId)); - } + + /* + 项目需求绑定了 + Integer oldProject = bindProject.get(0).getProject(); + 切换的迭代不是当前需求已经绑定的迭代 + this.projectstoryService.remove(new QueryWrapper().lambda().eq(ZtProjectstory::getProject, oldProject).eq(ZtProjectstory::getStory, storyId)); + */ + if(!CollectionUtils.isEmpty(bindProject)) throw new BusinessException("需求被多个项目关联"); if (CollectionUtils.isEmpty(list)) { ZtProjectDTO d = new ZtProjectDTO(); diff --git a/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java index 084aa0e..779258e 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java @@ -704,6 +704,9 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme String oldAssignedTo = ztTask.getAssignedTo(); Integer s1 = ztTask.getStory(); Integer s2 = dto.getStory(); + //老的迭代 + Integer oldExecution = ztTask.getExecution(); + Integer newExecution = dto.getExecution(); //cancel取消 closed 关闭 done @@ -795,6 +798,13 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme RiskUserThreadLocal.get().getName(), dto.getRemark(), null); } } + + if(ObjectUtils.notEqual(oldExecution,newExecution)){ + //迭代切换了 + this.kanbanlaneService.removeKanbanCell(oldExecution,ztTask.getId(),KanbanCellType.TASK); + //添加新的看板迭代 + this.kanbanlaneService.addKanbanCell(newExecution,ztTask.getId(),KanbanCellType.TASK,ztTask); + } taskSendZpMessage(ztTask.getId(), oldAssignedTo, ztTask.getAssignedTo()); diff --git a/src/main/java/com/sa/zentao/utils/SFunctionColums.java b/src/main/java/com/sa/zentao/utils/SFunctionColums.java index 0669095..ee20a8f 100644 --- a/src/main/java/com/sa/zentao/utils/SFunctionColums.java +++ b/src/main/java/com/sa/zentao/utils/SFunctionColums.java @@ -39,6 +39,7 @@ public class SFunctionColums { result.add(ZtTask::getEstStarted); result.add(ZtTask::getRealstarted); result.add(ZtTask::getCanceleddate); + result.add(ZtTask::getType); result.add(ZtTask::getPri); return result; } diff --git a/src/main/resources/mapper/ZtKanbancolumnMapper.xml b/src/main/resources/mapper/ZtKanbancolumnMapper.xml index 133b80a..b95b931 100644 --- a/src/main/resources/mapper/ZtKanbancolumnMapper.xml +++ b/src/main/resources/mapper/ZtKanbancolumnMapper.xml @@ -15,7 +15,7 @@ diff --git a/src/main/resources/templates/scope/UI工程师.xlsx b/src/main/resources/templates/scope/UI工程师.xlsx index 180b1ca78ad84199a13642ea33a6797161fb1fe7..2de5593bdbcbfd910f9c4c36f5f7c909e6f3d8e8 100644 GIT binary patch literal 11366 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
需求编号
研发需求名称
需求状态
上线时间
截止验收时间
验收人
需求编号
研发需求名称
来源部门
需求状态
上线时间
截止验收时间
验收人
需求编号
研发需求名称
需求状态
上线时间
截止验收时间
验收人
{title}
{nickName}
{id}
{title}
{status}
{releaseDate}
{endDate}
{nikename}
{id}
{title}
{status}
{releaseDate}
{endDate}
{nikename}
{id}
{title}
{dept}
{status}
{releaseDate}
{endDate}
{nikename}
{id}
{title}
{dept}
{status}
{releaseDate}
{endDate}
{nikename}
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 E0H^ovegFUf literal 13365 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 D394&P diff --git a/src/main/resources/templates/scope/测试工程师.xlsx b/src/main/resources/templates/scope/测试工程师.xlsx index f0b367ce5e3fa69e2364fcd701ef0d861fb5e63e..960e97f0580dc0cfc79cb70d77c258ba875aee8b 100644 GIT binary patch literal 11914 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 F^glAI^)CPb diff --git a/src/main/resources/templates/scope/项目经理考核.xlsx b/src/main/resources/templates/scope/项目经理考核.xlsx index 6933857dcfa2d92e897711f859a26610b0e94421..f9e0c92829932781d16b6aaf98b58f57f7dc458a 100644 GIT binary patch literal 12724 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 F{{x-;uwwuK literal 14058 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

pf83X*Q4&fi%m7@HP|5R$kweaY0JYHvAH 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 L5!kc-cJ%)MasJv6