Bladeren bron

联调修改接口

qianxb 2 jaren geleden
bovenliggende
commit
f5d5ab09d6

+ 3 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/DepartmentMonthPlanVO.java

@@ -30,4 +30,7 @@ public class DepartmentMonthPlanVO extends DepartmentMonthPlan {
     @ApiModelProperty(value = "未完成计划")
     private Integer beginPlanTotal;
 
+    @ApiModelProperty(value = "计划制定人名称")
+    private String planDesignerName;
+
 }

+ 3 - 3
blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.xml

@@ -56,11 +56,11 @@
     </select>
     <select id="getAllBudgetSubject" resultType="org.springblade.control.vo.DictInfoVO">
         select *
-        from c_dict_info di WHERE di.`type` = 1 AND di.parent_id = 0 ORDER BY sort
+        from c_dict_info di WHERE di.`type` = 1 AND di.parent_id = 0 and di.is_deleted = 0 ORDER BY sort
     </select>
     <select id="getAllSecondSubject" resultType="org.springblade.control.vo.DictInfoVO">
         select *
-        from c_dict_info di WHERE di.`type` = 1 AND di.parent_id > 0
+        from c_dict_info di WHERE di.`type` = 1 AND di.is_deleted = 0 and di.parent_id > 0
     </select>
     <select id="getThisYearBudget" resultType="org.springblade.control.entity.AnnualBudget">
         select   <include refid="budget_column" />
@@ -74,7 +74,7 @@
     <select id="yearList" resultType="java.lang.Integer">
         select DATE_FORMAT(start_time,'%Y')
         from c_control_project_info cpi
-        WHERE is_deleted = 0 order by start_time
+        WHERE is_deleted = 0 and start_time is not null order by start_time
             limit 1
     </select>
 

+ 1 - 1
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.xml

@@ -34,7 +34,7 @@
         select * from c_contract_returned_info
         WHERE is_deleted = 0
         <if test="date != null and date != ''">
-            and DATE_FORMAT(practical_returned_time ,'%Y-%m') = #{date}
+            and DATE_FORMAT(practical_returned_time ,'%Y') = #{date}
         </if>
         and practical_returned_money is not null
     </select>

+ 2 - 1
blade-service/blade-control/src/main/java/org/springblade/control/mapper/DepartmentMonthPlanMapper.xml

@@ -24,7 +24,8 @@
                 (select COUNT(1)  from c_project_cost_budget pcb WHERE pcb.cost_type = dmp.department_type
                                                                    and pcb.task_approve = 0
                     and (pcb.plan_start_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date
-                    or pcb.plan_end_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date)) as 'beginPlanTotal'
+                    or pcb.plan_end_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date)) as 'beginPlanTotal',
+                (select bu.name from blade_user bu WHERE bu.id = dmp.plan_designer) as 'planDesignerName'
         FROM c_department_month_plan dmp
         order by dmp.plan_start_date desc
     </select>

+ 26 - 6
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.xml

@@ -94,28 +94,48 @@
     <select id="getUserALLPlan" resultType="org.springblade.control.vo.ProjectCostBudgetVO3">
         SELECT
             (select COUNT(1) FROM c_project_cost_budget pcb WHERE pcb.task_user = #{user}) as 'totalPlan',
-            (select COUNT(1) FROM c_project_cost_budget pcb WHERE pcb.task_user = #{user} and pcb.status = 4 ) as 'finishedPlan'
+            (select COUNT(1) FROM c_project_cost_budget pcb WHERE pcb.task_user = #{user} and pcb.status = 4 ) as 'finishedPlan',
+            (SELECT COUNT(1) from c_project_cost_budget pcb
+             WHERE pcb.task_user = #{user} and  date_add(NOW() , interval '3' DAY) > plan_end_time and  pcb.status in (2,3)) as 'riskPlan',
+            ( SELECT SUM(a) from (
+                SELECT COUNT(1) as a from c_project_cost_budget pcb
+                    WHERE pcb.task_user = #{user} and  NOW() > plan_end_time and  pcb.status in (2,3)
+                UNION ALL
+                SELECT COUNT(1) as a from c_project_cost_budget pcb
+                    WHERE pcb.task_user = #{user} and  practical_finish_time > plan_end_time and  pcb.task_approve = 1) xc) as 'postponePlan'
+
     </select>
     <select id="MonthPlanOverview" resultType="org.springblade.control.vo.ProjectCostBudgetVO3">
         select
             (select count(1) from c_project_cost_budget pcb WHERE pcb.task_user = #{user} and pcb.is_deleted = 0
                 and (pcb.plan_start_time BETWEEN #{startDate} AND #{endDate}
                 or pcb.plan_end_time BETWEEN #{startDate} AND #{endDate})) as 'totalPlan',
-            (select count(1) from c_project_cost_budget pcb WHERE pcb.task_user = #{user} and pcb.is_deleted = 0 and pcb.status in (1,2,3)
+            (select count(1) from c_project_cost_budget pcb WHERE pcb.task_user = #{user} and pcb.is_deleted = 0 and pcb.status in (2,3)
+                and (pcb.plan_start_time BETWEEN #{startDate} AND #{endDate}
+                or pcb.plan_end_time BETWEEN #{startDate} AND #{endDate})) as 'unfinishedPlan',
+            (select count(1) from c_project_cost_budget pcb WHERE pcb.task_user = #{user} and pcb.is_deleted = 0 and pcb.status in (3)
                 and (pcb.plan_start_time BETWEEN #{startDate} AND #{endDate}
-                or pcb.plan_end_time BETWEEN #{startDate} AND #{endDate})) as 'unfinishedPlan'
+                or pcb.plan_end_time BETWEEN #{startDate} AND #{endDate})) as 'cancelPlan',
+            ( SELECT SUM(a) from (
+                     SELECT COUNT(1) as a from c_project_cost_budget pcb
+                     WHERE pcb.task_user = #{user} and  NOW() > plan_end_time and  pcb.status in (2,3)
+                     and (pcb.plan_start_time BETWEEN #{startDate} AND #{endDate} or pcb.plan_end_time BETWEEN #{startDate} AND #{endDate})
+                     UNION ALL
+                     SELECT COUNT(1) as a from c_project_cost_budget pcb
+                     WHERE pcb.task_user = #{user} and  practical_finish_time > plan_end_time and  pcb.task_approve = 1
+                     and (pcb.plan_start_time BETWEEN #{startDate} AND #{endDate} or pcb.plan_end_time BETWEEN #{startDate} AND #{endDate})) xc) as 'postponePlan'
 
     </select>
     <select id="postponePlan" resultType="org.springblade.control.vo.ProjectCostBudgetVO3">
         select pcb.id,pcb.plan_task_desc,pcb.plan_end_time,
                (select cpi.name from c_control_project_info cpi WHERE cpi.id = pcb.project_id) as "projectName"
-        from c_project_cost_budget pcb where pcb.task_user = #{user} and pcb.is_deleted = 0 and pcb.plan_end_time &lt;= NOW() and pcb.status in (1,2,3)
+        from c_project_cost_budget pcb where pcb.task_user = #{user} and pcb.is_deleted = 0 and date_add(NOW() , interval '3' DAY) > pcb.plan_end_time and pcb.status in (2,3)
     </select>
     <select id="MonthOfYearPlanOverview" resultType="org.springblade.control.entity.ProjectCostBudget">
         select pcb.*
         from c_project_cost_budget pcb
         where pcb.task_user = #{user} and pcb.is_deleted = 0
-            and DATE_FORMAT(pcb.plan_start_time,'%Y') = #{year} or DATE_FORMAT(pcb.plan_end_time,'%Y') = #{year}
+            and (DATE_FORMAT(pcb.plan_start_time,'%Y') = #{year} or DATE_FORMAT(pcb.plan_end_time,'%Y') = #{year})
     </select>
     <select id="getPostMoney" resultType="java.lang.Integer">
         select dict_value
@@ -188,7 +208,7 @@
         from c_project_cost_budget pcb
         WHERE pcb.is_deleted = 0 and pcb.task_approve = 1
         <if test="date != null and date != ''">
-            and DATE_FORMAT(pcb.plan_start_time ,'%Y-%m') = #{date}
+            and DATE_FORMAT(pcb.plan_start_time ,'%Y') = #{date}
         </if>
     </select>
     <select id="getPlanByDeptOrUserOrTime" resultType="org.springblade.control.entity.ProjectCostBudget">

+ 1 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IProjectInfoService.java

@@ -42,4 +42,5 @@ public interface IProjectInfoService extends BaseService<ControlProjectInfo> {
     List<ControlProjectInfo> listByYear(int year);
 
     List<User> getImplementUser();
+
 }

+ 33 - 11
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -339,13 +339,27 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         if (vo3.getAnnualContractTarget() == null || vo3.getAnnualContractTarget().compareTo(BigDecimal.ZERO) == 0 || vo3.getYearReturned().compareTo(BigDecimal.ZERO) == 0){
             vo3.setContractSchedule(0);
         }else {
-            vo3.setContractSchedule(vo3.getYearReturned().divide(vo3.getAnnualContractTarget(),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue());
+            int value = vo3.getYearReturned().divide(vo3.getAnnualContractTarget(), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue();
+            if (value < 0){
+                value = 0;
+            }
+            if (value > 100){
+                value = 100;
+            }
+            vo3.setContractSchedule(value);
         }
         //利润进度统计
         if (vo3.getAnnualProfitTarget() == null || vo3.getAnnualProfitTarget().compareTo(BigDecimal.ZERO) == 0 || vo3.getYearProfit().compareTo(BigDecimal.ZERO) == 0){
             vo3.setProfitSchedule(0);
         }else {
-            vo3.setProfitSchedule(vo3.getYearProfit().divide(vo3.getAnnualProfitTarget(),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue());
+            int value = vo3.getYearProfit().divide(vo3.getAnnualProfitTarget(), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue();
+            if (value < 0){
+                value = 0;
+            }
+            if (value > 100){
+                value = 100;
+            }
+            vo3.setProfitSchedule(value);
         }
         return vo3;
     }
@@ -458,6 +472,8 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         }
         //获取当月所有计划,和计划工资
         List<ProjectCostBudgetVO2> planByMonth = budgetService.getPlanByMonth(date);
+        planByMonth = planByMonth.stream().filter(l->l.getPlanCountMoney() != null).collect(Collectors.toList());
+        planByMonth = planByMonth.stream().filter(l->new BigDecimal(0).compareTo(l.getPlanCountMoney()) != 0).collect(Collectors.toList());
         if (planByMonth != null && planByMonth.size() > 0) {
             List<DeptMonthPlanRatioVO> vos = new ArrayList<>();
             //月计划包含的项目
@@ -500,12 +516,18 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
                 //设置投入比
                 if (new BigDecimal(0).compareTo(businessCount) != 0){
                     vo.setBusinessRatio(business.divide(businessCount, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue() + "%");
+                }else {
+                    vo.setBusinessRatio("0%");
                 }
                 if (new BigDecimal(0).compareTo(devCount) != 0) {
                     vo.setDevRatio(dev.divide(devCount, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue() + "%");
+                }else {
+                    vo.setDevRatio("0%");
                 }
                 if (new BigDecimal(0).compareTo(maintainCount) != 0) {
                     vo.setMaintainRatio(maintain.divide(maintainCount, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue() + "%");
+                }else {
+                    vo.setMaintainRatio("0%");
                 }
                 //插入结果集
                 vos.add(vo);
@@ -571,17 +593,17 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
      */
     @Override
     public List<ProjectIncomeCostRatioVO> portalProjectCostRatio(String date) {
-        if ("汇总所有".equals(date)){
-            date = "";
-        }
+//        if ("汇总所有".equals(date)){
+//            date = "";
+//        }
         //获取项目列表
-        List<ControlProjectInfo> list = projectInfoService.list();
+        List<ControlProjectInfo> list = projectInfoService.listByYear(Integer.parseInt(date.substring(0,4)));
         if (list == null || list.size() <= 0){
             return null;
         }
         List<ProjectIncomeCostRatioVO> vos = new ArrayList<>();
-        //按获取闭环任务,根据项目分组
-        List<ProjectCostBudget> costByMonth = budgetService.getPlanPracticalCostByMonth(date);
+        //按获取闭环任务,根据项目分组
+        List<ProjectCostBudget> costByMonth = budgetService.getPlanPracticalCostByMonth(date.substring(0,4));
         if (costByMonth == null || costByMonth.size() <= 0){
             //没有闭环任务,为每个项目设置为0
             for (ControlProjectInfo info : list) {
@@ -617,13 +639,13 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
             date = "";
         }
         //获取项目列表
-        List<ControlProjectInfo> list = projectInfoService.list();
+        List<ControlProjectInfo> list = projectInfoService.listByYear(Integer.parseInt(date.substring(0,4)));
         if (list == null || list.size() <= 0){
             return null;
         }
         //获取所有回款,根据项目分组
         List<ProjectIncomeCostRatioVO> vos = new ArrayList<>();
-        List<ContractReturnedInfo> returnedByMonth = returnedInfoService.getProjectReturnedByMonth(date);
+        List<ContractReturnedInfo> returnedByMonth = returnedInfoService.getProjectReturnedByMonth(date.substring(0,4));
         if (returnedByMonth == null || returnedByMonth.size() <= 0){
             //没有闭环任务,为每个项目设置为0
             for (ControlProjectInfo info : list) {
@@ -647,7 +669,7 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
                     big = big.add(returnedInfo.getPracticalReturnedMoney());
                 }
             }
-            vo.setProjectCost(big.intValue());
+            vo.setProjectIncome(big.intValue());
             vos.add(vo);
         }
         return vos;

+ 3 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/DepartmentMonthPlanServiceImpl.java

@@ -19,6 +19,7 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -67,6 +68,8 @@ public class DepartmentMonthPlanServiceImpl extends BaseServiceImpl<DepartmentMo
         //获取部门名称
         String departmentName = baseMapper.getDepartmentName(plan.getDepartmentType());
         //新增部门月计划,并且设置名称和起止日期,制定人
+        Long userId = SecureUtil.getUserId();
+        plan.setPlanDesigner(userId);
         String planDate = plan.getPlanDate();
         String[] date = planDate.split("-");
         plan.setPlanName(date[0]+"年"+date[1]+"月"+departmentName+"预算计划");

+ 4 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectInfoServiceImpl.java

@@ -206,6 +206,10 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
         return null;
     }
 
+    /**
+     * 获取当年的项目
+     * @return
+     */
     @Override
     public List<ControlProjectInfo> listByYear(int year) {
         return baseMapper.listByYear(year);