From 1442f149019ee0590389abd7a88a79c4d9b59034 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 27 五月 2025 18:23:34 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java | 98 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 88 insertions(+), 10 deletions(-) diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java index 43e19db..4ea2008 100644 --- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java +++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java @@ -5,15 +5,23 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.hutool.core.io.resource.ClassPathResource; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.admin.entity.MasterWorker; import com.ruoyi.admin.large.model.AnalysisOrderData; import com.ruoyi.admin.large.model.query.OrderDataQuery; import com.ruoyi.admin.large.service.AnalysisOrderDataService; +import com.ruoyi.admin.service.MasterWorkerService; import com.ruoyi.admin.service.SysUserService; import com.ruoyi.admin.utils.ImportExcelUtil; import com.ruoyi.admin.utils.WebUtils; +import com.ruoyi.admin.vo.SiteLargeeVO; +import com.ruoyi.admin.vo.WorkersLargeeVO; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.entity.Order; @@ -32,8 +40,11 @@ import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; +import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -51,15 +62,70 @@ private final TokenService tokenService; private final SysUserService sysUserService; private final OrderClient orderClient; + private final MasterWorkerService masterWorkerService; @Autowired - public AnalysisOrderDataController(AnalysisOrderDataService analysisOrderDataService, TokenService tokenService, SysUserService sysUserService, OrderClient orderClient) { + public AnalysisOrderDataController(AnalysisOrderDataService analysisOrderDataService, TokenService tokenService, SysUserService sysUserService, OrderClient orderClient,MasterWorkerService masterWorkerService) { this.analysisOrderDataService = analysisOrderDataService; this.tokenService = tokenService; this.sysUserService = sysUserService; this.orderClient = orderClient; + this.masterWorkerService = masterWorkerService; } + /** + * 大屏-站点分布 + */ + @ApiOperation( value = "大屏-站点分布") + @GetMapping(value = "/listSiteLarge") + public R<SiteLargeeVO> listSiteLarge() { + SiteLargeeVO siteLargeeVO = new SiteLargeeVO(); + // 回收订单数量 + Map<String, Integer> orderMap = new HashMap<>(); + // 回收人员数量 + Map<String, Integer> userMap = new HashMap<>(); + // 根据city为键,值为对应city的订单数量 + List<AnalysisOrderData> list1 = analysisOrderDataService.list(); + for (AnalysisOrderData analysisOrderData : list1) { + if (orderMap.containsKey(analysisOrderData.getCity())) { + orderMap.put(analysisOrderData.getCity(), orderMap.get(analysisOrderData.getCity()) + 1); + } else { + orderMap.put(analysisOrderData.getCity(), 1); + } + if (userMap.containsKey(analysisOrderData.getCity())) { + userMap.put(analysisOrderData.getCity(), userMap.get(analysisOrderData.getCity()) + 1); + } else { + userMap.put(analysisOrderData.getCity(), 1); + } + } + siteLargeeVO.setOrderMap(orderMap); + siteLargeeVO.setUserMap(userMap); + return R.ok(siteLargeeVO); + } + /** + * 大屏-师傅定位分布 + */ + @ApiOperation( value = "大屏-师傅定位分布") + @GetMapping(value = "/listWorkersLarge") + public R<WorkersLargeeVO> listWorkersLarge() { + WorkersLargeeVO siteLargeeVO = new WorkersLargeeVO(); + // 查询师傅经纬度 + List<MasterWorker> list = masterWorkerService.lambdaQuery().isNotNull(MasterWorker::getWorkerLat).isNotNull(MasterWorker::getWorkerLon) + .list(); + siteLargeeVO.setWorkers(list); + // 师傅数量 + Map<String, Integer> userMap = new HashMap<>(); + for (MasterWorker masterWorker : list) { + if (userMap.containsKey(masterWorker.getCity())) { + userMap.put(masterWorker.getCity(), userMap.get(masterWorker.getCity()) + 1); + } else { + userMap.put(masterWorker.getCity(), 1); + } + } +// siteLargeeVO.setSiteMap(); + siteLargeeVO.setUserMap(userMap); + return R.ok(siteLargeeVO); + } /** * 查询上门回收订单列表 */ @@ -115,16 +181,16 @@ @ApiOperation(value = "回收订单导入模板下载") @GetMapping("/import-template") public void importTemplate() { - List<AnalysisOrderData> contractList = new ArrayList<>(); - Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), AnalysisOrderData.class, contractList); + ClassPathResource classPathResource = new ClassPathResource("template/回收订单导入.xlsx"); + TemplateExportParams params = new TemplateExportParams(classPathResource.getPath()); + Workbook workbook = ExcelExportUtil.exportExcel(params, new HashMap<>()); HttpServletResponse response = WebUtils.response(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); ServletOutputStream outputStream = null; try { - String fileName = URLEncoder.encode("回收订单导入模板.xls", "utf-8"); - response.setHeader("Content-Disposition", "attachment;filename=" + fileName); - response.setHeader("content-Type", "application/vnd.ms-excel"); - response.setHeader("Pragma", "no-cache"); - response.setHeader("Cache-Control", "no-cache"); + String fileName = URLEncoder.encode("回收订单导入.xlsx", "utf-8"); + response.setHeader("Content-dispodition", "attachment;filename=" + fileName); outputStream = response.getOutputStream(); workbook.write(outputStream); } catch (IOException e) { @@ -154,6 +220,7 @@ while (iterator.hasNext()){ AnalysisOrderData analysisOrderData = iterator.next(); try { + analysisOrderData.setDataType(1); analysisOrderData.setOrderDate(new SimpleDateFormat("yyyy-MM-dd").parse(analysisOrderData.getOrderDateStr())); }catch (Exception e){ errors.add("回收订单编号:["+analysisOrderData.getOrderNum()+"],时间格式化错误,忽略导入"); @@ -184,16 +251,27 @@ orders.forEach(order -> { AnalysisOrderData analysisOrderData = new AnalysisOrderData(); analysisOrderData.setOrderNum(order.getOrderNumber()); - analysisOrderData.setOrderDate(analysisOrderData.getOrderDate()); -// analysisOrderData.setOrderChannel(order.getOrderChannel()); + try { + analysisOrderData.setOrderDate(new SimpleDateFormat("yyyy-MM-dd").parse(order.getTime())); + } catch (ParseException e) { + throw new RuntimeException(e); + } + analysisOrderData.setOrderChannel(order.getSiteName()); analysisOrderData.setCity(order.getCity()); analysisOrderData.setOrderCategory(order.getServeName()); analysisOrderData.setUserName(order.getReservationName()); analysisOrderData.setUserPhone(order.getReservationPhone()); analysisOrderData.setRecyclePerson(order.getServerName()); analysisOrderData.setState(order.getState()); + analysisOrderData.setImportTime(LocalDateTime.now()); + analysisOrderData.setDataType(2); analysisOrderDataList.add(analysisOrderData); }); + // 删除今日订单 + analysisOrderDataService.remove(new QueryWrapper<AnalysisOrderData>().lambda() + .eq(AnalysisOrderData::getDataType,2) + .like(AnalysisOrderData::getOrderDate, new SimpleDateFormat("yyyy-MM-dd").format(new Date())) + ); analysisOrderDataService.saveBatch(analysisOrderDataList); } return R.ok(); -- Gitblit v1.7.1