28 changed files with 441 additions and 123 deletions
@ -0,0 +1,67 @@
|
||||
package com.logpm.trunkline.mq; |
||||
|
||||
import cn.hutool.json.JSONArray; |
||||
import cn.hutool.json.JSONObject; |
||||
import cn.hutool.json.JSONUtil; |
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
||||
import com.logpm.basicdata.entity.BasicdataWarehouseEntity; |
||||
import com.logpm.basicdata.feign.IBasicdataWarehouseClient; |
||||
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; |
||||
import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.common.constant.WorkNodeEnums; |
||||
import org.springblade.common.constant.broadcast.FanoutConstants; |
||||
import org.springblade.common.exception.CustomerException; |
||||
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.List; |
||||
import java.util.Objects; |
||||
|
||||
@Slf4j |
||||
@Component |
||||
@AllArgsConstructor |
||||
public class PackageFanoutListener { |
||||
|
||||
private final ITrunklineAdvanceDetailService advanceDetailService; |
||||
private final IBasicdataWarehouseClient warehouseClient; |
||||
|
||||
@RabbitListener(bindings = @QueueBinding( |
||||
value = @Queue(name = FanoutConstants.trunkline.PACKAGNODE.QUEUE.PACKAGE_SIGN), |
||||
exchange = @Exchange(name = FanoutConstants.trunkline.PACKAGNODE.EXCHANGE, type = ExchangeTypes.FANOUT) |
||||
)) |
||||
@Transactional(rollbackFor = Exception.class) |
||||
public void packageSignFanout(String msg) { |
||||
JSONObject jsonObject = JSONUtil.parseObj(msg); |
||||
Integer workNode = jsonObject.getInt("workNode"); |
||||
if(WorkNodeEnums.INITIAL_WAREHOUSE_ENTRY.getCode().equals(workNode) |
||||
|| WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE.getCode().equals(workNode)){ |
||||
Long warehouseId = jsonObject.getLong("warehouseId"); |
||||
BasicdataWarehouseEntity warehouseEntity = warehouseClient.getEntityWarehouseId(warehouseId); |
||||
if(Objects.isNull(warehouseEntity)){ |
||||
log.warn("###########packageSignFanout: 仓库信息不存在 warehouseId={}",warehouseId); |
||||
throw new CustomerException(405,"仓库信息不存在"); |
||||
} |
||||
|
||||
JSONArray orderPackageCodes = jsonObject.getJSONArray("orderPackageCodes"); |
||||
List<String> orderPackageCodeList = orderPackageCodes.toList(String.class); |
||||
|
||||
UpdateWrapper<TrunklineAdvanceDetailEntity> updateWrapper = new UpdateWrapper<>(); |
||||
updateWrapper.set("now_warehouse_id", warehouseId) |
||||
.set("now_warehouse_name", warehouseEntity.getName()) |
||||
.in("order_package_code", orderPackageCodeList); |
||||
advanceDetailService.update(updateWrapper); |
||||
|
||||
} |
||||
|
||||
|
||||
} |
||||
|
||||
|
||||
} |
Loading…
Reference in new issue