Browse Source

Merge branch 'pt' of dd.tall.wiki:ccsens_wiki/ccsenscloud into pt

recovery
ma 4 years ago
parent
commit
9e88256499
  1. 16
      tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java
  2. 11
      tall/src/main/java/com/ccsens/tall/bean/po/ProRole.java
  3. 60
      tall/src/main/java/com/ccsens/tall/bean/po/ProRoleExample.java
  4. 7
      tall/src/main/java/com/ccsens/tall/service/ExcelService.java
  5. 11
      tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java
  6. 73
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  7. 50
      tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
  8. 25
      tall/src/main/resources/mapper_raw/ProRoleMapper.xml

16
tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java

@ -36,8 +36,10 @@ public class TaskDto {
private Long endTime;
@ApiModelProperty("重复周期")
private String cycle;
@ApiModelProperty("交付物")
private String taskDeliver;
@ApiModelProperty("交付物,可以是多个,可以是单个")
private List<String> taskDeliver;
@ApiModelProperty("输入文档,可以是多个,可以是单个")
private List<String> inputDoc;
@ApiModelProperty("插件")
private List<Long> pluginList;
@ApiModelProperty("优先级 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急 默认0")
@ -211,6 +213,8 @@ public class TaskDto {
private Byte milestone;
@ApiModelProperty("交付物id和修改后的名字")
private List<UpdateTaskDeliverName> deliverList;
@ApiModelProperty("输入文档的id和修改后的名字")
private List<UpdateTaskDeliverName> inputList;
@ApiModelProperty("需要修改的插件Id")
private List<Long> plugins;
@ApiModelProperty("任务提醒信息")
@ -420,4 +424,12 @@ public class TaskDto {
@ApiModelProperty("角色id")
private Long roleId;
}
@Data
@ApiModel("交付物列表/输入文档列表 新增和修改都采用这个")
public static class JiaoFuWu{
@ApiModelProperty("交付物/输入文档的id")
public Long id;
@ApiModelProperty("交付物名称")
public String names;
}
}

11
tall/src/main/java/com/ccsens/tall/bean/po/ProRole.java

@ -24,6 +24,8 @@ public class ProRole implements Serializable {
private Long relevanceProjectId;
private Byte show;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -106,6 +108,14 @@ public class ProRole implements Serializable {
this.relevanceProjectId = relevanceProjectId;
}
public Byte getShow() {
return show;
}
public void setShow(Byte show) {
this.show = show;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -122,6 +132,7 @@ public class ProRole implements Serializable {
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", relevanceProjectId=").append(relevanceProjectId);
sb.append(", show=").append(show);
sb.append("]");
return sb.toString();
}

60
tall/src/main/java/com/ccsens/tall/bean/po/ProRoleExample.java

@ -724,6 +724,66 @@ public class ProRoleExample {
addCriterion("relevance_project_id not between", value1, value2, "relevanceProjectId");
return (Criteria) this;
}
public Criteria andShowIsNull() {
addCriterion("show is null");
return (Criteria) this;
}
public Criteria andShowIsNotNull() {
addCriterion("show is not null");
return (Criteria) this;
}
public Criteria andShowEqualTo(Byte value) {
addCriterion("show =", value, "show");
return (Criteria) this;
}
public Criteria andShowNotEqualTo(Byte value) {
addCriterion("show <>", value, "show");
return (Criteria) this;
}
public Criteria andShowGreaterThan(Byte value) {
addCriterion("show >", value, "show");
return (Criteria) this;
}
public Criteria andShowGreaterThanOrEqualTo(Byte value) {
addCriterion("show >=", value, "show");
return (Criteria) this;
}
public Criteria andShowLessThan(Byte value) {
addCriterion("show <", value, "show");
return (Criteria) this;
}
public Criteria andShowLessThanOrEqualTo(Byte value) {
addCriterion("show <=", value, "show");
return (Criteria) this;
}
public Criteria andShowIn(List<Byte> values) {
addCriterion("show in", values, "show");
return (Criteria) this;
}
public Criteria andShowNotIn(List<Byte> values) {
addCriterion("show not in", values, "show");
return (Criteria) this;
}
public Criteria andShowBetween(Byte value1, Byte value2) {
addCriterion("show between", value1, value2, "show");
return (Criteria) this;
}
public Criteria andShowNotBetween(Byte value1, Byte value2) {
addCriterion("show not between", value1, value2, "show");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

7
tall/src/main/java/com/ccsens/tall/service/ExcelService.java

@ -152,6 +152,7 @@ public class ExcelService implements IExcelService {
throw new BaseException(CodeEnum.WSB_NOT_TASK_HEADER);
}
readProject(wbsSheet, projectInfoStart, projectInfoEnd, currentUserId, sysProject);
//读项目成员
readMember(wbsSheet, memberSheet, memberStart, memberEnd, sysProject, proRoles, proMembers);
readTask(xssfWorkbook, wbsSheet, taskStart, taskEnd, currentUserId, sysProject, taskDetails, proRoles, proMembers, hasGroupMap);
//读取插件表
@ -225,7 +226,7 @@ public class ExcelService implements IExcelService {
*/
private void readMember(XSSFSheet wbsSheet, XSSFSheet memberSheet, int memberStart, int memberEnd,
SysProject sysProject, List<ProRole> proRoles, List<ProMember> proMembers) throws Exception {
Integer seq=new Integer(0);
//添加奖惩干系人角色(一级角色)
ProRole stakeholderRole = new ProRole();
stakeholderRole.setName(WebConstant.ROLE_NAME.MoneyStakeholder.value);
@ -239,6 +240,7 @@ public class ExcelService implements IExcelService {
stakeholderProRole.setName(WebConstant.ROLE_NAME.MoneyStakeholder.phase);
stakeholderProRole.setDescription(WebConstant.ROLE_NAME.MoneyStakeholder.value);
stakeholderProRole.setParentId(stakeholderRole.getId());
stakeholderProRole.setSequence(seq++);
stakeholderProRole.setProjectId(sysProject.getId());
stakeholderProRole.setId(snowflake.nextId());
proRoleService.saveProRole(stakeholderProRole);
@ -257,6 +259,7 @@ public class ExcelService implements IExcelService {
creatorRole.setName(WebConstant.ROLE_NAME.Creator.phase);
creatorRole.setDescription(WebConstant.ROLE_NAME.Creator.value);
creatorRole.setParentId(creator.getId());
creatorRole.setSequence(seq++);
creatorRole.setProjectId(sysProject.getId());
creatorRole.setId(snowflake.nextId());
proRoleService.saveProRole(creatorRole);
@ -275,6 +278,7 @@ public class ExcelService implements IExcelService {
attentionRole.setName(WebConstant.ROLE_NAME.Attention.phase);
attentionRole.setDescription(WebConstant.ROLE_NAME.Attention.value);
attentionRole.setParentId(attention.getId());
attentionRole.setSequence(seq++);
attentionRole.setProjectId(sysProject.getId());
attentionRole.setId(snowflake.nextId());
proRoleService.saveProRole(attentionRole);
@ -351,6 +355,7 @@ public class ExcelService implements IExcelService {
ProRole proRole = new ProRole();
proRole.setName(secondRoleCell);
proRole.setParentId(firstRoleId);
proRole.setSequence(seq++);
proRole.setProjectId(sysProject.getId());
proRole.setId(snowflake.nextId());
//为虚拟项目角色添加关联的项目id

11
tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java

@ -55,4 +55,15 @@ public interface IProTaskDetailService {
* @return 返回所有任务
*/
List<TaskVo.TaskListByProjectId> queryAllTaskByProjectId(Long currentUserId, TaskDto.QueryAllTaskByProjectId projectId) throws Exception;
/**
* 新增和修改交付物的方法
* @param jiaoFuWu
*/
void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu);
/**
* 新增和修改交付物的方法
* @param jiaoFuWu
*/
void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu);
}

73
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -17,6 +17,8 @@ import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.*;
import com.ccsens.tall.persist.dao.ProTaskShowDao;
import com.ccsens.tall.persist.mapper.ProPluginConfigMapper;
import com.ccsens.tall.persist.mapper.ProTaskDeliverMapper;
import com.ccsens.tall.persist.mapper.ProTaskInputDocMapper;
import com.ccsens.tall.util.TallConstant;
import com.ccsens.tall.util.TaskUtil;
import com.ccsens.util.CodeEnum;
@ -30,6 +32,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@ -89,6 +92,10 @@ public class ProTaskDetailService implements IProTaskDetailService {
private TaskPluginService taskPluginService;
@Resource
private ProShowDao proShowDao;
@Resource
private ProTaskDeliverMapper proTaskDeliverMapper;
@Resource
private ProTaskInputDocMapper proTaskInputDocMapper;
@Override
public void saveTaskDetail(ProTaskDetail taskDetail) {
@ -1410,6 +1417,27 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
});
}
//修改输入文档信息
if (CollectionUtil.isNotEmpty(updateTaskInfo.getInputList())) {
updateTaskInfo.getInputList().forEach(taskDeliver -> {
if (StrUtil.isNotEmpty(taskDeliver.getDeliverName())) {
if (ObjectUtil.isNotNull(taskDeliver.getDeliverId())) {
ProTaskInputDoc deliver = proTaskInputDocMapper.selectByPrimaryKey(taskDeliver.getDeliverId());
if (ObjectUtil.isNotNull(deliver)) {
deliver.setName(taskDeliver.getDeliverName());
proTaskInputDocMapper.updateByPrimaryKeySelective(deliver);
}
} else {
ProTaskInputDoc deliver = new ProTaskInputDoc();
deliver.setId(snowflake.nextId());
deliver.setTaskDetailId(taskDetail.getId());
deliver.setName(taskDeliver.getDeliverName());
deliver.setIsUpload(0);
proTaskInputDocMapper.insertSelective(deliver);
}
}
});
}
//修改数据
taskDetailDao.updateByPrimaryKeySelective(taskDetail);
@ -1638,4 +1666,49 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
return taskList;
}
/**
* 新增和修改交付物
* @param jiaoFuWu
*/
@Override
public void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu) {
ProTaskDeliverExample proTaskDeliverExample=new ProTaskDeliverExample();
ProTaskDeliver proTaskDeliver=new ProTaskDeliver();
if(jiaoFuWu.getId()!=null && StringUtils.isNotBlank(jiaoFuWu.getNames())){
//修改
proTaskDeliver.setId(jiaoFuWu.getId());
proTaskDeliver.setName(jiaoFuWu.getNames());
proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
proTaskDeliverMapper.updateByExampleSelective(proTaskDeliver,proTaskDeliverExample);
}else if(jiaoFuWu.getId()==null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
//新增
proTaskDeliver.setId(snowflake.nextId());
proTaskDeliver.setName(jiaoFuWu.getNames());
proTaskDeliverMapper.insertSelective(proTaskDeliver);
}
}
/**
* 新增和修改输入文档
* @param jiaoFuWu
*/
@Override
public void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu) {
ProTaskInputDocExample proTaskDeliverExample=new ProTaskInputDocExample();
ProTaskInputDoc proTaskDeliver=new ProTaskInputDoc();
if(jiaoFuWu.getId()!=null && StringUtils.isNotBlank(jiaoFuWu.getNames())){
//修改
proTaskDeliver.setId(jiaoFuWu.getId());
proTaskDeliver.setName(jiaoFuWu.getNames());
proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
proTaskInputDocMapper.updateByExampleSelective(proTaskDeliver,proTaskDeliverExample);
}else if(jiaoFuWu.getId()==null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
//新增
proTaskDeliver.setId(snowflake.nextId());
proTaskDeliver.setName(jiaoFuWu.getNames());
proTaskInputDocMapper.insertSelective(proTaskDeliver);
}
}
}

50
tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java

@ -12,11 +12,9 @@ import com.ccsens.tall.bean.dto.message.SyncMessageWithStartDto;
import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.*;
import com.ccsens.tall.persist.mapper.ProTaskInputDocMapper;
import com.ccsens.tall.util.TallConstant;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.TransactionUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.*;
import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.bean.message.common.MessageConstant;
import com.ccsens.util.config.RabbitMQConfig;
@ -25,7 +23,9 @@ import com.ccsens.util.cron.NatureToDate;
import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sun.org.apache.bcel.internal.generic.IAND;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -83,6 +83,8 @@ public class TaskSubTimeService implements ITaskSubTimeService {
//定义事务对象
@Resource
private PlatformTransactionManager transactionManager;
@Resource
private ProTaskInputDocMapper proTaskInputDocMapper;
@Override
public void saveProTaskSubTask(ProTaskSubTime proTaskSubTime) {
@ -446,14 +448,40 @@ public class TaskSubTimeService implements ITaskSubTimeService {
}
}
//交付物
if (StrUtil.isNotEmpty(addTask.getTaskDeliver())) {
ProTaskDeliver deliver = new ProTaskDeliver();
deliver.setId(snowflake.nextId());
deliver.setTaskDetailId(detail.getId());
deliver.setName(addTask.getTaskDeliver());
deliver.setIsInput(0);
taskDeliverDao.insertSelective(deliver);
// if (StrUtil.isNotEmpty(addTask.getTaskDeliver())) {
// ProTaskDeliver deliver = new ProTaskDeliver();
// deliver.setId(snowflake.nextId());
// deliver.setTaskDetailId(detail.getId());
// deliver.setName(addTask.getTaskDeliver());
// deliver.setIsInput(0);
// taskDeliverDao.insertSelective(deliver);
// }
//交付物列表的增加
if(addTask.getTaskDeliver().size()>0){
addTask.getTaskDeliver().forEach(action->{
if(StringUtils.isNotBlank(action)) {
ProTaskDeliver deliver = new ProTaskDeliver();
deliver.setId(snowflake.nextId());
deliver.setTaskDetailId(detail.getId());
deliver.setName(action);
deliver.setIsInput(0);
taskDeliverDao.insertSelective(deliver);
}
});
}
//输入文档的增加
if(addTask.getInputDoc().size()>0){
addTask.getInputDoc().forEach(action->{
if(StringUtils.isNotBlank(action)) {
ProTaskInputDoc proTaskInputDoc = new ProTaskInputDoc();
proTaskInputDoc.setId(snowflake.nextId());
proTaskInputDoc.setName(action);
proTaskInputDoc.setTaskDetailId(detail.getId());
proTaskInputDocMapper.insertSelective(proTaskInputDoc);
}
});
}
//插件
if (CollectionUtil.isNotEmpty(addTask.getPluginList())) {
for (Long pluginId : addTask.getPluginList()) {

25
tall/src/main/resources/mapper_raw/ProRoleMapper.xml

@ -12,6 +12,7 @@
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="relevance_project_id" jdbcType="BIGINT" property="relevanceProjectId" />
<result column="show" jdbcType="TINYINT" property="show" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -73,7 +74,7 @@
</sql>
<sql id="Base_Column_List">
id, project_id, parent_id, name, description, sequence, created_at, updated_at, rec_status,
relevance_project_id
relevance_project_id, show
</sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProRoleExample" resultMap="BaseResultMap">
select
@ -109,11 +110,11 @@
insert into t_pro_role (id, project_id, parent_id,
name, description, sequence,
created_at, updated_at, rec_status,
relevance_project_id)
relevance_project_id, show)
values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT},
#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{sequence,jdbcType=INTEGER},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT},
#{relevanceProjectId,jdbcType=BIGINT})
#{relevanceProjectId,jdbcType=BIGINT}, #{show,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProRole">
insert into t_pro_role
@ -148,6 +149,9 @@
<if test="relevanceProjectId != null">
relevance_project_id,
</if>
<if test="show != null">
show,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -180,6 +184,9 @@
<if test="relevanceProjectId != null">
#{relevanceProjectId,jdbcType=BIGINT},
</if>
<if test="show != null">
#{show,jdbcType=TINYINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProRoleExample" resultType="java.lang.Long">
@ -221,6 +228,9 @@
<if test="record.relevanceProjectId != null">
relevance_project_id = #{record.relevanceProjectId,jdbcType=BIGINT},
</if>
<if test="record.show != null">
show = #{record.show,jdbcType=TINYINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -237,7 +247,8 @@
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT},
relevance_project_id = #{record.relevanceProjectId,jdbcType=BIGINT}
relevance_project_id = #{record.relevanceProjectId,jdbcType=BIGINT},
show = #{record.show,jdbcType=TINYINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -272,6 +283,9 @@
<if test="relevanceProjectId != null">
relevance_project_id = #{relevanceProjectId,jdbcType=BIGINT},
</if>
<if test="show != null">
show = #{show,jdbcType=TINYINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -285,7 +299,8 @@
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT},
relevance_project_id = #{relevanceProjectId,jdbcType=BIGINT}
relevance_project_id = #{relevanceProjectId,jdbcType=BIGINT},
show = #{show,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
Loading…
Cancel
Save