| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376 |
- package com.ydtech.modules.largescreen.controller;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.beust.ah.A;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.modules.largescreen.model.*;
- import com.ydtech.modules.largescreen.model.query.CompanyQuery;
- import com.ydtech.modules.largescreen.model.query.DataQuery;
- import com.ydtech.modules.largescreen.service.IAgreementDataService;
- import io.swagger.annotations.Api;
- import lombok.Data;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.time.LocalDate;
- import java.time.format.DateTimeFormatter;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Optional;
- @Api(tags = "数据大屏")
- @RestController
- @RequestMapping("screen/data")
- @Slf4j
- public class DataController {
- @Autowired
- IAgreementDataService dataService;
- /**
- * 保险公司成交数据
- *
- * @param dataQuery
- * @return
- */
- @PostMapping("companySumDataChart")
- public HttpResult companySumDataChart(@RequestBody(required = false) DataQuery dataQuery) {
- List<AgreementData> sumData = dataService.getCompanySumData(dataQuery);
- //转换格式
- int rows = 6;
- int columns = sumData.size();
- String[][] result = new String[rows][columns];
- sumData.forEach(item -> {
- int i = sumData.indexOf(item);
- result[0][i] = item.getInsuranceCompany();
- result[1][i] = item.getJqPremium();
- result[2][i] = item.getSyPremium();
- result[3][i] = item.getTaxPremium();
- result[4][i] = item.getSumPremium();
- result[5][i] = item.getSumOrderNum().toString();
- });
- return HttpResult.ok(result);
- }
- @PostMapping("companySumData")
- public HttpResult companySumData(@RequestBody(required = false) DataQuery dataQuery) {
- List<AgreementData> sumData = dataService.getCompanySumData(dataQuery);
- String[][] result = new String[sumData.size()][7];
- sumData.forEach(item -> {
- int i = sumData.indexOf(item);
- result[i][0] = item.getInsuranceCompanyId();
- result[i][1] = item.getInsuranceCompany();
- result[i][2] = item.getJqPremium();
- result[i][3] = item.getSyPremium();
- result[i][4] = item.getTaxPremium();
- result[i][5] = item.getSumPremium();
- result[i][6] = item.getSumOrderNum().toString();
- });
- return HttpResult.ok(result);
- }
- /**
- * 订单状态数据
- *
- * @param dataQuery
- * @return
- */
- @PostMapping("orderStatusData")
- public HttpResult orderStatusData(@RequestBody(required = false) DataQuery dataQuery) {
- List<CompanyData> sumData = dataService.getCompanyOrderStatusData(dataQuery);
- //转换格式
- int rows = 6;
- int columns = sumData.size();
- String[][] result = new String[rows][columns];
- sumData.forEach(item -> {
- int i = sumData.indexOf(item);
- result[0][i] = item.getCompanyName();
- result[1][i] = checkOrderStatus(item.getOrderStatusData(), "0");
- result[2][i] = checkOrderStatus(item.getOrderStatusData(), "1");
- result[3][i] = checkOrderStatus(item.getOrderStatusData(), "2");
- result[4][i] = checkOrderStatus(item.getOrderStatusData(), "3");
- result[5][i] = checkOrderStatus(item.getOrderStatusData(), "4");
- });
- return HttpResult.ok(result);
- }
- private String checkOrderStatus(List<OrderStatusData> orderStatusData, String status) {
- OrderStatusData orderStatusData1 = orderStatusData.stream()
- .filter(item1 -> item1.getOrderStatusCode().equals(status))
- .findFirst()
- .orElse(null);
- if (orderStatusData1 == null) {
- return "0";
- } else {
- return String.valueOf(orderStatusData1.getSumOrderNum());
- }
- }
- /**
- * 获取山西地图数据
- *
- * @param dataQuery
- * @return
- */
- @PostMapping("mapData")
- public HttpResult mapData(@RequestBody(required = false) DataQuery dataQuery) {
- List<MapData> mapData = dataService.getMapData(dataQuery);
- return HttpResult.ok(mapData);
- }
- /**
- * 获取一周内的数据
- *
- * @return
- */
- @PostMapping("weekData")
- public HttpResult weekData() {
- List<OrderStatusData> weekData = dataService.getWeekData();
- //转换格式
- int rows = 6;
- int columns = weekData.size();
- String[][] result = new String[rows][columns];
- weekData.forEach(item -> {
- int i = weekData.indexOf(item);
- result[0][i] = item.getDate();
- result[1][i] = item.getJqPremium();
- result[2][i] = item.getSyPremium();
- result[3][i] = item.getTaxPremium();
- result[4][i] = item.getSumPremium();
- result[5][i] = item.getSumOrderNum().toString();
- });
- return HttpResult.ok(result);
- }
- /**
- * 获取一月内的数据
- *
- * @return
- */
- @PostMapping("monthData")
- public HttpResult monthData() {
- List<OrderStatusData> monthData = dataService.getMonthData();
- //转换格式
- int rows = 6;
- int columns = monthData.size();
- String[][] result = new String[rows][columns];
- monthData.forEach(item -> {
- int i = monthData.indexOf(item);
- result[0][i] = item.getDate();
- result[1][i] = item.getJqPremium();
- result[2][i] = item.getSyPremium();
- result[3][i] = item.getTaxPremium();
- result[4][i] = item.getSumPremium();
- result[5][i] = item.getSumOrderNum().toString();
- });
- return HttpResult.ok(result);
- }
- @PostMapping("yearData")
- public HttpResult yearData() {
- List<OrderStatusData> yearData = dataService.getYearData();
- //转换格式
- int rows = 6;
- int columns = yearData.size();
- String[][] result = new String[rows][columns];
- yearData.forEach(item -> {
- int i = yearData.indexOf(item);
- result[0][i] = item.getDate();
- result[1][i] = item.getJqPremium();
- result[2][i] = item.getSyPremium();
- result[3][i] = item.getTaxPremium();
- result[4][i] = item.getSumPremium();
- result[5][i] = item.getSumOrderNum().toString();
- });
- return HttpResult.ok(result);
- }
- /**
- * 获取当天已承包数据
- */
- @PostMapping("todayData")
- public HttpResult todayData(@RequestBody DataQuery dataQuery) {
- dataQuery.setOrderStatus("3");
- List<OrderStatusData> orderStatusData = dataService.getOrderStatusData(dataQuery);
- if (orderStatusData.isEmpty()) {
- return HttpResult.error("当天无已承包数据");
- }
- ToDayData toDayData = JSON.parseObject(JSON.toJSONString(orderStatusData.get(0)), ToDayData.class);
- toDayData.setCbOrderNum(toDayData.getSumOrderNum());
- Integer orderNumber = dataService.getOrderNumber(dataQuery);
- toDayData.setSumOrderNum(orderNumber);
- return HttpResult.ok(toDayData);
- }
- /**
- * 获取公司数据
- *
- * @return
- */
- @PostMapping("companys")
- public HttpResult companys() {
- return HttpResult.ok(dataService.getCompanys());
- }
- @PostMapping("getCompanyDataById")
- public HttpResult getCompanyDataById(@RequestBody CompanyQuery companyQuery) {
- //查询单交
- companyQuery.setProductId("0330");
- CompanyInfoData djCompanyInfoData = new CompanyInfoData();
- List<CompanyInfoData> companySumData = dataService.getCompanyDataById(companyQuery);
- companySumData.forEach(item -> {
- item.setInsurance("单交");
- Double d = Double.parseDouble(item.getTaxSumPremium()) / Double.parseDouble(item.getJqSumPremium()) * 100;
- item.setRatio(d.equals(Double.NaN) ? "0.00%" : String.format("%.2f%%", d));
- // item.setRatio(String.format("%.2f%%",d));
- djCompanyInfoData.setJqSumPremium(
- String.valueOf(Double.parseDouble(djCompanyInfoData.getJqSumPremium()) + Double.parseDouble(item.getJqSumPremium())));
- djCompanyInfoData.setSySumPremium(
- String.valueOf(Double.parseDouble(djCompanyInfoData.getSySumPremium()) + Double.parseDouble(item.getSySumPremium())));
- djCompanyInfoData.setTaxSumPremium(
- String.valueOf(Double.parseDouble(djCompanyInfoData.getTaxSumPremium()) + Double.parseDouble(item.getTaxSumPremium())));
- djCompanyInfoData.setSumOrderNum(
- djCompanyInfoData.getSumOrderNum() + item.getSumOrderNum());
- });
- djCompanyInfoData.setRatio(
- String.format("%.2f%%",
- Double.parseDouble(djCompanyInfoData.getTaxSumPremium()) / Double.parseDouble(djCompanyInfoData.getJqSumPremium()) * 100)
- );
- //小计
- djCompanyInfoData.setInsurance("单交");
- djCompanyInfoData.setJqPremium("小计");
- djCompanyInfoData.setTaxSumPremium(String.format("%.2f", Double.parseDouble(djCompanyInfoData.getTaxSumPremium())));
- djCompanyInfoData.setJqSumPremium(String.format("%.2f", Double.parseDouble(djCompanyInfoData.getJqSumPremium())));
- djCompanyInfoData.setSySumPremium(String.format("%.2f", Double.parseDouble(djCompanyInfoData.getSySumPremium())));
- companySumData.add(djCompanyInfoData);
- //查询交三
- CompanyInfoData jsCompanyInfoData = new CompanyInfoData();
- companyQuery.setProductId("0330034002");
- List<CompanyInfoData> companyDataById = dataService.getCompanyDataById(companyQuery);
- companyDataById.forEach(item -> {
- item.setInsurance("交三");
- Double d = Double.parseDouble(item.getTaxSumPremium()) / Double.parseDouble(item.getJqSumPremium()) * 100;
- item.setRatio(d.equals(Double.NaN) ? "0.00%" : String.format("%.2f%%", d));
- jsCompanyInfoData.setJqSumPremium(
- String.valueOf(Double.parseDouble(jsCompanyInfoData.getJqSumPremium()) + Double.parseDouble(item.getJqSumPremium())));
- jsCompanyInfoData.setSySumPremium(
- String.valueOf(Double.parseDouble(jsCompanyInfoData.getSySumPremium()) + Double.parseDouble(item.getSySumPremium())));
- jsCompanyInfoData.setTaxSumPremium(
- String.valueOf(Double.parseDouble(jsCompanyInfoData.getTaxSumPremium()) + Double.parseDouble(item.getTaxSumPremium())));
- jsCompanyInfoData.setSumOrderNum(
- jsCompanyInfoData.getSumOrderNum() + item.getSumOrderNum());
- });
- jsCompanyInfoData.setRatio(
- String.format("%.2f%%",
- Double.parseDouble(jsCompanyInfoData.getTaxSumPremium()) / Double.parseDouble(jsCompanyInfoData.getJqSumPremium()) * 100)
- );
- companySumData.addAll(companyDataById);
- //小计
- jsCompanyInfoData.setInsurance("交三");
- jsCompanyInfoData.setJqPremium("小计");
- jsCompanyInfoData.setTaxSumPremium(String.format("%.2f", Double.parseDouble(jsCompanyInfoData.getTaxSumPremium())));
- jsCompanyInfoData.setJqSumPremium(String.format("%.2f", Double.parseDouble(jsCompanyInfoData.getJqSumPremium())));
- jsCompanyInfoData.setSySumPremium(String.format("%.2f", Double.parseDouble(jsCompanyInfoData.getSySumPremium())));
- companySumData.add(jsCompanyInfoData);
- //合计
- CompanyInfoData sumCompanyInfoData = new CompanyInfoData();
- sumCompanyInfoData.setInsurance("合计");
- sumCompanyInfoData.setSumOrderNum(djCompanyInfoData.getSumOrderNum() + jsCompanyInfoData.getSumOrderNum());
- sumCompanyInfoData.setTaxSumPremium(String.format("%.2f",
- Double.parseDouble(djCompanyInfoData.getTaxSumPremium()) + Double.parseDouble(jsCompanyInfoData.getTaxSumPremium())));
- sumCompanyInfoData.setJqSumPremium(String.format("%.2f",
- Double.parseDouble(djCompanyInfoData.getJqSumPremium()) + Double.parseDouble(jsCompanyInfoData.getJqSumPremium())));
- sumCompanyInfoData.setSySumPremium(String.format("%.2f",
- Double.parseDouble(djCompanyInfoData.getSySumPremium()) + Double.parseDouble(jsCompanyInfoData.getSySumPremium())));
- sumCompanyInfoData.setRatio(
- String.format("%.2f%%",
- Double.parseDouble(sumCompanyInfoData.getTaxSumPremium()) / Double.parseDouble(sumCompanyInfoData.getJqSumPremium()) * 100)
- );
- companySumData.add(sumCompanyInfoData);
- return HttpResult.ok(companySumData);
- }
- @PostMapping("listData")
- public HttpResult listData(@RequestBody DataQuery dataQuery) {
- if ((dataQuery.getStartDate() == null || "".equals(dataQuery.getStartDate())) && (dataQuery.getEndDate() == null || "".equals(dataQuery.getEndDate()))) {
- // 获取当前日期
- LocalDate currentDate = LocalDate.now();
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- dataQuery.setStartDate(currentDate.format(formatter) + " 00:00:00");
- dataQuery.setEndDate(currentDate.format(formatter) + " 23:59:59");
- }
- List<CompanyData> sumData = dataService.getCompanyOrderStatusData(dataQuery);
- List<ListData> listDatas = new ArrayList<>();
- sumData.forEach(item -> {
- ListData listData = new ListData();
- listData.setInsuranceCompany(item.getCompanyName());
- listData.setInsuranceCompanyId(item.getCompanyId());
- Optional<OrderStatusData> first =
- item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("3")).findFirst();
- if (!first.isPresent()) {
- listData.setJqPremium("0");
- listData.setSyPremium("0");
- listData.setTaxPremium("0");
- listData.setSumPremium("0");
- } else {
- listData.setJqPremium(first.get().getJqPremium());
- listData.setSyPremium(first.get().getSyPremium());
- listData.setTaxPremium(first.get().getTaxPremium());
- listData.setSumPremium(first.get().getSumPremium());
- }
- Optional<OrderStatusData> first1 =
- item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("0")).findFirst();
- if (!first1.isPresent()) {
- listData.setQuoting("0");
- } else {
- listData.setQuoting(first1.get().getSumOrderNum().toString());
- }
- Optional<OrderStatusData> first2 =
- item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("1")).findFirst();
- if (!first2.isPresent()) {
- listData.setUninsured("0");
- } else {
- listData.setUninsured(first2.get().getSumOrderNum().toString());
- }
- Optional<OrderStatusData> first3 =
- item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("2")).findFirst();
- if (!first3.isPresent()) {
- listData.setUnderwrited("0");
- } else {
- listData.setUnderwrited(first3.get().getSumOrderNum().toString());
- }
- Optional<OrderStatusData> first4 =
- item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("3")).findFirst();
- if (!first4.isPresent()) {
- listData.setInsured("0");
- } else {
- listData.setInsured(first4.get().getSumOrderNum().toString());
- }
- Optional<OrderStatusData> first5 =
- item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("4")).findFirst();
- if (!first5.isPresent()) {
- listData.setUnderwriteReturn("0");
- } else {
- listData.setUnderwriteReturn(first5.get().getSumOrderNum().toString());
- }
- listDatas.add(listData);
- });
- return HttpResult.ok(listDatas);
- }
- }
|