3 changed files with 140 additions and 0 deletions
@ -1,4 +1,8 @@ |
|||||
package com.zdxt.code.service; |
package com.zdxt.code.service; |
||||
|
|
||||
|
import com.zdxt.code.domain.StatisticsIndicatorPart; |
||||
|
|
||||
public interface StatisticalPaneService { |
public interface StatisticalPaneService { |
||||
|
|
||||
|
StatisticsIndicatorPart complaint(StatisticsIndicatorPart statisticsIndicatorPart); |
||||
} |
} |
||||
|
|||||
@ -1,8 +1,141 @@ |
|||||
package com.zdxt.code.service.impl; |
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 com.zdxt.code.service.StatisticalPaneService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Service; |
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 |
@Service |
||||
public class StatisticalPaneImpl implements StatisticalPaneService { |
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