Browse Source

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

master
zhenghaoyu 8 months ago
parent
commit
285126fca0
  1. 9
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  2. 8
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java
  3. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  4. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java
  5. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java
  6. 83
      blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java
  7. 9
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/receiver/BusinessData2FactoryHandler.java
  8. 7
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/receiver/BusinessDataClerkCheck2FactoryHandler.java
  9. 4
      blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
  10. 3
      blade-service/logpm-factory/src/main/java/com/logpm/factory/props/MtFactoryProperties.java
  11. 14
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java
  12. 8
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyUnloadCarComHandler.java
  13. 21
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/OrderStatusHandler.java
  14. 7
      blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/OrderServiceImpl.java
  15. 7
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java
  16. 3
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java
  17. 2
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java
  18. 10
      blade-service/logpm-report/src/main/java/com/logpm/report/util/ReportExcelUtil.java
  19. 3
      blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/PackageFanoutListener.java
  20. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  21. 20
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  22. 202
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  23. 5
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayGoodsServiceImpl.java
  24. 214
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

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

@ -204,4 +204,13 @@ public interface IDistributionParcelListClient {
@PostMapping(API_PREFIX + "/addZeroParcelList")
void addZeroParcelList(@RequestBody List<DistributionParcelListEntity> addParcelListEntityList);
@PostMapping(API_PREFIX + "/findListByIds")
List<DistributionParcelListEntity> findListByIds(@RequestBody List<Long> orderPackageIdList);
@PostMapping(API_PREFIX + "/clearPallet")
void clearPallet(@RequestBody List<Long> orderPackageIdList);
}

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

@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 配送在库订单 Feign接口类
@ -194,4 +195,11 @@ public interface IDistributionStockArticleClient {
@GetMapping(API_PREFIX + "/addHandQuantityAndIncomingNum")
void addHandQuantityAndIncomingNum(@RequestParam Long stockId, @RequestParam Integer enterNum);
@GetMapping(API_PREFIX + "/findListByIds")
List<DistributionStockArticleEntity> findListByIds(@RequestBody Set<Long> stockArticleIdSet);
@GetMapping(API_PREFIX + "/clearTraysByIds")
void clearTraysByIds(@RequestBody List<Long> clearStockArticleIdList);
}

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

@ -492,4 +492,14 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
distributionParcelNumberService.saveBatch(addList);
}
@Override
public List<DistributionParcelListEntity> findListByIds(List<Long> orderPackageIdList) {
return distributionParcelListService.listByIds(orderPackageIdList);
}
@Override
public void clearPallet(List<Long> orderPackageIdList) {
distributionParcelListService.clearPalletByIds(orderPackageIdList);
}
}

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

@ -389,4 +389,14 @@ public class DistributionStockArticleClient implements IDistributionStockArticle
distributionStockArticleService.addHandQuantityAndIncomingNum(stockId,enterNum);
}
@Override
public List<DistributionStockArticleEntity> findListByIds(Set<Long> stockArticleIdSet) {
return distributionStockArticleService.listByIds(stockArticleIdSet);
}
@Override
public void clearTraysByIds(List<Long> clearStockArticleIdList) {
distributionStockArticleService.clearTraysByIds(clearStockArticleIdList);
}
}

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

@ -254,4 +254,5 @@ public interface IDistributionParcelListService extends BaseService<Distribution
String findAllAllocationByNoParcelListIds(List<Long> parcelListIdList, String orderCode);
void clearAllocationByIds(List<Long> clearTrayList);
}

83
blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java

@ -127,78 +127,69 @@ public class FactoryXxlJob {
// 获取请求日志 按照状态来识别
List<OrderLogEntity> ls = orderLogService.lambdaQuery().eq(OrderLogEntity::getType, 1).eq(OrderLogEntity::getStatus, 1).list();
// //XxlJobLogger.log("日志集合 {}", ls);
//XxlJobLogger.log("目前存在的数据 {}", newList);
// 查询所有的数据库内容 只包含客户单号
List<StationOrderEntity> allDataList = stationOrderService.list();
XxlJobLogger.log("allDataList {}", allDataList.size());
// 解析数据
ls.forEach(orderLogEntity -> {
// 查询所有的数据库内容 只包含客户单号
List<StationOrderEntity> allDataList = stationOrderService.list();
XxlJobLogger.log("allDataList{}", allDataList.size());
// List<String> newList = new ArrayList<>();
// if (allDataList.size() != 0) {
// newList.addAll(allDataList.stream().map(StationOrderEntity::getTcWlb008).collect(Collectors.toList()));
// XxlJobLogger.log("newList{}", newList.size());
//
// }
//XxlJobLogger.log("日志对象 {}", orderLogEntity);
Map<String, List> map = orderService.dataRelative(orderLogEntity);
List<StationOrderEntity> dataList = map.get(StationOrderEntity.class.getName());
List<StationOrderEntity> dataList = (List<StationOrderEntity>) map.get(StationOrderEntity.class.getName());
if (dataList.isEmpty()) {
//XxlJobLogger.log("本次解析操作没有数据");
//更新数据库请求日志状态
// 更新数据库请求日志状态
orderLogEntity.setStatus(0);
orderLogService.updateById(orderLogEntity);
return;
}
dataList = checkDataExit(dataList, allDataList);
if (dataList != null && dataList.size() != 0) {
//XxlJobLogger.log("保存对象StationOrderEntity {}", dataList);
if (!dataList.isEmpty()) {
stationOrderService.saveBatch(dataList);
}
//XxlJobLogger.log("日志对象 {}", dataList.get(0).getId());
List<StaorderPackagesEntity> staorderPackagesEntityList = map.get(StaorderPackagesEntity.class.getName());
List<StaorderPackagesEntity> allDataStaorderPackagesEntity = staorderPackagesService.lambdaQuery().select(StaorderPackagesEntity::getPackagenum).list();
List<String> allStaorderPackagesEntityUnionId = allDataStaorderPackagesEntity.stream().map(StaorderPackagesEntity::getPackagenum).collect(Collectors.toList());
List<StaorderPackagesEntity> staorderPackagesEntityList = (List<StaorderPackagesEntity>) map.get(StaorderPackagesEntity.class.getName());
allStaorderPackagesEntityUnionId.forEach(t -> {
for (int i = 0; i < staorderPackagesEntityList.size(); i++) {
if (staorderPackagesEntityList.get(i).getPackagenum().equals(t)) {
staorderPackagesEntityList.remove(i);
break;
}
}
});
/*************** SNM 存在 相同的车次 多次推送 重复的包件的操作**************/
// 需要移除 当前合同号下的已经存在的包件
List<StationOrderEntity> finalDataList = dataList;
List<StaorderPackagesEntity> filteredStaorderPackagesEntityList = staorderPackagesEntityList.stream()
.filter(staorderPackagesEntity -> {
dataList.forEach(v -> {
for (int i = 0; i < staorderPackagesEntityList.size(); i++) {
if (staorderPackagesEntityList.get(i).getTcPoa014().equals(v.getTcWlb008())) {
staorderPackagesEntityList.get(i).setOrderId(v.getId());
List<StaorderPackagesEntity> list = staorderPackagesService.lambdaQuery()
.eq(StaorderPackagesEntity::getTcPoa014, staorderPackagesEntity.getTcPoa014()).list();
// 验证查询处理的包件中是否包含当前循环的包件
boolean exists = list.stream()
.anyMatch(t -> t.getPackagenum().equals(staorderPackagesEntity.getPackagenum()));
log.info("staorderPackagesEntity.getPackagenum() {}", staorderPackagesEntity.getPackagenum());
log.info("exists {}" , exists);
if (!exists) {
// 更新订单ID
for (StationOrderEntity v : finalDataList) {
if (v.getTcWlb008().equals(staorderPackagesEntity.getTcPoa014())) {
staorderPackagesEntity.setOrderId(v.getId());
}
}
}
}
});
boolean isExist = !exists ;
log.info("isExist {}", isExist);
return isExist;
})
.collect(Collectors.toList());
log.info("filteredStaorderPackagesEntityList {}", filteredStaorderPackagesEntityList.size());
// 插入数据库
if (staorderPackagesEntityList != null && !staorderPackagesEntityList.isEmpty()) {
//XxlJobLogger.log("保存对象StaorderPackagesEntity {}", staorderPackagesEntityList);
staorderPackagesService.saveBatch(staorderPackagesEntityList);
if (!filteredStaorderPackagesEntityList.isEmpty()) {
staorderPackagesService.saveBatch(filteredStaorderPackagesEntityList);
}
//更新数据库请求日志状态
// 更新数据库请求日志状态
orderLogEntity.setStatus(0);
orderLogService.updateById(orderLogEntity);
});
// 调用接口写入到老系统的数据库
if (ObjectUtil.equal(sendDataProperties.getSend(), "old")) {
log.info("推送到老系统");
@ -212,6 +203,7 @@ public class FactoryXxlJob {
return ReturnT.SUCCESS;
}
private Timestamp initTimestamp() {
Calendar calendar = Calendar.getInstance();
@ -224,7 +216,7 @@ public class FactoryXxlJob {
}
@Transactional(rollbackFor = Exception.class)
public Boolean resoveFactoryData() {
public void resoveFactoryData() {
Map<Long, List<StaorderPackagesEntity>> map = new HashMap<>();
//TODO 调用Service 获取需要处理的数据
//查询要处理的订单信息
@ -420,7 +412,6 @@ public class FactoryXxlJob {
});
}
return true;
}
@Transactional(rollbackFor = Exception.class)

9
blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/receiver/BusinessData2FactoryHandler.java

@ -1,12 +1,11 @@
package com.logpm.factory.mt.receiver;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
@ -30,6 +29,8 @@ public class BusinessData2FactoryHandler {
@Autowired
private IMtFactoryDataService mtFactoryDataService;
@Autowired
private MtFactoryProperties mtFactoryProperties;
@RabbitHandler
public void sendOrderPackageScan(Map map, Message message, Channel channel) throws IOException, NoSuchAlgorithmException {
@ -44,7 +45,9 @@ public class BusinessData2FactoryHandler {
String destinationWarehouse = object.getString("destinationWarehouse");
try {
mtFactoryDataService.qianshouScanForNewSystem(orderPackageCode, operationTime, distributionContactId, destinationWarehouse);
if(mtFactoryProperties.getSendEnable()){
mtFactoryDataService.qianshouScanForNewSystem(orderPackageCode, operationTime, distributionContactId, destinationWarehouse);
}
} catch (Exception e) {
log.error(">>>>>>", e);
}

7
blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/receiver/BusinessDataClerkCheck2FactoryHandler.java

@ -3,6 +3,7 @@ package com.logpm.factory.mt.receiver;
import com.alibaba.fastjson.JSONObject;
import com.logpm.factory.mt.dto.MtReceiveDTO;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
@ -29,6 +30,8 @@ public class BusinessDataClerkCheck2FactoryHandler {
@Autowired
private IMtFactoryDataService mtFactoryDataService;
@Autowired
private MtFactoryProperties mtFactoryProperties;
@RabbitHandler
public void sendOrderPackageScan(Map map, Message message, Channel channel) throws IOException, NoSuchAlgorithmException {
@ -38,7 +41,9 @@ public class BusinessDataClerkCheck2FactoryHandler {
MtReceiveDTO mtReceiveDTO = JSONObject.parseObject(json,MtReceiveDTO.class);
try {
mtFactoryDataService.sendReceiveInfoByNewSystem(mtReceiveDTO);
if(mtFactoryProperties.getSendEnable()){
mtFactoryDataService.sendReceiveInfoByNewSystem(mtReceiveDTO);
}
} catch (Exception e) {
log.error(">>>>>>", e);
}

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

@ -660,6 +660,10 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
}else{
distributionStockArticleEntity.setTotalNumber(total);
distributionStockArticleEntity.setGenre(1);
String reservationStatus = distributionStockArticleEntity.getReservationStatus();
if("30".equals(reservationStatus)){
distributionStockArticleEntity.setReservationStatus("20");
}
distributionStockArticleClient.saveOrUpdate(distributionStockArticleEntity);
}

3
blade-service/logpm-factory/src/main/java/com/logpm/factory/props/MtFactoryProperties.java

@ -19,5 +19,8 @@ public class MtFactoryProperties {
private String userpwd ;
/** 是否推送梦天 */
private Boolean sendEnable = true;
}

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

@ -6,6 +6,7 @@ import com.logpm.factory.comfac.dto.OrderStatusDTO;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.oupai.service.IOuPaiFactoryService;
import com.logpm.factory.pan.service.IPanFactoryDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import com.logpm.trunkline.feign.ITrunklineAdvanceClient;
import com.rabbitmq.client.Channel;
@ -37,6 +38,7 @@ import java.util.Objects;
public class HwyOrderStatusHandler {
private final IPanFactoryDataService panFactoryDataService;
private final MtFactoryProperties mtFactoryProperties;
private final IMtFactoryDataService mtFactoryDataService;
private final IOuPaiFactoryService ouPaiFactoryService;
private final ITrunklineAdvanceClient trunklineAdvanceClient;
@ -70,11 +72,13 @@ public class HwyOrderStatusHandler {
}
break;
case FactoryConstant.MENGT:
r = mtFactoryDataService.handleStatusData(orderStatusDTO);
if (r.getCode() == 400 || r.getCode() == 200) {
log.info("TAG {} ##################hwyOrderStatusHandler: 该条数据不用处理 orderNo={}", FactoryConstant.MENGT, orderSelfNum);
} else {
throw new CustomerException(r.getCode(), r.getMsg());
if(mtFactoryProperties.getSendEnable()){
r = mtFactoryDataService.handleStatusData(orderStatusDTO);
if (r.getCode() == 400 || r.getCode() == 200) {
log.info("TAG {} ##################hwyOrderStatusHandler: 该条数据不用处理 orderNo={}", FactoryConstant.MENGT, orderSelfNum);
} else {
throw new CustomerException(r.getCode(), r.getMsg());
}
}
break;
case FactoryConstant.OUPAI:

8
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyUnloadCarComHandler.java

@ -14,6 +14,7 @@ import com.logpm.factory.mt.entity.MtPushData;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.mt.service.IMtFactoryOrderMainService;
import com.logpm.factory.mt.service.IMtPushDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.logpm.factory.snm.vo.MTOrderPackageRelationVO;
import com.logpm.factorydata.enums.BrandEnums;
import com.logpm.factorydata.vo.NodePushMsg;
@ -61,6 +62,9 @@ public class HwyUnloadCarComHandler {
@Autowired
private IMtPushDataService mtPushDataService;
@Autowired
private MtFactoryProperties mtFactoryProperties;
@RabbitHandler
public void unloadCarComDataHandler(NodePushMsg nodePushMsg, Message message, Channel channel) {
@ -68,7 +72,9 @@ public class HwyUnloadCarComHandler {
BrandEnums brand = nodePushMsg.getBrand();
switch (brand) {
case MTMM:
pushMentTian(nodePushMsg);
if(mtFactoryProperties.getSendEnable()){
pushMentTian(nodePushMsg);
}
break;
}
}

21
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/OrderStatusHandler.java

@ -7,13 +7,18 @@ import com.logpm.factory.comfac.dto.OrderStatusDTO;
import com.logpm.factory.mt.service.IMtFactoryDataService;
import com.logpm.factory.oupai.service.IOuPaiFactoryService;
import com.logpm.factory.pan.service.IPanFactoryDataService;
import com.logpm.factory.props.MtFactoryProperties;
import com.logpm.factory.zb.service.IZbFactoryDataService;
import com.logpm.oldproject.entity.AdvanceEntity;
import com.logpm.oldproject.feign.IAdvanceClient;
import com.logpm.oldproject.feign.ITrayClient;
import com.logpm.oldproject.feign.ITrayScanClient;
import com.logpm.oldproject.feign.ITrayScanDesClient;
import com.logpm.warehouse.feign.*;
import com.logpm.warehouse.feign.IWarehouseTaryAllocationClient;
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient;
import com.logpm.warehouse.feign.IWarehouseTrayTypeClient;
import com.logpm.warehouse.feign.IWarehouseUpdownGoodsClient;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
@ -50,6 +55,8 @@ public class OrderStatusHandler {
private IMtFactoryDataService mtFactoryDataService;
@Autowired
private IZbFactoryDataService zbFactoryDataService;
@Autowired
private MtFactoryProperties mtFactoryProperties;
@Autowired
private IOuPaiFactoryService ouPaiFactoryService;
@ -105,11 +112,13 @@ public class OrderStatusHandler {
}
break;
case FactoryConstant.MENGT:
r = mtFactoryDataService.handleStatusData(orderStatusDTO);
if (r.getCode() == 400 || r.getCode() == 200) {
log.info("TAG {} ##################orderStatusHandler: 该条数据不用处理 orderNo={}", FactoryConstant.MENGT, orderSelfNum);
} else {
throw new CustomerException(r.getCode(), r.getMsg());
if(mtFactoryProperties.getSendEnable()){
r = mtFactoryDataService.handleStatusData(orderStatusDTO);
if (r.getCode() == 400 || r.getCode() == 200) {
log.info("TAG {} ##################orderStatusHandler: 该条数据不用处理 orderNo={}", FactoryConstant.MENGT, orderSelfNum);
} else {
throw new CustomerException(r.getCode(), r.getMsg());
}
}
break;
case FactoryConstant.ZHIBANG:

7
blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/OrderServiceImpl.java

@ -121,6 +121,7 @@ public class OrderServiceImpl implements IOrderService {
@Override
public Map<String,List> dataRelative(OrderLogEntity orderLogEntity) {
logger.info(">>>>>>>>>>>>>> 待解析数据{}", orderLogEntity.getResBody());
Map<String,List> map = new HashMap<>();
String resBody = orderLogEntity.getResBody();
@ -136,9 +137,13 @@ public class OrderServiceImpl implements IOrderService {
List<StationOrderEntity> rs = new ArrayList<>();
List<ResponseStaorderPackagesInfoVo> PACKAGE_LIST = new ArrayList<>();
logger.info(">>>>>>>>>>>>>> responseStationOrderVo.getData() {}", responseStationOrderVo.getData());
responseStationOrderVo.getData().forEach(responseStationOrderInfoVo -> {
StationOrderEntity stationOrderEntity = new StationOrderEntity();
PACKAGE_LIST.addAll(responseStationOrderInfoVo.getPACKAGE_LIST());
if(!ObjectUtils.isEmpty(responseStationOrderInfoVo.getPACKAGE_LIST())){
PACKAGE_LIST.addAll(responseStationOrderInfoVo.getPACKAGE_LIST());
}
try {
buildStationOrderEntityByRelative(responseStationOrderInfoVo, stationOrderEntity);
} catch (NoSuchFieldException e) {

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

@ -1613,6 +1613,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
private void saveOrderPackage(DistributionStockArticleEntity distributionStockArticleEntity, BasicdataWarehouseEntity basicdataWarehouseEntity, String waybillNo,String operationTime,Integer oldWarehouseId,Integer inventoryId) {
String orderCode = distributionStockArticleEntity.getOrderCode();
String reservationStatus = distributionStockArticleEntity.getReservationStatus();
Long warehouseId = basicdataWarehouseEntity.getId();
//查询订单下的所有包件
@ -1771,6 +1772,12 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
log.warn("#################handleDataToPlatform: 保存包件信息失败 orderCode={}", entity.getOrderCode());
}else{
log.info("################handleDataToPlatform: 保存包件成功 OrderPackageCode={}",vo.getPacketBarCode());
if("30".equals(reservationStatus)){
distributionStockArticleEntity.setReservationStatus("20");
distributionStockArticleClient.saveOrUpdate(distributionStockArticleEntity);
}
// distributionStockArticleClient.updateOrderInfo(orderCode,distributionStockArticleEntity.getWarehouseId());
// Integer handQuantity = distributionStockArticleEntity.getHandQuantity();
// Integer totalNumber = distributionStockArticleEntity.getTotalNumber();

3
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java

@ -74,7 +74,8 @@ public class AsyncServiceImpl implements IAsyncService {
// 当前第几次查询
int current = finalNum + 1;
// 当前查询需要查询几条数据
long lastNum = remaindNum > pageSize ? pageSize : remaindNum;
// long lastNum = remaindNum > pageSize ? pageSize : remaindNum;
long lastNum = pageSize;
// 分页查询对象
Page<T> page = new Page(current, lastNum);
// 执行查询操作返回数据

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

@ -196,7 +196,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
trainCustomQuery(query, queryWrapper);
// 仓库权限
ReportUtil.buildReportWarehouseAuth(vo.getWarehouseName(), query.getWarehouseNameRange(), queryWrapper, warehouseClient);
reportExcelUtil.export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表",20L, ReportExcelUtil.SHEETDATANUM);
reportExcelUtil.export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表",5000L, ReportExcelUtil.SHEETDATANUM);
}
@Override

10
blade-service/logpm-report/src/main/java/com/logpm/report/util/ReportExcelUtil.java

@ -23,14 +23,12 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
/**
* excel导出工具类
@ -109,7 +107,7 @@ public class ReportExcelUtil {
throw new ServiceException("导出数据不能大于50w,请增加检索条件");
}
// 每个 sheet 放多少条数据
Double sheetDataNum = onceSheetDataNum.doubleValue();
Long sheetDataNum = Math.min(count, onceSheetDataNum);
// 总共要几个 sheet
int sheetNum = (int) Math.ceil((count / sheetDataNum));
// 总共需要查询数据库几次
@ -129,9 +127,11 @@ public class ReportExcelUtil {
for (int i = 0; i < sheetNum; i++) {
// sheet编号
int finalI = i + 1;
// long ceilNum = Math.min(count, 100)
// 还剩多少条数据
long l = count - (sheetDataNum * num);
// 每页需要查几次
long l = count - (pageSize * num);
long ceil = l > pageSize ? (int) Math.ceil(onceSheetDataNum / pageSize.doubleValue()) : (int) Math.ceil(l / pageSize.doubleValue());
long ceil = (int) Math.ceil(l / pageSize.doubleValue());
for (int j = 0; j < ceil; j++) {
// 已经查询过几次了
int finalNum = num;

3
blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/PackageFanoutListener.java

@ -54,7 +54,8 @@ public class PackageFanoutListener {
Integer workNode = jsonObject.getInt("workNode");
if (WorkNodeEnums.SIGN_DIRECT_SHIPPER.getCode().equals(workNode)
|| WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART.getCode().equals(workNode)
|| WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode().equals(workNode)) {
|| WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode().equals(workNode)
|| WorkNodeEnums.DISTRIBUTION_ABNORMAL_SIGN_FOR.getCode().equals(workNode)) {
JSONArray orderPackageCodes = jsonObject.getJSONArray("orderPackageCodes");
List<String> orderPackageCodeList = orderPackageCodes.toList(String.class);

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

@ -62,10 +62,9 @@
<select id="findUnloadTrayGoodsList" resultType="com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity">
select ltcls.*
from logpm_trunkline_cars_order ltco
left join logpm_trunkline_cars_load_scan ltcls on ltcls.order_code = ltco.order_code and ltcls.load_id = ltco.load_id
where ltco.load_id = #{loadId}
and ltco.final_node_id = #{warehouseId}
from logpm_trunkline_cars_load_scan ltcls
where ltcls.load_id = #{loadId}
and ltcls.final_node_id = #{warehouseId}
and ltcls.tray_code = #{trayCode}
and ltcls.scan_status = '1'
</select>

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

@ -190,24 +190,26 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
}
TrunklineAdvanceEntity advanceEntity = list.get(0);
if(!Objects.isNull(advanceEntity)){
String consigneePerson = advanceEntity.getConsigneePerson();
if(!StringUtil.isBlank(consigneePerson)){
openOrderVO.setConsigneeName(consigneePerson);
openOrderVO.setConsigneeMobile(advanceEntity.getConsigneeMobile());
openOrderVO.setConsigneeAddress(advanceEntity.getConsigneeAddress());
}
}
//收货单位-----根据三方商场找到对应的clientId
Long clientId = basicdataTripartiteMallClient.getClientIdByNameAndBrandAndCode(dealerName,StringUtil.isBlank(dealerCode)?"":dealerCode, brand);
BasicdataClientVO basicdataClientEntity = basicdataClientClient.findEntityVoById(clientId);
if (!Objects.isNull(basicdataClientEntity)) {
openOrderVO.setConsigneeClientId(clientId);
TrunklineAdvanceEntity advanceEntity = list.get(0);
openOrderVO.setConsignee(basicdataClientEntity.getClientName());
openOrderVO.setConsigneeName(basicdataClientEntity.getLinkman());
openOrderVO.setConsigneeMobile(basicdataClientEntity.getPhone());
openOrderVO.setConsigneeAddress(basicdataClientEntity.getDetailedly());
if(!Objects.isNull(advanceEntity)){
String consigneePerson = advanceEntity.getConsigneePerson();
if(!StringUtil.isBlank(consigneePerson)){
openOrderVO.setConsigneeName(consigneePerson);
openOrderVO.setConsigneeMobile(advanceEntity.getConsigneeMobile());
openOrderVO.setConsigneeAddress(advanceEntity.getConsigneeAddress());
}
}
List<String> destinationArray = new ArrayList<>();
String badeRegionAreaId = basicdataClientEntity.getBladeRegionAreaId();

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

@ -1102,7 +1102,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
queryWrapper.eq("load_id", loadId)
.eq("unload_node_id", warehouseId)
.eq("type", 2)
.ne("scan_status", "1");
.ne("scan_status", "1")
.isNull("unload_tray_code");
List<TrunklineCarsLoadScanEntity> carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper);
if(CollUtil.isNotEmpty(carsLoadScanEntityList)){
@ -1142,6 +1143,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
newStockArticleEntity.setIncomingNum(unloadNum);
newStockArticleEntity.setWarehouse(warehouseEntity.getName());
newStockArticleEntity.setWarehouseId(warehouseEntity.getId());
newStockArticleEntity.setAllocation(null);
newStockArticleEntity.setTrays(null);
newStockArticleEntity.setCarsLoadNum(0);
Long orderId = distributionStockArticleClient.addData(newStockArticleEntity);
if (orderId != 0) {
@ -2471,6 +2474,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long loadScanId = null;
TrunklineCarsLoadScanEntity trunklineCarsLoadScan = trunklineCarsLoadScanService.findEntityByLoadIdAndOrderPackageCode(loadId, orderPackageCode);
if(!Objects.isNull(trunklineCarsLoadScan)){
String scanStatus = trunklineCarsLoadScan.getScanStatus();
if("1".equals(scanStatus)){
log.warn("##################loadingScan: 包件已装车 orderPackageCode={}", orderPackageCode);
return Resp.scanFail(405,"包件已装车","包件已装车");
}
}
//判断包条码是不是在库
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, warehouseId);
TrunklineCarsLoadScanEntity carsLoadScanEntity = new TrunklineCarsLoadScanEntity();
@ -4274,6 +4287,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
newStockArticleEntity.setGroundingStatus("10");
newStockArticleEntity.setOrderReceiveStatus("10");
newStockArticleEntity.setFreezeStatus("10");
newStockArticleEntity.setAllocation(null);
newStockArticleEntity.setTrays(null);
orderId = distributionStockArticleClient.addData(newStockArticleEntity);
finalOrderCodes.put(e, orderId);
}
@ -4393,6 +4408,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
newStockArticleEntity.setGroundingStatus("10");
newStockArticleEntity.setOrderReceiveStatus("10");
newStockArticleEntity.setFreezeStatus("10");
newStockArticleEntity.setAllocation(null);
newStockArticleEntity.setTrays(null);
orderId = distributionStockArticleClient.addData(newStockArticleEntity);
finalOrderCodes1.put(e, orderId);
}
@ -7126,6 +7143,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setIncomingNum(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentOrderId = distributionStockArticleClient.addData(currentStockArticleEntity);
currentStockArticleEntity.setId(currentOrderId);
} else {
@ -7301,6 +7320,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
currentStockArticleEntity.setTransferQuantity(0);
currentStockArticleEntity.setSigninQuantity(0);
currentStockArticleEntity.setIncomingNum(0);
currentStockArticleEntity.setAllocation(null);
currentStockArticleEntity.setTrays(null);
currentOrderId = distributionStockArticleClient.addData(currentStockArticleEntity);
currentStockArticleEntity.setId(currentOrderId);
} else {
@ -7448,6 +7469,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
stockArticleEntity.setTransferQuantity(0);
stockArticleEntity.setSigninQuantity(0);
stockArticleEntity.setIncomingNum(0);
stockArticleEntity.setAllocation(null);
stockArticleEntity.setTrays(null);
currentOrderId = distributionStockArticleClient.addData(stockArticleEntity);
stockArticleEntity.setId(currentOrderId);
} else {
@ -7529,6 +7552,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
newStockArticle.setId(null);
newStockArticle.setWarehouseId(warehouseId);
newStockArticle.setWarehouse(basicdataWarehouseEntity.getName());
newStockArticle.setAllocation(null);
newStockArticle.setTrays(null);
orderId = distributionStockArticleClient.addData(newStockArticle);
} else {
orderId = newStockArticle.getId();
@ -8463,6 +8488,179 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
public R unloadZeroWithTray(Long loadId, String waybillNo, Integer enterNun, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark,String unloadTrayName,String unloadTrayCode) {
log.info("#############unloadZero: 卸车零担");
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
if (Objects.isNull(carsLoadEntity)) {
log.warn("#############unloadZero: 配载计划信息不存在 loadId={}", loadId);
return R.fail(405, "配载计划信息不存在");
}
String loadCode = carsLoadEntity.getCarsNo();
TrunklineCarsLoadLineEntity loadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
if (Objects.isNull(loadLineEntity)) {
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);
return R.fail(405, "当前网点已经卸车确认");
}
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
if (Objects.isNull(basicdataWarehouseEntity)) {
log.warn("#############unloadZero: 仓库信息不存在 warehouseId={}", warehouseId);
return R.fail(405, "仓库信息不存在");
}
String warehouseName = basicdataWarehouseEntity.getName();
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo);
if (Objects.isNull(waybillEntity)) {
log.warn("#############unloadZero: 运单信息不存在 waybillNo={}", waybillNo);
return R.fail(405, "运单信息不存在");
}
Long trayId = null;
String trayName = null;
if (!StringUtil.isBlank(trayCode)) {
BasicdataTrayEntity trayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
if (!Objects.isNull(trayEntity)) {
trayId = trayEntity.getId();
trayName = trayEntity.getPalletName();
}
}
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("waybill_no", waybillNo)
.eq("load_id", loadId)
.eq("final_node_id", warehouseId)
.eq("order_code", orderCode);
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getOne(queryWrapper);
if (Objects.isNull(carsLoadScanEntity)) {
log.warn("#############unloadZero: 零担信息不存在 waybillNo={} order_code={} loadId={} finalNodeId={}", waybillNo, orderCode, loadId, warehouseId);
return R.fail(405, "零担信息不存在");
}
Integer isAbnormal = 0;
Integer num = carsLoadScanEntity.getNum();
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
Long waybillId = carsLoadScanEntity.getWaybillId();
String scanCode = carsLoadScanEntity.getScanCode();
Long loadScanId = carsLoadScanEntity.getId();
if (enterNun > num) {
log.warn("#############unloadZero: 零担信息卸车数量大于装车件数 enterNun={} num={}", enterNun, num);
return R.fail(405, "零担信息卸车数量大于装车件数");
}
carsLoadScanEntity.setUnloadNum(enterNun);
carsLoadScanEntity.setUnloadNodeId(warehouseId);
carsLoadScanEntity.setUnloadNodeName(warehouseName);
carsLoadScanEntity.setUnloadAbnormal(0);
carsLoadScanEntity.setScanStatus("2");
carsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName());
carsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName());
carsLoadScanEntity.setUnloadTime(new Date());
carsLoadScanEntity.setUnloadTrayName(unloadTrayName);
carsLoadScanEntity.setUnloadTrayCode(unloadTrayCode);
trunklineCarsLoadScanService.updateById(carsLoadScanEntity);
trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode,
scanCode, enterNun, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark);
if (unbindTray == 1) {
if (!StringUtil.isBlank(trayCode)) {
trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, fromWarehouseId, "干线卸车零担解托");
}
}
DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId);
if (Objects.isNull(newStockArticleEntity)) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
newStockArticleEntity = new DistributionStockArticleEntity();
BeanUtil.copy(stockArticleEntity, newStockArticleEntity);
newStockArticleEntity.setId(null);
newStockArticleEntity.setOrderReceiveStatus("20");
newStockArticleEntity.setOrderStatus("10");
newStockArticleEntity.setHandQuantity(enterNun);
newStockArticleEntity.setIncomingNum(enterNun);
newStockArticleEntity.setWarehouse(basicdataWarehouseEntity.getName());
newStockArticleEntity.setWarehouseId(basicdataWarehouseEntity.getId());
newStockArticleEntity.setCarsLoadNum(0);
Long orderId = distributionStockArticleClient.addData(newStockArticleEntity);
if (orderId != 0) {
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, fromWarehouseId);
List<DistributionParcelNumberEntity> ls = new ArrayList<>();
for (DistributionParcelListEntity parcelListEntity : parcelListEntityList) {
DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity, newParcelListEntity);
newParcelListEntity.setId(null);
newParcelListEntity.setWarehouseId(warehouseId);
newParcelListEntity.setWarehouse(warehouseName);
newParcelListEntity.setStockArticleId(orderId);
Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId();
if(warehouseId.equals(acceptWarehouseId)){
newParcelListEntity.setIsTransfer(0);
}else{
newParcelListEntity.setIsTransfer(1);
}
Long orderPackageId = distributionParcelListClient.addReturnId(newParcelListEntity);
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setStockArticleId(orderId);
parcelNumberEntity.setParcelListId(orderPackageId);
parcelNumberEntity.setQuantity(newParcelListEntity.getQuantity());
parcelNumberEntity.setHandQuantity(0);
parcelNumberEntity.setDeliveryQuantity(0);
parcelNumberEntity.setSigninQuantity(0);
parcelNumberEntity.setOutboundQuantity(0);
parcelNumberEntity.setWarehouseId(warehouseId);
ls.add(parcelNumberEntity);
}
distributionParcelNumberClient.addBatch(ls);
}
} else {
Integer handQuantity = newStockArticleEntity.getHandQuantity() + enterNun;
Integer incomingNum = newStockArticleEntity.getIncomingNum() + enterNun;
Integer totalNumber = newStockArticleEntity.getTotalNumber();
if (incomingNum.equals(totalNumber)) {
if (handQuantity.equals(totalNumber)) {
newStockArticleEntity.setOrderStatus("20");
} else {
newStockArticleEntity.setOrderStatus("30");
}
newStockArticleEntity.setOrderReceiveStatus("30");
} else {
if (incomingNum.equals(handQuantity)) {
newStockArticleEntity.setOrderStatus("10");
} else {
newStockArticleEntity.setOrderStatus("30");
}
newStockArticleEntity.setOrderReceiveStatus("20");
}
newStockArticleEntity.setHandQuantity(handQuantity);
newStockArticleEntity.setIncomingNum(incomingNum);
distributionStockArticleClient.saveOrUpdate(newStockArticleEntity);
}
updateNumByLoadId(loadId);
// JSONObject jsonObject = trunklineCarsLoadScanService.findUnloadNumAudio(loadId,warehouseId);
// Integer totalUnloadNum = jsonObject.getInteger("totalUnloadNum");
// Integer abnormalUnloadNum = jsonObject.getInteger("abnormalUnloadNum");
// StringBuilder audio = new StringBuilder();
// audio.append("卸车").append(totalUnloadNum).append("件");
// if(!Objects.isNull(abnormalUnloadNum) && !abnormalUnloadNum.equals(0)){
// audio.append("异常卸车").append(abnormalUnloadNum).append("件");
// }
return R.success("卸车成功");
}
public R unloadZeroNoXz(Long loadId, String waybillNo, Integer enterNun, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark) {
log.info("#############unloadZero: 卸车零担");
@ -8737,7 +8935,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String waybillNo = carsLoadScanEntity.getWaybillNo();
Integer num = carsLoadScanEntity.getNum();
String orderCode = carsLoadScanEntity.getOrderCode();
unloadZero(loadId, waybillNo, num, warehouseId, 0, trayCode, orderCode, "托盘零担正常卸车",palletName,trayCode);
unloadZeroWithTray(loadId, waybillNo, num, warehouseId, 0, trayCode, orderCode, "托盘零担正常卸车",palletName,trayCode);
}
}

5
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayGoodsServiceImpl.java

@ -22,10 +22,7 @@ import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
@Log4j2
@Service

214
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

@ -3937,17 +3937,229 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
@Override
public void changeTrayWarehouseInfo(String trayCode, Long warehouseId) {
BasicdataTrayEntity basicdataTrayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
if(Objects.isNull(basicdataTrayEntity)){
log.warn("#############changeTrayWarehouseInfo: 托盘信息不存在 trayCode={}",trayCode);
throw new CustomerException(403,"托盘信息不存在");
}
String palletName = basicdataTrayEntity.getPalletName();
QueryWrapper<WarehouseTrayTypeEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tray_code",trayCode)
.eq("is_deleted",0);
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectOne(queryWrapper);
trayTypeEntity.setWarehouseId(warehouseId);
updateById(trayTypeEntity);
Long trayTypeId = trayTypeEntity.getId();
warehouseTrayGoodsService.updeteWarehouseIdByTrayTypeId(trayTypeId,warehouseId);
QueryWrapper<WarehouseTrayGoodsEntity> trayGoodsEntityQueryWrapper = new QueryWrapper<>();
trayGoodsEntityQueryWrapper.eq("tray_type_id",trayTypeId);
List<WarehouseTrayGoodsEntity> trayGoodsEntities = warehouseTrayGoodsService.list(trayGoodsEntityQueryWrapper);
List<DistributionStockArticleEntity> updateStockArticleList = new ArrayList<>();
List<Long> clearStockArticleIdList = new ArrayList<>();
List<DistributionParcelListEntity> updateParceList = new ArrayList<>();
//把trayGoodsEntities中所有元素的associationType进行分组
Map<String, List<WarehouseTrayGoodsEntity>> map = trayGoodsEntities.stream().collect(Collectors.groupingBy(WarehouseTrayGoodsEntity::getAssociationType));
map.keySet().forEach(associationType -> {
List<WarehouseTrayGoodsEntity> warehouseTrayGoodsEntities = map.get(associationType);
if("1".equals(associationType)){
//把warehouseTrayGoodsEntities中所有的associationId放入一个Set
Set<Long> orderIdSet = warehouseTrayGoodsEntities.stream().map(WarehouseTrayGoodsEntity::getAssociationId).collect(Collectors.toSet());
List<DistributionStockArticleEntity> stockArticleEntityList = distributionStockArticleClient.findListByIds(orderIdSet);
stockArticleEntityList.forEach(stockArticleEntity -> {
String trays = stockArticleEntity.getTrays();
if(!StringUtil.isBlank(trays)){
if(trays.contains(palletName)){
List<String> list = Arrays.asList(trays.split(trays));
List<String> trayList = new ArrayList<>(list);
trayList.remove(palletName);
if(CollUtil.isNotEmpty(trayList)){
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(StringUtil.join(trayList.toArray(),","));
updateStockArticleList.add(updateStockArticle);
}else{
clearStockArticleIdList.add(stockArticleEntity.getId());
}
}
}
});
}else if ("3".equals(associationType)){
//把trayGoodsEntities中的所有元素的associationId放入一个List
List<Long> orderPackageIdList = warehouseTrayGoodsEntities.stream().map(WarehouseTrayGoodsEntity::getAssociationId).collect(Collectors.toList());
//清除原来仓库的包件上的托盘信息
distributionParcelListClient.clearPallet(orderPackageIdList);
//查询原仓库有哪些包件
List<DistributionParcelListEntity> oldParceList = distributionParcelListClient.findListByIds(orderPackageIdList);
//把oldParceList中的所有元素的stockArticleId放入一个set
Set<Long> stockArticleIdSet = oldParceList.stream().map(DistributionParcelListEntity::getStockArticleId).collect(Collectors.toSet());
List<DistributionStockArticleEntity> oldStockArticleList = distributionStockArticleClient.findListByIds(stockArticleIdSet);
oldStockArticleList.forEach(stockArticleEntity -> {
String trays = stockArticleEntity.getTrays();
if(!StringUtil.isBlank(trays)){
if(trays.contains(palletName)){
List<String> list = Arrays.asList(trays.split(trays));
List<String> trayList = new ArrayList<>(list);
trayList.remove(palletName);
if(CollUtil.isNotEmpty(trayList)){
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(StringUtil.join(trayList.toArray(),","));
updateStockArticleList.add(updateStockArticle);
}else{
clearStockArticleIdList.add(stockArticleEntity.getId());
}
}
}
});
}
});
// if(CollUtil.isNotEmpty(updateStockArticleList)){
// distributionStockArticleClient.updateByBatchId(updateStockArticleList);
// }
//
// if(CollUtil.isNotEmpty(clearStockArticleIdList)){
// distributionStockArticleClient.clearTraysByIds(clearStockArticleIdList);
// }
List<WarehouseTrayGoodsEntity> updateTrayGoodsList = new ArrayList<>();
//处理新的
map.keySet().forEach(associationType -> {
List<WarehouseTrayGoodsEntity> warehouseTrayGoodsEntities = map.get(associationType);
//把warehouseTrayGoodsEntities转化成以associationValue为key的Map
Map<String, WarehouseTrayGoodsEntity> warehouseTrayGoodsMap = warehouseTrayGoodsEntities.stream()
.collect(Collectors.toMap(
WarehouseTrayGoodsEntity::getAssociationValue, // key
entity -> entity, // value
(existing, replacement) -> existing // 如果key重复,保留第一个值
));
if("1".equals(associationType)){
//把warehouseTrayGoodsEntities中所有元素的associationValue放入一个Set
Set<String> orderCodeSet = warehouseTrayGoodsEntities.stream().map(WarehouseTrayGoodsEntity::getAssociationValue).collect(Collectors.toSet());
FindParamterDTO findParamterDTO = new FindParamterDTO();
findParamterDTO.setOrderCodeSet(orderCodeSet);
findParamterDTO.setWarehouseId(warehouseId);
List<DistributionStockArticleEntity> stockArticleEntityList = distributionStockArticleClient.findListByOrderCodesAndWarehouseId(findParamterDTO);
stockArticleEntityList.forEach(stockArticleEntity -> {
WarehouseTrayGoodsEntity warehouseTrayGoodsEntity = warehouseTrayGoodsMap.get(stockArticleEntity.getOrderCode());
if(!Objects.isNull(warehouseTrayGoodsEntity)){
warehouseTrayGoodsEntity.setAssociationId(stockArticleEntity.getId());
warehouseTrayGoodsEntity.setWarehouseId(warehouseId);
updateTrayGoodsList.add(warehouseTrayGoodsEntity);
}
String trays = stockArticleEntity.getTrays();
if(!StringUtil.isBlank(trays)){
if(!trays.contains(palletName)){
List<String> list = Arrays.asList(trays.split(trays));
List<String> trayList = new ArrayList<>(list);
trayList.add(palletName);
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(StringUtil.join(trayList.toArray(),","));
updateStockArticleList.add(updateStockArticle);
}
}else{
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(palletName);
updateStockArticleList.add(updateStockArticle);
}
});
}else if ("3".equals(associationType)){
//把warehouseTrayGoodsEntities中所有元素的associationValue放入一个Set
Set<String> orderPackageCodeSet = warehouseTrayGoodsEntities.stream().map(WarehouseTrayGoodsEntity::getAssociationValue).collect(Collectors.toSet());
FindParamterDTO findParamterDTO = new FindParamterDTO();
findParamterDTO.setOrderPackageCodeList(new ArrayList<>(orderPackageCodeSet));
findParamterDTO.setWarehouseId(warehouseId);
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListClient.findListByOrderPackageCodeList(findParamterDTO);
//把parcelListEntityList转化成以orderPackageCode为key的Map
Map<String, DistributionParcelListEntity> parcelListEntityMap = parcelListEntityList.stream()
.collect(Collectors.toMap(
DistributionParcelListEntity::getOrderPackageCode, // key
entity -> entity, // value
(existing, replacement) -> existing // 如果key重复,保留第一个值
));
warehouseTrayGoodsEntities.forEach(warehouseTrayGoodsEntity -> {
DistributionParcelListEntity parcelList = parcelListEntityMap.get(warehouseTrayGoodsEntity.getAssociationValue());
if(!Objects.isNull(parcelList)){
warehouseTrayGoodsEntity.setAssociationId(parcelList.getId());
warehouseTrayGoodsEntity.setWarehouseId(warehouseId);
updateTrayGoodsList.add(warehouseTrayGoodsEntity);
DistributionParcelListEntity updateParceEntity = new DistributionParcelListEntity();
updateParceEntity.setId(parcelList.getId());
updateParceEntity.setPallet(palletName);
updateParceList.add(updateParceEntity);
}
});
//把parcelListEntityList中所有元素的orderCode放入一个Set
Set<String> orderCodeSet = parcelListEntityList.stream().map(DistributionParcelListEntity::getOrderCode).collect(Collectors.toSet());
findParamterDTO.setOrderCodeSet(orderCodeSet);
findParamterDTO.setWarehouseId(warehouseId);
List<DistributionStockArticleEntity> stockArticleEntityList = distributionStockArticleClient.findListByOrderCodesAndWarehouseId(findParamterDTO);
stockArticleEntityList.forEach(stockArticleEntity -> {
String trays = stockArticleEntity.getTrays();
if(!StringUtil.isBlank(trays)){
if(trays.contains(palletName)){
List<String> list = Arrays.asList(trays.split(trays));
List<String> trayList = new ArrayList<>(list);
trayList.remove(palletName);
if(CollUtil.isNotEmpty(trayList)){
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity();
updateStockArticle.setId(stockArticleEntity.getId());
updateStockArticle.setTrays(StringUtil.join(trayList.toArray(),","));
updateStockArticleList.add(updateStockArticle);
}else{
clearStockArticleIdList.add(stockArticleEntity.getId());
}
}
}
});
}
});
if(CollUtil.isNotEmpty(updateParceList)){
distributionParcelListClient.updateList(updateParceList);
}
if(CollUtil.isNotEmpty(updateStockArticleList)){
distributionStockArticleClient.updateByBatchId(updateStockArticleList);
}
if(CollUtil.isNotEmpty(clearStockArticleIdList)){
distributionStockArticleClient.clearTraysByIds(clearStockArticleIdList);
}
if(CollUtil.isNotEmpty(updateTrayGoodsList)){
warehouseTrayGoodsService.updateBatchById(updateTrayGoodsList);
}
}
@Override

Loading…
Cancel
Save