Переглянути джерело

门户普通权限所有接口

qianxb 2 роки тому
батько
коміт
aebcaeb6d3

+ 41 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/PlanInform.java

@@ -0,0 +1,41 @@
+package org.springblade.control.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/20 11:26
+ **/
+@Data
+@TableName("c_plan_inform")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "计划通知表", description = "计划通知表")
+public class PlanInform extends BaseEntity {
+    @ApiModelProperty(value = "通知内容")
+    private String informDetails;
+
+    @ApiModelProperty(value = "通知人")
+    private Long informUser;
+
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @ApiModelProperty(value = "通知时间")
+    private LocalDate informDate;
+
+
+
+}

+ 45 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/PlanInformController.java

@@ -0,0 +1,45 @@
+package org.springblade.control.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.control.dto.AnnualBudgetDTO;
+import org.springblade.control.dto.LogHistoryInfoDTO;
+import org.springblade.control.service.IAnnualBudgetService;
+import org.springblade.control.service.IPlanInformService;
+import org.springblade.control.vo.LogHistoryInfoVO;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/12 15:45
+ **/
+@RestController
+@AllArgsConstructor
+@RequestMapping("/planInform")
+@Api(value = "计划通知接口", tags = "计划通知接口")
+public class PlanInformController {
+   private final IPlanInformService informService;
+
+
+    /**
+     * 获取用户计划通知
+     * @return
+     */
+    @GetMapping("/getUserInform")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "获取用户计划通知", notes = "获取用户计划通知")
+    public R getUserInform() {
+        return R.data(informService.getUserInform());
+    }
+}

+ 18 - 6
blade-service/blade-control/src/main/java/org/springblade/control/controller/ProjectCostBudgetController.java

@@ -48,7 +48,7 @@ public class ProjectCostBudgetController {
      * 获取项目计划
      */
     @GetMapping("/getPlanByProjectId")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 2)
     @ApiOperation(value = "获取项目计划")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "项目id", required = true),
@@ -61,7 +61,7 @@ public class ProjectCostBudgetController {
      * 编辑项目计划
      */
     @PostMapping("/updatePlan")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 5)
     @ApiOperation(value = "获取项目计划")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "项目id", required = true),
@@ -75,7 +75,7 @@ public class ProjectCostBudgetController {
      * 根据起止日期获取工作日
      */
     @GetMapping("/getWorkDays")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 6)
     @ApiOperation(value = "根据起止日期获取工作日")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "startDate", value = "开始日期", required = true),
@@ -104,7 +104,7 @@ public class ProjectCostBudgetController {
      * 门户普通权限总计划统计
      */
     @GetMapping("/planOverview")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 7)
     @ApiOperation(value = "门户普通权限总计划统计")
     public R planOverview(){
         return R.data(budgetService.planOverview());
@@ -114,7 +114,7 @@ public class ProjectCostBudgetController {
      * 门户普通权限预警
      */
     @GetMapping("/postponePlan")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 8)
     @ApiOperation(value = "门户普通权限预警")
     public R postponePlan(){
         return R.data(budgetService.postponePlan());
@@ -124,9 +124,21 @@ public class ProjectCostBudgetController {
      * 门户普通权限单月计划统计
      */
     @GetMapping("/MonthPlanOverview")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 9)
     @ApiOperation(value = "门户普通权限单月计划统计")
     public R MonthPlanOverview(String planDate){
         return R.data(budgetService.MonthPlanOverview(planDate));
     }
+
+    /**
+     * 门户普通权限计划统计图
+     */
+    @GetMapping("/MonthOfYearPlanOverview")
+    @ApiOperationSupport(order = 10)
+    @ApiOperation(value = "门户普通权限计划统计图")
+    public R MonthOfYearPlanOverview(){
+        return R.data(budgetService.MonthOfYearPlanOverview());
+    }
+
+
 }

+ 16 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanInformMapper.java

@@ -0,0 +1,16 @@
+package org.springblade.control.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.control.entity.AnnualBudgetDisburse;
+import org.springblade.control.entity.PlanInform;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 9:38
+ **/
+public interface PlanInformMapper extends BaseMapper<PlanInform> {
+
+
+}

+ 5 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanInformMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.control.mapper.PlanInformMapper">
+
+</mapper>

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.java

@@ -45,4 +45,6 @@ public interface ProjectCostBudgetMapper extends BaseMapper<ProjectCostBudget> {
     ProjectCostBudgetVO3 MonthPlanOverview(@Param("user") Long user,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate);
 
     List<ProjectCostBudgetVO3> postponePlan(@Param("user") Long user);
+
+    List<ProjectCostBudget> MonthOfYearPlanOverview(@Param("user") Long user,@Param("year") int year);
 }

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

@@ -5,7 +5,6 @@
         update c_project_cost_budget set status = #{status} where id = #{id}
     </update>
 
-
     <delete id="removeOldBudget">
         delete from c_project_cost_budget
         where project_id = #{projectId} and approve = 0 and parent_id is null
@@ -90,10 +89,10 @@
     </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}
+            (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.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 (1,2,3)
                 and (pcb.plan_start_time BETWEEN #{startDate} AND #{endDate}
                 or pcb.plan_end_time BETWEEN #{startDate} AND #{endDate})) as 'unfinishedPlan'
 
@@ -103,6 +102,12 @@
                (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)
     </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}
+    </select>
 
 
 </mapper>

+ 17 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IPlanInformService.java

@@ -0,0 +1,17 @@
+package org.springblade.control.service;
+
+import org.springblade.control.entity.AnnualBudgetDisburse;
+import org.springblade.control.entity.PlanInform;
+import org.springblade.core.mp.base.BaseService;
+
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+public interface IPlanInformService extends BaseService<PlanInform> {
+
+    List<PlanInform> getUserInform();
+}

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IProjectCostBudgetService.java

@@ -50,4 +50,6 @@ public interface IProjectCostBudgetService extends BaseService<ProjectCostBudget
     ProjectCostBudgetVO3 MonthPlanOverview(String planDate);
 
     List<ProjectCostBudgetVO3> postponePlan();
+
+    List<Map<String,List<Integer>>> MonthOfYearPlanOverview();
 }

+ 9 - 4
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/DepartmentMonthPlanServiceImpl.java

@@ -11,10 +11,7 @@ import org.springblade.control.dto.ProjectCostBudgetDTO;
 import org.springblade.control.entity.*;
 import org.springblade.control.mapper.DepartmentMonthPlanMapper;
 import org.springblade.control.mapper.ProjectProcessMapper;
-import org.springblade.control.service.IDepartmentMonthPlanService;
-import org.springblade.control.service.IDepartmentPlanLogService;
-import org.springblade.control.service.IProjectCostBudgetService;
-import org.springblade.control.service.IProjectProcessService;
+import org.springblade.control.service.*;
 import org.springblade.control.vo.DepartmentMonthPlanVO;
 import org.springblade.control.vo.ProjectCostBudgetVO;
 import org.springblade.control.vo.ProjectProcessVO;
@@ -42,6 +39,8 @@ public class DepartmentMonthPlanServiceImpl extends BaseServiceImpl<DepartmentMo
 
     private final IDepartmentPlanLogService logService;
 
+    private final IPlanInformService planInformService;
+
 
     /**
      * 部门月计划分页
@@ -140,6 +139,12 @@ public class DepartmentMonthPlanServiceImpl extends BaseServiceImpl<DepartmentMo
                     logService.save(planLog);
                     //修改计划状态为进行中
                     budget.setStatus(2);
+                    //新增任务通知
+                    PlanInform inform = new PlanInform();
+                    inform.setInformDetails("《"+budget.getPlanTaskDesc()+"》您有一条新任务");
+                    inform.setInformUser(budget.getTaskUser());
+                    inform.setInformDate(LocalDate.now());
+                    planInformService.save(inform);
                 }
             }
             budgetService.updateBatchById(list);

+ 45 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanInformServiceImpl.java

@@ -0,0 +1,45 @@
+package org.springblade.control.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.AllArgsConstructor;
+import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.control.dto.ControlProjectInfoDTO;
+import org.springblade.control.entity.ControlContractInfo;
+import org.springblade.control.entity.ControlProjectInfo;
+import org.springblade.control.entity.DictInfo;
+import org.springblade.control.entity.PlanInform;
+import org.springblade.control.mapper.PlanInformMapper;
+import org.springblade.control.mapper.ProjectInfoMapper;
+import org.springblade.control.service.IContractInfoService;
+import org.springblade.control.service.IPlanInformService;
+import org.springblade.control.service.IProjectInfoService;
+import org.springblade.control.service.IProjectProcessService;
+import org.springblade.control.vo.ControlProjectInfoVO;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.mp.support.Query;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 9:43
+ **/
+@Service
+@AllArgsConstructor
+public class PlanInformServiceImpl extends BaseServiceImpl<PlanInformMapper, PlanInform> implements IPlanInformService {
+
+
+    @Override
+    public List<PlanInform> getUserInform() {
+        //没有用户
+        Long user = 1123598821738675201L;
+        return this.list(new LambdaQueryWrapper<PlanInform>().eq(PlanInform::getInformUser,user).orderByDesc(PlanInform::getInformDate).last("limit 5"));
+    }
+}

+ 52 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

@@ -323,6 +323,58 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
         return baseMapper.postponePlan(user);
     }
 
+
+    /**
+     * 门户普通权限计划统计图
+     */
+    @Override
+    public List<Map<String, List<Integer>>> MonthOfYearPlanOverview() {
+        //没有用户
+        Long user = 1123598821738675201L;
+        //获取今年
+        int year = LocalDate.now().getYear();
+        //获取今年所有的当前用户的计划
+        List<ProjectCostBudget> list = baseMapper.MonthOfYearPlanOverview(user, year);
+        if (list != null && list.size() > 0) {
+            List<Map<String, List<Integer>>> mapList = new ArrayList<>();
+            List<Integer> allPlan = new ArrayList<>();
+            List<Integer> finishedPlan = new ArrayList<>();
+            List<Integer> unfinishedPlan = new ArrayList<>();
+            for (int i = 1; i <= 12; i++) {
+                int total1 = 0;
+                int total2 = 0;
+                int total3 = 0;
+                for (ProjectCostBudget budget : list) {
+                    //先生成总计划数组
+                    if ((budget.getPlanStartTime().getMonthValue() == i && budget.getPlanStartTime().getYear() == year)
+                            || (budget.getPlanEndTime().getMonthValue() == i && budget.getPlanEndTime().getYear() == year)){
+                        total1++;
+                        if (budget.getStatus().equals(4)){
+                            total2++;
+                        }else {
+                            total3++;
+                        }
+                    }
+                }
+                allPlan.add(total1);
+                finishedPlan.add(total2);
+                unfinishedPlan.add(total3);
+            }
+            HashMap<String, List<Integer>> map1 = new HashMap<>();
+            map1.put("总计划",allPlan);
+            HashMap<String, List<Integer>> map2 = new HashMap<>();
+            map2.put("已完成",finishedPlan);
+            HashMap<String, List<Integer>> map3 = new HashMap<>();
+            map3.put("未完成",unfinishedPlan);
+            mapList.add(map1);
+            mapList.add(map2);
+            mapList.add(map3);
+            return mapList;
+        }else {
+            return null;
+        }
+    }
+
     /**
      * 统计一行的几个总金额
      */