Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
96b7589033
  1. 6
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  2. 1
      xm-core/src/main/java/com/xm/core/service/XmMenuService.java
  3. 78
      xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java
  4. 93
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  5. 35
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml

6
xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java

@ -465,6 +465,7 @@ public class XmTaskController {
return m;
}
xmTaskService.deleteTask(xmTask);
xmTaskService.sumParents(xmTaskDb);
}catch (BizException e) {
tips=e.getTips();
@ -609,6 +610,7 @@ public class XmTaskController {
Tips judgetTips=xmTaskService.judgetBudget(projectPhaseId, taskBudgetCost,taskBudgetInnerUserAt,taskBudgetOutUserAt,taskBudgetNouserAt,excludeTaskIds);
if(judgetTips.isOk()) {
xmTaskService.updateTask(xmTaskVo);
xmTaskService.sumParents(xmTaskDb);
if(!StringUtils.isEmpty(xmTaskVo.getExecutorUserid())) {
List<XmProjectGroupVo> groups=groupService.getUserGroups(xmTaskVo.getProjectId(), xmTaskVo.getExecutorUserid());
if(groups!=null && groups.size()>0) {
@ -721,6 +723,7 @@ public class XmTaskController {
}
}
xmTaskService.updateProgress(xmTask);
xmTaskService.sumParents(xmTaskDb);
if(!StringUtils.isEmpty(xmTask.getExecutorUserid())) {
if(pgroups!=null && pgroups.size()>0) {
for (XmProjectGroupVo g : pgroups) {
@ -825,6 +828,9 @@ public class XmTaskController {
xmTaskService.parentIdPathsCalcBeforeSave(xmTasks);
xmTaskService.batchImportFromTemplate(xmTasks);
for (XmTask t : xmTasks) {
xmRecordService.addXmTaskRecord(t.getProjectId(), t.getId(), "项目-任务-批量新增任务", "新增任务"+t.getName(),JSON.toJSONString(t),null);

1
xm-core/src/main/java/com/xm/core/service/XmMenuService.java

@ -217,5 +217,6 @@ public class XmMenuService extends BaseService {
this.updateChildrenCntByIds(list.stream().map(i->i.getPmenuId()).collect(Collectors.toSet()).stream().collect(Collectors.toList()));
}
}
}

78
xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java

@ -7,6 +7,7 @@ import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils;
import com.xm.core.entity.XmProjectPhase;
import com.xm.core.entity.XmProjectPhase;
import com.xm.core.entity.XmTask;
import com.xm.core.vo.XmProjectGroupVo;
import com.xm.core.vo.XmProjectPhaseVo;
import org.springframework.beans.factory.annotation.Autowired;
@ -15,10 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -348,5 +346,77 @@ public class XmProjectPhaseService extends BaseService {
parentList.add(current);
}
}
@Transactional
public void sumParents(XmTask node){
String id=node.getId();
String pidPaths=node.getPidPaths();
if(!StringUtils.hasText(pidPaths)){
return;
}
if(!pidPaths.startsWith("0,")){
return;
}
if("0".equals(node.getNtype())){
pidPaths=pidPaths.substring(2,pidPaths.indexOf(id));
}else{
pidPaths=pidPaths.substring(2);
}
if(!StringUtils.hasText(pidPaths)){
return;
}
String[] pidPathss=pidPaths.split(",");
List<String> pidPathsList=new ArrayList<>();
for (int i = pidPathss.length-1; i >=0; i--) {
pidPathsList.add(pidPathss[i]);
}
if(pidPathsList.size()>0){
super.update("sumParents",pidPathsList );
}
}
@Transactional
public void batchSumParents(List<XmTask> xmTasks) {
List<Set<String>> list=new ArrayList<>();
for (XmTask node : xmTasks) {
String id=node.getId();
String pidPaths=node.getPidPaths();
if(!StringUtils.hasText(pidPaths)){
continue;
}
if(!pidPaths.startsWith("0,")){
continue;
}
if("0".equals(node.getNtype())){
pidPaths=pidPaths.substring(2,pidPaths.indexOf(id));
}else{
pidPaths=pidPaths.substring(2);
}
if(!StringUtils.hasText(pidPaths)){
continue;
}
String[] pidPathss=pidPaths.split(",");
for (int i = 0; i <pidPathss.length; i++) {
if(list.size()<=i){
list.add(new HashSet<>());
}
Set<String> set=list.get(i);
set.add(pidPathss[i]);
}
Set<String> allSet=new HashSet<>();
for (int i = list.size() - 1; i >= 0; i--) {
allSet.addAll(list.get(i));
}
if(allSet.size()>0){
super.update("sumParents",allSet.stream().collect(Collectors.toList()));
}
}
}
}

93
xm-core/src/main/java/com/xm/core/service/XmTaskService.java

@ -510,27 +510,6 @@ public class XmTaskService extends BaseService {
}
return tips;
}
@Transactional
public void sumParents(XmTask xmTaskDb){
String pidPaths=xmTaskDb.getPidPaths();
if(!StringUtils.hasText(pidPaths)){
return;
}
if(!pidPaths.startsWith("0,")){
return;
}
pidPaths=pidPaths.substring(2);
if(!StringUtils.hasText(pidPaths)){
return;
}
String[] pidPathss=pidPaths.split(",");
List<String> pidPathsList=new ArrayList<>();
for (int i = pidPathss.length-1; i >=0; i--) {
pidPathsList.add(pidPathss[i]);
}
super.update("sumParents",pidPathsList );
}
private List<XmTask> getParentList(XmTask currNode){
List<XmTask> parentList=new ArrayList<>();
@ -565,5 +544,77 @@ public class XmTaskService extends BaseService {
parentList.add(current);
}
}
@Transactional
public void sumParents(XmTask node){
String id=node.getId();
String pidPaths=node.getPidPaths();
if(!StringUtils.hasText(pidPaths)){
return;
}
if(!pidPaths.startsWith("0,")){
return;
}
if("0".equals(node.getNtype())){
pidPaths=pidPaths.substring(2,pidPaths.indexOf(id));
}else{
pidPaths=pidPaths.substring(2);
}
if(!StringUtils.hasText(pidPaths)){
return;
}
String[] pidPathss=pidPaths.split(",");
List<String> pidPathsList=new ArrayList<>();
for (int i = pidPathss.length-1; i >=0; i--) {
pidPathsList.add(pidPathss[i]);
}
if(pidPathsList.size()>0){
super.update("sumParents",pidPathsList );
}
}
@Transactional
public void batchSumParents(List<XmTask> xmTasks) {
List<Set<String>> list=new ArrayList<>();
for (XmTask node : xmTasks) {
String id=node.getId();
String pidPaths=node.getPidPaths();
if(!StringUtils.hasText(pidPaths)){
continue;
}
if(!pidPaths.startsWith("0,")){
continue;
}
if("0".equals(node.getNtype())){
pidPaths=pidPaths.substring(2,pidPaths.indexOf(id));
}else{
pidPaths=pidPaths.substring(2);
}
if(!StringUtils.hasText(pidPaths)){
continue;
}
String[] pidPathss=pidPaths.split(",");
for (int i = 0; i <pidPathss.length; i++) {
if(list.size()<=i){
list.add(new HashSet<>());
}
Set<String> set=list.get(i);
set.add(pidPathss[i]);
}
Set<String> allSet=new HashSet<>();
for (int i = list.size() - 1; i >= 0; i--) {
allSet.addAll(list.get(i));
}
if(allSet.size()>0){
super.update("sumParents",allSet.stream().collect(Collectors.toList()));
}
}
}
}

35
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml

@ -92,6 +92,41 @@
( #{item})
</foreach>
</update>
<update id="sumParents" parameterType="List">
<foreach collection="list" item="item" index="index" separator=";" >
UPDATE XM.xm_project_phase res
LEFT JOIN (
SELECT
t.project_id,
t.parent_phase_id,
sum(t.phase_act_inner_user_workload) as phase_act_inner_user_workload,
sum(t.phase_act_out_user_workload) as phase_act_out_user_workload,
sum(t.phase_act_workload) as phase_act_workload,
sum(t.act_inner_user_at) as act_inner_user_at,
sum(t.act_out_user_at) as act_out_user_at,
sum(ifnull(t.act_rate,0)*ifnull(t.task_budget_workload,0))/100/ifnull(sum(ifnull(t.task_budget_workload,0.000001)),999999) as act_rate,
sum(t.task_budget_workload) as task_budget_workload,
sum(t.task_budget_at) as task_budget_at
FROM xm_project_phase t
WHERE
t.parent_taskid=#{item}
GROUP BY
t.project_id,
t.parent_phase_id
) AS tc ON res.project_id = tc.project_id and res.id=tc.parent_phase_id
SET res.phase_act_inner_user_workload = tc.phase_act_inner_user_workload,
res.phase_act_out_user_workload = tc.phase_act_out_user_workload,
res.phase_act_workload = tc.phase_act_workload,
res.act_inner_user_at = tc.act_inner_user_at,
res.act_out_user_at = tc.act_out_user_at,
res.act_rate= tc.act_rate,
res.task_budget_workload=tc.task_budget_workload,
res.task_budget_at=tc.task_budget_at,
res.calc_time=now()
where res.id=#{item} and res.ntype='1'
</foreach>
</update>
<!--结束 自定义sql函数区域-->

Loading…
Cancel
Save