diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxMyController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxMyController.java index f5fff38..e6a1a8a 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxMyController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxMyController.java @@ -1,22 +1,35 @@ package org.dromara.scale.controller.wx; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.file.FileUtils; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.bo.BaseQueryBo; import org.dromara.scale.domain.bo.ReservationOrderBo; import org.dromara.scale.domain.bo.SysScaleBo; -import org.dromara.scale.domain.vo.ReservationOrderVo; -import org.dromara.scale.domain.vo.StatisticNumVo; -import org.dromara.scale.domain.vo.SysEvaluationRecordVo; -import org.dromara.scale.domain.vo.SysScaleVo; +import org.dromara.scale.domain.vo.*; +import org.dromara.scale.service.IArchiveService; import org.dromara.scale.service.IMyService; +import org.dromara.scale.service.ISysEvaluationRecordService; +import org.dromara.scale.utils.AsposeUtil; +import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.List; /** @@ -33,6 +46,8 @@ import java.util.List; public class WxMyController extends BaseController { private final IMyService myService; + private final IArchiveService archiveService; + private final ISysEvaluationRecordService sysEvaluationRecordService; /** * 获取各数量数量 @@ -81,4 +96,37 @@ public class WxMyController extends BaseController { public TableDataInfo personalList(PageQuery pageQuery) { return myService.queryPersonalEvaluationRecordPageList(pageQuery); } + + /** + * 获取档案静态列表 + */ + @GetMapping("/archive/pageList") + public TableDataInfo statisticPageList(Long userId, PageQuery pageQuery) { + return archiveService.queryStatisticPageList(userId, pageQuery); + } + + /** + * 导出量测记录列表 + */ + @Log(title = "个人量测记录", businessType = BusinessType.EXPORT) + @PostMapping("/evaluation/record/export") + public void export(BaseQueryBo bo, HttpServletResponse response) throws Exception { + String filePath = sysEvaluationRecordService.getWordTemplate(bo); + File pdf = FileUtil.createTempFile(".pdf", true); + String pdfPath = pdf.getPath(); + File pdfFile = new File(pdfPath); + AsposeUtil.wordToPdf(filePath, pdfFile); + FileUtils.setAttachmentResponseHeader(response, bo.getNickName() + "的报告" + "-" + bo.getScaleName()); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); + try (InputStream inputStream = new FileInputStream(pdfFile)) { + int available = inputStream.available(); + IoUtil.copy(inputStream, response.getOutputStream(), available); + response.setContentLength(available); + } catch (Exception e) { + throw new ServiceException(e.getMessage()); + } finally { + FileUtil.del(filePath); + FileUtil.del(pdfPath); + } + } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ActivityEnterBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ActivityEnterBo.java index d81a383..06f6adc 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ActivityEnterBo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ActivityEnterBo.java @@ -23,7 +23,7 @@ public class ActivityEnterBo extends BaseEntity { /** * */ - @NotNull(message = "不能为空", groups = {EditGroup.class}) + //@NotNull(message = "不能为空", groups = {EditGroup.class}) private Long id; /** diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ActivityEnterServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ActivityEnterServiceImpl.java index a8fa634..1e8fe1d 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ActivityEnterServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ActivityEnterServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.scale.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; @@ -17,6 +18,7 @@ import org.dromara.scale.service.IActivityEnterService; import org.springframework.stereotype.Service; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Map; @@ -111,16 +113,18 @@ public class ActivityEnterServiceImpl implements IActivityEnterService { @Override public Boolean updateByBo(ActivityEnterBo bo) { Long userId = LoginHelper.getUserId(); + Long activityId = bo.getActivityId(); boolean exists = baseMapper.exists(new LambdaQueryWrapper() - .eq(ActivityEnter::getActivityId, bo.getActivityId()) + .eq(ActivityEnter::getActivityId, activityId) .eq(ActivityEnter::getCreateBy, userId)); if (!exists) { throw new ServiceException("签到失败,请先报名活动"); } - ActivityEnter update = MapstructUtils.convert(bo, ActivityEnter.class); - update.setStatus(1); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; + return baseMapper.update(new LambdaUpdateWrapper() + .set(ActivityEnter::getStatus, 1) + .set(ActivityEnter::getUpdateTime, new Date()) + .eq(ActivityEnter::getActivityId, activityId) + .eq(ActivityEnter::getCreateBy, userId)) > 0; } /** diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ArchiveMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ArchiveMapper.xml index 15fc6f6..edc6e74 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ArchiveMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ArchiveMapper.xml @@ -15,7 +15,7 @@ u.user_type from sys_user u left join sys_dept d on d.dept_id = u.dept_id - where u.user_type = 'student' + where u.user_type = 'app_user' and u.nick_name like CONCAT('%', #{query.nickName}, '%')