Browse Source

Merge branch 'pre-production'

master
pref_mail@163.com 7 months ago
parent
commit
d438493237
  1. 2
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java
  2. 8
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java
  3. 16
      blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java
  4. 20
      blade-service-api/logpm-business-api/src/main/java/com/logpm/business/entity/BusinessPreOrderEntity.java
  5. 8
      blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarDetalPackageVO.java
  6. 3
      blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumerPageQueryVO.java
  7. 4
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java
  8. 21
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  9. 3
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java
  10. 3
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java
  11. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java
  12. 18
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/IExtractedDataClient.java
  13. 13
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java
  14. 9
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java
  15. 4
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java
  16. 2
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java
  17. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java
  18. 4
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java
  19. 9
      blade-service/logpm-aftersales/src/main/resources/application-test.yml
  20. 31
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataPriceServiceImpl.java
  21. 19
      blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java
  22. 6
      blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml
  23. 13
      blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessAsyncServiceImpl.java
  24. 181
      blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java
  25. 2
      blade-service/logpm-business/src/main/resources/application-dev.yml
  26. 14
      blade-service/logpm-business/src/main/resources/application-test.yml
  27. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  28. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java
  29. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java
  30. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  31. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java
  32. 11
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml
  33. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml
  34. 60
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java
  35. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionLoadscanService.java
  36. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java
  37. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  38. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionLoadscanServiceImpl.java
  39. 23
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  40. 30
      blade-service/logpm-distribution/src/main/resources/application-test.yml
  41. 3
      blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java
  42. 106
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java
  43. 5
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java
  44. 9
      blade-service/logpm-statisticsdata/src/main/resources/application-test.yml
  45. 40
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java
  46. 89
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/ExtractedDataClient.java
  47. 3
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml
  48. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java
  49. 10
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  50. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java
  51. 21
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml
  52. 67
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/OpenWaybillToBusinessListener.java
  53. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java
  54. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  55. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java
  56. 16
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  57. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java
  58. 172
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  59. 11
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java
  60. 12
      blade-service/logpm-trunkline/src/main/resources/application-test.yml
  61. 2
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java
  62. 15
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml
  63. 3
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java
  64. 14
      blade-service/logpm-warehouse/src/main/resources/application-test.yml

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

@ -32,7 +32,7 @@ public class AftersalesAbnormalRecordZeroDetailEntity extends TenantEntity {
@ApiModelProperty(name = "异常记录id",notes = "")
private Long abnormalRecordId;
@ApiModelProperty(name = "异常记录id",notes = "")
@ApiModelProperty(name = "包件id",notes = "")
private Long packageId;
@ApiModelProperty(name = "品类id",notes = "")

8
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java

@ -80,6 +80,14 @@ public class BasicdataClientEntity extends TenantEntity {
*/
@ApiModelProperty(value = "客户类型 ")
private String clientType;
/**
* 结算对象类型1.工厂 2.商场 3.个人
*/
@ApiModelProperty(value = "结算对象类型 ")
private String cleanObjType;
/**
* 详细地址
*/

16
blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java

@ -9,9 +9,9 @@ public class BusinessSanDTO {
@ApiModelProperty(value = "配送车次")
private String distrCarNumber;
@ApiModelProperty(value = "包间码")
String orderPackageCode;
private String orderPackageCode;
@ApiModelProperty(value = "预约单号")
String reservationCode;
private String reservationCode;
@ApiModelProperty(value = "异常入库 0 正常 1 异常")
private Integer inWarehouseException;
@ -30,4 +30,16 @@ public class BusinessSanDTO {
@ApiModelProperty(value = "打托方式")
private String trayType;//打托方式
@ApiModelProperty(value = "订单号")
private String orderCode;
@ApiModelProperty(value = "零担品类")
private String firsts;
@ApiModelProperty(value = "卸车数量")
private Integer unloadNum;
@ApiModelProperty(value = "状态 1 定制品 2 库存品 3零担")
private String conditions;
}

20
blade-service-api/logpm-business-api/src/main/java/com/logpm/business/entity/BusinessPreOrderEntity.java

@ -169,10 +169,28 @@ public class BusinessPreOrderEntity extends TenantEntity {
@ApiModelProperty(value = "物料单位")
private String materialUnit;
/**
* 数量
* 计划数量
*/
@ApiModelProperty(value = "数量")
private Integer quantity;
/**
* 卸车数量
*/
@ApiModelProperty(value = "卸车数量")
private Integer unloadNum;
/**
* 装车数量
*/
@ApiModelProperty(value = "装车数量")
private Integer loadNum;
/**
* 车次号
*/

8
blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarDetalPackageVO.java

@ -24,5 +24,13 @@ public class DistributionBusinessPreCarDetalPackageVO {
private Integer inWarehouse;
@ApiModelProperty(value = "操作状态 0 正常操作 1.补录操作")
private Integer operationStatus;
@ApiModelProperty(value = "计划数量")
private Integer quantity;
@ApiModelProperty(value = "卸车数量")
private Integer unloadNum;
@ApiModelProperty(value = "预约单号")
private String reservationCode;
}

3
blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumerPageQueryVO.java

@ -13,4 +13,7 @@ public class DistributionBusinessPreCarNumerPageQueryVO {
private String orderCode;
@ApiModelProperty(value = "配送车次号")
private String distrCarNumber;
@ApiModelProperty(value = "物品类型 1 定制品 3零担")
private String conditions;
}

4
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java

@ -332,11 +332,11 @@ public class DistributionParcelListEntity extends TenantEntity {
@ApiModelProperty(value = "包件冻结状态")
private String orderPackageFreezeStatus;
@ApiModelProperty(value = "包件冻结状态")
@ApiModelProperty(value = "预约状态")
private String orderPackageReservationStatus;
@ApiModelProperty(value = "包件冻结状态")
@ApiModelProperty(value = "预约数量")
@TableField(exist = false)
private Integer reservationNum;

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

@ -102,9 +102,26 @@ public interface IDistributionParcelListClient {
@PostMapping(API_PREFIX + "/update")
void update(@RequestBody DistributionParcelListEntity distributionParcelListEntity);
/**
* 根据 订单号合开单品类查询指定仓库下的零担的品类信息
* @param orderCode
* @param first
* @param warehouseId
* @return
*/
@GetMapping(API_PREFIX + "/findDistributionParcelListEntityByOrderCodeAndFirstName")
DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstName(@RequestParam String orderCode, @RequestParam String first,@RequestParam Long warehouseId);
@GetMapping(API_PREFIX + "/SumEntityZkByOrderId")
Integer SumEntityByOrderId(@RequestParam Long orderId, @RequestParam Long warehouseId);
/**
* 根据 订单号合开单品类查询指定租户下的仓库的零担的品类信息
* @param tenantId
* @param orderCode
* @param first
* @param warehouseId
* @return
*/
@GetMapping(API_PREFIX + "/findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId")
DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(@RequestParam String tenantId,@RequestParam String orderCode, @RequestParam String first,@RequestParam Long warehouseId);
/**

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

@ -62,4 +62,7 @@ public interface IDistributionParcelNumberClient {
@GetMapping(API_PREFIX+"/findListByStockArticleId")
List<DistributionParcelNumberEntity> findListByStockArticleId(@RequestParam Long orderId);
@GetMapping(API_PREFIX+"/addHandleQuantity")
void addHandleQuantity(@RequestParam Long packageId, @RequestParam int num);
}

3
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java

@ -75,6 +75,9 @@ public interface IDistributionStockArticleClient {
@GetMapping(API_PREFIX + "/findByOrderSelfNum")
DistributionStockArticleEntity findByOrderSelfNum(@RequestParam String orderCode, @RequestParam Long warehouseId);
@GetMapping(API_PREFIX + "/findByOrderSelfNumAndTenantId")
DistributionStockArticleEntity findByOrderSelfNumAndTenantId(@RequestParam String tenantId,@RequestParam String orderCode, @RequestParam Long warehouseId);
@GetMapping(API_PREFIX + "/deleteById")
void deleteById(@RequestParam Long orderId);

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

@ -37,6 +37,7 @@ public class LoadCarsDTO implements Serializable {
private String deliveryType;
private String operator;
private String settlementPerson;
private String customerType;
private Long warehouseId;
private List<Long> warehouseIds;

18
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/IExtractedDataClient.java

@ -0,0 +1,18 @@
package com.logpm.trunkline.feign;
import com.logpm.trunkline.entity.TrunklineCarsLoadEntity;
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;
@FeignClient(
value = ModuleNameConstant.APPLICATION_TRUNKLINE_NAME
)
public interface IExtractedDataClient {
String API_PREFIX = "extractedData/client";
@GetMapping(API_PREFIX+"/findEntityByCarsNo")
void execute(@RequestParam String tenantId,@RequestParam String wallbillNum);
}

13
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java

@ -0,0 +1,13 @@
package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class GoodsLoadingNumVO implements Serializable {
private Long goodsId;
private Integer loadingNum;
}

9
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java

@ -1,5 +1,6 @@
package com.logpm.trunkline.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@ -10,6 +11,9 @@ import java.util.Date;
@Data
public class LoadingDetailExportVO implements Serializable {
@ExcelIgnore
private Long id;
@ExcelProperty(value = "运单号")
private String waybillNo;
@ -85,4 +89,9 @@ public class LoadingDetailExportVO implements Serializable {
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date signTime;
@ExcelProperty(value = "装车品类数量")
private String loadingGoods;
@ExcelProperty(value = "卸车品类数量")
private String unloadGoods;
}

4
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.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 OrderScanDetailVO implements Serializable {
@ -13,4 +15,6 @@ public class OrderScanDetailVO implements Serializable {
private String trayName;
private String trayCode;
private List<TrunklineScanZeroDetailVO> zeroDetailList = new ArrayList<>();
}

2
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java

@ -11,5 +11,7 @@ public class TrunklineCarsLoadScanVO extends TrunklineCarsLoadScanEntity {
private String destinationWarehouseName;
private String loadingGoods;
private String unloadGoods;
}

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

@ -11,5 +11,6 @@ public class ZeroPackageVO implements Serializable {
private Long goodsId;
private String goodsName;//品类名称
private Integer stockNum;//品类在库件数
private Integer loadingNum;//品类装车件数
}

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

@ -156,6 +156,10 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
Long waybillId = null;
Integer dealType = abnormalRecordDTO.getDealType();
List<ZeroPackageDTO> zeroPackageDTOS = abnormalRecordDTO.getZeroPackageDTOS();
if(CollUtil.isEmpty(zeroPackageDTOS)){
log.warn("################dealAbnormal: 品类信息不存在");
return R.fail(405,"品类信息不存在");
}
Integer num = abnormalRecordEntity.getNum();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId);

9
blade-service/logpm-aftersales/src/main/resources/application-test.yml

@ -25,11 +25,4 @@ spring:
url: ${blade.datasource.aftersales.master.url}
username: ${blade.datasource.aftersales.master.username}
password: ${blade.datasource.aftersales.master.password}
627683:
url: ${blade.datasource.aftersales.627683.url}
username: ${blade.datasource.aftersales.627683.username}
password: ${blade.datasource.aftersales.627683.password}
695224:
url: ${blade.datasource.aftersales.695224.url}
username: ${blade.datasource.aftersales.695224.username}
password: ${blade.datasource.aftersales.695224.password}

31
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataPriceServiceImpl.java

@ -463,6 +463,19 @@ public class BasicdataPriceServiceImpl extends BaseServiceImpl<BasicdataPriceMap
Map<Integer, List<BasicdataPriceGeneralEntity>> generalMap = new HashMap<>();
buildDetailMap(priceEntity, fullMap, basicMap, warehouseMap, dispatchMap, generalMap);
String serviceType = templateEntity.getServiceType();
LambdaQueryWrapper<BasicdataPriceRouteEntity> wrapper = Wrappers.<BasicdataPriceRouteEntity>lambdaQuery()
.eq(BasicdataPriceRouteEntity::getPriceId, priceEntity.getId())
.eq(BasicdataPriceRouteEntity::getSendOrgId, param.getSendOrgId())
.eq(BasicdataPriceRouteEntity::getStartProvinceId, param.getStartProvinceId())
.eq(BasicdataPriceRouteEntity::getStartCityId, param.getStartCityId())
.eq(BasicdataPriceRouteEntity::getEndProvinceId, param.getEndProvinceId())
.eq(BasicdataPriceRouteEntity::getEndCityId, param.getEndCityId());
if (ObjectUtil.isNotEmpty(param.getStartCountyId())) {
wrapper.eq(BasicdataPriceRouteEntity::getStartCountyId, param.getStartCountyId());
}
if (ObjectUtil.isNotEmpty(param.getEndCountyId())) {
wrapper.eq(BasicdataPriceRouteEntity::getEndCountyId, param.getEndCountyId());
}
// 提货费
if (StrUtil.contains(serviceType, ServiceTypeEnums.PICK_UP.getCode().toString())) {
// 提货不按区域计费
@ -471,13 +484,8 @@ public class BasicdataPriceServiceImpl extends BaseServiceImpl<BasicdataPriceMap
priceClientVO.setPickup(initPickUp(priceEntity, templateEntity, fullMap.get(FullVehicleTypeEnums.PICK_UP.getCode()), basicMap.get(ServiceTypeEnums.PICK_UP.getCode()), generalMap.get(GeneralServiceTypeEnums.PICK_UP.getCode())));
} else {
// 按区域计费,查询路径,返回价格
List<BasicdataPriceRouteEntity> routeEntities = basicdataPriceRouteService.list(Wrappers.<BasicdataPriceRouteEntity>lambdaQuery()
.eq(BasicdataPriceRouteEntity::getPriceId, priceEntity.getId())
.eq(BasicdataPriceRouteEntity::getSendOrgId, param.getSendOrgId())
.eq(BasicdataPriceRouteEntity::getStartCountyId, param.getStartCountyId())
.eq(BasicdataPriceRouteEntity::getEndCountyId, param.getEndCountyId())
.eq(BasicdataPriceRouteEntity::getServiceType, ServiceTypeEnums.PICK_UP.getCode())
);
wrapper.eq(BasicdataPriceRouteEntity::getServiceType, ServiceTypeEnums.TRUNK_LINE.getCode());
List<BasicdataPriceRouteEntity> routeEntities = basicdataPriceRouteService.list(wrapper);
if (CollUtil.isNotEmpty(routeEntities)) {
PriceRouteVO detail = basicdataPriceRouteService.detail(routeEntities.get(0).getId());
PricePickupVO pickup = new PricePickupVO();
@ -500,13 +508,8 @@ public class BasicdataPriceServiceImpl extends BaseServiceImpl<BasicdataPriceMap
basicMap.get(ServiceTypeEnums.TRUNK_LINE.getCode()), generalMap.get(GeneralServiceTypeEnums.TRUNK_LINE.getCode())));
} else {
// 按区域计费,查询路径,返回价格
List<BasicdataPriceRouteEntity> routeEntities = basicdataPriceRouteService.list(Wrappers.<BasicdataPriceRouteEntity>lambdaQuery()
.eq(BasicdataPriceRouteEntity::getPriceId, priceEntity.getId())
.eq(BasicdataPriceRouteEntity::getSendOrgId, param.getSendOrgId())
.eq(BasicdataPriceRouteEntity::getStartCountyId, param.getStartCountyId())
.eq(BasicdataPriceRouteEntity::getEndCountyId, param.getEndCountyId())
.eq(BasicdataPriceRouteEntity::getServiceType, ServiceTypeEnums.TRUNK_LINE.getCode())
);
wrapper.eq(BasicdataPriceRouteEntity::getServiceType, ServiceTypeEnums.TRUNK_LINE.getCode());
List<BasicdataPriceRouteEntity> routeEntities = basicdataPriceRouteService.list(wrapper);
if (CollUtil.isNotEmpty(routeEntities)) {
PriceRouteVO detail = basicdataPriceRouteService.detail(routeEntities.get(0).getId());
PriceTrunkLineVO trunkLineVO = new PriceTrunkLineVO();

19
blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java

@ -23,6 +23,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;
@RestController
@ -37,7 +38,7 @@ public class BusinessPreOrderApi {
@PostMapping("/list")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "模糊查询", notes = "传入trayTypeDTO")
public R list(@RequestBody BusinessPreListDTO queryrderDTO){
public R list(@RequestBody BusinessPreListDTO queryrderDTO) {
DistributionBusinessPreOrderListVO data = distributionIBusinessPreOrderService.list(queryrderDTO);
@ -45,9 +46,15 @@ public class BusinessPreOrderApi {
}
/**
* 商家入库接口
* 零担入库也走这个接口
* @param businessSanDTO
* @return
*/
@PostMapping("/scanOrderPackageCode")
@ApiOperationSupport(order = 1)
public R scanOrderPackageCode(@RequestBody BusinessSanDTO businessSanDTO){
public R scanOrderPackageCode(@RequestBody BusinessSanDTO businessSanDTO) {
Resp resp = null;
try {
@ -61,12 +68,13 @@ public class BusinessPreOrderApi {
@GetMapping("/listCarNum")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "条件查询", notes = "传入trayTypeDTO")
public R listCarNum(DistributionBusinessPreCarNumerPageQueryVO distributionBusinessPreCarNumerPageQueryVO, Query query){
public R listCarNum(DistributionBusinessPreCarNumerPageQueryVO distributionBusinessPreCarNumerPageQueryVO, Query query) {
IPage<DistributionBusinessPreCarNumerPageVO> data = distributionIBusinessPreOrderService.listCarNum(Condition.getPage(query),distributionBusinessPreCarNumerPageQueryVO);
IPage<DistributionBusinessPreCarNumerPageVO> data = distributionIBusinessPreOrderService.listCarNum(Condition.getPage(query), distributionBusinessPreCarNumerPageQueryVO);
return R.data(data);
}
@ -74,7 +82,7 @@ public class BusinessPreOrderApi {
@GetMapping("/preCarInfoDetailByCarNum")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "条件查询", notes = "传入trayTypeDTO")
public R preCarInfoDetailByCarNum(DistributionBusinessPreCarNumerPageQueryVO distributionBusinessPreCarNumerPageQueryVO){
public R preCarInfoDetailByCarNum(DistributionBusinessPreCarNumerPageQueryVO distributionBusinessPreCarNumerPageQueryVO) {
DistributionBusinessPreCarDetalVO distributionBusinessPreCarDetalVO = distributionIBusinessPreOrderService.preCarInfoDetailByCarNumber(distributionBusinessPreCarNumerPageQueryVO);
@ -82,5 +90,4 @@ public class BusinessPreOrderApi {
}
}

6
blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml

@ -160,9 +160,9 @@
SELECT distr_car_number,
waybill_number,
order_code,
COUNT(1) as totalNum,
COUNT(CASE WHEN in_warehouse = 1 THEN 1 END) as inNum,
COUNT(1)-COUNT(CASE WHEN in_warehouse = 1 THEN 1 END) as restNum
sum(quantity) as totalNum,
sum(unload_num) as inNum,
sum(quantity)-sum(unload_num) as restNum
from logpm_business_pre_order
<where>

13
blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessAsyncServiceImpl.java

@ -46,6 +46,10 @@ public class BusinessAsyncServiceImpl implements IBusinessAsyncService {
log.info(" saveOtherDataBaseNew dataResult 参数错误");
}
LambdaQueryWrapper<BusinessPreOrderEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(BusinessPreOrderEntity::getInWarehouse, 0);
lambdaQueryWrapper.in(BusinessPreOrderEntity::getOrderCode, orderCodeList);
@ -62,7 +66,7 @@ public class BusinessAsyncServiceImpl implements IBusinessAsyncService {
businessPreOrderEntity.setTenantId(tenant.getTenantId());
if (businessPreOrderEntity.getStockArticleId().equals(distributionBusinessPreOrderEntity.getStockArticleId())) {
// 找到订单
if (businessPreOrderEntity.getOrderPackageCode().equals(distributionBusinessPreOrderEntity.getOrderPackageCode())) {
if (distributionBusinessPreOrderEntity.getConditions().equals(1) && businessPreOrderEntity.getOrderPackageCode().equals(distributionBusinessPreOrderEntity.getOrderPackageCode())) {
//找到包件 并标记为删除状态
if (distributionBusinessPreOrderEntity.getInWarehouse().equals(1)) {
// 需要删除集合中的数据
@ -70,6 +74,13 @@ public class BusinessAsyncServiceImpl implements IBusinessAsyncService {
} else {
temsp.add(distributionBusinessPreOrderEntity.getId());
}
}else if(distributionBusinessPreOrderEntity.getConditions().equals(3) &&distributionBusinessPreOrderEntity.getFirsts().equals(businessPreOrderEntity.getFirsts())){
if (distributionBusinessPreOrderEntity.getInWarehouse().equals(1)) {
// 需要删除集合中的数据
dataResult.remove(i);
} else {
temsp.add(distributionBusinessPreOrderEntity.getId());
}
}
}

181
blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java

@ -17,8 +17,10 @@ import com.logpm.business.service.IBusinessAsyncService;
import com.logpm.business.service.IBusinessPreOrderService;
import com.logpm.business.vo.*;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.feign.IDistributionDeliveryListClient;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.trunkline.dto.InComingDTO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.feign.IInComingClient;
@ -56,6 +58,8 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
private final BladeRedis bladeRedis;
private final IWarehouseTrayTypeClient warehouseTrayTypeClient;
private final IDistributionDeliveryListClient distributionDeliveryListClient;
private final IDistributionStockArticleClient distributionStockArticleClient;
private final IDistributionParcelListClient distributionParcelListClient;
@Override
@ -98,6 +102,7 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
// 更新成功
// 更新入库状态
distributionBusinessPreOrderEntity.setInWarehouse(1);
distributionBusinessPreOrderEntity.setUnloadNum(1);
baseMapper.updateById(distributionBusinessPreOrderEntity);
Object o = bladeRedis.get(RedisKeyConstant.BUSINESS_IN_CARNUMBER + distributionBusinessPreOrderEntity.getDistrCarNumber());
if (!Objects.isNull(o)) {
@ -200,43 +205,151 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
try {
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
businessSanDTO.setWarehouseId(myCurrentWarehouse.getId());
businessSanDTO.setWarehouseName(myCurrentWarehouse.getName());
String orderPackageCode = businessSanDTO.getOrderPackageCode();
String distrCarNumber = businessSanDTO.getDistrCarNumber();
if ("1".equals(businessSanDTO.getConditions())) {
businessSanDTO.setWarehouseId(myCurrentWarehouse.getId());
businessSanDTO.setWarehouseName(myCurrentWarehouse.getName());
String orderPackageCode = businessSanDTO.getOrderPackageCode();
String distrCarNumber = businessSanDTO.getDistrCarNumber();
if (Func.isAllEmpty(orderPackageCode, distrCarNumber, businessSanDTO.getInWarehouseException())) {
return Resp.scanFail("扫描失败", "没有包件或者车次");
}
// 查询配送车次下面所有的包件
LambdaQueryWrapper<BusinessPreOrderEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BusinessPreOrderEntity::getDistrCarNumber, distrCarNumber);
queryWrapper.eq(BusinessPreOrderEntity::getIsDeleted, 0);
List<BusinessPreOrderEntity> list = baseMapper.selectList(queryWrapper);
if (list.isEmpty()) {
return Resp.scanFail("扫描失败", "车次信息不存在");
}
if (Func.isAllEmpty(orderPackageCode, distrCarNumber, businessSanDTO.getInWarehouseException())) {
return Resp.scanFail("扫描失败", "没有包件或者车次");
}
// 查询配送车次下面所有的包件
LambdaQueryWrapper<BusinessPreOrderEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BusinessPreOrderEntity::getDistrCarNumber, distrCarNumber);
queryWrapper.eq(BusinessPreOrderEntity::getIsDeleted, 0);
List<BusinessPreOrderEntity> list = baseMapper.selectList(queryWrapper);
if (list.isEmpty()) {
return Resp.scanFail("扫描失败", "车次信息不存在");
}
// 异常入库
if (1 == businessSanDTO.getInWarehouseException()) {
Resp a = handleExceptionalWarehourse(businessSanDTO, list, orderPackageCode, distrCarNumber);
if (a != null) return a;
} else {
//正常入口
Resp scanFail = handleNormalWarehourse(businessSanDTO, orderPackageCode, list, distrCarNumber);
if (scanFail != null) return scanFail;
}
} else if ("3".equals(businessSanDTO.getConditions())) {
// 零担
LambdaQueryWrapper<BusinessPreOrderEntity> queryWrapper3 = new LambdaQueryWrapper<>();
queryWrapper3.eq(BusinessPreOrderEntity::getDistrCarNumber, businessSanDTO.getDistrCarNumber());
queryWrapper3.eq(BusinessPreOrderEntity::getReservationCode, businessSanDTO.getReservationCode());
queryWrapper3.eq(BusinessPreOrderEntity::getOrderCode, businessSanDTO.getOrderCode());
queryWrapper3.eq(BusinessPreOrderEntity::getFirsts, businessSanDTO.getFirsts());
List<BusinessPreOrderEntity> list3 = baseMapper.selectList(queryWrapper3);
if (list3.isEmpty()) {
throw new CustomerException("入库数据错误,请联系管理员");
}
BusinessPreOrderEntity businessPreOrderEntity = list3.get(0);
if (1 == businessPreOrderEntity.getInWarehouse()) {
return Resp.scanFail("操作失败", businessSanDTO.getFirsts() + "已入库");
}
// 构建 订单
DistributionStockArticleEntity distributionStockArticleEntity = checkStockArticle(businessPreOrderEntity, myCurrentWarehouse);
// 构建 订单下级【包件】
DistributionParcelListEntity distributionParcelListEntityByOrderCodeAndFirstName = distributionParcelListClient.findDistributionParcelListEntityByOrderCodeAndFirstName(businessPreOrderEntity.getOrderCode(), businessSanDTO.getFirsts(), myCurrentWarehouse.getId());
int temp = 0;
if (distributionParcelListEntityByOrderCodeAndFirstName == null) {
// 执行新增功能
DistributionParcelListEntity distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId = distributionParcelListClient.findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(businessPreOrderEntity.getFromTenantId(), businessPreOrderEntity.getOrderCode(), businessSanDTO.getFirsts(), businessPreOrderEntity.getWarehouseId());
if (distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId != null) {
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setId(null);
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setTenantId(null);
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setCreateUser(null);
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setUpdateUser(null);
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setCreateTime(null);
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setUpdateTime(null);
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setOrderPackageReservationStatus("10");
// 卸车数量作为入库数量
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setQuantity(businessSanDTO.getUnloadNum());
distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setStockArticleId(distributionStockArticleEntity.getId());
distributionParcelListClient.add(distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId);
temp = businessSanDTO.getUnloadNum();
}
} else {
// 修改其入库数量
if(distributionParcelListEntityByOrderCodeAndFirstName.getQuantity()<businessSanDTO.getUnloadNum()){
temp = distributionParcelListEntityByOrderCodeAndFirstName.getQuantity() - businessSanDTO.getUnloadNum();
}else{
temp = businessSanDTO.getUnloadNum() - distributionParcelListEntityByOrderCodeAndFirstName.getQuantity();
}
distributionParcelListEntityByOrderCodeAndFirstName.setQuantity(businessSanDTO.getUnloadNum());
distributionParcelListClient.update(distributionParcelListEntityByOrderCodeAndFirstName);
}
distributionStockArticleEntity.setHandQuantity(distributionStockArticleEntity.getHandQuantity() + temp);
distributionStockArticleEntity.setIncomingNum(distributionStockArticleEntity.getIncomingNum() + temp);
distributionStockArticleClient.saveOrUpdate(distributionStockArticleEntity);
// 修改预入库数据
businessPreOrderEntity.setInWarehouse(1);
businessPreOrderEntity.setUnloadNum(businessSanDTO.getUnloadNum());
this.updateById(businessPreOrderEntity);
return Resp.scanSuccess("操作成功", "入库"+businessSanDTO.getUnloadNum()+"件");
// 异常入库
if (1 == businessSanDTO.getInWarehouseException()) {
Resp a = handleExceptionalWarehourse(businessSanDTO, list, orderPackageCode, distrCarNumber);
if (a != null) return a;
} else {
//正常入口
Resp scanFail = handleNormalWarehourse(businessSanDTO, orderPackageCode, list, distrCarNumber);
if (scanFail != null) return scanFail;
log.warn("?? 参数传递错误 ");
}
} catch (Exception e) {
log.error("系统异常", e);
throw new CustomerException(e.getMessage());
}
return Resp.scanFail("扫描失败", "系统错误");
return Resp.scanFail("操作失败", "系统错误");
}
/**
* 对订单进行处理 当订单不存在的时候进行新增
*
* @param businessPreOrderEntity
* @param myCurrentWarehouse
* @return
*/
private DistributionStockArticleEntity checkStockArticle(BusinessPreOrderEntity businessPreOrderEntity, BasicdataWarehouseEntity myCurrentWarehouse) {
DistributionStockArticleEntity byOrderSelfNumAndTenantId = distributionStockArticleClient.findByOrderSelfNum(businessPreOrderEntity.getOrderCode(), myCurrentWarehouse.getId());
if (byOrderSelfNumAndTenantId == null) {
// 执行新增功能
byOrderSelfNumAndTenantId = distributionStockArticleClient.findByOrderSelfNumAndTenantId(businessPreOrderEntity.getFromTenantId(), businessPreOrderEntity.getOrderCode(), businessPreOrderEntity.getWarehouseId());
if (byOrderSelfNumAndTenantId != null) {
byOrderSelfNumAndTenantId.setId(null);
byOrderSelfNumAndTenantId.setTenantId(null);
byOrderSelfNumAndTenantId.setCreateUser(null);
byOrderSelfNumAndTenantId.setUpdateUser(null);
byOrderSelfNumAndTenantId.setCreateTime(null);
byOrderSelfNumAndTenantId.setUpdateTime(null);
byOrderSelfNumAndTenantId.setOrderStatus("20");
byOrderSelfNumAndTenantId.setReservationStatus("10");
byOrderSelfNumAndTenantId.setWarehouse(myCurrentWarehouse.getName());
byOrderSelfNumAndTenantId.setWarehouseId(myCurrentWarehouse.getId());
byOrderSelfNumAndTenantId.setDeliveryQuantity(0);
byOrderSelfNumAndTenantId.setStoreTime(null);
byOrderSelfNumAndTenantId.setWaybillId(null);
// 对应新增的订单默认在库件数未0
byOrderSelfNumAndTenantId.setHandQuantity(0);
Long id = distributionStockArticleClient.addData(byOrderSelfNumAndTenantId);
byOrderSelfNumAndTenantId.setId(id);
}
}
return byOrderSelfNumAndTenantId;
}
@Nullable
private Resp handleNormalWarehourse(BusinessSanDTO businessSanDTO, String orderPackageCode, List<BusinessPreOrderEntity> list, String distrCarNumber) {
LambdaQueryWrapper<BusinessPreOrderEntity> queryWrapper1 = new LambdaQueryWrapper<>();
@ -295,6 +408,7 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
R r = inOrderWarehourseByFeign(businessSanDTO);
if (r.isSuccess()) {
selectD.setInWarehouse(1);
selectD.setUnloadNum(1);
this.updateById(selectD);
int a = 0;
@ -389,6 +503,7 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
R r = inOrderWarehourseByFeign(businessSanDTO);
if (r.isSuccess() && t != null) {
t.setInWarehouse(1);
t.setUnloadNum(1);
this.updateById(t);
int a = 0;
@ -466,6 +581,7 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
LambdaQueryWrapper<BusinessPreOrderEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BusinessPreOrderEntity::getDistrCarNumber, queryVO.getDistrCarNumber());
queryWrapper.eq(BusinessPreOrderEntity::getIsDeleted, 0);
queryWrapper.eq(BusinessPreOrderEntity::getConditions, queryVO.getConditions());
List<BusinessPreOrderEntity> list = this.list(queryWrapper);
if (list != null) {
@ -488,13 +604,24 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
private void processGroupedData(String orderCode, List<BusinessPreOrderEntity> entities, List<DistributionBusinessPreCarOrderDetalVO> data) {
DistributionBusinessPreCarOrderDetalVO t = new DistributionBusinessPreCarOrderDetalVO();
t.setOrderCode(orderCode);
String wallbillNum = entities.stream().map(BusinessPreOrderEntity::getWaybillNumber).distinct().collect(Collectors.joining(","));
// todo 这里的计算存在问题,没有计算零担的数据
int planNum = entities.size();
int loadNum = (int) entities.stream().filter(e -> "20".equals(e.getOrderPackageLoadingStatus())).count();
int inNum = (int) entities.stream().filter(e -> e.getInWarehouse() == 1).count();
// 计算 entities 集合中 对象 的quantity 的和值
int planNum = entities.stream().mapToInt(BusinessPreOrderEntity::getQuantity).sum();
// 装车数量
int loadNum = entities.stream().mapToInt(BusinessPreOrderEntity::getLoadNum).sum();
// 卸车数量== 入库数量
int inNum = entities.stream().mapToInt(BusinessPreOrderEntity::getUnloadNum).sum();
/**
* 零担无法进行异常卸车
*/
int inExceNum = (int) entities.stream().filter(e -> e.getOperationStatus() == 1).count();
String wallbillNum = entities.stream().map(BusinessPreOrderEntity::getWaybillNumber).distinct().collect(Collectors.joining(","));
t.setWaybillNumber(wallbillNum);
t.setLoadCarCount(loadNum);

2
blade-service/logpm-business/src/main/resources/application-dev.yml

@ -11,7 +11,7 @@ server:
spring:
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
druid:

14
blade-service/logpm-business/src/main/resources/application-test.yml

@ -25,19 +25,7 @@ spring:
url: ${blade.datasource.business.master.url}
username: ${blade.datasource.business.master.username}
password: ${blade.datasource.business.master.password}
627683:
url: ${blade.datasource.business.627683.url}
username: ${blade.datasource.business.627683.username}
password: ${blade.datasource.business.627683.password}
645789:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.business.645789.url}
username: ${blade.datasource.business.645789.username}
password: ${blade.datasource.business.645789.password}
#rabbitmq配置
rabbitmq:
host: 192.168.2.110

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

@ -37,6 +37,7 @@ import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.ZeroPackageSupplyVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.annotations.ChangeAsync;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
@ -218,11 +219,20 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
distributionStockArticleService.updateOrderInfo(orderCode, warehouseId);
}
@Override
public DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstName(String orderCode, String first, Long warehouseId) {
LambdaQueryWrapper<DistributionParcelListEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DistributionParcelListEntity::getOrderCode, orderCode);
lambdaQueryWrapper.eq(DistributionParcelListEntity::getFirsts, first);
lambdaQueryWrapper.eq(DistributionParcelListEntity::getWarehouseId, warehouseId);
return distributionParcelListService.getOne(lambdaQueryWrapper);
}
@ChangeAsync
@Override
public Integer SumEntityByOrderId(Long orderId, Long warehouseId) {
Integer i = distributionParcelListService.selectSumByOrderId(orderId, warehouseId);
return i;
public DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(String tenantId, String orderCode, String first, Long warehouseId) {
return findDistributionParcelListEntityByOrderCodeAndFirstName(orderCode, first, warehouseId);
}
@Override

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

@ -77,4 +77,9 @@ public class DistributionParcelNumberClient implements IDistributionParcelNumber
return distributionParcelNumberService.list(queryWrapper);
}
@Override
public void addHandleQuantity(Long packageId, int num) {
distributionParcelNumberService.addZeroQuantity(packageId, num);
}
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java

@ -32,6 +32,7 @@ import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.vo.UpDownStockupAreaVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.annotations.ChangeAsync;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
@ -108,6 +109,12 @@ public class DistributionStockArticleClient implements IDistributionStockArticle
return distributionStockArticleService.getOne(queryWrapper);
}
@ChangeAsync
@Override
public DistributionStockArticleEntity findByOrderSelfNumAndTenantId(String tenantId, String orderCode, Long warehouseId) {
return findByOrderSelfNum(orderCode,warehouseId);
}
@Override
public void deleteById(Long orderId) {
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml

@ -211,7 +211,6 @@
FROM logpm_distribution_delivery_list lddl
left JOIN logpm_distribution_signfor lds on lddl.id = lds.delivery_id
LEFT JOIN logpm_distribution_reservation ldr on ldr.id = lds.reservation_id
LEFT JOIN (SELECT lddl.id,ldsa.order_code FROM logpm_distribution_delivery_list lddl LEFT JOIN logpm_distribution_signfor lds ON lddl.id = lds.delivery_id LEFT JOIN logpm_distribution_reservation_stockarticle AS ldrs ON lds.reservation_id = ldrs.reservation_id AND ldrs.stock_article_status != 2 LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldrs.stock_article_id = ldsa.id ) AS y ON y.id = lddl.id
<where>
lddl.is_deleted = 0
AND (IF(lddl.delivery_number is null ,0,lddl.delivery_number) + IF(lddl.inventory_nub is null ,0,lddl.inventory_nub)) > 0
@ -250,7 +249,7 @@
and lddl.loading_team_name like concat('%',#{param.loadingTeamName},'%')
</if>
<if test="param.orderCode != null and param.orderCode!=''">
and y.order_code like concat('%',#{param.orderCode},'%')
and ldr.stock_article_id like concat('%',#{param.orderCode},'%')
</if>
<if test="param.kind != null and param.kind!=''">
and lddl.kind = #{param.kind}

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java

@ -181,9 +181,17 @@ public interface DistributionLoadscanMapper extends BaseMapper<DistributionLoads
/**
* 判断零担订单是否完成签收
* @param reservationId
* @param parcelListId
* @param packageId
* @param reservationNum
* @return
*/
Boolean judgmentZeroPackageIsSign(@Param("reservationId") Long reservationId,@Param("packageId") Long packageId,@Param("num") Integer reservationNum);
/**
* 根据预约单ID和包间Id查询装车/签收数据
* @param reservationId
* @param parcelListId
* @return
*/
DistributionLoadscanEntity findLoadDataByRelationIdAndParcelListId(@Param("reservationId") Long reservationId, @Param("parcelListId")Long parcelListId);
}

11
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml

@ -80,7 +80,7 @@
SELECT GROUP_CONCAT(DISTINCT ldl.driver_name SEPARATOR ',' ) FROM logpm_distribution_loadscan ldl where ldl.order_id =#{id}
</select>
<select id="statisticsLoadingNum" resultType="java.lang.Integer">
SELECT COUNT(ldl.loaded_nub) FROM logpm_distribution_loadscan AS ldl Where ldl.delivery_id = #{deliveryListId} and ldl.is_abnormal_loading = 1 and ldl.scan_status != 1
SELECT IFNULL(SUM(ldl.loaded_nub),0) FROM logpm_distribution_loadscan AS ldl Where ldl.delivery_id = #{deliveryListId} and ldl.is_abnormal_loading = 1 and ldl.scan_status != 1
</select>
<select id="statisticsAbnormalLoadingNum" resultType="java.lang.Integer">
SELECT COUNT(ldl.loaded_nub) FROM logpm_distribution_loadscan AS ldl Where ldl.delivery_id = #{deliveryListId} and ldl.is_abnormal_loading = 2
@ -147,4 +147,13 @@
WHERE
reservation_id = #{reservationId} AND package_id = #{packageId}
</select>
<select id="findLoadDataByRelationIdAndParcelListId"
resultType="com.logpm.distribution.entity.DistributionLoadscanEntity">
SELECT
*
FROM
logpm_distribution_loadscan
WHERE
reservation_id = #{reservationId} AND parcel_list_id = #{parcelListId}
</select>
</mapper>

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

@ -1880,8 +1880,8 @@
lwwd.product_name goodsName,
ldpl.quantity stockNum
from logpm_distribution_parcel_list ldpl
left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advanceId
where lwwd.order_code = #{waybillNo}
left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advance_id
where lwwd.waybill_no = #{waybillNo}
</select>
<select id="findEntityVOListByOrderCode" resultType="com.logpm.distribution.vo.DistributionParcelListVO">

60
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java

@ -3,11 +3,9 @@ package com.logpm.distribution.receiver;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.logpm.business.entity.BusinessPreOrderEntity;
import com.logpm.business.feign.IBusinessPreOrderClient;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.entity.DistributionReservationPackageEntity;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.service.*;
import com.logpm.trunkline.feign.IExtractedDataClient;
import com.rabbitmq.client.Channel;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -27,6 +25,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@Slf4j
@RabbitListener(queues = RabbitConstant.BUSINESS_PRE_CONVERSION_DATA_QUEUE)
@ -38,8 +37,11 @@ public class BusinessPreOrderDataQueueHandler {
private final IDistributionReservationService distributionReservationService;
private final IDistributionReservationPackageService distributionReservationPackageService;
private final IDistributionParcelListService distributionParcelListService;
private final IDistributionReservationZeroPackageService distributionReservationZeroPackageService;
private final ISysClient sysClient;
private final IBusinessPreOrderClient businessPreOrderClient;
private final IExtractedDataClient extractedDataClient;
private final IDistributionLoadscanService distributionLoadscanService;
private final IDistributionAsyncService distributionAsyncService;
@ -107,6 +109,10 @@ public class BusinessPreOrderDataQueueHandler {
DistributionParcelListEntity byId = distributionParcelListService.getById(distributionReservationPackageEntity.getParceListId());
BusinessPreOrderEntity data = BeanUtil.copy(byId, BusinessPreOrderEntity.class);
// 判断包件是否装车
if ("20".equals(byId.getOrderPackageLoadingStatus())) {
data.setLoadNum(1);
}
data.setDriverName(distributionDeliveryListEntity.getDriverName());
data.setVehicleName(distributionDeliveryListEntity.getVehicleName());
data.setDistrCarNumber(distributionDeliveryListEntity.getTrainNumber());
@ -119,11 +125,57 @@ public class BusinessPreOrderDataQueueHandler {
data.setTaskTime(distributionDeliveryListEntity.getTaskTime());
dataResult.add(data);
}
// 零担数据
LambdaQueryWrapper<DistributionReservationZeroPackageEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DistributionReservationZeroPackageEntity::getReservationId, distributionReservationEntity.getId());
lambdaQueryWrapper.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, 2);
List<DistributionReservationZeroPackageEntity> list1 = distributionReservationZeroPackageService.list(lambdaQueryWrapper);
for (DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity : list1) {
// 查询包间
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(distributionReservationZeroPackageEntity.getParcelListId());
if (parcelListEntity != null) {
BusinessPreOrderEntity data = BeanUtil.copy(parcelListEntity, BusinessPreOrderEntity.class);
// 计划数量
data.setQuantity(distributionReservationZeroPackageEntity.getQuantity());
// 获取装车数量
DistributionLoadscanEntity distributionLoadscanEntity = distributionLoadscanService.findLoadDataByRelationIdAndParcelListId(distributionReservationZeroPackageEntity.getReservationId(), distributionReservationZeroPackageEntity.getParcelListId());
if(distributionLoadscanEntity != null){
//设置装车数量
data.setLoadNum(distributionLoadscanEntity.getLoadedNub());
}
data.setDriverName(distributionDeliveryListEntity.getDriverName());
data.setVehicleName(distributionDeliveryListEntity.getVehicleName());
data.setDistrCarNumber(distributionDeliveryListEntity.getTrainNumber());
data.setFromTenantId(parcelListEntity.getTenantId());
data.setOperationStatus(0);
data.setInWarehouse(0);
data.setId(null);
data.setTenantId(null);
data.setReservationCode(distributionReservationEntity.getReservationCode());
data.setTaskTime(distributionDeliveryListEntity.getTaskTime());
dataResult.add(data);
}
}
}
}
// 处理暂存但的数据
// 获取运单号集合
List<String> waybillNumberList = dataResult.stream().map(BusinessPreOrderEntity::getWaybillNumber).distinct().collect(Collectors.toList());
// 发送数据
Tenant tenant = changeDataBase(mallName);
waybillNumberList.forEach(waybillNumber -> extractedDataClient.execute(tenant.getTenantId(), waybillNumber));
businessPreOrderClient.saveOtherDataBaseNew(tenant.getTenantId(), dataResult, mallName);
// CompletableFuture.supplyAsync(() -> {
//// saveOtherData(tenant.getTenantId(),waybillBilllByWaybillNos, trunklineAdvanceDetailEntities, trunklineAdvanceEntities, trunklineWaybillPackageEntities, trunklineWaybillOrderEntities, warehouseWayBillDetails, distributionParcelListEntities, mallName);

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

@ -56,4 +56,12 @@ public interface IDistributionLoadscanService extends BaseService<DistributionLo
* @return
*/
String selectDriverNameByOrderId(Long id);
/**
* 根据预约单ID和包间ID 查询装车数据
* @param reservationId
* @param parcelListId
* @return
*/
DistributionLoadscanEntity findLoadDataByRelationIdAndParcelListId(Long reservationId, Long parcelListId);
}

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

@ -80,4 +80,5 @@ public interface IDistributionParcelNumberService extends BaseService<Distributi
Integer augmentSignForNum(Long id, Long stockArticleId, Integer quantity);
void addZeroQuantity(Long packageId, int num);
}

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -3274,8 +3274,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
// 通过包件id 查询包件
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(ladingScanEntity.getStockArticleId());
if(stockArticleEntity !=null){
orderStatusDTO.setOrderNo(stockArticleEntity.getOrderCode());
}
orderStatusDTO.setUnitNo(ladingScanEntity.getPacketBarCode());
orderStatusDTO.setOrderNo(ladingScanEntity.getOrderSelfNumbering());
orderStatusDTO.setStatus("7");
orderStatusDTO.setOperationTime(DateUtil.now());
orderStatusDTO.setCurrentWarehouse(warehouse.getId().toString());

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionLoadscanServiceImpl.java

@ -57,4 +57,8 @@ public class DistributionLoadscanServiceImpl extends BaseServiceImpl<Distributio
return baseMapper.selectDriverNameByOrderId(id);
}
@Override
public DistributionLoadscanEntity findLoadDataByRelationIdAndParcelListId(Long reservationId, Long parcelListId) {
return baseMapper.findLoadDataByRelationIdAndParcelListId(reservationId, parcelListId);
}
}

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

@ -3633,12 +3633,12 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
Map<String, List<DistributionParcelListEntity>> collect = listByOrderPackageCode.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getBrandName));
for (Map.Entry<String, List<DistributionParcelListEntity>> entry : collect.entrySet()) {
String brand = entry.getKey();
List<DistributionParcelListEntity> list = entry.getValue();
List<DistributionParcelListEntity> list2 = entry.getValue();
// 按订单分组
Map<String, List<DistributionParcelListEntity>> collect1 = list.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getOrderCode));
for (Map.Entry<String, List<DistributionParcelListEntity>> stringListEntry : collect1.entrySet()) {
String orderCode = stringListEntry.getKey();
List<DistributionParcelListEntity> list2 = stringListEntry.getValue();
// Map<String, List<DistributionParcelListEntity>> collect1 = list.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getOrderCode));
// for (Map.Entry<String, List<DistributionParcelListEntity>> stringListEntry : collect1.entrySet()) {
// String orderCode = stringListEntry.getKey();
// List<DistributionParcelListEntity> list2 = stringListEntry.getValue();
JSONObject js = new JSONObject();
js.put("boId", billLadingEntity.getId());
js.put("consignee", distrilbutionBillLadingEntity.getConsignee());
@ -3662,13 +3662,18 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
factoryDataMessageSender.sendNodeDataByBrand(msg);
}
}
}
}catch (Exception e){
log.error("推送失败:{}", e);
}
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
// 签收发送消息到工厂
pushFactoryOrderData(myCurrentWarehouse.getId(), ladingScanEntity.getParcelListId().toString(), ladingScanEntity.getOrderSelfNumbering());
if(ladingScanEntity.getStockArticleId()!=null){
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(ladingScanEntity.getStockArticleId());
if(stockArticleEntity!=null){
// 签收发送消息到工厂
pushFactoryOrderData(myCurrentWarehouse.getId(), ladingScanEntity.getParcelListId().toString(), stockArticleEntity.getOrderCode());
}
}
}
}
//修改订单状态
@ -3709,7 +3714,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
handletrunklineWaybillSignLog(billLadingEntity.getId());
}
// 回传工厂数据
sendFactory(myCurrentWarehouse, parcelListIds);
// sendFactory(myCurrentWarehouse, parcelListIds);
return R.success("操作成功");
}

30
blade-service/logpm-distribution/src/main/resources/application-test.yml

@ -39,7 +39,7 @@ spring:
#排除DruidDataSourceAutoConfigure
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
druid:
@ -60,30 +60,4 @@ spring:
url: ${blade.datasource.distribution.master.url}
username: ${blade.datasource.distribution.master.username}
password: ${blade.datasource.distribution.master.password}
627683:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.distribution.627683.url}
username: ${blade.datasource.distribution.627683.username}
password: ${blade.datasource.distribution.627683.password}
695224:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.distribution.695224.url}
username: ${blade.datasource.distribution.695224.username}
password: ${blade.datasource.distribution.695224.password}
645789:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.distribution.645789.url}
username: ${blade.datasource.distribution.645789.username}
password: ${blade.datasource.distribution.645789.password}

3
blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java

@ -97,11 +97,10 @@ public class FactoryNodePushServiceImpl extends BaseServiceImpl<FactoryNodePushM
updater.setResultContent(resBody);
updater.setId(factoryNodePushEntity.getId());
baseMapper.updateById(updater);
return Boolean.TRUE;
}
}
}
return Boolean.FALSE;
return Boolean.TRUE;
}
}

106
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java

@ -117,7 +117,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
handleData(code);
if (ObjectUtils.isNotNull(code)) {
// 暂停推送
if(ObjectUtil.equal(sendDataProperties.getSend(), "new")){
if (ObjectUtil.equal(sendDataProperties.getSend(), "new")) {
log.info("推送新系统");
asyncDataService.handlerOuPaiDataToHt(code);
}
@ -164,7 +164,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
LambdaQueryWrapper<OpOrderStatusLogEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(OpOrderStatusLogEntity::getType, 3);
lambdaQueryWrapper.like(OpOrderStatusLogEntity::getArgs, code);
lambdaQueryWrapper.like(OpOrderStatusLogEntity::getArgs, code);
lambdaQueryWrapper.orderByAsc(OpOrderStatusLogEntity::getCreateTime);
lambdaQueryWrapper.last("limit 1");
return opOrderStatusLogService.getOne(lambdaQueryWrapper);
@ -424,22 +424,22 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
/**
* 重推
* @see #handleStatusData(OrderStatusDTO, boolean)
*
* @param orderStatusDTO
* @return
* @see #handleStatusData(OrderStatusDTO, boolean)
*/
@Override
public boolean retryHandleStatusData(OrderStatusDTO orderStatusDTO){
public boolean retryHandleStatusData(OrderStatusDTO orderStatusDTO) {
R res = handleStatusData(orderStatusDTO, true);
return res.getCode() == 200;
return res.getCode() == 200;
// 测试功能时使用
// return res.getCode() == 200 || Math.random() < 0.5;
}
}
/**
*
* @param orderStatusDTO
* @param isRetry 是否是重推调用
* @param isRetry 是否是重推调用
* @return
*/
private R handleStatusData(OrderStatusDTO orderStatusDTO, boolean isRetry) {
@ -453,6 +453,36 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
return Resp.fail(400, "当前数据的状态不推送");
}
if(unitNo.startsWith("HB")){
// 需要判断当前操作的码 是否是和包码
LambdaQueryWrapper<FactoryPackageEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(FactoryPackageEntity::getCosourcingCode, unitNo);
List<FactoryPackageEntity> list = factoryPackageService.list(queryWrapper);
if (list.isEmpty()) {
return doPackageInfo(orderStatusDTO, isRetry, unitNo, status);
} else {
try {
for (FactoryPackageEntity factoryPackageEntity : list) {
R r = doPackageInfo(orderStatusDTO, isRetry, factoryPackageEntity.getCode(), status);
}
} catch (Exception e) {
log.error("合包码推送出现异常", e);
}
return Resp.success("物流状态传递成功");
}
}else{
return doPackageInfo(orderStatusDTO, isRetry, unitNo, status);
}
}
@NotNull
private R doPackageInfo(OrderStatusDTO orderStatusDTO, boolean isRetry, String unitNo, String status) {
//继续判断是否到达目的仓
String currentWarehouseId = orderStatusDTO.getCurrentWarehouse();//当前仓Id
//查询destinationWarehouse logiBillNo plantId数据
@ -479,7 +509,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
// 不是重试的时候,记录对应数据
if (!isRetry) {
log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo);
log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}", unitNo);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
}
@ -547,11 +577,11 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
if (opPackagePushLogEntity == null) {
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate"));
} else {
if(opPackagePushLogEntity.getId().equals(-1L)){
if (opPackagePushLogEntity.getId().equals(-1L)) {
// 保存异常
// 不是重试的时候,记录对应数据
if (!isRetry) {
log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo);
log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}", unitNo);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
}
}
@ -635,14 +665,16 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
// return Resp.fail(400, "不是目的仓");
// }
// 查询这个包件对应到新系统的订单
FactoryOrderEntity factoryOrder = factoryOrderService.selectEntityByOrderPackageCode(unitNo);
if (Objects.isNull(factoryOrder)) {
// 不是重试的时候,记录对应数据
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
return Resp.fail(400, "未查询到该单据推送订单信息");
}
@ -705,13 +737,13 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate"));
} else {
if(opPackagePushLogEntity.getId().equals(-1L)){
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo);
if (opPackagePushLogEntity.getId().equals(-1L)) {
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
}
// 需要盘点这个对象的
String resp = opPackagePushLogEntity.getResp();
String resp = opPackagePushLogEntity.getResp();
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp);
// TODO: 2023/10/25 不知道返回成功的状态是多少
@ -842,20 +874,20 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
private OpPackagePushLogEntity sendPushOuPaiDataNew(Long refId, String url, Integer pushType, JSONObject data) {
OpPackagePushLogEntity opPackagePushLogEntity = new OpPackagePushLogEntity();
opPackagePushLogEntity.setArgs(data.toJSONString());
opPackagePushLogEntity.setPushType(pushType);
opPackagePushLogEntity.setUrl(url);
opPackagePushLogEntity.setRefId(refId);
opPackagePushLogEntity.setPushOupaiNode(data.getString("Operate"));
OpPackagePushLogEntity opPackagePushLogEntity = new OpPackagePushLogEntity();
opPackagePushLogEntity.setArgs(data.toJSONString());
opPackagePushLogEntity.setPushType(pushType);
opPackagePushLogEntity.setUrl(url);
opPackagePushLogEntity.setRefId(refId);
opPackagePushLogEntity.setPushOupaiNode(data.getString("Operate"));
String token = buildToken();
HttpResponse httpResponse = HttpRequest.post(url).header("Authorization", token).body(data.toJSONString()).execute();
String result = httpResponse.body();
opPackagePushLogEntity.setResp(result);
opPackagePushLogService.save(opPackagePushLogEntity);
return opPackagePushLogEntity;
String token = buildToken();
HttpResponse httpResponse = HttpRequest.post(url).header("Authorization", token).body(data.toJSONString()).execute();
String result = httpResponse.body();
opPackagePushLogEntity.setResp(result);
opPackagePushLogService.save(opPackagePushLogEntity);
return opPackagePushLogEntity;
}
@ -877,26 +909,26 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushOupaiNode, "收货");
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushType, pushType);// 查询包件
List<OpPackagePushLogEntity> list = opPackagePushLogService.list(lambdaQueryWrapper);
if(list.isEmpty()){
data.put("Operate","收货");
if (list.isEmpty()) {
data.put("Operate", "收货");
OpPackagePushLogEntity opPackagePushLogEntity = sendPushOuPaiDataNew(refId, url, 1, data);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 由于欧派数据延迟推送作业,作业上没有进行入库作业回传,在出库回传欧派 再次进行补传入库数据, 包条ID:{}",refId);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 由于欧派数据延迟推送作业,作业上没有进行入库作业回传,在出库回传欧派 再次进行补传入库数据, 包条ID:{}", refId);
// 由于现在无法进行异步任务的绑定,所以对于没有入库数据的说发,导致无法进行延迟 再加上欧派现在没有进行发货数据的考核 所以在检查到没有收货数据的发货推送的时间只传收货
// 将当前的发货的原始数据保存在定时任务 晚上再次执行该原始数据
opPackagePushLogEntity.setId(-1L);
return opPackagePushLogEntity;
}else{
} else {
return sendOupaiDataAndSaveLogs(refId, url, pushType, data);
}
}else {
} else {
return sendOupaiDataAndSaveLogs(refId, url, pushType, data);
}
}
@Nullable
private OpPackagePushLogEntity sendOupaiDataAndSaveLogs(Long refId, String url, Integer pushType, JSONObject data) {
LambdaQueryWrapper<OpPackagePushLogEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<OpPackagePushLogEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getRefId, refId);
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushOupaiNode, data.getString("Operate"));
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushType, pushType);// 查询包件
@ -1288,11 +1320,11 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
String receiveCode = receivingOrderMapper.selectReceivingOrderByOrderId(factoryPackageEntity.getOrderId());
if(receiveCode.equals(code)){
if (receiveCode.equals(code)) {
log.error("############handleData: 包件码已存在 packageCode={} ,订单 id {} 收货单号 {}", packageCode, factoryPackageEntity.getOrderId(), code);
}else{
log.error("############handleData: 该包件存在于其它收货单 packageCode={} 订单ID {} 收货单号 {}", packageCode,factoryPackageEntity.getOrderId(), receiveCode);
} else {
log.error("############handleData: 该包件存在于其它收货单 packageCode={} 订单ID {} 收货单号 {}", packageCode, factoryPackageEntity.getOrderId(), receiveCode);
}
//throw new CustomerException(403, "包件码已存在");

5
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java

@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
@ -53,6 +54,10 @@ public class HwyOrderStatusHandler {
String orderSelfNum = orderStatusDTO.getOrderNo();//订单自编号
String unitNo = orderStatusDTO.getUnitNo();
//通过订单自编号去查询该条订单是属于哪个工厂
if(StringUtil.isEmpty(orderSelfNum)){
log.warn(">>>>>>> 订单号是null hwyOrderStatusHandler {}",orderStatusDTO);
return ;
}
TrunklineAdvanceEntity advanceLimitOneByOrderCode = trunklineAdvanceClient.findAdvanceLimitOneByOrderCode(orderSelfNum);
if (Objects.isNull(advanceLimitOneByOrderCode)) {
log.info("##################hwyOrderStatusHandler: 未找到对应订单 orderNo={}", orderSelfNum);

9
blade-service/logpm-statisticsdata/src/main/resources/application-test.yml

@ -51,11 +51,4 @@ spring:
url: ${blade.datasource.statisticsdata.master.url}
username: ${blade.datasource.statisticsdata.master.username}
password: ${blade.datasource.statisticsdata.master.password}
627683:
url: ${blade.datasource.statisticsdata.627683.url}
username: ${blade.datasource.statisticsdata.627683.username}
password: ${blade.datasource.statisticsdata.627683.password}
695224:
url: ${blade.datasource.statisticsdata.695224.url}
username: ${blade.datasource.statisticsdata.695224.username}
password: ${blade.datasource.statisticsdata.695224.password}

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

@ -1215,8 +1215,8 @@ public class CarsLoadController {
// loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(loadId)){
log.warn(method+"三方中转id为空 loadId={}",loadId);
return R.fail(400,"三方中转id为空");
log.warn(method+"配载id为空 loadId={}",loadId);
return R.fail(400,"配载id为空");
}
return carsLoadService.loadingDetail(loadCarsDTO);
@ -1243,6 +1243,40 @@ public class CarsLoadController {
}
@ResponseBody
@PostMapping("/findZeroDetailByCarsLoadScanId")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查询零担品类信息", notes = "传入loadCarsDTO")
public R findZeroDetailByCarsLoadScanId(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############findZeroDetailByCarsLoadScanId: ";
log.info(method+"请求参数{}",loadCarsDTO);
Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId();
try{
//当前登录人选择的仓库
// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
// if(Objects.isNull(myCurrentWarehouse)){
// log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
// return R.fail(400,"多仓权限无法操作,请选择仓库");
// }
// loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(carsLoadScanId)){
log.warn(method+"装车零担id为空 carsLoadScanId={}",carsLoadScanId);
return R.fail(400,"装车零担id为空");
}
return carsLoadService.findZeroDetailByCarsLoadScanId(carsLoadScanId);
}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,"系统异常");
}
}
@ResponseBody
@PostMapping("/carsLoadDetailInfo")
@ -1430,7 +1464,7 @@ public class CarsLoadController {
return R.fail(405,"目的仓id为空");
}
if(CollUtil.isNotEmpty(zeroPackageList)){
if(CollUtil.isEmpty(zeroPackageList)){
log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList);
return R.fail(405,"品类信息为空");
}

89
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/ExtractedDataClient.java

@ -0,0 +1,89 @@
package com.logpm.trunkline.feign;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity;
import com.logpm.trunkline.entity.TrunklineWaybillPackageEntity;
import com.logpm.trunkline.entity.TrunklineWaybillTrackEntity;
import com.logpm.trunkline.service.IAsyncService;
import com.logpm.trunkline.service.ITrunklineWaybillTrackService;
import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO;
import com.logpm.warehouse.entity.WarehouseWayBillDetail;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import com.logpm.warehouse.feign.IWarehouseWaybillDetailClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.system.entity.Tenant;
import org.springblade.system.feign.ISysClient;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@Slf4j
@ApiIgnore()
@RestController
@AllArgsConstructor
public class ExtractedDataClient implements IExtractedDataClient {
private final IWarehouseWaybillClient warehouseWaybillClient;
private final IWarehouseWaybillDetailClient warehouseWaybillDetailClient;
private final ITrunklineWaybillOrderClient trunklineWaybillOrderClient;
private final ITrunklineWaybillPackageClient trunklineWaybillPackageClient;
private final ITrunklineAdvanceClient trunklineAdvanceClient;
private final ITrunklineAdvanceDetailClient trunklineAdvanceDetailClient;
private final IAsyncService asyncService;
private final ITrunklineWaybillTrackService trunklineWaybillTrackService;
@Override
public void execute(String tenantId, String wallbillNum) {
WarehouseWaybillEntity byWaybillNo = warehouseWaybillClient.findByWaybillNo(wallbillNum);
if (byWaybillNo == null) {
log.warn(">>>>>>>>>>>>>>byWaybillNo {} ", byWaybillNo);
return;
}
List<Long> waybillIds = new ArrayList<>();
waybillIds.add(byWaybillNo.getId());
List<WarehouseWayBillDetail> warehouseWayBillDetails = warehouseWaybillDetailClient.findByWaybillId(byWaybillNo.getId());
List<TrunklineWaybillOrderEntity> trunklineWaybillOrderEntities = trunklineWaybillOrderClient.findListByWaybillNo(byWaybillNo.getWaybillNo());
List<TrunklineWaybillPackageEntity> trunklineWaybillPackageEntities = trunklineWaybillPackageClient.findListByWaybillIds(waybillIds);
// 暂存单ID集合
List<Long> collect = trunklineWaybillOrderEntities.stream().map(TrunklineWaybillOrderEntity::getAdvanceId).distinct().collect(Collectors.toList());
if(!collect.isEmpty()){
List<TrunklineAdvanceEntity> trunklineAdvanceEntities = trunklineAdvanceClient.findListByIds(collect);
List<TrunklineAdvanceDetailVO> trunklineAdvanceDetailEntities = trunklineAdvanceDetailClient.findListByAdvanceIds(collect);
// 获取暂存单明细
LambdaQueryWrapper<TrunklineWaybillTrackEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TrunklineWaybillTrackEntity::getWaybillId, byWaybillNo.getId());
queryWrapper.eq(TrunklineWaybillTrackEntity::getTrackType, "10");
List<TrunklineWaybillTrackEntity> list = trunklineWaybillTrackService.list(queryWrapper);
TrunklineWaybillTrackEntity trunklineWaybillTrackEntity = list.get(0);
CompletableFuture.supplyAsync(() -> {
asyncService.saveOtherData(tenantId, byWaybillNo, trunklineAdvanceDetailEntities, trunklineAdvanceEntities, trunklineWaybillPackageEntities, trunklineWaybillOrderEntities, warehouseWayBillDetails, trunklineWaybillTrackEntity);
return null;
});
}
}
}

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

@ -468,6 +468,9 @@
<if test="param.settlementPerson != null and param.settlementPerson != ''">
and Locate(#{param.settlementPerson},ltcl.settlement_person) > 0
</if>
<if test="param.customerType != null and param.customerType != ''">
and Locate(#{param.customerType},ltcl.customer_type) > 0
</if>
<if test="param.createTimeStart != null ">
and ltcl.create_time &gt;= #{param.createTimeStart}

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

@ -181,4 +181,6 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper<TrunklineCarsLoa
List<UnloadPackageVO> findUnloadZeroListByLoadIdAndFinalNodeId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
List<SignPackageVO> findSignPackageListBySignOrderId(@Param("signOrderId") Long signOrderId);
List<Long> findAllIdListByLoadIdAndScanStatus(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus);
}

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

@ -689,7 +689,8 @@
</select>
<select id="loadingDetailExport" resultType="com.logpm.trunkline.vo.LoadingDetailExportVO">
select ltcls.waybill_no waybillNo,
select ltcls.id id,
ltcls.waybill_no waybillNo,
ltcls.load_code carsNo,
ltcls.order_code orderCode,
ltcls.scan_code scanCode,
@ -976,4 +977,11 @@
where sign_order_id = #{signOrderId}
</select>
<select id="findAllIdListByLoadIdAndScanStatus" resultType="java.lang.Long">
select id
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and scan_status = #{scanStatus}
</select>
</mapper>

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

@ -2,6 +2,7 @@ package com.logpm.trunkline.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.vo.GoodsLoadingNumVO;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
@ -14,4 +15,9 @@ public interface TrunklineScanZeroDetailMapper extends BaseMapper<TrunklineScanZ
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanId(@Param("carsLoadScanId") Long carsLoadScanId);
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(@Param("carsLoadScanIds") List<Long> carsLoadScanIds);
List<GoodsLoadingNumVO> findGoodsLoadingNum(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId, @Param("waybillNo") String waybillNo, @Param("orderCode") String orderCode);
void deleteListByCarsLoadScanIds(@Param("carsLoadScanIds") List<Long> carsLoadScanIds);
}

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

@ -18,4 +18,25 @@
</foreach>
</select>
<select id="findGoodsLoadingNum" resultType="com.logpm.trunkline.vo.GoodsLoadingNumVO">
select ltszd.goods_id goodsId,
sum(ltszd.loading_num) loadingNum
from logpm_trunkline_cars_load_scan ltcls
left join logpm_trunkline_scan_zero_detail ltszd on ltszd.scan_id = ltcls.id
where ltcls.load_id = #{loadId}
and ltcls.warehouse_id = #{warehouseId}
and ltcls.waybill_no = #{waybillNo}
and ltcls.order_code = #{orderCode}
group by ltszd.goods_id
</select>
<delete id="deleteListByCarsLoadScanIds">
delete from logpm_trunkline_scan_zero_detail
where scan_id in
<foreach collection="carsLoadScanIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</delete>
</mapper>

67
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/OpenWaybillToBusinessListener.java

@ -8,10 +8,7 @@ import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity;
import com.logpm.trunkline.entity.TrunklineWaybillPackageEntity;
import com.logpm.trunkline.entity.TrunklineWaybillTrackEntity;
import com.logpm.trunkline.feign.ITrunklineAdvanceClient;
import com.logpm.trunkline.feign.ITrunklineAdvanceDetailClient;
import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient;
import com.logpm.trunkline.feign.ITrunklineWaybillPackageClient;
import com.logpm.trunkline.feign.*;
import com.logpm.trunkline.service.IAsyncService;
import com.logpm.trunkline.service.ITrunklineWaybillTrackService;
import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO;
@ -58,29 +55,18 @@ import java.util.stream.Collectors;
//@RabbitListener(queues = RabbitConstant.OPEN_WAYBILL_TO_BUSINESS_DATA_QUEUE)
public class OpenWaybillToBusinessListener {
private final IWarehouseWaybillClient warehouseWaybillClient;
private final IWarehouseWaybillDetailClient warehouseWaybillDetailClient;
private final ITrunklineWaybillOrderClient trunklineWaybillOrderClient;
private final ITrunklineWaybillPackageClient trunklineWaybillPackageClient;
private final ITrunklineAdvanceClient trunklineAdvanceClient;
private final ITrunklineAdvanceDetailClient trunklineAdvanceDetailClient;
private final ISysClient sysClient;
private final IAsyncService asyncService;
private ITrunklineWaybillTrackService trunklineWaybillTrackService;
private final IExtractedDataClient extractedDataClient;
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.trunkline.OPENWAYBILL.QUEUE.SEND_BUSINESS_DATA_BY_OPENWAYBILL_DATA),
exchange = @Exchange(name = FanoutConstants.trunkline.OPENWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT)
))
@Transactional(rollbackFor = Exception.class)
// @RabbitListener(bindings = @QueueBinding(
// value = @Queue(name = FanoutConstants.trunkline.OPENWAYBILL.QUEUE.SEND_BUSINESS_DATA_BY_OPENWAYBILL_DATA),
// exchange = @Exchange(name = FanoutConstants.trunkline.OPENWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT)
// ))
// @Transactional(rollbackFor = Exception.class)
public void openWaybillToBusinessDataHandler(String message) {
@ -112,11 +98,11 @@ public class OpenWaybillToBusinessListener {
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.trunkline.UPDATEWAYBILL.QUEUE.SEND_BUSINESS_DATA_BY_UPDATEWAYBILL_DATA),
exchange = @Exchange(name = FanoutConstants.trunkline.UPDATEWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT)
))
@Transactional(rollbackFor = Exception.class)
// @RabbitListener(bindings = @QueueBinding(
// value = @Queue(name = FanoutConstants.trunkline.UPDATEWAYBILL.QUEUE.SEND_BUSINESS_DATA_BY_UPDATEWAYBILL_DATA),
// exchange = @Exchange(name = FanoutConstants.trunkline.UPDATEWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT)
// ))
// @Transactional(rollbackFor = Exception.class)
public void updateWaybillToBusinessDataHandler(String message) {
@ -171,34 +157,7 @@ public class OpenWaybillToBusinessListener {
private void extractedTenant(Tenant tenant, WarehouseWaybillEntity byWaybillId) {
List<Long> waybillIds = new ArrayList<>();
waybillIds.add(byWaybillId.getId());
List<WarehouseWayBillDetail> warehouseWayBillDetails = warehouseWaybillDetailClient.findByWaybillId(byWaybillId.getId());
List<TrunklineWaybillOrderEntity> trunklineWaybillOrderEntities = trunklineWaybillOrderClient.findListByWaybillIds(waybillIds);
List<TrunklineWaybillPackageEntity> trunklineWaybillPackageEntities = trunklineWaybillPackageClient.findListByWaybillIds(waybillIds);
// 暂存单ID集合
List<Long> collect = trunklineWaybillOrderEntities.stream().map(TrunklineWaybillOrderEntity::getAdvanceId).distinct().collect(Collectors.toList());
List<TrunklineAdvanceEntity> trunklineAdvanceEntities = trunklineAdvanceClient.findListByIds(collect);
// 获取暂存单明细
List<TrunklineAdvanceDetailVO> trunklineAdvanceDetailEntities = trunklineAdvanceDetailClient.findListByAdvanceIds(collect);
LambdaQueryWrapper<TrunklineWaybillTrackEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TrunklineWaybillTrackEntity::getWaybillId, byWaybillId.getId());
queryWrapper.eq(TrunklineWaybillTrackEntity::getTrackType, "10");
List<TrunklineWaybillTrackEntity> list = trunklineWaybillTrackService.list(queryWrapper);
TrunklineWaybillTrackEntity trunklineWaybillTrackEntity = list.get(0);
Tenant finalTenant = tenant;
CompletableFuture.supplyAsync(() -> {
asyncService.saveOtherData(finalTenant.getTenantId(), byWaybillId, trunklineAdvanceDetailEntities, trunklineAdvanceEntities, trunklineWaybillPackageEntities, trunklineWaybillOrderEntities, warehouseWayBillDetails, trunklineWaybillTrackEntity);
return null;
});
extractedDataClient.execute(tenant.getTenantId(), byWaybillId.getWaybillNo());
}

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

@ -177,4 +177,6 @@ public interface ITrunklineCarsLoadScanService extends BaseService<TrunklineCars
List<UnloadPackageVO> findUnloadZeroListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId);
List<SignPackageVO> findSignPackageListBySignOrderId(Long signOrderId);
List<Long> findAllIdListByLoadIdAndScanStatus(Long loadId, String scanStatus);
}

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

@ -226,4 +226,6 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R signOrderZeroSuppleList(LoadCarsDTO loadCarsDTO);
R startCarsBefore(Long loadId, Long warehouseId);
R findZeroDetailByCarsLoadScanId(Long carsLoadScanId);
}

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

@ -1,6 +1,7 @@
package com.logpm.trunkline.service;
import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity;
import com.logpm.trunkline.vo.GoodsLoadingNumVO;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import org.springblade.core.mp.base.BaseService;
@ -10,4 +11,9 @@ public interface ITrunklineScanZeroDetailService extends BaseService<TrunklineSc
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanId(Long carsLoadScanId);
List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(List<Long> carsLoadScanIds);
List<GoodsLoadingNumVO> findGoodsLoadingNum(Long loadId, Long warehouseId, String waybillNo, String orderCode);
void deleteListByCarsLoadScanIds(List<Long> carsLoadScanIds);
}

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

@ -155,6 +155,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
}
//把list中所有的senderName去重放入一个Set集合
Set<String> senderFactorySet = list.stream().filter(e -> StringUtil.isNotBlank(e.getSenderFactory())).map(TrunklineAdvanceEntity::getSenderFactory).collect(Collectors.toSet());
Set<String> senderNameSet = list.stream().filter(e -> StringUtil.isNotBlank(e.getSenderName())).map(TrunklineAdvanceEntity::getSenderName).collect(Collectors.toSet());
Set<String> senderPhoneSet = list.stream().filter(e -> StringUtil.isNotBlank(e.getSenderPhone())).map(TrunklineAdvanceEntity::getSenderPhone).collect(Collectors.toSet());
Set<String> senderAddressSet = list.stream().filter(e -> StringUtil.isNotBlank(e.getSenderAddress())).map(TrunklineAdvanceEntity::getSenderAddress).collect(Collectors.toSet());
@ -202,6 +203,19 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
openOrderVO.setDepartureArray(departureArray);
}
}else{
if(CollUtil.isNotEmpty(senderFactorySet) && senderFactorySet.size() == 1){
openOrderVO.setShipper(senderFactorySet.iterator().next());
}
if(CollUtil.isNotEmpty(senderNameSet) && senderNameSet.size() == 1){
openOrderVO.setShipperName(senderNameSet.iterator().next());
}
if(CollUtil.isNotEmpty(senderPhoneSet) && senderPhoneSet.size() == 1){
openOrderVO.setShipperMobile(senderPhoneSet.iterator().next());
}
if(CollUtil.isNotEmpty(senderAddressSet) && senderAddressSet.size() == 1){
openOrderVO.setShipperAddress(senderAddressSet.iterator().next());
}
}
@ -781,7 +795,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
if (Objects.isNull(basicdataCategoryEntity)) {
basicdataCategoryEntity = new BasicdataCategoryEntity();
basicdataCategoryEntity.setName(goodsName);
basicdataCategoryEntity.setType(1);
basicdataCategoryEntity.setType(10);
goodsId = basicdataCategoryClient.addReturnId(basicdataCategoryEntity);
} else {
goodsId = basicdataCategoryEntity.getId();

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

@ -17,6 +17,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.Date;
import java.util.List;
import java.util.Map;
@ -454,4 +455,9 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineC
return baseMapper.findSignPackageListBySignOrderId(signOrderId);
}
@Override
public List<Long> findAllIdListByLoadIdAndScanStatus(Long loadId, String scanStatus) {
return baseMapper.findAllIdListByLoadIdAndScanStatus(loadId,scanStatus);
}
}

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

@ -423,7 +423,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//更新关联订单数据的发车数量
trunklineCarsOrderService.updateStartNumByLoadIdAndWarehouseId(loadId, warehouseId);
//删除没有装车的计划数据
trunklineCarsOrderService.deleteNoRealNumByLoadIdAndWarehouseId(loadId, warehouseId);
// trunklineCarsOrderService.deleteNoRealNumByLoadIdAndWarehouseId(loadId, warehouseId);
//更新关联订单数据的发车数量
updateNumByLoadId(loadId);
@ -1709,6 +1709,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.data(map);
}
@Override
public R findZeroDetailByCarsLoadScanId(Long carsLoadScanId) {
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId);
return R.data(zeroDetailVOList);
}
@Transactional(rollbackFor = Exception.class)
@Override
@ -2390,6 +2398,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if(!Objects.isNull(stockArticleEntity)){
distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(), i);
}
//把trunklineCarsLoadScanEntities1中所有元素的id放入一个List
List<Long> scanIds = trunklineCarsLoadScanEntities1.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(scanIds);
//把zeroDetailVOList按照packageId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> zeroDetailVOMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId));
zeroDetailVOMap.keySet().forEach(packageId -> {
List<TrunklineScanZeroDetailVO> zeroDetailVOS = zeroDetailVOMap.get(packageId);
Integer lNum = zeroDetailVOS.stream().mapToInt(t -> Objects.nonNull(t.getLoadingNum()) ? t.getLoadingNum() : 0).sum();
Integer uNum = zeroDetailVOS.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum();
if(uNum != lNum){
int diff = lNum - uNum;
distributionParcelListClient.addZeroQuantity(packageId, diff);
distributionParcelNumberClient.addHandleQuantity(packageId,diff);
}
});
});
}
});
@ -2583,7 +2607,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
List<Long> scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndNoScanStatus(loadId,"3");
// List<Long> scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndNoScanStatus(loadId,"3");
List<Long> scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndScanStatus(loadId,"2");
return signLoadScanByIds(scanLoadIds,warehouseId);
@ -2654,7 +2679,29 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
loadCarsDTO.setUnloadTimeEnd(CommonUtil.getEndByDateStr(loadCarsDTO.getUnloadTimeEndStr()));
IPage<TrunklineCarsLoadScanVO> pageList = trunklineCarsLoadScanService.loadingDetail(page, loadCarsDTO);
List<TrunklineCarsLoadScanVO> records = pageList.getRecords();
//把records中type等于2的id放入一个集合
List<Long> scanLoadIds = records.stream().filter(item -> item.getType() == 2).map(TrunklineCarsLoadScanVO::getId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(scanLoadIds)){
List<TrunklineScanZeroDetailVO> scanZeroDetailVOS = scanZeroDetailService.findListByCarsLoadScanIds(scanLoadIds);
//把scanZeroDetailVOS通过scanId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> scanZeroDetailVOMap = scanZeroDetailVOS.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
records.forEach(item -> {
Long scanId = item.getId();
List<TrunklineScanZeroDetailVO> list = scanZeroDetailVOMap.get(scanId);
//把list中所有元素的goodsName用逗号拼起来
String loadingGoods = list.stream()
.map(t-> t.getGoodsName()+"("+t.getLoadingNum()+")")
.collect(Collectors.joining(","));
String unloadGoods = list.stream()
.map(t-> t.getGoodsName()+"("+t.getUnloadNum()+")")
.collect(Collectors.joining(","));
item.setLoadingGoods(loadingGoods);
item.setUnloadGoods(unloadGoods);
});
}
pageList.setRecords(records);
return R.data(pageList);
}
@ -3052,6 +3099,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//把parcelListEntities转化为id作为key的Map
Map<Long, DistributionParcelListEntity> parcelListMapById = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, Function.identity()));
List<DistributionParcelNumberEntity> parcelNumberEntityList = distributionParcelNumberClient.findListByParcelListIds(new ArrayList<>(parcelListMapById.keySet()));
//把parcelNumberEntityList转化成以parceListId为key的Map
Map<Long, DistributionParcelNumberEntity> parcelNumberMapByParceListId = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity()));
//把parcelListEntities转化成以firsts作为key的map
Map<String, DistributionParcelListEntity> parcelListMap = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity()));
@ -3151,6 +3201,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
loadScanId = carsLoadScanEntity.getId();
List<TrunklineScanZeroDetailEntity> zeroDetailList = new ArrayList<>();
List<DistributionParcelListEntity> updateParceList = new ArrayList<>();
List<DistributionParcelNumberEntity> updateParceNumberList = new ArrayList<>();
if(CollUtil.isNotEmpty(zeroPackageList)){
Long finalLoadScanId = loadScanId;
zeroPackageList.forEach(zeroPackageDTO -> {
@ -3164,10 +3215,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
zeroDetailList.add(scanZeroDetailEntity);
DistributionParcelListEntity parcelList = parcelListMap.get(zeroPackageDTO.getGoodsName());
Integer quantity = parcelList.getQuantity();
Long parcelListId = parcelList.getId();
DistributionParcelListEntity updateEntity = new DistributionParcelListEntity();
updateEntity.setId(parcelList.getId());
updateEntity.setId(parcelListId);
updateEntity.setQuantity(quantity-zeroPackageDTO.getEnterNum());
updateParceList.add(updateEntity);
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId.get(parcelListId);
DistributionParcelNumberEntity updateNumberEntity = new DistributionParcelNumberEntity();
updateNumberEntity.setId(parcelNumberEntity.getId());
updateNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity()-zeroPackageDTO.getEnterNum());
updateParceNumberList.add(updateNumberEntity);
});
}else{
if(enterNum == handQuantity){
@ -3184,10 +3241,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
scanZeroDetailEntity.setUnloadNum(0);
zeroDetailList.add(scanZeroDetailEntity);
Integer quantity = entity.getQuantity();
Long parceListId = entity.getId();
DistributionParcelListEntity updateEntity = new DistributionParcelListEntity();
updateEntity.setId(entity.getId());
updateEntity.setQuantity(quantity-entityByWaybillDetailId.getNum());
updateParceList.add(updateEntity);
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId.get(parceListId);
DistributionParcelNumberEntity updateNumberEntity = new DistributionParcelNumberEntity();
updateNumberEntity.setId(parcelNumberEntity.getId());
updateNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity()-entityByWaybillDetailId.getNum());
updateParceNumberList.add(updateNumberEntity);
});
}
}
@ -3197,6 +3260,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
if(CollUtil.isNotEmpty(updateParceNumberList)){
distributionParcelNumberClient.updateList(updateParceNumberList);
}
difficult = enterNum;
distributionStockArticleClient.submitHandleNumByOrderId(enterNum, articleId);
@ -3227,9 +3293,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<TrunklineScanZeroDetailEntity> zeroDetailList = new ArrayList<>();
List<DistributionParcelListEntity> updateParceList = new ArrayList<>();
List<DistributionParcelNumberEntity> updateParceNumberList = new ArrayList<>();
QueryWrapper<TrunklineScanZeroDetailEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("scanId",loadScanId);
queryWrapper1.eq("scan_id",loadScanId);
List<TrunklineScanZeroDetailEntity> scanZeroDetailEntities = scanZeroDetailService.list(queryWrapper1);
//把scanZeroDetailEntities中所有元素的scanId作为key转为Map
Map<Long, TrunklineScanZeroDetailEntity> map = scanZeroDetailEntities.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity()));
@ -3248,11 +3315,20 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.fail(405, "包件信息不存在");
}
Integer quantity = parcelList.getQuantity();
Long parcelListId = parcelList.getId();
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId.get(parcelListId);
if(Objects.isNull(parcelNumberEntity)){
log.warn("##################loadingZero: 包件信息不存在111 packageId={}", packageId);
return R.fail(405, "包件信息不存在");
}
Integer handQuantity1 = parcelNumberEntity.getHandQuantity();
Integer loadingNum = scanZeroDetailEntity.getLoadingNum();
int i2 = enterNum1 - loadingNum;
parcelList.setQuantity(quantity-i2);
updateParceList.add(parcelList);
parcelNumberEntity.setHandQuantity(handQuantity1-i2);
updateParceNumberList.add(parcelNumberEntity);
scanZeroDetailEntity.setLoadingNum(enterNum1);
zeroDetailList.add(scanZeroDetailEntity);
}
@ -3263,6 +3339,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
if(CollUtil.isNotEmpty(updateParceNumberList)){
distributionParcelNumberClient.updateList(updateParceNumberList);
}
}
audio = (enterNum)+"件";
@ -3607,7 +3686,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
public R findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId) {
List<OrderScanDetailVO> orderScanDetailList = trunklineCarsLoadScanService.findCarsLoadingOrderDetail(loadId, orderCode, warehouseId);
if(CollUtil.isNotEmpty(orderScanDetailList)){
//把orderScanDetailList中所有元素的loadScanId放入一个List
List<Long> loadScanIdList = orderScanDetailList.stream().map(OrderScanDetailVO::getLoadScanId).collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(loadScanIdList);
//把zeroDetailVOList中所有元素通过scanId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> zeroDetailMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
orderScanDetailList.forEach(orderScanDetailVO -> {
Long loadScanId = orderScanDetailVO.getLoadScanId();
List<TrunklineScanZeroDetailVO> list = zeroDetailMap.get(loadScanId);
orderScanDetailVO.setZeroDetailList(list);
});
}
return R.data(orderScanDetailList);
}
@ -3911,6 +4001,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
scanZeroDetailEntity.setUnloadNum(0);
scanZeroDetailEntityList.add(scanZeroDetailEntity);
distributionParcelListClient.addZeroQuantity(packageId,-packageNum);
distributionParcelNumberClient.addHandleQuantity(packageId,-packageNum);
});
scanZeroDetailService.saveBatch(scanZeroDetailEntityList);
@ -6154,7 +6245,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String orderCode = e.getOrderCode();
String waybillNo = e.getWaybillNo();
Integer planNum = e.getPlanNum();
if (realNum < planNum) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
Integer handQuantity = stockArticleEntity.getHandQuantity();
int i = handQuantity + realNum;
if (realNum < planNum && planNum == i) {
loadingZero(loadId, warehouseId, waybillNo, orderCode, null, planNum, "手动一键装车",null);
}
});
@ -6948,7 +7044,30 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
@Override
public List<LoadingDetailExportVO> loadingDetailExport(LoadCarsDTO loadCarsDTO) {
return trunklineCarsLoadScanService.loadingDetailExport(loadCarsDTO);
List<LoadingDetailExportVO> loadingDetailExportVOS = trunklineCarsLoadScanService.loadingDetailExport(loadCarsDTO);
//把records中type等于2的id放入一个集合
List<Long> scanLoadIds = loadingDetailExportVOS.stream().filter(item -> item.getType().equals("零担")).map(LoadingDetailExportVO::getId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(scanLoadIds)){
List<TrunklineScanZeroDetailVO> scanZeroDetailVOS = scanZeroDetailService.findListByCarsLoadScanIds(scanLoadIds);
//把scanZeroDetailVOS通过scanId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> scanZeroDetailVOMap = scanZeroDetailVOS.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId));
loadingDetailExportVOS.forEach(item -> {
Long scanId = item.getId();
List<TrunklineScanZeroDetailVO> list = scanZeroDetailVOMap.get(scanId);
//把list中所有元素的goodsName用逗号拼起来
String loadingGoods = list.stream()
.map(t-> t.getGoodsName()+"("+t.getLoadingNum()+")")
.collect(Collectors.joining(","));
String unloadGoods = list.stream()
.map(t-> t.getGoodsName()+"("+t.getUnloadNum()+")")
.collect(Collectors.joining(","));
item.setLoadingGoods(loadingGoods);
item.setUnloadGoods(unloadGoods);
});
}
return loadingDetailExportVOS;
}
@Override
@ -7194,10 +7313,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<LoadZeroListVO> zeroList = trunklineCarsOrderService.findZeroList(loadId, warehouseId);
zeroList.forEach(loadZeroListVO -> {
String waybillNo = loadZeroListVO.getWaybillNo();
String orderCode = loadZeroListVO.getOrderCode();
List<GoodsLoadingNumVO> loadingNumVOList = scanZeroDetailService.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode);
//把loadingNumVOList转化成以goodsId作为key的Map
Map<Long, GoodsLoadingNumVO> map = loadingNumVOList.stream().collect(Collectors.toMap(GoodsLoadingNumVO::getGoodsId, Function.identity()));
List<JSONObject> zeroPackageList = distributionParcelListClient.findPackageGoodsListByWaybillNo(waybillNo);
List<ZeroPackageVO> ls = new ArrayList<>();
zeroPackageList.forEach(jsonObject -> {
ls.add(jsonObject.toJavaObject(ZeroPackageVO.class));
ZeroPackageVO javaObject = jsonObject.toJavaObject(ZeroPackageVO.class);
Long goodsId = javaObject.getGoodsId();
GoodsLoadingNumVO goodsLoadingNumVO = map.get(goodsId);
if(Objects.isNull(goodsLoadingNumVO)){
javaObject.setLoadingNum(0);
}else{
javaObject.setLoadingNum(goodsLoadingNumVO.getLoadingNum());
}
ls.add(javaObject);
});
loadZeroListVO.setZeroPackageList(ls);
});
@ -7328,6 +7459,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
updateStockArticle.setHandQuantity(distributionStockArticle.getHandQuantity()+num);
updateStockArticleList.add(updateStockArticle);
//把loadScanEntityList2中所有元素的id放入一个List
List<Long> carsLoadScanIdList = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList());
List<TrunklineScanZeroDetailVO> zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds);
//把zeroDetailVOList所有元素通过packageId进行分组
Map<Long, List<TrunklineScanZeroDetailVO>> groupedByPackageId = zeroDetailVOList.stream().filter(trunklineScanZeroDetailVO-> !Objects.isNull(trunklineScanZeroDetailVO.getPackageId()))
.collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId));
groupedByPackageId.keySet().forEach(packageId -> {
List<TrunklineScanZeroDetailVO> scanZeroDetailVOList = groupedByPackageId.get(packageId);
Integer loadingNum = scanZeroDetailVOList.stream().map(TrunklineScanZeroDetailVO::getLoadingNum).reduce(0, Integer::sum);
distributionParcelListClient.addZeroQuantity(packageId, loadingNum);
});
if(warehouseId.equals(fromWarehouseId)){
Long waybillId = distributionStockArticle.getWaybillId();
String waybillNo = distributionStockArticle.getWaybillNumber();
@ -7363,8 +7506,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
});
}
});
//删除装车明细
trunklineCarsLoadScanService.deleteListByCarsLoadScanIds(carsLoadScanIds);
//删除零担的品类信息
scanZeroDetailService.deleteListByCarsLoadScanIds(carsLoadScanIds);
if(CollUtil.isNotEmpty(updateStockArticleList)){
distributionStockArticleClient.updateByBatchId(updateStockArticleList);
@ -9095,6 +9240,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("############unloadZero: 配载计划节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId);
return R.fail(405, "配载计划节点信息不存在");
}
// String nodeStatus = loadLineEntity.getNodeStatus();
// if("10".equals(nodeStatus)){
// log.warn("############unloadZero: 当钱节点还未到车 loadId={} warehouseId={}", loadId, warehouseId);
// return R.fail(405, "当钱节点还未到车");
// }
String unloadStatus = loadLineEntity.getUnloadStatus();
if (!"0".equals(unloadStatus)) {
log.warn("############unloadZero: 当前网点已经卸车确认 loadId={} warehouseId={}", loadId, warehouseId);

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

@ -3,6 +3,7 @@ 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.GoodsLoadingNumVO;
import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -24,4 +25,14 @@ public class TrunklineScanZeroDetailServiceImpl extends BaseServiceImpl<Trunklin
public List<TrunklineScanZeroDetailVO> findListByCarsLoadScanIds(List<Long> carsLoadScanIds) {
return baseMapper.findListByCarsLoadScanIds(carsLoadScanIds);
}
@Override
public List<GoodsLoadingNumVO> findGoodsLoadingNum(Long loadId, Long warehouseId, String waybillNo, String orderCode) {
return baseMapper.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode);
}
@Override
public void deleteListByCarsLoadScanIds(List<Long> carsLoadScanIds) {
baseMapper.deleteListByCarsLoadScanIds(carsLoadScanIds);
}
}

12
blade-service/logpm-trunkline/src/main/resources/application-test.yml

@ -51,15 +51,3 @@ spring:
url: ${blade.datasource.trunkline.master.url}
username: ${blade.datasource.trunkline.master.username}
password: ${blade.datasource.trunkline.master.password}
627683:
url: ${blade.datasource.trunkline.627683.url}
username: ${blade.datasource.trunkline.627683.username}
password: ${blade.datasource.trunkline.627683.password}
695224:
url: ${blade.datasource.trunkline.695224.url}
username: ${blade.datasource.trunkline.695224.username}
password: ${blade.datasource.trunkline.695224.password}
645789:
url: ${blade.datasource.trunkline.645789.url}
username: ${blade.datasource.trunkline.645789.username}
password: ${blade.datasource.trunkline.645789.password}

2
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java

@ -203,4 +203,6 @@ public interface TaskQuestMapper extends BaseMapper<TaskQuestEntity> {
List<QuestContrastPackageExcelVO> exportAllDataWithPackage(@Param("param") QuestDetailDTO questDetailDTO);
List<QuestContrastPackageExcelVO> exportPanDataWithPackage(@Param("param") QuestDetailDTO questDetailDTO);
void deleteGroundingPosition(@Param("questNum") String questNum, @Param("list") List<QuestDetailEntity> questDetailEntities);
}

15
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml

@ -788,4 +788,19 @@
AND quest_status = 1
</select>
<update id="deleteGroundingPosition" >
update ${questNum}
set grounding_position_code = null,
grounding_allocation_id = null,
is_new = 0,
is_change = 0,
is_change_at = 0,
quest_status = 0
where id in
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item.id}
</foreach>
</update>
</mapper>

3
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java

@ -1410,7 +1410,8 @@ public class TaskQuestServiceImpl extends BaseServiceImpl<TaskQuestMapper, TaskQ
questDetailEntities.add(questDetail);
baseMapper.deleteQuestChild(taskSearchDTO.getQuestNum() + "_child", i);
});
baseMapper.updatePositionCodeList(taskSearchDTO.getQuestNum(), questDetailEntities);
// baseMapper.updatePositionCodeList(taskSearchDTO.getQuestNum(), questDetailEntities);
baseMapper.deleteGroundingPosition(taskSearchDTO.getQuestNum(),questDetailEntities);
return R.success("删除成功!!");
} else {
return R.fail("修改失败!!");

14
blade-service/logpm-warehouse/src/main/resources/application-test.yml

@ -12,7 +12,7 @@ server:
spring:
#排除DruidDataSourceAutoConfigure
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
druid:
@ -25,18 +25,6 @@ spring:
url: ${blade.datasource.warehouse.master.url}
username: ${blade.datasource.warehouse.master.username}
password: ${blade.datasource.warehouse.master.password}
627683:
url: ${blade.datasource.warehouse.627683.url}
username: ${blade.datasource.warehouse.627683.username}
password: ${blade.datasource.warehouse.627683.password}
695224:
url: ${blade.datasource.warehouse.695224.url}
username: ${blade.datasource.warehouse.695224.username}
password: ${blade.datasource.warehouse.695224.password}
645789:
url: ${blade.datasource.warehouse.645789.url}
username: ${blade.datasource.warehouse.645789.username}
password: ${blade.datasource.warehouse.645789.password}
#rabbitmq配置
rabbitmq:
host: 192.168.2.110

Loading…
Cancel
Save