From 9aea0db30160966f027cce3236167ddb2c86d4b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Wed, 16 Jul 2025 16:21:43 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/controller/ZhHomeController.java | 92 ++++++++ .../modules/zh/view/home/entity/ZhHome.java | 49 +++++ .../zh/view/home/mapper/ZhHomeMapper.java | 33 +++ .../zh/view/home/mapper/xml/ZhHomeMapper.xml | 141 ++++++++++++ .../zh/view/home/service/IZhHomeService.java | 25 +++ .../home/service/impl/ZhHomeServiceImpl.java | 200 ++++++++++++++++++ 6 files changed, 540 insertions(+) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/controller/ZhHomeController.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/entity/ZhHome.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/mapper/ZhHomeMapper.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/mapper/xml/ZhHomeMapper.xml create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/service/IZhHomeService.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/service/impl/ZhHomeServiceImpl.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/controller/ZhHomeController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/controller/ZhHomeController.java new file mode 100644 index 0000000..f6124d2 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/controller/ZhHomeController.java @@ -0,0 +1,92 @@ +package org.jeecg.modules.zh.view.home.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.zh.view.home.entity.ZhHome; +import org.jeecg.modules.zh.view.home.service.IZhHomeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; + +/** + * @Description: 首页统计 + * @author: jeecg-boot + */ +@RestController +@RequestMapping("/zh/home") +@Slf4j +public class ZhHomeController { + @Autowired + private IZhHomeService service; + + /** + * 总览统计 + */ + @RequestMapping(value = "/totalInfo", method = RequestMethod.GET) + public Result totalInfo() { + ZhHome entity = service.totalInfo(); + return Result.ok(entity); + } + + /** + * 今日统计 + */ + @RequestMapping(value = "/todayInfo", method = RequestMethod.GET) + public Result todayInfo() { + ZhHome entity = service.todayInfo(); + return Result.ok(entity); + } + + /** + * 订单类别统计 + */ + @RequestMapping(value = "/getOrderTypeCn", method = RequestMethod.GET) + public Result getOrderTypeCn() { + List list = service.getOrderTypeCn(); + return Result.ok(list); + } + + /** + * 小区投递 + */ + @RequestMapping(value = "/getXqtd", method = RequestMethod.GET) + public Result getXqtd() { + List list = service.getXqtd(); + return Result.ok(list); + } + + /** + * 设备投递 + */ + @RequestMapping(value = "/getSbtd", method = RequestMethod.GET) + public Result getSbtd() { + List list = service.getSbtd(); + return Result.ok(list); + } + + /** + * 会员投递 + */ + @RequestMapping(value = "/getHytd", method = RequestMethod.GET) + public Result getHytd() { + List list = service.getHytd(); + return Result.ok(list); + } + + /** + * 实时投递 + */ + @RequestMapping(value = "/getSstd", method = RequestMethod.GET) + public Result> getSstd(ZhHome zhHome, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Page page = new Page(pageNo, pageSize); + IPage list = service.getSstd(page,zhHome); + return Result.OK(list); + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/entity/ZhHome.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/entity/ZhHome.java new file mode 100644 index 0000000..72ad005 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/entity/ZhHome.java @@ -0,0 +1,49 @@ +package org.jeecg.modules.zh.view.home.entity; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ZhHome implements Serializable { + private static final long serialVersionUID = 1L; + + private String tdzlA;//总投递重量 + private Integer tdcsA;//总投递次数 + private String qyzlA;//总清运重量 + private Integer hyrsA;//总会员人数 + private Integer qysA;//总区域数 + private Integer sbsA;//总设备数 + private Integer zxsbsA;//在线设备数 + private Integer lxsbsA;//离线设备数 + + private String tdzlT;//今日递重量 + private Integer tdcsT;//今日递次数 + private String qyzlT;//今日运重量 + private Integer hyrsT;//今日新增会员人数 + + private String tdzlY;//昨日递重量 + private Integer tdcsY;//昨日递次数 + private String qyzlY;//昨日运重量 + private Integer hyrsY;//昨日新增会员人数 + + private String tdzlR;//较昨日递重量比例 + private String tdcsR;//较昨日递次数比例 + private String qyzlR;//较昨日运重量比例 + private String hyrsR;//较昨日新增会员人数比例 + + private String phone; + private String type; + private Integer cn; + private String weight; + private String housingestateId; + private String housingestateName; + private String imei; + private String content; + private Integer rowNumber; + private String addTime; + + private String beginTime; + private String endTime; +} + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/mapper/ZhHomeMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/mapper/ZhHomeMapper.java new file mode 100644 index 0000000..fc5abfa --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/mapper/ZhHomeMapper.java @@ -0,0 +1,33 @@ +package org.jeecg.modules.zh.view.home.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.zh.view.home.entity.ZhHome; + +import java.util.List; + +/** + * @Description: 首页统计 + * @author: jeecg-boot + */ +public interface ZhHomeMapper extends BaseMapper{ + + ZhHome getTdA(); + ZhHome getQyzlA(); + ZhHome getHyrsA(); + ZhHome getQysA(); + ZhHome getSbsA(); + + ZhHome getTd(ZhHome zhHome); + ZhHome getQyzl(ZhHome zhHome); + ZhHome getHyrs(ZhHome zhHome); + + List getOrderTypeCn(); + List getXqtd(); + List getSbtd(); + List getHytd(); + IPage getSstd(Page page, @Param("params")ZhHome zhHome); + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/mapper/xml/ZhHomeMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/mapper/xml/ZhHomeMapper.xml new file mode 100644 index 0000000..010c300 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/mapper/xml/ZhHomeMapper.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/service/IZhHomeService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/service/IZhHomeService.java new file mode 100644 index 0000000..c382c3f --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/service/IZhHomeService.java @@ -0,0 +1,25 @@ +package org.jeecg.modules.zh.view.home.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.zh.view.home.entity.ZhHome; + +import java.util.List; + +/** + * @Description: 首页统计 + * @author: jeecg-boot + */ +public interface IZhHomeService extends IService { + + ZhHome totalInfo(); + ZhHome todayInfo(); + + List getOrderTypeCn(); + + List getXqtd(); + List getSbtd(); + List getHytd(); + IPage getSstd(Page page, ZhHome zhHome); +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/service/impl/ZhHomeServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/service/impl/ZhHomeServiceImpl.java new file mode 100644 index 0000000..073ed6b --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/zh/view/home/service/impl/ZhHomeServiceImpl.java @@ -0,0 +1,200 @@ +package org.jeecg.modules.zh.view.home.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.zh.view.home.entity.ZhHome; +import org.jeecg.modules.zh.view.home.mapper.ZhHomeMapper; +import org.jeecg.modules.zh.view.home.service.IZhHomeService; +import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.List; + +/** + * @Description: 首页统计 + * @author: jeecg-boot + */ +@Service +public class ZhHomeServiceImpl extends ServiceImpl implements IZhHomeService { + + /** + * 总览统计 + */ + @Override + public ZhHome totalInfo() { + ZhHome zhHome = new ZhHome(); + //获取总投递 + ZhHome tdA = baseMapper.getTdA(); + zhHome.setTdcsA(tdA.getTdcsA()); + zhHome.setTdzlA(tdA.getTdzlA()); + //获取总清运 + ZhHome qyzlA = baseMapper.getQyzlA(); + zhHome.setQyzlA(qyzlA.getQyzlA()); + //获取总会员 + ZhHome hyrsA = baseMapper.getHyrsA(); + zhHome.setHyrsA(hyrsA.getHyrsA()); + //获取总区域 + ZhHome qysA = baseMapper.getQysA(); + zhHome.setQysA(qysA.getQysA()); + //获取总设备 + ZhHome sbsA = baseMapper.getSbsA(); + zhHome.setSbsA(sbsA.getSbsA()); + zhHome.setZxsbsA(sbsA.getZxsbsA()); + zhHome.setLxsbsA(sbsA.getZxsbsA()); + return zhHome; + } + + /** + * 今日统计 + */ + @Override + public ZhHome todayInfo() { + ZhHome zhHome = new ZhHome(); + ZhHome zhHomeT = new ZhHome(); + String today = DateUtils.formatDate(); + zhHomeT.setBeginTime(today+" 00:00:00"); + zhHomeT.setEndTime(today+" 23:59:59"); + //获取今日投递 + ZhHome tdT = baseMapper.getTd(zhHomeT); + if(tdT!=null){ + zhHome.setTdcsT(tdT.getTdcsT()); + zhHome.setTdzlT(tdT.getTdzlT()); + }else{ + zhHome.setTdcsT(0); + zhHome.setTdzlT("0"); + } + //获取今日清运 + ZhHome qyzlT = baseMapper.getQyzl(zhHomeT); + if(qyzlT!=null){ + zhHome.setQyzlT(qyzlT.getQyzlT()); + }else{ + zhHome.setQyzlT("0"); + } + //获取今日新增会员 + ZhHome hyrsT = baseMapper.getHyrs(zhHomeT); + if(hyrsT!=null){ + zhHome.setHyrsT(hyrsT.getHyrsT()); + }else{ + zhHome.setHyrsT(0); + } + + ZhHome zhHomeY = new ZhHome(); + Calendar ca = Calendar.getInstance(); + ca.add(Calendar.DAY_OF_MONTH,-1); + String yesterday = DateUtils.formatDate(ca); + zhHomeY.setBeginTime(yesterday+" 00:00:00"); + zhHomeY.setEndTime(yesterday+" 23:59:59"); + //获取昨日投递 + ZhHome tdY = baseMapper.getTd(zhHomeY); + if(tdY!=null){ + zhHome.setTdcsY(tdY.getTdcsT()); + zhHome.setTdzlY(tdY.getTdzlT()); + }else{ + zhHome.setTdcsY(0); + zhHome.setTdzlY("0"); + } + //获取昨日清运 + ZhHome qyzlY = baseMapper.getQyzl(zhHomeY); + if(qyzlY!=null){ + zhHome.setQyzlY(qyzlY.getQyzlT()); + }else{ + zhHome.setQyzlY("0"); + } + //获取昨日会员新增 + ZhHome hyrsY = baseMapper.getHyrs(zhHomeY); + if(hyrsY!=null){ + zhHome.setHyrsY(hyrsY.getHyrsT()); + }else{ + zhHome.setHyrsY(0); + } + //获取投递次数比 + if(!zhHome.getTdcsY().equals(0)){ + BigDecimal btdcsT = new BigDecimal(zhHome.getTdcsT()); + BigDecimal btdcsY = new BigDecimal(zhHome.getTdcsY()); + BigDecimal tdcsR = btdcsT.subtract(btdcsY).multiply(new BigDecimal("100")).divide(btdcsY, 2, RoundingMode.HALF_UP); + zhHome.setTdcsR(tdcsR.toString()); + }else{ + zhHome.setTdcsR("0"); + } + //获取投递重量比 + if(!zhHome.getTdzlY().equals("0")){ + BigDecimal btdzlT = new BigDecimal(zhHome.getTdzlT()); + BigDecimal btdzlY = new BigDecimal(zhHome.getTdzlY()); + BigDecimal tdzlR = btdzlT.subtract(btdzlY).multiply(new BigDecimal("100")).divide(btdzlY, 2, RoundingMode.HALF_UP); + zhHome.setTdzlR(tdzlR.toString()); + }else{ + zhHome.setTdzlR("0"); + } + //获取清运比 + if(!zhHome.getQyzlY().equals("0")){ + BigDecimal bqyzlT = new BigDecimal(zhHome.getQyzlT()); + BigDecimal bqyzlY = new BigDecimal(zhHome.getQyzlY()); + BigDecimal bqyzlR = bqyzlT.subtract(bqyzlY).multiply(new BigDecimal("100")).divide(bqyzlY, 2, RoundingMode.HALF_UP); + zhHome.setQyzlR(bqyzlR.toString()); + }else{ + zhHome.setQyzlR("0"); + } + //获取会员比 + if(!zhHome.getHyrsY().equals(0)){ + BigDecimal bhyrsT = new BigDecimal(zhHome.getHyrsT()); + BigDecimal bhyrsY = new BigDecimal(zhHome.getHyrsY()); + BigDecimal hyrsR = bhyrsT.subtract(bhyrsY).multiply(new BigDecimal("100")).divide(bhyrsY, 2, RoundingMode.HALF_UP); + zhHome.setHyrsR(hyrsR.toString()); + }else{ + zhHome.setHyrsR("0"); + } + return zhHome; + } + + /** + * 订单类别统计 + */ + @Override + public List getOrderTypeCn(){ + return baseMapper.getOrderTypeCn(); + } + + /** + * 小区投递 + */ + @Override + public List getXqtd(){ + return baseMapper.getXqtd(); + } + + /** + * 设备投递 + */ + @Override + public List getSbtd(){ + return baseMapper.getSbtd(); + } + + /** + * 会员投递 + */ + @Override + public List getHytd(){ + return baseMapper.getHytd(); + } + + /** + * 实时投递 + */ + @Override + public IPage getSstd(Page page, ZhHome zhHome){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar ca = Calendar.getInstance(); + String endTime = sdf.format(ca.getTime()); + zhHome.setEndTime(endTime); + ca.add(Calendar.HOUR_OF_DAY,-1); + String beginTime = sdf.format(ca.getTime()); + zhHome.setBeginTime(beginTime); + return baseMapper.getSstd(page,zhHome); + } + +}