package com.project.report.service.impl; import com.project.common.core.domain.entity.SysDept; import com.project.common.core.domain.entity.SysUser; import com.project.common.vo.KeyVal; import com.project.enforce.domain.EnforceOrder; import com.project.enforce.service.IEnforceComplaintLogService; import com.project.enforce.service.IEnforceOrderService; import com.project.report.service.IReportService; import com.project.system.domain.SysCompany; import com.project.system.domain.SysDoc; import com.project.system.service.ISysCompanyService; import com.project.system.service.ISysDeptService; import com.project.system.service.ISysDocService; import com.project.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; /** * 功能描述: * * @author ZQN * @version 1.0 */ @Service @RequiredArgsConstructor public class ReportServiceImpl implements IReportService { private final ISysCompanyService companyService; private final ISysDeptService deptService; private final ISysUserService userService; private final ISysDocService docService; private final IEnforceOrderService orderService; private final IEnforceComplaintLogService complaintLogService; private final String[] months = {"1","2","3","4","5","6","7","8","9","10","11","12"}; @Override//汇总 public Map getTotalInfo() { int companyNum = companyService.count(companyService.lq().eq(SysCompany::getCompanyStatus, 0)); int enforceCompanyNum = orderService.count(orderService.lq().groupBy(EnforceOrder::getCompanyId)); int enforceDeptNum = deptService.count(deptService.lq().eq(SysDept::getParentId,100)); int enforceUserNum = userService.count(userService.lq().ne(SysUser::getUserType,"02")); int enforceOrderNum = orderService.count(); int complaintNum = complaintLogService.count(); int docNum = docService.count(docService.lq().eq(SysDoc::getDocStatus,0)); Map result = new HashMap<>(7); result.put("companyNum", companyNum); result.put("enforceCompanyNum", enforceCompanyNum); result.put("enforceDeptNum", enforceDeptNum); result.put("enforceUserNum", enforceUserNum); result.put("enforceOrderNum", enforceOrderNum); result.put("complaintNum", complaintNum); result.put("docNum", docNum); return result; } @Override//执法单位执法次数月度分布 public List getMonthCount(Long deptId) { List list = orderService.getMonthCount(deptId); Map resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV)); return Arrays.stream(months).map(e -> { KeyVal keyVal; if (resultMap.get(e) == null) { keyVal = new KeyVal(e, 0); } else { keyVal = new KeyVal(e, resultMap.get(e)); } return keyVal; }).collect(Collectors.toList()); } @Override//执法单位执法次数部门分布 public List getDeptCount(String yearMonth) { List list = orderService.getDeptCount(yearMonth); Map resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV)); List depts = deptService.list(deptService.lq().eq(SysDept::getParentId, 100)); return depts.stream().map(e -> { KeyVal keyVal; if (resultMap.get(e.getDeptId().toString()) == null) { keyVal = new KeyVal(e.getDeptName(), 0); } else { keyVal = new KeyVal(e.getDeptName(), resultMap.get(e.getDeptId().toString())); } return keyVal; }).collect(Collectors.toList()); } }