From ae29f3a32e25306912bb65f6e10c9e0ea258e89f Mon Sep 17 00:00:00 2001 From: wang0018 <1007152140@qq.com> Date: Tue, 30 Mar 2021 14:35:26 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4wbs=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E6=9C=AA=E6=89=BE=E5=88=B0=E5=88=97=E6=98=8E=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/service/ExcelService.java | 120 +++++++++++++++--- .../ccsens/tall/service/ProRoleService.java | 1 + tall/src/main/resources/application.yml | 4 +- .../main/java/com/ccsens/util/CodeEnum.java | 5 + 4 files changed, 108 insertions(+), 22 deletions(-) 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/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 67dfd654..7d11ccf4 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -82,6 +82,7 @@ public class ProRoleService implements IProRoleService { List memberRoleList; //获取用户在项目中的角色 List roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, projectId, imitation); + //1.查询二级角色(项目经理+项目成员+mvp) memberRoleList = getRealMemberRolesByProjectId(projectId); diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index e75cc2c3..b5408a3a 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: prod - include: util-prod,common + active: dev + include: util-dev,common diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index 9c9979e2..5e823994 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -187,6 +187,7 @@ public enum CodeEnum { MEIYOUGAIYISHENG(156,"该医生信息查询不正确",true), QINGTIJIAOSHITI(157,"未做出修改答案,修改后再提交",true), DOC_REPEAT(158,"输入文档已存在",true), + NOTNAME(159,"未找到该列",true), ; @@ -218,6 +219,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) { From 03747e4d3ed9775b4a360ec86c395a03c1ea3556 Mon Sep 17 00:00:00 2001 From: wang0018 <1007152140@qq.com> Date: Tue, 30 Mar 2021 16:05:34 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=8B=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tall/bean/po/ProMemberRoleShow.java | 84 +++ .../bean/po/ProMemberRoleShowExample.java | 561 ++++++++++++++++++ .../mapper/ProMemberRoleShowMapper.java | 30 + .../ccsens/tall/service/IProRoleService.java | 2 +- .../ccsens/tall/service/ProRoleService.java | 44 +- .../resources/mapper_dao/IInputDocDao.xml | 4 +- .../mapper_raw/ProMemberRoleShowMapper.xml | 228 +++++++ .../main/java/com/ccsens/util/CodeEnum.java | 1 + 8 files changed, 947 insertions(+), 7 deletions(-) create mode 100644 tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java create mode 100644 tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java create mode 100644 tall/src/main/java/com/ccsens/tall/persist/mapper/ProMemberRoleShowMapper.java create mode 100644 tall/src/main/resources/mapper_raw/ProMemberRoleShowMapper.xml 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..a8e4510a --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java @@ -0,0 +1,84 @@ +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 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 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(", 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..12b571f9 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java @@ -0,0 +1,561 @@ +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 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/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/IProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java index 44f43b0e..bbd05263 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java @@ -16,7 +16,7 @@ public interface IProRoleService { List getRolesByProjectIdAndUserId(Long projectId, Long currentUserId,Integer imitation) throws Exception; - List getRealMemberRolesByProjectId(Long projectId); + List getRealMemberRolesByProjectId(Long projectId,Long userId); int selectPowerByRoleName(Long userId,Long projectId); 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 7d11ccf4..d32a3e73 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -12,6 +12,9 @@ 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; @@ -59,7 +62,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); @@ -84,7 +92,7 @@ public class ProRoleService implements IProRoleService { List roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, projectId, imitation); //1.查询二级角色(项目经理+项目成员+mvp) - memberRoleList = getRealMemberRolesByProjectId(projectId); + memberRoleList = getRealMemberRolesByProjectId(projectId,currentUserId); if (CollectionUtil.isNotEmpty(memberRoleList)) { if (CollectionUtil.isNotEmpty(roleList)) { @@ -226,11 +234,39 @@ public class ProRoleService implements IProRoleService { } @Override - public List getRealMemberRolesByProjectId(Long projectId) { + public List getRealMemberRolesByProjectId(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(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(proMemberRoleShows.size()>0){ + //则不需要从原表中导入数据 + + + }else { + //需要从原表中导入数据 + ProMemberRoleExample proMemberRoleExample=new ProMemberRoleExample(); + proMemberRoleExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0); + List proMemberRoles = proMemberRoleMapper.selectByExample(proMemberRoleExample); + if(CollectionUtil.isNotEmpty(proMemberRoles)){ + + } + } //查询二级角色 List memberRoleList; memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId); - //查询项目配置, + + //TODO 查询项目配置, if(CollectionUtil.isEmpty(memberRoleList)){ return memberRoleList; } 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_raw/ProMemberRoleShowMapper.xml b/tall/src/main/resources/mapper_raw/ProMemberRoleShowMapper.xml new file mode 100644 index 00000000..0f1fdbb9 --- /dev/null +++ b/tall/src/main/resources/mapper_raw/ProMemberRoleShowMapper.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + 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, 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, + created_at, updated_at, rec_status + ) + values (#{id,jdbcType=BIGINT}, #{memberId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}, + #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT} + ) + + + insert into t_pro_member_role_show + + + id, + + + member_id, + + + role_id, + + + created_at, + + + updated_at, + + + rec_status, + + + + + #{id,jdbcType=BIGINT}, + + + #{memberId,jdbcType=BIGINT}, + + + #{roleId,jdbcType=BIGINT}, + + + #{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}, + + + 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}, + 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}, + + + 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}, + 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 5e823994..b7817af2 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -188,6 +188,7 @@ public enum CodeEnum { QINGTIJIAOSHITI(157,"未做出修改答案,修改后再提交",true), DOC_REPEAT(158,"输入文档已存在",true), NOTNAME(159,"未找到该列",true), + CHONGFU(160,"该成员在项目下有多个成员角色",true), ; From 35e9c9676434842bc93db5597347d15f6b61984a Mon Sep 17 00:00:00 2001 From: wang0018 <1007152140@qq.com> Date: Tue, 30 Mar 2021 16:15:40 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/service/IProRoleService.java | 4 +++- .../com/ccsens/tall/service/ProRoleService.java | 16 ++++++++++++++-- tall/src/main/resources/application.yml | 4 ++-- 3 files changed, 19 insertions(+), 5 deletions(-) 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 bbd05263..1faaf820 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java @@ -16,7 +16,9 @@ public interface IProRoleService { List getRolesByProjectIdAndUserId(Long projectId, Long currentUserId,Integer imitation) throws Exception; - List getRealMemberRolesByProjectId(Long projectId,Long userId); + List getRealMemberRolesByProjectId(Long projectId); + + List getRealMemberRolesShowByProjectId(Long projectId,Long userId); int selectPowerByRoleName(Long userId,Long projectId); 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 d32a3e73..4903f44b 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -92,7 +92,7 @@ public class ProRoleService implements IProRoleService { List roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, projectId, imitation); //1.查询二级角色(项目经理+项目成员+mvp) - memberRoleList = getRealMemberRolesByProjectId(projectId,currentUserId); + memberRoleList = getRealMemberRolesShowByProjectId(projectId,currentUserId); if (CollectionUtil.isNotEmpty(memberRoleList)) { if (CollectionUtil.isNotEmpty(roleList)) { @@ -232,9 +232,21 @@ 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 getRealMemberRolesByProjectId(Long projectId,Long userId) { + 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); diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index ebc544af..b5408a3a 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common From fad010ef887bcf171837ef40349047b37b0f94f8 Mon Sep 17 00:00:00 2001 From: wang0018 <1007152140@qq.com> Date: Tue, 30 Mar 2021 18:04:45 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/dto/RoleDto.java | 7 ++- .../tall/bean/po/ProMemberRoleShow.java | 11 ++++ .../bean/po/ProMemberRoleShowExample.java | 60 +++++++++++++++++++ .../java/com/ccsens/tall/bean/vo/RoleVo.java | 19 +++++- .../ccsens/tall/persist/dao/ProRoleDao.java | 1 + .../ccsens/tall/service/IProRoleService.java | 8 +++ .../ccsens/tall/service/ProRoleService.java | 29 ++++++--- .../com/ccsens/tall/web/RoleController.java | 16 ++++- .../main/resources/mapper_dao/ProRoleDao.xml | 28 +++++++++ .../mapper_raw/ProMemberRoleShowMapper.xml | 25 ++++++-- 10 files changed, 188 insertions(+), 16 deletions(-) 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 index a8e4510a..97950217 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java @@ -10,6 +10,8 @@ public class ProMemberRoleShow implements Serializable { private Long roleId; + private Integer sequence; + private Date createdAt; private Date updatedAt; @@ -42,6 +44,14 @@ public class ProMemberRoleShow implements Serializable { this.roleId = roleId; } + public Integer getSequence() { + return sequence; + } + + public void setSequence(Integer sequence) { + this.sequence = sequence; + } + public Date getCreatedAt() { return createdAt; } @@ -75,6 +85,7 @@ public class ProMemberRoleShow implements Serializable { 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); 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 index 12b571f9..af0c3e13 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java @@ -285,6 +285,66 @@ public class ProMemberRoleShowExample { 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; 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..3344ec6c 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); 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 1faaf820..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; @@ -58,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 4903f44b..9865253a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -18,7 +18,9 @@ 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; @@ -252,7 +254,7 @@ public class ProRoleService implements IProRoleService { proMemberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId).andRecStatusEqualTo((byte)0); List proMembers = proMemberMapper.selectByExample(proMemberExample); Long memberId=0L; - if(proMembers.size()==1){ + if(CollectionUtil.isNotEmpty(proMembers)&&proMembers.size()==1){ memberId=proMembers.get(0).getId(); }else { throw new BaseException(CodeEnum.CHONGFU); @@ -261,22 +263,27 @@ public class ProRoleService implements IProRoleService { ProMemberRoleShowExample proMemberRoleShowExample=new ProMemberRoleShowExample(); proMemberRoleShowExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0); List proMemberRoleShows = proMemberRoleShowMapper.selectByExample(proMemberRoleShowExample); - if(proMemberRoleShows.size()>0){ - //则不需要从原表中导入数据 - - - }else { + 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.selectSecondRolesByProjectId(projectId); + memberRoleList = proRoleDao.selectSecondRolesShowByProjectId(projectId); //TODO 查询项目配置, if(CollectionUtil.isEmpty(memberRoleList)){ @@ -635,4 +642,10 @@ public class ProRoleService implements IProRoleService { public List queryRoleByProjectId(Long projectId) { return proRoleDao.queryRoleByProjectId(projectId); } + + @Override + public RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param) { + + return null; + } } 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/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index dedf8d4c..12454576 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) + select @@ -102,11 +103,11 @@ insert into t_pro_member_role_show (id, member_id, role_id, - created_at, updated_at, rec_status - ) + sequence, created_at, updated_at, + rec_status) values (#{id,jdbcType=BIGINT}, #{memberId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}, - #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT} - ) + #{sequence,jdbcType=INTEGER}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, + #{recStatus,jdbcType=TINYINT}) insert into t_pro_member_role_show @@ -120,6 +121,9 @@ role_id, + + sequence, + created_at, @@ -140,6 +144,9 @@ #{roleId,jdbcType=BIGINT}, + + #{sequence,jdbcType=INTEGER}, + #{createdAt,jdbcType=TIMESTAMP}, @@ -169,6 +176,9 @@ role_id = #{record.roleId,jdbcType=BIGINT}, + + sequence = #{record.sequence,jdbcType=INTEGER}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, @@ -188,6 +198,7 @@ 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} @@ -204,6 +215,9 @@ role_id = #{roleId,jdbcType=BIGINT}, + + sequence = #{sequence,jdbcType=INTEGER}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, @@ -220,6 +234,7 @@ 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} From 2f90110bdfbf338c4413d6126f870e6544ffe923 Mon Sep 17 00:00:00 2001 From: wang0018 <1007152140@qq.com> Date: Tue, 30 Mar 2021 18:30:29 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/tall/persist/dao/ProRoleDao.java | 15 +++++++++++++++ .../ccsens/tall/service/ProRoleService.java | 19 ++++++++++++++++++- .../main/resources/mapper_dao/ProRoleDao.xml | 12 ++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) 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 3344ec6c..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 @@ -70,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/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 9865253a..6e7a55be 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -30,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 逗 @@ -645,7 +646,23 @@ public class ProRoleService implements IProRoleService { @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/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index 12454576..04618218 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -308,5 +308,17 @@ AND s.end_time > #{thisDayStartTime} AND s.begin_time < #{thisDayEndTime} + + \ No newline at end of file From 71aaaec99a8bdb9af84530c88caa78d617e4e4e8 Mon Sep 17 00:00:00 2001 From: hyy-alt <1041001226@qq.com> Date: Wed, 31 Mar 2021 09:20:23 +0800 Subject: [PATCH 6/8] 3.20 --- .../java/com/ccsens/tall/bean/po/ProRole.java | 11 ---- .../ccsens/tall/bean/po/ProRoleExample.java | 60 ------------------- .../java/com/ccsens/tall/bean/vo/TaskVo.java | 2 +- .../resources/mapper_raw/ProRoleMapper.xml | 25 ++------ 4 files changed, 6 insertions(+), 92 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProRole.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProRole.java index dfb3bcff..7440a524 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProRole.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProRole.java @@ -24,8 +24,6 @@ public class ProRole implements Serializable { private Long relevanceProjectId; - private Byte show; - private static final long serialVersionUID = 1L; public Long getId() { @@ -108,14 +106,6 @@ 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(); @@ -132,7 +122,6 @@ 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(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProRoleExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProRoleExample.java index a7933617..a29cbb00 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProRoleExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProRoleExample.java @@ -724,66 +724,6 @@ 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 values) { - addCriterion("show in", values, "show"); - return (Criteria) this; - } - - public Criteria andShowNotIn(List 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 { diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java index 829dcc21..b6f975e4 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java @@ -155,7 +155,7 @@ public class TaskVo { private String importParam; @ApiModelProperty("优先级 默认0 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急") private Byte priority; - @ApiModelProperty("是否是里程碑 0否 1是 2普通任务 3关键任务") + @ApiModelProperty("是否是里程碑 0否 1里程碑 2普通任务 3关键任务") private Byte milestone; @ApiModelProperty("提醒的信息") private List remindInfoList; diff --git a/tall/src/main/resources/mapper_raw/ProRoleMapper.xml b/tall/src/main/resources/mapper_raw/ProRoleMapper.xml index 6dc53b27..489aa8c5 100644 --- a/tall/src/main/resources/mapper_raw/ProRoleMapper.xml +++ b/tall/src/main/resources/mapper_raw/ProRoleMapper.xml @@ -12,7 +12,6 @@ - @@ -74,7 +73,7 @@ id, project_id, parent_id, name, description, sequence, created_at, updated_at, rec_status, - relevance_project_id, show + relevance_project_id @@ -228,9 +221,6 @@ relevance_project_id = #{record.relevanceProjectId,jdbcType=BIGINT}, - - show = #{record.show,jdbcType=TINYINT}, - @@ -247,8 +237,7 @@ 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}, - show = #{record.show,jdbcType=TINYINT} + relevance_project_id = #{record.relevanceProjectId,jdbcType=BIGINT} @@ -283,9 +272,6 @@ relevance_project_id = #{relevanceProjectId,jdbcType=BIGINT}, - - show = #{show,jdbcType=TINYINT}, - where id = #{id,jdbcType=BIGINT} @@ -299,8 +285,7 @@ created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, rec_status = #{recStatus,jdbcType=TINYINT}, - relevance_project_id = #{relevanceProjectId,jdbcType=BIGINT}, - show = #{show,jdbcType=TINYINT} + relevance_project_id = #{relevanceProjectId,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file From 9e7dc630b1cba14d99853f84a82fc63e4b4a287a Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Wed, 31 Mar 2021 16:09:44 +0800 Subject: [PATCH 7/8] =?UTF-8?q?20210331=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ParameterService.java | 59 +++++++++++++-- .../src/main/resources/application.yml | 4 +- .../java/com/ccsens/tall/bean/vo/FileVo.java | 20 +++++ .../com/ccsens/tall/web/DebugController.java | 23 +++++- tall/src/main/resources/application-dev.yml | 3 +- tall/src/main/resources/application-prod.yml | 3 +- tall/src/main/resources/application-test.yml | 2 +- tall/src/main/resources/application.yml | 4 +- .../main/java/com/ccsens/util/CRCUtil.java | 6 ++ .../main/java/com/ccsens/util/PropUtil.java | 5 ++ .../com/ccsens/util/RestTemplateUtil.java | 28 +++++++ .../test/java/com/ccsens/util/OtherTest.java | 75 ++++++++++++++++++- 12 files changed, 214 insertions(+), 18 deletions(-) create mode 100644 tall/src/main/java/com/ccsens/tall/bean/vo/FileVo.java diff --git a/beneficiation/src/main/java/com/ccsens/beneficiation/service/ParameterService.java b/beneficiation/src/main/java/com/ccsens/beneficiation/service/ParameterService.java index cb99042c..fd2f0c1d 100644 --- a/beneficiation/src/main/java/com/ccsens/beneficiation/service/ParameterService.java +++ b/beneficiation/src/main/java/com/ccsens/beneficiation/service/ParameterService.java @@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; /** @@ -59,12 +60,20 @@ public class ParameterService implements IParameterService{ if(CollectionUtil.isNotEmpty(transducers)){ transducers.forEach(transducer -> { String type = "变频器".equalsIgnoreCase(transducer.getTitle()) ? "transducer" : "solenoidValue"; + int x = "变频器".equalsIgnoreCase(transducer.getTitle()) ? 0 : 1; if(CollectionUtil.isNotEmpty(transducer.getValues())){ int i = transducer.getValues().size() <= 1 ? 0 : 1; for (ParameterVo.TransducerValue value : transducer.getValues()) { String a = i == 0 ? "" : Integer.toString(i); value.setKey("实时/设置" + a); value.setType(type + a); + BigDecimal currentTime; + if(x == 0){ + currentTime = value.getCurrentTimeValue().divide(BigDecimal.valueOf(100), 0, BigDecimal.ROUND_HALF_UP); + }else { + currentTime = value.getCurrentTimeValue().divide(BigDecimal.valueOf(10),1,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(4)); + } + value.setCurrentTimeValue(currentTime); i++; } } @@ -118,22 +127,53 @@ public class ParameterService implements IParameterService{ } //电磁阀1 ParameterDto.Parameter solenoidValue1 = param.getSolenoidValue1(); - transducer(solenoidValue1); + if(ObjectUtil.isNotNull(solenoidValue1)) { + if (ObjectUtil.isNotNull(solenoidValue1.getSettingValue())) { + solenoidValue1.setSettingValue(solenoidValue1.getSettingValue().multiply(BigDecimal.valueOf(100))); + } + transducer(solenoidValue1); + } //电磁阀2 ParameterDto.Parameter solenoidValue2 = param.getSolenoidValue2(); - transducer(solenoidValue2); + if(ObjectUtil.isNotNull(solenoidValue2)){ + if(ObjectUtil.isNotNull(solenoidValue2.getSettingValue())){ + solenoidValue2.setSettingValue(solenoidValue2.getSettingValue().multiply(BigDecimal.valueOf(100))); + } + transducer(solenoidValue2); + } + //变频器1 ParameterDto.Parameter transducer1 = param.getTransducer1(); - transducer(transducer1); + if(ObjectUtil.isNotNull(transducer1)) { + if (ObjectUtil.isNotNull(transducer1.getSettingValue())) { + transducer1.setSettingValue(transducer1.getSettingValue().add(BigDecimal.valueOf(4))); + } + transducer(transducer1); + } //变频器2 ParameterDto.Parameter transducer2 = param.getTransducer1(); - transducer(transducer2); + if(ObjectUtil.isNotNull(transducer2)) { + if (ObjectUtil.isNotNull(transducer2.getSettingValue())) { + transducer2.setSettingValue(transducer2.getSettingValue().add(BigDecimal.valueOf(4))); + } + transducer(transducer2); + } //变频器3 ParameterDto.Parameter transducer3 = param.getTransducer1(); - transducer(transducer3); + if(ObjectUtil.isNotNull(transducer3)) { + if (ObjectUtil.isNotNull(transducer3.getSettingValue())) { + transducer3.setSettingValue(transducer3.getSettingValue().add(BigDecimal.valueOf(4))); + } + transducer(transducer3); + } //变频器4 ParameterDto.Parameter transducer4 = param.getTransducer1(); - transducer(transducer4); + if(ObjectUtil.isNotNull(transducer4)) { + if (ObjectUtil.isNotNull(transducer4.getSettingValue())) { + transducer4.setSettingValue(transducer4.getSettingValue().add(BigDecimal.valueOf(4))); + } + transducer(transducer4); + } //电耳1 ParameterDto.ParameterThreshold electricEar1 = param.getElectricEar1(); @@ -217,6 +257,7 @@ public class ParameterService implements IParameterService{ // byte[] center = new byte[]{(byte)0x10,(byte)0x10,addr1,addr2,uc1,uc2}; byte[] center = new byte[]{(byte)0x10,(byte)0x10,addr1,addr2,0x00,0x01,0x02,uc1,uc2}; + byte[] crc = new byte[2]; CRCUtil.crc16(crc,center,0,center.length); log.info("计算crc校验:{}---{}",crc[0],crc[1]); @@ -227,6 +268,9 @@ public class ParameterService implements IParameterService{ System.arraycopy(crc,0,all,header.length + center.length,crc.length); all[2] = (byte) (all.length - 3); + for (int i = 0; i < all.length; i++) { + log.info("发送数据:{}",Integer.toHexString(all[i] & 0xFF)); + } sendInMessage(all); } } @@ -237,7 +281,8 @@ public class ParameterService implements IParameterService{ */ private void sendInMessage(byte[] all) throws Exception { Set userIdSet = new HashSet<>(); - userIdSet.add(String.valueOf(1)); +// userIdSet.add(String.valueOf(1)); + userIdSet.add(String.valueOf(2)); MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); messageRule.setAckRule(MessageRule.AckRule.NONE); messageRule.setOfflineDiscard((byte) 1); diff --git a/beneficiation/src/main/resources/application.yml b/beneficiation/src/main/resources/application.yml index 1ac895fc..ac92adb9 100644 --- a/beneficiation/src/main/resources/application.yml +++ b/beneficiation/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: prod - include: common, util-prod + active: test + include: common, util-test diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/FileVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/FileVo.java new file mode 100644 index 00000000..ab97b920 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/FileVo.java @@ -0,0 +1,20 @@ +package com.ccsens.tall.bean.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +@Data +public class FileVo { + @ApiModel("文件查询-返回") + @Data + public static class FilePosition{ + @ApiModelProperty("id") + private Long id; + @ApiModelProperty("文件名") + private String name; + @ApiModelProperty("存储路径") + private String path; + @ApiModelProperty("查看路径") + private String visitUrl; + } +} diff --git a/tall/src/main/java/com/ccsens/tall/web/DebugController.java b/tall/src/main/java/com/ccsens/tall/web/DebugController.java index ef1de5d3..dcf9d815 100644 --- a/tall/src/main/java/com/ccsens/tall/web/DebugController.java +++ b/tall/src/main/java/com/ccsens/tall/web/DebugController.java @@ -1,9 +1,9 @@ package com.ccsens.tall.web; +import com.alibaba.fastjson.JSONObject; import com.ccsens.tall.bean.dto.message.SyncMessageWithStartDto; -import com.ccsens.util.JacksonUtil; -import com.ccsens.util.JsonResponse; -import com.ccsens.util.RedisUtil; +import com.ccsens.tall.bean.vo.FileVo; +import com.ccsens.util.*; import com.ccsens.util.bean.message.common.InMessage; import com.ccsens.util.bean.message.common.MessageConstant; import com.ccsens.util.bean.message.common.MessageRule; @@ -22,7 +22,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Set; @Slf4j @Api(tags = "DEBUG" , description = "DebugController | ") @@ -114,4 +116,19 @@ public class DebugController { } + @ApiOperation(value = "/测试",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value="htt",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"}) + public JsonResponse https(HttpServletRequest request) throws Exception { + String requestUrl = "http://localhost:8001/file/query"; + List files = new ArrayList<>(); + files.add(1321760076465311744L); + + String c = RestTemplateUtil.postBody1(requestUrl,files); + + JsonResponse a = JSONObject.parseObject(c,JsonResponse.class); + + return a; + } } diff --git a/tall/src/main/resources/application-dev.yml b/tall/src/main/resources/application-dev.yml index 58302ba7..9a6e63b0 100644 --- a/tall/src/main/resources/application-dev.yml +++ b/tall/src/main/resources/application-dev.yml @@ -39,4 +39,5 @@ wx: file: path: /home/cloud/tall/uploads/ domain: http://localhost:7030/v1.0/ - imgDomain: http://localhost:7030/v1.0/uploads \ No newline at end of file + imgDomain: http://localhost:7030/v1.0/uploads +filedeal: http://localhost:8001/file/query \ No newline at end of file diff --git a/tall/src/main/resources/application-prod.yml b/tall/src/main/resources/application-prod.yml index e31f8289..1b0a8a8e 100644 --- a/tall/src/main/resources/application-prod.yml +++ b/tall/src/main/resources/application-prod.yml @@ -45,4 +45,5 @@ wx: file: path: /home/cloud/tall/uploads/ domain: https://www.tall.wiki/gateway/tall/v1.0/ - imgDomain: https://www.tall.wiki/gateway/tall/v1.0/uploads \ No newline at end of file + imgDomain: https://www.tall.wiki/gateway/tall/v1.0/uploads +filedeal: https://www.tall.wiki/file/query \ No newline at end of file diff --git a/tall/src/main/resources/application-test.yml b/tall/src/main/resources/application-test.yml index a5ca95a5..bc6800cf 100644 --- a/tall/src/main/resources/application-test.yml +++ b/tall/src/main/resources/application-test.yml @@ -46,7 +46,7 @@ file: path: /home/cloud/tall/uploads/ domain: https://test.tall.wiki/gateway/tall/v1.0/ imgDomain: https://test.tall.wiki/gateway/tall/v1.0/uploads - +filedeal: https://test.tall.wiki/file/query #file: # domain: http://192.168.0.99/gateway/tall/v1.0/ # imgDomain: http://192.168.0.99/gateway/tall/v1.0/uploads \ No newline at end of file diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index ebc544af..b5408a3a 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common diff --git a/util/src/main/java/com/ccsens/util/CRCUtil.java b/util/src/main/java/com/ccsens/util/CRCUtil.java index f4dea530..94a41ba0 100644 --- a/util/src/main/java/com/ccsens/util/CRCUtil.java +++ b/util/src/main/java/com/ccsens/util/CRCUtil.java @@ -1,7 +1,13 @@ package com.ccsens.util; +import lombok.extern.slf4j.Slf4j; + +@Slf4j public class CRCUtil { public static void crc16(byte crc[], byte data[], int index, int len) { + for (int i = 0; i < len; i++) { + log.info("发送数据:{}",Integer.toHexString(data[i] & 0xFF)); + } // 预置16位crc寄存器,初值全部为1 int wcrc = 0xFFFF; // 定义中间变量 diff --git a/util/src/main/java/com/ccsens/util/PropUtil.java b/util/src/main/java/com/ccsens/util/PropUtil.java index 4d0898e3..61beb6c4 100644 --- a/util/src/main/java/com/ccsens/util/PropUtil.java +++ b/util/src/main/java/com/ccsens/util/PropUtil.java @@ -28,6 +28,7 @@ public class PropUtil { public static String queryVisitUrls; public static String getWpsFilePath; public static String accessPath; + public static String filedeal; @Value("${saveWpsFile:}") public void setSaveWpsFile(String saveWpsFile) { @@ -99,4 +100,8 @@ public class PropUtil { public void setAccessPath(String accessPath) { PropUtil.accessPath = accessPath; } + @Value("${filedeal:}") + public void setFiledeal(String filedeal) { + PropUtil.filedeal = filedeal; + } } diff --git a/util/src/main/java/com/ccsens/util/RestTemplateUtil.java b/util/src/main/java/com/ccsens/util/RestTemplateUtil.java index ff73a2ab..06e7a4d5 100644 --- a/util/src/main/java/com/ccsens/util/RestTemplateUtil.java +++ b/util/src/main/java/com/ccsens/util/RestTemplateUtil.java @@ -2,6 +2,7 @@ package com.ccsens.util; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; @@ -18,6 +19,7 @@ import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; import java.net.URI; import java.net.URISyntaxException; +import java.util.List; import java.util.Map; @Slf4j @@ -54,6 +56,7 @@ public class RestTemplateUtil { log.info("entity:{}",entity); return JSONObject.parseObject(entity.getBody(), returnClass); } + public static String postBody(String url, Object params) { log.info("路径:{}, 参数:{}", url, params); HttpHeaders httpHeaders = new HttpHeaders(); @@ -76,6 +79,31 @@ public class RestTemplateUtil { log.info("返回:{}", response); return response.getBody(); } + + public static String postBody1(String url, List params) { + log.info("路径:{}, 参数:{}", url, params); + HttpHeaders httpHeaders = new HttpHeaders(); + MediaType type=MediaType.parseMediaType("application/json;charset=UTF-8"); + httpHeaders.setContentType(type); + +// MultiValueMap map=new LinkedMultiValueMap<>(); + +// JSONObject json = JSON.parseObject(JSON.toJSONString(params)); + + + HttpEntity> objectHttpEntity = new HttpEntity<>(params,httpHeaders); + URI uri = null; + try { + uri = new URI(url); + }catch (URISyntaxException e) { + log.error("转换路径异常:{}", e); + throw new BaseException(CodeEnum.URL_ERROR); + } + + ResponseEntity response = util.restTemplate.postForEntity(uri, objectHttpEntity, String.class); + log.info("返回:{}", response); + return response.getBody(); + } public static String postUrlEncode(String url, Object params) { log.info("请求路径:{},请求参数:{}", url, params); JSONObject json = JSON.parseObject(JSON.toJSONString(params)); diff --git a/util/src/test/java/com/ccsens/util/OtherTest.java b/util/src/test/java/com/ccsens/util/OtherTest.java index dd8d7733..b2fbc3d4 100644 --- a/util/src/test/java/com/ccsens/util/OtherTest.java +++ b/util/src/test/java/com/ccsens/util/OtherTest.java @@ -6,11 +6,16 @@ import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.junit.Test; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; -import java.io.File; +import java.io.*; import java.math.BigDecimal; +import java.net.URL; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Comparator; @@ -120,5 +125,73 @@ public class OtherTest { } + @Test + public void test8(){ + System.out.println(Byte.parseByte("-1") & 0xff); + } +// +// /** +// * 发送https请求 +// * +// * @param requestUrl 请求地址 +// * @param requestMethod 请求方式(GET、POST) +// * @param postStr 提交的数据 +// * @return String(Json) +// */ +// @Test +// public void test9(String requestUrl, String requestMethod, String postStr) throws Exception { +// +// requestUrl = "http://localhost:8001/file/query"; +// requestMethod = "POST"; +// List files = new ArrayList<>(); +// files.add(1321760076465311744L); +// +// postStr = JacksonUtil.beanToJson(files); +// +// StringBuffer buffer = null; +// // 创建SSLContext对象,并使用我们指定的信任管理器初始化 +// TrustManager[] tm = {new MyX509TrustManager()}; +// SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE"); +// sslContext.init(null, tm, new java.security.SecureRandom()); +// // 从上述SSLContext对象中得到SSLSocketFactory对象 +// SSLSocketFactory ssf = sslContext.getSocketFactory(); +// +// URL url = new URL(requestUrl); +// HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); +// conn.setSSLSocketFactory(ssf); +// +// conn.setDoOutput(true); +// conn.setDoInput(true); +// conn.setUseCaches(false); +// // 设置请求方式(GET/POST) +// conn.setRequestMethod(requestMethod); +// +// // 当outputStr不为null时向输出流写数据 +// if (null != postStr) { +// OutputStream outputStream = conn.getOutputStream(); +// // 注意编码格式 +// outputStream.write(postStr.getBytes("UTF-8")); +// outputStream.close(); +// } +// +// // 从输入流读取返回内容 +// InputStream inputStream = conn.getInputStream(); +// InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); +// BufferedReader bufferedReader = new BufferedReader(inputStreamReader); +// String str = null; +// buffer = new StringBuffer(); +// while ((str = bufferedReader.readLine()) != null) { +// buffer.append(str); +// } +// +// // 释放资源 +// bufferedReader.close(); +// inputStreamReader.close(); +// inputStream.close(); +// inputStream = null; +// conn.disconnect(); +//// return buffer == null ? null : buffer.toString(); +// System.out.println( buffer == null ? null : buffer.toString()); +// } } From d5080e501682d0325d0b965aa6d5e7aa7e0af9e1 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Wed, 31 Mar 2021 16:44:38 +0800 Subject: [PATCH 8/8] =?UTF-8?q?20210331=E6=9F=A5=E8=AF=A2=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/vo/InputDocVo.java | 19 +++--- .../ccsens/tall/service/InputDocService.java | 67 ++++++++++++++----- 2 files changed, 60 insertions(+), 26 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java index 2db98de8..89d5ffb1 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java @@ -25,18 +25,17 @@ public class InputDocVo { private String docName; @ApiModelProperty("是否上传 0否 1是") private Byte isUpload; -// @ApiModelProperty("文档中的文件id") @ApiModelProperty("文档中的文件") private List records = new ArrayList<>(); } - @Data - @ApiModel("该记录中的文件") - public static class File{ - @ApiModelProperty("文件名称") - private String fileName; - @ApiModelProperty("文件访问路径") - private String fileUrl; - } +// @Data +// @ApiModel("该记录中的文件") +// public static class File{ +// @ApiModelProperty("文件名称") +// private String fileName; +// @ApiModelProperty("文件访问路径") +// private String fileUrl; +// } @Data @ApiModel("该文档下的记录列表") @@ -49,7 +48,7 @@ public class InputDocVo { @ApiModelProperty("备注") private String remark; @ApiModelProperty("文件列表") - private List fileList = new ArrayList<>(); + private List fileList = new ArrayList<>(); } @Data diff --git a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java index 7cf8822c..37e99a99 100644 --- a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java +++ b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java @@ -6,11 +6,14 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.ccsens.tall.bean.dto.InputDocDto; import com.ccsens.tall.bean.dto.LwbsDto; import com.ccsens.tall.bean.po.*; +import com.ccsens.tall.bean.vo.FileVo; import com.ccsens.tall.bean.vo.InputDocVo; import com.ccsens.tall.bean.vo.LwbsVo; import com.ccsens.tall.bean.vo.TaskVo; @@ -20,13 +23,21 @@ import com.ccsens.tall.persist.mapper.*; import com.ccsens.tall.util.TaskUtil; import com.ccsens.util.CodeEnum; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.PropUtil; +import com.ccsens.util.RestTemplateUtil; import com.ccsens.util.exception.BaseException; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +@Slf4j @Service +@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) public class InputDocService implements IInputDocService { @Resource public ProMemberMapper proMemberMapper; @@ -165,24 +176,48 @@ public class InputDocService implements IInputDocService { List docByTasks = iInputDocDao.findDocByTask(param.getTaskId()); for (InputDocVo.DocOfTask docs:docByTasks){ for (InputDocVo.Record record:docs.getRecords()){ - if (record.getFileIds().contains(",")){ - String[] split = record.getFileIds().split(","); - for (int i = 0; i < split.length; i++) { - File file = fileMapper.selectByPrimaryKey(Long.valueOf(split[i])); - InputDocVo.File nowFile = new InputDocVo.File(); - nowFile.setFileName(file.getFileName()); - nowFile.setFileUrl(file.getVisitLocation()); - record.getFileList().add(nowFile); - } - }else{ - if (StrUtil.isNotBlank(record.getFileIds())){ - File file = fileMapper.selectByPrimaryKey(Long.valueOf(record.getFileIds())); - InputDocVo.File nowFile = new InputDocVo.File(); - nowFile.setFileName(file.getFileName()); - nowFile.setFileUrl(file.getVisitLocation()); - record.getFileList().add(nowFile); + if(ObjectUtil.isNotNull(record.getFileIds())) { + try { + //拆分文件id + String[] split = record.getFileIds().split(","); + List splits =new ArrayList<>(Arrays.asList(split)); + if(split.length != 0){ + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl,splits); + JsonResponse> a = JSONObject.parseObject(c,JsonResponse.class); + if(ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())){ + List fileList = a.getData(); + record.setFileList(fileList); + } + } + }catch (Exception e){ + log.info("查询文件信息失败:{}", e); } + } + +// if (record.getFileIds().contains(",")){ +// String[] split = record.getFileIds().split(","); +// for (int i = 0; i < split.length; i++) { +// +// +//// File file = fileMapper.selectByPrimaryKey(Long.valueOf(split[i])); +//// InputDocVo.File nowFile = new InputDocVo.File(); +//// nowFile.setFileName(file.getFileName()); +//// nowFile.setFileUrl(file.getVisitLocation()); +//// record.getFileList().add(nowFile); +// } +// }else{ +// if (StrUtil.isNotBlank(record.getFileIds())){ +//// File file = fileMapper.selectByPrimaryKey(Long.valueOf(record.getFileIds())); +//// InputDocVo.File nowFile = new InputDocVo.File(); +//// nowFile.setFileName(file.getFileName()); +//// nowFile.setFileUrl(file.getVisitLocation()); +//// record.getFileList().add(nowFile); +// } +// } } } return docByTasks;