diff --git a/xm-core/src/main/java/com/xm/core/entity/XmMenu.java b/xm-core/src/main/java/com/xm/core/entity/XmMenu.java
index d5519f8b..6a2c664b 100644
--- a/xm-core/src/main/java/com/xm/core/entity/XmMenu.java
+++ b/xm-core/src/main/java/com/xm/core/entity/XmMenu.java
@@ -3,13 +3,14 @@ package com.xm.core.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
+import java.math.BigDecimal;
/**
* 组织 com 顶级模块 xm 大模块 core 小模块
* 实体 XmMenu所有属性名:
- * menuId,menuName,pmenuId,productId,remark,status,online,demandUrl,codeUrl,designUrl,docUrl,helpUrl,operDocUrl,seqNo,mmUserid,mmUsername,ctime,ntype,sinceVersion,childrenCnt,ltime,tagIds,tagNames,pidPaths,lvl,isTpl;
+ * menuId,menuName,pmenuId,productId,remark,status,online,demandUrl,codeUrl,designUrl,docUrl,helpUrl,operDocUrl,seqNo,mmUserid,mmUsername,ctime,ntype,sinceVersion,childrenCnt,ltime,tagIds,tagNames,pidPaths,lvl,isTpl,budgetHours,budgetStaffNu,budgetWorkload,budgetAmount,phaseId;
* 表 xm_menu 功能表的所有字段名:
- * menu_id,menu_name,pmenu_id,product_id,remark,status,online,demand_url,code_url,design_url,doc_url,help_url,oper_doc_url,seq_no,mm_userid,mm_username,ctime,ntype,since_version,children_cnt,ltime,tag_ids,tag_names,pid_paths,lvl,is_tpl;
+ * menu_id,menu_name,pmenu_id,product_id,remark,status,online,demand_url,code_url,design_url,doc_url,help_url,oper_doc_url,seq_no,mm_userid,mm_username,ctime,ntype,since_version,children_cnt,ltime,tag_ids,tag_names,pid_paths,lvl,is_tpl,budget_hours,budget_staff_nu,budget_workload,budget_amount,phase_id;
* 当前主键(包括多主键):
* menu_id;
*/
@@ -61,10 +62,10 @@ public class XmMenu implements java.io.Serializable {
@ApiModelProperty(notes="排序序号",allowEmptyValue=true,example="",allowableValues="")
String seqNo;
- @ApiModelProperty(notes="需求管理员编号",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="故事管理员编号",allowEmptyValue=true,example="",allowableValues="")
String mmUserid;
- @ApiModelProperty(notes="需求管理员姓名",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="故事管理员姓名",allowEmptyValue=true,example="",allowableValues="")
String mmUsername;
@ApiModelProperty(notes="创建时间",allowEmptyValue=true,example="",allowableValues="")
@@ -96,6 +97,21 @@ public class XmMenu implements java.io.Serializable {
@ApiModelProperty(notes="是否为模板",allowEmptyValue=true,example="",allowableValues="")
String isTpl;
+
+ @ApiModelProperty(notes="预算工时总数从上到下分配",allowEmptyValue=true,example="",allowableValues="")
+ BigDecimal budgetHours;
+
+ @ApiModelProperty(notes="投入人员数,从上到下分配",allowEmptyValue=true,example="",allowableValues="")
+ Integer budgetStaffNu;
+
+ @ApiModelProperty(notes="总工作量单位人时,从上到下分配,下级汇总不能大于上级",allowEmptyValue=true,example="",allowableValues="")
+ BigDecimal budgetWorkload;
+
+ @ApiModelProperty(notes="预算金额,从上到下汇总,从上到下分配,下级汇总不能大于上级",allowEmptyValue=true,example="",allowableValues="")
+ BigDecimal budgetAmount;
+
+ @ApiModelProperty(notes="计划编号",allowEmptyValue=true,example="",allowableValues="")
+ String phaseId;
/**功能编号**/
public XmMenu(String menuId) {
@@ -191,13 +207,13 @@ public class XmMenu implements java.io.Serializable {
this.seqNo = seqNo;
}
/**
- * 需求管理员编号
+ * 故事管理员编号
**/
public void setMmUserid(String mmUserid) {
this.mmUserid = mmUserid;
}
/**
- * 需求管理员姓名
+ * 故事管理员姓名
**/
public void setMmUsername(String mmUsername) {
this.mmUsername = mmUsername;
@@ -262,6 +278,36 @@ public class XmMenu implements java.io.Serializable {
public void setIsTpl(String isTpl) {
this.isTpl = isTpl;
}
+ /**
+ * 预算工时总数从上到下分配
+ **/
+ public void setBudgetHours(BigDecimal budgetHours) {
+ this.budgetHours = budgetHours;
+ }
+ /**
+ * 投入人员数,从上到下分配
+ **/
+ public void setBudgetStaffNu(Integer budgetStaffNu) {
+ this.budgetStaffNu = budgetStaffNu;
+ }
+ /**
+ * 总工作量单位人时,从上到下分配,下级汇总不能大于上级
+ **/
+ public void setBudgetWorkload(BigDecimal budgetWorkload) {
+ this.budgetWorkload = budgetWorkload;
+ }
+ /**
+ * 预算金额,从上到下汇总,从上到下分配,下级汇总不能大于上级
+ **/
+ public void setBudgetAmount(BigDecimal budgetAmount) {
+ this.budgetAmount = budgetAmount;
+ }
+ /**
+ * 计划编号
+ **/
+ public void setPhaseId(String phaseId) {
+ this.phaseId = phaseId;
+ }
/**
* 功能编号
@@ -348,13 +394,13 @@ public class XmMenu implements java.io.Serializable {
return this.seqNo;
}
/**
- * 需求管理员编号
+ * 故事管理员编号
**/
public String getMmUserid() {
return this.mmUserid;
}
/**
- * 需求管理员姓名
+ * 故事管理员姓名
**/
public String getMmUsername() {
return this.mmUsername;
@@ -419,5 +465,35 @@ public class XmMenu implements java.io.Serializable {
public String getIsTpl() {
return this.isTpl;
}
+ /**
+ * 预算工时总数从上到下分配
+ **/
+ public BigDecimal getBudgetHours() {
+ return this.budgetHours;
+ }
+ /**
+ * 投入人员数,从上到下分配
+ **/
+ public Integer getBudgetStaffNu() {
+ return this.budgetStaffNu;
+ }
+ /**
+ * 总工作量单位人时,从上到下分配,下级汇总不能大于上级
+ **/
+ public BigDecimal getBudgetWorkload() {
+ return this.budgetWorkload;
+ }
+ /**
+ * 预算金额,从上到下汇总,从上到下分配,下级汇总不能大于上级
+ **/
+ public BigDecimal getBudgetAmount() {
+ return this.budgetAmount;
+ }
+ /**
+ * 计划编号
+ **/
+ public String getPhaseId() {
+ return this.phaseId;
+ }
}
\ No newline at end of file
diff --git a/xm-core/src/main/java/com/xm/core/entity/XmProduct.java b/xm-core/src/main/java/com/xm/core/entity/XmProduct.java
index 6569a7eb..aeda4d3a 100644
--- a/xm-core/src/main/java/com/xm/core/entity/XmProduct.java
+++ b/xm-core/src/main/java/com/xm/core/entity/XmProduct.java
@@ -3,13 +3,14 @@ package com.xm.core.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
+import java.math.BigDecimal;
/**
* 组织 com 顶级模块 xm 大模块 core 小模块
* 实体 XmProduct所有属性名:
- * id,productName,branchId,remark,version,pmUserid,pmUsername,ctime,deptid,pstatus,startTime,endTime,deptName,admUserid,admUsername,assistantUserid,assistantUsername,bizProcInstId,bizFlowState,isTpl,baselineId,baseTime,code;
+ * id,productName,branchId,remark,version,pmUserid,pmUsername,ctime,deptid,pstatus,startTime,endTime,deptName,admUserid,admUsername,assistantUserid,assistantUsername,bizProcInstId,bizFlowState,isTpl,baselineId,baseTime,code,pbudgetWorkload,pbudgetAmount,pmenuBudgetWorkload,pmenuBudgetAmount;
* 表 xm_product 产品表的所有字段名:
- * id,product_name,branch_id,remark,version,pm_userid,pm_username,ctime,deptid,pstatus,start_time,end_time,dept_name,adm_userid,adm_username,assistant_userid,assistant_username,biz_proc_inst_id,biz_flow_state,is_tpl,baseline_id,base_time,code;
+ * id,product_name,branch_id,remark,version,pm_userid,pm_username,ctime,deptid,pstatus,start_time,end_time,dept_name,adm_userid,adm_username,assistant_userid,assistant_username,biz_proc_inst_id,biz_flow_state,is_tpl,baseline_id,base_time,code,pbudget_workload,pbudget_amount,pmenu_budget_workload,pmenu_budget_amount;
* 当前主键(包括多主键):
* id;
*/
@@ -46,7 +47,7 @@ public class XmProduct implements java.io.Serializable {
@ApiModelProperty(notes="归属部门",allowEmptyValue=true,example="",allowableValues="")
String deptid;
- @ApiModelProperty(notes="产品计划:0未开始,1研发中,2已完成",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="产品阶段:0未开始,1研发中,2已完成,3已关闭",allowEmptyValue=true,example="",allowableValues="")
String pstatus;
@ApiModelProperty(notes="开始日期",allowEmptyValue=true,example="",allowableValues="")
@@ -87,6 +88,18 @@ public class XmProduct implements java.io.Serializable {
@ApiModelProperty(notes="产品编码",allowEmptyValue=true,example="",allowableValues="")
String code;
+
+ @ApiModelProperty(notes="产品预计总工作量,应该大于一级需求总预算工作量",allowEmptyValue=true,example="",allowableValues="")
+ BigDecimal pbudgetWorkload;
+
+ @ApiModelProperty(notes="产品预计总金额,应该大于一级需求总预算金额",allowEmptyValue=true,example="",allowableValues="")
+ BigDecimal pbudgetAmount;
+
+ @ApiModelProperty(notes="从需求汇总来的总预算工作量",allowEmptyValue=true,example="",allowableValues="")
+ BigDecimal pmenuBudgetWorkload;
+
+ @ApiModelProperty(notes="从需求汇总的总预算金额",allowEmptyValue=true,example="",allowableValues="")
+ BigDecimal pmenuBudgetAmount;
/**产品编号**/
public XmProduct(String id) {
@@ -152,7 +165,7 @@ public class XmProduct implements java.io.Serializable {
this.deptid = deptid;
}
/**
- * 产品计划:0未开始,1研发中,2已完成
+ * 产品阶段:0未开始,1研发中,2已完成,3已关闭
**/
public void setPstatus(String pstatus) {
this.pstatus = pstatus;
@@ -235,6 +248,30 @@ public class XmProduct implements java.io.Serializable {
public void setCode(String code) {
this.code = code;
}
+ /**
+ * 产品预计总工作量,应该大于一级需求总预算工作量
+ **/
+ public void setPbudgetWorkload(BigDecimal pbudgetWorkload) {
+ this.pbudgetWorkload = pbudgetWorkload;
+ }
+ /**
+ * 产品预计总金额,应该大于一级需求总预算金额
+ **/
+ public void setPbudgetAmount(BigDecimal pbudgetAmount) {
+ this.pbudgetAmount = pbudgetAmount;
+ }
+ /**
+ * 从需求汇总来的总预算工作量
+ **/
+ public void setPmenuBudgetWorkload(BigDecimal pmenuBudgetWorkload) {
+ this.pmenuBudgetWorkload = pmenuBudgetWorkload;
+ }
+ /**
+ * 从需求汇总的总预算金额
+ **/
+ public void setPmenuBudgetAmount(BigDecimal pmenuBudgetAmount) {
+ this.pmenuBudgetAmount = pmenuBudgetAmount;
+ }
/**
* 产品编号
@@ -291,7 +328,7 @@ public class XmProduct implements java.io.Serializable {
return this.deptid;
}
/**
- * 产品计划:0未开始,1研发中,2已完成
+ * 产品阶段:0未开始,1研发中,2已完成,3已关闭
**/
public String getPstatus() {
return this.pstatus;
@@ -374,5 +411,29 @@ public class XmProduct implements java.io.Serializable {
public String getCode() {
return this.code;
}
+ /**
+ * 产品预计总工作量,应该大于一级需求总预算工作量
+ **/
+ public BigDecimal getPbudgetWorkload() {
+ return this.pbudgetWorkload;
+ }
+ /**
+ * 产品预计总金额,应该大于一级需求总预算金额
+ **/
+ public BigDecimal getPbudgetAmount() {
+ return this.pbudgetAmount;
+ }
+ /**
+ * 从需求汇总来的总预算工作量
+ **/
+ public BigDecimal getPmenuBudgetWorkload() {
+ return this.pmenuBudgetWorkload;
+ }
+ /**
+ * 从需求汇总的总预算金额
+ **/
+ public BigDecimal getPmenuBudgetAmount() {
+ return this.pmenuBudgetAmount;
+ }
}
\ No newline at end of file
diff --git a/xm-core/src/main/java/com/xm/core/entity/XmProjectGroup.java b/xm-core/src/main/java/com/xm/core/entity/XmProjectGroup.java
index 42ec16a1..ab99e5e3 100644
--- a/xm-core/src/main/java/com/xm/core/entity/XmProjectGroup.java
+++ b/xm-core/src/main/java/com/xm/core/entity/XmProjectGroup.java
@@ -1,14 +1,15 @@
-package com.xm.core.entity;
+package com.xm.core.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
/**
- * 组织 com.qqkj 顶级模块 oa 大模块 xm 小模块
+ * 组织 com 顶级模块 xm 大模块 core 小模块
* 实体 XmProjectGroup所有属性名:
- * id,groupName,projectId,pgTypeId,pgTypeName;
- * 表 XM.xm_project_group xm_project_group的所有字段名:
- * id,group_name,project_id,pg_type_id,pg_type_name;
+ * id,groupName,projectId,pgTypeId,pgTypeName,leaderUserid,leaderUsername,ctime,ltime,productId,branchId,pgClass;
+ * 表 xm_project_group xm_project_group的所有字段名:
+ * id,group_name,project_id,pg_type_id,pg_type_name,leader_userid,leader_username,ctime,ltime,product_id,branch_id,pg_class;
* 当前主键(包括多主键):
* id;
*/
@@ -24,7 +25,7 @@ public class XmProjectGroup implements java.io.Serializable {
@ApiModelProperty(notes="团队名称",allowEmptyValue=true,example="",allowableValues="")
String groupName;
- @ApiModelProperty(notes="项目编号",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="项目编号-属于产品线则可为空",allowEmptyValue=true,example="",allowableValues="")
String projectId;
@ApiModelProperty(notes="项目团队类型编号",allowEmptyValue=true,example="",allowableValues="")
@@ -32,6 +33,27 @@ public class XmProjectGroup implements java.io.Serializable {
@ApiModelProperty(notes="团队类型名称",allowEmptyValue=true,example="",allowableValues="")
String pgTypeName;
+
+ @ApiModelProperty(notes="团队负责人",allowEmptyValue=true,example="",allowableValues="")
+ String leaderUserid;
+
+ @ApiModelProperty(notes="负责人姓名",allowEmptyValue=true,example="",allowableValues="")
+ String leaderUsername;
+
+ @ApiModelProperty(notes="创建时间",allowEmptyValue=true,example="",allowableValues="")
+ Date ctime;
+
+ @ApiModelProperty(notes="更新时间",allowEmptyValue=true,example="",allowableValues="")
+ Date ltime;
+
+ @ApiModelProperty(notes="产品编号,属于项目组的团队则可为空",allowEmptyValue=true,example="",allowableValues="")
+ String productId;
+
+ @ApiModelProperty(notes="机构编号",allowEmptyValue=true,example="",allowableValues="")
+ String branchId;
+
+ @ApiModelProperty(notes="团队类别0项目1产品",allowEmptyValue=true,example="",allowableValues="")
+ String pgClass;
/**主键**/
public XmProjectGroup(String id) {
@@ -55,7 +77,7 @@ public class XmProjectGroup implements java.io.Serializable {
this.groupName = groupName;
}
/**
- * 项目编号
+ * 项目编号-属于产品线则可为空
**/
public void setProjectId(String projectId) {
this.projectId = projectId;
@@ -72,6 +94,48 @@ public class XmProjectGroup implements java.io.Serializable {
public void setPgTypeName(String pgTypeName) {
this.pgTypeName = pgTypeName;
}
+ /**
+ * 团队负责人
+ **/
+ public void setLeaderUserid(String leaderUserid) {
+ this.leaderUserid = leaderUserid;
+ }
+ /**
+ * 负责人姓名
+ **/
+ public void setLeaderUsername(String leaderUsername) {
+ this.leaderUsername = leaderUsername;
+ }
+ /**
+ * 创建时间
+ **/
+ public void setCtime(Date ctime) {
+ this.ctime = ctime;
+ }
+ /**
+ * 更新时间
+ **/
+ public void setLtime(Date ltime) {
+ this.ltime = ltime;
+ }
+ /**
+ * 产品编号,属于项目组的团队则可为空
+ **/
+ public void setProductId(String productId) {
+ this.productId = productId;
+ }
+ /**
+ * 机构编号
+ **/
+ public void setBranchId(String branchId) {
+ this.branchId = branchId;
+ }
+ /**
+ * 团队类别0项目1产品
+ **/
+ public void setPgClass(String pgClass) {
+ this.pgClass = pgClass;
+ }
/**
* 主键
@@ -86,7 +150,7 @@ public class XmProjectGroup implements java.io.Serializable {
return this.groupName;
}
/**
- * 项目编号
+ * 项目编号-属于产品线则可为空
**/
public String getProjectId() {
return this.projectId;
@@ -103,5 +167,47 @@ public class XmProjectGroup implements java.io.Serializable {
public String getPgTypeName() {
return this.pgTypeName;
}
+ /**
+ * 团队负责人
+ **/
+ public String getLeaderUserid() {
+ return this.leaderUserid;
+ }
+ /**
+ * 负责人姓名
+ **/
+ public String getLeaderUsername() {
+ return this.leaderUsername;
+ }
+ /**
+ * 创建时间
+ **/
+ public Date getCtime() {
+ return this.ctime;
+ }
+ /**
+ * 更新时间
+ **/
+ public Date getLtime() {
+ return this.ltime;
+ }
+ /**
+ * 产品编号,属于项目组的团队则可为空
+ **/
+ public String getProductId() {
+ return this.productId;
+ }
+ /**
+ * 机构编号
+ **/
+ public String getBranchId() {
+ return this.branchId;
+ }
+ /**
+ * 团队类别0项目1产品
+ **/
+ public String getPgClass() {
+ return this.pgClass;
+ }
}
\ No newline at end of file
diff --git a/xm-core/src/main/java/com/xm/core/entity/XmProjectGroupUser.java b/xm-core/src/main/java/com/xm/core/entity/XmProjectGroupUser.java
index 90838e14..f5cf4bb4 100644
--- a/xm-core/src/main/java/com/xm/core/entity/XmProjectGroupUser.java
+++ b/xm-core/src/main/java/com/xm/core/entity/XmProjectGroupUser.java
@@ -1,15 +1,14 @@
-package com.xm.core.entity;
+package com.xm.core.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-
import java.util.Date;
/**
- * 组织 com.qqkj 顶级模块 xm 大模块 core 小模块
+ * 组织 com 顶级模块 xm 大模块 core 小模块
* 实体 XmProjectGroupUser所有属性名:
* joinTime,id,groupId,userid,username,isHead,outTime,status,bizProcInstId,bizFlowState,projectId;
- * 表 XM.xm_project_group_user xm_project_group_user的所有字段名:
+ * 表 xm_project_group_user xm_project_group_user的所有字段名:
* join_time,id,group_id,userid,username,is_head,out_time,status,biz_proc_inst_id,biz_flow_state,project_id;
* 当前主键(包括多主键):
* id;
diff --git a/xm-core/src/main/java/com/xm/core/entity/XmProjectPhase.java b/xm-core/src/main/java/com/xm/core/entity/XmProjectPhase.java
index 84edb110..61f3ff42 100644
--- a/xm-core/src/main/java/com/xm/core/entity/XmProjectPhase.java
+++ b/xm-core/src/main/java/com/xm/core/entity/XmProjectPhase.java
@@ -8,34 +8,34 @@ import java.math.BigDecimal;
/**
* 组织 com 顶级模块 xm 大模块 core 小模块
* 实体 XmProjectPhase所有属性名:
- * id,phaseName,remark,parentPhaseId,branchId,projectId,beginDate,endDate,phaseBudgetHours,phaseBudgetStaffNu,ctime,phaseBudgetNouserAt,phaseBudgetInnerUserAt,phaseBudgetOutUserAt,projectBaselineId,bizProcInstId,bizFlowState,phaseBudgetWorkload,phaseActWorkload,phaseActInnerUserWorkload,phaseActOutUserWorkload,taskType,planType,seqNo,phaseBudgetInnerUserWorkload,phaseBudgetOutUserWorkload,actNouserAt,actInnerUserAt,phaseBudgetInnerUserPrice,phaseBudgetOutUserPrice,phaseBudgetOutUserCnt,phaseBudgetInnerUserCnt,actRate,phaseStatus,actOutUserAt,taskCnt,finishTaskCnt,iterationCnt,calcTime,taskBudgetWorkload,taskBudgetAt,mngUserid,mngUsername,milestone,pleaf,tagIds,tagNames,ntype,childrenCnt,ltime,isKeyPath,pidPaths,lvl,isTpl;
- * 表 xm_project_phase 项目计划模板的所有字段名:
- * id,phase_name,remark,parent_phase_id,branch_id,project_id,begin_date,end_date,phase_budget_hours,phase_budget_staff_nu,ctime,phase_budget_nouser_at,phase_budget_inner_user_at,phase_budget_out_user_at,project_baseline_id,biz_proc_inst_id,biz_flow_state,phase_budget_workload,phase_act_workload,phase_act_inner_user_workload,phase_act_out_user_workload,task_type,plan_type,seq_no,phase_budget_inner_user_workload,phase_budget_out_user_workload,act_nouser_at,act_inner_user_at,phase_budget_inner_user_price,phase_budget_out_user_price,phase_budget_out_user_cnt,phase_budget_inner_user_cnt,act_rate,phase_status,act_out_user_at,task_cnt,finish_task_cnt,iteration_cnt,calc_time,task_budget_workload,task_budget_at,mng_userid,mng_username,milestone,pleaf,tag_ids,tag_names,ntype,children_cnt,ltime,is_key_path,pid_paths,lvl,is_tpl;
+ * id,phaseName,remark,parentPhaseId,branchId,projectId,beginDate,endDate,phaseBudgetHours,phaseBudgetStaffNu,ctime,phaseBudgetNouserAt,phaseBudgetInnerUserAt,phaseBudgetOutUserAt,projectBaselineId,bizProcInstId,bizFlowState,phaseBudgetWorkload,phaseActWorkload,phaseActInnerUserWorkload,phaseActOutUserWorkload,taskType,planType,seqNo,phaseBudgetInnerUserWorkload,phaseBudgetOutUserWorkload,actNouserAt,actInnerUserAt,phaseBudgetInnerUserPrice,phaseBudgetOutUserPrice,phaseBudgetOutUserCnt,phaseBudgetInnerUserCnt,actRate,phaseStatus,actOutUserAt,taskCnt,finishTaskCnt,iterationCnt,calcTime,taskBudgetWorkload,taskBudgetAt,mngUserid,mngUsername,milestone,pleaf,tagIds,tagNames,ntype,childrenCnt,ltime,isKeyPath,pidPaths,lvl,isTpl,phaseClass,productId;
+ * 表 xm_project_phase 项目阶段模板的所有字段名:
+ * id,phase_name,remark,parent_phase_id,branch_id,project_id,begin_date,end_date,phase_budget_hours,phase_budget_staff_nu,ctime,phase_budget_nouser_at,phase_budget_inner_user_at,phase_budget_out_user_at,project_baseline_id,biz_proc_inst_id,biz_flow_state,phase_budget_workload,phase_act_workload,phase_act_inner_user_workload,phase_act_out_user_workload,task_type,plan_type,seq_no,phase_budget_inner_user_workload,phase_budget_out_user_workload,act_nouser_at,act_inner_user_at,phase_budget_inner_user_price,phase_budget_out_user_price,phase_budget_out_user_cnt,phase_budget_inner_user_cnt,act_rate,phase_status,act_out_user_at,task_cnt,finish_task_cnt,iteration_cnt,calc_time,task_budget_workload,task_budget_at,mng_userid,mng_username,milestone,pleaf,tag_ids,tag_names,ntype,children_cnt,ltime,is_key_path,pid_paths,lvl,is_tpl,phase_class,product_id;
* 当前主键(包括多主键):
* id;
*/
-@ApiModel(description="项目计划模板")
+@ApiModel(description="项目阶段模板")
public class XmProjectPhase implements java.io.Serializable {
private static final long serialVersionUID = 1L;
- @ApiModelProperty(notes="计划主键,主键",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="阶段主键,主键",allowEmptyValue=true,example="",allowableValues="")
String id;
- @ApiModelProperty(notes="计划名称",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="阶段名称",allowEmptyValue=true,example="",allowableValues="")
String phaseName;
@ApiModelProperty(notes="备注",allowEmptyValue=true,example="",allowableValues="")
String remark;
- @ApiModelProperty(notes="上级计划编号",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="上级阶段编号",allowEmptyValue=true,example="",allowableValues="")
String parentPhaseId;
@ApiModelProperty(notes="机构编号",allowEmptyValue=true,example="",allowableValues="")
String branchId;
- @ApiModelProperty(notes="当前项目编号",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="当前项目编号,如果是项目计划,必填项目",allowEmptyValue=true,example="",allowableValues="")
String projectId;
@ApiModelProperty(notes="开始时间",allowEmptyValue=true,example="",allowableValues="")
@@ -44,22 +44,22 @@ public class XmProjectPhase implements java.io.Serializable {
@ApiModelProperty(notes="结束时间",allowEmptyValue=true,example="",allowableValues="")
Date endDate;
- @ApiModelProperty(notes="工时(不包括下一级)-应该大于或等于task中总工时",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="工时(上到下控制大于儿子总数)-应该大于或等于task中总工时",allowEmptyValue=true,example="",allowableValues="")
BigDecimal phaseBudgetHours;
- @ApiModelProperty(notes="投入人员数(不包括下一级)-应该大于或等于task中总人数",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="投入人员数(上到下控制大于儿子总数)-应该大于或等于task中总人数",allowEmptyValue=true,example="",allowableValues="")
Integer phaseBudgetStaffNu;
@ApiModelProperty(notes="创建时间",allowEmptyValue=true,example="",allowableValues="")
Date ctime;
- @ApiModelProperty(notes="非人力成本总预算(不包括下一级)-应该大于或等于task中非人力总成本",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="非人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中非人力总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal phaseBudgetNouserAt;
- @ApiModelProperty(notes="内部人力成本总预算(不包括下一级)-应该大于或等于task中内部人力总成本",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="内部人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中内部人力总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal phaseBudgetInnerUserAt;
- @ApiModelProperty(notes="外购人力成本总预算(不包括下一级)-应该大于或等于task中外购总成本",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="外购人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中外购总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal phaseBudgetOutUserAt;
@ApiModelProperty(notes="项目级基线",allowEmptyValue=true,example="",allowableValues="")
@@ -71,7 +71,7 @@ public class XmProjectPhase implements java.io.Serializable {
@ApiModelProperty(notes="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除",allowEmptyValue=true,example="",allowableValues="")
String bizFlowState;
- @ApiModelProperty(notes="总工作量单位人时-应该大于或者等于task中的预算总工作量",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="总工作量单位人时上到下控制大于儿子总数-应该大于或者等于task中的预算总工作量",allowEmptyValue=true,example="",allowableValues="")
BigDecimal phaseBudgetWorkload;
@ApiModelProperty(notes="已完成工作量单位人时-从task中的实际工作量算出",allowEmptyValue=true,example="",allowableValues="")
@@ -92,10 +92,10 @@ public class XmProjectPhase implements java.io.Serializable {
@ApiModelProperty(notes="顺序号",allowEmptyValue=true,example="",allowableValues="")
String seqNo;
- @ApiModelProperty(notes="内部人力工作量总预算(不包括下一级)-应该大于或等于task中内部人力总成本",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="内部人力工作量总预算(上到下控制大于儿子总数)-应该大于或等于task中内部人力总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal phaseBudgetInnerUserWorkload;
- @ApiModelProperty(notes="外购人力工作量总预算(不包括下一级)-应该大于或等于task中外购总成本",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="外购人力工作量总预算(上到下控制大于儿子总数)-应该大于或等于task中外购总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal phaseBudgetOutUserWorkload;
@ApiModelProperty(notes="实际非人力成本-来自任务表合计",allowEmptyValue=true,example="",allowableValues="")
@@ -119,7 +119,7 @@ public class XmProjectPhase implements java.io.Serializable {
@ApiModelProperty(notes="实际进度0-100",allowEmptyValue=true,example="",allowableValues="")
BigDecimal actRate;
- @ApiModelProperty(notes="计划状态0初始1执行中2完工3关闭4删除中5已删除6暂停",allowEmptyValue=true,example="",allowableValues="")
+ @ApiModelProperty(notes="阶段状态0初始1执行中2完工3关闭4删除中5已删除6暂停",allowEmptyValue=true,example="",allowableValues="")
String phaseStatus;
@ApiModelProperty(notes="实际外部人力成本",allowEmptyValue=true,example="",allowableValues="")
@@ -181,24 +181,30 @@ public class XmProjectPhase implements java.io.Serializable {
@ApiModelProperty(notes="是否为模板",allowEmptyValue=true,example="",allowableValues="")
String isTpl;
+
+ @ApiModelProperty(notes="计划分类0项目1产品",allowEmptyValue=true,example="",allowableValues="")
+ String phaseClass;
+
+ @ApiModelProperty(notes="如果是产品计划,必填产品编号,其它的可不填",allowEmptyValue=true,example="",allowableValues="")
+ String productId;
- /**计划主键**/
+ /**阶段主键**/
public XmProjectPhase(String id) {
this.id = id;
}
- /**项目计划模板**/
+ /**项目阶段模板**/
public XmProjectPhase() {
}
/**
- * 计划主键
+ * 阶段主键
**/
public void setId(String id) {
this.id = id;
}
/**
- * 计划名称
+ * 阶段名称
**/
public void setPhaseName(String phaseName) {
this.phaseName = phaseName;
@@ -210,7 +216,7 @@ public class XmProjectPhase implements java.io.Serializable {
this.remark = remark;
}
/**
- * 上级计划编号
+ * 上级阶段编号
**/
public void setParentPhaseId(String parentPhaseId) {
this.parentPhaseId = parentPhaseId;
@@ -222,7 +228,7 @@ public class XmProjectPhase implements java.io.Serializable {
this.branchId = branchId;
}
/**
- * 当前项目编号
+ * 当前项目编号,如果是项目计划,必填项目
**/
public void setProjectId(String projectId) {
this.projectId = projectId;
@@ -240,13 +246,13 @@ public class XmProjectPhase implements java.io.Serializable {
this.endDate = endDate;
}
/**
- * 工时(不包括下一级)-应该大于或等于task中总工时
+ * 工时(上到下控制大于儿子总数)-应该大于或等于task中总工时
**/
public void setPhaseBudgetHours(BigDecimal phaseBudgetHours) {
this.phaseBudgetHours = phaseBudgetHours;
}
/**
- * 投入人员数(不包括下一级)-应该大于或等于task中总人数
+ * 投入人员数(上到下控制大于儿子总数)-应该大于或等于task中总人数
**/
public void setPhaseBudgetStaffNu(Integer phaseBudgetStaffNu) {
this.phaseBudgetStaffNu = phaseBudgetStaffNu;
@@ -258,19 +264,19 @@ public class XmProjectPhase implements java.io.Serializable {
this.ctime = ctime;
}
/**
- * 非人力成本总预算(不包括下一级)-应该大于或等于task中非人力总成本
+ * 非人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中非人力总成本
**/
public void setPhaseBudgetNouserAt(BigDecimal phaseBudgetNouserAt) {
this.phaseBudgetNouserAt = phaseBudgetNouserAt;
}
/**
- * 内部人力成本总预算(不包括下一级)-应该大于或等于task中内部人力总成本
+ * 内部人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中内部人力总成本
**/
public void setPhaseBudgetInnerUserAt(BigDecimal phaseBudgetInnerUserAt) {
this.phaseBudgetInnerUserAt = phaseBudgetInnerUserAt;
}
/**
- * 外购人力成本总预算(不包括下一级)-应该大于或等于task中外购总成本
+ * 外购人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中外购总成本
**/
public void setPhaseBudgetOutUserAt(BigDecimal phaseBudgetOutUserAt) {
this.phaseBudgetOutUserAt = phaseBudgetOutUserAt;
@@ -294,7 +300,7 @@ public class XmProjectPhase implements java.io.Serializable {
this.bizFlowState = bizFlowState;
}
/**
- * 总工作量单位人时-应该大于或者等于task中的预算总工作量
+ * 总工作量单位人时上到下控制大于儿子总数-应该大于或者等于task中的预算总工作量
**/
public void setPhaseBudgetWorkload(BigDecimal phaseBudgetWorkload) {
this.phaseBudgetWorkload = phaseBudgetWorkload;
@@ -336,13 +342,13 @@ public class XmProjectPhase implements java.io.Serializable {
this.seqNo = seqNo;
}
/**
- * 内部人力工作量总预算(不包括下一级)-应该大于或等于task中内部人力总成本
+ * 内部人力工作量总预算(上到下控制大于儿子总数)-应该大于或等于task中内部人力总成本
**/
public void setPhaseBudgetInnerUserWorkload(BigDecimal phaseBudgetInnerUserWorkload) {
this.phaseBudgetInnerUserWorkload = phaseBudgetInnerUserWorkload;
}
/**
- * 外购人力工作量总预算(不包括下一级)-应该大于或等于task中外购总成本
+ * 外购人力工作量总预算(上到下控制大于儿子总数)-应该大于或等于task中外购总成本
**/
public void setPhaseBudgetOutUserWorkload(BigDecimal phaseBudgetOutUserWorkload) {
this.phaseBudgetOutUserWorkload = phaseBudgetOutUserWorkload;
@@ -390,7 +396,7 @@ public class XmProjectPhase implements java.io.Serializable {
this.actRate = actRate;
}
/**
- * 计划状态0初始1执行中2完工3关闭4删除中5已删除6暂停
+ * 阶段状态0初始1执行中2完工3关闭4删除中5已删除6暂停
**/
public void setPhaseStatus(String phaseStatus) {
this.phaseStatus = phaseStatus;
@@ -515,15 +521,27 @@ public class XmProjectPhase implements java.io.Serializable {
public void setIsTpl(String isTpl) {
this.isTpl = isTpl;
}
+ /**
+ * 计划分类0项目1产品
+ **/
+ public void setPhaseClass(String phaseClass) {
+ this.phaseClass = phaseClass;
+ }
+ /**
+ * 如果是产品计划,必填产品编号,其它的可不填
+ **/
+ public void setProductId(String productId) {
+ this.productId = productId;
+ }
/**
- * 计划主键
+ * 阶段主键
**/
public String getId() {
return this.id;
}
/**
- * 计划名称
+ * 阶段名称
**/
public String getPhaseName() {
return this.phaseName;
@@ -535,7 +553,7 @@ public class XmProjectPhase implements java.io.Serializable {
return this.remark;
}
/**
- * 上级计划编号
+ * 上级阶段编号
**/
public String getParentPhaseId() {
return this.parentPhaseId;
@@ -547,7 +565,7 @@ public class XmProjectPhase implements java.io.Serializable {
return this.branchId;
}
/**
- * 当前项目编号
+ * 当前项目编号,如果是项目计划,必填项目
**/
public String getProjectId() {
return this.projectId;
@@ -565,13 +583,13 @@ public class XmProjectPhase implements java.io.Serializable {
return this.endDate;
}
/**
- * 工时(不包括下一级)-应该大于或等于task中总工时
+ * 工时(上到下控制大于儿子总数)-应该大于或等于task中总工时
**/
public BigDecimal getPhaseBudgetHours() {
return this.phaseBudgetHours;
}
/**
- * 投入人员数(不包括下一级)-应该大于或等于task中总人数
+ * 投入人员数(上到下控制大于儿子总数)-应该大于或等于task中总人数
**/
public Integer getPhaseBudgetStaffNu() {
return this.phaseBudgetStaffNu;
@@ -583,19 +601,19 @@ public class XmProjectPhase implements java.io.Serializable {
return this.ctime;
}
/**
- * 非人力成本总预算(不包括下一级)-应该大于或等于task中非人力总成本
+ * 非人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中非人力总成本
**/
public BigDecimal getPhaseBudgetNouserAt() {
return this.phaseBudgetNouserAt;
}
/**
- * 内部人力成本总预算(不包括下一级)-应该大于或等于task中内部人力总成本
+ * 内部人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中内部人力总成本
**/
public BigDecimal getPhaseBudgetInnerUserAt() {
return this.phaseBudgetInnerUserAt;
}
/**
- * 外购人力成本总预算(不包括下一级)-应该大于或等于task中外购总成本
+ * 外购人力成本总预算(上到下控制大于儿子总数)-应该大于或等于task中外购总成本
**/
public BigDecimal getPhaseBudgetOutUserAt() {
return this.phaseBudgetOutUserAt;
@@ -619,7 +637,7 @@ public class XmProjectPhase implements java.io.Serializable {
return this.bizFlowState;
}
/**
- * 总工作量单位人时-应该大于或者等于task中的预算总工作量
+ * 总工作量单位人时上到下控制大于儿子总数-应该大于或者等于task中的预算总工作量
**/
public BigDecimal getPhaseBudgetWorkload() {
return this.phaseBudgetWorkload;
@@ -661,13 +679,13 @@ public class XmProjectPhase implements java.io.Serializable {
return this.seqNo;
}
/**
- * 内部人力工作量总预算(不包括下一级)-应该大于或等于task中内部人力总成本
+ * 内部人力工作量总预算(上到下控制大于儿子总数)-应该大于或等于task中内部人力总成本
**/
public BigDecimal getPhaseBudgetInnerUserWorkload() {
return this.phaseBudgetInnerUserWorkload;
}
/**
- * 外购人力工作量总预算(不包括下一级)-应该大于或等于task中外购总成本
+ * 外购人力工作量总预算(上到下控制大于儿子总数)-应该大于或等于task中外购总成本
**/
public BigDecimal getPhaseBudgetOutUserWorkload() {
return this.phaseBudgetOutUserWorkload;
@@ -715,7 +733,7 @@ public class XmProjectPhase implements java.io.Serializable {
return this.actRate;
}
/**
- * 计划状态0初始1执行中2完工3关闭4删除中5已删除6暂停
+ * 阶段状态0初始1执行中2完工3关闭4删除中5已删除6暂停
**/
public String getPhaseStatus() {
return this.phaseStatus;
@@ -840,5 +858,17 @@ public class XmProjectPhase implements java.io.Serializable {
public String getIsTpl() {
return this.isTpl;
}
+ /**
+ * 计划分类0项目1产品
+ **/
+ public String getPhaseClass() {
+ return this.phaseClass;
+ }
+ /**
+ * 如果是产品计划,必填产品编号,其它的可不填
+ **/
+ public String getProductId() {
+ return this.productId;
+ }
}
\ No newline at end of file
diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
index c29d79a2..86f9d4f5 100644
--- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
+++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
@@ -146,7 +146,7 @@
insert into xm_menu(
) values (
- #{menuId},#{menuName},#{pmenuId},#{productId},#{remark},#{status},#{online},#{demandUrl},#{codeUrl},#{designUrl},#{docUrl},#{helpUrl},#{operDocUrl},#{seqNo},#{mmUserid},#{mmUsername},#{ctime},#{ntype},#{sinceVersion},#{childrenCnt},#{ltime},#{tagIds},#{tagNames},#{pidPaths},#{lvl},#{isTpl}
+ #{menuId},#{menuName},#{pmenuId},#{productId},#{remark},#{status},#{online},#{demandUrl},#{codeUrl},#{designUrl},#{docUrl},#{helpUrl},#{operDocUrl},#{seqNo},#{mmUserid},#{mmUsername},#{ctime},#{ntype},#{sinceVersion},#{childrenCnt},#{ltime},#{tagIds},#{tagNames},#{pidPaths},#{lvl},#{isTpl},#{budgetHours},#{budgetStaffNu},#{budgetWorkload},#{budgetAmount},#{phaseId}
)
@@ -209,7 +209,7 @@
- menu_id,menu_name,pmenu_id,product_id,remark,status,online,demand_url,code_url,design_url,doc_url,help_url,oper_doc_url,seq_no,mm_userid,mm_username,ctime,ntype,since_version,children_cnt,ltime,tag_ids,tag_names,pid_paths,lvl,is_tpl
+ menu_id,menu_name,pmenu_id,product_id,remark,status,online,demand_url,code_url,design_url,doc_url,help_url,oper_doc_url,seq_no,mm_userid,mm_username,ctime,ntype,since_version,children_cnt,ltime,tag_ids,tag_names,pid_paths,lvl,is_tpl,budget_hours,budget_staff_nu,budget_workload,budget_amount,phase_id
@@ -240,6 +240,11 @@
and res.pid_paths = #{pidPaths}
and res.lvl = #{lvl}
and res.is_tpl = #{isTpl}
+ and res.budget_hours = #{budgetHours}
+ and res.budget_staff_nu = #{budgetStaffNu}
+ and res.budget_workload = #{budgetWorkload}
+ and res.budget_amount = #{budgetAmount}
+ and res.phase_id = #{phaseId}
@@ -267,7 +272,12 @@
tag_names = #{tagNames},
pid_paths = #{pidPaths},
lvl = #{lvl},
- is_tpl = #{isTpl}
+ is_tpl = #{isTpl},
+ budget_hours = #{budgetHours},
+ budget_staff_nu = #{budgetStaffNu},
+ budget_workload = #{budgetWorkload},
+ budget_amount = #{budgetAmount},
+ phase_id = #{phaseId}
menu_name = #{menuName},
@@ -295,6 +305,11 @@
pid_paths = #{pidPaths},
lvl = #{lvl},
is_tpl = #{isTpl},
+ budget_hours = #{budgetHours},
+ budget_staff_nu = #{budgetStaffNu},
+ budget_workload = #{budgetWorkload},
+ budget_amount = #{budgetAmount},
+ phase_id = #{phaseId},
@@ -322,6 +337,11 @@
tag_names = #{item.tagNames},
pid_paths = #{item.pidPaths},
lvl = #{item.lvl},
- is_tpl = #{item.isTpl}
+ is_tpl = #{item.isTpl},
+ budget_hours = #{item.budgetHours},
+ budget_staff_nu = #{item.budgetStaffNu},
+ budget_workload = #{item.budgetWorkload},
+ budget_amount = #{item.budgetAmount},
+ phase_id = #{item.phaseId}
\ No newline at end of file
diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProductMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProductMapper.xml
index fabfe71f..55c63304 100644
--- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProductMapper.xml
+++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProductMapper.xml
@@ -6,25 +6,46 @@
+
+ and (res.id) in
+
+ ( #{item})
+
+
+ and res.product_name like #{key}
+
+ and exists( select 1 from xm_product_project_link ppl
+ where ppl.project_id=#{projectId} and ppl.product_id=res.id
+ )
+
+
+ and ( exists ( select 1 from xm_project_group_user gu inner join xm_task t on gu.project_id=t.project_id and t.product_id=res.id where gu.userid=#{compete} and t.product_id=res.id )
+ or res.pm_userid=#{compete}
+ or exists ( select 1 from xm_menu m where m.mm_userid=#{compete} and m.product_id=res.id)
+ )
+
+ and ctime between #{ctimeStart} and #{ctimeEnd}
+
+
+
@@ -47,26 +69,8 @@
@@ -103,7 +107,7 @@
insert into xm_product(
) values (
- #{id},#{productName},#{branchId},#{remark},#{version},#{pmUserid},#{pmUsername},#{ctime},#{deptid},#{pstatus},#{startTime},#{endTime},#{deptName},#{admUserid},#{admUsername},#{assistantUserid},#{assistantUsername},#{bizProcInstId},#{bizFlowState},#{isTpl},#{baselineId},#{baseTime},#{code}
+ #{id},#{productName},#{branchId},#{remark},#{version},#{pmUserid},#{pmUsername},#{ctime},#{deptid},#{pstatus},#{startTime},#{endTime},#{deptName},#{admUserid},#{admUsername},#{assistantUserid},#{assistantUsername},#{bizProcInstId},#{bizFlowState},#{isTpl},#{baselineId},#{baseTime},#{code},#{pbudgetWorkload},#{pbudgetAmount},#{pmenuBudgetWorkload},#{pmenuBudgetAmount}
)
@@ -166,7 +170,7 @@
- id,product_name,branch_id,remark,version,pm_userid,pm_username,ctime,deptid,pstatus,start_time,end_time,dept_name,adm_userid,adm_username,assistant_userid,assistant_username,biz_proc_inst_id,biz_flow_state,is_tpl,baseline_id,base_time,code
+ id,product_name,branch_id,remark,version,pm_userid,pm_username,ctime,deptid,pstatus,start_time,end_time,dept_name,adm_userid,adm_username,assistant_userid,assistant_username,biz_proc_inst_id,biz_flow_state,is_tpl,baseline_id,base_time,code,pbudget_workload,pbudget_amount,pmenu_budget_workload,pmenu_budget_amount
@@ -194,6 +198,10 @@
and res.baseline_id = #{baselineId}
and date_format(res.base_time,'%Y-%m-%d') = date_format(#{baseTime},'%Y-%m-%d')
and res.code = #{code}
+ and res.pbudget_workload = #{pbudgetWorkload}
+ and res.pbudget_amount = #{pbudgetAmount}
+ and res.pmenu_budget_workload = #{pmenuBudgetWorkload}
+ and res.pmenu_budget_amount = #{pmenuBudgetAmount}
@@ -218,7 +226,11 @@
is_tpl = #{isTpl},
baseline_id = #{baselineId},
base_time = #{baseTime},
- code = #{code}
+ code = #{code},
+ pbudget_workload = #{pbudgetWorkload},
+ pbudget_amount = #{pbudgetAmount},
+ pmenu_budget_workload = #{pmenuBudgetWorkload},
+ pmenu_budget_amount = #{pmenuBudgetAmount}
product_name = #{productName},
@@ -243,6 +255,10 @@
baseline_id = #{baselineId},
base_time = #{baseTime},
code = #{code},
+ pbudget_workload = #{pbudgetWorkload},
+ pbudget_amount = #{pbudgetAmount},
+ pmenu_budget_workload = #{pmenuBudgetWorkload},
+ pmenu_budget_amount = #{pmenuBudgetAmount},
@@ -267,6 +283,10 @@
is_tpl = #{item.isTpl},
baseline_id = #{item.baselineId},
base_time = #{item.baseTime},
- code = #{item.code}
+ code = #{item.code},
+ pbudget_workload = #{item.pbudgetWorkload},
+ pbudget_amount = #{item.pbudgetAmount},
+ pmenu_budget_workload = #{item.pmenuBudgetWorkload},
+ pmenu_budget_amount = #{item.pmenuBudgetAmount}
\ No newline at end of file
diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupMapper.xml
index ad9166ef..2d2d369f 100644
--- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupMapper.xml
+++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupMapper.xml
@@ -3,14 +3,21 @@
-
-
+
+
+
+ and (res.id) in
+
+ ( #{item})
+
+
+
+
delete from xm_project_group where project_id = #{projectId}
-
-
-
+
+
@@ -18,15 +25,9 @@
@@ -59,11 +60,11 @@
-
+
insert into xm_project_group(
) values (
- #{id},#{groupName},#{projectId},#{pgTypeId},#{pgTypeName}
+ #{id},#{groupName},#{projectId},#{pgTypeId},#{pgTypeName},#{leaderUserid},#{leaderUsername},#{ctime},#{ltime},#{productId},#{branchId},#{pgClass}
)
@@ -77,13 +78,13 @@
- delete from xm_project_group
+ delete from xm_project_group
where id = #{id}
- update xm_project_group
+ update xm_project_group
@@ -92,7 +93,7 @@
- update xm_project_group
+ update xm_project_group
@@ -107,7 +108,7 @@
- update xm_project_group
+ update xm_project_group
set
where id = #{item.id}
@@ -115,19 +116,20 @@
- delete from xm_project_group
- where id in
-
- #{item.id }
-
+ delete from xm_project_group
+ where
+ (id) in
+
+ ( #{item.id} )
+
- id,group_name,project_id,pg_type_id,pg_type_name
+ id,group_name,project_id,pg_type_id,pg_type_name,leader_userid,leader_username,ctime,ltime,product_id,branch_id,pg_class
-
+
and res.id = #{id}
@@ -135,25 +137,53 @@
and res.project_id = #{projectId}
and res.pg_type_id = #{pgTypeId}
and res.pg_type_name = #{pgTypeName}
+ and res.leader_userid = #{leaderUserid}
+ and res.leader_username = #{leaderUsername}
+ and date_format(res.ctime,'%Y-%m-%d') = date_format(#{ctime},'%Y-%m-%d')
+ and date_format(res.ltime,'%Y-%m-%d') = date_format(#{ltime},'%Y-%m-%d')
+ and res.product_id = #{productId}
+ and res.branch_id = #{branchId}
+ and res.pg_class = #{pgClass}
group_name = #{groupName},
project_id = #{projectId},
pg_type_id = #{pgTypeId},
- pg_type_name = #{pgTypeName}
+ pg_type_name = #{pgTypeName},
+ leader_userid = #{leaderUserid},
+ leader_username = #{leaderUsername},
+ ctime = #{ctime},
+ ltime = #{ltime},
+ product_id = #{productId},
+ branch_id = #{branchId},
+ pg_class = #{pgClass}
group_name = #{groupName},
project_id = #{projectId},
pg_type_id = #{pgTypeId},
pg_type_name = #{pgTypeName},
+ leader_userid = #{leaderUserid},
+ leader_username = #{leaderUsername},
+ ctime = #{ctime},
+ ltime = #{ltime},
+ product_id = #{productId},
+ branch_id = #{branchId},
+ pg_class = #{pgClass},
group_name = #{item.groupName},
project_id = #{item.projectId},
pg_type_id = #{item.pgTypeId},
- pg_type_name = #{item.pgTypeName}
+ pg_type_name = #{item.pgTypeName},
+ leader_userid = #{item.leaderUserid},
+ leader_username = #{item.leaderUsername},
+ ctime = #{item.ctime},
+ ltime = #{item.ltime},
+ product_id = #{item.productId},
+ branch_id = #{item.branchId},
+ pg_class = #{item.pgClass}
\ No newline at end of file
diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml
index 2c420bb0..ed86209e 100644
--- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml
+++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml
@@ -3,8 +3,16 @@
-
-
+
+
+
+ and (res.id) in
+
+ ( #{item})
+
+
+
+
delete from xm_project_group_user where group_id = #{groupId}
@@ -16,15 +24,16 @@
order by is_head desc
-
-
+
+
-
+
+
+
@@ -32,15 +41,9 @@
@@ -73,7 +76,7 @@
-
+
insert into xm_project_group_user(
) values (
@@ -91,13 +94,13 @@
- delete from xm_project_group_user
+ delete from xm_project_group_user
where id = #{id}
- update xm_project_group_user
+ update xm_project_group_user
@@ -106,7 +109,7 @@
- update xm_project_group_user
+ update xm_project_group_user
@@ -121,7 +124,7 @@
- update xm_project_group_user
+ update xm_project_group_user
set
where id = #{item.id}
@@ -129,11 +132,12 @@
- delete from xm_project_group_user
- where id in
-
- #{item.id }
-
+ delete from xm_project_group_user
+ where
+ (id) in
+
+ ( #{item.id} )
+
@@ -141,16 +145,16 @@
join_time,id,group_id,userid,username,is_head,out_time,status,biz_proc_inst_id,biz_flow_state,project_id
-
+
- and TO_CHAR(res.join_time,'YYYY-MM-DD') = TO_CHAR(#{joinTime},'YYYY-MM-DD')
+ and date_format(res.join_time,'%Y-%m-%d') = date_format(#{joinTime},'%Y-%m-%d')
and res.id = #{id}
and res.group_id = #{groupId}
and res.userid = #{userid}
and res.username = #{username}
and res.is_head = #{isHead}
- and TO_CHAR(res.out_time,'YYYY-MM-DD') = TO_CHAR(#{outTime},'YYYY-MM-DD')
+ and date_format(res.out_time,'%Y-%m-%d') = date_format(#{outTime},'%Y-%m-%d')
and res.status = #{status}
and res.biz_proc_inst_id = #{bizProcInstId}
and res.biz_flow_state = #{bizFlowState}
diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml
index 3092f9c8..5481f86d 100644
--- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml
+++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml
@@ -223,7 +223,7 @@
insert into xm_project_phase(
) values (
- #{id},#{phaseName},#{remark},#{parentPhaseId},#{branchId},#{projectId},#{beginDate},#{endDate},#{phaseBudgetHours},#{phaseBudgetStaffNu},#{ctime},#{phaseBudgetNouserAt},#{phaseBudgetInnerUserAt},#{phaseBudgetOutUserAt},#{projectBaselineId},#{bizProcInstId},#{bizFlowState},#{phaseBudgetWorkload},#{phaseActWorkload},#{phaseActInnerUserWorkload},#{phaseActOutUserWorkload},#{taskType},#{planType},#{seqNo},#{phaseBudgetInnerUserWorkload},#{phaseBudgetOutUserWorkload},#{actNouserAt},#{actInnerUserAt},#{phaseBudgetInnerUserPrice},#{phaseBudgetOutUserPrice},#{phaseBudgetOutUserCnt},#{phaseBudgetInnerUserCnt},#{actRate},#{phaseStatus},#{actOutUserAt},#{taskCnt},#{finishTaskCnt},#{iterationCnt},#{calcTime},#{taskBudgetWorkload},#{taskBudgetAt},#{mngUserid},#{mngUsername},#{milestone},#{pleaf},#{tagIds},#{tagNames},#{ntype},#{childrenCnt},#{ltime},#{isKeyPath},#{pidPaths},#{lvl},#{isTpl}
+ #{id},#{phaseName},#{remark},#{parentPhaseId},#{branchId},#{projectId},#{beginDate},#{endDate},#{phaseBudgetHours},#{phaseBudgetStaffNu},#{ctime},#{phaseBudgetNouserAt},#{phaseBudgetInnerUserAt},#{phaseBudgetOutUserAt},#{projectBaselineId},#{bizProcInstId},#{bizFlowState},#{phaseBudgetWorkload},#{phaseActWorkload},#{phaseActInnerUserWorkload},#{phaseActOutUserWorkload},#{taskType},#{planType},#{seqNo},#{phaseBudgetInnerUserWorkload},#{phaseBudgetOutUserWorkload},#{actNouserAt},#{actInnerUserAt},#{phaseBudgetInnerUserPrice},#{phaseBudgetOutUserPrice},#{phaseBudgetOutUserCnt},#{phaseBudgetInnerUserCnt},#{actRate},#{phaseStatus},#{actOutUserAt},#{taskCnt},#{finishTaskCnt},#{iterationCnt},#{calcTime},#{taskBudgetWorkload},#{taskBudgetAt},#{mngUserid},#{mngUsername},#{milestone},#{pleaf},#{tagIds},#{tagNames},#{ntype},#{childrenCnt},#{ltime},#{isKeyPath},#{pidPaths},#{lvl},#{isTpl},#{phaseClass},#{productId}
)
@@ -286,7 +286,7 @@
- id,phase_name,remark,parent_phase_id,branch_id,project_id,begin_date,end_date,phase_budget_hours,phase_budget_staff_nu,ctime,phase_budget_nouser_at,phase_budget_inner_user_at,phase_budget_out_user_at,project_baseline_id,biz_proc_inst_id,biz_flow_state,phase_budget_workload,phase_act_workload,phase_act_inner_user_workload,phase_act_out_user_workload,task_type,plan_type,seq_no,phase_budget_inner_user_workload,phase_budget_out_user_workload,act_nouser_at,act_inner_user_at,phase_budget_inner_user_price,phase_budget_out_user_price,phase_budget_out_user_cnt,phase_budget_inner_user_cnt,act_rate,phase_status,act_out_user_at,task_cnt,finish_task_cnt,iteration_cnt,calc_time,task_budget_workload,task_budget_at,mng_userid,mng_username,milestone,pleaf,tag_ids,tag_names,ntype,children_cnt,ltime,is_key_path,pid_paths,lvl,is_tpl
+ id,phase_name,remark,parent_phase_id,branch_id,project_id,begin_date,end_date,phase_budget_hours,phase_budget_staff_nu,ctime,phase_budget_nouser_at,phase_budget_inner_user_at,phase_budget_out_user_at,project_baseline_id,biz_proc_inst_id,biz_flow_state,phase_budget_workload,phase_act_workload,phase_act_inner_user_workload,phase_act_out_user_workload,task_type,plan_type,seq_no,phase_budget_inner_user_workload,phase_budget_out_user_workload,act_nouser_at,act_inner_user_at,phase_budget_inner_user_price,phase_budget_out_user_price,phase_budget_out_user_cnt,phase_budget_inner_user_cnt,act_rate,phase_status,act_out_user_at,task_cnt,finish_task_cnt,iteration_cnt,calc_time,task_budget_workload,task_budget_at,mng_userid,mng_username,milestone,pleaf,tag_ids,tag_names,ntype,children_cnt,ltime,is_key_path,pid_paths,lvl,is_tpl,phase_class,product_id
@@ -345,6 +345,8 @@
and res.pid_paths = #{pidPaths}
and res.lvl = #{lvl}
and res.is_tpl = #{isTpl}
+ and res.phase_class = #{phaseClass}
+ and res.product_id = #{productId}
@@ -400,7 +402,9 @@
is_key_path = #{isKeyPath},
pid_paths = #{pidPaths},
lvl = #{lvl},
- is_tpl = #{isTpl}
+ is_tpl = #{isTpl},
+ phase_class = #{phaseClass},
+ product_id = #{productId}
phase_name = #{phaseName},
@@ -456,6 +460,8 @@
pid_paths = #{pidPaths},
lvl = #{lvl},
is_tpl = #{isTpl},
+ phase_class = #{phaseClass},
+ product_id = #{productId},
@@ -511,6 +517,8 @@
is_key_path = #{item.isKeyPath},
pid_paths = #{item.pidPaths},
lvl = #{item.lvl},
- is_tpl = #{item.isTpl}
+ is_tpl = #{item.isTpl},
+ phase_class = #{item.phaseClass},
+ product_id = #{item.productId}
\ No newline at end of file