diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java index 173ca66a..7a14081d 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java @@ -73,5 +73,10 @@ public class RoleDto { @ApiModelProperty("角色id") private List roleIdList; } - + @Data + @ApiModel("查询该人下的所有的角色信息") + public static class QueryRoleShows { + @ApiModelProperty("项目id") + private Long projectId; + } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java new file mode 100644 index 00000000..97950217 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java @@ -0,0 +1,95 @@ +package com.ccsens.tall.bean.po; + +import java.io.Serializable; +import java.util.Date; + +public class ProMemberRoleShow implements Serializable { + private Long id; + + private Long memberId; + + private Long roleId; + + private Integer sequence; + + private Date createdAt; + + private Date updatedAt; + + private Byte recStatus; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMemberId() { + return memberId; + } + + public void setMemberId(Long memberId) { + this.memberId = memberId; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public Integer getSequence() { + return sequence; + } + + public void setSequence(Integer sequence) { + this.sequence = sequence; + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + } + + public Byte getRecStatus() { + return recStatus; + } + + public void setRecStatus(Byte recStatus) { + this.recStatus = recStatus; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", memberId=").append(memberId); + sb.append(", roleId=").append(roleId); + sb.append(", sequence=").append(sequence); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", recStatus=").append(recStatus); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java new file mode 100644 index 00000000..af0c3e13 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java @@ -0,0 +1,621 @@ +package com.ccsens.tall.bean.po; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class ProMemberRoleShowExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public ProMemberRoleShowExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andMemberIdIsNull() { + addCriterion("member_id is null"); + return (Criteria) this; + } + + public Criteria andMemberIdIsNotNull() { + addCriterion("member_id is not null"); + return (Criteria) this; + } + + public Criteria andMemberIdEqualTo(Long value) { + addCriterion("member_id =", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdNotEqualTo(Long value) { + addCriterion("member_id <>", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdGreaterThan(Long value) { + addCriterion("member_id >", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdGreaterThanOrEqualTo(Long value) { + addCriterion("member_id >=", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdLessThan(Long value) { + addCriterion("member_id <", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdLessThanOrEqualTo(Long value) { + addCriterion("member_id <=", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdIn(List values) { + addCriterion("member_id in", values, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdNotIn(List values) { + addCriterion("member_id not in", values, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdBetween(Long value1, Long value2) { + addCriterion("member_id between", value1, value2, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdNotBetween(Long value1, Long value2) { + addCriterion("member_id not between", value1, value2, "memberId"); + return (Criteria) this; + } + + public Criteria andRoleIdIsNull() { + addCriterion("role_id is null"); + return (Criteria) this; + } + + public Criteria andRoleIdIsNotNull() { + addCriterion("role_id is not null"); + return (Criteria) this; + } + + public Criteria andRoleIdEqualTo(Long value) { + addCriterion("role_id =", value, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdNotEqualTo(Long value) { + addCriterion("role_id <>", value, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdGreaterThan(Long value) { + addCriterion("role_id >", value, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { + addCriterion("role_id >=", value, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdLessThan(Long value) { + addCriterion("role_id <", value, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdLessThanOrEqualTo(Long value) { + addCriterion("role_id <=", value, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdIn(List values) { + addCriterion("role_id in", values, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdNotIn(List values) { + addCriterion("role_id not in", values, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdBetween(Long value1, Long value2) { + addCriterion("role_id between", value1, value2, "roleId"); + return (Criteria) this; + } + + public Criteria andRoleIdNotBetween(Long value1, Long value2) { + addCriterion("role_id not between", value1, value2, "roleId"); + return (Criteria) this; + } + + public Criteria andSequenceIsNull() { + addCriterion("sequence is null"); + return (Criteria) this; + } + + public Criteria andSequenceIsNotNull() { + addCriterion("sequence is not null"); + return (Criteria) this; + } + + public Criteria andSequenceEqualTo(Integer value) { + addCriterion("sequence =", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceNotEqualTo(Integer value) { + addCriterion("sequence <>", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceGreaterThan(Integer value) { + addCriterion("sequence >", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceGreaterThanOrEqualTo(Integer value) { + addCriterion("sequence >=", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceLessThan(Integer value) { + addCriterion("sequence <", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceLessThanOrEqualTo(Integer value) { + addCriterion("sequence <=", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceIn(List values) { + addCriterion("sequence in", values, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceNotIn(List values) { + addCriterion("sequence not in", values, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceBetween(Integer value1, Integer value2) { + addCriterion("sequence between", value1, value2, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceNotBetween(Integer value1, Integer value2) { + addCriterion("sequence not between", value1, value2, "sequence"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNull() { + addCriterion("created_at is null"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNotNull() { + addCriterion("created_at is not null"); + return (Criteria) this; + } + + public Criteria andCreatedAtEqualTo(Date value) { + addCriterion("created_at =", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotEqualTo(Date value) { + addCriterion("created_at <>", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThan(Date value) { + addCriterion("created_at >", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("created_at >=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThan(Date value) { + addCriterion("created_at <", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThanOrEqualTo(Date value) { + addCriterion("created_at <=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtIn(List values) { + addCriterion("created_at in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotIn(List values) { + addCriterion("created_at not in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtBetween(Date value1, Date value2) { + addCriterion("created_at between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotBetween(Date value1, Date value2) { + addCriterion("created_at not between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNull() { + addCriterion("updated_at is null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNotNull() { + addCriterion("updated_at is not null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtEqualTo(Date value) { + addCriterion("updated_at =", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotEqualTo(Date value) { + addCriterion("updated_at <>", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThan(Date value) { + addCriterion("updated_at >", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("updated_at >=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThan(Date value) { + addCriterion("updated_at <", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { + addCriterion("updated_at <=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIn(List values) { + addCriterion("updated_at in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotIn(List values) { + addCriterion("updated_at not in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtBetween(Date value1, Date value2) { + addCriterion("updated_at between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { + addCriterion("updated_at not between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNull() { + addCriterion("rec_status is null"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNotNull() { + addCriterion("rec_status is not null"); + return (Criteria) this; + } + + public Criteria andRecStatusEqualTo(Byte value) { + addCriterion("rec_status =", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotEqualTo(Byte value) { + addCriterion("rec_status <>", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThan(Byte value) { + addCriterion("rec_status >", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("rec_status >=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThan(Byte value) { + addCriterion("rec_status <", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThanOrEqualTo(Byte value) { + addCriterion("rec_status <=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusIn(List values) { + addCriterion("rec_status in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotIn(List values) { + addCriterion("rec_status not in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusBetween(Byte value1, Byte value2) { + addCriterion("rec_status between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { + addCriterion("rec_status not between", value1, value2, "recStatus"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java index be62e06f..f92d163a 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java @@ -19,7 +19,24 @@ public class RoleVo { @ApiModelProperty("角色名") private String roleName; } - + @Data + @ApiModel("通过项目id查询该人下的所有的角色,包含不属于他的角色集合") + public static class JueSeByProIdLists{ + @ApiModelProperty("已添加的角色信息") + private List listBefore; + @ApiModelProperty("未添加的角色信息") + private List listAfter; + } + @Data + @ApiModel("通过项目id查询该人下的所有的角色,包含不属于他的角色") + public static class JueSeByProId{ + @ApiModelProperty("角色id") + private Long id; + @ApiModelProperty("角色名称") + private String name; + @ApiModelProperty("角色排序") + private Integer sequence; + } @Data @ApiModel("添加时返回成员信息") public static class MemberInfo{ diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java index 440eb3af..b9e509f7 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java @@ -17,6 +17,7 @@ public interface ProRoleDao extends ProRoleMapper{ List selectFirstRoleByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long userId); List selectSecondRolesByProjectId(@Param("projectId") Long projectId); + List selectSecondRolesShowByProjectId(@Param("projectId") Long projectId); List selectCareLessRoleByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long currentUserId); @@ -69,6 +70,21 @@ public interface ProRoleDao extends ProRoleMapper{ */ List getRoleTaskByProjectId(@Param("projectId")Long projectId, @Param("thisDayStartTime")long thisDayStartTime, @Param("thisDayEndTime")long thisDayEndTime); + /** + * 查询已经存在的角色 + * @param projectId + * @return + */ + List queryRoleShowslistAfter(Long projectId); + + /** + * 查询未添加的角色 + * @param memberId + * @param listBeforeId + * @return + */ + List queryRoleShowslistBefore(Long memberId, List listBeforeId); + // /** // * 查找项目下的所有成员的名字用“,”分隔 // * @param projectId 项目id diff --git a/tall/src/main/java/com/ccsens/tall/persist/mapper/ProMemberRoleShowMapper.java b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProMemberRoleShowMapper.java new file mode 100644 index 00000000..e93c0a04 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProMemberRoleShowMapper.java @@ -0,0 +1,30 @@ +package com.ccsens.tall.persist.mapper; + +import com.ccsens.tall.bean.po.ProMemberRoleShow; +import com.ccsens.tall.bean.po.ProMemberRoleShowExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface ProMemberRoleShowMapper { + long countByExample(ProMemberRoleShowExample example); + + int deleteByExample(ProMemberRoleShowExample example); + + int deleteByPrimaryKey(Long id); + + int insert(ProMemberRoleShow record); + + int insertSelective(ProMemberRoleShow record); + + List selectByExample(ProMemberRoleShowExample example); + + ProMemberRoleShow selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") ProMemberRoleShow record, @Param("example") ProMemberRoleShowExample example); + + int updateByExample(@Param("record") ProMemberRoleShow record, @Param("example") ProMemberRoleShowExample example); + + int updateByPrimaryKeySelective(ProMemberRoleShow record); + + int updateByPrimaryKey(ProMemberRoleShow record); +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java index 249fcc14..710fac62 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java @@ -664,54 +664,134 @@ public class ExcelService implements IExcelService { if(ObjectUtil.isNull(row)){ continue; } + String task1="",task2="",description="",beginTime="",endTime="",label="",repeat="",subTaskCell="",subProject="",inputFiles=""; + String deliver="",executorRole="",checkerRole="",money="",delay="",delayTime="",loopTo="",loopTimes="",input=""; + if(map.get("任务(节点)")!=null){ //一级任务名称 - String task1 = ExcelUtil.getCellValue(row.getCell(map.get("任务(节点)"))); + task1 = ExcelUtil.getCellValue(row.getCell(map.get("任务(节点)"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("任务(节点)")); + } + if(map.get("二级任务(节点)")!=null){ //二级任务名称 - String task2 = ExcelUtil.getCellValue(row.getCell(map.get("二级任务(节点)"))); + task2 = ExcelUtil.getCellValue(row.getCell(map.get("二级任务(节点)"))); //详情 - String description = ExcelUtil.getCellValue(row.getCell(map.get("任务描述/要求"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("二级任务(节点)")); + } + if(map.get("任务描述/要求")!=null){ + description = ExcelUtil.getCellValue(row.getCell(map.get("任务描述/要求"))); //开始时间 - String beginTime = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(map.get("开始时间")))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("任务描述/要求")); + } + if(map.get("开始时间")!=null){ + beginTime = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(map.get("开始时间")))); //结束时间 - String endTime = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(map.get("结束时间")))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("开始时间")); + } + if(map.get("结束时间")!=null){ + endTime = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(map.get("结束时间")))); //标签 - String label=StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(map.get("标签")))); - + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("结束时间")); + } + if(map.get("标签")!=null){ + label=StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(map.get("标签")))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("标签")); + } //重复 - String repeat = ExcelUtil.getCellValue(row.getCell(map.get("重复"))); + if(map.get("重复")!=null){ + repeat = ExcelUtil.getCellValue(row.getCell(map.get("重复"))); + + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("重复")); + } //关联子日程表 - String subTaskCell = ExcelUtil.getCellValue(row.getCell(map.get("关联子日程表"))); + if(map.get("关联子日程表")!=null){ + subTaskCell = ExcelUtil.getCellValue(row.getCell(map.get("关联子日程表"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("关联子日程表")); + } //关联子项目表 - String subProject = ExcelUtil.getCellValue(row.getCell(map.get("关联子项目表"))); + if(map.get("关联子项目表")!=null){ + subProject = ExcelUtil.getCellValue(row.getCell(map.get("关联子项目表"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("关联子项目表")); + } //输入文档 - String inputFiles=StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(map.get("输入文档")))); + if(map.get("输入文档")!=null){ + inputFiles=StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(map.get("输入文档")))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("输入文档")); + } //交付物 - String deliver = ExcelUtil.getCellValue(row.getCell(map.get("交付物/MVP项"))); + if(map.get("交付物/MVP项")!=null){ + deliver = ExcelUtil.getCellValue(row.getCell(map.get("交付物/MVP项"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("交付物/MVP项")); + } //负责人 - String executorRole = ExcelUtil.getCellValue(row.getCell(map.get("负责人"))); + if(map.get("负责人")!=null){ + executorRole = ExcelUtil.getCellValue(row.getCell(map.get("负责人"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("负责人")); + } //检查人 - String checkerRole = ExcelUtil.getCellValue(row.getCell(map.get("检查人"))); + if(map.get("检查人")!=null){ + checkerRole = ExcelUtil.getCellValue(row.getCell(map.get("检查人"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("检查人")); + } //即时奖惩(元) - String money = ExcelUtil.getCellValue(row.getCell(map.get("即时奖惩(元)"))); + if(map.get("即时奖惩(元)")!=null){ + money = ExcelUtil.getCellValue(row.getCell(map.get("即时奖惩(元)"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("即时奖惩(元)")); + } //任务切换模式 - String delay = ExcelUtil.getCellValue(row.getCell(map.get("任务切换模式"))); + if(map.get("任务切换模式")!=null){ + delay = ExcelUtil.getCellValue(row.getCell(map.get("任务切换模式"))); + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("任务切换模式")); + } //延迟时间 //(自动延迟模式可用) - String delayTime = ExcelUtil.getCellValue(row.getCell(map.get("延迟时间(自动延迟模式可用)"))); + if(map.get("延迟时间(自动延迟模式可用)")!=null){ + delayTime = ExcelUtil.getCellValue(row.getCell(map.get("延迟时间(自动延迟模式可用)"))); //TODO 跳转任务和跳转次数暂不处理 + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("延迟时间(自动延迟模式可用)")); + } //跳转任务 - String loopTo = ExcelUtil.getCellValue(row.getCell(16)); + if(map.get("任务(节点)")!=null){ + loopTo = ExcelUtil.getCellValue(row.getCell(16)); + + }else { +// throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("")); + } //跳转次数 - String loopTimes = ExcelUtil.getCellValue(row.getCell(17)); + if(map.get("任务(节点)")!=null){ + loopTimes = ExcelUtil.getCellValue(row.getCell(17)); //这个不知道要不要先给你留着 + }else { + throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("")); + } //输入文件 - String input = ExcelUtil.getCellValue(row.getCell(18)); + if(map.get("任务(节点)")!=null){ + input = ExcelUtil.getCellValue(row.getCell(18)); //二级任务名不能为空 // if(StrUtil.isEmpty(task2)){ // throw new BaseException(CodeEnum.WBS_NOT_TASK_NAME.addMsg(wbsSheet.getSheetName()+i)); // } //一级任务 + }else { +// throw new BaseException(CodeEnum.NOTNAME.addMsgLwb("")); + } + if (StrUtil.isNotEmpty(task1)) { ProTaskDetail firstTaskDetail = new ProTaskDetail(); firstTaskDetail.setId(snowflake.nextId()); diff --git a/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java b/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java index 3636ab90..97c1ee7a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java @@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.io.*; +import java.io.File; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; diff --git a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java index 44f43b0e..18d1299a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java @@ -5,6 +5,7 @@ import com.ccsens.tall.bean.po.ProRole; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.TaskVo; +import com.ccsens.util.bean.dto.QueryDto; import java.util.List; @@ -18,6 +19,8 @@ public interface IProRoleService { List getRealMemberRolesByProjectId(Long projectId); + List getRealMemberRolesShowByProjectId(Long projectId,Long userId); + int selectPowerByRoleName(Long userId,Long projectId); TaskVo.RoleCheckList selectRoleByCheckOrExecutor(Long executorRole); @@ -56,4 +59,11 @@ public interface IProRoleService { * @return */ List queryRoleByProjectId(Long projectId); + + /** + * 查询该人下的所有的角色信息 + * @param param + * @return + */ + RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 67dfd654..6e7a55be 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -12,10 +12,15 @@ import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.persist.dao.*; +import com.ccsens.tall.persist.mapper.ProMemberMapper; +import com.ccsens.tall.persist.mapper.ProMemberRoleMapper; +import com.ccsens.tall.persist.mapper.ProMemberRoleShowMapper; import com.ccsens.tall.persist.mapper.ProUserAttentionRoleMapper; import com.ccsens.util.CodeEnum; import com.ccsens.util.WebConstant; +import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.util.exception.BaseException; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -25,6 +30,7 @@ import org.w3c.dom.ls.LSInput; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * @author 逗 @@ -59,7 +65,12 @@ public class ProRoleService implements IProRoleService { private ProUserAttentionRoleMapper userAttentionRoleMapper; @Resource private ProShowDao proShowDao; - + @Resource + private ProMemberRoleShowMapper proMemberRoleShowMapper; + @Resource + private ProMemberMapper proMemberMapper; + @Resource + private ProMemberRoleMapper proMemberRoleMapper; @Override public void saveProRole(ProRole proRole) { proRoleDao.insertSelective(proRole); @@ -82,8 +93,9 @@ public class ProRoleService implements IProRoleService { List memberRoleList; //获取用户在项目中的角色 List roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, projectId, imitation); + //1.查询二级角色(项目经理+项目成员+mvp) - memberRoleList = getRealMemberRolesByProjectId(projectId); + memberRoleList = getRealMemberRolesShowByProjectId(projectId,currentUserId); if (CollectionUtil.isNotEmpty(memberRoleList)) { if (CollectionUtil.isNotEmpty(roleList)) { @@ -223,13 +235,58 @@ public class ProRoleService implements IProRoleService { // } return memberRoleList; } - @Override public List getRealMemberRolesByProjectId(Long projectId) { //查询二级角色 List memberRoleList; memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId); - //查询项目配置, + + //TODO 查询项目配置, + if(CollectionUtil.isEmpty(memberRoleList)){ + return memberRoleList; + } + + return memberRoleList; + } + @Override + public List getRealMemberRolesShowByProjectId(Long projectId,Long userId) { + //先从userid和项目id获取当前用户的成员id,查看role-show里面是否有这个成员的数据 + ProMemberExample proMemberExample=new ProMemberExample(); + proMemberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId).andRecStatusEqualTo((byte)0); + List proMembers = proMemberMapper.selectByExample(proMemberExample); + Long memberId=0L; + if(CollectionUtil.isNotEmpty(proMembers)&&proMembers.size()==1){ + memberId=proMembers.get(0).getId(); + }else { + throw new BaseException(CodeEnum.CHONGFU); + } + //查看角色展示列表中是否有数据 + ProMemberRoleShowExample proMemberRoleShowExample=new ProMemberRoleShowExample(); + proMemberRoleShowExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0); + List proMemberRoleShows = proMemberRoleShowMapper.selectByExample(proMemberRoleShowExample); + if(CollectionUtil.isEmpty(proMemberRoleShows)){ + //需要从原表中导入数据 + ProMemberRoleExample proMemberRoleExample=new ProMemberRoleExample(); + proMemberRoleExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0); + List proMemberRoles = proMemberRoleMapper.selectByExample(proMemberRoleExample); + if(CollectionUtil.isNotEmpty(proMemberRoles)){ + ProMemberRoleShow proMemberRoleShow=new ProMemberRoleShow(); + Long finalMemberId = memberId; + Integer[] seq=new Integer[]{0}; + proMemberRoles.forEach(action->{ + proMemberRoleShow.setId(action.getId()); + proMemberRoleShow.setMemberId(finalMemberId); + proMemberRoleShow.setRoleId(action.getRoleId()); + proMemberRoleShow.setSequence(++seq[0]); + proMemberRoleShowMapper.insertSelective(proMemberRoleShow); + }); + } + } + //查询二级角色 + List memberRoleList; + memberRoleList = proRoleDao.selectSecondRolesShowByProjectId(projectId); + + //TODO 查询项目配置, if(CollectionUtil.isEmpty(memberRoleList)){ return memberRoleList; } @@ -586,4 +643,26 @@ public class ProRoleService implements IProRoleService { public List queryRoleByProjectId(Long projectId) { return proRoleDao.queryRoleByProjectId(projectId); } + + @Override + public RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param) { + //获取成员id + ProMemberExample proMemberExample=new ProMemberExample(); + proMemberExample.createCriteria().andUserIdEqualTo(param.getUserId()).andProjectIdEqualTo(param.getParam().getProjectId()).andRecStatusEqualTo((byte)0); + List proMembers = proMemberMapper.selectByExample(proMemberExample); + Long memberId=0L; + if(CollectionUtil.isNotEmpty(proMembers)&&proMembers.size()==1){ + memberId=proMembers.get(0).getId(); + }else { + throw new BaseException(CodeEnum.CHONGFU); + } + RoleVo.JueSeByProIdLists jueSeByProIdLists=new RoleVo.JueSeByProIdLists(); + //查询已经添加的角色 + List listAfter=proRoleDao.queryRoleShowslistAfter(param.getParam().getProjectId()); + List listBeforeId= listAfter.stream().map(action ->{ + return action.getId(); + }).collect(Collectors.toList()); + List listBefor=proRoleDao.queryRoleShowslistBefore(memberId,listBeforeId); + return null; + } } diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java b/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java index bef931ae..f07ffab2 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java @@ -27,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.*; +import java.io.File; import java.util.*; import java.util.concurrent.atomic.AtomicReference; diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java index 4cf90bb9..0cee7209 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java @@ -23,7 +23,6 @@ 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; diff --git a/tall/src/main/java/com/ccsens/tall/web/RoleController.java b/tall/src/main/java/com/ccsens/tall/web/RoleController.java index 41f21f80..426d55d9 100644 --- a/tall/src/main/java/com/ccsens/tall/web/RoleController.java +++ b/tall/src/main/java/com/ccsens/tall/web/RoleController.java @@ -1,15 +1,21 @@ package com.ccsens.tall.web; +import com.ccsens.cloudutil.annotation.MustLogin; +import com.ccsens.tall.annotation.MustLoginTall; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.dto.RoleDto; +import com.ccsens.tall.bean.dto.WeekMeetingDto; +import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.service.IProRoleService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; +import com.ccsens.util.bean.dto.QueryDto; import io.jsonwebtoken.Claims; import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -20,6 +26,7 @@ import java.util.List; /** * @author 逗 */ +@Slf4j @Api(tags = "角色操作相关api" ) @RestController @RequestMapping("/roles") @@ -113,5 +120,12 @@ public class RoleController { List roleByProjectIdList = proRoleService.queryRoleByProjectId(projectIdDto.getProjectId()); return JsonResponse.newInstance().ok(roleByProjectIdList); } - + @MustLoginTall + @ApiOperation(value = "获取该成员的角色信息和未添加的角色信息",notes = "") + @RequestMapping(value = "/queryRoleShows", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryRoleShows(@ApiParam @Validated @RequestBody QueryDto param){ + log.info("传入参数:{}", param); + RoleVo.JueSeByProIdLists jueSeByProIdLists=proRoleService.queryRoleShows(param); + return JsonResponse.newInstance().ok(jueSeByProIdLists); + } } diff --git a/tall/src/main/resources/mapper_dao/IInputDocDao.xml b/tall/src/main/resources/mapper_dao/IInputDocDao.xml index b70ebda6..367191cb 100644 --- a/tall/src/main/resources/mapper_dao/IInputDocDao.xml +++ b/tall/src/main/resources/mapper_dao/IInputDocDao.xml @@ -30,13 +30,13 @@ tsp.description AS pDescription, tsp.begin_time as pBeginTime, tsp.end_time as pEndTime, - (tsp.end_time-tsp.begin_time)/1000/3600/24 as pDuration, + (tsp.end_time-tsp.begin_time) as pDuration, tptdt.id as task_id, tptdt.name, tptdt.description, tptdt.begin_time_sub_time, tptdt.end_time_sub_time, - (tptdt.end_time_sub_time-tptdt.begin_time_sub_time)/1000/3600/24 as duration, + (tptdt.end_time_sub_time-tptdt.begin_time_sub_time) as duration, tptdt.cycle, tptdt.priority, tptdt.milestone, diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index dedf8d4c..04618218 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -95,6 +95,34 @@ AND (mr.rec_status = 0 or mr.rec_status is null) AND (m.rec_status = 0 or m.rec_status is null) + + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/ProMemberRoleShowMapper.xml b/tall/src/main/resources/mapper_raw/ProMemberRoleShowMapper.xml new file mode 100644 index 00000000..c51847e0 --- /dev/null +++ b/tall/src/main/resources/mapper_raw/ProMemberRoleShowMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, member_id, role_id, sequence, created_at, updated_at, rec_status + + + + + delete from t_pro_member_role_show + where id = #{id,jdbcType=BIGINT} + + + delete from t_pro_member_role_show + + + + + + insert into t_pro_member_role_show (id, member_id, role_id, + sequence, created_at, updated_at, + rec_status) + values (#{id,jdbcType=BIGINT}, #{memberId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}, + #{sequence,jdbcType=INTEGER}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, + #{recStatus,jdbcType=TINYINT}) + + + insert into t_pro_member_role_show + + + id, + + + member_id, + + + role_id, + + + sequence, + + + created_at, + + + updated_at, + + + rec_status, + + + + + #{id,jdbcType=BIGINT}, + + + #{memberId,jdbcType=BIGINT}, + + + #{roleId,jdbcType=BIGINT}, + + + #{sequence,jdbcType=INTEGER}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + + + + update t_pro_member_role_show + + + id = #{record.id,jdbcType=BIGINT}, + + + member_id = #{record.memberId,jdbcType=BIGINT}, + + + role_id = #{record.roleId,jdbcType=BIGINT}, + + + sequence = #{record.sequence,jdbcType=INTEGER}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + + + + + + update t_pro_member_role_show + set id = #{record.id,jdbcType=BIGINT}, + member_id = #{record.memberId,jdbcType=BIGINT}, + role_id = #{record.roleId,jdbcType=BIGINT}, + sequence = #{record.sequence,jdbcType=INTEGER}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT} + + + + + + update t_pro_member_role_show + + + member_id = #{memberId,jdbcType=BIGINT}, + + + role_id = #{roleId,jdbcType=BIGINT}, + + + sequence = #{sequence,jdbcType=INTEGER}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_pro_member_role_show + set member_id = #{memberId,jdbcType=BIGINT}, + role_id = #{roleId,jdbcType=BIGINT}, + sequence = #{sequence,jdbcType=INTEGER}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index 9c9979e2..b7817af2 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -187,6 +187,8 @@ public enum CodeEnum { MEIYOUGAIYISHENG(156,"该医生信息查询不正确",true), QINGTIJIAOSHITI(157,"未做出修改答案,修改后再提交",true), DOC_REPEAT(158,"输入文档已存在",true), + NOTNAME(159,"未找到该列",true), + CHONGFU(160,"该成员在项目下有多个成员角色",true), ; @@ -218,6 +220,10 @@ public enum CodeEnum { this.msg = msg+"行:"+this.msg; return this; } + public CodeEnum addMsgLwb(String msg) { + this.msg = "未找到名为“"+msg+"”的列,请检查列名称是否正确"; + return this; + } public static CodeEnum getByCode(int code) { for (CodeEnum codeEnum: CodeEnum.values()) { if (codeEnum.getCode() == code) {