kgdxpr 2 years ago
commit e1637cf43d

@ -0,0 +1,38 @@
# Q:如何知道有新的填报任务需要我来填报?
答:
1、利用微信公众号来通知让各学校的数据填报人员校办干事不再继续细分统一由校办干事填报
2、步骤如下
微信公众号->装备中心公众号->侯文瑞老师维护(也可以委托给东师理想维护)->发布一条各校填报任务的消息,
同时,配置公众号菜单中 XXXX数据汇集 的链接为 http://www.ccsjy.cn/QingLong/collectFillJobLogin.html?job_id=2
# Q:填报的工作流程是什么?
各学校的校办干事关注公众号有新消息后如果是form 表单式填报任务,可以选择在手机端公众号菜单中链接
也可以选择在PC端通过电脑来进行填报。
如果是excel上传的填报任务就必须选择在PC端通过电脑来进行填报在手机端上无法完成此种类型的填报任务。
# Q:研发人员需要注意什么
collectFillJobLogin.html 需要开发就是把PC端的登录页面去掉验证码写死成万能验证码dsideal同时登录时需要记录
username,password到localStage中下次登录时检查是不是localStage上存在记录过的username和password,有的话,则优先用
存储过的用户名和密码进行登录尝试如果不存在则显示登录页面。一旦用户完成了登录就转到job_id=2的填报页面去。
用户完成填报后如果未到截止时间可以修改到了截止时间进入后显示本次填报任务已截止您的填报内容是xxxx,不用再修改了。
# Q:如何才能支持多级填报任务?比如市教育局下发的填报任务,需要市直属学校、市直属教辅单位、各县区教育局下各学校,各县区属教辅
单位来完成填报?
答: 目前设计了 市资产管理干事 角色为市级任务发起人。可以根据它的parent_id值知道它是市级还是县区级。
市级下发的任务,只能是发给市直属学校、市直教辅单位、各县区教育局,不能跨级发给各县区教育局下的学校、教辅单位。
我们需要给发布填报任务配置一个富文本的任务填报说明材料功能,让用户说清楚这个填报任务需要哪些单位进行填报,开始与截止时间,注意
事项,是否需要转发给下一级等问题,也就是一个类似于通知的东西,现在这个东西是缺失的,需要补充上。
在县区教育局 县区资产管理干事 收到填报任务时,可以使用“转发任务”功能,选择发布范围,让区县下的学校或教辅单位看到这份填报任务,并且完成填报工作。
县区教育局应该设计角色 :县区资产管理干事,这个角色的职能不是填报,而是转发任务、查看任务填报进度、查看任务填报结果等职能。
对于县区资产管理干事也是需要提供下发多级任务的统计大表和填充完成情况的统计大表也用jimuReport开发但在挂到菜单上时不能直接
挂载jimuReport的链接的需要先链接到action,然后获取当前人员的area_id,然后再redirect到jimuReport报表将area_id做为参数传递过去。
无论是市级单位,还是县区级单位,都有一个 校办干事 角色,它是专门来执行填报工作的。
整体思路:
我们不急于开发面向教师、学生的填报功能,先要把面向单位填报的所有细节打磨好,思考清楚支持多级填报工作的流程。
在我们认为面向单位的填报改无可改时,再考虑下一步的面向人员的功能扩展,这样也就会水到渠成。

@ -47,51 +47,56 @@ public class LoginPersonController extends Controller {
renderJson(resultJson);
return;
}
if (SessionKit.get(getRequest(), getResponse(), "captcha") == null) {
resultJson.put("success", false);
resultJson.put("msg", "在浏览器会话中没有检查到验证码,你的行为将会记录!");
renderJson(resultJson);
return;
}
String memory_captcha = SessionKit.get(getRequest(), getResponse(), "captcha");
//验证码错误次数
String checkCodeKey = "Yzm_error_" + username;
int CheckCodeErrCnt = 4; //最多允许错几次 4+1
int CheckCodecntNum = 0; //错几次了
if (RedisKit.Exists(checkCodeKey))
CheckCodecntNum = Integer.parseInt(RedisKit.Get(checkCodeKey));
if (CheckCodecntNum > CheckCodeErrCnt) {
resultJson.put("success", false);
resultJson.put("msg", "账号已被停用5分钟请稍后再试");
renderJson(resultJson);
return;
}
if (!memory_captcha.equals(captcha.toLowerCase())) {
CheckCodecntNum = 1;
if (RedisKit.Exists(checkCodeKey))
CheckCodecntNum = Integer.parseInt(RedisKit.Get(checkCodeKey)) + CheckCodecntNum;
int finalCheckCodecntNum = CheckCodecntNum;
RedisKit.incrBy(checkCodeKey, finalCheckCodecntNum);
RedisKit.Expire(checkCodeKey, 60 * 5);
if (CheckCodecntNum == CheckCodeErrCnt) {
String checkCodeKey = "";
//万能验证码:dsideal
if (!captcha.equals("dsideal")) {
if (SessionKit.get(getRequest(), getResponse(), "captcha") == null) {
resultJson.put("success", false);
resultJson.put("msg", "验证码连续输入错误" + CheckCodecntNum + "次再错误一次将被封号5分钟");
resultJson.put("msg", "在浏览器会话中没有检查到验证码,你的行为将会记录!");
renderJson(resultJson);
return;
}
String memory_captcha = SessionKit.get(getRequest(), getResponse(), "captcha");
//验证码错误次数
checkCodeKey = "Yzm_error_" + username;
int CheckCodeErrCnt = 4; //最多允许错几次 4+1
int CheckCodecntNum = 0; //错几次了
if (RedisKit.Exists(checkCodeKey))
CheckCodecntNum = Integer.parseInt(RedisKit.Get(checkCodeKey));
if (CheckCodecntNum > CheckCodeErrCnt) {
resultJson.put("success", false);
resultJson.put("msg", "验证码连续输入错误5次账号被停用5分钟请稍后再试");
resultJson.put("msg", "账号已被停用5分钟请稍后再试");
renderJson(resultJson);
return;
}
if (!memory_captcha.equals(captcha.toLowerCase())) {
CheckCodecntNum = 1;
if (RedisKit.Exists(checkCodeKey))
CheckCodecntNum = Integer.parseInt(RedisKit.Get(checkCodeKey)) + CheckCodecntNum;
int finalCheckCodecntNum = CheckCodecntNum;
RedisKit.incrBy(checkCodeKey, finalCheckCodecntNum);
RedisKit.Expire(checkCodeKey, 60 * 5);
if (CheckCodecntNum == CheckCodeErrCnt) {
resultJson.put("success", false);
resultJson.put("msg", "验证码连续输入错误" + CheckCodecntNum + "次再错误一次将被封号5分钟");
renderJson(resultJson);
return;
}
if (CheckCodecntNum > CheckCodeErrCnt) {
resultJson.put("success", false);
resultJson.put("msg", "验证码连续输入错误5次账号被停用5分钟请稍后再试");
renderJson(resultJson);
return;
}
resultJson.put("success", false);
resultJson.put("msg", "验证码不正确!");
renderJson(resultJson);
return;
}
resultJson.put("success", false);
resultJson.put("msg", "验证码不正确!");
renderJson(resultJson);
return;
}
if (StrKit.isBlank(username)) {
resultJson.put("success", false);
resultJson.put("msg", "用户名不允许为空!");

Loading…
Cancel
Save