Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

liuyc 2 лет назад
Родитель
Сommit
feae0b2f59
29 измененных файлов с 725 добавлено и 4 удалено
  1. 55 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/AnnualBudget.java
  2. 68 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/AnnualBudgetDisburse.java
  3. 56 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/AnnualBudgetIncome.java
  4. 54 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/DepartmentMonthPlan.java
  5. 24 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetController.java
  6. 19 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetDisburseController.java
  7. 20 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetIncomeController.java
  8. 45 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/DepartmentMonthPlanController.java
  9. 14 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/ProjectCostBudgetController.java
  10. 14 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetDisburseMapper.java
  11. 7 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetDisburseMapper.xml
  12. 14 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetIncomeMapper.java
  13. 7 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetIncomeMapper.xml
  14. 18 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.java
  15. 7 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.xml
  16. 25 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/DepartmentMonthPlanMapper.java
  17. 12 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/DepartmentMonthPlanMapper.xml
  18. 3 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.java
  19. 9 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.xml
  20. 15 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetDisburseService.java
  21. 15 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetIncomeService.java
  22. 19 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetService.java
  23. 23 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IDepartmentMonthPlanService.java
  24. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IProjectCostBudgetService.java
  25. 23 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetDisburseServiceImpl.java
  26. 23 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetIncomeServiceImpl.java
  27. 31 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java
  28. 74 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/DepartmentMonthPlanServiceImpl.java
  29. 29 4
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

+ 55 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/AnnualBudget.java

@@ -0,0 +1,55 @@
+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.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/13 13:52
+ **/
+@Data
+@TableName("c_annual_budget")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "年度经营预算表", description = "年度经营预算表")
+public class AnnualBudget extends BaseEntity {
+
+    @ApiModelProperty(value = "预算名称")
+    private String name;
+
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @ApiModelProperty(value = "预算开始时间")
+    private LocalDate budgetStartDate;
+
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @ApiModelProperty(value = "预算结束时间")
+    private LocalDate budgetEndDate;
+
+    @ApiModelProperty(value = "总预算")
+    private BigDecimal totalBudget;
+
+    @ApiModelProperty(value = "年度合同指标")
+    private BigDecimal annualContractTarget;
+
+    @ApiModelProperty(value = "年度利润指标")
+    private BigDecimal annualProfitTarget;
+}

+ 68 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/AnnualBudgetDisburse.java

@@ -0,0 +1,68 @@
+package org.springblade.control.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.math.BigDecimal;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/13 13:52
+ **/
+@Data
+@TableName("c_annual_budget_disburse")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "年度预算支出表", description = "年度预算支出表")
+public class AnnualBudgetDisburse extends BaseEntity {
+
+    @ApiModelProperty(value = "年度预算id")
+    private Long annualBudgetId;
+
+    @ApiModelProperty(value = "预算科目")
+    private Integer budgetSubject;
+
+    @ApiModelProperty(value = "二级科目")
+    private Integer secondSubject;
+
+    @ApiModelProperty(value = "一月")
+    private BigDecimal january;
+
+    @ApiModelProperty(value = "二月")
+    private BigDecimal february;
+
+    @ApiModelProperty(value = "三月")
+    private BigDecimal march;
+
+    @ApiModelProperty(value = "四月")
+    private BigDecimal april;
+
+    @ApiModelProperty(value = "五月")
+    private BigDecimal may;
+
+    @ApiModelProperty(value = "六月")
+    private BigDecimal june;
+
+    @ApiModelProperty(value = "七月")
+    private BigDecimal july;
+
+    @ApiModelProperty(value = "八月")
+    private BigDecimal august;
+
+    @ApiModelProperty(value = "九月")
+    private BigDecimal september;
+
+    @ApiModelProperty(value = "十月")
+    private BigDecimal october;
+
+    @ApiModelProperty(value = "十一月")
+    private BigDecimal november;
+
+    @ApiModelProperty(value = "十二月")
+    private BigDecimal december;
+
+}

+ 56 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/AnnualBudgetIncome.java

@@ -0,0 +1,56 @@
+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.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/13 13:52
+ **/
+@Data
+@TableName("c_annual_budget_income")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "年度预算收入表", description = "年度预算收入表")
+public class AnnualBudgetIncome extends BaseEntity {
+
+    @ApiModelProperty(value = "年度预算id")
+    private Long annualBudgetId;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "收入类型")
+    private Integer incomeType;
+
+    @ApiModelProperty(value = "项目类型")
+    private Integer projectType;
+
+    @ApiModelProperty(value = "合同类型")
+    private Integer contractType;
+
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @ApiModelProperty(value = "预计签单时间")
+    private LocalDate predictSignDate;
+
+    @ApiModelProperty(value = "预计新签合同额")
+    private BigDecimal predictContractMoney;
+
+    @ApiModelProperty(value = "预计本年度回款")
+    private BigDecimal predictAnnualReturned;
+
+}

+ 54 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/DepartmentMonthPlan.java

@@ -0,0 +1,54 @@
+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/12 15:42
+ **/
+@Data
+@TableName("c_department_month_plan")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "部门月计划表", description = "部门月计划表")
+public class DepartmentMonthPlan extends BaseEntity {
+
+    @ApiModelProperty(value = "部门类型")
+    private Integer departmentType;
+
+    @ApiModelProperty(value = "计划日期")
+    private String planDate;
+
+    @ApiModelProperty(value = "计划名称")
+    private String planName;
+
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @ApiModelProperty(value = "计划开始日期")
+    private LocalDate planStartDate;
+
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd"
+    )
+    @ApiModelProperty(value = "计划结束日期")
+    private LocalDate planEndDate;
+
+    @ApiModelProperty(value = "计划制定人")
+    private Long planDesigner;
+}

+ 24 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetController.java

@@ -0,0 +1,24 @@
+package org.springblade.control.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.service.IDepartmentMonthPlanService;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/12 15:45
+ **/
+@RestController
+@AllArgsConstructor
+@RequestMapping("/annualBudget")
+@Api(value = "年度经营预算接口", tags = "年度经营预算接口")
+public class AnnualBudgetController {
+
+
+}

+ 19 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetDisburseController.java

@@ -0,0 +1,19 @@
+package org.springblade.control.controller;
+
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/12 15:45
+ **/
+@RestController
+@AllArgsConstructor
+@RequestMapping("/annualBudgetDisburse")
+@Api(value = "年度预算支出接口", tags = "年度预算支出接口")
+public class AnnualBudgetDisburseController {
+
+}

+ 20 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetIncomeController.java

@@ -0,0 +1,20 @@
+package org.springblade.control.controller;
+
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/12 15:45
+ **/
+@RestController
+@AllArgsConstructor
+@RequestMapping("/annualBudgetIncome")
+@Api(value = "年度预算收入接口", tags = "年度预算收入接口")
+public class AnnualBudgetIncomeController {
+
+
+}

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

@@ -0,0 +1,45 @@
+package org.springblade.control.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.entity.ProjectReimbursement;
+import org.springblade.control.service.IDepartmentMonthPlanService;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/12 15:45
+ **/
+@RestController
+@AllArgsConstructor
+@RequestMapping("/departmentMonthPlan")
+@Api(value = "部门月度计划接口", tags = "部门月度计划接口")
+public class DepartmentMonthPlanController {
+
+    private final IDepartmentMonthPlanService planService;
+    /**
+     * 新增部门月计划
+     */
+    @PostMapping("/addDepartmentPlan")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "新增部门月计划")
+    public R addDepartmentPlan(@RequestBody DepartmentMonthPlan plan) {
+        return R.data(planService.addDepartmentPlan(plan));
+    }
+
+    /**
+     * 获取前5个部门列表
+     */
+    @GetMapping("/getDepartmentDict")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "获取部门列表")
+    public R getDepartmentDict() {
+        planService.getDepartmentDict();
+        return R.success("新增成功");
+    }
+}

+ 14 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/ProjectCostBudgetController.java

@@ -68,5 +68,19 @@ public class ProjectCostBudgetController {
         return R.success("保存成功");
     }
 
+    /**
+     * 获取部门月计划
+     */
+    @GetMapping("/getDepartmentPlan")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "获取部门月计划")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "departmentType", value = "部门类型", required = true),
+            @ApiImplicitParam(name = "planDate", value = "查询月份", required = true),
+    })
+    public R getDepartmentPlan(Integer departmentType,String planDate){
+        return R.data(budgetService.getDepartmentPlan(departmentType,planDate));
+    }
+
 
 }

+ 14 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetDisburseMapper.java

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

+ 7 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetDisburseMapper.xml

@@ -0,0 +1,7 @@
+<?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.AnnualBudgetDisburseMapper">
+
+
+
+</mapper>

+ 14 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetIncomeMapper.java

@@ -0,0 +1,14 @@
+package org.springblade.control.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.control.entity.AnnualBudget;
+import org.springblade.control.entity.AnnualBudgetIncome;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 9:38
+ **/
+public interface AnnualBudgetIncomeMapper extends BaseMapper<AnnualBudgetIncome> {
+
+}

+ 7 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetIncomeMapper.xml

@@ -0,0 +1,7 @@
+<?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.AnnualBudgetIncomeMapper">
+
+
+
+</mapper>

+ 18 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.java

@@ -0,0 +1,18 @@
+package org.springblade.control.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.control.entity.AnnualBudget;
+import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.entity.DictInfo;
+
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 9:38
+ **/
+public interface AnnualBudgetMapper extends BaseMapper<AnnualBudget> {
+
+}

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

@@ -0,0 +1,7 @@
+<?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.AnnualBudgetMapper">
+
+
+
+</mapper>

+ 25 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/DepartmentMonthPlanMapper.java

@@ -0,0 +1,25 @@
+package org.springblade.control.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.control.dto.ControlProjectInfoDTO;
+import org.springblade.control.entity.ControlProjectInfo;
+import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.entity.DictInfo;
+import org.springblade.control.vo.ControlProjectInfoVO;
+
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 9:38
+ **/
+public interface DepartmentMonthPlanMapper extends BaseMapper<DepartmentMonthPlan> {
+
+
+    List<DictInfo> getDepartmentDict();
+
+    String getDepartmentName(@Param("departmentType") Integer departmentType);
+}

+ 12 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/DepartmentMonthPlanMapper.xml

@@ -0,0 +1,12 @@
+<?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.DepartmentMonthPlanMapper">
+
+
+    <select id="getDepartmentDict" resultType="org.springblade.control.entity.DictInfo">
+        select * from c_dict_info WHERE code = 'department_type' order by sort LIMIT 5
+    </select>
+    <select id="getDepartmentName" resultType="java.lang.String">
+        select dict_name from c_dict_info WHERE code = 'department_type' and dict_value = #{departmentType}
+    </select>
+</mapper>

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

@@ -13,6 +13,7 @@ import org.springblade.control.vo.ProjectCostBudgetVO;
 import org.springblade.control.vo.ProjectCostBudgetVO2;
 import org.springblade.core.mp.support.Query;
 
+import java.time.LocalDate;
 import java.util.List;
 import java.util.Map;
 
@@ -37,4 +38,6 @@ public interface ProjectCostBudgetMapper extends BaseMapper<ProjectCostBudget> {
     List<ProjectCostBudget> getAllChildrenPlan(@Param("id") Long id);
 
     void removeChildrenPlan(@Param("projectId") Long projectId);
+
+    List<ProjectCostBudgetVO> getDepartmentPlan(@Param("type") Integer type,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate);
 }

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

@@ -65,6 +65,15 @@
     <select id="getAllChildrenPlan" resultType="org.springblade.control.entity.ProjectCostBudget">
         SELECT * FROM c_project_cost_budget  WHERE project_id = #{id} AND parent_id is not null
     </select>
+    <select id="getDepartmentPlan" resultType="org.springblade.control.vo.ProjectCostBudgetVO">
+        select pcb.*,
+               (select cpi.name from c_control_project_info cpi WHERE cpi.id = pcb.project_id) as projectName,
+               (select cpp.name from c_project_process cpp WHERE cpp.id = pcb.project_process) as projectProcessValue
+        from c_project_cost_budget pcb
+        WHERE pcb.cost_type = #{type}
+          and (pcb.plan_start_date BETWEEN #{startDate} AND #{endDate}
+            or pcb.plan_end_date BETWEEN #{startDate} AND #{endDate})
+    </select>
 
 
 </mapper>

+ 15 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetDisburseService.java

@@ -0,0 +1,15 @@
+package org.springblade.control.service;
+
+import org.springblade.control.entity.AnnualBudgetDisburse;
+import org.springblade.control.entity.AnnualBudgetIncome;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+public interface IAnnualBudgetDisburseService extends BaseService<AnnualBudgetDisburse> {
+
+
+}

+ 15 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetIncomeService.java

@@ -0,0 +1,15 @@
+package org.springblade.control.service;
+
+import org.springblade.control.entity.AnnualBudget;
+import org.springblade.control.entity.AnnualBudgetIncome;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+public interface IAnnualBudgetIncomeService extends BaseService<AnnualBudgetIncome> {
+
+
+}

+ 19 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetService.java

@@ -0,0 +1,19 @@
+package org.springblade.control.service;
+
+import org.springblade.control.entity.AnnualBudget;
+import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.entity.DictInfo;
+import org.springblade.control.vo.ProjectCostBudgetVO;
+import org.springblade.core.mp.base.BaseService;
+
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+public interface IAnnualBudgetService extends BaseService<AnnualBudget> {
+
+
+}

+ 23 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IDepartmentMonthPlanService.java

@@ -0,0 +1,23 @@
+package org.springblade.control.service;
+
+import org.springblade.control.dto.ControlProjectInfoDTO;
+import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.entity.DictInfo;
+import org.springblade.control.entity.ProjectProcess;
+import org.springblade.control.vo.ProjectCostBudgetVO;
+import org.springblade.control.vo.ProjectProcessVO;
+import org.springblade.core.mp.base.BaseService;
+
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+public interface IDepartmentMonthPlanService extends BaseService<DepartmentMonthPlan> {
+
+    List<ProjectCostBudgetVO> addDepartmentPlan(DepartmentMonthPlan plan);
+
+    List<DictInfo> getDepartmentDict();
+}

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

@@ -36,4 +36,6 @@ public interface IProjectCostBudgetService extends BaseService<ProjectCostBudget
     ProjectCostBudgetVO getPlanByProjectId(Long id);
     //修改项目计划
     void updatePlan(ProjectCostBudgetVO vo);
+    //根据部门类型和日期查询计划
+    List<ProjectCostBudgetVO> getDepartmentPlan(Integer type,String date);
 }

+ 23 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetDisburseServiceImpl.java

@@ -0,0 +1,23 @@
+package org.springblade.control.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.control.entity.AnnualBudgetDisburse;
+import org.springblade.control.entity.AnnualBudgetIncome;
+import org.springblade.control.mapper.AnnualBudgetDisburseMapper;
+import org.springblade.control.mapper.AnnualBudgetIncomeMapper;
+import org.springblade.control.service.IAnnualBudgetDisburseService;
+import org.springblade.control.service.IAnnualBudgetIncomeService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+@Service
+@AllArgsConstructor
+public class AnnualBudgetDisburseServiceImpl extends BaseServiceImpl<AnnualBudgetDisburseMapper, AnnualBudgetDisburse> implements IAnnualBudgetDisburseService {
+
+
+}

+ 23 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetIncomeServiceImpl.java

@@ -0,0 +1,23 @@
+package org.springblade.control.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.control.entity.AnnualBudget;
+import org.springblade.control.entity.AnnualBudgetIncome;
+import org.springblade.control.mapper.AnnualBudgetIncomeMapper;
+import org.springblade.control.mapper.AnnualBudgetMapper;
+import org.springblade.control.service.IAnnualBudgetIncomeService;
+import org.springblade.control.service.IAnnualBudgetService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+@Service
+@AllArgsConstructor
+public class AnnualBudgetIncomeServiceImpl extends BaseServiceImpl<AnnualBudgetIncomeMapper, AnnualBudgetIncome> implements IAnnualBudgetIncomeService {
+
+
+}

+ 31 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -0,0 +1,31 @@
+package org.springblade.control.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.AllArgsConstructor;
+import org.springblade.control.entity.AnnualBudget;
+import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.entity.DictInfo;
+import org.springblade.control.mapper.AnnualBudgetMapper;
+import org.springblade.control.mapper.DepartmentMonthPlanMapper;
+import org.springblade.control.service.IAnnualBudgetService;
+import org.springblade.control.service.IDepartmentMonthPlanService;
+import org.springblade.control.service.IProjectCostBudgetService;
+import org.springblade.control.vo.ProjectCostBudgetVO;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+@Service
+@AllArgsConstructor
+public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper, AnnualBudget> implements IAnnualBudgetService {
+
+
+}

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

@@ -0,0 +1,74 @@
+package org.springblade.control.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.AllArgsConstructor;
+import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.control.dto.ControlProjectInfoDTO;
+import org.springblade.control.entity.DepartmentMonthPlan;
+import org.springblade.control.entity.DictInfo;
+import org.springblade.control.entity.ProjectProcess;
+import org.springblade.control.mapper.DepartmentMonthPlanMapper;
+import org.springblade.control.mapper.ProjectProcessMapper;
+import org.springblade.control.service.IDepartmentMonthPlanService;
+import org.springblade.control.service.IProjectCostBudgetService;
+import org.springblade.control.service.IProjectProcessService;
+import org.springblade.control.vo.ProjectCostBudgetVO;
+import org.springblade.control.vo.ProjectProcessVO;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+@Service
+@AllArgsConstructor
+public class DepartmentMonthPlanServiceImpl extends BaseServiceImpl<DepartmentMonthPlanMapper, DepartmentMonthPlan> implements IDepartmentMonthPlanService {
+
+    private final IProjectCostBudgetService budgetService;
+
+    /**
+     * 新增部门月计划
+     */
+    @Override
+    public List<ProjectCostBudgetVO> addDepartmentPlan(DepartmentMonthPlan plan) {
+        //判断数据库是否存在当前部门当前月数据
+        DepartmentMonthPlan one = this.getOne(new LambdaQueryWrapper<DepartmentMonthPlan>()
+                .eq(DepartmentMonthPlan::getDepartmentType, plan.getDepartmentType())
+                .eq(DepartmentMonthPlan::getPlanDate, plan.getPlanDate()));
+        if (one != null){
+            throw new ServiceException("新增失败,该部门该月份已存在计划");
+        }
+        //获取部门名称
+        String departmentName = baseMapper.getDepartmentName(plan.getDepartmentType());
+        //新增部门月计划,并且设置名称和起止日期,制定人
+        String planDate = plan.getPlanDate();
+        String[] date = planDate.split("-");
+        plan.setPlanName(date[0]+"年"+date[1]+"月"+departmentName+"预算计划");
+        this.save(plan);
+        //查询出部门当月的项目计划,返回
+        List<ProjectCostBudgetVO> voList = new ArrayList<>();
+        if (plan.getDepartmentType() != 5){
+            voList = budgetService.getDepartmentPlan(plan.getDepartmentType(),planDate);
+        }else {
+            voList.addAll(budgetService.getDepartmentPlan(5,planDate));
+            voList.addAll(budgetService.getDepartmentPlan(6,planDate));
+        }
+        return voList;
+    }
+
+    /**
+     * 获取部门列表,只要前5个
+     * @return
+     */
+    @Override
+    public List<DictInfo> getDepartmentDict() {
+        return baseMapper.getDepartmentDict();
+    }
+}

+ 29 - 4
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

@@ -27,10 +27,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.time.LocalDate;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -202,6 +200,9 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 for (ProjectCostBudget budget : vo2ChildrenList) {
                     budget.setProjectId(vo.getProjectId());
                     budget.setParentId(vo2.getId());
+                    budget.setCostType(vo2.getCostType());
+                    budget.setUnitType(vo2.getUnitType());
+                    budget.setProjectProcess(vo2.getProjectProcess());
                 }
                 childrenList.addAll(vo2ChildrenList);
             }
@@ -218,6 +219,30 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
         this.updateBatchById(parentList);
     }
 
+    /**
+     * 根据部门类型和日期查询计划
+     * @param type
+     * @param date
+     * @return
+     */
+    @Override
+    public List<ProjectCostBudgetVO> getDepartmentPlan(Integer type, String date) {
+        //初始化时间段
+        String[] split = date.split("-");
+        int year = Integer.parseInt(split[0]);
+        int month = Integer.parseInt(split[1]);
+        LocalDate startDate;
+        LocalDate endDate;
+        startDate =  LocalDate.of(year,month,1);
+        if (Arrays.asList("1,3,5,7,8,10,12".split(",")).contains(month)){
+            endDate =  LocalDate.of(year,month,31);
+        }else {
+            endDate =  LocalDate.of(year,month,30);
+        }
+        List<ProjectCostBudgetVO> departmentPlan = baseMapper.getDepartmentPlan(type, startDate, endDate);
+        return departmentPlan;
+    }
+
     /**
      * 统计一行的几个总金额
      */