2023年6月19日 修复统计功能

This commit is contained in:
bai 2023-06-19 23:17:28 +08:00
parent a646537084
commit 59869baa6b
4 changed files with 137 additions and 35 deletions

View File

@ -0,0 +1,76 @@
package org.jeecg.modules.kc.grab.SynchronizationService;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
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.SynchronizationService.tools.ChangeTingKeTongJi;
import org.jeecg.modules.kc.grab.imports.entity.Xxhbbkjxtkpj;
import org.jeecg.modules.kc.grab.imports.entity.Xxhbsynclog;
import org.jeecg.modules.kc.grab.imports.service.IXxhbbkjxtkpjService;
import org.jeecg.modules.kc.ktgl.entity.KcKetangbiao;
import org.jeecg.modules.kc.ktgl.service.IKcKetangbiaoService;
import org.jeecg.modules.kc.qa.entity.KcEvaluation;
import org.jeecg.modules.kc.qa.entity.KcEvaluations;
import org.jeecg.modules.kc.qa.service.IKcEvaluationService;
import org.jeecg.modules.kc.qa.service.IKcEvaluationansService;
import org.jeecg.modules.kc.qa.service.IKcEvaluationqueService;
import org.jeecg.modules.kc.qa.service.IKcEvaluationsService;
import org.quartz.JobExecutionContext;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 同步旧版本调查问卷
*/
@Slf4j
public class SyncTingKeTongJi extends BaseSync {
@Autowired
private ChangeTingKeTongJi changeTingKeTongJi;
//----------------------------------旧系统------------------------------------------
/**
* 若参数变量名修改 QuartzJobController中也需对应修改
*/
@Override
public void execute(JobExecutionContext jobExecutionContext) {
start();
run(getParamMap());
end();
}
/**
* 有参定时任务实现
* @param param
*/
public void run(Map<String, Object> param){
String xqxn = "";
if(param != null){
if(param.containsKey("xqxn")){
xqxn = (String)param.get("xqxn");
}
}
changeTingKeTongJi.changeTingKeTongji(xqxn);
}
/**
* 无参定时任务实现
*/
public void run(){
run(null);
}
}

View File

@ -14,6 +14,8 @@ import org.jeecg.modules.kc.grab.imports.entity.Xxhbuser;
import org.jeecg.modules.kc.grab.imports.service.IXxhbuserService; import org.jeecg.modules.kc.grab.imports.service.IXxhbuserService;
import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig; import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig;
import org.jeecg.modules.kc.kcSysConfig.service.IKcSysConfigService; import org.jeecg.modules.kc.kcSysConfig.service.IKcSysConfigService;
import org.jeecg.modules.kc.kcXqxnHistory.entity.KcXqxnHistory;
import org.jeecg.modules.kc.kcXqxnHistory.service.IKcXqxnHistoryService;
import org.jeecg.modules.kc.qa.entity.KcEvaluation; import org.jeecg.modules.kc.qa.entity.KcEvaluation;
import org.jeecg.modules.kc.qa.service.IKcEvaluationService; import org.jeecg.modules.kc.qa.service.IKcEvaluationService;
import org.jeecg.modules.kc.tksf.kctkcstj.entity.KcTkcstj; import org.jeecg.modules.kc.tksf.kctkcstj.entity.KcTkcstj;
@ -38,8 +40,7 @@ import java.util.Set;
public class ChangeTingKeTongJi { public class ChangeTingKeTongJi {
@Autowired @Autowired
private IKcSysConfigService kcSysConfigService; private IKcXqxnHistoryService kcXqxnHistoryService;
@Autowired @Autowired
private IKcTkcstjService kcTkcstjService; private IKcTkcstjService kcTkcstjService;
@ -49,29 +50,45 @@ public class ChangeTingKeTongJi {
@Autowired @Autowired
private IXxhbuserService xxhbuserService; private IXxhbuserService xxhbuserService;
@Autowired
private IKcEvaluationService kcEvaluationService;//正在使用问题回答主表
@Autowired @Autowired
private IKcTingkeService kcTingkeService; private IKcTingkeService kcTingkeService;
public KcSysConfig getXqConfig(){
return kcSysConfigService.getById("1");
public KcXqxnHistory getXqConfig(){
return getXqConfig(null);
}
public KcXqxnHistory getXqConfig(String xqxn){
QueryWrapper<KcXqxnHistory> qw = new QueryWrapper<>();
qw.eq(StringUtils.isNotBlank(xqxn),"title",xqxn);
qw.orderByDesc("end_time");
qw.last("limit 1");
return kcXqxnHistoryService.getOne(qw);
} }
public void changeTingKeTongji(){ public void changeTingKeTongji(){
//全部 updateTingKeTongJiByUserId(null,null);
updateTingKeTongJiByUserId(null); }
public void changeTingKeTongji(String xqxn){
updateTingKeTongJiByUserId(xqxn,null);
} }
public void updateTingKeTongJiByUserId(String userId){ public void updateTingKeTongJiByUserId(String userId){
KcSysConfig common = getXqConfig(); updateTingKeTongJiByUserId(null,userId);
}
public void updateTingKeTongJiByUserId(String xqxnt, String userId){
KcXqxnHistory common = getXqConfig(xqxnt);
if(common != null) { if(common != null) {
//Map<String, KcTkcstj> tongJiMap = Maps.newHashMap(); //Map<String, KcTkcstj> tongJiMap = Maps.newHashMap();
//清洗数据核心 //清洗数据核心
String startSj = common.getBxqkssj(); Date startSjDate = common.getStartTime();
String endSj = common.getBxqjssj(); Date endSjDate = common.getEndTime();
String xqxn = common.getFlag1(); String startSj = DateUtil.format(startSjDate,DatePattern.NORM_DATETIME_FORMAT);
String endSj = DateUtil.format(endSjDate,DatePattern.NORM_DATETIME_FORMAT);
String xqxn = common.getTitle();
Set<String> tjSet = Sets.newHashSet(); Set<String> tjSet = Sets.newHashSet();
//此法会造成数据变多改为新方法统计 //此法会造成数据变多改为新方法统计
@ -101,21 +118,19 @@ public class ChangeTingKeTongJi {
// } // }
// }); // });
QueryWrapper<KcEvaluation> evaQw = new QueryWrapper<>(); QueryWrapper<KcTingke> evaQw = new QueryWrapper<>();
evaQw.select("count(upuserid) as pkNum,upuserid"); evaQw.select("count(userid) as pkNum,userid");
evaQw.eq(StringUtils.isNotBlank(userId),"upuserid",userId); evaQw.eq(StringUtils.isNotBlank(userId),"userid",userId);
evaQw.apply("up_date >= STR_TO_DATE('"+ startSj +"', '%Y-%m-%d') "); evaQw.apply("tingketime >= STR_TO_DATE('"+ startSj +"', '%Y-%m-%d') ");
evaQw.apply("up_date <= STR_TO_DATE('"+ endSj +"', '%Y-%m-%d') "); evaQw.apply("tingketime <= STR_TO_DATE('"+ endSj +"', '%Y-%m-%d') ");
evaQw.isNotNull("minkcid"); evaQw.isNotNull("kechengbiaoid");
evaQw.groupBy("upuserid"); evaQw.groupBy("userid");
evaQw.orderByAsc("up_date"); evaQw.orderByAsc("tingketime");
List<KcEvaluation> countTjList = kcEvaluationService.list(evaQw); List<KcTingke> countTjList = kcTingkeService.list(evaQw);
//Map<String, KcEvaluation> countTj = Maps.newHashMap(); //Map<String, KcEvaluation> countTj = Maps.newHashMap();
countTjList.forEach(x -> { countTjList.forEach(x -> {
Integer ixuserId = x.getUpuserid(); tjSet.add(x.getUserid());
String xuserId = String.valueOf(ixuserId);
tjSet.add(xuserId);
//countTj.put(x.getUserid(),x); //countTj.put(x.getUserid(),x);
}); });
@ -153,6 +168,8 @@ public class ChangeTingKeTongJi {
}else{ }else{
x.setTkyq(String.valueOf(xtkyq)); x.setTkyq(String.valueOf(xtkyq));
} }
}else{
x.setZwmc(currentZwmc + "" + x.getZwmc());
} }
tksfMap.put(x.getGh(),x); tksfMap.put(x.getGh(),x);
}else { }else {
@ -189,8 +206,7 @@ public class ChangeTingKeTongJi {
countTjList.forEach(x-> { countTjList.forEach(x-> {
KcTkcstj tj = new KcTkcstj(); KcTkcstj tj = new KcTkcstj();
//填充所在单位 //填充所在单位
Integer ixuserId = x.getUpuserid(); String xuserId = x.getUserid();
String xuserId = String.valueOf(ixuserId);
tj.setXnxq(xqxn); tj.setXnxq(xqxn);
tj.setJgh(xuserId); tj.setJgh(xuserId);

View File

@ -1,11 +1,14 @@
package org.jeecg.modules.kc.qa.controller; package org.jeecg.modules.kc.qa.controller;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
@ -14,6 +17,7 @@ import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.kc.grab.SynchronizationService.tools.ChangeTingKeTongJi; import org.jeecg.modules.kc.grab.SynchronizationService.tools.ChangeTingKeTongJi;
import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig; import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig;
import org.jeecg.modules.kc.kcXqxnHistory.entity.KcXqxnHistory;
import org.jeecg.modules.kc.qa.entity.KcEvaluation; import org.jeecg.modules.kc.qa.entity.KcEvaluation;
import org.jeecg.modules.kc.qa.entity.KcEvaluationPkmx; import org.jeecg.modules.kc.qa.entity.KcEvaluationPkmx;
import org.jeecg.modules.kc.qa.entity.KcEvaluations; import org.jeecg.modules.kc.qa.entity.KcEvaluations;
@ -79,10 +83,12 @@ public class KcEvaluationController extends JeecgController<KcEvaluation, IKcEva
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<KcEvaluation> queryWrapper = QueryGenerator.initQueryWrapper(kcEvaluation, req.getParameterMap()); QueryWrapper<KcEvaluation> queryWrapper = QueryGenerator.initQueryWrapper(kcEvaluation, req.getParameterMap());
if(StringUtils.isNotBlank(kcEvaluation.getXnxq())){ if(StringUtils.isNotBlank(kcEvaluation.getXnxq())){
KcSysConfig common = changeTingKeTongJi.getXqConfig(); KcXqxnHistory common = changeTingKeTongJi.getXqConfig();
String startSj = common.getBxqkssj(); Date startSjDate = common.getStartTime();
String endSj = common.getBxqjssj(); Date endSjDate = common.getEndTime();
String xqxn = common.getFlag1(); String startSj = DateUtil.format(startSjDate, DatePattern.NORM_DATETIME_FORMAT);
String endSj = DateUtil.format(endSjDate,DatePattern.NORM_DATETIME_FORMAT);
String xqxn = common.getTitle();
if(StringUtils.equals(xqxn,kcEvaluation.getXnxq())){ if(StringUtils.equals(xqxn,kcEvaluation.getXnxq())){
queryWrapper.apply("up_date >= STR_TO_DATE('"+ startSj +"', '%Y-%m-%d') "); queryWrapper.apply("up_date >= STR_TO_DATE('"+ startSj +"', '%Y-%m-%d') ");
queryWrapper.apply("up_date <= STR_TO_DATE('"+ endSj +"', '%Y-%m-%d') "); queryWrapper.apply("up_date <= STR_TO_DATE('"+ endSj +"', '%Y-%m-%d') ");
@ -112,10 +118,12 @@ public class KcEvaluationController extends JeecgController<KcEvaluation, IKcEva
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<KcEvaluation> queryWrapper = QueryGenerator.initQueryWrapper("a",kcEvaluation, req.getParameterMap()); QueryWrapper<KcEvaluation> queryWrapper = QueryGenerator.initQueryWrapper("a",kcEvaluation, req.getParameterMap());
if(StringUtils.isNotBlank(kcEvaluation.getXnxq())){ if(StringUtils.isNotBlank(kcEvaluation.getXnxq())){
KcSysConfig common = changeTingKeTongJi.getXqConfig(); KcXqxnHistory common = changeTingKeTongJi.getXqConfig();
String startSj = common.getBxqkssj(); Date startSjDate = common.getStartTime();
String endSj = common.getBxqjssj(); Date endSjDate = common.getEndTime();
String xqxn = common.getFlag1(); String startSj = DateUtil.format(startSjDate,DatePattern.NORM_DATETIME_FORMAT);
String endSj = DateUtil.format(endSjDate,DatePattern.NORM_DATETIME_FORMAT);
String xqxn = common.getTitle();
if(StringUtils.equals(xqxn,kcEvaluation.getXnxq())){ if(StringUtils.equals(xqxn,kcEvaluation.getXnxq())){
queryWrapper.apply("a.up_date >= STR_TO_DATE('"+ startSj +"', '%Y-%m-%d') "); queryWrapper.apply("a.up_date >= STR_TO_DATE('"+ startSj +"', '%Y-%m-%d') ");
queryWrapper.apply("a.up_date <= STR_TO_DATE('"+ endSj +"', '%Y-%m-%d') "); queryWrapper.apply("a.up_date <= STR_TO_DATE('"+ endSj +"', '%Y-%m-%d') ");

View File

@ -250,5 +250,7 @@ public class KcTingke implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String kcbh; private String kcbh;
@TableField(exist = false)
private String pkNum;
// private java.lang.String tingketime; // private java.lang.String tingketime;
} }