Browse Source

Merge remote-tracking branch 'origin/pre-production'

master
zhenghaoyu 7 months ago
parent
commit
7606347311
  1. 53
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java
  2. 4
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java
  3. 44
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordZeroDetailClient.java
  4. 3
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java
  5. 12
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  6. 8
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java
  7. 2
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java
  8. 16
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/ZeroPackageSupplyVO.java
  9. 10
      blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/mt/feign/MtFactoryDataClient.java
  10. 492
      blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/QualityDeliverEntity.java
  11. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java
  12. 26
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineScanZeroDetailClient.java
  13. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadOrderInfoVO.java
  14. 14
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderCodeNumVO.java
  15. 6
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/SignPackageVO.java
  16. 11
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineScanZeroDetailVO.java
  17. 6
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java
  18. 40
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleListVO.java
  19. 4
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleVO.java
  20. 31
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java
  21. 5
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java
  22. 6
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java
  23. 22
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordZeroDetailClient.java
  24. 9
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordZeroDetailMapper.java
  25. 2
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordService.java
  26. 12
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordZeroDetailService.java
  27. 339
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java
  28. 25
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java
  29. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java
  30. 36
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java
  31. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.java
  32. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.xml
  33. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataVehicleService.java
  34. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataVehicleServiceImpl.java
  35. 5
      blade-service/logpm-distribution/pom.xml
  36. 24
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  37. 24
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java
  38. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java
  39. 37
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml
  40. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.java
  41. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.xml
  42. 125
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java
  43. 12
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java
  44. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java
  45. 20
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  46. 21
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java
  47. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  48. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  49. 2
      blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java
  50. 20
      blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
  51. 8
      blade-service/logpm-factory/src/main/resources/application-dev.yml
  52. 22
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java
  53. 4
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java
  54. 14
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml
  55. 2
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java
  56. 3
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java
  57. 17
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java
  58. 10
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java
  59. 6
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml
  60. 17
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java
  61. 10
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/TripartiteTransferApiController.java
  62. 16
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java
  63. 32
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineScanZeroDetailClient.java
  64. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java
  65. 13
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml
  66. 5
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.java
  67. 14
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml
  68. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java
  69. 44
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  70. 4
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java
  71. 36
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml
  72. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCostShareRecordMapper.xml
  73. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java
  74. 21
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml
  75. 3
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java
  76. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java
  77. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  78. 3
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsOrderService.java
  79. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java
  80. 59
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java
  81. 1
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  82. 5
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java
  83. 42
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java
  84. 677
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  85. 11
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java
  86. 12
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java

53
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java

@ -0,0 +1,53 @@
package com.logpm.aftersales.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
@Data
@TableName("logpm_aftersales_abnormal_record_zero_detail")
@ApiModel(value = "AftersalesAbnormalRecordZeroDetail对象", description = "异常记录零担明细表")
@EqualsAndHashCode(callSuper = true)
public class AftersalesAbnormalRecordZeroDetailEntity extends TenantEntity {
/** 预留1 */
@ApiModelProperty(name = "预留1",notes = "")
private String reserve1 ;
/** 预留2 */
@ApiModelProperty(name = "预留2",notes = "")
private String reserve2 ;
/** 预留3 */
@ApiModelProperty(name = "预留3",notes = "")
private String reserve3 ;
/** 预留4 */
@ApiModelProperty(name = "预留4",notes = "")
private String reserve4 ;
/** 预留5 */
@ApiModelProperty(name = "预留5",notes = "")
private String reserve5 ;
@ApiModelProperty(name = "异常记录id",notes = "")
private Long abnormalRecordId;
@ApiModelProperty(name = "异常记录id",notes = "")
private Long packageId;
@ApiModelProperty(name = "品类id",notes = "")
private Long goodsId;
@ApiModelProperty(name = "品类名称",notes = "")
private String goodsName;
@ApiModelProperty(name = "异常数量",notes = "")
private Integer abnormalNum;
@ApiModelProperty(name = "回库数量",notes = "")
private Integer returnNum;
@ApiModelProperty(name = "入库数量",notes = "")
private Integer incomingNum;
}

4
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java

@ -58,4 +58,8 @@ public interface IAftersalesAbnormalRecordClient {
@PostMapping(API_PREFIX+"/addAbnormalRecordList")
void addAbnormalRecordList(@RequestBody List<AftersalesAbnormalRecordEntity> abnormalRecordEntities);
@PostMapping(API_PREFIX+"/addAbnormalRecordListReturnList")
List<AftersalesAbnormalRecordEntity> addAbnormalRecordListReturnList(@RequestBody List<AftersalesAbnormalRecordEntity> abnormalRecordEntities);
}

44
blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordZeroDetailClient.java

@ -0,0 +1,44 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.aftersales.feign;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity;
import org.springblade.common.constant.ModuleNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 货位 Feign接口类
*
* @author zhy
* @since 2023-09-02
*/
@FeignClient(
value = ModuleNameConstant.APPLICATION_AFTERSALES_NAME
)
public interface IAftersalesAbnormalRecordZeroDetailClient {
String API_PREFIX = "abormal/client";
String TOP = API_PREFIX + "/top";
@PostMapping(API_PREFIX+"/addAbnormalRecordZeroDetail")
void addAbnormalRecordZeroDetail(@RequestBody List<AftersalesAbnormalRecordZeroDetailEntity> abnormalRecordZeroDetailEntityList);
}

3
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java

@ -127,5 +127,8 @@ public interface IBasicdataWarehouseClient {
@GetMapping(API_PREFIX + "/findWarehouseList")
List<JSONObject> findWarehouseList(@RequestParam("warehouseName") String warehouseName);
@GetMapping(API_PREFIX + "/findWarehousesByIds")
List<BasicdataWarehouseEntity> findWarehousesByIds(@RequestParam("ids") List<Long> ids);
}

12
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java

@ -21,6 +21,7 @@ import com.logpm.distribution.dto.FindParamterDTO;
import com.logpm.distribution.dto.OrderPackageDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.ZeroPackageSupplyVO;
import org.springblade.common.constant.ModuleNameConstant;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.tool.api.R;
@ -218,4 +219,15 @@ public interface IDistributionParcelListClient {
@GetMapping(API_PREFIX + "/findListByStockArticleId")
List<DistributionParcelListEntity> findListByStockArticleId(@RequestParam Long articleId);
@GetMapping(API_PREFIX + "/findEntityVOListByOrderCode")
List<DistributionParcelListVO> findEntityVOListByOrderCode(@RequestParam String orderCode, @RequestParam Long fromWarehouseId);
@GetMapping(API_PREFIX + "/addZeroQuantity")
void addZeroQuantity(@RequestParam Long packageId, @RequestParam int num);
@PostMapping(API_PREFIX + "/findListByStockArticleIds")
List<ZeroPackageSupplyVO> findListByStockArticleIds(@RequestBody List<Long> orderIdList);
@GetMapping(API_PREFIX + "/updateWaybillIdByWaybillNo")
void updateWaybillIdByWaybillNo(@RequestParam Long waybillId, @RequestParam String waybillNo);
}

8
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java

@ -54,4 +54,12 @@ public interface IDistributionParcelNumberClient {
@PostMapping(API_PREFIX + "/addBatch")
void addBatch(@RequestBody List<DistributionParcelNumberEntity> parcelNumberList);
@PostMapping(API_PREFIX + "/findListByParcelListIds")
List<DistributionParcelNumberEntity> findListByParcelListIds(@RequestBody List<Long> parcelListIds);
@PostMapping(API_PREFIX + "/updateList")
void updateList(@RequestBody List<DistributionParcelNumberEntity> updateParceNumberList);
@GetMapping(API_PREFIX+"/findListByStockArticleId")
List<DistributionParcelNumberEntity> findListByStockArticleId(@RequestParam Long orderId);
}

2
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java

@ -37,6 +37,8 @@ import java.util.List;
public class DistributionParcelListVO extends DistributionParcelListEntity {
private static final long serialVersionUID = 1L;
private Integer zeroPackageTotalNum;
private String stockupStatus; //备货状态
private String stockupStatusName; //备货名称
private Date stockupDate;

16
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/ZeroPackageSupplyVO.java

@ -0,0 +1,16 @@
package com.logpm.distribution.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class ZeroPackageSupplyVO implements Serializable {
private Long stockArticleId;
private Long packageId;
private Long goodsId;
private String goodsName;//品类名称
private Integer stockNum;//品类在库件数
}

10
blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/mt/feign/MtFactoryDataClient.java

@ -4,8 +4,8 @@ package com.logpm.factory.mt.feign;
import com.logpm.factory.mt.dto.MtPushDataDTO;
import org.springblade.common.constant.ModuleNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Set;
@ -20,10 +20,10 @@ public interface MtFactoryDataClient {
/**
* 根据订单编号查询梦天的数据
* @param orderCodes
* @param orderCode
*/
@GetMapping(HANDLEDATATOPLATFORM)
List<MtPushDataDTO> orderPushData(@RequestParam("orderCode") Set<String> orderCodes);
@PostMapping(HANDLEDATATOPLATFORM)
List<MtPushDataDTO> orderPushData(@RequestBody Set<String> orderCode);

492
blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/QualityDeliverEntity.java

@ -0,0 +1,492 @@
package com.logpm.report.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springblade.core.tenant.mp.TenantEntity;
import java.math.BigDecimal;
import java.util.Date;
/**
* 配送明细
*
* @author zqb
* @create 2024-08-23
*/
@Data
@TableName("logpm_quality_deliver")
@ApiModel(value = "QualityDeliver对象", description = "配送明细")
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class QualityDeliverEntity extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 事业线
*/
@ApiModelProperty(value = "事业线")
private String businessUnit;
/**
* 作业仓库
*/
@ApiModelProperty(value = "作业仓库")
private String warehouseName;
/**
* 作业仓库ID
*/
@ApiModelProperty(value = "作业仓库ID")
private Long warehouseId;
/**
* 品牌
*/
@ApiModelProperty(value = "品牌")
private String brandName;
/**
* 客户名称
*/
@ApiModelProperty(value = "客户名称")
private String customName;
/**
* 客户电话
*/
@ApiModelProperty(value = "客户电话")
private String customPhone;
/**
* 客户地址
*/
@ApiModelProperty(value = "客户地址")
private String customAddress;
/**
* 运单发货单位
*/
@ApiModelProperty(value = "运单发货单位")
private String shipperUnit;
/**
* 运单发货人
*/
@ApiModelProperty(value = "运单发货人")
private String shipperPerson;
/**
* 运单发货电话
*/
@ApiModelProperty(value = "运单发货电话")
private String shipperMobile;
/**
* 运单发货地址
*/
@ApiModelProperty(value = "运单发货地址")
private String shipperAddress;
/**
* 运单收货单位
*/
@ApiModelProperty(value = "运单收货单位")
private String consigneeUnit;
/**
* 运单收货人
*/
@ApiModelProperty(value = "运单收货人")
private String consigneePerson;
/**
* 运单收货电话
*/
@ApiModelProperty(value = "运单收货电话")
private String consigneeMobile;
/**
* 运单收货地址
*/
@ApiModelProperty(value = "运单收货地址")
private String consigneeAddress;
/**
* 运单号
*/
@ApiModelProperty(value = "运单号")
private String waybillNumber;
/**
* 商场名称
*/
@ApiModelProperty(value = "商场名称")
private String mallName;
/**
* 商场ID
*/
@ApiModelProperty(value = "商场ID")
private Long mallId;
/**
* 入库批次号
*/
@ApiModelProperty(value = "入库批次号")
private String incomingBatch;
/**
* 订单号
*/
@ApiModelProperty(value = "订单号")
private String orderCode;
/**
* 包条码
*/
@ApiModelProperty(value = "包条码")
private String orderPackageCode;
/**
* 客户车次号
*/
@ApiModelProperty(value = "客户车次号")
private String trainNumber;
/**
* 数据类型 1 定制品 2 库存品 3零担
*/
@ApiModelProperty(value = "数据类型 1 定制品 2 库存品 3零担")
private Integer conditions;
/**
* 一级品
*/
@ApiModelProperty(value = "一级品")
private String firstsProduct;
/**
* 二级品
*/
@ApiModelProperty(value = "二级品")
private String secondProduct;
/**
* 三级品
*/
@ApiModelProperty(value = "三级品")
private String thirdProduct;
/**
* 体积
*/
@ApiModelProperty(value = "体积")
private BigDecimal volume;
/**
* 重量
*/
@ApiModelProperty(value = "重量")
private BigDecimal weight;
/**
* 成本结算品类
*/
@ApiModelProperty(value = "成本结算品类")
private String costCategory;
/**
* 收入结算品类
*/
@ApiModelProperty(value = "收入结算品类")
private String revenueCategory;
/**
* 物料信息
*/
@ApiModelProperty(value = "物料信息")
private String materielName;
/**
* 物料编码
*/
@ApiModelProperty(value = "物料编码")
private String materielCode;
/**
* 始发仓
*/
@ApiModelProperty(value = "始发仓")
private String beginWarehouseName;
/**
* 始发仓入库时间
*/
@ApiModelProperty(value = "始发仓入库时间")
private Date beginWarehouseInTime;
/**
* 始发仓发货时间
*/
@ApiModelProperty(value = "始发仓发货时间")
private Date beginWarehouseOutTime;
/**
* 末端仓入库时间
*/
@ApiModelProperty(value = "末端仓入库时间")
private String endWarehouseInTime;
/**
* 计划配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号
*/
@ApiModelProperty(value = "计划配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号")
private String planTrainNumber;
/**
* 计划预约单号 只有商市配自提采用自提车次号 三方中转采用三方中转车次号
*/
@ApiModelProperty(value = "计划预约单号 只有商市配,自提采用自提车次号 三方中转采用三方中转车次号")
private String planReservationCode;
/**
* 配送日期
*/
@ApiModelProperty(value = "配送日期")
private Date deliveryTime;
/**
* 配送类型2市配 1商配 3自提 4三方中转5直发商家 签收节点进行驱动) 没有这个字段
*/
@ApiModelProperty(value = "配送类型2市配 1商配 3自提 4三方中转(5直发商家 【签收节点进行驱动】) 没有这个字段")
private String deliveryType;
/**
* 配送种类
*/
@ApiModelProperty(value = "配送种类")
private String deliveryKind;
/**
* 配送车辆 存在多个逗号拼接
*/
@ApiModelProperty(value = "配送车辆 存在多个逗号拼接")
private String vehicleName;
/**
* 配送司机 存在多个逗号拼接
*/
@ApiModelProperty(value = "配送司机 存在多个逗号拼接")
private String driverName;
/**
* 配送公司
*/
@ApiModelProperty(value = "配送公司")
private String distributionCompany;
/**
* 计划时间
*/
@ApiModelProperty(value = "计划时间")
private Date deliveryPlanTime;
/**
* 计划数量
*/
@ApiModelProperty(value = "计划数量")
private Integer planNum;
/**
* 计划类型新增 补录
*/
@ApiModelProperty(value = "计划类型(新增 补录)")
private String planType;
/**
* 计划人
*/
@ApiModelProperty(value = "计划人")
private String deliveryCreateUserName;
/**
* 备货单号
*/
@ApiModelProperty(value = "备货单号")
private String stockupCode;
/**
* 备货人
*/
@ApiModelProperty(value = "备货人")
private String stockupUserName;
/**
* 备货时间
*/
@ApiModelProperty(value = "备货时间")
private Date stockupFinishTime;
/**
* 备货数量
*/
@ApiModelProperty(value = "备货数量")
private Integer stockNum;
/**
* 备货区
*/
@ApiModelProperty(value = "备货区")
private String stockAllocation;
/**
* 备货类型新增 补录
*/
@ApiModelProperty(value = "备货类型(新增 补录)")
private String stockupType;
/**
* 装车人
*/
@ApiModelProperty(value = "装车人")
private String loadUserName;
/**
* 装车时间
*/
@ApiModelProperty(value = "装车时间")
private Date loadTime;
/**
* 装车配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号
*/
@ApiModelProperty(value = "装车配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号")
private String loadTrainNumber;
/**
* 装车数量
*/
@ApiModelProperty(value = "装车数量")
private Integer loadNum;
/**
* 装车类型按件装车 一键装车 补录
*/
@ApiModelProperty(value = "装车类型(按件装车 一键装车 补录)")
private String loadType;
/**
* 发车人
*/
@ApiModelProperty(value = "发车人")
private String startCarUserName;
/**
* 发车时间
*/
@ApiModelProperty(value = "发车时间")
private String startCarTime;
/**
* 到达人
*/
@ApiModelProperty(value = "到达人")
private String arriveCarUserName;
/**
* 到达时间
*/
@ApiModelProperty(value = "到达时间")
private String arriveCarTime;
/**
* 到达省
*/
@ApiModelProperty(value = "到达省")
private String arriveProvince;
/**
* 到达市
*/
@ApiModelProperty(value = "到达市")
private String arriveCity;
/**
* 到达区/
*/
@ApiModelProperty(value = "到达区/县")
private String arriveDistrict;
/**
* 到达地址
*/
@ApiModelProperty(value = "到达地址")
private String arriveAddress;
/**
* 签收人
*/
@ApiModelProperty(value = "签收人")
private String signUserName;
/**
* 签收时间
*/
@ApiModelProperty(value = "签收时间")
private String signTime;
/**
* 签收状态 1.已签收 0 未签收 -1 已回库 -2 滞留
*/
@ApiModelProperty(value = "签收状态 1.已签收 0 未签收 -1 已回库 -2 滞留")
private String signStatus;
/**
* 签收数量
*/
@ApiModelProperty(value = "签收数量")
private String signNum;
/**
* 签收配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号
*/
@ApiModelProperty(value = "签收配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号")
private String signTrainNumber;
/**
* 签收预约单号 只有商市配自提没有该字段
*/
@ApiModelProperty(value = "签收预约单号 只有商市配,自提没有该字段")
private String signReservationCode;
/**
* 签收车牌
*/
@ApiModelProperty(value = "签收车牌")
private String signCarNumber;
/**
* 签收类型按件签收 批量签收 补录
*/
@ApiModelProperty(value = "签收类型(按件签收 批量签收 补录)")
private String signType;
/**
* 车辆类型
*/
@ApiModelProperty(value = "车辆类型")
private String signCarType;
/**
* 复核人
*/
@ApiModelProperty(value = "复核人")
private String reviewUserName;
/**
* 复核时间 复核时间=回库时间
*/
@ApiModelProperty(value = "复核时间 复核时间=回库时间")
private String reviewTime;
/**
* 滞留人
*/
@ApiModelProperty(value = "滞留人")
private String retentionUserName;
/**
* 滞留时间
*/
@ApiModelProperty(value = "滞留时间")
private String retentionTime;
/**
* 配送成本
*/
@ApiModelProperty(value = "配送成本")
private String distributionCost;
/**
* 分货费成本
*/
@ApiModelProperty(value = "分货费成本")
private String apartCost;
/**
* 上楼费成本
*/
@ApiModelProperty(value = "上楼费成本")
private String apstairsCost;
/**
* 平移费成本
*/
@ApiModelProperty(value = "平移费成本")
private String moveCost;
/**
* 装卸费成本
*/
@ApiModelProperty(value = "装卸费成本")
private String stevedoreCost;
/**
* 公里数成本
*/
@ApiModelProperty(value = "公里数成本")
private String kiloAllowCost;
/**
* 补贴公里数成本
*/
@ApiModelProperty(value = "补贴公里数成本")
private String allowKiloAllowCost;
/**
* 超区公里数成本
*/
@ApiModelProperty(value = "超区公里数成本")
private String ultrAllpwCost;
/**
* 点位补贴成本
*/
@ApiModelProperty(value = "点位补贴成本")
private String pointAllowCost;
/**
* 保底费成本
*/
@ApiModelProperty(value = "保底费成本")
private String guarCost;
/**
* 油费成本
*/
@ApiModelProperty(value = "油费成本")
private String fuelCost;
/**
* 其它成本
*/
@ApiModelProperty(value = "其它成本")
private String otherCost;
}

1
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java

@ -7,6 +7,7 @@ import java.io.Serializable;
@Data
public class ZeroPackageDTO implements Serializable {
private Long id;
private Long packageId;
private Long goodsId;
private String goodsName;//品类名称

26
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineScanZeroDetailClient.java

@ -0,0 +1,26 @@
package com.logpm.trunkline.feign;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import org.springblade.common.constant.ModuleNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(
value = ModuleNameConstant.APPLICATION_TRUNKLINE_NAME
)
public interface ITrunklineScanZeroDetailClient {
String API_PREFIX = "trunklineScanZeroDetail/client";
@GetMapping(API_PREFIX+"/findListByCarsLoadScanId")
List<TrunklineScanZeroDetailEntity> findListByCarsLoadScanId(@RequestParam Long carsLoadScanId);
@PostMapping(API_PREFIX+"/updateBetch")
void updateBetch(@RequestBody List<TrunklineScanZeroDetailEntity> updateScanZeroDetailEntityList);
}

1
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadOrderInfoVO.java

@ -17,6 +17,7 @@ public class CarsLoadOrderInfoVO implements Serializable {
private BigDecimal unloadIncome;
private BigDecimal costZhang;
private BigDecimal costPiece;
private BigDecimal income;
private BigDecimal weight;
private BigDecimal volume;
private BigDecimal orderFreight;

14
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderCodeNumVO.java

@ -0,0 +1,14 @@
package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderCodeNumVO implements Serializable {
private String orderCode;
private Integer totalNum;
}

6
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/SignPackageVO.java

@ -3,6 +3,8 @@ package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Data
public class SignPackageVO implements Serializable {
@ -12,5 +14,9 @@ public class SignPackageVO implements Serializable {
private Integer num;
private Integer unloadNum;
private String scanStatus;
private String orderCode;
private String waybillNo;
private List<TrunklineScanZeroDetailVO> scanZeroDetailList = new ArrayList<>();
}

11
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineScanZeroDetailVO.java

@ -0,0 +1,11 @@
package com.logpm.trunkline.vo;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import lombok.Data;
@Data
public class TrunklineScanZeroDetailVO extends TrunklineScanZeroDetailEntity {
}

6
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java

@ -3,6 +3,8 @@ package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Data
public class UnloadPackageVO implements Serializable {
@ -15,5 +17,9 @@ public class UnloadPackageVO implements Serializable {
private String trayCode;
private String scanStatus;
private String unloadNodeName;
private String orderCode;
private String waybillNo;
private List<TrunklineScanZeroDetailVO> scanZeroDetailList = new ArrayList<>();
}

40
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleListVO.java

@ -0,0 +1,40 @@
package com.logpm.trunkline.vo;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Data
public class ZeroSuppleListVO implements Serializable {
private Long orderId;
private String waybillNo;
private String orderCode;
private Integer stockNum;//在库数量
private Date createTime;//开单时间
private String destination;//到站
private String destinationWarehouseName;//目的仓
private String shipper;//发货单位
private String shipperName;//发货人
private String consignee;//收货单位
private String consigneeName;//收货人
private String goodsName;//货物名称
private Integer totalNum;//运单总件数
private BigDecimal weight;//运单总重量
private BigDecimal volume;//运单总体积
private String customerTrain;//客户车次号
private String remark;//备注
private String loadSignCode;//签收单号
private Long signOrderId;//签收单id
private BigDecimal totalFreight;//总运费
private BigDecimal price;//总运费
private List<JSONObject> zeroPackageSupplyVOS = new ArrayList<>();
}

4
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleVO.java

@ -1,8 +1,11 @@
package com.logpm.trunkline.vo;
import com.logpm.trunkline.dto.ZeroPackageDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Data
public class ZeroSuppleVO implements Serializable {
@ -14,5 +17,6 @@ public class ZeroSuppleVO implements Serializable {
private Long finalNodeId;//目的仓id
private Long signOrderId;//签收单id
private List<ZeroPackageDTO> zeroPackageList = new ArrayList<>();
}

31
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java

@ -19,8 +19,6 @@ package com.logpm.aftersales.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.aftersales.dto.AbnormalRecordDTO;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordService;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@ -84,9 +82,34 @@ public class AftersalesAbnormalRecordController extends BladeController {
return R.fail(405,"异常id为空");
}
return aftersalesAbnormalRecordService.dealAbnormal(abnormalRecordDTO);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
return aftersalesAbnormalRecordService.dealAbnormal(abnormalRecordDTO);
@ResponseBody
@PostMapping("/findZeroDetail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "处理异常", notes = "传入loadCarsDTO")
public R findZeroDetail(@RequestBody AbnormalRecordDTO abnormalRecordDTO) {
String method = "############findZeroDetail: ";
log.info(method + "请求参数{}", abnormalRecordDTO);
Long abnormalRecordId = abnormalRecordDTO.getAbnormalRecordId();
try{
if(Objects.isNull(abnormalRecordId)){
log.warn(method+"异常id为空 abnormalRecordId={}",abnormalRecordId);
return R.fail(405,"异常id为空");
}
return aftersalesAbnormalRecordService.findZeroDetail(abnormalRecordDTO);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
@ -95,4 +118,6 @@ public class AftersalesAbnormalRecordController extends BladeController {
return R.fail(500,"系统异常");
}
}
}

5
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java

@ -1,9 +1,12 @@
package com.logpm.aftersales.dto;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import com.logpm.trunkline.dto.ZeroPackageDTO;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Data
public class AbnormalRecordDTO extends AftersalesAbnormalRecordEntity {
@ -27,4 +30,6 @@ public class AbnormalRecordDTO extends AftersalesAbnormalRecordEntity {
private Date dealDateStart;
private Date dealDateEnd;
private List<ZeroPackageDTO> zeroPackageDTOS = new ArrayList<>();
}

6
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java

@ -54,4 +54,10 @@ public class AftersalesAbnormalRecordClient implements IAftersalesAbnormalRecord
public void addAbnormalRecordList(List<AftersalesAbnormalRecordEntity> abnormalRecordEntities) {
aftersalesAbnormalRecordService.saveBatch(abnormalRecordEntities);
}
@Override
public List<AftersalesAbnormalRecordEntity> addAbnormalRecordListReturnList(List<AftersalesAbnormalRecordEntity> abnormalRecordEntities) {
aftersalesAbnormalRecordService.saveBatch(abnormalRecordEntities);
return abnormalRecordEntities;
}
}

22
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordZeroDetailClient.java

@ -0,0 +1,22 @@
package com.logpm.aftersales.feign;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@ApiIgnore()
@RestController
@AllArgsConstructor
public class AftersalesAbnormalRecordZeroDetailClient implements IAftersalesAbnormalRecordZeroDetailClient {
private final IAftersalesAbnormalRecordZeroDetailService abnormalRecordZeroDetailService;
@Override
public void addAbnormalRecordZeroDetail(List<AftersalesAbnormalRecordZeroDetailEntity> abnormalRecordZeroDetailEntityList) {
abnormalRecordZeroDetailService.saveBatch(abnormalRecordZeroDetailEntityList);
}
}

9
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordZeroDetailMapper.java

@ -0,0 +1,9 @@
package com.logpm.aftersales.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity;
import org.mapstruct.Mapper;
@Mapper
public interface AftersalesAbnormalRecordZeroDetailMapper extends BaseMapper<AftersalesAbnormalRecordZeroDetailEntity> {
}

2
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordService.java

@ -12,4 +12,6 @@ public interface IAftersalesAbnormalRecordService extends BaseService<Aftersales
R dealAbnormal(AbnormalRecordDTO abnormalRecordDTO);
JSONObject findListByCarsNoAndUpWarehouseId(String carsNo, Long warehouseId);
R findZeroDetail(AbnormalRecordDTO abnormalRecordDTO);
}

12
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordZeroDetailService.java

@ -0,0 +1,12 @@
package com.logpm.aftersales.service;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
public interface IAftersalesAbnormalRecordZeroDetailService extends BaseService<AftersalesAbnormalRecordZeroDetailEntity> {
List<AftersalesAbnormalRecordZeroDetailEntity> findListByAbnormalRecordId(Long abnormalRecordId);
}

339
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java

@ -1,24 +1,30 @@
package com.logpm.aftersales.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONObject;
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.aftersales.dto.AbnormalRecordDTO;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity;
import com.logpm.aftersales.mapper.AftersalesAbnormalRecordMapper;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordService;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionParcelNumberClient;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.trunkline.dto.AddWaybillTrackDTO;
import com.logpm.trunkline.dto.ZeroPackageDTO;
import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity;
import com.logpm.trunkline.feign.ITrunklineCarsLoadScanClient;
import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient;
import com.logpm.trunkline.feign.ITrunklineWaybillPackageClient;
import com.logpm.trunkline.feign.ITrunklineWaybillTrackClient;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.feign.*;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.AllArgsConstructor;
@ -30,10 +36,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@Slf4j
@ -49,6 +53,8 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
private final IDistributionParcelListClient parcelListClient;
private final IDistributionParcelNumberClient parcelNumberClient;
private final IWarehouseWaybillClient warehouseWaybillClient;
private final ITrunklineWaybillTrackClient trunklineWaybillTrackClient;
@ -57,6 +63,10 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
private final ITrunklineWaybillPackageClient trunklineWaybillPackageClient;
private final IAftersalesAbnormalRecordZeroDetailService recordZeroDetailService;
private final ITrunklineScanZeroDetailClient scanZeroDetailClient;
@Override
public R findPageList(AbnormalRecordDTO abnormalRecordDTO) {
IPage<Object> page = new Page<>();
@ -145,149 +155,225 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
//零担卸车数量异常
Long waybillId = null;
Integer dealType = abnormalRecordDTO.getDealType();
List<ZeroPackageDTO> zeroPackageDTOS = abnormalRecordDTO.getZeroPackageDTOS();
Integer num = abnormalRecordEntity.getNum();
Long associationId = abnormalRecordEntity.getAssociationId();
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(associationId);
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId);
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
String orderCode = carsLoadScanEntity.getOrderCode();
List<AftersalesAbnormalRecordZeroDetailEntity> recordZeroDetailEntities = recordZeroDetailService.findListByAbnormalRecordId(abnormalRecordId);
//把zeroPackageDTOS转化成以goodsId作为key的Map
Map<Long, AftersalesAbnormalRecordZeroDetailEntity> recordZeroDetailEntitiesMapByGoodsId = recordZeroDetailEntities.stream().collect(Collectors.toMap(AftersalesAbnormalRecordZeroDetailEntity::getGoodsId, Function.identity()));
List<TrunklineScanZeroDetailEntity> scanZeroDetailEntityList = scanZeroDetailClient.findListByCarsLoadScanId(carsLoadScanId);
DistributionStockArticleEntity stockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
if(!Objects.isNull(stockArticleEntity)){
Long stockId = stockArticleEntity.getId();
if(dealType.equals(5)){
//回退原仓库
recordZeroDetailEntities.forEach(detailEntity -> {
parcelListClient.addZeroQuantity(detailEntity.getPackageId(),detailEntity.getAbnormalNum());
detailEntity.setReturnNum(detailEntity.getAbnormalNum());
});
stockArticleClient.addHandQuantity(stockId,num);
recordZeroDetailService.updateBatchById(recordZeroDetailEntities);
abnormalRecordEntity.setRemark("差异件数退回原仓");
}else if(dealType.equals(6)){
//入库本仓
Integer enterNum = abnormalRecordDTO.getNum();
//把scanZeroDetailEntityList转化成以packageId为key的map
Map<Long, TrunklineScanZeroDetailEntity> scanZeroDetailEntityMap = scanZeroDetailEntityList.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity()));
if(enterNum > 0){
Date now = new Date();
int diff = num - enterNum;
Long warehouseId = abnormalRecordEntity.getWarehouseId();
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
//把zeroPackageDTOS转化成以packageId作为key的Map
Map<Long, ZeroPackageDTO> zeroPackageDTOSMapByPackageId = zeroPackageDTOS.stream().collect(Collectors.toMap(ZeroPackageDTO::getPackageId, Function.identity()));
if(diff == 0){
//全部入库到本仓
DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if(Objects.isNull(currentStockArticleEntity)){
currentStockArticleEntity = new DistributionStockArticleEntity();
Integer totalNumber = stockArticleEntity.getTotalNumber();
BeanUtil.copy(stockArticleEntity,currentStockArticleEntity);
currentStockArticleEntity.setId(null);
currentStockArticleEntity.setHandQuantity(enterNum);
currentStockArticleEntity.setWarehouseId(warehouseId);
currentStockArticleEntity.setWarehouse(warehouseEntity.getName());
currentStockArticleEntity.setWarehouseEntryTime(now);
currentStockArticleEntity.setCompleteSet(1);
currentStockArticleEntity.setOrderReceiveStatus("20");
if(totalNumber.equals(enterNum)){
currentStockArticleEntity.setCompleteSet(2);
currentStockArticleEntity.setOrderReceiveStatus("30");
}
currentStockArticleEntity.setStockupStatus("10");
currentStockArticleEntity.setReservationStatus("10");
currentStockArticleEntity.setOrderStatus("20");
currentStockArticleEntity.setGroundingStatus("10");
currentStockArticleEntity.setFreezeStatus("10");
currentStockArticleEntity.setWarehouseEntryTimeEnd(now);
currentStockArticleEntity.setSortingQuantity(0);
currentStockArticleEntity.setDeliveryQuantity(0);
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentStockArticleEntity.setIncomingNum(enterNum);
Long orderId = stockArticleClient.addData(currentStockArticleEntity);
if(!Objects.isNull(orderId)){
List<DistributionParcelListEntity> addParcelListEntityList = new ArrayList<>();
List<DistributionParcelListEntity> parcelListEntityList = parcelListClient.findEntityListByOrderCode(orderCode, warehouseId);
parcelListEntityList.forEach(parcelListEntity -> {
DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity,currentParcelListEntity);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
currentParcelListEntity.setId(null);
currentParcelListEntity.setGoodsAllocation(null);
currentParcelListEntity.setStockArticleId(orderId);
currentParcelListEntity.setPallet(null);
currentParcelListEntity.setWarehouseId(warehouseId);
currentParcelListEntity.setWarehouse(warehouseEntity.getName());
currentParcelListEntity.setIsTransfer(1);
if(acceptWarehouseId.equals(warehouseId)){
currentParcelListEntity.setIsTransfer(0);
}
addParcelListEntityList.add(currentParcelListEntity);
});
parcelListClient.addZeroParcelList(addParcelListEntityList);
}
}else{
stockArticleClient.addHandQuantityAndIncomingNum(currentStockArticleEntity.getId(),enterNum);
}
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓");
}else{
//回退原仓库
recordZeroDetailEntities.forEach(detailEntity -> {
Long packageId = detailEntity.getPackageId();
Integer abnormalNum = detailEntity.getAbnormalNum();
ZeroPackageDTO zeroPackageDTO = zeroPackageDTOSMapByPackageId.get(packageId);
Integer enterPackageNum = zeroPackageDTO.getEnterNum();
parcelListClient.addZeroQuantity(packageId,abnormalNum - enterPackageNum);
detailEntity.setReturnNum(abnormalNum - enterPackageNum);
});
stockArticleClient.addHandQuantity(stockId,diff);
recordZeroDetailService.updateBatchById(recordZeroDetailEntities);
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓,原仓返回"+diff+"件");
}
//全部入库到本仓
DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if(Objects.isNull(currentStockArticleEntity)){
currentStockArticleEntity = new DistributionStockArticleEntity();
Integer totalNumber = stockArticleEntity.getTotalNumber();
BeanUtil.copy(stockArticleEntity,currentStockArticleEntity);
currentStockArticleEntity.setId(null);
currentStockArticleEntity.setHandQuantity(enterNum);
currentStockArticleEntity.setWarehouseId(warehouseId);
currentStockArticleEntity.setWarehouse(warehouseEntity.getName());
currentStockArticleEntity.setWarehouseEntryTime(now);
currentStockArticleEntity.setCompleteSet(1);
currentStockArticleEntity.setOrderReceiveStatus("20");
if(totalNumber.equals(enterNum)){
currentStockArticleEntity.setCompleteSet(2);
currentStockArticleEntity.setOrderReceiveStatus("30");
DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if(Objects.isNull(currentStockArticleEntity)){
currentStockArticleEntity = new DistributionStockArticleEntity();
Integer totalNumber = stockArticleEntity.getTotalNumber();
BeanUtil.copy(stockArticleEntity,currentStockArticleEntity);
currentStockArticleEntity.setId(null);
currentStockArticleEntity.setHandQuantity(enterNum);
currentStockArticleEntity.setWarehouseId(warehouseId);
currentStockArticleEntity.setWarehouse(warehouseEntity.getName());
currentStockArticleEntity.setWarehouseEntryTime(now);
currentStockArticleEntity.setCompleteSet(1);
currentStockArticleEntity.setOrderReceiveStatus("20");
if(totalNumber.equals(enterNum)){
currentStockArticleEntity.setCompleteSet(2);
currentStockArticleEntity.setOrderReceiveStatus("30");
}
currentStockArticleEntity.setStockupStatus("10");
currentStockArticleEntity.setReservationStatus("10");
currentStockArticleEntity.setOrderStatus("20");
currentStockArticleEntity.setGroundingStatus("10");
currentStockArticleEntity.setFreezeStatus("10");
currentStockArticleEntity.setWarehouseEntryTimeEnd(now);
currentStockArticleEntity.setSortingQuantity(0);
currentStockArticleEntity.setDeliveryQuantity(0);
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentStockArticleEntity.setIncomingNum(enterNum);
Long orderId = stockArticleClient.addData(currentStockArticleEntity);
if(!Objects.isNull(orderId)){
List<TrunklineScanZeroDetailEntity> updateScanZeroDetailEntityList = new ArrayList<>();
List<DistributionParcelNumberEntity> addParcelNumberEntityList = new ArrayList<>();
List<AftersalesAbnormalRecordZeroDetailEntity> updateRecordZeroDetailList = new ArrayList<>();
List<DistributionParcelListVO> parcelListEntityList = parcelListClient.findEntityVOListByOrderCode(orderCode, fromWarehouseId);
parcelListEntityList.forEach(parcelListEntity -> {
Long packageId = parcelListEntity.getId();
Integer zeroPackageTotalNum = parcelListEntity.getZeroPackageTotalNum();
ZeroPackageDTO zeroPackageDTO = zeroPackageDTOSMapByPackageId.get(packageId);
Long goodsId = zeroPackageDTO.getGoodsId();
Integer packageEnterNum = zeroPackageDTO.getEnterNum();
//保存包件信息
DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity,currentParcelListEntity);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
currentParcelListEntity.setId(null);
currentParcelListEntity.setQuantity(packageEnterNum);
currentParcelListEntity.setGoodsAllocation(null);
currentParcelListEntity.setStockArticleId(orderId);
currentParcelListEntity.setPallet(null);
currentParcelListEntity.setWarehouseId(warehouseId);
currentParcelListEntity.setWarehouse(warehouseEntity.getName());
currentParcelListEntity.setIsTransfer(1);
if(acceptWarehouseId.equals(warehouseId)){
currentParcelListEntity.setIsTransfer(0);
}
Long parceListId = parcelListClient.addReturnId(currentParcelListEntity);
if(!Objects.isNull(parceListId)){
//保存零担包件数量信息
DistributionParcelNumberEntity currentParcelNumberEntity = new DistributionParcelNumberEntity();
currentParcelNumberEntity.setStockArticleId(orderId);
currentParcelNumberEntity.setParcelListId(parceListId);
currentParcelNumberEntity.setQuantity(zeroPackageTotalNum);
currentParcelNumberEntity.setHandQuantity(packageEnterNum);
currentParcelNumberEntity.setOutboundQuantity(0);
currentParcelNumberEntity.setDeliveryQuantity(0);
currentParcelNumberEntity.setSigninQuantity(0);
addParcelNumberEntityList.add(currentParcelNumberEntity);
}
//更新异常列表零担品类数量信息
AftersalesAbnormalRecordZeroDetailEntity aftersalesAbnormalRecordZeroDetailEntity = recordZeroDetailEntitiesMapByGoodsId.get(goodsId);
AftersalesAbnormalRecordZeroDetailEntity updateRecordZeroDetail = new AftersalesAbnormalRecordZeroDetailEntity();
updateRecordZeroDetail.setId(aftersalesAbnormalRecordZeroDetailEntity.getId());
updateRecordZeroDetail.setIncomingNum(packageEnterNum);
updateRecordZeroDetailList.add(updateRecordZeroDetail);
//更新装车明细零担信息
TrunklineScanZeroDetailEntity scanZeroDetailEntity = scanZeroDetailEntityMap.get(packageId);
TrunklineScanZeroDetailEntity updateScanZeroDetailEntity = new TrunklineScanZeroDetailEntity();
updateScanZeroDetailEntity.setId(scanZeroDetailEntity.getId());
updateScanZeroDetailEntity.setUnloadNum(scanZeroDetailEntity.getUnloadNum()+packageEnterNum);
updateScanZeroDetailEntityList.add(updateScanZeroDetailEntity);
});
if(CollUtil.isNotEmpty(updateRecordZeroDetailList)){
recordZeroDetailService.updateBatchById(updateRecordZeroDetailList);
}
currentStockArticleEntity.setStockupStatus("10");
currentStockArticleEntity.setReservationStatus("10");
currentStockArticleEntity.setOrderStatus("20");
currentStockArticleEntity.setGroundingStatus("10");
currentStockArticleEntity.setFreezeStatus("10");
currentStockArticleEntity.setWarehouseEntryTimeEnd(now);
currentStockArticleEntity.setSortingQuantity(0);
currentStockArticleEntity.setDeliveryQuantity(0);
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentStockArticleEntity.setIncomingNum(enterNum);
Long orderId = stockArticleClient.addData(currentStockArticleEntity);
if(!Objects.isNull(orderId)){
List<DistributionParcelListEntity> addParcelListEntityList = new ArrayList<>();
List<DistributionParcelListEntity> parcelListEntityList = parcelListClient.findEntityListByOrderCode(orderCode, warehouseId);
parcelListEntityList.forEach(parcelListEntity -> {
DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity,currentParcelListEntity);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
currentParcelListEntity.setId(null);
currentParcelListEntity.setGoodsAllocation(null);
currentParcelListEntity.setStockArticleId(orderId);
currentParcelListEntity.setPallet(null);
currentParcelListEntity.setWarehouseId(warehouseId);
currentParcelListEntity.setWarehouse(warehouseEntity.getName());
currentParcelListEntity.setIsTransfer(1);
if(acceptWarehouseId.equals(warehouseId)){
currentParcelListEntity.setIsTransfer(0);
}
addParcelListEntityList.add(currentParcelListEntity);
});
parcelListClient.addZeroParcelList(addParcelListEntityList);
if(CollUtil.isNotEmpty(updateScanZeroDetailEntityList)){
scanZeroDetailClient.updateBetch(updateScanZeroDetailEntityList);
}
}else{
if(CollUtil.isNotEmpty(addParcelNumberEntityList)){
parcelNumberClient.addBatch(addParcelNumberEntityList);
}
}
}else{
Long orderId = currentStockArticleEntity.getId();
List<DistributionParcelListEntity> parcelListEntityList = parcelListClient.findListByStockArticleId(orderId);
//把parcelListEntityList转化成以firsts为key的map
Map<String, DistributionParcelListEntity> parcelListEntityMapByFirsts = parcelListEntityList.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity()));
List<DistributionParcelNumberEntity> parcelNumberEntityList =parcelNumberClient.findListByStockArticleId(orderId);
//把parcelNumberEntityList转化成以parceListId为key的Map
Map<Long, DistributionParcelNumberEntity> parcelNumberEntityMapByParcelListId = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity()));
//把scanZeroDetailEntityList转化成以goodsId为key的Map
Map<Long, TrunklineScanZeroDetailEntity> scanZeroDetailEntityMapByGoodsId = scanZeroDetailEntityList.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getGoodsId, Function.identity()));
List<TrunklineScanZeroDetailEntity> updateScanZeroDetailEntityList = new ArrayList<>();
List<AftersalesAbnormalRecordZeroDetailEntity> updateAbnormalRecordZeroDetailEntityList = new ArrayList<>();
List<DistributionParcelListEntity> updateParcelListEntityList = new ArrayList<>();
List<DistributionParcelNumberEntity> updateParcelNumberEntityList = new ArrayList<>();
zeroPackageDTOS.forEach(zeroPackageDTO -> {
Integer packageNum = zeroPackageDTO.getEnterNum();
String goodsName = zeroPackageDTO.getGoodsName();
Long goodsId = zeroPackageDTO.getGoodsId();
//更新装车明细零担信息
TrunklineScanZeroDetailEntity scanZeroDetailEntity = scanZeroDetailEntityMapByGoodsId.get(goodsId);
TrunklineScanZeroDetailEntity updateScanZeroDetailEntity = new TrunklineScanZeroDetailEntity();
updateScanZeroDetailEntity.setId(scanZeroDetailEntity.getId());
updateScanZeroDetailEntity.setUnloadNum(scanZeroDetailEntity.getUnloadNum()+packageNum);
updateScanZeroDetailEntityList.add(updateScanZeroDetailEntity);
//更新异常列表零担品类数量
AftersalesAbnormalRecordZeroDetailEntity aftersalesAbnormalRecordZeroDetailEntity = recordZeroDetailEntitiesMapByGoodsId.get(goodsId);
AftersalesAbnormalRecordZeroDetailEntity updateRecordZeroDetail = new AftersalesAbnormalRecordZeroDetailEntity();
updateRecordZeroDetail.setId(aftersalesAbnormalRecordZeroDetailEntity.getId());
updateRecordZeroDetail.setIncomingNum(aftersalesAbnormalRecordZeroDetailEntity.getIncomingNum()+packageNum);
updateAbnormalRecordZeroDetailEntityList.add(updateRecordZeroDetail);
//更新;零担包件信息
DistributionParcelListEntity parcelList = parcelListEntityMapByFirsts.get(goodsName);
Long parcelListId = parcelList.getId();
DistributionParcelListEntity updateParceListEntity = new DistributionParcelListEntity();
updateParceListEntity.setId(parcelListId);
updateParceListEntity.setQuantity(parcelList.getQuantity()+packageNum);
updateParcelListEntityList.add(updateParceListEntity);
//更新零担品类数量信息
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberEntityMapByParcelListId.get(parcelListId);
DistributionParcelNumberEntity updateParceNumberEntity = new DistributionParcelNumberEntity();
updateParceNumberEntity.setId(parcelNumberEntity.getId());
updateParceNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity()+packageNum);
updateParcelNumberEntityList.add(updateParceNumberEntity);
});
if(CollUtil.isNotEmpty(updateScanZeroDetailEntityList)){
scanZeroDetailClient.updateBetch(updateScanZeroDetailEntityList);
}
if(CollUtil.isNotEmpty(updateAbnormalRecordZeroDetailEntityList)){
recordZeroDetailService.updateBatchById(updateAbnormalRecordZeroDetailEntityList);
}
if(CollUtil.isNotEmpty(updateParcelListEntityList)){
parcelListClient.updateList(updateParcelListEntityList);
}
if(CollUtil.isNotEmpty(updateParcelNumberEntityList)){
parcelNumberClient.updateList(updateParcelNumberEntityList);
}
stockArticleClient.addHandQuantityAndIncomingNum(currentStockArticleEntity.getId(),enterNum);
stockArticleClient.addHandQuantityAndIncomingNum(currentStockArticleEntity.getId(),enterNum);
}
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓,原仓返回"+diff+"件");
}
carsLoadScanEntity.setScanStatus("2");
carsLoadScanEntity.setUnloadNum(carsLoadScanEntity.getUnloadNum()+enterNum);
trunklineCarsLoadScanClient.updateEntity(carsLoadScanEntity);
@ -353,4 +439,13 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
public JSONObject findListByCarsNoAndUpWarehouseId(String carsNo, Long warehouseId) {
return baseMapper.findListByCarsNoAndUpWarehouseId(carsNo,warehouseId);
}
@Override
public R findZeroDetail(AbnormalRecordDTO abnormalRecordDTO) {
Long abnormalRecordId = abnormalRecordDTO.getAbnormalRecordId();
QueryWrapper<AftersalesAbnormalRecordZeroDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("abnormal_record_id",abnormalRecordId);
List<AftersalesAbnormalRecordZeroDetailEntity> list = recordZeroDetailService.list(queryWrapper);
return R.data(list);
}
}

25
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java

@ -0,0 +1,25 @@
package com.logpm.aftersales.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity;
import com.logpm.aftersales.mapper.AftersalesAbnormalRecordZeroDetailMapper;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@AllArgsConstructor
@Slf4j
public class AftersalesAbnormalRecordZeroDetailServiceImpl extends BaseServiceImpl<AftersalesAbnormalRecordZeroDetailMapper, AftersalesAbnormalRecordZeroDetailEntity> implements IAftersalesAbnormalRecordZeroDetailService {
@Override
public List<AftersalesAbnormalRecordZeroDetailEntity> findListByAbnormalRecordId(Long abnormalRecordId) {
QueryWrapper<AftersalesAbnormalRecordZeroDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("abnormal_record_id",abnormalRecordId);
return baseMapper.selectList(queryWrapper);
}
}

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java

@ -86,7 +86,7 @@ public class BasicdataVehicleController extends BladeController {
public R<BasicdataVehicleVO> detail(@Param("id") Long id) {
// BasicdataVehicleEntity detail = basicdataVehicleService.getOne(Condition.getQueryWrapper(basicdataVehicle));
BasicdataVehicleEntity detail = basicdataVehicleService.getVehicleDetail(id);
BasicdataVehicleVO detail = basicdataVehicleService.getVehicleDetail(id);
//查询历史照片
BasicdataVehicleVO basicdataVehicleVO = new BasicdataVehicleVO();
BeanUtils.copyProperties(detail,basicdataVehicleVO);

36
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java

@ -16,6 +16,9 @@
*/
package com.logpm.basicdata.feign;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -32,14 +35,18 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springblade.system.entity.Dept;
import org.springblade.system.feign.IDeptClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 仓库 Feign实现类
@ -55,6 +62,8 @@ public class BasicdataWarehouseClient implements IBasicdataWarehouseClient {
private final IBasicdataWarehouseService warehouseWarehouseService;
private final IDeptClient deptClient;
private final BladeRedis bladeRedis;
@Override
@ -225,5 +234,32 @@ public class BasicdataWarehouseClient implements IBasicdataWarehouseClient {
return list;
}
@Override
public List<BasicdataWarehouseEntity> findWarehousesByIds(List<Long> ids) {
if(CollUtil.isNotEmpty(ids)){
List<BasicdataWarehouseEntity> list = warehouseWarehouseService.list(Wrappers.<BasicdataWarehouseEntity>lambdaQuery().in(BasicdataWarehouseEntity::getId, ids.stream().collect(Collectors.toSet())));
if(CollUtil.isNotEmpty(list)){
for (BasicdataWarehouseEntity warehouseEntity : list) {
Long department = warehouseEntity.getDepartment();
if(ObjectUtil.isNotNull(department)){
Dept dept = deptClient.findEntityById(department);
if(ObjectUtil.isNotEmpty(dept)){
Integer deptCategory = dept.getDeptCategory();
if(NumberUtil.equals(deptCategory,2)){
warehouseEntity.setBusinessLine(dept.getDeptName());
} else {
Long parentId = dept.getParentId();
Dept parentDept = deptClient.findEntityById(parentId);
warehouseEntity.setBusinessLine(parentDept.getDeptName());
}
}
}
}
return list;
}
}
return Collections.emptyList();
}
}

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.java

@ -69,5 +69,5 @@ public interface BasicdataVehicleMapper extends BaseMapper<BasicdataVehicleEntit
* @param id
* @return
*/
BasicdataVehicleEntity getVehicleDetail(@Param("id")Long id);
BasicdataVehicleVO getVehicleDetail(@Param("id")Long id);
}

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.xml

@ -252,7 +252,7 @@
and vehicle_nub like concat('%',#{carNumber},'%')
limit 10
</select>
<select id="getVehicleDetail" resultType="com.logpm.basicdata.entity.BasicdataVehicleEntity">
<select id="getVehicleDetail" resultType="com.logpm.basicdata.vo.BasicdataVehicleVO">
SELECT
lbv.id id,
lbv.tenant_id tenantId,

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataVehicleService.java

@ -99,5 +99,5 @@ public interface IBasicdataVehicleService extends BaseService<BasicdataVehicleEn
* @param id
* @return
*/
BasicdataVehicleEntity getVehicleDetail(Long id);
BasicdataVehicleVO getVehicleDetail(Long id);
}

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataVehicleServiceImpl.java

@ -295,7 +295,7 @@ public class BasicdataVehicleServiceImpl extends BaseServiceImpl<BasicdataVehicl
}
@Override
public BasicdataVehicleEntity getVehicleDetail(Long id) {
public BasicdataVehicleVO getVehicleDetail(Long id) {
return baseMapper.getVehicleDetail(id);
}

5
blade-service/logpm-distribution/pom.xml

@ -133,6 +133,11 @@
<artifactId>logpm-business-api</artifactId>
<version>${bladex.project.version}</version>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>logpm-report-api</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
</dependencies>

24
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java

@ -34,6 +34,7 @@ import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.ZeroPackageSupplyVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.support.BladePage;
@ -516,4 +517,27 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
return distributionParcelListService.list(queryWrapper);
}
@Override
public List<DistributionParcelListVO> findEntityVOListByOrderCode(String orderCode, Long fromWarehouseId) {
return distributionParcelListService.findEntityVOListByOrderCode(orderCode,fromWarehouseId);
}
@Override
public void addZeroQuantity(Long packageId, int num) {
//零担加了数量
distributionParcelListService.addZeroPackageQuantity(packageId,num);
//对应的parceNumber也要加上在库数量
distributionParcelNumberService.addZeroQuantity(packageId,num);
}
@Override
public List<ZeroPackageSupplyVO> findListByStockArticleIds(List<Long> orderIdList) {
return distributionParcelListService.findListByStockArticleIds(orderIdList);
}
@Override
public void updateWaybillIdByWaybillNo(Long waybillId, String waybillNo) {
distributionParcelListService.updateWaybillIdByWaybillNo(waybillId,waybillNo);
}
}

24
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java

@ -16,13 +16,14 @@
*/
package com.logpm.distribution.feign;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@ -57,4 +58,23 @@ public class DistributionParcelNumberClient implements IDistributionParcelNumber
distributionParcelNumberService.saveBatch(parcelNumberList);
}
@Override
public List<DistributionParcelNumberEntity> findListByParcelListIds(List<Long> parcelListIds) {
QueryWrapper<DistributionParcelNumberEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.in("parcel_list_id", parcelListIds);
return distributionParcelNumberService.list(queryWrapper);
}
@Override
public void updateList(List<DistributionParcelNumberEntity> updateParceNumberList) {
distributionParcelNumberService.updateBatchById(updateParceNumberList);
}
@Override
public List<DistributionParcelNumberEntity> findListByStockArticleId(Long orderId) {
QueryWrapper<DistributionParcelNumberEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.in("stock_article_id", orderId);
return distributionParcelNumberService.list(queryWrapper);
}
}

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java

@ -299,4 +299,12 @@ public interface DistributionParcelListMapper extends BaseMapper<DistributionPar
void clearAllocationByIds(@Param("clearTrayList") List<Long> clearTrayList);
List<JSONObject> findPackageGoodsListByWaybillNo(@Param("waybillNo") String waybillNo);
List<DistributionParcelListVO> findEntityVOListByOrderCode(@Param("orderCode") String orderCode,@Param("fromWarehouseId") Long fromWarehouseId);
void addZeroPackageQuantity(@Param("packageId") Long packageId, @Param("num") int num);
List<ZeroPackageSupplyVO> findListByStockArticleIds(@Param("orderIdList") List<Long> orderIdList);
void updateWaybillIdByWaybillNo(@Param("waybillId") Long waybillId, @Param("waybillNo") String waybillNo);
}

37
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml

@ -1884,5 +1884,42 @@
where lwwd.order_code = #{waybillNo}
</select>
<select id="findEntityVOListByOrderCode" resultType="com.logpm.distribution.vo.DistributionParcelListVO">
select ldpl.*,
lwwd.num zeroPackageTotalNum
from logpm_distribution_parcel_list ldpl
left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advance_id
where ldpl.order_code = #{orderCode}
and ldpl.warehouse_id = #{fromWarehouseId}
</select>
<update id="addZeroPackageQuantity" >
update logpm_distribution_parcel_list
set quantity = quantity + #{num}
where id = #{packageId}
</update>
<select id="findListByStockArticleIds" resultType="com.logpm.distribution.vo.ZeroPackageSupplyVO">
select ldpl.stock_article_id stockArticleId,
ldpl.id packageId,
lwwd.product_id goodsId,
lwwd.product_name goodsName,
ldpl.quantity stockNum
from logpm_distribution_parcel_list ldpl
left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advance_id
where ldpl.stock_article_id in
<foreach collection="orderIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<update id="updateWaybillIdByWaybillNo">
update logpm_distribution_parcel_list
set waybill_id = #{waybillId}
where waybill_number = #{waybillNo}
</update>
</mapper>

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.java

@ -74,4 +74,6 @@ public interface DistributionParcelNumberMapper extends BaseMapper<DistributionP
* @return
*/
Integer augmentSignForNum(@Param("packageId") Long id,@Param("stockArticleId") Long stockArticleId,@Param("quantity") Integer quantity);
void addZeroQuantity(@Param("packageId") Long packageId, @Param("num") int num);
}

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.xml

@ -78,5 +78,13 @@
ldsa.order_code = #{orderCode} AND ldsa.warehouse_id = #{warehouseId} AND ldsa.is_deleted = 0
</select>
<update id="addZeroQuantity">
UPDATE
logpm_distribution_parcel_number
SET
hand_quantity = hand_quantity + #{num}
WHERE
parcel_list_id = #{packageId}
</update>
</mapper>

125
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java

@ -0,0 +1,125 @@
package com.logpm.distribution.receiver.report;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.report.entity.QualityDeliverEntity;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.broadcast.FanoutConstants;
import org.springblade.common.enums.BizOperationEnums;
import org.springblade.common.enums.PackageTypeEnums;
import org.springblade.common.model.NodeFanoutMsg;
import org.springblade.common.model.PackageData;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 配送计划生成明细报表
*
* @author zhaoqiaobo
* @create 2024-03-18 0:02
*/
@Slf4j
@Component
@AllArgsConstructor
public class PlanReportListener {
@Resource
private IDistributionParcelListService parcelListService;
@Resource
private IDistributionDeliveryListService deliveryListService;
@Resource
private IBasicdataWarehouseClient warehouseClient;
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.distribution.plan.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.distribution.plan.EXCHANGE, type = ExchangeTypes.FANOUT)
))
public void nodeDataPushDelayed(String msg) {
log.info("配送计划生成明细报表: {}", msg);
if (StrUtil.isEmpty(msg)) {
return;
}
NodeFanoutMsg bean = JSONUtil.toBean(msg, NodeFanoutMsg.class);
// Long warehouseId = bean.getWarehouseId();
BizOperationEnums bizOperation = bean.getBizOperation();
List<PackageData> details = bean.getDetails();
Object main = bean.getMain();
// main: {"distributionCompany":"承运商", "driverName":"司机姓名", "id":"任务ID", "kind":"任务类型 1-自主 2-外协", "taskTime":"任务时间", "trainNumber":"车次号","type":"配送类型 1商配 2市配", "vehicleName":"车牌号"}
JSONObject entries = JSONUtil.parseObj(main);
BasicdataWarehouseEntity warehouseEntity = null;
// if (ObjectUtil.isNotEmpty(warehouseId)) {
// List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.findWarehousesByIds(CollUtil.newArrayList(warehouseId));
// if (CollUtil.isNotEmpty(warehouseEntities)) {
// warehouseEntity = warehouseEntities.get(0);
// }
// }
if (BizOperationEnums.ADD.equals(bizOperation)) {
List<QualityDeliverEntity> entities = new ArrayList<>();
// 新增
// 查询出基础信息插入基础表
// 订制品 库存品 零担
if (CollUtil.isNotEmpty(details)) {
// 按 packageType 分组
Map<PackageTypeEnums, List<PackageData>> detailMap = details.stream().collect(Collectors.groupingBy(PackageData::getPackageType));
if (detailMap.containsKey(PackageTypeEnums.CMP)) {
// 订制品
List<PackageData> packageData = detailMap.get(PackageTypeEnums.CMP);
// List<DistributionParcelListEntity> listByOrderPackageCode = parcelListService.findListByOrderPackageCode(packageData.stream().map(PackageData::getPackageCode).collect(Collectors.toList()), bean.getWarehouseId());
Map<String, DistributionParcelListEntity> parcelListMap = null;
// if (CollUtil.isNotEmpty(listByOrderPackageCode)) {
// 转map
// parcelListMap = listByOrderPackageCode.stream().collect(Collectors.toMap(DistributionParcelListEntity::getOrderPackageCode, e -> e));
// }
for (PackageData packageDatum : packageData) {
QualityDeliverEntity entity = QualityDeliverEntity.builder()
.orderCode(packageDatum.getOrderCode())
.businessUnit(ObjectUtil.isNotEmpty(warehouseEntity) ? warehouseEntity.getBusinessLine() : "")
.warehouseName(bean.getWarehouse())
// .warehouseId(bean.getWarehouseId())
.build();
if (MapUtil.isNotEmpty(parcelListMap) && parcelListMap.containsKey(packageDatum.getPackageCode())) {
DistributionParcelListEntity parcelListEntity = parcelListMap.get(packageDatum.getPackageCode());
if (ObjectUtil.isNotEmpty(parcelListEntity)) {
entity.setBrandName(parcelListEntity.getBrandName());
}
}
}
} else if (detailMap.containsKey(PackageTypeEnums.INV)) {
// 库存品
} else if (detailMap.containsKey(PackageTypeEnums.LTL)) {
// 零担
}
}
} else if (BizOperationEnums.DELETE.equals(bizOperation)) {
// 删除
} else if (BizOperationEnums.MODIFY.equals(bizOperation)) {
// 修改
}
}
}

12
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java

@ -21,10 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.excel.DistributionParcelListExcel;
import com.logpm.distribution.vo.DistributionParcelListBaseVO;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.DistributionParcelListZeroVO;
import com.logpm.distribution.vo.PackageStockupVO;
import com.logpm.distribution.vo.*;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
@ -258,4 +255,11 @@ public interface IDistributionParcelListService extends BaseService<Distribution
List<JSONObject> findPackageGoodsListByWaybillNo(String waybillNo);
List<DistributionParcelListVO> findEntityVOListByOrderCode(String orderCode, Long fromWarehouseId);
void addZeroPackageQuantity(Long packageId, int num);
List<ZeroPackageSupplyVO> findListByStockArticleIds(List<Long> orderIdList);
void updateWaybillIdByWaybillNo(Long waybillId, String waybillNo);
}

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java

@ -78,4 +78,6 @@ public interface IDistributionParcelNumberService extends BaseService<Distributi
* @param quantity
*/
Integer augmentSignForNum(Long id, Long stockArticleId, Integer quantity);
void addZeroQuantity(Long packageId, int num);
}

20
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java

@ -1354,6 +1354,26 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
return baseMapper.findPackageGoodsListByWaybillNo(waybillNo);
}
@Override
public List<DistributionParcelListVO> findEntityVOListByOrderCode(String orderCode, Long fromWarehouseId) {
return baseMapper.findEntityVOListByOrderCode(orderCode,fromWarehouseId);
}
@Override
public void addZeroPackageQuantity(Long packageId, int num) {
baseMapper.addZeroPackageQuantity(packageId,num);
}
@Override
public List<ZeroPackageSupplyVO> findListByStockArticleIds(List<Long> orderIdList) {
return baseMapper.findListByStockArticleIds(orderIdList);
}
@Override
public void updateWaybillIdByWaybillNo(Long waybillId, String waybillNo) {
baseMapper.updateWaybillIdByWaybillNo(waybillId,waybillNo);
}
private JSONObject handleLogJSONObject(BasicdataWarehouseEntity warehouse, BladeUser user, String orderPackageCode, String content, Integer node) {
JSONObject trunklinePackageTrackLog = new JSONObject();

21
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java

@ -16,31 +16,29 @@
*/
package com.logpm.distribution.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.distribution.dto.DistributionParcelNumberDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.vo.DistributionParcelNumberVO;
import com.logpm.distribution.excel.DistributionParcelNumberExcel;
import com.logpm.distribution.mapper.DistributionParcelNumberMapper;
import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import lombok.AllArgsConstructor;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.vo.DistributionParcelNumberVO;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
* 订单零担包件数量记录 服务实现类
@ -175,4 +173,9 @@ public class DistributionParcelNumberServiceImpl extends BaseServiceImpl<Distrib
return baseMapper.augmentSignForNum(id,stockArticleId,quantity);
}
@Override
public void addZeroQuantity(Long packageId, int num) {
baseMapper.addZeroQuantity(packageId,num);
}
}

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -5011,7 +5011,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
log.error(method + "reservationEntity参数错误:{}", reservationEntity);
return R.fail("服务器正忙~~");
}
Long batchLock = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "reservationId:");
Long batchLock = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "reservationId:"+reservationEntity.getId());
if (!Objects.isNull(batchLock)) {
return R.fail("请不要重复操作");
}

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -3429,6 +3429,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
// return message;
// });
// }
distributionParcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue());
distributionParcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
distributionParcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
distributionParcelListService.updateById(distributionParcelListEntity);
}
@ -3440,9 +3444,9 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionBillLadingScanService.save(distributionBillLadingScan);
//进行下架解托
if(StringUtils.isNotBlank(distributionBillLadingScan.getPacketBarCode())){
warehouseUpdownTypeClient.downPackageOrDelTray(distributionBillLadingScan.getPacketBarCode(),myCurrentWarehouse.getId(),"自提下架解托");
}
// if(StringUtils.isNotBlank(distributionBillLadingScan.getPacketBarCode())){
// warehouseUpdownTypeClient.downPackageOrDelTray(distributionBillLadingScan.getPacketBarCode(),myCurrentWarehouse.getId(),"自提下架解托");
// }

2
blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java

@ -1496,7 +1496,7 @@ public class AsyncDataServiceImpl implements IAsyncDataService {
if(r.isSuccess()){
FactoryWarehouseBindVO data = r.getData();
if(ObjectUtil.isNotEmpty(data) && ObjectUtil.isNotEmpty(data.getOldWarehouseId())){
warehouseId = Convert.toInt(data.getWarehouseId());
warehouseId = Convert.toInt(data.getOldWarehouseId());
}
}
AdvanceEntity advanceEntity = findAdvanceEntityUseCacheByOrderSelfNumAndReceiptId(serviceNumEntity.getReceiptId(), serviceNumEntity.getPlatformOrderCode(), zbReceiptEntity.getDepartCode());

20
blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java

@ -498,7 +498,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
String takeCompany= "";
if(ObjectUtil.isNotEmpty(supplyData)){
destinationWarehouse = supplyData.get("destinationWarehouse");//目的仓名称
takeCompany = supplyData.get("takeCompany");
takeCompany = supplyData.get("takeCompany");
}
// OrderDetailEntity orderDetailEntity = orderDetailClient.findByUnitNo(unitNo);
@ -526,7 +526,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
if (Objects.isNull(distributionStockArticleEntity)) {
Date date = new Date();
if(StringUtil.isNoneBlank(operationTime)){
date = CommonUtil.StringToDate(operationTime);
date = CommonUtil.StringToDate(operationTime);
}
log.info("#################handleDataToPlatform.waybillNoNum: {}", waybillNoNum);
@ -558,9 +558,9 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
distributionStockArticleEntity.setCompleteSet(0);
}
log.info("############basicdataWarehouseEntity {}", basicdataWarehouseEntity);
distributionStockArticleEntity.setCreateDept(basicdataWarehouseEntity.getDepartment());
distributionStockArticleEntity.setCreateDept(basicdataWarehouseEntity.getDepartment());
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNoNum);
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNoNum);
if(Objects.isNull(wayBillEntity)){
@ -920,13 +920,15 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
log.info("##############我的flag状态 ================================{}",flag);
if(flag){
log.info("##############我走的新增运单 ================================1");
//通过运单号先去查询新系统是否存在这个运单号
WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo);
log.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill);
if (Objects.isNull(warehouseWaybill)) {
redis.setEx("dealwithWaybillNo:" + waybillNo, waybillNo, 30L);
// redis.setEx("dealwithWaybillNo:" + waybillNo, waybillNo, 30L);
//如果新系统中不存在这个运单,那么就去查询老系统的运单数据
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo);
log.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity);
@ -1079,16 +1081,18 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
}
warehouseWaybillDetailClient.addList(warehouseWayBillDetails);
}
//暂存单与运单的关联
saveAdvanceData(warehouseWaybill);
} else {
log.info("##############我走的新增运单 ================================2");
warehouseWaybill.setStockCount(warehouseWaybill.getStockCount() + 1);
warehouseWaybill.setUpdateTime(new Date());
warehouseWaybillClient.updateEntity(warehouseWaybill);
aLong = warehouseWaybill.getId();
}
//暂存单与运单的关联
saveAdvanceData(warehouseWaybill);
log.info("##############我走的准备解锁 ================================3");
redisLockClient.unLock(lockKey, LockType.FAIR);
log.info("##############我走的解锁 ================================4 {}",aLong);
}
return aLong;
}

8
blade-service/logpm-factory/src/main/resources/application-dev.yml

@ -60,14 +60,14 @@ spring:
url: ${blade.datasource.factory.master.url}
username: ${blade.datasource.factory.master.username}
password: ${blade.datasource.factory.master.password}
slave:
627683:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.factory.slave.url}
username: ${blade.datasource.factory.slave.username}
password: ${blade.datasource.factory.slave.password}
url: ${blade.datasource.factory.627683.url}
username: ${blade.datasource.factory.627683.username}
password: ${blade.datasource.factory.627683.password}

22
blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java

@ -408,7 +408,7 @@ public class SyncOrderInfoToPlatform {
}
@XxlJob("clearOrderPackageStatusStock")
@XxlJob("clearOrderPackageDownAndDelTray")
public ReturnT<String> clearOrderPackageDownAndDelTray(String param) {
log.info("############clearOrderPackageDownAndDelTray: 清理包件数据下架解托 开始");
@ -856,5 +856,25 @@ public class SyncOrderInfoToPlatform {
}
@XxlJob("syncWaybillInfo")
public ReturnT<String> syncWaybillInfo(String param) {
log.info("############syncWaybillInfo: 同步运单信息 开始");
List<JSONObject> waybillJSONs = warehouseMappingDataService.findAllWaybillNo();
waybillJSONs.forEach(waybillJSON -> {
Long id = waybillJSON.getLong("id");
String waybillNo = waybillJSON.getStr("waybillNo");
syncOrderInfoService.syncWaybillInfo(waybillNo);
warehouseMappingDataService.updateStatusById(id,1);
});
log.info("############syncWaybillInfo: 同步运单信息 完成");
return ReturnT.SUCCESS;
}
}

4
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java

@ -130,5 +130,9 @@ public interface WarehouseMappingDataMapper {
* @param remarks
*/
void updateClearSignforRemarks(@Param("singnforId")Long id,@Param("remarks") String remarks);
List<JSONObject> findAllWaybillNo();
void updateStatusById(@Param("id") Long id, @Param("status") int status);
}

14
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml

@ -424,4 +424,18 @@
and ldsl.id is not null
</select>
<select id="findAllWaybillNo" resultType="cn.hutool.json.JSONObject">
select id id,
waybill_no waybillNo
from sync_old_waybill_info
where status = 0
</select>
<update id="updateStatusById" >
update sync_old_waybill_info
set status = #{status}
where id = #{id}
</update>
</mapper>

2
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java

@ -30,4 +30,6 @@ public interface ISyncOrderInfoService {
void dealWithPackageUpdown(String orderPackageCode, Long allocationId,Long warehouseId);
void clearOrderPackageDownAndDelTray(String orderPackageCode, Long warehouseId);
void syncWaybillInfo(String waybillNo);
}

3
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java

@ -112,4 +112,7 @@ public interface IWarehouseMappingDataService {
List<StockAllocationInfoVO> findStockAllocationInfo();
List<JSONObject> findAllWaybillNo();
void updateStatusById(Long id, int status);
}

17
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java

@ -370,6 +370,23 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
warehouseUpdownTypeClient.downPackageOrDelTray(orderPackageCode,warehouseId,"系统下架解托");
}
@Override
public void syncWaybillInfo(String waybillNo) {
saveWaybillEntity(waybillNo);
WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo);
if(!Objects.isNull(warehouseWaybillEntity)){
Long waybillId = warehouseWaybillEntity.getId();
//把包件上是这个运单号的没有运单id的加上
distributionParcelListClient.updateWaybillIdByWaybillNo(waybillId,waybillNo);
}
}
@Transactional(rollbackFor = Exception.class)
@Override

10
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java

@ -265,4 +265,14 @@ public class WarehouseMappingDataServiceImpl implements IWarehouseMappingDataSer
public List<StockAllocationInfoVO> findStockAllocationInfo() {
return warehouseMappingDataMapper.findStockAllocationInfo();
}
@Override
public List<JSONObject> findAllWaybillNo() {
return warehouseMappingDataMapper.findAllWaybillNo();
}
@Override
public void updateStatusById(Long id, int status) {
warehouseMappingDataMapper.updateStatusById(id,status);
}
}

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

@ -416,11 +416,11 @@
ldl.signing_time sjsigning_time,
ldl.signing_user lds_signee_name,
case when ldl.signfor_type = 1 THEN
'扫描签收'
'司机扫描签收'
when ldl.signfor_type = 2 then
'文员签收'
'司机批量签收'
when ldl.signfor_type = 3 then
'一键签收'
'文员批量签收'
else
''
end sign_type,

17
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java

@ -1,5 +1,6 @@
package com.logpm.trunkline.api;
import cn.hutool.core.collection.CollUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
@ -585,6 +586,7 @@ public class CarsLoadApiController {
String trayCode = loadCarsDTO.getTrayCode();
String orderCode = loadCarsDTO.getOrderCode();
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
List<ZeroPackageDTO> zeroPackageList = loadCarsDTO.getZeroPackageList();
try{
@ -607,8 +609,12 @@ public class CarsLoadApiController {
log.warn(method+"订单号为空 orderCode={}",orderCode);
return R.fail(405,"订单号为空");
}
if(CollUtil.isEmpty(zeroPackageList)){
log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList);
return R.fail(405,"品类信息为空");
}
return carsLoadService.unloadZero(carsLoadScanId,loadId,waybillNo,enterNum,myCurrentWarehouse.getId(),1,trayCode,orderCode,"零担正常卸车",null,null);
return carsLoadService.unloadZero(carsLoadScanId,loadId,waybillNo,enterNum,myCurrentWarehouse.getId(),1,trayCode,orderCode,"零担正常卸车",null,null,zeroPackageList);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
@ -925,6 +931,8 @@ public class CarsLoadApiController {
Long signOrderId = loadCarsDTO.getSignOrderId();
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
Integer enterNum = loadCarsDTO.getEnterNum();
List<ZeroPackageDTO> zeroPackageList = loadCarsDTO.getZeroPackageList();
try{
@ -945,7 +953,12 @@ public class CarsLoadApiController {
return R.fail(405,"签收零担id为空");
}
return carsLoadService.signZeroOrder(signOrderId,carsLoadScanId,enterNum,"PDA录入签收");
if(CollUtil.isEmpty(zeroPackageList)){
log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList);
return R.fail(405,"品类信息为空");
}
return carsLoadService.signZeroOrder(signOrderId,carsLoadScanId,enterNum,"PDA录入签收",zeroPackageList);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);

10
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/TripartiteTransferApiController.java

@ -1,11 +1,13 @@
package com.logpm.trunkline.api;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.trunkline.dto.BatchUnloadDTO;
import com.logpm.trunkline.dto.LoadCarsDTO;
import com.logpm.trunkline.dto.ZeroPackageDTO;
import com.logpm.trunkline.service.ITrunklineCarsLoadService;
import com.logpm.trunkline.vo.TripartiteTransferVO;
import io.swagger.annotations.Api;
@ -17,6 +19,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
@Slf4j
@ -135,6 +138,7 @@ public class TripartiteTransferApiController {
String trayCode = loadCarsDTO.getTrayCode();
String orderCode = loadCarsDTO.getOrderCode();
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
List<ZeroPackageDTO> zeroPackageList = loadCarsDTO.getZeroPackageList();
try{
@ -157,8 +161,12 @@ public class TripartiteTransferApiController {
log.warn(method+"订单号为空 orderCode={}",orderCode);
return R.fail(405,"订单号为空");
}
if(CollUtil.isEmpty(zeroPackageList)){
log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList);
return R.fail(405,"品类信息为空");
}
return carsLoadService.transferUnloadZero(carsLoadScanId,loadId,waybillNo,enterNum,myCurrentWarehouse.getId(),1,trayCode,orderCode,"零担正常卸车");
return carsLoadService.transferUnloadZero(carsLoadScanId,loadId,waybillNo,enterNum,myCurrentWarehouse.getId(),1,trayCode,orderCode,"零担正常卸车",zeroPackageList);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);

16
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java

@ -1,5 +1,6 @@
package com.logpm.trunkline.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@ -1407,6 +1408,7 @@ public class CarsLoadController {
String orderCode = zeroSuppleVO.getOrderCode();
Integer enterNum = zeroSuppleVO.getEnterNum();
Long finalNodeId = zeroSuppleVO.getFinalNodeId();
List<ZeroPackageDTO> zeroPackageList = zeroSuppleVO.getZeroPackageList();
if(StringUtil.isBlank(waybillNo)){
log.warn(method+"运单号为空 waybillNo={}",waybillNo);
@ -1427,6 +1429,12 @@ public class CarsLoadController {
log.warn(method+"目的仓id为空 finalNodeId={}",finalNodeId);
return R.fail(405,"目的仓id为空");
}
if(CollUtil.isNotEmpty(zeroPackageList)){
log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList);
return R.fail(405,"品类信息为空");
}
}
return carsLoadService.addZeroSupple(loadCarsDTO);
@ -1976,6 +1984,7 @@ public class CarsLoadController {
Long signOrderId = loadCarsDTO.getSignOrderId();
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
Integer enterNum = loadCarsDTO.getEnterNum();
List<ZeroPackageDTO> zeroPackageList = loadCarsDTO.getZeroPackageList();
try{
@ -1996,7 +2005,12 @@ public class CarsLoadController {
return R.fail(405,"签收零担id为空");
}
return carsLoadService.signZeroOrder(signOrderId,carsLoadScanId,enterNum,"PC录入签收");
if(CollUtil.isEmpty(zeroPackageList)){
log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList);
return R.fail(405,"品类信息为空");
}
return carsLoadService.signZeroOrder(signOrderId,carsLoadScanId,enterNum,"PC录入签收",zeroPackageList);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);

32
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineScanZeroDetailClient.java

@ -0,0 +1,32 @@
package com.logpm.trunkline.feign;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.service.ITrunklineScanZeroDetailService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@Slf4j
@ApiIgnore()
@RestController
@AllArgsConstructor
public class TrunklineScanZeroDetailClient implements ITrunklineScanZeroDetailClient{
private final ITrunklineScanZeroDetailService trunklineScanZeroDetailService;
@Override
public List<TrunklineScanZeroDetailEntity> findListByCarsLoadScanId(Long carsLoadScanId) {
QueryWrapper<TrunklineScanZeroDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("scan_id",carsLoadScanId);
return trunklineScanZeroDetailService.list(queryWrapper);
}
@Override
public void updateBetch(List<TrunklineScanZeroDetailEntity> updateScanZeroDetailEntityList) {
trunklineScanZeroDetailService.updateBatchById(updateScanZeroDetailEntityList);
}
}

2
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java

@ -77,4 +77,6 @@ public interface TrunklineAdvanceDetailMapper extends BaseMapper<TrunklineAdvanc
List<AdvanceDetailVO> findAdvanceDetailListByAdvanceIds(@Param("param") AdvanceDTO advanceDTO);
List<AdvanceDetailVO> findAdvanceDetailListByWaybillId(@Param("param") AdvanceDTO advanceDTO);
List<OrderCodeNumVO> findTotalNumByOrderCodes(@Param("orderCodeSet") Set<String> orderCodeSet);
}

13
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml

@ -480,4 +480,17 @@
</if>
</select>
<select id="findTotalNumByOrderCodes" resultType="com.logpm.trunkline.vo.OrderCodeNumVO">
select order_code orderCode,
IFNULL(count(*),0) totalNum
from logpm_trunkline_advance_detail
where order_code in
<foreach collection="orderCodeSet" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and is_deleted = 0
group by order_code
</select>
</mapper>

5
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.java

@ -9,6 +9,7 @@ import com.logpm.trunkline.entity.TrunklineCarsLoadEntity;
import com.logpm.trunkline.vo.CarsLoadAllOrderVO;
import com.logpm.trunkline.vo.TripartiteTransferVO;
import com.logpm.trunkline.vo.TrunklineCarsLoadVO;
import com.logpm.trunkline.vo.ZeroSuppleListVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -38,8 +39,8 @@ public interface TrunklineCarsLoadMapper extends BaseMapper<TrunklineCarsLoadEnt
List<CarsLoadAllOrderVO> findUseOrderListNoPage(@Param("param") LoadCarsDTO loadCarsDTO);
IPage<JSONObject> findZeroListByWarehouseId(IPage<Object> page, @Param("param") LoadCarsDTO loadCarsDTO);
IPage<JSONObject> findSignOrderZeroListByWarehouseId(IPage<Object> page, @Param("param") LoadCarsDTO loadCarsDTO);
IPage<ZeroSuppleListVO> findZeroListByWarehouseId(IPage<Object> page, @Param("param") LoadCarsDTO loadCarsDTO);
IPage<ZeroSuppleListVO> findSignOrderZeroListByWarehouseId(IPage<Object> page, @Param("param") LoadCarsDTO loadCarsDTO);
IPage<JSONObject> useZeroList(IPage<Object> page, @Param("param") LoadCarsDTO loadCarsDTO);

14
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml

@ -552,10 +552,10 @@
</if>
</select>
<select id="findZeroListByWarehouseId" resultType="com.alibaba.fastjson.JSONObject">
select ldsa.waybill_number waybillNo,
<select id="findZeroListByWarehouseId" resultType="com.logpm.trunkline.vo.ZeroSuppleListVO">
select ldsa.id orderId,
ldsa.waybill_number waybillNo,
ldsa.order_code orderCode,
ldsa.hand_quantity handQuantity,
lww.create_time createTime,
lww.destination destination,
lww.destination_warehouse_name destinationWarehouseName,
@ -570,7 +570,6 @@
ldsa.hand_quantity stockNum,
lww.customer_train customerTrain,
IFNULL(lww.total_freight,0) totalFreight,
lww.total_count,
lww.remark remark,
ROUND(lww.total_freight/lww.total_count,2) price,
ltlso.load_sign_code loadSignCode,
@ -694,10 +693,10 @@
</update>
<select id="findSignOrderZeroListByWarehouseId" resultType="com.alibaba.fastjson.JSONObject">
select ldsa.waybill_number waybillNo,
<select id="findSignOrderZeroListByWarehouseId" resultType="com.logpm.trunkline.vo.ZeroSuppleListVO">
select ldsa.id orderId,
ldsa.waybill_number waybillNo,
ldsa.order_code orderCode,
ldsa.hand_quantity handQuantity,
lww.create_time createTime,
lww.destination destination,
lww.destination_warehouse_name destinationWarehouseName,
@ -712,7 +711,6 @@
ldsa.hand_quantity stockNum,
lww.customer_train customerTrain,
IFNULL(lww.total_freight,0) totalFreight,
lww.total_count,
lww.remark remark,
ROUND(lww.total_freight/lww.total_count,2) price,
ltlso.load_sign_code loadSignCode,

6
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java

@ -175,4 +175,10 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper<TrunklineCarsLoa
List<Long> findAllIdListByLoadIdAndNoScanStatus(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus);
List<LoadScanWaybillVO> findTransferLoadScanWaybillList(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId);
List<UnloadPackageVO> findUnloadPackageListByLoadIdAndFinalNodeId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
List<UnloadPackageVO> findUnloadZeroListByLoadIdAndFinalNodeId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
List<SignPackageVO> findSignPackageListBySignOrderId(@Param("signOrderId") Long signOrderId);
}

44
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml

@ -932,4 +932,48 @@
and scan_status != #{scanStatus}
</select>
<select id="findUnloadPackageListByLoadIdAndFinalNodeId" resultType="com.logpm.trunkline.vo.UnloadPackageVO">
select id carsLoadScanId,
scan_code orderPackageCode,
num num,
unload_num unloadNum,
tray_code trayCode,
tray_name trayName,
scan_status scanStatus,
unload_node_name unloadNodeName,
order_code orderCode,
waybill_no waybillNo
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and final_node_id = #{warehouseId}
</select>
<select id="findUnloadZeroListByLoadIdAndFinalNodeId" resultType="com.logpm.trunkline.vo.UnloadPackageVO">
select id carsLoadScanId,
scan_code orderPackageCode,
num num,
unload_num unloadNum,
tray_code trayCode,
tray_name trayName,
scan_status scanStatus,
unload_node_name unloadNodeName,
order_code orderCode,
waybill_no waybillNo
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and final_node_id = #{warehouseId}
</select>
<select id="findSignPackageListBySignOrderId" resultType="com.logpm.trunkline.vo.SignPackageVO">
select id carsLoadScanId,
scan_code orderPackageCode,
num num,
unload_num unloadNum,
scan_status scanStatus,
order_code orderCode,
waybill_no waybillNo
from logpm_trunkline_cars_load_scan
where sign_order_id = #{signOrderId}
</select>
</mapper>

4
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java

@ -66,4 +66,8 @@ public interface TrunklineCarsOrderMapper extends BaseMapper<TrunklineCarsOrderE
List<TrunklineCarsOrderVO> findMallOrderList(@Param("carsOrderIdList") List<Long> carsOrderIdList);
void deleteNoRealNumByLoadIdAndWarehouseId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
List<SignScanOrderVO> findSignOrderListBySignOrderId(@Param("signOrderId") Long signOrderId);
List<SignScanOrderVO> findSignZeroOrderListBySignOrderId(@Param("signOrderId") Long signOrderId);
}

36
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml

@ -109,7 +109,7 @@
wb.create_time createTime,
wb.destination destination,
wb.destination_warehouse_name destinationWarehouseName,
IF(wb.check_user_id = NULL , 0,1) checkStatus,
IF(wb.check_user_id is null , 0,1) checkStatus,
wb.shipper shipper,
wb.shipper_name shipperName,
wb.consignee consignee,
@ -178,11 +178,15 @@
IFNULL(lww.total_freight/lww.total_count*ltco.unload_num,0) unloadIncome,
IFNULL(lww.total_freight/lww.total_count*ltco.plan_num,0) orderLineCost,
ltwo.total_number orderNum,
sum(IF(ltcls.scan_status = '3',ltcls.num,0)) signNum
sum(IF(ltcls.scan_status = '3',ltcls.num,0)) signNum,
sum(ltcsr.cost_piece) costPiece,
sum(ltcsr.cost_zhang) costZhang,
sum(ltcsr.income) income
from logpm_trunkline_cars_order ltco
left join logpm_trunkline_cars_load_scan ltcls on ltcls.waybill_no = ltco.waybill_no and ltcls.order_code = ltco.order_code
left join logpm_trunkline_waybill_order ltwo on ltwo.order_code = ltco.order_code and ltwo.waybill_no = ltco.waybill_no and ltwo.is_deleted = 0
left join logpm_warehouse_waybill lww on lww.waybill_no = ltwo.waybill_no
left join logpm_trunkline_cars_load_scan ltcls on ltcls.waybill_no = ltco.waybill_no and ltcls.order_code = ltco.order_code
left join logpm_trunkline_waybill_order ltwo on ltwo.order_code = ltco.order_code and ltwo.waybill_no = ltco.waybill_no and ltwo.is_deleted = 0
left join logpm_warehouse_waybill lww on lww.waybill_no = ltwo.waybill_no
left join logpm_trunkline_cost_share_record ltcsr on ltco.load_id = ltcsr.load_id and ltco.waybill_no = ltcsr.waybill_no and ltco.order_code = ltcsr.order_code and ltcls.scan_code = ltcsr.product_code
where ltco.load_id = #{loadId}
and ltco.waybill_no = #{waybillNo}
group by ltco.order_code
@ -356,4 +360,26 @@
and real_num = 0
</delete>
<select id="findSignOrderListBySignOrderId" resultType="com.logpm.trunkline.vo.SignScanOrderVO">
select ltco.waybill_no waybillNo,
ltco.order_code orderCode,
ltco.real_num loadingNum,
ltco.sign_num signNum
from logpm_trunkline_cars_order ltco
where ltco.sign_order_id = #{signOrderId}
and ltco.type = 1
and ltco.is_customer = '1'
</select>
<select id="findSignZeroOrderListBySignOrderId" resultType="com.logpm.trunkline.vo.SignScanOrderVO">
select ltco.waybill_no waybillNo,
ltco.order_code orderCode,
ltco.real_num loadingNum,
ltco.sign_num signNum
from logpm_trunkline_cars_order ltco
where ltco.sign_order_id = #{signOrderId}
and ltco.type = 2
and ltco.is_customer = '1'
</select>
</mapper>

2
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCostShareRecordMapper.xml

@ -12,7 +12,7 @@
</select>
<select id="findTotalUnloadNumByLoad" resultType="int">
select sum(num)
select IFNULL(sum(num),0)
from logpm_trunkline_cost_share_record
where load_id = #{loadId}
</select>

7
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java

@ -2,11 +2,16 @@ package com.logpm.trunkline.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper
public interface TrunklineScanZeroDetailMapper extends BaseMapper<TrunklineScanZeroDetailEntity> {
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanId(@Param("carsLoadScanId") Long carsLoadScanId);
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(@Param("carsLoadScanIds") List<Long> carsLoadScanIds);
}

21
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.trunkline.mapper.TrunklineScanZeroDetailMapper">
<select id="findListByCarsLoadScanId" resultType="com.logpm.trunkline.vo.TrunklineScanZeroDetailVO">
select *
from logpm_trunkline_scan_zero_detail
where scan_id = #{carsLoadScanId}
</select>
<select id="findListByCarsLoadScanIds" resultType="com.logpm.trunkline.vo.TrunklineScanZeroDetailVO">
select *
from logpm_trunkline_scan_zero_detail
where scan_id in
<foreach collection="carsLoadScanIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper>

3
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java

@ -87,4 +87,7 @@ public interface ITrunklineAdvanceDetailService extends BaseService<TrunklineAdv
List<AdvanceDetailVO> findAdvanceDetailListByAdvanceIds(AdvanceDTO advanceDTO);
List<AdvanceDetailVO> findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO);
List<OrderCodeNumVO> findTotalNumByOrderCodes(Set<String> orderCodeSet);
}

7
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java

@ -46,6 +46,7 @@ public interface ITrunklineCarsLoadScanService extends BaseService<TrunklineCars
List<UnloadScanOrderVO> findPackageWithOrderList(Long loadId, Long warehouseId);
List<UnloadPackageVO> findUnloadPackageList(Long loadId, Long warehouseId, String waybillNo, String orderCode);
List<UnloadPackageVO> findUnloadZeroList(Long loadId, Long warehouseId, String waybillNo, String orderCode);
Integer findUnloadNumByLoadId(Long loadId);
@ -170,4 +171,10 @@ public interface ITrunklineCarsLoadScanService extends BaseService<TrunklineCars
List<Long> findAllIdListByLoadIdAndNoScanStatus(Long loadId, String scanStatus);
List<LoadScanWaybillVO> findTransferLoadScanWaybillList(Long loadId, Long nodeId);
List<UnloadPackageVO> findUnloadPackageListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId);
List<UnloadPackageVO> findUnloadZeroListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId);
List<SignPackageVO> findSignPackageListBySignOrderId(Long signOrderId);
}

6
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java

@ -95,7 +95,7 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R unloadPackage(Long loadId, String orderPackageCode, Long warehouseId,Integer unbindTray,String remark,Integer incomingType,String unloadTrayName,String unloadTrayCode);
R unloadZero(Long carsLoadScanId,Long loadId, String waybillNo,Integer enterNum, Long warehouseId,Integer unbindTray,String trayCode,String orderCode,String remark,String unloadTrayName,String unloadTrayCode);
R unloadZero(Long carsLoadScanId,Long loadId, String waybillNo,Integer enterNum, Long warehouseId,Integer unbindTray,String trayCode,String orderCode,String remark,String unloadTrayName,String unloadTrayCode,List<ZeroPackageDTO> zeroPackageList);
R findLoadScanWaybillDetailList(Long loadId, String orderCode, Long warehouseId);
@ -139,7 +139,7 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R transferUnloadPackage(Long loadId, String orderPackageCode, Long warehouseId, Integer unbindTray, String remark);
R transferUnloadZero(Long carsLoadScanId,Long loadId, String waybillNo, Integer enterNum, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark);
R transferUnloadZero(Long carsLoadScanId,Long loadId, String waybillNo, Integer enterNum, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark,List<ZeroPackageDTO> zeroPackageList);
R transferUnloadTray(Long loadId, String trayCode, Long warehouseId);
@ -159,7 +159,7 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R signScanPackageCode(Long signOrderId,String orderPackageCode,String remark,Long warehouseId);
R signZeroOrder(Long signOrderId,Long carsLoadScanId,Integer enterNum, String remark);
R signZeroOrder(Long signOrderId,Long carsLoadScanId,Integer enterNum, String remark,List<ZeroPackageDTO> zeroPackageList);
R findSignOrderList(LoadCarsDTO loadCarsDTO);

3
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsOrderService.java

@ -64,4 +64,7 @@ public interface ITrunklineCarsOrderService extends BaseService<TrunklineCarsOrd
void deleteNoRealNumByLoadIdAndWarehouseId(Long loadId, Long warehouseId);
List<SignScanOrderVO> findSignOrderListBySignOrderId(Long signOrderId);
List<SignScanOrderVO> findSignZeroOrderListBySignOrderId(Long signOrderId);
}

6
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java

@ -1,7 +1,13 @@
package com.logpm.trunkline.service;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
public interface ITrunklineScanZeroDetailService extends BaseService<TrunklineScanZeroDetailEntity> {
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanId(Long carsLoadScanId);
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(List<Long> carsLoadScanIds);
}

59
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java

@ -4,14 +4,18 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.json.JSONUtil;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity;
import com.logpm.aftersales.feign.IAftersalesAbnormalRecordClient;
import com.logpm.aftersales.feign.IAftersalesAbnormalRecordZeroDetailClient;
import com.logpm.aftersales.feign.IAftersalesWorkOrderClient;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.trunkline.entity.*;
import com.logpm.trunkline.service.*;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import com.logpm.trunkline.vo.UnloadReportVO;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
@ -23,6 +27,7 @@ import org.springblade.common.constant.TenantNum;
import org.springblade.common.constant.carsload.CarsLoadLogTypeConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.utils.CommonUtil;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.system.cache.DictBizCache;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@ -33,6 +38,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -61,6 +67,14 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
private ITrunklineCarsUnloadLogService trunklineCarsUnloadLogService;
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private IDistributionParcelListClient distributionParcelListClient;
@Autowired
private ITrunklineScanZeroDetailService trunklineScanZeroDetailService;
@Autowired
private IOpenOrderAsyncService openOrderAsyncService;
@Autowired
private IAftersalesAbnormalRecordZeroDetailClient abnormalRecordZeroDetailClient;
@LogpmAsync("asyncExecutor")
@Override
@ -271,6 +285,11 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
BigDecimal countTransportCost = carsLoadEntity.getCountTransportCost();
Integer totalUnloadNum = trunklineCostShareRecordService.findTotalUnloadNumByLoad(loadId);
if(totalUnloadNum.equals(0)){
log.warn("###############costShareZhang: 分摊件数为0");
throw new CustomerException(405,"分摊件数为0");
}
//计算单件成本
BigDecimal costPiece = countTransportCost.divide(new BigDecimal(totalUnloadNum),2, RoundingMode.HALF_UP);
@ -521,6 +540,9 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
Integer num = carsLoadScanEntity.getNum();
String scanStatus = carsLoadScanEntity.getScanStatus();
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo);
Long waybillId = warehouseWaybill.getId();
List<TrunklineScanZeroDetailVO> zeroDetailVOList = trunklineScanZeroDetailService.findListByCarsLoadScanId(scanId);
//卸车数量异常
AftersalesAbnormalRecordEntity abnormalRecordEntity = new AftersalesAbnormalRecordEntity();
@ -547,7 +569,15 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
if(!Objects.isNull(stockArticleEntity)){
distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(),num-unloadNum);
zeroDetailVOList.forEach(zeroDetailVO -> {
Long packageId = zeroDetailVO.getPackageId();
Integer loadingNum = zeroDetailVO.getLoadingNum();
Integer unloadNum1 = zeroDetailVO.getUnloadNum();
distributionParcelListClient.addZeroQuantity(packageId,loadingNum-unloadNum1);
});
}
String content = warehouseName+"干线未签收卸车回库,总数/卸车数:"+num+"/"+num+",卸车时间"+ CommonUtil.dateToStringGeneral(new Date());;
openOrderAsyncService.saveLog(waybillId,waybillNo,"80","零担未签收回库",content,AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName);
}
abnormalRecordEntity.setSendOrderStatus(0);
abnormalRecordEntity.setUpTime(new Date());
@ -558,7 +588,34 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
addList.add(abnormalRecordEntity);
});
}
abnormalRecordClient.addAbnormalRecordList(addList);
List<AftersalesAbnormalRecordEntity> aftersalesAbnormalRecordEntities = abnormalRecordClient.addAbnormalRecordListReturnList(addList);
//把aftersalesAbnormalRecordEntities只保留isZero等于1的数据
List<AftersalesAbnormalRecordEntity> abnormalRecordEntities1 = aftersalesAbnormalRecordEntities.stream().filter(abnormalRecordEntity -> abnormalRecordEntity.getIsZero() == 1).collect(Collectors.toList());
//把abnormalRecordEntities1中所有元素associationId放入一个集合
List<Long> associationIdList = abnormalRecordEntities1.stream().map(AftersalesAbnormalRecordEntity::getAssociationId).collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> scanZeroDetailVOList = trunklineScanZeroDetailService.findListByCarsLoadScanIds(associationIdList);
//把scanZeroDetailVOList所有元素通过scanId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> scanZeroDetailVOMap = scanZeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
List<AftersalesAbnormalRecordZeroDetailEntity> abnormalRecordZeroDetailEntityList = new ArrayList<>();
abnormalRecordEntities1.forEach(abnormalRecordEntity -> {
Long associationId = abnormalRecordEntity.getAssociationId();
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailVOMap.get(associationId);
Long abnormalRecordId = abnormalRecordEntity.getId();
zeroDetailVOList.forEach(zeroDetailVO -> {
AftersalesAbnormalRecordZeroDetailEntity abnormalRecordZeroDetailEntity = new AftersalesAbnormalRecordZeroDetailEntity();
abnormalRecordZeroDetailEntity.setAbnormalRecordId(abnormalRecordId);
abnormalRecordZeroDetailEntity.setPackageId(zeroDetailVO.getPackageId());
abnormalRecordZeroDetailEntity.setGoodsId(zeroDetailVO.getGoodsId());
abnormalRecordZeroDetailEntity.setGoodsName(zeroDetailVO.getGoodsName());
abnormalRecordZeroDetailEntity.setAbnormalNum(zeroDetailVO.getLoadingNum()-zeroDetailVO.getUnloadNum());
abnormalRecordZeroDetailEntity.setReturnNum(0);
abnormalRecordZeroDetailEntity.setIncomingNum(0);
abnormalRecordZeroDetailEntityList.add(abnormalRecordZeroDetailEntity);
});
});
if(CollUtil.isNotEmpty(abnormalRecordZeroDetailEntityList)){
abnormalRecordZeroDetailClient.addAbnormalRecordZeroDetail(abnormalRecordZeroDetailEntityList);
}
}
@LogpmAsync("asyncExecutor")

1
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java

@ -4626,7 +4626,6 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
distributionStockArticleEntity.setIncomingNum(warehouseWaybill.getStockCount());
//零担订单默认齐套
distributionStockArticleEntity.setCompleteSet(2);
distributionStockArticleEntity.setBrand(warehouseWaybill.getBrand());
distributionStockArticleEntity.setResource("零担");

5
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java

@ -357,4 +357,9 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
public List<AdvanceDetailVO> findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO) {
return baseMapper.findAdvanceDetailListByWaybillId(advanceDTO);
}
@Override
public List<OrderCodeNumVO> findTotalNumByOrderCodes(Set<String> orderCodeSet) {
return baseMapper.findTotalNumByOrderCodes(orderCodeSet);
}
}

42
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java

@ -9,6 +9,7 @@ import com.logpm.trunkline.dto.ProductInfoDTO;
import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity;
import com.logpm.trunkline.mapper.TrunklineCarsLoadScanMapper;
import com.logpm.trunkline.service.ITrunklineCarsLoadScanService;
import com.logpm.trunkline.service.ITrunklineScanZeroDetailService;
import com.logpm.trunkline.vo.*;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import lombok.AllArgsConstructor;
@ -16,16 +17,19 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@Service
@AllArgsConstructor
public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineCarsLoadScanMapper, TrunklineCarsLoadScanEntity> implements ITrunklineCarsLoadScanService {
private final ITrunklineScanZeroDetailService scanZeroDetailService;
@Override
public Integer findNumByLoadId(Long loadId) {
return baseMapper.findNumByLoadId(loadId);
@ -101,6 +105,27 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineC
return baseMapper.findUnloadPackageList(loadId,warehouseId,waybillNo,orderCode);
}
@Override
public List<UnloadPackageVO> findUnloadZeroList(Long loadId, Long warehouseId, String waybillNo, String orderCode) {
List<UnloadPackageVO> unloadPackageList = baseMapper.findUnloadPackageList(loadId, warehouseId, waybillNo, orderCode);
//把unloadPackageList中所有元素的carsLoadScanId放入一个集合
// 创建一个包含所有carsLoadScanId的新列表
List<Long> carsLoadScanIds = unloadPackageList.stream()
.map(UnloadPackageVO::getCarsLoadScanId)
.collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> scanZeroDetailList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds);
//把scanZeroDetailList中所有元素通过id进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> scanZeroDetailMap = scanZeroDetailList.stream()
.collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
unloadPackageList.forEach(unloadPackageVO -> {
Long carsLoadScanId = unloadPackageVO.getCarsLoadScanId();
List<TrunklineScanZeroDetailVO> list = scanZeroDetailMap.get(carsLoadScanId);
unloadPackageVO.setScanZeroDetailList(list);
});
return unloadPackageList;
}
@Override
public Integer findUnloadNumByLoadId(Long loadId) {
return baseMapper.findUnloadNumByLoadId(loadId);
@ -414,4 +439,19 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineC
return baseMapper.findTransferLoadScanWaybillList(loadId,nodeId);
}
@Override
public List<UnloadPackageVO> findUnloadPackageListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId) {
return baseMapper.findUnloadPackageListByLoadIdAndFinalNodeId(loadId,warehouseId);
}
@Override
public List<UnloadPackageVO> findUnloadZeroListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId) {
return baseMapper.findUnloadZeroListByLoadIdAndFinalNodeId(loadId,warehouseId);
}
@Override
public List<SignPackageVO> findSignPackageListBySignOrderId(Long signOrderId) {
return baseMapper.findSignPackageListBySignOrderId(signOrderId);
}
}

677
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

@ -28,6 +28,8 @@ import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionParcelNumberClient;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.ZeroPackageSupplyVO;
import com.logpm.factorydata.enums.BrandEnums;
import com.logpm.factorydata.feign.IFactoryDataClient;
import com.logpm.factorydata.util.FactoryDataMessageSender;
@ -1200,162 +1202,153 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//把orderCodeList通过fromWarehouseId进行分组
Map<Long, List<TrunklineCarsLoadScanEntity>> fromWarehouseIdmap = orderCodeList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getFromWarehouseId));
fromWarehouseIdmap.keySet().forEach(fromWarehouseId -> {
TrunklineCarsOrderEntity trunklineCarsOrderEntity = trunklineCarsOrderService.findEntityByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId, fromWarehouseId, orderCode, orderCode);
if(!Objects.isNull(trunklineCarsOrderEntity)){
Integer realNum = trunklineCarsOrderEntity.getRealNum();
List<TrunklineCarsLoadScanEntity> fromWarehouseIdList = fromWarehouseIdmap.get(fromWarehouseId);
//把fromWarehouseIdList中所有元素的unloadNum累加
int unloadNum = fromWarehouseIdList.stream().mapToInt(TrunklineCarsLoadScanEntity::getUnloadNum).sum();
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
if(!Objects.isNull(stockArticleEntity)){
Integer handQuantity = stockArticleEntity.getHandQuantity();
if(unloadNum > realNum){
//卸车数大于实际装车数
throw new CustomerException(405,"零担订单"+orderCode+"卸车件数已大于实际装车件数,请去调整补录");
}else {
// if(unloadNum < realNum){
// distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(),realNum-unloadNum);
// }
DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId);
if (Objects.isNull(newStockArticleEntity)) {
newStockArticleEntity = new DistributionStockArticleEntity();
BeanUtil.copy(stockArticleEntity, newStockArticleEntity);
newStockArticleEntity.setId(null);
List<TrunklineCarsLoadScanEntity> fromWarehouseIdList = fromWarehouseIdmap.get(fromWarehouseId);
int realNum = fromWarehouseIdList.stream().mapToInt(TrunklineCarsLoadScanEntity::getNum).sum();
//把fromWarehouseIdList中所有元素的unloadNum累加
int unloadNum = fromWarehouseIdList.stream().mapToInt(TrunklineCarsLoadScanEntity::getUnloadNum).sum();
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
if(!Objects.isNull(stockArticleEntity)){
if(unloadNum > realNum){
//卸车数大于实际装车数
throw new CustomerException(405,"零担订单"+orderCode+"卸车件数已大于实际装车件数,请去调整补录");
}else {
//把fromWarehouseIdList中所有元素的id放入一个集合
List<Long> carsLoadScanIds = fromWarehouseIdList.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds);
//把zeroDetailVOList所有元素通过goodsName进行分组
Map<String, List<TrunklineScanZeroDetailVO>> goodsNamemap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getGoodsName));
DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId);
if (Objects.isNull(newStockArticleEntity)) {
newStockArticleEntity = new DistributionStockArticleEntity();
BeanUtil.copy(stockArticleEntity, newStockArticleEntity);
Integer totalNumber = stockArticleEntity.getTotalNumber();
newStockArticleEntity.setId(null);
if(totalNumber == unloadNum){
newStockArticleEntity.setOrderReceiveStatus("30");
}else{
newStockArticleEntity.setOrderReceiveStatus("20");
newStockArticleEntity.setOrderStatus("10");
newStockArticleEntity.setHandQuantity(unloadNum);
newStockArticleEntity.setIncomingNum(unloadNum);
newStockArticleEntity.setWarehouse(warehouseEntity.getName());
newStockArticleEntity.setWarehouseId(warehouseEntity.getId());
newStockArticleEntity.setAllocation(null);
newStockArticleEntity.setTrays(null);
newStockArticleEntity.setCarsLoadNum(0);
Long orderId = distributionStockArticleClient.addData(newStockArticleEntity);
if (orderId != 0) {
Integer isTransfer = 1;
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, fromWarehouseId);
List<DistributionParcelNumberEntity> ls = new ArrayList<>();
for (DistributionParcelListEntity parcelListEntity : parcelListEntityList) {
DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity, newParcelListEntity);
newParcelListEntity.setId(null);
newParcelListEntity.setWarehouseId(warehouseId);
newParcelListEntity.setWarehouse(warehouseEntity.getName());
newParcelListEntity.setStockArticleId(orderId);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
if(warehouseId.equals(acceptWarehouseId)){
newParcelListEntity.setIsTransfer(0);
isTransfer = 0;
// String operationRemark = "运单装车"+unloadNum+"件 干线批次号:"+carsLoadEntity.getCarsNo()+",车牌号:"+carsLoadEntity.getCarNumber()+",司机姓名:"+carsLoadEntity.getDriverName()+",司机手机:"+carsLoadEntity.getDriverMobile();
// openOrderAsyncService.saveLog(waybillId, waybillNo, "30", "干线装车", operationRemark, AuthUtil.getNickName(), AuthUtil.getUserId(), warehouseId, warehouseName);
}else{
newParcelListEntity.setIsTransfer(1);
}
Long orderPackageId = distributionParcelListClient.addReturnId(newParcelListEntity);
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setStockArticleId(orderId);
parcelNumberEntity.setParcelListId(orderPackageId);
parcelNumberEntity.setQuantity(newParcelListEntity.getQuantity());
parcelNumberEntity.setHandQuantity(newParcelListEntity.getQuantity());
parcelNumberEntity.setDeliveryQuantity(0);
parcelNumberEntity.setSigninQuantity(0);
parcelNumberEntity.setOutboundQuantity(0);
parcelNumberEntity.setWarehouseId(warehouseId);
ls.add(parcelNumberEntity);
}
newStockArticleEntity.setOrderStatus("10");
newStockArticleEntity.setHandQuantity(unloadNum);
newStockArticleEntity.setIncomingNum(unloadNum);
newStockArticleEntity.setWarehouse(warehouseEntity.getName());
newStockArticleEntity.setWarehouseId(warehouseEntity.getId());
newStockArticleEntity.setAllocation(null);
newStockArticleEntity.setTrays(null);
newStockArticleEntity.setCarsLoadNum(0);
Long orderId = distributionStockArticleClient.addData(newStockArticleEntity);
if (orderId != 0) {
Integer isTransfer = 1;
List<DistributionParcelListVO> parcelListEntityList = distributionParcelListClient.findEntityVOListByOrderCode(orderCode, fromWarehouseId);
List<DistributionParcelNumberEntity> ls = new ArrayList<>();
for (DistributionParcelListVO parcelListEntity : parcelListEntityList) {
DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity();
String firsts = parcelListEntity.getFirsts();
List<TrunklineScanZeroDetailVO> detailVOList = goodsNamemap.get(firsts);
//把detailVOList所有元素的unloadNum求和,如果为空用0代替
int totalUnloadNum = detailVOList.stream()
.mapToInt(vo -> Optional.ofNullable(vo.getUnloadNum()).orElse(0))
.sum();
BeanUtil.copy(parcelListEntity, newParcelListEntity);
newParcelListEntity.setId(null);
newParcelListEntity.setWarehouseId(warehouseId);
newParcelListEntity.setWarehouse(warehouseEntity.getName());
newParcelListEntity.setStockArticleId(orderId);
newParcelListEntity.setQuantity(totalUnloadNum);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
if(warehouseId.equals(acceptWarehouseId)){
newParcelListEntity.setIsTransfer(0);
isTransfer = 0;
}else{
newParcelListEntity.setIsTransfer(1);
}
distributionParcelNumberClient.addBatch(ls);
// if(isTransfer == 0){
// //查询零担发车件数
// List<ZeroNumVO> zeroNumVOList = trunklineCarsLoadScanService.findZeroStartNum(loadId,warehouseId);
// if(CollUtil.isNotEmpty(zeroNumVOList)){
// zeroNumVOList.forEach(zeroNumVO -> {
// String waybillNo = zeroNumVO.getWaybillNo();
// Integer num = zeroNumVO.getNum();
// WarehouseWaybillEntity waybill = warehouseWaybillClient.findByWaybillNo(waybillNo);
// Integer totalCount = waybill.getTotalCount();
// Integer waybillStatusInt = Integer.parseInt(waybill.getWaybillStatus());
// TrunklineWaybillOrderEntity waybillOrderEntity = trunklineWaybillOrderService.findEntityByWaybillNoAndOrderCode(waybillNo,waybillNo);
// if(!Objects.isNull(waybillOrderEntity)){
// Integer handleNumber = waybillOrderEntity.getHandleNumber();
// if(waybillStatusInt <= 40){
// if(Objects.isNull(handleNumber)){
// handleNumber = 0;
// }
// int i = handleNumber - num;
// if(i==0){
// waybill.setWaybillStatus("20");
// waybillOrderEntity.setHandleNumber(totalCount);
// }else{
// waybill.setWaybillStatus("30");
// waybillOrderEntity.setHandleNumber(i);
// }
//
// warehouseWaybillClient.updateEntity(waybill);
// trunklineWaybillOrderService.updateById(waybillOrderEntity);
// }
//
// }
//
// });
// }
// }
Long orderPackageId = distributionParcelListClient.addReturnId(newParcelListEntity);
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setStockArticleId(orderId);
parcelNumberEntity.setParcelListId(orderPackageId);
parcelNumberEntity.setQuantity(parcelListEntity.getZeroPackageTotalNum());
parcelNumberEntity.setHandQuantity(totalUnloadNum);
parcelNumberEntity.setDeliveryQuantity(0);
parcelNumberEntity.setSigninQuantity(0);
parcelNumberEntity.setOutboundQuantity(0);
parcelNumberEntity.setWarehouseId(warehouseId);
ls.add(parcelNumberEntity);
}
} else {
Integer hQuantity = newStockArticleEntity.getHandQuantity() + unloadNum;
Integer incomingNum = newStockArticleEntity.getIncomingNum() + unloadNum;
Integer totalNumber = newStockArticleEntity.getTotalNumber();
if (incomingNum.equals(totalNumber)) {
if (hQuantity.equals(totalNumber)) {
newStockArticleEntity.setOrderStatus("20");
} else {
newStockArticleEntity.setOrderStatus("30");
}
newStockArticleEntity.setOrderReceiveStatus("30");
distributionParcelNumberClient.addBatch(ls);
}
} else {
Integer hQuantity = newStockArticleEntity.getHandQuantity() + unloadNum;
Integer incomingNum = newStockArticleEntity.getIncomingNum() + unloadNum;
Integer totalNumber = newStockArticleEntity.getTotalNumber();
if (incomingNum.equals(totalNumber)) {
if (hQuantity.equals(totalNumber)) {
newStockArticleEntity.setOrderStatus("20");
} else {
if (incomingNum.equals(hQuantity)) {
newStockArticleEntity.setOrderStatus("10");
} else {
newStockArticleEntity.setOrderStatus("30");
}
newStockArticleEntity.setOrderReceiveStatus("20");
newStockArticleEntity.setOrderStatus("30");
}
newStockArticleEntity.setOrderReceiveStatus("30");
} else {
newStockArticleEntity.setOrderReceiveStatus("20");
}
newStockArticleEntity.setHandQuantity(hQuantity);
newStockArticleEntity.setIncomingNum(incomingNum);
List<DistributionParcelListEntity> listEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, warehouseId);
//把listEntityList中所有元素的id放入一个集合
List<Long> parcelListIds = listEntityList.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList());
List<DistributionParcelNumberEntity> parceNumberList = distributionParcelNumberClient.findListByParcelListIds(parcelListIds);
//把parceNumberList转化成以parcelListId为key的Map
Map<Long, DistributionParcelNumberEntity> mapByParcelListId = parceNumberList.stream()
.collect(Collectors.toMap(
DistributionParcelNumberEntity::getParcelListId,
entity -> entity,
(entity1, entity2) -> entity1)); // 处理可能的键冲突
List<DistributionParcelListEntity> updateParceList = new ArrayList<>();
List<DistributionParcelNumberEntity> updateParceNumberList = new ArrayList<>();
listEntityList.forEach(entity -> {
Long parceListId = entity.getId();
String firsts = entity.getFirsts();
List<TrunklineScanZeroDetailVO> detailVOList = goodsNamemap.get(firsts);
//把detailVOList所有元素的unloadNum求和,如果为空用0代替
int totalUnloadNum = detailVOList.stream()
.mapToInt(vo -> Optional.ofNullable(vo.getUnloadNum()).orElse(0))
.sum();
Integer quantity = entity.getQuantity();
DistributionParcelListEntity updatePaceList = new DistributionParcelListEntity();
updatePaceList.setId(parceListId);
updatePaceList.setQuantity(quantity+totalUnloadNum);
updateParceList.add(updatePaceList);
DistributionParcelNumberEntity parcelNumberEntity = mapByParcelListId.get(parceListId);
if(!Objects.isNull(parcelNumberEntity)){
Integer handQuantity = parcelNumberEntity.getHandQuantity();
DistributionParcelNumberEntity updateParceNumberEntity = new DistributionParcelNumberEntity();
updateParceNumberEntity.setId(parcelNumberEntity.getId());
updateParceNumberEntity.setHandQuantity(handQuantity + totalUnloadNum);
updateParceNumberList.add(updateParceNumberEntity);
}
newStockArticleEntity.setHandQuantity(hQuantity);
newStockArticleEntity.setIncomingNum(incomingNum);
distributionStockArticleClient.saveOrUpdate(newStockArticleEntity);
// String waybillNumber = newStockArticleEntity.getWaybillNumber();
// WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNumber);
// Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();
// if(warehouseId.equals(destinationWarehouseId)){
// QueryWrapper<TrunklineWaybillOrderEntity> queryWrapper1 = new QueryWrapper<>();
// queryWrapper1.eq("waybill_no",stockArticleEntity.getWaybillNumber())
// .eq("order_code",stockArticleEntity.getWaybillNumber());
// TrunklineWaybillOrderEntity one = trunklineWaybillOrderService.getOne(queryWrapper1);
// if(!Objects.isNull(one)){
// Integer totalCount = warehouseWaybillEntity.getTotalCount();
// Integer waybillStatusInt = Integer.parseInt(warehouseWaybillEntity.getWaybillStatus());
// if(waybillStatusInt <= 30){
// Integer handleNumber = one.getHandleNumber();
// int total = handleNumber + unloadNum;
// if(total < totalCount){
// warehouseWaybillEntity.setWaybillStatus("50");
// one.setHandleNumber(total);
// }else{
// warehouseWaybillEntity.setWaybillStatus("60");
// one.setHandleNumber(totalCount);
// }
// warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
// trunklineWaybillOrderService.updateById(one);
// }
// }
// }
});
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
if(CollUtil.isNotEmpty(updateParceNumberList)){
distributionParcelNumberClient.updateList(updateParceNumberList);
}
distributionStockArticleClient.saveOrUpdate(newStockArticleEntity);
}
}
}
@ -1364,48 +1357,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(orderCode);
waybillPackageService.updateWaybillStatus(warehouseWaybillEntity);
// String waybillNo = warehouseWaybillEntity.getWaybillNo();
// Long waybillId = warehouseWaybillEntity.getId();
// int unloadNum = orderCodeList.stream().mapToInt(TrunklineCarsLoadScanEntity::getUnloadNum).sum();
// Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();
// if(warehouseId.equals(destinationWarehouseId)){
// QueryWrapper<TrunklineWaybillOrderEntity> queryWrapper1 = new QueryWrapper<>();
// queryWrapper1.eq("waybill_no",orderCode)
// .eq("order_code",orderCode);
// TrunklineWaybillOrderEntity one = trunklineWaybillOrderService.getOne(queryWrapper1);
// if(!Objects.isNull(one)){
// Integer handleNumber = one.getHandleNumber();
// Integer totalCount = warehouseWaybillEntity.getTotalCount();
// Integer waybillStatusInt = Integer.parseInt(warehouseWaybillEntity.getWaybillStatus());
// int total = handleNumber + unloadNum;
// if(waybillStatusInt < 50){
// if(total != totalCount){
// warehouseWaybillEntity.setWaybillStatus("50");
// one.setHandleNumber(total);
// warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
// trunklineWaybillOrderService.updateById(one);
// }else{
// warehouseWaybillEntity.setWaybillStatus("60");
// one.setHandleNumber(total);
// warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
// trunklineWaybillOrderService.updateById(one);
// }
// }else if(waybillStatusInt == 50){
// if(total == totalCount){
// warehouseWaybillEntity.setWaybillStatus("60");
// one.setHandleNumber(total);
// warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
// trunklineWaybillOrderService.updateById(one);
// }
// }
// }
// }
});
}
//无装车记录异常日志记录
try {
// carsLoadAsyncService.
carsLoadAsyncService.abnormalListUnloadCheckByLoadIdAndWarehouseId(loadId, warehouseId, currentCarsLoadLineEntity.getNodeName(), AuthUtil.getTenantId(), AuthUtil.getUserId(), AuthUtil.getNickName(), Func.firstLong(AuthUtil.getDeptId()),currentCarsLoadLineEntity);
List<String> orderPackageCodes = trunklineCarsLoadScanService.findUnloadByLoadIdAndWarehouseId(loadId, warehouseId);
@ -1715,8 +1672,24 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
page.setSize(loadCarsDTO.getPageSize());
//查询当前仓零担在库列表
// IPage<JSONObject> pageList = distributionStockArticleClient.findZeroListByWarehouseId(warehouseId,pageNum,pageSize);
IPage<JSONObject> pageList = baseMapper.findSignOrderZeroListByWarehouseId(page, loadCarsDTO);
IPage<ZeroSuppleListVO> pageList = baseMapper.findSignOrderZeroListByWarehouseId(page, loadCarsDTO);
List<ZeroSuppleListVO> records = pageList.getRecords();
//把records中所有元素的orderId放入一个集合
List<Long> orderIdList = records.stream().map(ZeroSuppleListVO::getOrderId).collect(Collectors.toList());
List<ZeroPackageSupplyVO> packageList = distributionParcelListClient.findListByStockArticleIds(orderIdList);
//把packageList中所有元素通过stockArticleId进行分组
Map<Long, List<ZeroPackageSupplyVO>> map = packageList.stream().collect(Collectors.groupingBy(ZeroPackageSupplyVO::getStockArticleId));
records.forEach(zeroSuppleListVO -> {
Long orderId = zeroSuppleListVO.getOrderId();
List<JSONObject> jsonObjectList = new ArrayList<>();
List<ZeroPackageSupplyVO> zeroPackageSupplyVOS = map.get(orderId);
zeroPackageSupplyVOS.forEach(zeroPackageSupplyVO -> {
jsonObjectList.add(JSONObject.parseObject(JSONObject.toJSONString(zeroPackageSupplyVO)));
});
zeroSuppleListVO.setZeroPackageSupplyVOS(jsonObjectList);
});
pageList.setRecords(records);
return R.data(pageList);
}
@ -3218,8 +3191,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
});
}
}
scanZeroDetailService.saveBatch(zeroDetailList);
distributionParcelListClient.updateList(updateParceList);
if(CollUtil.isNotEmpty(zeroDetailList)){
scanZeroDetailService.saveBatch(zeroDetailList);
}
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
difficult = enterNum;
distributionStockArticleClient.submitHandleNumByOrderId(enterNum, articleId);
@ -3280,8 +3257,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
zeroDetailList.add(scanZeroDetailEntity);
}
distributionParcelListClient.updateList(updateParceList);
scanZeroDetailService.updateBatchById(zeroDetailList);
if(CollUtil.isNotEmpty(zeroDetailList)){
scanZeroDetailService.updateBatchById(zeroDetailList);
}
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
}
audio = (enterNum)+"件";
@ -3802,8 +3783,24 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
page.setSize(loadCarsDTO.getPageSize());
//查询当前仓零担在库列表
// IPage<JSONObject> pageList = distributionStockArticleClient.findZeroListByWarehouseId(warehouseId,pageNum,pageSize);
IPage<JSONObject> pageList = baseMapper.findZeroListByWarehouseId(page, loadCarsDTO);
IPage<ZeroSuppleListVO> pageList = baseMapper.findZeroListByWarehouseId(page, loadCarsDTO);
List<ZeroSuppleListVO> records = pageList.getRecords();
//把records中所有元素的orderId放入一个集合
List<Long> orderIdList = records.stream().map(ZeroSuppleListVO::getOrderId).collect(Collectors.toList());
List<ZeroPackageSupplyVO> packageList = distributionParcelListClient.findListByStockArticleIds(orderIdList);
//把packageList中所有元素通过stockArticleId进行分组
Map<Long, List<ZeroPackageSupplyVO>> map = packageList.stream().collect(Collectors.groupingBy(ZeroPackageSupplyVO::getStockArticleId));
records.forEach(zeroSuppleListVO -> {
Long orderId = zeroSuppleListVO.getOrderId();
List<JSONObject> jsonObjectList = new ArrayList<>();
List<ZeroPackageSupplyVO> zeroPackageSupplyVOS = map.get(orderId);
zeroPackageSupplyVOS.forEach(zeroPackageSupplyVO -> {
jsonObjectList.add(JSONObject.parseObject(JSONObject.toJSONString(zeroPackageSupplyVO)));
});
zeroSuppleListVO.setZeroPackageSupplyVOS(jsonObjectList);
});
pageList.setRecords(records);
return R.data(pageList);
}
@ -3855,6 +3852,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Integer enterNum = zeroSuppleVO.getEnterNum();
Long finalNodeId = zeroSuppleVO.getFinalNodeId();
Long signOrderId = zeroSuppleVO.getSignOrderId();
List<ZeroPackageDTO> zeroPackageList = zeroSuppleVO.getZeroPackageList();
WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo);
if (Objects.isNull(warehouseWaybillEntity)) {
@ -3898,6 +3896,23 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity.setIsSupple(1);
carsLoadScanEntity.setSignOrderId(signOrderId);
trunklineCarsLoadScanService.save(carsLoadScanEntity);
Long scanLoadId = carsLoadScanEntity.getId();
List<TrunklineScanZeroDetailEntity> scanZeroDetailEntityList = new ArrayList<>();
zeroPackageList.forEach(zeroPackageDTO -> {
Long packageId = zeroPackageDTO.getPackageId();
Integer packageNum = zeroPackageDTO.getEnterNum();
TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity();
scanZeroDetailEntity.setScanId(scanLoadId);
scanZeroDetailEntity.setPackageId(zeroPackageDTO.getPackageId());
scanZeroDetailEntity.setGoodsId(zeroPackageDTO.getGoodsId());
scanZeroDetailEntity.setGoodsName(zeroPackageDTO.getGoodsName());
scanZeroDetailEntity.setLoadingNum(packageNum);
scanZeroDetailEntity.setUnloadNum(0);
scanZeroDetailEntityList.add(scanZeroDetailEntity);
distributionParcelListClient.addZeroQuantity(packageId,-packageNum);
});
scanZeroDetailService.saveBatch(scanZeroDetailEntityList);
zeroStockArticleEntity.setHandQuantity(zeroStockArticleEntity.getHandQuantity() - enterNum);
@ -3910,14 +3925,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if(!Objects.isNull(signOrderId)){
updateSignOrderNumBySignOrderId(signOrderId);
// TrunklineLoadSignOrderEntity signOrderEntity = trunklineLoadSignOrderService.getById(signOrderId);
// signOrderEntity.setPlanNum(signOrderEntity.getPlanNum() + enterNum);
// signOrderEntity.setLoadingNum(signOrderEntity.getLoadingNum() + enterNum);
// Integer signNum = signOrderEntity.getSignNum();
// if(signNum > 0 ){
// signOrderEntity.setSignStatus("10");
// }
// trunklineLoadSignOrderService.updateById(signOrderEntity);
}
}
//更新数量
@ -4031,6 +4038,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long warehouseId = loadCarsDTO.getWarehouseId();
Integer incomingType = loadCarsDTO.getIncomingType();
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
List<ZeroPackageDTO> zeroPackageList = loadCarsDTO.getZeroPackageList();
BasicdataTrayEntity basicdataTrayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
if(Objects.isNull(basicdataTrayEntity)){
@ -4050,7 +4058,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
R r = trayTypeClient.orderScanOrderPackageCodeReturnR(map);
int code = r.getCode();
if (code != 200) {
log.warn("##########findNextNodeList: 打托失败 trayCode={} orderPackageCode={} msg={}", trayCode, orderPackageCode, r.getMsg());
log.warn("##########unloadTrayAllOne: 打托失败 trayCode={} orderPackageCode={} msg={}", trayCode, orderPackageCode, r.getMsg());
return R.fail(code, r.getMsg());
}else{
String data = (String) r.getData();
@ -4064,7 +4072,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
} else {
unloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, null, orderCode, "卸分一体 卸车",palletName,trayCode);
if(CollUtil.isEmpty(zeroPackageList)){
log.warn("##########unloadTrayAllOne: 品类信息有误 carsLoadScanId={} ", carsLoadScanId);
return R.fail(405, "品类信息有误");
}
unloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, null, orderCode, "卸分一体 卸车",palletName,trayCode,zeroPackageList);
Map<String, Object> map = new HashMap<>();
map.put("trayType", trayType);
@ -4158,6 +4171,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.fail(405, "配载计划信息不存在");
}
String loadCode = carsLoadEntity.getCarsNo();
String carrierName = carsLoadEntity.getCarrierName();
// TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
// if(Objects.isNull(carsLoadLineEntity)){
@ -4168,7 +4182,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long trayId = null;
String trayName = null;
String trayCode = null;
String content = "包件在 "+warehouseName+" 扫码 卸车,车次号:"+loadCode+".";
String content = "包件在 "+warehouseName+" 扫码 卸车,车次号:"+loadCode+",由["+carrierName+"] 承运.";
//判断包件是否已入库
// DistributionParcelListEntity distributionParcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, warehouseId);
@ -4387,7 +4401,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
@Override
public R transferUnloadZero(Long carsLoadScanId,Long loadId, String waybillNo, Integer enterNum, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark) {
public R transferUnloadZero(Long carsLoadScanId,Long loadId, String waybillNo, Integer enterNum, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark,List<ZeroPackageDTO> zeroPackageList) {
log.info("#############transferUnloadZero: 三方中转卸车零担");
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
@ -4450,6 +4464,15 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity.setScanStatus("2");
trunklineCarsLoadScanService.updateById(carsLoadScanEntity);
List<TrunklineScanZeroDetailEntity> updateScanZeroDetailList = new ArrayList<>();
zeroPackageList.forEach(zeroPackageDTO -> {
TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity();
scanZeroDetailEntity.setId(zeroPackageDTO.getId());
scanZeroDetailEntity.setUnloadNum(zeroPackageDTO.getEnterNum());
updateScanZeroDetailList.add(scanZeroDetailEntity);
});
scanZeroDetailService.updateBatchById(updateScanZeroDetailList);
trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode,
scanCode, enterNum, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark);
@ -4494,7 +4517,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Integer num = carsLoadScanEntity.getNum();
String orderCode = carsLoadScanEntity.getOrderCode();
Long carsLoadScanId = carsLoadScanEntity.getId();
transferUnloadZero(carsLoadScanId,loadId, waybillNo, num, warehouseId, 0, trayCode, orderCode, "三方中装托盘零担正常卸车");
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId);
List<ZeroPackageDTO> zeroPackageList = new ArrayList<>();
zeroDetailVOList.forEach(zeroDetailVO -> {
ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO();
zeroPackageDTO.setId(zeroDetailVO.getId());
zeroPackageDTO.setPackageId(zeroDetailVO.getPackageId());
zeroPackageDTO.setGoodsId(zeroDetailVO.getGoodsId());
zeroPackageDTO.setGoodsName(zeroDetailVO.getGoodsName());
zeroPackageDTO.setEnterNum(zeroDetailVO.getLoadingNum());
zeroPackageList.add(zeroPackageDTO);
});
transferUnloadZero(carsLoadScanId,loadId, waybillNo, num, warehouseId, 0, trayCode, orderCode, "三方中装托盘零担正常卸车",zeroPackageList);
}
}
@ -4559,14 +4593,32 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<UnloadPackageDTO> unloadPackageList = batchUnloadDTO.getUnloadPackageList();
List<UnloadZeroDTO> unloadZeroList = batchUnloadDTO.getUnloadZeroList();
for (UnloadZeroDTO unloadZeroDTO : unloadZeroList) {
Long carsLoadScanId = unloadZeroDTO.getCarsLoadScanId();
String waybillNo = unloadZeroDTO.getWaybillNo();
Integer enterNum = unloadZeroDTO.getEnterNum();
String trayCode = unloadZeroDTO.getTrayCode();
String orderCode = unloadZeroDTO.getOrderCode();
unloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, trayCode, orderCode, "批量卸车零担正常卸车",null,null);
//把unloadZeroList中所有元素的carsLoadScanId放入一个list中
List<Long> carsLoadScanIdList = unloadZeroList.stream().map(UnloadZeroDTO::getCarsLoadScanId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(carsLoadScanIdList)){
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIdList);
//把zeroDetailVOList所有元素通过id分组
Map<Long, List<TrunklineScanZeroDetailVO>> zeroDetailVOMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getId));
for (UnloadZeroDTO unloadZeroDTO : unloadZeroList) {
Long carsLoadScanId = unloadZeroDTO.getCarsLoadScanId();
String waybillNo = unloadZeroDTO.getWaybillNo();
Integer enterNum = unloadZeroDTO.getEnterNum();
String trayCode = unloadZeroDTO.getTrayCode();
String orderCode = unloadZeroDTO.getOrderCode();
List<TrunklineScanZeroDetailVO> list = zeroDetailVOMap.get(carsLoadScanId);
List<ZeroPackageDTO> zeroPackageList = new ArrayList<>();
list.forEach(zeroDetailVO -> {
ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO();
zeroPackageDTO.setPackageId(zeroDetailVO.getPackageId());
zeroPackageDTO.setGoodsId(zeroDetailVO.getGoodsId());
zeroPackageDTO.setGoodsName(zeroDetailVO.getGoodsName());
zeroPackageDTO.setEnterNum(zeroDetailVO.getLoadingNum());
zeroPackageList.add(zeroPackageDTO);
});
unloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, trayCode, orderCode, "批量卸车零担正常卸车",null,null,zeroPackageList);
}
}
List<Long> carsLoadScanIds = new ArrayList<>();
@ -4596,7 +4648,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
findParamterDTO.setWarehouseId(fromWarehouseId);
List<DistributionStockArticleEntity> stockArticleEntityList = distributionStockArticleClient.findListByOrderCodesAndWarehouseId(findParamterDTO);
stockArticleEntities.addAll(stockArticleEntityList);
});
//把stockArticleEntities转成orderCode为键值的map
@ -5042,7 +5093,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String trayCode = unloadZeroDTO.getTrayCode();
String orderCode = unloadZeroDTO.getOrderCode();
Long carsLoadScanId = unloadZeroDTO.getCarsLoadScanId();
transferUnloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, trayCode, orderCode, "批量卸车零担正常卸车");
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId);
List<ZeroPackageDTO> zeroPackageList = new ArrayList<>();
zeroDetailVOList.forEach(zeroDetailVO -> {
ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO();
zeroPackageDTO.setId(zeroDetailVO.getId());
zeroPackageDTO.setPackageId(zeroDetailVO.getPackageId());
zeroPackageDTO.setGoodsId(zeroDetailVO.getGoodsId());
zeroPackageDTO.setGoodsName(zeroDetailVO.getGoodsName());
zeroPackageDTO.setEnterNum(zeroDetailVO.getLoadingNum());
zeroPackageList.add(zeroPackageDTO);
});
transferUnloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, trayCode, orderCode, "批量卸车零担正常卸车",zeroPackageList);
}
@ -5350,20 +5412,52 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long fromWarehouseId = signOrderVO.getWarehouseId();
//查询订单列表
List<SignScanOrderVO> signScanOrderList = trunklineCarsOrderService.findSignOrderList(loadId, fromWarehouseId,signOrderId);
List<SignScanOrderVO> signScanOrderList = trunklineCarsOrderService.findSignOrderListBySignOrderId(signOrderId);
List<SignPackageVO> signPackageList = trunklineCarsLoadScanService.findSignPackageListBySignOrderId(signOrderId);
for (SignScanOrderVO signScanOrderVO : signScanOrderList) {
String waybillNo = signScanOrderVO.getWaybillNo();
String orderCode = signScanOrderVO.getOrderCode();
List<SignPackageVO> signPackageList = trunklineCarsLoadScanService.findSignPackageList(loadId, fromWarehouseId, orderCode, waybillNo);
signScanOrderVO.setSignPackageList(signPackageList);
}
String waybillNo = StringUtil.isBlank(signScanOrderVO.getWaybillNo())?"null":signScanOrderVO.getWaybillNo();
String orderCode = StringUtil.isBlank(signScanOrderVO.getOrderCode())?"null":signScanOrderVO.getOrderCode();
List<SignPackageVO> ls = new ArrayList<>();
signPackageList.forEach(e -> {
String waybillNo1 = StringUtil.isBlank(e.getWaybillNo())?"null":e.getWaybillNo();
String orderCode1 = StringUtil.isBlank(e.getOrderCode())?"null":e.getOrderCode();
if(waybillNo.equals(waybillNo1) && orderCode.equals(orderCode1)){
ls.add(e);
}
});
signScanOrderVO.setSignPackageList(ls);
}
List<SignScanOrderVO> signScanZeroOrderList = trunklineCarsOrderService.findSignZeroOrderListBySignOrderId(signOrderId);
List<SignPackageVO> signZeroPackageList = trunklineCarsLoadScanService.findSignPackageListBySignOrderId(signOrderId);
// 创建一个包含所有carsLoadScanId的新列表
List<Long> carsLoadScanIds = signZeroPackageList.stream()
.map(SignPackageVO::getCarsLoadScanId)
.collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> scanZeroDetailList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds);
//把scanZeroDetailList中所有元素通过id进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> scanZeroDetailMap = scanZeroDetailList.stream()
.collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
signZeroPackageList.forEach(signPackageVO -> {
Long carsLoadScanId = signPackageVO.getCarsLoadScanId();
List<TrunklineScanZeroDetailVO> list = scanZeroDetailMap.get(carsLoadScanId);
signPackageVO.setScanZeroDetailList(list);
});
List<SignScanOrderVO> signScanZeroOrderList = trunklineCarsOrderService.findSignZeroOrderList(loadId, fromWarehouseId,signOrderId);
for (SignScanOrderVO signScanOrderVO : signScanZeroOrderList) {
String waybillNo = signScanOrderVO.getWaybillNo();
String orderCode = signScanOrderVO.getOrderCode();
List<SignPackageVO> signPackageList = trunklineCarsLoadScanService.findSignPackageList(loadId, fromWarehouseId, orderCode, waybillNo);
signScanOrderVO.setSignPackageList(signPackageList);
String waybillNo = StringUtil.isBlank(signScanOrderVO.getWaybillNo())?"null":signScanOrderVO.getWaybillNo();
String orderCode = StringUtil.isBlank(signScanOrderVO.getOrderCode())?"null":signScanOrderVO.getOrderCode();
List<SignPackageVO> ls = new ArrayList<>();
signZeroPackageList.forEach(e -> {
String waybillNo1 = StringUtil.isBlank(e.getWaybillNo())?"null":e.getWaybillNo();
String orderCode1 = StringUtil.isBlank(e.getOrderCode())?"null":e.getOrderCode();
if(waybillNo.equals(waybillNo1) && orderCode.equals(orderCode1)){
ls.add(e);
}
});
signScanOrderVO.setSignPackageList(ls);
}
//查询异常列表
@ -5717,7 +5811,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
@Override
public R signZeroOrder(Long signOrderId, Long carsLoadScanId, Integer enterNum, String remark) {
public R signZeroOrder(Long signOrderId, Long carsLoadScanId, Integer enterNum, String remark,List<ZeroPackageDTO> zeroPackageList) {
Date date = new Date();
TrunklineLoadSignOrderEntity signOrderEntity = trunklineLoadSignOrderService.getById(signOrderId);
if (Objects.isNull(signOrderEntity)) {
@ -5779,6 +5873,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity.setSignOrderId(signOrderId);
trunklineCarsLoadScanService.updateById(carsLoadScanEntity);
List<TrunklineScanZeroDetailEntity> updateScanZeroDetailList = new ArrayList<>();
zeroPackageList.forEach(zeroPackage -> {
TrunklineScanZeroDetailEntity updateEntity = new TrunklineScanZeroDetailEntity();
updateEntity.setId(zeroPackage.getId());
updateEntity.setUnloadNum(zeroPackage.getEnterNum());
updateScanZeroDetailList.add(updateEntity);
});
if(CollUtil.isNotEmpty(updateScanZeroDetailList)){
scanZeroDetailService.updateBatchById(updateScanZeroDetailList);
}
//生成签收记录
trunklineCarsSignLogService.addEntity(carsLoadScanEntity, remark);
@ -5846,7 +5952,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<Long> signOrderIds = new ArrayList<>();
List<TrunklineCarsLoadScanEntity> updateCarsLoadScanList = new ArrayList<>();
List<DistributionParcelListEntity> updateParcelList = new ArrayList<>();
List<TrunklineScanZeroDetailEntity> updateZerpPackageList = new ArrayList<>();
Date date = new Date();
if (!list.isEmpty()) {
@ -5875,7 +5981,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
entity.setUnloadTime(date);
entity.setUnloadNodeId(warehouseId);
entity.setUnloadNodeName(warehouseName);
if (entity.getType().equals(1)) {
Integer type = entity.getType();
Long carsLoadScanId = t.getCarsLoadScanId();
if (type.equals(1)) {
String scanCode = entity.getScanCode();
List<DistributionParcelListEntity> parcelList = parcelListMap.get(scanCode);
if (!Objects.isNull(parcelList)) {
@ -5885,6 +5993,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
});
}
orderPackageCodes.add(entity.getScanCode());
}else if(type.equals(2)){
//零担
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId);
zeroDetailVOList.forEach(p -> {
TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity();
scanZeroDetailEntity.setId(p.getId());
scanZeroDetailEntity.setUnloadNum(p.getLoadingNum());
updateZerpPackageList.add(scanZeroDetailEntity);
});
}
updateCarsLoadScanList.add(entity);
loadIds.add(entity.getLoadId());
@ -5919,6 +6037,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadScanService.updateBatchById(updateCarsLoadScanList);
if(CollUtil.isNotEmpty(updateZerpPackageList)){
scanZeroDetailService.updateBatchById(updateZerpPackageList);
}
//生成签收记录
trunklineCarsSignLogService.addList(updateCarsLoadScanList, "PC批量签收");
@ -8953,9 +9075,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
@Override
public R unloadZero(Long carsLoadScanId,Long loadId, String waybillNo, Integer enterNun, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark,String unloadTrayName,String unloadTrayCode) {
public R unloadZero(Long carsLoadScanId,Long loadId, String waybillNo, Integer enterNun, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark,String unloadTrayName,String unloadTrayCode,List<ZeroPackageDTO> zeroPackageList) {
log.info("#############unloadZero: 卸车零担");
if(CollUtil.isEmpty(zeroPackageList)){
log.warn("#############unloadZero: ;品类信息有误 zeroPackageList={}", zeroPackageList);
return R.fail(405, "品类信息有误");
}
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
if (Objects.isNull(carsLoadEntity)) {
log.warn("#############unloadZero: 配载计划信息不存在 loadId={}", loadId);
@ -9029,6 +9156,27 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity.setUnloadTrayCode(unloadTrayCode);
trunklineCarsLoadScanService.updateById(carsLoadScanEntity);
//把zeroPackageList中所有元素转化成以goodsId为key的map
Map<Long, ZeroPackageDTO> zeroDetailMap = zeroPackageList.stream().collect(Collectors.toMap(ZeroPackageDTO::getGoodsId, Function.identity()));
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId);
List<TrunklineScanZeroDetailEntity> updateList = new ArrayList<>();
zeroDetailVOList.forEach(detailVO -> {
Long goodsId = detailVO.getGoodsId();
Long id = detailVO.getId();
ZeroPackageDTO zeroPackageDTO = zeroDetailMap.get(goodsId);
if(!Objects.isNull(zeroPackageDTO)){
TrunklineScanZeroDetailEntity updateEntity = new TrunklineScanZeroDetailEntity();
updateEntity.setId(id);
updateEntity.setUnloadNum(zeroPackageDTO.getEnterNum());
updateList.add(updateEntity);
}
});
if(CollUtil.isNotEmpty(updateList)){
scanZeroDetailService.updateBatchById(updateList);
}
trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode,
scanCode, enterNun, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark);
@ -9435,24 +9583,63 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//查询已扫描卸车的包件
List<UnloadScanOrderVO> unloadScanOrderList = trunklineCarsLoadScanService.findPackageWithOrderList(loadId, warehouseId);
for (UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList) {
Integer loadingNum = unloadScanOrderVO.getLoadingNum();
String waybillNo = unloadScanOrderVO.getWaybillNo();
String orderCode = unloadScanOrderVO.getOrderCode();
Integer totalNumber = trunklineAdvanceDetailService.findTotalNumByOrderCode(orderCode);
unloadScanOrderVO.setTotalNumber(totalNumber);
List<UnloadPackageVO> unloadPackageList = trunklineCarsLoadScanService.findUnloadPackageList(loadId, warehouseId, waybillNo, orderCode);
unloadScanOrderVO.setUnloadPackageList(unloadPackageList);
if(CollUtil.isNotEmpty(unloadScanOrderList)){
//把unloadScanOrderList中所有元素转化成以orderCode为key的map
Map<String, UnloadScanOrderVO> unloadScanOrderMap = unloadScanOrderList.stream().collect(Collectors.toMap(UnloadScanOrderVO::getOrderCode, Function.identity()));
Set<String> orderCodeSet = unloadScanOrderMap.keySet();
List<OrderCodeNumVO> orderCodeNumList = trunklineAdvanceDetailService.findTotalNumByOrderCodes(orderCodeSet);
//把orderCodeNumList中所有元素转化成以orderCode为key的map
Map<String, OrderCodeNumVO> orderCodeNumMap = orderCodeNumList.stream().collect(Collectors.toMap(OrderCodeNumVO::getOrderCode, Function.identity()));
List<UnloadPackageVO> unloadList = trunklineCarsLoadScanService.findUnloadPackageListByLoadIdAndFinalNodeId(loadId,warehouseId);
for (UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList) {
String waybillNo = StringUtil.isBlank(unloadScanOrderVO.getWaybillNo())?"null":unloadScanOrderVO.getWaybillNo();
String orderCode = StringUtil.isBlank(unloadScanOrderVO.getOrderCode())?"null":unloadScanOrderVO.getOrderCode();
unloadScanOrderVO.setTotalNumber(orderCodeNumMap.get(orderCode).getTotalNum());
List<UnloadPackageVO> unloadPackageList = new ArrayList<>();
unloadList.forEach(unloadPackageVO -> {
String orderCode1 = StringUtil.isBlank(unloadPackageVO.getOrderCode())?"null":unloadPackageVO.getOrderCode();
String waybillNo1 = StringUtil.isBlank(unloadPackageVO.getWaybillNo())?"null":unloadPackageVO.getWaybillNo();
if(waybillNo.equals(waybillNo1) && orderCode.equals(orderCode1)){
unloadPackageList.add(unloadPackageVO);
}
});
unloadScanOrderVO.setUnloadPackageList(unloadPackageList);
}
}
//查询已装车的零担
List<UnloadZeroVO> zeroList = trunklineCarsLoadScanService.findUnloadZeroList(loadId, warehouseId);
List<UnloadPackageVO> unloadPackageList = trunklineCarsLoadScanService.findUnloadZeroListByLoadIdAndFinalNodeId(loadId, warehouseId);
List<Long> carsLoadScanIds = unloadPackageList.stream()
.map(UnloadPackageVO::getCarsLoadScanId)
.collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> scanZeroDetailList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds);
//把scanZeroDetailList中所有元素通过id进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> scanZeroDetailMap = scanZeroDetailList.stream()
.collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
unloadPackageList.forEach(unloadPackageVO -> {
Long carsLoadScanId = unloadPackageVO.getCarsLoadScanId();
List<TrunklineScanZeroDetailVO> list = scanZeroDetailMap.get(carsLoadScanId);
unloadPackageVO.setScanZeroDetailList(list);
});
for (UnloadZeroVO unloadZeroVO : zeroList) {
Integer loadingNum = unloadZeroVO.getLoadingNum();
String waybillNo = unloadZeroVO.getWaybillNo();
String orderCode = unloadZeroVO.getOrderCode();
List<UnloadPackageVO> unloadPackageList = trunklineCarsLoadScanService.findUnloadPackageList(loadId, warehouseId, waybillNo, orderCode);
unloadZeroVO.setUnloadPackageList(unloadPackageList);
String waybillNo = StringUtil.isBlank(unloadZeroVO.getWaybillNo())?"null":unloadZeroVO.getWaybillNo();
String orderCode = StringUtil.isBlank(unloadZeroVO.getOrderCode())?"null":unloadZeroVO.getOrderCode();
List<UnloadPackageVO> unloadLs = new ArrayList<>();
unloadPackageList.forEach(unloadPackageVO -> {
String orderCode1 = StringUtil.isBlank(unloadPackageVO.getOrderCode())?"null":unloadPackageVO.getOrderCode();
String waybillNo1 = StringUtil.isBlank(unloadPackageVO.getWaybillNo())?"null":unloadPackageVO.getWaybillNo();
if(waybillNo.equals(waybillNo1) && orderCode.equals(orderCode1)){
unloadLs.add(unloadPackageVO);
}
});
unloadZeroVO.setUnloadPackageList(unloadLs);
}
//查询异常列表

11
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java

@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Slf4j
@ -153,4 +154,14 @@ public class TrunklineCarsOrderEntityServiceImpl extends BaseServiceImpl<Trunkli
baseMapper.deleteNoRealNumByLoadIdAndWarehouseId(loadId,warehouseId);
}
@Override
public List<SignScanOrderVO> findSignOrderListBySignOrderId(Long signOrderId) {
return baseMapper.findSignOrderListBySignOrderId(signOrderId);
}
@Override
public List<SignScanOrderVO> findSignZeroOrderListBySignOrderId(Long signOrderId) {
return baseMapper.findSignZeroOrderListBySignOrderId(signOrderId);
}
}

12
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java

@ -3,13 +3,25 @@ package com.logpm.trunkline.service.impl;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.mapper.TrunklineScanZeroDetailMapper;
import com.logpm.trunkline.service.ITrunklineScanZeroDetailService;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@AllArgsConstructor
@Slf4j
public class TrunklineScanZeroDetailServiceImpl extends BaseServiceImpl<TrunklineScanZeroDetailMapper, TrunklineScanZeroDetailEntity> implements ITrunklineScanZeroDetailService {
@Override
public List<TrunklineScanZeroDetailVO> findListByCarsLoadScanId(Long carsLoadScanId) {
return baseMapper.findListByCarsLoadScanId(carsLoadScanId);
}
@Override
public List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(List<Long> carsLoadScanIds) {
return baseMapper.findListByCarsLoadScanIds(carsLoadScanIds);
}
}

Loading…
Cancel
Save