package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.fzzy.igds.constant.Constant; import com.fzzy.igds.data.InoutParam; import com.fzzy.igds.domain.InoutRecord; import com.fzzy.igds.service.InoutRecordService; import com.fzzy.igds.service.SysDeptService; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.DateUtil; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; @Component public class ReportInDetailPR { @Resource private InoutRecordService inoutReportService; @Resource private SysDeptService sysDeptService; /** * reportInoutDetailPR#getQuery 根据报表类型,获取默认查询信息,比如表头信息等 * * @param * @return */ @DataProvider public InoutParam getQuery(InoutParam param) { InoutParam result = new InoutParam(); //获取参数中分库编码 String deptId = param.getDeptId(); //获取分库编码对应的分库名称 String deptName = ""; SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null)); if (null != subDept) { deptName = subDept.getDeptName(); } result.setTitle("入库明细汇总"); if (StringUtils.isNotEmpty(deptName)) { result.setTitle(deptName + "入库明细汇总"); result.setDeptId(deptId); } result.setUnit("千克(KG)"); result.setEnd(new Date()); Date start = DateUtil.getNewByDay(new Date(), -30); result.setStart(start); result.setTimeDesc( DateFormatUtils.format(start, "yyyy-MM-dd") + " 截至:" + DateFormatUtils.format(new Date(), "yyyy-MM-dd")); return result; } /** * 出入库汇总表 * reportInoutDetailPR#listRecord 报表数据,只获取已经完成的,并且非异常数据和删除数据 * * @param param * @return */ @DataProvider public List listRecord(InoutParam param) { if (null == param) { param = new InoutParam(); } //查询入库数据 param.setType(Constant.TYPE_IN); //多参数分页查询 com.baomidou.mybatisplus.extension.plugins.pagination.Page corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(0, 10000); inoutReportService.listPageInout(corePage, param); //获取查询到得list数据 List result = corePage.getRecords(); if (null == result || result.isEmpty()) { return result; } // 添加统计信息 double emptyWeightSum = 0.0, fullWeightSum = 0.0, deCheck = 0.0, addCheck = 0.0, deWetSum = 0.0, deImpuritySum = 0.0, deHandleSum = 0.0, deOtherSum = 0.0, deSumSum = 0.0, netWeightSum = 0.0, settleWeightSum = 0.0; int index = 1; List list = new ArrayList<>(); for (InoutRecord record : result) { list.add(record); record.setRemarks(String.valueOf(index)); emptyWeightSum += record.getEmptyWeight(); fullWeightSum += record.getFullWeight(); deOtherSum += record.getDeOther(); netWeightSum += record.getNetWeight(); settleWeightSum += record.getSettleWeight(); index++; } InoutRecord sum = new InoutRecord(); sum.setId("合计"); sum.setEmptyWeight(emptyWeightSum); sum.setFullWeight(fullWeightSum); sum.setDeOther(deOtherSum); sum.setNetWeight(netWeightSum); sum.setSettleWeight(settleWeightSum); if (sum.getNoticeId() == null) sum.setNoticeId(""); if (sum.getDepotId() == null) sum.setDepotId(""); if (sum.getProgress() == null) sum.setProgress(""); if (sum.getUserName() == null) sum.setUserName(""); if (sum.getPlateNum() == null) sum.setPlateNum(""); if (sum.getFoodVariety() == null) sum.setFoodVariety(""); list.add(sum); return list; } }