diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesSettlementEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesSettlementEntity.java index 33463b8b0..8e06a48ff 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesSettlementEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesSettlementEntity.java @@ -1,5 +1,6 @@ package com.logpm.aftersales.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import lombok.Data; @@ -68,7 +69,14 @@ public class AftersalesSettlementEntity extends TenantEntity { private Date overTime; - + @TableField(exist=false) + private String workOrderNumbers; + @TableField(exist=false) + private String orderCodes; + @TableField(exist=false) + private Date startCreateTime; + @TableField(exist=false) + private Date endCreateTime; diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesWorkOrderEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesWorkOrderEntity.java index f8bc575e2..d8d104013 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesWorkOrderEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesWorkOrderEntity.java @@ -19,15 +19,14 @@ package com.logpm.aftersales.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; - -import java.math.BigDecimal; -import java.util.Date; +import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; +import java.util.Date; + /** * 客服异常工单 实体类 * @@ -332,6 +331,15 @@ public class AftersalesWorkOrderEntity extends TenantEntity { /** * 金额总和 */ + @TableField(exist=false) + private String workOrderNumbers; + @TableField(exist=false) + private String orderCodes; + @TableField(exist=false) + private Date startCreateTime; + @TableField(exist=false) + private Date endCreateTime; + @TableField(exist=false) private String totalAmountNum; @TableField(exist=false) diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/BillladingDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/BillladingDTO.java index 8fe676786..55b6e7dd7 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/BillladingDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/BillladingDTO.java @@ -56,4 +56,17 @@ public class BillladingDTO extends TrunklineBillladingEntity { private String completeTime;//目的仓 private Long billladingId; + + private String startTimeStartStr; + private String startTimeEndStr; + + private Date startTimeStart; + private Date startTimeEnd; + + private String completeTimeStartStr; + private String completeTimeEndStr; + + private Date completeTimeStart; + private Date completeTimeEnd; + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java index 0ebe05a06..41e62b003 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java @@ -112,4 +112,10 @@ public class LoadingDetailExportVO implements Serializable { @ExcelProperty(value = "卸车托盘") private String unloadTrayName; + @ExcelProperty(value = "物料编码") + private String materialCode; + + @ExcelProperty(value = "物料编码") + private String materialName; + } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesCustomerMallController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesCustomerMallController.java index 3ce8c831e..0510bf2d2 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesCustomerMallController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesCustomerMallController.java @@ -31,6 +31,7 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.secure.BladeUser; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesAppealDTO.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesAppealDTO.java index d7ab92fe8..fe27fa427 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesAppealDTO.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesAppealDTO.java @@ -21,6 +21,7 @@ import com.logpm.aftersales.entity.AftersalesAppealPeopleEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; import java.util.List; /** @@ -66,5 +67,12 @@ public class AftersalesAppealDTO extends AftersalesAppealEntity { */ private Long createUserId; + /** 范围查找工单 */ + private String workOrderNumbers; + /** 范围查找订单 */ + private String orderCodes; + /** 范围查找创建时间 */ + private Date startCreateTime; + private Date endCreateTime; } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAppealMapper.xml b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAppealMapper.xml index e8189e8cd..778bc19b8 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAppealMapper.xml +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAppealMapper.xml @@ -57,6 +57,21 @@ LEFT JOIN logpm_aftersales_completion_record lacr on laa.work_order_id = lacr.work_order_id LEFT JOIN logpm_aftersales_work_order lawo ON lawo.id = lacr.work_order_id laa.is_deleted = 0 + + and lawo.work_order_number in + + #{workOrderNumber} + + + + and lawo.order_code in + + #{orderCode} + + + + and lawo.create_time between #{param.startCreateTime} and #{param.endCreateTime} + and (lacr.warehouse_id = #{param.warehouseId } or laa.create_user = #{param.createUserId}) diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.java index 7f4e95795..1454da6bc 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.java @@ -70,7 +70,7 @@ public interface AftersalesWorkOrderMapper extends BaseMapper pageListOwn(IPage page,@Param("param") AftersalesWorkOrderEntity workOrderEntity); + IPage pageListOwn(IPage page,@Param("param") AftersalesWorkOrderEntity workOrderEntity,@Param("warehouseIds") List warehouseIds); boolean updateList(@Param("list") List list); diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml index a71d3906e..9bd148bfc 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml @@ -96,9 +96,6 @@ GROUP_CONCAT(DISTINCT lapr.compensation_method) AS compensationMethods FROM logpm_aftersales_work_order lawo - LEFT JOIN logpm_aftersales_processor lap ON lawo.id = lap.work_order_id - AND lap.types_of = '2' - AND lap.conditions IN ( 1, 2 ) LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id AND lacr.is_deleted = '0' LEFT JOIN (SELECT @@ -117,8 +114,24 @@ GROUP BY a.id) AS t ON t.id = lawo.id LEFT JOIN logpm_aftersales_processing_results AS lapr ON lapr.work_order_id = lawo.id AND lapr.is_deleted = 0 + LEFT JOIN logpm_aftersales_processor AS lap ON lawo.id = lap.work_order_id AND lap.is_deleted = 0 lawo.is_deleted = 0 + + and lawo.work_order_number in + + #{workOrderNumber} + + + + and lawo.order_code in + + #{orderCode} + + + + and lawo.create_time between #{param.startCreateTime} and #{param.endCreateTime} + and lawo.work_order_status = #{param.workOrderStatusNameS } and lawo.id = #{param.id } and lawo.work_order_type = #{param.workOrderType } @@ -147,7 +160,6 @@ and lawo.customer_service_name like concat('%', #{param.customerServiceName },'%') and lawo.waybill_mall_id = #{param.waybillMallId } and lawo.problem_description = #{param.problemDescription} - and (lap.warehouse_id = #{param.warehouseId} OR lap.business_id = #{param.warehouseId}) and lawo.person_responsible = #{param.personResponsible } and lawo.process_number = #{param.processNumber } and lawo.reviewed_by = #{param.reviewedBy } @@ -160,10 +172,9 @@ and lawo.work_order_status IN ( '10', '20', '21', '30', '40', '50', '60', '70', '80', '90' ,'100','110') - and lawo.work_order_status in ('10') and lap.types_of = '2' and lap.processing_status in ('1') - and lawo.work_order_status in ('20') and lap.types_of = '2' - and lawo.work_order_status in (21,30) and lap.processing_status = '4' - and lap.types_of = '2' + and lawo.work_order_status in ('10') + and lawo.work_order_status in ('20') + and lawo.work_order_status in (21,30) and lawo.work_order_status in (80,100,70) and lawo.work_order_type = #{param.workOrderType } and lawo.discovery_node = #{param.discoveryNode } @@ -177,6 +188,12 @@ and t.brand_name like concat('%',#{param.brandName},'%') and t.waybill_number like concat('%',#{param.waybillNumber},'%') and t.package_code like concat('%',#{param.packageCode},'%') + + and lap.business_id IN + + #{warehouseId} + + group by lawo.id ORDER BY lawo.create_time DESC @@ -291,6 +308,8 @@ GROUP BY a.id) AS t ON t.id = lawo.id LEFT JOIN logpm_aftersales_processing_results AS lapr ON lapr.work_order_id = lawo.id AND lapr.is_deleted = 0 + LEFT JOIN logpm_aftersales_processor AS lap ON lawo.id = lap.work_order_id AND lap.is_deleted = 0 + lawo.is_deleted = 0 and lawo.work_order_status = #{param.workOrderStatusNameS } @@ -559,6 +578,21 @@ lap.conditions != '3' and lap.is_deleted = 0 and law.id is not null and lap.processing_status in ('1','3') and lap.types_of = '2' and law.work_order_status in ('10','20','30') + + and law.work_order_number in + + #{workOrderNumber} + + + + and law.order_code in + + #{orderCode} + + + + and law.create_time between #{param.startCreateTime} and #{param.endCreateTime} + and law.work_order_status = #{param.workOrderStatusNameS } and law.operator = #{param.operator } and law.work_order_status = #{param.workOrderStatus} @@ -655,38 +689,52 @@ + + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java b/blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java index 1986a27b4..1ad4da04c 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java @@ -26,23 +26,23 @@ public class DevilerDetailsQuery extends Query { @ApiModelProperty(value = "仓库(范围)", position = 5) private String warehouseNameRange; - @ApiModelProperty(value = "配送类型(范围)", position = 7) - private String typeRange; - - @ApiModelProperty(value = "配送种类(范围)", position = 9) - private String kindRange; - - @ApiModelProperty(value = "配送车辆(范围)", position = 11) - private String vehicleNameRange; - - @ApiModelProperty(value = "配送司机(范围)", position = 13) - private String driverNameRange; - - @ApiModelProperty(value = "客户名称(范围)", position = 15) - private String consigneeRange; - - @ApiModelProperty(value = "运单收货人", position = 17) - private String consigneeNameRange; + // @ApiModelProperty(value = "配送类型(范围)", position = 7) + // private String typeRange; + // + // @ApiModelProperty(value = "配送种类(范围)", position = 9) + // private String kindRange; + // + // @ApiModelProperty(value = "配送车辆(范围)", position = 11) + // private String vehicleNameRange; + // + // @ApiModelProperty(value = "配送司机(范围)", position = 13) + // private String driverNameRange; + // + // @ApiModelProperty(value = "客户名称(范围)", position = 15) + // private String consigneeRange; + // + // @ApiModelProperty(value = "运单收货人", position = 17) + // private String consigneeNameRange; @ApiModelProperty(value = "签收时间开始(范围)", position = 18) private Date startSjsigningTime; @@ -50,4 +50,16 @@ public class DevilerDetailsQuery extends Query { @ApiModelProperty(value = "签收时间结束(范围)", position = 19) private Date endSjsigningTime; + @ApiModelProperty(value = "车次") + private String trainNumber; + + @ApiModelProperty(value = "预约单号") + private String reservationCode; + + @ApiModelProperty(value = "订单自编码") + private String stockArticleId; + + @ApiModelProperty(value = "包条码") + private String orderPackageCode; + } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java index 78939c7e1..97bde4496 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java @@ -101,4 +101,7 @@ public interface ReportDeliverService { void exportDetailsV2(HttpServletResponse response, ReportDetailVO vo, DevilerDetailsQuery query); + IPage detailsPageV3(DevilerDetailsQuery query); + + void exportDetailsV3(HttpServletResponse response, DevilerDetailsQuery query); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java index 432c14e88..6191dba4c 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java @@ -2,13 +2,17 @@ package com.logpm.report.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; 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 +48,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 +203,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 +286,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 +295,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { } limitB = zeroSize; List zeroPage = reportDeliverMapeer.getDetailsZeroPage(limitA, limitB, queryWrapper); - if(CollUtil.isEmpty(detailsPage)){ + if (CollUtil.isEmpty(detailsPage)) { detailsPage = new ArrayList<>(); } detailsPage.addAll(zeroPage); @@ -310,18 +315,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 +341,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 +438,93 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { reportExcelUtil.export(response, deliveryDetailV2Reader, ReportDetailVO.class, queryWrapper, "配送明细报表"); } + @Override + public IPage detailsPageV3(DevilerDetailsQuery query) { + IPage page = Condition.getPage(query); + if (StrUtil.isEmpty(query.getWarehouseNameRange())) { + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { + query.setWarehouseNameRange(myCurrentWarehouse.getName()); + } else { + List warehouseEntities = warehouseClient.getMyWarehouseList(); + query.setWarehouseNameRange(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); + } + } + List detailsPage = reportDeliverMapeer.getDetailsPageV3(page, query); + return page.setRecords(detailsPage); + } + + @Override + public void exportDetailsV3(HttpServletResponse response, DevilerDetailsQuery query) { + IPage page = Condition.getPage(query); + page.setPages(1); + page.setSize(-1); + Integer more = 1; + if (StrUtil.isEmpty(query.getWarehouseNameRange())) { + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { + query.setWarehouseNameRange(myCurrentWarehouse.getName()); + } else { + more = 2; + List warehouseEntities = warehouseClient.getMyWarehouseList(); + query.setWarehouseNameRange(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); + } + } else { + String warehouseNameRange = query.getWarehouseNameRange(); + if (StrUtil.contains(warehouseNameRange, ",")) { + more = 2; + } + } + if (more == 1) { + // 单仓,最多导出1个月的数据 + if (StrUtil.isNotEmpty(query.getTrainNumber()) || StrUtil.isNotEmpty(query.getOrderPackageCode()) || StrUtil.isNotEmpty(query.getReservationCode()) || StrUtil.isNotEmpty(query.getStockArticleId())) { + } else { + if (ObjectUtil.isNotEmpty(query.getStartTaskTime()) || ObjectUtil.isNotEmpty(query.getEndTaskTime())) { + boolean withinOneMonth = DateUtil.between(query.getStartTaskTime(), query.getEndTaskTime(), DateUnit.DAY) <= 30; + if (!withinOneMonth) { + throw new ServiceException("配送日期必选且时间不超过一个月"); + } + } else { + throw new ServiceException("导出时配送日期必填"); + } + if (ObjectUtil.isNotEmpty(query.getStartSjsigningTime()) || ObjectUtil.isNotEmpty(query.getEndSjsigningTime())) { + boolean withinOneMonth = DateUtil.between(query.getStartSjsigningTime(), query.getEndSjsigningTime(), DateUnit.DAY) <= 30; + if (!withinOneMonth) { + throw new ServiceException("签收日期必选且时间不超过一个月"); + } + } else { + throw new ServiceException("导出时签收日期必填"); + } + } + } else { + // 多仓,最多导出1个星期的数据 + if (StrUtil.isNotEmpty(query.getTrainNumber()) || StrUtil.isNotEmpty(query.getOrderPackageCode()) || StrUtil.isNotEmpty(query.getReservationCode()) || StrUtil.isNotEmpty(query.getStockArticleId())) { + } else { + if (ObjectUtil.isNotEmpty(query.getStartTaskTime()) || ObjectUtil.isNotEmpty(query.getEndTaskTime())) { + boolean withinOneMonth = DateUtil.between(query.getStartTaskTime(), query.getEndTaskTime(), DateUnit.DAY) <= 7; + if (!withinOneMonth) { + throw new ServiceException("配送日期必选且时间不超过7天"); + } + } else { + throw new ServiceException("导出时配送日期必填"); + } + if (ObjectUtil.isNotEmpty(query.getStartSjsigningTime()) || ObjectUtil.isNotEmpty(query.getEndSjsigningTime())) { + boolean withinOneMonth = DateUtil.between(query.getStartSjsigningTime(), query.getEndSjsigningTime(), DateUnit.DAY) <= 7; + if (!withinOneMonth) { + throw new ServiceException("签收日期必选且时间不超过7天 "); + } + } else { + throw new ServiceException("导出时签收日期必填"); + } + } + } + List 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); + } + } + } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java index b3a693518..da758a352 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java @@ -97,7 +97,7 @@ public class ReportDetailVO implements Serializable { @ExcelProperty("订单自编码") private String stockArticleId; - @ApiModelProperty(value = "客户电话") + @ApiModelProperty(value = "包条码") @ExcelProperty("包条码") private String orderPackageCode; @@ -209,4 +209,8 @@ public class ReportDetailVO implements Serializable { @ExcelProperty("签收方式") private String signType; + @ApiModelProperty(value = "回库状态") + @ExcelProperty("回库状态") + private String returnToStockStatus; + } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java index d1aea8a28..8bcc233d3 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java @@ -217,12 +217,12 @@ public class WaybillCheckListener { Integer totalCount = waybillEntity.getTotalCount(); // BigDecimal pickupPrice = pickupFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal warehouseManagementPrice = warehouseManagementFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal warehousePrice = warehouseFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal handlingPrice = handlingFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal insurancePrice = insuranceFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal otherPrice = otherFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal thirdOperationPrice = thirdOperationFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal warehouseManagementPrice = warehouseManagementFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal warehousePrice = warehouseFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal handlingPrice = handlingFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal insurancePrice = insuranceFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal otherPrice = otherFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal thirdOperationPrice = thirdOperationFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); BigDecimal trunklineComletPrice; @@ -230,14 +230,14 @@ public class WaybillCheckListener { if(NumberUtil.equals(trunklineCompleteOrNot,1)){ BigDecimal totalFreight = waybillEntity.getTotalFreight(); - trunklineComletPrice = totalFreight.divide(new BigDecimal(totalCount),2, BigDecimal.ROUND_HALF_UP); + trunklineComletPrice = totalFreight.divide(new BigDecimal(totalCount),8, BigDecimal.ROUND_HALF_UP); } else { trunklineComletPrice = BigDecimal.ZERO; } if(NumberUtil.equals(pickupCompleteOrNot,1)){ BigDecimal pickupFee = waybillEntity.getPickupFee(); - trunklinePickupPrice = pickupFee.divide(new BigDecimal(totalCount),2, BigDecimal.ROUND_HALF_UP); + trunklinePickupPrice = pickupFee.divide(new BigDecimal(totalCount),8, BigDecimal.ROUND_HALF_UP); } else { trunklinePickupPrice = BigDecimal.ZERO; } @@ -499,14 +499,14 @@ public class WaybillCheckListener { Integer totalCount = waybillEntity.getTotalCount(); // BigDecimal pickupPrice = pickupFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal warehouseManagementPrice = warehouseManagementFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal warehousePrice = warehouseFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal handlingPrice = handlingFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal insurancePrice = insuranceFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal otherPrice = otherFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal thirdOperationPrice = thirdOperationFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal sortingPrice = sortingFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal deliveryPrice = deliveryFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal warehouseManagementPrice = warehouseManagementFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal warehousePrice = warehouseFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal handlingPrice = handlingFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal insurancePrice = insuranceFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal otherPrice = otherFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal thirdOperationPrice = thirdOperationFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal sortingPrice = sortingFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal deliveryPrice = deliveryFee.divide(new BigDecimal(totalCount), 8, BigDecimal.ROUND_HALF_UP); //查询运单下所有的订单 @@ -632,8 +632,8 @@ public class WaybillCheckListener { trunklinePackageEntity.setPickupChargeType(systemPickupChargeType); trunklinePackageEntity.setSystemPickupChargeType(systemPickupChargeType); - BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的质量 - BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的体积 + BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 8, BigDecimal.ROUND_HALF_UP);//平摊到包件的质量 + BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 8, BigDecimal.ROUND_HALF_UP);//平摊到包件的体积 trunklinePackageEntity.setWeight(Objects.isNull(packageWeight) ? BigDecimal.ZERO : packageWeight); trunklinePackageEntity.setVolume(Objects.isNull(packageVolume) ? BigDecimal.ZERO : packageVolume); @@ -740,8 +740,8 @@ public class WaybillCheckListener { Integer num = warehouseWayBillDetail.getNum();//运单品类的总数量 BigDecimal productTotalVolume = warehouseWayBillDetail.getVolume();//运单品类总体积 - BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的质量 - BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的体积 + BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 8, BigDecimal.ROUND_HALF_UP);//平摊到包件的质量 + BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 8, BigDecimal.ROUND_HALF_UP);//平摊到包件的体积 warehousePackageEntity.setWeight(packageWeight); warehousePackageEntity.setVolume(packageVolume); @@ -794,8 +794,8 @@ public class WaybillCheckListener { Integer num = warehouseWayBillDetail.getNum(); BigDecimal productTotalVolume = warehouseWayBillDetail.getVolume(); - BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP); - BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 8, BigDecimal.ROUND_HALF_UP); + BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 8, BigDecimal.ROUND_HALF_UP); distributionPackageEntity.setWeight(packageWeight); distributionPackageEntity.setVolume(packageVolume); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingMapper.xml index 0472cf240..92a5f969a 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingMapper.xml @@ -61,6 +61,18 @@ and ltb.create_user_name = #{param.createUserName} + + and ltb.start_time >= #{param.startTimeStart} + + + and ltb.start_time <= #{param.startTimeEnd} + + + and ltb.end_time >= #{param.completeTimeStart} + + + and ltb.end_time <= #{param.completeTimeEnd} + group by ltb.id order by ltb.create_time desc diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml index 2ed246675..0c5ee9dea 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml @@ -557,8 +557,7 @@ IFNULL(sum(IF(unload_node_id = null,0,unload_num)),0) unloadNum from logpm_trunkline_cars_load_scan where load_id = #{loadId} - and final_node_id = #{nodeId} - and (unload_node_id = #{nodeId} or unload_node_id is null) + and unload_node_id = #{nodeId} and waybill_no is not null group by waybill_no @@ -761,7 +760,9 @@ ltcls.customer_name customerName, ltcls.customer_telephone customerTelephone, ltcls.customer_address customerAddress, - ltcls.unload_tray_name unloadTrayName + ltcls.unload_tray_name unloadTrayName, + ltcls.material_code materialCode, + ltcls.material_name materialName from logpm_trunkline_cars_load_scan ltcls left join logpm_warehouse_waybill lww on ltcls.waybill_id = lww.id where ltcls.load_id = #{param.loadId} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingServiceImpl.java index 0edfdf508..deb75f952 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingServiceImpl.java @@ -61,6 +61,12 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl