Pārlūkot izejas kodu

Merge branch 'master' of http://116.204.116.5:3000/zzw/cbjs-mvue-master

# Conflicts:
#	assistMg/src/main/java/com/hotent/project/model/CostProjectTaskMaterial.java
suhp 1 mēnesi atpakaļ
vecāks
revīzija
b73f8d09f1

+ 0 - 1
assembly/src/main/resources/application-dev.yml

@@ -9,7 +9,6 @@ spring:
           password: AchMWys5PmYsMy7r
           driver-class-name: com.mysql.cj.jdbc.Driver
           url: jdbc:mysql://101.33.208.140:3306/chengben?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false&maxReconnects=10&allowMultiQueries=true
-
           druid:
             filters: stat
             # druid oracle 验证语句

+ 8 - 1
assistMg/pom.xml

@@ -51,6 +51,13 @@
             <artifactId>jep</artifactId>
             <version>2.4.2</version>
         </dependency>
+        <dependency>
+            <groupId>com.hotent</groupId>
+            <artifactId>sys</artifactId>
+            <version>8.0.7</version>
+            <scope>compile</scope>
+        </dependency>
+
 
     </dependencies>
     <!-- 用于生成jar文件-->
@@ -82,4 +89,4 @@
     </build>
 
 
-</project>
+</project>

+ 10 - 0
assistMg/src/main/java/com/hotent/baseInfo/model/AuditedUnit.java

@@ -123,6 +123,16 @@ public class AuditedUnit extends BaseModel<AuditedUnit> {
     @TableField("tenant_id_")
     private String tenantId;
 
+    private String userId;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
     public String getUnitId() {
         return unitId;
     }

+ 81 - 0
assistMg/src/main/java/com/hotent/constant/TaskStatusConstant.java

@@ -0,0 +1,81 @@
+package com.hotent.constant;
+
+/**
+ * 任务状态枚举
+ * 
+ * @author 超级管理员
+ * @company 山西清众科技股份有限公司
+ */
+public enum TaskStatusConstant {
+
+    WAIT_SUBMIT("100", "待提交", 1),
+    AUDITING("200", "审核中", 2),
+    SUSPENDED("300", "中止", 3),
+    COMPLETED("400", "办结", 4),
+    NOT_PASSED("500", "不通过", 5);
+
+    private String statusCode;
+    private String statusName;
+    private Integer orderNum;
+
+    TaskStatusConstant(String statusCode, String statusName, Integer orderNum) {
+        this.statusCode = statusCode;
+        this.statusName = statusName;
+        this.orderNum = orderNum;
+    }
+
+    public String getStatusCode() {
+        return statusCode;
+    }
+
+    public String getStatusName() {
+        return statusName;
+    }
+
+    public Integer getOrderNum() {
+        return orderNum;
+    }
+
+    /**
+     * 根据状态码获取状态名称
+     * @param statusCode 状态码
+     * @return 状态名称
+     */
+    public static String getStatusNameByCode(String statusCode) {
+        for (TaskStatusConstant status : TaskStatusConstant.values()) {
+            if (status.getStatusCode().equals(statusCode)) {
+                return status.getStatusName();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 根据状态码获取排序号
+     * @param statusCode 状态码
+     * @return 排序号
+     */
+    public static Integer getOrderNumByCode(String statusCode) {
+        for (TaskStatusConstant status : TaskStatusConstant.values()) {
+            if (status.getStatusCode().equals(statusCode)) {
+                return status.getOrderNum();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 根据状态码获取枚举对象
+     * @param statusCode 状态码
+     * @return 枚举对象
+     */
+    public static TaskStatusConstant getByCode(String statusCode) {
+        for (TaskStatusConstant status : TaskStatusConstant.values()) {
+            if (status.getStatusCode().equals(statusCode)) {
+                return status;
+            }
+        }
+        return null;
+    }
+}
+

+ 195 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/CostAuditTaskController.java

@@ -0,0 +1,195 @@
+package com.hotent.enterpriseDeclare.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hotent.base.annotation.ApiGroup;
+import com.hotent.base.constants.ApiGroupConsts;
+import com.hotent.base.model.CommonResult;
+import com.hotent.base.util.StringUtil;
+import com.hotent.baseInfo.manager.AuditedUnitManager;
+import com.hotent.baseInfo.manager.CostDistrictManager;
+import com.hotent.baseInfo.model.AuditedUnit;
+import com.hotent.baseInfo.model.CostDistrict;
+import com.hotent.common.CrudService;
+import com.hotent.constant.NodeConstant;
+import com.hotent.constant.TaskStatusConstant;
+import com.hotent.enterpriseDeclare.req.CostAuditTaskPageReq;
+import com.hotent.enterpriseDeclare.req.CostTaskPageReq;
+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.resp.CostProjectApprovalDetailResp;
+import com.hotent.resp.PageResp;
+import com.hotent.uc.api.model.IUser;
+import com.hotent.uc.manager.OrgManager;
+import com.hotent.uc.util.ContextUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = "成本监审任务")
+@RestController
+@RequestMapping("/api/enterprise/castTask")
+@ApiGroup(group = {ApiGroupConsts.GROUP_COST})
+public class CostAuditTaskController {
+
+    @Autowired
+    private AuditedUnitManager auditedUnitManager;
+
+    @Autowired
+    private CostProjectApprovalManager costProjectApprovalManager;
+
+    @Autowired
+    private CostProjectTaskManager costProjectTaskManager;
+
+    @Autowired
+    private CostProjectTaskProccessManager costProjectTaskProccessManager;
+
+    @Autowired
+    private CostDistrictManager costDistrictManager;
+
+    @Autowired
+    private OrgManager orgManager;
+
+    // 创建通用服务实例
+    private final CrudService crudService = new CrudService();
+
+    /**
+     * 分页查询当前用户企业需要填写的监审任务
+     * @param req 分页查询请求参数
+     * @return 已发布的任务分页列表
+     */
+    @PostMapping(value = "/pageList")
+    @ApiOperation(value = "分页查询当前用户企业需要填写的监审任务", httpMethod = "POST", notes = "分页查询当前用户企业需要填写的监审任务")
+    public CommonResult<PageResp<CostProjectApproval>> pageList(@RequestBody CostAuditTaskPageReq req) {
+        return CommonResult.<PageResp<CostProjectApproval>>ok().value(crudService.pageQuery(req, this::pageListForAuditTask));
+    }
+
+    /**
+     * 企业端分页查询已发布任务的具体实现
+     * @param req 分页查询请求参数
+     * @return 分页结果
+     */
+    private IPage<CostProjectApproval> pageListForAuditTask(CostAuditTaskPageReq req) {
+        // 获取当前用户
+        IUser currentUser = ContextUtil.getCurrentUser();
+        AuditedUnit unit = auditedUnitManager.getOne(
+                new LambdaQueryWrapper<AuditedUnit>()
+                        .eq(AuditedUnit::getUserId, currentUser.getUserId())
+                        .eq(AuditedUnit::getIsDeleted, "0")
+        );
+
+        // 构建查询条件
+        LambdaQueryWrapper<CostProjectApproval> queryWrapper = new LambdaQueryWrapper<>();
+
+        // 查询已发布状态的任务
+        queryWrapper.eq(CostProjectApproval::getStatus, "2");
+
+        // 查询未删除的记录
+        queryWrapper.eq(CostProjectApproval::getIsDeleted, "0");
+
+        // 查询包含当前用户企业ID的记录
+        queryWrapper.like(CostProjectApproval::getAuditedUnitId, unit.getUnitId());
+
+        // 根据请求参数添加查询条件
+        if (StringUtil.isNotEmpty(req.getProjectName())) {
+            queryWrapper.like(CostProjectApproval::getProjectName, req.getProjectName());
+        }
+        if (StringUtil.isNotEmpty(req.getAreaCode())) {
+            queryWrapper.eq(CostProjectApproval::getAreaCode, req.getAreaCode());
+        }
+        if (StringUtil.isNotEmpty(req.getProjectYear())) {
+            queryWrapper.eq(CostProjectApproval::getProjectYear, req.getProjectYear());
+        }
+        if (StringUtil.isNotEmpty(req.getAuditType())) {
+            queryWrapper.eq(CostProjectApproval::getAuditType, req.getAuditType());
+        }
+
+        // 按创建时间倒序排列
+        queryWrapper.orderByDesc(CostProjectApproval::getCreateTime);
+
+        // 创建分页对象并执行查询
+        Page<CostProjectApproval> page = new Page<>(req.getPageNum(), req.getPageSize());
+
+        IPage<CostProjectApproval> result = costProjectApprovalManager.page(page, queryWrapper);
+
+        // 填充orgName和areaName
+        List<CostProjectApproval> records = result.getRecords();
+        for (CostProjectApproval record : records) {
+            // 设置监审主体
+            if (StringUtil.isNotEmpty(record.getOrgId())) {
+                String[] orgIds = record.getOrgId().split(",");
+                StringBuilder orgNames = new StringBuilder();
+                for (int i = 0; i < orgIds.length; i++) {
+                    String orgId = orgIds[i].trim();
+                    if (StringUtil.isNotEmpty(orgId)) {
+                        if (i > 0) {
+                            orgNames.append(",");
+                        }
+                        orgNames.append(orgManager.get(orgId).getName());
+                    }
+                }
+                record.setOrgName(orgNames.toString());
+            }
+
+            // 设置立项地区
+            if (StringUtil.isNotEmpty(record.getAreaCode())) {
+                CostDistrict district = costDistrictManager.getOne(
+                        new LambdaQueryWrapper<CostDistrict>()
+                                .eq(CostDistrict::getCode, record.getAreaCode())
+                );
+                record.setAreaName(district != null ? district.getName() : "山西省");
+            }
+
+            // 查询当前用户对应的子任务
+            CostProjectTask userTask = costProjectTaskManager.getOne(
+                    new LambdaQueryWrapper<CostProjectTask>()
+                            .eq(CostProjectTask::getProjectId, record.getProjectId())
+                            .ne(CostProjectTask::getPid,0)
+                            .eq(CostProjectTask::getAuditedUnitId, unit.getUnitId())
+                            .eq(CostProjectTask::getIsDeleted, 0)
+            );
+            CostProjectTaskProccess taskProccess = costProjectTaskProccessManager.getOne(
+                    new LambdaQueryWrapper<CostProjectTaskProccess>()
+                            .eq(CostProjectTaskProccess::getTaskId, userTask.getId())
+            );
+
+
+            // 设置子任务对象
+            record.setUserTask(userTask);
+            // 设置主状态为子任务状态
+            record.setStatusName(TaskStatusConstant.getStatusNameByCode(userTask.getStatus()));
+            record.setCurrentNode(taskProccess.getCurrentNode());
+            record.setCurrentNodeName(NodeConstant.getNodeValueByKey(taskProccess.getCurrentNode())+ "-"+ TaskStatusConstant.getStatusNameByCode(userTask.getStatus()));
+
+        }
+
+        return result;
+    }
+
+
+
+    @GetMapping(value="/getDetail")
+    @ApiOperation(value="任务立项详情",httpMethod = "GET",notes = "任务立项详情")
+    public CommonResult<CostProjectApprovalDetailResp> getDetail(@ApiParam(name="id",value="业务对象主键", required = true)@RequestParam(required=true) String id) throws Exception{
+        return CommonResult.<CostProjectApprovalDetailResp>ok().value(costProjectApprovalManager.getDetail(id));
+    }
+
+
+    @PostMapping(value="/save")
+    @ApiOperation(value="提交任务填报",httpMethod = "POST",notes = "提交任务填报")
+    public CommonResult<String> save(@RequestBody CostTaskPageReq costTaskPageReq) throws Exception{
+        return CommonResult.<String>ok().value(costProjectTaskManager.saveTask(costTaskPageReq));
+    }
+}

+ 3 - 3
assistMg/src/main/java/com/hotent/enterpriseDeclare/manager/impl/CostProjectTaskMaterialDataManagerImpl.java

@@ -17,9 +17,9 @@ import org.springframework.transaction.annotation.Transactional;
 @Service
 public class CostProjectTaskMaterialDataManagerImpl extends BaseManagerImpl<CostProjectTaskMaterialDataDao, CostProjectTaskMaterialData> implements CostProjectTaskMaterialDataManager {
 
-	@Override
-	public CostProjectTaskMaterialData getDetail(String id) {
-    	CostProjectTaskMaterialData costProjectTaskMaterialData = this.get(id);
+    @Override
+    public CostProjectTaskMaterialData getDetail(String id) {
+        CostProjectTaskMaterialData costProjectTaskMaterialData = this.get(id);
 
 
 		return costProjectTaskMaterialData;

+ 22 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/req/CostAuditTaskPageReq.java

@@ -0,0 +1,22 @@
+package com.hotent.enterpriseDeclare.req;
+
+import com.hotent.req.PageReq;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("成本监审任务分页查询请求参数")
+@Data
+public class CostAuditTaskPageReq extends PageReq {
+    @ApiModelProperty(value = "监审项目名称")
+    private String projectName;
+    
+    @ApiModelProperty(value = "地区")
+    private String areaCode;
+    
+    @ApiModelProperty(value = "年度")
+    private String projectYear;
+    
+    @ApiModelProperty(value = "监审形式")
+    private String auditType;
+}

+ 13 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/req/CostTaskPageReq.java

@@ -0,0 +1,13 @@
+package com.hotent.enterpriseDeclare.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("成本监审任务提交")
+@Data
+public class CostTaskPageReq {
+
+    @ApiModelProperty(value = "任务ID", required = true)
+    private String taskId;
+}

+ 3 - 0
assistMg/src/main/java/com/hotent/project/manager/CostProjectTaskManager.java

@@ -1,6 +1,7 @@
 package com.hotent.project.manager;
 
 import com.hotent.baseInfo.req.CostTaskSearchReq;
+import com.hotent.enterpriseDeclare.req.CostTaskPageReq;
 import com.hotent.project.model.CostProjectTask;
 import com.hotent.base.manager.BaseManager;
 
@@ -29,4 +30,6 @@ public interface CostProjectTaskManager extends BaseManager<CostProjectTask> {
 
 
 	List<CostProjectTask> getTaskList(CostTaskSearchReq req);
+
+	String saveTask(CostTaskPageReq costTaskPageReq);
 }

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

@@ -14,6 +14,7 @@ import com.hotent.baseInfo.model.CostCatalogInformation;
 import com.hotent.baseInfo.model.CostCatalogUnit;
 import com.hotent.constant.BaseConstant;
 import com.hotent.constant.NodeConstant;
+import com.hotent.constant.TaskStatusConstant;
 import com.hotent.project.manager.*;
 import com.hotent.project.model.*;
 import com.hotent.project.dao.CostProjectApprovalDao;
@@ -222,6 +223,11 @@ public class CostProjectApprovalManagerImpl extends BaseManagerImpl<CostProjectA
         if (ObjectUtil.isNotEmpty(costProjectApproval.getOrgId())) {
             detailResp.setOrgName(orgManager.get(costProjectApproval.getOrgId()).getName());
         }
+        CostProjectTaskProccess taskProccess = costProjectTaskProccessManager.getOne(
+                new QueryWrapper<CostProjectTaskProccess>().eq("project_id", costProjectApproval.getProjectId())
+        );
+        detailResp.setPlannedAuditStartDate(taskProccess.getPlannedAuditStartDate());
+        detailResp.setPlannedAuditEndDate(taskProccess.getPlannedAuditEndDate());
         return detailResp;
 
     }
@@ -333,7 +339,8 @@ public class CostProjectApprovalManagerImpl extends BaseManagerImpl<CostProjectA
         costProjectTask.setAuditPeriod(costProjectApproval.getAuditPeriod());
         costProjectTask.setSourceType(costProjectApproval.getSourceType());
         costProjectTask.setAuditType(costProjectApproval.getAuditType());
-        costProjectTask.setStatus(NodeConstant.ccls.getNodeKey());
+        costProjectTask.setCurrentNode(NodeConstant.tjcl.getNodeKey());
+        costProjectTask.setStatus(TaskStatusConstant.WAIT_SUBMIT.getStatusCode());
         costProjectTask.setOrderNum(1);
         costProjectTask.setIsDeleted(BaseConstant.NORMAL_STATUS);
         costProjectTask.setYear(costProjectApproval.getProjectYear());
@@ -403,7 +410,8 @@ public class CostProjectApprovalManagerImpl extends BaseManagerImpl<CostProjectA
             childTask.setProjectName(costProjectApproval.getProjectName() + "-子任务");
             childTask.setAuditedUnitId(unitId);
             childTask.setAuditedUnitName(auditedUnitManager.get(unitId).getUnitName());
-            childTask.setStatus(NodeConstant.ccls.getNodeKey());
+            childTask.setCurrentNode(NodeConstant.tjcl.getNodeKey());
+            childTask.setStatus(TaskStatusConstant.WAIT_SUBMIT.getStatusCode());
             childTask.setOrderNum(orderNum++);
             childTask.setPid(costProjectTask.getId());
             childTask.setIsDeleted(BaseConstant.NORMAL_STATUS);

+ 66 - 32
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskManagerImpl.java

@@ -2,54 +2,88 @@ package com.hotent.project.manager.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.hotent.base.manager.impl.BaseManagerImpl;
 import com.hotent.baseInfo.req.CostTaskSearchReq;
 import com.hotent.constant.BaseConstant;
-import com.hotent.project.model.CostProjectTask;
+import com.hotent.constant.NodeConstant;
+import com.hotent.constant.TaskStatusConstant;
+import com.hotent.enterpriseDeclare.req.CostTaskPageReq;
 import com.hotent.project.dao.CostProjectTaskDao;
 import com.hotent.project.manager.CostProjectTaskManager;
-import com.hotent.base.manager.impl.BaseManagerImpl;
+import com.hotent.project.manager.CostProjectTaskProccessManager;
+import com.hotent.project.model.CostProjectTask;
+import com.hotent.project.model.CostProjectTaskProccess;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
 import java.util.List;
-import javax.annotation.Resource;
-import com.hotent.base.util.BeanUtils;
 
 
 /**
  * 项目任务表 服务实现类
  *
- * @company 山西清众科技股份有限公司
  * @author 超级管理员
+ * @company 山西清众科技股份有限公司
  * @since 2025-10-03
  */
 @Service
 public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskDao, CostProjectTask> implements CostProjectTaskManager {
 
-	@Override
-	public CostProjectTask getDetail(String id) {
-    	CostProjectTask costProjectTask = this.get(id);
-    	
-
-		return costProjectTask;
-	}
-	@Override
-	@Transactional
-	public void createOrUpdate(CostProjectTask costProjectTask) {
-		//新建或更新
-		this.saveOrUpdate(costProjectTask);
-	}
-
-	@Override
-	public List<CostProjectTask> getTaskList(CostTaskSearchReq req) {
-		LambdaQueryWrapper<CostProjectTask> queryWrapper = new LambdaQueryWrapper<>();
-		if(ObjectUtil.isNotEmpty(req.getYear())) {
-			queryWrapper.eq(CostProjectTask::getYear, req.getYear());
-		}
-		if(ObjectUtil.isNotEmpty(req.getProjectName())) {
-			queryWrapper.like(CostProjectTask::getProjectName, req.getProjectName());
-		}
-		queryWrapper.eq(CostProjectTask::getIsDeleted, BaseConstant.NORMAL_STATUS);
-		return this.list(queryWrapper);
-	}
+
+    @Autowired
+    private CostProjectTaskProccessManager costProjectTaskProccessManager;
+
+
+    @Override
+    public CostProjectTask getDetail(String id) {
+        CostProjectTask costProjectTask = this.get(id);
+
+
+        return costProjectTask;
+    }
+
+    @Override
+    @Transactional
+    public void createOrUpdate(CostProjectTask costProjectTask) {
+        //新建或更新
+        this.saveOrUpdate(costProjectTask);
+    }
+
+    @Override
+    public List<CostProjectTask> getTaskList(CostTaskSearchReq req) {
+        LambdaQueryWrapper<CostProjectTask> queryWrapper = new LambdaQueryWrapper<>();
+        if (ObjectUtil.isNotEmpty(req.getYear())) {
+            queryWrapper.eq(CostProjectTask::getYear, req.getYear());
+        }
+        if (ObjectUtil.isNotEmpty(req.getProjectName())) {
+            queryWrapper.like(CostProjectTask::getProjectName, req.getProjectName());
+        }
+        queryWrapper.eq(CostProjectTask::getIsDeleted, BaseConstant.NORMAL_STATUS);
+        return this.list(queryWrapper);
+    }
+
+    @Override
+    @Transactional
+    public String saveTask(CostTaskPageReq costTaskPageReq) {
+
+        // 1.校验内容是否填写完毕!todo
+
+        // 2. 流程阶段变为资料初审
+        CostProjectTaskProccess taskProccess = costProjectTaskProccessManager.getOne(
+                new QueryWrapper<CostProjectTaskProccess>()
+                        .eq("task_id", costTaskPageReq.getTaskId())
+        );
+        taskProccess.setCurrentNode(NodeConstant.ccls.getNodeKey());
+        costProjectTaskProccessManager.updateById(taskProccess);
+
+        // 3. 子流程状态改为审核中
+        CostProjectTask task = this.getById(costTaskPageReq.getTaskId());
+        task.setCurrentNode(NodeConstant.ccls.getNodeKey());
+        task.setStatus(TaskStatusConstant.AUDITING.getStatusCode());
+        this.updateById(task);
+
+        return "任务提交成功,已进入材料初审阶段";
+    }
 }

+ 22 - 5
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskMaterialManagerImpl.java

@@ -2,6 +2,9 @@ package com.hotent.project.manager.impl;
 
 import java.util.Arrays;
 import java.util.List;
+
+import com.hotent.sys.persistence.manager.DataDictManager;
+import com.hotent.sys.persistence.model.DataDict;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -25,6 +28,11 @@ import javax.annotation.Resource;
 @Service
 public class CostProjectTaskMaterialManagerImpl extends BaseManagerImpl<CostProjectTaskMaterialDao, CostProjectTaskMaterial> implements CostProjectTaskMaterialManager {
 
+
+	@Resource
+	DataDictManager dataDictManager;
+
+
 	@Override
 	public CostProjectTaskMaterial getDetail(String id) {
     	CostProjectTaskMaterial costProjectTaskMaterial = this.get(id);
@@ -33,32 +41,41 @@ public class CostProjectTaskMaterialManagerImpl extends BaseManagerImpl<CostProj
     	}
 		return costProjectTaskMaterial;
 	}
-	
+
 	@Override
 	@Transactional
 	public void createOrUpdate(CostProjectTaskMaterial costProjectTaskMaterial) {
 		//新建或更新
 		this.saveOrUpdate(costProjectTaskMaterial);
 	}
-	
+
 	@Override
 	@Transactional
 	public void deleteById(String id) {
 		this.removeById(id);
 	}
-	
+
 	@Override
 	@Transactional
 	public void batchDelete(String[] ids) {
 		this.removeByIds(Arrays.asList(ids));
 	}
-	
+
 	@Override
 	public List<CostProjectTaskMaterial> listByTaskId(String taskId) {
 		QueryWrapper<CostProjectTaskMaterial> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("task_id", taskId);
 		queryWrapper.orderByAsc("order_num");
-		return this.list(queryWrapper);
+		List<CostProjectTaskMaterial> list = this.list(queryWrapper);
+		for (CostProjectTaskMaterial costProjectTaskMaterial : list) {
+			DataDict byDictKey = dataDictManager.getByDictKey("1976557733440159744", costProjectTaskMaterial.getInformationType());
+			if (!BeanUtils.isEmpty(byDictKey)){
+				costProjectTaskMaterial.setInformationTypeName(byDictKey.getName());
+			}
+
+		}
+
+		return list;
 	}
 
 }

+ 37 - 277
assistMg/src/main/java/com/hotent/project/model/CostProjectApproval.java

@@ -11,6 +11,8 @@ import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
 /**
  * 成本监审立项主表
  *
@@ -19,6 +21,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
  * @since 2025-09-22
  */
 @ApiModel(value="CostProjectApproval对象", description="成本监审立项主表")
+@Data
 public class CostProjectApproval extends BaseModel<CostProjectApproval> {
 
     private static final long serialVersionUID = 1L;
@@ -26,52 +29,56 @@ public class CostProjectApproval extends BaseModel<CostProjectApproval> {
     @TableId(value = "project_id", type = IdType.ASSIGN_ID)
     @JsonProperty("projectId")
     private String projectId;
-    
+
     @ApiModelProperty(value = "成本监审项目名称")
     @TableField("project_name")
     @JsonProperty("projectName")
     private String projectName;
-    
+
     @ApiModelProperty(value = "关联成本监审目录ID")
     @TableField("catalog_id")
     @JsonProperty("catalogId")
     private String catalogId;
-    
+
     @ApiModelProperty(value = "计划id")
     @TableField("plan_id")
     @JsonProperty("planId")
     private String planId;
-    
+
     @ApiModelProperty(value = "区域编码")
     @TableField("area_code")
     @JsonProperty("areaCode")
     private String areaCode;
-    
+
     @ApiModelProperty(value = "区域级别")
     @TableField("area_level")
     @JsonProperty("areaLevel")
     private String areaLevel;
-    
+
+    @ApiModelProperty(value = "区域名称")
+    @TableField(exist = false)
+    private String areaName;
+
     @ApiModelProperty(value = "监审主体")
     @TableField("org_id")
     @JsonProperty("orgId")
     private String orgId;
-    
+
     @ApiModelProperty(value = "归属年度")
     @TableField("project_year")
     @JsonProperty("projectYear")
     private String projectYear;
-    
+
     @ApiModelProperty(value = "立项来源")
     @TableField("source_type")
     @JsonProperty("sourceType")
     private String sourceType;
-    
+
     @ApiModelProperty(value = "监审形式")
     @TableField("audit_type")
     @JsonProperty("auditType")
     private String auditType;
-    
+
     @ApiModelProperty(value = "监审期间")
     @TableField("audit_period")
     @JsonProperty("auditPeriod")
@@ -81,42 +88,48 @@ public class CostProjectApproval extends BaseModel<CostProjectApproval> {
     @TableField("need_hearing")
     @JsonProperty("needHearing")
     private String needHearing;
-    
+
     @ApiModelProperty(value = "是否应急项目  0是 1否")
     @TableField("is_emergency")
     @JsonProperty("isEmergency")
     private String isEmergency;
-    
+
     @ApiModelProperty(value = "立项理由")
     @TableField("establishment_reason")
     @JsonProperty("establishmentReason")
     private String establishmentReason;
-    
+
     @ApiModelProperty(value = "立项依据")
     @TableField("according_file_url")
     @JsonProperty("accordingFileUrl")
     private String accordingFileUrl;
-    
+
     @ApiModelProperty(value = "其他专家")
     @TableField("other_file_url")
     @JsonProperty("otherFileUrl")
     private String otherFileUrl;
-    
+
     @ApiModelProperty(value = "项目状态")
     @TableField("status")
     @JsonProperty("status")
     private String status;
-    
+    @TableField(exist = false)
+    private String statusName;
+    @TableField(exist = false)
+    private String currentNode;
+    @TableField(exist = false)
+    private String currentNodeName;
+
     @ApiModelProperty(value = "监审任务负责人ID")
     @TableField("leader_id")
     @JsonProperty("leaderId")
     private String leaderId;
-    
+
     @ApiModelProperty(value = "专家姓名")
     @TableField("expert_str")
     @JsonProperty("expertStr")
     private String expertStr;
-    
+
     @ApiModelProperty(value = "逻辑删除:0正常 1删除")
     @TableField("is_deleted")
     @JsonProperty("isDeleted")
@@ -154,7 +167,7 @@ public class CostProjectApproval extends BaseModel<CostProjectApproval> {
     @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
     @JsonProperty("updateBy")
     private String updateBy;
-    
+
     @ApiModelProperty(value = "项目组成员")
     @TableField("project_members")
     @JsonProperty("projectMembers")
@@ -175,262 +188,9 @@ public class CostProjectApproval extends BaseModel<CostProjectApproval> {
     @JsonProperty("orgName")
     private String orgName;
 
-    public String getOrgName() {
-        return orgName;
-    }
-
-    public void setOrgName(String orgName) {
-        this.orgName = orgName;
-    }
-
-
-
-
-    public String getAuditedUnitName() {
-        return auditedUnitName;
-    }
-
-    public void setAuditedUnitName(String auditedUnitName) {
-        this.auditedUnitName = auditedUnitName;
-    }
-
-    public String getAuditGroup() {
-        return auditGroup;
-    }
-
-    public void setAuditGroup(String auditGroup) {
-        this.auditGroup = auditGroup;
-    }
-
-    public String getSendType() {
-        return sendType;
-    }
-
-    public void setSendType(String sendType) {
-        this.sendType = sendType;
-    }
-
-    public String getAuditedUnitId() {
-        return auditedUnitId;
-    }
-
-    public void setAuditedUnitId(String auditedUnitId) {
-        this.auditedUnitId = auditedUnitId;
-    }
-
-    public String getProjectId() {
-        return projectId;
-    }
-
-    public void setProjectId(String projectId) {
-        this.projectId = projectId;
-    }
-    public String getProjectName() {
-        return projectName;
-    }
-
-    public void setProjectName(String projectName) {
-        this.projectName = projectName;
-    }
-    public String getCatalogId() {
-        return catalogId;
-    }
-
-    public void setCatalogId(String catalogId) {
-        this.catalogId = catalogId;
-    }
-    public String getPlanId() {
-        return planId;
-    }
-
-    public void setPlanId(String planId) {
-        this.planId = planId;
-    }
-    public String getAreaCode() {
-        return areaCode;
-    }
-
-    public void setAreaCode(String areaCode) {
-        this.areaCode = areaCode;
-    }
-    public String getAreaLevel() {
-        return areaLevel;
-    }
-
-    public void setAreaLevel(String areaLevel) {
-        this.areaLevel = areaLevel;
-    }
-    public String getOrgId() {
-        return orgId;
-    }
-
-    public void setOrgId(String orgId) {
-        this.orgId = orgId;
-    }
-    public String getProjectYear() {
-        return projectYear;
-    }
-
-    public void setProjectYear(String projectYear) {
-        this.projectYear = projectYear;
-    }
-    public String getSourceType() {
-        return sourceType;
-    }
-
-    public void setSourceType(String sourceType) {
-        this.sourceType = sourceType;
-    }
-    public String getAuditType() {
-        return auditType;
-    }
-
-    public void setAuditType(String auditType) {
-        this.auditType = auditType;
-    }
-    public String getAuditPeriod() {
-        return auditPeriod;
-    }
-
-    public void setAuditPeriod(String auditPeriod) {
-        this.auditPeriod = auditPeriod;
-    }
-    public String getNeedHearing() {
-        return needHearing;
-    }
-
-    public void setNeedHearing(String needHearing) {
-        this.needHearing = needHearing;
-    }
-    public String getIsEmergency() {
-        return isEmergency;
-    }
-
-    public void setIsEmergency(String isEmergency) {
-        this.isEmergency = isEmergency;
-    }
-    public String getEstablishmentReason() {
-        return establishmentReason;
-    }
-
-    public void setEstablishmentReason(String establishmentReason) {
-        this.establishmentReason = establishmentReason;
-    }
-    public String getAccordingFileUrl() {
-        return accordingFileUrl;
-    }
-
-    public void setAccordingFileUrl(String accordingFileUrl) {
-        this.accordingFileUrl = accordingFileUrl;
-    }
-    public String getOtherFileUrl() {
-        return otherFileUrl;
-    }
-
-    public void setOtherFileUrl(String otherFileUrl) {
-        this.otherFileUrl = otherFileUrl;
-    }
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-    public String getLeaderId() {
-        return leaderId;
-    }
-
-    public void setLeaderId(String leaderId) {
-        this.leaderId = leaderId;
-    }
-    public String getExpertStr() {
-        return expertStr;
-    }
-
-    public void setExpertStr(String expertStr) {
-        this.expertStr = expertStr;
-    }
-
-
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-
-    public LocalDateTime getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(LocalDateTime createTime) {
-        this.createTime = createTime;
-    }
-    public String getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(String createBy) {
-        this.createBy = createBy;
-    }
-    public LocalDateTime getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(LocalDateTime updateTime) {
-        this.updateTime = updateTime;
-    }
-    public String getUpdateBy() {
-        return updateBy;
-    }
-
-    public void setUpdateBy(String updateBy) {
-        this.updateBy = updateBy;
-    }
-    public String getProjectMembers() {
-        return projectMembers;
-    }
-
-    public void setProjectMembers(String projectMembers) {
-        this.projectMembers = projectMembers;
-    }
-
-
-    @Override
-    protected Serializable pkVal() {
-        return this.projectId;
-    }
-
-    @Override
-    public String toString() {
-        return "CostProjectApproval{" +
-            "projectId=" + projectId +
-            ", projectName=" + projectName +
-            ", catalogId=" + catalogId +
-            ", planId=" + planId +
-            ", areaCode=" + areaCode +
-            ", areaLevel=" + areaLevel +
-            ", orgId=" + orgId +
-            ", projectYear=" + projectYear +
-            ", sourceType=" + sourceType +
-            ", auditType=" + auditType +
-            ", auditPeriod=" + auditPeriod +
-            ", needHearing=" + needHearing +
-            ", isEmergency=" + isEmergency +
-            ", establishmentReason=" + establishmentReason +
-            ", accordingFileUrl=" + accordingFileUrl +
-            ", otherFileUrl=" + otherFileUrl +
-            ", status=" + status +
-            ", leaderId=" + leaderId +
-            ", expertStr=" + expertStr +
-            ", isDeleted=" + isDeleted +
-            ", createTime=" + createTime +
-            ", createBy=" + createBy +
-            ", updateTime=" + updateTime +
-            ", updateBy=" + updateBy +
-            ", projectMembers=" + projectMembers +
-        "}";
-    }
+    // 子任务对象(非数据库字段)
+    @ApiModelProperty(value = "当前用户对应的子任务")
+    @TableField(exist = false)
+    private CostProjectTask userTask;
+
 }

+ 19 - 161
assistMg/src/main/java/com/hotent/project/model/CostProjectTask.java

@@ -11,6 +11,8 @@ import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
 /**
  * 项目任务表
  *
@@ -19,33 +21,34 @@ import com.fasterxml.jackson.annotation.JsonProperty;
  * @since 2025-10-03
  */
 @ApiModel(value="CostProjectTask对象", description="项目任务表")
+@Data
 public class CostProjectTask extends BaseModel<CostProjectTask> {
 
     private static final long serialVersionUID = 1L;
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     @JsonProperty("id")
     private String id;
-    
+
     @ApiModelProperty(value = "立项年度")
     @TableField("year")
     @JsonProperty("year")
     private String year;
-    
+
     @ApiModelProperty(value = "项目id")
     @TableField("project_id")
     @JsonProperty("projectId")
     private String projectId;
-    
+
     @ApiModelProperty(value = "父id")
     @TableField("pid")
     @JsonProperty("pid")
     private String pid;
-    
+
     @ApiModelProperty(value = "成本监审项目名称")
     @TableField("project_name")
     @JsonProperty("projectName")
     private String projectName;
-    
+
     @ApiModelProperty(value = "被监审单位id")
     @TableField("audited_unit_id")
     @JsonProperty("auditedUnitId")
@@ -56,32 +59,37 @@ public class CostProjectTask extends BaseModel<CostProjectTask> {
     @TableField("audited_unit_name")
     @JsonProperty("auditedUnitName")
     private String auditedUnitName;
-    
+
     @ApiModelProperty(value = "监审期间")
     @TableField("audit_period")
     @JsonProperty("auditPeriod")
     private String auditPeriod;
-    
+
     @ApiModelProperty(value = "立项来源")
     @TableField("source_type")
     @JsonProperty("sourceType")
     private String sourceType;
-    
+
     @ApiModelProperty(value = "监审形式")
     @TableField("audit_type")
     @JsonProperty("auditType")
     private String auditType;
-    
+
+    @ApiModelProperty(value = "当前节点")
+    @TableField("current_node")
+    @JsonProperty("currentNode")
+    private String currentNode;
+
     @ApiModelProperty(value = "状态  100待提交、200审核中、400办结、300中止")
     @TableField("status")
     @JsonProperty("status")
     private String status;
-    
+
     @ApiModelProperty(value = "序号")
     @TableField("order_num")
     @JsonProperty("orderNum")
     private Integer orderNum;
-    
+
     @ApiModelProperty(value = "逻辑删除:0正常 1删除")
     @TableField("is_deleted")
     @JsonProperty("isDeleted")
@@ -106,156 +114,6 @@ public class CostProjectTask extends BaseModel<CostProjectTask> {
     @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
     @JsonProperty("updateBy")
     private String updateBy;
-    
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-    public String getYear() {
-        return year;
-    }
-
-    public String getAuditedUnitName() {
-        return auditedUnitName;
-    }
-
-    public void setAuditedUnitName(String auditedUnitName) {
-        this.auditedUnitName = auditedUnitName;
-    }
-
-    public void setYear(String year) {
-        this.year = year;
-    }
-
-    public String getProjectId() {
-        return projectId;
-    }
-
-    public void setProjectId(String projectId) {
-        this.projectId = projectId;
-    }
-
-    public String getPid() {
-        return pid;
-    }
-
-    public void setPid(String pid) {
-        this.pid = pid;
-    }
-    public String getProjectName() {
-        return projectName;
-    }
-
-    public void setProjectName(String projectName) {
-        this.projectName = projectName;
-    }
-    public String getAuditedUnitId() {
-        return auditedUnitId;
-    }
-
-    public void setAuditedUnitId(String auditedUnitId) {
-        this.auditedUnitId = auditedUnitId;
-    }
-    public String getAuditPeriod() {
-        return auditPeriod;
-    }
-
-    public void setAuditPeriod(String auditPeriod) {
-        this.auditPeriod = auditPeriod;
-    }
-    public String getSourceType() {
-        return sourceType;
-    }
-
-    public void setSourceType(String sourceType) {
-        this.sourceType = sourceType;
-    }
-    public String getAuditType() {
-        return auditType;
-    }
-
-    public void setAuditType(String auditType) {
-        this.auditType = auditType;
-    }
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-    public Integer getOrderNum() {
-        return orderNum;
-    }
-
-    public void setOrderNum(Integer orderNum) {
-        this.orderNum = orderNum;
-    }
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-    public LocalDateTime getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(LocalDateTime createTime) {
-        this.createTime = createTime;
-    }
-    public String getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(String createBy) {
-        this.createBy = createBy;
-    }
-    public LocalDateTime getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(LocalDateTime updateTime) {
-        this.updateTime = updateTime;
-    }
-    public String getUpdateBy() {
-        return updateBy;
-    }
-
-    public void setUpdateBy(String updateBy) {
-        this.updateBy = updateBy;
-    }
-
 
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
 
-    @Override
-    public String toString() {
-        return "CostProjectTask{" +
-            "id=" + id +
-            ", year=" + year +
-            ", projectId=" + projectId +
-            ", pid=" + pid +
-            ", projectName=" + projectName +
-            ", auditedUnitId=" + auditedUnitId +
-            ", auditPeriod=" + auditPeriod +
-            ", sourceType=" + sourceType +
-            ", auditType=" + auditType +
-            ", status=" + status +
-            ", orderNum=" + orderNum +
-            ", isDeleted=" + isDeleted +
-            ", createTime=" + createTime +
-            ", createBy=" + createBy +
-            ", updateTime=" + updateTime +
-            ", updateBy=" + updateBy +
-        "}";
-    }
 }

+ 7 - 0
assistMg/src/main/java/com/hotent/project/resp/CostProjectApprovalDetailResp.java

@@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 @ApiModel(value = "成本监审立项详情响应类")
@@ -159,6 +160,12 @@ public class CostProjectApprovalDetailResp {
 
     @ApiModelProperty(value = "监审单位名称")
     private String auditUnitName;
+
+    @ApiModelProperty(value = "预定的监审工作起止时间(开始)")
+    private LocalDate plannedAuditStartDate;
+
+    @ApiModelProperty(value = "预定的监审工作起止时间(结束)")
+    private LocalDate plannedAuditEndDate;
 }
 
 

+ 0 - 55
assistMg/src/main/resources/mapper/CostProjectTaskMapper.xml

@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.hotent.project.dao.CostProjectTaskDao">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.hotent.project.model.CostProjectTask">
-        <id column="id" property="id" />
-    <result column="year" property="year" />
-    <result column="project_id" property="projectId" />
-    <result column="pid" property="pid" />
-    <result column="project_name" property="projectName" />
-    <result column="audited_unit_id" property="auditedUnitId" />
-        <result column="audited_unit_name" property="auditedUnitName" />
-    <result column="audit_period" property="auditPeriod" />
-    <result column="source_type" property="sourceType" />
-    <result column="audit_type" property="auditType" />
-    <result column="status" property="status" />
-    <result column="order_num" property="orderNum" />
-    <result column="is_deleted" property="isDeleted" />
-    <result column="create_time" property="createTime" />
-    <result column="create_by" property="createBy" />
-    <result column="update_time" property="updateTime" />
-    <result column="update_by" property="updateBy" />
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        id, year, project_id, pid, project_name, audited_unit_id, audited_unit_name,audit_period, source_type, audit_type, status, order_num, is_deleted, create_time, create_by, update_time, update_by
-    </sql>
-
-	<select id="selectPage" resultMap="BaseResultMap">
-		select 
-			<include refid="Base_Column_List"/> 
-		from
-			cost_project_task
-		${ew.customSqlSegment}
-	</select>
-	
-	<select id="selectList" resultMap="BaseResultMap">
-		select 
-			<include refid="Base_Column_List"/> 
-		from
-			cost_project_task
-		${ew.customSqlSegment}
-	</select>
-	
-	<select id="selectById" resultMap="BaseResultMap">
-		select 
-			<include refid="Base_Column_List"/> 
-		from
-			cost_project_task
-		where 
-		    id = ${id}
-	</select>
-</mapper>

+ 0 - 41
pricing/pom.xml

@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>com.hotent</groupId>
-        <artifactId>eip</artifactId>
-        <version>8.0.7</version>
-    </parent>
-    <artifactId>pricing</artifactId>
-    <name>pricing</name>
-    <description>定价管理模块</description>
-
-    <dependencies>
-        <!-- Spring boot 测试 -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        
-        <!-- 依赖 base 模块获取基础功能 -->
-        <dependency>
-            <groupId>com.hotent</groupId>
-            <artifactId>base</artifactId>
-            <version>${parent.version}</version>
-        </dependency>
-        
-        <!-- 依赖 uc 模块获取用户信息 -->
-        <dependency>
-            <groupId>com.hotent</groupId>
-            <artifactId>uc</artifactId>
-            <version>${parent.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <finalName>pricing</finalName>
-    </build>
-</project>