|
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.hotent.base.manager.impl.BaseManagerImpl;
|
|
import com.hotent.base.manager.impl.BaseManagerImpl;
|
|
|
import com.hotent.base.util.AuthenticationUtil;
|
|
import com.hotent.base.util.AuthenticationUtil;
|
|
|
import com.hotent.base.util.StringUtil;
|
|
import com.hotent.base.util.StringUtil;
|
|
|
|
|
+import com.hotent.baseInfo.manager.CostCatalogManager;
|
|
|
|
|
+import com.hotent.baseInfo.model.CostCatalog;
|
|
|
import com.hotent.baseInfo.req.CostTaskSearchReq;
|
|
import com.hotent.baseInfo.req.CostTaskSearchReq;
|
|
|
import com.hotent.constant.NodeConstant;
|
|
import com.hotent.constant.NodeConstant;
|
|
|
import com.hotent.constant.TaskStatusConstant;
|
|
import com.hotent.constant.TaskStatusConstant;
|
|
@@ -13,10 +15,7 @@ import com.hotent.enterpriseDeclare.req.CostTaskPageReq;
|
|
|
import com.hotent.enterpriseDeclare.req.CostTaskReviewPageReq;
|
|
import com.hotent.enterpriseDeclare.req.CostTaskReviewPageReq;
|
|
|
import com.hotent.project.dao.CostProjectTaskDao;
|
|
import com.hotent.project.dao.CostProjectTaskDao;
|
|
|
import com.hotent.project.manager.*;
|
|
import com.hotent.project.manager.*;
|
|
|
-import com.hotent.project.model.CostProjectApproval;
|
|
|
|
|
-import com.hotent.project.model.CostProjectTask;
|
|
|
|
|
-import com.hotent.project.model.CostProjectTaskMaterial;
|
|
|
|
|
-import com.hotent.project.model.CostProjectTaskPreliminaryOpinion;
|
|
|
|
|
|
|
+import com.hotent.project.model.*;
|
|
|
import com.hotent.project.resp.CostProjectApprovalDetailResp;
|
|
import com.hotent.project.resp.CostProjectApprovalDetailResp;
|
|
|
import com.hotent.surveyinfo.manager.CostSurveyTemplateUploadManager;
|
|
import com.hotent.surveyinfo.manager.CostSurveyTemplateUploadManager;
|
|
|
import com.hotent.surveyinfo.model.CostSurveyTemplateUpload;
|
|
import com.hotent.surveyinfo.model.CostSurveyTemplateUpload;
|
|
@@ -75,6 +74,9 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private OrgManager orgManager;
|
|
private OrgManager orgManager;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private CostCatalogManager costCatalogManager;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<CostProjectTask> getTaskList(CostTaskSearchReq req) throws Exception {
|
|
public List<CostProjectTask> getTaskList(CostTaskSearchReq req) throws Exception {
|
|
@@ -752,4 +754,90 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<Map<String, Object>> getDoChartList(String year, String region) {
|
|
|
|
|
+ List<CostCatalog> list = costCatalogManager.list(
|
|
|
|
|
+ new LambdaQueryWrapper<CostCatalog>().eq( CostCatalog::getParentId,"1969351600934948833")
|
|
|
|
|
+ );
|
|
|
|
|
+ List<Map<String, Object>> maps = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ for (CostCatalog costCatalog : list) {
|
|
|
|
|
+ // 递归获取所有下级目录ID
|
|
|
|
|
+ List<String> allCatalogIds = getAllChildCatalogIds(costCatalog.getCatalogId());
|
|
|
|
|
+
|
|
|
|
|
+ // 通过项目立项表关联查询目录
|
|
|
|
|
+ List<CostProjectApproval> approvals = costProjectApprovalManager.list(
|
|
|
|
|
+ new LambdaQueryWrapper<CostProjectApproval>()
|
|
|
|
|
+ .in(CostProjectApproval::getCatalogId, allCatalogIds)
|
|
|
|
|
+ .eq(CostProjectApproval::getIsDeleted, "0")
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ if (approvals.isEmpty()) {
|
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
|
+ map.put("name", costCatalog.getCatalogName());
|
|
|
|
|
+ map.put("finish", 0);
|
|
|
|
|
+ map.put("nFinish", 0);
|
|
|
|
|
+ maps.add(map);
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<String> projectIds = approvals.stream()
|
|
|
|
|
+ .map(CostProjectApproval::getProjectId)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ // 查询子任务
|
|
|
|
|
+ LambdaQueryWrapper<CostProjectTask> taskQuery = new LambdaQueryWrapper<>();
|
|
|
|
|
+ taskQuery.eq(CostProjectTask::getIsDeleted, "0")
|
|
|
|
|
+ .ne(CostProjectTask::getPid, "0")
|
|
|
|
|
+ .in(CostProjectTask::getProjectId, projectIds);
|
|
|
|
|
+ if (StringUtil.isNotEmpty(year)) {
|
|
|
|
|
+ taskQuery.eq(CostProjectTask::getYear, year);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<CostProjectTask> tasks = this.list(taskQuery);
|
|
|
|
|
+
|
|
|
|
|
+ // 统计完成和未完成的任务
|
|
|
|
|
+ long finishCount = tasks.stream()
|
|
|
|
|
+ .filter(task -> TaskStatusConstant.COMPLETED.getStatusCode().equals(task.getStatus()))
|
|
|
|
|
+ .count();
|
|
|
|
|
+ long nFinishCount = tasks.size() - finishCount;
|
|
|
|
|
+
|
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
|
+ map.put("name", costCatalog.getCatalogName());
|
|
|
|
|
+ map.put("finish", finishCount);
|
|
|
|
|
+ map.put("nFinish", nFinishCount);
|
|
|
|
|
+ maps.add(map);
|
|
|
|
|
+ }
|
|
|
|
|
+ return maps;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<CostNotice> getDoMsgList() {
|
|
|
|
|
+ // 获取当前用户
|
|
|
|
|
+ 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");
|
|
|
|
|
+ return costNoticeManager.list(queryWrapper);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private List<String> getAllChildCatalogIds(String catalogId) {
|
|
|
|
|
+ List<String> result = new ArrayList<>();
|
|
|
|
|
+ result.add(catalogId);
|
|
|
|
|
+
|
|
|
|
|
+ List<CostCatalog> children = costCatalogManager.list(
|
|
|
|
|
+ new LambdaQueryWrapper<CostCatalog>().eq(CostCatalog::getParentId, catalogId)
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ for (CostCatalog child : children) {
|
|
|
|
|
+ result.addAll(getAllChildCatalogIds(child.getCatalogId()));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|