diff --git a/ruoyi-admin/src/main/resources/fonts/msyh.ttc b/ruoyi-admin/src/main/resources/fonts/msyh.ttc
new file mode 100644
index 0000000..ea174b2
Binary files /dev/null and b/ruoyi-admin/src/main/resources/fonts/msyh.ttc differ
diff --git a/ruoyi-admin/src/main/resources/fonts/msyhbd.ttc b/ruoyi-admin/src/main/resources/fonts/msyhbd.ttc
new file mode 100644
index 0000000..ac4e4a6
Binary files /dev/null and b/ruoyi-admin/src/main/resources/fonts/msyhbd.ttc differ
diff --git a/ruoyi-admin/src/main/resources/fonts/msyhl.ttc b/ruoyi-admin/src/main/resources/fonts/msyhl.ttc
new file mode 100644
index 0000000..b9ddfd0
Binary files /dev/null and b/ruoyi-admin/src/main/resources/fonts/msyhl.ttc differ
diff --git a/zaojiaManagement/zaojia-productManagement/pom.xml b/zaojiaManagement/zaojia-productManagement/pom.xml
index 8b0dd9d..c270600 100644
--- a/zaojiaManagement/zaojia-productManagement/pom.xml
+++ b/zaojiaManagement/zaojia-productManagement/pom.xml
@@ -103,6 +103,19 @@
org.dromara
ruoyi-system
+
+
+ com.vladsch.flexmark
+ flexmark-all
+ 0.64.8
+
+
+
+
+ org.xhtmlrenderer
+ flying-saucer-pdf
+ 9.1.22
+
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java
new file mode 100644
index 0000000..91ea915
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java
@@ -0,0 +1,273 @@
+package org.dromara.productManagement.common.service;
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.service.DictService;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.productManagement.domain.DocumentTasks;
+import org.dromara.productManagement.domain.ModelPrompts;
+import org.dromara.productManagement.domain.ModelUserPromptssetting;
+
+import org.dromara.productManagement.domain.bo.BaseTaskBo;
+import org.dromara.productManagement.domain.bo.DocumentTasksBo;
+import org.dromara.productManagement.domain.vo.DocumentTasksPermissionsVo;
+import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.dromara.productManagement.enums.TaskEnum;
+import org.dromara.productManagement.mapper.DocumentTasksMapper;
+import org.dromara.productManagement.mapper.DocumentTasksPermissionsMapper;
+import org.dromara.productManagement.mapper.ModelPromptsMapper;
+import org.dromara.productManagement.mapper.ModelUserPromptssettingMapper;
+import org.dromara.productManagement.service.IDocumentTasksPermissionsService;
+import org.dromara.productManagement.service.IDocumentTasksService;
+import org.dromara.productManagement.utils.MyHttpUtils;
+import org.dromara.system.domain.vo.SysOssVo;
+import org.dromara.system.service.ISysOssService;
+import org.dromara.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Value;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * 任务处理抽象基类
+ */
+@RequiredArgsConstructor
+@Data
+public abstract class BaseTaskService {
+
+
+ protected final ISysOssService ossService;
+ protected final ISysUserService userService;
+ protected final ModelPromptsMapper modelPromptsMapper;
+
+ protected final ModelUserPromptssettingMapper modelUserPromptssettingMapper;
+ protected final DocumentTasksPermissionsMapper documentTasksPermissionsMapper;
+ protected final IDocumentTasksPermissionsService documentTasksPermissionsService;
+ protected final DictService dictTypeService;
+ protected final DocumentTasksMapper baseMapper;
+
+
+ @Value("${chat.filePath}")
+ protected String fileRootPath;
+
+ @Value("${chat.chatUrl}")
+ protected String chatUrl;
+ @Value("${chat.tempfilePath}")
+ protected String tempfilePath;
+ /**
+ * 文件处理结果内部类
+ */
+ @Data
+ @AllArgsConstructor
+ protected static class FileProcessResult {
+ private String fileName;
+ private String filePath;
+ }
+ /**
+ * 查询任务
+ *
+ * @param id 主键
+ * @return 合同任务
+ */
+ protected DocumentTasksVo queryById(Long id){
+ return baseMapper.selectVoById(id);
+ }
+ /**
+ * 处理任务的抽象方法
+ */
+ protected Boolean handleTask(T bo, String taskType) throws IOException, InterruptedException {
+ List taskNames = bo.getTaskNameList();
+ Long userId = LoginHelper.getUserId();
+
+ // 校验提示词
+ validatePrompts(taskNames, bo, taskType);
+
+ // 处理用户提示词设置
+ handleUserPromptsSetting(userId, bo, taskType);
+
+ // 验证用户任务权限
+ documentTasksPermissionsService.validateUserTaskPermissions(taskType,taskNames, userId);
+
+ // 处理文件相关操作
+ FileProcessResult fileResult = processFile(bo.getOssId());
+
+ return processTaskItems(taskNames, bo, fileResult, taskType);
+ }
+
+ /**
+ * 校验提示词
+ */
+ private void validatePrompts(List taskNames, T bo, String taskType) {
+ taskNames.forEach(taskName -> {
+ ModelPrompts modelPrompts = modelPromptsMapper.selectOne(Wrappers.lambdaQuery()
+ .eq(ModelPrompts::getTaskType, taskType)
+ .eq(ModelPrompts::getTaskName, taskName)
+ .eq(ModelPrompts::getTaskIndustry, bo.getTaskIndustry())
+ .eq(ModelPrompts::getTaskRegion, bo.getTaskRegion()));
+ if(modelPrompts == null) {
+ String label = dictTypeService.getDictLabel(taskType, taskName);
+ throw new RuntimeException("任务名称:["+label+"],当前任务所属区域或所属行业不存在模型,请联系管理员配置");
+ }
+ });
+ }
+
+ /**
+ * 处理用户提示词设置
+ */
+ private void handleUserPromptsSetting(Long userId, T bo, String taskType) {
+ ModelUserPromptssetting promptssetting = modelUserPromptssettingMapper.selectOne(
+ Wrappers.lambdaQuery()
+ .eq(ModelUserPromptssetting::getUserId, userId)
+ .eq(ModelUserPromptssetting::getTaskType, taskType));
+
+ if(promptssetting != null) {
+ promptssetting.setTaskIndustry(bo.getTaskIndustry());
+ promptssetting.setTaskRegion(bo.getTaskRegion());
+ promptssetting.setTaskType(taskType);
+ modelUserPromptssettingMapper.updateById(promptssetting);
+ } else {
+ ModelUserPromptssetting userPromptssetting = new ModelUserPromptssetting();
+ userPromptssetting.setUserId(userId);
+ userPromptssetting.setTaskIndustry(bo.getTaskIndustry());
+ userPromptssetting.setTaskRegion(bo.getTaskRegion());
+ userPromptssetting.setTaskType(taskType);
+ modelUserPromptssettingMapper.insert(userPromptssetting);
+ }
+ }
+
+ /**
+ * 处理文件操作
+ */
+ protected FileProcessResult processFile(Long ossId) throws IOException, InterruptedException {
+ SysOssVo fileInfo = ossService.getById(ossId);
+ String fileName = fileInfo.getOriginalName();
+ String filePath = fileRootPath + fileInfo.getFileName();
+
+ // 处理文件转换
+ if(!fileName.toLowerCase().endsWith(".docx")) {
+ filePath = convertToDocx(filePath, fileName);
+ }
+
+ return new FileProcessResult(fileInfo.getOriginalName(), filePath);
+ }
+
+ /**
+ * 转换文件为docx格式
+ */
+ private String convertToDocx(String filePath, String fileName) throws IOException, InterruptedException {
+ String parentPath = new File(filePath).getParent();
+ ProcessBuilder builder = new ProcessBuilder("libreoffice", "--headless", "--convert-to", "docx", filePath, "--outdir", parentPath);
+ Process process = builder.start();
+
+ int completed = process.waitFor();
+ if (completed != 0) {
+ InputStream errorStream = process.getErrorStream();
+ String errorMessage = new String(errorStream.readAllBytes());
+ process.destroyForcibly();
+ throw new RuntimeException(fileName + "转docx失败,请检查文件是否正确~ 错误信息: " + errorMessage);
+ }
+
+ process.destroyForcibly();
+ return getDocxFilePath(filePath);
+ }
+
+ /**
+ * 获取转换后的docx文件路径
+ */
+ private String getDocxFilePath(String filePath) {
+ int lastDotIndex = filePath.lastIndexOf('.');
+ return lastDotIndex == -1 ? filePath + ".docx" : filePath.substring(0, lastDotIndex) + ".docx";
+ }
+ /**
+ * 计算任务优先级
+ * @param taskName 任务名称
+ * @return 优先级
+ */
+ protected Long calculatePriority(String taskName) {
+ // 默认优先级为1
+ Long priority = 1L;
+
+ // 如果不是超级管理员,则获取用户特定的任务优先级
+ if (!StpUtil.hasRole("superadmin")) {
+ DocumentTasksPermissionsVo permissionsVo = documentTasksPermissionsMapper
+ .selectDocumentPermissionsByUserIdAndTaskName(
+ LoginHelper.getUserId(),
+ taskName
+ );
+ if (permissionsVo != null) {
+ priority = permissionsVo.getPriority();
+ }
+ }
+
+ return priority;
+ }
+
+ /**
+ * 处理具体任务项
+ */
+// protected abstract Boolean processTaskItems(List taskNames, BaseTaskBo bo, FileProcessResult fileResult, String taskType);
+ protected Boolean processTaskItems(List taskNames, T bo, FileProcessResult fileResult, String taskType) {
+ boolean flag = false;
+ for (String taskName : taskNames) {
+
+ DocumentTasks add = MapstructUtils.convert(bo, DocumentTasks.class);
+ add.setTaskName(taskName);
+ add.setDocumentName(fileResult.getFileName());
+ add.setProgressStatus("PENDING");
+ add.setTaskType(taskType);
+ // 在插入数据库前调用扩展点
+ beforeTaskInsert(bo, taskName, fileResult);
+
+ flag = baseMapper.insert(add) > 0;
+ // 在发送消息前调用扩展点
+ beforeTaskMessageSent(add.getId(), taskName, bo);
+ Long priority = calculatePriority(taskName);
+ MyHttpUtils.sendTaskStartMessage(chatUrl + "/back/taskStart",
+ add.getId(), taskName, fileResult.getFilePath(), priority);
+
+ if (!flag) {
+ throw new RuntimeException("新增文档任务失败");
+ }
+ }
+ return flag;
+ }
+
+
+
+ protected LambdaQueryWrapper buildQueryWrapper(DocumentTasksBo bo) {
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(StringUtils.isNotBlank(bo.getTaskIndustry()), DocumentTasks::getTaskIndustry, bo.getTaskIndustry());
+ lqw.eq(StringUtils.isNotBlank(bo.getTaskRegion()), DocumentTasks::getTaskRegion, bo.getTaskRegion());
+ lqw.like(StringUtils.isNotBlank(bo.getDocumentName()), DocumentTasks::getDocumentName, bo.getDocumentName());
+ lqw.eq(StringUtils.isNotBlank(bo.getProgressStatus()), DocumentTasks::getProgressStatus, bo.getProgressStatus());
+ List taskNames = bo.getTaskNameList();
+ if (taskNames != null && !taskNames.isEmpty()) {
+ lqw.in(DocumentTasks::getTaskName, taskNames);
+ }
+ lqw.orderByDesc(DocumentTasks::getCreateTime);
+ return lqw;
+ }
+ /**
+ * 任务插入数据库前的扩展点
+ * 子类可以覆盖此方法添加额外逻辑
+ */
+ protected void beforeTaskInsert(T task, String taskName, FileProcessResult fileResult) {
+ // 默认空实现
+ }
+
+ /**
+ * 任务消息发送前的扩展点
+ * 子类可以覆盖此方法添加额外逻辑
+ */
+ protected void beforeTaskMessageSent(Long taskId, String taskName,T bo) {
+ // 默认空实现
+ }
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualTasksController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualTasksController.java
index f702d9b..398aaf8 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualTasksController.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualTasksController.java
@@ -44,7 +44,7 @@ public class ContractualTasksController extends BaseController {
*/
@SaCheckPermission("productManagement:ContractualTasks:list")
@GetMapping("/list")
- public TableDataInfo list(ContractualTasksBo bo, PageQuery pageQuery) {
+ public TableDataInfo list(ContractualTasksBo bo, PageQuery pageQuery) {
return contractualTasksService.queryPageList(bo, pageQuery);
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/DocumentTaskResultsController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/DocumentTaskResultsController.java
index e8f42d2..6bb2b4f 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/DocumentTaskResultsController.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/DocumentTaskResultsController.java
@@ -112,4 +112,16 @@ public class DocumentTaskResultsController extends BaseController {
@PathVariable String[] ids) {
return toAjax(documentTaskResultsService.deleteWithValidByIds(List.of(ids), true));
}
+ /**
+ * 下载文档任务
+ *
+ * @param ids 主键串
+ */
+// @SaCheckPermission("productManagement:DocumentTaskResults:download")
+ @Log(title = "文档任务", businessType = BusinessType.EXPORT)
+ @GetMapping("/downloadResult/{ids}")
+ public void download(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ids,HttpServletResponse response) {
+ documentTaskResultsService.downloadResult(ids,response);
+ }
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ModelUserPromptssettingController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ModelUserPromptssettingController.java
index cdbae99..75596fa 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ModelUserPromptssettingController.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ModelUserPromptssettingController.java
@@ -109,8 +109,8 @@ public class ModelUserPromptssettingController extends BaseController {
*/
// @SaCheckPermission("productManagement:ModelUserPromptssetting:query")
@GetMapping("/getInfoByuserId")
- public R getInfoByuserId() {
+ public R getInfoByuserId( String taskType) {
Long userId = LoginHelper.getUserId();
- return R.ok(modelUserPromptssettingService.queryByuserId(userId));
+ return R.ok(modelUserPromptssettingService.queryByuserId(userId, taskType));
}
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/SchemEvaluationController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/SchemEvaluationController.java
new file mode 100644
index 0000000..b5fc891
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/SchemEvaluationController.java
@@ -0,0 +1,107 @@
+package org.dromara.productManagement.controller;
+
+import java.io.IOException;
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.productManagement.domain.vo.SchemEvaluationVo;
+import org.dromara.productManagement.domain.bo.SchemEvaluationBo;
+import org.dromara.productManagement.service.ISchemEvaluationService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 方案评价任务
+ *
+ * @author Lion Li
+ * @date 2025-01-03
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/productManagement/SchemEvaluation")
+public class SchemEvaluationController extends BaseController {
+
+ private final ISchemEvaluationService schemEvaluationService;
+
+ /**
+ * 查询方案评价任务列表
+ */
+ @SaCheckPermission("productManagement:SchemEvaluation:list")
+ @GetMapping("/list")
+ public TableDataInfo list(SchemEvaluationBo bo, PageQuery pageQuery) {
+ return schemEvaluationService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出方案评价任务列表
+ */
+// @SaCheckPermission("productManagement:SchemEvaluation:export")
+// @Log(title = "方案评价任务", businessType = BusinessType.EXPORT)
+// @PostMapping("/export")
+// public void export(SchemEvaluationBo bo, HttpServletResponse response) {
+// List list = schemEvaluationService.queryList(bo);
+// ExcelUtil.exportExcel(list, "方案评价任务", SchemEvaluationVo.class, response);
+// }
+
+ /**
+ * 获取方案评价任务详细信息
+ *
+ * @param id 主键
+ */
+ @SaCheckPermission("productManagement:SchemEvaluation:query")
+ @GetMapping("/{id}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long id) {
+ return R.ok(schemEvaluationService.queryById(id));
+ }
+
+ /**
+ * 新增方案评价任务
+ */
+ @SaCheckPermission("productManagement:SchemEvaluation:add")
+ @Log(title = "方案评价任务", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody SchemEvaluationBo bo) throws IOException, InterruptedException {
+ return toAjax(schemEvaluationService.insertByBo(bo));
+ }
+
+ /**
+ * 修改方案评价任务
+ */
+ @SaCheckPermission("productManagement:SchemEvaluation:edit")
+ @Log(title = "方案评价任务", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody SchemEvaluationBo bo) {
+ return toAjax(schemEvaluationService.updateByBo(bo));
+ }
+
+ /**
+ * 删除方案评价任务
+ *
+ * @param ids 主键串
+ */
+ @SaCheckPermission("productManagement:SchemEvaluation:remove")
+ @Log(title = "方案评价任务", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ids) {
+ return toAjax(schemEvaluationService.deleteWithValidByIds(List.of(ids), true));
+ }
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/TenderTaskController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/TenderTaskController.java
new file mode 100644
index 0000000..e8fd016
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/TenderTaskController.java
@@ -0,0 +1,107 @@
+package org.dromara.productManagement.controller;
+
+import java.io.IOException;
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.productManagement.domain.vo.TenderTaskVo;
+import org.dromara.productManagement.domain.bo.TenderTaskBo;
+import org.dromara.productManagement.service.ITenderTaskService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 招标审核任务
+ *
+ * @author Lion Li
+ * @date 2024-12-31
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/productManagement/TenderTask")
+public class TenderTaskController extends BaseController {
+
+ private final ITenderTaskService tenderTaskService;
+
+ /**
+ * 查询招标审核任务列表
+ */
+ @SaCheckPermission("productManagement:TenderTask:list")
+ @GetMapping("/list")
+ public TableDataInfo list(TenderTaskBo bo, PageQuery pageQuery) {
+ return tenderTaskService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出招标审核任务列表
+ */
+ @SaCheckPermission("productManagement:TenderTask:export")
+ @Log(title = "招标审核任务", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(TenderTaskBo bo, HttpServletResponse response) {
+// List list = tenderTaskService.queryList(bo);
+// ExcelUtil.exportExcel(list, "招标审核任务", TenderTaskVo.class, response);
+ }
+
+ /**
+ * 获取招标审核任务详细信息
+ *
+ * @param id 主键
+ */
+ @SaCheckPermission("productManagement:TenderTask:query")
+ @GetMapping("/{id}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long id) {
+ return R.ok(tenderTaskService.queryById(id));
+ }
+
+ /**
+ * 新增招标审核任务
+ */
+ @SaCheckPermission("productManagement:TenderTask:add")
+ @Log(title = "招标审核任务", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody TenderTaskBo bo) throws IOException, InterruptedException {
+ return toAjax(tenderTaskService.insertByBo(bo));
+ }
+
+ /**
+ * 修改招标审核任务
+ */
+ @SaCheckPermission("productManagement:TenderTask:edit")
+ @Log(title = "招标审核任务", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody TenderTaskBo bo) {
+ return toAjax(tenderTaskService.updateByBo(bo));
+ }
+
+ /**
+ * 删除招标审核任务
+ *
+ * @param ids 主键串
+ */
+ @SaCheckPermission("productManagement:TenderTask:remove")
+ @Log(title = "招标审核任务", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ids) {
+ return toAjax(tenderTaskService.deleteWithValidByIds(List.of(ids), true));
+ }
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualTaskSupplement.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualTaskSupplement.java
new file mode 100644
index 0000000..5c48fc8
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualTaskSupplement.java
@@ -0,0 +1,42 @@
+package org.dromara.productManagement.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.tenant.core.TenantEntity;
+
+import java.io.Serial;
+
+/**
+ * 合同任务额外字段
+ 对象 contractual_task_supplement
+ *
+ * @author Lion Li
+ * @date 2025-01-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("contractual_task_supplement")
+public class ContractualTaskSupplement extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id")
+ private Long id;
+
+ /**
+ * 任务id
+ */
+ private Long documentTasksId;
+
+ /**
+ * 合同角色
+ */
+ private String contractPartyRole;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTaskChild.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTaskChild.java
index b06efd6..7c3bdc3 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTaskChild.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTaskChild.java
@@ -8,6 +8,7 @@ import java.util.Date;
public class DocumentTaskChild {
private Long id;
private String taskName;
+ private String taskType;
private String taskId;
private Long ossId;
private Date estimatedCompletionTime;
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTaskResults.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTaskResults.java
index 5562c22..d1ec8a2 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTaskResults.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTaskResults.java
@@ -36,6 +36,10 @@ public class DocumentTaskResults extends TenantEntity {
* 任务结果
*/
private String result;
+ /**
+ * 任务结果json
+ */
+ private String resultJson;
/**
*
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java
index 950e16c..46e88d7 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java
@@ -33,6 +33,10 @@ public class DocumentTasks extends TenantEntity {
* 任务名称
*/
private String taskName;
+ /**
+ * 任务类型
+ */
+ private String taskType;
/**
* 后台任务id
*/
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasksPermissions.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasksPermissions.java
index ba04fdb..a7635b3 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasksPermissions.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasksPermissions.java
@@ -1,5 +1,8 @@
package org.dromara.productManagement.domain;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@@ -48,10 +51,14 @@ public class DocumentTasksPermissions extends TenantEntity {
private Long priority;
/**
- * 任务种类
+ * 任务名称
+ */
+ private String taskName;
+ /**
+ * 任务类型
*/
- private String taskType;
+ private String taskType;
/**
* 删除标志
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasksPermissionsDetail.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasksPermissionsDetail.java
index b4e315e..4b415eb 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasksPermissionsDetail.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasksPermissionsDetail.java
@@ -1,5 +1,8 @@
package org.dromara.productManagement.domain;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@@ -38,8 +41,13 @@ public class DocumentTasksPermissionsDetail extends TenantEntity {
private Long remainingDocumentCount;
/**
- * 任务种类
+ * 任务名称
*/
+ private String taskName;
+ /**
+ * 任务类型
+ */
+
private String taskType;
/**
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelPrompts.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelPrompts.java
index 9d92725..885fac6 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelPrompts.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelPrompts.java
@@ -1,7 +1,10 @@
package org.dromara.productManagement.domain;
+import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.encrypt.annotation.EncryptField;
import org.dromara.common.encrypt.enumd.AlgorithmType;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@@ -39,7 +42,11 @@ public class ModelPrompts extends TenantEntity {
*/
@EncryptField(algorithm = AlgorithmType.SM4, password = "c7746c89a780c27eda14a2f9b3097c8f")
private String taskName;
+ /**
+ * 任务类型
+ */
+ private String taskType;
/**
* 模型所属区域
*/
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelPromptsHistory.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelPromptsHistory.java
index 8b834ab..b2e3986 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelPromptsHistory.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelPromptsHistory.java
@@ -1,5 +1,8 @@
package org.dromara.productManagement.domain;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@@ -41,7 +44,10 @@ public class ModelPromptsHistory extends TenantEntity {
* 模型任务名称
*/
private String taskName;
-
+ /**
+ * 任务类型
+ */
+ private String taskType;
/**
* 模型所属区域
*/
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelUserPromptssetting.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelUserPromptssetting.java
index 54a5ba2..c502394 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelUserPromptssetting.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ModelUserPromptssetting.java
@@ -41,20 +41,23 @@ public class ModelUserPromptssetting extends TenantEntity {
* 任务类型(名称)
*/
private String taskName;
-
+ /**
+ * 任务类型
+ */
+ private String taskType;
/**
* 用户id
*/
private Long userId;
/**
- *
+ *
*/
@TableLogic
private String delFlag;
/**
- *
+ *
*/
@Version
private String version;
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/SchemEvaluation.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/SchemEvaluation.java
new file mode 100644
index 0000000..2287359
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/SchemEvaluation.java
@@ -0,0 +1,92 @@
+package org.dromara.productManagement.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serial;
+
+/**
+ * 方案评价任务对象 tender_summary_task
+ *
+ * @author Lion Li
+ * @date 2025-01-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tender_summary_task")
+public class SchemEvaluation extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+
+ */
+ @TableId(value = "id")
+ private Long id;
+
+ /**
+ * 模型所属行业
+ */
+ private String taskIndustry;
+
+ /**
+ * 模型所属区域
+ */
+ private String taskRegion;
+
+ /**
+ * 任务名称
+ */
+ private String taskName;
+
+ /**
+ * 文档名称
+ */
+ private String documentName;
+
+ /**
+ * ossid
+ */
+ private Long ossId;
+
+ /**
+ * 预计完成时间
+ */
+ private Date estimatedCompletionTime;
+
+ /**
+ * 当前状态
+ */
+ private String progressStatus;
+
+ /**
+ * 删除标志 0 有效 2删除
+ */
+ @TableLogic
+ private String delFlag;
+
+ /**
+ * 版本
+
+ */
+ @Version
+ private Long version;
+
+ /**
+ * 任务类型
+ */
+ private String taskType;
+
+ /**
+ * python任务id
+ */
+ private String taskId;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/TenderTask.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/TenderTask.java
new file mode 100644
index 0000000..29e2fc6
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/TenderTask.java
@@ -0,0 +1,93 @@
+package org.dromara.productManagement.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+
+import java.io.Serial;
+
+/**
+ * 招标摘要任务对象 tender_summary_task
+ *
+ * @author Lion Li
+ * @date 2024-12-31
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tender_summary_task")
+public class TenderTask extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+
+ */
+ @TableId(value = "id")
+ private Long id;
+
+ /**
+ * 模型所属行业
+ */
+ private String taskIndustry;
+
+ /**
+ * 模型所属区域
+ */
+ private String taskRegion;
+
+ /**
+ * 任务名称
+ */
+ private String taskName;
+
+ /**
+ * 文档名称
+ */
+ private String documentName;
+
+ /**
+ * ossid
+ */
+ private Long ossId;
+
+ /**
+ * 预计完成时间
+ */
+ private Date estimatedCompletionTime;
+
+ /**
+ * 当前状态
+
+ */
+ private String progressStatus;
+
+ /**
+ * 删除标志 0 有效 2删除
+ */
+ @TableLogic
+ private String delFlag;
+
+ /**
+ * 版本
+
+ */
+ @Version
+ private Long version;
+
+ /**
+ * 任务类型
+ */
+ private String taskType;
+
+
+ /**
+ * python任务id
+ */
+ private String taskId;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/BaseTaskBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/BaseTaskBo.java
new file mode 100644
index 0000000..2f55eaa
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/BaseTaskBo.java
@@ -0,0 +1,56 @@
+package org.dromara.productManagement.domain.bo;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+
+import java.util.List;
+@Data
+public class BaseTaskBo extends BaseEntity {
+
+
+ /**
+ * 模型所属行业
+ */
+ @NotBlank(message = "模型所属行业不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String taskIndustry;
+
+ /**
+ * 模型所属区域
+ */
+ @NotBlank(message = "模型所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String taskRegion;
+
+
+ @NotEmpty(message = "任务名称列表不能为空", groups = { AddGroup.class, EditGroup.class })
+ private List<@NotBlank(message = "任务名称不能为空") String> taskNameList;
+ /**
+ *
+ */
+ private String documentName;
+
+ /**
+ *
+ */
+ @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long ossId;
+
+ /**
+ *
+ */
+ private String progressStatus;
+
+ /**
+ * 任务类型
+ */
+ private String taskType;
+
+ /**
+ * 任务名称
+ */
+ private String taskName;
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTaskSupplementBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTaskSupplementBo.java
new file mode 100644
index 0000000..3e5de35
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTaskSupplementBo.java
@@ -0,0 +1,42 @@
+package org.dromara.productManagement.domain.bo;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.dromara.productManagement.domain.ContractualTaskSupplement;
+
+/**
+ * 合同任务额外字段
+ 业务对象 contractual_task_supplement
+ *
+ * @author Lion Li
+ * @date 2025-01-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ContractualTaskSupplement.class, reverseConvertGenerate = false)
+public class ContractualTaskSupplementBo extends BaseEntity {
+
+ /**
+ *
+ */
+ private Long id;
+
+ /**
+ * 任务id
+ */
+ @NotNull(message = "任务id不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long documentTasksId;
+
+ /**
+ * 合同角色
+ */
+ @NotBlank(message = "合同角色不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String contractPartyRole;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java
index f822383..b290912 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java
@@ -12,6 +12,7 @@ import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.productManagement.domain.DocumentTasks;
/**
* 合同任务业务对象 contractual_tasks
@@ -21,47 +22,48 @@ import com.fasterxml.jackson.annotation.JsonFormat;
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = ContractualTasks.class, reverseConvertGenerate = false)
-public class ContractualTasksBo extends BaseEntity {
+@AutoMapper(target = DocumentTasks.class, reverseConvertGenerate = false)
+public class ContractualTasksBo extends BaseTaskBo {
/**
*
*/
private Long id;
-
- /**
- * 模型所属行业
- */
- @NotBlank(message = "模型所属行业不能为空", groups = { AddGroup.class, EditGroup.class })
- private String taskIndustry;
-
- /**
- * 模型所属区域
- */
- @NotBlank(message = "模型所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
- private String taskRegion;
-
- /**
- * 合同任务名称
- */
- private String contractTaskName;
- @NotEmpty(message = "任务名称列表不能为空", groups = { AddGroup.class, EditGroup.class })
- private List<@NotBlank(message = "任务名称不能为空") String> taskNameList;
/**
- *
- */
- private String documentName;
-
- /**
- *
- */
- @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
- private Long ossId;
-
- /**
- *
+ * 合同角色
*/
- private String progressStatus;
+ @NotBlank(message = "合同角色不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String contractPartyRole;
+// /**
+// * 模型所属行业
+// */
+// @NotBlank(message = "模型所属行业不能为空", groups = { AddGroup.class, EditGroup.class })
+// private String taskIndustry;
+//
+// /**
+// * 模型所属区域
+// */
+// @NotBlank(message = "模型所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
+// private String taskRegion;
+//
+//
+// @NotEmpty(message = "任务名称列表不能为空", groups = { AddGroup.class, EditGroup.class })
+// private List<@NotBlank(message = "任务名称不能为空") String> taskNameList;
+// /**
+// *
+// */
+// private String documentName;
+//
+// /**
+// *
+// */
+// @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+// private Long ossId;
+//
+// /**
+// *
+// */
+// private String progressStatus;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTaskResultsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTaskResultsBo.java
index 684b1e5..06eee1c 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTaskResultsBo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTaskResultsBo.java
@@ -34,6 +34,10 @@ public class DocumentTaskResultsBo extends BaseEntity {
* 任务结果
*/
private String result;
+ /**
+ * 任务结果json
+ **/
+ private String resultJson;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java
index 8b220a9..d3fa3a0 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java
@@ -24,52 +24,13 @@ import com.fasterxml.jackson.annotation.JsonFormat;
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DocumentTasks.class, reverseConvertGenerate = false)
-public class DocumentTasksBo extends BaseEntity {
+public class DocumentTasksBo extends BaseTaskBo {
/**
* 主键
*/
private String id;
- /**
- * 任务名称
- */
-// @NotBlank(message = "任务名称不能为空", groups = { AddGroup.class, EditGroup.class })
- private String taskName;
- @NotEmpty(message = "任务名称列表不能为空", groups = { AddGroup.class, EditGroup.class })
- private List<@NotBlank(message = "任务名称不能为空") String> taskNameList;
- /**
- * 文档名称
- */
-// @NotBlank(message = "文档名称不能为空", groups = { AddGroup.class, EditGroup.class })
- private String documentName;
- @NotNull(message = "文档不能为空", groups = { AddGroup.class, EditGroup.class })
- private Long ossId;
-// /**
-// * 预计时间
-// */
-//// @NotNull(message = "预计时间不能为空", groups = { AddGroup.class, EditGroup.class })
-// private Date estimatedCompletionTime;
-// /**
-// * 后台任务id
-// */
-// private String taskId;
-// /**
-// * 状态
-// */
-//// @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
- private String progressStatus;
- /**
- * 模型所属区域
- */
- @NotBlank(message = "模型所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
- private String taskRegion;
-
- /**
- * 模型所属行业
- */
- @NotBlank(message = "模型所属行业不能为空", groups = { AddGroup.class, EditGroup.class })
- private String taskIndustry;
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksPermissionsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksPermissionsBo.java
index 340dd5e..5e70162 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksPermissionsBo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksPermissionsBo.java
@@ -1,5 +1,8 @@
package org.dromara.productManagement.domain.bo;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.productManagement.domain.DocumentTasksPermissions;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
@@ -53,13 +56,17 @@ public class DocumentTasksPermissionsBo extends BaseEntity {
/**
* 任务种类
*/
- private String taskType;
+ private String taskName;
+ /**
+ * 任务类型
+ */
+ private String taskType;
/**
* 任务列表
*/
@NotNull(message = "任务种类不能为空", groups = { AddGroup.class, EditGroup.class })
- private List taskTypeList;
+ private List taskNameList;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksPermissionsDetailBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksPermissionsDetailBo.java
index 6aaa5e8..f85583b 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksPermissionsDetailBo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksPermissionsDetailBo.java
@@ -36,11 +36,15 @@ public class DocumentTasksPermissionsDetailBo extends BaseEntity {
*/
@NotNull(message = "剩余文档数不能为空", groups = { AddGroup.class, EditGroup.class })
private Long remainingDocumentCount;
-
/**
* 任务种类
*/
@NotBlank(message = "任务种类不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String taskName;
+ /**
+ * 任务类型
+ */
+
private String taskType;
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelPromptsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelPromptsBo.java
index 5822a58..ec3331c 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelPromptsBo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelPromptsBo.java
@@ -36,7 +36,10 @@ public class ModelPromptsBo extends BaseEntity {
*/
@NotBlank(message = "模型任务名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String taskName;
-
+ /**
+ * 模型任务类型
+ */
+ private String taskType;
/**
* 模型所属区域
*/
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelPromptsHistoryBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelPromptsHistoryBo.java
index f12de7b..bcda409 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelPromptsHistoryBo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelPromptsHistoryBo.java
@@ -39,6 +39,10 @@ public class ModelPromptsHistoryBo extends BaseEntity {
* 模型任务名称
*/
private String taskName;
+ /**
+ * 模型任务类型
+ */
+ private String taskType;
/**
* 模型所属区域
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelUserPromptssettingBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelUserPromptssettingBo.java
index 9516d5f..7c8ad38 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelUserPromptssettingBo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ModelUserPromptssettingBo.java
@@ -49,6 +49,9 @@ public class ModelUserPromptssettingBo extends BaseEntity {
*/
@NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long userId;
-
+ /**
+ * 任务类型
+ */
+ private String taskType;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/SchemEvaluationBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/SchemEvaluationBo.java
new file mode 100644
index 0000000..5080a7b
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/SchemEvaluationBo.java
@@ -0,0 +1,28 @@
+package org.dromara.productManagement.domain.bo;
+
+import org.dromara.productManagement.domain.DocumentTasks;
+import org.dromara.productManagement.domain.SchemEvaluation;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * 方案评价任务业务对象 tender_summary_task
+ *
+ * @author Lion Li
+ * @date 2025-01-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = DocumentTasks.class, reverseConvertGenerate = false)
+public class SchemEvaluationBo extends BaseTaskBo {
+ private Long id;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/TenderTaskBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/TenderTaskBo.java
new file mode 100644
index 0000000..bf04f73
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/TenderTaskBo.java
@@ -0,0 +1,28 @@
+package org.dromara.productManagement.domain.bo;
+
+import org.dromara.productManagement.domain.DocumentTasks;
+import org.dromara.productManagement.domain.TenderTask;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 招标摘要任务业务对象 tender_summary_task
+ *
+ * @author Lion Li
+ * @date 2024-12-31
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = DocumentTasks.class, reverseConvertGenerate = false)
+public class TenderTaskBo extends BaseTaskBo {
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/BaseTaskVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/BaseTaskVo.java
new file mode 100644
index 0000000..57db8d4
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/BaseTaskVo.java
@@ -0,0 +1,73 @@
+package org.dromara.productManagement.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+
+import java.util.Date;
+
+@Data
+public class BaseTaskVo {
+ /**
+ * 任务名称
+ */
+ @ExcelProperty(value = "任务名称", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "scheme_review")
+ private String taskName;
+ /**
+ * 任务类型
+ */
+ @ExcelProperty(value = "任务类型", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "task_type")
+ private String taskType;
+ /**
+ * 模型所属区域
+ */
+ @ExcelProperty(value = "模型所属区域", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "model_region")
+ private String taskRegion;
+
+ /**
+ * 模型所属行业
+ */
+ @ExcelProperty(value = "模型所属行业", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "model_industry")
+ private String taskIndustry;
+ /**
+ * 文档名称
+ */
+ @ExcelProperty(value = "文档名称")
+ private String documentName;
+ /**
+ * 后台任务id
+ */
+ private String taskId;
+ /**
+ * 预计时间
+ */
+ @ExcelProperty(value = "预计时间")
+ private Date estimatedCompletionTime;
+ /**
+ * 状态
+ */
+ @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "document_task_status")
+ private String progressStatus;
+ /**
+ * 任务时长
+ */
+ private String taskDuration;
+ @ExcelProperty(value = "上传时间")
+ private Date createTime;
+
+
+ /**
+ * 创建者
+ */
+ private Long createBy;
+ private String createUser;
+
+ @ExcelProperty(value = "更新时间")
+ private Date updateTime;
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTaskSupplementVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTaskSupplementVo.java
new file mode 100644
index 0000000..76027fe
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTaskSupplementVo.java
@@ -0,0 +1,50 @@
+package org.dromara.productManagement.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.productManagement.domain.ContractualTaskSupplement;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 合同任务额外字段
+ 视图对象 contractual_task_supplement
+ *
+ * @author Lion Li
+ * @date 2025-01-21
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = ContractualTaskSupplement.class)
+public class ContractualTaskSupplementVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ExcelProperty(value = "")
+ private Long id;
+
+ /**
+ * 任务id
+ */
+ @ExcelProperty(value = "任务id")
+ private Long documentTasksId;
+
+ /**
+ * 合同角色
+ */
+ @ExcelProperty(value = "合同角色")
+ private String contractPartyRole;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java
index f0762ac..29c127e 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java
@@ -2,6 +2,9 @@ package org.dromara.productManagement.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.NotBlank;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
import org.dromara.productManagement.domain.ContractualTasks;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
@@ -25,7 +28,7 @@ import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ContractualTasks.class)
-public class ContractualTasksVo implements Serializable {
+public class ContractualTasksVo extends BaseTaskVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@@ -34,58 +37,11 @@ public class ContractualTasksVo implements Serializable {
*
*/
@ExcelProperty(value = "")
- private Long id;
-
- /**
- * 模型所属行业
- */
- @ExcelProperty(value = "模型所属行业", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "model_industry")
- private String taskIndustry;
-
- /**
- * 模型所属区域
- */
- @ExcelProperty(value = "模型所属区域", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "model_region")
- private String taskRegion;
-
- /**
- * 合同任务名称
- */
- @ExcelProperty(value = "合同任务名称")
- private String contractTaskName;
-
- /**
- *
- */
- @ExcelProperty(value = "文档名称")
- private String documentName;
-
- /**
- *
- */
- @ExcelProperty(value = "文件id")
- private Long ossId;
-
- /**
- *
- */
- @ExcelProperty(value = "完成情况")
- private String progressStatus;
- /**
- * 创建者
- */
- private Long createBy;
- @ExcelProperty(value = "提交人")
- private String createUser;
+ private String id;
/**
- * 任务时长
+ * 合同角色
*/
- private String taskDuration;
- @ExcelProperty(value = "跟新时间")
- private Date updateTime;
- @ExcelProperty(value = "上传时间")
- private Date createTime;
+ @ExcelProperty(value = "合同角色")
+ private String contractPartyRole;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksPermissionsDetailVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksPermissionsDetailVo.java
index 65ca66e..6a1fabe 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksPermissionsDetailVo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksPermissionsDetailVo.java
@@ -52,8 +52,12 @@ public class DocumentTasksPermissionsDetailVo implements Serializable {
* 任务种类
*/
@ExcelProperty(value = "任务种类", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "document_task")
+ private String taskName;
+ /**
+ * 任务类型
+ */
+ @ExcelProperty(value = "任务类型", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "task_type")
private String taskType;
-
private Date updateTime;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksPermissionsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksPermissionsVo.java
index f86ec3f..6b590ac 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksPermissionsVo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksPermissionsVo.java
@@ -62,13 +62,17 @@ public class DocumentTasksPermissionsVo implements Serializable {
* 任务种类
*/
@ExcelProperty(value = "任务种类", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "document_task")
+ private String taskName;
+ /**
+ * 任务类型
+ */
+ @ExcelProperty(value = "任务类型", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "task_type")
private String taskType;
-
/**
* 任务列表
*/
- private List taskTypeList;
+ private List taskNameList;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java
index b3d4e3b..8f03265 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java
@@ -25,64 +25,12 @@ import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DocumentTasks.class)
-public class DocumentTasksVo implements Serializable {
+public class DocumentTasksVo extends BaseTaskVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@ExcelProperty(value = "主键")
private String id;
- /**
- * 任务名称
- */
- @ExcelProperty(value = "任务名称", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "document_task")
- private String taskName;
- /**
- * 文档名称
- */
- @ExcelProperty(value = "文档名称")
- private String documentName;
- /**
- * 后台任务id
- */
- private String taskId;
- /**
- * 预计时间
- */
- @ExcelProperty(value = "预计时间")
- private Date estimatedCompletionTime;
- @ExcelProperty(value = "上传时间")
- private Date createTime;
- /**
- * 状态
- */
- @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "document_task_status")
- private String progressStatus;
- /**
- * 创建者
- */
- private Long createBy;
- private String createUser;
- /**
- * 任务时长
- */
- private String taskDuration;
- @ExcelProperty(value = "更新时间")
- private Date updateTime;
- /**
- * 模型所属区域
- */
- @ExcelProperty(value = "模型所属区域", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "model_region")
- private String taskRegion;
-
- /**
- * 模型所属行业
- */
- @ExcelProperty(value = "模型所属行业", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "model_industry")
- private String taskIndustry;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelPromptsHistoryVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelPromptsHistoryVo.java
index 0032099..9393dab 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelPromptsHistoryVo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelPromptsHistoryVo.java
@@ -50,9 +50,13 @@ public class ModelPromptsHistoryVo implements Serializable {
* 模型任务名称
*/
@ExcelProperty(value = "模型任务名称", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "document_task")
private String taskName;
-
+ /**
+ * 任务类型
+ */
+ @ExcelProperty(value = "任务类型", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "task_type")
+ private String taskType;
/**
* 模型所属区域
*/
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelPromptsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelPromptsVo.java
index 33da280..c47aa7b 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelPromptsVo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelPromptsVo.java
@@ -44,9 +44,13 @@ public class ModelPromptsVo implements Serializable {
* 模型任务名称
*/
@ExcelProperty(value = "模型任务名称", converter = ExcelDictConvert.class)
- @ExcelDictFormat(dictType = "document_task")
private String taskName;
-
+ /**
+ * 任务类型
+ */
+ @ExcelProperty(value = "任务类型", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "task_type")
+ private String taskType;
/**
* 模型所属区域
*/
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelUserPromptssettingVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelUserPromptssettingVo.java
index bb50ac4..0613be3 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelUserPromptssettingVo.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ModelUserPromptssettingVo.java
@@ -59,5 +59,8 @@ public class ModelUserPromptssettingVo implements Serializable {
@ExcelProperty(value = "用户id")
private Long userId;
-
+ /**
+ * 任务类型
+ */
+ private String taskType;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/SchemEvaluationVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/SchemEvaluationVo.java
new file mode 100644
index 0000000..9f4071b
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/SchemEvaluationVo.java
@@ -0,0 +1,36 @@
+package org.dromara.productManagement.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.productManagement.domain.SchemEvaluation;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 方案评价任务视图对象 tender_summary_task
+ *
+ * @author Lion Li
+ * @date 2025-01-03
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SchemEvaluation.class)
+public class SchemEvaluationVo extends BaseTaskVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/TenderTaskVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/TenderTaskVo.java
new file mode 100644
index 0000000..151aa35
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/TenderTaskVo.java
@@ -0,0 +1,70 @@
+package org.dromara.productManagement.domain.vo;
+
+import org.dromara.productManagement.domain.TenderTask;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * 招标摘要任务视图对象 tender_summary_task
+ *
+ * @author Lion Li
+ * @date 2024-12-31
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = TenderTask.class)
+public class TenderTaskVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 模型所属行业
+ */
+ @ExcelProperty(value = "模型所属行业", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "model_industry")
+ private String taskIndustry;
+
+ /**
+ * 模型所属区域
+ */
+ @ExcelProperty(value = "模型所属区域", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "model_region")
+ private String taskRegion;
+
+ /**
+ * 任务名称
+ */
+ @ExcelProperty(value = "任务名称")
+ private String taskName;
+
+ /**
+ * 文档名称
+ */
+ @ExcelProperty(value = "文档名称")
+ private String documentName;
+
+ /**
+ * ossid
+ */
+ @ExcelProperty(value = "ossid")
+ private Long ossId;
+
+ /**
+ * 当前状态
+
+ */
+ @ExcelProperty(value = "当前状态 ", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "document_task_status")
+ private String progressStatus;
+
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/enums/TaskEnum.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/enums/TaskEnum.java
new file mode 100644
index 0000000..7250a67
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/enums/TaskEnum.java
@@ -0,0 +1,96 @@
+package org.dromara.productManagement.enums;
+
+public class TaskEnum {
+ public enum TaskType {
+ SCHEME_REVIEW("scheme_review", "方案审核"),
+ CONTRACT_REVIEW("contract_review", "合同审核"),
+ TENDER_REVIEW("tender_review", "招标审核"),
+
+ SCHEME_EVALUATION("scheme_evaluation", "方案评价"),
+ PROJECT_DOCUMENT_REVIEW("project_document_review", "项目文档审核");
+
+ private final String value;
+ private final String label;
+
+ TaskType(String value, String label) {
+ this.value = value;
+ this.label = label;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+ }
+
+ // 方案审核子任务枚举
+ public enum SchemeTask {
+ DOCUMENT_SIMILARITY("checkRepeatText", "文档相似性检查"),
+ DOCUMENT_ERROR("checkDocumentError", "文档纠错"),
+ SCHEME_EVALUATION("schemEvaluation", "方案评价"),
+ PLACE_CHECK("checkPlaceName", "地名检查"),
+ COMPANY_CHECK("checkCompanyName", "公司名称检查"),
+ TITLE_CHECK("checkTitleName", "文档结构检查");
+
+ private final String value;
+ private final String label;
+
+ SchemeTask(String value, String label) {
+ this.value = value;
+ this.label = label;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+ }
+
+ // 合同审核子任务枚举
+ public enum ContractTask {
+ CONTRACT_REVIEW("contractReview", "合同审核");
+
+ private final String value;
+ private final String label;
+
+ ContractTask(String value, String label) {
+ this.value = value;
+ this.label = label;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+ }
+
+ // 招标审核子任务枚举
+ public enum TenderTask {
+ TENDER_SUMMARY("tenderSummary", "招标摘要");
+
+ private final String value;
+ private final String label;
+
+ TenderTask(String value, String label) {
+ this.value = value;
+ this.label = label;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+ }
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualTaskSupplementMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualTaskSupplementMapper.java
new file mode 100644
index 0000000..79eb2c3
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualTaskSupplementMapper.java
@@ -0,0 +1,8 @@
+package org.dromara.productManagement.mapper;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.productManagement.domain.ContractualTaskSupplement;
+import org.dromara.productManagement.domain.vo.ContractualTaskSupplementVo;
+
+public interface ContractualTaskSupplementMapper extends BaseMapperPlus {
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/DocumentTasksPermissionsMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/DocumentTasksPermissionsMapper.java
index bb6303b..9f2350e 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/DocumentTasksPermissionsMapper.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/DocumentTasksPermissionsMapper.java
@@ -12,6 +12,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
* @date 2024-11-08
*/
public interface DocumentTasksPermissionsMapper extends BaseMapperPlus {
- DocumentTasksPermissionsVo selectDocumentPermissionsByUserIdAndTaskType(@Param("userId") Long userId,@Param("taskType") String taskType);
+ DocumentTasksPermissionsVo selectDocumentPermissionsByUserIdAndTaskName(@Param("userId") Long userId,@Param("taskName") String taskName);
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/SchemEvaluationMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/SchemEvaluationMapper.java
new file mode 100644
index 0000000..cbef56d
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/SchemEvaluationMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.productManagement.mapper;
+
+import org.dromara.productManagement.domain.SchemEvaluation;
+import org.dromara.productManagement.domain.vo.SchemEvaluationVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 方案评价任务Mapper接口
+ *
+ * @author Lion Li
+ * @date 2025-01-03
+ */
+public interface SchemEvaluationMapper extends BaseMapperPlus {
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/TenderTaskMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/TenderTaskMapper.java
new file mode 100644
index 0000000..f9fe611
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/TenderTaskMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.productManagement.mapper;
+
+import org.dromara.productManagement.domain.TenderTask;
+import org.dromara.productManagement.domain.vo.TenderTaskVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 招标摘要任务Mapper接口
+ *
+ * @author Lion Li
+ * @date 2024-12-31
+ */
+public interface TenderTaskMapper extends BaseMapperPlus {
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualTaskSupplementService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualTaskSupplementService.java
new file mode 100644
index 0000000..f0f0e59
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualTaskSupplementService.java
@@ -0,0 +1,87 @@
+package org.dromara.productManagement.service;
+
+
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.productManagement.domain.bo.ContractualTaskSupplementBo;
+import org.dromara.productManagement.domain.vo.ContractualTaskSupplementVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 合同任务额外字段
+ Service接口
+ *
+ * @author Lion Li
+ * @date 2025-01-21
+ */
+public interface IContractualTaskSupplementService {
+
+ /**
+ * 查询合同任务额外字段
+
+ *
+ * @param id 主键
+ * @return 合同任务额外字段
+
+ */
+ ContractualTaskSupplementVo queryById(Long id);
+
+ /**
+ * 分页查询合同任务额外字段
+ 列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 合同任务额外字段
+ 分页列表
+ */
+ TableDataInfo queryPageList(ContractualTaskSupplementBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询符合条件的合同任务额外字段
+ 列表
+ *
+ * @param bo 查询条件
+ * @return 合同任务额外字段
+ 列表
+ */
+ List queryList(ContractualTaskSupplementBo bo);
+
+ /**
+ * 新增合同任务额外字段
+
+ *
+ * @param bo 合同任务额外字段
+
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(ContractualTaskSupplementBo bo);
+
+ /**
+ * 修改合同任务额外字段
+
+ *
+ * @param bo 合同任务额外字段
+
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(ContractualTaskSupplementBo bo);
+
+ /**
+ * 校验并批量删除合同任务额外字段
+ 信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+ /**
+ * 根据合同id查询合同方角色
+ * @param id
+ * @return
+ */
+ String queryContractPartyRole(String id);
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualTasksService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualTasksService.java
index 2becf65..8718e2c 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualTasksService.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualTasksService.java
@@ -1,10 +1,9 @@
package org.dromara.productManagement.service;
-import org.dromara.productManagement.domain.DocumentTaskGroup;
-import org.dromara.productManagement.domain.vo.ContractualTasksVo;
import org.dromara.productManagement.domain.bo.ContractualTasksBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.productManagement.domain.vo.ContractualTasksVo;
import org.dromara.productManagement.domain.vo.DocumentTasksVo;
import java.io.IOException;
@@ -17,7 +16,7 @@ import java.util.List;
* @author Lion Li
* @date 2024-12-11
*/
-public interface IContractualTasksService {
+public interface IContractualTasksService {
/**
* 查询合同任务
@@ -34,7 +33,7 @@ public interface IContractualTasksService {
* @param pageQuery 分页参数
* @return 合同任务分页列表
*/
- TableDataInfo queryPageList(ContractualTasksBo bo, PageQuery pageQuery);
+ TableDataInfo queryPageList(ContractualTasksBo bo, PageQuery pageQuery);
/**
* 查询符合条件的合同任务列表
@@ -68,4 +67,5 @@ public interface IContractualTasksService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTaskResultsService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTaskResultsService.java
index b862a18..b23c6c0 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTaskResultsService.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTaskResultsService.java
@@ -1,5 +1,6 @@
package org.dromara.productManagement.service;
+import jakarta.servlet.http.HttpServletResponse;
import org.dromara.productManagement.domain.vo.DocumentTaskResultsVo;
import org.dromara.productManagement.domain.bo.DocumentTaskResultsBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -67,4 +68,6 @@ public interface IDocumentTaskResultsService {
Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
DocumentTaskResultsVo queryByTaskId(String id);
+
+ void downloadResult(Long[] ids, HttpServletResponse response);
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTasksPermissionsService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTasksPermissionsService.java
index 3948d65..c09d2e9 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTasksPermissionsService.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTasksPermissionsService.java
@@ -71,5 +71,5 @@ public interface IDocumentTasksPermissionsService {
List getUsersAll();
DocumentTasksPermissionsVo getTasksPermissionsByUserId(Long userId);
- void validateUserTaskPermissions(List taskNames, Long userId);
+ void validateUserTaskPermissions(String taskType,List taskNames, Long userId);
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTasksService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTasksService.java
index 04924a0..0f464c7 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTasksService.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IDocumentTasksService.java
@@ -72,5 +72,4 @@ public interface IDocumentTasksService {
int stopTask(Long id);
SysOssVo uploadFile(MultipartFile file) throws IOException, InterruptedException;
-
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IModelUserPromptssettingService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IModelUserPromptssettingService.java
index b977aea..f42247e 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IModelUserPromptssettingService.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IModelUserPromptssettingService.java
@@ -66,5 +66,5 @@ public interface IModelUserPromptssettingService {
*/
Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
- ModelUserPromptssettingVo queryByuserId(Long userId);
+ ModelUserPromptssettingVo queryByuserId(Long userId,String taskType);
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ISchemEvaluationService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ISchemEvaluationService.java
new file mode 100644
index 0000000..8e65f8c
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ISchemEvaluationService.java
@@ -0,0 +1,70 @@
+package org.dromara.productManagement.service;
+
+import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.dromara.productManagement.domain.vo.SchemEvaluationVo;
+import org.dromara.productManagement.domain.bo.SchemEvaluationBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 方案评价任务Service接口
+ *
+ * @author Lion Li
+ * @date 2025-01-03
+ */
+public interface ISchemEvaluationService {
+
+ /**
+ * 查询方案评价任务
+ *
+ * @param id 主键
+ * @return 方案评价任务
+ */
+ DocumentTasksVo queryById(Long id);
+
+ /**
+ * 分页查询方案评价任务列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 方案评价任务分页列表
+ */
+ TableDataInfo queryPageList(SchemEvaluationBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询符合条件的方案评价任务列表
+ *
+ * @param bo 查询条件
+ * @return 方案评价任务列表
+ */
+ List queryList(SchemEvaluationBo bo);
+
+ /**
+ * 新增方案评价任务
+ *
+ * @param bo 方案评价任务
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(SchemEvaluationBo bo) throws IOException, InterruptedException;
+
+ /**
+ * 修改方案评价任务
+ *
+ * @param bo 方案评价任务
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(SchemEvaluationBo bo);
+
+ /**
+ * 校验并批量删除方案评价任务信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ITenderTaskService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ITenderTaskService.java
new file mode 100644
index 0000000..2de52e8
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ITenderTaskService.java
@@ -0,0 +1,70 @@
+package org.dromara.productManagement.service;
+
+import org.dromara.productManagement.domain.bo.TenderTaskBo;
+import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.dromara.productManagement.domain.vo.TenderTaskVo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 招标摘要任务Service接口
+ *
+ * @author Lion Li
+ * @date 2024-12-31
+ */
+public interface ITenderTaskService {
+
+ /**
+ * 查询招标摘要任务
+ *
+ * @param id 主键
+ * @return 招标摘要任务
+ */
+ DocumentTasksVo queryById(Long id);
+
+ /**
+ * 分页查询招标摘要任务列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 招标摘要任务分页列表
+ */
+ TableDataInfo queryPageList(TenderTaskBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询符合条件的招标摘要任务列表
+ *
+ * @param bo 查询条件
+ * @return 招标摘要任务列表
+ */
+ List queryList(TenderTaskBo bo);
+
+ /**
+ * 新增招标摘要任务
+ *
+ * @param bo 招标摘要任务
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(TenderTaskBo bo) throws IOException, InterruptedException;
+
+ /**
+ * 修改招标摘要任务
+ *
+ * @param bo 招标摘要任务
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(TenderTaskBo bo);
+
+ /**
+ * 校验并批量删除招标摘要任务信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTaskSupplementServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTaskSupplementServiceImpl.java
new file mode 100644
index 0000000..9915143
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTaskSupplementServiceImpl.java
@@ -0,0 +1,155 @@
+package org.dromara.productManagement.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.productManagement.domain.ContractualTaskSupplement;
+import org.dromara.productManagement.domain.bo.ContractualTaskSupplementBo;
+import org.dromara.productManagement.domain.vo.ContractualTaskSupplementVo;
+import org.dromara.productManagement.mapper.ContractualTaskSupplementMapper;
+import org.dromara.productManagement.service.IContractualTaskSupplementService;
+import org.springframework.stereotype.Service;
+
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 合同任务额外字段
+ Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2025-01-21
+ */
+@RequiredArgsConstructor
+@Service
+public class ContractualTaskSupplementServiceImpl implements IContractualTaskSupplementService {
+
+ private final ContractualTaskSupplementMapper baseMapper;
+
+ /**
+ * 查询合同任务额外字段
+
+ *
+ * @param id 主键
+ * @return 合同任务额外字段
+
+ */
+ @Override
+ public ContractualTaskSupplementVo queryById(Long id){
+ return baseMapper.selectVoById(id);
+ }
+
+ /**
+ * 分页查询合同任务额外字段
+ 列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 合同任务额外字段
+ 分页列表
+ */
+ @Override
+ public TableDataInfo queryPageList(ContractualTaskSupplementBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 查询符合条件的合同任务额外字段
+ 列表
+ *
+ * @param bo 查询条件
+ * @return 合同任务额外字段
+ 列表
+ */
+ @Override
+ public List queryList(ContractualTaskSupplementBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(ContractualTaskSupplementBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getDocumentTasksId() != null, ContractualTaskSupplement::getDocumentTasksId, bo.getDocumentTasksId());
+ lqw.eq(StringUtils.isNotBlank(bo.getContractPartyRole()), ContractualTaskSupplement::getContractPartyRole, bo.getContractPartyRole());
+ return lqw;
+ }
+
+ /**
+ * 新增合同任务额外字段
+
+ *
+ * @param bo 合同任务额外字段
+
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(ContractualTaskSupplementBo bo) {
+ ContractualTaskSupplement add = MapstructUtils.convert(bo, ContractualTaskSupplement.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ /**
+ * 修改合同任务额外字段
+
+ *
+ * @param bo 合同任务额外字段
+
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(ContractualTaskSupplementBo bo) {
+ ContractualTaskSupplement update = MapstructUtils.convert(bo, ContractualTaskSupplement.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(ContractualTaskSupplement entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除合同任务额外字段
+ 信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteByIds(ids) > 0;
+ }
+
+ @Override
+ public String queryContractPartyRole(String id) {
+
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(ContractualTaskSupplement::getDocumentTasksId, id);
+ ContractualTaskSupplement contractualTaskSupplement = baseMapper.selectOne(lqw);
+ if (contractualTaskSupplement == null) {
+ return null;
+ }
+ return contractualTaskSupplement.getContractPartyRole();
+ }
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java
index f7fd9a8..d4eda82 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java
@@ -1,44 +1,38 @@
package org.dromara.productManagement.service.impl;
-import cn.dev33.satoken.stp.StpUtil;
-import jakarta.validation.constraints.NotBlank;
+
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import lombok.RequiredArgsConstructor;
-import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.productManagement.domain.DocumentTaskGroup;
-import org.dromara.productManagement.domain.DocumentTasks;
+
+import org.dromara.productManagement.common.service.BaseTaskService;
+import org.dromara.productManagement.domain.*;
+import org.dromara.productManagement.domain.bo.ContractualTaskSupplementBo;
import org.dromara.productManagement.domain.bo.DocumentTasksBo;
-import org.dromara.productManagement.domain.vo.DocumentTasksPermissionsVo;
+import org.dromara.productManagement.domain.vo.ContractualTasksVo;
import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.dromara.productManagement.enums.TaskEnum;
import org.dromara.productManagement.mapper.DocumentTasksMapper;
import org.dromara.productManagement.mapper.DocumentTasksPermissionsMapper;
+import org.dromara.productManagement.mapper.ModelPromptsMapper;
+import org.dromara.productManagement.mapper.ModelUserPromptssettingMapper;
+import org.dromara.productManagement.service.IContractualTaskSupplementService;
import org.dromara.productManagement.service.IDocumentTasksPermissionsService;
import org.dromara.productManagement.service.IDocumentTasksService;
-import org.dromara.productManagement.utils.MyHttpUtils;
import org.dromara.productManagement.utils.MyTimeUtils;
-import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.service.ISysOssService;
import org.dromara.system.service.ISysUserService;
import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.ContractualTasksBo;
-import org.dromara.productManagement.domain.vo.ContractualTasksVo;
-import org.dromara.productManagement.domain.ContractualTasks;
-import org.dromara.productManagement.mapper.ContractualTasksMapper;
import org.dromara.productManagement.service.IContractualTasksService;
+import org.springframework.transaction.annotation.Transactional;
-import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
-import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -47,31 +41,27 @@ import java.util.*;
* @author Lion Li
* @date 2024-12-11
*/
-@RequiredArgsConstructor
+
@Service
-public class ContractualTasksServiceImpl implements IContractualTasksService {
+@Transactional
+public class ContractualTasksServiceImpl extends BaseTaskService implements IContractualTasksService {
+
+
+
+ public ContractualTasksServiceImpl(ISysOssService ossService, ISysUserService userService, ModelPromptsMapper modelPromptsMapper, ModelUserPromptssettingMapper modelUserPromptssettingMapper, DocumentTasksPermissionsMapper documentTasksPermissionsMapper, IDocumentTasksPermissionsService documentTasksPermissionsService, DictService dictTypeService, DocumentTasksMapper baseMapper) {
+ super(ossService, userService, modelPromptsMapper, modelUserPromptssettingMapper, documentTasksPermissionsMapper, documentTasksPermissionsService, dictTypeService, baseMapper);
+ }
+ @Autowired
+ private DocumentTasksMapper documentTasksMapper;
+ @Autowired
+ private IDocumentTasksService documentTasksService;
+ @Autowired
+ private IContractualTaskSupplementService contractualTaskSupplementService;
+
- private final ContractualTasksMapper baseMapper;
- private final ISysOssService ossService;
- private final ISysUserService userService;
- private final IDocumentTasksService documentTasksService;
- private final DocumentTasksMapper documentTasksMapper;
- @Value("${chat.chatUrl}")
- private String chatUrl;
- //根目录地址
- @Value("${chat.filePath}")
- private String fileRootPath;
- @Value("${chat.tempfilePath}")
- private String tempfilePath;
- /**
- * 查询合同任务
- *
- * @param id 主键
- * @return 合同任务
- */
@Override
- public DocumentTasksVo queryById(Long id){
- return documentTasksMapper.selectVoById(id);
+ public DocumentTasksVo queryById(Long id) {
+ return null;
}
/**
@@ -82,27 +72,51 @@ public class ContractualTasksServiceImpl implements IContractualTasksService {
* @return 合同任务分页列表
*/
@Override
- public TableDataInfo queryPageList(ContractualTasksBo bo, PageQuery pageQuery) {
+ public TableDataInfo queryPageList(ContractualTasksBo bo, PageQuery pageQuery) {
DocumentTasksBo documentTasksBo = new DocumentTasksBo();
BeanUtils.copyProperties(bo, documentTasksBo);
- if(bo.getTaskNameList()==null || bo.getTaskNameList().size() == 0){
- String[] list= {"contractReview"};
- documentTasksBo.setTaskNameList(Arrays.asList(list));
- }
LambdaQueryWrapper lqw = buildQueryWrapper(documentTasksBo);
+ lqw.eq(DocumentTasks::getTaskType, TaskEnum.TaskType.CONTRACT_REVIEW.getValue());
+
+ // 获取 DocumentTasksVo 的分页结果
+ Page documentTasksPage = documentTasksMapper.selectVoPage(pageQuery.build(), lqw);
+
+ // 创建新的 ContractualTasksVo 的 Page 对象
+ Page result = new Page<>();
+ // 复制分页信息
+ result.setTotal(documentTasksPage.getTotal());
+ result.setSize(documentTasksPage.getSize());
+ result.setCurrent(documentTasksPage.getCurrent());
+
+ // 转换记录列表
+ List contractualTasksVoList = documentTasksPage.getRecords().stream()
+ .map(documentTasksVo -> {
+ ContractualTasksVo contractualTasksVo = new ContractualTasksVo();
+ BeanUtils.copyProperties(documentTasksVo, contractualTasksVo);
+ //查询合同角色
+ String contractPartyRole = contractualTaskSupplementService.queryContractPartyRole(documentTasksVo.getId());
+ contractualTasksVo.setContractPartyRole(contractPartyRole);
+ // 设置创建用户信息
+ Long createBy = contractualTasksVo.getCreateBy();
+ contractualTasksVo.setCreateUser(userService.selectUserById(createBy).getNickName());
+
+ // 计算任务持续时间
+ String formattedDuration = "";
+ if (!contractualTasksVo.getProgressStatus().equals("PENDING")
+ && !contractualTasksVo.getProgressStatus().equals("STARTED")) {
+ formattedDuration = MyTimeUtils.formatTimeDifference(
+ contractualTasksVo.getCreateTime(),
+ contractualTasksVo.getUpdateTime()
+ );
+ }
+ contractualTasksVo.setTaskDuration(formattedDuration);
+
+ return contractualTasksVo;
+ })
+ .collect(java.util.stream.Collectors.toList());
+
+ result.setRecords(contractualTasksVoList);
- Page result = documentTasksMapper.selectVoPage(pageQuery.build(), lqw);
- result.getRecords().forEach(vo -> {
- Long createBy = vo.getCreateBy();
- vo.setCreateUser(userService.selectUserById(createBy).getNickName());
- //计算updateTime 和 createTime之间相差的小时数
- // 格式化输出
- String formattedDuration="";
- if(!vo.getProgressStatus().equals("PENDING")&&!vo.getProgressStatus().equals("STARTED")){
- formattedDuration= MyTimeUtils.formatTimeDifference(vo.getCreateTime(), vo.getUpdateTime());
- }
- vo.setTaskDuration(formattedDuration);
- });
return TableDataInfo.build(result);
}
@@ -116,26 +130,24 @@ public class ContractualTasksServiceImpl implements IContractualTasksService {
public List queryList(ContractualTasksBo bo) {
DocumentTasksBo documentTasksBo = new DocumentTasksBo();
BeanUtils.copyProperties(bo, documentTasksBo);
- if(bo.getTaskNameList()==null || bo.getTaskNameList().size() == 0){
- String[] list= {"contractReview"};
- documentTasksBo.setTaskNameList(Arrays.asList(list));
- }
+
return documentTasksService.queryList(documentTasksBo);
}
- private LambdaQueryWrapper buildQueryWrapper(DocumentTasksBo bo) {
- LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
- lqw.eq(StringUtils.isNotBlank(bo.getTaskIndustry()), DocumentTasks::getTaskIndustry, bo.getTaskIndustry());
- lqw.eq(StringUtils.isNotBlank(bo.getTaskRegion()), DocumentTasks::getTaskRegion, bo.getTaskRegion());
- lqw.like(StringUtils.isNotBlank(bo.getDocumentName()), DocumentTasks::getDocumentName, bo.getDocumentName());
- lqw.eq(StringUtils.isNotBlank(bo.getProgressStatus()), DocumentTasks::getProgressStatus, bo.getProgressStatus());
- List taskNames = bo.getTaskNameList();
- if (taskNames != null && !taskNames.isEmpty()) {
- lqw.in(DocumentTasks::getTaskName, taskNames);
- }
- lqw.orderByDesc(DocumentTasks::getCreateTime);
- return lqw;
- }
+// private LambdaQueryWrapper buildQueryWrapper(DocumentTasksBo bo) {
+// LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+// lqw.eq(StringUtils.isNotBlank(bo.getTaskIndustry()), DocumentTasks::getTaskIndustry, bo.getTaskIndustry());
+// lqw.eq(StringUtils.isNotBlank(bo.getTaskRegion()), DocumentTasks::getTaskRegion, bo.getTaskRegion());
+// lqw.like(StringUtils.isNotBlank(bo.getDocumentName()), DocumentTasks::getDocumentName, bo.getDocumentName());
+// lqw.eq(StringUtils.isNotBlank(bo.getProgressStatus()), DocumentTasks::getProgressStatus, bo.getProgressStatus());
+// List taskNames = bo.getTaskNameList();
+// lqw.eq(DocumentTasks::getTaskType, TaskEnum.TaskType.CONTRACT_REVIEW.getValue());
+// if (taskNames != null && !taskNames.isEmpty()) {
+// lqw.in(DocumentTasks::getTaskName, taskNames);
+// }
+// lqw.orderByDesc(DocumentTasks::getCreateTime);
+// return lqw;
+// }
/**
* 新增合同任务
@@ -145,79 +157,7 @@ public class ContractualTasksServiceImpl implements IContractualTasksService {
*/
@Override
public Boolean insertByBo(ContractualTasksBo bo) throws IOException, InterruptedException {
- List taskNames = bo.getTaskNameList();
- boolean flag = false;
- Long ossId = bo.getOssId();
- SysOssVo fileInfo = ossService.getById(ossId);
- String fileName = fileInfo.getOriginalName();
- String filePath =fileRootPath+fileInfo.getFileName();
- String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); // 获取当前时间戳
- String parentPath = new File(filePath).getParent();
- // 获取文件扩展名
- String fileExtension = "";
- int lastIndexOfDot = fileName.lastIndexOf('.');
- if (lastIndexOfDot != -1) {
- fileExtension = fileName.substring(lastIndexOfDot); // 获取文件扩展名
- fileName = fileName.substring(0, lastIndexOfDot); // 获取文件名
- }
-
- // 拼接新的文件名
- String newFileName = fileName + "_" + timestamp + fileExtension;
-
- bo.setDocumentName(fileInfo.getOriginalName());
- if (taskNames != null && !taskNames.isEmpty()) {
- for (String taskName : taskNames) {
- // 创建 DocumentTasks 实体并设置属性
- ContractualTasks add = MapstructUtils.convert(bo, ContractualTasks.class);
- add.setTaskName(taskName);
- // 验证实体并保存
- validEntityBeforeSave(add);
- if(!fileExtension.contains("docx")){
- //文件转换为docx
-// ProcessBuilder builder = new ProcessBuilder("unoconv", "-o", parentPath, "-f", "docx", filePath);
- ProcessBuilder builder = new ProcessBuilder("libreoffice", "--headless", "--convert-to", "docx",filePath, "--outdir", parentPath);
- Process process = builder.start();
- int completed = process.waitFor();
- if (completed != 0) {
- InputStream errorStream = process.getErrorStream();
- String errorMessage = new String(errorStream.readAllBytes());
- process.destroyForcibly();
- String failMsg = fileName + "转docx失败,请检查文件是否正确~ 错误信息: " + errorMessage;
- throw new RuntimeException(failMsg);
- } else {
- process.destroyForcibly();
- // 获取文件名部分
- int lastDotIndex = filePath.lastIndexOf('.');
- if (lastDotIndex == -1) {
- // 如果没有扩展名,直接添加 .docx
- filePath= filePath + ".docx";
- } else {
- // 如果有其他扩展名,替换为 .docx
- filePath= filePath.substring(0, lastDotIndex) + ".docx";
- }
- }
-
- }
- //参数 add.id,taskName。newFileName;
- add.setProgressStatus("PENDING");
- DocumentTasks documentTasks = new DocumentTasks();
- BeanUtils.copyProperties(add, documentTasks);
- flag = documentTasksMapper.insert(documentTasks) > 0;
- Long priority=1L;
- //获取当前用户的任务优先级
-// if(!StpUtil.hasRole("superadmin")){
-// DocumentTasksPermissionsVo documentTasksPermissionsVo = documentTasksPermissionsMapper.selectDocumentPermissionsByUserIdAndTaskType(LoginHelper.getUserId(),taskName);
-// priority = documentTasksPermissionsVo.getPriority();
-// }
- MyHttpUtils.sendTaskStartMessage(chatUrl+"/back/taskStart",documentTasks.getId(), taskName, filePath, priority);
-
- if (!flag) {
- throw new RuntimeException("新增文档任务失败");
- }
- }
- }
-
- return flag;
+ return handleTask(bo, TaskEnum.TaskType.CONTRACT_REVIEW.getValue());
}
/**
@@ -228,8 +168,8 @@ public class ContractualTasksServiceImpl implements IContractualTasksService {
*/
@Override
public Boolean updateByBo(ContractualTasksBo bo) {
- ContractualTasks update = MapstructUtils.convert(bo, ContractualTasks.class);
- validEntityBeforeSave(update);
+ DocumentTasks update = MapstructUtils.convert(bo, DocumentTasks.class);
+// validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
@@ -254,4 +194,15 @@ public class ContractualTasksServiceImpl implements IContractualTasksService {
}
return baseMapper.deleteByIds(ids) > 0;
}
+
+
+ @Override
+ protected void beforeTaskMessageSent(Long taskId, String taskName,ContractualTasksBo bo) {
+ String contractPartyRole = bo.getContractPartyRole();
+ ContractualTaskSupplementBo contractualTaskSupplementBo = new ContractualTaskSupplementBo();
+ contractualTaskSupplementBo.setDocumentTasksId(taskId);
+ contractualTaskSupplementBo.setContractPartyRole(contractPartyRole);
+ contractualTaskSupplementService.insertByBo(contractualTaskSupplementBo);
+ }
+
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTaskResultsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTaskResultsServiceImpl.java
index 82c7bf7..f3e0ce3 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTaskResultsServiceImpl.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTaskResultsServiceImpl.java
@@ -1,5 +1,17 @@
package org.dromara.productManagement.service.impl;
+import com.lowagie.text.html.simpleparser.StyleSheet;
+import com.lowagie.text.pdf.BaseFont;
+import com.openhtmltopdf.pdfboxout.PdfRendererBuilder;
+import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughExtension;
+import com.vladsch.flexmark.ext.tables.TablesExtension;
+import com.vladsch.flexmark.html.HtmlRenderer;
+import com.vladsch.flexmark.parser.Parser;
+import com.vladsch.flexmark.util.ast.Node;
+import com.vladsch.flexmark.util.data.MutableDataSet;
+import jakarta.servlet.http.HttpServletResponse;
+import org.apache.commons.io.FileUtils;
+import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -8,16 +20,30 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
+import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.dromara.productManagement.enums.TaskEnum;
+import org.dromara.productManagement.service.IDocumentTasksService;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.safety.Safelist;
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.DocumentTaskResultsBo;
import org.dromara.productManagement.domain.vo.DocumentTaskResultsVo;
import org.dromara.productManagement.domain.DocumentTaskResults;
import org.dromara.productManagement.mapper.DocumentTaskResultsMapper;
import org.dromara.productManagement.service.IDocumentTaskResultsService;
+import org.xhtmlrenderer.pdf.ITextRenderer;
+import javax.xml.parsers.SAXParser;
+import java.io.*;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Collection;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
/**
* 文档任务结果Service业务层处理
@@ -30,6 +56,8 @@ import java.util.Collection;
public class DocumentTaskResultsServiceImpl implements IDocumentTaskResultsService {
private final DocumentTaskResultsMapper baseMapper;
+ private final IDocumentTasksService documentTasksService;
+ private final DictService dictTypeService;
/**
* 查询文档任务结果
@@ -135,4 +163,260 @@ public class DocumentTaskResultsServiceImpl implements IDocumentTaskResultsServi
lqw.eq(DocumentTaskResults::getDocumentTaskId, id);
return baseMapper.selectVoOne(lqw);
}
+
+ @Override
+ public void downloadResult(Long[] ids, HttpServletResponse response) {
+ try {
+ // 查询结果
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.in(DocumentTaskResults::getDocumentTaskId, ids);
+ List list = baseMapper.selectList(lqw);
+
+ if (list.isEmpty()) {
+ throw new RuntimeException("未找到相关文件");
+ }
+
+ if (list.size() > 1) {
+ // 多文件压缩下载
+ DocumentTasksVo documentTasksVo = documentTasksService.queryById(list.get(0).getDocumentTaskId());
+ String documentName = documentTasksVo.getDocumentName();
+
+
+ String tempDir = System.getProperty("java.io.tmpdir");
+ String zipFileName = "results_" +documentName + ".zip";
+ String zipFilePath = tempDir + File.separator + zipFileName;
+
+ try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFilePath))) {
+ for (DocumentTaskResults result : list) {
+ documentTasksVo = documentTasksService.queryById(result.getDocumentTaskId());
+ String resultText = result.getResult();
+ String taskName = documentTasksVo.getTaskName();
+ String taskType = documentTasksVo.getTaskType();
+ String label = dictTypeService.getDictLabel(taskType, taskName);
+ if (taskName.equals(TaskEnum.SchemeTask.SCHEME_EVALUATION.getValue())) {
+ resultText = cleanHtml(result.getResult());
+ }
+ // 为每个结果创建PDF文件
+ String pdfFileName = label + "_" + documentName + "_" + ".pdf";
+ String pdfPath = tempDir + File.separator + pdfFileName;
+
+ // 转换Markdown为PDF
+ convertMarkdownToPdf(resultText, pdfPath);
+
+ // 添加到ZIP
+ addToZip(pdfPath, pdfFileName, zos);
+
+ // 删除临时PDF文件
+ new File(pdfPath).delete();
+ }
+ }
+
+ // 下载ZIP文件
+ downloadFile(response, zipFilePath, zipFileName);
+
+ // 删除临时ZIP文件
+ new File(zipFilePath).delete();
+
+ } else {
+ // 单文件下载
+ DocumentTaskResults result = list.get(0);
+ DocumentTasksVo documentTasksVo = documentTasksService.queryById(list.get(0).getDocumentTaskId());
+ String documentName = documentTasksVo.getDocumentName();
+ String taskName = documentTasksVo.getTaskName();
+ String taskType = documentTasksVo.getTaskType();
+
+ String label = dictTypeService.getDictLabel(taskType, taskName);
+ String pdfFileName = label + "_" + documentName + "_" + ".pdf";
+ String tempDir = System.getProperty("java.io.tmpdir");
+ String pdfPath = tempDir + File.separator + pdfFileName;
+ String resultText = result.getResult();
+ if (taskName.equals(TaskEnum.SchemeTask.SCHEME_EVALUATION.getValue())) {
+ resultText = cleanHtml(result.getResult());
+ }
+ // 转换Markdown为PDF
+ convertMarkdownToPdf(resultText, pdfPath);
+
+ // 下载PDF文件
+ downloadFile(response, pdfPath, pdfFileName);
+
+ // 删除临时PDF文件
+ new File(pdfPath).delete();
+ }
+
+ } catch (Exception e) {
+ throw new RuntimeException("文件下载失败: " + e.getMessage());
+ }
+ }
+
+ // Markdown转PDF方法
+ private void convertMarkdownToPdf(String markdown, String outputPath) throws Exception {
+ // 使用flexmark-java解析Markdown
+// MutableDataSet options = new MutableDataSet();
+// Parser parser = Parser.builder(options).build();
+// HtmlRenderer renderer = HtmlRenderer.builder(options).build();
+// Node document = parser.parse(markdown);
+// String htmlContent = renderer.render(document);
+ MutableDataSet options = new MutableDataSet();
+ // 启用表格解析
+ options.set(Parser.EXTENSIONS, Arrays.asList(
+ TablesExtension.create(),
+ StrikethroughExtension.create()
+ ));
+
+ Parser parser = Parser.builder(options).build();
+ HtmlRenderer renderer = HtmlRenderer.builder(options)
+ .extensions(Arrays.asList(
+ TablesExtension.create(),
+ StrikethroughExtension.create()
+ ))
+ .build();
+
+ Node document = parser.parse(markdown);
+ String htmlContent = renderer.render(document);
+ // 使用 JSoup 清理
+ Document.OutputSettings settings = new Document.OutputSettings();
+ settings.prettyPrint(false);
+
+ // 配置允许的标签
+ Safelist safelist = Safelist.relaxed()
+// .addTags("em", "strong", "div", "span","br")
+// .addAttributes(":all", "style", "class");
+ .addTags("em", "strong", "div", "span", "br", "table", "thead", "tbody", "tr", "th", "td")
+ .addAttributes(":all", "style", "class")
+ .addAttributes("table", "border", "cellpadding", "cellspacing");
+ htmlContent = Jsoup.clean(htmlContent, "", safelist, settings);
+
+ // 使用 NekoHTML 进一步处理
+ // 创建完整的HTML文档,使用微软雅黑
+ String html = String.format("""
+
+
+
+
+
+
+
+ %s
+
+
+ """,
+ htmlContent.replace("
", "\n"));
+
+
+
+ // 配置Flying Saucer
+ ITextRenderer pdfRenderer = new ITextRenderer();
+
+ // 主要使用微软雅黑,但也加载其他字体作为备选
+ // 从classpath加载字体
+ try (InputStream is = getClass().getResourceAsStream("/fonts/msyh.ttc")) {
+ File tempFont = File.createTempFile("msyh", ".ttc");
+ FileUtils.copyInputStreamToFile(is, tempFont);
+ pdfRenderer.getFontResolver().addFont(tempFont.getAbsolutePath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+ tempFont.deleteOnExit();
+ }
+
+ // 设置文档
+ pdfRenderer.setDocumentFromString(html);
+
+ // 设置输出编码和基础URL
+ pdfRenderer.getSharedContext().setBaseURL("file:///");
+
+ // 布局和创建PDF
+ pdfRenderer.layout();
+
+ try (OutputStream os = new FileOutputStream(outputPath)) {
+ pdfRenderer.createPDF(os, true);
+ }
+ }
+
+ // 添加文件到ZIP
+ private void addToZip(String filePath, String fileName, ZipOutputStream zos) throws IOException {
+ byte[] buffer = new byte[1024];
+ try (FileInputStream fis = new FileInputStream(filePath)) {
+ zos.putNextEntry(new ZipEntry(fileName));
+ int length;
+ while ((length = fis.read(buffer)) > 0) {
+ zos.write(buffer, 0, length);
+ }
+ zos.closeEntry();
+ }
+ }
+
+ // 文件下载方法
+ private void downloadFile(HttpServletResponse response, String filePath, String fileName) throws IOException {
+ File file = new File(filePath);
+ if (!file.exists()) {
+ throw new RuntimeException("文件不存在");
+ }
+
+ response.setContentType("application/octet-stream");
+ response.setHeader("Content-Disposition", "attachment;filename=" +
+ URLEncoder.encode(fileName, StandardCharsets.UTF_8.name()));
+
+ try (FileInputStream fis = new FileInputStream(file);
+ BufferedInputStream bis = new BufferedInputStream(fis);
+ OutputStream os = response.getOutputStream()) {
+
+ byte[] buffer = new byte[1024];
+ int i;
+ while ((i = bis.read(buffer)) != -1) {
+ os.write(buffer, 0, i);
+ }
+ }
+ }
+ private String cleanHtml(String content) {
+ // 移除DOCTYPE和html标签
+ content = content.replaceAll("(?i)]*>", "");
+ content = content.replaceAll("(?i)]*>", "");
+ content = content.replaceAll("(?i)", "");
+
+ // 移除head部分
+ content = content.replaceAll("(?i)[\\s\\S]*?", "");
+
+ // 移除body标签
+ content = content.replaceAll("(?i)]*>", "");
+ content = content.replaceAll("(?i)", "");
+ // 移除所有font相关的style属性
+ content = content.replaceAll("style=\"font:[^\"]*\"", "");
+ // 移除空的style属性
+ content = content.replaceAll("style=\"\"", "");
+ return content.trim();
+ }
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksPermissionsDetailServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksPermissionsDetailServiceImpl.java
index 140ff14..e583261 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksPermissionsDetailServiceImpl.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksPermissionsDetailServiceImpl.java
@@ -74,6 +74,8 @@ public class DocumentTasksPermissionsDetailServiceImpl implements IDocumentTasks
lqw.eq(bo.getUserId() != null, DocumentTasksPermissionsDetail::getUserId, bo.getUserId());
lqw.eq(bo.getRemainingDocumentCount() != null, DocumentTasksPermissionsDetail::getRemainingDocumentCount, bo.getRemainingDocumentCount());
lqw.eq(StringUtils.isNotBlank(bo.getTaskType()), DocumentTasksPermissionsDetail::getTaskType, bo.getTaskType());
+ lqw.eq(StringUtils.isNotBlank(bo.getTaskName()), DocumentTasksPermissionsDetail::getTaskName, bo.getTaskName());
+
return lqw;
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksPermissionsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksPermissionsServiceImpl.java
index 9f55715..9597dfa 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksPermissionsServiceImpl.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksPermissionsServiceImpl.java
@@ -54,7 +54,7 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
@Override
public DocumentTasksPermissionsVo queryById(String id){
DocumentTasksPermissionsVo vo = baseMapper.selectVoById(id);
- vo.setTaskTypeList(List.of(vo.getTaskType().split(",")));
+ vo.setTaskNameList(List.of(vo.getTaskName().split(",")));
return vo;
}
@@ -69,7 +69,7 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
public TableDataInfo queryPageList(DocumentTasksPermissionsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper lqw = buildQueryWrapper(bo);
Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
- result.getRecords().forEach(r -> r.setTaskTypeList(List.of(r.getTaskType().split(","))));
+ result.getRecords().forEach(r -> r.setTaskNameList(List.of(r.getTaskName().split(","))));
return TableDataInfo.build(result);
}
@@ -93,6 +93,8 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
lqw.eq(bo.getDailyDocumentCount() != null, DocumentTasksPermissions::getDailyDocumentCount, bo.getDailyDocumentCount());
lqw.eq(bo.getPriority() != null, DocumentTasksPermissions::getPriority, bo.getPriority());
lqw.eq(StringUtils.isNotBlank(bo.getTaskType()), DocumentTasksPermissions::getTaskType, bo.getTaskType());
+ lqw.like(StringUtils.isNotBlank(bo.getTaskName()), DocumentTasksPermissions::getTaskName, bo.getTaskName());
+
lqw.orderByAsc(DocumentTasksPermissions::getPriority).orderByDesc(DocumentTasksPermissions::getRoleId);
return lqw;
}
@@ -106,7 +108,7 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
@Override
public Boolean insertByBo(DocumentTasksPermissionsBo bo) {
DocumentTasksPermissions add = MapstructUtils.convert(bo, DocumentTasksPermissions.class);
- add.setTaskType(String.join(",", bo.getTaskTypeList()));
+ add.setTaskName(String.join(",", bo.getTaskNameList()));
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@@ -124,7 +126,7 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
@Override
public Boolean updateByBo(DocumentTasksPermissionsBo bo) {
DocumentTasksPermissions update = MapstructUtils.convert(bo, DocumentTasksPermissions.class);
- update.setTaskType(String.join(",", bo.getTaskTypeList()));
+ update.setTaskName(String.join(",", bo.getTaskNameList()));
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
@@ -134,7 +136,7 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
*/
private void validEntityBeforeSave(DocumentTasksPermissions entity){
//TODO 做一些数据校验,如唯一约束
- Arrays.stream(entity.getTaskType().split(",")).forEach(t -> {
+ Arrays.stream(entity.getTaskName().split(",")).forEach(t -> {
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
if (!StrUtil.isBlankIfStr(entity.getUserId())){
lqw.eq(DocumentTasksPermissions::getUserId, entity.getUserId());
@@ -142,14 +144,15 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
if (!StrUtil.isBlankIfStr(entity.getRoleId())){
lqw.eq(DocumentTasksPermissions::getRoleId, entity.getRoleId());
}
- lqw.like(DocumentTasksPermissions::getTaskType, t);
+ lqw.like(DocumentTasksPermissions::getTaskName, t);
//id不能相同
if(!StrUtil.isBlankIfStr(entity.getId())){
lqw.ne(DocumentTasksPermissions::getId, entity.getId());
}
Long count = baseMapper.selectCount(lqw);
if (count > 0 ) {
- String label = dictTypeService.getDictLabel("document_task", t);
+ String taskType = entity.getTaskType();
+ String label = dictTypeService.getDictLabel(taskType, t);
throw new IllegalArgumentException(label + "已有权限,不能重复添加!");
}
});
@@ -190,14 +193,14 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
* @param userId 用户ID
*/
@Override
- public void validateUserTaskPermissions(List taskNames, Long userId) {
+ public void validateUserTaskPermissions(String taskType,List taskNames, Long userId) {
// 如果是超级管理员,则不做权限验证
if (!StpUtil.hasRole("superadmin")) {
taskNames.forEach(taskName -> {
- DocumentTasksPermissionsVo vo = baseMapper.selectDocumentPermissionsByUserIdAndTaskType(userId, taskName);
+ DocumentTasksPermissionsVo vo = baseMapper.selectDocumentPermissionsByUserIdAndTaskName(userId, taskName);
// 任务是否有权限
- if (vo == null || !vo.getTaskType().contains(taskName)) {
- String label = dictTypeService.getDictLabel("document_task", taskName);
+ if (vo == null || !vo.getTaskName().contains(taskName)) {
+ String label = dictTypeService.getDictLabel(taskType, taskName);
throw new RuntimeException("无权操作[" + label + "],请联系管理员");
}
@@ -205,7 +208,7 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
// 先查询数据库中是否有数据
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DocumentTasksPermissionsDetail::getUserId, userId);
- queryWrapper.eq(DocumentTasksPermissionsDetail::getTaskType, taskName);
+ queryWrapper.eq(DocumentTasksPermissionsDetail::getTaskName, taskName);
DocumentTasksPermissionsDetailVo documentTasksPermissionsDetailVo = documentTasksPermissionsDetailMapper.selectVoOne(queryWrapper);
if (documentTasksPermissionsDetailVo != null) {
@@ -241,7 +244,8 @@ public class DocumentTasksPermissionsServiceImpl implements IDocumentTasksPermis
// 没有数据,则新增一条数据
DocumentTasksPermissionsDetail documentTasksPermissionsDetail = new DocumentTasksPermissionsDetail();
documentTasksPermissionsDetail.setUserId(userId);
- documentTasksPermissionsDetail.setTaskType(taskName);
+ documentTasksPermissionsDetail.setTaskName(taskName);
+ documentTasksPermissionsDetail.setTaskType(vo.getTaskType());
documentTasksPermissionsDetail.setRemainingDocumentCount(vo.getDailyDocumentCount() - 1);
documentTasksPermissionsDetailMapper.insert(documentTasksPermissionsDetail);
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksServiceImpl.java
index add958c..339acb9 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksServiceImpl.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/DocumentTasksServiceImpl.java
@@ -1,13 +1,10 @@
package org.dromara.productManagement.service.impl;
-import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.lang.UUID;
-import cn.hutool.core.util.IdUtil;
+
+import lombok.Data;
import okhttp3.*;
-import org.dromara.common.core.domain.R;
import org.dromara.common.core.service.DictService;
-import org.dromara.common.core.service.UserService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -15,23 +12,19 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import lombok.RequiredArgsConstructor;
-import org.dromara.common.oss.core.OssClient;
-import org.dromara.common.oss.factory.OssFactory;
-import org.dromara.common.satoken.utils.LoginHelper;
+
+import org.dromara.productManagement.common.service.BaseTaskService;
import org.dromara.productManagement.domain.*;
-import org.dromara.productManagement.domain.vo.DocumentTasksPermissionsDetailVo;
-import org.dromara.productManagement.domain.vo.DocumentTasksPermissionsVo;
+import org.dromara.productManagement.domain.bo.BaseTaskBo;
+;
+import org.dromara.productManagement.enums.TaskEnum;
import org.dromara.productManagement.mapper.*;
-import org.dromara.productManagement.service.IDocAiService;
import org.dromara.productManagement.service.IDocumentTasksPermissionsService;
import org.dromara.productManagement.utils.MyHttpUtils;
-import org.dromara.productManagement.utils.MyTimeUtils;
import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.service.ISysOssService;
import org.dromara.system.service.ISysUserService;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Value;
+
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.DocumentTasksBo;
import org.dromara.productManagement.domain.vo.DocumentTasksVo;
@@ -42,17 +35,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.text.SimpleDateFormat;
-import java.time.Duration;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.Date;
+
import java.util.List;
import java.util.Map;
import java.util.Collection;
@@ -63,25 +46,15 @@ import java.util.Collection;
* @author Lion Li
* @date 2024-10-22
*/
-@RequiredArgsConstructor
@Service
@Transactional
-public class DocumentTasksServiceImpl implements IDocumentTasksService {
- private final DocumentTasksMapper baseMapper;
- private final ModelPromptsMapper modelPromptsMapper;
- private final ModelUserPromptssettingMapper modelUserPromptssettingMapper;
- private final DocumentTasksPermissionsMapper documentTasksPermissionsMapper;
- private final IDocumentTasksPermissionsService documentTasksPermissionsService;
- private final ISysOssService ossService;
- private final ISysUserService userService;
- private final DictService dictTypeService;
- @Value("${chat.chatUrl}")
- private String chatUrl;
- //根目录地址
- @Value("${chat.filePath}")
- private String fileRootPath;
- @Value("${chat.tempfilePath}")
- private String tempfilePath;
+public class DocumentTasksServiceImpl extends BaseTaskService implements IDocumentTasksService {
+
+
+ public DocumentTasksServiceImpl(ISysOssService ossService, ISysUserService userService, ModelPromptsMapper modelPromptsMapper, ModelUserPromptssettingMapper modelUserPromptssettingMapper, DocumentTasksPermissionsMapper documentTasksPermissionsMapper, IDocumentTasksPermissionsService documentTasksPermissionsService, DictService dictTypeService, DocumentTasksMapper baseMapper) {
+ super(ossService, userService, modelPromptsMapper, modelUserPromptssettingMapper, documentTasksPermissionsMapper, documentTasksPermissionsService, dictTypeService, baseMapper);
+ }
+
/**
* 查询文档任务
*
@@ -90,7 +63,7 @@ public class DocumentTasksServiceImpl implements IDocumentTasksService {
*/
@Override
public DocumentTasksVo queryById(Long id){
- return baseMapper.selectVoById(id);
+ return super.queryById(id);
}
/**
@@ -106,11 +79,9 @@ public class DocumentTasksServiceImpl implements IDocumentTasksService {
LambdaQueryWrapper lqw = buildQueryWrapper(bo);
Integer pageSize = pageQuery.getPageSize();
if(pageSize != 5){
- //增加lwd中的一个条件
- List taskNames = bo.getTaskNameList();
- if(taskNames == null ||!taskNames.contains("contractReview")){
- lqw.ne(DocumentTasks::getTaskName,"contractReview");
- }
+ //==5 查询所有
+ //默认查询方案审核类型的
+ lqw.eq(DocumentTasks::getTaskType, TaskEnum.TaskType.SCHEME_REVIEW.getValue());
}
Page documentTaskGroupPage = baseMapper.selectDocumentTaskGroups(pageQuery.build(), lqw);
documentTaskGroupPage.getRecords().forEach(vo -> {
@@ -118,21 +89,6 @@ public class DocumentTasksServiceImpl implements IDocumentTasksService {
vo.setCreateUser(userService.selectUserById(createBy).getNickName());
});
return TableDataInfo.build(documentTaskGroupPage);
-// Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-// result.getRecords().forEach(vo -> {
-// Long createBy = vo.getCreateBy();
-// vo.setCreateUser(userService.selectUserById(createBy).getNickName());
-// //计算updateTime 和 createTime之间相差的小时数
-// // 格式化输出
-// String formattedDuration="";
-// if(!vo.getProgressStatus().equals("PENDING")&&!vo.getProgressStatus().equals("STARTED")){
-// formattedDuration= MyTimeUtils.formatTimeDifference(vo.getCreateTime(), vo.getUpdateTime());
-// }
-// vo.setTaskDuration(formattedDuration);
-// });
-// return TableDataInfo.build(result);
-
-
}
/**
@@ -146,8 +102,8 @@ public class DocumentTasksServiceImpl implements IDocumentTasksService {
LambdaQueryWrapper lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
-
- private LambdaQueryWrapper buildQueryWrapper(DocumentTasksBo bo) {
+ @Override
+ protected LambdaQueryWrapper buildQueryWrapper(DocumentTasksBo bo) {
Map params = bo.getParams();
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getTaskName()), DocumentTasks::getTaskName, bo.getTaskName());
@@ -177,110 +133,7 @@ public class DocumentTasksServiceImpl implements IDocumentTasksService {
@Override
@Transactional
public Boolean insertByBo(DocumentTasksBo bo) throws IOException, InterruptedException {
- Long userId = LoginHelper.getUserId();
- List taskNames = bo.getTaskNameList();
- //校验所属区域和所属行业是否存在提示词
- taskNames.forEach(taskName -> {
- ModelPrompts modelPrompts = modelPromptsMapper.selectOne(Wrappers.lambdaQuery()
- .eq(ModelPrompts::getTaskName, taskName)
- .eq(ModelPrompts::getTaskIndustry, bo.getTaskIndustry())
- .eq(ModelPrompts::getTaskRegion, bo.getTaskRegion()));
- if(modelPrompts == null){
- String label = dictTypeService.getDictLabel("document_task", taskName);
- throw new RuntimeException("任务名称:["+label+"],当前任务所属区域或所属行业不存在模型,请联系管理员配置");
- }
- });
- //变更或新增当前角色所属区域和所属行业的配置
- //当前任务存在提示词,保存用户个人设置
- //先查询数据库中是否有数据
- ModelUserPromptssetting promptssetting = modelUserPromptssettingMapper.selectOne(Wrappers.lambdaQuery()
- .eq(ModelUserPromptssetting::getUserId, userId));
- if(promptssetting!= null){
- //已存在,更新
- promptssetting.setTaskIndustry(bo.getTaskIndustry());
- promptssetting.setTaskRegion(bo.getTaskRegion());
- modelUserPromptssettingMapper.updateById(promptssetting);
- }
- else{
- //不存在,新增
- ModelUserPromptssetting userPromptssetting = new ModelUserPromptssetting();
- userPromptssetting.setUserId(userId);
- userPromptssetting.setTaskIndustry(bo.getTaskIndustry());
- userPromptssetting.setTaskRegion(bo.getTaskRegion());
- modelUserPromptssettingMapper.insert(userPromptssetting);
- }
- //验证当前用户是否有任务权限,如果是超级管理员,则不做权限验证
- documentTasksPermissionsService.validateUserTaskPermissions(taskNames,userId);
- boolean flag = false;
- Long ossId = bo.getOssId();
- SysOssVo fileInfo = ossService.getById(ossId);
- String fileName = fileInfo.getOriginalName();
- String filePath =fileRootPath+fileInfo.getFileName();
- String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); // 获取当前时间戳
- String parentPath = new File(filePath).getParent();
- // 获取文件扩展名
- String fileExtension = "";
- int lastIndexOfDot = fileName.lastIndexOf('.');
- if (lastIndexOfDot != -1) {
- fileExtension = fileName.substring(lastIndexOfDot); // 获取文件扩展名
- fileName = fileName.substring(0, lastIndexOfDot); // 获取文件名
- }
-
- // 拼接新的文件名
- String newFileName = fileName + "_" + timestamp + fileExtension;
-
- bo.setDocumentName(fileInfo.getOriginalName());
- if (taskNames != null && !taskNames.isEmpty()) {
- for (String taskName : taskNames) {
- // 创建 DocumentTasks 实体并设置属性
- DocumentTasks add = MapstructUtils.convert(bo, DocumentTasks.class);
- add.setTaskName(taskName);
- // 验证实体并保存
- validEntityBeforeSave(add);
- if(!fileExtension.contains("docx")){
- //文件转换为docx
-// ProcessBuilder builder = new ProcessBuilder("unoconv", "-o", parentPath, "-f", "docx", filePath);
- ProcessBuilder builder = new ProcessBuilder("libreoffice", "--headless", "--convert-to", "docx",filePath, "--outdir", parentPath);
- Process process = builder.start();
- int completed = process.waitFor();
- if (completed != 0) {
- InputStream errorStream = process.getErrorStream();
- String errorMessage = new String(errorStream.readAllBytes());
- process.destroyForcibly();
- String failMsg = fileName + "转docx失败,请检查文件是否正确~ 错误信息: " + errorMessage;
- throw new RuntimeException(failMsg);
- } else {
- process.destroyForcibly();
- // 获取文件名部分
- int lastDotIndex = filePath.lastIndexOf('.');
- if (lastDotIndex == -1) {
- // 如果没有扩展名,直接添加 .docx
- filePath= filePath + ".docx";
- } else {
- // 如果有其他扩展名,替换为 .docx
- filePath= filePath.substring(0, lastDotIndex) + ".docx";
- }
- }
-
- }
- //参数 add.id,taskName。newFileName;
- add.setProgressStatus("PENDING");
-
- flag = baseMapper.insert(add) > 0;
- Long priority=1L;
- //获取当前用户的任务优先级
- if(!StpUtil.hasRole("superadmin")){
- DocumentTasksPermissionsVo documentTasksPermissionsVo = documentTasksPermissionsMapper.selectDocumentPermissionsByUserIdAndTaskType(LoginHelper.getUserId(),taskName);
- priority = documentTasksPermissionsVo.getPriority();
- }
- MyHttpUtils.sendTaskStartMessage(chatUrl+"/back/taskStart",add.getId(), taskName, filePath, priority);
- if (!flag) {
- throw new RuntimeException("新增文档任务失败");
- }
- }
- }
-
- return flag;
+ return handleTask(bo, TaskEnum.TaskType.SCHEME_REVIEW.getValue());
}
/**
@@ -291,9 +144,6 @@ public class DocumentTasksServiceImpl implements IDocumentTasksService {
*/
@Override
public Boolean updateByBo(DocumentTasksBo bo) {
-// DocumentTasks update = MapstructUtils.convert(bo, DocumentTasks.class);
-//// validEntityBeforeSave(update);
-//// return baseMapper.updateById(update) > 0;
List taskNames = bo.getTaskNameList();
boolean flag = false;
@@ -401,4 +251,28 @@ public class DocumentTasksServiceImpl implements IDocumentTasksService {
SysOssVo upload = ossService.upload(new File(destPath));
return upload;
}
+
+// @Override
+// protected Boolean processTaskItems(List taskNames, BaseTaskBo bo, FileProcessResult fileResult, String taskType) {
+// boolean flag = false;
+// for (String taskName : taskNames) {
+// DocumentTasks add = MapstructUtils.convert(bo, DocumentTasks.class);
+// add.setTaskName(taskName);
+// add.setDocumentName(fileResult.getFileName());
+// add.setProgressStatus("PENDING");
+// add.setTaskType(taskType);
+//
+// flag = baseMapper.insert(add) > 0;
+//
+// Long priority = calculatePriority(taskName);
+// MyHttpUtils.sendTaskStartMessage(chatUrl + "/back/taskStart",
+// add.getId(), taskName, fileResult.getFilePath(), priority);
+//
+// if (!flag) {
+// throw new RuntimeException("新增文档任务失败");
+// }
+// }
+// return flag;
+//
+// }
}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelPromptsHistoryServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelPromptsHistoryServiceImpl.java
index 1a8b560..c44b2c5 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelPromptsHistoryServiceImpl.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelPromptsHistoryServiceImpl.java
@@ -76,6 +76,7 @@ public class ModelPromptsHistoryServiceImpl implements IModelPromptsHistoryServi
private LambdaQueryWrapper buildQueryWrapper(ModelPromptsHistoryBo bo) {
Map params = bo.getParams();
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(StringUtils.isNotBlank(bo.getTaskType()), ModelPromptsHistory::getTaskType, bo.getTaskType());
lqw.eq(StringUtils.isNotBlank(bo.getTaskName()), ModelPromptsHistory::getTaskName, bo.getTaskName());
lqw.eq(StringUtils.isNotBlank(bo.getTaskRegion()), ModelPromptsHistory::getTaskRegion, bo.getTaskRegion());
lqw.eq(StringUtils.isNotBlank(bo.getTaskIndustry()), ModelPromptsHistory::getTaskIndustry, bo.getTaskIndustry());
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelPromptsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelPromptsServiceImpl.java
index 93e2848..2a2ad24 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelPromptsServiceImpl.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelPromptsServiceImpl.java
@@ -77,6 +77,7 @@ public class ModelPromptsServiceImpl implements IModelPromptsService {
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getId() != null, ModelPrompts::getId, bo.getId());
lqw.eq(StringUtils.isNotBlank(bo.getTaskName()), ModelPrompts::getTaskName, bo.getTaskName());
+ lqw.eq(StringUtils.isNotBlank(bo.getTaskType()), ModelPrompts::getTaskType, bo.getTaskType());
lqw.eq(StringUtils.isNotBlank(bo.getTaskRegion()), ModelPrompts::getTaskRegion, bo.getTaskRegion());
lqw.eq(StringUtils.isNotBlank(bo.getTaskIndustry()), ModelPrompts::getTaskIndustry, bo.getTaskIndustry());
return lqw;
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelUserPromptssettingServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelUserPromptssettingServiceImpl.java
index 6ff37e4..ca0a9a4 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelUserPromptssettingServiceImpl.java
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ModelUserPromptssettingServiceImpl.java
@@ -131,9 +131,10 @@ public class ModelUserPromptssettingServiceImpl implements IModelUserPromptssett
}
@Override
- public ModelUserPromptssettingVo queryByuserId(Long userId) {
+ public ModelUserPromptssettingVo queryByuserId(Long userId , String taskType) {
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
lqw.eq(ModelUserPromptssetting::getUserId, userId);
+ lqw.eq(ModelUserPromptssetting::getTaskType, taskType);
ModelUserPromptssetting modelUserPromptssetting = baseMapper.selectOne(lqw);
ModelUserPromptssettingVo modelUserPromptssettingVo = new ModelUserPromptssettingVo();
if (modelUserPromptssetting != null) {
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/SchemEvaluationServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/SchemEvaluationServiceImpl.java
new file mode 100644
index 0000000..e4f8172
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/SchemEvaluationServiceImpl.java
@@ -0,0 +1,162 @@
+package org.dromara.productManagement.service.impl;
+
+import org.dromara.common.core.service.DictService;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.productManagement.common.service.BaseTaskService;
+import org.dromara.productManagement.domain.DocumentTasks;
+import org.dromara.productManagement.domain.bo.BaseTaskBo;
+import org.dromara.productManagement.domain.bo.DocumentTasksBo;
+import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.dromara.productManagement.enums.TaskEnum;
+import org.dromara.productManagement.mapper.*;
+import org.dromara.productManagement.service.IDocumentTasksPermissionsService;
+import org.dromara.productManagement.utils.MyTimeUtils;
+import org.dromara.system.service.ISysOssService;
+import org.dromara.system.service.ISysUserService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.dromara.productManagement.domain.bo.SchemEvaluationBo;
+import org.dromara.productManagement.domain.vo.SchemEvaluationVo;
+import org.dromara.productManagement.domain.SchemEvaluation;
+import org.dromara.productManagement.service.ISchemEvaluationService;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 方案评价任务Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2025-01-03
+ */
+
+@Service
+public class SchemEvaluationServiceImpl extends BaseTaskService implements ISchemEvaluationService {
+
+ public SchemEvaluationServiceImpl(ISysOssService ossService, ISysUserService userService, ModelPromptsMapper modelPromptsMapper, ModelUserPromptssettingMapper modelUserPromptssettingMapper, DocumentTasksPermissionsMapper documentTasksPermissionsMapper, IDocumentTasksPermissionsService documentTasksPermissionsService, DictService dictTypeService, DocumentTasksMapper baseMapper) {
+ super(ossService, userService, modelPromptsMapper, modelUserPromptssettingMapper, documentTasksPermissionsMapper, documentTasksPermissionsService, dictTypeService, baseMapper);
+ }
+ @Autowired
+ private DocumentTasksMapper documentTasksMapper;
+ /**
+ * 查询方案评价任务
+ *
+ * @param id 主键
+ * @return 方案评价任务
+ */
+ @Override
+ public DocumentTasksVo queryById(Long id){
+ return super.queryById(id);
+ }
+
+ /**
+ * 分页查询方案评价任务列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 方案评价任务分页列表
+ */
+ @Override
+ public TableDataInfo queryPageList(SchemEvaluationBo bo, PageQuery pageQuery) {
+ DocumentTasksBo documentTasksBo = new DocumentTasksBo();
+ BeanUtils.copyProperties(bo, documentTasksBo);
+
+ LambdaQueryWrapper lqw = buildQueryWrapper(documentTasksBo);
+ lqw.eq(DocumentTasks::getTaskType, TaskEnum.TaskType.SCHEME_EVALUATION.getValue());
+ Page result = documentTasksMapper.selectVoPage(pageQuery.build(), lqw);
+ result.getRecords().forEach(vo -> {
+ Long createBy = vo.getCreateBy();
+ vo.setCreateUser(userService.selectUserById(createBy).getNickName());
+ // 格式化输出
+ String formattedDuration="";
+ if(!vo.getProgressStatus().equals("PENDING")&&!vo.getProgressStatus().equals("STARTED")){
+ formattedDuration= MyTimeUtils.formatTimeDifference(vo.getCreateTime(), vo.getUpdateTime());
+ }
+ vo.setTaskDuration(formattedDuration);
+ });
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 查询符合条件的方案评价任务列表
+ *
+ * @param bo 查询条件
+ * @return 方案评价任务列表
+ */
+ @Override
+ public List queryList(SchemEvaluationBo bo) {
+ DocumentTasksBo documentTasksBo = new DocumentTasksBo();
+ BeanUtils.copyProperties(bo, documentTasksBo);
+ LambdaQueryWrapper lqw = buildQueryWrapper(documentTasksBo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+// private LambdaQueryWrapper buildQueryWrapper(SchemEvaluationBo bo) {
+// Map params = bo.getParams();
+// LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+// lqw.eq(StringUtils.isNotBlank(bo.getTaskIndustry()), SchemEvaluation::getTaskIndustry, bo.getTaskIndustry());
+// lqw.eq(StringUtils.isNotBlank(bo.getTaskRegion()), SchemEvaluation::getTaskRegion, bo.getTaskRegion());
+// lqw.like(StringUtils.isNotBlank(bo.getTaskName()), SchemEvaluation::getTaskName, bo.getTaskName());
+// lqw.like(StringUtils.isNotBlank(bo.getDocumentName()), SchemEvaluation::getDocumentName, bo.getDocumentName());
+// lqw.eq(StringUtils.isNotBlank(bo.getProgressStatus()), SchemEvaluation::getProgressStatus, bo.getProgressStatus());
+// return lqw;
+// }
+
+ /**
+ * 新增方案评价任务
+ *
+ * @param bo 方案评价任务
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(SchemEvaluationBo bo) throws IOException, InterruptedException {
+ return handleTask(bo, TaskEnum.TaskType.SCHEME_EVALUATION.getValue());
+ }
+
+ /**
+ * 修改方案评价任务
+ *
+ * @param bo 方案评价任务
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(SchemEvaluationBo bo) {
+// SchemEvaluation update = MapstructUtils.convert(bo, SchemEvaluation.class);
+// validEntityBeforeSave(update);
+// return baseMapper.updateById(update) > 0;
+ return null;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(SchemEvaluation entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除方案评价任务信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteByIds(ids) > 0;
+ }
+
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/TenderTaskServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/TenderTaskServiceImpl.java
new file mode 100644
index 0000000..37238bd
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/TenderTaskServiceImpl.java
@@ -0,0 +1,166 @@
+package org.dromara.productManagement.service.impl;
+
+import org.dromara.common.core.service.DictService;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.productManagement.common.service.BaseTaskService;
+import org.dromara.productManagement.domain.DocumentTasks;
+import org.dromara.productManagement.domain.TenderTask;
+import org.dromara.productManagement.domain.bo.ContractualTasksBo;
+import org.dromara.productManagement.domain.bo.DocumentTasksBo;
+import org.dromara.productManagement.domain.bo.TenderTaskBo;
+import org.dromara.productManagement.domain.vo.DocumentTasksVo;
+import org.dromara.productManagement.domain.vo.TenderTaskVo;
+import org.dromara.productManagement.enums.TaskEnum;
+import org.dromara.productManagement.mapper.*;
+import org.dromara.productManagement.service.IDocumentTasksPermissionsService;
+import org.dromara.productManagement.service.IDocumentTasksService;
+import org.dromara.productManagement.utils.MyTimeUtils;
+import org.dromara.system.service.ISysOssService;
+import org.dromara.system.service.ISysUserService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.dromara.productManagement.service.ITenderTaskService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 招标摘要任务Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2024-12-31
+ */
+@Transactional
+@Service
+public class TenderTaskServiceImpl extends BaseTaskService implements ITenderTaskService {
+
+
+ public TenderTaskServiceImpl(ISysOssService ossService, ISysUserService userService, ModelPromptsMapper modelPromptsMapper, ModelUserPromptssettingMapper modelUserPromptssettingMapper, DocumentTasksPermissionsMapper documentTasksPermissionsMapper, IDocumentTasksPermissionsService documentTasksPermissionsService, DictService dictTypeService, DocumentTasksMapper baseMapper) {
+ super(ossService, userService, modelPromptsMapper, modelUserPromptssettingMapper, documentTasksPermissionsMapper, documentTasksPermissionsService, dictTypeService, baseMapper);
+ }
+ @Autowired
+ private DocumentTasksMapper documentTasksMapper;
+ @Autowired
+ private IDocumentTasksService documentTasksService;
+
+ /**
+ * 查询招标摘要任务
+ *
+ * @param id 主键
+ * @return 招标摘要任务
+ */
+ @Override
+ public DocumentTasksVo queryById(Long id) {
+ return null;
+ }
+ /**
+ * 分页查询招标摘要任务列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 招标摘要任务分页列表
+ */
+ @Override
+ public TableDataInfo queryPageList(TenderTaskBo bo, PageQuery pageQuery) {
+ DocumentTasksBo documentTasksBo = new DocumentTasksBo();
+ BeanUtils.copyProperties(bo, documentTasksBo);
+ LambdaQueryWrapper lqw = buildQueryWrapper(documentTasksBo);
+ lqw.eq(DocumentTasks::getTaskType, TaskEnum.TaskType.TENDER_REVIEW.getValue());
+ Page result = documentTasksMapper.selectVoPage(pageQuery.build(), lqw);
+ result.getRecords().forEach(vo -> {
+ Long createBy = vo.getCreateBy();
+ vo.setCreateUser(userService.selectUserById(createBy).getNickName());
+ //计算updateTime 和 createTime之间相差的小时数
+ // 格式化输出
+ String formattedDuration="";
+ if(!vo.getProgressStatus().equals("PENDING")&&!vo.getProgressStatus().equals("STARTED")){
+ formattedDuration= MyTimeUtils.formatTimeDifference(vo.getCreateTime(), vo.getUpdateTime());
+ }
+ vo.setTaskDuration(formattedDuration);
+ });
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 查询符合条件的招标摘要任务列表
+ *
+ * @param bo 查询条件
+ * @return 招标摘要任务列表
+ */
+ @Override
+ public List queryList(TenderTaskBo bo) {
+ DocumentTasksBo documentTasksBo = new DocumentTasksBo();
+ BeanUtils.copyProperties(bo, documentTasksBo);
+
+ return documentTasksService.queryList(documentTasksBo);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(TenderTaskBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(StringUtils.isNotBlank(bo.getTaskIndustry()), TenderTask::getTaskIndustry, bo.getTaskIndustry());
+ lqw.eq(StringUtils.isNotBlank(bo.getTaskRegion()), TenderTask::getTaskRegion, bo.getTaskRegion());
+ lqw.like(StringUtils.isNotBlank(bo.getTaskName()), TenderTask::getTaskName, bo.getTaskName());
+ lqw.like(StringUtils.isNotBlank(bo.getDocumentName()), TenderTask::getDocumentName, bo.getDocumentName());
+ lqw.eq(bo.getOssId() != null, TenderTask::getOssId, bo.getOssId());
+ lqw.eq(StringUtils.isNotBlank(bo.getProgressStatus()), TenderTask::getProgressStatus, bo.getProgressStatus());
+ return lqw;
+ }
+
+ /**
+ * 新增招标摘要任务
+ *
+ * @param bo 招标摘要任务
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(TenderTaskBo bo) throws IOException, InterruptedException {
+ return handleTask(bo, TaskEnum.TaskType.TENDER_REVIEW.getValue());
+ }
+
+ /**
+ * 修改招标摘要任务
+ *
+ * @param bo 招标摘要任务
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(TenderTaskBo bo) {
+ TenderTask update = MapstructUtils.convert(bo, TenderTask.class);
+ validEntityBeforeSave(update);
+ return null;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(TenderTask entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除招标摘要任务信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteByIds(ids) > 0;
+ }
+}
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualTaskSupplementMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualTaskSupplementMapper.xml
new file mode 100644
index 0000000..6f7a969
--- /dev/null
+++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualTaskSupplementMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml
index 7b6785d..f944b79 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml
+++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml
@@ -64,6 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT
id,
task_name,
+ task_type,
task_id,
oss_id,
estimated_completion_time,
diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksPermissionsMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksPermissionsMapper.xml
index a8f58e3..5c40dd6 100644
--- a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksPermissionsMapper.xml
+++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksPermissionsMapper.xml
@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-