From 3807a2754a9ea195be9fb43b6cac06b8293c2fc6 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 11 十二月 2025 18:06:03 +0800
Subject: [PATCH] 工作台

---
 business/src/main/java/com/ycl/service/impl/AuditHistoryServiceImpl.java |   72 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/business/src/main/java/com/ycl/service/impl/AuditHistoryServiceImpl.java b/business/src/main/java/com/ycl/service/impl/AuditHistoryServiceImpl.java
index 8a830de..f05342b 100644
--- a/business/src/main/java/com/ycl/service/impl/AuditHistoryServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/AuditHistoryServiceImpl.java
@@ -1,15 +1,30 @@
 package com.ycl.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.common.base.Result;
+import com.ycl.common.utils.SecurityUtils;
 import com.ycl.domain.entity.AuditHistory;
+import com.ycl.domain.entity.ProjectInfo;
+import com.ycl.domain.form.AuditHistoryForm;
+import com.ycl.domain.query.AuditHistoryQuery;
+import com.ycl.domain.vo.AuditHistoryVO;
+import com.ycl.framework.utils.PageUtil;
 import com.ycl.mapper.AuditHistoryMapper;
+import com.ycl.mapper.ProjectInfoMapper;
 import com.ycl.service.AuditHistoryService;
+import com.ycl.service.IndexHomeService;
+import com.ycl.system.mapper.SysDeptMapper;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 瀹℃牳璁板綍 鏈嶅姟瀹炵幇绫�
@@ -19,4 +34,61 @@
 @RequiredArgsConstructor
 public class AuditHistoryServiceImpl extends ServiceImpl<AuditHistoryMapper, AuditHistory> implements AuditHistoryService {
 
+
+    private final AuditHistoryMapper auditHistoryMapper;
+    private final ProjectInfoMapper projectInfoMapper;
+    private final SysDeptMapper sysDeptMapper;
+    @Override
+    public Result add(AuditHistoryForm auditHistoryForm) {
+        AuditHistory entity = AuditHistoryForm.getEntityByForm(auditHistoryForm, null);
+        baseMapper.insert(entity);
+        return Result.ok("娣诲姞鎴愬姛");
+    }
+    public List<ProjectInfo> getLoginUserOwnProjectInfo(){
+        //鏉冮檺鎺у埗
+        Long userId = SecurityUtils.getUserId();
+        List<ProjectInfo> list;
+        if (SecurityUtils.isAdmin(userId)){
+            //鏌ヨ鍏ㄩ儴
+            list = new LambdaQueryChainWrapper<>(projectInfoMapper)
+                    .eq(ProjectInfo::getDeleted, Boolean.FALSE)
+                    .eq(ProjectInfo::getUsedStatus, 2)//瀹℃牳閫氳繃
+                    .orderBy(true, true, ProjectInfo::getId)
+                    .list();
+        }else{
+            String ancestors = sysDeptMapper.selectAncestors(userId);
+            String[] ancestorArr = ancestors.split(",");
+            List<String> ancestorList = Arrays.stream(ancestorArr).collect(Collectors.toList());
+            ancestorList.add(SecurityUtils.getDeptId() + "");
+            //鑾峰緱鏈崟浣嶄互鍙婂叾瀛愬崟浣峝eptId;
+            list = new LambdaQueryChainWrapper<>(projectInfoMapper)
+                    .eq(ProjectInfo::getDeleted, Boolean.FALSE)
+                    .eq(ProjectInfo::getUsedStatus, 2) //瀹℃牳閫氳繃
+                    .in(ProjectInfo::getProjectOwnerUnit, ancestorList)
+                    .orderBy(true, true, ProjectInfo::getId)
+                    .list();
+        }
+        return list;
+    }
+    @Override
+    public Result page(AuditHistoryQuery query) {
+        //闇�瑕佹煡璇㈠埌鎸囧畾椤圭洰鐨勬棩蹇�
+        List<Long> ids = new ArrayList<>();
+        if ("all".equals(query.getProjectId())){
+            List<ProjectInfo> loginUserOwnProjectInfo = getLoginUserOwnProjectInfo();
+            if (CollectionUtils.isEmpty(loginUserOwnProjectInfo)) {
+                //杩斿洖榛樿鍊�
+                return Result.ok().data(null).total(0);
+            }
+            ids = loginUserOwnProjectInfo.stream().map(ProjectInfo::getId).collect(Collectors.toList());
+        }else{
+            ids.add(Long.valueOf(query.getProjectId()));
+        }
+
+        query.setProjectIds(ids);
+        query.setDeptId(SecurityUtils.getDeptId());
+        IPage<AuditHistoryVO> page = PageUtil.getPage(query, AuditHistoryVO.class);
+        baseMapper.getPage(page, query);
+        return Result.ok().data(page.getRecords()).total(page.getTotal());
+    }
 }

--
Gitblit v1.8.0