Browse Source

Merge branch 'dev' into pre-production

master
zhenghaoyu 10 months ago
parent
commit
1d165dc8cf
  1. 2
      blade-biz-common/src/main/java/org/springblade/common/constant/factorydata/FactoryDataConstants.java
  2. 1
      blade-service-api/logpm-factory-data-api/src/main/java/com/logpm/factorydata/util/FactoryDataUtil.java
  3. 5
      blade-service-api/logpm-factory-data-api/src/main/java/com/logpm/factorydata/vo/NodePushMsg.java
  4. 3
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingWaybillEntity.java
  5. 15
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingNumVO.java
  6. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingWaybillVO.java
  7. 3
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseWaybillEntity.java
  8. 3
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseWaybillVO.java
  9. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  10. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
  11. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  12. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
  13. 333
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  14. 53
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  15. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  16. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  17. 34
      blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/enums/FactoryNodeEnums.java
  18. 79
      blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/enums/NodeMappingEnums.java
  19. 38
      blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/enums/NodeNeedEnums.java
  20. 155
      blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/mq/NodeDataPushListener.java
  21. 25
      blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/pros/OldProperties.java
  22. 3
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingMapper.xml
  23. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingWaybillMapper.java
  24. 32
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingWaybillMapper.xml
  25. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineBillladingWaybillService.java
  26. 21
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java
  27. 121
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingPackageServiceImpl.java
  28. 195
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingServiceImpl.java
  29. 15
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingWaybillServiceImpl.java
  30. 64
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  31. 1
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseRetentionApiController.java
  32. 7
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

2
blade-biz-common/src/main/java/org/springblade/common/constant/factorydata/FactoryDataConstants.java

@ -68,6 +68,7 @@ public abstract class FactoryDataConstants {
/**
* 索菲亚工厂订单
*/
String SFY_NODE_DATA_PUSH = "factory.data.queue.sfy.nodeDataPush" + DEVAUTH;
String SFY_FACTORY_ORDER = "factory.data.queue.sfy.factoryOrder" + DEVAUTH;
/**
* 我乐工厂订单
@ -117,6 +118,7 @@ public abstract class FactoryDataConstants {
/**
* 索菲亚工厂订单
*/
String SFY_NODE_DATA_PUSH = "sfy.nodeDataPush" + DEVAUTH;
String SFY_FACTORY_ORDER = "sfy.factoryOrder" + DEVAUTH;
/**
* 我乐工厂订单

1
blade-service-api/logpm-factory-data-api/src/main/java/com/logpm/factorydata/util/FactoryDataUtil.java

@ -25,6 +25,7 @@ public class FactoryDataUtil {
factorys.put(BrandEnums.ZB.getValue(), FactoryDataConstants.Mq.RoutingKeys.ZBOM_NODE_DATA_PUSH);
factorys.put(BrandEnums.LINSY.getValue(), FactoryDataConstants.Mq.RoutingKeys.LINSY_NODE_DATA_PUSH);
factorys.put(BrandEnums.OLO.getValue(), FactoryDataConstants.Mq.RoutingKeys.OLO_NODE_DATA_PUSH);
factorys.put(BrandEnums.SFY.getValue(), FactoryDataConstants.Mq.RoutingKeys.SFY_NODE_DATA_PUSH);
}

5
blade-service-api/logpm-factory-data-api/src/main/java/com/logpm/factorydata/vo/NodePushMsg.java

@ -55,6 +55,11 @@ public class NodePushMsg implements Serializable {
*/
private SignForStatusEnums signForStatusEnums;
/**
* 主单数据
*/
private Object main;
/**
* 内容
*/

3
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingWaybillEntity.java

@ -57,6 +57,9 @@ public class TrunklineBillladingWaybillEntity extends TenantEntity {
/** 提货费用 */
@ApiModelProperty(name = "提货费用",notes = "")
private BigDecimal billladingFee ;
/** 计划件数 */
@ApiModelProperty(name = "计划件数",notes = "")
private Integer planNum ;
}

15
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingNumVO.java

@ -0,0 +1,15 @@
package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class TrunklineBillladingNumVO implements Serializable {
private Integer num;
private BigDecimal weight;
private BigDecimal volume;
}

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

@ -32,5 +32,6 @@ public class TrunklineBillladingWaybillVO extends TrunklineBillladingWaybillEnti
private Integer stockCount;
private Long billladingWaybillId;
private Integer totalPlanNum;
}

3
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseWaybillEntity.java

@ -489,4 +489,7 @@ public class WarehouseWaybillEntity extends TenantEntity {
@ApiModelProperty(value = "冻结时间 ")
private Date freezeTime;
@ApiModelProperty(value = "提货件数 ")
private Integer billladingNum;
}

3
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseWaybillVO.java

@ -39,6 +39,9 @@ public class WarehouseWaybillVO extends WarehouseWaybillEntity {
private Integer handleNum;
private Integer planNum;
private Integer totalPlanNum;
private Long waybillId;
}

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

@ -2038,7 +2038,7 @@
LEFT JOIN logpm_distribution_reservation_package AS ldrp ON ldrp.stock_article_id = ldrs.stock_article_id and ldrp.reservation_id = ldr.id
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldpl.id = ldrp.parce_list_id and ldpl.stock_article_id = ldsa.id
WHERE
lddl.id=#{deliveryId} AND ldrp.packet_bar_status in ('1','3') AND ldrs.is_zero = 0 AND ldpl.order_package_code = #{orderPackageCode}
lddl.id=#{deliveryId} AND ldrp.packet_bar_status in ('1','3') AND ldrs.is_zero = 0 AND ldpl.order_package_code = #{orderPackageCode} AND ldr.reservation_status != 40
</select>
<select id="selectRetentionZeroPackage" resultType="com.logpm.distribution.vo.DistributionRetentionScanVo">

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

@ -1089,10 +1089,10 @@
SELECT COUNT(*)
FROM logpm_distrilbution_bill_package dp
WHERE dp.stock_article_id = ldbs.stock_article_id and dp.packet_bar_status in (1,3) and dp.packet_bar_code is
not null
not null AND dp.bill_lading_id = ldsi.reservation_id
) AS reservationNum
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distrilbution_bill_stock ldbs on ldsi.reservation_id = ldbs.bill_lading_id and ldbs.order_status in (1,2)
LEFT JOIN logpm_distrilbution_bill_stock ldbs on ldsi.reservation_id = ldbs.bill_lading_id and ldbs.order_status in (1,3)
LEFT JOIN logpm_distribution_stock_article ldsa ON ldsa.id = ldbs.stock_article_id
INNER JOIN logpm_distribution_stockup lds ON lds.id = ldsi.stockup_id
<where>

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

@ -693,7 +693,7 @@
LEFT JOIN logpm_distribution_stock lds on lds.parcel_list_id = ldbp.parce_list_id
LEFT JOIN logpm_distribution_stock_article dsa ON dbl.stock_article_id = dsa.id
LEFT JOIN logpm_distribution_stockup_info ldsi on dbl.id = ldsi.reservation_id and ldsi.stock_up_type = #{distrilbutionBillLading.stockupType}
where ldsi.stockup_id = #{distrilbutionBillLading.id};
where ldsi.stockup_id = #{distrilbutionBillLading.id} AND dbp.packet_bar_status != 2
</select>
<select id="selectBillLadingPackage"
resultType="com.logpm.distribution.entity.DistributionParcelListEntity">

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

@ -8,8 +8,10 @@ import com.logpm.distribution.dto.app.DistrilbutionloadingscanDTO;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.dto.app.StockupZeroDTO;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity;
@ -340,13 +342,13 @@ public interface IDistributionAsyncService {
/**
* 推送预约下包件转配送日志
* @param reservationIds
* @param
*/
void recordsReservationDeliveryLog(String reservationIds,BasicdataWarehouseEntity warehouse,BladeUser user,String trainNumber,Integer node,String content);
void recordsReservationDeliveryLog(List<DistributionReservationEntity> reservationEntityList, BasicdataWarehouseEntity warehouse, BladeUser user, DistributionDeliveryListEntity deliveryListEntity, Integer node, String content);
/**
* 自提推送工厂
* @param s
*/
void sendFactorySignforInfo(String s);
void sendFactorySignforInfo(String s,BasicdataWarehouseEntity warehouse,BladeUser user);
}

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

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
@ -54,6 +55,7 @@ import com.logpm.factorydata.enums.BrandEnums;
import com.logpm.factorydata.util.FactoryDataMessageSender;
import com.logpm.factorydata.vo.NodePushMsg;
import com.logpm.factorydata.vo.PushData;
import com.logpm.factorydata.vo.SendMsg;
import com.logpm.trunkline.dto.AddWaybillTrackDTO;
import com.logpm.trunkline.feign.*;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
@ -179,7 +181,6 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
private final IDistributionPrintService distributionPrintService;
// private final
@Override
@ -1599,11 +1600,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
ouPaiFactoryClinet.newSystemHandleStatusData(orderStatusDTO);
log.info(">>>>>>>>>>>>>>>>>进入newSystemHandleStatusData orderStatusDTO值 :{}", orderStatusDTO);
}
}
// orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO);
}
if (Func.isNotEmpty(brand.get("志邦"))) {
@ -1611,9 +1609,12 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
List<Object> contents = new ArrayList<>();
if (CollUtil.isNotEmpty(zb)) {
for (MtReceiveContentDTO mtReceiveContentDTO : zb) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("packageCode", mtReceiveContentDTO.getUnitNo());
contents.add(jsonObject);
PushData pushData = PushData.builder()
.packageCode(mtReceiveContentDTO.getUnitNo())
.orderCode(mtReceiveContentDTO.getOrderCode())
.warehouseName(warehouseName)
.waybillNumber(mtReceiveContentDTO.getWaybillNumber()).build();
contents.add(pushData);
}
}
NodePushMsg msg = new NodePushMsg();
@ -1632,7 +1633,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
for (MtReceiveContentDTO mtReceiveContentDTO : zb) {
try {
// 发送入库消息
com.logpm.distribution.dto.OrderStatusDTO orderStatusDTO = new com.logpm.distribution.dto.OrderStatusDTO();
OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
// 通过包件id 查询包件
orderStatusDTO.setUnitNo(mtReceiveContentDTO.getUnitNo());
orderStatusDTO.setOrderNo(mtReceiveContentDTO.getOrderCode());
@ -1705,7 +1706,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Transactional
@LogpmAsync("asyncExecutor")
public void releaseSource(Long reservationId, BasicdataWarehouseEntity warehouse,BladeUser user,String trainNumber) {
public void releaseSource(Long reservationId, BasicdataWarehouseEntity warehouse, BladeUser user, String trainNumber) {
String method = "##########################DistributionAsyncServiceImpl.releaseSource";
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(reservationId);
StringBuilder builder = new StringBuilder();
@ -1734,20 +1735,20 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
builder.append(orderCodes);
log.info(">>>>>> updatePackageDeliveryStatus,{}, {}", reservationId, packageIds);
if(!packageIds.isEmpty() && reservationId!=null){
if (!packageIds.isEmpty() && reservationId != null) {
//完成对该客户下此包件任务的取消
int row = distributionReservationMapper.updatePackageDeliveryStatus(reservationId, packageIds);
}
List<JSONObject> aaa = new ArrayList<>();
distributionParcelListEntities.forEach(k->{
distributionParcelListEntities.forEach(k -> {
if (k.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())
&& k.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())){
String content = "包件在"+warehouse.getName()+"由"+user.getNickName()+"完成复核,配送车次号:"+trainNumber+"预约任务号:"+reservationEntity.getReservationCode();
&& k.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) {
String content = "包件在" + warehouse.getName() + "由" + user.getNickName() + "完成复核,配送车次号:" + trainNumber + "预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(warehouse, AuthUtil.getUser(), k.getOrderPackageCode(), content, WorkNodeEnums.CLERK_REVIEW.getCode());
aaa.add(js);
}else {
String content = "包件在"+warehouse.getName()+"由"+user.getNickName()+"复核取消计划无操作包件,配送车次号:"+trainNumber+"预约任务号:"+reservationEntity.getReservationCode();
} else {
String content = "包件在" + warehouse.getName() + "由" + user.getNickName() + "复核取消计划无操作包件,配送车次号:" + trainNumber + "预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(warehouse, AuthUtil.getUser(), k.getOrderPackageCode(), content, WorkNodeEnums.CANCEL_DISTRIBUTION.getCode());
aaa.add(js);
}
@ -2904,9 +2905,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
return null;
}
@ChangeAsync()
@Override
public void saveOtherDataBaseNew(String tenantId,List<DistributionBusinessPreOrderEntity> dataResult, String mallName) {
public void saveOtherDataBaseNew(String tenantId, List<DistributionBusinessPreOrderEntity> dataResult, String mallName) {
List<Long> orderIdList = dataResult.stream()
.map(DistributionBusinessPreOrderEntity::getStockArticleId)
@ -2962,16 +2964,33 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@LogpmAsync("asyncExecutor")
public void recordsReservationDeliveryLog(String reservationIds,BasicdataWarehouseEntity warehouse,BladeUser user,String trainNumber,Integer node,String content) {
List<Long> list = Func.toLongList(reservationIds);
public void recordsReservationDeliveryLog(List<DistributionReservationEntity> reservationList,BasicdataWarehouseEntity warehouse,BladeUser user,DistributionDeliveryListEntity deliveryListEntity,Integer node,String content) {
List<Long> list = reservationList.stream().map(DistributionReservationEntity::getId).collect(Collectors.toList());
if (!list.isEmpty()) {
List<DistributionReservationPackageEntity> distributionReservationPackageEntities = distributionReservationPackageMapper.selectList(Wrappers.<DistributionReservationPackageEntity>query().lambda()
.in(DistributionReservationPackageEntity::getReservationId, list)
.ne(DistributionReservationPackageEntity::getPacketBarStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
// reservationList根据id分组封装成map
Map<Long, List<DistributionReservationEntity>> map = reservationList.stream().collect(Collectors.groupingBy(DistributionReservationEntity::getId));
List<JSONObject> aaa = new ArrayList<>();
List<JSONObject> pushDatas = new ArrayList<>();
if (!distributionReservationPackageEntities.isEmpty()) {
// 通过订单id获取订单,然后根据品牌分组
Map<Long,DistributionStockArticleEntity> stockArticleEntityMap = new HashMap<>();
List<Long> collect = distributionReservationPackageEntities.stream().map(DistributionReservationPackageEntity::getStockArticleId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(collect)){
List<DistributionStockArticleEntity> stockArticleEntities = distributionStockArticleService.list(Wrappers.<DistributionStockArticleEntity>query().lambda()
.in(DistributionStockArticleEntity::getId, collect)
);
if(CollUtil.isNotEmpty(stockArticleEntities)){
stockArticleEntities.forEach(s->{
stockArticleEntityMap.put(s.getId(),s);
});
}
}
distributionReservationPackageEntities.forEach(rp->{
DistributionReservationEntity r = map.get(rp.getReservationId()).get(0);
JSONObject trunklinePackageTrackLog= new JSONObject();
trunklinePackageTrackLog.put("tenantId",AuthUtil.getTenantId());
trunklinePackageTrackLog.put("createTime",new Date());
@ -2988,8 +3007,47 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
trunklinePackageTrackLog.put("content",content);
trunklinePackageTrackLog.put("operator",AuthUtil.getUser().getNickName());
aaa.add(trunklinePackageTrackLog);
JSONObject jsonObject = new JSONObject();
jsonObject.put("trainNumber", deliveryListEntity.getTrainNumber());
jsonObject.put("brand", stockArticleEntityMap.get(rp.getStockArticleId()).getBrand());
jsonObject.put("receiver", r.getConsignee());
jsonObject.put("receiveAddr", r.getDeliveryAddress());
jsonObject.put("receiveTel", r.getDeliveryPhone());
jsonObject.put("planDeliveryDate", deliveryListEntity.getTaskTime());
jsonObject.put("packageCode", rp.getPacketBarCode());
pushDatas.add(jsonObject);
});
}
try {
if(CollUtil.isNotEmpty(pushDatas)){
// 以trainNumber和receiver 分组 将包件封装成list
Map<String, List<JSONObject>> collect = pushDatas.stream().collect(Collectors.groupingBy(jsonObject -> jsonObject.getString("trainNumber") + jsonObject.getString("receiver") + jsonObject.getString("brand")));
if(CollUtil.isNotEmpty(collect)){
for (Map.Entry<String, List<JSONObject>> entry : collect.entrySet()) {
List<JSONObject> value = entry.getValue();
if(CollUtil.isNotEmpty(value)){
JSONObject object = value.get(0);
NodePushMsg msg = new NodePushMsg();
msg.setNode(WorkNodeEnums.PLAN_DISTRIBUTION);
msg.setBrand(BrandEnums.getByValue(value.get(0).getString("brand")));
msg.setOperator(AuthUtil.getNickName());
msg.setOperatorTime(new Date());
msg.setMain(object);
msg.setContent(value.stream().map(jsonObject -> {
PushData pushData = new PushData();
pushData.setPackageCode(jsonObject.getString("packageCode"));
return pushData;
}).collect(Collectors.toList()));
log.info("推送工厂数据:{}", JSONUtil.toJsonStr(msg));
factoryDataMessageSender.sendNodeDataByBrand(msg);
}
}
}
}
}catch (Exception e){
log.error("推送工程数据失败:{}", e);
}
if (!aaa.isEmpty()) {
trunklinePackageTrackLogClient.addPackageTrackLog(aaa);
}
@ -2998,7 +3056,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
@Override
public void sendFactorySignforInfo(String s) {
public void sendFactorySignforInfo(String s, BasicdataWarehouseEntity warehouse, BladeUser user) {
try {
MtReceiveDTO mtReceiveDTO = new MtReceiveDTO();
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
@ -3007,32 +3065,193 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
);
List<MtReceiveContentDTO> mtReceiveContentDTOList = new ArrayList<>();
List<String> consigneePerson = new ArrayList<>();
for (DistrilbutionBillStockEntity distrilbutionBillStock : list) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(distrilbutionBillStock.getStockArticleId());
List<MtReceiveContentDTO> mtReceiveContentDTOS = handlePushFactorySignforInfo(stockArticleEntity, s);
if (!mtReceiveContentDTOS.isEmpty()) {
mtReceiveContentDTOList.addAll(mtReceiveContentDTOS);
}
consigneePerson.add(stockArticleEntity.getConsigneePerson());
if (!list.isEmpty()) {
List<Long> orderIds = list.stream().map(DistrilbutionBillStockEntity::getStockArticleId).distinct().collect(Collectors.toList());
handlePushFactoryOrderIds(orderIds, s, warehouse, user);
}
mtReceiveDTO.setSendTaskId(s);
mtReceiveDTO.setReceiver(consigneePerson.stream().distinct().collect(Collectors.joining(",")));
mtReceiveDTO.setReceiveContentList(mtReceiveContentDTOList);
List<MtReceiveImagesDTO> mtReceiveImagesDTOS = new ArrayList<>();
List<DistributionPrintEntity> list1 = distributionPrintService.list(Wrappers.<DistributionPrintEntity>query().lambda()
.eq(DistributionPrintEntity::getBillLadingId, s)
} catch (Exception e) {
log.error("回传工厂数据失败", e);
}
}
private void handlePushFactoryOrderIds(List<Long> orderIds, String s, BasicdataWarehouseEntity warehouse, BladeUser user) {
if (!orderIds.isEmpty()) {
List<DistributionStockArticleEntity> distributionStockArticleEntities = distributionStockArticleService.list(Wrappers.<DistributionStockArticleEntity>query().lambda()
.eq(DistributionStockArticleEntity::getWarehouseId, warehouse.getId())
.in(DistributionStockArticleEntity::getId, orderIds)
);
for (DistributionPrintEntity distributionPrintEntity : list1) {
MtReceiveImagesDTO mtReceiveImagesDTO = new MtReceiveImagesDTO();
if (!distributionPrintEntity.getSite().contains("blob")){
mtReceiveImagesDTO.setImage(distributionPrintEntity.getSite());
mtReceiveImagesDTOS.add(mtReceiveImagesDTO);
if (!distributionStockArticleEntities.isEmpty()) {
List<DistributionStockArticleEntity> orderList1 = distributionStockArticleEntities.stream().filter(f -> !StringUtils.isBlank(f.getBrand())).collect(Collectors.toList());
if (!orderList1.isEmpty()) {
Map<String, List<DistributionStockArticleEntity>> orderMap = orderList1.stream().collect(Collectors.groupingBy(DistributionStockArticleEntity::getBrand));
orderMap.forEach((k, v) -> {
try {
if (k.equals("梦天")) {
MtReceiveDTO mtReceiveDTO = new MtReceiveDTO();
//目前处理梦天
List<DistributionStockArticleEntity> orderList2 = orderMap.get(k);
//查询此订单所有签收信息
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s))
.eq(DistributionBillLadingScanEntity::getStockArticleId, orderList2.stream().map(DistributionStockArticleEntity::getId).collect(Collectors.toList()))
);
Map<Long, List<DistributionStockArticleEntity>> mtOrderMap = orderList2.stream().collect(Collectors.groupingBy(DistributionStockArticleEntity::getId));
//处理数据构建
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");
List<MtReceiveContentDTO> mtReceiveContentDTOList = new ArrayList<>();
if (!ladingScanEntities.isEmpty()) {
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
List<DistributionStockArticleEntity> orderInfo = mtOrderMap.get(ladingScanEntity.getStockArticleId());
if (orderInfo.isEmpty()) {
log.error(">>>>>>>>>>>>>>>>自提查询订单信息失败:{}", s);
continue;
}
if (orderInfo.size() > 1) {
log.error(">>>>>>>>>>>>>>>>自提查询订单出现多个订单信息:{}", s);
continue;
}
MtReceiveContentDTO mtReceiveContentDTO = new MtReceiveContentDTO();
mtReceiveContentDTO.setWarehouse(orderInfo.get(0).getWarehouse() + "");
mtReceiveContentDTO.setOrderCode(orderInfo.get(0).getOrderCode());
mtReceiveContentDTO.setUnitNo(ladingScanEntity.getPacketBarCode());
mtReceiveContentDTO.setOperateDate(simpleDateFormat.format(ladingScanEntity.getCreateTime()));
mtReceiveContentDTO.setWaybillNumber(orderInfo.get(0).getWaybillNumber());
mtReceiveContentDTOList.add(mtReceiveContentDTO);
}
}
mtReceiveDTO.setSendTaskId(s);
mtReceiveDTO.setReceiver(orderList2.stream().map(DistributionStockArticleEntity::getConsigneePerson).distinct().collect(Collectors.joining(",")));
mtReceiveDTO.setReceiveContentList(mtReceiveContentDTOList);
List<MtReceiveImagesDTO> mtReceiveImagesDTOS = new ArrayList<>();
List<DistributionPrintEntity> list1 = distributionPrintService.list(Wrappers.<DistributionPrintEntity>query().lambda()
.eq(DistributionPrintEntity::getBillLadingId, s)
);
for (DistributionPrintEntity distributionPrintEntity : list1) {
MtReceiveImagesDTO mtReceiveImagesDTO = new MtReceiveImagesDTO();
if (!distributionPrintEntity.getSite().contains("blob")) {
mtReceiveImagesDTO.setImage(distributionPrintEntity.getSite());
mtReceiveImagesDTOS.add(mtReceiveImagesDTO);
}
}
orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO);
}
if (k.equals("欧派")) {
//查询此订单所有签收信息
List<DistributionStockArticleEntity> orderList3 = orderMap.get(k);
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s))
.eq(DistributionBillLadingScanEntity::getStockArticleId, orderList3.stream().map(DistributionStockArticleEntity::getId).collect(Collectors.toList()))
);
if (!ladingScanEntities.isEmpty()) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
orderStatusDTO.setUnitNo(ladingScanEntity.getPacketBarCode()); //单号
orderStatusDTO.setUsername(ladingScanEntity.getScanUser()); //操作人名称
orderStatusDTO.setStatus("7");
orderStatusDTO.setOperationTime(sdf.format(ladingScanEntity.getCreateTime())); //时间
ouPaiFactoryClinet.newSystemHandleStatusData(orderStatusDTO);
}
}
}
if (k.equals("皮阿诺")) {
List<DistributionStockArticleEntity> orderList3 = orderMap.get(k);
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s))
.eq(DistributionBillLadingScanEntity::getStockArticleId, orderList3.stream().map(DistributionStockArticleEntity::getId).collect(Collectors.toList()))
);
if (!ladingScanEntities.isEmpty()) {
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
// 通过包件id 查询包件
orderStatusDTO.setUnitNo(ladingScanEntity.getPacketBarCode());
orderStatusDTO.setOrderNo(ladingScanEntity.getOrderSelfNumbering());
orderStatusDTO.setStatus("7");
orderStatusDTO.setOperationTime(DateUtil.now());
orderStatusDTO.setCurrentWarehouse(warehouse.getId().toString());
Map<String, Object> map = new HashMap<>();
map.put("messageData", JSONUtil.toJsonStr(orderStatusDTO));
rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map);
}
}
}
if (k.equals("我乐")) {
List<DistributionStockArticleEntity> orderList3 = orderMap.get(k);
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s))
.eq(DistributionBillLadingScanEntity::getStockArticleId, orderList3.stream().map(DistributionStockArticleEntity::getId).collect(Collectors.toList()))
);
List<Object> contents = new ArrayList<>();
if (!ladingScanEntities.isEmpty()) {
Map<String, List<DistributionStockArticleEntity>> listMap = orderList3.stream().collect(Collectors.groupingBy(DistributionStockArticleEntity::getOrderCode));
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
PushData pushData = PushData.builder()
.packageCode(ladingScanEntity.getPacketBarCode())
.orderCode(ladingScanEntity.getOrderSelfNumbering())
.warehouseName(warehouse.getName())
.waybillNumber(listMap.get(ladingScanEntity.getOrderSelfNumbering()).get(0).getWaybillNumber()).build();
contents.add(pushData);
}
}
NodePushMsg msg = new NodePushMsg();
msg.setNode(WorkNodeEnums.CLERK_REVIEW);
msg.setBrand(BrandEnums.OLO);
msg.setOperator(user.getNickName());
msg.setOperatorTime(new Date());
msg.setContent(contents);
log.info("推送工厂数据:{}", JSONUtil.toJsonStr(msg));
factoryDataMessageSender.sendNodeDataByBrand(msg);
}
if (k.equals("志邦")) {
List<DistributionStockArticleEntity> orderList3 = orderMap.get(k);
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s))
.eq(DistributionBillLadingScanEntity::getStockArticleId, orderList3.stream().map(DistributionStockArticleEntity::getId).collect(Collectors.toList()))
);
List<Object> contents = new ArrayList<>();
if (!ladingScanEntities.isEmpty()) {
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("packageCode", ladingScanEntity.getPacketBarCode());
contents.add(jsonObject);
}
}
NodePushMsg msg = new NodePushMsg();
msg.setNode(WorkNodeEnums.CLERK_REVIEW);
msg.setBrand(BrandEnums.ZB);
msg.setOperator(user.getNickName());
msg.setOperatorTime(new Date());
msg.setContent(contents);
log.info("推送工厂数据:{}", JSONUtil.toJsonStr(msg));
factoryDataMessageSender.sendNodeDataByBrand(msg);
}
} catch (Exception e) {
log.error("推送工厂数据错误,当前工厂:{},异常:{}", k, e);
}
});
}
}
orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO);
}catch (Exception e){
log.error("回传工厂数据失败", e);
}
}
private List<MtReceiveContentDTO> handlePushFactorySignforInfo(DistributionStockArticleEntity stockArticleEntity, String s) {
@ -3042,9 +3261,9 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
List<MtReceiveContentDTO> mtReceiveContentDTOS = new ArrayList<>();
if (list.isEmpty()) {
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
while (iterator.hasNext()) {
String next = iterator.next();
if (stockArticleEntity.getBrand().contains(next)){
if (stockArticleEntity.getBrand().contains(next)) {
//查询此订单所有签收信息
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, s)
@ -3055,7 +3274,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
if (!ladingScanEntities.isEmpty()) {
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
MtReceiveContentDTO mtReceiveContentDTO = new MtReceiveContentDTO();
mtReceiveContentDTO.setWarehouse(stockArticleEntity.getWarehouse()+"");
mtReceiveContentDTO.setWarehouse(stockArticleEntity.getWarehouse() + "");
mtReceiveContentDTO.setOrderCode(stockArticleEntity.getOrderCode());
mtReceiveContentDTO.setUnitNo(ladingScanEntity.getPacketBarCode());
mtReceiveContentDTO.setOperateDate(simpleDateFormat.format(ladingScanEntity.getCreateTime()));
@ -3073,20 +3292,20 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
private JSONObject handleLogJSONObject(BasicdataWarehouseEntity warehouse, BladeUser user, String orderPackageCode, String content, Integer node) {
JSONObject trunklinePackageTrackLog = new JSONObject();
trunklinePackageTrackLog.put("tenantId",user.getTenantId());
trunklinePackageTrackLog.put("createTime",new Date());
trunklinePackageTrackLog.put("createUser",user.getUserId());
trunklinePackageTrackLog.put("updateUser",user.getUserId());
trunklinePackageTrackLog.put("updateTime",new Date());
trunklinePackageTrackLog.put("isDeleted",0);
trunklinePackageTrackLog.put("status",1);
trunklinePackageTrackLog.put("createDept",warehouse.getDepartment());
trunklinePackageTrackLog.put("orderPackageCode",orderPackageCode);
trunklinePackageTrackLog.put("warehouseId",warehouse.getId());
trunklinePackageTrackLog.put("warehouseName",warehouse.getName());
trunklinePackageTrackLog.put("workNode",node);
trunklinePackageTrackLog.put("content",content);
trunklinePackageTrackLog.put("operator",user.getNickName());
trunklinePackageTrackLog.put("tenantId", user.getTenantId());
trunklinePackageTrackLog.put("createTime", new Date());
trunklinePackageTrackLog.put("createUser", user.getUserId());
trunklinePackageTrackLog.put("updateUser", user.getUserId());
trunklinePackageTrackLog.put("updateTime", new Date());
trunklinePackageTrackLog.put("isDeleted", 0);
trunklinePackageTrackLog.put("status", 1);
trunklinePackageTrackLog.put("createDept", warehouse.getDepartment());
trunklinePackageTrackLog.put("orderPackageCode", orderPackageCode);
trunklinePackageTrackLog.put("warehouseId", warehouse.getId());
trunklinePackageTrackLog.put("warehouseName", warehouse.getName());
trunklinePackageTrackLog.put("workNode", node);
trunklinePackageTrackLog.put("content", content);
trunklinePackageTrackLog.put("operator", user.getNickName());
return trunklinePackageTrackLog;
}
}

53
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -2674,6 +2674,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
}
}
List<JSONObject> logs = new ArrayList<>();
List<JSONObject> pushDatas = new ArrayList<>();
//查询出原来配送信息的备货任务
DistributionStockupVO deliveryStockupInfo = distributionStockupMapper.getDeliveryStockupInfo(deliveryListEntity.getId());
//这里查询出该备货任务的执行情况,如果该任务处于已完成的状态需要创建新的备货任务,其他的备货状态则是进行备货任务的修改
@ -2869,6 +2870,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
packageLockIds.add(dp.getId());
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "商配计划配车,操作方式:新增订单无包件操作,构建新的预约计划,预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), dp.getOrderPackageCode(), content, WorkNodeEnums.PLAN_DISTRIBUTION.getCode());
JSONObject jsonObject = new JSONObject();
jsonObject.put("trainNumber", deliveryListEntity.getTrainNumber());
jsonObject.put("receiver", reservationEntity.getConsignee());
jsonObject.put("receiveAddr", reservationEntity.getDeliveryAddress());
jsonObject.put("receiveTel", reservationEntity.getDeliveryPhone());
jsonObject.put("planDeliveryDate", deliveryListEntity.getTaskTime());
jsonObject.put("packageCode", dp.getOrderPackageCode());
pushDatas.add(jsonObject);
logs.add(js);
}
}
@ -2889,6 +2898,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//这里根据包件进行订单状态的改变
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "商配计划配车,操作方式:新增订单勾选包件,构建新的预约计划,预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), p.getOrderPackageCode(), content, WorkNodeEnums.PLAN_DISTRIBUTION.getCode());
JSONObject jsonObject = new JSONObject();
jsonObject.put("trainNumber", deliveryListEntity.getTrainNumber());
jsonObject.put("receiver", reservationEntity.getConsignee());
jsonObject.put("receiveAddr", reservationEntity.getDeliveryAddress());
jsonObject.put("receiveTel", reservationEntity.getDeliveryPhone());
jsonObject.put("planDeliveryDate", deliveryListEntity.getTaskTime());
jsonObject.put("packageCode", p.getOrderPackageCode());
pushDatas.add(jsonObject);
logs.add(js);
});
}
@ -3087,6 +3104,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//这里根据包件进行订单状态的改变
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "商配计划配车,操作方式:勾选订单包件,预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), p.getOrderPackageCode(), content, WorkNodeEnums.PLAN_DISTRIBUTION.getCode());
JSONObject jsonObject = new JSONObject();
jsonObject.put("trainNumber", deliveryListEntity.getTrainNumber());
jsonObject.put("receiver", reservationEntity.getConsignee());
jsonObject.put("receiveAddr", reservationEntity.getDeliveryAddress());
jsonObject.put("receiveTel", reservationEntity.getDeliveryPhone());
jsonObject.put("planDeliveryDate", deliveryListEntity.getTaskTime());
jsonObject.put("packageCode", p.getOrderPackageCode());
pushDatas.add(jsonObject);
logs.add(js);
});
} else {
@ -3126,6 +3151,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
packageLockIds.add(dp.getId());
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "商配计划配车,操作方式:无勾选包件操作,预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), dp.getOrderPackageCode(), content, WorkNodeEnums.PLAN_DISTRIBUTION.getCode());
JSONObject jsonObject = new JSONObject();
jsonObject.put("trainNumber", deliveryListEntity.getTrainNumber());
jsonObject.put("receiver", reservationEntity.getConsignee());
jsonObject.put("receiveAddr", reservationEntity.getDeliveryAddress());
jsonObject.put("receiveTel", reservationEntity.getDeliveryPhone());
jsonObject.put("planDeliveryDate", deliveryListEntity.getTaskTime());
jsonObject.put("packageCode", dp.getOrderPackageCode());
pushDatas.add(jsonObject);
logs.add(js);
}
@ -3236,6 +3269,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
packageLockIds.add(p.getId());
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "商配计划配车,操作方式:对已有计划订单进行包件勾选新增操作,预约任务号:" + reservationEntity.getReservationCode();
JSONObject js = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), reservationPackageEntity.getPacketBarCode(), content, WorkNodeEnums.PLAN_DISTRIBUTION.getCode());
JSONObject jsonObject = new JSONObject();
jsonObject.put("trainNumber", deliveryListEntity.getTrainNumber());
jsonObject.put("receiver", reservationEntity.getConsignee());
jsonObject.put("receiveAddr", reservationEntity.getDeliveryAddress());
jsonObject.put("receiveTel", reservationEntity.getDeliveryPhone());
jsonObject.put("planDeliveryDate", deliveryListEntity.getTaskTime());
jsonObject.put("packageCode", reservationPackageEntity.getPacketBarCode());
pushDatas.add(jsonObject);
logs.add(js);
} else {
//依然存在包件,
@ -3853,6 +3894,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
AtomicInteger clientTotal = new AtomicInteger();
List<Long> newIds = new ArrayList<>();
List<Long> oldIds = new ArrayList<>();
List<DistributionReservationEntity> newReservationEntities = new ArrayList<>();
newReservation.forEach((k, v) -> {
clientTotal.getAndIncrement();
//统计配送包件总数量
@ -3868,7 +3910,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//新增
DistributionReservationEntity distributionReservationEntity = v.get(0);
newIds.add(distributionReservationEntity.getId());
newReservationEntities.add(distributionReservationEntity);
DistributionSignforEntity distributionSignforEntity = new DistributionSignforEntity();
// String trainNumberMa = trainNumberMa();
distributionSignforEntity.setTrainNumber(deliveryListEntity.getTrainNumber());
@ -3886,10 +3928,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
.set(DistributionReservationEntity::getReservationStatus, ReservationStatusConstant.daipeisong.getValue())
);
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "转车次任务,操作方式:车次添加预约计划,车次号:" + deliveryListEntity.getTrainNumber();
String ids = oldIds.stream().map(String::valueOf).collect(Collectors.joining(","));
distributionAsyncService.recordsReservationDeliveryLog(ids, myCurrentWarehouse, AuthUtil.getUser(), deliveryListEntity.getTrainNumber(), WorkNodeEnums.PLAN_DISTRIBUTION.getCode(), content);
String ids = newIds.stream().map(String::valueOf).collect(Collectors.joining(","));
distributionAsyncService.recordsReservationDeliveryLog(newReservationEntities, myCurrentWarehouse, AuthUtil.getUser(), deliveryListEntity, WorkNodeEnums.PLAN_DISTRIBUTION.getCode(), content);
}
List<DistributionReservationEntity> oldReservationEntities = new ArrayList<>();
oldReservation.forEach((m, n) -> {
//这里就是取消的预约单,进行状态回退
DistributionReservationEntity reservationEntity = n.get(0);
@ -3905,12 +3947,13 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
.eq(DistributionStockupInfoEntity::getReservationId, reservationEntity.getId())
.set(DistributionStockupInfoEntity::getStockStatus, "4")
);
oldReservationEntities.add(reservationEntity);
oldIds.add(reservationEntity.getId());
});
if (!oldIds.isEmpty()) {
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "取消配车计划,操作方式:车次移除预约计划,车次号:" + deliveryListEntity.getTrainNumber();
String ids = oldIds.stream().map(String::valueOf).collect(Collectors.joining(","));
distributionAsyncService.recordsReservationDeliveryLog(ids, myCurrentWarehouse, AuthUtil.getUser(), deliveryListEntity.getTrainNumber(), WorkNodeEnums.CANCEL_DISTRIBUTION.getCode(), content);
distributionAsyncService.recordsReservationDeliveryLog(oldReservationEntities, myCurrentWarehouse, AuthUtil.getUser(), deliveryListEntity, WorkNodeEnums.CANCEL_DISTRIBUTION.getCode(), content);
}
//修改备货信息

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

@ -1380,8 +1380,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliveryListEntity.setInventoryNub(inventoryNum.get());
distributionDeliveryListService.updateById(distributionDeliveryListEntity);
String content = "包件在"+myCurrentWarehouse.getName()+"由"+ AuthUtil.getUser().getNickName()+"转车次任务,操作方式:批量预约任务转配送,车次号:"+distributionDeliveryListEntity.getTrainNumber();
distributionAsyncService.recordsReservationDeliveryLog(reservationIds,myCurrentWarehouse,user,distributionDeliveryListEntity.getTrainNumber(),WorkNodeEnums.PLAN_DISTRIBUTION.getCode(),content);
distributionAsyncService.recordsReservationDeliveryLog(reservationEntityList,myCurrentWarehouse,user,distributionDeliveryListEntity,WorkNodeEnums.PLAN_DISTRIBUTION.getCode(),content);
return R.status(true);
}

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

@ -3287,7 +3287,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
});
distributionAsyncService.sendFactorySignforInfo(s);
distributionAsyncService.sendFactorySignforInfo(s,myCurrentWarehouse,AuthUtil.getUser());

34
blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/enums/FactoryNodeEnums.java

@ -0,0 +1,34 @@
package com.logpm.factorydata.suofeiya.enums;
import lombok.Getter;
import org.springblade.common.model.IDict;
/**
* 工厂节点枚举
*
* @author zhaoqiaobo
* @create 2024-03-20 15:19
*/
@Getter
public enum FactoryNodeEnums implements IDict<Integer> {
INITIAL_WAREHOUSE_ENTRY(101020, "入库"),
UNLOAD_INCOMING_WAREHOUSE(105010,"入库"),
INITIAL_WAREHOUSE_LOADING(103020, "出库"),
PLAN_DISTRIBUTION(301060, "计划配车"),
/**
* 配送装车
*/
DISTRIBUTION_LOADING(302010, "配送"),
/**
* 文员复核
*/
CLERK_REVIEW(303010, "签收"),
;
FactoryNodeEnums(Integer code, String text) {
init(code, text);
}
}

79
blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/enums/NodeMappingEnums.java

@ -0,0 +1,79 @@
package com.logpm.factorydata.suofeiya.enums;
import cn.hutool.core.util.ObjectUtil;
import lombok.Getter;
import org.springblade.common.constant.WorkNodeEnums;
/**
* 系统和工厂节点映射枚举
*
* @author zhaoqiaobo
* @create 2024-03-20 15:19
*/
@Getter
public enum NodeMappingEnums {
/**
* 始发仓入库
*/
INITIAL_WAREHOUSE_ENTRY(FactoryNodeEnums.INITIAL_WAREHOUSE_ENTRY, WorkNodeEnums.INITIAL_WAREHOUSE_ENTRY, 1),
/**
* 卸车入库
*/
UNLOAD_INCOMING_WAREHOUSE(FactoryNodeEnums.UNLOAD_INCOMING_WAREHOUSE, WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE, 1),
/**
* 装车
*/
INITIAL_WAREHOUSE_LOADING(FactoryNodeEnums.INITIAL_WAREHOUSE_LOADING, WorkNodeEnums.INITIAL_WAREHOUSE_LOADING, 1),
/**
* 计划配车
*/
PLAN_DISTRIBUTION(FactoryNodeEnums.PLAN_DISTRIBUTION, WorkNodeEnums.PLAN_DISTRIBUTION, 1),
/**
* 已交接
*/
DISTRIBUTION_LOADING(FactoryNodeEnums.DISTRIBUTION_LOADING, WorkNodeEnums.DISTRIBUTION_LOADING, 1),
/**
* 收货完成
*/
CLERK_REVIEW(FactoryNodeEnums.CLERK_REVIEW, WorkNodeEnums.CLERK_REVIEW, 1);
/**
* 系统作业节点
*/
private WorkNodeEnums workNodeEnums;
/**
* 工厂作业节点
*/
private FactoryNodeEnums factoryNodeEnums;
/**
* 状态码
* 存在我们系统同一个作业节点对应工厂多个节点的情况通过状态码区分
*/
private Integer status;
NodeMappingEnums(FactoryNodeEnums factoryNodeEnums, WorkNodeEnums workNodeEnums, Integer status) {
this.workNodeEnums = workNodeEnums;
this.factoryNodeEnums = factoryNodeEnums;
this.status = status;
}
public static FactoryNodeEnums getFactoryByNodeAndStatus(WorkNodeEnums workNodeEnums) {
return getFactoryByNodeAndStatus(workNodeEnums, 1);
}
public static FactoryNodeEnums getFactoryByNodeAndStatus(WorkNodeEnums workNodeEnums, Integer status) {
NodeMappingEnums[] values = values();
for (NodeMappingEnums value : values) {
WorkNodeEnums workNodeEnums1 = value.getWorkNodeEnums();
Integer status1 = value.getStatus();
FactoryNodeEnums factoryNodeEnums = value.getFactoryNodeEnums();
if (ObjectUtil.equal(workNodeEnums1, workNodeEnums) && ObjectUtil.equal(status1, status)) {
return factoryNodeEnums;
}
}
return null;
}
}

38
blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/enums/NodeNeedEnums.java

@ -0,0 +1,38 @@
package com.logpm.factorydata.suofeiya.enums;
import lombok.Getter;
import java.io.Serializable;
/**
* 作业节点枚举
*
* @author zhaoqiaobo
* @create 2024-03-20 15:19
*/
@Getter
public enum NodeNeedEnums implements Serializable {
INITIAL_WAREHOUSE_ENTRY(101020, "始发仓入库"),
UNLOAD_INCOMING_WAREHOUSE(105010,"卸车入库"),
INITIAL_WAREHOUSE_LOADING(103020, "装车"),
PLAN_DISTRIBUTION(301060, "计划配车"),
/**
* 配送装车
*/
DISTRIBUTION_LOADING(302010, "配送装车"),
/**
* 文员复核
*/
CLERK_REVIEW(303010, "文员复核"),
;
private Integer code;
private String value;
NodeNeedEnums(Integer code, String value) {
this.code = code;
this.value = value;
}
}

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

@ -0,0 +1,155 @@
package com.logpm.factorydata.suofeiya.mq;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.logpm.factorydata.feign.IFactoryDataClient;
import com.logpm.factorydata.suofeiya.enums.FactoryNodeEnums;
import com.logpm.factorydata.suofeiya.enums.NodeMappingEnums;
import com.logpm.factorydata.suofeiya.enums.NodeNeedEnums;
import com.logpm.factorydata.suofeiya.pros.OldProperties;
import com.logpm.factorydata.vo.PushData;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.WorkNodeEnums;
import org.springblade.common.constant.factorydata.FactoryDataConstants;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* 监听业务系统推送给节点数据
*
* @author zhaoqiaobo
* @create 2024-03-18 0:02
*/
@Slf4j
@Component
@AllArgsConstructor
public class NodeDataPushListener {
private final IFactoryDataClient factoryDataClient;
private final OldProperties oldProperties;
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FactoryDataConstants.Mq.Queues.OLO_NODE_DATA_PUSH, durable = "true"),
exchange = @Exchange(name = FactoryDataConstants.Mq.Exchanges.NODE_DATA_PUSH, type = ExchangeTypes.TOPIC),
key = FactoryDataConstants.Mq.RoutingKeys.OLO_NODE_DATA_PUSH
))
@Transactional(rollbackFor = Exception.class)
public void nodeDataPush(String msg) {
log.info("接收到节点数据推送:{}", msg);
if (checkData(msg)) {
return;
}
JSONObject entries = JSONUtil.parseObj(msg);
// 节点
String node = entries.getStr("node");
String main = entries.getStr("main");
WorkNodeEnums workNodeEnums = EnumUtil.fromString(WorkNodeEnums.class, node);
FactoryNodeEnums factoryNode = NodeMappingEnums.getFactoryByNodeAndStatus(workNodeEnums);
// 2 获取业务数据
List<PushData> content = entries.getBeanList("content", PushData.class);
if (!ObjectUtil.equal(workNodeEnums.getCode(), NodeNeedEnums.PLAN_DISTRIBUTION.getCode())) {
// 推送入库出库数据
// 按订单号和运单号进行分组
if (CollUtil.isNotEmpty(content)) {
JSONObject jsons = new JSONObject();
List<JSONObject> packages = new ArrayList<>();
for (PushData pushData : content) {
JSONObject js = new JSONObject();
js.set("paNo", pushData.getPackageCode());
js.set("subinventoryCode", "");
js.set("locatorCode", "");
js.set("updateDate", DateUtil.now());
js.set("paStausNo", "正常");
js.set("logisticsStatus", factoryNode.getText());
packages.add(js);
}
jsons.set("packageInfo", JSONUtil.toJsonStr(packages));
if (StrUtil.isNotEmpty(oldProperties.getPushNodeUrl())) {
try {
log.info("推送节点数据:{}", JSONUtil.toJsonStr(jsons));
String post = HttpUtil.post(oldProperties.getPushNodeUrl(), JSONUtil.toJsonStr(jsons));
log.info("推送结果:{}", post);
} catch (Exception e) {
e.printStackTrace();
log.error("推送节点数据错误:{}", e);
}
}
}
} else {
// 推送配送单计划
if (CollUtil.isNotEmpty(content)) {
JSONObject jsons = new JSONObject();
List<String> packages = new ArrayList<>();
for (PushData pushData : content) {
packages.add(pushData.getPackageCode());
}
if(StrUtil.isNotEmpty(main)){
JSONObject jsonObject = JSONUtil.parseObj(main);
jsons.set("shipPlanNo", jsonObject.getStr("trainNumber"));
jsons.set("receiver", jsonObject.getStr("receiver"));
jsons.set("receiveAddr", jsonObject.getStr("receiveAddr"));
jsons.set("receiveTel", jsonObject.getStr("receiveTel"));
jsons.set("planDeliveryDate", jsonObject.getStr("planDeliveryDate"));
}
jsons.set("paNo", JSONUtil.toJsonStr(packages));
jsons.set("remark", "");
jsons.set("orderExtendFields", new JSONArray());
if (StrUtil.isNotEmpty(oldProperties.getPushNodePlanUrl())) {
try {
log.info("推送节点数据:{}", JSONUtil.toJsonStr(jsons));
String post = HttpUtil.post(oldProperties.getPushNodePlanUrl(), JSONUtil.toJsonStr(jsons));
log.info("推送结果:{}", post);
} catch (Exception e) {
e.printStackTrace();
log.error("推送节点数据错误:{}", e);
}
}
}
}
}
private boolean checkData(String msg) {
if (StrUtil.isEmpty(msg)) {
return true;
}
if (!msg.contains("brand") || !msg.contains("content") || !msg.contains("node")) {
return true;
}
JSONObject entries = JSONUtil.parseObj(msg);
String node = entries.getStr("node");
if (StrUtil.isEmpty(node)) {
return true;
}
// 不是志邦需要的节点数据直接不处理
if (!EnumUtil.contains(NodeNeedEnums.class, node)) {
return true;
}
WorkNodeEnums workNodeEnums = EnumUtil.fromString(WorkNodeEnums.class, node);
if (ObjectUtil.isEmpty(workNodeEnums)) {
return true;
}
List<JSONObject> content = entries.getBeanList("content", JSONObject.class);
if (CollUtil.isEmpty(content)) {
return true;
}
return false;
}
}

25
blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/pros/OldProperties.java

@ -0,0 +1,25 @@
package com.logpm.factorydata.suofeiya.pros;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 老系统配置
* @author zhaoqiaobo
* @Date 2024/5/29
**/
@Data
@Component
@ConfigurationProperties(prefix = "old")
public class OldProperties {
/**
* 推送节点数据到来系统的 url
*/
private String pushNodeUrl;
/**
* 推送配送计划URL
*/
private String pushNodePlanUrl;
}

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

@ -94,6 +94,7 @@
lww.customer_train customerTrain,
lww.shipper shipper,
lww.total_count totalCount,
lww.total_count-lww.billlading_num totalPlanNum,
lww.total_weight totalWeight,
lww.total_volume totalVolume,
lww.total_freight totalFreight,
@ -105,7 +106,7 @@
lww.destination_warehouse_name destinationWarehouseName,
lww.remark remark
from logpm_warehouse_waybill lww
where lww.stock_count != total_count
where lww.billlading_num != lww.total_count
and lww.departure_warehouse_id = #{param.warehouseId}
<if test="param.waybillNos != null and @org.apache.commons.collections4.CollectionUtils@isNotEmpty(param.waybillNos)">
and lww.waybill_no not in

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

@ -3,6 +3,7 @@ package com.logpm.trunkline.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.trunkline.entity.TrunklineBillladingWaybillEntity;
import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity;
import com.logpm.trunkline.vo.TrunklineBillladingNumVO;
import com.logpm.trunkline.vo.TrunklineBillladingWaybillVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -25,5 +26,9 @@ public interface TrunklineBillladingWaybillMapper extends BaseMapper<TrunklineBi
TrunklineBillladingWaybillEntity getOneByBillladingIdAndWaybillNo(@Param("billladingId") Long billladingId, @Param("waybillNo") String waybillNo);
void updateByBillladingIdAndWaybillNo(@Param("billladingId") Long billladingId, @Param("waybillNo") String waybillNo);
void updateByBillladingIdAndWaybillNo(@Param("billladingId") Long billladingId, @Param("waybillNo") String waybillNo,@Param("planNum") Integer planNum);
List<TrunklineBillladingWaybillEntity> findNoFinishWaybillByBillladingId(@Param("billladingId") Long billladingId);
TrunklineBillladingNumVO getNumVOByBillladingId(@Param("billladingId") Long billladingId);
}

32
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingWaybillMapper.xml

@ -40,18 +40,16 @@
lww.consignee_mobile consigneeMobile,
lww.consignee_address consigneeAddress,
lww.remark remark,
lww.total_count totalCount,
sum(ltbw2.real_num) stockCount,
lww.total_count-lww.billlading_num totalPlanNum,
ltbw.plan_num planNum,
ltbw.real_num realNum,
ltbw.billlading_fee billladingFee,
lww.collect_pay collectPay
from logpm_trunkline_billlading_waybill ltbw
left join logpm_trunkline_billlading_waybill ltbw2 on ltbw2.waybill_id = ltbw.waybill_id
left join logpm_trunkline_billlading ltb on ltb.id = ltbw.billlading_id
left join logpm_warehouse_waybill lww on lww.waybill_no = ltbw.waybill_no
left join logpm_trunkline_billlading ltb on ltb.id = ltbw.billlading_id
left join logpm_warehouse_waybill lww on lww.waybill_no = ltbw.waybill_no
where ltbw.billlading_id = #{billladingId}
and ltbw.is_deleted = 0
group by ltb.billlading_code,
ltbw.waybill_id
</select>
<update id="updateDataByBillladingWaybillId" >
@ -82,9 +80,27 @@
<update id="updateByBillladingIdAndWaybillNo">
update logpm_trunkline_billlading_waybill
set is_deleted = 0
set is_deleted = 0,
plan_num = #{planNum}
where billlading_id = #{billladingId}
and waybill_no = #{waybillNo}
</update>
<select id="findNoFinishWaybillByBillladingId" resultType="com.logpm.trunkline.entity.TrunklineBillladingWaybillEntity">
select *
from logpm_trunkline_billlading_waybill
where billlading_id = #{billladingId}
and real_num &lt; plan_num
and is_deleted = 0
</select>
<select id="getNumVOByBillladingId" resultType="com.logpm.trunkline.vo.TrunklineBillladingNumVO">
select IFNULL(sum(real_num),0) num,
IFNULL(sum(real_weight),0) weight,
IFNULL(sum(real_volume),0) volume
from logpm_trunkline_billlading_waybill
where billlading_id = #{billladingId}
and is_deleted = 0
</select>
</mapper>

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

@ -3,6 +3,7 @@ package com.logpm.trunkline.service;
import com.logpm.trunkline.entity.TrunklineBillladingEntity;
import com.logpm.trunkline.entity.TrunklineBillladingWaybillEntity;
import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity;
import com.logpm.trunkline.vo.TrunklineBillladingNumVO;
import com.logpm.trunkline.vo.TrunklineBillladingWaybillVO;
import org.springblade.core.mp.base.BaseService;
@ -33,5 +34,9 @@ public interface ITrunklineBillladingWaybillService extends BaseService<Trunklin
TrunklineBillladingWaybillEntity getOneByBillladingIdAndWaybillNo(Long billladingId, String waybillNo);
void updateByBillladingIdAndWaybillNo(Long billladingId, String waybillNo);
void updateByBillladingIdAndWaybillNo(Long billladingId, String waybillNo,Integer planNum);
List<TrunklineBillladingWaybillEntity> findNoFinishWaybillByBillladingId(Long billladingId);
TrunklineBillladingNumVO getNumVOByBillladingId(Long billladingId);
}

21
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java

@ -925,6 +925,7 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl<TrunklineAdvanc
if(warehouseId.equals(destinationWarehouseId)){
parcelList.setIsTransfer(0);
}
}
}
parcelList.setConditions(1);
@ -978,6 +979,26 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl<TrunklineAdvanc
parcelListClient.addBatch(parcelListEntityList);
//把parcelListEntityList中所有元素以waubillId分组
Map<String,List<DistributionParcelListEntity>> parcelListEntityMap = parcelListEntityList.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWaybillNumber));
List<WarehouseWaybillEntity> updateWaybillList = new ArrayList<>();
parcelListEntityMap.keySet().forEach(waybillNo->{
WarehouseWaybillEntity waybillEntity = waybillEntityMap.get(waybillNo);
if(!Objects.isNull(waybillEntity)){
List<DistributionParcelListEntity> pl = parcelListEntityMap.get(waybillNo);
Integer size = 0;
if(!pl.isEmpty()){
size = pl.size();
}
waybillEntity.setStockCount(waybillEntity.getStockCount() + size);
updateWaybillList.add(waybillEntity);
}
});
warehouseWaybillClient.updateList(updateWaybillList);
orderCodeSet.forEach(orderCode->{
stockArticleClient.updateOrderInfo(orderCode,warehouseId);
});

121
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingPackageServiceImpl.java

@ -264,10 +264,10 @@ public class TrunklineBillladingPackageServiceImpl extends BaseServiceImpl<Trunk
int diff = 0;
int all = stockCount + size;
if(all > totalCount){
waybillEntity.setStockCount(totalCount);
// waybillEntity.setStockCount(totalCount);
diff = totalCount - stockCount;
}else{
waybillEntity.setStockCount(all);
// waybillEntity.setStockCount(all);
diff = size;
}
Integer integer = waybillNoMNumMap.get(waybillNo);
@ -281,65 +281,69 @@ public class TrunklineBillladingPackageServiceImpl extends BaseServiceImpl<Trunk
}
});
// QueryWrapper<TrunklineBillladingWaybillEntity> billladingWaybillEntityQueryWrapper = new QueryWrapper<>();
// billladingWaybillEntityQueryWrapper.in("waybill_no",waybillNoSet)
// .eq("billlading_id",billladingId)
// .eq("is_deleted",0);
//
// List<TrunklineBillladingWaybillEntity> billladingWaybillEntityList = trunklineBillladingWaybillService.list(billladingWaybillEntityQueryWrapper);
//
// //把billladingWaybillEntityList转化成waybillNo为key的Map
// Map<String, TrunklineBillladingWaybillEntity> billladingWaybillEntityMap = billladingWaybillEntityList.stream().collect(Collectors.toMap(TrunklineBillladingWaybillEntity::getWaybillNo, Function.identity()));
//
// List<TrunklineBillladingWaybillEntity> addList = new ArrayList<>();
// List<TrunklineBillladingWaybillEntity> updateList = new ArrayList<>();
//
// final TrunklineBillladingWaybillEntity[] noWaybillData = {trunklineBillladingWaybillService.findNoWaybillNoData(billladingId)};
//
//
// waybillNoSet.forEach(waybillNo -> {
// Integer integer = waybillNoMNumMap.get(waybillNo);
// TrunklineBillladingWaybillEntity billladingWaybillEntity = billladingWaybillEntityMap.get(waybillNo);
// if(Objects.isNull(billladingWaybillEntity)){
// //查询是否有一条无运单的数据
// if(Objects.isNull(noWaybillData[0])){
// noWaybillData[0] = new TrunklineBillladingWaybillEntity();
// noWaybillData[0].setWarehouseId(warehouseId);
// noWaybillData[0].setWarehouseName(warehouseEntity.getName());
// noWaybillData[0].setBillladingId(billladingId);
// noWaybillData[0].setBilladingCode(trunklineBillladingEntity.getBillladingCode());
// noWaybillData[0].setWaybillNo("————");
// noWaybillData[0].setRealNum(integer);
// noWaybillData[0].setRealWeight(BigDecimal.ZERO);
// noWaybillData[0].setRealVolume(BigDecimal.ZERO);
// }else{
// Integer realNum = noWaybillData[0].getRealNum();
// noWaybillData[0].setRealNum(realNum+integer);
// }
// }else{
// Integer realNum = billladingWaybillEntity.getRealNum();
// billladingWaybillEntity.setRealNum(realNum + integer);
// updateList.add(billladingWaybillEntity);
// }
// });
//
// addList.add(noWaybillData[0]);
//
// trunklineBillladingWaybillService.saveBatch(addList);
// trunklineBillladingWaybillService.updateBatchById(updateList);
//
// TrunklineBillladingEntity billladingEntity = trunklineBillladingService.getById(billladingId);
// if(!Objects.isNull(billladingEntity)){
// int realNum = billladingEntity.getRealNum();
// Integer all = waybillNoMNumMap.values().stream().reduce(Integer::sum).get();
// billladingEntity.setRealNum(realNum+all);
// trunklineBillladingService.updateById(billladingEntity);
// }
QueryWrapper<TrunklineBillladingWaybillEntity> billladingWaybillEntityQueryWrapper = new QueryWrapper<>();
billladingWaybillEntityQueryWrapper.in("waybill_no",waybillNoSet)
.eq("billlading_id",billladingId)
.eq("is_deleted",0);
List<TrunklineBillladingWaybillEntity> billladingWaybillEntityList = trunklineBillladingWaybillService.list(billladingWaybillEntityQueryWrapper);
//把billladingWaybillEntityList转化成waybillNo为key的Map
Map<String, TrunklineBillladingWaybillEntity> billladingWaybillEntityMap = billladingWaybillEntityList.stream().collect(Collectors.toMap(TrunklineBillladingWaybillEntity::getWaybillNo, Function.identity()));
List<TrunklineBillladingWaybillEntity> addList = new ArrayList<>();
List<TrunklineBillladingWaybillEntity> updateList = new ArrayList<>();
TrunklineBillladingWaybillEntity noWaybillNoData = trunklineBillladingWaybillService.findNoWaybillNoData(billladingId);
for (String waybillNo : waybillNoSet) {
Integer integer = waybillNoMNumMap.get(waybillNo);
TrunklineBillladingWaybillEntity billladingWaybillEntity = billladingWaybillEntityMap.get(waybillNo);
if(Objects.isNull(billladingWaybillEntity)){
//查询是否有一条无运单的数据
if(Objects.isNull(noWaybillNoData)){
noWaybillNoData = new TrunklineBillladingWaybillEntity();
noWaybillNoData.setWarehouseId(warehouseId);
noWaybillNoData.setWarehouseName(warehouseEntity.getName());
noWaybillNoData.setBillladingId(billladingId);
noWaybillNoData.setBilladingCode(trunklineBillladingEntity.getBillladingCode());
noWaybillNoData.setWaybillNo("————");
noWaybillNoData.setRealNum(integer);
noWaybillNoData.setRealWeight(BigDecimal.ZERO);
noWaybillNoData.setRealVolume(BigDecimal.ZERO);
addList.add(noWaybillNoData);
}else{
Integer realNum = noWaybillNoData.getRealNum();
noWaybillNoData.setRealNum(realNum+integer);
updateList.add(noWaybillNoData);
}
}else{
Integer realNum = billladingWaybillEntity.getRealNum();
billladingWaybillEntity.setRealNum(realNum + integer);
updateList.add(billladingWaybillEntity);
}
}
if(!addList.isEmpty()){
trunklineBillladingWaybillService.saveBatch(addList);
}
trunklineBillladingWaybillService.updateBatchById(updateList);
TrunklineBillladingEntity billladingEntity = trunklineBillladingService.getById(billladingId);
if(!Objects.isNull(billladingEntity)){
int realNum = billladingEntity.getRealNum();
Integer all = waybillNoMNumMap.values().stream().reduce(Integer::sum).get();
billladingEntity.setRealNum(realNum+all);
trunklineBillladingService.updateById(billladingEntity);
}
List<WarehouseWaybillEntity> warehouseWaybillEntities = new ArrayList<>();
waybillEntityMap.keySet().forEach(waybillNo -> {
WarehouseWaybillEntity waybillEntity = waybillEntityMap.get(waybillNo);
if(Objects.isNull(waybillEntity)){
if(!Objects.isNull(waybillEntity)){
Integer totalCount = waybillEntity.getTotalCount();
Integer stockCount = waybillEntity.getStockCount();
if(stockCount.equals(totalCount)){
@ -360,10 +364,9 @@ public class TrunklineBillladingPackageServiceImpl extends BaseServiceImpl<Trunk
}else{
waybillEntity.setWaybillStatus(WaybillStatusEnum.BUFENRUKU.getCode());
}
warehouseWaybillEntities.add(waybillEntity);
}
});
List<WarehouseWaybillEntity> warehouseWaybillEntities = new ArrayList<>(waybillEntityMap.values());
warehouseWaybillClient.updateList(warehouseWaybillEntities);
//根据提货单id重新计算每个运单的费用

195
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingServiceImpl.java

@ -105,6 +105,8 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBil
trunklineBillladingEntity.setLineNameTitle(lineTitle);
updateById(trunklineBillladingEntity);
List<TrunklineBillladingWaybillEntity> saveBillladingWaybillList = new ArrayList<>();
Map<Long, Integer> waybillBillladingNumMap = new HashMap<>();
//保存提货运单
List<TrunklineBillladingWaybillVO> billladingWaybillList = billladingDTO.getBillladingWaybillList();
for (TrunklineBillladingWaybillVO billladingWaybillVO:billladingWaybillList){
@ -116,8 +118,29 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBil
billladingWaybillEntity.setRealWeight(BigDecimal.ZERO);
billladingWaybillEntity.setRealVolume(BigDecimal.ZERO);
billladingWaybillEntity.setBillladingFee(BigDecimal.ZERO);
billladingWaybillService.save(billladingWaybillEntity);
billladingWaybillEntity.setPlanNum(billladingWaybillVO.getPlanNum());
saveBillladingWaybillList.add(billladingWaybillEntity);
waybillBillladingNumMap.put(billladingWaybillVO.getWaybillId(),billladingWaybillVO.getPlanNum());
}
billladingWaybillService.saveBatch(saveBillladingWaybillList);
Set<Long> waybillIds = waybillBillladingNumMap.keySet();
List<WarehouseWaybillEntity> waybillEntityList = warehouseWaybillClient.findListByWaybillIds(new ArrayList<>(waybillIds));
waybillEntityList.forEach(waybillEntity -> {
Long waybillEntityId = waybillEntity.getId();
Integer planNum = waybillBillladingNumMap.get(waybillEntityId);
if(Objects.isNull(planNum)){
planNum = 0;
}
Integer billladingNum = waybillEntity.getBillladingNum();
if(Objects.isNull(billladingNum)){
billladingNum = 0;
}
waybillEntity.setBillladingNum(billladingNum+planNum);
});
warehouseWaybillClient.updateList(waybillEntityList);
TrunklineBillladingLogEntity logEntity = new TrunklineBillladingLogEntity();
@ -200,18 +223,42 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBil
billladingEntity.setLineNameTitle(lineTitle);
updateById(billladingEntity);
Map<Long,Integer> oldWaybillBillladingNumMap = new HashMap<>();
List<TrunklineBillladingWaybillVO> billladingWaybillVOList = billladingWaybillService.findWaybillInfoListByBillladingId(billladingId);
billladingWaybillVOList.forEach(billladingWaybillVO -> {
oldWaybillBillladingNumMap.put(billladingWaybillVO.getWaybillId(),billladingWaybillVO.getPlanNum());
});
Set<Long> oldWaybillIdSet = oldWaybillBillladingNumMap.keySet();
List<WarehouseWaybillEntity> oldWaybillList = warehouseWaybillClient.findListByWaybillIds(new ArrayList<>(oldWaybillIdSet));
oldWaybillList.forEach(waybillEntity -> {
Long waybillEntityId = waybillEntity.getId();
Integer planNum = oldWaybillBillladingNumMap.get(waybillEntityId);
if(Objects.isNull(planNum)){
planNum = 0;
}
Integer billladingNum = waybillEntity.getBillladingNum();
if(Objects.isNull(billladingNum)){
billladingNum = 0;
}
waybillEntity.setBillladingNum(Math.max(billladingNum - planNum, 0));
});
warehouseWaybillClient.updateList(oldWaybillList);
//先删除所有对应的运单
billladingWaybillService.deletedByBillladingId(billladingId);
Map<Long,Integer> newWaybillBillladingNumMap = new HashMap<>();
//保存提货运单
List<TrunklineBillladingWaybillVO> billladingWaybillList = billladingDTO.getBillladingWaybillList();
for (TrunklineBillladingWaybillVO billladingWaybillVO:billladingWaybillList){
String waybillNo = billladingWaybillVO.getWaybillNo();
Integer planNum = billladingWaybillVO.getPlanNum();
//查询运单以前是否挂在当前提货单下
TrunklineBillladingWaybillEntity one = billladingWaybillService.getOneByBillladingIdAndWaybillNo(billladingId,waybillNo);
if(!Objects.isNull(one)){
billladingWaybillService.updateByBillladingIdAndWaybillNo(billladingId,waybillNo);
billladingWaybillService.updateByBillladingIdAndWaybillNo(billladingId,waybillNo,planNum);
}else{
TrunklineBillladingWaybillEntity billladingWaybillEntity = new TrunklineBillladingWaybillEntity();
BeanUtil.copy(billladingWaybillVO,billladingWaybillEntity);
@ -223,8 +270,25 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBil
billladingWaybillEntity.setBillladingFee(BigDecimal.ZERO);
billladingWaybillService.save(billladingWaybillEntity);
}
newWaybillBillladingNumMap.put(billladingWaybillVO.getWaybillId(),billladingWaybillVO.getPlanNum());
}
Set<Long> newWaybillIdSet = newWaybillBillladingNumMap.keySet();
List<WarehouseWaybillEntity> newWaybillList = warehouseWaybillClient.findListByWaybillIds(new ArrayList<>(newWaybillIdSet));
newWaybillList.forEach(waybillEntity -> {
Long waybillEntityId = waybillEntity.getId();
Integer planNum = newWaybillBillladingNumMap.get(waybillEntityId);
if(Objects.isNull(planNum)){
planNum = 0;
}
Integer billladingNum = waybillEntity.getBillladingNum();
if(Objects.isNull(billladingNum)){
billladingNum = 0;
}
waybillEntity.setBillladingNum(billladingNum + planNum);
});
warehouseWaybillClient.updateList(newWaybillList);
logEntity.setAfterOpreation(JSON.toJSONString(billladingEntity));
trunklineBillladingLogService.save(logEntity);
@ -359,6 +423,28 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBil
billladingEntity.setSettlementId(AuthUtil.getUserId());
billladingEntity.setSettlementName(AuthUtil.getUserName());
stringBuffer.append(",提货完成变更为已结算,时间").append(CommonUtil.dateToString(date)).append(",变更人").append(AuthUtil.getUserName());
List<TrunklineBillladingWaybillEntity> billladingWaybillEntities = billladingWaybillService.findNoFinishWaybillByBillladingId(billladingId);
Map<Long,Integer> map = new HashMap<>();
billladingWaybillEntities.forEach(billladingWaybillEntity -> {
map.put(billladingWaybillEntity.getWaybillId(),billladingWaybillEntity.getPlanNum() - billladingWaybillEntity.getRealNum());
});
Set<Long> waybillIdSet = map.keySet();
List<WarehouseWaybillEntity> waybillEntityList = warehouseWaybillClient.findListByWaybillIds(new ArrayList<>(waybillIdSet));
waybillEntityList.forEach(waybillEntity -> {
Integer integer = map.get(waybillEntity.getId());
if(Objects.isNull(integer)){
integer = 0;
}
Integer billladingNum = waybillEntity.getBillladingNum();
if(Objects.isNull(billladingNum)){
billladingNum = 0;
}
waybillEntity.setBillladingNum(Math.max(billladingNum - integer, 0));
});
warehouseWaybillClient.updateList(waybillEntityList);
} else {
log.warn("##################updateBillladingStatus: 提货单不能更新为已结算 billladingStatus={}", billladingStatus);
throw new CustomerException(405, "提货单不能更新为提货中");
@ -366,16 +452,16 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBil
break;
case 5:
//取消结算
if ("4".equals(billladingStatus)) {
billladingEntity.setBillladingStatus("3");
billladingEntity.setSettlementTime(null);
billladingEntity.setSettlementId(null);
billladingEntity.setSettlementName(null);
stringBuffer.append(",已结算变更为提货完成,时间").append(CommonUtil.dateToString(new Date())).append(",变更人").append(AuthUtil.getUserName());
} else {
log.warn("##################updateBillladingStatus: 提货单不能更新为提货完成 billladingStatus={}", billladingStatus);
throw new CustomerException(405, "提货单不能更新为提货完成");
}
// if ("4".equals(billladingStatus)) {
// billladingEntity.setBillladingStatus("3");
// billladingEntity.setSettlementTime(null);
// billladingEntity.setSettlementId(null);
// billladingEntity.setSettlementName(null);
// stringBuffer.append(",已结算变更为提货完成,时间").append(CommonUtil.dateToString(new Date())).append(",变更人").append(AuthUtil.getUserName());
// } else {
// log.warn("##################updateBillladingStatus: 提货单不能更新为提货完成 billladingStatus={}", billladingStatus);
// throw new CustomerException(405, "提货单不能更新为提货完成");
// }
break;
case 6:
//取消提货
@ -456,55 +542,64 @@ public class TrunklineBillladingServiceImpl extends BaseServiceImpl<TrunklineBil
TrunklineBillladingWaybillEntity billladingWaybillEntity = billladingWaybillService.getById(billladingWaybillId);
Long waybillId = billladingWaybillEntity.getWaybillId();
String waybillNo = billladingWaybillEntity.getWaybillNo();
Integer planNum = billladingWaybillEntity.getPlanNum();
Integer realNum = billladingWaybillEntity.getRealNum();
BigDecimal realWeight = billladingWaybillEntity.getRealWeight();
BigDecimal realVolume = billladingWaybillEntity.getRealVolume();
Integer enterNum = billladingWaybillDTO.getEnterNum();
BigDecimal enterWeight = billladingWaybillDTO.getEnterWeight();
BigDecimal enterVolume = billladingWaybillDTO.getEnterVolume();
Integer tNum = billladingWaybillService.getFinishNumByWaybillIdNotBillladingWaybillId(waybillId,billladingWaybillId);
// Integer tNum = billladingWaybillService.getFinishNumByWaybillIdNotBillladingWaybillId(waybillId,billladingWaybillId);
//这个运单总件数不应该查询运单上的总件数,应该取统计运单下暂存单的包件数量,因为运单可能会涉及到改单 总数会变
Integer totalCount = trunklineWaybillOrderService.getOrderPackageNumByWaybillId(waybillId);
// Integer totalCount = trunklineWaybillOrderService.getOrderPackageNumByWaybillId(waybillId);
Integer enterNum = billladingWaybillDTO.getEnterNum();
if(tNum+enterNum > totalCount){
log.warn("###############updateBillladingWaybillNum: 运单提货数量已经大于总数 waybillId={} totalCount={}",waybillId,totalCount);
throw new CustomerException(405,"【"+waybillNo+"】运单提货数量已经大于总数");
if(enterNum > planNum){
log.warn("###############updateBillladingWaybillNum: 运单提货数量已经大于计划数 waybillId={} planNum={}",waybillId,planNum);
throw new CustomerException(405,"【"+waybillNo+"】运单提货数量已经大于计划数");
}
BigDecimal enterWeight = billladingWaybillDTO.getEnterWeight();
BigDecimal enterVolume = billladingWaybillDTO.getEnterVolume();
stockNum = stockNum + enterNum;
stockWeight = stockWeight.add(enterWeight);
stockVolume = stockVolume.add(enterVolume);
billladingWaybillService.updateDataByBillladingWaybillId(billladingWaybillId,enterNum,enterWeight,enterVolume);
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
waybillEntity.setStockCount(enterNum);
waybillEntity.setStockWeight(enterWeight);
waybillEntity.setStockVolume(enterVolume);
if(totalCount.equals(enterNum)){
waybillEntity.setWaybillStatus("10");
try{
TrunklineWaybillTrackEntity waybillTrackEntity = new TrunklineWaybillTrackEntity();
waybillTrackEntity.setWarehouseId(billladingEntity.getWarehouseId());
waybillTrackEntity.setWarehouseName(billladingEntity.getWarehouseName());
waybillTrackEntity.setWaybillId(waybillId);
waybillTrackEntity.setWaybillNo(waybillNo);
waybillTrackEntity.setTrackType("20");
waybillTrackEntity.setRefer("已入库");
waybillTrackEntity.setOperationRemark("运单入库:"+enterNum+"/"+totalCount+",入库类型:【批量入库】,入库时间:"+ CommonUtil.dateToString(new Date()));
trunklineWaybillTrackService.save(waybillTrackEntity);
}catch (Exception e){
log.warn("#################updateBillladingWaybillNum: 存入日志失败");
}
}
warehouseWaybillClient.updateEntity(waybillEntity);
// Integer diffNum = enterNum-realNum;
// BigDecimal diffWeight = realWeight.subtract(enterWeight);
// BigDecimal diffVolume = realVolume.subtract(enterVolume);
// WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
// waybillEntity.setStockCount(Math.max(waybillEntity.getStockCount() + diffNum, 0));
// waybillEntity.setStockWeight(waybillEntity.getStockWeight().add(diffWeight).compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : diffWeight);
// waybillEntity.setStockVolume(waybillEntity.getStockVolume().add(diffVolume).compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : diffVolume);
// Integer totalCount = waybillEntity.getTotalCount();
// Integer stockCount = waybillEntity.getStockCount();
// if(totalCount.equals(stockCount)){
// waybillEntity.setWaybillStatus("10");
// try{
// TrunklineWaybillTrackEntity waybillTrackEntity = new TrunklineWaybillTrackEntity();
// waybillTrackEntity.setWarehouseId(billladingEntity.getWarehouseId());
// waybillTrackEntity.setWarehouseName(billladingEntity.getWarehouseName());
// waybillTrackEntity.setWaybillId(waybillId);
// waybillTrackEntity.setWaybillNo(waybillNo);
// waybillTrackEntity.setTrackType("20");
// waybillTrackEntity.setRefer("已入库");
// waybillTrackEntity.setOperationRemark("运单入库:"+enterNum+"/"+totalCount+",入库类型:【批量入库】,入库时间:"+ CommonUtil.dateToString(new Date()));
// trunklineWaybillTrackService.save(waybillTrackEntity);
// }catch (Exception e){
// log.warn("#################updateBillladingWaybillNum: 存入日志失败");
// }
// }
// warehouseWaybillClient.updateEntity(waybillEntity);
}
billladingEntity.setRealNum(stockNum);
billladingEntity.setRealWeight(stockWeight);
billladingEntity.setRealVolume(stockVolume);
TrunklineBillladingNumVO numVO = billladingWaybillService.getNumVOByBillladingId(billladingId);
billladingEntity.setRealNum(numVO.getNum());
billladingEntity.setRealWeight(numVO.getWeight());
billladingEntity.setRealVolume(numVO.getVolume());
updateById(billladingEntity);
billladingWaybillService.updateBillladingFeeByBillladingId(billladingEntity);

15
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineBillladingWaybillServiceImpl.java

@ -6,6 +6,7 @@ import com.logpm.trunkline.entity.TrunklineBillladingWaybillEntity;
import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity;
import com.logpm.trunkline.mapper.TrunklineBillladingWaybillMapper;
import com.logpm.trunkline.service.ITrunklineBillladingWaybillService;
import com.logpm.trunkline.vo.TrunklineBillladingNumVO;
import com.logpm.trunkline.vo.TrunklineBillladingWaybillVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -134,8 +135,18 @@ public class TrunklineBillladingWaybillServiceImpl extends BaseServiceImpl<Trunk
}
@Override
public void updateByBillladingIdAndWaybillNo(Long billladingId, String waybillNo) {
baseMapper.updateByBillladingIdAndWaybillNo(billladingId,waybillNo);
public void updateByBillladingIdAndWaybillNo(Long billladingId, String waybillNo,Integer planNum) {
baseMapper.updateByBillladingIdAndWaybillNo(billladingId,waybillNo,planNum);
}
@Override
public List<TrunklineBillladingWaybillEntity> findNoFinishWaybillByBillladingId(Long billladingId) {
return baseMapper.findNoFinishWaybillByBillladingId(billladingId);
}
@Override
public TrunklineBillladingNumVO getNumVOByBillladingId(Long billladingId) {
return baseMapper.getNumVOByBillladingId(billladingId);
}
}

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

@ -2133,6 +2133,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long waybillId = null;
String waybillNo = null;
String orderCode = null;
String brandName = null;
Integer isData = 1;
Integer isAbnormal = 0;
Long trayId = null;
@ -2219,6 +2220,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String waybillNumber = otherParcelListEntity.getWaybillNumber();
fromWarehouseId = otherParcelListEntity.getWarehouseId();
orderCode = otherParcelListEntity.getOrderCode();
brandName = otherParcelListEntity.getBrandName();
BasicdataWarehouseEntity fromWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(fromWarehouseId);
if (!Objects.isNull(fromWarehouseEntity)) {
fromWarehouseName = fromWarehouseEntity.getName();
@ -2261,6 +2263,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long packageId = parcelListEntity.getId();
waybillNo = parcelListEntity.getWaybillNumber();
orderCode = parcelListEntity.getOrderCode();
brandName = parcelListEntity.getBrandName();
waybillId = parcelListEntity.getWaybillId();
fromWarehouseId = parcelListEntity.getWarehouseId();
BasicdataWarehouseEntity fromWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(fromWarehouseId);
@ -2333,6 +2336,23 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
updateNumByLoadId(loadId);
// 推送包件装车数据到工厂
pushFactoryOrderData(warehouseId, orderPackageCode, orderCode);
try {
NodePushMsg nodePushMsg = NodePushMsg.builder()
.operator(AuthUtil.getNickName())
.operatorTime(new Date())
.address("在【" + warehouseName + "】出库")
.brand(BrandEnums.getByValue(brandName))
.node(WorkNodeEnums.INITIAL_WAREHOUSE_LOADING)
.content(Arrays.asList(PushData.builder()
.packageCode(orderPackageCode)
.orderCode(orderCode)
.warehouseName(warehouseName)
.build()))
.build();
factoryDataMessageSender.sendNodeDataByBrand(nodePushMsg);
}catch (Exception e){
log.error("推送数据失败",e);
}
return R.success("装车成功");
}
@ -3861,6 +3881,19 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Map<String, Object> map = new HashMap<>();
map.put("messageData", JSONUtil.toJsonStr(orderStatusDTO));
rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map);
NodePushMsg nodePushMsg = NodePushMsg.builder()
.operator(AuthUtil.getNickName())
.operatorTime(new Date())
.address("在【" + warehouseName + "】入库")
.brand(BrandEnums.getByValue(entity.getBrandName()))
.node(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE)
.content(Arrays.asList(PushData.builder()
.packageCode(entity.getOrderPackageCode())
.warehouseName(warehouseName)
.orderCode(entity.getOrderCode())
.build()))
.build();
factoryDataMessageSender.sendNodeDataByBrand(nodePushMsg);
} catch (Exception e) {
log.error("推送卸车失败{}", e);
}
@ -4565,6 +4598,23 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
orderPackageCodes.add(orderPackageCode);
// 推送包件装车信息到工厂
pushFactoryOrderData(warehouseId, orderPackageCode, orderCode);
try {
NodePushMsg nodePushMsg = NodePushMsg.builder()
.operator(AuthUtil.getNickName())
.operatorTime(new Date())
.address("在【" + warehouseName + "】出库")
.brand(BrandEnums.getByValue(parcelListEntity.getBrandName()))
.node(WorkNodeEnums.INITIAL_WAREHOUSE_LOADING)
.content(Arrays.asList(PushData.builder()
.packageCode(orderPackageCode)
.orderCode(orderCode)
.warehouseName(warehouseName)
.build()))
.build();
factoryDataMessageSender.sendNodeDataByBrand(nodePushMsg);
}catch (Exception e1){
log.error("推送数据失败",e1);
}
}
}
});
@ -5904,6 +5954,20 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Map<String, Object> map = new HashMap<>();
map.put("messageData", JSONUtil.toJsonStr(orderStatusDTO));
rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map);
NodePushMsg nodePushMsg = NodePushMsg.builder()
.operator(AuthUtil.getNickName())
.operatorTime(new Date())
.address("在【" + warehouseName + "】入库")
.brand(BrandEnums.getByValue(distributionParcelListEntity.getBrandName()))
.node(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE)
.content(Arrays.asList(PushData.builder()
.packageCode(orderPackageCode)
.warehouseName(warehouseName)
.orderCode(orderCode)
.build()))
.build();
factoryDataMessageSender.sendNodeDataByBrand(nodePushMsg);
}
} catch (Exception e) {
log.error("入库推送失败:{}", e);

1
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseRetentionApiController.java

@ -53,7 +53,6 @@ public class WarehouseRetentionApiController {
}
try {
//查询订制品打托列表
IPage<WarehouseRetentionRecordVO> pages = warehouseRetentionRecordService.retentionPackageList(retentionDTO);
return R.data(pages);
} catch (CustomerException e) {

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

@ -884,8 +884,7 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
//判断该包件是否已存在与其他托盘上
QueryWrapper<WarehouseTrayGoodsEntity> qw = new QueryWrapper<>();
qw.eq("association_value",orderPackageCode)
.eq("tenant_id","627683");
qw.eq("association_value",orderPackageCode);
WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsService.getOne(qw);
if(!Objects.isNull(trayGoodsEntity)){
@ -900,8 +899,7 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
}
QueryWrapper<WarehouseUpdownGoodsEntity> updownGoodsEntityQueryWrapper = new QueryWrapper<>();
updownGoodsEntityQueryWrapper.eq("association_value",orderPackageCode)
.eq("tenant_id","627683");
updownGoodsEntityQueryWrapper.eq("association_value",orderPackageCode);
WarehouseUpdownGoodsEntity updownGoodsEntity = warehouseUpdownGoodsService.getOne(updownGoodsEntityQueryWrapper);
if(!Objects.isNull(updownGoodsEntity)){
String positionCode = updownGoodsEntity.getPositionCode();
@ -957,7 +955,6 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
//查询打托方式信息
QueryWrapper<WarehouseTrayTypeEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tray_code",trayCode)
.eq("tenant_id","627683")
.eq("is_deleted",0);
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectOne(queryWrapper);
if(Objects.isNull(trayTypeEntity)){

Loading…
Cancel
Save