ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
@@ -1,9 +1,37 @@ package com.ruoyi.web.controller.api; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.AuditStatusDTO; import com.ruoyi.system.dto.TExperimentDispatchDTO; import com.ruoyi.system.dto.UpAndDownDTO; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.model.TExperimentDispatch; import com.ruoyi.system.model.TExperimentDispatchGroup; import com.ruoyi.system.model.TExperimentDispatchParticipants; import com.ruoyi.system.model.TExperimentDispatchTask; import com.ruoyi.system.query.TExperimentDispatchQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TExperimentDispatchVO; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; 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.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * <p> @@ -18,5 +46,167 @@ @RequestMapping("/t-experiment-dispatch") public class TExperimentDispatchController { private final TExperimentDispatchService experimentDispatchService; private final TokenService tokenService; private final ISysUserService sysUserService; private final SysUserMapper sysUserMapper; private final TExperimentDispatchGroupService experimentDispatchGroupService; private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService; private final TExperimentDispatchTaskService experimentDispatchTaskService; @Autowired public TExperimentDispatchController(TExperimentDispatchService experimentDispatchService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TExperimentDispatchGroupService experimentDispatchGroupService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TExperimentDispatchTaskService experimentDispatchTaskService) { this.experimentDispatchService = experimentDispatchService; this.tokenService = tokenService; this.sysUserService = sysUserService; this.sysUserMapper = sysUserMapper; this.experimentDispatchGroupService = experimentDispatchGroupService; this.experimentDispatchParticipantsService = experimentDispatchParticipantsService; this.experimentDispatchTaskService = experimentDispatchTaskService; } /** * 获取实验调度管理列表 */ @PreAuthorize("@ss.hasPermi('system:experimentDispatch:list')") @ApiOperation(value = "获取实验调度分页列表") @PostMapping(value = "/api/t-experiment-dispatch/pageList") public R<PageInfo<TExperimentDispatchVO>> pageList(@RequestBody String param) { TExperimentDispatchQuery query = JSON.parseObject(param, TExperimentDispatchQuery.class); return R.ok(experimentDispatchService.pageList(query)); } /** * 添加实验调度管理 */ @PreAuthorize("@ss.hasPermi('system:experimentDispatch:add')") @Log(title = "实验调度信息-新增实验调度", businessType = BusinessType.INSERT) @ApiOperation(value = "添加实验调度",response = TExperimentDispatchDTO.class) @PostMapping(value = "/api/t-experiment-dispatch/add") public R<Boolean> add(@RequestBody String param) { TExperimentDispatchDTO dto = JSON.parseObject(param,TExperimentDispatchDTO.class); // TODO 生成实验调度编号 experimentDispatchService.save(dto); // 添加实验分组 List<TExperimentDispatchGroup> experimentDispatchGroups = dto.getExperimentDispatchGroups(); for (TExperimentDispatchGroup experimentDispatchGroup : experimentDispatchGroups) { experimentDispatchGroup.setDispatchId(dto.getId()); } experimentDispatchGroupService.saveBatch(experimentDispatchGroups); // 添加参与人员 List<TExperimentDispatchParticipants> experimentDispatchParticipants = dto.getExperimentDispatchParticipants(); experimentDispatchParticipants.forEach(experimentDispatchParticipant -> { experimentDispatchParticipant.setDispatchId(dto.getId()); }); experimentDispatchParticipantsService.saveBatch(experimentDispatchParticipants); // 添加实验任务 List<TExperimentDispatchTask> experimentDispatchTasks = dto.getExperimentDispatchTasks(); experimentDispatchTasks.forEach(experimentDispatchTask -> { experimentDispatchTask.setDispatchId(dto.getId()); }); experimentDispatchTaskService.saveBatch(experimentDispatchTasks); return R.ok(); } /** * 修改实验调度 */ @PreAuthorize("@ss.hasPermi('system:experimentDispatch:edit')") @Log(title = "实验调度信息-修改实验调度", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改实验调度") @PostMapping(value = "/api/t-experiment-dispatch/update") public R<Boolean> update(@RequestBody String param) { TExperimentDispatchDTO dto = JSON.parseObject(param,TExperimentDispatchDTO.class); experimentDispatchService.updateById(dto); // 添加实验分组 experimentDispatchGroupService.remove(Wrappers.lambdaQuery(TExperimentDispatchGroup.class).eq(TExperimentDispatchGroup::getDispatchId, dto.getId())); List<TExperimentDispatchGroup> experimentDispatchGroups = dto.getExperimentDispatchGroups(); for (TExperimentDispatchGroup experimentDispatchGroup : experimentDispatchGroups) { experimentDispatchGroup.setDispatchId(dto.getId()); } experimentDispatchGroupService.saveBatch(experimentDispatchGroups); // 添加参与人员 experimentDispatchParticipantsService.remove(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class).eq(TExperimentDispatchParticipants::getDispatchId, dto.getId())); List<TExperimentDispatchParticipants> experimentDispatchParticipants = dto.getExperimentDispatchParticipants(); experimentDispatchParticipants.forEach(experimentDispatchParticipant -> { experimentDispatchParticipant.setDispatchId(dto.getId()); }); experimentDispatchParticipantsService.saveBatch(experimentDispatchParticipants); // 添加实验任务 experimentDispatchTaskService.remove(Wrappers.lambdaQuery(TExperimentDispatchTask.class).eq(TExperimentDispatchTask::getDispatchId, dto.getId())); List<TExperimentDispatchTask> experimentDispatchTasks = dto.getExperimentDispatchTasks(); experimentDispatchTasks.forEach(experimentDispatchTask -> { experimentDispatchTask.setDispatchId(dto.getId()); }); experimentDispatchTaskService.saveBatch(experimentDispatchTasks); return R.ok(); } /** * 查看实验调度详情 */ @PreAuthorize("@ss.hasPermi('system:experimentDispatch:detail')") @ApiOperation(value = "查看实验调度详情") @GetMapping(value = "/open/t-experiment-dispatch/getDetailById") public R<TExperimentDispatchVO> getDetailById(@RequestParam String id) { TExperimentDispatch experimentDispatch = experimentDispatchService.getById(id); TExperimentDispatchVO experimentDispatchVO = new TExperimentDispatchVO(); BeanUtils.copyProperties(experimentDispatch, experimentDispatchVO); // 查询组别 experimentDispatchVO.setExperimentDispatchGroups(experimentDispatchGroupService.list(Wrappers.lambdaQuery(TExperimentDispatchGroup.class).eq(TExperimentDispatchGroup::getDispatchId, id))); // 查询参与人员 List<TExperimentDispatchParticipants> list = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class).eq(TExperimentDispatchParticipants::getDispatchId, id)); List<Long> userIds = list.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(userIds)){ List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); list.forEach(tExperimentDispatchParticipant -> { SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null); if(sysUser != null){ tExperimentDispatchParticipant.setNickName(sysUser.getNickName()); tExperimentDispatchParticipant.setAvatar(sysUser.getAvatar()); } }); } experimentDispatchVO.setExperimentDispatchParticipants(list); // 查询实验任务 experimentDispatchVO.setExperimentDispatchTasks(experimentDispatchTaskService.list(Wrappers.lambdaQuery(TExperimentDispatchTask.class).eq(TExperimentDispatchTask::getDispatchId, id))); return R.ok(experimentDispatchVO); } /** * 删除实验调度 */ @PreAuthorize("@ss.hasPermi('system:experimentDispatch:delete')") @Log(title = "实验调度信息-删除实验调度", businessType = BusinessType.DELETE) @ApiOperation(value = "删除实验调度") @DeleteMapping(value = "/open/t-experiment-dispatch/deleteById") public R<Boolean> deleteById(@RequestParam String id) { // 删除组别 experimentDispatchGroupService.remove(Wrappers.lambdaQuery(TExperimentDispatchGroup.class).eq(TExperimentDispatchGroup::getDispatchId, id)); // 删除参与人员 experimentDispatchParticipantsService.remove(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class).eq(TExperimentDispatchParticipants::getDispatchId, id)); // 删除任务 experimentDispatchTaskService.remove(Wrappers.lambdaQuery(TExperimentDispatchTask.class).eq(TExperimentDispatchTask::getDispatchId, id)); return R.ok(experimentDispatchService.removeById(id)); } /** * 批量删除实验调度 */ @PreAuthorize("@ss.hasPermi('system:experimentDispatch:delete')") @Log(title = "实验调度信息-删除实验调度", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除实验调度") @DeleteMapping(value = "/api/t-experiment-dispatch/deleteByIds") public R<Boolean> deleteByIds(@RequestBody List<String> ids) { // 删除组别 experimentDispatchGroupService.remove(Wrappers.lambdaQuery(TExperimentDispatchGroup.class).in(TExperimentDispatchGroup::getDispatchId, ids)); // 删除参与人员 experimentDispatchParticipantsService.remove(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class).in(TExperimentDispatchParticipants::getDispatchId, ids)); // 删除任务 experimentDispatchTaskService.remove(Wrappers.lambdaQuery(TExperimentDispatchTask.class).in(TExperimentDispatchTask::getDispatchId, ids)); return R.ok(experimentDispatchService.removeByIds(ids)); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java
@@ -1,9 +1,31 @@ package com.ruoyi.web.controller.api; import com.alibaba.fastjson.JSON; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.AuditStatusDTO; import com.ruoyi.system.dto.TProjectProposalDTO; import com.ruoyi.system.dto.UpAndDownDTO; import com.ruoyi.system.model.TProjectProposal; import com.ruoyi.system.query.TProjectProposalQuery; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.TProjectProposalService; import com.ruoyi.system.vo.TProjectProposalVO; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; 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.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; /** * <p> @@ -15,8 +37,130 @@ */ @Api(tags = "项目课题方案管理") @RestController @RequestMapping("/t-project-proposal") @RequestMapping("") public class TProjectProposalController { private final TProjectProposalService projectProposalService; private final TokenService tokenService; private final ISysUserService sysUserService; @Autowired public TProjectProposalController(TProjectProposalService projectProposalService, TokenService tokenService, ISysUserService sysUserService) { this.projectProposalService = projectProposalService; this.tokenService = tokenService; this.sysUserService = sysUserService; } /** * 获取项目课题方案管理列表 */ @PreAuthorize("@ss.hasPermi('system:projectProposal:list')") @ApiOperation(value = "获取项目课题方案分页列表") @PostMapping(value = "/api/t-project-proposal/pageList") public R<PageInfo<TProjectProposalVO>> pageList(@RequestBody String param) { TProjectProposalQuery query = JSON.parseObject(param, TProjectProposalQuery.class); return R.ok(projectProposalService.pageList(query)); } /** * 添加项目课题方案管理 */ @PreAuthorize("@ss.hasPermi('system:projectProposal:add')") @Log(title = "项目课题方案信息-新增项目课题方案", businessType = BusinessType.INSERT) @ApiOperation(value = "添加项目课题方案",response = TProjectProposalDTO.class) @PostMapping(value = "/api/t-project-proposal/add") public R<Boolean> add(@RequestBody String param) { TProjectProposalDTO dto = JSON.parseObject(param,TProjectProposalDTO.class); // TODO 生成项目课题方案编号 projectProposalService.save(dto); return R.ok(); } /** * 修改项目课题方案 */ @PreAuthorize("@ss.hasPermi('system:projectProposal:edit')") @Log(title = "项目课题方案信息-修改项目课题方案", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改项目课题方案") @PostMapping(value = "/api/t-project-proposal/update") public R<Boolean> update(@RequestBody String param) { TProjectProposalDTO dto = JSON.parseObject(param,TProjectProposalDTO.class); projectProposalService.updateById(dto); return R.ok(); } /** * 查看项目课题方案详情 */ @PreAuthorize("@ss.hasPermi('system:projectProposal:detail')") @ApiOperation(value = "查看项目课题方案详情") @GetMapping(value = "/open/t-project-proposal/getDetailById") public R<TProjectProposalVO> getDetailById(@RequestParam String id) { TProjectProposal projectProposal = projectProposalService.getById(id); TProjectProposalVO projectProposalVO = new TProjectProposalVO(); BeanUtils.copyProperties(projectProposal, projectProposalVO); // 查询审核人姓名 SysUser sysUser = sysUserService.selectUserById(projectProposal.getAuditPersonId()); if(Objects.nonNull(sysUser)){ projectProposalVO.setAuditPersonName(sysUser.getNickName()); } return R.ok(projectProposalVO); } /** * 删除项目课题方案 */ @PreAuthorize("@ss.hasPermi('system:projectProposal:delete')") @Log(title = "项目课题方案信息-删除项目课题方案", businessType = BusinessType.DELETE) @ApiOperation(value = "删除项目课题方案") @DeleteMapping(value = "/open/t-project-proposal/deleteById") public R<Boolean> deleteById(@RequestParam String id) { return R.ok(projectProposalService.removeById(id)); } /** * 批量删除项目课题方案 */ @PreAuthorize("@ss.hasPermi('system:projectProposal:delete')") @Log(title = "项目课题方案信息-删除项目课题方案", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除项目课题方案") @DeleteMapping(value = "/api/t-project-proposal/deleteByIds") public R<Boolean> deleteByIds(@RequestBody List<String> ids) { return R.ok(projectProposalService.removeByIds(ids)); } /** * 修改项目课题方案 */ @PreAuthorize("@ss.hasPermi('system:projectProposal:upAndDown')") @Log(title = "项目课题方案信息-修改项目课题方案状态[支持已撤消接口]", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改项目课题方案状态",response = UpAndDownDTO.class) @PostMapping(value = "/api/t-project-proposal/upAndDown") public R<Boolean> upAndDown(@RequestBody String param) { UpAndDownDTO dto = JSON.parseObject(param,UpAndDownDTO.class); TProjectProposal projectProposal = projectProposalService.getById(dto.getId()); projectProposal.setAuditStatus(dto.getStatus()); projectProposalService.updateById(projectProposal); return R.ok(); } /** * 修改项目课题方案 */ @PreAuthorize("@ss.hasPermi('system:projectProposal:audit')") @Log(title = "项目课题方案信息-审核项目课题方案", businessType = BusinessType.UPDATE) @ApiOperation(value = "审核项目课题方案",response = UpAndDownDTO.class) @PostMapping(value = "/api/t-project-proposal/audit") public R<Boolean> audit(@RequestBody String param) { Long userId = tokenService.getLoginUser().getUserId(); AuditStatusDTO dto = JSON.parseObject(param,AuditStatusDTO.class); TProjectProposal projectProposal = projectProposalService.getById(dto.getId()); projectProposal.setAuditStatus(dto.getAuditStatus()); projectProposal.setAuditRemark(dto.getAuditRemark()); projectProposal.setAuditPersonId(userId); projectProposal.setAuditTime(LocalDateTime.now()); projectProposalService.updateById(projectProposal); return R.ok(); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java
@@ -51,7 +51,7 @@ */ @PreAuthorize("@ss.hasPermi('system:projectTeam:list')") @ApiOperation(value = "获取项目组分页列表") @PostMapping(value = "/api/pageList") @PostMapping(value = "/api/t-project-team/pageList") public R<PageInfo<TProjectTeamVO>> pageList(@RequestBody String param) { TProjectTeamQuery query = JSON.parseObject(param, TProjectTeamQuery.class); return R.ok(projectTeamService.pageList(query)); @@ -63,7 +63,7 @@ @PreAuthorize("@ss.hasPermi('system:projectTeam:add')") @Log(title = "项目组信息-新增项目组", businessType = BusinessType.INSERT) @ApiOperation(value = "添加项目组",response = TProjectTeamDTO.class) @PostMapping(value = "/api/add") @PostMapping(value = "/api/t-project-team/add") public R<Boolean> add(@RequestBody String param) { TProjectTeamDTO dto = JSON.parseObject(param,TProjectTeamDTO.class); projectTeamService.save(dto); @@ -82,7 +82,7 @@ @PreAuthorize("@ss.hasPermi('system:projectTeam:edit')") @Log(title = "项目组信息-修改项目组", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改项目组") @PostMapping(value = "/api/update") @PostMapping(value = "/api/t-project-team/update") public R<Boolean> update(@RequestBody String param) { TProjectTeamDTO dto = JSON.parseObject(param,TProjectTeamDTO.class); projectTeamService.updateById(dto); @@ -102,7 +102,7 @@ */ @PreAuthorize("@ss.hasPermi('system:projectTeam:detail')") @ApiOperation(value = "查看项目组详情") @GetMapping(value = "/open/getDetailById") @GetMapping(value = "/open/t-project-team/getDetailById") public R<TProjectTeamVO> getDetailById(@RequestParam String id) { TProjectTeam projectTeam = projectTeamService.getById(id); TProjectTeamVO projectTeamVO = new TProjectTeamVO(); @@ -118,7 +118,7 @@ @PreAuthorize("@ss.hasPermi('system:projectTeam:delete')") @Log(title = "项目组信息-删除项目组", businessType = BusinessType.DELETE) @ApiOperation(value = "删除项目组") @DeleteMapping(value = "/open/deleteById") @DeleteMapping(value = "/open/t-project-team/deleteById") public R<Boolean> deleteById(@RequestParam String id) { // 删除项目组成员 projectTeamStaffService.remove(Wrappers.lambdaQuery(TProjectTeamStaff.class).eq(TProjectTeamStaff::getTeamId, id)); @@ -131,7 +131,7 @@ @PreAuthorize("@ss.hasPermi('system:projectTeam:delete')") @Log(title = "项目组信息-删除项目组", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除项目组") @DeleteMapping(value = "/api/deleteByIds") @DeleteMapping(value = "/api/t-project-team/deleteByIds") public R<Boolean> deleteByIds(@RequestBody List<String> ids) { // 删除项目组成员 projectTeamStaffService.remove(Wrappers.lambdaQuery(TProjectTeamStaff.class).in(TProjectTeamStaff::getTeamId, ids)); @@ -144,7 +144,7 @@ @PreAuthorize("@ss.hasPermi('system:projectTeam:upAndDown')") @Log(title = "项目组信息-修改项目组状态", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改项目组状态",response = UpAndDownDTO.class) @PostMapping(value = "/api/upAndDown") @PostMapping(value = "/api/t-project-team/upAndDown") public R<Boolean> upAndDown(@RequestBody String param) { UpAndDownDTO dto = JSON.parseObject(param,UpAndDownDTO.class); TProjectTeam projectTeam = projectTeamService.getById(dto.getId()); ruoyi-system/src/main/java/com/ruoyi/system/dto/AuditStatusDTO.java
New file @@ -0,0 +1,22 @@ package com.ruoyi.system.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @Data @ApiModel(value = "启用禁用DTO") public class AuditStatusDTO implements Serializable { @ApiModelProperty(value = "id") private String id; @ApiModelProperty(value = "审核状态") private Integer auditStatus; @ApiModelProperty(value = "审核意见") private String auditRemark; } ruoyi-system/src/main/java/com/ruoyi/system/dto/TExperimentDispatchDTO.java
New file @@ -0,0 +1,24 @@ package com.ruoyi.system.dto; import com.ruoyi.system.model.TExperimentDispatch; import com.ruoyi.system.model.TExperimentDispatchGroup; import com.ruoyi.system.model.TExperimentDispatchParticipants; import com.ruoyi.system.model.TExperimentDispatchTask; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "实验调度新增") public class TExperimentDispatchDTO extends TExperimentDispatch { @ApiModelProperty(value = "组别列表") private List<TExperimentDispatchGroup> experimentDispatchGroups; @ApiModelProperty(value = "参与人员") private List<TExperimentDispatchParticipants> experimentDispatchParticipants; @ApiModelProperty(value = "组别列表") private List<TExperimentDispatchTask> experimentDispatchTasks; } ruoyi-system/src/main/java/com/ruoyi/system/dto/TProjectProposalDTO.java
New file @@ -0,0 +1,15 @@ package com.ruoyi.system.dto; import com.ruoyi.system.model.TProjectProposal; import io.swagger.annotations.ApiModel; import lombok.Data; import java.io.Serializable; @Data @ApiModel(value = "项目课题方案添加编辑DTO") public class TProjectProposalDTO extends TProjectProposal { } ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentDispatchMapper.java
@@ -1,7 +1,13 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TExperimentDispatch; import com.ruoyi.system.query.TExperimentDispatchQuery; import com.ruoyi.system.vo.TExperimentDispatchVO; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +19,11 @@ */ public interface TExperimentDispatchMapper extends BaseMapper<TExperimentDispatch> { /** * 分页查询实验调度管理 * @param query * @param pageInfo * @return */ List<TExperimentDispatchVO> pageList(@Param("query") TExperimentDispatchQuery query, @Param("pageInfo")PageInfo<TExperimentDispatchVO> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/mapper/TProjectProposalMapper.java
@@ -1,7 +1,13 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TProjectProposal; import com.ruoyi.system.query.TProjectProposalQuery; import com.ruoyi.system.vo.TProjectProposalVO; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +19,11 @@ */ public interface TProjectProposalMapper extends BaseMapper<TProjectProposal> { /** * 分页查询 * @param query * @param pageInfo * @return */ List<TProjectProposalVO> pageList(@Param("query") TProjectProposalQuery query, @Param("pageInfo")PageInfo<TProjectProposalVO> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/model/TChemistWorkEvaluate.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -71,9 +72,10 @@ @ApiModelProperty(value = "评定人") @TableField("evaluate_person_id") private Integer evaluatePersonId; private Long evaluatePersonId; @ApiModelProperty(value = "评定时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("evaluate_time") private LocalDateTime evaluateTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TClinicalTrialPoints.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -38,6 +39,7 @@ private String trialContent; @ApiModelProperty(value = "临床试验时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("trial_time") private LocalDateTime trialTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatch.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -34,6 +35,7 @@ private String proposalId; @ApiModelProperty(value = "实验日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("experiment_date") private LocalDateTime experimentDate; @@ -46,10 +48,12 @@ private String experimentCode; @ApiModelProperty(value = "实验开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("experiment_start_time") private LocalDateTime experimentStartTime; @ApiModelProperty(value = "实验结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("experiment_end_time") private LocalDateTime experimentEndTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatchParticipants.java
@@ -4,6 +4,7 @@ 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; @@ -37,7 +38,7 @@ @ApiModelProperty(value = "用户id") @TableField("user_id") private Integer userId; private Long userId; @ApiModelProperty(value = "角色类型 3=工艺工程师 4=实验员 5=化验师") @TableField("role_type") @@ -52,8 +53,15 @@ private String confirmSign; @ApiModelProperty(value = "签字时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("sign_time") private LocalDateTime signTime; @ApiModelProperty(value = "用户姓名") @TableField(exist = false) private String nickName; @ApiModelProperty(value = "用户头像") @TableField(exist = false) private String avatar; } ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatchTask.java
@@ -4,6 +4,7 @@ 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; @@ -44,6 +45,7 @@ private String personCharge; @ApiModelProperty(value = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("start_time") private LocalDateTime startTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentResultReport.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -67,9 +68,10 @@ @ApiModelProperty(value = "评定人") @TableField("evaluate_person_id") private Integer evaluatePersonId; private Long evaluatePersonId; @ApiModelProperty(value = "评定时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("evaluate_time") private LocalDateTime evaluateTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentScheme.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -34,6 +35,7 @@ private String dispatchId; @ApiModelProperty(value = "实验日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("experiment_date") private LocalDateTime experimentDate; @@ -75,9 +77,10 @@ @ApiModelProperty(value = "审核人") @TableField("audit_person_id") private String auditPersonId; private Long auditPersonId; @ApiModelProperty(value = "审批时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("audit_time") private LocalDateTime auditTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentSchemePerson.java
@@ -4,6 +4,7 @@ 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; @@ -40,6 +41,7 @@ private Integer userId; @ApiModelProperty(value = "提交时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("commit_time") private LocalDateTime commitTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TFeasibilityReportFile.java
@@ -4,6 +4,7 @@ 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; @@ -52,6 +53,7 @@ private Integer reportType; @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("create_time") private LocalDateTime createTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TFeasibilityStudyReport.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -55,9 +56,10 @@ @ApiModelProperty(value = "审批人") @TableField("audit_person_id") private Integer auditPersonId; private Long auditPersonId; @ApiModelProperty(value = "审批时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("audit_time") private LocalDateTime auditTime; @@ -67,9 +69,10 @@ @ApiModelProperty(value = "评定人") @TableField("evaluate_person_id") private Integer evaluatePersonId; private Long evaluatePersonId; @ApiModelProperty(value = "评定时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("evaluate_time") private LocalDateTime evaluateTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectApprovalReport.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -51,9 +52,10 @@ @ApiModelProperty(value = "审批人") @TableField("audit_person_id") private Integer auditPersonId; private Long auditPersonId; @ApiModelProperty(value = "审批时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("audit_time") private LocalDateTime auditTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectProposal.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -79,9 +80,10 @@ @ApiModelProperty(value = "审批人") @TableField("audit_person_id") private String auditPersonId; private Long auditPersonId; @ApiModelProperty(value = "审批时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("audit_time") private LocalDateTime auditTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TQaProduceReport.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -46,6 +47,7 @@ private String developPerson; @ApiModelProperty(value = "制定日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("develop_date") private LocalDateTime developDate; @@ -59,9 +61,10 @@ @ApiModelProperty(value = "审批人") @TableField("audit_person_id") private Integer auditPersonId; private Long auditPersonId; @ApiModelProperty(value = "审批时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("audit_time") private LocalDateTime auditTime; @@ -75,9 +78,10 @@ @ApiModelProperty(value = "评定人") @TableField("evaluate_person_id") private Integer evaluatePersonId; private Long evaluatePersonId; @ApiModelProperty(value = "评定时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("evaluate_time") private LocalDateTime evaluateTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TQaReportFile.java
@@ -4,6 +4,7 @@ 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; @@ -52,6 +53,7 @@ private Integer reportType; @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("create_time") private LocalDateTime createTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TQaTestItem.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -51,9 +52,10 @@ @ApiModelProperty(value = "评定人") @TableField("evaluate_person_id") private Integer evaluatePersonId; private Long evaluatePersonId; @ApiModelProperty(value = "评定时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("evaluate_time") private LocalDateTime evaluateTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TQaTestItemReport.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -42,6 +43,7 @@ private String developPerson; @ApiModelProperty(value = "制定日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("develop_date") private LocalDateTime developDate; @@ -51,9 +53,10 @@ @ApiModelProperty(value = "审批人") @TableField("audit_person_id") private Integer auditPersonId; private Long auditPersonId; @ApiModelProperty(value = "审批时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("audit_time") private LocalDateTime auditTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TSamplingRecordOperation.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -34,6 +35,7 @@ private String samplingId; @ApiModelProperty(value = "工艺时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("process_time") private LocalDateTime processTime; @@ -102,6 +104,7 @@ private Integer sampleAmount; @ApiModelProperty(value = "送样时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("send_sample_time") private LocalDateTime sendSampleTime; @@ -111,7 +114,7 @@ @ApiModelProperty(value = "操作人") @TableField("handle_person_id") private Integer handlePersonId; private Long handlePersonId; @ApiModelProperty(value = "状态 1=待发送 2=待接收 3=已接收") @TableField("status") @@ -119,25 +122,27 @@ @ApiModelProperty(value = "送样人") @TableField("send_person_id") private Integer sendPersonId; private Long sendPersonId; @ApiModelProperty(value = "送样签字") @TableField("send_sign") private String sendSign; @ApiModelProperty(value = "送样时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("send_time") private LocalDateTime sendTime; @ApiModelProperty(value = "接收人") @TableField("receipts_person_id") private Integer receiptsPersonId; private Long receiptsPersonId; @ApiModelProperty(value = "接收签字") @TableField("receipts_sign") private String receiptsSign; @ApiModelProperty(value = "接收时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("receipts_time") private LocalDateTime receiptsTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheet.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -38,6 +39,7 @@ private String confirmSign; @ApiModelProperty(value = "签字时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("sign_time") private LocalDateTime signTime; @@ -47,13 +49,14 @@ @ApiModelProperty(value = "审核人") @TableField("audit_person_id") private String auditPersonId; private Long auditPersonId; @ApiModelProperty(value = "审核签字") @TableField("audit_sign") private String auditSign; @ApiModelProperty(value = "审核时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("audit_time") private LocalDateTime auditTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TTesterOtherTask.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -38,6 +39,7 @@ private String taskContent; @ApiModelProperty(value = "任务时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("task_time") private LocalDateTime taskTime; @@ -46,6 +48,7 @@ private Double evaluateScore; @ApiModelProperty(value = "评定时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("evaluate_time") private LocalDateTime evaluateTime; ruoyi-system/src/main/java/com/ruoyi/system/model/TTesterWorkEvaluate.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -71,9 +72,10 @@ @ApiModelProperty(value = "评定人") @TableField("evaluate_person_id") private Integer evaluatePersonId; private Long evaluatePersonId; @ApiModelProperty(value = "评定时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("evaluate_time") private LocalDateTime evaluateTime; ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
New file @@ -0,0 +1,20 @@ package com.ruoyi.system.query; import com.ruoyi.common.core.domain.model.TimeRangeQueryBody; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "实验调度query") public class TExperimentDispatchQuery extends TimeRangeQueryBody { @ApiModelProperty(value = "项目课题方案名称") private String projectName; @ApiModelProperty(value = "实验编号") private String experimentCode; @ApiModelProperty(value = "状态 -1=草稿箱 1=待确认 2=已确认 3=已封存") private Integer status; } ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectProposalQuery.java
New file @@ -0,0 +1,22 @@ package com.ruoyi.system.query; import com.ruoyi.common.core.domain.model.TimeRangeQueryBody; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "项目课题方案query") public class TProjectProposalQuery extends TimeRangeQueryBody { @ApiModelProperty(value = "项目课题方案名称") private String projectName; @ApiModelProperty(value = "方案编号") private String projectCode; @ApiModelProperty(value = "审批人") private String auditPersonName; @ApiModelProperty(value = "创建人") private String createBy; @ApiModelProperty(value = "审批状态 -1=草稿箱 1=审批中 2=已通过 3=已驳回 4=已撤销 5=已封存") private Integer auditStatus; } ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentDispatchService.java
@@ -1,7 +1,10 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TExperimentDispatch; import com.ruoyi.system.query.TExperimentDispatchQuery; import com.ruoyi.system.vo.TExperimentDispatchVO; /** * <p> @@ -13,4 +16,10 @@ */ public interface TExperimentDispatchService extends IService<TExperimentDispatch> { /** * 分页查询实验调度管理 * @param query * @return */ PageInfo<TExperimentDispatchVO> pageList(TExperimentDispatchQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/TProjectProposalService.java
@@ -1,7 +1,10 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TProjectProposal; import com.ruoyi.system.query.TProjectProposalQuery; import com.ruoyi.system.vo.TProjectProposalVO; /** * <p> @@ -13,4 +16,10 @@ */ public interface TProjectProposalService extends IService<TProjectProposal> { /** * 分页查询项目课题方案 * @param query * @return */ PageInfo<TProjectProposalVO> pageList(TProjectProposalQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentDispatchServiceImpl.java
@@ -1,10 +1,25 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.TExperimentDispatchMapper; import com.ruoyi.system.mapper.TExperimentDispatchParticipantsMapper; import com.ruoyi.system.model.TExperimentDispatch; import com.ruoyi.system.model.TExperimentDispatchParticipants; import com.ruoyi.system.model.TProjectTeamStaff; import com.ruoyi.system.query.TExperimentDispatchQuery; import com.ruoyi.system.service.TExperimentDispatchService; import com.ruoyi.system.vo.TExperimentDispatchVO; import com.ruoyi.system.vo.TProjectTeamVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -17,4 +32,35 @@ @Service public class TExperimentDispatchServiceImpl extends ServiceImpl<TExperimentDispatchMapper, TExperimentDispatch> implements TExperimentDispatchService { @Autowired private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper; @Autowired private SysUserMapper sysUserMapper; @Override public PageInfo<TExperimentDispatchVO> pageList(TExperimentDispatchQuery query) { PageInfo<TExperimentDispatchVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TExperimentDispatchVO> list = this.baseMapper.pageList(query,pageInfo); // 查询参与人员 List<String> ids = list.stream().map(TExperimentDispatchVO::getId).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(ids)){ List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) .in(TExperimentDispatchParticipants::getDispatchId, ids)); List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList()); List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); tExperimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> { SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null); if(sysUser != null){ tExperimentDispatchParticipant.setNickName(sysUser.getNickName()); } }); for (TExperimentDispatchVO tExperimentDispatchVO : list) { List<TExperimentDispatchParticipants> experimentDispatchParticipants = tExperimentDispatchParticipants.stream().filter(tExperimentDispatchParticipant -> tExperimentDispatchParticipant.getDispatchId().equals(tExperimentDispatchVO.getId())).collect(Collectors.toList()); String participantsName = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(";")); tExperimentDispatchVO.setParticipantsName(participantsName); } } pageInfo.setRecords(list); return pageInfo; } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TProjectProposalServiceImpl.java
@@ -1,10 +1,20 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.TProjectProposalMapper; import com.ruoyi.system.model.TProjectProposal; import com.ruoyi.system.model.TProjectTeamStaff; import com.ruoyi.system.query.TProjectProposalQuery; import com.ruoyi.system.service.TProjectProposalService; import com.ruoyi.system.vo.TProjectProposalVO; import com.ruoyi.system.vo.TProjectTeamVO; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -17,4 +27,11 @@ @Service public class TProjectProposalServiceImpl extends ServiceImpl<TProjectProposalMapper, TProjectProposal> implements TProjectProposalService { @Override public PageInfo<TProjectProposalVO> pageList(TProjectProposalQuery query) { PageInfo<TProjectProposalVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TProjectProposalVO> list = this.baseMapper.pageList(query,pageInfo); pageInfo.setRecords(list); return pageInfo; } } ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentDispatchVO.java
New file @@ -0,0 +1,29 @@ package com.ruoyi.system.vo; import com.ruoyi.system.model.TExperimentDispatch; import com.ruoyi.system.model.TExperimentDispatchGroup; import com.ruoyi.system.model.TExperimentDispatchParticipants; import com.ruoyi.system.model.TExperimentDispatchTask; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "实验调度VO") public class TExperimentDispatchVO extends TExperimentDispatch { @ApiModelProperty(value = "项目课题方案名称") private String projectName; @ApiModelProperty(value = "参与人员名称拼接") private String participantsName; @ApiModelProperty(value = "组别列表") private List<TExperimentDispatchGroup> experimentDispatchGroups; @ApiModelProperty(value = "参与人员") private List<TExperimentDispatchParticipants> experimentDispatchParticipants; @ApiModelProperty(value = "组别列表") private List<TExperimentDispatchTask> experimentDispatchTasks; } ruoyi-system/src/main/java/com/ruoyi/system/vo/TProjectProposalVO.java
New file @@ -0,0 +1,15 @@ package com.ruoyi.system.vo; import com.ruoyi.system.model.TProjectProposal; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "项目课题方案VO") public class TProjectProposalVO extends TProjectProposal { @ApiModelProperty(value = "审核人名称") private String auditPersonName; } ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
@@ -24,5 +24,29 @@ <sql id="Base_Column_List"> id, proposal_id, experiment_date, experiment_name, experiment_code, experiment_start_time, experiment_end_time, key_nodes, status, create_time, update_time, create_by, update_by, disabled </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TExperimentDispatchVO"> SELECT ted.id, ted.proposal_id, ted.experiment_date, ted.experiment_name, ted.experiment_code, ted.experiment_start_time, ted.experiment_end_time, ted.key_nodes, ted.status, ted.create_time, ted.update_time, ted.create_by, ted.update_by, ted.disabled,tpp.project_name as projectName from t_experiment_dispatch ted left join t_project_proposal tpp on ted.proposal_id = tpp.id <where> <if test="query.proposalName != null and query.proposalName != ''"> and tpp.proposal_name like concat('%',#{query.proposalName},'%') </if> <if test="query.experimentCode != null and query.experimentCode != ''"> and ted.experiment_code like concat('%',#{query.experimentCode},'%') </if> <if test="query.status !=null"> and ted.status = #{query.status} </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> AND ted.create_time BETWEEN #{query.startTime} AND #{query.endTime} </if> AND ted.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY ted.create_time DESC </select> </mapper> ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml
@@ -31,5 +31,35 @@ <sql id="Base_Column_List"> 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.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.nickname as auditPersonName from t_project_proposal tpp left join sys_user su on su.user_id = tpp.audit_person_id <where> <if test="query.projectName != null and query.projectName != ''"> and tpp.project_name like concat('%',#{query.projectName},'%') </if> <if test="query.projectCode != null and query.projectCode != ''"> and tpp.project_code like concat('%',#{query.projectCode},'%') </if> <if test="query.auditPersonName != null and query.auditPersonName != ''"> and su.nickname like concat('%',#{query.auditPersonName},'%') </if> <if test="query.createBy != null and query.createBy != ''"> and tpp.createBy like concat('%',#{query.createBy},'%') </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> AND tpp.create_time BETWEEN #{query.startTime} AND #{query.endTime} </if> <if test="query.auditStatus != null"> AND tpp.audit_status = #{query.auditStatus} </if> AND tpp.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY tpp.create_time DESC </select> </mapper> ruoyi-system/src/main/resources/mapper/system/TProjectTeamMapper.xml
@@ -31,8 +31,7 @@ AND person_charge LIKE CONCAT('%', #{personCharge}, '%') </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> AND create_time >= #{query.startTime} AND create_time <= #{query.endTime} AND create_time BETWEEN #{query.startTime} AND #{query.endTime} </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where>