问题修改,功能开发
This commit is contained in:
parent
6fb5a836c1
commit
a404d8d20c
|
|
@ -1,7 +1,11 @@
|
||||||
package com.bonus.gzcar.business.backstage.controller;
|
package com.bonus.gzcar.business.backstage.controller;
|
||||||
|
|
||||||
import cn.afterturn.easypoi.cache.manager.IFileLoader;
|
import cn.afterturn.easypoi.cache.manager.IFileLoader;
|
||||||
|
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.*;
|
import com.bonus.gzcar.business.backstage.entity.*;
|
||||||
|
import com.bonus.gzcar.business.backstage.mapper.SupDispatchCarMapper;
|
||||||
import com.bonus.gzcar.business.backstage.service.DispatchCarService;
|
import com.bonus.gzcar.business.backstage.service.DispatchCarService;
|
||||||
import com.bonus.gzcar.business.backstage.service.SupDispatchCarService;
|
import com.bonus.gzcar.business.backstage.service.SupDispatchCarService;
|
||||||
import com.bonus.gzcar.business.utils.ExportExcelUtil;
|
import com.bonus.gzcar.business.utils.ExportExcelUtil;
|
||||||
|
|
@ -15,16 +19,20 @@ import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.ArrayList;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.net.URLEncoder;
|
||||||
import java.util.Objects;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 黑子
|
* @author 黑子
|
||||||
|
|
@ -40,6 +48,9 @@ public class SupDispatchCarController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SupDispatchCarService service;
|
private SupDispatchCarService service;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SupDispatchCarMapper mapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询 已分配的供应商 数据信息
|
* 查询 已分配的供应商 数据信息
|
||||||
* @param dto
|
* @param dto
|
||||||
|
|
@ -184,29 +195,274 @@ public class SupDispatchCarController {
|
||||||
* @param response
|
* @param response
|
||||||
* @param dto
|
* @param dto
|
||||||
*/
|
*/
|
||||||
|
// @PostMapping("expOutPageList")
|
||||||
|
// public void expOutPageList(HttpServletResponse response, @RequestBody CarNeedPlanVo dto) {
|
||||||
|
// try {
|
||||||
|
// List<CarNeedPlanVo> list = service.getOutPageList(dto);
|
||||||
|
// List<CarNeedPlanExport1Vo> exportList=new ArrayList<>();
|
||||||
|
// final int[] num = {1};
|
||||||
|
// list.forEach(vo->{
|
||||||
|
// CarNeedPlanExport1Vo exp=new CarNeedPlanExport1Vo();
|
||||||
|
// BeanUtils.copyProperties(vo,exp);
|
||||||
|
//
|
||||||
|
// if(ListHelpUtil.isNotEmpty(exp.getFileList())){
|
||||||
|
// exp.setFileNum("已上传");
|
||||||
|
// }else{
|
||||||
|
// exp.setFileNum("待上传");
|
||||||
|
// }
|
||||||
|
// exp.setStatusName("已派车");
|
||||||
|
// exp.setXh(num[0]);
|
||||||
|
// num[0]++;
|
||||||
|
// exportList.add(exp);
|
||||||
|
// });
|
||||||
|
// ExportExcelUtil.export(response,"到货期确认单", CarNeedPlanExport1Vo.class,exportList);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// log.error(e.toString(), e);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
@PostMapping("expOutPageList")
|
@PostMapping("expOutPageList")
|
||||||
public void expOutPageList(HttpServletResponse response, @RequestBody CarNeedPlanVo dto) {
|
public void expOutPageList(HttpServletResponse response, @RequestBody CarNeedPlanVo dto) {
|
||||||
try {
|
try {
|
||||||
List<CarNeedPlanVo> list = service.getOutPageList(dto);
|
List<CarNeedPlanVo> list = service.getOutPageList(dto);
|
||||||
List<CarNeedPlanExport1Vo> exportList=new ArrayList<>();
|
List<CarNeedPlanExport1Vo> exportList = new ArrayList<>();
|
||||||
final int[] num = {1};
|
|
||||||
list.forEach(vo->{
|
|
||||||
CarNeedPlanExport1Vo exp=new CarNeedPlanExport1Vo();
|
|
||||||
BeanUtils.copyProperties(vo,exp);
|
|
||||||
|
|
||||||
if(ListHelpUtil.isNotEmpty(exp.getFileList())){
|
// 用于存储合并单元格的区域
|
||||||
exp.setFileNum("已上传");
|
List<CellRangeAddress> mergeRegions = new ArrayList<>();
|
||||||
}else{
|
int currentRow = 1; // 从第1行开始(第0行是标题行)
|
||||||
exp.setFileNum("待上传");
|
|
||||||
}
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
CarNeedPlanVo vo = list.get(i);
|
||||||
|
CarNeedPlanExport1Vo exp = new CarNeedPlanExport1Vo();
|
||||||
|
BeanUtils.copyProperties(vo, exp);
|
||||||
|
|
||||||
|
// 设置文件状态和派车状态
|
||||||
|
exp.setFileNum(ListHelpUtil.isNotEmpty(exp.getFileList()) ? "已上传" : "待上传");
|
||||||
exp.setStatusName("已派车");
|
exp.setStatusName("已派车");
|
||||||
exp.setXh(num[0]);
|
exp.setXh(i + 1);
|
||||||
num[0]++;
|
|
||||||
|
// 获取详情数据
|
||||||
|
CarPlanOutVo bean1 = new CarPlanOutVo();
|
||||||
|
bean1.setId(exp.getId());
|
||||||
|
List<CarPlanOutVoDetailsVo> details = mapper.getListDetails(bean1);
|
||||||
|
int detailCount = details != null ? Math.max(details.size(), 1) : 1;
|
||||||
|
|
||||||
|
// 处理详情数据(无论数量多少都处理)
|
||||||
|
if (details != null && !details.isEmpty()) {
|
||||||
|
// 第一条详情数据设置到主数据对象中
|
||||||
|
CarPlanOutVoDetailsVo firstDetail = details.get(0);
|
||||||
|
exp.setCarType(firstDetail.getType());
|
||||||
|
exp.setStartAddress(firstDetail.getStartAddress());
|
||||||
|
exp.setEndAddress(firstDetail.getEndAddress());
|
||||||
|
exp.setUseAddress(firstDetail.getUseAddress());
|
||||||
|
exp.setName(firstDetail.getName());
|
||||||
|
exp.setModel(firstDetail.getModel());
|
||||||
|
exp.setCarNumStr(firstDetail.getCarNum());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加主数据行(总是包含第一条详情数据)
|
||||||
exportList.add(exp);
|
exportList.add(exp);
|
||||||
});
|
|
||||||
ExportExcelUtil.export(response,"到货期确认单", CarNeedPlanExport1Vo.class,exportList);
|
// 添加剩余详情数据行(如果有)
|
||||||
|
for (int j = 1; j < detailCount; j++) {
|
||||||
|
CarNeedPlanExport1Vo detailRow = new CarNeedPlanExport1Vo();
|
||||||
|
if (j < details.size()) {
|
||||||
|
CarPlanOutVoDetailsVo detail = details.get(j);
|
||||||
|
detailRow.setCarType(detail.getType());
|
||||||
|
detailRow.setStartAddress(detail.getStartAddress());
|
||||||
|
detailRow.setEndAddress(detail.getEndAddress());
|
||||||
|
detailRow.setUseAddress(detail.getUseAddress());
|
||||||
|
detailRow.setName(detail.getName());
|
||||||
|
detailRow.setModel(detail.getModel());
|
||||||
|
detailRow.setCarNumStr(detail.getCarNum());
|
||||||
|
}
|
||||||
|
exportList.add(detailRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 只有当detailCount > 1时才需要合并
|
||||||
|
if (detailCount > 1) {
|
||||||
|
// 合并主数据列(前10列)
|
||||||
|
for (int col = 0; col < 10; col++) {
|
||||||
|
mergeRegions.add(new CellRangeAddress(
|
||||||
|
currentRow,
|
||||||
|
currentRow + detailCount - 1,
|
||||||
|
col,
|
||||||
|
col
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
currentRow += detailCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 自定义导出
|
||||||
|
customExportWithDetails(response, "到货期确认单", exportList, mergeRegions);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.toString(), e);
|
log.error("导出Excel失败", e);
|
||||||
|
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
|
try {
|
||||||
|
response.getWriter().write("导出Excel失败: " + e.getMessage());
|
||||||
|
} catch (IOException ex) {
|
||||||
|
log.error("写入错误响应失败", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void customExportWithDetails(HttpServletResponse response, String sheetName,
|
||||||
|
List<CarNeedPlanExport1Vo> dataList,
|
||||||
|
List<CellRangeAddress> mergeRegions) throws Exception {
|
||||||
|
Workbook workbook = new XSSFWorkbook();
|
||||||
|
Sheet sheet = workbook.createSheet(sheetName);
|
||||||
|
|
||||||
|
// 创建样式
|
||||||
|
CellStyle headerStyle = createHeaderStyle(workbook); // 标题样式
|
||||||
|
CellStyle dataStyle = createDataStyle(workbook); // 数据样式
|
||||||
|
CellStyle wrapTextStyle = createWrapTextStyle(workbook); // 自动换行样式
|
||||||
|
|
||||||
|
// 设置列宽(可根据实际情况调整)
|
||||||
|
int[] columnWidths = {8, 15, 15, 10, 15, 20, 10, 10, 15, 15, 15, 15, 15, 10, 10, 10, 10};
|
||||||
|
for (int i = 0; i < columnWidths.length; i++) {
|
||||||
|
sheet.setColumnWidth(i, columnWidths[i] * 256); // 256是一个字符的宽度单位
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建标题行
|
||||||
|
Row titleRow = sheet.createRow(0);
|
||||||
|
String[] titles = {"序号", "工程", "计划编号", "申请人", "申请时间", "备注", "派车状态", "派车数量", "派车日期", "到货确认单",
|
||||||
|
"类型","起运地", "目的地", "使用地", "车型", "型号", "车牌"};
|
||||||
|
for (int i = 0; i < titles.length; i++) {
|
||||||
|
Cell cell = titleRow.createCell(i);
|
||||||
|
cell.setCellValue(titles[i]);
|
||||||
|
cell.setCellStyle(headerStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 填充数据
|
||||||
|
int rowNum = 1;
|
||||||
|
for (CarNeedPlanExport1Vo data : dataList) {
|
||||||
|
Row row = sheet.createRow(rowNum++);
|
||||||
|
|
||||||
|
// 主数据(前10列)
|
||||||
|
setCellValueWithStyle(row, 0, data.getXh(),dataStyle);
|
||||||
|
setCellValueWithStyle(row, 1, data.getProName(), wrapTextStyle);
|
||||||
|
setCellValueWithStyle(row, 2, data.getCode(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 3, data.getUserName(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 4, data.getAppLyTime(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 5, data.getRemark(), wrapTextStyle);
|
||||||
|
setCellValueWithStyle(row, 6, data.getStatusName(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 7, data.getDispatchNum(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 8, data.getOutTime(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 9, data.getFileNum(), dataStyle);
|
||||||
|
|
||||||
|
// 详情数据(后6列)
|
||||||
|
setCellValueWithStyle(row, 10, data.getCarType(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 11, data.getStartAddress(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 12, data.getEndAddress(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 13, data.getUseAddress(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 14, data.getName(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 15, data.getModel(), dataStyle);
|
||||||
|
setCellValueWithStyle(row, 16, data.getCarNumStr(), dataStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加合并区域
|
||||||
|
for (CellRangeAddress region : mergeRegions) {
|
||||||
|
if (region.getFirstRow() != region.getLastRow() ||
|
||||||
|
region.getFirstColumn() != region.getLastColumn()) {
|
||||||
|
sheet.addMergedRegion(region);
|
||||||
|
// 为合并区域设置样式
|
||||||
|
setMergedRegionStyle(sheet, region, dataStyle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 输出Excel
|
||||||
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||||
|
response.setHeader("Content-Disposition",
|
||||||
|
"attachment;filename=" + URLEncoder.encode(sheetName + ".xlsx", "UTF-8"));
|
||||||
|
try (ServletOutputStream out = response.getOutputStream()) {
|
||||||
|
workbook.write(out);
|
||||||
|
} finally {
|
||||||
|
workbook.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建标题样式(加粗、居中、带边框)
|
||||||
|
private CellStyle createHeaderStyle(Workbook workbook) {
|
||||||
|
CellStyle style = workbook.createCellStyle();
|
||||||
|
Font font = workbook.createFont();
|
||||||
|
font.setBold(true); // 加粗
|
||||||
|
style.setFont(font);
|
||||||
|
style.setAlignment(HorizontalAlignment.CENTER); // 水平居中
|
||||||
|
style.setVerticalAlignment(VerticalAlignment.CENTER); // 垂直居中
|
||||||
|
|
||||||
|
// 设置边框
|
||||||
|
style.setBorderTop(BorderStyle.THIN);
|
||||||
|
style.setBorderBottom(BorderStyle.THIN);
|
||||||
|
style.setBorderLeft(BorderStyle.THIN);
|
||||||
|
style.setBorderRight(BorderStyle.THIN);
|
||||||
|
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建数据样式(带边框)
|
||||||
|
private CellStyle createDataStyle(Workbook workbook) {
|
||||||
|
CellStyle style = workbook.createCellStyle();
|
||||||
|
style.setBorderTop(BorderStyle.THIN);
|
||||||
|
style.setBorderBottom(BorderStyle.THIN);
|
||||||
|
style.setBorderLeft(BorderStyle.THIN);
|
||||||
|
style.setBorderRight(BorderStyle.THIN);
|
||||||
|
style.setVerticalAlignment(VerticalAlignment.CENTER); // 垂直居中
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建自动换行样式
|
||||||
|
private CellStyle createWrapTextStyle(Workbook workbook) {
|
||||||
|
CellStyle style = createDataStyle(workbook);
|
||||||
|
style.setWrapText(true); // 自动换行
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置单元格值并应用样式
|
||||||
|
private void setCellValueWithStyle(Row row, int column, Object value, CellStyle style) {
|
||||||
|
if (row == null) return;
|
||||||
|
|
||||||
|
Cell cell = row.createCell(column);
|
||||||
|
cell.setCellStyle(style);
|
||||||
|
|
||||||
|
if (value == null) {
|
||||||
|
cell.setCellValue("");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value instanceof Number) {
|
||||||
|
cell.setCellValue(((Number) value).doubleValue());
|
||||||
|
} else if (value instanceof Date) {
|
||||||
|
cell.setCellValue((Date) value);
|
||||||
|
// 设置日期格式
|
||||||
|
CellStyle dateStyle = row.getSheet().getWorkbook().createCellStyle();
|
||||||
|
dateStyle.cloneStyleFrom(style);
|
||||||
|
dateStyle.setDataFormat(row.getSheet().getWorkbook().createDataFormat().getFormat("yyyy-MM-dd"));
|
||||||
|
cell.setCellStyle(dateStyle);
|
||||||
|
} else if (value instanceof Boolean) {
|
||||||
|
cell.setCellValue((Boolean) value);
|
||||||
|
} else {
|
||||||
|
cell.setCellValue(value.toString());
|
||||||
|
|
||||||
|
// 如果文本长度超过50个字符,使用自动换行样式
|
||||||
|
if (value.toString().length() > 50) {
|
||||||
|
CellStyle wrapStyle = row.getSheet().getWorkbook().createCellStyle();
|
||||||
|
wrapStyle.cloneStyleFrom(style);
|
||||||
|
wrapStyle.setWrapText(true);
|
||||||
|
cell.setCellStyle(wrapStyle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 为合并区域设置样式
|
||||||
|
private void setMergedRegionStyle(Sheet sheet, CellRangeAddress region, CellStyle style) {
|
||||||
|
for (int i = region.getFirstRow(); i <= region.getLastRow(); i++) {
|
||||||
|
Row row = sheet.getRow(i) == null ? sheet.createRow(i) : sheet.getRow(i);
|
||||||
|
for (int j = region.getFirstColumn(); j <= region.getLastColumn(); j++) {
|
||||||
|
Cell cell = row.getCell(j) == null ? row.createCell(j) : row.getCell(j);
|
||||||
|
cell.setCellStyle(style);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,4 +72,9 @@ public class CarDriverVo extends ParentVo {
|
||||||
*/
|
*/
|
||||||
private int num;
|
private int num;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否派车
|
||||||
|
*/
|
||||||
|
private String isDispatch;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ public class CarNeedPlanExport1Vo extends ParentVo {
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
@Excel(name = "申请时间", width = 10.0, orderNum = "4")
|
@Excel(name = "备注", width = 10.0, orderNum = "4")
|
||||||
private String remark;
|
private String remark;
|
||||||
/**
|
/**
|
||||||
* 计划类型 0 正常 1紧急
|
* 计划类型 0 正常 1紧急
|
||||||
|
|
@ -158,6 +158,28 @@ public class CarNeedPlanExport1Vo extends ParentVo {
|
||||||
@Excel(name = "到货确认单", width = 10.0, orderNum = "7")
|
@Excel(name = "到货确认单", width = 10.0, orderNum = "7")
|
||||||
private String fileNum;
|
private String fileNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 起运地:
|
||||||
|
* */
|
||||||
|
private String startAddress;
|
||||||
|
/**
|
||||||
|
* 目的地
|
||||||
|
*/
|
||||||
|
private String endAddress;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用地
|
||||||
|
*/
|
||||||
|
private String useAddress;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆类型
|
||||||
|
*/
|
||||||
|
private String carType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆类型
|
||||||
|
*/
|
||||||
|
private String carNumStr;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -186,5 +186,9 @@ public class CarNeedPlanVo extends ParentVo {
|
||||||
|
|
||||||
private String outId;
|
private String outId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车牌
|
||||||
|
*/
|
||||||
|
private String licensePlate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -191,4 +191,11 @@ public interface SupDispatchCarMapper {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
int delAuditRecord(CarPlanOutVo outVo);
|
int delAuditRecord(CarPlanOutVo outVo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询car_plan_out_details数据
|
||||||
|
* @param bean1
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CarPlanOutVoDetailsVo> getListDetails(CarPlanOutVo bean1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import com.bonus.gzcar.business.system.entity.FileUploadVo;
|
||||||
import com.bonus.gzcar.business.system.service.FileUploadService;
|
import com.bonus.gzcar.business.system.service.FileUploadService;
|
||||||
import com.bonus.gzcar.manager.advice.ValidatorsUtils;
|
import com.bonus.gzcar.manager.advice.ValidatorsUtils;
|
||||||
import com.bonus.gzcar.manager.annotation.DecryptAndVerify;
|
import com.bonus.gzcar.manager.annotation.DecryptAndVerify;
|
||||||
|
import com.bonus.gzcar.manager.common.util.DateTimeHelper;
|
||||||
import com.bonus.gzcar.manager.common.util.StringHelper;
|
import com.bonus.gzcar.manager.common.util.StringHelper;
|
||||||
import com.bonus.gzcar.manager.common.util.UserUtil;
|
import com.bonus.gzcar.manager.common.util.UserUtil;
|
||||||
import com.bonus.gzcar.manager.core.entity.EncryptedReq;
|
import com.bonus.gzcar.manager.core.entity.EncryptedReq;
|
||||||
|
|
@ -345,6 +346,7 @@ public class CarDriverServiceImpl implements CarDriverService{
|
||||||
public List<CarDriverVo> getDriverListBySup(CarDriverVo data) {
|
public List<CarDriverVo> getDriverListBySup(CarDriverVo data) {
|
||||||
List<CarDriverVo> list=new ArrayList<>();
|
List<CarDriverVo> list=new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
|
data.setCreateTime(DateTimeHelper.getNowDay());
|
||||||
list=mapper.getDriverListBySup(data);
|
list=mapper.getDriverListBySup(data);
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error(e.toString());
|
log.error(e.toString());
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ public class ParentVo {
|
||||||
* 序号
|
* 序号
|
||||||
*/
|
*/
|
||||||
@Excel(name = "序号", width = 10.0, orderNum = "0")
|
@Excel(name = "序号", width = 10.0, orderNum = "0")
|
||||||
private int xh;
|
private Integer xh;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人
|
* 创建人
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,11 @@
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="getDriverPageList" resultType="com.bonus.gzcar.business.backstage.entity.CarDriverVo">
|
<select id="getDriverPageList" resultType="com.bonus.gzcar.business.backstage.entity.CarDriverVo">
|
||||||
|
SELECT
|
||||||
|
a.*,
|
||||||
|
COUNT( DISTINCT cpod.apply_id ) AS num
|
||||||
|
FROM
|
||||||
|
(
|
||||||
select cdi.id, cdi.name, cdi.phone, cdi.sup_id supId,file1.num sfzNum,file2.num jszNum,file3.num
|
select cdi.id, cdi.name, cdi.phone, cdi.sup_id supId,file1.num sfzNum,file2.num jszNum,file3.num
|
||||||
otherNum,cs.name supName,cdi.is_white as isWhiteList
|
otherNum,cs.name supName,cdi.is_white as isWhiteList
|
||||||
from car_driver_info cdi
|
from car_driver_info cdi
|
||||||
|
|
@ -45,6 +50,10 @@
|
||||||
and cs.name like concat('%',#{supName},'%')
|
and cs.name like concat('%',#{supName},'%')
|
||||||
</if>
|
</if>
|
||||||
ORDER BY cdi.create_time desc
|
ORDER BY cdi.create_time desc
|
||||||
|
) a
|
||||||
|
LEFT JOIN car_plan_out_details cpod ON cpod.driver_id = a.id
|
||||||
|
GROUP BY
|
||||||
|
a.id
|
||||||
</select>
|
</select>
|
||||||
<select id="getDriverPageWhiteList" resultType="com.bonus.gzcar.business.backstage.entity.CarDriverVo">
|
<select id="getDriverPageWhiteList" resultType="com.bonus.gzcar.business.backstage.entity.CarDriverVo">
|
||||||
SELECT
|
SELECT
|
||||||
|
|
@ -90,9 +99,11 @@
|
||||||
where cdi.id=#{id}
|
where cdi.id=#{id}
|
||||||
</select>
|
</select>
|
||||||
<select id="getDriverListBySup" resultType="com.bonus.gzcar.business.backstage.entity.CarDriverVo">
|
<select id="getDriverListBySup" resultType="com.bonus.gzcar.business.backstage.entity.CarDriverVo">
|
||||||
select cdi.id,cdi.name,cdi.phone,cdi.sup_id supId ,cs.name supName,cdi.is_white as isWhiteList
|
select cdi.id,cdi.name,cdi.phone,cdi.sup_id supId ,cs.name supName,cdi.is_white as isWhiteList,
|
||||||
|
cpod.id as isDispatch
|
||||||
FROM car_driver_info cdi
|
FROM car_driver_info cdi
|
||||||
left join car_supplier cs on cs.id=cdi.sup_id
|
left join car_supplier cs on cs.id=cdi.sup_id
|
||||||
|
LEFT JOIN car_plan_out_details cpod on cpod.driver_id=cdi.id and LEFT(cpod.create_time,10)=#{createTime}
|
||||||
where cdi.is_active=1
|
where cdi.is_active=1
|
||||||
<if test="supId!=null and supId!=''">
|
<if test="supId!=null and supId!=''">
|
||||||
and cdi.sup_id=#{supId}
|
and cdi.sup_id=#{supId}
|
||||||
|
|
@ -109,9 +120,6 @@
|
||||||
|
|
||||||
<select id="getRePlan" resultType="com.bonus.gzcar.business.backstage.entity.CarNeedPlanVo">
|
<select id="getRePlan" resultType="com.bonus.gzcar.business.backstage.entity.CarNeedPlanVo">
|
||||||
SELECT cpa.id,
|
SELECT cpa.id,
|
||||||
cpa.`code`,
|
|
||||||
bp.ID as proId,
|
|
||||||
bp.`NAME` as proName,
|
|
||||||
CASE
|
CASE
|
||||||
cpa.type
|
cpa.type
|
||||||
WHEN 1 THEN
|
WHEN 1 THEN
|
||||||
|
|
@ -120,14 +128,24 @@
|
||||||
'吊车'
|
'吊车'
|
||||||
ELSE ''
|
ELSE ''
|
||||||
END typeName,
|
END typeName,
|
||||||
|
cpa.`code`,
|
||||||
|
bp.ID AS proId,
|
||||||
|
bp.`NAME` AS proName,
|
||||||
cpa.user_name userName,
|
cpa.user_name userName,
|
||||||
DATE_FORMAT(cpa.create_time, '%Y-%m-%d') appLyTime,
|
DATE_FORMAT(cpa.create_time, '%Y-%m-%d') appLyTime,
|
||||||
cpa.remark
|
a.createTime as outTime,
|
||||||
FROM (SELECT cpod.apply_id AS applyId
|
a.carNum AS licensePlate,
|
||||||
|
CONCAT(cmt2.`name`, '-', cmt.`name`) AS model
|
||||||
|
FROM (SELECT cpod.apply_id AS applyId,
|
||||||
|
cpod.create_time AS createTime,
|
||||||
|
car_num AS carNum,
|
||||||
|
model_id
|
||||||
FROM car_plan_out_details cpod
|
FROM car_plan_out_details cpod
|
||||||
WHERE cpod.driver_id = #{id}
|
WHERE cpod.driver_id = #{id}
|
||||||
GROUP BY cpod.apply_id) a
|
GROUP BY cpod.apply_id) a
|
||||||
LEFT JOIN car_plan_apply cpa ON cpa.id = a.applyId
|
LEFT JOIN car_plan_apply cpa ON cpa.id = a.applyId
|
||||||
LEFT JOIN bm_project bp on bp.ID = cpa.pro_id
|
LEFT JOIN bm_project bp ON bp.ID = cpa.pro_id
|
||||||
|
LEFT JOIN car_ma_type cmt ON cmt.id = a.model_id
|
||||||
|
LEFT JOIN car_ma_type cmt2 ON cmt2.id = cmt.parent_id
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -26,11 +26,11 @@
|
||||||
out_id,apply_id,model_id,plan_type,contract_id,sup_id,car_id,goods_name,
|
out_id,apply_id,model_id,plan_type,contract_id,sup_id,car_id,goods_name,
|
||||||
gls,start_address,end_address,price_id, gls_price,gls_money,use_address,
|
gls,start_address,end_address,price_id, gls_price,gls_money,use_address,
|
||||||
use_day,driver_id, czy_id,day_price,month_price,jc_gls,jc_price,dc_money,
|
use_day,driver_id, czy_id,day_price,month_price,jc_gls,jc_price,dc_money,
|
||||||
dc_unit,es_cost,car_out_id,day_or_m,remark,car_num
|
dc_unit,es_cost,car_out_id,day_or_m,remark,car_num,create_time
|
||||||
)values (#{outId},#{planId},#{modelId},#{planType},#{contractId},#{supId},#{carId},#{goodsName},
|
)values (#{outId},#{planId},#{modelId},#{planType},#{contractId},#{supId},#{carId},#{goodsName},
|
||||||
#{gls},#{startAddress},#{endAddress},#{priceId},#{glsPrice},#{glsMoney},#{useAddress},
|
#{gls},#{startAddress},#{endAddress},#{priceId},#{glsPrice},#{glsMoney},#{useAddress},
|
||||||
#{planDay},#{driverUserId},#{operaUserId},#{dayPrice},#{monthPrice},#{jcGls},#{jcMoney},#{dcMoney},#{dcUnit}
|
#{planDay},#{driverUserId},#{operaUserId},#{dayPrice},#{monthPrice},#{jcGls},#{jcMoney},#{dcMoney},#{dcUnit}
|
||||||
,#{cost},#{carOutId},#{isDayOrMonth},#{remark},#{carNum})
|
,#{cost},#{carOutId},#{isDayOrMonth},#{remark},#{carNum},NOW())
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="addDispatchCarDetailsDataRecord" keyProperty="detailsId" useGeneratedKeys="true">
|
<insert id="addDispatchCarDetailsDataRecord" keyProperty="detailsId" useGeneratedKeys="true">
|
||||||
insert into car_plan_out_details_record(
|
insert into car_plan_out_details_record(
|
||||||
|
|
@ -322,5 +322,21 @@
|
||||||
and cpo.sup_id = #{supId}
|
and cpo.sup_id = #{supId}
|
||||||
and (cpo.status = 0 or cpo.status = 1)
|
and (cpo.status = 0 or cpo.status = 1)
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getListDetails" resultType="com.bonus.gzcar.business.backstage.entity.CarPlanOutVoDetailsVo">
|
||||||
|
SELECT
|
||||||
|
cpod.id,
|
||||||
|
cmti.type,
|
||||||
|
cmti.NAME,
|
||||||
|
cmti.model,
|
||||||
|
cpod.car_num carNum,
|
||||||
|
cpod.start_address startAddress,
|
||||||
|
cpod.end_address endAddress,
|
||||||
|
cpod.use_address useAddress
|
||||||
|
FROM
|
||||||
|
car_plan_out_details cpod
|
||||||
|
LEFT JOIN car_ma_type_info cmti ON cmti.id = cpod.model_id
|
||||||
|
WHERE
|
||||||
|
cpod.out_id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue