|
|
|
@ -20,18 +20,22 @@ import com.zh.lingnuo.service.ICompanyQnAnswererService;
|
|
|
|
|
import com.zh.lingnuo.service.ICompanyQnService;
|
|
|
|
|
import com.zh.lingnuo.service.ICompanyQnTitleService;
|
|
|
|
|
import com.zh.lingnuo.utils.Common;
|
|
|
|
|
import com.zh.lingnuo.utils.ExcelExport;
|
|
|
|
|
import com.zh.lingnuo.utils.PageUtil;
|
|
|
|
|
import com.zh.lingnuo.utils.result.Result;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import javax.servlet.ServletOutputStream;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <p>
|
|
|
|
@ -59,15 +63,15 @@ public class CompanyQnAnswerServiceImpl extends ServiceImpl<CompanyQnAnswerMappe
|
|
|
|
|
private CompanyQnAnswererMapper companyQnAnswererMapper;
|
|
|
|
|
|
|
|
|
|
// 问卷列表
|
|
|
|
|
public Result qnList(CompanyQnAnswerController.paramsAnswererQnList params,int answererId){
|
|
|
|
|
IPage<CompanyQnMapper.MapperResultAnswererQnList> qnList = companyQnMapper.qnList(PageUtil.SetPage(params.getPageNum(), params.getPageSize()),answererId);
|
|
|
|
|
public Result qnList(CompanyQnAnswerController.paramsAnswererQnList params, int answererId) {
|
|
|
|
|
IPage<CompanyQnMapper.MapperResultAnswererQnList> qnList = companyQnMapper.qnList(PageUtil.SetPage(params.getPageNum(), params.getPageSize()), answererId);
|
|
|
|
|
return Result.success(qnList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 答题结果
|
|
|
|
|
public Result all(int qnId,int answererId) {
|
|
|
|
|
public Result all(int qnId, int answererId) {
|
|
|
|
|
List<CompanyQnAnswerMapper.MapperResultAnswerAll> list = companyQnAnswerMapper.answerList(new QueryWrapper<CompanyQnAnswer>()
|
|
|
|
|
.eq("t1.qn_id",qnId).eq("t1.answerer_id",answererId));
|
|
|
|
|
.eq("t1.qn_id", qnId).eq("t1.answerer_id", answererId));
|
|
|
|
|
List<ResultAnswerAll> result = new ArrayList();
|
|
|
|
|
HashMap<Integer, HashMap<String, List<Integer>>> t = new HashMap();
|
|
|
|
|
for (CompanyQnAnswerMapper.MapperResultAnswerAll i : list) {
|
|
|
|
@ -77,7 +81,7 @@ public class CompanyQnAnswerServiceImpl extends ServiceImpl<CompanyQnAnswerMappe
|
|
|
|
|
ResultAnswerAll r = new ResultAnswerAll();
|
|
|
|
|
BeanUtils.copyProperties(i, r);
|
|
|
|
|
Integer kind = i.getTitleKind();
|
|
|
|
|
if(null !=kind ) {
|
|
|
|
|
if (null != kind) {
|
|
|
|
|
r.setTitleKindName(CompanyQnTitle.getKindName(kind));
|
|
|
|
|
if (kind == CompanyQnTitle.CompanyQnTitleKindPartnerChoice) {
|
|
|
|
|
r.setAnswerOpt(null);
|
|
|
|
@ -87,7 +91,7 @@ public class CompanyQnAnswerServiceImpl extends ServiceImpl<CompanyQnAnswerMappe
|
|
|
|
|
result.add(r);
|
|
|
|
|
}
|
|
|
|
|
Integer id = i.getQnTowardsId();
|
|
|
|
|
if (null != i.getTitleKind()&&i.getTitleKind() == CompanyQnTitle.CompanyQnTitleKindPartnerChoice && Common.higherZero(id)) {
|
|
|
|
|
if (null != i.getTitleKind() && i.getTitleKind() == CompanyQnTitle.CompanyQnTitleKindPartnerChoice && Common.higherZero(id)) {
|
|
|
|
|
HashMap<String, List<Integer>> l = t.get(titleId);
|
|
|
|
|
if (null == l.get(i.getAnswerOpt())) {
|
|
|
|
|
l.put(i.getAnswerOpt(), new ArrayList<Integer>());
|
|
|
|
@ -102,7 +106,7 @@ public class CompanyQnAnswerServiceImpl extends ServiceImpl<CompanyQnAnswerMappe
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 全部被评人
|
|
|
|
|
public Result allQnTowards(int qnId,int answererId) {
|
|
|
|
|
public Result allQnTowards(int qnId, int answererId) {
|
|
|
|
|
|
|
|
|
|
List<CompanyQnAnswererMapper.MapperResultQnAnswererAll> list = companyQnAnswererMapper.qnAnswererList(new QueryWrapper<CompanyQnAnswerer>().eq("t1.qn_id", qnId).ne("t1.answerer_id", answererId));
|
|
|
|
|
List<CompanyQnAnswerController.ResultQnTowards> resList = new ArrayList<>();
|
|
|
|
@ -126,7 +130,7 @@ public class CompanyQnAnswerServiceImpl extends ServiceImpl<CompanyQnAnswerMappe
|
|
|
|
|
}
|
|
|
|
|
int qnId = companyQnTitle.getQnId();
|
|
|
|
|
CompanyQn qn = companyQnService.getById(qnId);
|
|
|
|
|
if(null == qn){
|
|
|
|
|
if (null == qn) {
|
|
|
|
|
return Result.err("未知问卷");
|
|
|
|
|
}
|
|
|
|
|
if (CompanyQn.CompanyQnStatusRelease != qn.getStatus()) {
|
|
|
|
@ -205,28 +209,85 @@ public class CompanyQnAnswerServiceImpl extends ServiceImpl<CompanyQnAnswerMappe
|
|
|
|
|
|
|
|
|
|
//答题人互评详情
|
|
|
|
|
public Result partnerChoiceResult(int qnId) {
|
|
|
|
|
Boolean isSecret = false;
|
|
|
|
|
CompanyQn qn = companyQnService.getById(qnId);
|
|
|
|
|
if (null == qn) {
|
|
|
|
|
return Result.err("未知问卷");
|
|
|
|
|
}
|
|
|
|
|
if (1 == qn.getIsSecret()) {
|
|
|
|
|
isSecret = true;
|
|
|
|
|
}
|
|
|
|
|
return Result.success(partnerChoiceResultData(qnId, isSecret));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 答题人互评结果导出Excel
|
|
|
|
|
public void resultExportExcel(HttpServletResponse response, int qnId) {
|
|
|
|
|
CompanyQn qn = companyQnService.getById(qnId);
|
|
|
|
|
if (null == qn) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
List<CompanyQnTitle> qnTitleList = companyQnTitleService.list(new QueryWrapper<CompanyQnTitle>()
|
|
|
|
|
.eq("qn_id", qnId)
|
|
|
|
|
.eq("kind", CompanyQnTitle.CompanyQnTitleKindPartnerChoice));
|
|
|
|
|
Map qnTitleMap = new LinkedHashMap<>();
|
|
|
|
|
for (CompanyQnTitle qnTitle : qnTitleList) {
|
|
|
|
|
qnTitleMap.put(qnTitle.getTitle(), qnTitle.getTitle());
|
|
|
|
|
}
|
|
|
|
|
List<Map> resultList = new ArrayList<>();
|
|
|
|
|
List<CompanyQnController.ResultPartnerChoice> list = partnerChoiceResultData(qnId, false);
|
|
|
|
|
for (CompanyQnController.ResultPartnerChoice resultPartnerChoice : list) {
|
|
|
|
|
Map map = new LinkedHashMap();
|
|
|
|
|
map.put("SourceId", resultPartnerChoice.getAnswererName());
|
|
|
|
|
map.put("TargetId", resultPartnerChoice.getQnTowardsName());
|
|
|
|
|
for (CompanyQnController.ResultAnswerPartnerChoice resultAnswerPartnerChoice : resultPartnerChoice.getAnswerPartnerChoice()) {
|
|
|
|
|
map.put(resultAnswerPartnerChoice.getTitleName(), resultAnswerPartnerChoice.getAnswerOpt());
|
|
|
|
|
}
|
|
|
|
|
resultList.add(map);
|
|
|
|
|
}
|
|
|
|
|
XSSFWorkbook wb = ExcelExport.createExcel(resultList, null);
|
|
|
|
|
try {
|
|
|
|
|
String day = LocalDateTime.now().format(DateTimeFormatter.ofPattern("YYYY-MM-dd"));
|
|
|
|
|
String fileName = URLEncoder.encode(qn.getTitle(), "UTF8");
|
|
|
|
|
response.setContentType("application/vnd.ms-excel;chartset=utf-8");
|
|
|
|
|
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + "-" + day + ".xls");
|
|
|
|
|
ServletOutputStream out = response.getOutputStream();
|
|
|
|
|
wb.write(out);
|
|
|
|
|
out.flush();
|
|
|
|
|
out.close();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//答题人互评详情数据
|
|
|
|
|
public List partnerChoiceResultData(int qnId, boolean isSecret) {
|
|
|
|
|
QueryWrapper<CompanyQnAnswer> qw = new QueryWrapper<>();
|
|
|
|
|
|
|
|
|
|
List<CompanyQnAnswerMapper.MapperResultPartnerChoice> list = companyQnAnswerMapper.partnerChoiceResult(qnId);
|
|
|
|
|
List<CompanyQnController.ResultPartnerChoice> result = new ArrayList();
|
|
|
|
|
HashMap<Integer,HashMap<Integer,List<CompanyQnController.ResultAnswerPartnerChoice>>> t = new HashMap();
|
|
|
|
|
HashMap<Integer, HashMap<Integer, List<CompanyQnController.ResultAnswerPartnerChoice>>> t = new HashMap();
|
|
|
|
|
for (CompanyQnAnswerMapper.MapperResultPartnerChoice i : list) {
|
|
|
|
|
int asId = i.getAnswererId();
|
|
|
|
|
int qnTowardsId = i.getQnTowardsId();
|
|
|
|
|
if(null == t.get(asId)){
|
|
|
|
|
t.put(asId,new HashMap<Integer,List<CompanyQnController.ResultAnswerPartnerChoice>>());
|
|
|
|
|
if (null == t.get(asId)) {
|
|
|
|
|
t.put(asId, new HashMap<Integer, List<CompanyQnController.ResultAnswerPartnerChoice>>());
|
|
|
|
|
}
|
|
|
|
|
if(null == t.get(asId).get(qnTowardsId)){
|
|
|
|
|
if (null == t.get(asId).get(qnTowardsId)) {
|
|
|
|
|
t.get(asId).put(qnTowardsId, new ArrayList<>());
|
|
|
|
|
CompanyQnController.ResultPartnerChoice r = new CompanyQnController.ResultPartnerChoice();
|
|
|
|
|
BeanUtils.copyProperties(i, r);
|
|
|
|
|
if (isSecret) {
|
|
|
|
|
r.setAnswererName(String.valueOf(asId));
|
|
|
|
|
r.setQnTowardsName(String.valueOf(qnTowardsId));
|
|
|
|
|
}
|
|
|
|
|
result.add(r);
|
|
|
|
|
}
|
|
|
|
|
t.get(asId).get(qnTowardsId).add(new CompanyQnController.ResultAnswerPartnerChoice()
|
|
|
|
|
.setTitleId(i.getTitleId()).setTitleName(i.getTitle()).setAnswerOpt(i.getAnswerOpt()).setAnswerCont(i.getAnswerCont()));
|
|
|
|
|
}
|
|
|
|
|
for (CompanyQnController.ResultPartnerChoice item : result) {
|
|
|
|
|
item.setAnswerPartnerChoice(t.get(item.getAnswererId()).get(item.getQnTowardsId()));
|
|
|
|
|
}
|
|
|
|
|
return Result.success(result);
|
|
|
|
|
for (CompanyQnController.ResultPartnerChoice item : result) {
|
|
|
|
|
item.setAnswerPartnerChoice(t.get(item.getAnswererId()).get(item.getQnTowardsId()));
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|