From ee251f51a02e198b8edc1d0972fea207051c5314 Mon Sep 17 00:00:00 2001 From: zhouquanseaskyshcom <zhouquan@seaskysh.com> Date: Thu, 24 Nov 2022 17:24:28 +0800 Subject: [PATCH] xinzegn --- .../projectplan/api/IProjectLibrary.java | 2 +- .../projectlibrary/AProjectLibrarySvr.java | 2 +- .../AProjectLibrarySvrImpl.java | 54 ++++++++++++++++++- .../controller/ProjectLibraryController.java | 4 +- 4 files changed, 57 insertions(+), 5 deletions(-) diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectLibrary.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectLibrary.java index d651714c..da76f3ae 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectLibrary.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectLibrary.java @@ -106,7 +106,7 @@ public interface IProjectLibrary { @ApiOperation("14.浜哄憳缁忚垂杩涘叆浜屼笂") @PostMapping("/enterPersonProjectPlan") - Result<Object> enterPersonProjectPlan(); + Result<Object> enterPersonProjectPlan(Integer year); /** * 鏃ュ父鍏敤缁忚垂杩涘叆浜屼笂 diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvr.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvr.java index 756b5425..09f67e14 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvr.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvr.java @@ -97,7 +97,7 @@ public interface AProjectLibrarySvr { * 浜哄憳缁忚垂杩涘叆浜屼笂 * */ - void enterPersonProjectPlanType2(); + void enterPersonProjectPlanType2(Integer year); /** * 杩涘叆瀹岀粨搴� diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvrImpl.java index 59cb0651..64708f5b 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectlibrary/AProjectLibrarySvrImpl.java @@ -1,5 +1,6 @@ package com.seasky.projectplan.application.command.projectlibrary; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.seasky.core.common.Error; import com.seasky.core.common.ResponseCode; @@ -17,10 +18,12 @@ import com.seasky.projectplan.domain.aggregate.projectdailyplan.ProjectDailyPlan import com.seasky.projectplan.domain.aggregate.projectdailyplan.ProjectDailyRepository; import com.seasky.projectplan.domain.aggregate.projectlibrary.ProjectLibraryAgg; import com.seasky.projectplan.domain.aggregate.projectlibrary.ProjectLibraryRepository; +import com.seasky.projectplan.domain.aggregate.projectpersonplan.ProjectPersonPlanAgg; import com.seasky.projectplan.domain.aggregate.quotamanage.QuotaManageRepository; import com.seasky.projectplan.domain.aggregate.quotaproject.QuotaProjectAgg; import com.seasky.projectplan.domain.service.FlowSvr; import com.seasky.projectplan.domain.service.ProjectLibrarySvr; +import com.seasky.projectplan.domain.service.ProjectPersonPlanDomainSvr; import com.seasky.projectplan.dto.attachment.AttachmentInfoOut; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchOut; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchQry; @@ -39,6 +42,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 椤圭洰搴搒vr impl @@ -69,6 +73,8 @@ public class AProjectLibrarySvrImpl implements AProjectLibrarySvr { ProjectPlanBookMapper projectPlanBookMapper; @Resource private AttachmentSvr attachmentSvr; + @Resource + private ProjectPersonPlanDomainSvr personPlanDomainSvr; /** * 鏂板淇敼椤圭洰 @@ -313,7 +319,53 @@ public class AProjectLibrarySvrImpl implements AProjectLibrarySvr { * 浜哄憳缁忚垂杩涘叆浜屼笂 */ @Override - public void enterPersonProjectPlanType2() { + public void enterPersonProjectPlanType2(Integer year) { + //鑾峰彇褰撳墠鐧诲綍浜洪儴闂ㄧ紪鍙烽泦鍚� + List<String> departmentCodeList = BaseDataUtil.makeCurrentUserDeptCodeList(); + //鏍¢獙褰撳墠鏄惁鏈夌敵鎶ヤ功 + QueryWrapper<ProjectPlanBookPo> projectPlanBookPoQueryWrapper = new QueryWrapper<>(); + projectPlanBookPoQueryWrapper.in("department_code", departmentCodeList) + .eq("plan_book_type", 3) + .eq("year", year) + .eq("available", "YES") + .eq("plan_type", PlanTypeEnum.ERSHANG); + List<ProjectPlanBookPo> projectPlanBookPoList = projectPlanBookMapper.selectList(projectPlanBookPoQueryWrapper); + List<Long> idList = StreamUtils.convertList(projectPlanBookPoList, ProjectPlanBookPo::getProjectLibraryId); + QueryWrapper<ProjectPlanBookPo> bookPoQueryWrapper = new QueryWrapper<>(); + bookPoQueryWrapper.in("department_code", departmentCodeList) + .eq("year", year) + .eq("plan_book_type", 3) + .eq("available", "YES") + .eq("plan_type", PlanTypeEnum.YISHANG); + List<ProjectPlanBookPo> projectPlanBookPos = projectPlanBookMapper.selectList(bookPoQueryWrapper); + if (ObjectUtils.isEmpty(projectPlanBookPos)) { + throw ExceptionUtil.getException(null, "涓婂勾娌℃湁鍙互鍚屾鐨勭敵鎶ヤ功"); + } + List<ProjectPlanBookPo> collect = projectPlanBookPos.stream().filter(item -> !idList.contains(item.getProjectLibraryId())).collect(Collectors.toList()); + for (ProjectPlanBookPo projectPlanBookPo : collect) { + syncOntToTwo(projectPlanBookPo.getId(), PlanTypeEnum.ERSHANG, flowTypeEnum.renyuan.key()); + } + } + /** + * 鍚屾鏈勾涓€涓婁汉鍛樼敵鎶ヤ功鍒颁簩涓� + * + * @param id id + */ + public void syncOntToTwo(Long id, PlanTypeEnum planTypeEnum, String flowType) { + ProjectPersonPlanAgg agg = new ProjectPersonPlanAgg(); + agg.setId(id); + agg = personPlanDomainSvr.queryProjectPersonPlan(agg); + agg.setPlanType(planTypeEnum); + //鍚姩鏂扮殑娴佺▼ + Long processCode = flowSvr.projectPlanStartFlow(flowTypeEnum.renyuan.key()); + if (processCode == null) { + throw new DataAccessException(new Error(ResponseCode.DATA_VERIFY_EXCEPTION, null, "鍚姩娴佺▼澶辫触", "")); + } + ExceptionUtil.isNull(processCode, "鍚姩娴佺▼澶辫触"); + agg.setYear(agg.getYear()); + //娴佺▼id瀛樺叆鑱氬悎 + agg.setProcessId(processCode); + personPlanDomainSvr.syncThisYearFundBook(agg); } /** diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectLibraryController.java b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectLibraryController.java index 0ff8766d..14854bc4 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectLibraryController.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectLibraryController.java @@ -159,8 +159,8 @@ public class ProjectLibraryController implements IProjectLibrary { @ApiOperation("14.浜哄憳缁忚垂杩涘叆浜屼笂") @Override - public Result<Object> enterPersonProjectPlan() { - service.enterPersonProjectPlanType2(); + public Result<Object> enterPersonProjectPlan(@RequestParam Integer year) { + service.enterPersonProjectPlanType2(year); return ok(ResponseCode.SUCCESS); } -- GitLab