zzw 1 месяц назад
Родитель
Сommit
173939de84
22 измененных файлов с 803 добавлено и 86 удалено
  1. 7 4
      assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/CostAuditTaskController.java
  2. 103 0
      assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskDraftController.java
  3. 3 51
      assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskEvidenceController.java
  4. 64 0
      assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/opinion/CostProjectTaskPreliminaryOpinionController.java
  5. 18 0
      assistMg/src/main/java/com/hotent/project/dao/CostProjectTaskAdjustmentRecordDao.java
  6. 18 0
      assistMg/src/main/java/com/hotent/project/dao/CostProjectTaskDraftDao.java
  7. 18 0
      assistMg/src/main/java/com/hotent/project/dao/CostProjectTaskPreliminaryOpinionDao.java
  8. 37 0
      assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskAdjustmentRecordManager.java
  9. 30 0
      assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskDraftManager.java
  10. 1 7
      assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskEvidenceManager.java
  11. 5 1
      assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskManager.java
  12. 35 0
      assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskPreliminaryOpinionManager.java
  13. 6 6
      assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectApprovalManagerImpl.java
  14. 46 0
      assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskAdjustmentRecordManagerImpl.java
  15. 40 0
      assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskDraftManagerImpl.java
  16. 1 5
      assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskEvidenceManagerImpl.java
  17. 37 9
      assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskManagerImpl.java
  18. 45 0
      assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskPreliminaryOpinionManagerImpl.java
  19. 94 0
      assistMg/src/main/java/com/hotent/project/model/CostProjectTaskAdjustmentRecord.java
  20. 70 0
      assistMg/src/main/java/com/hotent/project/model/CostProjectTaskDraft.java
  21. 3 3
      assistMg/src/main/java/com/hotent/project/model/CostProjectTaskEvidence.java
  22. 122 0
      assistMg/src/main/java/com/hotent/project/model/CostProjectTaskPreliminaryOpinion.java

+ 7 - 4
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/CostAuditTaskController.java

@@ -20,10 +20,7 @@ import com.hotent.project.manager.CostProjectApprovalManager;
 import com.hotent.project.manager.CostProjectTaskManager;
 import com.hotent.project.manager.CostProjectTaskNodeManager;
 import com.hotent.project.manager.CostProjectTaskProccessManager;
-import com.hotent.project.model.CostProjectApproval;
-import com.hotent.project.model.CostProjectTask;
-import com.hotent.project.model.CostProjectTaskNode;
-import com.hotent.project.model.CostProjectTaskProccess;
+import com.hotent.project.model.*;
 import com.hotent.project.resp.CostProjectApprovalDetailResp;
 import com.hotent.uc.api.model.IUser;
 import com.hotent.uc.manager.OrgManager;
@@ -78,4 +75,10 @@ public class CostAuditTaskController {
     public CommonResult<String> save(@RequestBody CostTaskPageReq costTaskPageReq) throws Exception{
         return CommonResult.<String>ok().value(costProjectTaskManager.saveTask(costTaskPageReq));
     }
+
+    @PostMapping(value="/yjsave")
+    @ApiOperation(value="意见反馈任务填报",httpMethod = "POST",notes = "意见反馈")
+    public CommonResult<String> yjsave(@RequestBody CostProjectTaskPreliminaryOpinion costProjectTaskPreliminaryOpinion) throws Exception{
+        return CommonResult.<String>ok().value(costProjectTaskManager.saveYjTask(costProjectTaskPreliminaryOpinion));
+    }
 }

+ 103 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskDraftController.java

@@ -0,0 +1,103 @@
+package com.hotent.enterpriseDeclare.controller.material;
+
+import com.hotent.base.annotation.ApiGroup;
+import com.hotent.base.constants.ApiGroupConsts;
+import com.hotent.base.model.CommonResult;
+import com.hotent.constant.BaseConstant;
+import com.hotent.project.manager.CostProjectTaskAdjustmentRecordManager;
+import com.hotent.project.manager.CostProjectTaskDraftManager;
+import com.hotent.project.model.CostProjectTaskAdjustmentRecord;
+import com.hotent.project.model.CostProjectTaskDraft;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 工作底稿控制器
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@Api(tags = "工作底稿管理")
+@RestController
+@RequestMapping("/api/enterprise/taskDraft")
+@ApiGroup(group = {ApiGroupConsts.GROUP_COST})
+public class CostProjectTaskDraftController {
+
+    @Autowired
+    private CostProjectTaskDraftManager costProjectTaskDraftManager;
+
+    @Autowired
+    private CostProjectTaskAdjustmentRecordManager adjustmentRecordManager;
+
+    /**
+     * 根据任务ID获取工作底稿
+     */
+    @GetMapping(value = "/getByTaskId")
+    @ApiOperation(value = "根据任务ID获取工作底稿", httpMethod = "GET", notes = "根据任务ID获取工作底稿")
+    public CommonResult<CostProjectTaskDraft> getByTaskId(@RequestParam String taskId) {
+        CostProjectTaskDraft draft = costProjectTaskDraftManager.getByTaskId(taskId);
+        return CommonResult.<CostProjectTaskDraft>ok().value(draft);
+    }
+
+
+    /**
+     * 新增或更新工作底稿
+     */
+    @PostMapping(value = "/save")
+    @ApiOperation(value = "新增或更新工作底稿", httpMethod = "POST", notes = "新增或更新工作底稿")
+    public CommonResult<String> save(@RequestBody CostProjectTaskDraft draft) {
+        costProjectTaskDraftManager.createOrUpdate(draft);
+        return CommonResult.<String>ok().value("操作成功");
+    }
+
+    /**
+     * 删除工作底稿
+     */
+    @PostMapping(value = "/delete")
+    @ApiOperation(value = "删除工作底稿", httpMethod = "POST", notes = "删除工作底稿")
+    public CommonResult<String> delete(@RequestParam String id) {
+        CostProjectTaskDraft draft = costProjectTaskDraftManager.getById(id);
+        if (draft != null) {
+            draft.setIsDeleted(BaseConstant.DELETE_FLAG);
+            costProjectTaskDraftManager.updateById(draft);
+        }
+        return CommonResult.<String>ok().value("删除成功");
+    }
+
+    /**
+     * 根据任务ID查询核增核减记录列表
+     */
+    @GetMapping(value = "/record/listByTaskId")
+    @ApiOperation(value = "根据任务ID查询核增核减记录列表", httpMethod = "GET", notes = "根据任务ID查询核增核减记录列表")
+    public CommonResult<List<CostProjectTaskAdjustmentRecord>> listRecordByTaskId(@RequestParam String taskId) {
+        List<CostProjectTaskAdjustmentRecord> list = adjustmentRecordManager.listByTaskId(taskId);
+        return CommonResult.<List<CostProjectTaskAdjustmentRecord>>ok().value(list);
+    }
+
+    /**
+     * 新增核增核减记录
+     */
+    @PostMapping(value = "/record/opera")
+    @ApiOperation(value = "新增核增核减记录", httpMethod = "POST", notes = "新增核增核减记录")
+    public CommonResult<String> addRecord(@RequestBody CostProjectTaskAdjustmentRecord record) {
+        adjustmentRecordManager.createOrUpdate(record);
+        return CommonResult.<String>ok().value("新增成功");
+    }
+
+
+    /**
+     * 删除核增核减记录
+     */
+    @PostMapping(value = "/record/delete")
+    @ApiOperation(value = "删除核增核减记录", httpMethod = "POST", notes = "删除核增核减记录")
+    public CommonResult<String> deleteRecord(@RequestParam String id) {
+        adjustmentRecordManager.removeById(id);
+        return CommonResult.<String>ok().value("删除成功");
+    }
+}
+

+ 3 - 51
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/material/CostProjectTaskEvidenceController.java

@@ -27,36 +27,6 @@ public class CostProjectTaskEvidenceController {
     @Autowired
     private CostProjectTaskEvidenceManager costProjectTaskEvidenceManager;
 
-    /**
-     * 分页查询资料登记列表
-     */
-    @PostMapping(value = "/pageList")
-    @ApiOperation(value = "分页查询资料登记列表", httpMethod = "POST", notes = "分页查询资料登记列表")
-    public CommonResult<IPage<CostProjectTaskEvidence>> pageList(@RequestBody CostTaskEvidencePageReq req) {
-        LambdaQueryWrapper<CostProjectTaskEvidence> queryWrapper = new LambdaQueryWrapper<>();
-
-        // 查询未删除的记录
-        queryWrapper.eq(CostProjectTaskEvidence::getIsDeleted, BaseConstant.NORMAL_STATUS);
-
-        // 根据任务ID查询
-        if (StringUtil.isNotEmpty(req.getTaskId())) {
-            queryWrapper.eq(CostProjectTaskEvidence::getTaskId, req.getTaskId());
-        }
-
-        // 根据资料名称模糊查询
-        if (StringUtil.isNotEmpty(req.getMaterialName())) {
-            queryWrapper.like(CostProjectTaskEvidence::getMaterialName, req.getMaterialName());
-        }
-
-        // 按序号排序
-        queryWrapper.orderByAsc(CostProjectTaskEvidence::getOrderNum);
-
-        // 创建分页对象并执行查询
-        Page<CostProjectTaskEvidence> page = new Page<>(req.getPageNum(), req.getPageSize());
-        IPage<CostProjectTaskEvidence> result = costProjectTaskEvidenceManager.page(page, queryWrapper);
-
-        return CommonResult.<IPage<CostProjectTaskEvidence>>ok().value(result);
-    }
 
     /**
      * 根据任务ID查询资料列表
@@ -73,15 +43,6 @@ public class CostProjectTaskEvidenceController {
         return CommonResult.<List<CostProjectTaskEvidence>>ok().value(list);
     }
 
-    /**
-     * 根据ID获取详情
-     */
-    @GetMapping(value = "/getDetail")
-    @ApiOperation(value = "根据ID获取详情", httpMethod = "GET", notes = "根据ID获取详情")
-    public CommonResult<CostProjectTaskEvidence> getDetail(@RequestParam String id) {
-        CostProjectTaskEvidence evidence = costProjectTaskEvidenceManager.getDetail(id);
-        return CommonResult.<CostProjectTaskEvidence>ok().value(evidence);
-    }
 
     /**
      * 新增资料登记
@@ -90,26 +51,17 @@ public class CostProjectTaskEvidenceController {
     @ApiOperation(value = "新增资料登记", httpMethod = "POST", notes = "新增资料登记")
     public CommonResult<String> add(@RequestBody CostProjectTaskEvidence evidence) {
         costProjectTaskEvidenceManager.createOrUpdate(evidence);
-        return CommonResult.<String>ok().value("新增成功");
+        return CommonResult.<String>ok().value("操作成功");
     }
 
-    /**
-     * 更新资料登记
-     */
-    @PostMapping(value = "/update")
-    @ApiOperation(value = "更新资料登记", httpMethod = "POST", notes = "更新资料登记")
-    public CommonResult<String> update(@RequestBody CostProjectTaskEvidence evidence) {
-        costProjectTaskEvidenceManager.createOrUpdate(evidence);
-        return CommonResult.<String>ok().value("更新成功");
-    }
 
     /**
      * 删除资料登记
      */
     @PostMapping(value = "/delete")
     @ApiOperation(value = "删除资料登记", httpMethod = "POST", notes = "删除资料登记")
-    public CommonResult<String> delete(@RequestParam String id) {
-        costProjectTaskEvidenceManager.removeById(id);
+    public CommonResult<String> delete(@RequestBody CostProjectTaskEvidence evidence) {
+        costProjectTaskEvidenceManager.removeById(evidence.getId());
         return CommonResult.<String>ok().value("删除成功");
     }
 }

+ 64 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/opinion/CostProjectTaskPreliminaryOpinionController.java

@@ -0,0 +1,64 @@
+package com.hotent.enterpriseDeclare.controller.opinion;
+
+import com.hotent.base.annotation.ApiGroup;
+import com.hotent.base.constants.ApiGroupConsts;
+import com.hotent.base.model.CommonResult;
+import com.hotent.constant.BaseConstant;
+import com.hotent.project.manager.CostProjectTaskPreliminaryOpinionManager;
+import com.hotent.project.model.CostProjectTaskPreliminaryOpinion;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 成本审核意见控制器(包含初步意见、反馈意见、结论意见)
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@Api(tags = "成本审核意见管理")
+@RestController
+@RequestMapping("/api/enterprise/opinion")
+@ApiGroup(group = {ApiGroupConsts.GROUP_COST})
+public class CostProjectTaskPreliminaryOpinionController {
+
+    @Autowired
+    private CostProjectTaskPreliminaryOpinionManager opinionManager;
+
+    /**
+     * 根据任务ID获取审核意见
+     */
+    @GetMapping(value = "/getByTaskId")
+    @ApiOperation(value = "根据任务ID获取审核意见", httpMethod = "GET", notes = "根据任务ID获取审核意见(包含初步意见、反馈意见、结论意见)")
+    public CommonResult<CostProjectTaskPreliminaryOpinion> getByTaskId(@RequestParam String taskId) {
+        CostProjectTaskPreliminaryOpinion opinion = opinionManager.getByTaskId(taskId);
+        return CommonResult.<CostProjectTaskPreliminaryOpinion>ok().value(opinion);
+    }
+
+    /**
+     * 新增或更新审核意见
+     */
+    @PostMapping(value = "/save")
+    @ApiOperation(value = "新增或更新审核意见", httpMethod = "POST", notes = "新增或更新审核意见(包含初步意见、反馈意见、结论意见)")
+    public CommonResult<String> save(@RequestBody CostProjectTaskPreliminaryOpinion opinion) {
+        opinionManager.createOrUpdate(opinion);
+        return CommonResult.<String>ok().value("保存成功");
+    }
+
+    /**
+     * 删除审核意见
+     */
+    @PostMapping(value = "/delete")
+    @ApiOperation(value = "删除审核意见", httpMethod = "POST", notes = "删除审核意见")
+    public CommonResult<String> delete(@RequestParam String id) {
+        CostProjectTaskPreliminaryOpinion opinion = opinionManager.getById(id);
+        if (opinion != null) {
+            opinion.setIsDeleted(BaseConstant.DELETE_FLAG);
+            opinionManager.updateById(opinion);
+        }
+        return CommonResult.<String>ok().value("删除成功");
+    }
+}
+

+ 18 - 0
assistMg/src/main/java/com/hotent/project/dao/CostProjectTaskAdjustmentRecordDao.java

@@ -0,0 +1,18 @@
+package com.hotent.project.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hotent.project.model.CostProjectTaskAdjustmentRecord;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 核增核减记录表 数据访问层
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@Mapper
+public interface CostProjectTaskAdjustmentRecordDao extends BaseMapper<CostProjectTaskAdjustmentRecord> {
+
+}
+

+ 18 - 0
assistMg/src/main/java/com/hotent/project/dao/CostProjectTaskDraftDao.java

@@ -0,0 +1,18 @@
+package com.hotent.project.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hotent.project.model.CostProjectTaskDraft;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 工作底稿表 数据访问层
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@Mapper
+public interface CostProjectTaskDraftDao extends BaseMapper<CostProjectTaskDraft> {
+
+}
+

+ 18 - 0
assistMg/src/main/java/com/hotent/project/dao/CostProjectTaskPreliminaryOpinionDao.java

@@ -0,0 +1,18 @@
+package com.hotent.project.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hotent.project.model.CostProjectTaskPreliminaryOpinion;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 成本审核意见表 数据访问层(包含初步意见、反馈意见、结论意见)
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@Mapper
+public interface CostProjectTaskPreliminaryOpinionDao extends BaseMapper<CostProjectTaskPreliminaryOpinion> {
+
+}
+

+ 37 - 0
assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskAdjustmentRecordManager.java

@@ -0,0 +1,37 @@
+package com.hotent.project.manager;
+
+import com.hotent.project.model.CostProjectTaskAdjustmentRecord;
+import com.hotent.base.manager.BaseManager;
+
+import java.util.List;
+
+/**
+ * 核增核减记录表 服务类
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+public interface CostProjectTaskAdjustmentRecordManager extends BaseManager<CostProjectTaskAdjustmentRecord> {
+    /**
+     * 根据主键获取详情
+     * @param id
+     * @return
+     */
+    CostProjectTaskAdjustmentRecord getDetail(String id);
+    
+    /**
+     * 根据任务ID查询记录列表
+     * @param taskId
+     * @return
+     */
+    List<CostProjectTaskAdjustmentRecord> listByTaskId(String taskId);
+    
+    /**
+     * 新建、更新核增核减记录
+     * @param record
+     * @return
+     */
+    void createOrUpdate(CostProjectTaskAdjustmentRecord record);
+}
+

+ 30 - 0
assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskDraftManager.java

@@ -0,0 +1,30 @@
+package com.hotent.project.manager;
+
+import com.hotent.project.model.CostProjectTaskDraft;
+import com.hotent.base.manager.BaseManager;
+
+/**
+ * 工作底稿表 服务类
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+public interface CostProjectTaskDraftManager extends BaseManager<CostProjectTaskDraft> {
+
+
+    /**
+     * 根据任务ID获取工作底稿
+     * @param taskId
+     * @return
+     */
+    CostProjectTaskDraft getByTaskId(String taskId);
+
+    /**
+     * 新建、更新工作底稿
+     * @param costProjectTaskDraft
+     * @return
+     */
+    void createOrUpdate(CostProjectTaskDraft costProjectTaskDraft);
+}
+

+ 1 - 7
assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskEvidenceManager.java

@@ -11,13 +11,7 @@ import com.hotent.base.manager.BaseManager;
  * @since 2025-01-27
  */
 public interface CostProjectTaskEvidenceManager extends BaseManager<CostProjectTaskEvidence> {
-    /**
-     * 根据主键获取详情
-     * @param id
-     * @return
-     */
-    CostProjectTaskEvidence getDetail(String id);
-    
+
     /**
      * 新建、更新子任务资料登记表
      * @param costProjectTaskEvidence

+ 5 - 1
assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskManager.java

@@ -6,6 +6,7 @@ import com.hotent.enterpriseDeclare.req.CostTaskPageReq;
 import com.hotent.enterpriseDeclare.req.CostTaskReviewPageReq;
 import com.hotent.project.model.CostProjectTask;
 import com.hotent.base.manager.BaseManager;
+import com.hotent.project.model.CostProjectTaskPreliminaryOpinion;
 
 import java.util.List;
 
@@ -27,6 +28,9 @@ public interface CostProjectTaskManager extends BaseManager<CostProjectTask> {
 
 	String saveTask(CostTaskPageReq costTaskPageReq);
 
-    String doProcessBtn(CostTaskPageReq req);
+	String saveYjTask(CostProjectTaskPreliminaryOpinion costProjectTaskPreliminaryOpinion);
+
+	String doProcessBtn(CostTaskPageReq req);
+
 
 }

+ 35 - 0
assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskPreliminaryOpinionManager.java

@@ -0,0 +1,35 @@
+package com.hotent.project.manager;
+
+import com.hotent.project.model.CostProjectTaskPreliminaryOpinion;
+import com.hotent.base.manager.BaseManager;
+
+/**
+ * 成本审核意见表 服务类(包含初步意见、反馈意见、结论意见)
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+public interface CostProjectTaskPreliminaryOpinionManager extends BaseManager<CostProjectTaskPreliminaryOpinion> {
+    /**
+     * 根据主键获取详情
+     * @param id
+     * @return
+     */
+    CostProjectTaskPreliminaryOpinion getDetail(String id);
+
+    /**
+     * 根据任务ID获取审核意见
+     * @param taskId
+     * @return
+     */
+    CostProjectTaskPreliminaryOpinion getByTaskId(String taskId);
+
+    /**
+     * 新建、更新审核意见
+     * @param opinion
+     * @return
+     */
+    void createOrUpdate(CostProjectTaskPreliminaryOpinion opinion);
+}
+

+ 6 - 6
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectApprovalManagerImpl.java

@@ -562,10 +562,10 @@ public class CostProjectApprovalManagerImpl extends BaseManagerImpl<CostProjectA
                             .eq(CostProjectTask::getAuditedUnitId, unit.getUnitId())
                             .eq(CostProjectTask::getIsDeleted, 0)
             );
-            CostProjectTaskProccess taskProccess = costProjectTaskProccessManager.getOne(
-                    new LambdaQueryWrapper<CostProjectTaskProccess>()
-                            .eq(CostProjectTaskProccess::getTaskId, userTask.getId())
-            );
+//            CostProjectTaskProccess taskProccess = costProjectTaskProccessManager.getOne(
+//                    new LambdaQueryWrapper<CostProjectTaskProccess>()
+//                            .eq(CostProjectTaskProccess::getTaskId, userTask.getId())
+//            );
 
 
             // 设置子任务对象
@@ -573,8 +573,8 @@ public class CostProjectApprovalManagerImpl extends BaseManagerImpl<CostProjectA
             // 设置主状态为子任务状态
             record.setStatus(userTask.getStatus());
             record.setStatusName(TaskStatusConstant.getStatusNameByCode(userTask.getStatus()));
-            record.setCurrentNode(taskProccess.getCurrentNode());
-            record.setCurrentNodeName(NodeConstant.getNodeValueByKey(taskProccess.getCurrentNode())+ "-"+ TaskStatusConstant.getStatusNameByCode(userTask.getStatus()));
+            record.setCurrentNode(userTask.getCurrentNode());
+            record.setCurrentNodeName(NodeConstant.getNodeValueByKey(userTask.getCurrentNode())+ "-"+ TaskStatusConstant.getStatusNameByCode(userTask.getStatus()));
 
         }
         return result;

+ 46 - 0
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskAdjustmentRecordManagerImpl.java

@@ -0,0 +1,46 @@
+package com.hotent.project.manager.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.hotent.constant.BaseConstant;
+import com.hotent.project.dao.CostProjectTaskAdjustmentRecordDao;
+import com.hotent.project.manager.CostProjectTaskAdjustmentRecordManager;
+import com.hotent.project.model.CostProjectTaskAdjustmentRecord;
+import com.hotent.base.manager.impl.BaseManagerImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 核增核减记录表 服务实现类
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@Service
+public class CostProjectTaskAdjustmentRecordManagerImpl extends BaseManagerImpl<CostProjectTaskAdjustmentRecordDao, CostProjectTaskAdjustmentRecord> implements CostProjectTaskAdjustmentRecordManager {
+
+    @Override
+    public CostProjectTaskAdjustmentRecord getDetail(String id) {
+        CostProjectTaskAdjustmentRecord record = this.get(id);
+        return record;
+    }
+
+    @Override
+    public List<CostProjectTaskAdjustmentRecord> listByTaskId(String taskId) {
+        LambdaQueryWrapper<CostProjectTaskAdjustmentRecord> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CostProjectTaskAdjustmentRecord::getTaskId, taskId)
+                   .orderByAsc(CostProjectTaskAdjustmentRecord::getOrderNum);
+
+        return this.list(queryWrapper);
+    }
+
+    @Override
+    @Transactional
+    public void createOrUpdate(CostProjectTaskAdjustmentRecord record) {
+        //新建或更新
+        this.saveOrUpdate(record);
+    }
+}
+

+ 40 - 0
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskDraftManagerImpl.java

@@ -0,0 +1,40 @@
+package com.hotent.project.manager.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.hotent.constant.BaseConstant;
+import com.hotent.project.dao.CostProjectTaskDraftDao;
+import com.hotent.project.manager.CostProjectTaskDraftManager;
+import com.hotent.project.model.CostProjectTaskDraft;
+import com.hotent.base.manager.impl.BaseManagerImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 工作底稿表 服务实现类
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@Service
+public class CostProjectTaskDraftManagerImpl extends BaseManagerImpl<CostProjectTaskDraftDao, CostProjectTaskDraft> implements CostProjectTaskDraftManager {
+
+
+    @Override
+    public CostProjectTaskDraft getByTaskId(String taskId) {
+        LambdaQueryWrapper<CostProjectTaskDraft> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CostProjectTaskDraft::getTaskId, taskId)
+                   .eq(CostProjectTaskDraft::getIsDeleted, BaseConstant.NORMAL_STATUS)
+                   .last("LIMIT 1");
+
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
+    @Transactional
+    public void createOrUpdate(CostProjectTaskDraft costProjectTaskDraft) {
+        //新建或更新
+        this.saveOrUpdate(costProjectTaskDraft);
+    }
+}
+

+ 1 - 5
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskEvidenceManagerImpl.java

@@ -17,11 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
 @Service
 public class CostProjectTaskEvidenceManagerImpl extends BaseManagerImpl<CostProjectTaskEvidenceDao, CostProjectTaskEvidence> implements CostProjectTaskEvidenceManager {
 
-    @Override
-    public CostProjectTaskEvidence getDetail(String id) {
-        CostProjectTaskEvidence costProjectTaskEvidence = this.get(id);
-        return costProjectTaskEvidence;
-    }
+
 
     @Override
     @Transactional

+ 37 - 9
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskManagerImpl.java

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.hotent.base.manager.impl.BaseManagerImpl;
-import com.hotent.base.model.CommonResult;
 import com.hotent.base.util.StringUtil;
 import com.hotent.baseInfo.req.CostTaskSearchReq;
 import com.hotent.constant.BaseConstant;
@@ -15,12 +14,10 @@ import com.hotent.constant.TaskStatusConstant;
 import com.hotent.enterpriseDeclare.req.CostTaskPageReq;
 import com.hotent.enterpriseDeclare.req.CostTaskReviewPageReq;
 import com.hotent.project.dao.CostProjectTaskDao;
-import com.hotent.project.manager.CostNoticeManager;
-import com.hotent.project.manager.CostProjectApprovalManager;
-import com.hotent.project.manager.CostProjectTaskManager;
-import com.hotent.project.manager.CostProjectTaskProccessManager;
+import com.hotent.project.manager.*;
 import com.hotent.project.model.CostProjectApproval;
 import com.hotent.project.model.CostProjectTask;
+import com.hotent.project.model.CostProjectTaskPreliminaryOpinion;
 import com.hotent.project.model.CostProjectTaskProccess;
 import com.hotent.uc.api.model.IUser;
 import com.hotent.uc.util.ContextUtil;
@@ -54,6 +51,9 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
     @Autowired
     private CostProjectApprovalManager costProjectApprovalManager;
 
+    @Autowired
+    private CostProjectTaskPreliminaryOpinionManager preliminaryOpinionManager;
+
 
     @Override
     public List<CostProjectTask> getTaskList(CostTaskSearchReq req) {
@@ -176,6 +176,20 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
     }
 
     @Override
+    public String saveYjTask(CostProjectTaskPreliminaryOpinion costProjectTaskPreliminaryOpinion) {
+        // 1.校验内容是否填写完毕!todo
+
+        preliminaryOpinionManager.createOrUpdate(costProjectTaskPreliminaryOpinion);
+        // 3. 子流程状态改为已反馈
+        CostProjectTask task = this.getById(costProjectTaskPreliminaryOpinion.getTaskId());
+        task.setStatus(TaskStatusConstant.FEEDBACKED.getStatusCode());
+        this.updateById(task);
+
+        return "意见反馈完成";
+
+    }
+
+    @Override
     public String doProcessBtn(CostTaskPageReq req) {
 
         CostProjectTask task = costProjectTaskManager.getById(req.getTaskId());
@@ -217,6 +231,20 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
         task.setCurrentNode(nextNodeStatus);
         costProjectTaskManager.updateById(task);
 
+        // 如果下一个节点是"意见告知",生成空的初步意见数据
+        if (NodeConstant.yjfk.getNodeKey().equals(nextNodeStatus)) {
+            // 检查是否已存在初步意见
+            CostProjectTaskPreliminaryOpinion existingOpinion = preliminaryOpinionManager.getByTaskId(task.getId());
+            if (existingOpinion == null) {
+                // 创建空的初步意见记录
+                CostProjectTaskPreliminaryOpinion preliminaryOpinion = new CostProjectTaskPreliminaryOpinion();
+                preliminaryOpinion.setTaskId(task.getId());
+                preliminaryOpinion.setStatus("draft");
+                preliminaryOpinion.setIsDeleted(BaseConstant.NORMAL_STATUS);
+                preliminaryOpinionManager.createOrUpdate(preliminaryOpinion);
+            }
+        }
+
         // 发送通知
         String title = nextNodeStatus+"通过";
         String auditedUnit = task.getAuditedUnitName() == null ? "" : task.getAuditedUnitName();
@@ -242,16 +270,16 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
         if (allSiblingsCompleted) {
             CostProjectTask parentTask = costProjectTaskManager.getById(task.getPid());
             if (parentTask != null) {
-                CostProjectTaskProccess parentProccess = costProjectTaskProccessManager.getOne(
-                        new LambdaQueryWrapper<CostProjectTaskProccess>()
-                                .eq(CostProjectTaskProccess::getTaskId, parentTask.getId())
+                CostProjectTask parentProccess = costProjectTaskManager.getOne(
+                        new LambdaQueryWrapper<CostProjectTask>()
+                                .eq(CostProjectTask::getPid, parentTask.getId())
                 );
                 // 将父任务流转到下一步 重置所有子任务状态
                 parentTask.setCurrentNode(nextNodeStatus);
                 costProjectTaskManager.updateById(parentTask);
                 if (parentProccess != null) {
                     parentProccess.setCurrentNode(nextNodeStatus);
-                    costProjectTaskProccessManager.updateById(parentProccess);
+                    costProjectTaskManager.updateById(parentProccess);
                 }
                 List<CostProjectTask> children = costProjectTaskManager.list(
                         new LambdaQueryWrapper<CostProjectTask>()

+ 45 - 0
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskPreliminaryOpinionManagerImpl.java

@@ -0,0 +1,45 @@
+package com.hotent.project.manager.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.hotent.constant.BaseConstant;
+import com.hotent.project.dao.CostProjectTaskPreliminaryOpinionDao;
+import com.hotent.project.manager.CostProjectTaskPreliminaryOpinionManager;
+import com.hotent.project.model.CostProjectTaskPreliminaryOpinion;
+import com.hotent.base.manager.impl.BaseManagerImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 成本审核意见表 服务实现类(包含初步意见、反馈意见、结论意见)
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@Service
+public class CostProjectTaskPreliminaryOpinionManagerImpl extends BaseManagerImpl<CostProjectTaskPreliminaryOpinionDao, CostProjectTaskPreliminaryOpinion> implements CostProjectTaskPreliminaryOpinionManager {
+
+    @Override
+    public CostProjectTaskPreliminaryOpinion getDetail(String id) {
+        CostProjectTaskPreliminaryOpinion opinion = this.get(id);
+        return opinion;
+    }
+
+    @Override
+    public CostProjectTaskPreliminaryOpinion getByTaskId(String taskId) {
+        LambdaQueryWrapper<CostProjectTaskPreliminaryOpinion> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CostProjectTaskPreliminaryOpinion::getTaskId, taskId)
+                   .eq(CostProjectTaskPreliminaryOpinion::getIsDeleted, BaseConstant.NORMAL_STATUS)
+                   .last("LIMIT 1");
+
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
+    @Transactional
+    public void createOrUpdate(CostProjectTaskPreliminaryOpinion opinion) {
+        //新建或更新
+        this.saveOrUpdate(opinion);
+    }
+}
+

+ 94 - 0
assistMg/src/main/java/com/hotent/project/model/CostProjectTaskAdjustmentRecord.java

@@ -0,0 +1,94 @@
+package com.hotent.project.model;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.hotent.base.entity.BaseModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 核增核减记录表
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@ApiModel(value="CostProjectTaskAdjustmentRecord对象", description="核增核减记录表")
+@Data
+public class CostProjectTaskAdjustmentRecord extends BaseModel<CostProjectTaskAdjustmentRecord> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @JsonProperty("id")
+    private String id;
+
+    @ApiModelProperty(value = "子任务ID")
+    @TableField("task_id")
+    @JsonProperty("taskId")
+    private String taskId;
+
+    @ApiModelProperty(value = "核增核减科目")
+    @TableField("subject")
+    @JsonProperty("subject")
+    private String subject;
+
+    @ApiModelProperty(value = "基本情况")
+    @TableField("basic_situation")
+    @JsonProperty("basicSituation")
+    private String basicSituation;
+
+    @ApiModelProperty(value = "核增核减说明")
+    @TableField("description")
+    @JsonProperty("description")
+    private String description;
+
+    @ApiModelProperty(value = "时间")
+    @TableField("time")
+    @JsonProperty("time")
+    private String time;
+
+    @ApiModelProperty(value = "附件ID")
+    @TableField("attachment_url")
+    @JsonProperty("attachmentUrl")
+    private String attachmentUrl;
+
+    @ApiModelProperty(value = "序号")
+    @TableField("order_num")
+    @JsonProperty("orderNum")
+    private Integer orderNum;
+
+    @ApiModelProperty(value = "逻辑删除:0正常 1删除")
+    @TableField("is_deleted")
+    @JsonProperty("isDeleted")
+    private String isDeleted;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time", fill = FieldFill.INSERT)
+    @JsonProperty("createTime")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(value = "create_by", fill = FieldFill.INSERT)
+    @JsonProperty("createBy")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonProperty("updateTime")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
+    @JsonProperty("updateBy")
+    private String updateBy;
+
+}
+

+ 70 - 0
assistMg/src/main/java/com/hotent/project/model/CostProjectTaskDraft.java

@@ -0,0 +1,70 @@
+package com.hotent.project.model;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.hotent.base.entity.BaseModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 工作底稿表
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@ApiModel(value="CostProjectTaskDraft对象", description="工作底稿表")
+@Data
+public class CostProjectTaskDraft extends BaseModel<CostProjectTaskDraft> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @JsonProperty("id")
+    private String id;
+
+    @ApiModelProperty(value = "子任务ID")
+    @TableField("task_id")
+    @JsonProperty("taskId")
+    private String taskId;
+
+    @ApiModelProperty(value = "工作底稿内容")
+    @TableField("content")
+    @JsonProperty("content")
+    private String content;
+
+    @ApiModelProperty(value = "逻辑删除:0正常 1删除")
+    @TableField("is_deleted")
+    @JsonProperty("isDeleted")
+    private String isDeleted;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time", fill = FieldFill.INSERT)
+    @JsonProperty("createTime")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(value = "create_by", fill = FieldFill.INSERT)
+    @JsonProperty("createBy")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonProperty("updateTime")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
+    @JsonProperty("updateBy")
+    private String updateBy;
+
+}
+

+ 3 - 3
assistMg/src/main/java/com/hotent/project/model/CostProjectTaskEvidence.java

@@ -56,9 +56,9 @@ public class CostProjectTaskEvidence extends BaseModel<CostProjectTaskEvidence>
     private Integer orderNum;
 
     @ApiModelProperty(value = "附件ID")
-    @TableField("attachment_id")
-    @JsonProperty("attachmentId")
-    private String attachmentId;
+    @TableField("attachment_url")
+    @JsonProperty("attachmentUrl")
+    private String attachmentUrl;
 
     @ApiModelProperty(value = "逻辑删除:0正常 1删除")
     @TableField("is_deleted")

+ 122 - 0
assistMg/src/main/java/com/hotent/project/model/CostProjectTaskPreliminaryOpinion.java

@@ -0,0 +1,122 @@
+package com.hotent.project.model;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.hotent.base.entity.BaseModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 成本审核意见表(合并初步意见和结论意见)
+ *
+ * @company 山西清众科技股份有限公司
+ * @author 超级管理员
+ * @since 2025-01-27
+ */
+@ApiModel(value="CostProjectTaskPreliminaryOpinion对象", description="成本审核意见表")
+@Data
+public class CostProjectTaskPreliminaryOpinion extends BaseModel<CostProjectTaskPreliminaryOpinion> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @JsonProperty("id")
+    private String id;
+
+    @ApiModelProperty(value = "子任务ID")
+    @TableField("task_id")
+    @JsonProperty("taskId")
+    private String taskId;
+
+    // 初步意见字段
+    @ApiModelProperty(value = "被监审单位基本情况及主要财务状况")
+    @TableField("basic_situation")
+    @JsonProperty("basicSituation")
+    private String basicSituation;
+
+    @ApiModelProperty(value = "监审项目现行执行的价格标准")
+    @TableField("current_price_standard")
+    @JsonProperty("currentPriceStandard")
+    private String currentPriceStandard;
+
+    @ApiModelProperty(value = "监审项目的成本构成、数据核增核减情况、依据及理由")
+    @TableField("cost_composition")
+    @JsonProperty("costComposition")
+    private String costComposition;
+
+    @ApiModelProperty(value = "成本审核初步意见")
+    @TableField("preliminary_opinion")
+    @JsonProperty("preliminaryOpinion")
+    private String preliminaryOpinion;
+
+    // 反馈意见字段
+    @ApiModelProperty(value = "被监审单位反馈的意见")
+    @TableField("feedback_opinion")
+    @JsonProperty("feedbackOpinion")
+    private String feedbackOpinion;
+
+    @ApiModelProperty(value = "被监审单位反馈资料")
+    @TableField("feedback_materials")
+    @JsonProperty("feedbackMaterials")
+    private String feedbackMaterials;
+
+    // 结论意见字段
+    @ApiModelProperty(value = "反馈状态:no_objection-无异议,objection-有异议")
+    @TableField("feedback_status")
+    @JsonProperty("feedbackStatus")
+    private String feedbackStatus;
+
+    @ApiModelProperty(value = "成本审核结论意见")
+    @TableField("conclusion_opinion")
+    @JsonProperty("conclusionOpinion")
+    private String conclusionOpinion;
+
+    @ApiModelProperty(value = "其他需要说明的事项")
+    @TableField("other_explanations")
+    @JsonProperty("otherExplanations")
+    private String otherExplanations;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    @JsonProperty("remark")
+    private String remark;
+
+    @ApiModelProperty(value = "状态:draft-草稿,submitted-已提交")
+    @TableField("status")
+    @JsonProperty("status")
+    private String status;
+
+    @ApiModelProperty(value = "逻辑删除:0正常 1删除")
+    @TableField("is_deleted")
+    @JsonProperty("isDeleted")
+    private String isDeleted;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time", fill = FieldFill.INSERT)
+    @JsonProperty("createTime")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(value = "create_by", fill = FieldFill.INSERT)
+    @JsonProperty("createBy")
+    private String createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonProperty("updateTime")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
+    @JsonProperty("updateBy")
+    private String updateBy;
+
+}
+