|
@@ -9,15 +9,11 @@ import com.diagbot.dto.NumDTO;
|
|
|
import com.diagbot.dto.QcResultPercentDTO;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
-import com.diagbot.util.BeanUtil;
|
|
|
import com.diagbot.util.DateUtil;
|
|
|
-import com.diagbot.util.EntityUtil;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.SysUserUtils;
|
|
|
import com.diagbot.vo.FilterPageVO;
|
|
|
import com.diagbot.vo.FilterVO;
|
|
|
-import com.diagbot.vo.QcresultFilterVO;
|
|
|
-import com.google.common.collect.Lists;
|
|
|
import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -25,8 +21,6 @@ import org.springframework.stereotype.Component;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.text.DecimalFormat;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.LinkedHashMap;
|
|
@@ -345,58 +339,8 @@ public class ConsoleFacade {
|
|
|
* @return
|
|
|
*/
|
|
|
public IPage<NumDTO> entryCountGroupByCasePage(FilterPageVO filterPageVO) {
|
|
|
- DecimalFormat df = new DecimalFormat("#0.00");
|
|
|
filterPageVOSet(filterPageVO);
|
|
|
- long current = filterPageVO.getCurrent();
|
|
|
- long size = filterPageVO.getSize();
|
|
|
- filterPageVO.setCurrent(0);
|
|
|
- filterPageVO.setSize(filterPageVO.getTotal());
|
|
|
IPage<NumDTO> page = qcresultInfoFacade.entryCountGroupByCasePage(filterPageVO);
|
|
|
- List<NumDTO> caseList = page.getRecords();
|
|
|
- QcresultFilterVO qcresultFilterVO = new QcresultFilterVO();
|
|
|
- BeanUtil.copyProperties(filterPageVO, qcresultFilterVO);
|
|
|
- int mrNum = qcresultInfoFacade.resultCount(qcresultFilterVO);
|
|
|
- List<NumDTO> standardCaseList = qcCasesFacade.entryGroupByCase();
|
|
|
- if (ListUtil.isEmpty(standardCaseList)) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- Map<String, NumDTO> standardCaseMap
|
|
|
- = EntityUtil.makeEntityMap(standardCaseList, "name");
|
|
|
- if (ListUtil.isNotEmpty(caseList)) {
|
|
|
- caseList.forEach(item -> {
|
|
|
- if (!standardCaseMap.containsKey(item.getName())) {
|
|
|
- item.setTotleNum(0);
|
|
|
- item.setPercent(0d);
|
|
|
- item.setPercentStr("0%");
|
|
|
- } else {
|
|
|
- Integer totleNum = standardCaseMap.get(item.getName()).getNum() * mrNum;
|
|
|
- item.setTotleNum(totleNum);
|
|
|
- Double percent = BigDecimal.valueOf(item.getNum())
|
|
|
- .divide(BigDecimal.valueOf(totleNum), 4, RoundingMode.HALF_UP)
|
|
|
- .doubleValue();
|
|
|
- String percentStr
|
|
|
- = df.format(BigDecimal.valueOf(percent).multiply(BigDecimal.valueOf(100))) + "%";
|
|
|
- item.setPercent(percent);
|
|
|
- item.setPercentStr(percentStr);
|
|
|
- }
|
|
|
- });
|
|
|
- //降序排序
|
|
|
- Collections.sort(caseList, new Comparator<NumDTO>() {
|
|
|
- @Override
|
|
|
- public int compare(NumDTO o1, NumDTO o2) {
|
|
|
- return o2.getPercent().compareTo(o1.getPercent());
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- List<NumDTO> retList = Lists.newLinkedList();
|
|
|
- if (current * size + size > caseList.size()) {
|
|
|
- retList = caseList.subList(Long.valueOf(current * size).intValue(), caseList.size());
|
|
|
- } else {
|
|
|
- retList = caseList.subList(Long.valueOf(current * size).intValue(), Long.valueOf(current * size + size).intValue());
|
|
|
- }
|
|
|
- page.setCurrent(current);
|
|
|
- page.setSize(size);
|
|
|
- page.setRecords(retList);
|
|
|
return page;
|
|
|
}
|
|
|
|