diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectPlan.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectPlan.java index 5d1a1ebdcc21384b7e6c92b5e30caca0651699b7..6415e7f04cfd3e9fcf565591cb6c20307e5617f3 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectPlan.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/api/IProjectPlan.java @@ -5,6 +5,8 @@ import com.seasky.core.common.Result; import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryOut; import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryQry; import com.seasky.projectplan.dto.projectplan.*; +import com.seasky.projectplan.dto.projectplan.projecttype.ProjectTypeOut; +import com.seasky.projectplan.dto.projectplan.projecttype.ProjectTypeQry; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -28,13 +30,12 @@ import java.util.List; public interface IProjectPlan { /** - * 鏌ヨ褰掑彛閮ㄩ棬锛堝姩鎬侊級 - * + * 鏍规嵁鐢虫姤闃舵鏌ヨ椤圭洰绫诲瀷 * @param projectInfoPlanQry 椤圭洰淇℃伅璁″垝qry * @return {@link Result}<{@link ProjectPlanBookOut}> */ - @PostMapping(path = "/queryGuiKouDepartment") - Result<ProjectPlanBookGuiKouOut> queryGuiKouDepartment(ProjectInfoPlanQry projectInfoPlanQry); + @PostMapping(path = "/queryProjectTypeByPlanType") + Result<ProjectTypeOut> queryProjectTypeByPlanType(ProjectTypeQry projectInfoPlanQry); /** diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/projecttype/ProjectTypeOut.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/projecttype/ProjectTypeOut.java new file mode 100644 index 0000000000000000000000000000000000000000..1b68e14ad92f06fffc0bfa6d82ca2c5ac9ed0913 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/projecttype/ProjectTypeOut.java @@ -0,0 +1,29 @@ +package com.seasky.projectplan.dto.projectplan.projecttype; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author 灏忓懆(喔� 鈥� 虁 _ 鈥� 虂)喔� + * @Data 2022/8/5 14:49 + */ + +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.ALWAYS) +public class ProjectTypeOut implements Serializable { + + private static final long serialVersionUID = 6603755863812327493L; + @ApiModelProperty(value = "椤圭洰绫诲瀷id",example = "") + private Long projectTypeId; + + @ApiModelProperty(value = "椤圭洰绫诲瀷") + private String projectType; + +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/projecttype/ProjectTypeQry.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/projecttype/ProjectTypeQry.java new file mode 100644 index 0000000000000000000000000000000000000000..bb161971c90f9a74f548cccd0c0f4b75c52ec687 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/projecttype/ProjectTypeQry.java @@ -0,0 +1,25 @@ +package com.seasky.projectplan.dto.projectplan.projecttype; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("鏍规嵁鐢虫姤闃舵鏌ヨ椤圭洰绫诲瀷") +public class ProjectTypeQry implements Serializable { + + private static final long serialVersionUID = 7741721008321362827L; + @ApiModelProperty(value = "骞翠唤",example = "") + private Integer year; + + @ApiModelProperty(value = "鐢虫姤闃舵",example = "") + private String planType; +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java index 6aacd1652e02d8457cc2e89d6c052e689b613c25..5e997d3d362588c94c86388f7156548b1c144c8a 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java @@ -4,6 +4,8 @@ import com.seasky.core.base.BaseService; import com.seasky.core.common.Pagination; import com.seasky.core.common.Result; import com.seasky.projectplan.dto.projectplan.*; +import com.seasky.projectplan.dto.projectplan.projecttype.ProjectTypeOut; +import com.seasky.projectplan.dto.projectplan.projecttype.ProjectTypeQry; import com.seasky.projectplan.dto.target.QueryTargetPlan; import com.seasky.projectplan.dto.target.TargetListOut; import com.seasky.projectplan.dto.target.TargetQry; @@ -379,10 +381,9 @@ public interface ProjectPlanQueryService extends BaseService<ProjectPlanBookPo> PersonInfoOut getPersonInfo(); /** - * 鏌ヨ褰掑彛閮ㄩ棬锛堝姩鎬侊級 - * - * @param projectInfoPlanQry 椤圭洰淇℃伅璁″垝qry + * 鏍规嵁鐢虫姤闃舵鏌ヨ椤圭洰绫诲瀷 + * @param projectTypeQry 椤圭洰绫诲瀷qry * @return {@link Result}<{@link ProjectPlanBookOut}> */ - List<ProjectPlanBookGuiKouOut> queryGuiKouDepartment(ProjectInfoPlanQry projectInfoPlanQry); + List<ProjectTypeOut> queryProjectTypeByPlanType(ProjectTypeQry projectTypeQry); } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java index 661ab1afc976425dc6201fafc2c2089172ae25fc..9bffac17a38f20826f8965908be8427856ccc31a 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java @@ -43,6 +43,8 @@ import com.seasky.projectplan.dto.budgetinfo.BudgetInfoQry; import com.seasky.projectplan.dto.budgetinfo.ExportBudgetInfoOut; import com.seasky.projectplan.dto.collegeclasses.CollegeClassesOut; import com.seasky.projectplan.dto.projectplan.*; +import com.seasky.projectplan.dto.projectplan.projecttype.ProjectTypeOut; +import com.seasky.projectplan.dto.projectplan.projecttype.ProjectTypeQry; import com.seasky.projectplan.dto.schoolStudentInformation.SchoolStudentInformationOut; import com.seasky.projectplan.dto.target.QueryTargetPlan; import com.seasky.projectplan.dto.target.TargetListExport; @@ -2247,21 +2249,47 @@ public class ProjectPlanQueryServiceImpl extends AbstractService<ProjectPlanBook } } + /** + * 鏍规嵁鐢虫姤闃舵鏌ヨ椤圭洰绫诲瀷 + * @param projectTypeQry 椤圭洰绫诲瀷 + * @return {@link List}<{@link ProjectTypeOut}> + */ @Override - public List<ProjectPlanBookGuiKouOut> queryGuiKouDepartment(ProjectInfoPlanQry projectInfoPlanQry) { + public List<ProjectTypeOut> queryProjectTypeByPlanType(ProjectTypeQry projectTypeQry) { //鑾峰彇褰撳墠鐧诲綍浜虹殑閮ㄩ棬淇℃伅 List<String> codeList = BaseDataUtil.makeCurrentUserDeptCodeList(); QueryWrapper<ProjectPlanBookPo> bookPoQueryWrapper = new QueryWrapper<>(); - bookPoQueryWrapper.in("department_code", codeList) - .eq("year", projectInfoPlanQry.getYear()) - .eq("plan_type", projectInfoPlanQry.getPlanType()) - .eq("available", "YES"); + bookPoQueryWrapper.in("department_code",codeList) + .eq("year",projectTypeQry.getYear()) + .eq("plan_type",projectTypeQry.getPlanType()) + .eq("available","YES"); List<ProjectPlanBookPo> projectPlanBookPos = projectPlanBookMapper.selectList(bookPoQueryWrapper); + log.info("褰撳墠鐧诲綍浜烘病鏈夊搴旂殑鐢虫姤涔�"); if (ObjectUtils.isEmpty(projectPlanBookPos)) { - throw ExceptionUtil.getException(null, "褰撳墠鐧诲綍浜烘病鏈夊搴旂殑褰掑彛閮ㄩ棬"); + return new ArrayList<>(); + } + List<ProjectTypeOut> projectPlanBookGuiKouOuts = MapperUtils.INSTANCE.mapAsList(ProjectTypeOut.class, projectPlanBookPos); + List<BudgetInfoPo> budgetInfoPos = budgetInfoMapper.qryBudgetInfoList(BudgetInfoQry.builder().year(projectTypeQry.getYear()).build()); + //寰幆 budgetInfoPos 鍒ゆ柇鎵€鍦ㄩ儴闂╢unction_dept_json瀛楁 鏄惁鍦� codeList,鑻ュ湪鍒欎负 褰撳墠鐧诲綍浜哄彲鏌ョ湅鐨勯」鐩被鍨� + //褰撳墠鐧诲綍浜哄彲鏌ョ湅椤圭洰绫诲瀷闆嗗悎 + ArrayList<Long> projectTypeList = new ArrayList<>(); + for (String deptCode : codeList) { + if (budgetInfoPos != null && budgetInfoPos.size() > 0) { + for (BudgetInfoPo budgetPo : budgetInfoPos) { + if (budgetPo.getFunctionDeptJson() != null && StringUtil.isNotEmpty(budgetPo.getFunctionDeptJson())) { + JSONArray jsonArray = JSON.parseArray(budgetPo.getFunctionDeptJson()); + for (Object o : jsonArray) { + JSONObject jsonObject = JSON.parseObject(o.toString()); + if (jsonObject.get("code").equals(deptCode)) { + projectTypeList.add(budgetPo.getId()); + } + } + } + } + } } - List<ProjectPlanBookGuiKouOut> projectPlanBookGuiKouOuts = MapperUtils.INSTANCE.mapAsList(ProjectPlanBookGuiKouOut.class, projectPlanBookPos); - return projectPlanBookGuiKouOuts.stream().distinct().collect(Collectors.toList()); + log.debug("鐢虫姤涔︾殑椤圭洰绫诲瀷闆嗗悎涓�:{},鐧诲綍浜洪儴闂ㄧ殑鍙敤椤圭洰绫诲瀷涓�:{}",projectPlanBookGuiKouOuts,projectTypeList); + return projectPlanBookGuiKouOuts.stream().distinct().filter(item -> projectTypeList.contains(item.getProjectTypeId())).collect(Collectors.toList()); } /** diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectPlanController.java b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectPlanController.java index a9ac406d3e110fc05e4bb92d8e12932f9682f1bf..55c2b96b7c7cda49a231105b85b877777b44c1de 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectPlanController.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/interfaces/controller/ProjectPlanController.java @@ -10,6 +10,8 @@ import com.seasky.projectplan.application.query.projectplan.ProjectPlanQueryServ import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryOut; import com.seasky.projectplan.dto.projectlibrary.ProjectLibraryQry; import com.seasky.projectplan.dto.projectplan.*; +import com.seasky.projectplan.dto.projectplan.projecttype.ProjectTypeOut; +import com.seasky.projectplan.dto.projectplan.projecttype.ProjectTypeQry; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; @@ -45,10 +47,10 @@ public class ProjectPlanController extends BaseController implements IProjectPla @Value("${import.enable}") private Boolean enableImport; - @ApiOperation("鏌ヨ褰掑彛閮ㄩ棬锛堝姩鎬侊級") + @ApiOperation("鏍规嵁鐢虫姤闃舵鏌ヨ椤圭洰绫诲瀷") @Override - public Result<ProjectPlanBookGuiKouOut> queryGuiKouDepartment(@RequestBody ProjectInfoPlanQry projectInfoPlanQry) { - return ok(ResponseCode.SUCCESS,queryService.queryGuiKouDepartment(projectInfoPlanQry)); + public Result<ProjectTypeOut> queryProjectTypeByPlanType(@RequestBody ProjectTypeQry projectInfoPlanQry) { + return ok(ResponseCode.SUCCESS,queryService.queryProjectTypeByPlanType(projectInfoPlanQry)); } @ApiOperation("璇ュ鏍$敵鎶ヤ功鏄惁鏈夊鍏ュ姛鑳�")