Bläddra i källkod

Merge branch 'refs/heads/feature-lihb-20250729' into dev

LHB 1 vecka sedan
förälder
incheckning
5d33ee27ae

+ 12 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/TaskSplitController.java

@@ -34,6 +34,8 @@ import org.springblade.archive.entity.TaskSplit;
 import org.springblade.archive.service.ITaskSplitService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.Map;
+
 /**
  * 解析主标任务 控制器
  *
@@ -92,6 +94,16 @@ public class TaskSplitController extends BladeController {
 		return taskSplitService.saveTaskSplit(taskSplit);
 	}
 
+	/**
+	 * 查询 解析主标任务
+	 */
+	@PostMapping("/getSaveInfo")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "查询 解析主标任务", notes = "传入taskSplit")
+	public R<Map<String, Object>> getSaveInfo(@Valid @RequestBody TaskSplit taskSplit) {
+		return taskSplitService.getSaveInfo(taskSplit);
+	}
+
 /*
 	*/
 /**

+ 3 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/ITaskSplitService.java

@@ -22,6 +22,8 @@ import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.tool.api.R;
 
+import java.util.Map;
+
 /**
  * 解析主标任务 服务类
  *
@@ -41,4 +43,5 @@ public interface ITaskSplitService extends BaseService<TaskSplit> {
 
 	R saveTaskSplit(TaskSplit taskSplit);
 
+	R<Map<String, Object>> getSaveInfo(TaskSplit taskSplit);
 }

+ 38 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/TaskSplitServiceImpl.java

@@ -28,6 +28,7 @@ import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
@@ -111,4 +112,41 @@ public class TaskSplitServiceImpl extends BaseServiceImpl<TaskSplitMapper, TaskS
 		return R.data(200,data,"操作成功");
 	}
 
+    @Override
+    public R<Map<String, Object>> getSaveInfo(TaskSplit taskSplit) {
+        Random random = new Random();
+        // 数据校验区
+        Map<String, Object> data = new HashMap<>();
+        String contractId = taskSplit.getContractId();
+        String splitIds = taskSplit.getIds();
+        if (StringUtils.isEmpty(contractId)) {
+            return R.fail("合同段Id为空");
+        }
+        // 代表整个合同解析
+        if (StringUtils.isEmpty(splitIds) || Func.isEmpty(splitIds)) {
+            // 查询整个合同段下的所有文件
+            Integer spliteTaskCount = baseMapper.getSpliteTaskCount(contractId);
+            if (spliteTaskCount >= 1) {
+                return R.fail("该合同已经添加任务,无需重复操作");
+            }
+            // 生成10到20之间的随机数
+            int randomNumber = random.nextInt(30) + 150;
+            int i = (int) Math.ceil(randomNumber * spliteTaskCount / 60.0);
+
+            Integer archiveCount = baseMapper.getArchiveCount(contractId);
+            data.put("fileCount", archiveCount);
+            data.put("taskTime", i);
+
+        } else {
+            // 指定文件解析
+            List<String> split = Func.toStrList(splitIds);
+            // 生成10到20之间的随机数
+            int randomNumber = random.nextInt(30) + 150;
+            int i = (int) Math.ceil(randomNumber * split.size() / 60.0);
+            data.put("fileCount", split.size());
+            data.put("taskTime", i);
+        }
+
+        return R.data(200, data, "操作成功");
+    }
 }