From cf82da3d93fec217d22aa59eeb9477ac336ee8a1 Mon Sep 17 00:00:00 2001 From: yangzhenli Date: Fri, 2 Aug 2024 11:17:04 +0800 Subject: [PATCH] update --- .../mapper/BiddingProjectSubscribeMapper.java | 6 + .../BiddingProjectSubscribeService.java | 6 + .../service/IndicatorStatisticsService.java | 9 ++ .../BiddingProjectSubscribeServiceImpl.java | 11 ++ .../mapper/BiddingProjectSubscribeMapper.xml | 125 +++++++++++++++--- .../IndicatorStatisticsController.java | 45 +++++++ .../model/dto/IndicatorStatisticsDto.java | 97 ++++++++++++++ 7 files changed, 283 insertions(+), 16 deletions(-) create mode 100644 jnpf-tendering-biz/src/main/java/jnpf/service/IndicatorStatisticsService.java create mode 100644 jnpf-tendering-controller/src/main/java/jnpf/controller/IndicatorStatisticsController.java create mode 100644 jnpf-tendering-entity/src/main/java/jnpf/model/dto/IndicatorStatisticsDto.java diff --git a/jnpf-tendering-biz/src/main/java/jnpf/mapper/BiddingProjectSubscribeMapper.java b/jnpf-tendering-biz/src/main/java/jnpf/mapper/BiddingProjectSubscribeMapper.java index fcaed06..4c6d4a2 100644 --- a/jnpf-tendering-biz/src/main/java/jnpf/mapper/BiddingProjectSubscribeMapper.java +++ b/jnpf-tendering-biz/src/main/java/jnpf/mapper/BiddingProjectSubscribeMapper.java @@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jnpf.entity.BiddingProjectSubscribeEntity; import jnpf.model.bidding_project_subscribe.BiddingProjectSubscribePagination; +import jnpf.model.dto.IndicatorStatisticsDto; import org.apache.ibatis.annotations.Param; +import java.util.List; import java.util.Map; /** @@ -22,4 +24,8 @@ public interface BiddingProjectSubscribeMapper extends BaseMapper queryList(@Param("page") Page objectPage, @Param("param") BiddingProjectSubscribePagination biddingProjectSubscribePagination, @Param("ew") Map ew,@Param("sql") String sql); BiddingProjectSubscribeEntity getInfoById(@Param("id") String id); + + List getProjectsNumberByType(@Param("param")IndicatorStatisticsDto.ProjectsNumberParam param,@Param("ew") Map paramNameValuePairs, @Param("sql")String sql); + + List moneyAndProjectsNumber(@Param("param")IndicatorStatisticsDto.MoneyAndProjectsNumberParam param,@Param("ew") Map paramNameValuePairs, @Param("sql")String sql); } diff --git a/jnpf-tendering-biz/src/main/java/jnpf/service/BiddingProjectSubscribeService.java b/jnpf-tendering-biz/src/main/java/jnpf/service/BiddingProjectSubscribeService.java index 553c0ff..1f9d75d 100644 --- a/jnpf-tendering-biz/src/main/java/jnpf/service/BiddingProjectSubscribeService.java +++ b/jnpf-tendering-biz/src/main/java/jnpf/service/BiddingProjectSubscribeService.java @@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.extension.service.IService; import jnpf.entity.BiddingProjectSubscribeEntity; import jnpf.model.bidding_project_subscribe.*; import jnpf.model.dto.BiddingProjectDto; +import jnpf.model.dto.IndicatorStatisticsDto; import jnpf.permission.entity.UserEntity; import org.springframework.web.multipart.MultipartFile; import java.util.List; +import java.util.Map; /** * bidding_project_subscribe @@ -54,4 +56,8 @@ public interface BiddingProjectSubscribeService extends IService getProjectsNumberByType(IndicatorStatisticsDto.ProjectsNumberParam param, Map paramNameValuePairs, String sql); + + List moneyAndProjectsNumber(IndicatorStatisticsDto.MoneyAndProjectsNumberParam param, Map paramNameValuePairs, String replace); } diff --git a/jnpf-tendering-biz/src/main/java/jnpf/service/IndicatorStatisticsService.java b/jnpf-tendering-biz/src/main/java/jnpf/service/IndicatorStatisticsService.java new file mode 100644 index 0000000..d5d3563 --- /dev/null +++ b/jnpf-tendering-biz/src/main/java/jnpf/service/IndicatorStatisticsService.java @@ -0,0 +1,9 @@ +package jnpf.service; + +import jnpf.model.dto.IndicatorStatisticsDto; + +public interface IndicatorStatisticsService { + IndicatorStatisticsDto.ProjectsNumberResponse projectsNumber(IndicatorStatisticsDto.ProjectsNumberParam param); + + IndicatorStatisticsDto.MoneyAndProjectsNumberResponse moneyAndProjectsNumber(IndicatorStatisticsDto.MoneyAndProjectsNumberParam param); +} diff --git a/jnpf-tendering-biz/src/main/java/jnpf/service/impl/BiddingProjectSubscribeServiceImpl.java b/jnpf-tendering-biz/src/main/java/jnpf/service/impl/BiddingProjectSubscribeServiceImpl.java index 0e5e486..7beef47 100644 --- a/jnpf-tendering-biz/src/main/java/jnpf/service/impl/BiddingProjectSubscribeServiceImpl.java +++ b/jnpf-tendering-biz/src/main/java/jnpf/service/impl/BiddingProjectSubscribeServiceImpl.java @@ -30,6 +30,7 @@ import jnpf.exception.DataException; import jnpf.mapper.BiddingProjectSubscribeMapper; import jnpf.model.bidding_project_subscribe.*; import jnpf.model.dto.BiddingProjectDto; +import jnpf.model.dto.IndicatorStatisticsDto; import jnpf.permission.OrganizeApi; import jnpf.permission.RoleApi; import jnpf.permission.UserApi; @@ -1975,4 +1976,14 @@ public class BiddingProjectSubscribeServiceImpl extends ServiceImpl getProjectsNumberByType(IndicatorStatisticsDto.ProjectsNumberParam param, Map paramNameValuePairs, String sql) { + return this.baseMapper.getProjectsNumberByType(param, paramNameValuePairs, sql); + } + + @Override + public List moneyAndProjectsNumber(IndicatorStatisticsDto.MoneyAndProjectsNumberParam param, Map paramNameValuePairs, String sql) { + return this.baseMapper.moneyAndProjectsNumber(param, paramNameValuePairs, sql); + } } diff --git a/jnpf-tendering-biz/src/main/resources/mapper/BiddingProjectSubscribeMapper.xml b/jnpf-tendering-biz/src/main/resources/mapper/BiddingProjectSubscribeMapper.xml index 9ca8a6b..2b55986 100644 --- a/jnpf-tendering-biz/src/main/resources/mapper/BiddingProjectSubscribeMapper.xml +++ b/jnpf-tendering-biz/src/main/resources/mapper/BiddingProjectSubscribeMapper.xml @@ -63,15 +63,19 @@ - - + + @@ -111,23 +115,31 @@ - main.id ,main.management_style ,main.project_number ,main.plan_submission_time ,main.reporting_corp ,main.tendering_entity ,main.project_name ,main.Item_classification ,main.organizational_form ,main.bidding_method ,main.reported_file_name ,main.bidding_document_id ,main.decision_procedure ,main.approval_documents_id ,main.final_approval_time ,main.setting_of_winning_bidder_one ,main.setting_of_winning_bidder_two ,main.scoring_indicator_settings_one ,main.scoring_indicator_settings_two ,main.scoring_indicator_settings_three ,main.scoring_indicator_settings_four ,main.agency_one ,main.agency_two ,main.scoring_method_one ,main.scoring_method_two ,main.approval_documents_id_two ,main.result_reporting_time ,main.result_reported_file_name ,main.bid_opening_time ,main.explanation_of_bid ,main.winning_bidder_and_winning_amount ,main.bid_evaluation_committee ,main.tender_agency_fee ,main.attachment_of_bidding_results_one_id ,main.attachment_of_bidding_results_two_id ,main.winning_bidder ,main.winning_bidder_candidate ,main.filing_decision_procedure ,main.filing_results_one_id ,main.filing_results_two_id ,main.approval_time_for_results ,main.f_flowid ,main.f_flowtaskid ,main.annex_programme_document ,main.main_status ,main.main_status_name,bid_winning_amount,is_approval,query_type,approval_documents_id_jt,archive_number,main.create_time,main.update_time,main.winning_bidder_type,main.winning_bidder_info,main.control_price,main.filing_results_three_id,main.project_amount + main + . + id + ,main.management_style ,main.project_number ,main.plan_submission_time ,main.reporting_corp ,main.tendering_entity ,main.project_name ,main.Item_classification ,main.organizational_form ,main.bidding_method ,main.reported_file_name ,main.bidding_document_id ,main.decision_procedure ,main.approval_documents_id ,main.final_approval_time ,main.setting_of_winning_bidder_one ,main.setting_of_winning_bidder_two ,main.scoring_indicator_settings_one ,main.scoring_indicator_settings_two ,main.scoring_indicator_settings_three ,main.scoring_indicator_settings_four ,main.agency_one ,main.agency_two ,main.scoring_method_one ,main.scoring_method_two ,main.approval_documents_id_two ,main.result_reporting_time ,main.result_reported_file_name ,main.bid_opening_time ,main.explanation_of_bid ,main.winning_bidder_and_winning_amount ,main.bid_evaluation_committee ,main.tender_agency_fee ,main.attachment_of_bidding_results_one_id ,main.attachment_of_bidding_results_two_id ,main.winning_bidder ,main.winning_bidder_candidate ,main.filing_decision_procedure ,main.filing_results_one_id ,main.filing_results_two_id ,main.approval_time_for_results ,main.f_flowid ,main.f_flowtaskid ,main.annex_programme_document ,main.main_status ,main.main_status_name,bid_winning_amount,is_approval,query_type,approval_documents_id_jt,archive_number,main.create_time,main.update_time,main.winning_bidder_type,main.winning_bidder_info,main.control_price,main.filing_results_three_id,main.project_amount - id,relation_main_id ,relation_type ,relation_child_id ,deal_type ,deal_type_name ,other_relation_id ,remake ,create_time ,create_user_id ,create_user_name ,create_organization_id ,create_organization_name + id + ,relation_main_id ,relation_type ,relation_child_id ,deal_type ,deal_type_name ,other_relation_id ,remake ,create_time ,create_user_id ,create_user_name ,create_organization_id ,create_organization_name - child_id ,main_id ,child_status ,child_status_name ,user_dept_id ,user_dept_name ,user_id ,user_name ,remake ,create_time ,update_time ,root_child_flag ,root_child_id ,create_user_id ,create_user_name + child_id + ,main_id ,child_status ,child_status_name ,user_dept_id ,user_dept_name ,user_id ,user_name ,remake ,create_time ,update_time ,root_child_flag ,root_child_id ,create_user_id ,create_user_name - + select distinct + from bidding_project_subscribe main - left join bidding_project_subscribe_child child on child.main_id=main.id + left join bidding_project_subscribe_child child on child.main_id=main.id where 1=1 - - and main.id in (select child.main_id from bidding_project_subscribe_child child where root_child_flag='0' and ${sql}) - + + and main.id in (select child.main_id from bidding_project_subscribe_child child where root_child_flag='0' + and ${sql}) + and main.id in @@ -138,9 +150,90 @@ order by main.create_time desc - + select + from bidding_project_subscribe main - where main.id=#{id} + where main.id=#{id} + + + diff --git a/jnpf-tendering-controller/src/main/java/jnpf/controller/IndicatorStatisticsController.java b/jnpf-tendering-controller/src/main/java/jnpf/controller/IndicatorStatisticsController.java new file mode 100644 index 0000000..d25047f --- /dev/null +++ b/jnpf-tendering-controller/src/main/java/jnpf/controller/IndicatorStatisticsController.java @@ -0,0 +1,45 @@ +package jnpf.controller; + + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jnpf.base.ActionResult; +import jnpf.base.Pagination; +import jnpf.base.vo.PageListVO; +import jnpf.base.vo.PaginationVO; +import jnpf.entity.ContractEntity; +import jnpf.model.ContractListVO; +import jnpf.model.dto.IndicatorStatisticsDto; +import jnpf.service.BiddingProjectSubscribeService; +import jnpf.service.IndicatorStatisticsService; +import jnpf.util.JsonUtil; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@Tag(name = "指标统计接口", description = "indicator") +@RequestMapping("/indicator") +@AllArgsConstructor +public class IndicatorStatisticsController { + private final IndicatorStatisticsService indicatorStatisticsService; + + + @Operation(summary = "审批/备案项目数") + @GetMapping("/projectsNumber") + public ActionResult projectsNumber(IndicatorStatisticsDto.ProjectsNumberParam param) { + return ActionResult.success(indicatorStatisticsService.projectsNumber(param)); + } + + + @Operation(summary = "项目数 金额") + @GetMapping("/moneyAndProjectsNumber") + public ActionResult moneyAndProjectsNumber(IndicatorStatisticsDto.MoneyAndProjectsNumberParam param) { + return ActionResult.success(indicatorStatisticsService.moneyAndProjectsNumber(param)); + } + + +} diff --git a/jnpf-tendering-entity/src/main/java/jnpf/model/dto/IndicatorStatisticsDto.java b/jnpf-tendering-entity/src/main/java/jnpf/model/dto/IndicatorStatisticsDto.java new file mode 100644 index 0000000..6b20b4d --- /dev/null +++ b/jnpf-tendering-entity/src/main/java/jnpf/model/dto/IndicatorStatisticsDto.java @@ -0,0 +1,97 @@ +package jnpf.model.dto; + +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Data +public class IndicatorStatisticsDto { + @Data + public static class ProjectsNumberParam { + /** + * 查询类型 1-本月(默认本月):到日。2-当年:按月。3-累计:按年 + */ + private String type="1"; + /** + * 权限控制 + */ + private String menuId; + /** + * 根据type 传入对应参数 eg:月份查询传入某年某月 不传入默认为当年当月 返回当月当月日统计 + * 月份传入 yyyy-MM + * 年份传入 yyyy + * 累计无需传入 + */ + private String corresponding; + + } + + @Data + public static class ProjectsNumberResponse { + /** + * 返回时间类型 用于前端展示使用 + */ + private LocalDateTime corresponding; + /** + * 根据type 传入对应参数 eg:月份查询传入某年某月 不传入默认为当年当月 返回当月当月日统计 + */ + private List indicatorList = new ArrayList<>(); + } + + @Data + public static class Indicator { + /** + * x轴数据 + */ + private String xData; + /** + * y轴数据 + */ + private String yData; + } + + + @Data + public static class MoneyAndProjectsNumberParam { + /** + * 查询类型 1-本月 默认本月。2-当年。3-累计 + */ + private String queryDateType = "1"; + /** + * 查询类型 1-所有(默认所有) 2-按组织形式分布 3-按事项分类分布 4-按招标方式分布 + */ + private String classificationType = "1"; + /** + * 权限控制 + */ + private String menuId; + private String corresponding; + } + + @Data + public static class MoneyAndProjectsNumberResponse { + /** + * 1-所有(默认所有) 2-按组织形式分布 3-按事项分类分布 4-按招标方式分布 + */ + private String classificationType; + private List dataList=new ArrayList<>(); + } + + @Data + public static class MoneyAndProjectsNumberChild { + /** + * 类型名称 + */ + private String yName; + /** + * 项目数量 + */ + private String projectsNumber; + /** + * 金额 + */ + private String money; + } +}