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

View File

@ -1,11 +1,14 @@
package org.jeecg.modules.kc.qa.controller;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.google.common.collect.Maps;
import org.apache.commons.lang.StringUtils;
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.modules.kc.grab.SynchronizationService.tools.ChangeTingKeTongJi;
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.KcEvaluationPkmx;
import org.jeecg.modules.kc.qa.entity.KcEvaluations;
@ -79,10 +83,12 @@ public class KcEvaluationController extends JeecgController<KcEvaluation, IKcEva
HttpServletRequest req) {
QueryWrapper<KcEvaluation> queryWrapper = QueryGenerator.initQueryWrapper(kcEvaluation, req.getParameterMap());
if(StringUtils.isNotBlank(kcEvaluation.getXnxq())){
KcSysConfig common = changeTingKeTongJi.getXqConfig();
String startSj = common.getBxqkssj();
String endSj = common.getBxqjssj();
String xqxn = common.getFlag1();
KcXqxnHistory common = changeTingKeTongJi.getXqConfig();
Date startSjDate = common.getStartTime();
Date endSjDate = common.getEndTime();
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())){
queryWrapper.apply("up_date >= STR_TO_DATE('"+ startSj +"', '%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) {
QueryWrapper<KcEvaluation> queryWrapper = QueryGenerator.initQueryWrapper("a",kcEvaluation, req.getParameterMap());
if(StringUtils.isNotBlank(kcEvaluation.getXnxq())){
KcSysConfig common = changeTingKeTongJi.getXqConfig();
String startSj = common.getBxqkssj();
String endSj = common.getBxqjssj();
String xqxn = common.getFlag1();
KcXqxnHistory common = changeTingKeTongJi.getXqConfig();
Date startSjDate = common.getStartTime();
Date endSjDate = common.getEndTime();
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())){
queryWrapper.apply("a.up_date >= STR_TO_DATE('"+ startSj +"', '%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)
private String kcbh;
@TableField(exist = false)
private String pkNum;
// private java.lang.String tingketime;
}