java代码实现新增人员统计:分别统计重点人员、劳务人员、管理人员考勤人数(数据展示不可编辑) 新增实际到场人员:支持重点人员、劳务人员、管理人员的实际到场人员更正(输入框,≥0、正整数或0) 是否发布:开启发布后,人员总数统计展示在【建设总览】“人员统计”;默认发布人员统计的考勤人员;人员统计和实际到场人员只支持发布其中一个,(例如:人员统计原本为发布状态,后又开启实际到场人员则需关闭人员统计)
时间: 2024-03-29 19:39:57 浏览: 12
以下是 Java 代码实现新增人员统计的示例:
```java
import java.util.HashMap;
import java.util.Map;
public class PersonCount {
private int keyPersonCount; // 重点人员考勤人数
private int laborPersonCount; // 劳务人员考勤人数
private int managePersonCount; // 管理人员考勤人数
private boolean isPublished; // 是否发布
private Map<String, Integer> keyPersonActualCount; // 重点人员实际到场人数
private Map<String, Integer> laborPersonActualCount; // 劳务人员实际到场人数
private Map<String, Integer> managePersonActualCount; // 管理人员实际到场人数
public PersonCount() {
this.keyPersonCount = 0;
this.laborPersonCount = 0;
this.managePersonCount = 0;
this.isPublished = false;
this.keyPersonActualCount = new HashMap<>();
this.laborPersonActualCount = new HashMap<>();
this.managePersonActualCount = new HashMap<>();
}
// 统计考勤人数
public void countPerson(int keyPersonCount, int laborPersonCount, int managePersonCount) {
this.keyPersonCount = keyPersonCount;
this.laborPersonCount = laborPersonCount;
this.managePersonCount = managePersonCount;
}
// 实际到场人数更正
public void updateActualCount(String personType, String personName, int actualCount) {
switch (personType) {
case "key":
keyPersonActualCount.put(personName, actualCount);
break;
case "labor":
laborPersonActualCount.put(personName, actualCount);
break;
case "manage":
managePersonActualCount.put(personName, actualCount);
break;
default:
System.out.println("Invalid person type!");
}
}
// 获取实际到场人数
public int getActualCount(String personType, String personName) {
int actualCount = 0;
switch (personType) {
case "key":
actualCount = keyPersonActualCount.getOrDefault(personName, 0);
break;
case "labor":
actualCount = laborPersonActualCount.getOrDefault(personName, 0);
break;
case "manage":
actualCount = managePersonActualCount.getOrDefault(personName, 0);
break;
default:
System.out.println("Invalid person type!");
}
return actualCount;
}
// 发布人员统计
public void publishCount() {
isPublished = true;
}
// 取消发布人员统计
public void unpublishCount() {
isPublished = false;
}
// 获取人员总数
public int getTotalCount() {
return keyPersonCount + laborPersonCount + managePersonCount;
}
}
```
此示例中,我们定义了 `PersonCount` 类来管理人员统计相关信息。该类包括以下属性:
- `keyPersonCount`:重点人员考勤人数
- `laborPersonCount`:劳务人员考勤人数
- `managePersonCount`:管理人员考勤人数
- `isPublished`:是否发布
- `keyPersonActualCount`:重点人员实际到场人数
- `laborPersonActualCount`:劳务人员实际到场人数
- `managePersonActualCount`:管理人员实际到场人数
我们还定义了以下方法:
- `countPerson`:统计考勤人数
- `updateActualCount`:实际到场人数更正
- `getActualCount`:获取实际到场人数
- `publishCount`:发布人员统计
- `unpublishCount`:取消发布人员统计
- `getTotalCount`:获取人员总数
当我们需要新增人员统计时,可以创建一个 `PersonCount` 对象,并调用相应的方法进行统计和数据更新。注意其中的数据展示不可编辑,因此我们只提供了相应的方法来获取数据。