提交 e0273300 authored 作者: liruixin's avatar liruixin

车主违约结算单列表导出

上级 ed5e86f8
...@@ -29,4 +29,41 @@ public enum BreakContractSettlementDriverEnum { ...@@ -29,4 +29,41 @@ public enum BreakContractSettlementDriverEnum {
} }
} }
@Getter
@AllArgsConstructor
public enum SettleStatus {
NO(0, "待结算"),
YES(1, "已结算"),
;
private final Integer code;
private final String msg;
public static Optional<SettleStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(SettleStatus::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum SettlePlatform {
MSL(0, "马上来"),
;
private final Integer code;
private final String msg;
public static Optional<SettlePlatform> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(SettlePlatform::getMsg).orElse(null);
}
}
} }
...@@ -43,13 +43,13 @@ public class PageCarrierBreakContractSettlementDriverVO { ...@@ -43,13 +43,13 @@ public class PageCarrierBreakContractSettlementDriverVO {
private String settleStatusMsg; private String settleStatusMsg;
@ApiModelProperty("结算状态 0待结算;1已结算") @ApiModelProperty("结算状态 0待结算;1已结算")
private Integer settleStatusCode; private Integer settleStatus;
@ApiModelProperty("结算平台 0马上来") @ApiModelProperty("结算平台 0马上来")
private String settlePlatformMsg; private String settlePlatformMsg;
@ApiModelProperty("结算平台 0马上来") @ApiModelProperty("结算平台 0马上来")
private Integer settlePlatformCode; private Integer settlePlatform;
@ApiModelProperty("结算时间") @ApiModelProperty("结算时间")
private String settleTime; private String settleTime;
......
package com.clx.performance.controller.pc.breakcontract.carrier; package com.clx.performance.controller.pc.breakcontract.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailParam; import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverParam;
import com.clx.performance.service.breakcontract.BreakContractSettlementDriverDetailService; import com.clx.performance.service.breakcontract.BreakContractSettlementDriverService;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailVO; import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO;
import com.msl.common.base.PageData; import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert; import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -31,22 +31,22 @@ import javax.servlet.http.HttpServletResponse; ...@@ -31,22 +31,22 @@ import javax.servlet.http.HttpServletResponse;
@AllArgsConstructor @AllArgsConstructor
public class CarrierBreakContractSettlementDriverController { public class CarrierBreakContractSettlementDriverController {
private final BreakContractSettlementDriverDetailService breakContractSettlementDriverDetailService; private final BreakContractSettlementDriverService breakContractSettlementDriverService;
@ApiOperation(value = "列表",notes = "<br>By:李瑞新") @ApiOperation(value = "列表",notes = "<br>By:李瑞新")
@PostMapping("/pageCarrierBreakContractSettlementDriverDetailList") @PostMapping("/pageCarrierBreakContractSettlementDriverList")
@UnitCovert(param = false) @UnitCovert(param = false)
public Result<PageData<PageCarrierBreakContractSettlementDriverDetailVO>> pageCarrierBreakContractSettlementDriverDetailList(@RequestBody PageCarrierBreakContractSettlementDriverDetailParam param) { public Result<PageData<PageCarrierBreakContractSettlementDriverVO>> pageCarrierBreakContractSettlementDriverList(@RequestBody PageCarrierBreakContractSettlementDriverParam param) {
IPage<PageCarrierBreakContractSettlementDriverDetailVO> page = breakContractSettlementDriverDetailService.pageCarrierBreakContractSettlementDriverDetailList(param); IPage<PageCarrierBreakContractSettlementDriverVO> page = breakContractSettlementDriverService.pageCarrierBreakContractSettlementDriverList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages()); return Result.page(page.getRecords(), page.getTotal(), page.getPages());
} }
@ApiOperation(value = "导出") @ApiOperation(value = "导出")
@PostMapping("/exportCarrierBreakContractSettlementDriverDetailList") @PostMapping("/exportCarrierBreakContractSettlementDriverList")
public Result exportCarrierBreakContractSettlementDriverDetailList(@RequestBody PageCarrierBreakContractSettlementDriverDetailParam param, HttpServletResponse response) throws Exception { public Result exportCarrierBreakContractSettlementDriverList(@RequestBody PageCarrierBreakContractSettlementDriverParam param, HttpServletResponse response) throws Exception {
SXSSFWorkbook workbook = breakContractSettlementDriverDetailService.exportCarrierBreakContractSettlementDriverDetailList(param); SXSSFWorkbook workbook = breakContractSettlementDriverService.exportCarrierBreakContractSettlementDriverList(param);
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
workbook.write(response.getOutputStream()); workbook.write(response.getOutputStream());
return null; return null;
......
package com.clx.performance.dao.breakcontract; package com.clx.performance.dao.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.breakcontract.BreakContractSettlementDriverMapper; import com.clx.performance.mapper.breakcontract.BreakContractSettlementDriverMapper;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriver; import com.clx.performance.model.breakcontract.BreakContractSettlementDriver;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverParam;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
/** /**
...@@ -11,4 +13,6 @@ import com.msl.common.dao.BaseDao; ...@@ -11,4 +13,6 @@ import com.msl.common.dao.BaseDao;
* Time 16:02 * Time 16:02
*/ */
public interface BreakContractSettlementDriverDao extends BaseDao<BreakContractSettlementDriverMapper, BreakContractSettlementDriver, Integer> { public interface BreakContractSettlementDriverDao extends BaseDao<BreakContractSettlementDriverMapper, BreakContractSettlementDriver, Integer> {
IPage<BreakContractSettlementDriver> pageCarrierBreakContractSettlementDriverList(PageCarrierBreakContractSettlementDriverParam param);
} }
package com.clx.performance.dao.impl.breakcontract; package com.clx.performance.dao.impl.breakcontract;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.breakcontract.BreakContractSettlementDriverDao; import com.clx.performance.dao.breakcontract.BreakContractSettlementDriverDao;
import com.clx.performance.mapper.breakcontract.BreakContractSettlementDriverMapper; import com.clx.performance.mapper.breakcontract.BreakContractSettlementDriverMapper;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriver; import com.clx.performance.model.breakcontract.BreakContractSettlementDriver;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverParam;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Objects;
/** /**
* @author liruixin * @author liruixin
* Date 2023-10-24 * Date 2023-10-24
...@@ -14,4 +21,15 @@ import org.springframework.stereotype.Repository; ...@@ -14,4 +21,15 @@ import org.springframework.stereotype.Repository;
*/ */
@Repository @Repository
public class BreakContractSettlementDriverDaoImpl extends BaseDaoImpl<BreakContractSettlementDriverMapper, BreakContractSettlementDriver, Integer> implements BreakContractSettlementDriverDao { public class BreakContractSettlementDriverDaoImpl extends BaseDaoImpl<BreakContractSettlementDriverMapper, BreakContractSettlementDriver, Integer> implements BreakContractSettlementDriverDao {
@Override
public IPage<BreakContractSettlementDriver> pageCarrierBreakContractSettlementDriverList(PageCarrierBreakContractSettlementDriverParam param) {
LambdaQueryWrapper<BreakContractSettlementDriver> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getChildNo()),BreakContractSettlementDriver :: getChildNo,param.getChildNo());
query.eq(Objects.nonNull(param.getTruckOwnUserNo()),BreakContractSettlementDriver :: getTruckOwnUserNo,param.getTruckOwnUserNo());
query.eq(Objects.nonNull(param.getBreachContractPartyType()),BreakContractSettlementDriver :: getBreachContractPartyType,param.getBreachContractPartyType());
query.ge(StringUtils.isNotBlank(param.getBeginTime()),BreakContractSettlementDriver :: getCreateTime,param.getBeginTime());
query.le(StringUtils.isNotBlank(param.getEndTime()),BreakContractSettlementDriver :: getCreateTime,param.getEndTime());
query.orderByDesc(BreakContractSettlementDriver::getId);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
} }
package com.clx.performance.service.breakcontract; package com.clx.performance.service.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverParam;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
/** /**
* @author liruixin * @author liruixin
* Date 2023-10-24 * Date 2023-10-24
* Time 16:02 * Time 16:02
*/ */
public interface BreakContractSettlementDriverService { public interface BreakContractSettlementDriverService {
IPage<PageCarrierBreakContractSettlementDriverVO> pageCarrierBreakContractSettlementDriverList(PageCarrierBreakContractSettlementDriverParam param);
SXSSFWorkbook exportCarrierBreakContractSettlementDriverList(PageCarrierBreakContractSettlementDriverParam param);
} }
package com.clx.performance.service.impl.breakcontract; package com.clx.performance.service.impl.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.breakcontract.BreakContractSettlementDriverDao;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriver;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverParam;
import com.clx.performance.service.breakcontract.BreakContractSettlementDriverService; import com.clx.performance.service.breakcontract.BreakContractSettlementDriverService;
import com.clx.performance.struct.breakcontract.BreakContractSettlementDriverStruct;
import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField;
import com.clx.performance.utils.excel.ExcelSheet;
import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* @author liruixin * @author liruixin
* Date 2023-10-24 * Date 2023-10-24
* Time 16:02 * Time 16:02
*/ */
@Service @Service
@Slf4j
@AllArgsConstructor
public class BreakContractSettlementDriverServiceImpl implements BreakContractSettlementDriverService { public class BreakContractSettlementDriverServiceImpl implements BreakContractSettlementDriverService {
private final BreakContractSettlementDriverDao breakContractSettlementDriverDao;
private final BreakContractSettlementDriverStruct breakContractSettlementStruct;
@Override
public IPage<PageCarrierBreakContractSettlementDriverVO> pageCarrierBreakContractSettlementDriverList(PageCarrierBreakContractSettlementDriverParam param) {
IPage<BreakContractSettlementDriver> breakContractSettlementDriverDetail = breakContractSettlementDriverDao.pageCarrierBreakContractSettlementDriverList(param);
List<PageCarrierBreakContractSettlementDriverVO> list = breakContractSettlementStruct.covertToCarrierList(breakContractSettlementDriverDetail.getRecords());
return new Page<PageCarrierBreakContractSettlementDriverVO>().setRecords(list).setTotal(breakContractSettlementDriverDetail.getTotal()).setPages(breakContractSettlementDriverDetail.getPages());
}
@Override
public SXSSFWorkbook exportCarrierBreakContractSettlementDriverList(PageCarrierBreakContractSettlementDriverParam param) {
param.setPage(1);
param.setPageSize(1000000);
IPage<PageCarrierBreakContractSettlementDriverVO> settlementOwnerDetail = pageCarrierBreakContractSettlementDriverList(param);
List<PageCarrierBreakContractSettlementDriverVO> list = settlementOwnerDetail.getRecords();
// 组装表头
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(2, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(3, "车主编号", "truckOwnerNo", 5000));
fieldList.add(new ExcelField(4, "司机名称", "driverName", 5000));
fieldList.add(new ExcelField(5, "违约方", "breachContractPartyType", 5000));
fieldList.add(new ExcelField(6, "违约金额", "figure", 5000));
fieldList.add(new ExcelField(7, "创建人", "createName", 5000));
fieldList.add(new ExcelField(8, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(9, "结算平台", "settlePlatform", 5000));
fieldList.add(new ExcelField(9, "结算状态", "settleStatus", 5000));
fieldList.add(new ExcelField(9, "结算时间", "settleTime", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
for (int i=0; i<list.size(); i++){
PageCarrierBreakContractSettlementDriverVO dto = list.get(i);
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(i+1));
rowData.add(new ExcelData(dto.getSettlementNo()));
rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getTruckOwnUserNo()+""));
rowData.add(new ExcelData(dto.getDriverName()));
rowData.add(new ExcelData(dto.getBreachContractPartyTypeMsg()));
rowData.add(new ExcelData(dto.getFigure().movePointLeft(2)));
rowData.add(new ExcelData(dto.getCreateName()));
rowData.add(new ExcelData(dto.getCreateTime()));
rowData.add(new ExcelData(dto.getSettlePlatformMsg()));
rowData.add(new ExcelData(dto.getSettleStatusMsg()));
rowData.add(new ExcelData(dto.getSettleTime()));
dataList.add(rowData);
}
ExcelSheet excelSheet = new ExcelSheet("车主违约结算单", "车主违约结算单", fieldList, dataList);
//创建excel
return ExcelUtil.create(excelSheet);
}
} }
...@@ -2,19 +2,15 @@ package com.clx.performance.service.impl.breakcontract; ...@@ -2,19 +2,15 @@ package com.clx.performance.service.impl.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.breakcontract.BreakContractSettlementDriverDetailDao;
import com.clx.performance.dao.breakcontract.BreakContractSettlementOwnerDetailDao; import com.clx.performance.dao.breakcontract.BreakContractSettlementOwnerDetailDao;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriverDetail;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetail; import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetail;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailParam; import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailParam;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerDetailService; import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerDetailService;
import com.clx.performance.struct.breakcontract.BreakContractSettlementDriverDetailStruct;
import com.clx.performance.struct.breakcontract.BreakContractSettlementOwnerDetailStruct; import com.clx.performance.struct.breakcontract.BreakContractSettlementOwnerDetailStruct;
import com.clx.performance.utils.excel.ExcelData; import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField; import com.clx.performance.utils.excel.ExcelField;
import com.clx.performance.utils.excel.ExcelSheet; import com.clx.performance.utils.excel.ExcelSheet;
import com.clx.performance.utils.excel.ExcelUtil; import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailVO;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailVO; import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -56,9 +52,9 @@ public class BreakContractSettlementOwnerDetailServiceImpl implements BreakCont ...@@ -56,9 +52,9 @@ public class BreakContractSettlementOwnerDetailServiceImpl implements BreakCont
// 组装表头 // 组装表头
List<ExcelField> fieldList = new ArrayList<>(); List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000)); fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "订单编号", "breakNo", 5000)); fieldList.add(new ExcelField(1, "订单编号", "orderNo", 5000));
fieldList.add(new ExcelField(2, "货主编号", "truckOwnUserNo", 5000)); fieldList.add(new ExcelField(2, "货主编号", "ownUserNo", 5000));
fieldList.add(new ExcelField(3, "货主名称", "childNo", 5000)); fieldList.add(new ExcelField(3, "货主名称", "ownerName", 5000));
fieldList.add(new ExcelField(4, "违约方", "breachContractPartyType", 5000)); fieldList.add(new ExcelField(4, "违约方", "breachContractPartyType", 5000));
fieldList.add(new ExcelField(5, "违约金额", "figure", 5000)); fieldList.add(new ExcelField(5, "违约金额", "figure", 5000));
......
package com.clx.performance.struct.breakcontract;
import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriver;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.IterableMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {BreakContractSettlementDriverEnum.class, DateUtils.class})
public interface BreakContractSettlementDriverStruct {
@Named("toBaseVo")
@Mapping(target = "settleStatusMsg", expression = "java(BreakContractSettlementDriverEnum.SettleStatus.getMsgByCode(detail.getSettleStatus()))")
@Mapping(target = "settlePlatformMsg", expression = "java(BreakContractSettlementDriverEnum.SettlePlatform.getMsgByCode(detail.getSettlePlatform()))")
@Mapping(target = "breachContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(detail.getBreachContractPartyType()))")
PageCarrierBreakContractSettlementDriverVO convert(BreakContractSettlementDriver detail);
@IterableMapping(qualifiedByName = "toBaseVo")
List<PageCarrierBreakContractSettlementDriverVO> covertToCarrierList(List<BreakContractSettlementDriver> list);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论