Browse Source

优化任务的责任人

master
陈裕财 5 years ago
parent
commit
bf0ac05a8c
  1. 51
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java
  2. 41
      xm-core/src/main/java/com/xm/core/entity/XmProjectPhase.java
  3. 41
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml

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

@ -114,7 +114,56 @@ public class XmProjectPhaseController {
}
@HasQx(value = "xm_core_xmProjectPhase_setPhaseMngUser",name = "设置阶段计划负责人",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/setPhaseMngUser",method=RequestMethod.POST)
public Map<String,Object> setPhaseMngUser(@RequestBody XmProjectPhase xmProjectPhase) {
Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功设置");
try{
if(StringUtils.isEmpty(xmProjectPhase.getId())) {
tips.setFailureMsg("阶段计划编号不能为空");
m.put("tips", tips);
return m;
}else if(StringUtils.isEmpty(xmProjectPhase.getId())) {
tips.setFailureMsg("阶段计划编号不能为空");
m.put("tips", tips);
return m;
}else{
XmProjectPhase xmProjectPhaseQuery = new XmProjectPhase(xmProjectPhase.getId());
if(xmProjectPhaseService.countByWhere(xmProjectPhaseQuery)>0){
tips.setFailureMsg("编号重复,请修改编号再提交");
m.put("tips", tips);
return m;
}
}
BigDecimal phaseBudgetCost=BigDecimal.ZERO;
String projectId=null;
BigDecimal zero=BigDecimal.ZERO;
projectId=xmProjectPhase.getProjectId();
BigDecimal phaseBudgetInnerUserAt=NumberUtil.getBigDecimal(xmProjectPhase.getPhaseBudgetInnerUserAt(),zero);
BigDecimal phaseBudgetOutUserAt=NumberUtil.getBigDecimal(xmProjectPhase.getPhaseBudgetOutUserAt(),zero);
BigDecimal phaseBudgetNouserAt=NumberUtil.getBigDecimal(xmProjectPhase.getPhaseBudgetNouserAt(),zero);
phaseBudgetCost=phaseBudgetCost.add(phaseBudgetInnerUserAt).add(phaseBudgetOutUserAt).add(phaseBudgetNouserAt);
List<String> excludePhaseIds=new ArrayList<>();
excludePhaseIds.add(xmProjectPhase.getId());
Tips judgetTips=xmProjectPhaseService.judgetBudget(projectId, phaseBudgetCost,phaseBudgetInnerUserAt,phaseBudgetOutUserAt,phaseBudgetNouserAt,excludePhaseIds);
if(judgetTips.isOk()) {
xmProjectPhaseService.insert(xmProjectPhase);
xmRecordService.addXmPhaseRecord(projectId, xmProjectPhase.getId(), "项目-阶段计划-新增计划", "新增阶段计划"+xmProjectPhase.getPhaseName(),JSON.toJSONString(xmProjectPhase),null);
m.put("data",xmProjectPhase);
}else {
tips=judgetTips;
}
}catch (BizException e) {
tips=e.getTips();
logger.error("",e);
}catch (Exception e) {
tips.setFailureMsg(e.getMessage());
logger.error("",e);
}
m.put("tips", tips);
return m;
}
@ApiOperation( value = "新增一条xm_project_phase信息",notes="addXmProjectPhase,主键如果为空,后台自动生成")
@ApiResponses({

41
xm-core/src/main/java/com/xm/core/entity/XmProjectPhase.java

@ -1,17 +1,16 @@
package com.xm.core.entity;
package com.xm.core.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import java.math.BigDecimal;
/**
* 组织 com.qqkj 顶级模块 xm 大模块 core 小模块 <br>
* 组织 com 顶级模块 xm 大模块 core 小模块 <br>
* 实体 XmProjectPhase所有属性名: <br>
* 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;<br>
* 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;<br>
* XM.xm_project_phase 项目阶段模板的所有字段名: <br>
* 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;<br>
* 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;<br>
* 当前主键(包括多主键):<br>
* id;<br>
*/
@ -144,6 +143,12 @@ public class XmProjectPhase implements java.io.Serializable {
@ApiModelProperty(notes="从任务汇总的预算金额",allowEmptyValue=true,example="",allowableValues="")
BigDecimal taskBudgetAt;
@ApiModelProperty(notes="管理者编号",allowEmptyValue=true,example="",allowableValues="")
String mngUserid;
@ApiModelProperty(notes="管理者姓名",allowEmptyValue=true,example="",allowableValues="")
String mngUsername;
/**阶段主键**/
public XmProjectPhase(String id) {
this.id = id;
@ -399,6 +404,18 @@ public class XmProjectPhase implements java.io.Serializable {
public void setTaskBudgetAt(BigDecimal taskBudgetAt) {
this.taskBudgetAt = taskBudgetAt;
}
/**
* 管理者编号
**/
public void setMngUserid(String mngUserid) {
this.mngUserid = mngUserid;
}
/**
* 管理者姓名
**/
public void setMngUsername(String mngUsername) {
this.mngUsername = mngUsername;
}
/**
* 阶段主键
@ -646,5 +663,17 @@ public class XmProjectPhase implements java.io.Serializable {
public BigDecimal getTaskBudgetAt() {
return this.taskBudgetAt;
}
/**
* 管理者编号
**/
public String getMngUserid() {
return this.mngUserid;
}
/**
* 管理者姓名
**/
public String getMngUsername() {
return this.mngUsername;
}
}

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

@ -99,19 +99,19 @@
</where>
</select>
<!-- 新增一条记录 主键id,-->
<insert id="insert" parameterType="com.xm.core.entity.XmProjectPhase" useGeneratedKeys="false" keyProperty="id">
<insert id="insert" parameterType="com.xm.core.entity.XmProjectPhase" useGeneratedKeys="false" keyProperty="id">
insert into XM.xm_project_phase(
<include refid="columns"/>
) 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}
#{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}
)
</insert>
<!-- 按条件删除若干条记录-->
<delete id="deleteByWhere" parameterType="com.xm.core.entity.XmProjectPhase">
delete from XM.xm_project_phase res
delete from XM.xm_project_phase
<where>
<include refid="where"/>
1=2
</where>
</delete>
@ -156,16 +156,19 @@
<!-- 批量删除 -->
<delete id="batchDelete" parameterType="List">
delete from XM.xm_project_phase
where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" >
#{item.id }
</foreach>
where
(id)
in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" >
( #{item.id}
)
</foreach>
</delete>
<!--sql片段 列-->
<sql id="columns">
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
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
</sql>
<!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS-->
@ -176,11 +179,11 @@
<if test="parentPhaseId != null and parentPhaseId != ''"> and res.parent_phase_id = #{parentPhaseId} </if>
<if test="branchId != null and branchId != ''"> and res.branch_id = #{branchId} </if>
<if test="projectId != null and projectId != ''"> and res.project_id = #{projectId} </if>
<if test="beginDate != null"> and TO_CHAR(res.begin_date,'YYYY-MM-DD') = TO_CHAR(#{beginDate},'YYYY-MM-DD') </if>
<if test="endDate != null"> and TO_CHAR(res.end_date,'YYYY-MM-DD') = TO_CHAR(#{endDate},'YYYY-MM-DD') </if>
<if test="beginDate != null"> and date_format(res.begin_date,'%Y-%m-%d') = date_format(#{beginDate},'%Y-%m-%d') </if>
<if test="endDate != null"> and date_format(res.end_date,'%Y-%m-%d') = date_format(#{endDate},'%Y-%m-%d') </if>
<if test="phaseBudgetHours != null and phaseBudgetHours != ''"> and res.phase_budget_hours = #{phaseBudgetHours} </if>
<if test="phaseBudgetStaffNu != null and phaseBudgetStaffNu != ''"> and res.phase_budget_staff_nu = #{phaseBudgetStaffNu} </if>
<if test="ctime != null"> and TO_CHAR(res.ctime,'YYYY-MM-DD') = TO_CHAR(#{ctime},'YYYY-MM-DD') </if>
<if test="ctime != null"> and date_format(res.ctime,'%Y-%m-%d') = date_format(#{ctime},'%Y-%m-%d') </if>
<if test="phaseBudgetNouserAt != null and phaseBudgetNouserAt != ''"> and res.phase_budget_nouser_at = #{phaseBudgetNouserAt} </if>
<if test="phaseBudgetInnerUserAt != null and phaseBudgetInnerUserAt != ''"> and res.phase_budget_inner_user_at = #{phaseBudgetInnerUserAt} </if>
<if test="phaseBudgetOutUserAt != null and phaseBudgetOutUserAt != ''"> and res.phase_budget_out_user_at = #{phaseBudgetOutUserAt} </if>
@ -208,9 +211,11 @@
<if test="taskCnt != null and taskCnt != ''"> and res.task_cnt = #{taskCnt} </if>
<if test="finishTaskCnt != null and finishTaskCnt != ''"> and res.finish_task_cnt = #{finishTaskCnt} </if>
<if test="iterationCnt != null and iterationCnt != ''"> and res.iteration_cnt = #{iterationCnt} </if>
<if test="calcTime != null"> and TO_CHAR(res.calc_time,'YYYY-MM-DD') = TO_CHAR(#{calcTime},'YYYY-MM-DD') </if>
<if test="calcTime != null"> and date_format(res.calc_time,'%Y-%m-%d') = date_format(#{calcTime},'%Y-%m-%d') </if>
<if test="taskBudgetWorkload != null and taskBudgetWorkload != ''"> and res.task_budget_workload = #{taskBudgetWorkload} </if>
<if test="taskBudgetAt != null and taskBudgetAt != ''"> and res.task_budget_at = #{taskBudgetAt} </if>
<if test="mngUserid != null and mngUserid != ''"> and res.mng_userid = #{mngUserid} </if>
<if test="mngUsername != null and mngUsername != ''"> and res.mng_username = #{mngUsername} </if>
</sql>
<!--sql片段 更新字段 -->
<sql id="set">
@ -253,7 +258,9 @@
iteration_cnt = #{iterationCnt},
calc_time = #{calcTime},
task_budget_workload = #{taskBudgetWorkload},
task_budget_at = #{taskBudgetAt}
task_budget_at = #{taskBudgetAt},
mng_userid = #{mngUserid},
mng_username = #{mngUsername}
</sql>
<sql id="someFieldSet">
<if test="phaseName != null and phaseName != ''"> phase_name = #{phaseName}, </if>
@ -296,6 +303,8 @@
<if test="calcTime != null"> calc_time = #{calcTime}, </if>
<if test="taskBudgetWorkload != null and taskBudgetWorkload != ''"> task_budget_workload = #{taskBudgetWorkload}, </if>
<if test="taskBudgetAt != null and taskBudgetAt != ''"> task_budget_at = #{taskBudgetAt}, </if>
<if test="mngUserid != null and mngUserid != ''"> mng_userid = #{mngUserid}, </if>
<if test="mngUsername != null and mngUsername != ''"> mng_username = #{mngUsername}, </if>
</sql>
<!--sql片段 批量更新 -->
<sql id="batchSet">
@ -338,6 +347,8 @@
iteration_cnt = #{item.iterationCnt},
calc_time = #{item.calcTime},
task_budget_workload = #{item.taskBudgetWorkload},
task_budget_at = #{item.taskBudgetAt}
task_budget_at = #{item.taskBudgetAt},
mng_userid = #{item.mngUserid},
mng_username = #{item.mngUsername}
</sql>
</mapper>
Loading…
Cancel
Save