Browse Source

Merge remote-tracking branch 'origin/dev' into dev

fix-sign
pref_mail@163.com 3 months ago
parent
commit
0a987c6e64
  1. 25
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java
  2. 3
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java
  3. 84
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml
  4. 46
      blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java
  5. 3
      blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java
  6. 76
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java
  7. 6
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java

25
blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java

@ -90,11 +90,19 @@ public class ReportDeliveryController extends BladeController {
IPage<ReportDetailVO> pages = reportDeliverService.detailsPage(vo, query);
return R.data(pages);
}
// @GetMapping("/details/v2")
// @ApiOperationSupport(order = 5)
// @ApiOperation(value = "配送明细报表v2", notes = "配送明细报表v2")
// public R<IPage<ReportDetailVO>> detailsPageV2(ReportDetailVO vo, DevilerDetailsQuery query) {
// IPage<ReportDetailVO> pages = reportDeliverService.detailsPageV2(vo, query);
// return R.data(pages);
// }
@GetMapping("/details/v2")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "配送明细报表v2", notes = "配送明细报表v2")
public R<IPage<ReportDetailVO>> detailsPageV2(ReportDetailVO vo, DevilerDetailsQuery query) {
IPage<ReportDetailVO> pages = reportDeliverService.detailsPageV2(vo, query);
public R<IPage<ReportDetailVO>> detailsPageV2(DevilerDetailsQuery query) {
IPage<ReportDetailVO> pages = reportDeliverService.detailsPageV3(query);
return R.data(pages);
}
@ -105,12 +113,19 @@ public class ReportDeliveryController extends BladeController {
reportDeliverService.exportDetails(response, vo, query);
}
// @GetMapping("/exportDetails/v2")
// @ApiOperationSupport(order = 6)
// @ApiOperation(value = "导出配送明细报表v2", notes = "导出配送明细报表v2")
// public void exportDetailsV2(HttpServletResponse response, ReportDetailVO vo, DevilerDetailsQuery query) {
// reportDeliverService.exportDetailsV2(response, vo, query);
//
// }
@GetMapping("/exportDetails/v2")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "导出配送明细报表v2", notes = "导出配送明细报表v2")
public void exportDetailsV2(HttpServletResponse response, ReportDetailVO vo, DevilerDetailsQuery query) {
reportDeliverService.exportDetailsV2(response, vo, query);
public void exportDetailsV3(HttpServletResponse response, DevilerDetailsQuery query) {
reportDeliverService.exportDetailsV3(response, query);
}
@GetMapping("/stockOrder")

3
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.report.dto.DeliveryTrainLoadedScanDTO;
import com.logpm.report.query.DevilerDetailsQuery;
import com.logpm.report.vo.ReportCustomerVO;
import com.logpm.report.vo.ReportDetailVO;
import com.logpm.report.vo.ReportDevilerVO;
@ -75,4 +76,6 @@ public interface ReportDeliverMapeer extends BaseMapper {
List<ReportDetailVO> getDetailsPageExport(@Param("ew") Wrapper queryWrapper, @Param("current") Integer current, @Param("size") Integer size);
List<ReportDetailVO> getDetailsPageV2(IPage<ReportDetailVO> page, @Param("ew") Wrapper queryWrapper);
List<ReportDetailVO> getDetailsPageV3(@Param("page") IPage<ReportDetailVO> page, @Param("query") DevilerDetailsQuery query);
}

84
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml

@ -908,4 +908,88 @@
<include refid="detailsPageSql"></include>
limit #{current},#{size}
</select>
<select id="getDetailsPageV3" resultType="com.logpm.report.vo.ReportDetailVO">
select plan_train_number train_number,
case when retention_user_name is not null then '已回库' else '' end returnToStockStatus,
plan_reservation_code reservation_code,
delivery_time task_time,
warehouse_name warehouse_name,
warehouse_id warehouse_id,
delivery_type type,
delivery_kind kind,
vehicle_name vehicle_name,
driver_name driver_name,
distribution_company distribution_company,
custom_name dr_consignee,
custom_phone delivery_phone,
custom_address delivery_address,
consignee_unit consignee,
consignee_person consignee_name,
consignee_mobile consignee_mobile,
waybill_number waybill_no,
order_code stock_article_id,
order_package_code order_package_code,
train_number customer_train,
case
when conditions = 1 then '订制品'
when conditions = 2 then '零担'
when conditions = 3 then '库存品' end conditions,
firsts_product firsts,
second_product decond,
third_product third_product,
materiel_code material_code,
materiel_name material_name,
begin_warehouse_name start_war,
begin_warehouse_in_time start_war_in_time,
begin_warehouse_out_time start_war_out_time,
end_warehouse_in_time warehouse_entry_time_end,
case
when sign_status = 1 then '已签收'
when sign_status = 0 then '未签收'
when sign_status = -1 then '已回库' end driver_signing,
load_time unload_time,
load_user_name un_administrators_name,
sign_time sjsigning_time,
sign_user_name lds_signee_name,
case when review_time is null then '未复核' else '已复核' end signing_status,
review_time signing_time,
sign_num sign_num,
sign_type sign_type,
load_type loading_mode,
brand_name brand,
review_user_name examine_user_name,
case
when plan_reservation_code = sign_reservation_code then '否'
when plan_reservation_code != sign_reservation_code then '是'
else '' end abnormal_signing
from logpm_quality_deliver
<where>
<if test="query.startTaskTime != null and query.endTaskTime != null">
and delivery_time between #{query.startTaskTime} and #{query.endTaskTime}
</if>
<if test="query.startSjsigningTime != null and query.startSjsigningTime != null">
and sign_time between #{query.startSjsigningTime} and #{query.endSjsigningTime}
</if>
<if test="query.trainNumber != null and query.trainNumber != null">
and plan_train_number = #{query.trainNumber}
</if>
<if test="query.reservationCode != null and query.reservationCode != null">
and plan_reservation_code = #{query.reservationCode}
</if>
<if test="query.stockArticleId != null and query.stockArticleId != null">
and order_code = #{query.stockArticleId}
</if>
<if test="query.orderPackageCode != null and query.orderPackageCode != null">
and order_package_code = #{query.orderPackageCode}
</if>
<if test="query.warehouseNameRange != null and query.warehouseNameRange != null">
and warehouse_name in
<foreach collection="query.warehouseNameRange.split(',')" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</where>
order by id desc
</select>
</mapper>

46
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;
}

3
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<ReportDetailVO> detailsPageV3(DevilerDetailsQuery query);
void exportDetailsV3(HttpServletResponse response, DevilerDetailsQuery query);
}

76
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java

@ -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);
}
}
}

6
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;
}

Loading…
Cancel
Save