Browse Source

合同发票接口,门户返回值默认0

qianxb 2 years ago
parent
commit
3e8c993949

+ 4 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/EMInvoiceInfoVO.java

@@ -25,4 +25,8 @@ public class EMInvoiceInfoVO extends EMInvoiceInfo {
     @ApiModelProperty(value = "关联项目")
     private String projectName;
 
+    @ApiModelProperty(value = "发票抬头")
+    private String invoiceHead;
+
+
 }

+ 19 - 7
blade-service/blade-control/src/main/java/org/springblade/control/controller/ContractInfoController.java

@@ -11,9 +11,11 @@ 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.EMInvoiceInfo;
 import org.springblade.control.service.IContractInfoService;
 import org.springblade.control.service.IProjectInfoService;
 import org.springblade.control.vo.ControlContractInfoVO;
+import org.springblade.control.vo.EMInvoiceInfoVO;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.*;
@@ -36,7 +38,7 @@ public class ContractInfoController {
      * 新增合同
      */
     @PostMapping("/addContractInfo")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 2)
     @ApiOperation(value = "新增合同")
     public R addContractInfo(@RequestBody ControlContractInfoDTO dto) {
         contractInfoService.addContractInfo(dto);
@@ -47,7 +49,7 @@ public class ContractInfoController {
      * 删除合同
      */
     @GetMapping("/deleteContractInfoById")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 3)
     @ApiOperation(value = "删除合同")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "合同id", required = true),
@@ -61,7 +63,7 @@ public class ContractInfoController {
      * 修改合同
      */
     @PostMapping("/updateContractInfo")
-    @ApiOperationSupport(order = 1)
+    @ApiOperationSupport(order = 4)
     @ApiOperation(value = "修改合同")
     public R updateContractInfo(@RequestBody ControlContractInfoDTO dto) {
         contractInfoService.updateContractInfo(dto);
@@ -85,7 +87,7 @@ public class ContractInfoController {
      * 合同列表,分页查询
      */
     @GetMapping("/getPage")
-    @ApiOperationSupport(order = 3)
+    @ApiOperationSupport(order = 1)
     @ApiOperation(value = "合同列表,分页查询")
     public R<List<ControlContractInfoVO>> getPage(ControlContractInfoDTO dto, Query query) {
         return R.data(contractInfoService.getPage(dto,query));
@@ -95,7 +97,7 @@ public class ContractInfoController {
      * 合同列表,回款更新
      */
     @GetMapping("/getList")
-    @ApiOperationSupport(order = 3)
+    @ApiOperationSupport(order = 5)
     @ApiOperation(value = "合同列表,回款更新")
     public R<List<ControlContractInfo>> getList() {
         return R.data(contractInfoService.getList());
@@ -105,7 +107,7 @@ public class ContractInfoController {
      * 获取合同类型字典
      */
     @GetMapping("/getContractTypeDict")
-    @ApiOperationSupport(order = 2)
+    @ApiOperationSupport(order = 6)
     @ApiOperation(value = "获取合同类型字典")
     public R<List<DictInfo>> getContractTypeDict() {
         return R.data(contractInfoService.getContractTypeDict());
@@ -115,10 +117,20 @@ public class ContractInfoController {
      * 获取未被关联的项目
      */
     @GetMapping("getNoConnectionProject")
-    @ApiOperationSupport(order = 2)
+    @ApiOperationSupport(order = 7)
     @ApiOperation(value = "获取未被关联的项目")
     public R<List<ControlProjectInfo>> getNoConnectionProject(Integer type){
         return R.data(contractInfoService.getNoConnectionProject(type));
     }
 
+    /**
+     * 获取合同开票信息
+     */
+    @GetMapping("getContractInvoiceList")
+    @ApiOperationSupport(order = 8)
+    @ApiOperation(value = "获取合同开票信息",notes = "传入合同id")
+    public R<List<EMInvoiceInfoVO>> getContractInvoiceList(Long contractId){
+        return R.data(contractInfoService.getContractInvoiceList(contractId));
+    }
+
 }

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

@@ -10,6 +10,7 @@ import org.springblade.control.entity.ControlProjectInfo;
 import org.springblade.control.entity.DictInfo;
 import org.springblade.control.vo.ControlContractInfoVO;
 import org.springblade.control.vo.ControlProjectInfoVO;
+import org.springblade.control.vo.EMInvoiceInfoVO;
 import org.springblade.system.entity.DictBiz;
 
 import java.math.BigDecimal;
@@ -35,4 +36,6 @@ public interface ContractInfoMapper extends BaseMapper<ControlContractInfo> {
     List<ControlContractInfo> getList();
 
     BigDecimal getYearContractMoney(@Param("year") int year);
+
+    List<EMInvoiceInfoVO> getContractInvoiceList(@Param("contractId") Long contractId);
 }

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

@@ -41,4 +41,9 @@
             and DATE_FORMAT(contract_sign_time ,'%Y') = #{year}
         </if>
     </select>
+    <select id="getContractInvoiceList" resultType="org.springblade.control.vo.EMInvoiceInfoVO">
+        select cci.invoice_head ,eii.invoice_date ,eii.invoice_money ,eii.invoice_pdf_url
+        from c_control_contract_info cci left join c_expense_invoice_info eii on eii.project_id = cci.project_id
+        WHERE  cci.id = #{contractId}
+    </select>
 </mapper>

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

@@ -85,6 +85,9 @@
                    when 4 then '已完成'
                    end  as statusValue,
                (select cpi.name from c_control_project_info cpi WHERE cpi.id = pcb.project_id) as projectName,
+               (select di.dict_name from c_dict_info di where di.type = 1 and di.dict_value = pcb.budget_type and di.parent_id = 0) as budgetTypeValue,
+               (select di.dict_name from c_dict_info di where di.type = 1 and di.dict_value = pcb.task_detail and di.parent_id =
+                   (select di.id from c_dict_info di where di.type = 1 and di.dict_value = pcb.budget_type and di.parent_id = 0)) as taskDetailValue,
                (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}

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

@@ -55,10 +55,10 @@
     </select>
     <select id="allProjectStats" resultType="org.springblade.control.vo.AllProjectStatsVO">
         select
-            (select sum(cci.contract_money)  from c_control_contract_info cci WHERE cci.is_deleted = 0) as allContractMoney,
-            (select SUM(cbs.project_cost_total)  from c_project_cost_budget_stats cbs WHERE cbs.is_deleted = 0) as allProjectCost,
-            (select SUM(pcb.actual_total_money)  from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.task_approve = 1)as "allPracticalDisburse",
-            (select SUM(cri.practical_returned_money)  from c_contract_returned_info cri WHERE cri.is_deleted = 0) as allReturned
+            IFNULL((select sum(cci.contract_money)  from c_control_contract_info cci WHERE cci.is_deleted = 0),0) as allContractMoney,
+            IFNULL((select SUM(cbs.project_cost_total)  from c_project_cost_budget_stats cbs WHERE cbs.is_deleted = 0),0) as allProjectCost,
+            IFNULL((select SUM(pcb.actual_total_money)  from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.task_approve = 1),0) as "allPracticalDisburse",
+            IFNULL((select SUM(cri.practical_returned_money)  from c_contract_returned_info cri WHERE cri.is_deleted = 0),0) as allReturned
     </select>
     <select id="ProjectListStats" resultType="org.springblade.control.vo.AllProjectStatsVO">
         select

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

@@ -6,8 +6,10 @@ 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.EMInvoiceInfo;
 import org.springblade.control.vo.ControlContractInfoVO;
 import org.springblade.control.vo.ControlProjectInfoVO;
+import org.springblade.control.vo.EMInvoiceInfoVO;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.core.mp.support.Query;
 import org.springblade.system.entity.DictBiz;
@@ -40,4 +42,6 @@ public interface IContractInfoService extends BaseService<ControlContractInfo> {
     List<ControlContractInfo> getList();
 
     BigDecimal getYearContractMoney(int year);
+
+    List<EMInvoiceInfoVO> getContractInvoiceList(Long contractId);
 }

+ 15 - 9
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -320,10 +320,23 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         AnnualBudgetVO3 vo3 = new AnnualBudgetVO3();
         //获取今年
         int year = LocalDate.now().getYear();
+        //获取今年的已收入:合同回款
+        BigDecimal yearReturned = returnedInfoService.getYearReturned(year);
+        vo3.setYearReturned(yearReturned);
+
+        //统计今年的已盈利:已收入-支出 ,目前已支出只统计闭环的计划
+        //获取一年人工支出
+        BigDecimal yearStaffDisburse = budgetService.getYearStaffDisburse(year);
+        vo3.setYearProfit(yearReturned.subtract(yearStaffDisburse));
+
         //获取今年的年度预算
         AnnualBudget annualBudget = baseMapper.getThisYearBudget(year);
         if (annualBudget == null){
-            throw new ServiceException("请先做年度预算");
+            vo3.setAnnualProfitTarget(new BigDecimal(0));
+            vo3.setAnnualContractTarget(new BigDecimal(0));
+            vo3.setContractSchedule(0);
+            vo3.setProfitSchedule(0);
+            return vo3;
         }
         //年度利润指标
         if (annualBudget.getAnnualContractTarget() == null){
@@ -335,13 +348,6 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         vo3.setAnnualProfitTarget(annualBudget.getAnnualProfitTarget());
         //年度合同指标
         vo3.setAnnualContractTarget(annualBudget.getAnnualContractTarget());
-        //获取今年的已收入:合同回款
-        BigDecimal yearReturned = returnedInfoService.getYearReturned(year);
-        vo3.setYearReturned(yearReturned);
-        //统计今年的已盈利:已收入-支出 ,目前已支出只统计闭环的计划
-        //获取一年人工支出
-        BigDecimal yearStaffDisburse = budgetService.getYearStaffDisburse(year);
-        vo3.setYearProfit(yearReturned.subtract(yearStaffDisburse));
         //合同进度统计
         if (vo3.getAnnualContractTarget() == null || vo3.getAnnualContractTarget().compareTo(BigDecimal.ZERO) == 0 || vo3.getYearReturned().compareTo(BigDecimal.ZERO) == 0){
             vo3.setContractSchedule(0);
@@ -552,7 +558,7 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         //获取所有风险计划
         List<ProjectCostBudget> riskPlan = budgetService.getRiskPlan(null,null);
         if (riskPlan == null || riskPlan.size() <= 0) {
-            throw new ServiceException("暂无风险计划");
+            return null;
         }
         List<AllProjectStatsVO> vos = new ArrayList<>();
         //获取部门映射值

+ 14 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractInfoServiceImpl.java

@@ -10,6 +10,7 @@ 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.EMInvoiceInfo;
 import org.springblade.control.mapper.ContractInfoMapper;
 import org.springblade.control.mapper.ProjectInfoMapper;
 import org.springblade.control.service.IContractInfoService;
@@ -18,6 +19,8 @@ import org.springblade.control.service.IProjectInfoService;
 import org.springblade.control.service.IProjectProcessService;
 import org.springblade.control.vo.ControlContractInfoVO;
 import org.springblade.control.vo.ControlProjectInfoVO;
+import org.springblade.control.vo.EMInvoiceInfoVO;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
 import org.springblade.system.entity.DictBiz;
@@ -48,6 +51,9 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
      */
     @Override
     public void addContractInfo(ControlContractInfoDTO dto) {
+        if (dto.getProjectId() == null || dto.getName() == null || dto.getContractMoney() == null){
+            throw new ServiceException("请填入必填信息");
+        }
         ControlContractInfo contractInfo = new ControlContractInfo();
         Long id = SnowFlakeUtil.getId();
         dto.setId(id);
@@ -156,4 +162,12 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
         }
         return decimal;
     }
+
+    /**
+     * 获取合同开票信息
+     */
+    @Override
+    public List<EMInvoiceInfoVO> getContractInvoiceList(Long contractId) {
+        return baseMapper.getContractInvoiceList(contractId);
+    }
 }

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

@@ -179,6 +179,7 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
                     .collect(Collectors.groupingBy(ProjectCostBudget::getCostType));
             for (int i = 1; i <= 6; i++) {
                 AllProjectStatsVO vo = new AllProjectStatsVO();
+                vo.setProjectId(id);
                 vo.setCostType(i);
                 vo.setCostTypeValue(costTypeDict.get(i-1).getDictName());
                 List<ProjectCostBudget> costBudgets = budgetMap.get(i-1);