提交 938fcee2 authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'v20.9_settlement_20240805' into dev

package com.clx.performance.param.pc.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.util.List;
@Getter
@Setter
public class ExportBatchOwnerSettlementDetailParam {
@ApiModelProperty(value = "结算单编号集合")
@NotNull(message = "结算单号不能为空")
private List<String> settlementNos;
}
package com.clx.performance.controller.pc.carrier; package com.clx.performance.controller.pc.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.driver.PageCarrierSettlementDriverDetailParam; import com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam;
...@@ -20,7 +20,10 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook; ...@@ -20,7 +20,10 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; 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; import javax.servlet.http.HttpServletResponse;
...@@ -75,4 +78,14 @@ public class CarrierSettlementOwnerDetailController { ...@@ -75,4 +78,14 @@ public class CarrierSettlementOwnerDetailController {
workbook.write(response.getOutputStream()); workbook.write(response.getOutputStream());
} }
} }
@ApiOperation(value = "批量下载结算运单明细",notes = "<br>By:liruixin")
@PostMapping("/exportBatchSettlementOwnerDetail")
public void exportBatchSettlementOwnerDetail(@RequestBody @Validated ExportBatchOwnerSettlementDetailParam param, HttpServletResponse response) throws Exception {
SXSSFWorkbook workbook = settlementOwnerDetailService.exportBatchSettlementOwnerDetail(param);
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
workbook.write(response.getOutputStream());
}
} }
...@@ -10,6 +10,7 @@ import com.clx.performance.enums.settle.SettlementOwnerEnum; ...@@ -10,6 +10,7 @@ import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.mapper.settle.SettlementOwnerDetailMapper; import com.clx.performance.mapper.settle.SettlementOwnerDetailMapper;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam;
...@@ -232,4 +233,10 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet ...@@ -232,4 +233,10 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query); return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
} }
@Override
public List<SettlementOwnerDetail> listSettlementOwnerDetailBySettlementNos(ExportBatchOwnerSettlementDetailParam param) {
return list(lUdWrapper()
.in(SettlementOwnerDetail::getSettlementNo, param.getSettlementNos())
);
}
} }
...@@ -3,6 +3,7 @@ package com.clx.performance.dao.settle; ...@@ -3,6 +3,7 @@ package com.clx.performance.dao.settle;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.settle.SettlementOwnerDetailMapper; import com.clx.performance.mapper.settle.SettlementOwnerDetailMapper;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam;
...@@ -11,7 +12,6 @@ import com.msl.common.dao.BaseDao; ...@@ -11,7 +12,6 @@ import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
...@@ -56,4 +56,6 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM ...@@ -56,4 +56,6 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM
List<SettlementOwnerDetail> listInvoiceTypeSync(); List<SettlementOwnerDetail> listInvoiceTypeSync();
IPage<SettlementOwnerDetail> pagePendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param); IPage<SettlementOwnerDetail> pagePendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param);
List<SettlementOwnerDetail> listSettlementOwnerDetailBySettlementNos(ExportBatchOwnerSettlementDetailParam param);
} }
...@@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.PlatformAccountConfigEnum;
import com.clx.performance.enums.settle.SettlementDriverEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum; import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum; import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum; import com.clx.performance.enums.settle.SettlementWayEnum;
...@@ -15,6 +13,7 @@ import com.clx.performance.model.OrderChild; ...@@ -15,6 +13,7 @@ import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam;
...@@ -26,7 +25,6 @@ import com.clx.performance.utils.excel.ExcelField; ...@@ -26,7 +25,6 @@ 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.carrier.settle.CarrierPagePendingSettlementOwnerDetailVO; import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverDetailVO;
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO; import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO; import com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -58,6 +56,8 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS ...@@ -58,6 +56,8 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
private final SettlementDriverDetailDao settlementDriverDetailDao; private final SettlementDriverDetailDao settlementDriverDetailDao;
private final SettlementCommonService settlementCommonService; private final SettlementCommonService settlementCommonService;
private final SettlementOwnerDetailStruct settlementOwnerDetailStruct;
@Override @Override
public Integer saveSettlementDetail(OrderChild orderChild, OrderGoods orderGoods, SettlementDriverDetail settlementDriverDetail) { public Integer saveSettlementDetail(OrderChild orderChild, OrderGoods orderGoods, SettlementDriverDetail settlementDriverDetail) {
...@@ -422,4 +422,100 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS ...@@ -422,4 +422,100 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
//创建excel //创建excel
return ExcelUtil.create(excelSheet); return ExcelUtil.create(excelSheet);
} }
@Override
public SXSSFWorkbook exportBatchSettlementOwnerDetail(ExportBatchOwnerSettlementDetailParam param) {
//通过结算单号查询结算运单明细
List<SettlementOwnerDetail> settlementOwnerDetails = settlementOwnerDetailDao.listSettlementOwnerDetailBySettlementNos(param);
//对象转化
List<PageOwnerSettlementOwnerDetailVO> pageOwnerSettlementOwnerDetailVOS = settlementOwnerDetailStruct.covertToOwnerList(settlementOwnerDetails);
// 组装表头
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(2, "货主编码", "ownerUserNno", 5000));
fieldList.add(new ExcelField(3, "结算方式", "settlementWay", 5000));
fieldList.add(new ExcelField(4, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(5, "装车皮重(吨)", "loadTare", 5000));
fieldList.add(new ExcelField(6, "装车毛重(吨)", "loadRough", 5000));
fieldList.add(new ExcelField(7, "装车净重(吨)", "loadNet", 5000));
fieldList.add(new ExcelField(8, "卸车毛重(吨)", "unloadRough", 5000));
fieldList.add(new ExcelField(9, "卸车皮重(吨)", "unloadTare", 5000));
fieldList.add(new ExcelField(10, "卸车净重(吨)", "unloadNet", 5000));
fieldList.add(new ExcelField(11, "实际净重(吨)", "weight", 5000));
fieldList.add(new ExcelField(12, "平台运费报价", "freightPrice", 5000));
fieldList.add(new ExcelField(13, "应付运费", "freight", 5000));
fieldList.add(new ExcelField(14, "货损吨数", "lossWeight", 5000));
fieldList.add(new ExcelField(15, "货损单价", "lossPrice", 5000));
fieldList.add(new ExcelField(16, "货损金额", "lossFreight", 5000));
fieldList.add(new ExcelField(17, "司机实收", "driverActualIncome", 5000));
fieldList.add(new ExcelField(18, "管理费率(%)", "invoiceServiceFeeRate", 5000));
fieldList.add(new ExcelField(19, "管理费", "invoiceServiceFee", 5000));
fieldList.add(new ExcelField(20, "预付运费金额", "prepayFreight", 5000));
fieldList.add(new ExcelField(21, "借款抵扣金额", "loanFreight", 5000));
fieldList.add(new ExcelField(22, "结算金额", "settlementFreight", 5000));
fieldList.add(new ExcelField(23, "开票金额", "invoiceFreight", 5000));
fieldList.add(new ExcelField(24, "开票公司", "invoicingCompanyShorterName", 5000));
fieldList.add(new ExcelField(25, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(26, "订单编号", "orderNo", 5000));
fieldList.add(new ExcelField(27, "结算单号", "settlementNo", 15000));
fieldList.add(new ExcelField(28, "结算子单号", "settlementSubNo", 15000));
fieldList.add(new ExcelField(29, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(30, "是否已付尾款", "finalPaymentStatus", 5000));
fieldList.add(new ExcelField(31, "是否已开票", "invoiceStatus", 5000));
fieldList.add(new ExcelField(32, "备注", "remark", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
for (int i=0; i<pageOwnerSettlementOwnerDetailVOS.size(); i++){
PageOwnerSettlementOwnerDetailVO dto = pageOwnerSettlementOwnerDetailVOS.get(i);
List<ExcelData> rowData = new ArrayList<>();
Optional<SettlementWayEnum.WayType> byCode = SettlementWayEnum.WayType.getByCode(dto.getSettlementWay());
String settlementWay = byCode.isPresent()?byCode.get().getMsg():"";
rowData.add(new ExcelData(i+1));
rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getOwnerUserNo()+""));
rowData.add(new ExcelData(settlementWay));
rowData.add(new ExcelData(dto.getGoodsName()));
rowData.add(new ExcelData(dto.getLoadTare()));
rowData.add(new ExcelData(dto.getLoadRough()));
rowData.add(new ExcelData(dto.getLoadNet()));
rowData.add(new ExcelData(dto.getUnloadRough()));
rowData.add(new ExcelData(dto.getUnloadTare()));
rowData.add(new ExcelData(dto.getUnloadNet()));
rowData.add(new ExcelData(dto.getWeight()));
rowData.add(new ExcelData(dto.getFreightPrice().movePointLeft(2)));
rowData.add(new ExcelData(dto.getFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getLossWeight()));
rowData.add(new ExcelData(dto.getLossPrice().movePointLeft(2)));
rowData.add(new ExcelData(dto.getLossFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getDriverFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoiceServiceFeeRate().toString()+ "%"));
rowData.add(new ExcelData(dto.getInvoiceServiceFee().movePointLeft(2)));
rowData.add(new ExcelData(dto.getPrepayFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getLoanFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getSettlementFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoiceFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoicingCompanyShorterName()));
rowData.add(new ExcelData(dto.getInvoiceTypeMsg()));
rowData.add(new ExcelData(dto.getOrderNo()));
rowData.add(new ExcelData(dto.getSettlementNo()));
rowData.add(new ExcelData(dto.getSettlementSubNo()));
rowData.add(new ExcelData(dto.getCreateTime()));
rowData.add(new ExcelData(dto.getFinalPaymentStatusMsg()));
rowData.add(new ExcelData(dto.getInvoiceStatusMsg()));
rowData.add(new ExcelData(dto.getRemark()));
dataList.add(rowData);
}
ExcelSheet excelSheet = new ExcelSheet("货主结算运单明细", "货主结算运单明细", fieldList, dataList);
//创建excel
return ExcelUtil.create(excelSheet);
}
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam;
...@@ -35,4 +36,8 @@ public interface SettlementOwnerDetailService { ...@@ -35,4 +36,8 @@ public interface SettlementOwnerDetailService {
IPage<CarrierPagePendingSettlementOwnerDetailVO> pagePendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param); IPage<CarrierPagePendingSettlementOwnerDetailVO> pagePendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param);
SXSSFWorkbook exportPendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param); SXSSFWorkbook exportPendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param);
SXSSFWorkbook exportBatchSettlementOwnerDetail(ExportBatchOwnerSettlementDetailParam param);
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论