From a069a12647ab551281091efb0f066163d1c8c156 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 02 六月 2025 17:36:30 +0800 Subject: [PATCH] 首页待办事项 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java | 29 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TNoticeServiceImpl.java | 32 +++ ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectProposalQuery.java | 4 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java | 17 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java | 18 + ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 10 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TNoticeMapper.java | 16 + ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheet.java | 10 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java | 16 + ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectProposal.java | 10 ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectTeamStaff.java | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java | 23 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/TNoticeService.java | 25 ++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java | 13 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java | 39 ++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java | 19 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java | 37 +++ ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml | 11 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java | 17 + ruoyi-system/src/main/resources/mapper/system/TNoticeMapper.xml | 21 ++ ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java | 3 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TNoticeController.java | 69 +++++++ ruoyi-system/src/main/java/com/ruoyi/system/model/TNotice.java | 72 ++++++++ ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml | 5 24 files changed, 475 insertions(+), 43 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java index 76952f5..b406316 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java @@ -51,8 +51,9 @@ private final TProjectTeamService projectTeamService; private final TProjectTeamStaffService projectTeamStaffService; private final TProjectProposalService projectProposalService; + private final TNoticeService noticeService; @Autowired - public TExperimentDispatchController(TExperimentDispatchService experimentDispatchService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TExperimentDispatchGroupService experimentDispatchGroupService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TExperimentDispatchTaskService experimentDispatchTaskService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TProjectProposalService projectProposalService) { + public TExperimentDispatchController(TExperimentDispatchService experimentDispatchService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TExperimentDispatchGroupService experimentDispatchGroupService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TExperimentDispatchTaskService experimentDispatchTaskService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TProjectProposalService projectProposalService, TNoticeService noticeService) { this.experimentDispatchService = experimentDispatchService; this.tokenService = tokenService; this.sysUserService = sysUserService; @@ -63,6 +64,7 @@ this.projectTeamService = projectTeamService; this.projectTeamStaffService = projectTeamStaffService; this.projectProposalService = projectProposalService; + this.noticeService = noticeService; } /** @@ -161,6 +163,15 @@ experimentDispatchTask.setDispatchId(dto.getId()); }); experimentDispatchTaskService.saveBatch(experimentDispatchTasks); + + // MESSAGE 添加消息 + experimentDispatchParticipants.stream().filter(e->e.getRoleType().equals(4)).forEach(teamStaff -> { + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【实验调度】等待确认", tokenService.getLoginUser().getUser().getNickName(),11); + }); + experimentDispatchParticipants.stream().filter(e->e.getRoleType().equals(5)).forEach(teamStaff -> { + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【实验调度】等待确认", tokenService.getLoginUser().getUser().getNickName(),14); + }); + return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java index 275df4d..1949409 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java @@ -54,8 +54,9 @@ private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService; private final TExperimentDispatchService experimentDispatchService; private final TProjectProposalService projectProposalService; + private final TNoticeService noticeService; @Autowired - public TExperimentResultReportController(TExperimentResultReportService experimentResultReportService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TResultWorkEvaluateService resultWorkEvaluateService, TExperimentSchemeService experimentSchemeService, TInspectionReportService inspectionReportService, TProjectTeamStaffService projectTeamStaffService, TProjectTeamService projectTeamService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService) { + public TExperimentResultReportController(TExperimentResultReportService experimentResultReportService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TResultWorkEvaluateService resultWorkEvaluateService, TExperimentSchemeService experimentSchemeService, TInspectionReportService inspectionReportService, TProjectTeamStaffService projectTeamStaffService, TProjectTeamService projectTeamService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TNoticeService noticeService) { this.experimentResultReportService = experimentResultReportService; this.tokenService = tokenService; this.sysUserService = sysUserService; @@ -68,6 +69,7 @@ this.experimentDispatchParticipantsService = experimentDispatchParticipantsService; this.experimentDispatchService = experimentDispatchService; this.projectProposalService = projectProposalService; + this.noticeService = noticeService; } /** @@ -161,6 +163,18 @@ resultWorkEvaluate.setTeamId(projectTeamStaff.getTeamId()); } resultWorkEvaluateService.saveOrUpdateBatch(resultWorkEvaluates); + + // 查询项目组 + TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId()); + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 2) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【实验结果汇报】等待评定", tokenService.getLoginUser().getUser().getNickName(),3); + } + return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java index fef862b..9fac33e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java @@ -52,8 +52,10 @@ private final TProjectProposalService projectProposalService; private final TExperimentDispatchGroupService experimentDispatchGroupService; private final TProjectTeamStaffService projectTeamStaffService; + private final TProjectTeamService projectTeamService; + private final TNoticeService noticeService; @Autowired - public TExperimentSchemeController(TExperimentSchemeService experimentSchemeService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TExperimentSchemePersonService experimentSchemePersonService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchGroupService experimentDispatchGroupService, TProjectTeamStaffService projectTeamStaffService) { + public TExperimentSchemeController(TExperimentSchemeService experimentSchemeService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TExperimentSchemePersonService experimentSchemePersonService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchGroupService experimentDispatchGroupService, TProjectTeamStaffService projectTeamStaffService, TProjectTeamService projectTeamService, TNoticeService noticeService) { this.experimentSchemeService = experimentSchemeService; this.tokenService = tokenService; this.sysUserService = sysUserService; @@ -64,6 +66,8 @@ this.projectProposalService = projectProposalService; this.experimentDispatchGroupService = experimentDispatchGroupService; this.projectTeamStaffService = projectTeamStaffService; + this.projectTeamService = projectTeamService; + this.noticeService = noticeService; } /** @@ -214,6 +218,23 @@ TExperimentSchemeDTO dto = JSON.parseObject(param,TExperimentSchemeDTO.class); dto.setStatus(6); experimentSchemeService.updateById(dto); + + // 通过当前用户查询项目组 + Long userId = tokenService.getLoginUser().getUserId(); + TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getUserId, userId) + .last("LIMIT 1")); + // 查询项目组 + TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId()); + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 3) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "实验员已提交实验方案,请查收!", tokenService.getLoginUser().getUser().getNickName(),8); + } + return R.ok(); } @@ -309,6 +330,22 @@ .set(TExperimentScheme::getStopFile, applicationTerminationDTO.getStopFile()) .set(TExperimentScheme::getStopFileName, applicationTerminationDTO.getStopFileName()) .set(TExperimentScheme::getCommitSign, applicationTerminationDTO.getCommitSign())); + // 通过当前用户查询项目组 + Long userId = tokenService.getLoginUser().getUserId(); + TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getUserId, userId) + .last("LIMIT 1")); + // 查询项目组 + TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId()); + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 2) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【实验方案中止申请】等待审批", tokenService.getLoginUser().getUser().getNickName(),2); + } + return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java index 29490ee..a755792 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java @@ -55,8 +55,9 @@ private final TProjectTeamStaffService projectTeamStaffService; private final ISysUserService sysUserService; private final SysUserMapper sysUserMapper; + private final TNoticeService noticeService; @Autowired - public TFeasibilityStudyReportController(TFeasibilityStudyReportService feasibilityStudyReportService, TFeasibilityReportFileService feasibilityReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService, SysUserMapper sysUserMapper) { + public TFeasibilityStudyReportController(TFeasibilityStudyReportService feasibilityStudyReportService, TFeasibilityReportFileService feasibilityReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TNoticeService noticeService) { this.feasibilityStudyReportService = feasibilityStudyReportService; this.feasibilityReportFileService = feasibilityReportFileService; this.tokenService = tokenService; @@ -64,6 +65,7 @@ this.projectTeamStaffService = projectTeamStaffService; this.sysUserService = sysUserService; this.sysUserMapper = sysUserMapper; + this.noticeService = noticeService; } /** @@ -206,6 +208,16 @@ } } feasibilityReportFileService.saveBatch(feasibilityReportFiles); + + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 2) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【可研报告】/【可行报告】/【工艺开发工具】/【验证与发布】/【立项报告库】等待审核", tokenService.getLoginUser().getUser().getNickName(),4); + } + return R.ok(); } @@ -331,6 +343,9 @@ feasibilityStudyReport.setAuditPersonId(userId); feasibilityStudyReport.setAuditTime(LocalDateTime.now()); feasibilityStudyReportService.updateById(feasibilityStudyReport); + // MESSAGE 添加消息 + noticeService.saveNotice(userId, "您有【1】条【可研报告】/【可行报告】/【工艺开发工具】/【验证与发布】等待评定", tokenService.getLoginUser().getUser().getNickName(),5); + return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java index eaecd3c..28591ff 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java @@ -11,10 +11,7 @@ import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TInspectionReportDTO; import com.ruoyi.system.mapper.SysUserMapper; -import com.ruoyi.system.model.TExperimentDispatch; -import com.ruoyi.system.model.TExperimentDispatchParticipants; -import com.ruoyi.system.model.TInspectionReport; -import com.ruoyi.system.model.TProjectProposal; +import com.ruoyi.system.model.*; import com.ruoyi.system.query.TInspectionReportQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TInspectionReportVO; @@ -26,6 +23,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -48,8 +46,11 @@ private final TokenService tokenService; private final ISysUserService sysUserService; private final SysUserMapper sysUserMapper; + private final TNoticeService noticeService; + private final TProjectTeamService projectTeamService; + private final TProjectTeamStaffService projectTeamStaffService; @Autowired - public TInspectionReportController(TInspectionReportService inspectionReportService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper) { + public TInspectionReportController(TInspectionReportService inspectionReportService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TNoticeService noticeService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService) { this.inspectionReportService = inspectionReportService; this.experimentDispatchService = experimentDispatchService; this.projectProposalService = projectProposalService; @@ -57,6 +58,9 @@ this.tokenService = tokenService; this.sysUserService = sysUserService; this.sysUserMapper = sysUserMapper; + this.noticeService = noticeService; + this.projectTeamService = projectTeamService; + this.projectTeamStaffService = projectTeamStaffService; } /** @@ -80,6 +84,21 @@ public R<Boolean> add(@RequestBody String param) { TInspectionReportDTO dto = JSON.parseObject(param,TInspectionReportDTO.class); inspectionReportService.save(dto); + // 通过当前用户查询项目组 + Long userId = tokenService.getLoginUser().getUserId(); + TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getUserId, userId) + .last("LIMIT 1")); + // 查询项目组 + TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId()); + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 3) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "化验师已提交检验报告,请查收!", tokenService.getLoginUser().getUser().getNickName(),7); + } return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TNoticeController.java new file mode 100644 index 0000000..bb7a2f7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TNoticeController.java @@ -0,0 +1,69 @@ +package com.ruoyi.web.controller.api; + + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.model.TNotice; +import com.ruoyi.system.service.TNoticeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * <p> + * 待办事项 前端控制器 + * </p> + * + * @author xiaochen + * @since 2025-04-08 + */ +@Api(tags = "待办事项") +@RestController +@RequestMapping("") +public class TNoticeController { + + private final TNoticeService noticeService; + private final TokenService tokenService; + @Autowired + public TNoticeController(TNoticeService noticeService, TokenService tokenService) { + this.noticeService = noticeService; + this.tokenService = tokenService; + } + + /** + * 获取待办事项 + */ + //@PreAuthorize("@ss.hasPermi('system:notice:list')") + @ApiOperation(value = "获取待办事项") + @GetMapping(value = "/open/t-notice/list") + public R<List<TNotice>> list() { + // 获取当前用户 + Long userId = tokenService.getLoginUser().getUserId(); + List<TNotice> list = noticeService.list(Wrappers.lambdaQuery(TNotice.class) + .eq(TNotice::getUserId, userId) + .eq(TNotice::getIsRead, 0)); + return R.ok(list); + } + + /** + * 操作已读 + */ + //@PreAuthorize("@ss.hasPermi('system:notice:read')") + @ApiOperation(value = "操作已读") + @GetMapping(value = "/open/t-notice/read") + public R<String> read(@RequestParam String id) { + TNotice notice = noticeService.getById(id); + notice.setIsRead(1); + noticeService.updateById(notice); + return R.ok(); + } + +} + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java index c506e97..5e504d0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java @@ -19,10 +19,7 @@ import com.ruoyi.system.model.TProjectTeam; import com.ruoyi.system.model.TProjectTeamStaff; import com.ruoyi.system.query.TProjectApprovalReportQuery; -import com.ruoyi.system.service.TFeasibilityReportFileService; -import com.ruoyi.system.service.TProjectApprovalReportService; -import com.ruoyi.system.service.TProjectTeamService; -import com.ruoyi.system.service.TProjectTeamStaffService; +import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TProjectApprovalReportVO; import io.jsonwebtoken.lang.Collections; import io.swagger.annotations.Api; @@ -55,14 +52,16 @@ private final TProjectTeamService projectTeamService; private final TProjectTeamStaffService projectTeamStaffService; private final SysUserMapper sysUserMapper; + private final TNoticeService noticeService; @Autowired - public TProjectApprovalReportController(TProjectApprovalReportService projectApprovalReportService, TFeasibilityReportFileService feasibilityReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, SysUserMapper sysUserMapper) { + public TProjectApprovalReportController(TProjectApprovalReportService projectApprovalReportService, TFeasibilityReportFileService feasibilityReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, SysUserMapper sysUserMapper, TNoticeService noticeService) { this.projectApprovalReportService = projectApprovalReportService; this.feasibilityReportFileService = feasibilityReportFileService; this.tokenService = tokenService; this.projectTeamService = projectTeamService; this.projectTeamStaffService = projectTeamStaffService; this.sysUserMapper = sysUserMapper; + this.noticeService = noticeService; } /** @@ -131,6 +130,16 @@ } feasibilityReportFileService.saveBatch(feasibilityReportFiles); } + + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 2) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【可研报告】/【可行报告】/【工艺开发工具】/【验证与发布】/【立项报告库】等待审核", tokenService.getLoginUser().getUser().getNickName(),4); + } + return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java index 681f46a..6415a47 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java @@ -9,7 +9,6 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.ProjectStageEnum; -import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.AuditStatusDTO; import com.ruoyi.system.dto.TProjectProposalDTO; @@ -18,22 +17,19 @@ import com.ruoyi.system.model.TProjectTeam; import com.ruoyi.system.model.TProjectTeamStaff; import com.ruoyi.system.query.TProjectProposalQuery; -import com.ruoyi.system.service.ISysUserService; -import com.ruoyi.system.service.TProjectProposalService; -import com.ruoyi.system.service.TProjectTeamService; -import com.ruoyi.system.service.TProjectTeamStaffService; +import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TProjectProposalVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -53,13 +49,15 @@ private final ISysUserService sysUserService; private final TProjectTeamService projectTeamService; private final TProjectTeamStaffService projectTeamStaffService; + private final TNoticeService noticeService; @Autowired - public TProjectProposalController(TProjectProposalService projectProposalService, TokenService tokenService, ISysUserService sysUserService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService) { + public TProjectProposalController(TProjectProposalService projectProposalService, TokenService tokenService, ISysUserService sysUserService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TNoticeService noticeService) { this.projectProposalService = projectProposalService; this.tokenService = tokenService; this.sysUserService = sysUserService; this.projectTeamService = projectTeamService; this.projectTeamStaffService = projectTeamStaffService; + this.noticeService = noticeService; } /** @@ -70,7 +68,19 @@ @PostMapping(value = "/api/t-project-proposal/pageList") public R<PageInfo<TProjectProposalVO>> pageList(@RequestBody String param) { TProjectProposalQuery query = JSON.parseObject(param, TProjectProposalQuery.class); - // TODO 获取当前登录人 + // 获取当前登录人 + Long userId = tokenService.getLoginUser().getUserId(); + Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); + if(roleType != 1){ + // 查询用户所在项目组 + List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getUserId, userId)); + if(projectTeamStaffs.size() > 0){ + // 查询项目组id + List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList()); + query.setTeamIds(teamIds); + } + } return R.ok(projectProposalService.pageList(query)); } @@ -140,7 +150,18 @@ projectProposalNo = projectProposalNo + String.format("%02d", count+1); dto.setProjectCode(projectProposalNo); dto.setCommitUserId(userId); + dto.setTeamId(projectTeam.getId()); projectProposalService.save(dto); + + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 2) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【项目课题方案】等待审批", tokenService.getLoginUser().getUser().getNickName(),1); + } + return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java index e87027d..3b261e1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java @@ -53,8 +53,9 @@ private final TProjectTeamStaffService projectTeamStaffService; private final ISysUserService sysUserService; private final SysUserMapper sysUserMapper; + private final TNoticeService noticeService; @Autowired - public TQaProduceReportController(TQaProduceReportService qaProduceReportService, TQaReportFileService qaReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService, SysUserMapper sysUserMapper) { + public TQaProduceReportController(TQaProduceReportService qaProduceReportService, TQaReportFileService qaReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TNoticeService noticeService) { this.qaProduceReportService = qaProduceReportService; this.qaReportFileService = qaReportFileService; this.tokenService = tokenService; @@ -62,6 +63,7 @@ this.projectTeamStaffService = projectTeamStaffService; this.sysUserService = sysUserService; this.sysUserMapper = sysUserMapper; + this.noticeService = noticeService; } /** @@ -177,6 +179,16 @@ } } qaReportFileService.saveBatch(qaReportFiles); + + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 3) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【项目检测项、检验包列表】/【中试、生产验证试验检验分析报告】/【原辅料、包材、竞品检验分析报告】/【产品报批及项目工作总结报告】等待审核", tokenService.getLoginUser().getUser().getNickName(),9); + } + return R.ok(); } @@ -320,6 +332,10 @@ qaProduceReport.setAuditPersonId(userId); qaProduceReport.setAuditTime(LocalDateTime.now()); qaProduceReportService.updateById(qaProduceReport); + + // MESSAGE 添加消息 + noticeService.saveNotice(userId, "您有【1】条【项目检测项、检验包列表】/【中试、生产验证试验检验分析报告】/【原辅料、包材、竞品检验分析报告】/【产品报批及项目工作总结报告】等待评定", tokenService.getLoginUser().getUser().getNickName(),10); + return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java index 5fb30dd..ab10daa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java @@ -55,8 +55,9 @@ private final TProjectTeamService projectTeamService; private final TProjectTeamStaffService projectTeamStaffService; private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService; + private final TNoticeService noticeService; @Autowired - public TSamplingRecordController(TSamplingRecordService samplingRecordService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TSamplingRecordOperationService samplingRecordOperationService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService) { + public TSamplingRecordController(TSamplingRecordService samplingRecordService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TSamplingRecordOperationService samplingRecordOperationService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TNoticeService noticeService) { this.samplingRecordService = samplingRecordService; this.tokenService = tokenService; this.sysUserService = sysUserService; @@ -67,6 +68,7 @@ this.projectTeamService = projectTeamService; this.projectTeamStaffService = projectTeamStaffService; this.experimentDispatchParticipantsService = experimentDispatchParticipantsService; + this.noticeService = noticeService; } /** @@ -317,6 +319,19 @@ samplingRecordOperation.setSendTime(LocalDateTime.now()); } samplingRecordOperationService.updateBatchById(samplingRecordOperations); + + // 查询取样记录信息 + TSamplingRecord samplingRecord = samplingRecordService.getById(samplingRecordOperations.get(0).getSamplingId()); + // 查询实验调度 + TExperimentDispatch experimentDispatch = experimentDispatchService.getById(samplingRecord.getDispatchId()); + // 查询实验调度参与人员 + List<TExperimentDispatchParticipants> teamStaffs = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) + .eq(TExperimentDispatchParticipants::getDispatchId, experimentDispatch.getId()) + .eq(TExperimentDispatchParticipants::getRoleType, 4)); + // MESSAGE 添加消息 + teamStaffs.forEach(teamStaff -> { + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【送样单】等待确认接收样品", tokenService.getLoginUser().getUser().getNickName(),13); + }); return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java index 8157d3b..5a18d8e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java @@ -54,8 +54,9 @@ private final TExperimentDispatchService experimentDispatchService; private final TProjectProposalService projectProposalService; private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService; + private final TNoticeService noticeService; @Autowired - public TTestMethodConfirmSheetController(TTestMethodConfirmSheetService testMethodConfirmSheetService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService) { + public TTestMethodConfirmSheetController(TTestMethodConfirmSheetService testMethodConfirmSheetService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TNoticeService noticeService) { this.testMethodConfirmSheetService = testMethodConfirmSheetService; this.tokenService = tokenService; this.sysUserService = sysUserService; @@ -67,6 +68,7 @@ this.experimentDispatchService = experimentDispatchService; this.projectProposalService = projectProposalService; this.experimentDispatchParticipantsService = experimentDispatchParticipantsService; + this.noticeService = noticeService; } /** @@ -120,6 +122,8 @@ @PostMapping(value = "/api/t-test-method-confirm-sheet/add") public R<Boolean> add(@RequestBody String param) { TTestMethodConfirmSheetDTO dto = JSON.parseObject(param,TTestMethodConfirmSheetDTO.class); + Long userId = tokenService.getLoginUser().getUserId(); + dto.setCommitUserId(userId); testMethodConfirmSheetService.save(dto); List<TTestMethodConfirmSheetTerm> testMethodConfirmSheetTerms = dto.getTestMethodConfirmSheetTerms(); testMethodConfirmSheetTerms.forEach(testMethodConfirmSheetTerm -> { @@ -127,9 +131,7 @@ testMethodConfirmSheetTerm.setStatus(1); }); testMethodConfirmSheetTermService.saveBatch(testMethodConfirmSheetTerms); - // 通过当前用户查询项目组 - Long userId = tokenService.getLoginUser().getUserId(); TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) .eq(TProjectTeamStaff::getUserId, userId) .last("LIMIT 1")); @@ -159,6 +161,16 @@ testMethodConfirmSheetOriginal.setStatus(1); testMethodConfirmSheetOriginalService.save(testMethodConfirmSheetOriginal); } + + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 3) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【检验方法确认单】等待审批", tokenService.getLoginUser().getUser().getNickName(),6); + } + return R.ok(); } @@ -261,6 +273,11 @@ .set(TTestMethodConfirmSheet::getAuditTime, LocalDateTime.now()) .set(TTestMethodConfirmSheet::getAuditPersonId, userId) .set(TTestMethodConfirmSheet::getAuditSign, testMethodConfirmSheetSign.getConfirmSign())); + + // MESSAGE 添加消息 + TTestMethodConfirmSheet testMethodConfirmSheet = testMethodConfirmSheetService.getById(testMethodConfirmSheetSign.getTestMethodConfirmSheetId()); + noticeService.saveNotice(testMethodConfirmSheet.getCommitUserId(), "您的【检验方案确认单】已被确认", tokenService.getLoginUser().getUser().getNickName(),12); + return R.ok(); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index b4118dc..4d14887 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -118,8 +118,7 @@ "/applet/changepwd", "/captchaImage","/getCode","/loginCode", "/operations/getBySingleNum/**", "/user/getUserInfoByNumber/**", - "/wxLogin/**", - "/open/**","/cos/get/**" + "/wxLogin/**","/cos/get/**" ).permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TNoticeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TNoticeMapper.java new file mode 100644 index 0000000..59ef49b --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TNoticeMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.system.model.TNotice; + +/** + * <p> + * 首页待办事项 Mapper 接口 + * </p> + * + * @author xiaochen + * @since 2025-04-08 + */ +public interface TNoticeMapper extends BaseMapper<TNotice> { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TNotice.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TNotice.java new file mode 100644 index 0000000..e065ddf --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TNotice.java @@ -0,0 +1,72 @@ +package com.ruoyi.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 首页待办事项 + * </p> + * + * @author xiaochen + * @since 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_notice") +@ApiModel(value="TNotice对象", description="首页待办事项") +public class TNotice implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private Long userId; + + @ApiModelProperty(value = "内容") + @TableField("content") + private String content; + + @ApiModelProperty(value = "提交人姓名") + @TableField("commit_name") + private String commitName; + + @ApiModelProperty(value = "提交时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("commit_time") + private LocalDateTime commitTime; + + @ApiModelProperty(value = "消息类型 1=项目课题方案审批通知 " + + "2=实验方案中止申请 " + + "3=实验结果汇报 " + + "4=【可研报告】/【可行报告】/【工艺开发工具】/【验证与发布】/【立项报告库】审核 " + + "5=【可研报告】/【可行报告】/【工艺开发工具】/【验证与发布】评定" + + "6=检验方法确认单审批" + + "7=化验师已提交检验报告" + + "8=实验员已提交实验方案" + + "9=【项目检测项、检验包列表】/【中试、生产验证试验检验分析报告】/【原辅料、包材、竞品检验分析报告】/【产品报批及项目工作总结报告】审核" + + "10=【项目检测项、检验包列表】/【中试、生产验证试验检验分析报告】/【原辅料、包材、竞品检验分析报告】/【产品报批及项目工作总结报告】评定" + + "11=实验调度 化验师" + + "12=检验方案确认单 已被确认" + + "13=送样单 等待确认接收样品" + + "14=实验调度 实验员") + @TableField("notice_type") + private Integer noticeType; + + @ApiModelProperty(value = "是否已读 1=是 0=否") + @TableField("is_read") + private Integer isRead; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectProposal.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectProposal.java index dc43583..d01eff8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectProposal.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectProposal.java @@ -1,6 +1,9 @@ package com.ruoyi.system.model; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; @@ -8,7 +11,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; import java.time.LocalDateTime; /** @@ -30,6 +32,10 @@ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + @ApiModelProperty(value = "项目组id") + @TableField("team_id") + private String teamId; + @ApiModelProperty(value = "提交人id") @TableField("commit_user_id") private Long commitUserId; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectTeamStaff.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectTeamStaff.java index 3824475..94972cb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectTeamStaff.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectTeamStaff.java @@ -38,7 +38,7 @@ @TableField("user_id") private Long userId; - @ApiModelProperty(value = "角色类型 2=审批人 3=工艺工程师 4=实验员 5=化验师") + @ApiModelProperty(value = "角色类型 2=审批人 3=工艺工程师 4=化验师 5=实验员") @TableField("role_type") private Integer roleType; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheet.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheet.java index 42bce1b..47a3c31 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheet.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheet.java @@ -1,6 +1,9 @@ package com.ruoyi.system.model; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; @@ -8,7 +11,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; import java.time.LocalDateTime; /** @@ -34,6 +36,10 @@ @TableField("dispatch_id") private String dispatchId; + @ApiModelProperty(value = "提交人id") + @TableField("commit_user_id") + private Long commitUserId; + @ApiModelProperty(value = "签字") @TableField("confirm_sign") private String confirmSign; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectProposalQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectProposalQuery.java index 05dd4ef..8ccdf2f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectProposalQuery.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectProposalQuery.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + @Data @ApiModel(value = "项目课题方案query") public class TProjectProposalQuery extends TimeRangeQueryBody { @@ -19,4 +21,6 @@ private String createBy; @ApiModelProperty(value = "审批状态 -1=草稿箱 1=审批中 2=已通过 3=已驳回 4=已撤销 5=已封存") private Integer auditStatus; + @ApiModelProperty(value = "项目组id集合 前端忽略") + private List<String> teamIds; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TNoticeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TNoticeService.java new file mode 100644 index 0000000..6ceffa2 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TNoticeService.java @@ -0,0 +1,25 @@ +package com.ruoyi.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.model.TNotice; + +/** + * <p> + * 首页待办事项 服务类 + * </p> + * + * @author xiaochen + * @since 2025-04-08 + */ +public interface TNoticeService extends IService<TNotice> { + + /** + * 存储待办事项 + * @param userId + * @param content + * @param commitName + * @param noticeType + */ + void saveNotice(Long userId, String content, String commitName,Integer noticeType); + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TNoticeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TNoticeServiceImpl.java new file mode 100644 index 0000000..47f9f69 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TNoticeServiceImpl.java @@ -0,0 +1,32 @@ +package com.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.system.mapper.TNoticeMapper; +import com.ruoyi.system.model.TNotice; +import com.ruoyi.system.service.TNoticeService; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; + +/** + * <p> + * 首页待办事项 服务实现类 + * </p> + * + * @author xiaochen + * @since 2025-04-08 + */ +@Service +public class TNoticeServiceImpl extends ServiceImpl<TNoticeMapper, TNotice> implements TNoticeService { + + @Override + public void saveNotice(Long userId, String content, String commitName,Integer noticeType) { + TNotice notice = new TNotice(); + notice.setUserId(userId); + notice.setContent(content); + notice.setCommitName(commitName); + notice.setCommitTime(LocalDateTime.now()); + notice.setNoticeType(noticeType); + this.save(notice); + } +} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index ea9006a..f5f1826 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -309,25 +309,25 @@ <if test="remark != null and remark != ''">remark,</if> <if test="ifBlack != null">ifBlack,</if> <if test="districtId != null">districtId,</if> + <if test="roleType != null">role_type,</if> create_time )values( <if test="userId != null and userId != ''">#{userId},</if> <if test="deptId != null and deptId != ''">#{deptId},</if> <if test="userName != null and userName != ''">#{userName},</if> - <if test="deptName != null and deptName != ''">#{deptName},</if> - - <if test="nickName != null and nickName != ''">#{nickName},</if> + <if test="deptName != null and deptName != ''">#{deptName},</if> + <if test="nickName != null and nickName != ''">#{nickName},</if> <if test="email != null and email != ''">#{email},</if> <if test="avatar != null and avatar != ''">#{avatar},</if> <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if> - <if test="sex != null and sex != ''">#{sex},</if> + <if test="sex != null and sex != ''">#{sex},</if> <if test="password != null and password != ''">#{password},</if> <if test="status != null and status != ''">#{status},</if> <if test="createBy != null and createBy != ''">#{createBy},</if> <if test="remark != null and remark != ''">#{remark},</if> <if test="ifBlack != null">#{ifBlack},</if> <if test="districtId != null">#{districtId},</if> - <if test="businessDeptId != null">#{businessDeptId},</if> + <if test="roleType != null">#{roleType},</if> sysdate() ) </insert> diff --git a/ruoyi-system/src/main/resources/mapper/system/TNoticeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TNoticeMapper.xml new file mode 100644 index 0000000..f97d1b0 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/TNoticeMapper.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.system.mapper.TNoticeMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TNotice"> + <id column="id" property="id" /> + <result column="user_id" property="userId" /> + <result column="content" property="content" /> + <result column="commit_name" property="commitName" /> + <result column="commit_time" property="commitTime" /> + <result column="notice_type" property="noticeType" /> + <result column="is_read" property="isRead" /> + </resultMap> + + <!-- 通用查询结果列 --> + <sql id="Base_Column_List"> + id, user_id,content, commit_name, commit_time,notice_type,is_read + </sql> + +</mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml index 035afe0..2b3f64a 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml @@ -5,6 +5,7 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TProjectProposal"> <id column="id" property="id" /> + <result column="team_id" property="teamId" /> <result column="commit_user_id" property="commitUserId" /> <result column="project_name" property="projectName" /> <result column="project_stage" property="projectStage" /> @@ -30,10 +31,10 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id,commit_user_id, project_name, project_stage, project_code, experiment_objective, experiment_material, experiment_device, experiment_test_method, experiment_procedure, data_acquisition, result_evaluation, precautions, audit_status, audit_person_id, audit_time, audit_remark, create_time, update_time, create_by, update_by, disabled + id,team_id,commit_user_id, project_name, project_stage, project_code, experiment_objective, experiment_material, experiment_device, experiment_test_method, experiment_procedure, data_acquisition, result_evaluation, precautions, audit_status, audit_person_id, audit_time, audit_remark, create_time, update_time, create_by, update_by, disabled </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TProjectProposalVO"> - select tpp.id,tpp.commit_user_id, tpp.project_name, tpp.project_stage, tpp.project_code, tpp.experiment_objective, tpp.experiment_material, tpp.experiment_device, + select tpp.id,tpp.team_id,tpp.commit_user_id, tpp.project_name, tpp.project_stage, tpp.project_code, tpp.experiment_objective, tpp.experiment_material, tpp.experiment_device, tpp.experiment_test_method, tpp.experiment_procedure, tpp.data_acquisition, tpp.result_evaluation, tpp.precautions, tpp.audit_status, tpp.audit_person_id, tpp.audit_time, tpp.audit_remark, tpp.create_time, tpp.update_time, tpp.create_by, tpp.update_by, tpp.disabled, su.nick_name as auditPersonName @@ -58,6 +59,12 @@ <if test="query.auditStatus != null"> AND tpp.audit_status = #{query.auditStatus} </if> + <if test="query.teamIds != null and query.teamIds.size() > 0"> + AND tpp.team_id IN + <foreach item="teamId" collection="query.teamIds" separator="," open="(" close=")" index=""> + #{teamId} + </foreach> + </if> <if test="query.auditStatus == null"> AND tpp.audit_status != -1 </if> diff --git a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml index 735c3b0..56466c7 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml @@ -6,6 +6,7 @@ <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TTestMethodConfirmSheet"> <id column="id" property="id" /> <result column="dispatch_id" property="dispatchId" /> + <result column="commit_user_id" property="commitUserId" /> <result column="confirm_sign" property="confirmSign" /> <result column="sign_time" property="signTime" /> <result column="audit_status" property="auditStatus" /> @@ -21,10 +22,10 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, dispatch_id, confirm_sign, sign_time, audit_status, audit_person_id, audit_sign, audit_time, create_time, update_time, create_by, update_by, disabled + id, dispatch_id,commit_user_id, confirm_sign, sign_time, audit_status, audit_person_id, audit_sign, audit_time, create_time, update_time, create_by, update_by, disabled </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TTestMethodConfirmSheetVO"> - select tmcs.id, tmcs.dispatch_id, tmcs.confirm_sign, tmcs.sign_time, tmcs.audit_status, tmcs.audit_person_id, + select tmcs.id, tmcs.dispatch_id,tmcs.commit_user_id, tmcs.confirm_sign, tmcs.sign_time, tmcs.audit_status, tmcs.audit_person_id, tmcs.audit_sign, tmcs.audit_time, tmcs.create_time, tmcs.update_time, tmcs.create_by, tmcs.update_by, tmcs.disabled, tpp.project_name AS projectName, ted.experiment_name AS experimentName, ted.experiment_code AS experimentCode from t_test_method_confirm_sheet tmcs -- Gitblit v1.7.1