Browse Source

小组更新

master
陈裕财 5 years ago
parent
commit
91414b74c7
  1. 2
      xm-bootstrap/src/main/resources/application-m1prod.properties
  2. 29
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java
  3. 19
      xm-core/src/main/java/com/xm/core/entity/XmTask.java
  4. 41
      xm-core/src/main/java/com/xm/core/entity/XmTaskExecuser.java
  5. 66
      xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java
  6. 131
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskExecuserMapper.xml
  7. 85
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

2
xm-bootstrap/src/main/resources/application-m1prod.properties

@ -5,7 +5,7 @@ server.port=7067
#server.context-path=/${spring.application.name}
#session失效时间 秒
server.session.timeout=43200
spring.session.store-type=none
spring.session.store-type=redis
spring.cloud.inetutils.preferredNetworks[0]=^10\.
spring.cloud.inetutils.preferredNetworks[1]=^172\.
#eureka.client.serviceUrl.defaultZone=http://172.16.16.16:6110/eureka/

29
xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java

@ -111,21 +111,22 @@ public class XmTaskExecuserController {
try{
String projectId=xmTaskExecuser.getProjectId();
User user=LoginUtils.getCurrentUserInfo();
List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if(!isHead ) {
if(user.getUserid().equals(xmTaskExecuser.getUserid())){
tips.setFailureMsg(user.getUsername()+"不是组长,无权进行新增任务执行人、候选人等操作");
}else {
tips.setFailureMsg(user.getUsername()+"不是"+xmTaskExecuser.getUsername()+"的组长,无权进行新增任务执行人、候选人等操作");
}
}
if(tips.isOk()) {
if(user.getUserid().equals(xmTaskExecuser.getUserid())){
xmTaskExecuserService.addExecuser(xmTaskExecuser);
m.put("data",xmTaskExecuser);
}else {
List<XmProjectGroupVo> myGgroups=groupService.getProjectGroupVoList(projectId);
boolean isTeamHeader= groupService.checkUserIsHeadInGroups(myGgroups,user.getUserid());
boolean isPm=groupService.checkUserIsProjectManager(myGgroups,user.getUserid());
if( !isTeamHeader && !isPm ) {
tips.setFailureMsg(user.getUsername()+"不是组长、项目管理者,无权进行新增任务执行人、候选人等操作");
}
if(tips.isOk()) {
xmTaskExecuserService.addExecuser(xmTaskExecuser);
m.put("data",xmTaskExecuser);
}
}
xmTaskExecuserService.addExecuser(xmTaskExecuser);
m.put("data",xmTaskExecuser);
}
}catch (BizException e) {
tips=e.getTips();
logger.error("",e);

19
xm-core/src/main/java/com/xm/core/entity/XmTask.java

@ -1,13 +1,12 @@
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>
* 实体 XmTask所有属性名: <br>
* id,name,parentTaskid,parentTaskname,projectId,projectName,level,sortLevel,executorUserid,executorUsername,preTaskid,preTaskname,startTime,endTime,milestone,description,remarks,createUserid,createUsername,createTime,rate,budgetCost,budgetWorkload,actCost,actWorkload,taskState,taskType,taskClass,toTaskCenter,actStartTime,actEndTime,bizProcInstId,bizFlowState,projectPhaseId,projectPhaseName,taskSkillNames,exeUsernames,taskSkillIds,exeUserids,taskOut,planType,settleSchemel,menuId,menuName,iterationId,iterationName,productId,productName;<br>
* XM.xm_task xm_task的所有字段名: <br>
@ -72,10 +71,10 @@ public class XmTask implements java.io.Serializable {
@ApiModelProperty(notes="备注",allowEmptyValue=true,example="",allowableValues="")
String remarks;
@ApiModelProperty(notes="任务创建人编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="任务创建人编号(谁创建谁负责)",allowEmptyValue=true,example="",allowableValues="")
String createUserid;
@ApiModelProperty(notes="任务创建人",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="任务创建人(谁创建谁负责)",allowEmptyValue=true,example="",allowableValues="")
String createUsername;
@ApiModelProperty(notes="创建时间",allowEmptyValue=true,example="",allowableValues="")
@ -277,13 +276,13 @@ public class XmTask implements java.io.Serializable {
this.remarks = remarks;
}
/**
* 任务创建人编号
* 任务创建人编号谁创建谁负责
**/
public void setCreateUserid(String createUserid) {
this.createUserid = createUserid;
}
/**
* 任务创建人
* 任务创建人谁创建谁负责
**/
public void setCreateUsername(String createUsername) {
this.createUsername = createUsername;
@ -566,13 +565,13 @@ public class XmTask implements java.io.Serializable {
return this.remarks;
}
/**
* 任务创建人编号
* 任务创建人编号谁创建谁负责
**/
public String getCreateUserid() {
return this.createUserid;
}
/**
* 任务创建人
* 任务创建人谁创建谁负责
**/
public String getCreateUsername() {
return this.createUsername;

41
xm-core/src/main/java/com/xm/core/entity/XmTaskExecuser.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>
* 实体 XmTaskExecuser所有属性名: <br>
* createTime,id,taskId,userid,startTime,endTime,status,remarks,settleAmount,settleWorkload,settleStatus,settleTime,createUserid,createUsername,username,matchScore,quoteWeekday,quoteAmount,quoteTime,bizProcInstId,bizFlowState,projectId,projectPhaseId,skillRemark,quoteWorkload,quoteStartTime,quoteEndTime,branchId,projectPhaseName,taskName,isLeader;<br>
* createTime,id,taskId,userid,startTime,endTime,status,remarks,settleAmount,settleWorkload,settleStatus,settleTime,createUserid,createUsername,username,matchScore,quoteWeekday,quoteAmount,quoteTime,bizProcInstId,bizFlowState,projectId,projectPhaseId,skillRemark,quoteWorkload,quoteStartTime,quoteEndTime,branchId,projectPhaseName,taskName,isLeader,distUserid,distUsername;<br>
* XM.xm_task_execuser xm_task_execuser的所有字段名: <br>
* create_time,id,task_id,userid,start_time,end_time,status,remarks,settle_amount,settle_workload,settle_status,settle_time,create_userid,create_username,username,match_score,quote_weekday,quote_amount,quote_time,biz_proc_inst_id,biz_flow_state,project_id,project_phase_id,skill_remark,quote_workload,quote_start_time,quote_end_time,branch_id,project_phase_name,task_name,is_leader;<br>
* create_time,id,task_id,userid,start_time,end_time,status,remarks,settle_amount,settle_workload,settle_status,settle_time,create_userid,create_username,username,match_score,quote_weekday,quote_amount,quote_time,biz_proc_inst_id,biz_flow_state,project_id,project_phase_id,skill_remark,quote_workload,quote_start_time,quote_end_time,branch_id,project_phase_name,task_name,is_leader,dist_userid,dist_username;<br>
* 当前主键(包括多主键):<br>
* id;<br>
*/
@ -113,6 +112,12 @@ public class XmTaskExecuser implements java.io.Serializable {
@ApiModelProperty(notes="是否主负责人0否1是",allowEmptyValue=true,example="",allowableValues="")
String isLeader;
@ApiModelProperty(notes="推荐人编号",allowEmptyValue=true,example="",allowableValues="")
String distUserid;
@ApiModelProperty(notes="推荐人姓名",allowEmptyValue=true,example="",allowableValues="")
String distUsername;
/**编号**/
public XmTaskExecuser(String id) {
@ -309,6 +314,18 @@ public class XmTaskExecuser implements java.io.Serializable {
public void setIsLeader(String isLeader) {
this.isLeader = isLeader;
}
/**
* 推荐人编号
**/
public void setDistUserid(String distUserid) {
this.distUserid = distUserid;
}
/**
* 推荐人姓名
**/
public void setDistUsername(String distUsername) {
this.distUsername = distUsername;
}
/**
* 创建时间
@ -496,5 +513,17 @@ public class XmTaskExecuser implements java.io.Serializable {
public String getIsLeader() {
return this.isLeader;
}
/**
* 推荐人编号
**/
public String getDistUserid() {
return this.distUserid;
}
/**
* 推荐人姓名
**/
public String getDistUsername() {
return this.distUsername;
}
}

66
xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java

@ -461,11 +461,75 @@ public class XmProjectGroupService extends BaseService {
return tips;
}
}
/**
* 获取用户在某个项目中的组
* @param projectId
* @param userid
* @return
*/
public List<XmProjectGroupVo> getUserGroups(String projectId,String userid){
List<XmProjectGroupVo> xmProjectGroupVoList=this.getProjectGroupVoList(projectId);
return this.getUserGroups(xmProjectGroupVoList, userid);
}
/**
* 检查用户是否在一些组中任意个组当组长
* @param xmProjectGroupVoList
* @param teamHeadUserid
* @return
*/
public boolean checkUserIsHeadInGroups( List<XmProjectGroupVo> xmProjectGroupVoList,String teamHeadUserid){
if(xmProjectGroupVoList==null || xmProjectGroupVoList.size()==0)return false;
if(!StringUtils.hasText(teamHeadUserid)){
return false;
}
for (XmProjectGroupVo xmProjectGroupVo : xmProjectGroupVoList) {
List<XmProjectGroupUser> gus=xmProjectGroupVo.getGroupUsers();
if(gus==null) {
continue;
}
for (XmProjectGroupUser gu : gus) {
if(teamHeadUserid.equals(gu.getUserid()) && "1".equals(gu.getIsHead())) {
return true;
}
}
}
return false;
}
/**
* 检查用户是否在指定的小组中做组长
* @param xmProjectGroupVoList
* @param groupId
* @param teamHeadUserid
* @return
*/
public boolean checkUserIsHeadInGroup( List<XmProjectGroupVo> xmProjectGroupVoList,String groupId,String teamHeadUserid){
if(xmProjectGroupVoList==null || xmProjectGroupVoList.size()==0)return false;
if(!StringUtils.hasText(teamHeadUserid)){
return false;
}
if(!StringUtils.hasText(groupId)){
return false;
}
for (XmProjectGroupVo xmProjectGroupVo : xmProjectGroupVoList) {
if(groupId.equals(xmProjectGroupVo.getId())){
List<XmProjectGroupUser> gus=xmProjectGroupVo.getGroupUsers();
if(gus==null) {
continue;
}
for (XmProjectGroupUser gu : gus) {
if(teamHeadUserid.equals(gu.getUserid()) && "1".equals(gu.getIsHead())) {
return true;
}
}
}
}
return false;
}
public List<XmProjectGroupVo> getUserGroups( List<XmProjectGroupVo> xmProjectGroupVoList,String userid){
List<XmProjectGroupVo> userGroups=new ArrayList<>();
if(xmProjectGroupVoList==null) {

131
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskExecuserMapper.xml

@ -18,16 +18,16 @@
#{id},#{execuserId},#{projectId},#{flowBranchId},#{agree},#{actId},#{taskName},#{procInstId},#{mainTitle},#{commentMsg},#{flowLastTime},#{eventName},#{bizKey},#{modelKey},#{assignee},#{startUserid},#{procDefId}
)
</insert>
<!-- 同时修改业务表及流程审批表数据状态 -->
<update id="updateProcessApprova"
parameterType="HashMap">
update XM.xm_task_execuser b ,XM.xm_task_execuser_process_approva pa
update XM.xm_task_execuser b ,XM.xm_task_execuser_process_approva pa
<set>
<if test=' agree != null and agree !="" '> pa.agree = #{agree},</if>
<if test=' actId != null and actId !="" '> pa.act_id = #{actId},</if>
<if test=' assignee != null and assignee !="" '> pa.assignee = #{assignee},</if>
<if test=' assigneeName != null and assigneeName !="" '> pa.assignee_name = #{assigneeName},</if>
<if test=' assignee != null and assignee !="" '> pa.assignee = #{assignee},</if>
<if test=' assigneeName != null and assigneeName !="" '> pa.assignee_name = #{assigneeName},</if>
<if test=' taskName != null and taskName !="" '> pa.task_name = #{taskName},</if>
<if test=' commentMsg != null and commentMsg !="" '> pa.comment_msg = #{commentMsg},</if>
pa.flow_last_time = now(),
@ -36,47 +36,47 @@
<if test=' bizFlowState != null and bizFlowState !="" '> b.biz_flow_state=#{bizFlowState},</if>
<if test=' bizProcInstId != null and bizProcInstId !="" '> b.biz_proc_inst_id=#{bizProcInstId},</if>
<if test=' settleStatus != null and settleStatus !="" '> b.settle_status=#{settleStatus},</if>
</set>
where pa.proc_inst_id = #{procInstId} and pa.flow_branch_id=#{flowBranchId}
and b.id=pa.execuser_id
</update>
and b.id=pa.execuser_id
</update>
<update id="updateFlowStateByProcInstForDeleteSuccess"
parameterType="HashMap">
update XM.xm_task_execuser_process_approva pa set pa.flow_state='2'
where pa.proc_inst_id = #{procInstId} and pa.flow_branch_id=#{flowBranchId}
</update>
</update>
<!-- 按条件删除若干条记录-->
<delete id="deleteByProcInstId" parameterType="HashMap">
delete from XM.xm_task_execuser
delete from XM.xm_task_execuser
where biz_proc_inst_id=#{procInstId}
</delete>
<update id="updateXmTaskExeUseridsAndUsernamesByTaskId"
parameterType="String">
UPDATE XM.xm_task t
left join
UPDATE XM.xm_task t
left join
(
SELECT
task_id,
max(
CASE
WHEN e.STATUS != '7'
AND e.STATUS != '0'
WHEN e.STATUS != '7'
AND e.STATUS != '0'
AND e.STATUS != '8' THEN
e.userid ELSE NULL
END
e.userid ELSE NULL
END
) AS executor_userid,
max(
CASE
WHEN e.STATUS != '7'
AND e.STATUS != '0'
WHEN e.STATUS != '7'
AND e.STATUS != '0'
AND e.STATUS != '8' THEN
e.username ELSE NULL
END
e.username ELSE NULL
END
) AS executor_username,
sum( case when e.status='3' or e.status='6' then e.settle_amount else 0 end ) as act_cost,
sum( case when e.status='3' or e.status='6' then e.settle_workload else 0 end ) as act_workload,
@ -85,28 +85,28 @@
concat(
e.username,
CASE
WHEN e.STATUS = '0' THEN
'(候选)'
'(候选)'
WHEN e.STATUS = '1' THEN
'(执行中)'
'(执行中)'
WHEN e.STATUS = '2' THEN
'(已提交)'
'(已提交)'
WHEN e.STATUS = '3' THEN
'(已验收)'
'(已验收)'
WHEN e.STATUS = '4' THEN
'(验收不过)'
'(验收不过)'
WHEN e.STATUS = '6' THEN
'(已付款)'
'(已付款)'
WHEN e.STATUS = '7' THEN
'(放弃任务)'
'(放弃任务)'
WHEN e.STATUS = '8' THEN
'(黑名单)' ELSE '(其它)'
END
) SEPARATOR ','
) AS exe_usernames
'(黑名单)' ELSE '(其它)'
END
) SEPARATOR ','
) AS exe_usernames
FROM
XM.xm_task_execuser e
XM.xm_task_execuser e
WHERE
e.task_id = #{taskId} ) e1
on t.id=e1.task_id
@ -116,16 +116,16 @@
t.executor_username = e1.executor_username,
t.act_cost=e1.act_cost,
t.act_workload=e1.act_workload
WHERE t.id = #{taskId}
</update>
<!--结束 自定义sql函数区域-->
WHERE t.id = #{taskId}
</update>
<!--结束 自定义sql函数区域-->
<!-- 通过条件查询获取数据列表 返回list<map> -->
<select id="selectListMapByWhere" parameterType="HashMap" resultType="HashMap">
select res.*,pa.proc_inst_id,pa.assignee,pa.assignee_name,pa.main_title,pa.flow_branch_id,pa.task_name,pa.agree,pa.flow_last_time,pa.comment_msg,pa.proc_def_id,pa.flow_state from XM.xm_task_execuser res left join XM.xm_task_execuser_process_approva pa on res.id=pa.execuser_id and res.biz_proc_inst_id=pa.proc_inst_id
select res.*,pa.proc_inst_id,pa.assignee,pa.assignee_name,pa.main_title,pa.flow_branch_id,pa.task_name,pa.agree,pa.flow_last_time,pa.comment_msg,pa.proc_def_id,pa.flow_state from XM.xm_task_execuser res left join XM.xm_task_execuser_process_approva pa on res.id=pa.execuser_id and res.biz_proc_inst_id=pa.proc_inst_id
<where>
<if test="ids != null"> and
id in
@ -168,19 +168,19 @@
</where>
</select>
<!-- 新增一条记录 主键id,-->
<insert id="insert" parameterType="com.xm.core.entity.XmTaskExecuser" useGeneratedKeys="false" keyProperty="id">
<insert id="insert" parameterType="com.xm.core.entity.XmTaskExecuser" useGeneratedKeys="false" keyProperty="id">
insert into XM.xm_task_execuser(
<include refid="columns"/>
) values (
#{createTime},#{id},#{taskId},#{userid},#{startTime},#{endTime},#{status},#{remarks},#{settleAmount},#{settleWorkload},#{settleStatus},#{settleTime},#{createUserid},#{createUsername},#{username},#{matchScore},#{quoteWeekday},#{quoteAmount},#{quoteTime},#{bizProcInstId},#{bizFlowState},#{projectId},#{projectPhaseId},#{skillRemark},#{quoteWorkload},#{quoteStartTime},#{quoteEndTime},#{branchId},#{projectPhaseName},#{taskName},#{isLeader}
#{createTime},#{id},#{taskId},#{userid},#{startTime},#{endTime},#{status},#{remarks},#{settleAmount},#{settleWorkload},#{settleStatus},#{settleTime},#{createUserid},#{createUsername},#{username},#{matchScore},#{quoteWeekday},#{quoteAmount},#{quoteTime},#{bizProcInstId},#{bizFlowState},#{projectId},#{projectPhaseId},#{skillRemark},#{quoteWorkload},#{quoteStartTime},#{quoteEndTime},#{branchId},#{projectPhaseName},#{taskName},#{isLeader},#{distUserid},#{distUsername}
)
</insert>
<!-- 按条件删除若干条记录-->
<delete id="deleteByWhere" parameterType="com.xm.core.entity.XmTaskExecuser">
delete from XM.xm_task_execuser res
delete from XM.xm_task_execuser
<where>
<include refid="where"/>
1=2
</where>
</delete>
@ -225,51 +225,56 @@
<!-- 批量删除 -->
<delete id="batchDelete" parameterType="List">
delete from XM.xm_task_execuser
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">
create_time,id,task_id,userid,start_time,end_time,status,remarks,settle_amount,settle_workload,settle_status,settle_time,create_userid,create_username,username,match_score,quote_weekday,quote_amount,quote_time,biz_proc_inst_id,biz_flow_state,project_id,project_phase_id,skill_remark,quote_workload,quote_start_time,quote_end_time,branch_id,project_phase_name,task_name,is_leader
create_time,id,task_id,userid,start_time,end_time,status,remarks,settle_amount,settle_workload,settle_status,settle_time,create_userid,create_username,username,match_score,quote_weekday,quote_amount,quote_time,biz_proc_inst_id,biz_flow_state,project_id,project_phase_id,skill_remark,quote_workload,quote_start_time,quote_end_time,branch_id,project_phase_name,task_name,is_leader,dist_userid,dist_username
</sql>
<!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS-->
<sql id="where">
<if test="createTime != null"> and TO_CHAR(res.create_time,'YYYY-MM-DD') = TO_CHAR(#{createTime},'YYYY-MM-DD') </if>
<if test="createTime != null"> and date_format(res.create_time,'%Y-%m-%d') = date_format(#{createTime},'%Y-%m-%d') </if>
<if test="id != null and id != ''"> and res.id = #{id} </if>
<if test="taskId != null and taskId != ''"> and res.task_id = #{taskId} </if>
<if test="userid != null and userid != ''"> and res.userid = #{userid} </if>
<if test="startTime != null"> and TO_CHAR(res.start_time,'YYYY-MM-DD') = TO_CHAR(#{startTime},'YYYY-MM-DD') </if>
<if test="endTime != null"> and TO_CHAR(res.end_time,'YYYY-MM-DD') = TO_CHAR(#{endTime},'YYYY-MM-DD') </if>
<if test="startTime != null"> and date_format(res.start_time,'%Y-%m-%d') = date_format(#{startTime},'%Y-%m-%d') </if>
<if test="endTime != null"> and date_format(res.end_time,'%Y-%m-%d') = date_format(#{endTime},'%Y-%m-%d') </if>
<if test="status != null and status != ''"> and res.status = #{status} </if>
<if test="remarks != null and remarks != ''"> and res.remarks = #{remarks} </if>
<if test="settleAmount != null and settleAmount != ''"> and res.settle_amount = #{settleAmount} </if>
<if test="settleWorkload != null and settleWorkload != ''"> and res.settle_workload = #{settleWorkload} </if>
<if test="settleStatus != null and settleStatus != ''"> and res.settle_status = #{settleStatus} </if>
<if test="settleTime != null"> and TO_CHAR(res.settle_time,'YYYY-MM-DD') = TO_CHAR(#{settleTime},'YYYY-MM-DD') </if>
<if test="settleTime != null"> and date_format(res.settle_time,'%Y-%m-%d') = date_format(#{settleTime},'%Y-%m-%d') </if>
<if test="createUserid != null and createUserid != ''"> and res.create_userid = #{createUserid} </if>
<if test="createUsername != null and createUsername != ''"> and res.create_username = #{createUsername} </if>
<if test="username != null and username != ''"> and res.username = #{username} </if>
<if test="matchScore != null and matchScore != ''"> and res.match_score = #{matchScore} </if>
<if test="quoteWeekday != null and quoteWeekday != ''"> and res.quote_weekday = #{quoteWeekday} </if>
<if test="quoteAmount != null and quoteAmount != ''"> and res.quote_amount = #{quoteAmount} </if>
<if test="quoteTime != null"> and TO_CHAR(res.quote_time,'YYYY-MM-DD') = TO_CHAR(#{quoteTime},'YYYY-MM-DD') </if>
<if test="quoteTime != null"> and date_format(res.quote_time,'%Y-%m-%d') = date_format(#{quoteTime},'%Y-%m-%d') </if>
<if test="bizProcInstId != null and bizProcInstId != ''"> and res.biz_proc_inst_id = #{bizProcInstId} </if>
<if test="bizFlowState != null and bizFlowState != ''"> and res.biz_flow_state = #{bizFlowState} </if>
<if test="projectId != null and projectId != ''"> and res.project_id = #{projectId} </if>
<if test="projectPhaseId != null and projectPhaseId != ''"> and res.project_phase_id = #{projectPhaseId} </if>
<if test="skillRemark != null and skillRemark != ''"> and res.skill_remark = #{skillRemark} </if>
<if test="quoteWorkload != null and quoteWorkload != ''"> and res.quote_workload = #{quoteWorkload} </if>
<if test="quoteStartTime != null"> and TO_CHAR(res.quote_start_time,'YYYY-MM-DD') = TO_CHAR(#{quoteStartTime},'YYYY-MM-DD') </if>
<if test="quoteEndTime != null"> and TO_CHAR(res.quote_end_time,'YYYY-MM-DD') = TO_CHAR(#{quoteEndTime},'YYYY-MM-DD') </if>
<if test="quoteStartTime != null"> and date_format(res.quote_start_time,'%Y-%m-%d') = date_format(#{quoteStartTime},'%Y-%m-%d') </if>
<if test="quoteEndTime != null"> and date_format(res.quote_end_time,'%Y-%m-%d') = date_format(#{quoteEndTime},'%Y-%m-%d') </if>
<if test="branchId != null and branchId != ''"> and res.branch_id = #{branchId} </if>
<if test="projectPhaseName != null and projectPhaseName != ''"> and res.project_phase_name = #{projectPhaseName} </if>
<if test="taskName != null and taskName != ''"> and res.task_name = #{taskName} </if>
<if test="isLeader != null and isLeader != ''"> and res.is_leader = #{isLeader} </if>
<if test="distUserid != null and distUserid != ''"> and res.dist_userid = #{distUserid} </if>
<if test="distUsername != null and distUsername != ''"> and res.dist_username = #{distUsername} </if>
</sql>
<!--sql片段 更新字段 -->
<sql id="set">
@ -302,7 +307,9 @@
branch_id = #{branchId},
project_phase_name = #{projectPhaseName},
task_name = #{taskName},
is_leader = #{isLeader}
is_leader = #{isLeader},
dist_userid = #{distUserid},
dist_username = #{distUsername}
</sql>
<sql id="someFieldSet">
<if test="createTime != null"> create_time = #{createTime}, </if>
@ -335,6 +342,8 @@
<if test="projectPhaseName != null and projectPhaseName != ''"> project_phase_name = #{projectPhaseName}, </if>
<if test="taskName != null and taskName != ''"> task_name = #{taskName}, </if>
<if test="isLeader != null and isLeader != ''"> is_leader = #{isLeader}, </if>
<if test="distUserid != null and distUserid != ''"> dist_userid = #{distUserid}, </if>
<if test="distUsername != null and distUsername != ''"> dist_username = #{distUsername}, </if>
</sql>
<!--sql片段 批量更新 -->
<sql id="batchSet">
@ -367,6 +376,8 @@
branch_id = #{item.branchId},
project_phase_name = #{item.projectPhaseName},
task_name = #{item.taskName},
is_leader = #{item.isLeader}
is_leader = #{item.isLeader},
dist_userid = #{item.distUserid},
dist_username = #{item.distUsername}
</sql>
</mapper>

85
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

@ -8,7 +8,7 @@
<select id="getAvgRate" parameterType="String" resultType="long" >
select avg(res.rate) from XM.xm_task res where res.parent_taskid = #{parentTaskid}
</select>
<select id="checkExistsExecuser" parameterType="String" resultType="Long" >
select count(1) from XM.xm_task_execuser res where res.task_id = #{taskId} and ( res.settle_status not in('2','6'))
</select>
@ -18,10 +18,10 @@
<update id="updatePreTask" parameterType="String">
update XM.xm_task set pre_taskid = NULL,pre_taskname = NULL where pre_taskid = #{id}
</update>
<update id="relTaskWithMenu" parameterType="com.xm.core.entity.XmTask">
update XM.xm_task set menu_id = #{menuId}, menu_name = #{menuName},product_id=#{productId},product_name=#{productName} where id = #{id}
</update>
</update>
<!-- 插入流程审批表数据 -->
<insert id="insertProcessApprova"
@ -33,16 +33,16 @@
#{id},#{xmTaskId},#{projectId},#{flowBranchId},#{agree},#{actId},#{taskName},#{procInstId},#{mainTitle},#{commentMsg},#{flowLastTime},#{eventName},#{bizKey},#{modelKey},#{assignee},#{startUserid},#{procDefId}
)
</insert>
<!-- 同时修改业务表及流程审批表数据状态 -->
<update id="updateProcessApprova"
parameterType="HashMap">
update XM.xm_task b ,XM.xm_task_process_approva pa
update XM.xm_task b ,XM.xm_task_process_approva pa
<set>
<if test=' agree != null and agree !="" '> pa.agree = #{agree},</if>
<if test=' actId != null and actId !="" '> pa.act_id = #{actId},</if>
<if test=' assignee != null and assignee !="" '> pa.assignee = #{assignee},</if>
<if test=' assigneeName != null and assigneeName !="" '> pa.assignee_name = #{assigneeName},</if>
<if test=' assignee != null and assignee !="" '> pa.assignee = #{assignee},</if>
<if test=' assigneeName != null and assigneeName !="" '> pa.assignee_name = #{assigneeName},</if>
<if test=' taskName != null and taskName !="" '> pa.task_name = #{taskName},</if>
<if test=' commentMsg != null and commentMsg !="" '> pa.comment_msg = #{commentMsg},</if>
pa.flow_last_time = now(),
@ -52,44 +52,44 @@
<if test=' bizProcInstId != null and bizProcInstId !="" '> b.biz_proc_inst_id=#{bizProcInstId},</if>
</set>
where pa.proc_inst_id = #{procInstId} and pa.flow_branch_id=#{flowBranchId}
and b.id=pa.xm_task_id
</update>
and b.id=pa.xm_task_id
</update>
<update id="updateFlowStateByProcInstForDeleteSuccess"
parameterType="HashMap">
update XM.xm_task_process_approva pa set pa.flow_state='2'
where pa.proc_inst_id = #{procInstId} and pa.flow_branch_id=#{flowBranchId}
</update>
</update>
<!-- 按条件删除若干条记录-->
<delete id="deleteByProcInstId" parameterType="HashMap">
delete from XM.xm_task
delete from XM.xm_task
where biz_proc_inst_id=#{procInstId}
</delete>
<!-- 查询任务总的预算及对应的阶段的预算,任务总预算不能大于阶段总预算 -->
<select id="selectTotalPhaseAndTaskBudgetCost" parameterType="HashMap" resultType="HashMap">
SELECT
sum( ifnull(res.budget_cost,0) ) AS budget_cost,
sum( case when res.task_out='1' then ifnull(res.budget_cost,0) else 0 end ) AS task_budget_out_user_at,
sum( case when res.task_out='1' then ifnull(res.budget_cost,0) else 0 end ) AS task_budget_out_user_at,
sum( case when res.task_out='1' then 0 else ifnull(res.budget_cost,0) end ) AS task_budget_inner_user_at,
sum(0) AS task_budget_nouser_at,
sum( res.budget_workload ) AS budget_workload,
sum(0) AS task_budget_nouser_at,
sum( res.budget_workload ) AS budget_workload,
p.phase_budget_nouser_at,
p.phase_budget_inner_user_at,
p.phase_budget_out_user_at,
p.phase_budget_workload,
p.phase_budget_out_user_at,
p.phase_budget_workload,
p.phase_budget_hours,
p.phase_budget_staff_nu
FROM XM.xm_project_phase p LEFT JOIN XM.xm_task res
FROM XM.xm_project_phase p LEFT JOIN XM.xm_task res
ON p.id = res.project_phase_id
WHERE
p.id = #{projectPhaseId}
<if test=" excludeTaskIds !=null "> and res.id not in
<foreach collection="excludeTaskIds" item="item" index="index" open="(" separator="," close=")" >
#{item}
</foreach>
<foreach collection="excludeTaskIds" item="item" index="index" open="(" separator="," close=")" >
#{item}
</foreach>
</if>
</select>
<!-- 通过条件查询获取数据列表 不分页 返回 list<Object> -->
<select id="selectTaskListByIds" parameterType="HashMap" resultType="com.xm.core.entity.XmTask">
@ -100,13 +100,13 @@
</foreach>
</select>
<!--结束 自定义sql函数区域-->
<!--结束 自定义sql函数区域-->
<!-- 通过条件查询获取数据列表 返回list<map> -->
<select id="selectListMapByWhere" parameterType="HashMap" resultType="HashMap">
select res.*,pa.proc_inst_id,pa.assignee,pa.assignee_name,pa.main_title,pa.flow_branch_id,pa.task_name,pa.agree,pa.flow_last_time,pa.comment_msg,pa.proc_def_id,pa.flow_state from XM.xm_task res left join XM.xm_task_process_approva pa on res.id=pa.xm_task_id and res.biz_proc_inst_id=pa.proc_inst_id
select res.*,pa.proc_inst_id,pa.assignee,pa.assignee_name,pa.main_title,pa.flow_branch_id,pa.task_name,pa.agree,pa.flow_last_time,pa.comment_msg,pa.proc_def_id,pa.flow_state from XM.xm_task res left join XM.xm_task_process_approva pa on res.id=pa.xm_task_id and res.biz_proc_inst_id=pa.proc_inst_id
left join XM.xm_project p on p.id=res.project_id
<where>
<if test="ids != null"> and
@ -119,10 +119,10 @@
<if test="key != null and key !='' "> </if>
<if test="work != null and work != ''"> and res.rate != '100' </if>
<if test="parent != null and parent != ''"> and (res.parent_taskid = '' or res.parent_taskid IS NULL)</if>
<!-- 我参与的-->
<if test=" (myExecuserStatus != null and myExecuserStatus) != '' or ( isMy !=null and isMy !='' )">
and exists ( select 1 from XM.xm_task_execuser exe where exe.task_id=res.id and exe.userid=#{userid}
and exists ( select 1 from XM.xm_task_execuser exe where exe.task_id=res.id and exe.userid=#{userid}
<if test=' myExecuserStatus != "all" and myExecuserStatus!=null and myExecuserStatus !="" '>
and exe.status=#{myExecuserStatus}
</if>
@ -130,7 +130,7 @@
</if>
<!-- 我关注的 -->
<if test="myFocus != null and myFocus != ''">
and exists ( select 1 from XM.xm_my_focus f where f.userid=#{userid} and f.project_id=res.project_id and f.task_id=res.id )
and exists ( select 1 from XM.xm_my_focus f where f.userid=#{userid} and f.project_id=res.project_id and f.task_id=res.id )
</if>
</where>
order by res.sort_level asc
@ -165,7 +165,7 @@
</where>
</select>
<!-- 新增一条记录 主键id,-->
<insert id="insert" parameterType="com.xm.core.entity.XmTask" useGeneratedKeys="false" keyProperty="id">
<insert id="insert" parameterType="com.xm.core.entity.XmTask" useGeneratedKeys="false" keyProperty="id">
insert into XM.xm_task(
<include refid="columns"/>
) values (
@ -175,9 +175,9 @@
<!-- 按条件删除若干条记录-->
<delete id="deleteByWhere" parameterType="com.xm.core.entity.XmTask">
delete from XM.xm_task res
delete from XM.xm_task
<where>
<include refid="where"/>
1=2
</where>
</delete>
@ -222,10 +222,13 @@
<!-- 批量删除 -->
<delete id="batchDelete" parameterType="List">
delete from XM.xm_task
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>
@ -233,7 +236,7 @@
<sql id="columns">
id,name,parent_taskid,parent_taskname,project_id,project_name,level,sort_level,executor_userid,executor_username,pre_taskid,pre_taskname,start_time,end_time,milestone,description,remarks,create_userid,create_username,create_time,rate,budget_cost,budget_workload,act_cost,act_workload,task_state,task_type,task_class,to_task_center,act_start_time,act_end_time,biz_proc_inst_id,biz_flow_state,project_phase_id,project_phase_name,task_skill_names,exe_usernames,task_skill_ids,exe_userids,task_out,plan_type,settle_schemel,menu_id,menu_name,iteration_id,iteration_name,product_id,product_name
</sql>
<!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS-->
<sql id="where">
<if test="id != null and id != ''"> and res.id = #{id} </if>
@ -248,14 +251,14 @@
<if test="executorUsername != null and executorUsername != ''"> and res.executor_username = #{executorUsername} </if>
<if test="preTaskid != null and preTaskid != ''"> and res.pre_taskid = #{preTaskid} </if>
<if test="preTaskname != null and preTaskname != ''"> and res.pre_taskname = #{preTaskname} </if>
<if test="startTime != null"> and TO_CHAR(res.start_time,'YYYY-MM-DD') = TO_CHAR(#{startTime},'YYYY-MM-DD') </if>
<if test="endTime != null"> and TO_CHAR(res.end_time,'YYYY-MM-DD') = TO_CHAR(#{endTime},'YYYY-MM-DD') </if>
<if test="startTime != null"> and date_format(res.start_time,'%Y-%m-%d') = date_format(#{startTime},'%Y-%m-%d') </if>
<if test="endTime != null"> and date_format(res.end_time,'%Y-%m-%d') = date_format(#{endTime},'%Y-%m-%d') </if>
<if test="milestone != null and milestone != ''"> and res.milestone = #{milestone} </if>
<if test="description != null and description != ''"> and res.description = #{description} </if>
<if test="remarks != null and remarks != ''"> and res.remarks = #{remarks} </if>
<if test="createUserid != null and createUserid != ''"> and res.create_userid = #{createUserid} </if>
<if test="createUsername != null and createUsername != ''"> and res.create_username = #{createUsername} </if>
<if test="createTime != null"> and TO_CHAR(res.create_time,'YYYY-MM-DD') = TO_CHAR(#{createTime},'YYYY-MM-DD') </if>
<if test="createTime != null"> and date_format(res.create_time,'%Y-%m-%d') = date_format(#{createTime},'%Y-%m-%d') </if>
<if test="rate != null and rate != ''"> and res.rate = #{rate} </if>
<if test="budgetCost != null and budgetCost != ''"> and res.budget_cost = #{budgetCost} </if>
<if test="budgetWorkload != null and budgetWorkload != ''"> and res.budget_workload = #{budgetWorkload} </if>
@ -265,8 +268,8 @@
<if test="taskType != null and taskType != ''"> and res.task_type = #{taskType} </if>
<if test="taskClass != null and taskClass != ''"> and res.task_class = #{taskClass} </if>
<if test="toTaskCenter != null and toTaskCenter != ''"> and res.to_task_center = #{toTaskCenter} </if>
<if test="actStartTime != null"> and TO_CHAR(res.act_start_time,'YYYY-MM-DD') = TO_CHAR(#{actStartTime},'YYYY-MM-DD') </if>
<if test="actEndTime != null"> and TO_CHAR(res.act_end_time,'YYYY-MM-DD') = TO_CHAR(#{actEndTime},'YYYY-MM-DD') </if>
<if test="actStartTime != null"> and date_format(res.act_start_time,'%Y-%m-%d') = date_format(#{actStartTime},'%Y-%m-%d') </if>
<if test="actEndTime != null"> and date_format(res.act_end_time,'%Y-%m-%d') = date_format(#{actEndTime},'%Y-%m-%d') </if>
<if test="bizProcInstId != null and bizProcInstId != ''"> and res.biz_proc_inst_id = #{bizProcInstId} </if>
<if test="bizFlowState != null and bizFlowState != ''"> and res.biz_flow_state = #{bizFlowState} </if>
<if test="projectPhaseId != null and projectPhaseId != ''"> and res.project_phase_id = #{projectPhaseId} </if>

Loading…
Cancel
Save