|
@@ -200,7 +200,6 @@ public class ReportServiceImpl implements ReportService {
|
|
|
return calendar.getTimeInMillis();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 码包概况
|
|
|
* @author liguosong
|
|
@@ -216,13 +215,21 @@ public class ReportServiceImpl implements ReportService {
|
|
|
map= FillParam(reportReq,map);
|
|
|
}
|
|
|
PackageCodeTypeRes res = new PackageCodeTypeRes();
|
|
|
-
|
|
|
- //1.生成码数量
|
|
|
- getGenerateCodeNum(reportReq,res,map);
|
|
|
- //2.下载码数量
|
|
|
- getLoadCodeNum(reportReq, res,map);
|
|
|
- //3.激活码数量
|
|
|
- getActivateCodeNum(reportReq, res,map);
|
|
|
+ //查询同期生成码
|
|
|
+ getGenerateCodeNum(reportReq.getBeginTime(),reportReq.getEndTime(),1,res,"1");
|
|
|
+ //查询同期下载码
|
|
|
+ getGenerateCodeNum(reportReq.getBeginTime(),reportReq.getEndTime(),2,res,"1");
|
|
|
+ //查询同期激活码
|
|
|
+ getActivateCodeNum(reportReq.getBeginTime(),reportReq.getEndTime(),res,"1");
|
|
|
+ //查询往期
|
|
|
+ if(!map.isEmpty()){
|
|
|
+ //查询往期生成码
|
|
|
+ getGenerateCodeNum(map.get("beginDate"),map.get("endDate"),1,res,"2");
|
|
|
+ //查询往期下载码
|
|
|
+ getGenerateCodeNum(map.get("beginDate"),map.get("endDate"),2,res,"2");
|
|
|
+ //查询往期激活码
|
|
|
+ getActivateCodeNum(map.get("beginDate"),map.get("endDate"),res,"2");
|
|
|
+ }
|
|
|
//返回参数
|
|
|
return res;
|
|
|
}
|
|
@@ -233,117 +240,71 @@ public class ReportServiceImpl implements ReportService {
|
|
|
* @param map
|
|
|
*/
|
|
|
private Map FillParam(ReportReq reportReq,Map<String,LocalDateTime> map) {
|
|
|
- if(!ObjectUtils.isEmpty(reportReq) && null != reportReq.getValue() && null == reportReq.getEndTime() && null == reportReq.getBeginTime()){
|
|
|
- setQueryTime(reportReq);
|
|
|
- reportReq.setBeginTime(reportReq.getBeginTime());
|
|
|
- reportReq.setEndTime(reportReq.getEndTime());
|
|
|
- }
|
|
|
+ setQueryTime(reportReq);
|
|
|
map=getBeforeWeekTime(reportReq.getValue().toString());//1周 2月
|
|
|
return map;
|
|
|
}
|
|
|
- /**
|
|
|
- * 处理逻辑
|
|
|
- * 1.取出当前的数据集,对箱码,盖码赋值
|
|
|
- * 2.获取往期总数
|
|
|
- * 3.(本周的数据集-不是本周的数据集)/不是本周的数据集*100%,计算同比增长率
|
|
|
- */
|
|
|
- private void getGenerateCodeNum(ReportReq reportReq, PackageCodeTypeRes res,Map<String,LocalDateTime> map) {
|
|
|
- List<ListPackageCodeVo> createList = reportServiceMapper.queryPackageCodeNum(reportReq);
|
|
|
- ListPackageCodeVo vo=null;
|
|
|
- if(!map.isEmpty()){
|
|
|
- vo=reportServiceMapper.queryPackageCodeNumPast(map.get("beginDate"),map.get("endDate"));
|
|
|
- }
|
|
|
- for (int i = 0; i < createList.size(); i++) {
|
|
|
- if (QrTypeEnum.CARTON.getCode().equals(createList.get(i).getQrType())) {//判断是否箱码
|
|
|
- res.setCreateBoxNumber(createList.get(i).getQrNumber());//箱码
|
|
|
- } else if (QrTypeEnum.CAP.getCode().equals(createList.get(i).getQrType())) {//判断是否盖码
|
|
|
- res.setCreateCapNumber(createList.get(i).getQrNumber());//盖码
|
|
|
- }
|
|
|
- }
|
|
|
- if (!ObjectUtils.isEmpty(reportReq) && null !=reportReq.getValue()) {
|
|
|
- //获取往期总数
|
|
|
- long before=0;
|
|
|
- if(!ObjectUtils.isEmpty(vo)){
|
|
|
- before = vo.getQrNumber();
|
|
|
- }else{
|
|
|
- before=0;
|
|
|
- }
|
|
|
- //计算同期总数
|
|
|
- int present = createList.stream().mapToInt(x -> Math.toIntExact(x.getQrNumber())).sum();
|
|
|
- //获取同比增长率
|
|
|
- String result = percentBigDecimal(present, before);
|
|
|
- res.setCreatePercent(result);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
- * 获取下载码数量
|
|
|
- * @param reportReq
|
|
|
- * @param res
|
|
|
- * @param map
|
|
|
+ * 获取生成码和下载码情况
|
|
|
+ * @param beginDate 开始时间
|
|
|
+ * @param endDate 结束时间
|
|
|
+ * @param type 判断是生成码还是下载码 1生成 2激活
|
|
|
+ * @param res 返回值
|
|
|
+ * @param value 判断是否往期
|
|
|
*/
|
|
|
- private void getLoadCodeNum(ReportReq reportReq, PackageCodeTypeRes res,Map<String,LocalDateTime> map) {
|
|
|
- List<ListPackageCodeVo> loadList = reportServiceMapper.queryLoadPackageCodeNum(reportReq);
|
|
|
- ListPackageCodeVo vo = null;
|
|
|
- if(!map.isEmpty()){
|
|
|
- vo=reportServiceMapper.queryLoadPackageCodeNumPast(map.get("beginDate"),map.get("endDate"));
|
|
|
- }
|
|
|
- for (int i = 0; i < loadList.size(); i++) {
|
|
|
- if (QrTypeEnum.CARTON.getCode().equals(loadList.get(i).getQrType())) {
|
|
|
- res.setLoadBoxNumber(loadList.get(i).getQrNumber());
|
|
|
- } else if (QrTypeEnum.CAP.getCode().equals(loadList.get(i).getQrType())) {
|
|
|
- res.setLoadCapNumber(loadList.get(i).getQrNumber());
|
|
|
- }
|
|
|
- }
|
|
|
- if (!ObjectUtils.isEmpty(reportReq) && null !=reportReq.getValue()) {
|
|
|
- //获取往期总数
|
|
|
- long before=0;
|
|
|
- if(!ObjectUtils.isEmpty(vo)){
|
|
|
- before = vo.getQrNumber();
|
|
|
+ private void getGenerateCodeNum(LocalDateTime beginDate,LocalDateTime endDate,Integer type,PackageCodeTypeRes res,String value) {
|
|
|
+ ListPackageCodeVo entityBase = reportServiceMapper.queryPackageCodeNum(beginDate,endDate,type);
|
|
|
+ if(!ObjectUtils.isEmpty(entityBase)){
|
|
|
+ //判断是否往期
|
|
|
+ if("1".equals(value)){
|
|
|
+ //判断是否生成码使用情况/或者下载码使用情况
|
|
|
+ if("1".equals(type.toString())){
|
|
|
+ res.setCreateBoxNumber(entityBase.getQrBoxNumber());
|
|
|
+ res.setCreateCapNumber(entityBase.getQrCapNumber());
|
|
|
+ }else {
|
|
|
+ res.setLoadBoxNumber(entityBase.getQrBoxNumber());
|
|
|
+ res.setLoadCapNumber(entityBase.getQrCapNumber());
|
|
|
+ }
|
|
|
}else{
|
|
|
- before=0;
|
|
|
+ //判断是否生成码使用情况/或者下载码使用情况
|
|
|
+ if("1".equals(type.toString())){
|
|
|
+ long present=res.getCreateBoxNumber()+res.getCreateCapNumber();
|
|
|
+ long before=entityBase.getQrBoxNumber()+entityBase.getQrCapNumber();
|
|
|
+ res.setCreatePercent(percentBigDecimal(present, before));
|
|
|
+ }else{
|
|
|
+ long present=res.getLoadBoxNumber()+res.getLoadCapNumber();
|
|
|
+ long before=entityBase.getQrBoxNumber()+entityBase.getQrCapNumber();
|
|
|
+ res.setLoadPercent(percentBigDecimal(present, before));
|
|
|
+ }
|
|
|
}
|
|
|
- //获取同期总数
|
|
|
- int present = loadList.stream().mapToInt(x -> Math.toIntExact(x.getQrNumber())).sum();
|
|
|
- //获取同比增长率
|
|
|
- String result = percentBigDecimal(present, before);
|
|
|
- res.setLoadPercent(result);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 获取激活码数量
|
|
|
- * @param reportReq
|
|
|
- * @param res
|
|
|
- * @param map
|
|
|
+ * 获取激活码情况
|
|
|
+ * @param beginDate 开始时间
|
|
|
+ * @param endDate 结束时间
|
|
|
+ * @param res 出参
|
|
|
+ * @param value 判断同期/往期
|
|
|
*/
|
|
|
- private void getActivateCodeNum(ReportReq reportReq, PackageCodeTypeRes res,Map<String,LocalDateTime> map) {
|
|
|
- List<ListPackageCodeVo> activateList = reportServiceMapper.queryActivateCodeNum(reportReq);
|
|
|
- ListPackageCodeVo vo=null;
|
|
|
- if(!map.isEmpty()){
|
|
|
- vo=reportServiceMapper.queryActivateCodeNumPast(map.get("beginDate"),map.get("endDate"));
|
|
|
- }
|
|
|
- for (int i = 0; i < activateList.size(); i++) {
|
|
|
- if (QrTypeEnum.CARTON.getCode().equals(activateList.get(i).getQrType())) {
|
|
|
- res.setActivateBoxNumber(activateList.get(i).getQrNumber());
|
|
|
- } else if (QrTypeEnum.CAP.getCode().equals(activateList.get(i).getQrType())) {
|
|
|
- res.setActivateCapNumber(activateList.get(i).getQrNumber());
|
|
|
- }
|
|
|
- }
|
|
|
- if (!ObjectUtils.isEmpty(reportReq) && null !=reportReq.getValue()) {
|
|
|
- //获取往期总数
|
|
|
- long before=0;
|
|
|
- if(!ObjectUtils.isEmpty(vo)){
|
|
|
- before = vo.getQrNumber();
|
|
|
+ private void getActivateCodeNum(LocalDateTime beginDate,LocalDateTime endDate,PackageCodeTypeRes res,String value) {
|
|
|
+ ListPackageCodeVo activateEntity = reportServiceMapper.queryActivateCodeNum(beginDate,endDate);
|
|
|
+ //判断查询返回是否为空
|
|
|
+ if(!ObjectUtils.isEmpty(activateEntity)){
|
|
|
+ //判断同期还是往期
|
|
|
+ if("1".equals(value)){
|
|
|
+ res.setActivateBoxNumber(activateEntity.getQrBoxNumber());
|
|
|
+ res.setActivateCapNumber(activateEntity.getQrCapNumber());
|
|
|
}else{
|
|
|
- before=0;
|
|
|
+ long present=res.getActivateBoxNumber()+res.getActivateCapNumber();
|
|
|
+ long before=activateEntity.getQrBoxNumber()+activateEntity.getQrCapNumber();
|
|
|
+ String result = percentBigDecimal(present, before);
|
|
|
+ res.setActivatePercent(result);
|
|
|
}
|
|
|
- //获取同期码总数
|
|
|
- int present = activateList.stream().mapToInt(x -> Math.toIntExact(x.getQrNumber())).sum();
|
|
|
- //获取同比增长率
|
|
|
- String result = percentBigDecimal(present, before);
|
|
|
- res.setActivatePercent(result);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -351,7 +312,7 @@ public class ReportServiceImpl implements ReportService {
|
|
|
* @param before 往期数
|
|
|
* @return
|
|
|
*/
|
|
|
- public static String percentBigDecimal(int present, long before) {
|
|
|
+ public static String percentBigDecimal(long present, long before) {
|
|
|
BigDecimal preNum = BigDecimal.valueOf(present);
|
|
|
BigDecimal sufNum = BigDecimal.valueOf(before);
|
|
|
double result = countDecimal(preNum, sufNum);
|