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 352dc37..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 @@ -108,16 +108,20 @@ public interface HomeIndexMapper { List getProDetails(BackParamsDto dto); /** - * 查询支付金额及计划条数 + * 首页-二级页面-需求计划详情 * @param dto - * @return + * @return List + * @author cwchen + * @date 2025/1/17 12:48 */ - IndexVo getPayMoney(BackParamsDto dto); + List getPlanDetails(BackParamsDto dto); /** - * 查询未支付计划 z0 + * * @param dto - * @return + * @return List + * @author cwchen + * @date 2025/1/17 14:18 */ - IndexVo getNoPayMoney(BackParamsDto dto); + 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 60e70b4..e61f138 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 @@ -324,11 +324,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); } @@ -336,7 +336,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 { @@ -346,7 +346,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 631342a..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,19 +152,53 @@ ELSE '1' END = #{dispatchStatus}) - + SELECT cpa.id AS planId, + cpa.pro_id AS proId, + bp.name AS proName, + cpa.need_num AS needNum, + cpa.type AS typeName, + bp.bmname AS companyName, + cpa.dispatch_num AS carNum, + cpa.dispatch_num AS craneNum, + CASE WHEN cpa.dispatch_num = 0 THEN '1' + WHEN cpa.dispatch_num > 0 THEN '2' + END AS dispatchStatus, + cs.name AS supName, + cpa.code + FROM car_plan_apply cpa + LEFT JOIN bm_project bp ON cpa.pro_id = bp.bid_id + LEFT JOIN car_plan_apply_sup cpas ON cpa.id = cpas.apply_id + LEFT JOIN car_supplier cs ON cpas.sup_id = cs.id - - AND DATE_FORMAT(sla.create_time,'%Y-%m-%d') BETWEEN #{params.startTime} AND #{params.endTime} + + AND DATE_FORMAT(cpa.create_time,'%Y-%m') = #{yearMonth} + + AND DATE_FORMAT(cpa.create_time,'%Y') = #{year} + + + AND DATE_FORMAT(cpa.create_time,'%m') = #{month} + + + AND INSTR(bp.bmname,#{companyId}) > 0 + + + AND INSTR(cs.name,#{supName}) > 0 + + + AND INSTR(bp.name,#{proName}) > 0 + + + AND INSTR(cpa.code,#{code}) > 0 + + AND cpa.`status` = '2' AND cpa.status_type = '1' - - \ No newline at end of file