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

货主违约计费列表导出

上级 ab956743
......@@ -20,7 +20,7 @@ public class PageCarrierBreakContractSettlementDriverDetailParam extends PagePar
@ApiModelProperty(value="车主编号",example = "201457878")
private Long truckOwnUserNo;
@ApiModelProperty(value = "违约方类型:1平台 2货主 3司机", example = "1")
@ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1")
private Integer breachContractPartyType;
}
package com.clx.performance.param.pc.breakcontract.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class PageCarrierBreakContractSettlementOwnerDetailParam extends PageParam {
@ApiModelProperty(value="订单编号",example = "201457878")
private String orderNo;
@ApiModelProperty(value="货主编号",example = "201457878")
private Long ownerUserNo;
@ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1")
private Integer breachContractPartyType;
}
......@@ -16,10 +16,10 @@ import java.math.BigDecimal;
@NoArgsConstructor
public class PageCarrierBreakContractSettlementDriverDetailVO {
@ApiModelProperty("违约方类型:1平台 2货主 3司机")
@ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType;
@ApiModelProperty("违约方类型Msg:1平台 2货主 3司机")
@ApiModelProperty("违约方类型Msg:1平台 2货主 3车主")
private String breachContractPartyTypeMsg;
@ApiModelProperty("违约单号")
......
package com.clx.performance.vo.pc.breakcontract.carrier;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class PageCarrierBreakContractSettlementOwnerDetailVO {
@ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType;
@ApiModelProperty("违约方类型Msg:1平台 2货主 3车主")
private String breachContractPartyTypeMsg;
@ApiModelProperty("违约单号")
private String breakNo;
@ApiModelProperty("结算单号")
private String settlementNo;
@ApiModelProperty("货主用户编号")
private Long ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerName;
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("违约金")
private BigDecimal figure;
@ApiModelProperty("违约说明")
private String breachContractRemark;
@ApiModelProperty("操作人名称")
private String createName;
@ApiModelProperty("创建时间")
private String createTime;
}
\ No newline at end of file
package com.clx.performance.controller.pc.breakcontract.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailParam;
import com.clx.performance.service.breakcontract.BreakContractSettlementDriverDetailService;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/breakContract")
@Validated
@Api(tags = "承运端-违约计费(货主)")
@AllArgsConstructor
public class CarrierBreakContractSettlementOwnerDetailController {
private final BreakContractSettlementDriverDetailService breakContractSettlementDriverDetailService;
@ApiOperation(value = "列表",notes = "<br>By:李瑞新")
@PostMapping("/pageCarrierBreakContractSettlementOwnerDetailList")
@UnitCovert(param = false)
public Result<PageData<PageCarrierBreakContractSettlementDriverDetailVO>> pageCarrierBreakContractSettlementOwnerDetailList(@RequestBody PageCarrierBreakContractSettlementDriverDetailParam param) {
IPage<PageCarrierBreakContractSettlementDriverDetailVO> page = breakContractSettlementDriverDetailService.pageCarrierBreakContractSettlementDriverDetailList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "导出")
@PostMapping("/exportCarrierBreakContractSettlementOwnerDetailList")
public Result exportCarrierBreakContractSettlementOwnerDetailList(@RequestBody PageCarrierBreakContractSettlementDriverDetailParam param, HttpServletResponse response) throws Exception {
SXSSFWorkbook workbook = breakContractSettlementDriverDetailService.exportCarrierBreakContractSettlementDriverDetailList(param);
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
workbook.write(response.getOutputStream());
return null;
}
}
package com.clx.performance.dao.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.breakcontract.BreakContractSettlementOwnerDetailMapper;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriverDetail;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetail;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailParam;
import com.msl.common.dao.BaseDao;
/**
......@@ -11,4 +15,6 @@ import com.msl.common.dao.BaseDao;
* Time 16:02
*/
public interface BreakContractSettlementOwnerDetailDao extends BaseDao<BreakContractSettlementOwnerDetailMapper, BreakContractSettlementOwnerDetail, Integer> {
IPage<BreakContractSettlementOwnerDetail> pageCarrierBreakContractSettlementOwnerDetailList(PageCarrierBreakContractSettlementOwnerDetailParam param);
}
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.BreakContractSettlementOwnerDetailDao;
import com.clx.performance.mapper.breakcontract.BreakContractSettlementOwnerDetailMapper;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetail;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.Objects;
/**
* @author liruixin
* Date 2023-10-24
......@@ -14,4 +21,13 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public class BreakContractSettlementOwnerDetailDaoImpl extends BaseDaoImpl<BreakContractSettlementOwnerDetailMapper, BreakContractSettlementOwnerDetail, Integer> implements BreakContractSettlementOwnerDetailDao {
@Override
public IPage<BreakContractSettlementOwnerDetail> pageCarrierBreakContractSettlementOwnerDetailList(PageCarrierBreakContractSettlementOwnerDetailParam param) {
LambdaQueryWrapper<BreakContractSettlementOwnerDetail> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractSettlementOwnerDetail :: getOrderNo,param.getOrderNo());
query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractSettlementOwnerDetail ::getOwnerUserNo ,param.getOwnerUserNo());
query.eq(Objects.nonNull(param.getBreachContractPartyType()),BreakContractSettlementOwnerDetail :: getBreachContractPartyType,param.getBreachContractPartyType());
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
}
......@@ -32,7 +32,7 @@ public class BreakContractDriverRecord implements HasKey<Integer> {
private Integer triggerType;
@TableField("breach_contract_party_type")
@ApiModelProperty("违约方类型:1平台 2货主 3司机")
@ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType;
@TableField("child_no")
......
......@@ -32,7 +32,7 @@ public class BreakContractOwnerRecord implements HasKey<Integer> {
private Integer triggerType;
@TableField("breach_contract_party_type")
@ApiModelProperty("违约方类型:1平台 2货主 3司机")
@ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType;
@TableField("order_no")
......
......@@ -28,7 +28,7 @@ public class BreakContractSettlementDriver implements HasKey<Integer> {
private Integer id;
@TableField("breach_contract_party_type")
@ApiModelProperty("违约方类型:1平台 2货主 3司机")
@ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType;
@TableField("settlement_no")
......
......@@ -28,7 +28,7 @@ public class BreakContractSettlementDriverDetail implements HasKey<Integer> {
private Integer id;
@TableField("breach_contract_party_type")
@ApiModelProperty("违约方类型:1平台 2货主 3司机")
@ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType;
@TableField("break_no")
......
......@@ -29,7 +29,7 @@ public class BreakContractSettlementOwner implements HasKey<Integer> {
private Integer id;
@TableField("breach_contract_party_type")
@ApiModelProperty("违约方类型:1平台 2货主 3司机")
@ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType;
@TableField("settlement_no")
......
......@@ -28,7 +28,7 @@ public class BreakContractSettlementOwnerDetail implements HasKey<Integer> {
private Integer id;
@TableField("breach_contract_party_type")
@ApiModelProperty("违约方类型:1平台 2货主 3司机")
@ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType;
@TableField("break_no")
......@@ -59,10 +59,6 @@ public class BreakContractSettlementOwnerDetail implements HasKey<Integer> {
@ApiModelProperty("违约说明")
private String breachContractRemark;
@TableField("status")
@ApiModelProperty("状态")
private Integer status;
@TableField("create_by")
@ApiModelProperty("操作人编号")
private Long createBy;
......
package com.clx.performance.service.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailParam;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
/**
* @author liruixin
* Date 2023-10-24
* Time 16:02
*/
public interface BreakContractSettlementOwnerDetailService {
IPage<PageCarrierBreakContractSettlementOwnerDetailVO> pageCarrierBreakContractSettlementOwnerDetailList(PageCarrierBreakContractSettlementOwnerDetailParam param);
SXSSFWorkbook exportCarrierBreakContractSettlementOwnerDetailList(PageCarrierBreakContractSettlementOwnerDetailParam param);
}
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.BreakContractSettlementDriverDetailDao;
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.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailParam;
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.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.PageCarrierBreakContractSettlementDriverDetailVO;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @author liruixin
* Date 2023-10-24
* Time 16:02
*/
@Service
@Slf4j
@AllArgsConstructor
public class BreakContractSettlementOwnerDetailServiceImpl implements BreakContractSettlementOwnerDetailService {
private final BreakContractSettlementOwnerDetailDao breakContractSettlementOwnerDetailDao;
private final BreakContractSettlementOwnerDetailStruct breakContractSettlementOwnerDetailStruct;
@Override
public IPage<PageCarrierBreakContractSettlementOwnerDetailVO> pageCarrierBreakContractSettlementOwnerDetailList(PageCarrierBreakContractSettlementOwnerDetailParam param) {
IPage<BreakContractSettlementOwnerDetail> breakContractSettlementDriverDetail = breakContractSettlementOwnerDetailDao.pageCarrierBreakContractSettlementOwnerDetailList(param);
List<PageCarrierBreakContractSettlementOwnerDetailVO> list = breakContractSettlementOwnerDetailStruct.covertToCarrierList(breakContractSettlementDriverDetail.getRecords());
return new Page<PageCarrierBreakContractSettlementOwnerDetailVO>().setRecords(list).setTotal(breakContractSettlementDriverDetail.getTotal()).setPages(breakContractSettlementDriverDetail.getPages());
}
@Override
public SXSSFWorkbook exportCarrierBreakContractSettlementOwnerDetailList(PageCarrierBreakContractSettlementOwnerDetailParam param) {
param.setPage(1);
param.setPageSize(1000000);
IPage<PageCarrierBreakContractSettlementOwnerDetailVO> settlementOwnerDetail = pageCarrierBreakContractSettlementOwnerDetailList(param);
List<PageCarrierBreakContractSettlementOwnerDetailVO> list = settlementOwnerDetail.getRecords();
// 组装表头
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "订单编号", "breakNo", 5000));
fieldList.add(new ExcelField(2, "货主编号", "truckOwnUserNo", 5000));
fieldList.add(new ExcelField(3, "货主名称", "childNo", 5000));
fieldList.add(new ExcelField(4, "违约方", "breachContractPartyType", 5000));
fieldList.add(new ExcelField(5, "违约金额", "figure", 5000));
fieldList.add(new ExcelField(6, "创建人", "createName", 5000));
fieldList.add(new ExcelField(7, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(8, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(9, "违约单号", "breakNo", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
for (int i=0; i<list.size(); i++){
PageCarrierBreakContractSettlementOwnerDetailVO dto = list.get(i);
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(i+1));
rowData.add(new ExcelData(dto.getOrderNo()));
rowData.add(new ExcelData(dto.getOwnerUserNo()+""));
rowData.add(new ExcelData(dto.getOwnerName()));
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.getSettlementNo()));
rowData.add(new ExcelData(dto.getBreakNo()));
dataList.add(rowData);
}
ExcelSheet excelSheet = new ExcelSheet("货主违约计费", "货主违约计费", fieldList, dataList);
//创建excel
return ExcelUtil.create(excelSheet);
}
}
package com.clx.performance.struct.breakcontract;
import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriverDetail;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetail;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailVO;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailVO;
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 BreakContractSettlementOwnerDetailStruct {
@Named("toBaseVo")
@Mapping(target = "breachContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(detail.getBreachContractPartyType()))")
PageCarrierBreakContractSettlementOwnerDetailVO convert(BreakContractSettlementOwnerDetail detail);
@IterableMapping(qualifiedByName = "toBaseVo")
List<PageCarrierBreakContractSettlementOwnerDetailVO> covertToCarrierList(List<BreakContractSettlementOwnerDetail> list);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论