2023年6月19日 修复统计功能
This commit is contained in:
parent
a646537084
commit
59869baa6b
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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') ");
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue