|
@@ -39,6 +39,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmReport;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmReportService;
|
|
|
import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import io.swagger.annotations.Api;
|
|
@@ -46,6 +47,7 @@ import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.Collections;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.List;
|
|
@@ -61,6 +63,7 @@ import java.util.stream.Collectors;
|
|
|
* @author pigx code generator
|
|
|
* @date 2020-12-21 20:57:26
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@RestController
|
|
|
@AllArgsConstructor
|
|
|
@RequestMapping("/wmreport" )
|
|
@@ -239,6 +242,8 @@ public class WmReportController {
|
|
|
@GetMapping("/approvalReport" )
|
|
|
public R approvalReport(WmReport wmReport, @RequestParam(value = "taskIds") List<String> taskIds,
|
|
|
String approvalOpinion,String approvalInfo) {
|
|
|
+ log.info("结算报告--审批 请求参数:taskIds={},approvalOpinion={},approvalInfo={} 操作人:{},操作时间:{}",
|
|
|
+ taskIds, approvalOpinion, approvalInfo, SecurityUtils.getUser().getId(), LocalDateTime.now());
|
|
|
WmReport wmReport1=wmReportService.getById(wmReport.getId());
|
|
|
if(null==wmReport1){
|
|
|
return R.failed("未查询到报告信息");
|
|
@@ -246,7 +251,22 @@ public class WmReportController {
|
|
|
if(taskIds.isEmpty()){
|
|
|
return R.failed("缺少参数:任务id");
|
|
|
}
|
|
|
- return wmReportService.approvalReport(wmReport1,taskIds,approvalOpinion,approvalInfo);
|
|
|
+
|
|
|
+ taskIds.forEach(taskId -> {
|
|
|
+ String cacheKey = CacheConstants.TASK_APPROVAL_KEY + taskId;
|
|
|
+ Boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, String.format("report_approval_report_%s", taskId), 3, TimeUnit.SECONDS);
|
|
|
+ if (Boolean.FALSE.equals(absent)) {
|
|
|
+ throw new RuntimeException("正在处理");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ R r = wmReportService.approvalReport(wmReport1, taskIds, approvalOpinion, approvalInfo);
|
|
|
+
|
|
|
+ Set<String> cahceKeys = taskIds.stream()
|
|
|
+ .map(taskId -> CacheConstants.TASK_APPROVAL_KEY + taskId).collect(Collectors.toSet());
|
|
|
+ redisTemplate.delete(cahceKeys);
|
|
|
+
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -261,6 +281,8 @@ public class WmReportController {
|
|
|
@SysLog("快速批量任务审核")
|
|
|
@PostMapping("/batch-approval-task")
|
|
|
public R<?> batchApprovalTask(@RequestBody Map<String, String> requestMap) {
|
|
|
+ log.info("快速批量任务审核 请求参数:{}, 操作人:{},操作时间:{}",
|
|
|
+ requestMap, SecurityUtils.getUser().getId(), LocalDateTime.now());
|
|
|
String reportId = requestMap.get("reportId");
|
|
|
String taskIds = requestMap.get("taskIds");
|
|
|
String approvalOpinion = requestMap.get("approvalOpinion");
|
|
@@ -278,13 +300,21 @@ public class WmReportController {
|
|
|
.sorted(Comparator.comparingInt(Integer::parseInt))
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- String cacheKey = CacheConstants.TASK_APPROVAL_KEY + String.join(StrUtil.COMMA, sortedIdList);
|
|
|
- Boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, JSONUtil.toJsonStr(requestMap), 3, TimeUnit.SECONDS);
|
|
|
- if (Boolean.FALSE.equals(absent)) {
|
|
|
- return R.failed("正在处理");
|
|
|
- }
|
|
|
+ sortedIdList.forEach(taskId -> {
|
|
|
+ String cacheKey = CacheConstants.TASK_APPROVAL_KEY + taskId;
|
|
|
+ Boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, String.format("report_batch_%s", taskId), 3, TimeUnit.SECONDS);
|
|
|
+ if (Boolean.FALSE.equals(absent)) {
|
|
|
+ throw new RuntimeException("正在处理");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ Boolean approvalTask = wmReportService.batchApprovalTask(reportId, sortedIdList, approvalOpinion, approvalInfo);
|
|
|
|
|
|
- return R.ok(wmReportService.batchApprovalTask(reportId, sortedIdList, approvalOpinion, approvalInfo));
|
|
|
+ Set<String> cahceKeys = sortedIdList.stream()
|
|
|
+ .map(taskId -> CacheConstants.TASK_APPROVAL_KEY + taskId).collect(Collectors.toSet());
|
|
|
+ redisTemplate.delete(cahceKeys);
|
|
|
+
|
|
|
+ return R.ok(approvalTask);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -299,6 +329,8 @@ public class WmReportController {
|
|
|
@SysLog("结算报告审批-任务复审")
|
|
|
@PostMapping("/review-task")
|
|
|
public R<?> reviewTask(@RequestBody Map<String, String> requestMap) {
|
|
|
+ log.info("结算报告审批-任务复审 请求参数:{}, 操作人:{},操作时间:{}",
|
|
|
+ requestMap, SecurityUtils.getUser().getId(), LocalDateTime.now());
|
|
|
String reportId = requestMap.get("reportId");
|
|
|
String taskId = requestMap.get("taskId");
|
|
|
String approvalOpinion = requestMap.get("approvalOpinion");
|
|
@@ -330,10 +362,27 @@ public class WmReportController {
|
|
|
@PostMapping("/approval-report-by-task")
|
|
|
public R approvalReportByTask(@RequestParam(value = "taskIds") List<String> taskIds,
|
|
|
String approvalOpinion,String approvalInfo) {
|
|
|
+ log.info("批量任务类型结算报告--审批 请求参数:taskIds={},approvalOpinion={},approvalInfo={} 操作人:{},操作时间:{}",
|
|
|
+ taskIds, approvalOpinion, approvalInfo, SecurityUtils.getUser().getId(), LocalDateTime.now());
|
|
|
if(CollUtil.isEmpty(taskIds)){
|
|
|
return R.failed("taskIds必填");
|
|
|
}
|
|
|
- return wmReportService.approvalReportByTaskType(taskIds, approvalOpinion, approvalInfo);
|
|
|
+
|
|
|
+ taskIds.forEach(taskId -> {
|
|
|
+ String cacheKey = CacheConstants.TASK_APPROVAL_KEY + taskId;
|
|
|
+ Boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, String.format("report_approval_report_by_task_%s", taskId), 3, TimeUnit.SECONDS);
|
|
|
+ if (Boolean.FALSE.equals(absent)) {
|
|
|
+ throw new RuntimeException("正在处理");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ R<?> r = wmReportService.approvalReportByTaskType(taskIds, approvalOpinion, approvalInfo);
|
|
|
+
|
|
|
+ Set<String> cahceKeys = taskIds.stream()
|
|
|
+ .map(taskId -> CacheConstants.TASK_APPROVAL_KEY + taskId).collect(Collectors.toSet());
|
|
|
+ redisTemplate.delete(cahceKeys);
|
|
|
+
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
|