fixed 答题结果数据量优化

master
zhangjinli 3 years ago
parent 2035bf97fd
commit cc3e240e65

@ -60,6 +60,9 @@ public class UtilController {
}
public static void main(String[] args) {
String code = "eyJNc2dJZCI6InlEUnNwVVVneWcxN3Y0bWFVeGVuMTVWQndnM25nMExYIiwiTXNnVHlwZSI6IkZsb3dTdGF0dXNDaGFuZ2UiLCJNc2dEYXRhIjp7IkFwcGxpY2F0aW9uSWQiOiJ5RFI0eFVVZ3lnMXFlenBhVXk4bHNTN3dlT1hyU2VMNyIsIlByb3h5T3JnYW5pemF0aW9uT3BlbklkIjoiZGRkZGRkIiwiQ3VzdG9tZXJEYXRhIjoiIiwiRmxvd0lkIjoieURSc2tVVWd5ZzE5bWZ1YlV4dXN4amR3U1RFSkpxcDEiLCJGbG93TmFtZSI6IuS6keS6kemXrui9puS6jOaJi+i9puaUtui0reWQiOWQjCIsIkZsb3dUeXBlIjoi5ZCI5ZCMIiwiRmxvd1N0YXR1cyI6IlBBUlQiLCJGbG93TWVzc2FnZSI6IiIsIkNyZWF0ZU9uIjoxNjY4NDE0ODcwLCJEZWFkbGluZSI6MTY5OTk1MDg3MCwiRmxvd0FwcHJvdmVySW5mbyI6W3siUHJveHlPcmdhbml6YXRpb25PcGVuSWQiOiJkZGRkZGQiLCJQcm94eU9wZXJhdG9yT3BlbklkIjoieURSR2lVVXFiOHZxa1V5ZTdTeTR5bzlvV2VvRmtLMjEiLCJyZWNpcGllbnRJZCI6InlEUjRSVVVneWcxMWdwbHBVRXlaY2NFRWYzMHJkN3B1IiwiUGhvbmVOdW1iZXIiOiIxMzU4ODc4NDIwNCIsIlByb3h5T3JnYW5pemF0aW9uTmFtZSI6IuS6keS6kemXrui9puaxvei9puenkeaKgO+8iOWugeazou+8ieaciemZkOWFrOWPuCIsIlNpZ25PcmRlciI6MSwiQXBwcm92ZU5hbWUiOiLlvKDph5HmnY4iLCJBcHByb3ZlU3RhdHVzIjoiQUNDRVBUIiwiQXBwcm92ZU1lc3NhZ2UiOiIiLCJBcHByb3ZlVGltZSI6MTY2ODQxNDg3MiwiQ2FTaWduIjoiIn0seyJQcm94eU9yZ2FuaXphdGlvbk9wZW5JZCI6IiIsIlByb3h5T3BlcmF0b3JPcGVuSWQiOiIiLCJyZWNpcGllbnRJZCI6InlEUjR2VVVneWcxdHVuNHRVeE5PRmhmdklxbm1nSVFKIiwiUGhvbmVOdW1iZXIiOiIxMzU4ODc4NDIwNCIsIlByb3h5T3JnYW5pemF0aW9uTmFtZSI6IiIsIlNpZ25PcmRlciI6MiwiQXBwcm92ZU5hbWUiOiLlvKDph5HmnY4iLCJBcHByb3ZlU3RhdHVzIjoiUEVORElORyIsIkFwcHJvdmVNZXNzYWdlIjoiIiwiQXBwcm92ZVRpbWUiOjAsIkNhU2lnbiI6IiJ9XSwiT2NjdXJUaW1lIjoxNjY4NDE0ODcyfX0=";
byte[] decodeBytes = java.util.Base64.getDecoder().decode(code);
System.out.println(decodeBytes);
}
}

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.zh.lingnuo.annotation.Token;
import com.zh.lingnuo.controller.company.CompanyQnTitleController;
import com.zh.lingnuo.mapper.CompanyQnAnswererMapper;
import com.zh.lingnuo.model.*;
import com.zh.lingnuo.service.ICompanyQnAnswerService;
import com.zh.lingnuo.service.ICompanyQnAnswererService;
@ -53,6 +54,9 @@ public class CompanyQnAnswerController {
@Autowired
private ICompanyQnTitleService companyQnTitleService;
@Autowired
private CompanyQnAnswererMapper companyQnAnswererMapper;
@Data
public static class paramsAnswererQnList {
private int pageNum;
@ -173,16 +177,6 @@ public class CompanyQnAnswerController {
@PostMapping("/end")
@Token(requireUser = 1, level = {3})
public Result end(@Validated @RequestBody ParamsAnswererQnOpr params) {
if (!companyQnAnswererService.update(new CompanyQnAnswerer(),
new UpdateWrapper<CompanyQnAnswerer>()
.eq("qn_id",params.getQnId())
.eq("answerer_id", params.getUserInfo().getId())
.eq("status", CompanyQnAnswerer.CompanyQnAnswerStatusProgressing)
.set("status", CompanyQnAnswerer.CompanyQnAnswerStatusCompleted)
.set("finished_at", LocalDateTime.now())
)) {
return Result.err("提交失败");
}
return Result.success("");
return companyQnAnswerService.end(params.getQnId(), params.getUserInfo().getId());
}
}

@ -79,8 +79,8 @@ public class CompanyQnAnswererController {
private String tel;
@ExcelParam(value = "部门")
private String department;
@ExcelParam(value = "工龄")
private Integer workAge;
// @ExcelParam(value = "工龄")
// private Integer workAge;
}
@Operation(summary = "excel导入")

@ -52,4 +52,13 @@ public interface CompanyQnAnswererMapper extends BaseMapper<CompanyQnAnswerer> {
@Select("SELECT answerer_id FROM company_qn_answerer where qn_id = #{qnId}")
List<Integer> answererIdList(int qnId);
@Select("SELECT \n" +
"IF(\n" +
"(SELECT GROUP_CONCAT(id ORDER BY id) from company_qn_title WHERE qn_id = #{qnId} )\n" +
"= \n" +
"(SELECT GROUP_CONCAT(DISTINCT title_id ORDER BY title_id)\tFROM company_qn_answer WHERE qn_id = #{qnId} and answerer_id = #{answererId} )\n" +
" ,1,0)\n" +
"as result")
int isFinished(int qnId,int answererId);
}

@ -31,6 +31,9 @@ public interface ICompanyQnAnswerService extends IService<CompanyQnAnswer> {
// 答题
Result add(CompanyQnAnswerController.paramsCompanyQnAnswerAdd params);
// 结束答题
Result end(int qnId, int answererId);
// 答题人互评详情
Result partnerChoiceResult(IPage page, int qnId, boolean isManage);

@ -204,6 +204,26 @@ public class CompanyQnAnswerServiceImpl extends ServiceImpl<CompanyQnAnswerMappe
return Result.success("");
}
// 结束答题
@Transactional
public Result end(int qnId, int answererId) {
int booleanInt = companyQnAnswererMapper.isFinished(qnId, answererId);
if (booleanInt == 0){
return Result.err("未完成全部问卷");
}
if (!companyQnAnswererService.update(new CompanyQnAnswerer(),
new UpdateWrapper<CompanyQnAnswerer>()
.eq("qn_id",qnId)
.eq("answerer_id",answererId)
.eq("status", CompanyQnAnswerer.CompanyQnAnswerStatusProgressing)
.set("status", CompanyQnAnswerer.CompanyQnAnswerStatusCompleted)
.set("finished_at", LocalDateTime.now())
)) {
return Result.err("提交失败");
}
return Result.success("");
}
//答题人互评详情
public Result partnerChoiceResult(IPage page,int qnId, boolean isManage) {
CompanyQn qn = companyQnService.getById(qnId);
@ -220,7 +240,7 @@ public class CompanyQnAnswerServiceImpl extends ServiceImpl<CompanyQnAnswerMappe
ids.add(i.getAnswererId());
}
}
return Result.success(iPage.setRecords(partnerChoiceResultData(qnId, isManage ? false : 1 == (qn.getIsSecret()), ids.size()>0?ids:null)));
return Result.success(iPage.setRecords(ids.size()>0?partnerChoiceResultData(qnId, isManage ? false : 1 == (qn.getIsSecret()),ids):new ArrayList<>()));
}
// 答题人互评结果导出Excel

@ -62,7 +62,7 @@ public class CompanyQnAnswererServiceImpl extends ServiceImpl<CompanyQnAnswererM
for (ExcelAnswerData r : result) {
Answerer v = new Answerer();
BeanUtils.copyProperties(r, v);
if(null == v.getMail()|| null == v.getName() || null == v.getTel() || null == v.getDepartment()|| null == v.getWorkAge()){
if(null == v.getMail()|| null == v.getName() || null == v.getTel() || null == v.getDepartment()){
continue;
}
String salt = Common.getRandomString(6, "");

@ -22,10 +22,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* <p>
@ -46,7 +43,7 @@ public class CompanyQnTitleServiceImpl extends ServiceImpl<CompanyQnTitleMapper,
// 列表
public Result<List<ResultQnTitleList>> qnTitleList(int qnId) {
QueryWrapper<CompanyQnTitle> qw = new QueryWrapper<>();
qw.eq("qn_id", qnId).orderByDesc("id");
qw.eq("qn_id", qnId).orderByAsc("id");
List<CompanyQnTitle> list = super.list(qw);
List <ResultQnTitleList> result = new ArrayList<>();
for (CompanyQnTitle r : list) {
@ -99,27 +96,42 @@ public class CompanyQnTitleServiceImpl extends ServiceImpl<CompanyQnTitleMapper,
// 添入题库题目
public Result qnTitleAddModel(CompanyQnTitleController.paramsQnTitleAddModel params) {
Integer qnId = params.getQnId();
// 已有题型id列表
List<CompanyQnTitle> cList = super.list(new QueryWrapper<CompanyQnTitle>().select("title_id").eq("qn_id", qnId));
HashSet<Integer> idList = new HashSet<>();
ArrayList<CompanyQnTitle> list = new ArrayList<>();
for (CompanyQnTitle i : cList) {
idList.add(i.getTitleId());
}
// 待加入题型数组
Collection ids = new ArrayList<>();
HashMap<Integer, QnTitle> titleList = new HashMap();
if (params.getTitleIds().length > 0) {
for (int i : params.getTitleIds()) {
ids.add(i);
}
}
Collection<QnTitle> qnTitles = qnTitleService.listByIds(ids);
for (QnTitle qnTitle : qnTitles) {
titleList.put(qnTitle.getId(),qnTitle);
}
// 批量加入
for (int titleId : params.getTitleIds()) {
if(idList.contains(titleId)){
continue;
}
QnTitle qnTitle = qnTitleService.getById(titleId);
if (null == qnTitle) {
return Result.err("未知题型");
if (null ==titleList.get(titleId)){
continue;
}
QnTitle i = titleList.get(titleId);
CompanyQnTitle companyQnTitle = new CompanyQnTitle()
.setQnId(params.getQnId())
.setTitleId(qnTitle.getId())
.setTitle(qnTitle.getTitle())
.setKind(qnTitle.getKind())
.setGroupId(qnTitle.getGroupId()==1?CompanyQnTitle.ManageQnTitleBase:CompanyQnTitle.ManageQnTitleNotBase)
.setOptions(qnTitle.getOptions());
.setTitleId(i.getId())
.setTitle(i.getTitle())
.setKind(i.getKind())
.setGroupId(i.getGroupId()==1?CompanyQnTitle.ManageQnTitleBase:CompanyQnTitle.ManageQnTitleNotBase)
.setOptions(i.getOptions());
list.add(companyQnTitle);
}
super.saveBatch(list);

@ -90,7 +90,7 @@ aliyun:
# paths-to-match: /manage/**,/wxApp/**
web:
webUrl: http://questionnaire.linac.net
webUrl: https://www.linac.net
apiPath: com.zh.lingnuo.controller
# mac图片地址
uploadPath: /Users/apple/Pictures

@ -90,7 +90,7 @@ aliyun:
# paths-to-match: /manage/**,/wxApp/**
web:
webUrl: http://questionnaire.linac.net
webUrl: https://www.linac.net
apiPath: com.zh.lingnuo.controller
# mac图片地址
# uploadPath: /Users/apple/Pictures

Loading…
Cancel
Save