提交 5f6317c1 authored 作者: liruixin's avatar liruixin

货主违约结算列表导出

上级 fa8404a0
......@@ -14,14 +14,12 @@ public enum BreakContractSettlementOwnerEnum {
@AllArgsConstructor
public enum Status {
TO_BE_LOCKED(10, "待锁定"),
TO_BE_ACCOUNT(20, "待对账"),
OWNER_TO_BE_CONFIRMED(30, "待货主确认"),
SHIPPER_TO_PAYMENT (40, "待货主付款"),
PLATFORM_CONFIRMED_OWNER_PAYMENT(50, "待平台确认付款"),
PLATFORM_TO_PAYMENT(60, "待平台付款"),
OWNER_CONFIRMED_PLATFORM_PAYMENT(70, "待货主确认付款"),
INVOICE_TO_BE_MAILED(80, "待邮寄发票"),
COMPLETED(90, "已完结"),
OWNER_TO_BE_CONFIRMED(20, "待货主确认"),
SHIPPER_TO_PAYMENT (30, "待货主付款"),
PLATFORM_CONFIRMED_OWNER_PAYMENT(40, "待平台确认付款"),
PLATFORM_TO_PAYMENT(50, "待平台付款"),
OWNER_CONFIRMED_PLATFORM_PAYMENT(60, "待货主确认付款"),
COMPLETED(70, "已完结"),
;
......
package com.clx.performance.controller.pc.breakcontract.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerVO;
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 CarrierBreakContractSettlementOwnerController {
private final BreakContractSettlementOwnerService breakContractSettlementOwnerService;
@ApiOperation(value = "列表",notes = "<br>By:李瑞新")
@PostMapping("/pageCarrierBreakContractSettlementOwnerList")
@UnitCovert(param = false)
public Result<PageData<PageCarrierBreakContractSettlementOwnerVO>> pageCarrierBreakContractSettlementOwnerList(@RequestBody PageCarrierBreakContractSettlementOwnerParam param) {
IPage<PageCarrierBreakContractSettlementOwnerVO> page = breakContractSettlementOwnerService.pageCarrierBreakContractSettlementOwnerList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "导出")
@PostMapping("/exportCarrierBreakContractSettlementOwnerList")
public Result exportCarrierBreakContractSettlementOwnerList(@RequestBody PageCarrierBreakContractSettlementOwnerParam param, HttpServletResponse response) throws Exception {
SXSSFWorkbook workbook = breakContractSettlementOwnerService.exportCarrierBreakContractSettlementOwnerList(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.BreakContractSettlementOwnerMapper;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwner;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
import com.msl.common.dao.BaseDao;
/**
......@@ -11,4 +13,5 @@ import com.msl.common.dao.BaseDao;
* Time 16:02
*/
public interface BreakContractSettlementOwnerDao extends BaseDao<BreakContractSettlementOwnerMapper, BreakContractSettlementOwner, Integer> {
IPage<BreakContractSettlementOwner> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam 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.BreakContractSettlementOwnerDao;
import com.clx.performance.mapper.breakcontract.BreakContractSettlementOwnerMapper;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwner;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
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,15 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContractSettlementOwnerMapper, BreakContractSettlementOwner, Integer> implements BreakContractSettlementOwnerDao {
@Override
public IPage<BreakContractSettlementOwner> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param) {
LambdaQueryWrapper<BreakContractSettlementOwner> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractSettlementOwner :: getOrderNo,param.getOrderNo());
query.eq(StringUtils.isNotBlank(param.getSettlementNo()),BreakContractSettlementOwner ::getSettlementNo ,param.getSettlementNo());
query.eq(Objects.nonNull(param.getBreachContractPartyType()),BreakContractSettlementOwner :: getBreachContractPartyType,param.getBreachContractPartyType());
query.ge(StringUtils.isNotBlank(param.getBeginTime()), BreakContractSettlementOwner:: getCreateTime,param.getBeginTime());
query.le(StringUtils.isNotBlank(param.getEndTime()),BreakContractSettlementOwner :: getCreateTime,param.getEndTime());
query.orderByDesc(BreakContractSettlementOwner::getId);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
}
package com.clx.performance.service.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
/**
* @author liruixin
* Date 2023-10-24
* Time 16:02
*/
public interface BreakContractSettlementOwnerService {
IPage<PageCarrierBreakContractSettlementOwnerVO> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param);
SXSSFWorkbook exportCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam 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.BreakContractSettlementOwnerDao;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwner;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService;
import com.clx.performance.struct.breakcontract.BreakContractSettlementOwnerStruct;
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.PageCarrierBreakContractSettlementOwnerVO;
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 BreakContractSettlementOwnerServiceImpl implements BreakContractSettlementOwnerService {
private final BreakContractSettlementOwnerDao breakContractSettlementOwnerDao;
private final BreakContractSettlementOwnerStruct breakContractSettlementOwnerStruct;
@Override
public IPage<PageCarrierBreakContractSettlementOwnerVO> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param) {
IPage<BreakContractSettlementOwner> breakContractSettlementDriverDetail = breakContractSettlementOwnerDao.pageCarrierBreakContractSettlementOwnerList(param);
List<PageCarrierBreakContractSettlementOwnerVO> list = breakContractSettlementOwnerStruct.covertToCarrierList(breakContractSettlementDriverDetail.getRecords());
return new Page<PageCarrierBreakContractSettlementOwnerVO>().setRecords(list).setTotal(breakContractSettlementDriverDetail.getTotal()).setPages(breakContractSettlementDriverDetail.getPages());
}
@Override
public SXSSFWorkbook exportCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param) {
param.setPage(1);
param.setPageSize(1000000);
IPage<PageCarrierBreakContractSettlementOwnerVO> settlementOwnerDetail = pageCarrierBreakContractSettlementOwnerList(param);
List<PageCarrierBreakContractSettlementOwnerVO> list = settlementOwnerDetail.getRecords();
// 组装表头
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "订单编号", "orderNo", 5000));
fieldList.add(new ExcelField(2, "货主编号", "ownUserNo", 5000));
fieldList.add(new ExcelField(3, "货主名称", "ownerName", 5000));
fieldList.add(new ExcelField(4, "违约方", "breachContractPartyType", 5000));
fieldList.add(new ExcelField(5, "违约金额", "figure", 5000));
fieldList.add(new ExcelField(6, "状态", "statusMsg", 5000));
fieldList.add(new ExcelField(7, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(8, "创建人", "createName", 5000));
fieldList.add(new ExcelField(9, "创建时间", "createTime", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
for (int i=0; i<list.size(); i++){
PageCarrierBreakContractSettlementOwnerVO 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.getStatusMsg()));
rowData.add(new ExcelData(dto.getSettlementNo()));
rowData.add(new ExcelData(dto.getCreateName()));
rowData.add(new ExcelData(dto.getCreateTime()));
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.enums.BreakContractSettlementOwnerEnum;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwner;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerVO;
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, BreakContractSettlementOwnerEnum.class, DateUtils.class})
public interface BreakContractSettlementOwnerStruct {
@Named("toBaseVo")
@Mapping(target = "breachContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(detail.getBreachContractPartyType()))")
@Mapping(target = "statusMsg", expression = "java(BreakContractSettlementOwnerEnum.Status.getMsgByCode(detail.getStatus()))")
PageCarrierBreakContractSettlementOwnerVO convert(BreakContractSettlementOwner detail);
@IterableMapping(qualifiedByName = "toBaseVo")
List<PageCarrierBreakContractSettlementOwnerVO> covertToCarrierList(List<BreakContractSettlementOwner> list);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论