From b6ca6bac0d461884aa833c200e961d0a633a7137 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Fri, 17 Jan 2025 14:22:02 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/HomeIndexController.java | 48 ++++++++++++++++ .../entity/HomeDispatchDetailVo.java | 52 ++++++++++++++++++ .../backstage/entity/HomePlanDetailVo.java | 50 +++++++++++++++++ .../backstage/mapper/HomeIndexMapper.java | 23 ++++++-- .../backstage/service/HomeIndexService.java | 18 ++++++ .../service/HomeIndexServiceImpl.java | 48 ++++++++++++++-- .../business/backstage/HomeIndexMapper.xml | 55 +++++++++++++++++++ 7 files changed, 286 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/bonus/gzcar/business/backstage/entity/HomeDispatchDetailVo.java create mode 100644 src/main/java/com/bonus/gzcar/business/backstage/entity/HomePlanDetailVo.java diff --git a/src/main/java/com/bonus/gzcar/business/backstage/controller/HomeIndexController.java b/src/main/java/com/bonus/gzcar/business/backstage/controller/HomeIndexController.java index fc62878..25a31fb 100644 --- a/src/main/java/com/bonus/gzcar/business/backstage/controller/HomeIndexController.java +++ b/src/main/java/com/bonus/gzcar/business/backstage/controller/HomeIndexController.java @@ -12,6 +12,8 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import com.bonus.gzcar.business.backstage.entity.BackParamsDto; +import com.bonus.gzcar.business.backstage.entity.HomeDispatchDetailVo; +import com.bonus.gzcar.business.backstage.entity.HomePlanDetailVo; import com.bonus.gzcar.business.backstage.entity.HomeProDetailVo; import com.bonus.gzcar.business.backstage.service.HomeIndexService; import com.bonus.gzcar.manager.annotation.DecryptAndVerify; @@ -128,4 +130,50 @@ public class HomeIndexController { log.error(e.toString(), e); } } + + @ApiOperation(value = "首页-二级页面-需求计划详情") + @GetMapping("getPlanDetails") + @DecryptAndVerify(decryptedClass = BackParamsDto.class) + public PageInfo getPlanDetails(EncryptedReq dto) { + PageHelper.startPage(dto.getPageNum(),dto.getPageSize()); + List list = service.getPlanDetails(dto.getData());; + return new PageInfo<>(list); + } + + @ApiOperation(value = "首页-二级页面-需求计划详情导出") + @PostMapping("exportPlanDetails") + public void exportPlanDetails(HttpServletResponse response, @RequestBody BackParamsDto dto) { + try { + List list = service.getPlanDetails(dto); + final int[] num = {1}; + list.forEach(vo -> { + vo.setSerialNum(num[0]); + if(Objects.equals(vo.getDispatchStatus(),"1")){ + vo.setDispatchStatus("未派车"); + }else if(Objects.equals(vo.getDispatchStatus(),"2")){ + vo.setDispatchStatus("已派车"); + } + num[0]++; + }); + ExportParams exportParams = new ExportParams("需求计划详情", "需求计划详情", ExcelType.XSSF); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, HomePlanDetailVo.class, list); + response.setContentType("application/vnd.ms-excel"); + response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode("需求计划详情" + ".xlsx", "UTF-8")); + ServletOutputStream outputStream = response.getOutputStream(); + workbook.write(outputStream); + outputStream.close(); + workbook.close(); + } catch (Exception e) { + log.error(e.toString(), e); + } + } + + @ApiOperation(value = "首页-二级页面-派车详情") + @GetMapping("getDispatchDetails") + @DecryptAndVerify(decryptedClass = BackParamsDto.class) + public PageInfo getDispatchDetails(EncryptedReq dto) { + PageHelper.startPage(dto.getPageNum(),dto.getPageSize()); + List list = service.getDispatchDetails(dto.getData());; + return new PageInfo<>(list); + } } diff --git a/src/main/java/com/bonus/gzcar/business/backstage/entity/HomeDispatchDetailVo.java b/src/main/java/com/bonus/gzcar/business/backstage/entity/HomeDispatchDetailVo.java new file mode 100644 index 0000000..285c7a0 --- /dev/null +++ b/src/main/java/com/bonus/gzcar/business/backstage/entity/HomeDispatchDetailVo.java @@ -0,0 +1,52 @@ +package com.bonus.gzcar.business.backstage.entity; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +/** + * @className:HomeProDetailVo + * @author:cwchen + * @date:2025-01-16-16:34 + * @version:1.0 + * @description:首页-派车详情-vo + */ +@Data +public class HomeDispatchDetailVo { + + /**序号*/ + @Excel(name = "序号", width = 10.0, orderNum = "0") + private int serialNum; + /**车辆类型 1.车辆 2.吊车*/ + private int type; + /**名称*/ + @Excel(name = "名称", width = 20.0, orderNum = "1") + private String name; + /**规格*/ + @Excel(name = "规格", width = 20.0, orderNum = "2") + private String model; + /**单位*/ + @Excel(name = "单位", width = 20.0, orderNum = "3") + private String unit; + /**说明(根据车辆/吊车自动生成)*/ + @Excel(name = "说明", width = 20.0, orderNum = "4") + private String remark; + /**金额*/ + @Excel(name = "金额", width = 20.0, orderNum = "5") + private double money; + /**付款状态*/ + @Excel(name = "付款状态", width = 20.0, orderNum = "6") + private String payStatus; + /**需求计划编号*/ + @Excel(name = "需求计划编号", width = 20.0, orderNum = "7") + private String code; + /**工程名称*/ + @Excel(name = "工程名称", width = 20.0, orderNum = "8") + private String proName; + /**供应商*/ + @Excel(name = "供应商", width = 20.0, orderNum = "9") + private String supName; + /**派车日期*/ + @Excel(name = "派车日期", width = 20.0, orderNum = "10") + private String dispatchDay; + +} diff --git a/src/main/java/com/bonus/gzcar/business/backstage/entity/HomePlanDetailVo.java b/src/main/java/com/bonus/gzcar/business/backstage/entity/HomePlanDetailVo.java new file mode 100644 index 0000000..367041b --- /dev/null +++ b/src/main/java/com/bonus/gzcar/business/backstage/entity/HomePlanDetailVo.java @@ -0,0 +1,50 @@ +package com.bonus.gzcar.business.backstage.entity; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +/** + * @className:HomeProDetailVo + * @author:cwchen + * @date:2025-01-16-16:34 + * @version:1.0 + * @description:首页-需求计划详情-vo + */ +@Data +public class HomePlanDetailVo { + + /**序号*/ + @Excel(name = "序号", width = 10.0, orderNum = "0") + private int serialNum; + /**车辆类型 1.车辆 2.吊车*/ + private int typeName; + /**计划id*/ + private Long planId; + /**需求计划编号*/ + @Excel(name = "需求计划编号", width = 20.0, orderNum = "1") + private String code; + /**工程名称*/ + @Excel(name = "工程名称", width = 20.0, orderNum = "2") + private String proName; + /**派车状态*/ + @Excel(name = "派车状态", width = 20.0, orderNum = "3") + private String dispatchStatus; + /**车辆数量*/ + @Excel(name = "车辆数量", width = 20.0, orderNum = "4") + private int carNum; + /**吊车数量*/ + @Excel(name = "吊车数量", width = 20.0, orderNum = "5") + private int craneNum; + /**待派车数量*/ + @Excel(name = "金额", width = 20.0, orderNum = "6") + private double money; + /**供应商*/ + @Excel(name = "供应商", width = 20.0, orderNum = "7") + private String supName; + /**付款状态*/ + @Excel(name = "付款状态", width = 20.0, orderNum = "8") + private String payStatus; + /**所属分公司*/ + @Excel(name = "所属分公司", width = 20.0, orderNum = "9") + private String companyName; +} diff --git a/src/main/java/com/bonus/gzcar/business/backstage/mapper/HomeIndexMapper.java b/src/main/java/com/bonus/gzcar/business/backstage/mapper/HomeIndexMapper.java index 1c6ae9f..48b4b31 100644 --- a/src/main/java/com/bonus/gzcar/business/backstage/mapper/HomeIndexMapper.java +++ b/src/main/java/com/bonus/gzcar/business/backstage/mapper/HomeIndexMapper.java @@ -1,9 +1,6 @@ package com.bonus.gzcar.business.backstage.mapper; -import com.bonus.gzcar.business.backstage.entity.BackParamsDto; -import com.bonus.gzcar.business.backstage.entity.HomeProDetailVo; -import com.bonus.gzcar.business.backstage.entity.HomeProRankingVo; -import com.bonus.gzcar.business.backstage.entity.HomeSupStatisticsVo; +import com.bonus.gzcar.business.backstage.entity.*; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -109,4 +106,22 @@ public interface HomeIndexMapper { * @date 2025/1/17 9:58 */ List getProDetails(BackParamsDto dto); + + /** + * 首页-二级页面-需求计划详情 + * @param dto + * @return List + * @author cwchen + * @date 2025/1/17 12:48 + */ + List getPlanDetails(BackParamsDto dto); + + /** + * + * @param dto + * @return List + * @author cwchen + * @date 2025/1/17 14:18 + */ + List getDispatchDetails(BackParamsDto dto); } diff --git a/src/main/java/com/bonus/gzcar/business/backstage/service/HomeIndexService.java b/src/main/java/com/bonus/gzcar/business/backstage/service/HomeIndexService.java index a3f7f25..f392025 100644 --- a/src/main/java/com/bonus/gzcar/business/backstage/service/HomeIndexService.java +++ b/src/main/java/com/bonus/gzcar/business/backstage/service/HomeIndexService.java @@ -1,6 +1,8 @@ package com.bonus.gzcar.business.backstage.service; import com.bonus.gzcar.business.backstage.entity.BackParamsDto; +import com.bonus.gzcar.business.backstage.entity.HomeDispatchDetailVo; +import com.bonus.gzcar.business.backstage.entity.HomePlanDetailVo; import com.bonus.gzcar.business.backstage.entity.HomeProDetailVo; import com.bonus.gzcar.manager.webResult.ServerResponse; @@ -87,5 +89,21 @@ public interface HomeIndexService { */ List getProDetails(BackParamsDto data); + /** + * 首页-二级页面-需求计划详情 + * @param data + * @return List + * @author cwchen + * @date 2025/1/17 12:47 + */ + List getPlanDetails(BackParamsDto data); + /** + * 首页-二级页面-派车详情 + * @param data + * @return List + * @author cwchen + * @date 2025/1/17 14:17 + */ + List getDispatchDetails(BackParamsDto data); } diff --git a/src/main/java/com/bonus/gzcar/business/backstage/service/HomeIndexServiceImpl.java b/src/main/java/com/bonus/gzcar/business/backstage/service/HomeIndexServiceImpl.java index 324e0a0..64a7203 100644 --- a/src/main/java/com/bonus/gzcar/business/backstage/service/HomeIndexServiceImpl.java +++ b/src/main/java/com/bonus/gzcar/business/backstage/service/HomeIndexServiceImpl.java @@ -322,11 +322,11 @@ public class HomeIndexServiceImpl implements HomeIndexService { @Override public ServerResponse getCompanyData(BackParamsDto dto) { - List> list = new ArrayList<>(); + List> list = new ArrayList<>(); try { list = mapper.getCompanyData(dto); } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); } return ServerResponse.createSuccess(list); } @@ -334,7 +334,7 @@ public class HomeIndexServiceImpl implements HomeIndexService { @Override public List getProDetails(BackParamsDto dto) { List list = new ArrayList<>(); - if(StringUtils.isNotEmpty(dto.getYear()) && StringUtils.isNotEmpty(dto.getMonth())){ + if (StringUtils.isNotEmpty(dto.getYear()) && StringUtils.isNotEmpty(dto.getMonth())) { dto.setYearMonth(dto.getYear() + "-" + dto.getMonth()); } try { @@ -344,7 +344,47 @@ public class HomeIndexServiceImpl implements HomeIndexService { // 金额待计算 } } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); + } + return list; + } + + @Override + public List getPlanDetails(BackParamsDto dto) { + List list = new ArrayList<>(); + if (StringUtils.isNotEmpty(dto.getYear()) && StringUtils.isNotEmpty(dto.getMonth())) { + dto.setYearMonth(dto.getYear() + "-" + dto.getMonth()); + } + try { + list = mapper.getPlanDetails(dto); + for (HomePlanDetailVo vo : list) { + if (vo.getTypeName() == 1) { + vo.setCraneNum(0); + } else { + vo.setCarNum(0); + } + // 金额待计算 + } + } catch (Exception e) { + log.error(e.toString(), e); + } + return list; + } + + @Override + public List getDispatchDetails(BackParamsDto dto) { + List list = new ArrayList<>(); + if (StringUtils.isNotEmpty(dto.getYear()) && StringUtils.isNotEmpty(dto.getMonth())) { + dto.setYearMonth(dto.getYear() + "-" + dto.getMonth()); + } + try { + list = mapper.getDispatchDetails(dto); + for (HomeDispatchDetailVo vo : list) { + + // 金额待计算 + } + } catch (Exception e) { + log.error(e.toString(), e); } return list; } diff --git a/src/main/resources/mappers/business/backstage/HomeIndexMapper.xml b/src/main/resources/mappers/business/backstage/HomeIndexMapper.xml index db7e21c..81b4a24 100644 --- a/src/main/resources/mappers/business/backstage/HomeIndexMapper.xml +++ b/src/main/resources/mappers/business/backstage/HomeIndexMapper.xml @@ -137,6 +137,12 @@ AND DATE_FORMAT(cpa.create_time,'%m') = #{month} + + AND INSTR(bp.bmname,#{companyId}) > 0 + + + AND INSTR(bp.name,#{proName}) > 0 + AND cpa.`status` = '2' AND cpa.status_type = '1' GROUP BY cpa.pro_id @@ -146,4 +152,53 @@ ELSE '1' END = #{dispatchStatus}) + + + + \ No newline at end of file