package com.fzzy.igds;
|
|
import com.bstek.dorado.annotation.DataProvider;
|
import com.bstek.dorado.data.provider.Page;
|
import com.fzzy.igds.constant.DepotType;
|
import com.fzzy.igds.constant.FoodVariety;
|
import com.fzzy.igds.data.GrainDataReport;
|
import com.fzzy.igds.domain.DepotConf;
|
import com.fzzy.igds.domain.Grain;
|
import com.fzzy.igds.service.DepotConfService;
|
import com.fzzy.igds.service.GrainService;
|
import com.fzzy.igds.service.SysDeptService;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.fzzy.igds.utils.DateUtil;
|
import com.fzzy.igds.utils.GrainDataBuilder;
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Component;
|
import javax.annotation.Resource;
|
import java.util.*;
|
|
/**
|
* @Description 粮情报表页面入口
|
* @Author CZT
|
* @Date 2025/12/9 10:19
|
*/
|
@Component
|
public class GrainReportPR {
|
|
@Resource
|
private GrainService grainService;
|
@Resource
|
private SysDeptService sysDeptService;
|
@Resource
|
private DepotConfService depotConfService;
|
|
/**
|
* grainReportPR#getQuery
|
* @return
|
*/
|
@DataProvider
|
public Map<String, Object> getQuery() {
|
Map<String, Object> result = new HashMap<>();
|
|
SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null));
|
result.put("title", "粮情汇总表");
|
if (null != subDept) {
|
result.put("title", subDept.getDeptName() + "粮情汇总表");
|
result.put("deptId", subDept.getDeptId());
|
}
|
|
result.put("timeDesc", "检测时间");
|
result.put("depotNameLabel", "");
|
result.put("depotName", "");
|
|
result.put("end", new Date());
|
Date start = DateUtil.getNewByDay(new Date(), -30);
|
result.put("start", start);
|
|
result.put("timeDesc",
|
DateFormatUtils.format(start, "yyyy-MM-dd") + " 截至:"
|
+ DateFormatUtils.format(new Date(), "yyyy-MM-dd"));
|
|
result.put("createUser", ContextUtil.getLoginUserName());
|
result.put("createTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
|
|
return result;
|
}
|
|
/**
|
* 粮情数据报表数据分页查询,查询条件根据选择具体日期查询
|
* grainReportPR#getDataReport
|
*
|
* @param page
|
* @param param
|
*/
|
@DataProvider
|
public void getDataReport(Page<GrainDataReport> page, Map<String, Object> param) {
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<Grain> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
|
|
if (null == param) {
|
param = new HashMap<>();
|
}
|
grainService.pageData(corePage, param);
|
List<Grain> records = corePage.getRecords();
|
|
// 是否允许重复,在按照某天查询情况,只获取当天最后一条信息 0= 不允许,1=允许
|
String repeat = (String) param.get(("repeat"));
|
Map<String, String> tempMap = new HashMap<>();
|
|
// 调整数据
|
int maxZ = 3;
|
int hour = 0;
|
List<GrainDataReport> dataList = new ArrayList<>();
|
GrainDataReport report;
|
DepotConf depotConf;
|
for (Grain grain : records) {
|
|
// 去除重复
|
if (null != repeat && "0".equals(repeat)) {
|
if (null == tempMap.get(grain.getDepotId())) {
|
tempMap.put(grain.getDepotId(), grain.getBatchId());
|
} else {
|
continue;
|
}
|
}
|
report = new GrainDataReport();
|
BeanUtils.copyProperties(grain, report);
|
|
// 调整类型字段显示中文
|
report.setDepotTypeName(DepotType.getMsg(report.getDepotType()));
|
report.setFoodVariety(FoodVariety.getMsg(report.getFoodVariety()));
|
|
if (report.getMaxZ() > maxZ) {
|
maxZ = report.getMaxZ();
|
}
|
report.setMaxZ(maxZ);
|
|
depotConf = depotConfService.getCacheDepotConfByDepotId(grain.getCompanyId(), grain.getDepotId());
|
GrainDataBuilder.updateReport(report, depotConf);
|
|
dataList.add(report);
|
}
|
|
// 重新封装
|
page.setEntities(dataList);
|
page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
|
}
|
|
}
|