From 1b0b86833609f1d0a25b0bc84d21796581629f4e Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期四, 10 四月 2025 13:07:21 +0800 Subject: [PATCH] 温湿度报检功能调整 --- cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumRecordDto.java | 37 ++++++ cnas-require/src/main/java/com/ruoyi/require/controller/FeTempHumDateController.java | 17 ++ cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java | 9 + cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java | 23 +-- cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml | 19 +-- cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumDateDto.java | 9 + cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumRecordServiceImpl.java | 50 ++++++++ cnas-require/src/main/resources/mapper/FeTempHumRecordMapper.xml | 25 ++++ basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java | 18 ++ cnas-require/src/main/resources/static/temp_hum_date.docx | 0 cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumDate.java | 4 cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java | 119 +++++++++++++++++++ 12 files changed, 295 insertions(+), 35 deletions(-) diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java index f6661dc..51bd971 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java @@ -156,10 +156,18 @@ // 淇敼鍚嶇О鍖归厤鐨勬爣鍑嗘爲涓嬬殑妫�楠岄」鐩� // 鏌ヨ鎵�鏈夊璞�+鍚嶇О鐨勬爲 - List<StandardProductList> standardProductLists = standardProductListService.list(Wrappers.<StandardProductList>lambdaUpdate() - .eq(StandardProductList::getSample, standardTree.getSample()) + LambdaUpdateWrapper<StandardProductList> updateWrapper = Wrappers.<StandardProductList>lambdaUpdate() + .eq(StandardProductList::getFactory, standardTree.getFactory()) + .eq(StandardProductList::getLaboratory, standardTree.getLaboratory()) .eq(StandardProductList::getSampleType, standardTree.getSampleType()) - .eq(StandardProductList::getModel, standardTree.getOldModel())); + .eq(StandardProductList::getModel, standardTree.getOldModel()); + if (StringUtils.isNotBlank(standardTree.getSample()) && !standardTree.getSample().equals("null")) { + updateWrapper.eq(StandardProductList::getSample, standardTree.getSample()); + } else { + updateWrapper.isNull(StandardProductList::getSample); + } + + List<StandardProductList> standardProductLists = standardProductListService.list(updateWrapper); if (CollectionUtils.isNotEmpty(standardProductLists)) { for (StandardProductList standardProductList : standardProductLists) { // 淇敼鏍峰搧鍚嶇О @@ -182,8 +190,10 @@ .eq(StandardTree::getSampleType, standardTree.getSampleType()) .eq(StandardTree::getModel, standardTree.getOldModel()) .set(StandardTree::getModel, standardTree.getModel()); - if (StringUtils.isNotBlank(standardTree.getSample())) { + if (StringUtils.isNotBlank(standardTree.getSample()) && !standardTree.getSample().equals("null")) { wrapper.eq(StandardTree::getSample, standardTree.getSample()); + } else { + wrapper.isNull(StandardTree::getSample); } return standardTreeMapper.update(null, wrapper); } diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/FeTempHumDateController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/FeTempHumDateController.java index 008dbd5..09fc247 100644 --- a/cnas-require/src/main/java/com/ruoyi/require/controller/FeTempHumDateController.java +++ b/cnas-require/src/main/java/com/ruoyi/require/controller/FeTempHumDateController.java @@ -1,6 +1,7 @@ package com.ruoyi.require.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +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.require.dto.FeTempHumDateDto; @@ -60,7 +61,21 @@ @PostMapping("addFeTempHumRecord") @ApiOperation("娓╂箍搴﹁褰曟柊澧�/淇敼") public Result<FeTempHumRecord> addFeTempHumRecord(@RequestBody FeTempHumRecord feTempHumRecord) { - feTempHumRecordService.saveOrUpdate(feTempHumRecord); + if (feTempHumRecord.getTempHumId() == null) { + feTempHumRecordService.save(feTempHumRecord); + } else { + feTempHumRecordService.update(Wrappers.<FeTempHumRecord>lambdaUpdate() + .eq(FeTempHumRecord::getTempHumId, feTempHumRecord.getTempHumId()) + .set(FeTempHumRecord::getMorningTestTime, feTempHumRecord.getMorningTestTime()) + .set(FeTempHumRecord::getMorningTemp, feTempHumRecord.getMorningTemp()) + .set(FeTempHumRecord::getMorningHum, feTempHumRecord.getMorningHum()) + .set(FeTempHumRecord::getMorningRecorderId, feTempHumRecord.getMorningRecorderId()) + .set(FeTempHumRecord::getAfternoonTime, feTempHumRecord.getAfternoonTime()) + .set(FeTempHumRecord::getAfternoonTemp, feTempHumRecord.getAfternoonTemp()) + .set(FeTempHumRecord::getAfternoonHum, feTempHumRecord.getAfternoonHum()) + .set(FeTempHumRecord::getAfternoonRecorderId, feTempHumRecord.getAfternoonRecorderId()) + ); + } return Result.success(); } diff --git a/cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumDateDto.java b/cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumDateDto.java index 0ba415c..f1efd6c 100644 --- a/cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumDateDto.java +++ b/cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumDateDto.java @@ -9,4 +9,13 @@ @ApiModelProperty("鍒涘缓浜�") private String createName; + + @ApiModelProperty("璁板綍鍛�") + private String registrarUserName; + + @ApiModelProperty("娓╁害鍖洪棿") + private String temperatureSection; + + @ApiModelProperty("婀垮害鍖洪棿") + private String humiditySection; } diff --git a/cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumRecordDto.java b/cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumRecordDto.java index 0791d8d..3b0bacc 100644 --- a/cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumRecordDto.java +++ b/cnas-require/src/main/java/com/ruoyi/require/dto/FeTempHumRecordDto.java @@ -1,5 +1,6 @@ package com.ruoyi.require.dto; +import com.deepoove.poi.data.PictureRenderData; import com.ruoyi.require.pojo.FeTempHumRecord; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,4 +25,40 @@ @ApiModelProperty("妫�娴嬪ぉ") private Integer monthDay; + + @ApiModelProperty("鐧昏鍛�") + private Integer registrarUserId; + + @ApiModelProperty("璇曢獙鍖哄煙鍚嶇О") + private String testAreaName; + + @ApiModelProperty("涓婂崍璁板綍鍛樼鍚嶅湴鍧�") + private String morningRecorderUrl; + + @ApiModelProperty("涓嬪崍璁板綍鍛樼鍚嶅湴鍧�") + private String afternoonRecorderUrl; + + + @ApiModelProperty("涓婂崍璁板綍鍛樼鍚嶅湴鍧�") + private PictureRenderData morningRecorderUrlRender; + + @ApiModelProperty("涓嬪崍璁板綍鍛樼鍚嶅湴鍧�") + private PictureRenderData afternoonRecorderUrlRender; + + + @ApiModelProperty("鏈�楂樻俯搴�") + private Double temperatureHighest; + + @ApiModelProperty("鏈�浣庢俯搴�") + private Double temperatureLowest; + + @ApiModelProperty("鏈�楂樻箍搴�") + private Double humidityHighest; + + @ApiModelProperty("鏈�浣庢箍搴�") + private Double humidityLowest; + + @ApiModelProperty("鏄惁鏄枒闂暟鎹�") + private Integer isIssue; + } diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java index 9130a25..a54d597 100644 --- a/cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java +++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java @@ -7,6 +7,9 @@ import com.ruoyi.require.pojo.FeTempHumRecord; import org.apache.ibatis.annotations.Param; +import java.time.LocalDate; +import java.util.List; + /** * <p> * 璁炬柦鍜岀幆澧冩潯浠�-璁炬柦鍜岀幆澧冩潯浠惰姹�-娓╂箍搴﹁褰� Mapper 鎺ュ彛 @@ -18,4 +21,10 @@ public interface FeTempHumRecordMapper extends BaseMapper<FeTempHumRecord> { IPage<FeTempHumRecordDto> getFeTempHumRecordPage(Page page, @Param("dateId") Integer dateId); + + /** + * 鏌ヨ鏈夋棩鏈熶絾鏄湭濉啓鍚嶅瓧鐨� + * @return + */ + List<FeTempHumRecordDto> selectNoaffirm(LocalDate date); } diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumDate.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumDate.java index f8fb4a3..2e3c360 100644 --- a/cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumDate.java +++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumDate.java @@ -35,8 +35,8 @@ @ApiModelProperty("澧炶ˉ淇℃伅") private String subjoin; - @ApiModelProperty("鏄惁纭") - private String isAffirm; + @ApiModelProperty("鐧昏鍛�") + private Integer registrarUserId; @ApiModelProperty("鍒涘缓鏃堕棿") @TableField(fill = FieldFill.INSERT) 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 34959ac..35960b2 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 @@ -2,11 +2,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; +import com.deepoove.poi.data.Pictures; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; @@ -18,6 +20,7 @@ import com.ruoyi.require.service.FeTempHumDateService; import com.ruoyi.require.service.FeTempHumRecordService; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -46,6 +49,8 @@ @Resource private FeTempHumRecordService feTempHumRecordService; + @Value("${file.path}") + private String imgUrl; @Override public IPage<FeTempHumDateDto> getFeTempHumDate(Page page, FeTempHumDateDto feTempHumDateDto) { @@ -80,6 +85,10 @@ BeanUtils.copyProperties(recordDtos.get(0), recordDto, "month"); recordDto.setMorningTestTimeStr(recordDto.getMorningTestTime() == null ? null : recordDto.getMorningTestTime().format(formatter)); recordDto.setAfternoonTimeStr(recordDto.getAfternoonTime() == null ? null : recordDto.getAfternoonTime().format(formatter)); + recordDto.setMorningRecorderUrlRender(StringUtils.isNotBlank(recordDto.getMorningRecorderUrl()) + ? Pictures.ofLocal(imgUrl + "/" + recordDto.getMorningRecorderUrl()).create() : null); + recordDto.setAfternoonRecorderUrlRender(StringUtils.isNotBlank(recordDto.getAfternoonRecorderUrl()) + ? Pictures.ofLocal(imgUrl + "/" + recordDto.getAfternoonRecorderUrl()).create() : null); } } @@ -128,19 +137,7 @@ // 娓╂箍搴︾‘璁� this.update(Wrappers.<FeTempHumDate>lambdaUpdate() .eq(FeTempHumDate::getDateId, feTempHumDate.getDateId()) - .set(FeTempHumDate::getSubjoin, feTempHumDate.getSubjoin()) - .set(FeTempHumDate::getIsAffirm, 1)); + .set(FeTempHumDate::getRegistrarUserId, feTempHumDate.getRegistrarUserId())); - // 娓╂箍搴﹁褰曟坊鍔犺褰曞憳 - Integer userId = SecurityUtils.getUserId().intValue(); - feTempHumRecordService.update(Wrappers.<FeTempHumRecord>lambdaUpdate() - .isNotNull(FeTempHumRecord::getMorningTestTime) - .eq(FeTempHumRecord::getDateId, feTempHumDate.getDateId()) - .set(FeTempHumRecord::getMorningRecorderId, userId)); - - feTempHumRecordService.update(Wrappers.<FeTempHumRecord>lambdaUpdate() - .isNotNull(FeTempHumRecord::getAfternoonTime) - .eq(FeTempHumRecord::getDateId, feTempHumDate.getDateId()) - .set(FeTempHumRecord::getAfternoonRecorderId, userId)); } } diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumRecordServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumRecordServiceImpl.java index 2e37f6a..0f8f015 100644 --- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumRecordServiceImpl.java +++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumRecordServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.require.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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.require.dto.FeTempHumRecordDto; @@ -22,6 +23,53 @@ @Override public IPage<FeTempHumRecordDto> getFeTempHumRecordPage(Page page, Integer dateId) { - return baseMapper.getFeTempHumRecordPage(page, dateId); + IPage<FeTempHumRecordDto> feTempHumRecordPage = baseMapper.getFeTempHumRecordPage(page, dateId); + for (FeTempHumRecordDto record : feTempHumRecordPage.getRecords()) { + // 鍒ゆ柇鏄惁鏄棶棰樻暟鎹� + // 鍒ゆ柇娓╂箍搴︽槸鍚﹁秴杩囧尯闂� + boolean flag = false; + if (StringUtils.isNotBlank(record.getMorningTemp())) { + Double value = Double.valueOf(record.getMorningTemp()); + if (value > record.getTemperatureHighest() || value < record.getTemperatureLowest()) { + flag = true; + } + } + if (StringUtils.isNotBlank(record.getMorningHum())) { + Double value = Double.valueOf(record.getMorningHum()); + if (value > record.getHumidityHighest() || value < record.getHumidityLowest()) { + flag = true; + } + } + if (StringUtils.isNotBlank(record.getAfternoonTemp())) { + Double value = Double.valueOf(record.getAfternoonTemp()); + if (value > record.getTemperatureHighest() || value < record.getTemperatureLowest()) { + flag = true; + } + } + if (StringUtils.isNotBlank(record.getAfternoonHum())) { + Double value = Double.valueOf(record.getAfternoonHum()); + if (value > record.getHumidityHighest() || value < record.getHumidityLowest()) { + flag = true; + } + } + + // 鍒ゆ柇鏄惁鏄亽娓╀簩, 鏄亽娓╀簩涓婁笅娓╁害鏄惁瓒呰繃1鎽勬皬搴� + if (StringUtils.isNotBlank(record.getTestAreaName()) && record.getTestAreaName().equals("鎭掓俯浜�")) { + if (StringUtils.isNotBlank(record.getMorningTemp()) && StringUtils.isNotBlank(record.getAfternoonTemp())) { + if (Double.valueOf(record.getAfternoonTemp()) - Double.valueOf(record.getMorningTemp()) > 1) { + flag = true; + } + } + } + + if (flag) { + record.setIsIssue(1); + } else { + record.setIsIssue(0); + } + + + } + return feTempHumRecordPage; } } 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 651f615..b721c1d 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 @@ -1,6 +1,11 @@ package com.ruoyi.require.task; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.WxCpUtils; +import com.ruoyi.require.dto.FeTempHumRecordDto; import com.ruoyi.require.mapper.CollectLaboratoryMapper; import com.ruoyi.require.mapper.CollectTemperatureHumidityMapper; import com.ruoyi.require.mapper.FeTempHumDateMapper; @@ -9,10 +14,13 @@ import com.ruoyi.require.pojo.CollectTemperatureHumidity; import com.ruoyi.require.pojo.FeTempHumDate; import com.ruoyi.require.pojo.FeTempHumRecord; +import com.ruoyi.system.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.time.LocalDate; @@ -20,6 +28,8 @@ import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * Author: yuan @@ -37,6 +47,10 @@ private CollectTemperatureHumidityMapper collectTemperatureHumidityMapper; @Autowired private FeTempHumRecordMapper feTempHumRecordMapper; + @Autowired + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Resource + private UserMapper userMapper; // 鑾峰彇褰撳墠骞翠唤鍜屾湀浠� 濡傦細2024-11 private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); @@ -59,6 +73,9 @@ FeTempHumDate feTempHumDate = new FeTempHumDate(); feTempHumDate.setMonthDate(formattedDate); feTempHumDate.setTestAreaName(collectLaboratory.getLaboratory()); + if (collectLaboratory.getLaboratory().equals("鎭掓俯浜�")) { + feTempHumDate.setSubjoin("娉�: 璇ュ疄楠屽鐜鏉′欢娓╁害娉㈠姩涓嶅ぇ浜幝�1鈩冭姹�"); + } feTempHumDateMapper.insert(feTempHumDate); } } @@ -113,6 +130,30 @@ newFeTempHumRecord.setMorningHum(humidity.toString()); newFeTempHumRecord.setDateId(dateId); feTempHumRecordMapper.insert(newFeTempHumRecord); + + // 鍒ゆ柇娓╂箍搴︽槸鍚﹁秴杩�, 瓒呰繃鎻愰啋 + if (feTempHumDate.getRegistrarUserId() != null) { + if (temperature < collectLaboratory.getTemperatureLowest() || temperature > collectLaboratory.getTemperatureHighest() || + humidity< collectLaboratory.getHumidityLowest() || humidity > collectLaboratory.getHumidityHighest()) { + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(feTempHumDate.getRegistrarUserId()); + + String message = ""; + message += "涓婂崍瀹為獙瀹ゆ俯搴︽垨婀垮害瓒呰繃鎸囧畾鍖洪棿, 璇峰幓鏌ョ湅"; + message += "\n璇峰幓璧勬簮绠$悊-璁炬柦鍜岀幆澧冩俯搴︿竴娓╂箍搴﹁褰�"; + message += StrUtil.format("\n瀹為獙瀹ゅ尯鍩�: {}", feTempHumDate.getTestAreaName()); + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + } + } } @@ -202,6 +243,50 @@ } feTempHumRecordMapper.updateById(feTempHumRecord); + // 鍒ゆ柇娓╂箍搴︽槸鍚﹁秴杩�, 瓒呰繃鎻愰啋 + if (feTempHumDate.getRegistrarUserId() != null) { + if (temperature < collectLaboratory.getTemperatureLowest() || temperature > collectLaboratory.getTemperatureHighest() || + humidity< collectLaboratory.getHumidityLowest() || humidity > collectLaboratory.getHumidityHighest()) { + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(feTempHumDate.getRegistrarUserId()); + + String message = ""; + message += "涓嬪崍瀹為獙瀹ゆ俯搴︽垨婀垮害瓒呰繃鎸囧畾鍖洪棿, 璇峰幓鏌ョ湅"; + message += "\n璇峰幓璧勬簮绠$悊-璁炬柦鍜岀幆澧冩俯搴︿竴娓╂箍搴﹁褰�"; + message += StrUtil.format("\n瀹為獙瀹ゅ尯鍩�: {}", feTempHumDate.getTestAreaName()); + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + + if (feTempHumDate.getTestAreaName().equals("鎭掓俯浜�")) { + // 鍒ゆ柇涓婁笅鍗堟俯宸槸鍚﹁秴杩�1 + if (temperature - Double.valueOf(feTempHumRecord.getMorningTemp()) > 1) { + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(feTempHumDate.getRegistrarUserId()); + + String message = ""; + message += "鎭掓俯浜屽疄楠屽涓婁笅娓╁樊瓒呰繃 1鈩�, 璇峰幓鏌ョ湅"; + message += "\n璇峰幓璧勬簮绠$悊-璁炬柦鍜岀幆澧冩俯搴︿竴娓╂箍搴﹁褰�"; + message += StrUtil.format("\n瀹為獙瀹ゅ尯鍩�: {}", feTempHumDate.getTestAreaName()); + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + } + } } } @@ -249,6 +334,40 @@ } /** + * 鎵弿瀹為獙瀹ゆ俯搴﹁褰曞垽鏂槸鍚︽湁娌℃湁纭鐨勬俯搴︿俊鎭� + * + */ +// @Scheduled(cron = "0/5 * * * * *") + @Scheduled(cron = "0 0 16 * * 1-6") // 姣忓ぉ15鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶� + public void affirmTempHum() { + // 鏌ヨ鏈夋棩鏈熶絾鏄湭濉啓鍚嶅瓧鐨� + List<FeTempHumRecordDto> feTempHumRecordList = feTempHumRecordMapper.selectNoaffirm(LocalDate.now()); + + for (FeTempHumRecordDto feTempHumRecord : feTempHumRecordList) { + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(feTempHumRecord.getRegistrarUserId()); + + String message = ""; + message += "娓╂箍搴﹁褰曠‘璁ら�氱煡"; + message += "\n璇峰幓璧勬簮绠$悊-璁炬柦鍜岀幆澧冩俯搴︿竴娓╂箍搴﹁褰�"; + message += StrUtil.format("\n瀹為獙瀹ゅ尯鍩�: {}", feTempHumRecord.getTestAreaName()); + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + } + + } + + + /** * 鏍规嵁瀹為獙瀹ょ紪鍙疯幏鍙栨俯搴︽箍搴� * * @param collectTemperatureHumidity 娓╁害婀垮害鏁版嵁 diff --git a/cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml b/cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml index 070c999..299d25d 100644 --- a/cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml +++ b/cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml @@ -2,22 +2,15 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.require.mapper.FeTempHumDateMapper"> - <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> - <resultMap id="BaseResultMap" type="com.ruoyi.require.pojo.FeTempHumDate"> - <id column="date_id" property="dateId" /> - <result column="month_date" property="monthDate" /> - <result column="test_area_name" property="testAreaName" /> - <result column="create_time" property="createTime" /> - <result column="update_time" property="updateTime" /> - <result column="create_user" property="createUser" /> - <result column="update_user" property="updateUser" /> - </resultMap> - <select id="getFeTempHumDate" resultType="com.ruoyi.require.dto.FeTempHumDateDto"> select * from ( - select c.*, u.name create_name + select c.*, + u.name registrar_user_name, + concat('鈮�', cl.temperature_lowest, '&', '鈮�', cl.temperature_highest) temperature_section, + concat('鈮�', cl.humidity_lowest, '&', '鈮�', cl.humidity_highest) humidity_section from cnas_fe_temp_hum_date c - left join user u on c.create_user = u.id) a + left join user u on c.registrar_user_id = u.id + left join collect_laboratory cl on cl.laboratory = c.test_area_name) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> diff --git a/cnas-require/src/main/resources/mapper/FeTempHumRecordMapper.xml b/cnas-require/src/main/resources/mapper/FeTempHumRecordMapper.xml index b6c8d4b..fb79da3 100644 --- a/cnas-require/src/main/resources/mapper/FeTempHumRecordMapper.xml +++ b/cnas-require/src/main/resources/mapper/FeTempHumRecordMapper.xml @@ -3,11 +3,34 @@ <mapper namespace="com.ruoyi.require.mapper.FeTempHumRecordMapper"> <select id="getFeTempHumRecordPage" resultType="com.ruoyi.require.dto.FeTempHumRecordDto"> - select c.*, u1.name afternoon_recorder_user, u2.name morning_recorder_user + select c.*, + u1.name afternoon_recorder_user, + u2.name morning_recorder_user, + u1.signature_url afternoon_recorder_url, + u2.signature_url morning_recorder_url, + cl.temperature_lowest, + cl.temperature_highest, + cl.humidity_lowest, + cl.humidity_highest, + cd.test_area_name from cnas_fe_temp_hum_record c left join user u1 on u1.id = c.afternoon_recorder_id left join user u2 on u2.id = c.morning_recorder_id + left join cnas_fe_temp_hum_date cd on cd.date_id = c.date_id + left join collect_laboratory cl on cl.laboratory = cd.test_area_name where c.date_id = #{dateId} ORDER BY c.record_date desc </select> + + <!-- 鏌ヨ鏈夋棩鏈熶絾鏄湭濉啓鍚嶅瓧鐨� --> + <select id="selectNoaffirm" resultType="com.ruoyi.require.dto.FeTempHumRecordDto"> + select cr.*, + cd.registrar_user_id, + cd.test_area_name + from cnas_fe_temp_hum_record cr + left join cnas_fe_temp_hum_date cd on cd.date_id = cr.date_id + where cr.record_date = #{date} + and (morning_test_time is not null and morning_recorder_id is null) + and cd.registrar_user_id is not null + </select> </mapper> diff --git a/cnas-require/src/main/resources/static/temp_hum_date.docx b/cnas-require/src/main/resources/static/temp_hum_date.docx index 2c91d51..422869a 100644 --- a/cnas-require/src/main/resources/static/temp_hum_date.docx +++ b/cnas-require/src/main/resources/static/temp_hum_date.docx Binary files differ -- Gitblit v1.9.3