diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index a490d63..30e1890 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -8,11 +8,15 @@ import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.service.IReportService; import com.lyms.platform.operate.web.utils.MathUtil; import com.lyms.platform.operate.web.utils.ResponseUtil; +import com.lyms.platform.operate.web.utils.SystemDataSource; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.*; /** @@ -31,6 +35,9 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService private static final Map colorMap = new HashMap<>(); + @Autowired + private SystemDataSource db; + static { colorMap.put("绿色预警", "#50e39f"); colorMap.put("黄色预警", "#ffd84d"); @@ -261,10 +268,39 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService BaseObjectResponse rest = new BaseObjectResponse(); List params = new ArrayList<>(); String hospitalId = autoMatchFacade.getHospitalId(userId); - PageResult page = findPage(getDoctorInfoSql(startDate, endDate, childBirth, number, name, hospitalId, params), currentPage, pageSize, params); - List> grid = (List>) page.getGrid(); - setColor(grid); - rest.setData(page); + + StringBuilder countSql = new StringBuilder(); + String sql = getDoctorInfoSql(startDate, endDate, childBirth, number, name, hospitalId, params); + countSql.append("select count(1) from ( ") + .append(sql) + .append(" )"); + PreparedStatement pstmt = null; + try { + pstmt = db.getDataSource().getConnection().prepareStatement(countSql.toString()); + for (int i = 1; i <= params.size(); i++) { + pstmt.setString(i, params.get(i - 1).toString()); + } + ResultSet rs = pstmt.executeQuery(); + rs.next(); + int count = rs.getInt(1); + + List> rows = reportDao.findList(sql, currentPage, pageSize, params); + + PageResult pageResult = new PageResult(count, currentPage, pageSize, rows); + List> grid = (List>) pageResult.getGrid(); + setColor(grid); + rest.setData(pageResult); + } catch (SQLException e) { + e.printStackTrace(); + rest.setErrorcode(500); + rest.setErrormsg(e.getMessage()); + } + + + // PageResult page = findPage(getDoctorInfoSql(startDate, endDate, childBirth, number, name, hospitalId, params), currentPage, pageSize, params); +// List> grid = (List>) page.getGrid(); +// setColor(grid); +// rest.setData(page); return rest; }