From 112d964cbc94154dd4ca75851231d0c477ebc571 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期二, 20 五月 2025 10:29:22 +0800
Subject: [PATCH] 其他功能合并
---
cnas-process/src/main/resources/mapper/ProcessReportMapper.xml | 11
cnas-process/src/main/resources/static/report-deal.docx | 0
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java | 3
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java | 22
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordAuditServiceImpl.java | 4
basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml | 16
cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java | 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java | 2
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIssueRecycleServiceImpl.java | 2
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java | 3
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java | 40 +
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsTotalServiceImpl.java | 2
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationServiceImpl.java | 3
basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java | 244 ----------
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java | 4
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalReportServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCheckServiceImpl.java | 4
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java | 20
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java | 5
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java | 1
ruoyi-common/src/main/resources/ttf/signature.ttf | 0
basic-server/src/main/java/com/ruoyi/basic/service/StructureItemParameterService.java | 10
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMapper.java | 6
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderDeviceMapper.java | 2
cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java | 8
cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseManagementReviewService.java | 34 +
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java | 1
cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java | 82 +++
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java | 1
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java | 20
basic-server/src/main/java/com/ruoyi/basic/service/impl/StructureItemParameterServiceImpl.java | 272 +++++++++++
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordTotalServiceImpl.java | 2
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java | 1
cnas-require/src/main/java/com/ruoyi/require/service/impl/ForeignRegisterServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageControlPlanListServiceImpl.java | 1
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseManagementReviewServiceImpl.java | 86 +++
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCancelServiceImpl.java | 4
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceCalibrationPlanServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceTraceabilityManagementServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectServiceImpl.java | 1
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java | 2
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java | 1
basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java | 3
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenancePlanServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsServiceImpl.java | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java | 11
cnas-process/src/main/resources/mapper/ProcessDealMapper.xml | 4
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanServiceImpl.java | 1
cnas-process/src/main/resources/static/supervision-detail-record.docx | 0
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java | 3
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java | 2
cnas-process/src/main/resources/mapper/QualitySuperviseManagementReviewMapper.xml | 14
cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java | 1
cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java | 1
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCheckServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAcceptanceServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ClientSatisfactionServiceImpl.java | 1
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java | 4
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessDealDto.java | 19
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java | 51 -
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceScrappedServiceImpl.java | 1
cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java | 4
cnas-process/src/main/resources/static/supervise-management-eview.docx | 0
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java | 9
cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseManagementReviewMapper.java | 26 +
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewReportServiceImpl.java | 3
basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java | 8
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalImplementServiceImpl.java | 3
cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java | 5
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java | 1
cnas-device/src/main/resources/mapper/DeviceMapper.xml | 16
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java | 3
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingServiceImpl.java | 3
cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseManagementReview.java | 63 ++
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java | 1
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramServiceImpl.java | 1
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java | 1
cnas-process/src/main/resources/static/sample-deal.docx | 0
cnas-require/src/main/java/com/ruoyi/require/service/impl/FePowerStableServiceImpl.java | 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/SignatureImageUtil.java | 66 ++
cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseManagementReviewController.java | 71 +++
cnas-manage/src/main/java/com/ruoyi/manage/schedule/ManageRecordTotalSchedule.java | 2
94 files changed, 983 insertions(+), 362 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
index e927343..2f5df2e 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
@@ -1,41 +1,26 @@
package com.ruoyi.basic.controller;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.poi.excel.ExcelUtil;
import com.alibaba.excel.EasyExcel;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.core.domain.Result;
-import com.ruoyi.common.core.domain.entity.SysDictData;
-import com.ruoyi.system.service.ISysDictTypeService;
import com.ruoyi.basic.dto.PageTestObjectDto;
import com.ruoyi.basic.dto.ProductDTO1;
import com.ruoyi.basic.excel.StructureTestObjectData;
import com.ruoyi.basic.excel.StructureTestObjectListener;
import com.ruoyi.basic.pojo.Product;
-import com.ruoyi.basic.pojo.StandardTemplate;
import com.ruoyi.basic.pojo.StructureItemParameter;
import com.ruoyi.basic.pojo.StructureTestObject;
import com.ruoyi.basic.service.CapacityScopeService;
import com.ruoyi.basic.service.ProductService;
-import com.ruoyi.basic.service.StandardTemplateService;
import com.ruoyi.basic.service.StructureItemParameterService;
+import com.ruoyi.common.core.domain.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
-import org.apache.commons.lang3.ObjectUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
/**
* 妫�楠岄」鐩弬鏁�(StructureItemParameter)琛ㄦ帶鍒跺眰
@@ -55,9 +40,6 @@
private StructureItemParameterService structureItemParameterService;
- private ISysDictTypeService dictTypeService;
-
- private StandardTemplateService standardTemplateService;
@ApiOperation(value = "鑾峰彇椤圭洰妫�楠屽弬鏁板垪琛�")
@GetMapping("/selectItemParameterList")
@@ -154,229 +136,7 @@
@PostMapping("/importEquipData")
@Transactional
public Result importEquipData(@RequestParam("file") MultipartFile file) throws Exception {
- InputStream inputStream = file.getInputStream();
- List<StructureItemParameter> lists = new ArrayList<>();
- AtomicReference<String> sample = new AtomicReference<>();
- ExcelUtil.readBySax(inputStream, -1, (i, l, list1) -> {
- if (l == 1) {
- sample.set(list1.get(1) + "");
- }
- if (l >= 1) {
- StructureItemParameter str = new StructureItemParameter();
- // 娴嬭瘯瀵硅薄
- if (list1.get(1) == null) {
- str.setSample(null);
- } else {
- String brand = (String) list1.get(1);
- StringBuilder builder = new StringBuilder();
- builder.append("[");
- // 浜у搧
- if (ObjectUtil.isNotEmpty(list1.get(2))) {
- String production = (String) list1.get(2);
- if (!production.contains("锛�")) {
- builder.append(String.format("[\"%s\",\"%s\"]", brand, production));
- } else {
- Arrays.stream(production.split("锛�")).forEach(item -> {
- builder.append(String.format("[\"%s\",\"%s\"],", brand, item));
- });
- builder.deleteCharAt(builder.length() - 1);
- }
- } else {
- builder.append("[");
- builder.append(String.format("\"%s\"", brand));
- builder.append("]");
- }
- builder.append("]");
- str.setSample(builder.toString());
- }
- // 妫�楠岄」
- str.setInspectionItem(list1.get(4).toString().trim());
- // 妫�楠岄」鑻辨枃
- if (list1.get(5) != null) {
- str.setInspectionItemEn(list1.get(5).toString());
- }
- // 妫�楠屽瓙椤�
- if (list1.get(6) == null) {
- str.setInspectionItemSubclass(null);
- } else {
- str.setInspectionItemSubclass(list1.get(6).toString().trim());
- }
- // 妫�楠屽瓙椤硅嫳鏂�
- if (list1.get(7) == null) {
- str.setInspectionItemSubclassEn(null);
- } else {
- str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString()));
- }
- // 妫�楠岄」鍒嗙被
- if (list1.get(22) != null && list1.get(22) != "") {
- str.setInspectionItemClass(list1.get(22).toString().trim());
- } else {
- str.setInspectionItemClass(null);
- }
- // 妫�楠岄」鍒嗙被鑻辨枃
- if (list1.get(23) != null && list1.get(23) != "") {
- str.setInspectionItemClassEn(list1.get(23) + "");
- } else {
- str.setInspectionItemClassEn(null);
- }
-
- LambdaQueryWrapper<StructureItemParameter> wrapper = Wrappers.lambdaQuery(StructureItemParameter.class)
- .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem())
- .eq(StructureItemParameter::getSample, str.getSample())
-
- .last("limit 1");
- // 鍒ゆ柇鏄惁鏈夋楠岄」绫诲瀷
- if (ObjectUtils.isNotEmpty(str.getInspectionItemClass())) {
- wrapper.eq(StructureItemParameter::getInspectionItemClass, str.getInspectionItemClass());
- }
-
- // 鍒ゆ柇鏄惁鏈夋楠屽瓙椤�
- if (ObjectUtils.isNotEmpty(str.getInspectionItemSubclass())) {
- wrapper.eq(StructureItemParameter::getInspectionItemSubclass, str.getInspectionItemSubclass());
- }
- StructureItemParameter db_str = structureItemParameterService.getOne(wrapper);
- if (ObjectUtils.isNotEmpty(db_str)) {
- str.setId(db_str.getId());
- }
- // 鏂规硶鍚嶇О
- if (list1.get(8) == null) {
- str.setMethod(null);
- } else {
- StringBuffer buffer = new StringBuffer();
- String input = list1.get(8).toString();
- buffer.append("[");
- String[] values = input.split("锛�");
- for (String value : values) {
- buffer.append("\"").append(value.trim()).append("\",");
- }
- buffer.deleteCharAt(buffer.length() - 1);
- buffer.append("]");
- str.setMethod(buffer.toString());
- }
- // 璇曢獙瀹�
- if (list1.get(9) == null) {
- str.setSonLaboratory(null);
- } else {
- str.setSonLaboratory(list1.get(9).toString());
- }
- // 璁¢噺鍗曚綅
- if (list1.get(10) == null) {
- str.setUnit(null);
- } else {
- str.setUnit(list1.get(10).toString());
- }
- // 瑕佹眰鍊�
- if (list1.get(11) == null) {
- str.setAskTell(null);
- } else {
- str.setAskTell(list1.get(11).toString());
- }
- // 瑕佹眰鎻忚堪
- if (list1.get(12) == null) {
- str.setAsk(null);
- } else {
- str.setAsk(list1.get(12).toString());
- }
- // 鍗曚环
- if (list1.get(13) == null) {
- str.setPrice(null);
- } else {
- str.setPrice(list1.get(13) + "");
- }
- // 宸ユ椂绯绘暟
- if (list1.get(14) == null) {
- str.setManHour(null);
- } else {
- str.setManHour(Double.valueOf(list1.get(14).toString()));
- }
- // 宸ユ椂鍒嗙粍
- if (list1.get(15) == null) {
- str.setManHourGroup(null);
- } else {
- str.setManHourGroup(list1.get(15).toString());
- }
- // 棰勮瀹屾垚鏃堕棿
- if (list1.get(16) == null) {
- str.setManDay(null);
- } else {
- str.setManDay(Integer.valueOf(list1.get(16).toString()));
- }
- // 鏁版嵁绫诲瀷
- String jy;
- if (list1.get(17).toString().equals("闈為噰闆嗙被鍨�")) {
- jy = "0";
- } else {
- jy = "1";
- }
- str.setInspectionItemType(jy);
- // 妫�楠岄」绫诲瀷
- String validateValueType = list1.get(18).toString();
- if (ObjectUtils.isNotEmpty(validateValueType)) {
- List<SysDictData> enums = dictTypeService.selectDictDataByName("妫�楠屽�肩被鍨�")
- .stream().filter(sysDictData -> sysDictData.getDictLabel().equals(validateValueType)).collect(Collectors.toList());
- str.setInspectionValueType(enums.get(0).getDictValue());
- }
- int bsm;
- //鐗规畩鏍囪瘑
- if (list1.get(19).toString().equals("鍚�")) {
- bsm = 0;
- } else {
- bsm = 1;
- }
- str.setBsm(bsm + "");
- // 鏁板瓧瀛楀吀
- if (list1.get(20) != null) {
- str.setDic(list1.get(20) + "");
- } else {
- str.setDic(null);
- }
- // 鍘熷璁板綍妯℃澘
- StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list1.get(21)));
- if (standTempIdByName != null) {
- str.setTemplateId(standTempIdByName.getId());
- } else {
- str.setTemplateId(null);
- }
- try {
- if (list1.get(24) != null) {
- str.setLaboratory(list1.get(24) + "");
- }
- } catch (Exception e) {
- }
-
- // 鏉′欢
- if (list1.get(25) == null) {
- str.setRadiusList(null);
- } else {
- StringBuffer buffer = new StringBuffer();
- String input = list1.get(25).toString();
- buffer.append("[");
- String[] values = input.split("锛�");
- for (String value : values) {
- buffer.append("\"").append(value.trim()).append("\",");
- }
- buffer.deleteCharAt(buffer.length() - 1);
- buffer.append("]");
- str.setRadiusList(buffer.toString());
- }
- //鏀惰垂鏍囧噯
- if (list1.get(26) == null) {
- str.setRates(null);
- } else {
- str.setRates(list1.get(26) + "");
- }
-
- lists.add(str);
- }
- });
-// structureItemParameterService.removeNoSample(sample.get());
- // 濡傛灉鏁版嵁搴撻噷闈㈢殑鏁版嵁瀛樺湪閭d箞灏辨墽琛屾洿鏂版嫹璐濇搷浣�
- try {
- structureItemParameterService.saveOrUpdateBatch(lists);
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException("鏈嶅姟绔姤閿�");
- }
+ structureItemParameterService.importEquipData(file);
return Result.success();
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
index 654741a..017c66a 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
@@ -25,6 +25,12 @@
List<TestItemDto> getItemTree();
- int removeNoSample(@Param("sample") String sample);
+
+ /**
+ * 鏌ヨ璁惧淇℃伅
+ * @param managementNumberList
+ * @return
+ */
+ List<Integer> selectDeviceIdsByNumber(@Param("managementNumberList") List<String> managementNumberList);
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
index 1938e9c..847caa4 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
@@ -120,5 +120,8 @@
@ApiModelProperty(value = "璁惧id")
private String deviceIds;
+ @ApiModelProperty(value = "鎶芥绫诲瀷, 1:鏈堝害, 2:瀛e害, 3:骞村害")
+ private String spotCheckType;
+
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/StructureItemParameterService.java b/basic-server/src/main/java/com/ruoyi/basic/service/StructureItemParameterService.java
index a697619..d22d250 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/StructureItemParameterService.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/StructureItemParameterService.java
@@ -2,7 +2,15 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.pojo.StructureItemParameter;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
public interface StructureItemParameterService extends IService<StructureItemParameter> {
- void removeNoSample(String sample);
+
+ /**
+ * 瀵煎叆妫�楠岄」鐩�
+ * @param file
+ */
+ void importEquipData(MultipartFile file) throws IOException;
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StructureItemParameterServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StructureItemParameterServiceImpl.java
index 4009106..6c3275e 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StructureItemParameterServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StructureItemParameterServiceImpl.java
@@ -1,14 +1,34 @@
package com.ruoyi.basic.service.impl;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.poi.excel.ExcelUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.StructureItemParameterMapper;
+import com.ruoyi.basic.pojo.StandardTemplate;
import com.ruoyi.basic.pojo.StructureItemParameter;
+import com.ruoyi.basic.service.StandardTemplateService;
import com.ruoyi.basic.service.StructureItemParameterService;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.system.service.ISysDictTypeService;
import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
@Service
@AllArgsConstructor
@@ -16,9 +36,257 @@
@Resource
private StructureItemParameterMapper structureItemParameterMapper;
+ @Resource
+ private ISysDictTypeService dictTypeService;
+ @Resource
+ private StandardTemplateService standardTemplateService;
+ /**
+ *
+ * @param file
+ */
@Override
- public void removeNoSample(String sample) {
- structureItemParameterMapper.removeNoSample("\""+sample+"\"");
+ public void importEquipData(MultipartFile file) throws IOException {
+ InputStream inputStream = file.getInputStream();
+ List<StructureItemParameter> lists = new ArrayList<>();
+ AtomicReference<String> sample = new AtomicReference<>();
+ ExcelUtil.readBySax(inputStream, -1, (i, l, list1) -> {
+ if (l == 1) {
+ sample.set(list1.get(1) + "");
+ }
+ if (l >= 1) {
+ StructureItemParameter str = new StructureItemParameter();
+ // 娴嬭瘯瀵硅薄
+ if (list1.get(1) == null) {
+ str.setSample(null);
+ } else {
+ String brand = (String) list1.get(1);
+ StringBuilder builder = new StringBuilder();
+ builder.append("[");
+ // 浜у搧
+ if (ObjectUtil.isNotEmpty(list1.get(2))) {
+ String production = (String) list1.get(2);
+ if (!production.contains("锛�")) {
+ builder.append(String.format("[\"%s\",\"%s\"]", brand, production));
+ } else {
+ Arrays.stream(production.split("锛�")).forEach(item -> {
+ builder.append(String.format("[\"%s\",\"%s\"],", brand, item));
+ });
+ builder.deleteCharAt(builder.length() - 1);
+ }
+ } else {
+ builder.append("[");
+ builder.append(String.format("\"%s\"", brand));
+ builder.append("]");
+ }
+ builder.append("]");
+ str.setSample(builder.toString());
+ }
+ // 妫�楠岄」
+ str.setInspectionItem(list1.get(4).toString().trim());
+ // 妫�楠岄」鑻辨枃
+ if (list1.get(5) != null) {
+ str.setInspectionItemEn(list1.get(5).toString());
+ }
+ // 妫�楠屽瓙椤�
+ if (list1.get(6) == null) {
+ str.setInspectionItemSubclass(null);
+ } else {
+ str.setInspectionItemSubclass(list1.get(6).toString().trim());
+ }
+ // 妫�楠屽瓙椤硅嫳鏂�
+ if (list1.get(7) == null) {
+ str.setInspectionItemSubclassEn(null);
+ } else {
+ str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString()));
+ }
+ // 妫�楠岄」鍒嗙被
+ if (list1.get(22) != null && list1.get(22) != "") {
+ str.setInspectionItemClass(list1.get(22).toString().trim());
+ } else {
+ str.setInspectionItemClass(null);
+ }
+ // 妫�楠岄」鍒嗙被鑻辨枃
+ if (list1.get(23) != null && list1.get(23) != "") {
+ str.setInspectionItemClassEn(list1.get(23) + "");
+ } else {
+ str.setInspectionItemClassEn(null);
+ }
+
+ LambdaQueryWrapper<StructureItemParameter> wrapper = Wrappers.lambdaQuery(StructureItemParameter.class)
+ .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem())
+ .eq(StructureItemParameter::getSample, str.getSample())
+
+ .last("limit 1");
+ // 鍒ゆ柇鏄惁鏈夋楠岄」绫诲瀷
+ if (ObjectUtils.isNotEmpty(str.getInspectionItemClass())) {
+ wrapper.eq(StructureItemParameter::getInspectionItemClass, str.getInspectionItemClass());
+ }
+
+ // 鍒ゆ柇鏄惁鏈夋楠屽瓙椤�
+ if (ObjectUtils.isNotEmpty(str.getInspectionItemSubclass())) {
+ wrapper.eq(StructureItemParameter::getInspectionItemSubclass, str.getInspectionItemSubclass());
+ }
+ StructureItemParameter db_str = this.getOne(wrapper);
+ if (ObjectUtils.isNotEmpty(db_str)) {
+ str.setId(db_str.getId());
+ }
+ // 鏂规硶鍚嶇О
+ if (list1.get(8) == null) {
+ str.setMethod(null);
+ } else {
+ StringBuffer buffer = new StringBuffer();
+ String input = list1.get(8).toString();
+ buffer.append("[");
+ String[] values = input.split("锛�");
+ for (String value : values) {
+ buffer.append("\"").append(value.trim()).append("\",");
+ }
+ buffer.deleteCharAt(buffer.length() - 1);
+ buffer.append("]");
+ str.setMethod(buffer.toString());
+ }
+ // 璇曢獙瀹�
+ if (list1.get(9) == null) {
+ str.setSonLaboratory(null);
+ } else {
+ str.setSonLaboratory(list1.get(9).toString());
+ }
+ // 璁¢噺鍗曚綅
+ if (list1.get(10) == null) {
+ str.setUnit(null);
+ } else {
+ str.setUnit(list1.get(10).toString());
+ }
+ // 瑕佹眰鍊�
+ if (list1.get(11) == null) {
+ str.setAskTell(null);
+ } else {
+ str.setAskTell(list1.get(11).toString());
+ }
+ // 瑕佹眰鎻忚堪
+ if (list1.get(12) == null) {
+ str.setAsk(null);
+ } else {
+ str.setAsk(list1.get(12).toString());
+ }
+ // 鍗曚环
+ if (list1.get(13) == null) {
+ str.setPrice(null);
+ } else {
+ str.setPrice(list1.get(13) + "");
+ }
+ // 宸ユ椂绯绘暟
+ if (list1.get(14) == null) {
+ str.setManHour(null);
+ } else {
+ str.setManHour(Double.valueOf(list1.get(14).toString()));
+ }
+ // 宸ユ椂鍒嗙粍
+ if (list1.get(15) == null) {
+ str.setManHourGroup(null);
+ } else {
+ str.setManHourGroup(list1.get(15).toString());
+ }
+ // 棰勮瀹屾垚鏃堕棿
+ if (list1.get(16) == null) {
+ str.setManDay(null);
+ } else {
+ str.setManDay(Integer.valueOf(list1.get(16).toString()));
+ }
+ // 鏁版嵁绫诲瀷
+ String jy;
+ if (list1.get(17).toString().equals("闈為噰闆嗙被鍨�")) {
+ jy = "0";
+ } else {
+ jy = "1";
+ // 缁戝畾璁惧
+ if (list1.get(28) == null) {
+ str.setRates(null);
+ } else {
+ // 鏌ヨ璁惧淇℃伅
+ List<String> managementNumberList = StrUtil.split(list1.get(28).toString(), '锛�');
+ if (CollectionUtils.isNotEmpty(managementNumberList)) {
+ List<Integer> deviceIds = structureItemParameterMapper.selectDeviceIdsByNumber(managementNumberList);
+ if (CollectionUtils.isNotEmpty(deviceIds)) {
+ str.setDeviceIds(CollUtil.join(deviceIds, ","));
+ }
+ }
+ }
+
+ }
+ str.setInspectionItemType(jy);
+ // 妫�楠岄」绫诲瀷
+ String validateValueType = list1.get(18).toString();
+ if (ObjectUtils.isNotEmpty(validateValueType)) {
+ List<SysDictData> enums = dictTypeService.selectDictDataByName("妫�楠屽�肩被鍨�")
+ .stream().filter(sysDictData -> sysDictData.getDictLabel().equals(validateValueType)).collect(Collectors.toList());
+ str.setInspectionValueType(enums.get(0).getDictValue());
+ }
+ int bsm;
+ //鐗规畩鏍囪瘑
+ if (list1.get(19).toString().equals("鍚�")) {
+ bsm = 0;
+ } else {
+ bsm = 1;
+ }
+ str.setBsm(bsm + "");
+ // 鏁板瓧瀛楀吀
+ if (list1.get(20) != null) {
+ str.setDic(list1.get(20) + "");
+ } else {
+ str.setDic(null);
+ }
+ // 鍘熷璁板綍妯℃澘
+ StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list1.get(21)));
+ if (standTempIdByName != null) {
+ str.setTemplateId(standTempIdByName.getId());
+ } else {
+ str.setTemplateId(null);
+ }
+ try {
+ if (list1.get(24) != null) {
+ str.setLaboratory(list1.get(24) + "");
+ }
+ } catch (Exception e) {
+ }
+
+ // 鏉′欢
+ if (list1.get(25) == null) {
+ str.setRadiusList(null);
+ } else {
+ StringBuffer buffer = new StringBuffer();
+ String input = list1.get(25).toString();
+ buffer.append("[");
+ String[] values = input.split("锛�");
+ for (String value : values) {
+ buffer.append("\"").append(value.trim()).append("\",");
+ }
+ buffer.deleteCharAt(buffer.length() - 1);
+ buffer.append("]");
+ str.setRadiusList(buffer.toString());
+ }
+ //鏀惰垂鏍囧噯
+ if (list1.get(26) == null) {
+ str.setRates(null);
+ } else {
+ str.setRates(list1.get(26) + "");
+ }
+ // 鎶芥牱绫诲瀷
+ String spotCheckType = list1.get(27).toString();
+ if (ObjectUtils.isNotEmpty(spotCheckType)) {
+ List<SysDictData> enums = dictTypeService.selectDictDataByName("鎶芥绫诲瀷")
+ .stream().filter(sysDictData -> sysDictData.getDictLabel().equals(spotCheckType)).collect(Collectors.toList());
+ str.setSpotCheckType(enums.get(0).getDictValue());
+ }
+ lists.add(str);
+ }
+ });
+ try {
+ this.saveOrUpdateBatch(lists);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("鏈嶅姟绔姤閿�");
+ }
}
}
diff --git a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
index b0139da..c18b8e7 100644
--- a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
+++ b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
@@ -3,11 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.basic.mapper.StructureItemParameterMapper">
- <delete id="removeNoSample">
- delete
- from structure_item_parameter
- where sample like concat('%', #{sample}, '%')
- </delete>
+
<select id="selectItemParameterList" resultType="com.ruoyi.basic.pojo.StructureItemParameter">
select * from (select A.id,
inspection_item,
@@ -41,7 +37,8 @@
code,
radius_list,
rates,
- device_ids
+ device_ids,
+ spot_check_type
from (select *,
CASE
WHEN INSTR(sample, ',') > 0 THEN
@@ -109,6 +106,13 @@
from structure_test_object sto
left join product p on p.object_id = sto.id
</select>
+ <select id="selectDeviceIdsByNumber" resultType="java.lang.Integer">
+ select id from device
+ where management_number in
+ <foreach item="item" collection="managementNumberList" open="(" separator="),(" close=")">
+ #{item}
+ </foreach>
+ </select>
<resultMap id="itemDto" type="com.ruoyi.basic.dto.TestItemDto">
<result column="sId" property="id"/>
diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMapper.java
index 92a8b2d..be50081 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMapper.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMapper.java
@@ -36,5 +36,11 @@
List<Map<String, Object>> treeDevice(@Param("deviceName") String deviceName);
DeviceDto selectDeviceByCode(Integer id);
+
+ /**
+ * 鏌ヨ鍒拌揪鏍″噯鏈夋晥鏈熺殑璁惧-鎻愬墠5澶�
+ * @return
+ */
+ List<Device> selectOverdueDevice();
}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAcceptanceServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAcceptanceServiceImpl.java
index 911c0e5..2cdb61e 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAcceptanceServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAcceptanceServiceImpl.java
@@ -151,6 +151,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java
index 60d610e..6eeecb6 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java
@@ -181,6 +181,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.java
index 8fb4089..15b21ef 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.java
@@ -144,6 +144,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceCalibrationPlanServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceCalibrationPlanServiceImpl.java
index 20eba63..acf6965 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceCalibrationPlanServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceCalibrationPlanServiceImpl.java
@@ -301,6 +301,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java
index db70678..23b2af1 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java
@@ -304,6 +304,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java
index 2b2343b..27ec286 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java
@@ -185,6 +185,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java
index bf1136c..7f2d705 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java
@@ -229,6 +229,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java
index f6085b2..901948b 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java
@@ -153,6 +153,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java
index b42a809..c190fa1 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java
@@ -290,6 +290,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java
index 1a3f00a..e9e9b18 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java
@@ -215,6 +215,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
index 47ec658..5493187 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
@@ -135,6 +135,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenancePlanServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenancePlanServiceImpl.java
index 0823576..d4c7fcb 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenancePlanServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenancePlanServiceImpl.java
@@ -196,6 +196,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java
index b38cc3d..15b388b 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java
@@ -138,6 +138,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceScrappedServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceScrappedServiceImpl.java
index 910617a..3fe7006 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceScrappedServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceScrappedServiceImpl.java
@@ -170,6 +170,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
index 0cb7415..c743869 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
@@ -353,6 +353,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -488,6 +489,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java
index 4d4a481..412e97d 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java
@@ -151,6 +151,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceTraceabilityManagementServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceTraceabilityManagementServiceImpl.java
index 818d22d..fd4acd1 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceTraceabilityManagementServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceTraceabilityManagementServiceImpl.java
@@ -281,6 +281,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java b/cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java
index 7ead8cb..b1009fc 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java
@@ -3,7 +3,9 @@
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.WxCpUtils;
import com.ruoyi.device.dto.DeviceRecordDto;
+import com.ruoyi.device.mapper.DeviceMapper;
import com.ruoyi.device.mapper.DeviceRecordMapper;
+import com.ruoyi.device.pojo.Device;
import com.ruoyi.device.pojo.DeviceRecord;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.scheduling.annotation.Scheduled;
@@ -20,6 +22,9 @@
*/
@Component
public class DeviceRecordSchedule {
+
+ @Resource
+ private DeviceMapper deviceMapper;
@Resource
private DeviceRecordMapper deviceRecordMapper;
@Resource
@@ -31,7 +36,7 @@
* 鎻愰啋濉啓璁惧浣跨敤璁板綍
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 9 * * 6") // 姣忓懆鍏墽琛屼竴娆�
+// @Scheduled(cron = "0 0 9 * * 6") // 姣忓懆鍏墽琛屼竴娆�
public void task1() {
// 鏌ヨ鏈~鍐欑殑璁惧浣跨敤璁板綍
List<DeviceRecordDto> deviceRecords = deviceRecordMapper.selectNotFilled();
@@ -58,8 +63,41 @@
});
});
+ }
+ /**
+ * 姣忓ぉ9鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
+ * 鍒ゆ柇鏄惁鏈夎澶囧埌杈炬牎鍑嗘湁鏁堟湡
+ */
+// @Scheduled(cron = "0/5 * * * * *")
+// @Scheduled(cron = "0 0 9 * * 1-6") // 姣忓ぉ9鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
+ public void task2() {
+ // 鏌ヨ鍒拌揪鏍″噯鏈夋晥鏈熺殑璁惧-鎻愬墠5澶�
+ List<Device> deviceList = deviceMapper.selectOverdueDevice();
+ Map<Integer, List<Device>> userPersonIdMap = deviceList.stream().collect(Collectors.groupingBy(Device::getEquipmentManager));
+ userPersonIdMap.forEach((userId, recordList) -> {
+ threadPoolTaskExecutor.execute(() -> {
+ // 浼佷笟寰俊閫氱煡濉啓璁惧浣跨敤璁板綍
+ User user = userMapper.selectById(userId);
+ String message = "";
+ message += "璁惧浣跨敤璁板綍鏈~鍐欐彁閱掗�氱煡";
+ for (Device deviceRecord : recordList) {
+ message += "\n璁惧鍚嶇О缂栧彿: " + deviceRecord.getDeviceName() + "-" + deviceRecord.getManagementNumber();
+ message += "\n濮旀墭缂栧彿: " + deviceRecord.getSampleCode();
+ message += "\n";
+ }
+ message += "\n璇峰幓濉啓璁惧浣跨敤璁板綍";
+
+ //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
+ try {
+ WxCpUtils.inform(user.getAccount(), message, null);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ });
+ });
}
}
diff --git a/cnas-device/src/main/resources/mapper/DeviceMapper.xml b/cnas-device/src/main/resources/mapper/DeviceMapper.xml
index 33fd802..2c2436a 100644
--- a/cnas-device/src/main/resources/mapper/DeviceMapper.xml
+++ b/cnas-device/src/main/resources/mapper/DeviceMapper.xml
@@ -142,6 +142,7 @@
<resultMap id="deviceNameMap" type="map">
<result property="value" column="id"/>
<result property="label" column="device_name"/>
+ <result property="activationDate" column="activation_date"/>
<result property="managementNumber" column="management_number"/>
</resultMap>
@@ -152,7 +153,8 @@
case when d.storage_point is null || d.storage_point ='' then '鍏朵粬' else d.storage_point end as storage_point,
d.device_name,
d.management_number,
- null as value
+ null as value,
+ d.activation_date
from device d
LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id
<where>
@@ -160,7 +162,6 @@
and device_name like concat('%',#{deviceName},'%')
</if>
</where>
- order by l.laboratory_name desc, d.storage_point desc
</select>
<select id="selectDeviceByCode" resultType="com.ruoyi.device.dto.DeviceDto">
@@ -181,4 +182,15 @@
u1.name,
u2.name
</select>
+
+ <!-- 鏌ヨ鍒拌揪鏍″噯鏈夋晥鏈熺殑璁惧-鎻愬墠5澶� -->
+ <select id="selectOverdueDevice" resultType="com.ruoyi.device.pojo.Device">
+ SELECT *
+ FROM device
+ WHERE
+ -- 绛涢�夊嚭 activation_date 鍦ㄥ綋鍓嶆棩鏈熷墠浜斿ぉ鍐呯殑鏁版嵁
+ activation_date BETWEEN now() AND now() + INTERVAL 5 DAY
+ -- 绛涢�夊嚭 activation_date 宸茬粡瓒呰繃褰撳墠鏃ユ湡鐨勬暟鎹�
+ OR activation_date < now()
+ </select>
</mapper>
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/schedule/ManageRecordTotalSchedule.java b/cnas-manage/src/main/java/com/ruoyi/manage/schedule/ManageRecordTotalSchedule.java
index 6cd870e..040406a 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/schedule/ManageRecordTotalSchedule.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/schedule/ManageRecordTotalSchedule.java
@@ -20,7 +20,7 @@
@Resource
private ManageRecordIntervalsTotalService manageRecordIntervalsTotalService;
- @Scheduled(cron = "0 0 2 1 1 ?") //姣忓勾1鏈�1鍙�2鐐�
+// @Scheduled(cron = "0 0 2 1 1 ?") //姣忓勾1鏈�1鍙�2鐐�
public void manageRecordTotal() {
ManageRecordTotal manageRecordTotal = new ManageRecordTotal();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ClientSatisfactionServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ClientSatisfactionServiceImpl.java
index a2269d3..a6b39e2 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ClientSatisfactionServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ClientSatisfactionServiceImpl.java
@@ -161,6 +161,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCheckServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCheckServiceImpl.java
index a076745..44726d6 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCheckServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCheckServiceImpl.java
@@ -221,6 +221,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectServiceImpl.java
index 79f778d..f9cc9c8 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectServiceImpl.java
@@ -310,6 +310,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalImplementServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalImplementServiceImpl.java
index 1aaab47..2aa7200 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalImplementServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalImplementServiceImpl.java
@@ -54,7 +54,7 @@
@Resource
private InternalImplementDetailService internalImplementDetailService;
-
+
@Resource
private UserMapper userMapper;
@Value("${file.path}")
@@ -228,6 +228,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingServiceImpl.java
index b153746..c26a0e1 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingServiceImpl.java
@@ -191,6 +191,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanServiceImpl.java
index 782d78c..ab95821 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanServiceImpl.java
@@ -248,6 +248,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalReportServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalReportServiceImpl.java
index 310858b..c41aa1d 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalReportServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalReportServiceImpl.java
@@ -155,6 +155,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageControlPlanListServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageControlPlanListServiceImpl.java
index 0b72764..5de6af3 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageControlPlanListServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageControlPlanListServiceImpl.java
@@ -120,6 +120,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingServiceImpl.java
index ee7d236..2e9402a 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingServiceImpl.java
@@ -38,7 +38,7 @@
* 鏈嶅姟瀹炵幇绫�
* </p>
*
- * @author
+ * @author
* @since 2024-11-11 09:33:47
*/
@Service
@@ -152,6 +152,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordAuditServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordAuditServiceImpl.java
index 96de123..f25de5a 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordAuditServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordAuditServiceImpl.java
@@ -43,7 +43,7 @@
* 鏂囦欢淇鐢宠瀹℃壒璁板綍 鏈嶅姟瀹炵幇绫�
* </p>
*
- * @author
+ * @author
* @since 2024-11-14 10:29:18
*/
@Service
@@ -155,6 +155,8 @@
OutputStream outputStream = new FileOutputStream(file);
IOUtils.copy(inputStream, outputStream);
url = file.getAbsolutePath();
+ inputStream.close();
+ outputStream.close();
} catch (FileNotFoundException e) {
throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
} catch (IOException e) {
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCancelServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCancelServiceImpl.java
index 8e275d8..0d1fa80 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCancelServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCancelServiceImpl.java
@@ -46,7 +46,7 @@
* 浣滃簾鏂囦欢閿�榄傝褰� 鏈嶅姟瀹炵幇绫�
* </p>
*
- * @author
+ * @author
* @since 2024-11-13 01:27:22
*/
@Service
@@ -90,6 +90,8 @@
OutputStream outputStream = new FileOutputStream(file);
IOUtils.copy(inputStream, outputStream);
url = file.getAbsolutePath();
+ inputStream.close();
+ outputStream.close();
} catch (FileNotFoundException e) {
throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
} catch (IOException e) {
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCheckServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCheckServiceImpl.java
index 6262781..3c1afed 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCheckServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCheckServiceImpl.java
@@ -48,7 +48,7 @@
* 鏂囦欢瀹℃壒璁板綍(鍚慨璁㈠悗鍐嶆瀹℃壒璁板綍) 鏈嶅姟瀹炵幇绫�
* </p>
*
- * @author
+ * @author
* @since 2024-11-12 02:31:36
*/
@Service
@@ -100,6 +100,8 @@
OutputStream outputStream = new FileOutputStream(file);
IOUtils.copy(inputStream, outputStream);
url = file.getAbsolutePath();
+ inputStream.close();
+ outputStream.close();
} catch (FileNotFoundException e) {
throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
} catch (IOException e) {
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsServiceImpl.java
index 1a4ccb0..2fc9087 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsServiceImpl.java
@@ -76,6 +76,8 @@
OutputStream outputStream = new FileOutputStream(file);
IOUtils.copy(inputStream, outputStream);
url = file.getAbsolutePath();
+ inputStream.close();
+ outputStream.close();
} catch (FileNotFoundException e) {
throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
} catch (IOException e) {
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsTotalServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsTotalServiceImpl.java
index 25d1c94..045c232 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsTotalServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsTotalServiceImpl.java
@@ -130,6 +130,8 @@
OutputStream outputStream = new FileOutputStream(file);
IOUtils.copy(inputStream, outputStream);
url = file.getAbsolutePath();
+ inputStream.close();
+ outputStream.close();
} catch (FileNotFoundException e) {
throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
} catch (IOException e) {
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIssueRecycleServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIssueRecycleServiceImpl.java
index c04acc4..ca78c93 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIssueRecycleServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIssueRecycleServiceImpl.java
@@ -78,6 +78,8 @@
OutputStream outputStream = new FileOutputStream(file);
IOUtils.copy(inputStream, outputStream);
url = file.getAbsolutePath();
+ inputStream.close();
+ outputStream.close();
} catch (FileNotFoundException e) {
throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
} catch (IOException e) {
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordTotalServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordTotalServiceImpl.java
index 53da1f2..0b54543 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordTotalServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordTotalServiceImpl.java
@@ -131,6 +131,8 @@
OutputStream outputStream = new FileOutputStream(file);
IOUtils.copy(inputStream, outputStream);
url = file.getAbsolutePath();
+ inputStream.close();
+ outputStream.close();
} catch (FileNotFoundException e) {
throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
} catch (IOException e) {
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramServiceImpl.java
index d033c97..261f878 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramServiceImpl.java
@@ -107,6 +107,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewReportServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewReportServiceImpl.java
index 887c79f..0302e6b 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewReportServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewReportServiceImpl.java
@@ -33,7 +33,7 @@
* 绠$悊璇勫鎶ュ憡 鏈嶅姟瀹炵幇绫�
* </p>
*
- * @author
+ * @author
* @since 2024-11-12 04:44:39
*/
@Service
@@ -128,6 +128,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java
index dd7a9cb..f351249 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java
@@ -115,6 +115,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java
index 33077b3..877bee4 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java
@@ -246,6 +246,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java
index 9a80942..c532a7d 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java
@@ -105,6 +105,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java
index 225f3cc..90202d7 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java
@@ -105,6 +105,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java
index 3e4f0b4..51a207f 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java
@@ -39,7 +39,7 @@
* 浜哄憳鑳藉姏 鏈嶅姟瀹炵幇绫�
* </p>
*
- * @author
+ * @author
* @since 2024-10-10 11:26:18
*/
@Service
@@ -103,6 +103,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java
index fee084e..756b68e 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java
@@ -31,7 +31,7 @@
* 浠昏亴鎺堟潈璁板綍 鏈嶅姟瀹炵幇绫�
* </p>
*
- * @author
+ * @author
* @since 2024-10-09 10:48:17
*/
@Service
@@ -123,6 +123,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
index 7dfe566..5c4887c 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
@@ -117,6 +117,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java
index a573627..481683b 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java
@@ -288,6 +288,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -364,6 +365,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java
index 4e87b34..9c770fa 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java
@@ -28,10 +28,10 @@
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
/**
- * 鎻愰啋濉啓璁惧浣跨敤璁板綍
+ * 鎻愰啋濉啓浜哄憳鍩硅璁板綍
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 9 1 * *") // 姣忔湀涓�鍙锋墽琛�
+// @Scheduled(cron = "0 0 9 1,15 * *") // 姣忔湀涓�鍙锋墽琛�
public void task1() {
// 鏌ヨ褰撴湀鍩硅璁″垝
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M");
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java
index 76a2db2..1c683bf 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java
@@ -34,7 +34,7 @@
@ApiOperation(value = "鏌ヨ妫�楠屾姤鍛婂彂鏀剧櫥璁板垪琛�")
@GetMapping("/pageProcessReport")
- public Result pageProcessReport(ProcessReport processReport , Page page) {
+ public Result pageProcessReport(ProcessReportDto processReport , Page page) {
return Result.success(processReportService.pageProcessReport(page, processReport));
}
@@ -64,11 +64,8 @@
@ApiOperation(value = "瀵煎嚭妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃")
@GetMapping("/exportProcessReport")
- public void exportProcessReport(String ids, HttpServletResponse response) {
- List<Integer> list = Arrays.stream(ids.split(","))
- .map(Integer::parseInt)
- .collect(Collectors.toList());
- processReportService.exportProcessReport(list, response);
+ public void exportProcessReport(ProcessReportDto dto, HttpServletResponse response) {
+ processReportService.exportProcessReport(dto, response);
}
}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseManagementReviewController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseManagementReviewController.java
new file mode 100644
index 0000000..5595608
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseManagementReviewController.java
@@ -0,0 +1,71 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.process.pojo.QualitySupervise;
+import com.ruoyi.process.pojo.QualitySuperviseManagementReview;
+import com.ruoyi.process.service.QualitySuperviseManagementReviewService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * 璐ㄩ噺鐩戠潱绠$悊璇勫杈撳叆鏉愭枡 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author
+ * @since 2025-05-07 10:46:11
+ */
+@RestController
+@RequestMapping("/managementReview")
+@Api(tags = "璐ㄩ噺鐩戠潱绠$悊璇勫杈撳叆鏉愭枡")
+@AllArgsConstructor
+public class QualitySuperviseManagementReviewController {
+
+ private QualitySuperviseManagementReviewService qualitySuperviseManagementReviewService;
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @return
+ */
+ @ApiOperation(value = "鍒嗛〉鏌ヨ")
+ @GetMapping("/pageManagementReview")
+ public Result<IPage<QualitySuperviseManagementReview>> pageManagementReview(QualitySuperviseManagementReview managementReview, Page page) {
+ return Result.success(qualitySuperviseManagementReviewService.pageManagementReview(page, managementReview));
+ }
+
+ /**
+ * 鏂板鎴栦慨鏀�
+ * @return
+ */
+ @ApiOperation(value = "鏂板鎴栦慨鏀�")
+ @PostMapping("/saveOrUpdateManagementReview")
+ public Result saveOrUpdateManagementReview(@RequestBody QualitySuperviseManagementReview managementReview) {
+ return Result.success(qualitySuperviseManagementReviewService.saveOrUpdate(managementReview));
+ }
+
+ /**
+ * 鍒犻櫎
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎")
+ @DeleteMapping("/deleteManagementReview")
+ public Result deleteManagementReview(Integer managementReviewId) {
+ return Result.success(qualitySuperviseManagementReviewService.removeById(managementReviewId));
+ }
+
+ /**
+ * 瀵煎嚭
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭")
+ @GetMapping("/exportManagementReview")
+ public void exportManagementReview(Integer managementReviewId,HttpServletResponse response) {
+ qualitySuperviseManagementReviewService.exportManagementReview(managementReviewId, response);
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessDealDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessDealDto.java
new file mode 100644
index 0000000..b3c0a0c
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessDealDto.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.process.pojo.ProcessDeal;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2025/4/23
+ */
+@Data
+public class ProcessDealDto extends ProcessDeal {
+ @ApiModelProperty("搴忓彿")
+ private String indexs;
+
+ @ApiModelProperty("鏃堕棿")
+ private String dealTimeStr;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java
index d54e1fd..d33d255 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java
@@ -1,12 +1,30 @@
package com.ruoyi.process.dto;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.deepoove.poi.data.PictureRenderData;
+import com.ruoyi.process.pojo.ProcessReport;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
//瀵煎嚭
-public class ProcessReportDto {
+public class ProcessReportDto extends ProcessReport {
private List<Integer> ids;
+
+ @ApiModelProperty("鍙戦�佷汉濮撳悕")
+ private String sendUserName;
+
+ @ApiModelProperty("鍙戦�佷汉鍦板潃")
+ private String sendUserUrl;
+
+ @ApiModelProperty("鍙戦�佷汉绛惧悕")
+ private PictureRenderData sendUserRender;
+
+ @ApiModelProperty("绛炬敹绛惧悕")
+ private PictureRenderData signatoryRender;
+
+
}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java
index 9af6989..82913de 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.ProcessDealDto;
import com.ruoyi.process.pojo.ProcessDeal;
import org.apache.ibatis.annotations.Param;
@@ -21,6 +22,6 @@
IPage<ProcessDeal> pageProcessDeal(Page page, @Param("ew") QueryWrapper<ProcessDeal> queryWrappers);
- List<ProcessDeal> selectDeal(@Param("id") Integer id);
+ List<ProcessDealDto> selectDeal(@Param("id") Integer id);
}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderDeviceMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderDeviceMapper.java
index 80e4b76..03a5302 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderDeviceMapper.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderDeviceMapper.java
@@ -21,7 +21,7 @@
Set<String> selectDeviceNumber(@Param("inspectionOrderId") Integer inspectionOrderId);
- List<Integer> selectDeviceIdsByNumbers(@Param("orderDeviceNumbers") Set<String> orderDeviceNumbers);
+ List<Integer> selectDeviceIdsByNumbers(@Param("deviceNumbers") Set<String> deviceNumbers);
IPage<ProcessOrderDevice> deviceRecordPage(@Param("deviceId") Integer deviceId, @Param("page") Page page, @Param("sampleCode") String sampleCode, @Param("managementNumber") String managementNumber);
}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java
index 56d946b..75bd9ac 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.ProcessReportDto;
import com.ruoyi.process.pojo.ProcessReport;
import org.apache.ibatis.annotations.Param;
@@ -19,7 +20,7 @@
*/
public interface ProcessReportMapper extends BaseMapper<ProcessReport> {
- IPage<ProcessReport> pageProcessReport(Page page, @Param("ew") QueryWrapper<ProcessReport> queryWrappers);
+ IPage<ProcessReportDto> pageProcessReport(Page page, @Param("ew") QueryWrapper<ProcessReportDto> queryWrappers);
- List<ProcessReport> getIds(@Param("ids") List<Integer> ids);
+ List<ProcessReportDto> exportProcessReport();
}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseManagementReviewMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseManagementReviewMapper.java
new file mode 100644
index 0000000..7a0ae0c
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseManagementReviewMapper.java
@@ -0,0 +1,26 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.QualitySuperviseManagementReview;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 璐ㄩ噺鐩戠潱绠$悊璇勫杈撳叆鏉愭枡 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author
+ * @since 2025-05-07 10:46:11
+ */
+public interface QualitySuperviseManagementReviewMapper extends BaseMapper<QualitySuperviseManagementReview> {
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param page
+ * @return
+ */
+ IPage<QualitySuperviseManagementReview> pageManagementReview(@Param("page") Page page, @Param("ew") QueryWrapper<QualitySuperviseManagementReview> ew);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java
index 078e04e..721c609 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java
@@ -65,8 +65,4 @@
@ApiModelProperty("鍏宠仈鐨勬牱鍝佹帴鏀秈d")
private Integer processSampleId;
-
- @ApiModelProperty("搴忓彿")
- @TableField(select = false,exist = false)
- private String indexs;
}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java
index 4be9719..478721d 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java
@@ -54,19 +54,8 @@
@ApiModelProperty("鍙戦�佷汉")
private Integer sendUser;
-
- @TableField(select = false,exist = false)
- private String sendUserName;
-
@ApiModelProperty("绛炬敹浜�")
private String signatory;
-
-
- @TableField(select = false,exist = false)
- private String signatoryUrl;
-
- @TableField(select = false,exist = false)
- private String signatoryName;
@ApiModelProperty("澶囨敞")
private String remark;
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseManagementReview.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseManagementReview.java
new file mode 100644
index 0000000..50b45a4
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseManagementReview.java
@@ -0,0 +1,63 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+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 java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 璐ㄩ噺鐩戠潱绠$悊璇勫杈撳叆鏉愭枡
+ * </p>
+ *
+ * @author
+ * @since 2025-05-07 10:46:11
+ */
+@Getter
+@Setter
+@TableName("cnas_quality_supervise_management_review")
+@ApiModel(value = "QualitySuperviseManagementReview瀵硅薄", description = "璐ㄩ噺鐩戠潱绠$悊璇勫杈撳叆鏉愭枡")
+public class QualitySuperviseManagementReview implements Serializable {
+
+ @TableId(value = "management_review_id", type = IdType.AUTO)
+ private Integer managementReviewId;
+
+ @ApiModelProperty("鏂囦欢鍚嶇О")
+ private String fileName;
+
+ @ApiModelProperty("璁″垝鍐呭")
+ private String implementationContent;
+
+ @ApiModelProperty("鍔ㄦ�佸唴瀹�")
+ private String dynamicContent;
+
+ @ApiModelProperty("鐩戠潱浜�")
+ private String supervisor;
+
+ @ApiModelProperty("璐ㄩ噺璇勫鏃ユ湡")
+ private LocalDate superviseDate;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java
index 5ae2987..faf5c48 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.dto.ProcessReportDto;
import com.ruoyi.process.pojo.ProcessReport;
import javax.servlet.http.HttpServletResponse;
@@ -19,7 +20,7 @@
*/
public interface ProcessReportService extends IService<ProcessReport> {
- IPage<ProcessReport> pageProcessReport(Page page, ProcessReport processReport);
+ IPage<ProcessReportDto> pageProcessReport(Page page, ProcessReportDto processReport);
- void exportProcessReport(List<Integer> ids, HttpServletResponse response);
+ void exportProcessReport(ProcessReportDto dto, HttpServletResponse response);
}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseManagementReviewService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseManagementReviewService.java
new file mode 100644
index 0000000..92ad08f
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseManagementReviewService.java
@@ -0,0 +1,34 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.QualitySuperviseManagementReview;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * 璐ㄩ噺鐩戠潱绠$悊璇勫杈撳叆鏉愭枡 鏈嶅姟绫�
+ * </p>
+ *
+ * @author
+ * @since 2025-05-07 10:46:11
+ */
+public interface QualitySuperviseManagementReviewService extends IService<QualitySuperviseManagementReview> {
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param page
+ * @param managementReview
+ * @return
+ */
+ IPage<QualitySuperviseManagementReview> pageManagementReview(Page page, QualitySuperviseManagementReview managementReview);
+
+ /**
+ * 瀵煎嚭
+ * @param managementReviewId
+ * @param response
+ */
+ void exportManagementReview(Integer managementReviewId, HttpServletResponse response);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java
index b4cbbed..c6dba83 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java
@@ -221,6 +221,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java
index ae6b0b4..9b18aec 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java
@@ -401,6 +401,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java
index ada2339..0e8426d 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java
@@ -345,6 +345,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
index a92b478..5bca8b2 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
@@ -13,14 +14,15 @@
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.SignatureImageUtil;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.process.dto.ProcessReportDto;
import com.ruoyi.process.mapper.ProcessReportMapper;
import com.ruoyi.process.pojo.ProcessReport;
import com.ruoyi.process.service.ProcessReportService;
import com.ruoyi.system.mapper.UserMapper;
import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xwpf.usermodel.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -52,45 +54,32 @@
@Resource
private ProcessReportMapper processReportMapper;
-
-
- @Value("${wordUrl}")
- private String wordUrl;
+ @Value("${file.path}")
+ private String imgUrl;
@Resource
private UserMapper userMapper;
@Override
- public IPage<ProcessReport> pageProcessReport(Page page, ProcessReport processReport) {
- //todo 浠呯湅鎴�
- IPage<ProcessReport> processReportIPage = processReportMapper.pageProcessReport(page, QueryWrappers.queryWrappers(processReport));
-// for (ProcessReport record : processReportIPage.getRecords()) {
-// List<String> name = new ArrayList<>();
-// for (String s : record.getSignatory().split(",")) {
-// User user = userMapper.selectById(Integer.parseInt(s));
-// name.add(user.getName());
-// }
-// String signatoryName = name.stream().collect(Collectors.joining(","));
-// record.setSignatoryName(signatoryName);
-// }
+ public IPage<ProcessReportDto> pageProcessReport(Page page, ProcessReportDto processReport) {
+ IPage<ProcessReportDto> processReportIPage = processReportMapper.pageProcessReport(page, QueryWrappers.queryWrappers(processReport));
return processReportIPage;
}
@Override
- public void exportProcessReport(List<Integer> ids, HttpServletResponse response) {
- List<ProcessReport> processReports = processReportMapper.getIds(ids);
-// for (ProcessReport record : processReports) {
-// List<String> name = new ArrayList<>();
-// if(StringUtils.isNotBlank(record.getSignatory())){
-// for (String s : record.getSignatory().split(",")) {
-// User user = userMapper.selectById(Integer.parseInt(s));
-// name.add(user.getName());
-// }
-// String signatoryName = name.stream().collect(Collectors.joining(","));
-// record.setSignatoryName(signatoryName);
-// }
-// }
+ public void exportProcessReport(ProcessReportDto dto, HttpServletResponse response) {
+ List<ProcessReportDto> processReports = processReportMapper.exportProcessReport();
+ for (ProcessReportDto processReport : processReports) {
+ // 鍙戦�佷汉鐢熸垚绛惧悕鍥剧墖
+ processReport.setSendUserRender(StringUtils.isNotBlank(processReport.getSendUserUrl())
+ ? Pictures.ofLocal(imgUrl + "/" + processReport.getSendUserUrl()).create() : null);
+
+ // 绛炬敹浜虹敓鎴愬浘鐗�
+ processReport.setSignatoryRender(StringUtils.isNotBlank(processReport.getSignatory())
+ ? Pictures.ofStream(SignatureImageUtil.saveImageToFile(processReport.getSignatory())).create() : null);
+ }
+
// 鑾峰彇璺緞
InputStream inputStream = this.getClass().getResourceAsStream("/static/report-deal.docx");
Configure configure = Configure.builder()
@@ -110,6 +99,8 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java
index f4dd8a7..0d7eebe 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java
@@ -61,6 +61,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java
index 7e7bad5..ee516b8 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java
@@ -17,6 +17,7 @@
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.inspect.util.UserUtils;
+import com.ruoyi.process.dto.ProcessDealDto;
import com.ruoyi.process.mapper.InspectionOrderMapper;
import com.ruoyi.process.mapper.ProcessDealMapper;
import com.ruoyi.process.mapper.ProcessSampleMapper;
@@ -185,7 +186,7 @@
@Override
public void exportProcessTotaldeal(Integer id, HttpServletResponse response) {
- List<ProcessDeal> sampleDealDtos = processDealMapper.selectDeal(id);
+ List<ProcessDealDto> sampleDealDtos = processDealMapper.selectDeal(id);
ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
// 鑾峰彇璺緞
@@ -210,6 +211,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
index b8f2d71..e8da9e5 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
@@ -373,6 +373,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -519,6 +520,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -732,6 +734,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -751,11 +754,9 @@
if (qualityMonitorDetailsId == null) {
throw new ErrorException("缂哄皯鐩戞帶璇︽儏id");
}
- QualityMonitorDetails qualityMonitorDetails = qualityMonitorDetailsService.getOne(Wrappers.<QualityMonitorDetails>lambdaUpdate()
- .eq(QualityMonitorDetails::getQualityMonitorDetailsId, qualityMonitorDetailsId));
LocalDateTime now = LocalDateTime.now();
Integer userId =SecurityUtils.getUserId().intValue();
-
+ String contentType = file.getContentType();
String urlString;
String pathName;
try {
@@ -768,10 +769,13 @@
urlString = realpath + "/" + pathName;
file.transferTo(new File(urlString));
- wordInsertUrl(new HashMap<String, Object>() {{
- put("writeUrl", UserUtils.getFinalUserSignatureUrl(userId));
- put("writeDateUrl", Pictures.ofStream(DateImageUtil.createDateImage(now)).create());
- }}, wordUrl + "/" + pathName.replace("/word", wordUrl));
+ // 鍒ゆ柇鏄惁鏄痯df
+ if (!contentType.contains("pdf")) {
+ wordInsertUrl(new HashMap<String, Object>() {{
+ put("writeUrl", UserUtils.getFinalUserSignatureUrl(userId));
+ put("writeDateUrl", Pictures.ofStream(DateImageUtil.createDateImage(now)).create());
+ }}, wordUrl + "/" + pathName.replace("/word", wordUrl));
+ }
qualityMonitorDetailsService.update(Wrappers.<QualityMonitorDetails>lambdaUpdate()
.eq(QualityMonitorDetails::getQualityMonitorDetailsId, qualityMonitorDetailsId)
@@ -807,7 +811,7 @@
// 娣诲姞鎵瑰噯浜�
QualityMonitorDetails details = qualityMonitorDetailsMapper.selectById(qualityMonitorDetails.getQualityMonitorDetailsId());
- if (StringUtils.isNotBlank(details.getFinishReportUrl())) {
+ if (StringUtils.isNotBlank(details.getFinishReportUrl()) && !details.getFinishReportUrl().contains(".pdf")) {
wordInsertUrl(new HashMap<String, Object>() {{
put("ratifyUrl", UserUtils.getFinalUserSignatureUrl(userId));
put("ratifyDateUrl", Pictures.ofStream(DateImageUtil.createDateImage(now)).create());
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseManagementReviewServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseManagementReviewServiceImpl.java
new file mode 100644
index 0000000..69d3a2c
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseManagementReviewServiceImpl.java
@@ -0,0 +1,86 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
+import com.deepoove.poi.data.Pictures;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.process.dto.QualitySuperviseDetailsCorrectDto;
+import com.ruoyi.process.pojo.QualitySuperviseDetailsCorrect;
+import com.ruoyi.process.pojo.QualitySuperviseManagementReview;
+import com.ruoyi.process.mapper.QualitySuperviseManagementReviewMapper;
+import com.ruoyi.process.service.QualitySuperviseManagementReviewService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+
+/**
+ * <p>
+ * 璐ㄩ噺鐩戠潱绠$悊璇勫杈撳叆鏉愭枡 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author
+ * @since 2025-05-07 10:46:11
+ */
+@Service
+public class QualitySuperviseManagementReviewServiceImpl extends ServiceImpl<QualitySuperviseManagementReviewMapper, QualitySuperviseManagementReview> implements QualitySuperviseManagementReviewService {
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param page
+ * @param managementReview
+ * @return
+ */
+ @Override
+ public IPage<QualitySuperviseManagementReview> pageManagementReview(Page page, QualitySuperviseManagementReview managementReview) {
+ return baseMapper.pageManagementReview(page, QueryWrappers.queryWrappers(managementReview));
+ }
+
+ /**
+ * 瀵煎嚭
+ * @param managementReviewId
+ * @param response
+ */
+ @Override
+ public void exportManagementReview(Integer managementReviewId, HttpServletResponse response) {
+ QualitySuperviseManagementReview managementReview = baseMapper.selectById(managementReviewId);
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�");
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/supervise-management-eview.docx");
+ ConfigureBuilder builder = Configure.builder();
+ builder.useSpringEL(true);
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("managementReview", managementReview);
+ put("superviseDateStr", managementReview.getSuperviseDate() == null ? null : managementReview.getSuperviseDate().format(formatter));
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ managementReview.getFileName(), "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ inputStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+}
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 df1d601..e8c52f0 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
@@ -335,6 +335,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -524,25 +525,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);
}});
@@ -557,6 +558,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -875,6 +877,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -1253,6 +1256,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java b/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java
index 0c35317..82e0d83 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java
@@ -1,23 +1,33 @@
package com.ruoyi.process.task;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.WxCpUtils;
import com.ruoyi.process.mapper.QualitySuperviseDetailsMapper;
+import com.ruoyi.process.mapper.QualitySuperviseDetailsRecordMapper;
+import com.ruoyi.process.mapper.QualitySuperviseManagementReviewMapper;
import com.ruoyi.process.pojo.QualitySuperviseDetails;
+import com.ruoyi.process.pojo.QualitySuperviseDetailsRecord;
+import com.ruoyi.process.pojo.QualitySuperviseManagementReview;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
- * 鍩硅璁″垝浣跨敤鎻愰啋璁板綍鎻愰啋
+ * 璐ㄩ噺鐩戠潱濉啓鎻愰啋
*/
@Component
public class QualitySuperviseSchedule {
@@ -27,12 +37,16 @@
private UserMapper userMapper;
@Resource
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+ @Resource
+ private QualitySuperviseManagementReviewMapper qualitySuperviseManagementReviewMapper;
+ @Resource
+ private QualitySuperviseDetailsRecordMapper qualitySuperviseDetailsRecordMapper;
/**
- * 鎻愰啋濉啓璁惧浣跨敤璁板綍
+ * 璐ㄩ噺鐩戠潱濉啓鎻愰啋
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 9 1 * *") // 姣忔湀1鍙锋墽琛�
+// @Scheduled(cron = "0 0 9 1 * *") // 姣忔湀1鍙锋墽琛�
public void task1() {
// 鏌ヨ褰撴湀鐩戠潱璁″垝
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M");
@@ -63,4 +77,66 @@
}
}
+
+ /**
+ * 姣忔湀28鍙疯嚜鍔ㄧ敓鎴愯川閲忕洃鐫f�荤粨
+ */
+// @Scheduled(cron = "0/5 * * * * *")
+// @Scheduled(cron = "0 0 9 28 * *") // 姣忔湀28鍙锋墽琛�
+ public void task2() {
+ LocalDateTime now = LocalDateTime.now();
+ // 鏌ヨ褰撴湀鐩戠潱璁″垝
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M");
+ String format = now.format(formatter);
+ List<QualitySuperviseDetails> qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectList(Wrappers.<QualitySuperviseDetails>lambdaQuery()
+ .eq(QualitySuperviseDetails::getSuperviseTime, format));
+
+ // 鏍规嵁瀹氭湡鐩戠潱鍜屽姩鎬佺洃鐫e尯鍒�
+ Map<String, List<QualitySuperviseDetails>> superviseReasonMap = qualitySuperviseDetails.stream().collect(Collectors.groupingBy(QualitySuperviseDetails::getSuperviseReason));
+
+ // 鑾峰彇褰撴湀鏃ユ湡
+ DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy骞碝M鏈�");
+ String format2 = now.format(formatter2);
+
+ // 鑾峰彇璁″垝鍐呭
+ String implementationSupervisee = "";
+ List<QualitySuperviseDetails> implementationList = superviseReasonMap.get("瀹氭湡鐩戠潱");
+ if (CollectionUtils.isNotEmpty(implementationList)) {
+ // 鑾峰彇瀹氭湡鐩戠潱浜哄憳淇℃伅
+ List<String> collect = implementationList.stream().map(QualitySuperviseDetails::getSupervisee).collect(Collectors.toList());
+ implementationSupervisee = CollUtil.join(collect, ",");
+ }
+ String implementationContent = "宸ヤ綔涓弗鏍兼寜鐓у勾搴﹁川閲忕洃鐫e伐浣滆鍒掕繘琛屾墽琛屻�倇}瀵箋}杩涜涓�娆″畾鏈熺洃鐫c�傚湪鐩戠潱杩囩▼涓紝娌℃湁鍙戠幇涓嶇鍚堢殑鐜拌薄銆傛楠屽憳鑳界啛缁冪殑鎸夌収瑙勫畾鐨勮姹傝繘琛岃澶囩殑鎿嶄綔锛屽浜庢爣鍑嗚兘鐔熻锛屾墍浣跨敤鐨勮澶囧潎鍦ㄦ牎鍑嗗懆鏈熷唴锛岃兘娓呮瀹屾暣鐨勭殑璁板綍鍘熷鏁版嵁骞跺嚭鍏锋姤鍛婏紱鍦ㄨ瘯楠岀幆澧冩柟闈紝鑳藉涓ユ牸鐨勬寜鐓ф爣鍑嗘墽琛屻��";
+ String formatImplementationContent = StrUtil.format(implementationContent, format2, implementationSupervisee);
+
+ //鑾峰彇鍔ㄦ�佸唴瀹�
+ String dynamicSupervisee = "";
+ List<QualitySuperviseDetails> dynamicList = superviseReasonMap.get("鍔ㄦ�佺洃鐫�");
+ if (CollectionUtils.isNotEmpty(dynamicList)) {
+ List<String> collect = dynamicList.stream()
+ .map(details -> StrUtil.format("瀵箋}鍔ㄦ�佺洃鐫�1娆″湪鐩戠潱杩囩▼涓�", details.getSupervisee())).collect(Collectors.toList());
+ dynamicSupervisee = CollUtil.join(collect, "锛�");
+ }
+ String dynamicContent = "鍦ㄤ繚璇佽川閲忕洃鐫h鍒掔殑鍚屾椂锛屼篃鍧氭寔鎸夌収棰嗗瑕佹眰鍔犲己涓嶅畾鏈熺洃鐫e姩浣溿�倇}浠絳}锛屾病鏈夊彂鐜颁笉绗﹀悎鐨勭幇璞°�傛楠屽憳鑳界啛缁冪殑鎸夌収瑙勫畾鐨勮姹傝繘琛岃澶囩殑鎿嶄綔锛屽浜庢爣鍑嗚兘鐔熻锛屾墍浣跨敤鐨勮澶囧潎鍦ㄦ牎鍑嗗懆鏈熷唴锛岃兘娓呮瀹屾暣鐨勭殑璁板綍鍘熷鏁版嵁骞跺嚭鍏锋姤鍛婏紱鍦ㄨ瘯楠岀幆澧冩柟闈紝鑳藉涓ユ牸鐨勬寜鐓ф爣鍑嗘墽琛屻��";
+ String formatdynamicContent = StrUtil.format(dynamicContent, format2, dynamicSupervisee);
+
+ // 鑾峰彇鐩戠潱鍛樹俊鎭�
+ QualitySuperviseDetails superviseDetails = qualitySuperviseDetails.get(0);
+ QualitySuperviseDetailsRecord detailsRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery()
+ .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, superviseDetails.getSuperviseDetailsId())
+ .last("limit 1"));
+ String supervisor = detailsRecord.getSupervisor();
+
+ // 鍒涘缓璇勫瀵硅薄
+ QualitySuperviseManagementReview managementReview = new QualitySuperviseManagementReview();
+ String yearDate = now.format(DateTimeFormatter.ofPattern("yyyy骞�"));
+ String monthDate = now.format(DateTimeFormatter.ofPattern("MM鏈�"));
+ managementReview.setFileName(StrUtil.format("{}绠$悊璇勫杈撳叆鏉愭枡锛坽}锛塤{}", yearDate, supervisor, monthDate));
+ managementReview.setImplementationContent(formatImplementationContent);
+ managementReview.setDynamicContent(formatdynamicContent);
+ managementReview.setSupervisor(supervisor);
+ managementReview.setSuperviseDate(LocalDate.now());
+ qualitySuperviseManagementReviewMapper.insert(managementReview);
+ }
+
}
diff --git a/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml b/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml
index 282eaa7..037afa8 100644
--- a/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml
+++ b/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml
@@ -24,7 +24,7 @@
</if>
</select>
- <select id="selectDeal" resultType="com.ruoyi.process.pojo.ProcessDeal">
+ <select id="selectDeal" resultType="com.ruoyi.process.dto.ProcessDealDto">
select ROW_NUMBER() OVER (ORDER BY id) AS indexs,
id,
sample_name,
@@ -32,7 +32,7 @@
sample_supplier,
num,
deal_method,
- deal_time
+ DATE_FORMAT(deal_time, '%Y-%m-%d') dealTimeStr
from cnas_process_deal
where totaldeal_id = #{id}
</select>
diff --git a/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml b/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml
index 8770f50..62e82d0 100644
--- a/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml
+++ b/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml
@@ -18,7 +18,7 @@
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
</resultMap>
- <select id="pageProcessReport" resultType="com.ruoyi.process.pojo.ProcessReport">
+ <select id="pageProcessReport" resultType="com.ruoyi.process.dto.ProcessReportDto">
select * from (select cpr.* ,
u1.name sendUserName
from cnas_process_report cpr
@@ -27,16 +27,11 @@
${ew.customSqlSegment}
</if>
</select>
- <select id="getIds" resultType="com.ruoyi.process.pojo.ProcessReport">
+ <select id="exportProcessReport" resultType="com.ruoyi.process.dto.ProcessReportDto">
select ROW_NUMBER() OVER (ORDER BY cpr.id) AS indexs,
cpr.* ,
- u1.name sendUserName
+ u1.signature_url sendUserUrl
from cnas_process_report cpr
left join user u1 on send_user=u1.id
- where 1=1
- and cpr.id in
- <foreach collection="ids" separator="," item="id" open="(" close=")">
- #{id}
- </foreach>
</select>
</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseManagementReviewMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseManagementReviewMapper.xml
new file mode 100644
index 0000000..ff901d2
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualitySuperviseManagementReviewMapper.xml
@@ -0,0 +1,14 @@
+<?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.process.mapper.QualitySuperviseManagementReviewMapper">
+
+
+ <select id="pageManagementReview" resultType="com.ruoyi.process.pojo.QualitySuperviseManagementReview">
+ select *
+ from cnas_quality_supervise_management_review
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+</mapper>
diff --git a/cnas-process/src/main/resources/static/report-deal.docx b/cnas-process/src/main/resources/static/report-deal.docx
index b3c8eb7..7f515a5 100644
--- a/cnas-process/src/main/resources/static/report-deal.docx
+++ b/cnas-process/src/main/resources/static/report-deal.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/sample-deal.docx b/cnas-process/src/main/resources/static/sample-deal.docx
index 9401b21..7cc0d8b 100644
--- a/cnas-process/src/main/resources/static/sample-deal.docx
+++ b/cnas-process/src/main/resources/static/sample-deal.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/supervise-management-eview.docx b/cnas-process/src/main/resources/static/supervise-management-eview.docx
new file mode 100644
index 0000000..7dcdc48
--- /dev/null
+++ b/cnas-process/src/main/resources/static/supervise-management-eview.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/supervision-detail-record.docx b/cnas-process/src/main/resources/static/supervision-detail-record.docx
index f31bced..24cab26 100644
--- a/cnas-process/src/main/resources/static/supervision-detail-record.docx
+++ b/cnas-process/src/main/resources/static/supervision-detail-record.docx
Binary files differ
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java
index 4153bc4..afd4e2b 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java
@@ -50,7 +50,6 @@
Configure configure = Configure.builder()
.bind("feCalibrationSchedule", new HackLoopTableRenderPolicy())
.build();
- FeCalibrationSchedule feCalibrationSchedule = size > 0 ? feCalibrationSchedules.get(0) : null;
XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
new HashMap<String, Object>() {{
put("feCalibrationSchedule", feCalibrationSchedules);
@@ -67,6 +66,8 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationServiceImpl.java
index 956656b..2c0621d 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationServiceImpl.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationServiceImpl.java
@@ -36,7 +36,7 @@
* 璁炬柦鍜岀幆澧冩潯浠�-璁炬柦鍜岀幆澧冩潯浠惰姹�-鐓у害璁板綍琛� 鏈嶅姟瀹炵幇绫�
* </p>
*
- * @author
+ * @author
* @since 2024-11-07 04:15:57
*/
@Service
@@ -115,6 +115,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FePowerStableServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FePowerStableServiceImpl.java
index e0d6456..07ba8f3 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FePowerStableServiceImpl.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FePowerStableServiceImpl.java
@@ -115,6 +115,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java
index be94840..87597fd 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java
@@ -121,6 +121,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/ForeignRegisterServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ForeignRegisterServiceImpl.java
index 3a7afa6..c8f4f0e 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/ForeignRegisterServiceImpl.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ForeignRegisterServiceImpl.java
@@ -93,6 +93,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java
index e760974..cbe5f27 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java
@@ -159,6 +159,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
diff --git a/cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java b/cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
index b721c1d..abead17 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
@@ -86,7 +86,7 @@
* 鑾峰彇娓╁害婀垮害
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 9 * * 1-6") // 姣忓ぉ9鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
+// @Scheduled(cron = "0 0 9 * * 1-6") // 姣忓ぉ9鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
public void task1() {
checkLaboratoriesSchedule();
// 鏍规嵁鏃堕棿闄嶅簭锛岃幏鍙栧埌鏈�鏂扮殑涓�鏉℃暟鎹�
@@ -183,7 +183,7 @@
* 鑾峰彇娓╁害婀垮害
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 14 * * 1-5") // 姣忓ぉ14鐐规墽琛屼竴娆� 闄や簡鏄熸湡鍏拰鏄熸湡澶�
+// @Scheduled(cron = "0 0 14 * * 1-5") // 姣忓ぉ14鐐规墽琛屼竴娆� 闄や簡鏄熸湡鍏拰鏄熸湡澶�
public void task2() {
// 妫�鏌ュ疄楠屽鏄惁鏈変换鍔� 濡傛灉娌℃湁鏂板浠诲姟
@@ -295,7 +295,7 @@
* 鑾峰彇娓╁害婀垮害
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 9 * * 7") //
+// @Scheduled(cron = "0 0 9 * * 7") //
public void task3() {
checkLaboratoriesSchedule();
@@ -338,7 +338,7 @@
*
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 16 * * 1-6") // 姣忓ぉ15鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
+// @Scheduled(cron = "0 0 16 * * 1-6") // 姣忓ぉ15鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
public void affirmTempHum() {
// 鏌ヨ鏈夋棩鏈熶絾鏄湭濉啓鍚嶅瓧鐨�
List<FeTempHumRecordDto> feTempHumRecordList = feTempHumRecordMapper.selectNoaffirm(LocalDate.now());
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SignatureImageUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SignatureImageUtil.java
new file mode 100644
index 0000000..15365c4
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SignatureImageUtil.java
@@ -0,0 +1,66 @@
+package com.ruoyi.common.utils;
+
+import org.springframework.core.io.ClassPathResource;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.font.FontRenderContext;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.io.*;
+
+/**
+ * @Author zhuo
+ * @Date 2025/5/7
+ */
+public class SignatureImageUtil {
+
+ /**
+ * 鏍规嵁涓枃瀵煎嚭绛惧悕鍥剧墖
+ * @param text
+ * @return
+ * @throws IOException
+ * @throws FontFormatException
+ */
+ public static InputStream saveImageToFile(String text){
+ // 鑾峰彇瀛椾綋搴�
+ Font font = null;
+ try (InputStream is = new ClassPathResource("/ttf/signature.ttf").getInputStream()) {
+ font = Font.createFont(Font.TRUETYPE_FONT, is).deriveFont(50f);
+ } catch (FontFormatException | IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ int width = 100; // 鍥剧墖鐨勫搴�
+ int height = 50; // 鍥剧墖鐨勯珮搴�
+
+ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
+ Graphics2D g2d = image.createGraphics();
+
+ g2d.setFont(font);
+
+ // 璁剧疆鏂囧瓧棰滆壊涓洪粦鑹�
+ g2d.setColor(Color.black);
+
+ // 璁剧疆鏂囧瓧鍦ㄥ浘鐗囦腑鐨勪綅缃�
+ FontRenderContext context = g2d.getFontRenderContext();
+ Rectangle2D bounds = font.getStringBounds(text, context);
+ double x = (width - bounds.getWidth()) / 2;
+ double y = (height - bounds.getHeight()) / 2;
+ double ascent = -bounds.getY();
+ double baseY = y + ascent;
+ g2d.drawString(text, (int) x, (int) baseY);
+ g2d.dispose();
+
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+
+ try {
+ ImageIO.write(image, "png", os);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ return new ByteArrayInputStream(os.toByteArray());
+ }
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
index 3a49995..32266bf 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
@@ -93,7 +93,7 @@
}
/**
- * todo:鎺ㄩ�佺兢娑堟伅
+ * 鎺ㄩ�佺兢娑堟伅
*
* @param webHook 浼佷笟寰俊鏈哄櫒浜哄湴鍧�
* @param content 鏁版嵁
diff --git a/ruoyi-common/src/main/resources/ttf/signature.ttf b/ruoyi-common/src/main/resources/ttf/signature.ttf
new file mode 100644
index 0000000..dd7cd59
--- /dev/null
+++ b/ruoyi-common/src/main/resources/ttf/signature.ttf
Binary files differ
--
Gitblit v1.9.3