|
@@ -340,7 +340,8 @@ public class ApiController {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("label", wmScorePackage.getScorePackageName());
|
|
|
map.put("value", wmScorePackage.getId());
|
|
|
- String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
|
|
|
+ String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage
|
|
|
+ .getDrugProducerList());
|
|
|
map.put("drugProducer", drugProducer);
|
|
|
listMap.add(map);
|
|
|
}
|
|
@@ -362,7 +363,8 @@ public class ApiController {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("label", wmScorePackage.getScorePackageName());
|
|
|
map.put("value", wmScorePackage.getId());
|
|
|
- String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
|
|
|
+ String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage
|
|
|
+ .getDrugProducerList());
|
|
|
map.put("drugProducer", drugProducer);
|
|
|
listMap.add(map);
|
|
|
}
|
|
@@ -883,22 +885,66 @@ public class ApiController {
|
|
|
@SysLog("新增任务内容表")
|
|
|
@PostMapping("/saveTaskContent")
|
|
|
public R saveTaskContent(@RequestBody WmTaskContent wmTaskContent) {
|
|
|
+ Set<String> errorHash = new HashSet<>();
|
|
|
+ List<String> ducImgUrl = new ArrayList<>();
|
|
|
+ List<String> all = new ArrayList<>();
|
|
|
+
|
|
|
String draftKey = wmTaskContent.getDraftKey();
|
|
|
String taskTypeId = wmTaskContent.getTemp30();
|
|
|
+
|
|
|
+ Integer id = SecurityUtils.getUser().getId();
|
|
|
+ Field[] fields = wmTaskContent.getClass().getDeclaredFields();
|
|
|
+ for (Field field : fields) {
|
|
|
+
|
|
|
+ field.setAccessible(true);
|
|
|
+
|
|
|
+ try {
|
|
|
+ String fieldVal = (String) field.get(wmTaskContent);
|
|
|
+
|
|
|
+ all = duplicateImage(fieldVal, id, errorHash, ducImgUrl,all);
|
|
|
+ } catch (Exception ignored) {
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(ducImgUrl)) {
|
|
|
+ // 保存图片
|
|
|
+ log.info("all size:{}",all.size());
|
|
|
+ if (CollUtil.isNotEmpty(all)){
|
|
|
+ all.forEach(hash -> {
|
|
|
+ String key = String.format("%s:%s", id, hash);
|
|
|
+ log.info("key: {}", key);
|
|
|
+ redisTemplate.delete(key);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return R.failed(ducImgUrl, "提交重复的图片");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
R r = wmTaskContentService.saveTaskContent(wmTaskContent);
|
|
|
|
|
|
log.info("结果:{}, 草稿key:{}", r, draftKey);
|
|
|
if (r.getCode() == CommonConstants.SUCCESS && StrUtil.isNotEmpty(draftKey)) {
|
|
|
- HnqzUser user = SecurityUtils.getUser();
|
|
|
- String key = String.format(CacheConstants.TASK_CONTENT_DRAFT, taskTypeId, user.getId());
|
|
|
+ String key = String.format(CacheConstants.TASK_CONTENT_DRAFT, taskTypeId, id);
|
|
|
log.info("删除草稿:{}", key);
|
|
|
redisTemplate.delete(key);
|
|
|
}
|
|
|
|
|
|
+ if (r.getCode() == CommonConstants.FAIL && CollUtil.isNotEmpty(all)){
|
|
|
+ // 保存图片
|
|
|
+ log.info("all size:{}",all.size());
|
|
|
+ all.forEach(hash -> {
|
|
|
+ String key = String.format("%s:%s", id, hash);
|
|
|
+ log.info("key: {}", key);
|
|
|
+ redisTemplate.delete(key);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
return r;
|
|
|
}
|
|
|
|
|
|
- private void duplicateImage(String contentValue, Integer userId, Set<String> errorHash) {
|
|
|
+ private List<String> duplicateImage(String contentValue, Integer userId, Set<String> errorHash, List<String> duplicateImageUrl,List<String> all) {
|
|
|
+
|
|
|
|
|
|
if (contentValue.startsWith("/admin/sys-file/wmkj")) {
|
|
|
|
|
@@ -910,8 +956,7 @@ public class ApiController {
|
|
|
List<String> temp = StrUtil.split(item, StrUtil.DOT);
|
|
|
String extName = temp.get(temp.size() - 1);
|
|
|
|
|
|
- if (IMG_EXT_NAME.contains(extName)) {
|
|
|
-
|
|
|
+ if (IMG_EXT_NAME.contains(extName.toLowerCase())) {
|
|
|
// 文件md5
|
|
|
try {
|
|
|
log.info("图片地址:{}", upmsConfig.getClientUrl() + item);
|
|
@@ -920,12 +965,15 @@ public class ApiController {
|
|
|
byte[] digest = md5.digest(bytes);
|
|
|
String hash = new BigInteger(1, digest).toString(16);
|
|
|
log.info("图片md5:{}", hash);
|
|
|
- Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent(String.format("%s:%s", userId, hash), item, 7, TimeUnit.DAYS);
|
|
|
- if (aBoolean != null && !aBoolean) {
|
|
|
- log.error("上传了重复的图片");
|
|
|
+ Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent(String.format("%s:%s", userId, hash), item);
|
|
|
+ if (!aBoolean) {
|
|
|
+ log.error("上传了重复的图片, hash:{}", hash);
|
|
|
errorHash.add(hash);
|
|
|
+ duplicateImageUrl.add(upmsConfig.getClientUrl() + item);
|
|
|
+ } else {
|
|
|
+ all.add(hash);
|
|
|
+ log.info("hash:{}, size:{}, list:{}", hash, all.size(), all);
|
|
|
}
|
|
|
-
|
|
|
} catch (IOException | URISyntaxException | NoSuchAlgorithmException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -937,7 +985,7 @@ public class ApiController {
|
|
|
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ return all;
|
|
|
}
|
|
|
|
|
|
/**
|