From 25e115da7815430fdc5d078d4a01d76edacb4e6f Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期二, 06 五月 2025 16:39:04 +0800 Subject: [PATCH] 质量监督添加被监督人签名 --- cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java | 67 ++++++++++++++++++++++++++------- 1 files changed, 53 insertions(+), 14 deletions(-) diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java index 52044aa..27ceb0c 100644 --- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java @@ -1,10 +1,12 @@ package com.ruoyi.process.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -52,6 +54,7 @@ import java.net.URLEncoder; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.YearMonth; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; @@ -355,24 +358,60 @@ // 鏌ヨ涓婁竴涓湀绗竴鏉$殑璁板綍淇℃伅, 鍒ゆ柇琚洃鐫d汉鍘诲彟澶栦竴涓� if (detailsRecord == null) { - // 鏌ヨ璇︽儏淇℃伅 QualitySuperviseDetails qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectById(superviseDetailsId); // 鏌ヨ涓婁竴涓湀绗竴鏉$殑璁板綍淇℃伅, 鍒ゆ柇琚洃鐫d汉鍘诲彟澶栦竴涓� + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M"); + YearMonth yearMonth = YearMonth.parse(qualitySuperviseDetails.getSuperviseTime(), formatter); + YearMonth previousYearMonth = yearMonth.minusMonths(1); + + LocalDate startDate = previousYearMonth.atDay(1); + LocalDate endDate = previousYearMonth.atEndOfMonth(); + + LocalDateTime startDateTime = startDate.atStartOfDay(); + LocalDateTime endDateTime = endDate.atTime(23, 59, 59); + + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + // 鑾峰彇寮�濮嬫椂闂村拰缁撴潫鏃堕棿 + String startDateTimeStr = startDateTime.format(outputFormatter); + String endDateTimeStr = endDateTime.format(outputFormatter); QualitySuperviseDetailsRecord laseRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery() + .between(QualitySuperviseDetailsRecord::getCreateTime, startDateTimeStr, endDateTimeStr) + .isNotNull(QualitySuperviseDetailsRecord::getSupervisor) .last("limit 1")); + String supervisor = null; + + if (laseRecord != null) { + // 鏌ヨ璁″垝鑾峰彇鍙︿竴涓洃鐫e憳 + QualitySupervise qualitySupervise = baseMapper.selectById(qualitySuperviseDetails.getSuperviseId()); + if (StringUtils.isNotBlank(qualitySupervise.getRecordUserIds())) { + List<String> recordUserIds = StrUtil.split(qualitySupervise.getRecordUserIds(), ','); + List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery() + .in(User::getId, recordUserIds)); + if (CollectionUtils.isNotEmpty(users) && users.size() == 2) { + // 鍒ゆ柇鏄惁涓�鏍�, 涓�鏍疯幏鍙栧彟澶栦竴涓� + if (users.get(0).getName().equals(laseRecord.getSupervisor())) { + supervisor = users.get(1).getName(); + } else { + supervisor = users.get(0).getName(); + } + + } + } + } detailsRecord = new QualitySuperviseDetailsRecord(); detailsRecord.setSuperviseDetailsId(superviseDetailsId); detailsRecord.setTestMember(qualitySuperviseDetails.getSupervisee()); - detailsRecord.setSupervisor(null); + detailsRecord.setSupervisor(supervisor); - detailsRecord.setPersonnel("()鏈夌浉搴旀娴嬪憳鐨勪笂宀楄瘉"); + detailsRecord.setPersonnel(SecurityUtils.getLoginUser().getUser().getNickName() + "鏈夌浉搴旀娴嬪憳鐨勪笂宀楄瘉"); detailsRecord.setEnvironment("娓╁害锛�()鈩� 婀垮害锛�()%"); - detailsRecord.setInspectionRecord("妫�娴嬩汉鍛�()杩涜妫�娴嬭褰曪紝璁板綍鍐呭鐪熷疄鏈夋晥"); - detailsRecord.setExaminingReport("鐢�()榛勭瀹炲嚭绀虹殑妫�娴嬫姤鍛婄鍚堣鑼冭姹�"); + detailsRecord.setInspectionRecord("妫�娴嬩汉鍛�" + SecurityUtils.getLoginUser().getUser().getNickName() + "杩涜妫�娴嬭褰曪紝璁板綍鍐呭鐪熷疄鏈夋晥"); + detailsRecord.setExaminingReport("鐢�" + SecurityUtils.getLoginUser().getUser().getNickName() + "鍑虹ず鐨勬娴嬫姤鍛婄鍚堣鑼冭姹�"); detailsRecord.setSupervisionEvaluation("妫�娴嬫寜鐓ц姹傝繘琛岋紝鍒ゅ畾涓烘弧鎰�"); detailsRecord.setHandlingAdvice("/"); @@ -485,25 +524,25 @@ public void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response) { QualitySuperviseDetailsRecord recordDto = qualitySuperviseDetailsRecordMapper.selectSuperviseDetailRecord(superviseDetailsId); - //鑾峰彇鎶�鏈礋璐d汉鐨勭鍚嶅湴鍧� - String ratifyUrl = null; - if (recordDto.getRatifyUserId() != null) { - ratifyUrl = userMapper.selectById(recordDto.getRatifyUserId()).getSignatureUrl(); - if (StringUtils.isBlank(ratifyUrl)) { - throw new ErrorException("鎵句笉鍒版妧鏈礋璐d汉鐨勭鍚�"); - } + // 鏌ヨ妫�娴嬩汉鍛� + User tserUser = new User(); + if (StringUtils.isNotBlank(recordDto.getTestMember())) { + tserUser = userMapper.selectOne(Wrappers.<User>lambdaQuery() + .eq(User::getName, recordDto.getTestMember()) + .last("limit 1")); } // 鑾峰彇璺緞 InputStream inputStream = this.getClass().getResourceAsStream("/static/supervision-detail-record.docx"); ConfigureBuilder builder = Configure.builder(); builder.useSpringEL(true); - String finalRatifyUrl = ratifyUrl; + User finalTserUser = tserUser; XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( new HashMap<String, Object>() {{ put("supervision", recordDto); + put("testMemberUrl", UserUtils.getFinalUserSignatureUrl(finalTserUser.getId())); put("supervisoruUrl", UserUtils.getFinalUserSignatureUrl(recordDto.getSupervisor())); - put("technicalDirectorUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null); + put("technicalDirectorUrl", UserUtils.getFinalUserSignatureUrl(recordDto.getRatifyUserId())); put("technicalDirectorDateUrl", recordDto.getRatifyTime() != null ? Pictures.ofStream(DateImageUtil.createDateImage(recordDto.getRatifyTime())).create() : null); }}); -- Gitblit v1.9.3