From b905fc8ab0a994dd7f897d38dabeab6f275c9762 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Thu, 29 Apr 2021 19:01:19 +0800 Subject: [PATCH 1/8] 20210429v1.1 --- tall/src/main/java/com/ccsens/tall/service/LwbsService.java | 4 ---- .../main/java/com/ccsens/tall/service/UserInfoService.java | 3 ++- tall/src/main/resources/application.yml | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java index 8ad885c0..40661c1d 100644 --- a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java +++ b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java @@ -1,13 +1,9 @@ package com.ccsens.tall.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.ccsens.tall.bean.dto.LwbsDto; import com.ccsens.tall.bean.po.ProRole; -import com.ccsens.tall.bean.po.ProShow; -import com.ccsens.tall.bean.po.ProShowExample; -import com.ccsens.tall.bean.po.ProSubTimeMember; import com.ccsens.tall.bean.vo.LwbsVo; import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.persist.dao.SysProjectDao; diff --git a/tall/src/main/java/com/ccsens/tall/service/UserInfoService.java b/tall/src/main/java/com/ccsens/tall/service/UserInfoService.java index 1cd54e20..4af59a72 100644 --- a/tall/src/main/java/com/ccsens/tall/service/UserInfoService.java +++ b/tall/src/main/java/com/ccsens/tall/service/UserInfoService.java @@ -67,9 +67,10 @@ public class UserInfoService implements IUserInfoService{ //检查数据库内账号是否存在 SysAuthExample sysAuthExample = new SysAuthExample(); sysAuthExample.createCriteria().andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Account.value) - .andIdentifierEqualTo(changeAccount.getAccount()); + .andIdentifierEqualTo(changeAccount.getAccount()).andUserIdNotEqualTo(userId); List sysAuthList = sysAuthDao.selectByExample(sysAuthExample); if(CollectionUtil.isNotEmpty(sysAuthList)){ + redisUtil.del(accountKey); throw new BaseException(CodeEnum.ALREADY_EXIST_ACCOUNT); } //修改账号 diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index ebc544af..9e02c3e8 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: greenvalley + include: util-greenvalley,common From 6e6b14943f95f2e57a4bd5c20a76b553f67e00a0 Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Thu, 29 Apr 2021 19:13:06 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=91=A8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/dto/InputDocDto.java | 4 +- .../com/ccsens/tall/bean/dto/TaskDto.java | 11 ++++++ .../java/com/ccsens/tall/bean/vo/TaskVo.java | 29 ++++++++++++++ .../tall/persist/dao/TaskDeliverDao.java | 8 ++++ .../tall/persist/dao/TaskDetailDao.java | 17 +++++++++ .../ccsens/tall/service/IInputDocService.java | 10 ++--- .../tall/service/IProTaskDetailService.java | 8 ++++ .../tall/service/ITaskDeliverService.java | 14 ++++--- .../ccsens/tall/service/InputDocService.java | 27 +++++++++---- .../tall/service/ProTaskDetailService.java | 38 ++++++++++++++++++- .../tall/service/TaskDeliverService.java | 21 ++++++++-- .../ccsens/tall/web/InputDocController.java | 25 ++++++------ .../com/ccsens/tall/web/TaskController.java | 10 +++++ .../main/resources/mapper_dao/DeliverDao.xml | 13 +++++++ .../resources/mapper_dao/ProMemberDao.xml | 3 +- .../mapper_dao/ProTaskInputDocDao.xml | 1 + .../resources/mapper_dao/TaskDetailDao.xml | 37 ++++++++++++++++++ .../test/java/com/ccsens/util/TestQrCord.java | 4 +- .../test/java/com/ccsens/util/VideoTest.java | 32 ++++++++-------- 19 files changed, 255 insertions(+), 57 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java index b609773b..41195383 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java @@ -138,7 +138,7 @@ public class InputDocDto { @Data @ApiModel("添加交付物") - public static class addTaskDeliver { + public static class AddTaskDeliver { @NotNull(message = "请选择要添加交付物的任务") @ApiModelProperty("任务id") private Long taskId; @@ -149,7 +149,7 @@ public class InputDocDto { @Data @ApiModel("删除交付物") - public static class deleteTaskDeliver { + public static class DeleteTaskDeliver { @NotNull(message = "请选择要删除的交付物") @ApiModelProperty("交付物id") private Long deliverId; diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java index 48fd2614..15c286d6 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java @@ -483,4 +483,15 @@ public class TaskDto { @ApiModelProperty("交付物名称") public String names; } + + @Data + @ApiModel + public static class AboutWeekTask { + @ApiModelProperty("项目id") + private List projectIds; + @ApiModelProperty("开始时间") + private Long startTime; + @ApiModelProperty("结束时间") + private Long endTime; + } } 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 ed605d3b..b7d263ca 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 @@ -522,4 +522,33 @@ public class TaskVo { @ApiModelProperty("二级任务") private List secondTasks; } + + @Data + @ApiModel("每周任务的交付物") + public static class AboutWeekTask { + @JsonIgnore + @ApiModelProperty("任务详情名称") + private String detailId; + @ApiModelProperty("任务详情名称") + private String detailName; + @ApiModelProperty("任务结束时间") + private Long taskOverTime; + @ApiModelProperty("任务时长") + private Long taskMin; + @ApiModelProperty("任务完成状态:0未开始 1进行中 2已结束") + private Integer taskOverStatus; + @ApiModelProperty("交付物") + private List delivers; + } + @Data + @ApiModel("周任务下的交付物") + public static class WeekTaskOfDeliver { + @ApiModelProperty("交付物名称") + private String deliverName; + @ApiModelProperty("交付物上传状态") + private Byte deliverUploadOfStatus; + @ApiModelProperty("交付物检查状态") + private Byte deliverCheckOfStatus; + } + } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java index 42342ca2..bbb2d801 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java @@ -2,6 +2,7 @@ package com.ccsens.tall.persist.dao; import com.ccsens.tall.bean.vo.DeliverVo; import com.ccsens.tall.bean.vo.ProjectVo; +import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.WbsVo; import com.ccsens.tall.persist.mapper.ProTaskDeliverMapper; import org.apache.ibatis.annotations.Param; @@ -47,4 +48,11 @@ public interface TaskDeliverDao extends ProTaskDeliverMapper{ * @return 项目经理的id */ List selectPMIdByDeliverId(Long deliverId); + + /** + * 查看每周任务下的交付物 + * @param detailId 任务详情id + * @return 交付物 + */ + List selectWeekTaskOfDeliver(String detailId); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java index a177df26..c8cdff27 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java @@ -78,4 +78,21 @@ public interface TaskDetailDao extends ProTaskDetailMapper { * @return 项目经理id */ Long selectPmByTaskId(Long id); + + /** + * 通过项目id和用户id查询角色信息 + * @param projectIds 项目id List + * @param userId 用户id + * @return 角色id List + */ + List selectAllRolesOfProject(@Param("projectIds") List projectIds,@Param("userId") Long userId); + + /** + * 查找此负责人下的任务 + * @param roleIds 负责人id List + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 分解任务 List + */ + List selectTaskByExecutorRoleId(@Param("roleIds") List roleIds,@Param("startTime") Long startTime,@Param("endTime") Long endTime); } diff --git a/tall/src/main/java/com/ccsens/tall/service/IInputDocService.java b/tall/src/main/java/com/ccsens/tall/service/IInputDocService.java index 58324eb1..0f30cc42 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IInputDocService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IInputDocService.java @@ -38,17 +38,17 @@ public interface IInputDocService { /** * 查看文档文件上传记录 * - * @param param - * @return + * @param param 入参 + * @return 历史记录 */ List viewDocHistory(InputDocDto.ViewDocHistory param); /** * 添加输入文档 * - * @param param + * @param param 入参 */ - void addDoc(InputDocDto.AddDoc param); + TaskVo.NormalTask addDoc(InputDocDto.AddDoc param,Long userId) throws Exception; /** * 修改输入文档 @@ -107,6 +107,6 @@ public interface IInputDocService { * * @param param */ - void deleteDoc(InputDocDto.DeleteDoc param); + TaskVo.NormalTask deleteDoc(InputDocDto.DeleteDoc param,Long userId) throws Exception; } diff --git a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java index ea847987..1b9f6235 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java @@ -56,6 +56,14 @@ public interface IProTaskDetailService { */ List queryAllTaskByProjectId(Long currentUserId, TaskDto.QueryAllTaskByProjectId projectId) throws Exception; + /** + * 周会任务相关 + * @param param 参数 + * @param userId 用户id + * @return 周会相关 + */ + List selectAboutWeekTask(TaskDto.AboutWeekTask param, Long userId); + // /** // * 新增和修改交付物的方法 // * @param jiaoFuWu diff --git a/tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java index 004689eb..98cc3eb0 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java @@ -44,25 +44,27 @@ public interface ITaskDeliverService { List queryDeliverByTaskId(Long currentUserId, Long taskId); /** * 删除输出文档下所有的文件 - * @param param + * @param param 参数 */ void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId) throws Exception; /** * 修改输出文档下的备注信息 - * @param param + * @param param 参数 */ void updateRemarkOfDeliver(DeliverDto.UpdateRemarkOfDeliver param,Long userId); /** * 添加交付物 - * @param param + * @param param 参数 + * @param userId 用户id */ - void addTaskDeliver(InputDocDto.addTaskDeliver param); + TaskVo.NormalTask addTaskDeliver(InputDocDto.AddTaskDeliver param,Long userId) throws Exception; /** * 删除交付物 - * @param param + * @param param 参数 + * @param userId 用户id */ - void deleteTaskDeliver(InputDocDto.deleteTaskDeliver param); + TaskVo.NormalTask deleteTaskDeliver(InputDocDto.DeleteTaskDeliver param,Long userId) throws Exception; } 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 2498a070..4ba476f3 100644 --- a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java +++ b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java @@ -58,6 +58,8 @@ public class InputDocService implements IInputDocService { private IProMemberService iProMemberService; @Resource private TaskDeliverService taskDeliverService; + @Resource + private ProTaskDetailService taskDetailService; // /** @@ -133,7 +135,7 @@ public class InputDocService implements IInputDocService { } ProTaskInputDoc doc = proTaskInputDocMapper.selectByPrimaryKey(param.getDocId()); if (ObjectUtil.isNull(doc)){ - throw new BaseException("输入文档不存在或已删除"); + throw new BaseException(CodeEnum.DOC_NONE); } //历史操作 ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord(); @@ -253,8 +255,8 @@ public class InputDocService implements IInputDocService { * 添加输入文档 */ @Override - public void addDoc(InputDocDto.AddDoc param) { - + public TaskVo.NormalTask addDoc(InputDocDto.AddDoc param,Long currentUserId) throws Exception { + TaskVo.NormalTask normalTask = null; //查找任务详情id Long taskDetailId = null; ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(param.getTaskId()); @@ -267,6 +269,7 @@ public class InputDocService implements IInputDocService { if(ObjectUtil.isNotNull(task)){ taskDetailId = task.getId(); } + taskDetail = taskDetailDao.selectByPrimaryKey(taskDetailId); } } if(taskDetailId == null) { @@ -288,7 +291,8 @@ public class InputDocService implements IInputDocService { proTaskInputDoc.setName(param.getFileName()[i]); proTaskInputDocMapper.insertSelective(proTaskInputDoc); } - + normalTask = taskDetailService.getTaskInfoByTaskId(currentUserId, taskDetail.getProjectId(), param.getTaskId(), null); + return normalTask; } /** @@ -601,16 +605,25 @@ public class InputDocService implements IInputDocService { /** * 删除输入文档 * - * @param param + * @param param 参数 */ @Override - public void deleteDoc(InputDocDto.DeleteDoc param) { + public TaskVo.NormalTask deleteDoc(InputDocDto.DeleteDoc param,Long currentUserId) throws Exception { + TaskVo.NormalTask taskById = null; + ProTaskInputDoc proTaskInputDoc = proTaskInputDocMapper.selectByPrimaryKey(param.getDocId()); if (ObjectUtil.isNotNull(proTaskInputDoc)){ proTaskInputDoc.setRecStatus(WebConstant.REC_STATUS.Deleted.value); proTaskInputDocMapper.updateByPrimaryKeySelective(proTaskInputDoc); - //proTaskInputDocMapper.updateByPrimaryKey(proTaskInputDoc); + }else{ + throw new BaseException(CodeEnum.DOC_NONE); + } + + ProTaskDetail taskDetail = proTaskDetailMapper.selectByPrimaryKey(proTaskInputDoc.getTaskDetailId()); + if (ObjectUtil.isNotNull(taskDetail)){ + taskById = taskDetailService.getTaskInfoByTaskId(currentUserId, taskDetail.getProjectId(), taskDetail.getId(), null); } + return taskById; } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java index 6d3568e5..3e76ad57 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -110,11 +110,13 @@ public class ProTaskDetailService implements IProTaskDetailService { taskInfoByRoleId.setEndTime(taskInfoByRoleId.getEndTime() == null ? sysProject.getEndTime() : taskInfoByRoleId.getEndTime()); Object obj = null; - ProRole role = proRoleDao.selectByPrimaryKey(taskInfoByRoleId.getRoleId()); //查到了项目下的角色信息 + //查到了项目下的角色信息 + ProRole role = proRoleDao.selectByPrimaryKey(taskInfoByRoleId.getRoleId()); if (ObjectUtil.isNull(role)) { throw new BaseException(CodeEnum.NOT_ROLE); } - ProRole parentRole = proRoleDao.selectByPrimaryKey(role.getParentId()); //查到了项目下的父角色信息 + //查到了项目下的父角色信息 + ProRole parentRole = proRoleDao.selectByPrimaryKey(role.getParentId()); if (ObjectUtil.isNull(parentRole)) { throw new BaseException(CodeEnum.NOT_ROLE); } @@ -1784,6 +1786,38 @@ public class ProTaskDetailService implements IProTaskDetailService { return taskList; } + /** + * + * @param param 参数 + * @param userId 用户id + * @return 周会相关 + */ + @Override + public List selectAboutWeekTask(TaskDto.AboutWeekTask param, Long userId) { + List weekTaskList = new ArrayList<>(); + if (CollectionUtil.isEmpty(param.getProjectIds())){ + throw new BaseException(CodeEnum.NOT_PROJECT); + } + //如果未传开始结束时间,获取本周的开始和结束时间 + Long startTime = param.getStartTime() == null ? cn.hutool.core.date.DateUtil.beginOfWeek(new Date()).getTime() : param.getStartTime(); + Long endTime = param.getEndTime() == null ? cn.hutool.core.date.DateUtil.endOfWeek(new Date()).getTime() : param.getEndTime(); + + //查询当前用户在项目中所属的角色 + List roleIds = taskDetailDao.selectAllRolesOfProject(param.getProjectIds(),userId); + if(CollectionUtil.isNotEmpty(roleIds)){ + //查找每周任务相关 + weekTaskList = taskDetailDao.selectTaskByExecutorRoleId(roleIds,startTime,endTime); + if(CollectionUtil.isNotEmpty(weekTaskList)){ + for (TaskVo.AboutWeekTask weekTask : weekTaskList) { + List weekTaskOfDelivers = taskDeliverDao.selectWeekTaskOfDeliver(weekTask.getDetailId()); + weekTask.setDelivers(weekTaskOfDelivers); + } + } + } + + return weekTaskList; + } + /** * 新增和修改交付物 * @param jiaoFuWu diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java index 232f13c3..b02f2691 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java @@ -82,6 +82,8 @@ public class TaskDeliverService implements ITaskDeliverService { private IProMemberService iProMemberService; @Resource private ProDeliverHistoryRecordDao deliverHistoryRecordDao; + @Resource + private ProTaskDetailService taskDetailService; @Override public void saveDeliver(ProTaskDeliver taskDeliver) { @@ -1244,10 +1246,12 @@ public class TaskDeliverService implements ITaskDeliverService { /** * 添加交付物 - * @param param + * @param param 参数 */ @Override - public void addTaskDeliver(InputDocDto.addTaskDeliver param) { + public TaskVo.NormalTask addTaskDeliver(InputDocDto.AddTaskDeliver param,Long userId) throws Exception { + TaskVo.NormalTask normalTask; + //查找任务详情id Long taskDetailId = null; ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(param.getTaskId()); @@ -1283,15 +1287,26 @@ public class TaskDeliverService implements ITaskDeliverService { proTaskDeliver.setIsInput(0); taskDeliverDao.insertSelective(proTaskDeliver); } + + normalTask = taskDetailService.getTaskInfoByTaskId(userId, taskDetail.getProjectId(), param.getTaskId(), null); + return normalTask; } @Override - public void deleteTaskDeliver(InputDocDto.deleteTaskDeliver param) { + public TaskVo.NormalTask deleteTaskDeliver(InputDocDto.DeleteTaskDeliver param,Long userId) throws Exception { + TaskVo.NormalTask normalTask = null; + ProTaskDeliver proTaskDeliver = taskDeliverDao.selectByPrimaryKey(param.getDeliverId()); if (ObjectUtil.isNotNull(proTaskDeliver)){ proTaskDeliver.setRecStatus(WebConstant.REC_STATUS.Deleted.value); taskDeliverDao.updateByPrimaryKeySelective(proTaskDeliver); } + + ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskDeliver.getTaskDetailId()); + if (ObjectUtil.isNotNull(taskDetail)){ + normalTask = taskDetailService.getTaskInfoByTaskId(userId, taskDetail.getProjectId(),taskDetail.getId(), null); + } + return normalTask; } } diff --git a/tall/src/main/java/com/ccsens/tall/web/InputDocController.java b/tall/src/main/java/com/ccsens/tall/web/InputDocController.java index 1cb6dbd4..057b26fc 100644 --- a/tall/src/main/java/com/ccsens/tall/web/InputDocController.java +++ b/tall/src/main/java/com/ccsens/tall/web/InputDocController.java @@ -6,6 +6,7 @@ import com.ccsens.tall.bean.dto.InputDocDto; import com.ccsens.tall.bean.dto.LabelDto; import com.ccsens.tall.bean.vo.InputDocVo; import com.ccsens.tall.bean.vo.LabelVo; +import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.service.IInputDocService; import com.ccsens.tall.service.TaskDeliverService; import com.ccsens.util.JsonResponse; @@ -85,41 +86,41 @@ public class InputDocController { @MustLoginTall @ApiOperation(value = "给任务添加输入文档", notes = "1007:添加输入文档") @RequestMapping(value = "/addDoc", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse addDoc(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse addDoc(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("添加输入文档:{}",params); - iInputDocService.addDoc(params.getParam()); + TaskVo.NormalTask normalTask= iInputDocService.addDoc(params.getParam(),params.getUserId()); log.info("添加输入文档"); - return JsonResponse.newInstance().ok(); + return JsonResponse.newInstance().ok(normalTask); } @MustLoginTall @ApiOperation(value = "删除任务下的输入文档", notes = "1007:删除输入文档") @RequestMapping(value = "/deleteDoc", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse deleteDoc(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse deleteDoc(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("删除输入文档:{}",params); - iInputDocService.deleteDoc(params.getParam()); + TaskVo.NormalTask normalTask = iInputDocService.deleteDoc(params.getParam(),params.getUserId()); log.info("删除输入文档"); - return JsonResponse.newInstance().ok(); + return JsonResponse.newInstance().ok(normalTask); } @MustLoginTall @ApiOperation(value = "给任务添加交付物", notes = "1007:添加交付物") @RequestMapping(value = "/addTaskDeliver", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse addTaskDeliver(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse addTaskDeliver(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("添加交付物:{}",params); - taskDeliverService.addTaskDeliver(params.getParam()); + TaskVo.NormalTask normalTask = taskDeliverService.addTaskDeliver(params.getParam(),params.getUserId()); log.info("添加交付物"); - return JsonResponse.newInstance().ok(); + return JsonResponse.newInstance().ok(normalTask); } @MustLoginTall @ApiOperation(value = "删除任务下的交付物", notes = "1007:删除交付物") @RequestMapping(value = "/deleteTaskDeliver", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse deleteTaskDeliver(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse deleteTaskDeliver(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("删除交付物:{}",params); - taskDeliverService.deleteTaskDeliver(params.getParam()); + TaskVo.NormalTask normalTask = taskDeliverService.deleteTaskDeliver(params.getParam(),params.getUserId()); log.info("删除交付物"); - return JsonResponse.newInstance().ok(); + return JsonResponse.newInstance().ok(normalTask); } diff --git a/tall/src/main/java/com/ccsens/tall/web/TaskController.java b/tall/src/main/java/com/ccsens/tall/web/TaskController.java index 4a6ae85a..6d431691 100644 --- a/tall/src/main/java/com/ccsens/tall/web/TaskController.java +++ b/tall/src/main/java/com/ccsens/tall/web/TaskController.java @@ -1,6 +1,7 @@ package com.ccsens.tall.web; import cn.hutool.core.date.DateUtil; +import com.ccsens.tall.annotation.MustLoginTall; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.dto.TaskDto; import com.ccsens.tall.bean.vo.TaskVo; @@ -9,6 +10,7 @@ import com.ccsens.tall.service.ITaskSubTimeService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; import com.ccsens.util.annotation.OperateType; +import com.ccsens.util.bean.dto.QueryDto; import io.jsonwebtoken.Claims; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; @@ -312,4 +314,12 @@ public class TaskController { TaskVo.NormalTask taskInfo = taskDetailService.updateTaskConfig(currentUserId,updateTaskConfig); return JsonResponse.newInstance().ok(taskInfo); } + + @MustLoginTall + @ApiOperation(value = "周会任务相关",notes = "") + @RequestMapping(value = "/aboutWeekTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> aboutWeekTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + List aboutWeekTask = taskDetailService.selectAboutWeekTask(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(aboutWeekTask); + } } diff --git a/tall/src/main/resources/mapper_dao/DeliverDao.xml b/tall/src/main/resources/mapper_dao/DeliverDao.xml index c075bad6..ceda45bc 100644 --- a/tall/src/main/resources/mapper_dao/DeliverDao.xml +++ b/tall/src/main/resources/mapper_dao/DeliverDao.xml @@ -299,6 +299,7 @@ t_pro_task_deliver AS ptd WHERE ptd.task_detail_id = #{taskId} + AND ptd.rec_status = 0 + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/ProMemberDao.xml b/tall/src/main/resources/mapper_dao/ProMemberDao.xml index 0e0a7921..e448a8a6 100644 --- a/tall/src/main/resources/mapper_dao/ProMemberDao.xml +++ b/tall/src/main/resources/mapper_dao/ProMemberDao.xml @@ -170,7 +170,7 @@ t.sAccount as sAccount, t.sPhone as sPhone FROM - t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id + t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id and mr.rec_status = 0 LEFT JOIN t_pro_role r on r.id = mr.role_id LEFT JOIN t_sys_auth a on a.user_id = m.user_id and a.identify_type = 3 and a.rec_status = 0 LEFT JOIN @@ -198,7 +198,6 @@ (r.rec_status = 0 or r.rec_status is null) and m.project_id = #{projectId} - and mr.rec_status = 0 \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index bb00af62..f72b8f26 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -760,4 +760,41 @@ `name` = 'PM' ) + + + + \ No newline at end of file diff --git a/util/src/test/java/com/ccsens/util/TestQrCord.java b/util/src/test/java/com/ccsens/util/TestQrCord.java index dc5425c5..c639f674 100644 --- a/util/src/test/java/com/ccsens/util/TestQrCord.java +++ b/util/src/test/java/com/ccsens/util/TestQrCord.java @@ -44,9 +44,9 @@ public class TestQrCord { BitMatrix bitMatrix =qrCodeWriter.encode(text,BarcodeFormat.QR_CODE, 1000, 1000,hints); //BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height); - Path path = FileSystems.getDefault().getPath(WebConstant.UPLOAD_PATH_BASE + "/" + fileName); + //Path path = FileSystems.getDefault().getPath(WebConstant.UPLOAD_PATH_BASE + "/" + fileName); - MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); + //MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); // } // String text = "https://test.tall.wiki/respond?groupId=1&groupName=1组"; // String fileName = "zzz/" + DateUtil.today() + "/" + 1+"组" + ".png"; diff --git a/util/src/test/java/com/ccsens/util/VideoTest.java b/util/src/test/java/com/ccsens/util/VideoTest.java index d20f5b4b..e658be51 100644 --- a/util/src/test/java/com/ccsens/util/VideoTest.java +++ b/util/src/test/java/com/ccsens/util/VideoTest.java @@ -98,22 +98,22 @@ public class VideoTest { // 指定资源地址,下载文件测试 // downloadFile("http://1258473962.vod2.myqcloud.com/1e124671vodcq1258473962/76557f735285890810478037694/VCj25SXUgFsA.mp4", "D:/temp/"); - List objects = PoiUtil.readExce(new File("C:\\Users\\逗\\Desktop\\跳绳比赛选手证件照.xlsx"), 0, null, 0, false); - for (int i = 0; i < objects.size(); i++) { - Object[] obj = objects.get(i); - if (obj == null || obj.length < 4) { - continue; - } - String path = (String)obj[3]; - String dir = "D:\\选手证件照\\" + obj[0] + "\\" + obj[1] + "\\" + obj[2]; - try{ - downloadFile(path, dir); - } catch (Exception e) { - System.out.println("下载失败:" + dir); - e.printStackTrace(); - - } - } +// List objects = PoiUtil.readExce(new File("C:\\Users\\逗\\Desktop\\跳绳比赛选手证件照.xlsx"), 0, null, 0, false); +// for (int i = 0; i < objects.size(); i++) { +// Object[] obj = objects.get(i); +// if (obj == null || obj.length < 4) { +// continue; +// } +// String path = (String)obj[3]; +// String dir = "D:\\选手证件照\\" + obj[0] + "\\" + obj[1] + "\\" + obj[2]; +// try{ +// downloadFile(path, dir); +// } catch (Exception e) { +// System.out.println("下载失败:" + dir); +// e.printStackTrace(); +// +// } +// } } } From 9b3275437d890c61d1fa561a906bbb693f794a0d Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Thu, 29 Apr 2021 23:54:26 +0800 Subject: [PATCH 3/8] =?UTF-8?q?20210429=E4=B8=AD=E5=8C=BB=E8=8D=AF?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=BD=95=E5=85=A5=E4=BA=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/tcm/bean/vo/BiologicalSamplesVo.java | 4 ++++ .../java/com/ccsens/tcm/bean/vo/PatientVo.java | 4 ++++ .../com/ccsens/tcm/service/PatientService.java | 1 + tcm/src/main/resources/application.yml | 4 ++-- tcm/src/main/resources/mapper_dao/PatientDao.xml | 16 +++++++++++++--- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/vo/BiologicalSamplesVo.java b/tcm/src/main/java/com/ccsens/tcm/bean/vo/BiologicalSamplesVo.java index 9ccd2d46..e24152d4 100644 --- a/tcm/src/main/java/com/ccsens/tcm/bean/vo/BiologicalSamplesVo.java +++ b/tcm/src/main/java/com/ccsens/tcm/bean/vo/BiologicalSamplesVo.java @@ -27,6 +27,10 @@ public class BiologicalSamplesVo { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("时间") private Date updateAt; + @ApiModelProperty("录入人id") + private Long userId; + @ApiModelProperty("录入人名称") + private String doctorName; } @Data @ApiModel("统计医院生物样本数量") diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/vo/PatientVo.java b/tcm/src/main/java/com/ccsens/tcm/bean/vo/PatientVo.java index a95c11ac..b736ab13 100644 --- a/tcm/src/main/java/com/ccsens/tcm/bean/vo/PatientVo.java +++ b/tcm/src/main/java/com/ccsens/tcm/bean/vo/PatientVo.java @@ -38,6 +38,10 @@ public class PatientVo { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("时间") private Date updateAt; + @ApiModelProperty("录入人id") + private Long userId; + @ApiModelProperty("录入人名称") + private String doctorName; } @Data @ApiModel("经过搜索条件查询的患者集合") diff --git a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java index 27288ca9..d723651a 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java @@ -94,6 +94,7 @@ public class PatientService implements IPatientService { BeanUtils.copyProperties(param,patientInformation); patientInformation.setId(snowflake.nextId()); patientInformation.setHospitalId(hospital.getId()); + patientInformation.setUserId(userId); // 生成编号 long incr = redisUtil.incr(StrUtil.format(Constant.Redis.HOSPITAL_NUM, hospital.getCode(), inpatient.getCode()) , 1); DecimalFormat df=new DecimalFormat("000"); diff --git a/tcm/src/main/resources/application.yml b/tcm/src/main/resources/application.yml index 4ecd13fd..33b76558 100644 --- a/tcm/src/main/resources/application.yml +++ b/tcm/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: dev - include: common, util-dev + active: green + include: common, util-green diff --git a/tcm/src/main/resources/mapper_dao/PatientDao.xml b/tcm/src/main/resources/mapper_dao/PatientDao.xml index b07f35b4..e68380b8 100644 --- a/tcm/src/main/resources/mapper_dao/PatientDao.xml +++ b/tcm/src/main/resources/mapper_dao/PatientDao.xml @@ -48,10 +48,13 @@ th.name as hosName, ti.name, ti.collection_num as collectionNum, - tpi.update_at as updateAt + tpi.update_at as updateAt, + tpi.user_id as userId, + d.`name` as doctorName FROM t_patient_information tpi left join t_inpatient ti on ti.rec_status=0 and ti.id=tpi.inpatient_id left join t_hospital th on th.rec_status=0 and th.id=tpi.hospital_id + LEFT JOIN t_doctor d on tpi.user_id = d.user_id and d.rec_status = 0 WHERE tpi.rec_status = 0 @@ -154,9 +157,12 @@ tpi.input_status AS inputStatus, tpi.hospital_id AS hospitalId, ti.name, - ti.collection_num as collectionNum + ti.collection_num as collectionNum, + tpi.user_id as userId, + d.`name` as doctorName FROM t_patient_information tpi left join t_inpatient ti on ti.rec_status=0 and ti.id=tpi.inpatient_id + LEFT JOIN t_doctor d on d.user_id = tpi.user_id and d.rec_status = 0 WHERE tpi.rec_status =0 @@ -393,10 +399,14 @@ t.user_id - + + \ No newline at end of file diff --git a/util/src/test/java/com/ccsens/util/KeyTest.java b/util/src/test/java/com/ccsens/util/KeyTest.java index bb2dc09e..d67e29ad 100644 --- a/util/src/test/java/com/ccsens/util/KeyTest.java +++ b/util/src/test/java/com/ccsens/util/KeyTest.java @@ -24,23 +24,22 @@ public class KeyTest { @Test public void test3(){ // String key = "a6RlI/GctLgENUvF6DOY7w=="; - String key = "g9RlI/GctLgDFJvF6DOY7w=="; - String string = "sdfe@#$QW"; - SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, Base64.decode(key)); - String encryptHex = aes.encryptHex(string); - Console.log("{}",encryptHex); +// String key = "g9RlI/GctLgDFJvF6DOY7w=="; +// String string = "sdfe@#$QW"; +// SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, Base64.decode(key)); +// String encryptHex = aes.encryptHex(string); +// Console.log("{}",encryptHex); } /**解密*/ @Test public void test4(){ - String key = "g9RlI/GctLgDFJvF6DOY7w=="; -// String key = System.getenv("CCSENS_GAME"); - String encryptString = "6ba13d9930a6ad888a3704376c920a75"; - SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, Base64.decode(key)); - - //解密为字符串 - String decryptStr = aes.decryptStr(encryptString, CharsetUtil.CHARSET_UTF_8); - Console.log("{}",decryptStr); +// String key = "g9RlI/GctLgDFJvF6DOY7w=="; +// String encryptString = "6ba13d9930a6ad888a3704376c920a75"; +// SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, Base64.decode(key)); +// +// //解密为字符串 +// String decryptStr = aes.decryptStr(encryptString, CharsetUtil.CHARSET_UTF_8); +// Console.log("{}",decryptStr); } } From 852094d63937ed6a82f34aa45fe1cf4e44884873 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Fri, 30 Apr 2021 01:29:04 +0800 Subject: [PATCH 5/8] =?UTF-8?q?20210430=E5=8D=95=E7=8B=AC=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E9=A1=B9=E7=9B=AE=E6=88=90=E5=91=98=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/tall/persist/dao/ProRoleDao.java | 7 +- .../com/ccsens/tall/service/ExcelService.java | 7 +- .../ccsens/tall/service/ExportWbsService.java | 254 ++++++++++-------- .../ccsens/tall/service/IExcelService.java | 8 + .../main/resources/mapper_dao/ProRoleDao.xml | 13 + 5 files changed, 180 insertions(+), 109 deletions(-) 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 24a14f76..382bb1e9 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 @@ -128,7 +128,12 @@ public interface ProRoleDao extends ProRoleMapper{ */ List selectRoleOfNoLook(Long roleId); - + /** + * 查找项目内的奖惩干系人信息 + * @param projectId + * @return + */ + ProRole getMoneyStakeholder(@Param("projectId") Long projectId); // /** 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 fb87af12..6fcfa8fd 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java @@ -618,7 +618,7 @@ public class ExcelService implements IExcelService { } } //TODO 每个成员都关注此项目(暂时) - addUserAttention(userIdSet, sysProject); + addUserAttention(userIdSet, sysProject.getId()); } else { throw new BaseException(CodeEnum.WBS_NOT_MEMBER_SHEET); } @@ -627,13 +627,14 @@ public class ExcelService implements IExcelService { /** * 项目成员表内的每个人都关注此项目(暂时,当前版本) */ - private void addUserAttention(Set userIdList, SysProject sysProject) { + @Override + public void addUserAttention(Set userIdList, Long sysProjectId) { if (CollectionUtil.isNotEmpty(userIdList)) { for (Long userId : userIdList) { UserAttention userAttention = new UserAttention(); userAttention.setId(snowflake.nextId()); userAttention.setUserId(userId); - userAttention.setProjectId(sysProject.getId()); + userAttention.setProjectId(sysProjectId); userAttentionService.saveAttention(userAttention); } } 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 8d15fcc0..0c61de9a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java @@ -59,15 +59,13 @@ public class ExportWbsService implements IExportWbsService{ @Resource private SysPluginDao sysPluginDao; @Resource - private TaskDeliverService taskDeliverService; - @Resource - private ProTaskDetailService taskDetailService; - @Resource private ProRoleService proRoleService; @Resource private IUserService userService; @Resource private Snowflake snowflake; + @Resource + private IExcelService excelService; @Override public String exportWbs(Long projectId) throws Exception { @@ -973,109 +971,138 @@ public class ExportWbsService implements IExportWbsService{ @Override public void importMember(String path, Long currentUserId, Long projectId) throws Exception { -// //验证权限 -// int power = proRoleService.selectPowerByRoleName(currentUserId, projectId); -// if (power < 2) { -// throw new BaseException(CodeEnum.NOT_POWER); -// } -// //获取excel表格 -// InputStream is = new FileInputStream(path); -// XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is); -// //获取项目成员表 -// XSSFSheet memberSheet = xssfWorkbook.getSheet("项目成员表"); -// -// //读取WBS表 -// List stakeholderList = new ArrayList<>(); -// if (ObjectUtil.isNotNull(memberSheet)) { -// Set userIdSet = new HashSet<>(); -// -// for (int i = 1; i <= memberSheet.getLastRowNum(); i++) { -// XSSFRow row = memberSheet.getRow(i); -// if(ObjectUtil.isNull(row)){ -// continue; -// } -// String memberCell = ExcelUtil.getCellValue(row.getCell(1)); -// String phoneCell = ExcelUtil.getCellValue(row.getCell(2)); -// String stakeholderCell = ExcelUtil.getCellValue(row.getCell(3)); -// String stakeholderPhoneCell = ExcelUtil.getCellValue(row.getCell(4)); -// ProMember stakeholder = null; -// ProMember member; -// //成员名为空,跳至下一行 -// if ((StrUtil.isEmpty(memberCell))) { -// continue; -// } -// //手机号不能为空 -// if (StrUtil.isNotEmpty(memberCell) && StrUtil.isEmpty(phoneCell)) { -// throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(memberSheet.getSheetName(), (i+1),memberCell)); -// } -// //判断手机号格式 -// String regex ="^[1]([3-9])[0-9]{9}$"; -// if (StrUtil.isEmpty(phoneCell) || !phoneCell.matches(regex)){ -// throw new BaseException(CodeEnum.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(),(i+1),memberCell)); -// } -// -// //添加奖惩干系人 -// if (StrUtil.isNotEmpty(stakeholderCell)) { -// //判断奖惩干系人的手机号是否为空 -// if ( StrUtil.isEmpty(stakeholderPhoneCell)){ -// throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(memberSheet.getSheetName(), (i+1),stakeholderCell)); -// } -// //判断奖惩干系人的手机号格式是否正确 -// if (!stakeholderPhoneCell.matches(regex)){ -// throw new BaseException(CodeEnum.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(),(i+1),stakeholderCell)); -// } -// if (!stakeholderWithPhone(stakeholderList, stakeholderCell, stakeholderPhoneCell)) { -// Long userId = userService.selectUserIdByPhone(stakeholderPhoneCell); -// if (ObjectUtil.isNotNull(userId)) { -// userIdSet.add(userId); -// } -// stakeholder = new ProMember(); -// stakeholder.setId(snowflake.nextId()); -// stakeholder.setProjectId(projectId); -// stakeholder.setUserId(userId); -// stakeholder.setNickname(stakeholderCell); -// stakeholder.setPhone(stakeholderPhoneCell); -// proMemberDao.insertSelective(stakeholder); -// stakeholderList.add(stakeholder); + //验证权限 + int power = proRoleService.selectPowerByRoleName(currentUserId, projectId); + if (power < 2) { + throw new BaseException(CodeEnum.NOT_POWER); + } + //获取excel表格 + InputStream is = new FileInputStream(path); + XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is); + //获取项目成员表 + XSSFSheet memberSheet = xssfWorkbook.getSheet("项目成员表"); + if (ObjectUtil.isNull(memberSheet)) { + throw new BaseException(CodeEnum.WBS_NOT_MEMBER_SHEET); + } + +// //存储表内的成员信息 +// Map mapName = new HashMap<>(); +// Map mapPhone = new HashMap<>(); +// //存储奖惩干系人信息 +// Map sMapName = new HashMap<>(); +// Map sMapPhone = new HashMap<>(); + //存成员 + List memberList = new ArrayList<>(); + //存奖惩干系人 + List stakeholderList = new ArrayList<>(); + //存储添加的成员和奖惩干系人的userId,为了关注此项目 + Set userIdSet = new HashSet<>(); + //查询项目内的奖惩干系人角色 + ProRole proStakeholder = proRoleDao.getMoneyStakeholder(projectId); + //手机号格式 + String regex ="^[1]([3-9])[0-9]{9}$"; + //循环读取信息 + for (int i = 1; i <= memberSheet.getLastRowNum(); i++) { + XSSFRow row = memberSheet.getRow(i); + if (ObjectUtil.isNull(row)) { + continue; + } + String memberCell = ExcelUtil.getCellValue(row.getCell(1)); + String phoneCell = ExcelUtil.getCellValue(row.getCell(2)); + String stakeholderCell = ExcelUtil.getCellValue(row.getCell(3)); + String stakeholderPhoneCell = ExcelUtil.getCellValue(row.getCell(4)); + //成员名不存在,跳过 + if ((StrUtil.isEmpty(memberCell))) { + continue; + } + //成员手机号不能为空 + if (StrUtil.isEmpty(phoneCell)) { + throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(memberSheet.getSheetName(), (i + 1), memberCell)); + } + //验证手机号格式 + if (!phoneCell.matches(regex)) { + throw new BaseException(CodeEnum.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(), (i + 1), memberCell)); + } + //处理奖惩干系人 + ProMember stakeholder = null; + if (StrUtil.isNotEmpty(stakeholderCell)) { + //判断奖惩干系人的手机号是否为空 + if (StrUtil.isEmpty(stakeholderPhoneCell)) { + throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(memberSheet.getSheetName(), (i + 1), stakeholderCell)); + } + //判断奖惩干系人的手机号格式是否正确 + if (!stakeholderPhoneCell.matches(regex)) { + throw new BaseException(CodeEnum.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(), (i + 1), stakeholderCell)); + } + if (!stakeholderWithPhone(stakeholderList, stakeholderCell, stakeholderPhoneCell)) { + Long userId = userService.selectUserIdByPhone(stakeholderPhoneCell); + if (ObjectUtil.isNotNull(userId)) { + userIdSet.add(userId); + } + stakeholder = new ProMember(); + stakeholder.setId(snowflake.nextId()); + stakeholder.setProjectId(projectId); + stakeholder.setUserId(userId); + stakeholder.setNickname(stakeholderCell); + stakeholder.setPhone(stakeholderPhoneCell); + proMemberDao.insertSelective(stakeholder); + stakeholderList.add(stakeholder); + + ProMemberRole proMemberRole = new ProMemberRole(); + proMemberRole.setId(snowflake.nextId()); + proMemberRole.setMemberId(stakeholder.getId()); + proMemberRole.setRoleId(proStakeholder.getId()); + proMemberRoleDao.insertSelective(proMemberRole); + } else { + throw new BaseException(CodeEnum.WBS_STAKEHOLDER_PHONE.addMsg(memberSheet.getSheetName(), (i + 1), stakeholderCell)); + } + } + //检查成员在此项目中是否已存在 + ProMemberExample nameExample = new ProMemberExample(); + nameExample.createCriteria().andProjectIdEqualTo(projectId).andNicknameEqualTo(memberCell); + long l2 = proMemberDao.countByExample(nameExample); + if(l2 > 0){ + throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE.addMsg(memberSheet.getSheetName(),(i+1),memberCell)); + } + //校验手机号是否已存在 + ProMemberExample phoneExample = new ProMemberExample(); + phoneExample.createCriteria().andProjectIdEqualTo(projectId).andPhoneEqualTo(phoneCell); + long l1 = proMemberDao.countByExample(phoneExample); + if(l1 > 0){ + throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE.addMsg(memberSheet.getSheetName(),(i+1),phoneCell)); + } +// ProMemberExample example = new ProMemberExample(); +// ProMemberExample.Criteria c1 = example.createCriteria(); +// c1.andProjectIdEqualTo(projectId).andPhoneEqualTo(phoneCell); // -// ProMemberRole proMemberRole = new ProMemberRole(); -// proMemberRole.setId(snowflake.nextId()); -// proMemberRole.setMemberId(stakeholder.getId()); -// proMemberRole.setRoleId(stakeholderId); -// proMemberRoleDao.insertSelective(proMemberRole); -// } else { -// throw new BaseException(CodeEnum.WBS_STAKEHOLDER_PHONE.addMsg(memberSheet.getSheetName(),(i+1),stakeholderCell)); -// } -// } -// //成员 -// if (StrUtil.isNotEmpty(memberCell)) { -// if (!memberAndPhoneRepeat(proMembers, memberCell, phoneCell)) { -// Long userId = userService.selectUserIdByPhone(phoneCell); -// if (ObjectUtil.isNotNull(userId)) { -// userIdSet.add(userId); -// } -// member = new ProMember(); -// member.setId(snowflake.nextId()); -// member.setProjectId(sysProject.getId()); -// member.setUserId(userId); -// member.setNickname(memberCell); -// member.setPhone(phoneCell); -// if (ObjectUtil.isNotNull(stakeholder)) { -// member.setStakeholderId(stakeholder.getId()); -// } -// proMemberService.saveMember(member); -// proMembers.add(member); -//// //创建者依据project的creatorId判断,不需要添加成员 -// } else { -// throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE.addMsg(memberSheet.getSheetName(),(i+1))); -// } -// } +// ProMemberExample.Criteria c2 = example.createCriteria(); +// c2.andProjectIdEqualTo(projectId).andNicknameEqualTo(memberCell); +// example.or(c2); +// long l3 = proMemberDao.countByExample(example); +// if(l3 > 0){ +// throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE.addMsg(memberSheet.getSheetName(),(i+1),phoneCell)); // } -// //TODO 每个成员都关注此项目(暂时) -// addUserAttention(userIdSet, sysProject); -// } else { -// throw new BaseException(CodeEnum.WBS_NOT_MEMBER_SHEET); -// } + //成员 + if (!memberAndPhoneRepeat(memberList, memberCell, phoneCell)) { + Long userId = userService.selectUserIdByPhone(phoneCell); + if (ObjectUtil.isNotNull(userId)) { + userIdSet.add(userId); + } + ProMember member = new ProMember(); + member.setId(snowflake.nextId()); + member.setProjectId(projectId); + member.setUserId(userId); + member.setNickname(memberCell); + member.setPhone(phoneCell); + if (ObjectUtil.isNotNull(stakeholder)) { + member.setStakeholderId(stakeholder.getId()); + } + proMemberDao.insertSelective(member); + memberList.add(member); + } + } + //TODO 每个成员都关注此项目(暂时) + excelService.addUserAttention(userIdSet, projectId); } private boolean stakeholderWithPhone(List stakeholderList, String stakeholderName, String phone) { @@ -1094,4 +1121,21 @@ public class ExportWbsService implements IExportWbsService{ } return false; } + + /** + * 判断成员和手机号是否重复 + */ + private boolean memberAndPhoneRepeat(List proMembers, String memberName, String phone) { + if (CollectionUtil.isNotEmpty(proMembers)) { + for (ProMember proMember : proMembers) { + if (proMember.getNickname().equalsIgnoreCase(memberName)) { + return true; + } + if (proMember.getPhone().equalsIgnoreCase(phone)) { + return true; + } + } + } + return false; + } } diff --git a/tall/src/main/java/com/ccsens/tall/service/IExcelService.java b/tall/src/main/java/com/ccsens/tall/service/IExcelService.java index f509df29..b3e5f369 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IExcelService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IExcelService.java @@ -1,10 +1,12 @@ package com.ccsens.tall.service; +import com.ccsens.tall.bean.po.SysProject; import com.ccsens.tall.bean.vo.ProjectVo; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import javax.servlet.http.Part; +import java.util.Set; public interface IExcelService { /** @@ -36,4 +38,10 @@ public interface IExcelService { */ void saveWbsExcelFile(Long userId,Long projectId,String filePath, String fileName,Long fileSize,Long wpsFileId); + /** + * 用户关注项目 + * @param userIdList + * @param projectId + */ + void addUserAttention(Set userIdList, Long projectId); } diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index 2ade565d..71a80495 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -462,4 +462,17 @@ WHERE r.rec_status = 0 + \ No newline at end of file From b347e191ddff86d774eea1e5de5796304c2f252d Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Fri, 30 Apr 2021 10:53:43 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9sql=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java | 2 +- tall/src/main/resources/mapper_dao/ProRoleDao.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 b7d263ca..17876277 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 @@ -524,7 +524,7 @@ public class TaskVo { } @Data - @ApiModel("每周任务的交付物") + @ApiModel("周会任务相关") public static class AboutWeekTask { @JsonIgnore @ApiModelProperty("任务详情名称") diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index 71a80495..06100c3c 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -394,7 +394,7 @@ FROM t_pro_role WHERE - parent_id = ( + parent_id in ( SELECT id FROM t_pro_role WHERE project_id = #{projectId} and `name` = 'PM' ) and From 84c2add5659afe609fdb25c30416a54296c5a6a7 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Fri, 30 Apr 2021 10:54:49 +0800 Subject: [PATCH 7/8] 20210430v1.1 --- mt/src/main/java/com/ccsens/mt/api/CompeteController.java | 4 ++-- .../main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java | 2 +- mt/src/main/java/com/ccsens/mt/service/CompeteService.java | 2 +- mt/src/main/java/com/ccsens/mt/service/ICompeteService.java | 2 +- mt/src/main/resources/application.yml | 4 ++-- mt/src/main/resources/mapper_dao/CompeteTimeDao.xml | 2 +- tall/src/main/resources/application.yml | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mt/src/main/java/com/ccsens/mt/api/CompeteController.java b/mt/src/main/java/com/ccsens/mt/api/CompeteController.java index 2bbbc585..bcd75f1b 100644 --- a/mt/src/main/java/com/ccsens/mt/api/CompeteController.java +++ b/mt/src/main/java/com/ccsens/mt/api/CompeteController.java @@ -36,10 +36,10 @@ public class CompeteController { @ApiOperation(value = "查看比赛列表", notes = "") - @RequestMapping(value = "/competeTime", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + @RequestMapping(value = "/competeTimeList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse getCompeteTimeList() { log.info("查看比赛列表"); - List competeTime = competeService.getCompeteTimeList(); + List competeTime = competeService.getCompeteTimeList(); return JsonResponse.newInstance().ok(competeTime); } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java index de248a1d..70a2d928 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java @@ -68,5 +68,5 @@ public interface CompeteTimeDao extends CompeteTimeMapper { * 查询2021比赛列表 * @return */ - List getCompeteTimeList(); + List getCompeteTimeList(); } diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java index acd044c5..fa18e3a0 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -348,7 +348,7 @@ public class CompeteService implements ICompeteService { } @Override - public List getCompeteTimeList() { + public List getCompeteTimeList() { return competeTimeDao.getCompeteTimeList(); } diff --git a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java index 59da2e29..31eadd62 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java @@ -233,7 +233,7 @@ public interface ICompeteService { * 查看比赛列表 * @return */ - List getCompeteTimeList(); + List getCompeteTimeList(); } diff --git a/mt/src/main/resources/application.yml b/mt/src/main/resources/application.yml index a47f2a7b..ac92adb9 100644 --- a/mt/src/main/resources/application.yml +++ b/mt/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: dev - include: common, util-dev + active: test + include: common, util-test diff --git a/mt/src/main/resources/mapper_dao/CompeteTimeDao.xml b/mt/src/main/resources/mapper_dao/CompeteTimeDao.xml index ccad2776..96a70b1a 100644 --- a/mt/src/main/resources/mapper_dao/CompeteTimeDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteTimeDao.xml @@ -37,7 +37,7 @@ and end_time > #{time} - SELECT id, `name`, diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index b5408a3a..9e02c3e8 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: dev - include: util-dev,common + active: greenvalley + include: util-greenvalley,common From 4bf85973d1e1fda51ab2a05cad3d036cf893db7b Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Fri, 30 Apr 2021 17:37:51 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9lwbs=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=B1=82=E7=BA=A7=E9=97=AE=E9=A2=98,=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E9=81=87=E5=88=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ccsens/tall/bean/vo/TaskVo.java | 3 +- .../tall/persist/dao/TaskDetailDao.java | 10 ++++++- .../com/ccsens/tall/service/LwbsService.java | 7 +++++ .../tall/service/ProTaskDetailService.java | 6 ++-- .../tall/service/TaskDeliverService.java | 7 ++++- .../resources/mapper_dao/TaskDetailDao.xml | 28 +++++++++++++++++++ 6 files changed, 56 insertions(+), 5 deletions(-) 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 17876277..e1d61885 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 @@ -13,6 +13,7 @@ import lombok.Setter; import javax.validation.constraints.NotNull; import java.io.ByteArrayInputStream; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; @Data @@ -148,7 +149,7 @@ public class TaskVo { @ApiModelProperty("插件") private List plugins; @ApiModelProperty("二级任务") - private List secondTasks; + private List secondTasks = new ArrayList<>(); @ApiModelProperty("时间状态 0:正常 1:任务开始 2:任务结束") private Byte timeStatus = 0; @ApiModelProperty("当前周期内任务的序号") diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java index c8cdff27..359110b8 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java @@ -68,7 +68,8 @@ public interface TaskDetailDao extends ProTaskDetailMapper { * @param startTime 开始时间 * @param endTime 结束时间 * @param userId 当前用户的userId - * @return + * @param roleIds 角色id + * @return lwb任务 */ List queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId,@Param("roleIds") List roleIds); @@ -95,4 +96,11 @@ public interface TaskDetailDao extends ProTaskDetailMapper { * @return 分解任务 List */ List selectTaskByExecutorRoleId(@Param("roleIds") List roleIds,@Param("startTime") Long startTime,@Param("endTime") Long endTime); + + /** + * 根据任务详情id查询二级任务 + * @param detailId 任务详情id + * @return 二级任务 + */ + List getSecondTasks(Long detailId); } diff --git a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java index 40661c1d..257a3f5a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java +++ b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java @@ -117,6 +117,13 @@ public class LwbsService implements ILwbsService{ TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess()); proTaskInfo.setGlobalTaskList(task.getGlobal()); proTaskInfo.setNormalTaskList(task.getCommonTask()); + //查看普通任务下是否有子任务 + if (CollectionUtil.isNotEmpty(proTaskInfo.getNormalTaskList())){ + for (TaskVo.NormalTask normalTask : proTaskInfo.getNormalTaskList()) { + List secondTasks = taskDetailDao.getSecondTasks(normalTask.getDetailId()); + normalTask.getSecondTasks().addAll(secondTasks); + } + } } } return proTaskInfo; diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java index 3e76ad57..241d3fdd 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -850,8 +850,10 @@ public class ProTaskDetailService implements IProTaskDetailService { //根据任务id查询项目下项目经理 Long pmId = taskDetailDao.selectPmByTaskId(task.getId()); ProRole proRole = proRoleDao.selectByPrimaryKey(pmId); - taskDetail.setCheckerRole(proRole.getId()); - taskDetail.setCheckerRoleName(proRole.getName()); + if (ObjectUtil.isNotNull(proRole)){ + taskDetail.setCheckerRole(proRole.getId()); + taskDetail.setCheckerRoleName(proRole.getName()); + } } } diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java index b02f2691..5d1cedd7 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java @@ -1254,14 +1254,19 @@ public class TaskDeliverService implements ITaskDeliverService { //查找任务详情id Long taskDetailId = null; + //查找项目id + Long projectId = null; + ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(param.getTaskId()); if(ObjectUtil.isNotNull(taskDetail)){ taskDetailId = taskDetail.getId(); + projectId = taskDetail.getProjectId(); }else { ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId()); if(ObjectUtil.isNotNull(proTaskSubTime)){ ProTaskDetail task = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); if(ObjectUtil.isNotNull(task)){ + projectId = task.getId(); taskDetailId = task.getId(); } } @@ -1288,7 +1293,7 @@ public class TaskDeliverService implements ITaskDeliverService { taskDeliverDao.insertSelective(proTaskDeliver); } - normalTask = taskDetailService.getTaskInfoByTaskId(userId, taskDetail.getProjectId(), param.getTaskId(), null); + normalTask = taskDetailService.getTaskInfoByTaskId(userId, projectId, param.getTaskId(), null); return normalTask; } diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index f72b8f26..85612636 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -660,6 +660,7 @@ s.rec_status = 0 and d.executor_role = #{userId} AND d.project_id = 0 + AND d.parent_id = 0 order by s.begin_time )t LEFT JOIN @@ -797,4 +798,31 @@ AND tst.begin_time >= #{startTime} AND tst.end_time <= #{endTime} + + \ No newline at end of file