|
@@ -17,6 +17,8 @@
|
|
|
|
|
|
package com.qunzhixinxi.hnqz.admin.controller;
|
|
package com.qunzhixinxi.hnqz.admin.controller;
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.ExcelWriter;
|
|
import com.alibaba.excel.ExcelWriter;
|
|
@@ -35,6 +37,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
|
|
import com.qunzhixinxi.hnqz.admin.entity.AuditEntity;
|
|
import com.qunzhixinxi.hnqz.admin.entity.AuditEntity;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmDaDistribution;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmDaDistribution;
|
|
@@ -64,6 +67,7 @@ import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskRuleService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskRuleService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
|
|
import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
|
|
import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
|
|
@@ -76,6 +80,7 @@ import io.swagger.annotations.ApiOperation;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
+import org.apache.commons.io.IOUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.util.ResourceUtils;
|
|
import org.springframework.util.ResourceUtils;
|
|
@@ -97,18 +102,26 @@ import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
+import java.lang.reflect.Field;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
+import java.math.BigInteger;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
|
+import java.net.URI;
|
|
|
|
+import java.net.URISyntaxException;
|
|
import java.net.URLEncoder;
|
|
import java.net.URLEncoder;
|
|
|
|
+import java.security.MessageDigest;
|
|
|
|
+import java.security.NoSuchAlgorithmException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.time.LocalTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.Arrays;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.Set;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -156,6 +169,7 @@ public class WmTaskController {
|
|
|
|
|
|
private final RabbitMqClient rabbitMqClient;
|
|
private final RabbitMqClient rabbitMqClient;
|
|
private final RedisTemplate<String,String> redisTemplate;
|
|
private final RedisTemplate<String,String> redisTemplate;
|
|
|
|
+ private final UpmsConfig upmsConfig;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 分页查询
|
|
* 分页查询
|
|
@@ -1145,7 +1159,79 @@ public class WmTaskController {
|
|
if (StringUtils.isEmpty(wmTask.getId())) {
|
|
if (StringUtils.isEmpty(wmTask.getId())) {
|
|
R.failed("任务id不能为空");
|
|
R.failed("任务id不能为空");
|
|
}
|
|
}
|
|
- return wmTaskService.approvalTask(wmTask);
|
|
|
|
|
|
+ R result = wmTaskService.approvalTask(wmTask);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 释放图片
|
|
|
|
+ if (result.getCode() == CommonConstants.SUCCESS){
|
|
|
|
+
|
|
|
|
+ List<String> idList = StrUtil.split(wmTask.getId(), StrUtil.COMMA);
|
|
|
|
+
|
|
|
|
+ if (CollUtil.isNotEmpty(idList)){
|
|
|
|
+ List<WmTask> wmTasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, idList));
|
|
|
|
+
|
|
|
|
+ wmTasks.stream().filter(task -> "4".equals(task.getTaskStatus())).forEach(t -> {
|
|
|
|
+ String userId = t.getTaskUserId();
|
|
|
|
+
|
|
|
|
+ WmTaskContent content = wmTaskContentService.getById(t.getTaskContentId());
|
|
|
|
+
|
|
|
|
+ Field[] fields = content.getClass().getDeclaredFields();
|
|
|
|
+ for (Field field : fields) {
|
|
|
|
+
|
|
|
|
+ field.setAccessible(true);
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ String fieldVal = (String) field.get(content);
|
|
|
|
+
|
|
|
|
+ if (fieldVal.startsWith("/admin/sys-file/wmkj")) {
|
|
|
|
+
|
|
|
|
+ List<String> split = StrUtil.split(fieldVal, StrUtil.COMMA);
|
|
|
|
+
|
|
|
|
+ List<String> IMG_EXT_NAME = Arrays.asList("png", "jpg", "gif", "jpeg", "tif", "bmp");
|
|
|
|
+
|
|
|
|
+ split.forEach(item -> {
|
|
|
|
+ List<String> temp = StrUtil.split(item, StrUtil.DOT);
|
|
|
|
+ String extName = temp.get(temp.size() - 1);
|
|
|
|
+
|
|
|
|
+ if (IMG_EXT_NAME.contains(extName.toLowerCase())) {
|
|
|
|
+ // 文件md5
|
|
|
|
+ try {
|
|
|
|
+ log.info("图片地址:{}", upmsConfig.getClientUrl() + item);
|
|
|
|
+ byte[] bytes = IOUtils.toByteArray(new URI(upmsConfig.getClientUrl() + item));
|
|
|
|
+ MessageDigest md5 = MessageDigest.getInstance("MD5");
|
|
|
|
+ byte[] digest = md5.digest(bytes);
|
|
|
|
+ String hash = new BigInteger(1, digest).toString(16);
|
|
|
|
+ log.info("图片md5:{}", hash);
|
|
|
|
+ String key = String.format("%s:%s", userId, hash);
|
|
|
|
+ log.info("key:{}", key);
|
|
|
|
+ redisTemplate.delete(key);
|
|
|
|
+ } catch (IOException | URISyntaxException | NoSuchAlgorithmException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception ignored) {
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return result;
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|