AgreementDataService.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.ydtech.modules.largescreen.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
  4. import com.ydtech.modules.largescreen.dao.AgreementDataMapper;
  5. import com.ydtech.modules.largescreen.model.*;
  6. import com.ydtech.modules.largescreen.model.query.DataQuery;
  7. import com.ydtech.modules.largescreen.service.IAgreementDataService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import java.time.LocalDate;
  11. import java.time.LocalDateTime;
  12. import java.time.format.DateTimeFormatter;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. @Service
  16. public class AgreementDataService implements IAgreementDataService {
  17. @Autowired
  18. AgreementDataMapper agreementDataMapper;
  19. @Override
  20. public List<AgreementData> getCompanySumData(DataQuery dataQuery) {
  21. return agreementDataMapper.getCompanySumData(dataQuery);
  22. }
  23. @Override
  24. public List<OrderStatusData> getOrderStatusData(DataQuery dataQuery) {
  25. List<OrderStatusData> orderStatusData = agreementDataMapper.getOrderStatusData(dataQuery);
  26. List<OrderStatusData> newOrderStatusData = new ArrayList<>();
  27. orderStatusData.forEach(item -> {
  28. InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.matchKey(item.getOrderStatusCode());
  29. if (insOrderStatusEnum != null) {
  30. item.setOrderStatusName(insOrderStatusEnum.getDesc());
  31. newOrderStatusData.add(item);
  32. }
  33. });
  34. return newOrderStatusData;
  35. }
  36. @Override
  37. public List<MapData> getMapData(DataQuery dataQuery) {
  38. return agreementDataMapper.getMapData(dataQuery);
  39. }
  40. @Override
  41. public Integer getOrderNumber(DataQuery dataQuery) {
  42. return agreementDataMapper.getOrderNumber(dataQuery);
  43. }
  44. /**
  45. * 获取一周内的数据
  46. * @return
  47. */
  48. @Override
  49. public List<OrderStatusData> getWeekData() {
  50. //获取一周内的起始日期
  51. List<String> weekDate = this.getWeekDate();
  52. List<OrderStatusData> resultList = new ArrayList<>();
  53. weekDate.forEach(date -> {
  54. DataQuery dataQuery = new DataQuery();
  55. dataQuery.startDate = date + " 00:00:00";
  56. dataQuery.endDate = date + " 23:59:59";
  57. dataQuery.orderStatus = "3";
  58. List<OrderStatusData> orderStatusData = agreementDataMapper.getOrderStatusData(dataQuery);
  59. if(orderStatusData.isEmpty()){
  60. OrderStatusData orderStatusData1 = new OrderStatusData();
  61. orderStatusData1.setOrderStatusName("已完成");
  62. orderStatusData1.setOrderStatusCode("3");
  63. orderStatusData1.setDate(date);
  64. orderStatusData.add(orderStatusData1);
  65. }else{
  66. orderStatusData.get(0).setDate(date);
  67. }
  68. resultList.addAll(orderStatusData);
  69. });
  70. return resultList;
  71. }
  72. @Override
  73. public List<CompanyData> getCompanys() {
  74. List<CompanyData> companys = agreementDataMapper.getCompanys();
  75. List<Agreement> agreements = agreementDataMapper.getAgreements();
  76. companys.forEach(companyData -> {
  77. List<Agreement> agreements1 = new ArrayList<>();
  78. agreements.forEach(agreement -> {
  79. if(agreement.getCompanyId().equals(companyData.getCompanyId())){
  80. agreements1.add(agreement);
  81. }
  82. });
  83. companyData.setAgreementList(agreements1);
  84. });
  85. return companys;
  86. }
  87. //获取一周内的日期
  88. public static List<String> getWeekDate(){
  89. List<String> list = new ArrayList<>();
  90. //获取一周内的起始日期
  91. // 获取当前日期
  92. LocalDate currentDate = LocalDate.now();
  93. // 获取前一周的起始日期
  94. LocalDate oneWeekAgo = currentDate.minusWeeks(1);
  95. // 包括今天 去除1天
  96. oneWeekAgo = oneWeekAgo.plusDays(1);
  97. // 输出前一周每天的起始日期
  98. for (int i = 0; i < 6; i++) {
  99. // 获取每天的起始日期时间
  100. LocalDateTime startOfDay = oneWeekAgo.atStartOfDay();
  101. list.add(startOfDay.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
  102. oneWeekAgo = oneWeekAgo.plusDays(1);
  103. }
  104. list.add(currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
  105. return list;
  106. }
  107. }