From cecd7580b5e629173bdb5b258f2676d16d580f72 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 30 七月 2026 15:49:55 +0800
Subject: [PATCH] fix: 安全培训考核签到修改
---
src/main/java/com/ruoyi/safe/service/impl/SafeTrainingServiceImpl.java | 51 +++++++++++++++++++++++++++------------------------
1 files changed, 27 insertions(+), 24 deletions(-)
diff --git a/src/main/java/com/ruoyi/safe/service/impl/SafeTrainingServiceImpl.java b/src/main/java/com/ruoyi/safe/service/impl/SafeTrainingServiceImpl.java
index 0c1f1d1..0dd877f 100644
--- a/src/main/java/com/ruoyi/safe/service/impl/SafeTrainingServiceImpl.java
+++ b/src/main/java/com/ruoyi/safe/service/impl/SafeTrainingServiceImpl.java
@@ -5,25 +5,23 @@
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
-import com.ruoyi.production.pojo.ProductOrder;
-import com.ruoyi.production.pojo.ProductWorkOrder;
import com.ruoyi.safe.dto.SafeTrainingDetailsDto;
import com.ruoyi.safe.dto.SafeTrainingDto;
import com.ruoyi.safe.mapper.SafeTrainingDetailsMapper;
import com.ruoyi.safe.mapper.SafeTrainingFileMapper;
-import com.ruoyi.safe.pojo.SafeTraining;
import com.ruoyi.safe.mapper.SafeTrainingMapper;
+import com.ruoyi.safe.pojo.SafeTraining;
import com.ruoyi.safe.pojo.SafeTrainingDetails;
import com.ruoyi.safe.pojo.SafeTrainingFile;
import com.ruoyi.safe.service.SafeTrainingService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
-import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
@@ -42,26 +40,25 @@
* @since 2026-01-29 10:54:06
*/
@Service
+@RequiredArgsConstructor
public class SafeTrainingServiceImpl extends ServiceImpl<SafeTrainingMapper, SafeTraining> implements SafeTrainingService {
- @Autowired
- private SafeTrainingMapper safeTrainingMapper;
+ private final SafeTrainingMapper safeTrainingMapper;
- @Autowired
- private SafeTrainingFileMapper safeTrainingFileMapper;
+ private final SafeTrainingFileMapper safeTrainingFileMapper;
- @Autowired
- private SafeTrainingDetailsMapper safeTrainingDetailsMapper;
+ private final SafeTrainingDetailsMapper safeTrainingDetailsMapper;
@Override
public IPage<SafeTrainingDto> pageSafeTraining(Page page, SafeTrainingDto safeTrainingDto) {
+ safeTrainingMapper.refreshTrainingState();
return safeTrainingMapper.pageSafeTraining(page, safeTrainingDto);
}
@Override
public int addOrUpdate(SafeTraining safeTraining) {
if (ObjectUtils.isNull(safeTraining.getId())) {
- String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
+ String datePrefix ="KC-"+ LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
// 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶ц绋嬬紪鍙�
QueryWrapper<SafeTraining> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("course_code", datePrefix)
@@ -81,17 +78,18 @@
}
}
// 鐢熸垚瀹屾暣鐨勮绋嬬紪鍙�
- String no = "KC-" + String.format("%s%03d", datePrefix, sequenceNumber);
+ String no = String.format("%s%03d", datePrefix, sequenceNumber);
safeTraining.setCourseCode(no);
}
//鏍规嵁鏃堕棿鍒ゆ柇鍩硅鐘舵��
String trainingDate = safeTraining.getTrainingDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDateTime openingTime = LocalDateTime.parse((trainingDate + safeTraining.getOpeningTime()), DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss"));
LocalDateTime endTime = LocalDateTime.parse((trainingDate + safeTraining.getEndTime()), DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss"));
- if (LocalDateTime.now().isBefore(openingTime)) {
+ LocalDateTime now = LocalDateTime.now();
+ if (now.isBefore(openingTime)) {
//鏈紑濮�
safeTraining.setState(0);
- } else if (LocalDateTime.now().isAfter(endTime)) {
+ } else if (!now.isBefore(endTime)) {
//宸茬粨鏉�
safeTraining.setState(2);
} else {
@@ -105,14 +103,19 @@
@Override
public SafeTrainingDto getSafeTraining(Long id) {
+ safeTrainingMapper.refreshTrainingState();
//涓昏〃鏁版嵁
- SafeTrainingDto safeTrainingDto=safeTrainingMapper.getSafeTraining(id);
+ SafeTrainingDto safeTrainingDto = safeTrainingMapper.getSafeTraining(id);
//闄勪欢
List<SafeTrainingFile> safeTrainingFiles = safeTrainingFileMapper.selectList(Wrappers.<SafeTrainingFile>lambdaQuery().eq(SafeTrainingFile::getSafeTrainingId, id));
- safeTrainingDto.setSafeTrainingFileList(safeTrainingFiles);
+ if (safeTrainingFiles.size()>0){
+ safeTrainingDto.setSafeTrainingFileList(safeTrainingFiles);
+ }
//鍩硅璁板綍璇︽儏
- List<SafeTrainingDetailsDto> safeTrainingDetailsDto=safeTrainingDetailsMapper.getSafeTraining(id);
- safeTrainingDto.setSafeTrainingDetailsDtoList(safeTrainingDetailsDto);
+ List<SafeTrainingDetailsDto> safeTrainingDetailsDto = safeTrainingDetailsMapper.getSafeTraining(id);
+ if (safeTrainingDetailsDto.size()>0) {
+ safeTrainingDto.setSafeTrainingDetailsDtoList(safeTrainingDetailsDto);
+ }
return safeTrainingDto;
}
@@ -132,16 +135,16 @@
//鍒犻櫎涓昏〃
safeTrainingMapper.deleteBatchIds(ids);
//鍒犻櫎闄勪欢
- safeTrainingFileMapper.delete(Wrappers.<SafeTrainingFile>lambdaQuery().in(SafeTrainingFile::getSafeTrainingId,ids));
+ safeTrainingFileMapper.delete(Wrappers.<SafeTrainingFile>lambdaQuery().in(SafeTrainingFile::getSafeTrainingId, ids));
//鍒犻櫎鍩硅璁板綍
- safeTrainingDetailsMapper.delete(Wrappers.<SafeTrainingDetails>lambdaQuery().in(SafeTrainingDetails::getSafeTrainingId,ids));
+ safeTrainingDetailsMapper.delete(Wrappers.<SafeTrainingDetails>lambdaQuery().in(SafeTrainingDetails::getSafeTrainingId, ids));
return 0;
}
@Override
public void export(HttpServletResponse response, Long id) {
SafeTrainingDto safeTrainingDto = safeTrainingMapper.getSafeTraining(id);
- List<SafeTrainingDetailsDto> safeTrainingDetailsDtoList=safeTrainingDetailsMapper.getSafeTraining(id);
+ List<SafeTrainingDetailsDto> safeTrainingDetailsDtoList = safeTrainingDetailsMapper.getSafeTraining(id);
InputStream inputStream = this.getClass().getResourceAsStream("/static/safe-training.docx");
Configure configure = Configure.builder()
.bind("safeTrainingDetailsDtoList", new HackLoopTableRenderPolicy())
@@ -155,7 +158,7 @@
try {
response.setContentType("application/msword");
String fileName = URLEncoder.encode(
- safeTrainingDto.getCourseCode()+"鍩硅涓庤�冩牳璁″垝", "UTF-8");
+ safeTrainingDto.getCourseCode() + "鍩硅涓庤�冩牳璁″垝", "UTF-8");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-disposition",
"attachment;filename=" + fileName + ".docx");
--
Gitblit v1.9.3