水印照片批量生成

This commit is contained in:
fl 2025-04-07 20:00:00 +08:00
parent 7b164c5247
commit 6388a84432
5 changed files with 77 additions and 1 deletions

View File

@ -53,10 +53,19 @@ public class SafetyViolationServiceImpl implements SafetyViolationService {
LoginUser loginUser = UserUtil.getLoginUser();
bean.setCreateUserId(loginUser.getId());
bean.setCreateUserName(loginUser.getUsername());
List<FileStorageDto> fileList = bean.getFileList();
// //判断是否有整改照片有则为已整改
// if (fileList != null && !fileList.isEmpty()) {
// fileList.forEach(item -> {
// if("2".equals(item.getSourceType()){
// bean.setRectStatus("1");
// }
// });
// }
//基础数据存入库
int i = dao.insertSafetyViolation(bean);
if (i > 0) {
List<FileStorageDto> fileList = bean.getFileList();
//照片入库
if (fileList != null && !fileList.isEmpty()) {
fileList.forEach(item -> {

View File

@ -91,4 +91,8 @@ public class FileStorageDto {
*/
private Integer isActive;
private String vioDate;
private String proName;
}

View File

@ -1,6 +1,7 @@
package com.bonus.imgTool.task.dao;
import com.bonus.imgTool.basic.vo.dto.ProDto;
import com.bonus.imgTool.system.vo.dto.FileStorageDto;
import org.springframework.stereotype.Repository;
import java.util.List;
@ -15,4 +16,8 @@ public interface ProPullDao {
void addProject(List<ProDto> list);
void updateProject(ProDto imgProject);
List<FileStorageDto> getNotHaveWatermarkPhoto();
void updateHaveWatermarkPhoto(List<FileStorageDto> fileList);
}

View File

@ -2,7 +2,10 @@ package com.bonus.imgTool.task.job;
import cn.hutool.core.date.DateUtil;
import com.bonus.imgTool.basic.vo.dto.ProDto;
import com.bonus.imgTool.system.vo.dto.FileStorageDto;
import com.bonus.imgTool.task.dao.ProPullDao;
import com.bonus.imgTool.utils.HighQualityWatermark;
import com.bonus.imgTool.utils.SystemUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
@ -11,6 +14,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;
import java.io.File;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@ -46,6 +50,30 @@ public class ProPullTask {
log.info("--------实名制工程数据拉取定时器完毕------");
}
/**
* 水印照片转换
*/
// @Scheduled(initialDelay = 6000, fixedDelay = 60000 * 30)
@Async
public void getPhotoWatermarkTask() {
log.info("--------水印照片生成定时器开启------");
//实名制工程
List<FileStorageDto> fileList = dao.getNotHaveWatermarkPhoto();
fileList.forEach(item -> {
String localPath = SystemUtils.getUploadPath() + File.separator+ item.getOriginalFilePath();
List<String> sb = new ArrayList<>();
sb.add(item.getVioDate());
sb.add(item.getProName());
String[] split = item.getSourceTypeName().split("-");
sb.add(split[0]);
sb.add(split[1]);
String s = HighQualityWatermark.generateWatermark(sb, localPath);
item.setWatermarkFilePath(s);
});
dao.updateHaveWatermarkPhoto(fileList);
log.info("--------水印照片生成定时器完毕------");
}
/**
* 同步工程数据
* @param proList

View File

@ -77,6 +77,18 @@
WHERE
id = #{proId}
</update>
<update id="updateHaveWatermarkPhoto">
<foreach collection="item" separator=";">
<if test="item.id != null">
UPDATE
sys_file_resource
SET
watermark_file_path = #{item.watermarkFilePath}
WHERE
id = #{item.id}
</if>
</foreach>
</update>
<select id="getProjectData" resultType="com.bonus.imgTool.basic.vo.dto.ProDto">
@ -128,5 +140,23 @@
FROM
tb_project
</select>
<select id="getNotHaveWatermarkPhoto" resultType="com.bonus.imgTool.system.vo.dto.FileStorageDto">
SELECT
sfr.id,
IFNULL(tcq.vio_date,"") as vioDate,
IFNULL(tcq.pro_name,"") as proName,
sd.dict_name AS sourceTypeName,
sfr.original_file_path
FROM
sys_file_resource sfr
LEFT JOIN sys_distinct sd ON sd.dict_value = sfr.source_type
AND sd.del_flag = 0
LEFT JOIN tb_comprehensive_query tcq ON tcq.id = sfr.source_id and tcq.upload_type = sfr.upload_type
WHERE
sfr.watermark_file_path IS NULL
AND sfr.compress_file_path IS NOT NULL
AND sfr.file_type = '1'
AND sfr.is_active = 1
</select>
</mapper>