1
创新互联主要从事成都做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务振安,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
public class TestRandom {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = 0;
int b = 0;
System.out.println("即将上班,请签到...");
System.out.println("请假或签到...");
while (true) {
String line = s.next();
if("签到".equals(line.trim())){
a++;
System.out.println("有" + a +"员工签到");
}else if("请假".equals(line.trim())){
b++;
System.out.println("有" + b +"员工请假");
}else{
System.out.println("输入有误,请重新输入");
}
}
}
}
要代码这个分肯定不够。不过思路可以说下。
1、提供一个二维码生成接口,为保证时效性和安全性,二维码应该是后台生成,并带有时间戳。
2、点击二维码重新从后台获取新的二维码。
3、二维码的内容有很多种,根据不同的客户端(用户用什么签到)载体来进行确定,比如用微信扫一扫签到,则二维码内容肯定是URL。
4、签到即调用后台接口,将扫到的码内容传到后台进行匹配校验。
签到的时候,把这7天的签到记录查出来,只要全部都签到了,就再加25积分
不过循环遍历时候要判断是不是一天内重复的记录
最后统计少了一条签到记录就不算
sql大概可以这么统计吧,查询七天内的签到记录以签到时间的年月日格式分组(不太懂mysql,大概意思意思)
select count(1) from xxxxxxx where signin_time= date_add(now(), interval 6 day) group by date_format(signi_time,'%Y%m%d');
把签到信息存到一个签到表里,签到表关联用户ID,有签到日期,每天的签到就是一条记录,积分挂在用户信息表中,再来个积分日志表,积分发生变动就记录进去,比如获得积分或花了积分了。积分等级想复杂点了就来个积分等级表,里面存的是规则,想简单了就在积分余额字段后面再加个字段标记当前积分等级,甚至在前端当场计算都行
给点个人意见。第一张表应该是id 帐户 考勤日期,不管签到签退都把数据插入第一张表。
第二张表不需要。你的设计不仅允余,而且没有考虑从考勤机导入数据的情况。
此外你还要设计一张表记录法定假日等非工作时间。
设计的难点在于通过考勤记录表和工作时间设定来计算考勤结果,这些需要你自己来思考。