Browse Source

计划年份不在所选年份里,但是该项目在所选的年份有投资,也需要加上

chenr 3 months ago
parent
commit
dc54210c30

+ 6 - 0
src/main/java/org/springblade/modules/project/mapper/ProjectInfoMapper.java

@@ -76,4 +76,10 @@ public interface ProjectInfoMapper extends BaseMapper<ProjectInfo> {
     BigDecimal getAllYearlyInvestByProjectId(@Param("projectId")Long projectId);
 
     void updateInvestYearAll(@Param("investYearAll")BigDecimal investYearAll, @Param("projectId")Long projectId);
+
+    List<DataProjectStatVO2> dataProjectStat1(@Param("dto")DataStatDTO dto);
+
+    List<DataInvestStatVO2> dataInvestStat1(@Param("dto")DataStatDTO dto);
+
+    List<DataScheduleStatVO2> dataScheduleStat1(@Param("dto")DataStatDTO dto);
 }

+ 51 - 0
src/main/java/org/springblade/modules/project/mapper/ProjectInfoMapper.xml

@@ -133,5 +133,56 @@
         from d_project_invest_plan
         where is_deleted = 0 and project_id = #{projectId}
     </select>
+    <select id="dataProjectStat1" resultType="org.springblade.modules.project.pojo.vo.DataProjectStatVO2">
+        SELECT dpi.id
+        FROM d_project_info dpi
+                 JOIN d_project_invest_plan dpip ON dpi.id = dpip.project_id
+        WHERE
+            #{dto.year} NOT BETWEEN dpi.start_year AND dpi.end_year
+          AND dpip.plan_year = #{dto.year}
+          AND (dpip.yearly_invest IS NOT NULL AND dpip.yearly_invest != 0)
+          AND dpi.is_deleted = 0
+        <if test="dto.projectStage != null ">
+            and dpi.project_stage = #{dto.projectStage}
+        </if>
+        <if test="dto.projectType != null ">
+            and dpi.project_type = #{dto.projectType}
+        </if>
+
+    </select>
+    <select id="dataInvestStat1" resultType="org.springblade.modules.project.pojo.vo.DataInvestStatVO2">
+        select dpi.id,dpi.project_stage,dpi.project_type,
+        (select dict_value from blade_dict_biz where code = 'projectStage' and dict_key = dpi.project_stage and is_deleted = 0) as projectStageName,
+        (select dict_value from blade_dict_biz where code = 'projectType' and dict_key = dpi.project_type and is_deleted = 0) as projectTypeName
+        from d_project_info dpi JOIN d_project_invest_plan dpip ON dpi.id = dpip.project_id
+        where #{dto.year} NOT BETWEEN dpi.start_year AND dpi.end_year
+        AND dpip.plan_year = #{dto.year}
+        AND (dpip.yearly_invest IS NOT NULL AND dpip.yearly_invest != 0)
+        AND dpi.is_deleted = 0
+        <if test="dto.projectStage != null ">
+            and dpi.project_stage = #{dto.projectStage}
+        </if>
+        <if test="dto.projectType != null ">
+            and dpi.project_type = #{dto.projectType}
+        </if>
+
+    </select>
+    <select id="dataScheduleStat1" resultType="org.springblade.modules.project.pojo.vo.DataScheduleStatVO2">
+        select dpi.id,dpi.project_stage,dpi.project_type,
+        (select dict_value from blade_dict_biz where code = 'projectStage' and dict_key = dpi.project_stage and is_deleted = 0) as projectStageName,
+        (select dict_value from blade_dict_biz where code = 'projectType' and dict_key = dpi.project_type and is_deleted = 0) as projectTypeName
+        from d_project_info dpi JOIN d_project_invest_plan dpip ON dpi.id = dpip.project_id
+        where #{dto.year} NOT BETWEEN dpi.start_year AND dpi.end_year
+        AND dpip.plan_year = #{dto.year}
+        AND (dpip.yearly_invest IS NOT NULL AND dpip.yearly_invest != 0)
+        AND dpi.is_deleted = 0
+        <if test="dto.projectStage != null ">
+            and dpi.project_stage = #{dto.projectStage}
+        </if>
+        <if test="dto.projectType != null ">
+            and dpi.project_type = #{dto.projectType}
+        </if>
+
+    </select>
 
 </mapper>

+ 9 - 0
src/main/java/org/springblade/modules/project/service/impl/ProjectInfoServiceImpl.java

@@ -722,6 +722,9 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
         vo.setTotal2(0);
         vo.setTotal3(0);
         List<DataProjectStatVO2> vo2s = baseMapper.dataProjectStat(dto);
+        //有遗漏有比如计划年份不在所选年份里,但是该项目在所选的年份有投资,也需要加上 2025-05-09 王博念
+        List<DataProjectStatVO2> vo3s=baseMapper.dataProjectStat1(dto);
+        vo2s.addAll(vo3s);
         if (vo2s.size() == 0){
             return vo;
         }
@@ -822,6 +825,9 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
         if (vo2s.size() == 0){
             return vo;
         }
+        //有遗漏有比如计划年份不在所选年份里,但是该项目在所选的年份有投资,也需要加上 2025-05-09 王博念
+        List<DataInvestStatVO2> vo3s = baseMapper.dataInvestStat1(dto);
+        vo2s.addAll(vo3s);
         List<ProjectInvestPlan> planList = investPlanService.list(new LambdaQueryWrapper<ProjectInvestPlan>()
                 .eq(ProjectInvestPlan::getPlanYear, year)
                 .in(ProjectInvestPlan::getProjectId, vo2s.stream().map(l -> l.getId()).collect(Collectors.toList())));
@@ -1017,6 +1023,9 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
         vo.setFourFinished(0);
         vo.setFourUnFinished(0);
         List<DataScheduleStatVO2> vo2s = baseMapper.dataScheduleStat(dto);
+        //有遗漏有比如计划年份不在所选年份里,但是该项目在所选的年份有投资,也需要加上 2025-05-09 王博念
+        List<DataScheduleStatVO2> vo3s = baseMapper.dataScheduleStat1(dto);
+        vo2s.addAll(vo3s);
         if (vo2s.size() == 0){
             return vo;
         }