ViewCommitteeProductivity.java
/*
* Copyright 2010-2025 James Pether Sörling
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* $Id$
* $HeadURL$
*/
package com.hack23.cia.model.internal.application.data.committee.impl;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* JPA entity for view_committee_productivity database view.
*
* Intelligence Purpose: Comprehensive committee productivity and efficiency metrics
* combining membership, decisions, documents, and ballots to generate productivity scores
* and identify performance concerns.
*
* Created by: Database schema v1.0+
* Risk Rules Supported: C-01 through C-04 (Committee performance rules)
*
* Enables identification of underperforming committees and operational bottlenecks
* through multi-dimensional productivity analysis.
*/
@Entity(name = "ViewCommitteeProductivity")
@Table(name = "view_committee_productivity")
public class ViewCommitteeProductivity implements Serializable {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 1L;
/** The committee code. */
@Id
@Column(name = "committee_code", nullable = false, length = 255)
private String committeeCode;
/** The committee name. */
@Column(name = "committee_name", length = 255)
private String committeeName;
/** The total members. */
@Column(name = "total_members")
private Long totalMembers;
/** The chairs count. */
@Column(name = "chairs_count")
private Long chairsCount;
/** The vice chairs count. */
@Column(name = "vice_chairs_count")
private Long viceChairsCount;
/** The regular members. */
@Column(name = "regular_members")
private Long regularMembers;
/** The substitutes. */
@Column(name = "substitutes")
private Long substitutes;
/** The staffing status. */
@Column(name = "staffing_status", length = 50)
private String staffingStatus;
/** The total decisions all time. */
@Column(name = "total_decisions_all_time")
private Long totalDecisionsAllTime;
/** The decisions last year. */
@Column(name = "decisions_last_year")
private Long decisionsLastYear;
/** The decisions last month. */
@Column(name = "decisions_last_month")
private Long decisionsLastMonth;
/** The latest decision date. */
@Column(name = "latest_decision_date")
@Temporal(TemporalType.DATE)
private Date latestDecisionDate;
/** The days since last decision. */
@Column(name = "days_since_last_decision")
private Integer daysSinceLastDecision;
/** The total documents. */
@Column(name = "total_documents")
private Long totalDocuments;
/** The documents last year. */
@Column(name = "documents_last_year")
private Long documentsLastYear;
/** The motions count. */
@Column(name = "motions_count")
private Long motionsCount;
/** The propositions count. */
@Column(name = "propositions_count")
private Long propositionsCount;
/** The reports count. */
@Column(name = "reports_count")
private Long reportsCount;
/** The decisions per member. */
@Column(name = "decisions_per_member", precision = 10, scale = 2)
private BigDecimal decisionsPerMember;
/** The documents per member. */
@Column(name = "documents_per_member", precision = 10, scale = 2)
private BigDecimal documentsPerMember;
/** The ballots decided last year. */
@Column(name = "ballots_decided_last_year")
private Long ballotsDecidedLastYear;
/** The avg approval rate. */
@Column(name = "avg_approval_rate", precision = 10, scale = 2)
private BigDecimal avgApprovalRate;
/** The productivity score. */
@Column(name = "productivity_score", precision = 10, scale = 2)
private BigDecimal productivityScore;
/** The productivity level. */
@Column(name = "productivity_level", length = 50)
private String productivityLevel;
/** The performance concerns. */
@Column(name = "performance_concerns", length = 500)
private String performanceConcerns;
/** The recommendation. */
@Column(name = "recommendation", length = 500)
private String recommendation;
/**
* Instantiates a new view committee productivity.
*/
public ViewCommitteeProductivity() {
super();
}
/**
* Gets the committee code.
*
* @return the committee code
*/
public String getCommitteeCode() {
return committeeCode;
}
/**
* Sets the committee code.
*
* @param committeeCode the new committee code
*/
public void setCommitteeCode(final String committeeCode) {
this.committeeCode = committeeCode;
}
/**
* Gets the committee name.
*
* @return the committee name
*/
public String getCommitteeName() {
return committeeName;
}
/**
* Sets the committee name.
*
* @param committeeName the new committee name
*/
public void setCommitteeName(final String committeeName) {
this.committeeName = committeeName;
}
/**
* Gets the total members.
*
* @return the total members
*/
public Long getTotalMembers() {
return totalMembers;
}
/**
* Sets the total members.
*
* @param totalMembers the new total members
*/
public void setTotalMembers(final Long totalMembers) {
this.totalMembers = totalMembers;
}
/**
* Gets the chairs count.
*
* @return the chairs count
*/
public Long getChairsCount() {
return chairsCount;
}
/**
* Sets the chairs count.
*
* @param chairsCount the new chairs count
*/
public void setChairsCount(final Long chairsCount) {
this.chairsCount = chairsCount;
}
/**
* Gets the vice chairs count.
*
* @return the vice chairs count
*/
public Long getViceChairsCount() {
return viceChairsCount;
}
/**
* Sets the vice chairs count.
*
* @param viceChairsCount the new vice chairs count
*/
public void setViceChairsCount(final Long viceChairsCount) {
this.viceChairsCount = viceChairsCount;
}
/**
* Gets the regular members.
*
* @return the regular members
*/
public Long getRegularMembers() {
return regularMembers;
}
/**
* Sets the regular members.
*
* @param regularMembers the new regular members
*/
public void setRegularMembers(final Long regularMembers) {
this.regularMembers = regularMembers;
}
/**
* Gets the substitutes.
*
* @return the substitutes
*/
public Long getSubstitutes() {
return substitutes;
}
/**
* Sets the substitutes.
*
* @param substitutes the new substitutes
*/
public void setSubstitutes(final Long substitutes) {
this.substitutes = substitutes;
}
/**
* Gets the staffing status.
*
* @return the staffing status
*/
public String getStaffingStatus() {
return staffingStatus;
}
/**
* Sets the staffing status.
*
* @param staffingStatus the new staffing status
*/
public void setStaffingStatus(final String staffingStatus) {
this.staffingStatus = staffingStatus;
}
/**
* Gets the total decisions all time.
*
* @return the total decisions all time
*/
public Long getTotalDecisionsAllTime() {
return totalDecisionsAllTime;
}
/**
* Sets the total decisions all time.
*
* @param totalDecisionsAllTime the new total decisions all time
*/
public void setTotalDecisionsAllTime(final Long totalDecisionsAllTime) {
this.totalDecisionsAllTime = totalDecisionsAllTime;
}
/**
* Gets the decisions last year.
*
* @return the decisions last year
*/
public Long getDecisionsLastYear() {
return decisionsLastYear;
}
/**
* Sets the decisions last year.
*
* @param decisionsLastYear the new decisions last year
*/
public void setDecisionsLastYear(final Long decisionsLastYear) {
this.decisionsLastYear = decisionsLastYear;
}
/**
* Gets the decisions last month.
*
* @return the decisions last month
*/
public Long getDecisionsLastMonth() {
return decisionsLastMonth;
}
/**
* Sets the decisions last month.
*
* @param decisionsLastMonth the new decisions last month
*/
public void setDecisionsLastMonth(final Long decisionsLastMonth) {
this.decisionsLastMonth = decisionsLastMonth;
}
/**
* Gets the latest decision date.
*
* @return the latest decision date
*/
public Date getLatestDecisionDate() {
return latestDecisionDate;
}
/**
* Sets the latest decision date.
*
* @param latestDecisionDate the new latest decision date
*/
public void setLatestDecisionDate(final Date latestDecisionDate) {
this.latestDecisionDate = latestDecisionDate;
}
/**
* Gets the days since last decision.
*
* @return the days since last decision
*/
public Integer getDaysSinceLastDecision() {
return daysSinceLastDecision;
}
/**
* Sets the days since last decision.
*
* @param daysSinceLastDecision the new days since last decision
*/
public void setDaysSinceLastDecision(final Integer daysSinceLastDecision) {
this.daysSinceLastDecision = daysSinceLastDecision;
}
/**
* Gets the total documents.
*
* @return the total documents
*/
public Long getTotalDocuments() {
return totalDocuments;
}
/**
* Sets the total documents.
*
* @param totalDocuments the new total documents
*/
public void setTotalDocuments(final Long totalDocuments) {
this.totalDocuments = totalDocuments;
}
/**
* Gets the documents last year.
*
* @return the documents last year
*/
public Long getDocumentsLastYear() {
return documentsLastYear;
}
/**
* Sets the documents last year.
*
* @param documentsLastYear the new documents last year
*/
public void setDocumentsLastYear(final Long documentsLastYear) {
this.documentsLastYear = documentsLastYear;
}
/**
* Gets the motions count.
*
* @return the motions count
*/
public Long getMotionsCount() {
return motionsCount;
}
/**
* Sets the motions count.
*
* @param motionsCount the new motions count
*/
public void setMotionsCount(final Long motionsCount) {
this.motionsCount = motionsCount;
}
/**
* Gets the propositions count.
*
* @return the propositions count
*/
public Long getPropositionsCount() {
return propositionsCount;
}
/**
* Sets the propositions count.
*
* @param propositionsCount the new propositions count
*/
public void setPropositionsCount(final Long propositionsCount) {
this.propositionsCount = propositionsCount;
}
/**
* Gets the reports count.
*
* @return the reports count
*/
public Long getReportsCount() {
return reportsCount;
}
/**
* Sets the reports count.
*
* @param reportsCount the new reports count
*/
public void setReportsCount(final Long reportsCount) {
this.reportsCount = reportsCount;
}
/**
* Gets the decisions per member.
*
* @return the decisions per member
*/
public BigDecimal getDecisionsPerMember() {
return decisionsPerMember;
}
/**
* Sets the decisions per member.
*
* @param decisionsPerMember the new decisions per member
*/
public void setDecisionsPerMember(final BigDecimal decisionsPerMember) {
this.decisionsPerMember = decisionsPerMember;
}
/**
* Gets the documents per member.
*
* @return the documents per member
*/
public BigDecimal getDocumentsPerMember() {
return documentsPerMember;
}
/**
* Sets the documents per member.
*
* @param documentsPerMember the new documents per member
*/
public void setDocumentsPerMember(final BigDecimal documentsPerMember) {
this.documentsPerMember = documentsPerMember;
}
/**
* Gets the ballots decided last year.
*
* @return the ballots decided last year
*/
public Long getBallotsDecidedLastYear() {
return ballotsDecidedLastYear;
}
/**
* Sets the ballots decided last year.
*
* @param ballotsDecidedLastYear the new ballots decided last year
*/
public void setBallotsDecidedLastYear(final Long ballotsDecidedLastYear) {
this.ballotsDecidedLastYear = ballotsDecidedLastYear;
}
/**
* Gets the avg approval rate.
*
* @return the avg approval rate
*/
public BigDecimal getAvgApprovalRate() {
return avgApprovalRate;
}
/**
* Sets the avg approval rate.
*
* @param avgApprovalRate the new avg approval rate
*/
public void setAvgApprovalRate(final BigDecimal avgApprovalRate) {
this.avgApprovalRate = avgApprovalRate;
}
/**
* Gets the productivity score.
*
* @return the productivity score
*/
public BigDecimal getProductivityScore() {
return productivityScore;
}
/**
* Sets the productivity score.
*
* @param productivityScore the new productivity score
*/
public void setProductivityScore(final BigDecimal productivityScore) {
this.productivityScore = productivityScore;
}
/**
* Gets the productivity level.
*
* @return the productivity level
*/
public String getProductivityLevel() {
return productivityLevel;
}
/**
* Sets the productivity level.
*
* @param productivityLevel the new productivity level
*/
public void setProductivityLevel(final String productivityLevel) {
this.productivityLevel = productivityLevel;
}
/**
* Gets the performance concerns.
*
* @return the performance concerns
*/
public String getPerformanceConcerns() {
return performanceConcerns;
}
/**
* Sets the performance concerns.
*
* @param performanceConcerns the new performance concerns
*/
public void setPerformanceConcerns(final String performanceConcerns) {
this.performanceConcerns = performanceConcerns;
}
/**
* Gets the recommendation.
*
* @return the recommendation
*/
public String getRecommendation() {
return recommendation;
}
/**
* Sets the recommendation.
*
* @param recommendation the new recommendation
*/
public void setRecommendation(final String recommendation) {
this.recommendation = recommendation;
}
@Override
public boolean equals(final Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}
}