3 changed files with 140 additions and 0 deletions
@ -1,4 +1,8 @@ |
|||
package com.zdxt.code.service; |
|||
|
|||
import com.zdxt.code.domain.StatisticsIndicatorPart; |
|||
|
|||
public interface StatisticalPaneService { |
|||
|
|||
StatisticsIndicatorPart complaint(StatisticsIndicatorPart statisticsIndicatorPart); |
|||
} |
|||
|
|||
@ -1,8 +1,141 @@ |
|||
package com.zdxt.code.service.impl; |
|||
|
|||
import com.zdxt.code.domain.ComplaintStatistics; |
|||
import com.zdxt.code.domain.EnterpriseComplaint; |
|||
import com.zdxt.code.domain.StatisticsIndicatorPart; |
|||
import com.zdxt.code.service.ComplaintStatisticsService; |
|||
import com.zdxt.code.service.IEnterpriseComplaintService; |
|||
import com.zdxt.code.service.StatisticalPaneService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.time.LocalDate; |
|||
import java.time.format.DateTimeFormatter; |
|||
import java.time.temporal.TemporalAdjusters; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.stream.Collectors; |
|||
|
|||
@Service |
|||
public class StatisticalPaneImpl implements StatisticalPaneService { |
|||
@Autowired |
|||
private ComplaintStatisticsService complaintStatisticsService; |
|||
@Override |
|||
/** |
|||
* 年度:year!==null,quarter==null,month==null |
|||
* 季度:year!==null,quarter!==null,month==null |
|||
* 月度:year!==null,quarter!==null,month!==null |
|||
*/ |
|||
public StatisticsIndicatorPart complaint(StatisticsIndicatorPart statisticsIndicatorPart){ |
|||
StatisticsIndicatorPart sNow=nowDataMake(statisticsIndicatorPart); |
|||
StatisticsIndicatorPart sLast=lastDataMake(statisticsIndicatorPart,sNow.getBeginTime()); |
|||
ComplaintStatistics complaintStatisticsNow=new ComplaintStatistics(); |
|||
ComplaintStatistics complaintStatisticsLast=new ComplaintStatistics(); |
|||
complaintStatisticsNow.setBeginTime(sNow.getBeginTime()); |
|||
complaintStatisticsNow.setEndTime(sNow.getEndTime()); |
|||
complaintStatisticsLast.setBeginTime(sLast.getBeginTime()); |
|||
complaintStatisticsLast.setEndTime(sLast.getEndTime()); |
|||
List<ComplaintStatistics> complaintStatisticsListNow=complaintStatisticsService.selectComplaintStatisticsList(complaintStatisticsNow); |
|||
List<ComplaintStatistics> complaintStatisticsListLast=complaintStatisticsService.selectComplaintStatisticsList(complaintStatisticsLast); |
|||
StatisticsIndicatorPart p1=new StatisticsIndicatorPart(); |
|||
p1.setName("执法投诉数量"); |
|||
p1.setTotal(complaintStatisticsListNow.size()); |
|||
p1.setHuan(complaintStatisticsListNow.size()-complaintStatisticsListLast.size()); |
|||
List<ComplaintStatistics> rqbsmNow=complaintStatisticsListNow.stream().filter(item->item.getComplaintType()==3).collect(Collectors.toList()); |
|||
List<ComplaintStatistics> rqbsmLast=complaintStatisticsListLast.stream().filter(item->item.getComplaintType()==3).collect(Collectors.toList()); |
|||
StatisticsIndicatorPart p2=new StatisticsIndicatorPart(); |
|||
p2.setName("入企不扫码"); |
|||
p2.setTotal(rqbsmNow.size()); |
|||
p2.setHuan(rqbsmNow.size()-rqbsmLast.size()); |
|||
Map<String,Long> btsbmNow=complaintStatisticsListNow.stream().collect(Collectors.groupingBy(ComplaintStatistics::getComplaintDepartmentId,Collectors.counting())); |
|||
Map<String,Long> btsbmLast=complaintStatisticsListLast.stream().collect(Collectors.groupingBy(ComplaintStatistics::getComplaintDepartmentId,Collectors.counting())); |
|||
StatisticsIndicatorPart p3=new StatisticsIndicatorPart(); |
|||
p3.setName("入企不扫码"); |
|||
p3.setTotal(btsbmNow.size()); |
|||
p3.setHuan(btsbmNow.size()-btsbmLast.size()); |
|||
StatisticsIndicatorPart p=new StatisticsIndicatorPart(); |
|||
List<StatisticsIndicatorPart> statisticsIndicatorPartList=new ArrayList<>(); |
|||
p.setName("执法投诉"); |
|||
statisticsIndicatorPartList.add(p1); |
|||
statisticsIndicatorPartList.add(p2); |
|||
statisticsIndicatorPartList.add(p2); |
|||
p.setStatisticsIndicatorPartList(statisticsIndicatorPartList); |
|||
return p; |
|||
} |
|||
|
|||
/** |
|||
* 当前时间处理--转换成beginTime和endTime的形式 |
|||
*/ |
|||
public StatisticsIndicatorPart nowDataMake(StatisticsIndicatorPart sip){ |
|||
LocalDate localDate=LocalDate.now(); |
|||
DateTimeFormatter str=DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
|||
StatisticsIndicatorPart statisticsIndicatorPart=new StatisticsIndicatorPart(); |
|||
if(sip.getYear()==null||"".equals(sip.getYear())){ |
|||
sip.setYear(localDate.getYear()+""); |
|||
} |
|||
if(sip.getMonth()!=null&&!"".equals(sip.getMonth())) { |
|||
LocalDate beginTime = localDate.withYear(Integer.valueOf(sip.getYear())).withMonth(Integer.valueOf(sip.getMonth())).withDayOfMonth(1); |
|||
LocalDate endTime = beginTime.with(TemporalAdjusters.lastDayOfMonth()); |
|||
statisticsIndicatorPart.setBeginTime(str.format(beginTime)); |
|||
statisticsIndicatorPart.setEndTime(str.format(endTime)); |
|||
}else if(sip.getQuarter()!=null&&!"".equals(sip.getQuarter())){ |
|||
LocalDate beginTime=LocalDate.now(); |
|||
LocalDate endTime=LocalDate.now(); |
|||
switch (sip.getQuarter()) { |
|||
case 1: |
|||
beginTime = localDate.withYear(Integer.valueOf(sip.getYear())).withMonth(1).withDayOfMonth(1); |
|||
endTime = beginTime.withMonth(3).with(TemporalAdjusters.lastDayOfMonth()); |
|||
break; |
|||
case 2: |
|||
beginTime = localDate.withYear(Integer.valueOf(sip.getYear())).withMonth(4).withDayOfMonth(1); |
|||
endTime = beginTime.withMonth(6).with(TemporalAdjusters.lastDayOfMonth()); |
|||
break; |
|||
case 3: |
|||
beginTime = localDate.withYear(Integer.valueOf(sip.getYear())).withMonth(7).withDayOfMonth(1); |
|||
endTime = beginTime.withMonth(9).with(TemporalAdjusters.lastDayOfMonth()); |
|||
break; |
|||
case 4: |
|||
beginTime = localDate.withYear(Integer.valueOf(sip.getYear())).withMonth(10).withDayOfMonth(1); |
|||
endTime = beginTime.withMonth(12).with(TemporalAdjusters.lastDayOfMonth()); |
|||
break; |
|||
} |
|||
statisticsIndicatorPart.setBeginTime(str.format(beginTime)); |
|||
statisticsIndicatorPart.setEndTime(str.format(endTime)); |
|||
}else { |
|||
LocalDate beginTime=localDate.withYear(Integer.valueOf(sip.getYear())).withMonth(1).withDayOfMonth(1); |
|||
LocalDate endTime = localDate.withYear(Integer.valueOf(sip.getYear())).withMonth(12).with(TemporalAdjusters.lastDayOfMonth()); |
|||
statisticsIndicatorPart.setBeginTime(str.format(beginTime)); |
|||
statisticsIndicatorPart.setEndTime(str.format(endTime)); |
|||
} |
|||
return statisticsIndicatorPart; |
|||
} |
|||
/** |
|||
* 上一时间处理--转换成beginTime和endTime的形式 |
|||
*/ |
|||
public StatisticsIndicatorPart lastDataMake(StatisticsIndicatorPart sip,String nowBeginData){ |
|||
DateTimeFormatter str3=DateTimeFormatter.ofPattern("MM"); |
|||
DateTimeFormatter str=DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
|||
LocalDate localDate= LocalDate.parse(nowBeginData, str); |
|||
StatisticsIndicatorPart statisticsIndicatorPart=new StatisticsIndicatorPart(); |
|||
if(sip.getMonth()!=null&&!"".equals(sip.getMonth())) { |
|||
LocalDate beginTime=localDate.minusMonths(1).withDayOfMonth(1); |
|||
LocalDate endTime = localDate.minusMonths(1).with(TemporalAdjusters.lastDayOfMonth()); |
|||
sip.setBeginTime(str.format(beginTime)); |
|||
sip.setEndTime(str.format(endTime)); |
|||
}else if(sip.getQuarter()!=null&&!"".equals(sip.getQuarter())){ |
|||
localDate=localDate.minusMonths(3); |
|||
int quarter=(int)Math.ceil(Double.valueOf(str3.format(localDate))/3); |
|||
LocalDate beginTime=localDate.withMonth(quarter*3-2).withDayOfMonth(1); |
|||
LocalDate endTime=localDate.withMonth(quarter*3).with(TemporalAdjusters.lastDayOfMonth()); |
|||
sip.setBeginTime(str.format(beginTime)); |
|||
sip.setEndTime(str.format(endTime)); |
|||
}else { |
|||
LocalDate beginTime=localDate.minusYears(1).withMonth(1).withDayOfMonth(1); |
|||
LocalDate endTime=localDate.minusYears(1).withMonth(12).with(TemporalAdjusters.lastDayOfMonth()); |
|||
sip.setBeginTime(str.format(beginTime)); |
|||
sip.setEndTime(str.format(endTime)); |
|||
} |
|||
return statisticsIndicatorPart; |
|||
} |
|||
} |
|||
|
|||
Loading…
Reference in new issue