From 14f5c8b8f9640e2d6689615065db5635881e140f Mon Sep 17 00:00:00 2001 From: ccsens_zhengzhichuan Date: Thu, 16 Oct 2025 19:28:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=89=8D=E5=8F=B0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BB=BB=E5=8A=A1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/domain/dto/MemberAduitDto.java | 2 +- .../system/domain/dto/ShsResDeviceDto.java | 2 +- .../research/system/domain/dto/TaskDto.java | 6 +++- .../system/domain/po/TaskDeliverable.java | 8 ++--- .../domain/po/TaskDeliverableExample.java | 30 ++++++----------- .../com/research/system/domain/vo/HomeVo.java | 25 +++++++++++++++ .../impl/ClientPrjProjInfoServiceImpl.java | 2 +- .../system/service/impl/HomeServiceImpl.java | 32 +++++++++++++++++-- .../service/impl/MemberAduitServiceImpl.java | 1 + .../service/impl/SysRoleServiceImpl.java | 2 +- .../system/service/impl/TaskServiceImpl.java | 21 ++++++++---- .../src/main/resources/mapper/dao/HomeDao.xml | 4 ++- .../resources/mapper/dao/MemberAduitDao.xml | 8 ++--- .../src/main/resources/mapper/dao/TaskDao.xml | 13 +++++--- .../resources/mapper/system/SysRoleMapper.xml | 4 +-- .../mapper/system/TaskDeliverableMapper.xml | 18 +++++------ 16 files changed, 120 insertions(+), 58 deletions(-) diff --git a/research-system/src/main/java/com/research/system/domain/dto/MemberAduitDto.java b/research-system/src/main/java/com/research/system/domain/dto/MemberAduitDto.java index 0961f901..d7151bcc 100644 --- a/research-system/src/main/java/com/research/system/domain/dto/MemberAduitDto.java +++ b/research-system/src/main/java/com/research/system/domain/dto/MemberAduitDto.java @@ -89,7 +89,7 @@ public class MemberAduitDto { public static class Query { private String username; private String phone; - private String type; + private Byte type; private Long id; private Long ktGroupId; private String memberName; diff --git a/research-system/src/main/java/com/research/system/domain/dto/ShsResDeviceDto.java b/research-system/src/main/java/com/research/system/domain/dto/ShsResDeviceDto.java index 63d83fb0..c0584b73 100644 --- a/research-system/src/main/java/com/research/system/domain/dto/ShsResDeviceDto.java +++ b/research-system/src/main/java/com/research/system/domain/dto/ShsResDeviceDto.java @@ -22,7 +22,7 @@ public class ShsResDeviceDto { public static class Query { @ApiModelProperty("平台id") private Long platformId; - private String projOrgId; + private Long projOrgId; @ApiModelProperty("仪器名") private String deviceName; } diff --git a/research-system/src/main/java/com/research/system/domain/dto/TaskDto.java b/research-system/src/main/java/com/research/system/domain/dto/TaskDto.java index 2243d842..55f4a691 100644 --- a/research-system/src/main/java/com/research/system/domain/dto/TaskDto.java +++ b/research-system/src/main/java/com/research/system/domain/dto/TaskDto.java @@ -28,13 +28,17 @@ public class TaskDto { private Integer dateType; @ApiModelProperty("任务状态 0全部 1未完成 2已完成 3待审核") - private Integer status; + private Integer completedStatus; private Long groupId; private Date startTime; private Date endTime; @ApiModelProperty("是否我的任务 0全部 1我的") private Byte isMine; + private Long userId; +// private Long getUserId(){ +// return SecurityUtils.getUserId(); +// } private String getUserName(){ return SecurityUtils.getUsername(); } diff --git a/research-system/src/main/java/com/research/system/domain/po/TaskDeliverable.java b/research-system/src/main/java/com/research/system/domain/po/TaskDeliverable.java index da5b7017..40e2afa3 100644 --- a/research-system/src/main/java/com/research/system/domain/po/TaskDeliverable.java +++ b/research-system/src/main/java/com/research/system/domain/po/TaskDeliverable.java @@ -6,7 +6,7 @@ import java.util.Date; public class TaskDeliverable implements Serializable { private Long id; - private String taskId; + private Long taskId; private String deliverableName; @@ -44,12 +44,12 @@ public class TaskDeliverable implements Serializable { this.id = id; } - public String getTaskId() { + public Long getTaskId() { return taskId; } - public void setTaskId(String taskId) { - this.taskId = taskId == null ? null : taskId.trim(); + public void setTaskId(Long taskId) { + this.taskId = taskId; } public String getDeliverableName() { diff --git a/research-system/src/main/java/com/research/system/domain/po/TaskDeliverableExample.java b/research-system/src/main/java/com/research/system/domain/po/TaskDeliverableExample.java index c8ffd677..44aec772 100644 --- a/research-system/src/main/java/com/research/system/domain/po/TaskDeliverableExample.java +++ b/research-system/src/main/java/com/research/system/domain/po/TaskDeliverableExample.java @@ -175,62 +175,52 @@ public class TaskDeliverableExample { return (Criteria) this; } - public Criteria andTaskIdEqualTo(String value) { + public Criteria andTaskIdEqualTo(Long value) { addCriterion("task_id =", value, "taskId"); return (Criteria) this; } - public Criteria andTaskIdNotEqualTo(String value) { + public Criteria andTaskIdNotEqualTo(Long value) { addCriterion("task_id <>", value, "taskId"); return (Criteria) this; } - public Criteria andTaskIdGreaterThan(String value) { + public Criteria andTaskIdGreaterThan(Long value) { addCriterion("task_id >", value, "taskId"); return (Criteria) this; } - public Criteria andTaskIdGreaterThanOrEqualTo(String value) { + public Criteria andTaskIdGreaterThanOrEqualTo(Long value) { addCriterion("task_id >=", value, "taskId"); return (Criteria) this; } - public Criteria andTaskIdLessThan(String value) { + public Criteria andTaskIdLessThan(Long value) { addCriterion("task_id <", value, "taskId"); return (Criteria) this; } - public Criteria andTaskIdLessThanOrEqualTo(String value) { + public Criteria andTaskIdLessThanOrEqualTo(Long value) { addCriterion("task_id <=", value, "taskId"); return (Criteria) this; } - public Criteria andTaskIdLike(String value) { - addCriterion("task_id like", value, "taskId"); - return (Criteria) this; - } - - public Criteria andTaskIdNotLike(String value) { - addCriterion("task_id not like", value, "taskId"); - return (Criteria) this; - } - - public Criteria andTaskIdIn(List values) { + public Criteria andTaskIdIn(List values) { addCriterion("task_id in", values, "taskId"); return (Criteria) this; } - public Criteria andTaskIdNotIn(List values) { + public Criteria andTaskIdNotIn(List values) { addCriterion("task_id not in", values, "taskId"); return (Criteria) this; } - public Criteria andTaskIdBetween(String value1, String value2) { + public Criteria andTaskIdBetween(Long value1, Long value2) { addCriterion("task_id between", value1, value2, "taskId"); return (Criteria) this; } - public Criteria andTaskIdNotBetween(String value1, String value2) { + public Criteria andTaskIdNotBetween(Long value1, Long value2) { addCriterion("task_id not between", value1, value2, "taskId"); return (Criteria) this; } diff --git a/research-system/src/main/java/com/research/system/domain/vo/HomeVo.java b/research-system/src/main/java/com/research/system/domain/vo/HomeVo.java index db547637..1b9d0100 100644 --- a/research-system/src/main/java/com/research/system/domain/vo/HomeVo.java +++ b/research-system/src/main/java/com/research/system/domain/vo/HomeVo.java @@ -1,5 +1,8 @@ package com.research.system.domain.vo; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.StrUtil; import com.research.system.domain.dto.GroupDto; import com.research.system.domain.po.PrjProjInfo; import io.swagger.annotations.ApiModel; @@ -53,6 +56,8 @@ public class HomeVo { public static class TaskResult { private Long id; + private String leader; + private Long projId; private Long projOrgId; @@ -99,6 +104,26 @@ public class HomeVo { private Date createTime; private String ktGroupName; + + private Byte completedStatus = 0; + + public List getDeliverableList() { + if (StrUtil.isNotEmpty(deliverables)) { + return ListUtil.toList(deliverables.split(",")); + } + return CollectionUtil.newArrayList(); + } + + public Long getDuration(){ + if (startTime != null && endTime != null) { + return (endTime.getTime() - startTime.getTime()) / (1000 * 60 * 60 * 24) >= 0 ? (endTime.getTime() - startTime.getTime()) / (1000 * 60 * 60 * 24) : 0L; + } + return 0L; + } + + public String getLeader() { + return initiator; + } } @Data diff --git a/research-system/src/main/java/com/research/system/service/impl/ClientPrjProjInfoServiceImpl.java b/research-system/src/main/java/com/research/system/service/impl/ClientPrjProjInfoServiceImpl.java index 4c8fb965..734d1118 100644 --- a/research-system/src/main/java/com/research/system/service/impl/ClientPrjProjInfoServiceImpl.java +++ b/research-system/src/main/java/com/research/system/service/impl/ClientPrjProjInfoServiceImpl.java @@ -100,7 +100,7 @@ public class ClientPrjProjInfoServiceImpl implements ClientPrjProjInfoService { for (ClientPrjProjInfoVo.Result result : results) { //查询合作单位 PrjProjOrgExample prjProjOrgExample = new PrjProjOrgExample(); - prjProjOrgExample.createCriteria().andProjIdEqualTo(result.getId()); + prjProjOrgExample.createCriteria().andProjIdEqualTo(result.getId()).andCategoryEqualTo((byte) 1); List prjProjOrgs = prjProjOrgMapper.selectByExample(prjProjOrgExample); if (CollUtil.isNotEmpty(prjProjOrgs)) { result.setPrjProjOrgList(BeanUtil.copyToList(prjProjOrgs, ClientPrjProjInfoVo.OrgVo.class)); diff --git a/research-system/src/main/java/com/research/system/service/impl/HomeServiceImpl.java b/research-system/src/main/java/com/research/system/service/impl/HomeServiceImpl.java index a5d9925b..9bd17833 100644 --- a/research-system/src/main/java/com/research/system/service/impl/HomeServiceImpl.java +++ b/research-system/src/main/java/com/research/system/service/impl/HomeServiceImpl.java @@ -10,6 +10,7 @@ import com.research.system.persist.dao.HomeDao; import com.research.system.persist.mapper.KtsKtGroupMapper; import com.research.system.persist.mapper.PrjProjOrgMapper; import com.research.system.persist.mapper.ProProgressMapper; +import com.research.system.persist.mapper.TaskDeliverableMapper; import com.research.system.service.HomeService; import org.springframework.stereotype.Service; @@ -35,6 +36,8 @@ public class HomeServiceImpl implements HomeService { private ProProgressMapper proProgressMapper; @Resource private KtsKtGroupMapper ktsKtGroupMapper; + @Resource + private TaskDeliverableMapper taskDeliverableMapper; @Override public HomeVo.Result queryHomeInfo() { @@ -87,7 +90,25 @@ public class HomeServiceImpl implements HomeService { @Override public List queryTaskList() { - return homeDao.queryTaskList(SecurityUtils.getUserId()); + List taskResults = homeDao.queryTaskList(SecurityUtils.getUserId()); + if (CollUtil.isNotEmpty(taskResults)) { + //查询任务状态 + for (HomeVo.TaskResult taskResult : taskResults) { + TaskDeliverableExample taskDeliverableExample = new TaskDeliverableExample(); + taskDeliverableExample.createCriteria().andTaskIdEqualTo(taskResult.getId()).andAduitStatusEqualTo((byte) 1); + List taskDeliverables = taskDeliverableMapper.selectByExample(taskDeliverableExample); + if (CollUtil.isEmpty(taskDeliverables)) { + taskResult.setCompletedStatus((byte) 1); + }else { + if (taskDeliverables.size() >= taskResult.getDeliverableList().size()) { + taskResult.setCompletedStatus((byte) 2); + }else { + taskResult.setCompletedStatus((byte) 1); + } + } + } + } + return taskResults; } @Override @@ -95,7 +116,14 @@ public class HomeServiceImpl implements HomeService { HomeVo.ProjressMemberResult projressMemberResult = new HomeVo.ProjressMemberResult(); projressMemberResult.setOrgMemberList(homeDao.orgMemberList()); projressMemberResult.setXlList(homeDao.resultList()); - projressMemberResult.setTitleList(homeDao.titleList()); + List titleResults = homeDao.titleList(); + if (CollUtil.isNotEmpty(titleResults)) { + HomeVo.ProjressMemberResult.TitleResult titleResult = new HomeVo.ProjressMemberResult.TitleResult(); + titleResult.setTitle("其他"); + titleResult.setNum(projressMemberResult.getOrgMemberList().stream().mapToInt(HomeVo.ProjressMemberResult.OrgMemberResult::getNum).sum() - titleResults.stream().mapToInt(HomeVo.ProjressMemberResult.TitleResult::getNum).sum()); + titleResults.add(titleResult); + } + projressMemberResult.setTitleList(titleResults); return projressMemberResult; } diff --git a/research-system/src/main/java/com/research/system/service/impl/MemberAduitServiceImpl.java b/research-system/src/main/java/com/research/system/service/impl/MemberAduitServiceImpl.java index b229b869..911455ca 100644 --- a/research-system/src/main/java/com/research/system/service/impl/MemberAduitServiceImpl.java +++ b/research-system/src/main/java/com/research/system/service/impl/MemberAduitServiceImpl.java @@ -140,6 +140,7 @@ public class MemberAduitServiceImpl implements MemberAduitService { addMember.setRoleIdList(Arrays.stream(split).map(Long::parseLong).collect(Collectors.toList())); } BeanUtil.copyProperties(ktsKtGroupMemberAduit, addMember); + addMember.setId(null); ktsGroupService.addMember(addMember); // //添加主库租户用户 diff --git a/research-system/src/main/java/com/research/system/service/impl/SysRoleServiceImpl.java b/research-system/src/main/java/com/research/system/service/impl/SysRoleServiceImpl.java index 1cbfd456..4cfdef65 100644 --- a/research-system/src/main/java/com/research/system/service/impl/SysRoleServiceImpl.java +++ b/research-system/src/main/java/com/research/system/service/impl/SysRoleServiceImpl.java @@ -52,7 +52,7 @@ public class SysRoleServiceImpl implements ISysRoleService * @return 角色数据集合信息 */ @Override - @DataScope(deptAlias = "d") +// @DataScope(deptAlias = "d") public List selectRoleList(SysRole role) { return roleMapper.selectRoleList(role); diff --git a/research-system/src/main/java/com/research/system/service/impl/TaskServiceImpl.java b/research-system/src/main/java/com/research/system/service/impl/TaskServiceImpl.java index 9ecf6471..43a7101c 100644 --- a/research-system/src/main/java/com/research/system/service/impl/TaskServiceImpl.java +++ b/research-system/src/main/java/com/research/system/service/impl/TaskServiceImpl.java @@ -11,6 +11,7 @@ import com.research.system.domain.dto.TaskDto; import com.research.system.domain.po.*; import com.research.system.domain.vo.TaskVo; import com.research.system.persist.dao.TaskDao; +import com.research.system.persist.mapper.KtsKtGroupMemberMapper; import com.research.system.persist.mapper.TaskDeliverableMapper; import com.research.system.persist.mapper.TaskExecutorMapper; import com.research.system.persist.mapper.TaskListMapper; @@ -19,10 +20,7 @@ import com.research.system.service.TaskService; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -43,6 +41,8 @@ public class TaskServiceImpl implements TaskService { @Resource private ClientPrjProjInfoService clientPrjProjInfoService; @Resource + private KtsKtGroupMemberMapper ktsKtGroupMemberMapper; + @Resource private TaskDao taskDao; @Override @@ -95,6 +95,14 @@ public class TaskServiceImpl implements TaskService { query.setEndTime(DateUtil.endOfMonth(new Date())); } } + //获取课题组ID + Long userId = SecurityUtils.getUserId(); + KtsKtGroupMemberExample ktsKtGroupMemberExample = new KtsKtGroupMemberExample(); + ktsKtGroupMemberExample.createCriteria().andUserIdEqualTo(userId); + List ktsKtGroupMembers = ktsKtGroupMemberMapper.selectByExample(ktsKtGroupMemberExample); + if (CollectionUtil.isNotEmpty(ktsKtGroupMembers)) { + query.setUserId(ktsKtGroupMembers.get(0).getId()); + } List taskResults = taskDao.queryList(query); if (CollectionUtil.isNotEmpty(taskResults)) { Map> collect = taskResults.stream().collect(Collectors.groupingBy(TaskVo.TaskResult::getMonth)); @@ -111,6 +119,7 @@ public class TaskServiceImpl implements TaskService { dateResult.setDate(entry1.getKey()); dateResultList.add(dateResult); } + dateResultList.stream().sorted(Comparator.comparing(TaskVo.ClientList.DateResult::getDate)).collect(Collectors.toList()); clientList.setClientList(dateResultList); } result.add(clientList); @@ -256,11 +265,11 @@ public class TaskServiceImpl implements TaskService { @Override public void aduit(Long taskId, Long deliverableId, Byte status) { TaskList taskList = taskListMapper.selectByPrimaryKey(taskId); - if (taskList == null || taskList.getEndTime().getTime() <= System.currentTimeMillis()) { + if (taskList == null) { throw new RuntimeException("任务不存在或任务已结束"); } TaskDeliverableWithBLOBs taskDeliverableWithBLOBs = taskDeliverableMapper.selectByPrimaryKey(deliverableId); - if (taskDeliverableWithBLOBs == null || taskDeliverableWithBLOBs.getDeliveryStatus() == 1) { + if (taskDeliverableWithBLOBs == null) { throw new RuntimeException("交付物不存在或已交付"); } taskDeliverableWithBLOBs.setAduitStatus(status); diff --git a/research-system/src/main/resources/mapper/dao/HomeDao.xml b/research-system/src/main/resources/mapper/dao/HomeDao.xml index 56265b2b..4244f6e2 100644 --- a/research-system/src/main/resources/mapper/dao/HomeDao.xml +++ b/research-system/src/main/resources/mapper/dao/HomeDao.xml @@ -48,10 +48,12 @@ task_list t left join kts_kt_group g on t.kt_group_id = g.id and g.del_flag = 0 + LEFT JOIN + task_executor e on e.task_id = t.id where t.del_flag = 0 and - t.id in (select task_id from task_executor where del_flag = 0 and executor_id in (select id from kts_kt_group_member where user_id = #{userId})) + (t.id in (select task_id from task_executor where del_flag = 0 and executor_id in (select id from kts_kt_group_member where user_id = #{userId}) or e.id = #{userId})) diff --git a/research-system/src/main/resources/mapper/system/TaskDeliverableMapper.xml b/research-system/src/main/resources/mapper/system/TaskDeliverableMapper.xml index 8e12badd..f5ce7999 100644 --- a/research-system/src/main/resources/mapper/system/TaskDeliverableMapper.xml +++ b/research-system/src/main/resources/mapper/system/TaskDeliverableMapper.xml @@ -3,7 +3,7 @@ - + @@ -138,7 +138,7 @@ create_time, update_by, update_time, reference_materials, delivery_instructions ) - values (#{id,jdbcType=BIGINT}, #{taskId,jdbcType=VARCHAR}, #{deliverableName,jdbcType=VARCHAR}, + values (#{id,jdbcType=BIGINT}, #{taskId,jdbcType=BIGINT}, #{deliverableName,jdbcType=VARCHAR}, #{deliverableUrl,jdbcType=VARCHAR}, #{deliveryStatus,jdbcType=TINYINT}, #{aduitStatus,jdbcType=TINYINT}, #{submitterAccount,jdbcType=VARCHAR}, #{submissionTime,jdbcType=TIMESTAMP}, #{reviewerAccount,jdbcType=VARCHAR}, #{reviewTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=TINYINT}, #{createBy,jdbcType=VARCHAR}, @@ -206,7 +206,7 @@ #{id,jdbcType=BIGINT}, - #{taskId,jdbcType=VARCHAR}, + #{taskId,jdbcType=BIGINT}, #{deliverableName,jdbcType=VARCHAR}, @@ -268,7 +268,7 @@ id = #{record.id,jdbcType=BIGINT}, - task_id = #{record.taskId,jdbcType=VARCHAR}, + task_id = #{record.taskId,jdbcType=BIGINT}, deliverable_name = #{record.deliverableName,jdbcType=VARCHAR}, @@ -323,7 +323,7 @@ update task_deliverable set id = #{record.id,jdbcType=BIGINT}, - task_id = #{record.taskId,jdbcType=VARCHAR}, + task_id = #{record.taskId,jdbcType=BIGINT}, deliverable_name = #{record.deliverableName,jdbcType=VARCHAR}, deliverable_url = #{record.deliverableUrl,jdbcType=VARCHAR}, delivery_status = #{record.deliveryStatus,jdbcType=TINYINT}, @@ -346,7 +346,7 @@ update task_deliverable set id = #{record.id,jdbcType=BIGINT}, - task_id = #{record.taskId,jdbcType=VARCHAR}, + task_id = #{record.taskId,jdbcType=BIGINT}, deliverable_name = #{record.deliverableName,jdbcType=VARCHAR}, deliverable_url = #{record.deliverableUrl,jdbcType=VARCHAR}, delivery_status = #{record.deliveryStatus,jdbcType=TINYINT}, @@ -368,7 +368,7 @@ update task_deliverable - task_id = #{taskId,jdbcType=VARCHAR}, + task_id = #{taskId,jdbcType=BIGINT}, deliverable_name = #{deliverableName,jdbcType=VARCHAR}, @@ -420,7 +420,7 @@ update task_deliverable - set task_id = #{taskId,jdbcType=VARCHAR}, + set task_id = #{taskId,jdbcType=BIGINT}, deliverable_name = #{deliverableName,jdbcType=VARCHAR}, deliverable_url = #{deliverableUrl,jdbcType=VARCHAR}, delivery_status = #{deliveryStatus,jdbcType=TINYINT}, @@ -440,7 +440,7 @@ update task_deliverable - set task_id = #{taskId,jdbcType=VARCHAR}, + set task_id = #{taskId,jdbcType=BIGINT}, deliverable_name = #{deliverableName,jdbcType=VARCHAR}, deliverable_url = #{deliverableUrl,jdbcType=VARCHAR}, delivery_status = #{deliveryStatus,jdbcType=TINYINT},