bj 1 місяць тому
батько
коміт
0372dd207d

+ 14 - 0
assistMg/src/main/java/com/hotent/enterpriseDeclare/controller/CostAuditReviewController.java

@@ -57,6 +57,20 @@ public class CostAuditReviewController {
         return CommonResult.<IPage<CostProjectTask>>ok().value(pageResult);
     }
 
+
+    /**
+     * 分页查询待审核任务列表子任务
+     *
+     * @param req 分页查询请求参数
+     * @return 待审核任务分页列表
+     */
+    @PostMapping(value = "/pageListChild")
+    @ApiOperation(value = "分页查询待审核任务列表子任务", httpMethod = "POST", notes = "分页查询待审核任务列表子任务")
+    public CommonResult<IPage<CostProjectTask>> pageListChild(@RequestBody CostTaskReviewPageReq req) {
+        IPage<CostProjectTask> pageResult = costProjectTaskManager.pageListForReviewTaskChild(req);
+        return CommonResult.<IPage<CostProjectTask>>ok().value(pageResult);
+    }
+
     /**
      * 分页查询办结监审任务列表
      *

+ 6 - 4
assistMg/src/main/java/com/hotent/project/controller/CostNoticeController.java

@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.hotent.base.annotation.ApiGroup;
 import com.hotent.base.constants.ApiGroupConsts;
 import com.hotent.common.CrudService;
-import com.hotent.project.req.CostProjectMemoQueryReq;
 import com.hotent.project.req.CostProjectNoticePageReq;
-import com.hotent.project.resp.CostProjectMemoQueryResp;
-import com.hotent.resp.PageResp;
 import io.swagger.annotations.Api;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -16,7 +13,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.hotent.base.model.CommonResult;
-import com.hotent.base.util.StringUtil;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -62,4 +58,10 @@ public class CostNoticeController extends BaseController<CostNoticeManager, Cost
 	}
 
 
+	@GetMapping(value="/read")
+	@ApiOperation(value="阅读通知公告表数据",httpMethod = "GET",notes = "阅读通知公告表数据")
+	public CommonResult<String> read(@ApiParam(name="id",value="业务对象主键", required = true)@RequestParam(required=true) String id) throws Exception{
+		return CommonResult.<String>ok().value(baseService.read(id));
+	}
+
 }

+ 6 - 11
assistMg/src/main/java/com/hotent/project/controller/CostProjectMemoController.java

@@ -1,17 +1,13 @@
 package com.hotent.project.controller;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.hotent.base.annotation.ApiGroup;
 import com.hotent.base.constants.ApiGroupConsts;
-import com.hotent.base.query.PageList;
 import com.hotent.common.CrudService;
-import com.hotent.project.model.CostProjectApproval;
-import com.hotent.project.req.CostProjectApprovalPageReq;
 import com.hotent.project.req.CostProjectMemoQueryReq;
 import com.hotent.project.req.CostProjectMemoUpdateReq;
 import com.hotent.project.resp.CostProjectMemoDetailResp;
-import com.hotent.project.resp.CostProjectMemoQueryResp;
-import com.hotent.resp.PageResp;
 import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -21,7 +17,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.hotent.base.model.CommonResult;
-import com.hotent.base.util.StringUtil;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -56,14 +51,14 @@ public class CostProjectMemoController extends BaseController<CostProjectMemoMan
 
     @PostMapping(value="/pageList")
     @ApiOperation(value="备忘录列表")
-    public PageList<CostProjectMemo> pageList(@RequestBody CostProjectMemoQueryReq req) throws Exception {
-        return  costProjectMemoManager.pageList(req);
+    public CommonResult<IPage<CostProjectMemo>> pageList(@RequestBody CostProjectMemoQueryReq req) {
+        return CommonResult.<IPage<CostProjectMemo>>ok().value(costProjectMemoManager.pageList(req));
     }
 
     @PostMapping(value="/pageIndexList")
-    @ApiOperation(value="备忘录列表")
-    public PageList<CostProjectMemo> pageIndexList(@RequestBody CostProjectMemoQueryReq req) throws Exception {
-        return  costProjectMemoManager.pageIndexList(req);
+    @ApiOperation(value="首页备忘录列表")
+    public CommonResult<IPage<CostProjectMemo>> pageIndexList(@RequestBody CostProjectMemoQueryReq req){
+        return  CommonResult.<IPage<CostProjectMemo>>ok().value(costProjectMemoManager.pageIndexList(req));
     }
 
     @PostMapping(value="/save")

+ 5 - 4
assistMg/src/main/java/com/hotent/project/dao/CostProjectMemoDao.java

@@ -7,6 +7,7 @@ import com.hotent.project.resp.CostProjectMemoQueryResp;
 import org.apache.ibatis.annotations.Param;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 /**
  * 监审项目备忘录表 Mapper 接口
@@ -27,9 +28,9 @@ public interface CostProjectMemoDao extends BaseMapper<CostProjectMemo> {
             , @Param("projectId") Long projectId
             , @Param("year") String year
             , @Param("content") String content
-            , @Param("memoDate") LocalDate memoDate
-            , @Param("startTime") LocalDate startTime
-            , @Param("endTime") LocalDate endTime);
+            , @Param("memoDate") String memoDate
+            , @Param("startTime") String startTime
+            , @Param("endTime") String endTime);
 
-    Page<CostProjectMemo> getIndexList(Page<CostProjectMemo> objectPage,@Param("userId") String userId,@Param("content") String content,@Param("memoDate") LocalDate memoDate);
+    Page<CostProjectMemo> getIndexList(Page<CostProjectMemo> objectPage,@Param("userId") String userId,@Param("content") String content,@Param("memoDate") String memoDate);
 }

+ 2 - 0
assistMg/src/main/java/com/hotent/project/manager/CostNoticeManager.java

@@ -40,4 +40,6 @@ public interface CostNoticeManager extends BaseManager<CostNotice> {
 	 * @param noticeContent
 	 */
 	void sendNotice(String projectId, String noticeType, String noticeTitle,String noticeContent);
+
+	String read(String id);
 }

+ 2 - 5
assistMg/src/main/java/com/hotent/project/manager/CostProjectMemoManager.java

@@ -1,14 +1,11 @@
 package com.hotent.project.manager;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.hotent.base.model.CommonResult;
-import com.hotent.base.query.PageList;
 import com.hotent.project.model.CostProjectMemo;
 import com.hotent.base.manager.BaseManager;
 import com.hotent.project.req.CostProjectMemoQueryReq;
 import com.hotent.project.req.CostProjectMemoUpdateReq;
 import com.hotent.project.resp.CostProjectMemoDetailResp;
-import com.hotent.project.resp.CostProjectMemoQueryResp;
 
 /**
  * 监审项目备忘录表 服务类
@@ -36,11 +33,11 @@ public interface CostProjectMemoManager extends BaseManager<CostProjectMemo> {
 	 * @param costProjectMemoQueryReq
 	 * @return
 	 */
-	PageList<CostProjectMemo> pageList(CostProjectMemoQueryReq costProjectMemoQueryReq) throws Exception;
+	IPage<CostProjectMemo> pageList(CostProjectMemoQueryReq costProjectMemoQueryReq) ;
 
     public int updateMemo(CostProjectMemoUpdateReq req);
 
     Boolean saveData(CostProjectMemo t);
 
-	PageList<CostProjectMemo> pageIndexList(CostProjectMemoQueryReq req);
+	IPage<CostProjectMemo> pageIndexList(CostProjectMemoQueryReq req);
 }

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

@@ -41,4 +41,5 @@ public interface CostProjectTaskManager extends BaseManager<CostProjectTask> {
 
 	List<CostNotice> getDoMsgList();
 
+	IPage<CostProjectTask> pageListForReviewTaskChild(CostTaskReviewPageReq req);
 }

+ 43 - 2
assistMg/src/main/java/com/hotent/project/manager/impl/CostNoticeManagerImpl.java

@@ -4,13 +4,18 @@ import cn.hutool.core.util.ObjectUtil;
 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.baseInfo.manager.AuditedUnitManager;
+import com.hotent.baseInfo.resp.AuditedUnitDetailResp;
 import com.hotent.constant.BaseConstant;
 import com.hotent.project.model.CostNotice;
 import com.hotent.project.dao.CostNoticeDao;
 import com.hotent.project.manager.CostNoticeManager;
 import com.hotent.base.manager.impl.BaseManagerImpl;
+import com.hotent.project.model.CostProjectApproval;
 import com.hotent.project.model.CostProjectMaterial;
 import com.hotent.project.req.CostProjectNoticePageReq;
+import org.apache.commons.lang3.StringUtils;
+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;
@@ -29,10 +34,36 @@ import com.hotent.base.util.BeanUtils;
 @Service
 public class CostNoticeManagerImpl extends BaseManagerImpl<CostNoticeDao, CostNotice> implements CostNoticeManager {
 
+	@Autowired
+	private CostProjectApprovalManagerImpl projectApprovalManager;
+
+	@Autowired
+	private AuditedUnitManager auditedUnitManager;
+
 	@Override
 	public CostNotice getDetail(String id) {
     	CostNotice costNotice = this.get(id);
-
+		if(costNotice == null){
+			return costNotice;
+		}
+		if(costNotice.getProjectId() != null){
+			CostProjectApproval costProjectApproval = projectApprovalManager.getById(costNotice.getProjectId());
+			if(costProjectApproval != null){
+				costNotice.setProjectName(costProjectApproval.getProjectName());
+			}
+		}
+		String enterpriseId = costNotice.getEnterpriseId();
+		if(StringUtils.isNotBlank(enterpriseId)){
+			String[] split = enterpriseId.split(",");
+			StringBuilder sb = new StringBuilder();
+			for (String s : split) {
+				AuditedUnitDetailResp detail = auditedUnitManager.detail(s);
+				if(detail != null){
+					sb.append(detail.getUnitName()).append(",");
+				}
+			}
+			costNotice.setEnterpriseName(sb.toString().substring(0,sb.length()-1));
+		}
 
 		return costNotice;
 	}
@@ -62,7 +93,9 @@ public class CostNoticeManagerImpl extends BaseManagerImpl<CostNoticeDao, CostNo
 		if(ObjectUtil.isNotEmpty(req.getEnterpriseId())){
 			qw.eq(CostNotice::getEnterpriseId, req.getEnterpriseId());
 		}
-
+		if(ObjectUtil.isNotEmpty(req.getSendTarget())){
+			qw.eq(CostNotice::getSendTarget, req.getSendTarget());
+		}
 		qw.orderByDesc(CostNotice::getCreateTime);
 		IPage<CostNotice> page=new Page<>(req.getPageNum(), req.getPageSize());
 		return this.page(page, qw);
@@ -93,4 +126,12 @@ public class CostNoticeManagerImpl extends BaseManagerImpl<CostNoticeDao, CostNo
 		costNotice.setNoticeContent(noticeContent);
 		this.save(costNotice);
 	}
+
+	@Override
+	public String read(String id) {
+		CostNotice costNotice = this.getById(id);
+		costNotice.setStatus("1");
+		this.update(costNotice);
+		return "阅读成功";
+	}
 }

+ 15 - 23
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectMemoManagerImpl.java

@@ -1,13 +1,7 @@
 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.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.dingtalk.open.app.stream.network.api.ServiceException;
-import com.hotent.base.query.PageList;
-import com.hotent.base.util.StringUtil;
-import com.hotent.baseInfo.model.AuditedUnit;
 import com.hotent.project.dao.CostProjectApprovalDao;
 import com.hotent.project.manager.CostNoticeManager;
 import com.hotent.project.manager.CostProjectApprovalManager;
@@ -19,7 +13,6 @@ import com.hotent.base.manager.impl.BaseManagerImpl;
 import com.hotent.project.req.CostProjectMemoQueryReq;
 import com.hotent.project.req.CostProjectMemoUpdateReq;
 import com.hotent.project.resp.CostProjectMemoDetailResp;
-import com.hotent.project.resp.CostProjectMemoQueryResp;
 import com.hotent.uc.api.model.IUser;
 import com.hotent.uc.manager.UserManager;
 import com.hotent.uc.model.User;
@@ -29,18 +22,10 @@ import org.apache.commons.lang3.StringUtils;
 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.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.function.Function;
-import java.util.stream.Collectors;
 import javax.annotation.Resource;
-import com.hotent.base.util.BeanUtils;
-
-import static java.util.function.Function.*;
 
 
 /**
@@ -90,7 +75,7 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
 	}
 
 @Override
-	public PageList<CostProjectMemo> pageList(CostProjectMemoQueryReq req) throws Exception {
+	public IPage<CostProjectMemo> pageList(CostProjectMemoQueryReq req){
 		// 检查pageNum和pageSize是否合理
 		/*if (req.getPageNum() <= 0 || req.getPageSize() <= 0) {
 			throw new IllegalArgumentException("pageNum和pageSize必须大于0");
@@ -161,12 +146,17 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
 
 
 	IUser iUser = ContextUtil.getCurrentUser();
-	User user = userService.getByAccount(iUser.getAccount());
+	User user = null;
+	try {
+		user = userService.getByAccount(iUser.getAccount());
+	} catch (Exception e) {
+		throw new RuntimeException(e);
+	}
 	req.setDataScope(user.getDataScope());
 	req.setProvinceCode(user.getProvinceCode());
 	req.setCityCode(user.getCityCode());
 	req.setCountyCode(user.getCountyCode());
-	Page<CostProjectMemo> objectPage = new Page<>(req.getPage(),req.getPageSize());
+	Page<CostProjectMemo> objectPage = new Page<>(req.getPageNum(),req.getPageSize());
 	//Page<CostSurveyTemplate> page =baseMapper.getCostSurveyTemplatePage(objectPage,params);
 	Page<CostProjectMemo> page =baseMapper.getCostProjectMemoPage(objectPage
 			,req.getDataScope()
@@ -180,7 +170,7 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
 			,req.getStartTime()
 			,req.getEndTime());
 
-	return new PageList<>(page);
+	return page;
 	}
 
 	@Override
@@ -194,7 +184,7 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
 		}
 
 		CostProjectMemo copy = CopyUtil.copy(req, CostProjectMemo.class);
-		costProjectMemoDao.updateMemo( copy);
+		costProjectMemoDao.updateMemo(copy);
 		return 0;
 	}
 
@@ -214,6 +204,7 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
 					costNotice.setStatus("0");
 					costNotice.setNoticeType("1");
 					costNotice.setNoticeContent(t.getContent());
+					costNotice.setEnterpriseId(projectApproval.getAuditedUnitId());
 					costNotice.setSendTarget(leaderId);
 					noticeList.add(costNotice);
 				}
@@ -227,6 +218,7 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
 						costNotice.setStatus("0");
 						costNotice.setNoticeType("1");
 						costNotice.setNoticeContent(t.getContent());
+						costNotice.setEnterpriseId(projectApproval.getAuditedUnitId());
 						costNotice.setSendTarget(s);
 						noticeList.add(costNotice);
 					}
@@ -238,11 +230,11 @@ public class CostProjectMemoManagerImpl extends BaseManagerImpl<CostProjectMemoD
     }
 
 	@Override
-	public PageList<CostProjectMemo> pageIndexList(CostProjectMemoQueryReq req) {
+	public IPage<CostProjectMemo> pageIndexList(CostProjectMemoQueryReq req) {
 		IUser iUser = ContextUtil.getCurrentUser();
 		String userId = iUser.getUserId();
-		Page<CostProjectMemo> objectPage = new Page<>(req.getPage(),req.getPageSize());
+		Page<CostProjectMemo> objectPage = new Page<>(req.getPageNum(),req.getPageSize());
 		Page<CostProjectMemo> page =baseMapper.getIndexList(objectPage,userId,req.getContent(),req.getMemoDate());
-		return new PageList<>(page);
+		return page;
 	}
 }

+ 94 - 15
assistMg/src/main/java/com/hotent/project/manager/impl/CostProjectTaskManagerImpl.java

@@ -143,39 +143,39 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
                 new LambdaQueryWrapper<CostProjectTaskProccess>()
                         .eq(CostProjectTaskProccess::getTaskId, task.getId())
         );
-        
+
         if (process == null) {
             return "green"; // 默认绿色预警
         }
-        
+
         // 获取当前环节的节点信息
         CostProjectTaskNode currentNode = costProjectTaskNodeManager.getOne(
                 new LambdaQueryWrapper<CostProjectTaskNode>()
                         .eq(CostProjectTaskNode::getTaskId, task.getId())
                         .eq(CostProjectTaskNode::getProcessNodeKey, task.getCurrentNode())
         );
-        
+
         // 获取当前时间
         LocalDateTime now = LocalDateTime.now();
-        
+
         // 1. 如果超过流程期限,红色预警
-        if (process.getPlannedAuditEndDate() != null && 
+        if (process.getPlannedAuditEndDate() != null &&
             now.toLocalDate().isAfter(process.getPlannedAuditEndDate())) {
             return "red";
         }
-        
+
         // 2. 如果当前环节有截止时间且已超过,但未超过流程期限,黄色预警
-        if (currentNode != null && currentNode.getEndTime() != null && 
+        if (currentNode != null && currentNode.getEndTime() != null &&
             now.isAfter(currentNode.getEndTime())) {
             // 检查是否超过流程期限
-            if (process.getPlannedAuditEndDate() != null && 
+            if (process.getPlannedAuditEndDate() != null &&
                 now.toLocalDate().isAfter(process.getPlannedAuditEndDate())) {
                 return "red"; // 超过流程期限,红色预警
             } else {
                 return "yellow"; // 超过环节期限但未超过流程期限,黄色预警
             }
         }
-        
+
         // 3. 默认绿色预警(在办理期限内)
         return "green";
     }
@@ -504,7 +504,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
         // 判断是中止还是恢复
         String status = req.getStatus() == null ? TaskStatusConstant.SUSPENDED.getStatusCode() : TaskStatusConstant.AUDITING.getStatusCode();
         boolean isSuspend = TaskStatusConstant.SUSPENDED.getStatusCode().equals(status);
-        
+
         // 如果是主任务 同步所有子任务的中止/恢复状态
         if ("0".equals(task.getPid())) {
             List<CostProjectTask> children = costProjectTaskManager.list(
@@ -673,7 +673,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
         if (nextNode == null) {
             throw new RuntimeException("当前节点已是最后一步,无法扭转");
         }
-        String nextNodeStatus = nextNode.getNodeKey();        
+        String nextNodeStatus = nextNode.getNodeKey();
         List<CostProjectTask> children = costProjectTaskManager.list(
                 new LambdaQueryWrapper<CostProjectTask>()
                         .eq(CostProjectTask::getPid, nTask.getId())
@@ -687,13 +687,13 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
         if (!allChildrenCompleted) {
             throw new RuntimeException("子任务未全部办结,主任务无法扭转");
         }
-        
+
         // 主任务扭转到下一节点
         nTask.setStatus(TaskStatusConstant.AUDITING.getStatusCode());
         nTask.setCurrentNode(nextNodeStatus);
         nTask.setIsGd("0");
         costProjectTaskManager.updateById(nTask);
-        
+
         // 子任务同步节点流转,根据节点设置对应状态
         String childStatus = "";
         switch (nextNodeStatus) {
@@ -709,7 +709,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
                 childStatus = TaskStatusConstant.AUDITING.getStatusCode();
                 break;
         }
-        
+
         // 同步所有非中止状态的子任务
         for (CostProjectTask child : children) {
             if (!child.getStatus().equals(TaskStatusConstant.SUSPENDED.getStatusCode())) {
@@ -850,16 +850,95 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
         // 获取当前用户
         IUser currentUser = ContextUtil.getCurrentUser();
         String currentUserId = currentUser.getUserId();
-
         // 查询发送给当前用户的消息
         LambdaQueryWrapper<CostNotice> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(CostNotice::getIsDeleted, "0")
 //                   .eq(CostNotice::getSendTarget, currentUserId)
                    .orderByDesc(CostNotice::getCreateTime)
                     .last("limit 8");
+        if(!currentUser.isAdmin()){
+            queryWrapper.eq(CostNotice::getSendTarget, currentUserId);
+        }
         return costNoticeManager.list(queryWrapper);
     }
 
+    @Override
+    public IPage<CostProjectTask> pageListForReviewTaskChild(CostTaskReviewPageReq req) {
+        // 获取当前用户
+        IUser currentUser = ContextUtil.getCurrentUser();
+        String currentUserId = currentUser.getUserId();
+
+        // 1. 先查询当前用户有权限的立项(负责人或项目组成员)
+        LambdaQueryWrapper<CostProjectApproval> approvalQueryWrapper = new LambdaQueryWrapper<>();
+        approvalQueryWrapper.eq(CostProjectApproval::getIsDeleted, "0");
+        approvalQueryWrapper.and(wrapper -> wrapper
+                .eq(CostProjectApproval::getLeaderId, currentUserId)
+                .or(projectMembersWrapper -> {
+                    projectMembersWrapper.like(CostProjectApproval::getProjectMembers, currentUserId);
+                })
+        );
+
+        List<CostProjectApproval> accessibleApprovals = costProjectApprovalManager.list(approvalQueryWrapper);
+
+        // 如果没有权限的立项,返回空结果
+        if (accessibleApprovals.isEmpty()) {
+            return new Page<>(req.getPageNum(), req.getPageSize());
+        }
+
+        // 提取有权限的立项ID列表
+        List<String> accessibleProjectIds = accessibleApprovals.stream()
+                .map(CostProjectApproval::getProjectId)
+                .distinct()
+                .collect(java.util.stream.Collectors.toList());
+
+        if (req.getAreaCode()!=null){
+            List<CostProjectTaskApproval> list = costProjectTaskApprovalManager.list(
+                    new LambdaQueryWrapper<CostProjectTaskApproval>().eq(CostProjectTaskApproval::getAreaCode, req.getAreaCode())
+            );
+            if (list.isEmpty()) {
+                return new Page<>(req.getPageNum(), req.getPageSize());
+            }
+            List<String> projectIds =
+                    list.stream().map(CostProjectTaskApproval::getProjectId).collect(Collectors.toList());
+            accessibleProjectIds.addAll(projectIds);
+        }
+
+        // 2. 构建任务查询条件
+        LambdaQueryWrapper<CostProjectTask> queryWrapper = new LambdaQueryWrapper<>();
+
+        // 查询未删除的记录
+        queryWrapper.eq(CostProjectTask::getIsDeleted, "0");
+
+        // 查询根任务(pid为0)
+        queryWrapper.ne(CostProjectTask::getPid, "0");
+
+        // 只查询当前用户有权限的立项对应的任务
+        queryWrapper.in(CostProjectTask::getProjectId, accessibleProjectIds);
+
+        // 根据请求参数添加查询条件
+        if (StringUtil.isNotEmpty(req.getProjectName())) {
+            queryWrapper.like(CostProjectTask::getProjectName, req.getProjectName());
+        }
+        if (StringUtil.isNotEmpty(req.getAuditedUnitName())) {
+            queryWrapper.like(CostProjectTask::getAuditedUnitName, req.getAuditedUnitName());
+        }
+        if (StringUtil.isNotEmpty(req.getStatus())) {
+            queryWrapper.eq(CostProjectTask::getStatus, req.getStatus());
+        }
+        if (StringUtil.isNotEmpty(req.getYear())) {
+            queryWrapper.eq(CostProjectTask::getYear, req.getYear());
+        }
+        queryWrapper.eq(req.getCurrentNode()!=null,CostProjectTask::getCurrentNode,req.getCurrentNode());
+        queryWrapper.ne(req.getNCurrentNode()!=null,CostProjectTask::getCurrentNode,req.getNCurrentNode());
+        queryWrapper.ne(req.getNStatus()!=null,CostProjectTask::getStatus,req.getNStatus() );
+        // 按创建时间倒序排列
+        queryWrapper.orderByDesc(CostProjectTask::getCreateTime);
+
+        Page<CostProjectTask> page = new Page<>(req.getPageNum(), req.getPageSize());
+        IPage<CostProjectTask> result = costProjectTaskManager.page(page, queryWrapper);
+        return result;
+    }
+
     private List<String> getAllChildCatalogIds(String catalogId) {
         List<String> result = new ArrayList<>();
         result.add(catalogId);

+ 11 - 0
assistMg/src/main/java/com/hotent/project/model/CostNotice.java

@@ -12,6 +12,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;
  * @author 超级管理员
  * @since 2025-09-27
  */
+@Data
 @ApiModel(value="CostNotice对象", description="通知公告表")
 public class CostNotice extends BaseModel<CostNotice> {
 
@@ -82,10 +85,18 @@ public class CostNotice extends BaseModel<CostNotice> {
     @JsonProperty("projectId")
     private String projectId;
 
+    @JsonProperty("projectName")
+    @TableField(exist = false)
+    private String projectName;
+
     @TableField("enterprise_id")
     @JsonProperty("enterpriseId")
     private String enterpriseId;
 
+    @JsonProperty("enterpriseName")
+    @TableField(exist = false)
+    private String enterpriseName;
+
 
     @ApiModelProperty(value = "消息来源")
     @TableField("notice_source")

+ 8 - 8
assistMg/src/main/java/com/hotent/project/req/CostProjectMemoQueryReq.java

@@ -11,16 +11,19 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 /**
  * @author zyj
- * @date 2025/9/25 9:36 
+ * @date 2025/9/25 9:36
  */
 @ApiModel("备忘录列表请求参数")
 @Getter
 @Setter
-public class CostProjectMemoQueryReq extends PageBean {
+public class CostProjectMemoQueryReq extends PageReq {
 
 
     @ApiModelProperty(value = "关联的成本监审项目ID")
@@ -34,16 +37,13 @@ public class CostProjectMemoQueryReq extends PageBean {
     private String content;
 
     @ApiModelProperty(value = "备忘录日期,格式:yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private LocalDate memoDate;
+    private String memoDate;
 
     @ApiModelProperty(value = "开始时间,格式:yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private LocalDate startTime;
+    private String startTime;
 
     @ApiModelProperty(value = "结束时间,格式:yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private LocalDate endTime;
+    private String endTime;
 
 
     @ApiModelProperty(value = "级别0:省,1:市,2:区(县)")

+ 2 - 2
assistMg/src/main/java/com/hotent/project/req/CostProjectNoticePageReq.java

@@ -28,12 +28,12 @@ public class CostProjectNoticePageReq extends PageReq {
     @ApiModelProperty(value = "公告标题")
     private String title;
 
-    private String  enterpriseId;
+    private String enterpriseId;
 
     private String taskId;
 
 
-
+    private String sendTarget;
 
 
 }

+ 1 - 2
assistMg/src/main/resources/mapper/CostProjectMemoMapper.xml

@@ -142,9 +142,8 @@
         uc_user uc
         WHERE
         cpm.project_id = cpa.project_id
-        AND uc.ACCOUNT_ = cpm.create_by
         <if test="userId != null and userId != ''">
-            and (cap.leader_id = #{userId} or cap.audit_group like concat('%,',#{userId},',%'))
+            and (cpa.leader_id = #{userId} or cpa.audit_group like concat('%,',#{userId},',%'))
         </if>
         <if test=" content != null and content != '' ">
             AND cpm.content LIKE CONCAT('%', #{content}, '%')