Commit daf54b50 by 阳浪

培训测试统计

parent c8d25733
package com.yizhi.application.portal.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.exam.application.feign.ExamClient;
import com.yizhi.exam.application.vo.ContextAndPageSizeVO;
import com.yizhi.exam.application.vo.ExamDetailsMarkingVO;
import com.yizhi.site.application.feign.api.EventTrackApiClients;
import com.yizhi.site.application.vo.domain.ExamStaVo;
import com.yizhi.site.application.vo.site.DayNumVo;
import com.yizhi.site.application.vo.site.EventTrackDayNumVo;
import com.yizhi.site.application.vo.site.EventTrackDeptNumVo;
import com.yizhi.site.application.vo.site.EventTrackTypeNumVo;
import com.yizhi.system.application.system.remote.AccountClient;
import com.yizhi.util.application.date.DateUtil;
import com.yizhi.util.application.domain.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -12,6 +21,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Date;
import java.util.List;
/**
......@@ -27,6 +39,12 @@ public class EventTrackManageController {
@Autowired
private EventTrackApiClients eventTrackApiClients;
@Autowired
private ExamClient examClient;
@Autowired
AccountClient accountClient;
@GetMapping("/addEvent")
public Response addEvent(@RequestParam("type") String type, @RequestParam("businessId") Long businessId){
......@@ -55,4 +73,73 @@ public class EventTrackManageController {
public Response<List<EventTrackDeptNumVo>> queryDeptByType(@RequestParam(value = "date",required = false) String date, @RequestParam("types")List<Integer> types){
return Response.ok(eventTrackApiClients.queryDeptByType(date,types));
}
@GetMapping("/selectExamListBySta")
public Response<ExamStaVo> selectExamListBySta(){
String year = DateUtil.toShortYear(new Date());
RequestContext requestContext = ContextHolder.get();
Long companyId = requestContext.getCompanyId();
Long siteId = requestContext.getSiteId();
ContextAndPageSizeVO contextAndPageSizeVO = new ContextAndPageSizeVO();
contextAndPageSizeVO.setYear(year);
contextAndPageSizeVO.setCompanyId(companyId);
contextAndPageSizeVO.setSiteId(siteId);
List<ExamDetailsMarkingVO> detailsMarkingVOList = examClient.selectExamListBySta(contextAndPageSizeVO);
Integer count = accountClient.getSiteAccountNum(siteId, companyId);
Integer examTotal = eventTrackApiClients.getExamTotal("培训",year);
ExamStaVo examStaVo = new ExamStaVo();
if(examTotal!=null){
examStaVo.setExamNum(examTotal);
}else{
examStaVo.setExamNum(0);
}
Integer qualifidNum = 0;
Integer qualifidNumFrist = 0;
Integer accountNum = 0;
Integer joinNum =0;
if(CollectionUtil.isNotEmpty(detailsMarkingVOList)){
for(ExamDetailsMarkingVO detailsMarkingVO :detailsMarkingVOList){
if (detailsMarkingVO.getVisibleRange() == 1) { // 平台用户可见
accountNum+=count;
}else{
accountNum+=(detailsMarkingVO.getShouldExamNum()!=null?detailsMarkingVO.getShouldExamNum():0);
}
qualifidNum+=(detailsMarkingVO.getQualifidNum()!=null?detailsMarkingVO.getQualifidNum():0);
joinNum+=(detailsMarkingVO.getCommitExamNum()!=null?detailsMarkingVO.getCommitExamNum():0);
qualifidNumFrist+=(detailsMarkingVO.getQualifiedNumFrist()!=null?detailsMarkingVO.getQualifiedNumFrist():0);
}
examStaVo.setJoinNum(joinNum);
examStaVo.setQualifidNum(percnet(Float.valueOf(accountNum),Float.valueOf(qualifidNum)));
examStaVo.setQualifiedNumFrist(percnet(Float.valueOf(accountNum),Float.valueOf(qualifidNumFrist)));
}else{
examStaVo.setJoinNum(0);
examStaVo.setQualifidNum("0");
examStaVo.setQualifiedNumFrist("0");
}
return Response.ok(examStaVo);
}
public static String percnet(float accountNum,float qualifidNum){
if(accountNum==0){
return "0";
}
double p = Double.valueOf(qualifidNum)/Double.valueOf(accountNum);
if(p==0d&&qualifidNum>0){
return "0.01";
}
DecimalFormat nf = (DecimalFormat) NumberFormat.getPercentInstance();
//00表示小数点2位
nf.applyPattern("00.00");
//2表示精确到小数点后2位
nf.setMaximumFractionDigits(2);
String parcnet = nf.format(p);
if(parcnet.startsWith("0")){
parcnet = parcnet.substring(1);
}
return parcnet;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment