Browse Source

计划关联回款

qianxb 2 years ago
parent
commit
eb3c278f5c
17 changed files with 249 additions and 18 deletions
  1. 32 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/PlanRelationReturned.java
  2. 2 1
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ContractReturnedInfoVO.java
  3. 8 4
      blade-service/blade-control/src/main/java/org/springblade/control/controller/ContractReturnedInfoController.java
  4. 53 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/PlanRelationReturnedController.java
  5. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.java
  6. 6 1
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/AnnualBudgetMapper.xml
  7. 4 1
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractInfoMapper.xml
  8. 1 1
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.java
  9. 7 2
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.xml
  10. 16 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanRelationReturnedMapper.java
  11. 9 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanRelationReturnedMapper.xml
  12. 5 1
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.xml
  13. 4 1
      blade-service/blade-control/src/main/java/org/springblade/control/service/IContractReturnedInfoService.java
  14. 18 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IPlanRelationReturnedService.java
  15. 19 4
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java
  16. 2 2
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractReturnedInfoServiceImpl.java
  17. 61 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanRelationReturnedServiceImpl.java

+ 32 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/PlanRelationReturned.java

@@ -0,0 +1,32 @@
+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_plan_relation_returned")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "年度经营预算表", description = "年度经营预算表")
+public class PlanRelationReturned extends BaseEntity {
+
+    @ApiModelProperty(value = "计划id")
+    private Long planId;
+
+    @ApiModelProperty(value = "回款id")
+    private Long returnedId;
+
+}

+ 2 - 1
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ContractReturnedInfoVO.java

@@ -28,5 +28,6 @@ public class ContractReturnedInfoVO extends ContractReturnedInfo {
     @ApiModelProperty(value = "是否超时,1没有,2超时")
     private String isTimeOut;
 
-
+    @ApiModelProperty(value = "是否关联,0未关联,1已关联")
+    private Integer isRelation;
 }

+ 8 - 4
blade-service/blade-control/src/main/java/org/springblade/control/controller/ContractReturnedInfoController.java

@@ -58,12 +58,16 @@ public class ContractReturnedInfoController {
     }
 
     /**
-     * 根据项目ID获取合同回款列表
+     * 计划获取合同回款列表关联
      */
     @GetMapping("/getListByProjectId")
     @ApiOperationSupport(order = 2)
-    @ApiOperation(value = "根据项目ID获取合同回款列表")
-    public R<List<ContractReturnedInfoVO>> getListByProjectId(Long projectId){
-        return R.data(contractReturnedInfoService.getListByProjectId(projectId));
+    @ApiOperation(value = "计划获取合同回款列表关联")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "planId", value = "计划id", required = true),
+            @ApiImplicitParam(name = "projectId", value = "项目id", required = true),
+    })
+    public R<List<ContractReturnedInfoVO>> getListByProjectId(Long projectId,Long planId){
+        return R.data(contractReturnedInfoService.getListByProjectId(projectId,planId));
     }
 }

+ 53 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/PlanRelationReturnedController.java

@@ -0,0 +1,53 @@
+package org.springblade.control.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+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.entity.AnnualBudget;
+import org.springblade.control.service.IAnnualBudgetService;
+import org.springblade.control.service.IPlanRelationReturnedService;
+import org.springblade.control.vo.*;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/12 15:45
+ **/
+@RestController
+@AllArgsConstructor
+@RequestMapping("/planRelationReturned")
+@Api(value = "计划关联回款接口", tags = "计划关联回款接口")
+public class PlanRelationReturnedController {
+
+    private final IPlanRelationReturnedService planRelationReturnedService;
+
+    /**
+     * 计划关联回款
+     */
+    @GetMapping("/relationPlanAndReturned")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "计划关联回款")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "planId", value = "计划id", required = true),
+            @ApiImplicitParam(name = "returnedId", value = "回款id", required = true),
+            @ApiImplicitParam(name = "type", value = "关联类型:0取消关联,1关联", required = true),
+    })
+    public R relationPlanAndReturned(Long returnedId,Long planId,Integer type){
+        String msg = planRelationReturnedService.relationPlanAndReturned(returnedId, planId, type);
+        return R.success(msg);
+    }
+
+}

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

@@ -35,4 +35,6 @@ public interface AnnualBudgetMapper extends BaseMapper<AnnualBudget> {
     List<DictInfoVO> getAllSecondSubject();
 
     AnnualBudget getThisYearBudget(@Param("year") int year);
+
+    List<AnnualBudget> getAllYearBudget(@Param("year") int year);
 }

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

@@ -51,7 +51,12 @@
     </select>
     <select id="getThisYearBudget" resultType="org.springblade.control.entity.AnnualBudget">
         select   <include refid="budget_column" />
-        from c_annual_budget where name like concat('%', #{year}, '%')
+        from c_annual_budget where is_deleted = 0
+            and name like concat('%', #{year}, '%')
+    </select>
+    <select id="getAllYearBudget" resultType="org.springblade.control.entity.AnnualBudget">
+        select   <include refid="budget_column" />
+        from c_annual_budget where is_deleted = 0
     </select>
 
 

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

@@ -33,6 +33,9 @@
     </select>
     <select id="getYearContractMoney" resultType="java.math.BigDecimal">
         SELECT SUM(contract_money)
-        from c_control_contract_info WHERE DATE_FORMAT(contract_sign_time ,'%Y') = #{year} and is_deleted = 0
+        from c_control_contract_info WHERE  is_deleted = 0
+        <if test="year != 0">
+            and DATE_FORMAT(contract_sign_time ,'%Y') = #{year}
+        </if>
     </select>
 </mapper>

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

@@ -23,7 +23,7 @@ public interface ContractReturnedInfoMapper extends BaseMapper<ContractReturnedI
 
     List<ContractReturnedInfoVO> getListByContractId(@Param("contractId") Long contractId);
 
-    List<ContractReturnedInfoVO> getListByProjectId(@Param("projectId") Long projectId);
+    List<ContractReturnedInfoVO> getListByProjectId(@Param("projectId") Long projectId,@Param("contractId") Long contractId);
 
     BigDecimal getYearReturned(@Param("year") int year);
 }

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

@@ -18,11 +18,16 @@
     <select id="getListByProjectId" resultType="org.springblade.control.vo.ContractReturnedInfoVO">
         select
             ri.*,
-            (select name from blade_user WHERE id = ri.reminder_user) as reminderUserName
+            (IFNULL((select COUNT(1)  from c_plan_relation_returned prr WHERE ri.id = prr.returned_id and prr.plan_id = #{contractId}),0)) as 'isRelation' ,
+                (select name from blade_user WHERE id = ri.reminder_user) as reminderUserName
         from c_contract_returned_info ri where ri.project_id = #{projectId}
     </select>
     <select id="getYearReturned" resultType="java.math.BigDecimal">
         SELECT SUM(practical_returned_money)
-        from c_contract_returned_info WHERE DATE_FORMAT(practical_returned_time,'%Y') = #{year}
+        from c_contract_returned_info
+        WHERE  is_deleted = 0
+        <if test="year != 0">
+            and DATE_FORMAT(practical_returned_time ,'%Y') = #{year}
+        </if>
     </select>
 </mapper>

+ 16 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/PlanRelationReturnedMapper.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.PlanRelationReturned;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 9:38
+ **/
+public interface PlanRelationReturnedMapper extends BaseMapper<PlanRelationReturned> {
+
+    void deleteRelation(@Param("returnedId") Long returnedId,@Param("planId") Long planId);
+}

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

@@ -0,0 +1,9 @@
+<?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.PlanRelationReturnedMapper">
+
+    <delete id="deleteRelation">
+        delete from c_plan_relation_returned
+        where plan_id = #{planId} and returned_id = #{returnedId}
+    </delete>
+</mapper>

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

@@ -132,7 +132,11 @@
     </select>
     <select id="getYearStaffDisburse" resultType="java.math.BigDecimal">
         SELECT SUM(actual_total_money)
-        from c_project_cost_budget WHERE DATE_FORMAT(plan_end_time,'%Y') = #{year} and task_approve = 1
+        from c_project_cost_budget
+        WHERE  is_deleted = 0 and task_approve = 1
+        <if test="year != 0">
+            and DATE_FORMAT(plan_end_time ,'%Y') = #{year}
+        </if>
     </select>
     <select id="getAllChildrenPlan" resultType="org.springblade.control.vo.ProjectCostBudgetVO2">
         SELECT pcb.plan_task_type,pcb.plan_task_desc,pcb.plan_target,pcb.plan_start_time,pcb.plan_end_time,pcb.plan_days,id,parent_id,

+ 4 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/IContractReturnedInfoService.java

@@ -29,7 +29,10 @@ public interface IContractReturnedInfoService extends BaseService<ContractReturn
 
     List<ContractReturnedInfoVO> getListByContractId(Long contractId);
 
-    List<ContractReturnedInfoVO> getListByProjectId(Long projectId);
+    /**
+     * 根据项目ID获取合同回款列表
+     */
+    List<ContractReturnedInfoVO> getListByProjectId(Long projectId,Long planId);
 
     //获取指定一年的回款
     BigDecimal getYearReturned(int year);

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

@@ -0,0 +1,18 @@
+package org.springblade.control.service;
+
+import org.springblade.control.entity.AnnualBudgetDisburse;
+import org.springblade.control.entity.PlanRelationReturned;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 13:41
+ **/
+public interface IPlanRelationReturnedService extends BaseService<PlanRelationReturned> {
+
+    /**
+     * 计划关联回款
+     */
+    String relationPlanAndReturned(Long returnedId, Long planId, Integer type);
+}

+ 19 - 4
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -343,7 +343,7 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
     }
 
     /**
-     * 门户-年度各项费用统计
+     * 门户-年度各项费用统计 ,如果全部就传0
      */
     @Override
     public Map<String, BigDecimal> portalAnnualCost(String year) {
@@ -359,9 +359,24 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         BigDecimal yearStaffDisburse = budgetService.getYearStaffDisburse(y);
         map.put("yearStaffDisburse",yearStaffDisburse);
         //总计划支出:年度预算总计划支出
-        AnnualBudget annualBudget = baseMapper.getThisYearBudget(y);
-        BigDecimal totalBudget = annualBudget.getTotalBudget();
-        map.put("totalBudget",totalBudget);
+        if (y == 0){
+            List<AnnualBudget> list = baseMapper.getAllYearBudget(y);
+            BigDecimal decimal = new BigDecimal(0);
+            for (AnnualBudget budget : list) {
+                if (budget.getTotalBudget() != null){
+                    decimal = decimal.add(budget.getTotalBudget());
+                }
+            }
+            map.put("totalBudget", decimal);
+        }else {
+            AnnualBudget annualBudget = baseMapper.getThisYearBudget(y);
+            if (annualBudget != null && annualBudget.getTotalBudget() != null) {
+                BigDecimal totalBudget = annualBudget.getTotalBudget();
+                map.put("totalBudget", totalBudget);
+            }else {
+                map.put("totalBudget", new BigDecimal(0));
+            }
+        }
         return map;
     }
 

+ 2 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractReturnedInfoServiceImpl.java

@@ -80,8 +80,8 @@ public class ContractReturnedInfoServiceImpl extends BaseServiceImpl<ContractRet
     }
 
     @Override
-    public List<ContractReturnedInfoVO> getListByProjectId(Long projectId) {
-        return baseMapper.getListByProjectId(projectId);
+    public List<ContractReturnedInfoVO> getListByProjectId(Long projectId,Long contractId) {
+        return baseMapper.getListByProjectId(projectId,contractId);
     }
 
     /**

+ 61 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanRelationReturnedServiceImpl.java

@@ -0,0 +1,61 @@
+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.CommonUtil;
+import org.springblade.control.dto.ControlProjectInfoDTO;
+import org.springblade.control.dto.ProjectCostBudgetStatsDTO;
+import org.springblade.control.entity.ControlProjectInfo;
+import org.springblade.control.entity.PlanRelationReturned;
+import org.springblade.control.entity.ProjectCostBudget;
+import org.springblade.control.entity.ProjectCostBudgetStats;
+import org.springblade.control.mapper.PlanRelationReturnedMapper;
+import org.springblade.control.mapper.ProjectCostBudgetMapper;
+import org.springblade.control.mapper.ProjectInfoMapper;
+import org.springblade.control.service.IPlanRelationReturnedService;
+import org.springblade.control.service.IProjectCostBudgetService;
+import org.springblade.control.vo.ControlProjectInfoVO;
+import org.springblade.control.vo.ProjectCostBudgetVO;
+import org.springblade.control.vo.ProjectCostBudgetVO2;
+import org.springblade.control.vo.ProjectCostBudgetVO3;
+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.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/5/12 9:43
+ **/
+@Service
+@AllArgsConstructor
+public class PlanRelationReturnedServiceImpl extends BaseServiceImpl<PlanRelationReturnedMapper, PlanRelationReturned> implements IPlanRelationReturnedService {
+
+
+    /**
+     * 计划关联回款
+     */
+    @Override
+    public String relationPlanAndReturned(Long returnedId, Long planId, Integer type) {
+        //关联类型:0取消关联,1关联
+        if (type == 1){
+            PlanRelationReturned relation = new PlanRelationReturned();
+            relation.setPlanId(planId);
+            relation.setReturnedId(returnedId);
+            baseMapper.insert(relation);
+            return "关联成功";
+        }else {
+            baseMapper.deleteRelation(returnedId,planId);
+            return "取消成功";
+        }
+    }
+}