|
|
|
@ -5,10 +5,12 @@ import cn.hutool.core.convert.Convert;
|
|
|
|
|
import cn.hutool.core.util.NumberUtil; |
|
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
|
import com.alibaba.excel.EasyExcel; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataWarehouseEntity; |
|
|
|
|
import com.logpm.basicdata.feign.IBasicdataWarehouseClient; |
|
|
|
|
import com.logpm.report.dto.DeliveryTrainLoadedScanDTO; |
|
|
|
|
import com.logpm.report.mapper.ReportDeliverMapeer; |
|
|
|
@ -44,6 +46,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.List; |
|
|
|
@ -198,7 +201,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
|
|
|
|
|
trainCustomQuery(query, queryWrapper); |
|
|
|
|
// 仓库权限
|
|
|
|
|
ReportUtil.buildReportWarehouseAuth(vo.getWarehouseName(), query.getWarehouseNameRange(), queryWrapper, warehouseClient); |
|
|
|
|
reportExcelUtil.export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表",1000L, ReportExcelUtil.SHEETDATANUM); |
|
|
|
|
reportExcelUtil.export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表", 1000L, ReportExcelUtil.SHEETDATANUM); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -281,7 +284,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
|
|
|
|
|
int zeroSize = zeroTotal % size; |
|
|
|
|
long limitA = 0; |
|
|
|
|
long limitB = 0; |
|
|
|
|
if(zeroSize == 0){ |
|
|
|
|
if (zeroSize == 0) { |
|
|
|
|
zeroSize = size; |
|
|
|
|
} |
|
|
|
|
if (!NumberUtil.equals(zeroCurrent, 1)) { |
|
|
|
@ -290,7 +293,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
|
|
|
|
|
} |
|
|
|
|
limitB = zeroSize; |
|
|
|
|
List<ReportDetailVO> zeroPage = reportDeliverMapeer.getDetailsZeroPage(limitA, limitB, queryWrapper); |
|
|
|
|
if(CollUtil.isEmpty(detailsPage)){ |
|
|
|
|
if (CollUtil.isEmpty(detailsPage)) { |
|
|
|
|
detailsPage = new ArrayList<>(); |
|
|
|
|
} |
|
|
|
|
detailsPage.addAll(zeroPage); |
|
|
|
@ -310,18 +313,18 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
|
|
|
|
|
QueryUtil.timeLe("sjsigning_time", query.getEndSjsigningTime(), queryWrapper); |
|
|
|
|
// 仓库
|
|
|
|
|
QueryUtil.splitEqQuery("warehouse_name", query.getWarehouseNameRange(), queryWrapper); |
|
|
|
|
// 配送类型
|
|
|
|
|
QueryUtil.splitEqQuery("type", query.getTypeRange(), queryWrapper); |
|
|
|
|
// 配送种类
|
|
|
|
|
QueryUtil.splitEqQuery("kind", query.getKindRange(), queryWrapper); |
|
|
|
|
// 配送车辆
|
|
|
|
|
QueryUtil.splitEqQuery("vehicle_name", query.getVehicleNameRange(), queryWrapper); |
|
|
|
|
// 配送司机
|
|
|
|
|
QueryUtil.splitEqQuery("driver_name", query.getDriverNameRange(), queryWrapper); |
|
|
|
|
// 客户名称
|
|
|
|
|
QueryUtil.splitEqQuery("dr_consignee", query.getConsigneeRange(), queryWrapper); |
|
|
|
|
// 运单收货人
|
|
|
|
|
QueryUtil.splitEqQuery("consignee_name", query.getConsigneeNameRange(), queryWrapper); |
|
|
|
|
// // 配送类型
|
|
|
|
|
// QueryUtil.splitEqQuery("type", query.getTypeRange(), queryWrapper);
|
|
|
|
|
// // 配送种类
|
|
|
|
|
// QueryUtil.splitEqQuery("kind", query.getKindRange(), queryWrapper);
|
|
|
|
|
// // 配送车辆
|
|
|
|
|
// QueryUtil.splitEqQuery("vehicle_name", query.getVehicleNameRange(), queryWrapper);
|
|
|
|
|
// // 配送司机
|
|
|
|
|
// QueryUtil.splitEqQuery("driver_name", query.getDriverNameRange(), queryWrapper);
|
|
|
|
|
// // 客户名称
|
|
|
|
|
// QueryUtil.splitEqQuery("dr_consignee", query.getConsigneeRange(), queryWrapper);
|
|
|
|
|
// // 运单收货人
|
|
|
|
|
// QueryUtil.splitEqQuery("consignee_name", query.getConsigneeNameRange(), queryWrapper);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -336,14 +339,14 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
|
|
|
|
|
|
|
|
|
|
private static void checkDetailDate(ReportDetailVO vo, DevilerDetailsQuery query) { |
|
|
|
|
// 添加时间校验
|
|
|
|
|
if(ReportUtil.areAllPropertiesEmpty(vo)){ |
|
|
|
|
if (ReportUtil.areAllPropertiesEmpty(vo)) { |
|
|
|
|
if (ObjectUtil.isEmpty(query.getStartTaskTime()) && ObjectUtil.isEmpty(query.getEndTaskTime()) && ObjectUtil.isEmpty(query.getStartSjsigningTime()) && ObjectUtil.isEmpty(query.getEndSjsigningTime())) { |
|
|
|
|
throw new ServiceException("配送日期和签收日期必须要填一个"); |
|
|
|
|
} |
|
|
|
|
if (ObjectUtil.isNotEmpty(query.getStartTaskTime()) && ObjectUtil.isNotEmpty(query.getEndTaskTime())) { |
|
|
|
|
ReportUtil.dateIsWithinOneMonth(vo.getTaskTime(), query.getStartTaskTime(), query.getEndTaskTime(), "配送日期"); |
|
|
|
|
} |
|
|
|
|
if(ObjectUtil.isNotEmpty(query.getStartSjsigningTime()) && ObjectUtil.isNotEmpty(query.getEndSjsigningTime())){ |
|
|
|
|
if (ObjectUtil.isNotEmpty(query.getStartSjsigningTime()) && ObjectUtil.isNotEmpty(query.getEndSjsigningTime())) { |
|
|
|
|
ReportUtil.dateIsWithinOneMonth(null, query.getStartSjsigningTime(), query.getEndSjsigningTime(), "签收日期"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -433,4 +436,43 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
|
|
|
|
|
reportExcelUtil.export(response, deliveryDetailV2Reader, ReportDetailVO.class, queryWrapper, "配送明细报表"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<ReportDetailVO> detailsPageV3(DevilerDetailsQuery query) { |
|
|
|
|
IPage<ReportDetailVO> page = Condition.getPage(query); |
|
|
|
|
if (StrUtil.isEmpty(query.getWarehouseNameRange())) { |
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { |
|
|
|
|
query.setWarehouseNameRange(myCurrentWarehouse.getName()); |
|
|
|
|
} else { |
|
|
|
|
List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList(); |
|
|
|
|
query.setWarehouseNameRange(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
List<ReportDetailVO> detailsPage = reportDeliverMapeer.getDetailsPageV3(page, query); |
|
|
|
|
return page.setRecords(detailsPage); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void exportDetailsV3(HttpServletResponse response, DevilerDetailsQuery query) { |
|
|
|
|
IPage<ReportDetailVO> page = Condition.getPage(query); |
|
|
|
|
page.setPages(1); |
|
|
|
|
page.setSize(100000); |
|
|
|
|
if (StrUtil.isEmpty(query.getWarehouseNameRange())) { |
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { |
|
|
|
|
query.setWarehouseNameRange(myCurrentWarehouse.getName()); |
|
|
|
|
} else { |
|
|
|
|
List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList(); |
|
|
|
|
query.setWarehouseNameRange(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
List<ReportDetailVO> detailsPage = reportDeliverMapeer.getDetailsPageV3(page, query); |
|
|
|
|
ReportExcelUtil.setExportHeader(response, "配送明细报表"); |
|
|
|
|
try { |
|
|
|
|
EasyExcel.write(response.getOutputStream(), ReportDetailVO.class).sheet("配送明细").doWrite(detailsPage); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|