785834757 пре 2 година
родитељ
комит
a7ccbe6028

+ 97 - 0
src/main/java/com/ydtech/modules/order/entity/vo/CostSettlementExcelVo.java

@@ -0,0 +1,97 @@
+package com.ydtech.modules.order.entity.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ydtech.modules.nai.httpvo.excel.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class CostSettlementExcelVo {
+
+
+
+//    @ApiModelProperty("保险公司")
+//    private String companyId;
+//
+//    @ApiModelProperty("审核开始时间")
+//    private String auditStartTime;
+//
+//    @ApiModelProperty("审核终止时间")
+//    private String auditEndTime;
+
+//    @ApiModelProperty("日期")
+//    private LocalDate date;
+
+    @ApiModelProperty("保险公司")
+    @ExcelProperty("保险公司")
+    private String inscompany;
+
+    @ApiModelProperty("交强险保费")
+    @ExcelProperty("交强险保费")
+    private String jqPremium;
+
+    @ApiModelProperty("商业险保费")
+    @ExcelProperty("商业险保费")
+    private String syPremium;
+
+    @ApiModelProperty("非车险保费")
+    @ExcelProperty("非车险保费")
+    private String noPremium;
+
+//    @ApiModelProperty("交强入口手续费")
+//    @ExcelProperty("交强入口手续费")
+//    private String jqSuperviseCostsPremiums;
+//
+//    @ApiModelProperty("交强入口跟单费")
+//    @ExcelProperty("交强入口跟单费")
+//    private String jqOtherCostsPremiums;
+//
+//    @ApiModelProperty("商业入口手续费")
+//    @ExcelProperty("商业入口手续费")
+//    private String sySuperviseCostsPremiums;
+//
+//    @ApiModelProperty("商业入口跟单费")
+//    @ExcelProperty("商业入口跟单费")
+//    private String syOtherCostsPremiums;
+//
+//    @ApiModelProperty("非车入口手续费")
+//    @ExcelProperty("非车入口手续费")
+//    private String noSuperviseCostsPremiums;
+//
+//    @ApiModelProperty("非车入口跟单费")
+//    @ExcelProperty("非车入口跟单费")
+//    private String noOtherCostsPremiums;
+
+    @ApiModelProperty("交强出口手续费")
+    @ExcelProperty("交强出口手续费")
+    private String jqExportSuperviseCostsPremiums;
+
+    @ApiModelProperty("交强出口跟单费")
+    @ExcelProperty("交强出口跟单费")
+    private String jqExportOtherCostsPremiums;
+
+    @ApiModelProperty("商业出口手续费")
+    @ExcelProperty("商业出口手续费")
+    private String syExportSuperviseCostsPremiums;
+
+    @ApiModelProperty("商业出口跟单费")
+    @ExcelProperty("商业出口跟单费")
+    private String syExportOtherCostsPremiums;
+
+    @ApiModelProperty("非车出口手续费")
+    @ExcelProperty("非车出口手续费")
+    private String noExportSuperviseCostsPremiums;
+
+    @ApiModelProperty("非车出口跟单费")
+    @ExcelProperty("非车出口跟单费")
+    private String noExportOtherCostsPremiums;
+
+    @ApiModelProperty("分销费用")
+    private String distributingPremiums;
+
+    @ApiModelProperty("总和")
+    private String totalPremiums;
+}

+ 20 - 0
src/main/java/com/ydtech/modules/order/entity/vo/CostSettlementQueryVo.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.order.entity.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CostSettlementQueryVo {
+
+
+
+    @ApiModelProperty("保险公司")
+    private String companyId;
+
+    @ApiModelProperty("日期")
+    private String startTime;
+
+    @ApiModelProperty("终止日期")
+    private String endTime;
+}

+ 42 - 0
src/main/java/com/ydtech/modules/order/entity/vo/FeeReceivableVo.java

@@ -0,0 +1,42 @@
+package com.ydtech.modules.order.entity.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 费用应收表
+ */
+@Data
+public class FeeReceivableVo {
+
+    @ApiModelProperty("保险公司")
+    private String inscompany;
+
+    @ApiModelProperty("一级部门费用")
+    @ExcelProperty("一级部门费用")
+    private String deptPremiumsLevel1;
+
+    @ApiModelProperty("二级部门费用")
+    @ExcelProperty("二级部门费用")
+    private String deptPremiumsLevel2;
+
+    @ApiModelProperty("三级部门费用")
+    @ExcelProperty("三级部门费用")
+    private String deptPremiumsLevel3;
+
+    @ApiModelProperty("四级部门费用")
+    @ExcelProperty("四级部门费用")
+    private String deptPremiumsLevel4;
+
+    @ApiModelProperty("五级部门费用")
+    @ExcelProperty("五级部门费用")
+    private String deptPremiumsLevel5;
+
+    @ApiModelProperty("营业外收入")
+    @ExcelProperty("营业外收入")
+    private String profitMarginPremiums;
+
+    @ApiModelProperty("总和")
+    private String totalPremiums;
+}

+ 8 - 0
src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewMapper.java

@@ -7,6 +7,9 @@ import com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualDataDto
 import com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualDeptDataDto;
 import com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualDeptQueryDto;
 import com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualQueryDto;
+import com.ydtech.modules.order.entity.vo.CostSettlementExcelVo;
+import com.ydtech.modules.order.entity.vo.CostSettlementQueryVo;
+import com.ydtech.modules.order.entity.vo.FeeReceivableVo;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import org.apache.ibatis.annotations.Param;
 
@@ -162,6 +165,11 @@ public interface InsFeeOrderNewMapper extends BaseMapper<InsFeeOrderNew> {
      *  @Description: 五级机构
      */
     Page<AdvanceAndActualDeptDataDto> queryAdvanceAndActualDeptDataPage(@Param("vo") AdvanceAndActualDeptQueryDto advanceAndActualDeptQueryDto, @Param("page") Page<AdvanceAndActualDeptDataDto> page);
+
+
+    List<CostSettlementExcelVo> getCostSettlementExcel(@Param("param") CostSettlementQueryVo costSettlementQueryVo);
+
+    List<FeeReceivableVo> getFeeReceivable(@Param("param") CostSettlementQueryVo costSettlementQueryVo);
 }
 
 

+ 17 - 0
src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewService.java

@@ -3,6 +3,9 @@ package com.ydtech.modules.protocols.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.order.entity.vo.CostSettlementExcelVo;
+import com.ydtech.modules.order.entity.vo.CostSettlementQueryVo;
+import com.ydtech.modules.order.entity.vo.FeeReceivableVo;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 
 import java.math.BigDecimal;
@@ -161,4 +164,18 @@ public interface InsFeeOrderNewService extends IService<InsFeeOrderNew> {
      *  @Description: 查询用户已提现的金额
      */
     BigDecimal findMyAmountYTXmount(String userId,String status);
+
+    /**
+     * 获取费用结算导出表的数据
+     * @return
+     */
+    List<CostSettlementExcelVo> getCostSettlementExcel(CostSettlementQueryVo costSettlementQueryVo);
+
+    /**
+     * 获取应收费用
+     * @param costSettlementQueryVo
+     * @return
+     */
+    List<FeeReceivableVo> getFeeReceivable(CostSettlementQueryVo costSettlementQueryVo);
+
 }

+ 13 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.order.entity.vo.CostSettlementExcelVo;
+import com.ydtech.modules.order.entity.vo.CostSettlementQueryVo;
+import com.ydtech.modules.order.entity.vo.FeeReceivableVo;
 import com.ydtech.modules.protocols.dao.InsFeeOrderNewMapper;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
@@ -193,4 +196,14 @@ public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper,
     public BigDecimal findMyAmountYTXmount(String userId,String status) {
         return baseMapper.findMyAmountYTXmount(userId,status);
     }
+
+    @Override
+    public List<CostSettlementExcelVo> getCostSettlementExcel(CostSettlementQueryVo costSettlementQueryVo) {
+        return baseMapper.getCostSettlementExcel(costSettlementQueryVo);
+    }
+
+    @Override
+    public List<FeeReceivableVo> getFeeReceivable(CostSettlementQueryVo costSettlementQueryVo) {
+        return baseMapper.getFeeReceivable(costSettlementQueryVo);
+    }
 }

+ 32 - 0
src/main/java/com/ydtech/modules/report/controller/ReportController.java

@@ -4,6 +4,10 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.fnc.service.InsPlySettleService;
 import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.order.entity.vo.CostSettlementExcelVo;
+import com.ydtech.modules.order.entity.vo.CostSettlementQueryVo;
+import com.ydtech.modules.order.entity.vo.FeeReceivableVo;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import com.ydtech.modules.report.model.vo.*;
 import com.ydtech.modules.report.service.ReportService;
 import com.ydtech.utils.DateUtil;
@@ -18,6 +22,9 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDateTime;
+import java.time.YearMonth;
+import java.util.List;
 
 /**
  * @Author: shixk
@@ -39,6 +46,9 @@ public class ReportController extends BaseController {
     @Autowired
     private InsPlySettleService insPlySettleService;
 
+    @Autowired
+    private InsFeeOrderNewService insFeeOrderNewService;
+
     //@PreAuthorize("hasAuthority('sys:report:add')")
     @ApiOperation(value = "保险专业中介机构基本情况表导入")
     @PostMapping("/importReportAgentState")
@@ -267,4 +277,26 @@ public class ReportController extends BaseController {
         return reportService.exportPayApplyDeptReportListData(payApplyDeptReportReqVo);
 
     }
+
+
+    @PostMapping("/feeMeetReport")
+    @ApiOperation(value = "报表-费用应付报表")
+    public HttpResult<List<CostSettlementExcelVo>> feeMeetReport(@RequestBody CostSettlementQueryVo costSettlementQueryVo){
+        if(costSettlementQueryVo.getStartTime() == null)
+        {
+            LocalDateTime now = LocalDateTime.now();
+            costSettlementQueryVo.setStartTime(now.getYear() + "-" + now.getMonthValue() + "-01");
+            YearMonth yearMonth = YearMonth.now();
+            costSettlementQueryVo.setEndTime(now.getYear() + "-" + now.getMonthValue() + "-" + yearMonth.lengthOfMonth());
+        }
+        List<CostSettlementExcelVo> costSettlementExcel = insFeeOrderNewService.getCostSettlementExcel(costSettlementQueryVo);
+        return HttpResult.ok(costSettlementExcel);
+    }
+
+    @PostMapping("/feeReceivableReport")
+    @ApiOperation(value = "报表-费用应收报表")
+    public HttpResult<List<FeeReceivableVo>> feeReceivableReport(@RequestBody CostSettlementQueryVo costSettlementQueryVo){
+        List<FeeReceivableVo> feeReceivable = insFeeOrderNewService.getFeeReceivable(costSettlementQueryVo);
+        return HttpResult.ok(feeReceivable);
+    }
 }

+ 83 - 0
src/main/resources/mapper/modules/ins/InsFeeOrderNewMapper.xml

@@ -1307,4 +1307,87 @@
         </if>
         order by  iac.signing_time desc
     </select>
+
+    <select id="getCostSettlementExcel" resultType="com.ydtech.modules.order.entity.vo.CostSettlementExcelVo">
+        SELECT
+            io.ins_company,
+            sum( ifon.jq_premium ) AS jq_premium,
+            sum( ifon.sy_premium ) AS sy_premium,
+            sum( ifon.no_premium ) AS no_premium,
+            sum( ifon.jq_supervise_costs_premiums ) AS jq_supervise_costs_premiums,
+            sum( ifon.jq_other_costs_premiums ) AS jq_other_costs_premiums,
+            sum( ifon.sy_supervise_costs_premiums ) AS sy_supervise_costs_premiums,
+            sum( ifon.sy_other_costs_premiums ) AS sy_other_costs_premiums,
+            sum( ifon.no_supervise_costs_premiums ) AS no_supervise_costs_premiums,
+            sum( ifon.no_other_costs_premiums ) AS no_other_costs_premiums,
+            sum( ifon.jq_export_supervise_costs_premiums ) AS jq_export_supervise_costs_premiums,
+            sum( ifon.jq_export_other_costs_premiums ) AS jq_export_other_costs_premiums,
+            sum( ifon.sy_export_supervise_costs_premiums ) AS sy_export_supervise_costs_premiums,
+            sum( ifon.sy_export_other_costs_premiums ) AS sy_export_other_costs_premiums,
+            sum( ifon.no_export_supervise_costs_premiums ) AS no_export_supervise_costs_premiums,
+            sum( ifon.no_export_other_costs_premiums ) AS no_export_other_costs_premiums,
+            sum( ifon.first_detail_premiums + ifon.second_detail_premiums + ifon.third_detail_premiums) as distributing_premiums,
+            SUM(
+                        ifon.jq_export_supervise_costs_premiums +
+                        ifon.jq_export_other_costs_premiums +
+                        ifon.sy_export_supervise_costs_premiums +
+                        ifon.sy_export_other_costs_premiums +
+                        ifon.no_export_supervise_costs_premiums +
+                        ifon.no_export_other_costs_premiums +
+                        ifon.first_detail_premiums +
+                        ifon.second_detail_premiums +
+                        ifon.third_detail_premiums
+            ) AS total_premiums
+
+        FROM
+            ins_fee_audit ifa
+                LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
+                LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
+                AND iac.orderstatus = 3
+                LEFT JOIN ins_fee_order_new ifon on ifon.ins_order_no = iac.id
+                LEFT JOIN sys_user su ON su.id = io.userid
+                LEFT JOIN sys_dept sd ON sd.id = su.dept_id
+                LEFT JOIN sys_user su2 ON ifa.audituser = su2.id
+                LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
+                LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
+        WHERE
+            iac.id = ifa.ins_order_no
+          AND iac.orderstatus = 3
+          and ifa.auditstatus = 1
+          and DATE_FORMAT(iac.signing_time, '%Y-%m-%d') between #{param.startTime} and #{param.endTime}
+        group by ins_company
+    </select>
+
+    <select id="getFeeReceivable" resultType="com.ydtech.modules.order.entity.vo.FeeReceivableVo">
+        SELECT
+            io.ins_company,
+            sum( ifon.jq_dept_premiums_level_1 + ifon.sy_dept_premiums_level_1 + ifon.no_dept_premiums_level_1 ) AS dept_premiums_level_1,
+            sum( ifon.jq_dept_premiums_level_2 + ifon.sy_dept_premiums_level_2 + ifon.no_dept_premiums_level_2 ) AS dept_premiums_level_2,
+            sum( ifon.jq_dept_premiums_level_3 + ifon.sy_dept_premiums_level_3 + ifon.no_dept_premiums_level_3 ) AS dept_premiums_level_3,
+            sum( ifon.jq_dept_premiums_level_4 + ifon.sy_dept_premiums_level_4 + ifon.no_dept_premiums_level_4 ) AS dept_premiums_level_4,
+            sum( ifon.jq_dept_premiums_level_5 + ifon.sy_dept_premiums_level_5 + ifon.no_dept_premiums_level_5 ) AS dept_premiums_level_5,
+            sum( ifon.jq_profit_margin_premiums + ifon.sy_profit_margin_premiums + ifon.no_profit_margin_premiums ) AS profit_margin_premiums,
+            SUM(
+                        ifon.jq_dept_premiums_level_1 + ifon.sy_dept_premiums_level_1 + ifon.no_dept_premiums_level_1 + ifon.jq_dept_premiums_level_2 + ifon.sy_dept_premiums_level_2 + ifon.no_dept_premiums_level_2 + ifon.jq_dept_premiums_level_3 + ifon.sy_dept_premiums_level_3 + ifon.no_dept_premiums_level_3 + ifon.jq_dept_premiums_level_4 + ifon.sy_dept_premiums_level_4 + ifon.no_dept_premiums_level_4 + ifon.jq_dept_premiums_level_5 + ifon.sy_dept_premiums_level_5 + ifon.no_dept_premiums_level_5 + ifon.jq_profit_margin_premiums + ifon.sy_profit_margin_premiums + ifon.no_profit_margin_premiums
+            ) AS total_premiums
+        FROM
+            ins_fee_audit ifa
+                LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
+                LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
+                AND iac.orderstatus = 3
+                LEFT JOIN ins_fee_order_new ifon ON ifon.ins_order_no = iac.id
+                LEFT JOIN sys_user su ON su.id = io.userid
+                LEFT JOIN sys_dept sd ON sd.id = su.dept_id
+                LEFT JOIN sys_user su2 ON ifa.audituser = su2.id
+                LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
+                LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
+        WHERE
+            iac.id = ifa.ins_order_no
+          AND iac.orderstatus = 3
+          AND ifa.auditstatus = 1
+          AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d' ) BETWEEN #{param.startTime}
+            AND #{param.endTime}
+        GROUP BY
+            ins_company
+    </select>
 </mapper>