Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
6e63e1b4e8
  1. 6
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java
  2. 32
      xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java
  3. 4
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  4. 2
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml

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

@ -243,6 +243,7 @@ public class XmProjectPhaseController {
} }
List<String> excludePhaseIds=new ArrayList<>(); List<String> excludePhaseIds=new ArrayList<>();
excludePhaseIds.add(xmProjectPhase.getId()); excludePhaseIds.add(xmProjectPhase.getId());
xmProjectPhaseService.calcPhaseBudgetAmount(xmProjectPhase);
xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhase); xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhase);
if(xmProjectPhase.getLvl()==1){ if(xmProjectPhase.getLvl()==1){
tips=xmProjectPhaseService.judgetProjectBudget(xmProject.getId(),xmProjectPhase.getPhaseBudgetAt(),null,null,null,excludePhaseIds); tips=xmProjectPhaseService.judgetProjectBudget(xmProject.getId(),xmProjectPhase.getPhaseBudgetAt(),null,null,null,excludePhaseIds);
@ -357,6 +358,7 @@ public class XmProjectPhaseController {
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
xmProjectPhaseService.calcPhaseBudgetAmount(xmProjectPhase);
List<String> excludePhaseIds=new ArrayList<>(); List<String> excludePhaseIds=new ArrayList<>();
excludePhaseIds.add(xmProjectPhase.getId()); excludePhaseIds.add(xmProjectPhase.getId());
if(xmProjectPhase.getLvl()==1){ if(xmProjectPhase.getLvl()==1){
@ -537,6 +539,7 @@ public class XmProjectPhaseController {
BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO; BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO;
List<String> excludeIds=children.stream().map(i->i.getId()).collect(Collectors.toList()); List<String> excludeIds=children.stream().map(i->i.getId()).collect(Collectors.toList());
for (XmProjectPhase child : children) { for (XmProjectPhase child : children) {
xmProjectPhaseService.calcPhaseBudgetAmount(child);
phaseTotalBudgetAt=phaseTotalBudgetAt.add(child.getPhaseBudgetAt()); phaseTotalBudgetAt=phaseTotalBudgetAt.add(child.getPhaseBudgetAt());
} }
Tips tips2=xmProjectPhaseService.judgetPhaseBudget(parentId,phaseTotalBudgetAt,null,null,null,excludeIds); Tips tips2=xmProjectPhaseService.judgetPhaseBudget(parentId,phaseTotalBudgetAt,null,null,null,excludeIds);
@ -549,6 +552,7 @@ public class XmProjectPhaseController {
BigDecimal phaseTotalBudgetWorkload=BigDecimal.ZERO; BigDecimal phaseTotalBudgetWorkload=BigDecimal.ZERO;
BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO; BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO;
for (XmProjectPhase l1Phase : l1Phases) { for (XmProjectPhase l1Phase : l1Phases) {
xmProjectPhaseService.calcPhaseBudgetAmount(l1Phase);
phaseTotalBudgetWorkload=phaseTotalBudgetWorkload.add(l1Phase.getPhaseBudgetWorkload()); phaseTotalBudgetWorkload=phaseTotalBudgetWorkload.add(l1Phase.getPhaseBudgetWorkload());
phaseTotalBudgetAt=phaseTotalBudgetAt.add(l1Phase.getPhaseBudgetAt()); phaseTotalBudgetAt=phaseTotalBudgetAt.add(l1Phase.getPhaseBudgetAt());
} }
@ -635,6 +639,7 @@ public class XmProjectPhaseController {
BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO; BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO;
List<String> excludeIds=children.stream().map(i->i.getId()).collect(Collectors.toList()); List<String> excludeIds=children.stream().map(i->i.getId()).collect(Collectors.toList());
for (XmProjectPhase child : children) { for (XmProjectPhase child : children) {
xmProjectPhaseService.calcPhaseBudgetAmount(child);
phaseTotalBudgetAt=phaseTotalBudgetAt.add(child.getPhaseBudgetAt()); phaseTotalBudgetAt=phaseTotalBudgetAt.add(child.getPhaseBudgetAt());
} }
Tips tips2=xmProjectPhaseService.judgetPhaseBudget(parentId,phaseTotalBudgetAt,null,null,null,excludeIds); Tips tips2=xmProjectPhaseService.judgetPhaseBudget(parentId,phaseTotalBudgetAt,null,null,null,excludeIds);
@ -647,6 +652,7 @@ public class XmProjectPhaseController {
BigDecimal phaseTotalBudgetWorkload=BigDecimal.ZERO; BigDecimal phaseTotalBudgetWorkload=BigDecimal.ZERO;
BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO; BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO;
for (XmProjectPhase l1Phase : l1Phases) { for (XmProjectPhase l1Phase : l1Phases) {
xmProjectPhaseService.calcPhaseBudgetAmount(l1Phase);
phaseTotalBudgetWorkload=phaseTotalBudgetWorkload.add(l1Phase.getPhaseBudgetWorkload()); phaseTotalBudgetWorkload=phaseTotalBudgetWorkload.add(l1Phase.getPhaseBudgetWorkload());
phaseTotalBudgetAt=phaseTotalBudgetAt.add(l1Phase.getPhaseBudgetAt()); phaseTotalBudgetAt=phaseTotalBudgetAt.add(l1Phase.getPhaseBudgetAt());
} }

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

@ -133,10 +133,10 @@ public class XmProjectPhaseService extends BaseService {
return tips; return tips;
} }
BigDecimal phaseBudgetCostAt=phaseBudgetCost.add(phaseBudgetInnerUserAt).add(phaseBudgetOutUserAt).add(phaseBudgetNouserAt);
phaseBudgetCostAt=phaseBudgetCostAt.add(addPhaseBudgetCost);
if(phaseBudgetCostAt.compareTo(planTotalCost)>0) {
tips.setFailureMsg("计划总体预算超出项目总预算"+phaseBudgetCostAt.subtract(planTotalCost)+"元");
BigDecimal phaseBudgetAt=phaseBudgetCost.add(phaseBudgetInnerUserAt).add(phaseBudgetOutUserAt).add(phaseBudgetNouserAt);
phaseBudgetAt=phaseBudgetAt.add(addPhaseBudgetCost);
if(phaseBudgetAt.compareTo(planTotalCost)>0) {
tips.setFailureMsg("计划总体预算超出项目总预算"+phaseBudgetAt.subtract(planTotalCost)+"元");
return tips; return tips;
}else { }else {
return tips; return tips;
@ -512,10 +512,10 @@ public class XmProjectPhaseService extends BaseService {
BigDecimal planTotalCost=NumberUtil.getBigDecimal(g.get("pbudgetAmount"),zero); BigDecimal planTotalCost=NumberUtil.getBigDecimal(g.get("pbudgetAmount"),zero);
BigDecimal phaseBudgetCostAt=phaseBudgetCost.add(phaseBudgetInnerUserAt).add(phaseBudgetOutUserAt).add(phaseBudgetNouserAt);
phaseBudgetCostAt=phaseBudgetCostAt.add(addPhaseBudgetCost);
if(phaseBudgetCostAt.compareTo(planTotalCost)>0) {
tips.setFailureMsg("计划总体预算超出产品总预算"+phaseBudgetCostAt.subtract(planTotalCost)+"元");
BigDecimal phaseBudgetAt=phaseBudgetCost.add(phaseBudgetInnerUserAt).add(phaseBudgetOutUserAt).add(phaseBudgetNouserAt);
phaseBudgetAt=phaseBudgetAt.add(addPhaseBudgetCost);
if(phaseBudgetAt.compareTo(planTotalCost)>0) {
tips.setFailureMsg("计划总体预算超出产品总预算"+phaseBudgetAt.subtract(planTotalCost)+"元");
return tips; return tips;
}else { }else {
return tips; return tips;
@ -539,6 +539,22 @@ public class XmProjectPhaseService extends BaseService {
return this.selectOne("selectPhaseBudgetCost", p); return this.selectOne("selectPhaseBudgetCost", p);
} }
public void calcPhaseBudgetAmount(XmProjectPhase phase){
if(phase.getPhaseBudgetInnerUserAt()==null){
phase.setPhaseBudgetInnerUserAt(BigDecimal.ZERO);
}
if(phase.getPhaseBudgetNouserAt()==null){
phase.setPhaseBudgetNouserAt(BigDecimal.ZERO);
}
if(phase.getPhaseBudgetOutUserAt()==null){
phase.setPhaseBudgetOutUserAt(BigDecimal.ZERO);
}
if(phase.getPhaseBudgetAt()==null){
phase.setPhaseBudgetAt(BigDecimal.ZERO);
}
phase.setPhaseBudgetAt(phase.getPhaseBudgetInnerUserAt().add(phase.getPhaseBudgetNouserAt()).add(phase.getPhaseBudgetAt()));
}
/** /**
* res2.id, * res2.id,
* res2.phase_budget_workload, * res2.phase_budget_workload,

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

@ -115,8 +115,8 @@ public class XmTaskService extends BaseService {
return tips; return tips;
} }
BigDecimal phaseBudgetCostAt=phaseBudgetCost.add(phaseBudgetInnerUserAt).add(phaseBudgetOutUserAt).add(phaseBudgetNouserAt);
if(phaseBudgetCostAt.compareTo(taskBudgetTotalCost)<0) {
BigDecimal phaseBudgetAt=phaseBudgetCost.add(phaseBudgetInnerUserAt).add(phaseBudgetOutUserAt).add(phaseBudgetNouserAt);
if(phaseBudgetAt.compareTo(taskBudgetTotalCost)<0) {
tips.setFailureMsg("任务合计总预算超出计划总预算"); tips.setFailureMsg("任务合计总预算超出计划总预算");
return tips; return tips;
}else { }else {

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

@ -104,7 +104,7 @@
sum( ifnull(res.phase_budget_nouser_at,0) ) AS child_phase_budget_nouser_at, sum( ifnull(res.phase_budget_nouser_at,0) ) AS child_phase_budget_nouser_at,
sum( ifnull(res.phase_budget_inner_user_at,0) ) AS child_phase_budget_inner_user_at, sum( ifnull(res.phase_budget_inner_user_at,0) ) AS child_phase_budget_inner_user_at,
sum( ifnull(res.phase_budget_out_user_at,0) ) AS child_phase_budget_out_user_at, sum( ifnull(res.phase_budget_out_user_at,0) ) AS child_phase_budget_out_user_at,
sum( ifnull(res.phase_budget_at,0) ) AS child_phase_budget_at,
sum( ifnull(res.phase_budget_at,0) ) AS child_phase_budget_at
FROM xm_project_phase res where res.parent_phase_id=#{id} FROM xm_project_phase res where res.parent_phase_id=#{id}
<if test=" excludePhaseIds !=null "> and res.id not in <if test=" excludePhaseIds !=null "> and res.id not in
<foreach collection="excludePhaseIds" item="item" index="index" open="(" separator="," close=")" > <foreach collection="excludePhaseIds" item="item" index="index" open="(" separator="," close=")" >

Loading…
Cancel
Save