2023年6月1日 问卷清洗

This commit is contained in:
bai 2023-06-01 00:57:53 +08:00
parent 9b59f710b1
commit 9628774517
4 changed files with 229 additions and 61 deletions

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.modules.kc.grab.SynchronizationService.base.BaseSync;
import org.jeecg.modules.kc.grab.imports.entity.Xxhbsynclog;
import org.jeecg.modules.kc.ktgl.entity.KcKetangbiao;
@ -60,7 +61,9 @@ public class SyncOldEvaluation extends BaseSync {
//----------------------------------纸质评价后台导入END------------------------------------------
Map<String,String> optionMap = Maps.newHashMap();
Map<String,String> queOptionMap = Maps.newHashMap();
Map<String,String> ansOptionMap = Maps.newHashMap();
/**
* 若参数变量名修改 QuartzJobController中也需对应修改
@ -80,6 +83,7 @@ public class SyncOldEvaluation extends BaseSync {
*/
public void run(Map<String, Object> param){
initOptionMap();
//旧版本
washOldData(param);
@ -95,16 +99,88 @@ public class SyncOldEvaluation extends BaseSync {
run(null);
}
public void initOptionMap (){
// optionMap.put("0","A");
// optionMap.put("1","B");
// optionMap.put("2","C");
// optionMap.put("3","D");
// optionMap.put("4","E");
//序号问题ID
queOptionMap.put("1","23");//讲课有热情精神饱满能调动学生情绪课堂气氛活跃
queOptionMap.put("2","24");//教学目标明确内容丰富重点突出语言表达清楚
queOptionMap.put("3","25");//授课有启发性能给予学生思考联想创新的启迪
queOptionMap.put("4","26");//能有效利用各种教学媒体课件或板书使用效果好
queOptionMap.put("5","27");//仪表得体按时上下课严格要求学生
queOptionMap.put("6","28");//无迟到早退旷课现象
queOptionMap.put("7","29");//课堂教学秩序好无喧闹打瞌睡发短信玩手机等现象
queOptionMap.put("8","30");//上课认真听讲积极思考主动与老师交流互动
queOptionMap.put("9","31");//课堂教学总体印象评价
queOptionMap.put("10","32");//对课堂内容以及其他方面的具体意见或建议
//queOptionMap.put("32", "");//对课堂内容以及其他方面的具体意见或建议
//问题ID-答案代号答案ID
ansOptionMap.put("23-A", "176");
ansOptionMap.put("23-B", "177");
ansOptionMap.put("23-C", "178");
ansOptionMap.put("23-D", "179");
ansOptionMap.put("23-E", "180");
ansOptionMap.put("24-A", "181");
ansOptionMap.put("24-B", "182");
ansOptionMap.put("24-C", "183");
ansOptionMap.put("24-D", "184");
ansOptionMap.put("24-E", "185");
ansOptionMap.put("25-A", "186");
ansOptionMap.put("25-B", "187");
ansOptionMap.put("25-C", "188");
ansOptionMap.put("25-D", "189");
ansOptionMap.put("25-E", "190");
ansOptionMap.put("26-A", "191");
ansOptionMap.put("26-B", "192");
ansOptionMap.put("26-C", "193");
ansOptionMap.put("26-D", "194");
ansOptionMap.put("26-E", "195");
ansOptionMap.put("27-A", "196");
ansOptionMap.put("27-B", "197");
ansOptionMap.put("27-C", "198");
ansOptionMap.put("27-D", "199");
ansOptionMap.put("27-E", "200");
ansOptionMap.put("28-A", "201");
ansOptionMap.put("28-B", "202");
ansOptionMap.put("28-C", "203");
ansOptionMap.put("28-D", "204");
ansOptionMap.put("28-E", "205");
ansOptionMap.put("29-A", "206");
ansOptionMap.put("29-B", "207");
ansOptionMap.put("29-C", "208");
ansOptionMap.put("29-D", "209");
ansOptionMap.put("29-E", "210");
ansOptionMap.put("30-A", "211");
ansOptionMap.put("30-B", "212");
ansOptionMap.put("30-C", "213");
ansOptionMap.put("30-D", "214");
ansOptionMap.put("30-E", "215");
ansOptionMap.put("31-A", "296");
ansOptionMap.put("31-B", "297");
ansOptionMap.put("31-C", "298");
ansOptionMap.put("31-D", "299");
ansOptionMap.put("31-E", "300");
}
public void washOldData(Map<String, Object> param) {
optionMap.put("0","A");
optionMap.put("1","B");
optionMap.put("2","C");
optionMap.put("3","D");
optionMap.put("4","E");
int source = 1;
//删除旧数据
QueryWrapper<KcEvaluation> kcEvaluation = new QueryWrapper<>();
kcEvaluation.eq("source",source);
kcEvaluationService.remove(kcEvaluation);
QueryWrapper<KcEvaluations> kcEvaluations = new QueryWrapper<>();
kcEvaluations.eq("source",source);
kcEvaluationsService.remove(kcEvaluations);
//查询数据
List<KcOldEvaluationans> inDataList = kcOldEvaluationansService.list();
List<KcEvaluation> saveMainList = Lists.newArrayList();
@ -114,7 +190,7 @@ public class SyncOldEvaluation extends BaseSync {
inDataList.forEach(x -> {
KcEvaluation main = new KcEvaluation();
main.setUpDate(DateUtil.parse(x.getPksj(),NORM_DATE_PATTERN));
main.setUpTime(DateUtil.parse(x.getPksj(),NORM_TIME_PATTERN));
// main.setUpTime(DateUtil.parse(x.getPksj(),NORM_TIME_PATTERN));//数据中没有时间
main.setUpTimestamp(x.getPksj());
main.setUpuser(x.getTkjs());
main.setUserid(x.getTkjgh());
@ -155,41 +231,45 @@ public class SyncOldEvaluation extends BaseSync {
saveMainList.add(main);
//子数据
//100004 2022-09-06 14:31:00 杨霞 2010900015 2022-09-06 14:31:42 193359 11 75 4568 0
String optionId1 = optionMap.get(x.getAns1());
String optionId2 = optionMap.get(x.getAns2());
String optionId3 = optionMap.get(x.getAns3());
String optionId4 = optionMap.get(x.getAns4());
String optionId5 = optionMap.get(x.getAns5());
String optionId6 = optionMap.get(x.getAns6());
String optionId7 = optionMap.get(x.getAns7());
String optionId8 = optionMap.get(x.getAns8());
String optionId9 = optionMap.get(x.getAns9());
// String optionId1 = queOptionMap.get(main.getAnswer1());
// String optionId2 = queOptionMap.get(main.getAnswer2());
// String optionId3 = queOptionMap.get(main.getAnswer3());
// String optionId4 = queOptionMap.get(main.getAnswer5());
// String optionId5 = queOptionMap.get(main.getAnswer6());
// String optionId6 = queOptionMap.get(main.getAnswer7());
// String optionId7 = queOptionMap.get(main.getAnswer8());
// String optionId8 = queOptionMap.get(main.getAnswer9());
// String optionId9 = queOptionMap.get(main.getAnswer10());
for (int i = 1; 9 >= i; i++){
String optionId = "";
String queid = source + "0" + i;
String ansKey = "";
switch (i) {
case 1: optionId = optionId1; break;
case 2: optionId = optionId2; break;
case 3: optionId = optionId3; break;
case 4: optionId = optionId4; break;
case 5: optionId = optionId5; break;
case 6: optionId = optionId6; break;
case 7: optionId = optionId7; break;
case 8: optionId = optionId8; break;
case 9: optionId = optionId9; break;
case 1: optionId = queOptionMap.get("1"); ansKey = main.getAnswer1(); break;
case 2: optionId = queOptionMap.get("2"); ansKey = main.getAnswer2(); break;
case 3: optionId = queOptionMap.get("3"); ansKey = main.getAnswer3(); break;
case 4: optionId = queOptionMap.get("4"); ansKey = main.getAnswer4(); break;
case 5: optionId = queOptionMap.get("5"); ansKey = main.getAnswer5(); break;
case 6: optionId = queOptionMap.get("6"); ansKey = main.getAnswer6(); break;
case 7: optionId = queOptionMap.get("7"); ansKey = main.getAnswer7(); break;
case 8: optionId = queOptionMap.get("8"); ansKey = main.getAnswer8(); break;
case 9: optionId = queOptionMap.get("9"); ansKey = main.getAnswer9(); break;
}
KcEvaluations child = new KcEvaluations();
child.setUpDate(DateUtil.parse(x.getPksj(),NORM_DATE_PATTERN));
child.setUpTime(DateUtil.parse(x.getPksj(),NORM_TIME_PATTERN));
// child.setUpTime(DateUtil.parse(x.getPksj(),NORM_TIME_PATTERN));
child.setUpTimestamp(x.getPksj());
child.setUpuser(x.getTkjs());
child.setUpuserid(x.getTkjgh());
child.setKetangbiaoid(ketangbiao.getId());//用上面的ID
child.setQueid(Integer.parseInt(queid));//问题ID
child.setAnsid(Integer.parseInt(queid+optionId));//答案ID
child.setQueid(Integer.parseInt(optionId));//问题ID
String ansId = ansOptionMap.get(optionId+"-"+ansKey);
if(StringUtils.equalsAny(ansId,"A","B","C","D","E")){
child.setAnsid(Integer.parseInt(ansId));//答案ID
}
// if(i == 10){
// child.setTextanscontent();//多行文本型答案内容

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.modules.kc.grab.SynchronizationService.base.BaseSync;
import org.jeecg.modules.kc.grab.imports.entity.Xxhbbkjxtkpj;
import org.jeecg.modules.kc.grab.imports.entity.Xxhbsynclog;
@ -63,7 +64,8 @@ public class SyncZwdtEvaluation extends BaseSync {
//----------------------------------纸质评价后台导入END------------------------------------------
Map<String,String> optionMap = Maps.newHashMap();
Map<String,String> queOptionMap = Maps.newHashMap();
Map<String,String> ansOptionMap = Maps.newHashMap();
/**
* 若参数变量名修改 QuartzJobController中也需对应修改
@ -83,6 +85,8 @@ public class SyncZwdtEvaluation extends BaseSync {
*/
public void run(Map<String, Object> param){
initOptionMap();
//旧版本
washOldData(param);
@ -98,16 +102,89 @@ public class SyncZwdtEvaluation extends BaseSync {
run(null);
}
public void initOptionMap (){
// optionMap.put("0","A");
// optionMap.put("1","B");
// optionMap.put("2","C");
// optionMap.put("3","D");
// optionMap.put("4","E");
//序号问题ID
queOptionMap.put("1","23");//讲课有热情精神饱满能调动学生情绪课堂气氛活跃
queOptionMap.put("2","24");//教学目标明确内容丰富重点突出语言表达清楚
queOptionMap.put("3","25");//授课有启发性能给予学生思考联想创新的启迪
queOptionMap.put("4","26");//能有效利用各种教学媒体课件或板书使用效果好
queOptionMap.put("5","27");//仪表得体按时上下课严格要求学生
queOptionMap.put("6","28");//无迟到早退旷课现象
queOptionMap.put("7","29");//课堂教学秩序好无喧闹打瞌睡发短信玩手机等现象
queOptionMap.put("8","30");//上课认真听讲积极思考主动与老师交流互动
queOptionMap.put("9","31");//课堂教学总体印象评价
queOptionMap.put("10","32");//对课堂内容以及其他方面的具体意见或建议
//queOptionMap.put("32", "");//对课堂内容以及其他方面的具体意见或建议
//问题ID-答案代号答案ID
ansOptionMap.put("23-A", "176");
ansOptionMap.put("23-B", "177");
ansOptionMap.put("23-C", "178");
ansOptionMap.put("23-D", "179");
ansOptionMap.put("23-E", "180");
ansOptionMap.put("24-A", "181");
ansOptionMap.put("24-B", "182");
ansOptionMap.put("24-C", "183");
ansOptionMap.put("24-D", "184");
ansOptionMap.put("24-E", "185");
ansOptionMap.put("25-A", "186");
ansOptionMap.put("25-B", "187");
ansOptionMap.put("25-C", "188");
ansOptionMap.put("25-D", "189");
ansOptionMap.put("25-E", "190");
ansOptionMap.put("26-A", "191");
ansOptionMap.put("26-B", "192");
ansOptionMap.put("26-C", "193");
ansOptionMap.put("26-D", "194");
ansOptionMap.put("26-E", "195");
ansOptionMap.put("27-A", "196");
ansOptionMap.put("27-B", "197");
ansOptionMap.put("27-C", "198");
ansOptionMap.put("27-D", "199");
ansOptionMap.put("27-E", "200");
ansOptionMap.put("28-A", "201");
ansOptionMap.put("28-B", "202");
ansOptionMap.put("28-C", "203");
ansOptionMap.put("28-D", "204");
ansOptionMap.put("28-E", "205");
ansOptionMap.put("29-A", "206");
ansOptionMap.put("29-B", "207");
ansOptionMap.put("29-C", "208");
ansOptionMap.put("29-D", "209");
ansOptionMap.put("29-E", "210");
ansOptionMap.put("30-A", "211");
ansOptionMap.put("30-B", "212");
ansOptionMap.put("30-C", "213");
ansOptionMap.put("30-D", "214");
ansOptionMap.put("30-E", "215");
ansOptionMap.put("31-5分", "296");
ansOptionMap.put("31-4分", "297");
ansOptionMap.put("31-3分", "298");
ansOptionMap.put("31-2分", "299");
ansOptionMap.put("31-1分", "300");
}
public void washOldData(Map<String, Object> param) {
optionMap.put("0","A");
optionMap.put("1","B");
optionMap.put("2","C");
optionMap.put("3","D");
optionMap.put("4","E");
int source = 2;
//删除旧数据
QueryWrapper<KcEvaluation> kcEvaluation = new QueryWrapper<>();
kcEvaluation.eq("source",source);
kcEvaluationService.remove(kcEvaluation);
QueryWrapper<KcEvaluations> kcEvaluations = new QueryWrapper<>();
kcEvaluations.eq("source",source);
kcEvaluationsService.remove(kcEvaluations);
//查询数据
List<Xxhbbkjxtkpj> inDataList = xxhbbkjxtkpjService.list();
List<KcEvaluation> saveMainList = Lists.newArrayList();
@ -124,13 +201,14 @@ public class SyncZwdtEvaluation extends BaseSync {
//main.setMinkcid(x.get);????好像得多条件查询 tkkcmc
QueryWrapper<KcKetangbiao> qwKeTang = new QueryWrapper<>();
qwKeTang.eq("kcmc",x.getTkkcmc());
qwKeTang.eq("kcbh",x.getKbbh());
// qwKeTang.eq("kcmc",x.getTkkcmc());
// qwKeTang.eq("kkdw",x.getKkdw());
// qwKeTang.eq("",x.getJgh());
qwKeTang.eq("skjs",x.getRkjs());
// qwKeTang.eq("skjs",x.getRkjs());
// qwKeTang.eq("sksj",x.getSksj());
// qwKeTang.eq("hh",x.getHh());
qwKeTang.eq("skdd",x.getTkjs());
// qwKeTang.eq("skdd",x.getTkjs());
// qwKeTang.eq("",x.getTkjgh());
// qwKeTang.eq("",x.getTkjs());
qwKeTang.last("limit 1");
@ -152,35 +230,37 @@ public class SyncZwdtEvaluation extends BaseSync {
main.setAnswer9(x.getZtpj());
main.setAnswer10(x.getQtyj());
main.setEvaluationver(0);//题版本
main.setEvaluationver(3);//题版本
main.setSource(source);//老版本
saveMainList.add(main);
//子数据
//100004 2022-09-06 14:31:00 杨霞 2010900015 2022-09-06 14:31:42 193359 11 75 4568 0
String optionId1 = optionMap.get(x.getJspg1());
String optionId2 = optionMap.get(x.getJspg2());
String optionId3 = optionMap.get(x.getJspg3());
String optionId4 = optionMap.get(x.getJspg4());
String optionId5 = optionMap.get(x.getJspg5());
String optionId6 = optionMap.get(x.getXspg1());
String optionId7 = optionMap.get(x.getXspg2());
String optionId8 = optionMap.get(x.getXspg3());
String optionId9 = optionMap.get(x.getZtpj());
// String optionId1 = queOptionMap.get(main.getAnswer1());
// String optionId2 = queOptionMap.get(main.getAnswer2());
// String optionId3 = queOptionMap.get(main.getAnswer3());
// String optionId4 = queOptionMap.get(main.getAnswer5());
// String optionId5 = queOptionMap.get(main.getAnswer6());
// String optionId6 = queOptionMap.get(main.getAnswer7());
// String optionId7 = queOptionMap.get(main.getAnswer8());
// String optionId8 = queOptionMap.get(main.getAnswer9());
// String optionId9 = queOptionMap.get(main.getAnswer10());
// String optionId10 = queOptionMap.get(main.getAnswer10());
for (int i = 1; 9 >= i; i++){
String optionId = "";
String queid = source + "0" + i;
String ansKey = "";
switch (i) {
case 1: optionId = optionId1; break;
case 2: optionId = optionId2; break;
case 3: optionId = optionId3; break;
case 4: optionId = optionId4; break;
case 5: optionId = optionId5; break;
case 6: optionId = optionId6; break;
case 7: optionId = optionId7; break;
case 8: optionId = optionId8; break;
case 9: optionId = optionId9; break;
case 1: optionId = queOptionMap.get("1"); ansKey = main.getAnswer1(); break;
case 2: optionId = queOptionMap.get("2"); ansKey = main.getAnswer2(); break;
case 3: optionId = queOptionMap.get("3"); ansKey = main.getAnswer3(); break;
case 4: optionId = queOptionMap.get("4"); ansKey = main.getAnswer4(); break;
case 5: optionId = queOptionMap.get("5"); ansKey = main.getAnswer5(); break;
case 6: optionId = queOptionMap.get("6"); ansKey = main.getAnswer6(); break;
case 7: optionId = queOptionMap.get("7"); ansKey = main.getAnswer7(); break;
case 8: optionId = queOptionMap.get("8"); ansKey = main.getAnswer8(); break;
case 9: optionId = queOptionMap.get("9"); ansKey = main.getAnswer9(); break;
// case 10: optionId = optionId10; ansKey = main.getAnswer10(); break;
}
KcEvaluations child = new KcEvaluations();
child.setUpDate(x.getTimestamps());
@ -190,8 +270,12 @@ public class SyncZwdtEvaluation extends BaseSync {
child.setUpuserid(x.getTkrgh());
child.setKetangbiaoid(ketangbiao.getId());//用上面的ID
child.setQueid(Integer.parseInt(queid));//问题ID
child.setAnsid(Integer.parseInt(queid+optionId));//答案ID
child.setQueid(Integer.parseInt(optionId));//问题ID
String ansId = ansOptionMap.get(optionId+"-"+ansKey);
if(StringUtils.equalsAny(ansId,"A","B","C","D","E")){
child.setAnsid(Integer.parseInt(ansId));//答案ID
}
// if(i == 10){
// child.setTextanscontent();//多行文本型答案内容

View File

@ -9,6 +9,8 @@ import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
@ -82,6 +84,8 @@ public class KcEvaluation implements Serializable {
private java.lang.String answer9;
/**答案10*/
@ApiModelProperty(value = "答案10")
//@MappedJdbcTypes(JdbcType.LONGVARCHAR)
//@TableField(jdbcType = JdbcType.LONGVARCHAR)
private java.lang.String answer10;
/**答案11*/
@ApiModelProperty(value = "答案11")

View File

@ -67,7 +67,7 @@ public class KcTksfrzbController extends JeecgController<KcTksfrzb, IKcTksfrzbSe
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<KcTksfrzb> queryWrapper = QueryGenerator.initQueryWrapper(kcTksfrzb, req.getParameterMap());
QueryWrapper<KcTksfrzb> queryWrapper = QueryGenerator.initQueryWrapper("kc_tksfrzb",kcTksfrzb, req.getParameterMap());
Page<KcTksfrzb> page = new Page<KcTksfrzb>(pageNo, pageSize);
IPage<KcTksfrzb> pageList = kcTksfrzbService.page(page, queryWrapper);
return Result.OK(pageList);