Browse Source

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

master
zhenghaoyu 5 months ago
parent
commit
3b3f1b3ad7
  1. 2
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataCategoryEntity.java
  2. 18
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java
  3. 9
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java
  4. 1
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java
  5. 631
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java
  6. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataCategoryImporter.java
  7. 8
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java
  8. 2
      blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/entity/PushOrderDetailEntity.java
  9. 2
      blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/entity/PushOrderEntity.java
  10. 69
      blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mq/NodeDataPushListener.java
  11. 2
      blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/mq/NodeDataPushListener.java
  12. 2
      blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
  13. 4
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java
  14. 25
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java
  15. 16
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  16. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml
  17. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderService.java
  18. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java
  19. 52
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  20. 81
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  21. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillPackageServiceImpl.java
  22. 10
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml
  23. 1
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWarehousingEntryServiceImpl.java

2
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataCategoryEntity.java

@ -114,6 +114,6 @@ public class BasicdataCategoryEntity extends TenantEntity {
* 类型
*/
@ApiModelProperty(value = "类型")
private Integer type;
private String type;
}

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

@ -94,4 +94,22 @@ public class LoadingDetailExportVO implements Serializable {
@ExcelProperty(value = "卸车品类数量")
private String unloadGoods;
@ExcelProperty(value = "一级品类")
private String firsts;
@ExcelProperty(value = "二级品类")
private String senconds;
@ExcelProperty(value = "三级品类")
private String thirds;
@ExcelProperty(value = "客户名称")
private String customerName;
@ExcelProperty(value = "客户电话")
private String customerTelephone;
@ExcelProperty(value = "客户地址")
private String customerAddress;
@ExcelProperty(value = "卸车托盘")
private String unloadTrayName;
}

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

@ -16,6 +16,7 @@
*/
package com.logpm.aftersales.controller;
import cn.hutool.core.collection.CollUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.aftersales.dto.AbnormalRecordDTO;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordService;
@ -28,6 +29,7 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
@ -73,12 +75,13 @@ public class AftersalesAbnormalRecordController extends BladeController {
public R dealAbnormal(@RequestBody AbnormalRecordDTO abnormalRecordDTO) {
String method = "############dealAbnormal: ";
log.info(method + "请求参数{}", abnormalRecordDTO);
Long abnormalRecordId = abnormalRecordDTO.getAbnormalRecordId();
List<Long> abnormalRecordIds = abnormalRecordDTO.getAbnormalRecordIds();
try{
if(Objects.isNull(abnormalRecordId)){
log.warn(method+"异常id为空 abnormalRecordId={}",abnormalRecordId);
if(CollUtil.isEmpty(abnormalRecordIds)){
log.warn(method+"异常id为空 abnormalRecordIds={}",abnormalRecordIds);
return R.fail(405,"异常id为空");
}

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

@ -12,6 +12,7 @@ import java.util.List;
public class AbnormalRecordDTO extends AftersalesAbnormalRecordEntity {
private Long abnormalRecordId;
private List<Long> abnormalRecordIds;
private Integer pageNum;
private Integer pageSize;

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

@ -9,9 +9,9 @@ import com.logpm.aftersales.dto.AbnormalRecordDTO;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity;
import com.logpm.aftersales.mapper.AftersalesAbnormalRecordMapper;
import com.logpm.aftersales.service.IAftersalesAyscService;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordService;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService;
import com.logpm.aftersales.service.IAftersalesAyscService;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DistributionParcelListEntity;
@ -31,6 +31,7 @@ import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.enums.PackageTypeEnums;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.model.PackageData;
import org.springblade.common.utils.CommonUtil;
import org.springblade.core.mp.base.BaseServiceImpl;
@ -38,6 +39,7 @@ import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.function.Function;
@ -101,6 +103,7 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
return R.data(pageList);
}
@Transactional(rollbackFor = Exception.class)
@Override
public R dealAbnormal(AbnormalRecordDTO abnormalRecordDTO) {
@ -109,348 +112,351 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
if(!Objects.isNull(myCurrentWarehouse)){
abnormalRecordDTO.setWarehouseId(myCurrentWarehouse.getId());
}
Long abnormalRecordId = abnormalRecordDTO.getAbnormalRecordId();
AftersalesAbnormalRecordEntity abnormalRecordEntity = baseMapper.selectById(abnormalRecordId);
if(!Objects.isNull(abnormalRecordEntity)){
Integer abnormalStatus = abnormalRecordEntity.getAbnormalStatus();
if(abnormalStatus.equals(1)){
log.warn("################dealAbnormal: 异常已完结");
return R.fail(405,"异常已完结");
}
String abnormalType = abnormalRecordEntity.getAbnormalType();
String upWarehouseName = abnormalRecordEntity.getWarehouseName();
if("1".equals(abnormalType)){
Integer dealType = abnormalRecordDTO.getDealType();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
String orderPackageCode = abnormalRecordEntity.getOrderPackageCode();
if(dealType.equals(1)){
//无效包条码
abnormalRecordEntity.setRemark("已确认为无效包条码("+upWarehouseName+" "+AuthUtil.getNickName()+")");
//删除装车异常数据
trunklineCarsLoadScanClient.removeLoadScanById(carsLoadScanId);
}else if(dealType.equals(2)){
//暂存单入库
R r = trunklineCarsLoadScanClient.incomingPackage(carsLoadScanId);
int code = r.getCode();
if(code != 200){
return r;
}
// Long abnormalRecordId = abnormalRecordDTO.getAbnormalRecordId();
List<Long> abnormalRecordIds = abnormalRecordDTO.getAbnormalRecordIds();
List<AftersalesAbnormalRecordEntity> abnormalRecordEntityList = baseMapper.selectBatchIds(abnormalRecordIds);
if(CollUtil.isNotEmpty(abnormalRecordIds)){
abnormalRecordEntityList.forEach(abnormalRecordEntity -> {
Long abnormalRecordId = abnormalRecordEntity.getId();
Integer abnormalStatus = abnormalRecordEntity.getAbnormalStatus();
if(abnormalStatus.equals(1)){
log.warn("################dealAbnormal: 异常已完结");
throw new CustomerException(405,"异常已完结");
}
String abnormalType = abnormalRecordEntity.getAbnormalType();
String upWarehouseName = abnormalRecordEntity.getWarehouseName();
if("1".equals(abnormalType)){
Integer dealType = abnormalRecordDTO.getDealType();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
String orderPackageCode = abnormalRecordEntity.getOrderPackageCode();
if(dealType.equals(1)){
//无效包条码
abnormalRecordEntity.setRemark("已确认为无效包条码("+upWarehouseName+" "+ AuthUtil.getNickName()+")");
//删除装车异常数据
trunklineCarsLoadScanClient.removeLoadScanById(carsLoadScanId);
}else if(dealType.equals(2)){
//暂存单入库
R r = trunklineCarsLoadScanClient.incomingPackage(carsLoadScanId);
int code = r.getCode();
if(code != 200){
throw new CustomerException(405,"入库失败");
}
//发送异常列表包件入库
List<String> orderPackageCodeList = new ArrayList<>();
orderPackageCodeList.add(orderPackageCode);
aftersakesAyscService.sendReportPackageUnloadData(AuthUtil.getNickName(),AuthUtil.getUserId(),myCurrentWarehouse.getId(),myCurrentWarehouse.getName(),abnormalRecordEntity,orderPackageCodeList);
//发送异常列表包件入库
List<String> orderPackageCodeList = new ArrayList<>();
orderPackageCodeList.add(orderPackageCode);
aftersakesAyscService.sendReportPackageUnloadData(AuthUtil.getNickName(),AuthUtil.getUserId(),myCurrentWarehouse.getId(),myCurrentWarehouse.getName(),abnormalRecordEntity,orderPackageCodeList);
}
}else if("4".equals(abnormalType)){
Integer dealType = abnormalRecordDTO.getDealType();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
String orderPackageCode = abnormalRecordEntity.getOrderPackageCode();
if(dealType.equals(3)){
//本车次少货
abnormalRecordEntity.setRemark("本车次少货("+upWarehouseName+" "+AuthUtil.getNickName()+")");
}else if(dealType.equals(4)){
Long warehouseId = abnormalRecordDTO.getWarehouseId();
R r = trunklineCarsLoadScanClient.adnormalHasStock(carsLoadScanId,warehouseId);
int code = r.getCode();
if(code != 200){
return r;
}
}else if("4".equals(abnormalType)){
Integer dealType = abnormalRecordDTO.getDealType();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
String orderPackageCode = abnormalRecordEntity.getOrderPackageCode();
if(dealType.equals(3)){
//本车次少货
abnormalRecordEntity.setRemark("本车次少货("+upWarehouseName+" "+AuthUtil.getNickName()+")");
}else if(dealType.equals(4)){
Long warehouseId = abnormalRecordDTO.getWarehouseId();
R r = trunklineCarsLoadScanClient.adnormalHasStock(carsLoadScanId,warehouseId);
int code = r.getCode();
if(code != 200){
throw new CustomerException(405,"入库失败");
}
//已入库
abnormalRecordEntity.setRemark("已入库("+upWarehouseName+" "+AuthUtil.getNickName()+")");
//已入库
abnormalRecordEntity.setRemark("已入库("+upWarehouseName+" "+AuthUtil.getNickName()+")");
//发送异常列表包件入库
List<String> orderPackageCodeList = new ArrayList<>();
orderPackageCodeList.add(orderPackageCode);
aftersakesAyscService.sendReportPackageUnloadData(AuthUtil.getNickName(),AuthUtil.getUserId(),myCurrentWarehouse.getId(),myCurrentWarehouse.getName(),abnormalRecordEntity,orderPackageCodeList);
//发送异常列表包件入库
List<String> orderPackageCodeList = new ArrayList<>();
orderPackageCodeList.add(orderPackageCode);
aftersakesAyscService.sendReportPackageUnloadData(AuthUtil.getNickName(),AuthUtil.getUserId(),myCurrentWarehouse.getId(),myCurrentWarehouse.getName(),abnormalRecordEntity,orderPackageCodeList);
}
}
}else if("5".equals(abnormalType)){
//零担卸车数量异常
Long waybillId = null;
Integer dealType = abnormalRecordDTO.getDealType();
List<ZeroPackageDTO> zeroPackageDTOS = abnormalRecordDTO.getZeroPackageDTOS();
Integer num = abnormalRecordEntity.getNum();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId);
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
String orderCode = carsLoadScanEntity.getOrderCode();
List<AftersalesAbnormalRecordZeroDetailEntity> recordZeroDetailEntities = recordZeroDetailService.findListByAbnormalRecordId(abnormalRecordId);
//把zeroPackageDTOS转化成以goodsId作为key的Map
Map<Long, AftersalesAbnormalRecordZeroDetailEntity> recordZeroDetailEntitiesMapByGoodsId = recordZeroDetailEntities.stream().collect(Collectors.toMap(AftersalesAbnormalRecordZeroDetailEntity::getGoodsId, Function.identity()));
List<TrunklineScanZeroDetailEntity> scanZeroDetailEntityList = scanZeroDetailClient.findListByCarsLoadScanId(carsLoadScanId);
DistributionStockArticleEntity stockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
if(!Objects.isNull(stockArticleEntity)){
Long stockId = stockArticleEntity.getId();
if(dealType.equals(5)){
//回退原仓库
recordZeroDetailEntities.forEach(detailEntity -> {
parcelListClient.addZeroQuantity(detailEntity.getPackageId(),detailEntity.getAbnormalNum());
detailEntity.setReturnNum(detailEntity.getAbnormalNum());
});
stockArticleClient.addHandQuantity(stockId,num);
recordZeroDetailService.updateBatchById(recordZeroDetailEntities);
abnormalRecordEntity.setRemark("差异件数退回原仓");
}else if(dealType.equals(6)){
List<PackageData> packageDataList = new ArrayList<>();
if(CollUtil.isEmpty(zeroPackageDTOS)){
log.warn("################dealAbnormal: 品类信息不存在");
return R.fail(405,"品类信息不存在");
}
//入库本仓
Integer enterNum = abnormalRecordDTO.getNum();
//把scanZeroDetailEntityList转化成以packageId为key的map
Map<Long, TrunklineScanZeroDetailEntity> scanZeroDetailEntityMap = scanZeroDetailEntityList.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity()));
if(enterNum > 0){
Date now = new Date();
int diff = num - enterNum;
Long warehouseId = abnormalRecordEntity.getWarehouseId();
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
//把zeroPackageDTOS转化成以packageId作为key的Map
Map<Long, ZeroPackageDTO> zeroPackageDTOSMapByPackageId = zeroPackageDTOS.stream().collect(Collectors.toMap(ZeroPackageDTO::getPackageId, Function.identity()));
if(diff == 0){
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓");
}else{
//回退原仓库
recordZeroDetailEntities.forEach(detailEntity -> {
Long packageId = detailEntity.getPackageId();
Integer abnormalNum = detailEntity.getAbnormalNum();
ZeroPackageDTO zeroPackageDTO = zeroPackageDTOSMapByPackageId.get(packageId);
Integer enterPackageNum = zeroPackageDTO.getEnterNum();
parcelListClient.addZeroQuantity(packageId,abnormalNum - enterPackageNum);
detailEntity.setReturnNum(abnormalNum - enterPackageNum);
});
stockArticleClient.addHandQuantity(stockId,diff);
recordZeroDetailService.updateBatchById(recordZeroDetailEntities);
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓,原仓返回"+diff+"件");
}else if("5".equals(abnormalType)){
//零担卸车数量异常
Long waybillId = null;
Integer dealType = abnormalRecordDTO.getDealType();
List<ZeroPackageDTO> zeroPackageDTOS = abnormalRecordDTO.getZeroPackageDTOS();
Integer num = abnormalRecordEntity.getNum();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId);
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
String orderCode = carsLoadScanEntity.getOrderCode();
List<AftersalesAbnormalRecordZeroDetailEntity> recordZeroDetailEntities = recordZeroDetailService.findListByAbnormalRecordId(abnormalRecordId);
//把zeroPackageDTOS转化成以goodsId作为key的Map
Map<Long, AftersalesAbnormalRecordZeroDetailEntity> recordZeroDetailEntitiesMapByGoodsId = recordZeroDetailEntities.stream().collect(Collectors.toMap(AftersalesAbnormalRecordZeroDetailEntity::getGoodsId, Function.identity()));
List<TrunklineScanZeroDetailEntity> scanZeroDetailEntityList = scanZeroDetailClient.findListByCarsLoadScanId(carsLoadScanId);
DistributionStockArticleEntity stockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
if(!Objects.isNull(stockArticleEntity)){
Long stockId = stockArticleEntity.getId();
if(dealType.equals(5)){
//回退原仓库
recordZeroDetailEntities.forEach(detailEntity -> {
parcelListClient.addZeroQuantity(detailEntity.getPackageId(),detailEntity.getAbnormalNum());
detailEntity.setReturnNum(detailEntity.getAbnormalNum());
});
stockArticleClient.addHandQuantity(stockId,num);
recordZeroDetailService.updateBatchById(recordZeroDetailEntities);
abnormalRecordEntity.setRemark("差异件数退回原仓");
}else if(dealType.equals(6)){
List<PackageData> packageDataList = new ArrayList<>();
if(CollUtil.isEmpty(zeroPackageDTOS)){
log.warn("################dealAbnormal: 品类信息不存在");
throw new CustomerException(405,"品类信息不存在");
}
//入库本仓
Integer enterNum = abnormalRecordDTO.getNum();
//把scanZeroDetailEntityList转化成以packageId为key的map
Map<Long, TrunklineScanZeroDetailEntity> scanZeroDetailEntityMap = scanZeroDetailEntityList.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity()));
if(enterNum > 0){
Date now = new Date();
int diff = num - enterNum;
Long warehouseId = abnormalRecordEntity.getWarehouseId();
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
//把zeroPackageDTOS转化成以packageId作为key的Map
Map<Long, ZeroPackageDTO> zeroPackageDTOSMapByPackageId = zeroPackageDTOS.stream().collect(Collectors.toMap(ZeroPackageDTO::getPackageId, Function.identity()));
if(diff == 0){
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓");
}else{
//回退原仓库
recordZeroDetailEntities.forEach(detailEntity -> {
Long packageId = detailEntity.getPackageId();
Integer abnormalNum = detailEntity.getAbnormalNum();
ZeroPackageDTO zeroPackageDTO = zeroPackageDTOSMapByPackageId.get(packageId);
Integer enterPackageNum = zeroPackageDTO.getEnterNum();
parcelListClient.addZeroQuantity(packageId,abnormalNum - enterPackageNum);
detailEntity.setReturnNum(abnormalNum - enterPackageNum);
});
DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if(Objects.isNull(currentStockArticleEntity)){
currentStockArticleEntity = new DistributionStockArticleEntity();
Integer totalNumber = stockArticleEntity.getTotalNumber();
BeanUtil.copy(stockArticleEntity,currentStockArticleEntity);
currentStockArticleEntity.setId(null);
currentStockArticleEntity.setHandQuantity(enterNum);
currentStockArticleEntity.setWarehouseId(warehouseId);
currentStockArticleEntity.setWarehouse(warehouseEntity.getName());
currentStockArticleEntity.setWarehouseEntryTime(now);
currentStockArticleEntity.setCompleteSet(1);
currentStockArticleEntity.setOrderReceiveStatus("20");
if(totalNumber.equals(enterNum)){
currentStockArticleEntity.setCompleteSet(2);
currentStockArticleEntity.setOrderReceiveStatus("30");
stockArticleClient.addHandQuantity(stockId,diff);
recordZeroDetailService.updateBatchById(recordZeroDetailEntities);
abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓,原仓返回"+diff+"件");
}
currentStockArticleEntity.setStockupStatus("10");
currentStockArticleEntity.setReservationStatus("10");
currentStockArticleEntity.setOrderStatus("20");
currentStockArticleEntity.setGroundingStatus("10");
currentStockArticleEntity.setFreezeStatus("10");
currentStockArticleEntity.setWarehouseEntryTimeEnd(now);
currentStockArticleEntity.setSortingQuantity(0);
currentStockArticleEntity.setDeliveryQuantity(0);
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentStockArticleEntity.setIncomingNum(enterNum);
Long orderId = stockArticleClient.addData(currentStockArticleEntity);
if(!Objects.isNull(orderId)){
List<TrunklineScanZeroDetailEntity> updateScanZeroDetailEntityList = new ArrayList<>();
List<DistributionParcelNumberEntity> addParcelNumberEntityList = new ArrayList<>();
List<AftersalesAbnormalRecordZeroDetailEntity> updateRecordZeroDetailList = new ArrayList<>();
List<DistributionParcelListVO> parcelListEntityList = parcelListClient.findEntityVOListByOrderCode(orderCode, fromWarehouseId);
parcelListEntityList.forEach(parcelListEntity -> {
Long packageId = parcelListEntity.getId();
Integer zeroPackageTotalNum = parcelListEntity.getZeroPackageTotalNum();
ZeroPackageDTO zeroPackageDTO = zeroPackageDTOSMapByPackageId.get(packageId);
Long goodsId = zeroPackageDTO.getGoodsId();
Integer packageEnterNum = zeroPackageDTO.getEnterNum();
//保存包件信息
DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity,currentParcelListEntity);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
currentParcelListEntity.setId(null);
currentParcelListEntity.setQuantity(packageEnterNum);
currentParcelListEntity.setGoodsAllocation(null);
currentParcelListEntity.setStockArticleId(orderId);
currentParcelListEntity.setPallet(null);
currentParcelListEntity.setWarehouseId(warehouseId);
currentParcelListEntity.setWarehouse(warehouseEntity.getName());
currentParcelListEntity.setIsTransfer(1);
if(acceptWarehouseId.equals(warehouseId)){
currentParcelListEntity.setIsTransfer(0);
DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId);
if(Objects.isNull(currentStockArticleEntity)){
currentStockArticleEntity = new DistributionStockArticleEntity();
Integer totalNumber = stockArticleEntity.getTotalNumber();
BeanUtil.copy(stockArticleEntity,currentStockArticleEntity);
currentStockArticleEntity.setId(null);
currentStockArticleEntity.setHandQuantity(enterNum);
currentStockArticleEntity.setWarehouseId(warehouseId);
currentStockArticleEntity.setWarehouse(warehouseEntity.getName());
currentStockArticleEntity.setWarehouseEntryTime(now);
currentStockArticleEntity.setCompleteSet(1);
currentStockArticleEntity.setOrderReceiveStatus("20");
if(totalNumber.equals(enterNum)){
currentStockArticleEntity.setCompleteSet(2);
currentStockArticleEntity.setOrderReceiveStatus("30");
}
currentStockArticleEntity.setStockupStatus("10");
currentStockArticleEntity.setReservationStatus("10");
currentStockArticleEntity.setOrderStatus("20");
currentStockArticleEntity.setGroundingStatus("10");
currentStockArticleEntity.setFreezeStatus("10");
currentStockArticleEntity.setWarehouseEntryTimeEnd(now);
currentStockArticleEntity.setSortingQuantity(0);
currentStockArticleEntity.setDeliveryQuantity(0);
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentStockArticleEntity.setIncomingNum(enterNum);
Long orderId = stockArticleClient.addData(currentStockArticleEntity);
if(!Objects.isNull(orderId)){
List<TrunklineScanZeroDetailEntity> updateScanZeroDetailEntityList = new ArrayList<>();
List<DistributionParcelNumberEntity> addParcelNumberEntityList = new ArrayList<>();
List<AftersalesAbnormalRecordZeroDetailEntity> updateRecordZeroDetailList = new ArrayList<>();
List<DistributionParcelListVO> parcelListEntityList = parcelListClient.findEntityVOListByOrderCode(orderCode, fromWarehouseId);
parcelListEntityList.forEach(parcelListEntity -> {
Long packageId = parcelListEntity.getId();
Integer zeroPackageTotalNum = parcelListEntity.getZeroPackageTotalNum();
ZeroPackageDTO zeroPackageDTO = zeroPackageDTOSMapByPackageId.get(packageId);
Long goodsId = zeroPackageDTO.getGoodsId();
Integer packageEnterNum = zeroPackageDTO.getEnterNum();
//保存包件信息
DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity,currentParcelListEntity);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
currentParcelListEntity.setId(null);
currentParcelListEntity.setQuantity(packageEnterNum);
currentParcelListEntity.setGoodsAllocation(null);
currentParcelListEntity.setStockArticleId(orderId);
currentParcelListEntity.setPallet(null);
currentParcelListEntity.setWarehouseId(warehouseId);
currentParcelListEntity.setWarehouse(warehouseEntity.getName());
currentParcelListEntity.setIsTransfer(1);
if(acceptWarehouseId.equals(warehouseId)){
currentParcelListEntity.setIsTransfer(0);
}
Long parceListId = parcelListClient.addReturnId(currentParcelListEntity);
if(!Objects.isNull(parceListId)){
//保存零担包件数量信息
DistributionParcelNumberEntity currentParcelNumberEntity = new DistributionParcelNumberEntity();
currentParcelNumberEntity.setStockArticleId(orderId);
currentParcelNumberEntity.setParcelListId(parceListId);
currentParcelNumberEntity.setQuantity(zeroPackageTotalNum);
currentParcelNumberEntity.setHandQuantity(packageEnterNum);
currentParcelNumberEntity.setOutboundQuantity(0);
currentParcelNumberEntity.setDeliveryQuantity(0);
currentParcelNumberEntity.setSigninQuantity(0);
addParcelNumberEntityList.add(currentParcelNumberEntity);
}
//更新异常列表零担品类数量信息
AftersalesAbnormalRecordZeroDetailEntity aftersalesAbnormalRecordZeroDetailEntity = recordZeroDetailEntitiesMapByGoodsId.get(goodsId);
AftersalesAbnormalRecordZeroDetailEntity updateRecordZeroDetail = new AftersalesAbnormalRecordZeroDetailEntity();
updateRecordZeroDetail.setId(aftersalesAbnormalRecordZeroDetailEntity.getId());
updateRecordZeroDetail.setIncomingNum(packageEnterNum);
updateRecordZeroDetailList.add(updateRecordZeroDetail);
//更新装车明细零担信息
TrunklineScanZeroDetailEntity scanZeroDetailEntity = scanZeroDetailEntityMap.get(packageId);
TrunklineScanZeroDetailEntity updateScanZeroDetailEntity = new TrunklineScanZeroDetailEntity();
updateScanZeroDetailEntity.setId(scanZeroDetailEntity.getId());
updateScanZeroDetailEntity.setUnloadNum(scanZeroDetailEntity.getUnloadNum()+packageEnterNum);
updateScanZeroDetailEntityList.add(updateScanZeroDetailEntity);
PackageData packageData = new PackageData();
packageData.setOrderCode(orderCode);
packageData.setWaybillNumber(orderCode);
packageData.setProductId(goodsId);
packageData.setProductName(zeroPackageDTO.getGoodsName());
packageData.setNum(packageEnterNum);
packageData.setPackageType(PackageTypeEnums.INV);
packageDataList.add(packageData);
});
if(CollUtil.isNotEmpty(updateRecordZeroDetailList)){
recordZeroDetailService.updateBatchById(updateRecordZeroDetailList);
}
if(CollUtil.isNotEmpty(updateScanZeroDetailEntityList)){
scanZeroDetailClient.updateBetch(updateScanZeroDetailEntityList);
}
Long parceListId = parcelListClient.addReturnId(currentParcelListEntity);
if(!Objects.isNull(parceListId)){
//保存零担包件数量信息
DistributionParcelNumberEntity currentParcelNumberEntity = new DistributionParcelNumberEntity();
currentParcelNumberEntity.setStockArticleId(orderId);
currentParcelNumberEntity.setParcelListId(parceListId);
currentParcelNumberEntity.setQuantity(zeroPackageTotalNum);
currentParcelNumberEntity.setHandQuantity(packageEnterNum);
currentParcelNumberEntity.setOutboundQuantity(0);
currentParcelNumberEntity.setDeliveryQuantity(0);
currentParcelNumberEntity.setSigninQuantity(0);
addParcelNumberEntityList.add(currentParcelNumberEntity);
if(CollUtil.isNotEmpty(addParcelNumberEntityList)){
parcelNumberClient.addBatch(addParcelNumberEntityList);
}
//更新异常列表零担品类数量信息
AftersalesAbnormalRecordZeroDetailEntity aftersalesAbnormalRecordZeroDetailEntity = recordZeroDetailEntitiesMapByGoodsId.get(goodsId);
AftersalesAbnormalRecordZeroDetailEntity updateRecordZeroDetail = new AftersalesAbnormalRecordZeroDetailEntity();
updateRecordZeroDetail.setId(aftersalesAbnormalRecordZeroDetailEntity.getId());
updateRecordZeroDetail.setIncomingNum(packageEnterNum);
updateRecordZeroDetailList.add(updateRecordZeroDetail);
}
}else{
Long orderId = currentStockArticleEntity.getId();
List<DistributionParcelListEntity> parcelListEntityList = parcelListClient.findListByStockArticleId(orderId);
//把parcelListEntityList转化成以firsts为key的map
Map<String, DistributionParcelListEntity> parcelListEntityMapByFirsts = parcelListEntityList.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity()));
List<DistributionParcelNumberEntity> parcelNumberEntityList =parcelNumberClient.findListByStockArticleId(orderId);
//把parcelNumberEntityList转化成以parceListId为key的Map
Map<Long, DistributionParcelNumberEntity> parcelNumberEntityMapByParcelListId = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity()));
//把scanZeroDetailEntityList转化成以goodsId为key的Map
Map<Long, TrunklineScanZeroDetailEntity> scanZeroDetailEntityMapByGoodsId = scanZeroDetailEntityList.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getGoodsId, Function.identity()));
List<TrunklineScanZeroDetailEntity> updateScanZeroDetailEntityList = new ArrayList<>();
List<AftersalesAbnormalRecordZeroDetailEntity> updateAbnormalRecordZeroDetailEntityList = new ArrayList<>();
List<DistributionParcelListEntity> updateParcelListEntityList = new ArrayList<>();
List<DistributionParcelNumberEntity> updateParcelNumberEntityList = new ArrayList<>();
zeroPackageDTOS.forEach(zeroPackageDTO -> {
Integer packageNum = zeroPackageDTO.getEnterNum();
String goodsName = zeroPackageDTO.getGoodsName();
Long goodsId = zeroPackageDTO.getGoodsId();
//更新装车明细零担信息
TrunklineScanZeroDetailEntity scanZeroDetailEntity = scanZeroDetailEntityMap.get(packageId);
TrunklineScanZeroDetailEntity scanZeroDetailEntity = scanZeroDetailEntityMapByGoodsId.get(goodsId);
TrunklineScanZeroDetailEntity updateScanZeroDetailEntity = new TrunklineScanZeroDetailEntity();
updateScanZeroDetailEntity.setId(scanZeroDetailEntity.getId());
updateScanZeroDetailEntity.setUnloadNum(scanZeroDetailEntity.getUnloadNum()+packageEnterNum);
updateScanZeroDetailEntity.setUnloadNum(scanZeroDetailEntity.getUnloadNum()+packageNum);
updateScanZeroDetailEntityList.add(updateScanZeroDetailEntity);
//更新异常列表零担品类数量
AftersalesAbnormalRecordZeroDetailEntity aftersalesAbnormalRecordZeroDetailEntity = recordZeroDetailEntitiesMapByGoodsId.get(goodsId);
AftersalesAbnormalRecordZeroDetailEntity updateRecordZeroDetail = new AftersalesAbnormalRecordZeroDetailEntity();
updateRecordZeroDetail.setId(aftersalesAbnormalRecordZeroDetailEntity.getId());
updateRecordZeroDetail.setIncomingNum(aftersalesAbnormalRecordZeroDetailEntity.getIncomingNum()+packageNum);
updateAbnormalRecordZeroDetailEntityList.add(updateRecordZeroDetail);
//更新;零担包件信息
DistributionParcelListEntity parcelList = parcelListEntityMapByFirsts.get(goodsName);
Long parcelListId = parcelList.getId();
DistributionParcelListEntity updateParceListEntity = new DistributionParcelListEntity();
updateParceListEntity.setId(parcelListId);
updateParceListEntity.setQuantity(parcelList.getQuantity()+packageNum);
updateParcelListEntityList.add(updateParceListEntity);
//更新零担品类数量信息
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberEntityMapByParcelListId.get(parcelListId);
DistributionParcelNumberEntity updateParceNumberEntity = new DistributionParcelNumberEntity();
updateParceNumberEntity.setId(parcelNumberEntity.getId());
updateParceNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity()+packageNum);
updateParcelNumberEntityList.add(updateParceNumberEntity);
PackageData packageData = new PackageData();
packageData.setOrderCode(orderCode);
packageData.setWaybillNumber(orderCode);
packageData.setProductId(goodsId);
packageData.setProductName(zeroPackageDTO.getGoodsName());
packageData.setNum(packageEnterNum);
packageData.setProductName(goodsName);
packageData.setNum(packageNum);
packageData.setPackageType(PackageTypeEnums.INV);
packageDataList.add(packageData);
});
if(CollUtil.isNotEmpty(updateRecordZeroDetailList)){
recordZeroDetailService.updateBatchById(updateRecordZeroDetailList);
}
if(CollUtil.isNotEmpty(updateScanZeroDetailEntityList)){
scanZeroDetailClient.updateBetch(updateScanZeroDetailEntityList);
}
if(CollUtil.isNotEmpty(addParcelNumberEntityList)){
parcelNumberClient.addBatch(addParcelNumberEntityList);
if(CollUtil.isNotEmpty(updateAbnormalRecordZeroDetailEntityList)){
recordZeroDetailService.updateBatchById(updateAbnormalRecordZeroDetailEntityList);
}
if(CollUtil.isNotEmpty(updateParcelListEntityList)){
parcelListClient.updateList(updateParcelListEntityList);
}
if(CollUtil.isNotEmpty(updateParcelNumberEntityList)){
parcelNumberClient.updateList(updateParcelNumberEntityList);
}
stockArticleClient.addHandQuantityAndIncomingNum(currentStockArticleEntity.getId(),enterNum);
}
}else{
Long orderId = currentStockArticleEntity.getId();
List<DistributionParcelListEntity> parcelListEntityList = parcelListClient.findListByStockArticleId(orderId);
//把parcelListEntityList转化成以firsts为key的map
Map<String, DistributionParcelListEntity> parcelListEntityMapByFirsts = parcelListEntityList.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity()));
List<DistributionParcelNumberEntity> parcelNumberEntityList =parcelNumberClient.findListByStockArticleId(orderId);
//把parcelNumberEntityList转化成以parceListId为key的Map
Map<Long, DistributionParcelNumberEntity> parcelNumberEntityMapByParcelListId = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity()));
//把scanZeroDetailEntityList转化成以goodsId为key的Map
Map<Long, TrunklineScanZeroDetailEntity> scanZeroDetailEntityMapByGoodsId = scanZeroDetailEntityList.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getGoodsId, Function.identity()));
List<TrunklineScanZeroDetailEntity> updateScanZeroDetailEntityList = new ArrayList<>();
List<AftersalesAbnormalRecordZeroDetailEntity> updateAbnormalRecordZeroDetailEntityList = new ArrayList<>();
List<DistributionParcelListEntity> updateParcelListEntityList = new ArrayList<>();
List<DistributionParcelNumberEntity> updateParcelNumberEntityList = new ArrayList<>();
zeroPackageDTOS.forEach(zeroPackageDTO -> {
Integer packageNum = zeroPackageDTO.getEnterNum();
String goodsName = zeroPackageDTO.getGoodsName();
Long goodsId = zeroPackageDTO.getGoodsId();
//更新装车明细零担信息
TrunklineScanZeroDetailEntity scanZeroDetailEntity = scanZeroDetailEntityMapByGoodsId.get(goodsId);
TrunklineScanZeroDetailEntity updateScanZeroDetailEntity = new TrunklineScanZeroDetailEntity();
updateScanZeroDetailEntity.setId(scanZeroDetailEntity.getId());
updateScanZeroDetailEntity.setUnloadNum(scanZeroDetailEntity.getUnloadNum()+packageNum);
updateScanZeroDetailEntityList.add(updateScanZeroDetailEntity);
//更新异常列表零担品类数量
AftersalesAbnormalRecordZeroDetailEntity aftersalesAbnormalRecordZeroDetailEntity = recordZeroDetailEntitiesMapByGoodsId.get(goodsId);
AftersalesAbnormalRecordZeroDetailEntity updateRecordZeroDetail = new AftersalesAbnormalRecordZeroDetailEntity();
updateRecordZeroDetail.setId(aftersalesAbnormalRecordZeroDetailEntity.getId());
updateRecordZeroDetail.setIncomingNum(aftersalesAbnormalRecordZeroDetailEntity.getIncomingNum()+packageNum);
updateAbnormalRecordZeroDetailEntityList.add(updateRecordZeroDetail);
//更新;零担包件信息
DistributionParcelListEntity parcelList = parcelListEntityMapByFirsts.get(goodsName);
Long parcelListId = parcelList.getId();
DistributionParcelListEntity updateParceListEntity = new DistributionParcelListEntity();
updateParceListEntity.setId(parcelListId);
updateParceListEntity.setQuantity(parcelList.getQuantity()+packageNum);
updateParcelListEntityList.add(updateParceListEntity);
//更新零担品类数量信息
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberEntityMapByParcelListId.get(parcelListId);
DistributionParcelNumberEntity updateParceNumberEntity = new DistributionParcelNumberEntity();
updateParceNumberEntity.setId(parcelNumberEntity.getId());
updateParceNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity()+packageNum);
updateParcelNumberEntityList.add(updateParceNumberEntity);
PackageData packageData = new PackageData();
packageData.setOrderCode(orderCode);
packageData.setWaybillNumber(orderCode);
packageData.setProductId(goodsId);
packageData.setProductName(goodsName);
packageData.setNum(packageNum);
packageData.setPackageType(PackageTypeEnums.INV);
packageDataList.add(packageData);
});
if(CollUtil.isNotEmpty(updateScanZeroDetailEntityList)){
scanZeroDetailClient.updateBetch(updateScanZeroDetailEntityList);
}
if(CollUtil.isNotEmpty(updateAbnormalRecordZeroDetailEntityList)){
recordZeroDetailService.updateBatchById(updateAbnormalRecordZeroDetailEntityList);
}
if(CollUtil.isNotEmpty(updateParcelListEntityList)){
parcelListClient.updateList(updateParcelListEntityList);
}
if(CollUtil.isNotEmpty(updateParcelNumberEntityList)){
parcelNumberClient.updateList(updateParcelNumberEntityList);
}
stockArticleClient.addHandQuantityAndIncomingNum(currentStockArticleEntity.getId(),enterNum);
}
carsLoadScanEntity.setScanStatus("2");
carsLoadScanEntity.setUnloadNum(carsLoadScanEntity.getUnloadNum()+enterNum);
trunklineCarsLoadScanClient.updateEntity(carsLoadScanEntity);
carsLoadScanEntity.setScanStatus("2");
carsLoadScanEntity.setUnloadNum(carsLoadScanEntity.getUnloadNum()+enterNum);
trunklineCarsLoadScanClient.updateEntity(carsLoadScanEntity);
String waybillNo = carsLoadScanEntity.getWaybillNo();
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo);
String waybillNo = carsLoadScanEntity.getWaybillNo();
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo);
if(!Objects.isNull(waybillEntity)){
waybillId = waybillEntity.getId();
}
Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId();
String warehouseName = warehouseEntity.getName();
String operationRemark = warehouseName+"干线异常列表卸车,总数/卸车数:"+num+"/"+enterNum+",卸车时间"+ CommonUtil.dateToStringGeneral(new Date());
AddWaybillTrackDTO addWaybillTrackDTO = new AddWaybillTrackDTO();
addWaybillTrackDTO.setTrackType("80");
addWaybillTrackDTO.setWaybillId(waybillId);
addWaybillTrackDTO.setWaybillNo(waybillNo);
addWaybillTrackDTO.setRefer("异常列表卸车");
addWaybillTrackDTO.setOperationRemark(operationRemark);
addWaybillTrackDTO.setUserId(AuthUtil.getUserId());
addWaybillTrackDTO.setWarehouseId(warehouseId);
addWaybillTrackDTO.setWarehouseName(warehouseName);
addWaybillTrackDTO.setNickName(AuthUtil.getNickName());
trunklineWaybillTrackClient.addWaybillLog(addWaybillTrackDTO);
//发送零担异常卸车数据
aftersakesAyscService.sendReportZeroUnloadData(AuthUtil.getUserId(),AuthUtil.getNickName(),myCurrentWarehouse.getId(),myCurrentWarehouse.getName(),abnormalRecordEntity,packageDataList);
if(!Objects.isNull(waybillEntity)){
waybillId = waybillEntity.getId();
}
Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId();
String warehouseName = warehouseEntity.getName();
String operationRemark = warehouseName+"干线异常列表卸车,总数/卸车数:"+num+"/"+enterNum+",卸车时间"+ CommonUtil.dateToStringGeneral(new Date());
AddWaybillTrackDTO addWaybillTrackDTO = new AddWaybillTrackDTO();
addWaybillTrackDTO.setTrackType("80");
addWaybillTrackDTO.setWaybillId(waybillId);
addWaybillTrackDTO.setWaybillNo(waybillNo);
addWaybillTrackDTO.setRefer("异常列表卸车");
addWaybillTrackDTO.setOperationRemark(operationRemark);
addWaybillTrackDTO.setUserId(AuthUtil.getUserId());
addWaybillTrackDTO.setWarehouseId(warehouseId);
addWaybillTrackDTO.setWarehouseName(warehouseName);
addWaybillTrackDTO.setNickName(AuthUtil.getNickName());
trunklineWaybillTrackClient.addWaybillLog(addWaybillTrackDTO);
//发送零担异常卸车数据
aftersakesAyscService.sendReportZeroUnloadData(AuthUtil.getUserId(),AuthUtil.getNickName(),myCurrentWarehouse.getId(),myCurrentWarehouse.getName(),abnormalRecordEntity,packageDataList);
// if(warehouseId.equals(destinationWarehouseId)){
// TrunklineWaybillOrderEntity waybillOrderEntity = waybillOrderClient.findEntityByWaybillNoAndOrderCode(waybillNo,waybillNo);
@ -472,16 +478,17 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<Aftersa
// waybillOrderClient.updateEntity(waybillOrderEntity);
// }
// }
}
}
trunklineWaybillPackageClient.updateWaybillStatus(waybillId);
}
trunklineWaybillPackageClient.updateWaybillStatus(waybillId);
}
}
abnormalRecordEntity.setAbnormalStatus(1);
abnormalRecordEntity.setDealTime(new Date());
abnormalRecordEntity.setDealUserId(AuthUtil.getUserId());
abnormalRecordEntity.setDealUserName(AuthUtil.getNickName());
updateById(abnormalRecordEntity);
abnormalRecordEntity.setAbnormalStatus(1);
abnormalRecordEntity.setDealTime(new Date());
abnormalRecordEntity.setDealUserId(AuthUtil.getUserId());
abnormalRecordEntity.setDealUserName(AuthUtil.getNickName());
updateById(abnormalRecordEntity);
});
}
return R.success("处理成功");
}

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

@ -60,7 +60,7 @@ public class BasicdataCategoryImporter implements ExcelImporter<BasicdataCategor
BasicdataCategoryEntity basicdataCategoryEntity = new BasicdataCategoryEntity();
basicdataCategoryEntity.setName(item.getName());
String dictValue = findDictValue(category, item.getType());
basicdataCategoryEntity.setType(dictValue==null?1:Integer.parseInt(dictValue));
basicdataCategoryEntity.setType(dictValue==null?"1":dictValue);
if(item.getParentCategory()==null){
pList.add(basicdataCategoryEntity);
}else{

8
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java

@ -405,9 +405,11 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl<BasicdataClientM
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//对于合同开始时间比对
Predicate<Date> predicateContractStartTime = Predicate.isEqual(oldClientEntity.getContractStartTime());
boolean contractStartTime = predicateContractStartTime.test(newClientEntity.getContractStartTime());
if (!contractStartTime) {
content.append("合同开始时间由[").append(sdf.format(oldClientEntity.getContractStartTime())).append("]变更为-->[").append(sdf.format(oldClientEntity.getContractStartTime())).append("],");
if(!Objects.isNull(predicateContractStartTime)){
boolean contractStartTime = predicateContractStartTime.test(newClientEntity.getContractStartTime());
if (!contractStartTime) {
content.append("合同开始时间由[").append(sdf.format(oldClientEntity.getContractStartTime())).append("]变更为-->[").append(sdf.format(oldClientEntity.getContractStartTime())).append("],");
}
}
//对于合同结束时间比对
Predicate<Date> predicateContractEntTime = Predicate.isEqual(oldClientEntity.getContractEntTime());

2
blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/entity/PushOrderDetailEntity.java

@ -30,6 +30,8 @@ public class PushOrderDetailEntity extends BaseEntity {
private String transportType;
@ApiModelProperty(name = "发站")
private String sendSite;
@ApiModelProperty(name = "与金牌交付的唯一标识")
private String shipNo;
@ApiModelProperty(name = "到站")
private String endSite;
@ApiModelProperty(name = "收货联系人名称")

2
blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/entity/PushOrderEntity.java

@ -47,6 +47,8 @@ public class PushOrderEntity extends BaseEntity {
private String userName;
@ApiModelProperty(name = "基地")
private String orgName;
@ApiModelProperty(name = "仓库")
private String warehouse;
@ApiModelProperty(name = "预留1", notes = "")
private String reserve1;

69
blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mq/NodeDataPushListener.java

@ -2,7 +2,6 @@ package com.logpm.factorydata.jinpai.mq;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
@ -101,26 +100,31 @@ public class NodeDataPushListener {
}
for (String sendOrderCode : orderCodes) {
// 先从新系统查,如果查不到,去老系统查一次
List<PushOrderDetailEntity> orderDetailEntities = pushOrderDetailService.list(Wrappers.<PushOrderDetailEntity>lambdaQuery()
.in(PushOrderDetailEntity::getCustomItemNo, sendOrderCode)
);
List<PushOrderDetailEntity> orderDetailEntities = null;
// List<PushOrderDetailEntity> orderDetailEntities = pushOrderDetailService.list(Wrappers.<PushOrderDetailEntity>lambdaQuery()
// .in(PushOrderDetailEntity::getCustomItemNo, sendOrderCode)
// );
Boolean flag = Boolean.FALSE;
if (CollUtil.isEmpty(orderDetailEntities)) {
// 去老系统查
if(StrUtil.isNotEmpty(jinPaiProperties.getOldSystemHost()) && StrUtil.isNotEmpty(jinPaiProperties.getFindOldDataUrl())){
if (StrUtil.isNotEmpty(jinPaiProperties.getOldSystemHost()) && StrUtil.isNotEmpty(jinPaiProperties.getFindOldDataUrl())) {
try {
log.info("去老系统查询:{}", sendOrderCode);
String result = HttpUtil.get(jinPaiProperties.getOldSystemHost() + jinPaiProperties.getFindOldDataUrl() + "?orderCode=" + sendOrderCode);
if(StrUtil.isNotEmpty(result)){
log.info("老系统查询结果:{}", result);
if (StrUtil.isNotEmpty(result)) {
JSONObject jsonObject = JSONUtil.parseObj(result);
Integer code = jsonObject.getInt("code");
if(NumberUtil.equals(code, 200)){
if (NumberUtil.equals(code, 200)) {
JSONArray data = jsonObject.getJSONArray("data");
if (CollUtil.isNotEmpty(data)) {
orderDetailEntities = data.toList(PushOrderDetailEntity.class);
flag = Boolean.TRUE;
}
}
}
}catch (Exception e){
log.error("老系统查询失败",e);
} catch (Exception e) {
log.error("老系统查询失败", e);
}
}
}
@ -128,6 +132,7 @@ public class NodeDataPushListener {
log.info("未查到包件数据,不处理:{}", JSONUtil.toJsonStr(content));
return;
}
// 订单 warehouse 不为空为干线,否则为仓配,推送干线的同时回推仓配
Map<String, String> orderCodeMap = orderDetailEntities.stream().collect(Collectors.toMap(PushOrderDetailEntity::getOrderId, PushOrderDetailEntity::getCustomItemNo));
Map<String, PushOrderDetailEntity> detailEntityMap = orderDetailEntities.stream().collect(Collectors.toMap(PushOrderDetailEntity::getCustomItemNo, v -> v));
List<String> orderIds = orderDetailEntities.stream().map(PushOrderDetailEntity::getOrderId).collect(Collectors.toList());
@ -143,6 +148,7 @@ public class NodeDataPushListener {
List<FactoryNodePushEntity> pushEntities = factoryNodePushService.list(Wrappers.<FactoryNodePushEntity>lambdaQuery()
.in(FactoryNodePushEntity::getOrderCode, orderCodes)
);
// 到站还是入库
if (workNodeEnums.equals(WorkNodeEnums.FINAL_NET_ARRIVE_CAR)) {
Map<String, FactoryNodePushEntity> pushEntityMap = new HashMap<>();
@ -157,6 +163,11 @@ public class NodeDataPushListener {
if (pushEntityMap.containsKey(orderCode)) {
continue;
}
String arriveFor = "stock";
PushOrderEntity pushOrderEntity = pushOrderEntityMap.get(orderCode);
if (ObjectUtil.isNotEmpty(pushOrderEntity) && StrUtil.isNotEmpty(pushOrderEntity.getWarehouse())) {
arriveFor = "carrier";
}
PushOrderDetailEntity pushOrderDetailEntity = detailEntityMap.get(orderCode);
String boxCodeList = pushOrderDetailEntity.getBoxCodeList();
JSONArray boxCodeListJson = JSONUtil.parseArray(boxCodeList);
@ -173,7 +184,7 @@ public class NodeDataPushListener {
js.set("extWaybillNO", mainJson.getStr("serviceNumber"));
js.set("detail", detail);
js.set("shipNo", mainJson.getStr("waybillNumber"));
js.set("targetNo", pushOrderEntityMap.get(orderCode).getTransportNo());
js.set("targetNo", pushOrderEntity.getTransportNo());
js.set("targetType", "1");
js.set("doType", "32");
js.set("doLocation", "");
@ -182,7 +193,7 @@ public class NodeDataPushListener {
js.set("endSite", mainJson.getStr("warehouseName"));
js.set("passSite", mainJson.getStr("acceptWarehouseName"));
js.set("doRemark", "");
js.set("reqSn", pushOrderEntityMap.get(orderCode).getId());
js.set("reqSn", pushOrderDetailEntity.getShipNo());
js.set("syscode", "huitong");
js.set("carNo", mainJson.getStr("carNumber"));
js.set("carHangNo", "");
@ -190,7 +201,7 @@ public class NodeDataPushListener {
js.set("driverPhone", mainJson.getStr("driverMobile"));
js.set("carType", "A");
js.set("carSize", "1");
// js.set("arriveFor", "");
js.set("arriveFor", arriveFor);
log.info("推送工厂:{}", js);
String url = jinPaiProperties.getOldSystemHost() + jinPaiProperties.getOldSystemArrivedUrl();
try {
@ -204,6 +215,18 @@ public class NodeDataPushListener {
.content(JSONUtil.toJsonStr(js))
.resultContent(result)
.build());
if (StrUtil.isNotEmpty(pushOrderEntity.getWarehouse())) {
js.set("arriveFor", "stock");
result = HttpUtil.post(url, JSONUtil.toJsonStr(js));
log.info("推送工厂结果:{}", result);
// 保存推送记录
factoryNodePushService.save(FactoryNodePushEntity.builder()
.orderCode(orderCode)
.node(FactoryNodeEnums.FINAL_NET_ARRIVE_CAR.getCode().toString())
.content(JSONUtil.toJsonStr(js))
.resultContent(result)
.build());
}
}
} catch (Exception e) {
log.error("推送工厂失败:{}", e);
@ -220,14 +243,19 @@ public class NodeDataPushListener {
}
for (PushData pushData : content) {
if (!CollUtil.contains(pushEntityMap.keySet(), pushData.getPackageCode())) {
String arriveFor = "stock";
PushOrderEntity pushOrderEntity = pushOrderEntityMap.get(pushData.getOrderCode());
if (StrUtil.isNotEmpty(pushOrderEntity.getWarehouse())) {
arriveFor = "carrier";
}
JSONObject js = new JSONObject();
js.set("extOrderNo", pushData.getOrderCode());
js.set("extWaybillNO", detailEntityMap.get(pushData.getOrderCode()).getCustomOrderNo());
js.set("transportNo", pushOrderEntityMap.get(pushData.getOrderCode()).getTransportNo());
js.set("doTime", entries.getStr("operatorTime"));
js.set("syscode", "huitong");
js.set("reqSn", UUID.randomUUID());
// js.set("arriveFor", "");
js.set("reqSn", detailEntityMap.get(pushData.getOrderCode()).getShipNo());
js.set("arriveFor", arriveFor);
JSONObject detailJson = new JSONObject();
detailJson.set(pushData.getPackageCode(), 1);
js.set("detail", detailJson.toString());
@ -246,6 +274,19 @@ public class NodeDataPushListener {
.packageCode(pushData.getPackageCode())
.resultContent(result)
.build());
if (StrUtil.isNotEmpty(pushOrderEntity.getWarehouse())) {
js.set("arriveFor", "stock");
result = HttpUtil.post(url, JSONUtil.toJsonStr(js));
log.info("推送工厂结果:{}", result);
// 保存推送记录
factoryNodePushService.save(FactoryNodePushEntity.builder()
.orderCode(pushData.getOrderCode())
.node(FactoryNodeEnums.END_WAREHOUSE_UNLOADING.getCode().toString())
.content(JSONUtil.toJsonStr(js))
.packageCode(pushData.getPackageCode())
.resultContent(result)
.build());
}
}
} catch (Exception e) {
log.error("推送工厂失败:{}", e);

2
blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/mq/NodeDataPushListener.java

@ -79,7 +79,7 @@ public class NodeDataPushListener {
js.set("logisticsStatus", factoryNode.getText());
packages.add(js);
}
jsons.set("packageInfo", JSONUtil.toJsonStr(packages));
jsons.set("packageInfo", new JSONArray(packages));
if (oldProperties.getEnable()) {
try {
log.info("推送节点数据:{}", JSONUtil.toJsonStr(jsons));

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

@ -1074,7 +1074,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
if (Objects.isNull(categoryEntity)) {
categoryEntity = new BasicdataCategoryEntity();
categoryEntity.setName(goodsName);
categoryEntity.setType(1);
categoryEntity.setType("1");
categoryEntity.setTenantId(TenantNum.HUITONGCODE);
categoryEntity.setCreateUser(1714696768639311873L);
categoryEntity.setUpdateUser(1714696768639311873L);

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

@ -1201,7 +1201,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
categoryEntity = new BasicdataCategoryEntity();
categoryEntity.setTenantId(TenantNum.HUITONGCODE);
categoryEntity.setName(name);
categoryEntity.setType(1);
categoryEntity.setType("1");
categoryEntity.setCreateUser(1714696768639311873L);
categoryEntity.setUpdateUser(1714696768639311873L);
categoryEntity.setCreateDept(1649331096241836033L);
@ -2079,7 +2079,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
if(Objects.isNull(categoryEntity)){
categoryEntity = new BasicdataCategoryEntity();
categoryEntity.setName(goodsName);
categoryEntity.setType(1);
categoryEntity.setType("1");
categoryEntity.setTenantId(TenantNum.HUITONGCODE);
categoryEntity.setCreateUser(1714696768639311873L);
categoryEntity.setUpdateUser(1714696768639311873L);

25
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java

@ -25,9 +25,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
@Slf4j
@RestController
@ -500,6 +498,7 @@ public class OpenOrderController {
public R openWaybill(@RequestBody OpenOrderDTO openOrderDTO) {
String method = "############openWaybill: ";
log.info(method + "请求参数{}", openOrderDTO);
List<Long> advanceIds = openOrderDTO.getAdvanceIds();
try{
//当前登录人选择的仓库
@ -513,7 +512,23 @@ public class OpenOrderController {
//验证开单参数是否正确
openOrderParamVerify(openOrderDTO);
return openOrderService.openWaybill(openOrderDTO);
R r = openOrderService.openWaybill(openOrderDTO);
int code = r.getCode();
if(code != 200){
return r;
}
Long waybillId = (Long) r.getData();
openOrderService.dealOpenIncoming(waybillId,advanceIds);
Map map = new HashMap();
map.put("waybillId",waybillId);
return R.data(map);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
@ -983,7 +998,7 @@ public class OpenOrderController {
throw new CustomerException(405,"订单号不能为空");
}
List<Long> advanceIds = openOrderDTO.getAdvanceIds();
if(advanceIds.isEmpty()){
if(CollUtil.isEmpty(advanceIds)){
log.warn("#################openOrderParamVerify: 订单号不能为空 advanceIds={} ",advanceIds);
throw new CustomerException(405,"订单号不能为空");
}

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

@ -727,7 +727,14 @@
IF(ltcls.is_supple = 1,'是','否') isSupple,
ltcls.create_time loadingTime,
ltcls.sign_user_name signUserName,
ltcls.sign_time signTime
ltcls.sign_time signTime,
ltcls.firsts firsts,
ltcls.senconds senconds,
ltcls.thirds thirds,
ltcls.customer_name customerName,
ltcls.customer_telephone customerTelephone,
ltcls.customer_address customerAddress,
ltcls.unload_tray_name unloadTrayName
from logpm_trunkline_cars_load_scan ltcls
left join logpm_warehouse_waybill lww on ltcls.waybill_id = lww.id
where ltcls.load_id = #{param.loadId}
@ -842,12 +849,11 @@
<select id="findAbnormalData" resultType="com.logpm.trunkline.vo.CarsLoadScanAbnormalVO">
select IFNULL(ltcls.waybill_no,'--') waybillNo,
ltcls.order_code orderCode,
IFNULL(sum(ltcls.num),0) loadingNum,
IFNULL(sum(ltcls.unload_num),0) unloadNum
sum(IF(ltcls.scan_status='1', ltcls.num,0 )) loadingNum,
sum(IF(ltcls.scan_status='2', ltcls.unload_num,0 )) unloadNum
from logpm_trunkline_cars_load_scan ltcls
left join logpm_trunkline_cars_order ltco on ltco.waybill_no = ltcls.waybill_no and ltco.order_code = ltcls.order_code
where ltcls.load_id = #{loadId}
and ltco.id is null
and (ltcls.loading_abnormal=1 or ltcls.unload_abnormal=1)
GROUP BY IFNULL(ltcls.waybill_no,'--'),
ltcls.order_code
order by IFNULL(ltcls.waybill_no,'--') desc, ltcls.order_code desc

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

@ -175,7 +175,7 @@
select ltco.order_code orderCode,
ltco.waybill_no waybillNo,
ltco.plan_num planNum,
IFNULL(sum(ltcls.num),0) loadingNum,
sum(IF(ltcls.loading_abnormal is null or ltcls.loading_abnormal = '1',0,ltcls.num)) as loadingNum,
lww.check_user_name checkUserName,
IFNULL(sum(ltcls.unload_num),0) unloadNum,
IFNULL(lww.total_freight/lww.total_count*ltwo.total_number,0) orderFreight,

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

@ -99,5 +99,7 @@ public interface IOpenOrderService {
IPage<TrunklineAdvanceVO> advancePageListByBussiness(AdvanceDTO advanceDTO);
void dealOpenIncoming(Long waybillId,List<Long> advanceIds);
// R findWaybillInfo(String waybillNo);
}

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

@ -148,6 +148,12 @@ public interface ITrunklineCarsLoadScanService extends BaseService<TrunklineCars
List<Long> findCarsLoadScanIdsByWaybillIds(List<Long> waybillIds);
/**
* 查询某个车次节点下的异常
* 包含装车异常 合卸车异常
* @param loadId
* @return
*/
List<CarsLoadScanAbnormalVO> findAbnormalData(Long loadId);
List<UnloadZeroVO> findUnloadZeroList(Long loadId, Long warehouseId);

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

@ -137,6 +137,34 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
return advanceService.advancePageListByBussiness(page, advanceDTO);
}
@Override
public void dealOpenIncoming(Long waybillId,List<Long> advanceIds) {
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
if(!Objects.isNull(waybillEntity)){
Long departureWarehouseId = waybillEntity.getDepartureWarehouseId();
String departureWarehouseName = waybillEntity.getDepartureWarehouseName();
Long brandId = waybillEntity.getBrandId();
String waybillNo = waybillEntity.getWaybillNo();
//判断是否是开单及入库的配置
Boolean aBoolean = basicdataOpenIncomingClient.checkOpenIncoming(departureWarehouseId, brandId);
if (Boolean.TRUE.equals(aBoolean)) {
openOrderAsyncService.incomingPackageBatch(advanceIds, AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getTenantId(), AuthUtil.getNickName(), IncomingTypeEnum.OPEN_TO_IN.getCode(), departureWarehouseId, departureWarehouseName, waybillEntity);
waybillEntity.setStockCount(waybillEntity.getTotalCount());
waybillEntity.setWaybillStatus("20");
warehouseWaybillClient.updateEntity(waybillEntity);
}
Integer totalCount = waybillEntity.getTotalCount();
Integer stockCount = waybillEntity.getStockCount();
if (stockCount > 0) {
String createOperationRemark = "运单入库:" + stockCount + "/" + totalCount + ",入库类型:【开单前已入库】,入库时间:" + CommonUtil.dateToStringGeneral(new Date());
openOrderAsyncService.saveLog(waybillId, waybillNo, "20", "已入库", createOperationRemark, AuthUtil.getNickName(), AuthUtil.getUserId(), departureWarehouseId, departureWarehouseName);
}
}
}
@Override
public List<TrunklineAdvanceDetailVO> findAdvanceDetailList(Long advanceId) {
return advanceDetailService.findList(advanceId);
@ -773,14 +801,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
//计算扫码入库的包件是否需要把运单和提货单挂上
openOrderAsyncService.dealwithBillladingInfo(advanceIds,warehouseId,warehouseName,waybillId,waybillNo);
//判断是否是开单及入库的配置
Boolean aBoolean = basicdataOpenIncomingClient.checkOpenIncoming(warehouseId, brandId);
if (Boolean.TRUE.equals(aBoolean)) {
openOrderAsyncService.incomingPackageBatch(advanceIds, AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getTenantId(), AuthUtil.getNickName(), IncomingTypeEnum.OPEN_TO_IN.getCode(), warehouseId, warehouseName, waybillEntity);
waybillEntity.setStockCount(waybillEntity.getTotalCount());
waybillEntity.setWaybillStatus("20");
warehouseWaybillClient.updateEntity(waybillEntity);
}
//异步存入日志
String nickName = AuthUtil.getNickName();
@ -789,13 +810,6 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
String createOperationRemark = "创建运单" + waybillNo + ",时间:" + CommonUtil.dateToStringGeneral(new Date());
openOrderAsyncService.saveLog(waybillId, waybillNo, "10", "创建运单", createOperationRemark, nickName, userId, warehouseId, warehouseName);
Integer totalCount = waybillEntity.getTotalCount();
Integer stockCount = waybillEntity.getStockCount();
if (stockCount > 0) {
createOperationRemark = "运单入库:" + stockCount + "/" + totalCount + ",入库类型:【开单前已入库】,入库时间:" + CommonUtil.dateToStringGeneral(new Date());
openOrderAsyncService.saveLog(waybillId, waybillNo, "20", "已入库", createOperationRemark, nickName, userId, warehouseId, warehouseName);
}
//队列处理包件补数据
carsLoadService.sendRabbitMessageOpenOrder(advanceIds, waybillId);
@ -804,9 +818,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
advanceDetailService.sendReportAdvanceOpenData(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,updateAdvanceDetailList,waybillEntity);
Map<String, Object> map = new HashMap<>();
map.put("waybillId", waybillId);
return R.data(map);
return R.data(waybillId);
}
@RepeatSubmit
@ -960,7 +972,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
if (Objects.isNull(basicdataCategoryEntity)) {
basicdataCategoryEntity = new BasicdataCategoryEntity();
basicdataCategoryEntity.setName(goodsName);
basicdataCategoryEntity.setType(10);
basicdataCategoryEntity.setType("10");
goodsId = basicdataCategoryClient.addReturnId(basicdataCategoryEntity);
} else {
goodsId = basicdataCategoryEntity.getId();
@ -3729,7 +3741,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
if (Objects.isNull(basicdataCategoryEntity)) {
basicdataCategoryEntity = new BasicdataCategoryEntity();
basicdataCategoryEntity.setName(goodsName);
basicdataCategoryEntity.setType(1);
basicdataCategoryEntity.setType("1");
goodsId = basicdataCategoryClient.addReturnId(basicdataCategoryEntity);
} else {
goodsId = basicdataCategoryEntity.getId();

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

@ -4525,6 +4525,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadVO.setCarsLoadLineList(loadLineList);
List<String> orderCodeString = new ArrayList<>();
List<CarsLoadWaybillInfoVO> carsLoadWaybillInfoList = trunklineCarsOrderService.findWaybillOrderByloadId(loadId);
for (CarsLoadWaybillInfoVO carsLoadWaybillInfoVO : carsLoadWaybillInfoList) {
String waybillNo = carsLoadWaybillInfoVO.getWaybillNo();
@ -4555,6 +4557,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<CarsLoadOrderInfoVO> carsLoadOrderInfoListPlan = trunklineCarsOrderService.findCarsLoadOrderInfoListPlan(loadId, waybillNo);
carsLoadOrderInfoListPlan.forEach(carsLoadOrderInfoVO -> {
orderCodeString.add(carsLoadOrderInfoVO.getOrderCode());
carsLoadOrderInfoVO.setUnloadIncome(carsLoadOrderInfoVO.getUnloadIncome().setScale(2, BigDecimal.ROUND_HALF_UP));
carsLoadOrderInfoVO.setOrderFreight(carsLoadOrderInfoVO.getOrderFreight().setScale(2, BigDecimal.ROUND_HALF_UP));
});
@ -4575,6 +4578,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//查询异常的数据
List<CarsLoadScanAbnormalVO> carsLoadScanAbnormalList = trunklineCarsLoadScanService.findAbnormalData(loadId);
if(!carsLoadScanAbnormalList.isEmpty()){
// 这里需要 排除掉前面有计划的 且已经加入了当前这个配载信息集合里面的数据
//把carsLoadScanAbnormalList过滤waybillNo等于--的数据后把waybillNo放入一个Set
Set<String> waybillNoSet = carsLoadScanAbnormalList.stream().filter(carsLoadScanAbnormalVO -> !"--".equals(carsLoadScanAbnormalVO.getWaybillNo()))
.map(CarsLoadScanAbnormalVO::getWaybillNo)
@ -4637,26 +4647,30 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanAbnormalVOS.forEach(carsLoadScanAbnormalVO -> {
CarsLoadOrderInfoVO carsLoadOrderInfoVO = new CarsLoadOrderInfoVO();
carsLoadOrderInfoVO.setOrderCode(carsLoadScanAbnormalVO.getOrderCode());
carsLoadOrderInfoVO.setLoadingNum(carsLoadScanAbnormalVO.getLoadingNum());
carsLoadOrderInfoVO.setUnloadNum(carsLoadScanAbnormalVO.getUnloadNum());
BigDecimal unloadIncome = finalFreightPrice.multiply(BigDecimal.valueOf(carsLoadScanAbnormalVO.getUnloadNum()));
carsLoadOrderInfoVO.setUnloadIncome(unloadIncome.setScale(2,BigDecimal.ROUND_UP));
carsLoadOrderInfoVO.setPlanNum(0);
String orderCode = carsLoadScanAbnormalVO.getOrderCode();
if("--".equals(waybillNo) || "--".equals(orderCode)){
carsLoadOrderInfoVO.setOrderNum(0);
carsLoadOrderInfoVO.setOrderFreight(BigDecimal.ZERO.setScale(2,BigDecimal.ROUND_UP));
}else{
Integer num = trunklineWaybillOrderService.findTotalNumByWaybillAndOrderCode(waybillNo, orderCode);
carsLoadOrderInfoVO.setOrderNum(num);
carsLoadOrderInfoVO.setOrderFreight(finalFreightPrice.multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_UP));
}
TrunklineCostShareRecordEntity orderCostShareRecordEntity = trunklineCostShareRecordService.findTotalUnloadNumByLoadAndWaybillNoAndOrderCode(loadId,waybillNo,orderCode);
carsLoadOrderInfoVO.setCostZhang(orderCostShareRecordEntity.getCostZhang());
carsLoadOrderInfoVO.setCostPiece(orderCostShareRecordEntity.getCostPiece());
if(!orderCodeString.contains(carsLoadScanAbnormalVO.getOrderCode())){
carsLoadOrderInfoVO.setWaybillNo(waybillNo);
carsLoadOrderInfoVO.setLoadingNum(carsLoadScanAbnormalVO.getLoadingNum());
carsLoadOrderInfoVO.setUnloadNum(carsLoadScanAbnormalVO.getUnloadNum());
BigDecimal unloadIncome = finalFreightPrice.multiply(BigDecimal.valueOf(carsLoadScanAbnormalVO.getUnloadNum()));
carsLoadOrderInfoVO.setUnloadIncome(unloadIncome.setScale(2,BigDecimal.ROUND_UP));
carsLoadOrderInfoVO.setPlanNum(0);
String orderCode = carsLoadScanAbnormalVO.getOrderCode();
if("--".equals(waybillNo) || "--".equals(orderCode)){
carsLoadOrderInfoVO.setOrderNum(0);
carsLoadOrderInfoVO.setOrderFreight(BigDecimal.ZERO.setScale(2,BigDecimal.ROUND_UP));
}else{
Integer num = trunklineWaybillOrderService.findTotalNumByWaybillAndOrderCode(waybillNo, orderCode);
carsLoadOrderInfoVO.setOrderNum(num);
carsLoadOrderInfoVO.setOrderFreight(finalFreightPrice.multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_UP));
}
TrunklineCostShareRecordEntity orderCostShareRecordEntity = trunklineCostShareRecordService.findTotalUnloadNumByLoadAndWaybillNoAndOrderCode(loadId,waybillNo,orderCode);
carsLoadOrderInfoVO.setCostZhang(orderCostShareRecordEntity.getCostZhang());
carsLoadOrderInfoVO.setCostPiece(orderCostShareRecordEntity.getCostPiece());
// carsLoadOrderInfoVO.setWeight(BigDecimal.ZERO);
// carsLoadOrderInfoVO.setVolume(BigDecimal.ZERO);
carsLoadOrderInfoList.add(carsLoadOrderInfoVO);
carsLoadOrderInfoList.add(carsLoadOrderInfoVO);
}
});
carsLoadWaybillInfoVO.setCarsLoadOrderInfoList(carsLoadOrderInfoList);
@ -7966,16 +7980,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
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);
if(CollUtil.isNotEmpty(list)){
//把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;
@ -8779,6 +8795,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
@Transactional(rollbackFor = Exception.class)
@Override
public R unloadPackage(Long loadId, String orderPackageCode, Long warehouseId, Integer unbindTray, String remark, Integer incomingType,String unloadTrayName,String unloadTrayCode) {
log.info("#############unloadPackage: 卸车包件");
@ -8955,6 +8972,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
orderCode = advanceDetailEntity.getOrderCode();
Long waybillId = advanceDetailEntity.getWaybillId();
Long incomingWarehouseId = advanceDetailEntity.getIncomingWarehouseId();
if(Objects.isNull(incomingWarehouseId)){
throw new CustomerException("包件 "+advanceDetailEntity.getOrderPackageCode()+" 数据异常,请联系管理员进行维护!");
}
// DistributionStockArticleEntity nowDistributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, nowWarehouseId);
// if(Objects.isNull(nowDistributionStockArticle)){
@ -9008,6 +9028,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
DistributionParcelListEntity nowParcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, incomingWarehouseId);
if (Objects.isNull(distributionParcelListEntity)) {
distributionParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(nowParcelListEntity, distributionParcelListEntity);
@ -10797,7 +10820,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
BeanUtil.copy(carsLoadEntity, trunklineCarsLoadVO);
Integer realLoadingNumber = trunklineCarsLoadVO.getRealLoadingNumber();
Integer unloadNumber = trunklineCarsLoadVO.getUnloadNumber();
int stockCarNumber = realLoadingNumber - unloadNumber;
int stockCarNumber = carsLoadEntity.getStockNumber();
trunklineCarsLoadVO.setUnloadNumber(loadLineEntity.getUnloadNumber());
trunklineCarsLoadVO.setRealLoadingNumber(Math.max(stockCarNumber, 0));

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

@ -322,7 +322,7 @@ public class TrunklineWaybillPackageServiceImpl extends BaseServiceImpl<Trunklin
public void updatePackageStatus(List<String> orderPackageCodes, Integer workNode, Long warehouseId, Map<String, JSONObject> map) {
if(workNode.equals(WorkNodeEnums.INITIAL_WAREHOUSE_ENTRY.getCode()) || workNode.equals(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE.getCode())){
if(workNode.equals(WorkNodeEnums.INITIAL_WAREHOUSE_ENTRY.getCode()) || workNode.equals(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE.getCode()) || workNode.equals(WorkNodeEnums.SIGN_DIRECT_SHIPPER.getCode())){
BasicdataWarehouseEntity warehouseEntity = warehouseClient.getEntityWarehouseId(warehouseId);
if(!Objects.isNull(warehouseEntity)){
//更新所有包件的当前所在仓

10
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml

@ -151,6 +151,7 @@
lww.waybill_no waybillNo,
lww.order_no orderNo,
lww.consignee consignee,
lbc.client_code consigneeCode,
lww.consignee_name consigneeName,
lww.consignee_mobile consigneeMobile,
lww.consignee_address consigneeAddress,
@ -221,8 +222,10 @@
GROUP_CONCAT(CONCAT(lwwd.product_name,'(',lwwd.num,')')) productNum,
GROUP_CONCAT(CONCAT(lwwd.product_name,'(',lwwd.price,')')) productPrice
from logpm_warehouse_waybill lww
left join logpm_basicdata_client lbc on lbc.id = lww.consignee_id
left join logpm_warehouse_waybill_detail lwwd on lwwd.waybill_id = lww.id and lwwd.is_deleted = 0
where lww.is_deleted = 0
and lww.abolish_status = 0
<if test="param.waybillNoList != null">
and lww.waybill_no in
<foreach collection="param.waybillNoList" item="item" open="(" separator="," close=")">
@ -421,6 +424,7 @@
lww.waybill_no waybillNo,
lww.order_no orderNo,
lww.consignee consignee,
lbc.client_code consigneeCode,
lww.consignee_name consigneeName,
lww.consignee_mobile consigneeMobile,
lww.consignee_address consigneeAddress,
@ -493,6 +497,7 @@
left join logpm_basicdata_client lbc on lbc.id = lww.consignee_id
left join logpm_warehouse_waybill_detail lwwd on lwwd.waybill_id = lww.id and lwwd.is_deleted = 0
where lww.is_deleted = 0
and lww.abolish_status = 0
<if test="param.waybillNoList != null">
and lww.waybill_no in
<foreach collection="param.waybillNoList" item="item" open="(" separator="," close=")">
@ -645,6 +650,7 @@
lww.waybill_no waybillNo,
lww.order_no orderNo,
lww.consignee consignee,
lbc.client_code consigneeCode,
lww.consignee_name consigneeName,
lww.consignee_mobile consigneeMobile,
lww.consignee_address consigneeAddress,
@ -758,6 +764,7 @@
left join logpm_basicdata_client lbc on lbc.id = lww.consignee_id
left join logpm_warehouse_waybill_detail lwwd on lwwd.waybill_id = lww.id and lwwd.is_deleted = 0
where lww.is_deleted = 0
and lww.abolish_status = 0
<if test="param.waybillNoList != null">
and lww.waybill_no in
<foreach collection="param.waybillNoList" item="item" open="(" separator="," close=")">
@ -923,6 +930,7 @@
lww.waybill_no waybillNo,
lww.order_no orderNo,
lww.consignee consignee,
lbc.client_code consigneeCode,
lww.consignee_name consigneeName,
lww.consignee_mobile consigneeMobile,
lww.consignee_address consigneeAddress,
@ -993,8 +1001,10 @@
GROUP_CONCAT(CONCAT(lwwd.product_name,'(',lwwd.num,')')) productNum,
GROUP_CONCAT(CONCAT(lwwd.product_name,'(',lwwd.price,')')) productPrice
from logpm_warehouse_waybill lww
left join logpm_basicdata_client lbc on lbc.id = lww.consignee_id
left join logpm_warehouse_waybill_detail lwwd on lwwd.waybill_id = lww.id and lwwd.is_deleted = 0
where lww.is_deleted = 0
and lww.abolish_status = 0
<if test="param.waybillNoList != null">
and lww.waybill_no in
<foreach collection="param.waybillNoList" item="item" open="(" separator="," close=")">

1
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWarehousingEntryServiceImpl.java

@ -494,6 +494,7 @@ public class WarehouseWarehousingEntryServiceImpl extends BaseServiceImpl<Wareho
@Transactional(rollbackFor = Exception.class)
public void importUser(List<WarehousingEntryDetailExcel> data, Boolean isCovered) {
//分组
Map<String, List<WarehousingEntryDetailExcel>> collect = data.stream().collect(Collectors.groupingBy(o -> {
System.out.println("====<<<<<<<<" + o);
if (ObjectUtils.isEmpty(o) || ObjectUtils.isNull(o.getCustomerName()) || ObjectUtils.isNull(o.getCustomerCode())) {

Loading…
Cancel
Save