4 changed files with 156 additions and 93 deletions
@ -0,0 +1,106 @@ |
|||||||
|
package com.logpm.trunkline.mq; |
||||||
|
|
||||||
|
import cn.hutool.json.JSONArray; |
||||||
|
import cn.hutool.json.JSONObject; |
||||||
|
import cn.hutool.json.JSONUtil; |
||||||
|
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; |
||||||
|
import com.logpm.trunkline.entity.TrunklineCarsLoadLineEntity; |
||||||
|
import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity; |
||||||
|
import com.logpm.trunkline.entity.TrunklineCarsOrderEntity; |
||||||
|
import com.logpm.trunkline.service.*; |
||||||
|
import com.rabbitmq.client.Channel; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springblade.common.constant.RabbitConstant; |
||||||
|
import org.springblade.core.tool.utils.StringUtil; |
||||||
|
import org.springframework.amqp.core.Message; |
||||||
|
import org.springframework.amqp.rabbit.annotation.RabbitHandler; |
||||||
|
import org.springframework.amqp.rabbit.annotation.RabbitListener; |
||||||
|
import org.springframework.stereotype.Component; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
|
||||||
|
import java.util.*; |
||||||
|
|
||||||
|
@Slf4j |
||||||
|
@AllArgsConstructor |
||||||
|
@Component |
||||||
|
@RabbitListener(queues = RabbitConstant.OPEN_ORDER_LOAD_SCAN_QUEUE) |
||||||
|
public class OpenOrderToLoadListener { |
||||||
|
|
||||||
|
private final ITrunklineAdvanceDetailService advanceDetailService; |
||||||
|
private final ITrunklineCarsLoadScanService carsLoadScanService; |
||||||
|
private final ITrunklineCarsLoadService carsLoadService; |
||||||
|
private final ITrunklineCarsOrderService carsOrderService; |
||||||
|
private final ITrunklineCarsLoadLineService carsLoadLineService; |
||||||
|
private final ITrunklineWaybillOrderService waybillOrderService; |
||||||
|
|
||||||
|
|
||||||
|
@RabbitHandler |
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
public void openOrderToLoadScan(Map map, Message message, Channel channel){ |
||||||
|
String msg = (String) map.get("messageData"); |
||||||
|
log.info("###########openOrderToLoadScan: 开单补录包件运单信息 msg={}",msg); |
||||||
|
if(StringUtil.isNotBlank(msg)){ |
||||||
|
JSONObject jsonObject = JSONUtil.parseObj(msg); |
||||||
|
Long waybillId = jsonObject.getLong("waybillId"); |
||||||
|
String waybillNo = jsonObject.getStr("waybillNo"); |
||||||
|
JSONArray advanceIds = jsonObject.getJSONArray("advanceIds"); |
||||||
|
Set<Long> loadIds = new HashSet<>(); |
||||||
|
for (Object object : advanceIds) { |
||||||
|
Long advanceId = JSONUtil.toBean((JSONObject) object, Long.class); |
||||||
|
List<TrunklineAdvanceDetailEntity> advanceDetailEntityList = advanceDetailService.findListByAdvanceId(advanceId); |
||||||
|
for (TrunklineAdvanceDetailEntity advanceDetailEntity : advanceDetailEntityList) { |
||||||
|
String orderPackageCode = advanceDetailEntity.getOrderPackageCode(); |
||||||
|
TrunklineCarsLoadScanEntity carsLoadScanEntity = carsLoadScanService.findEntityByOrderPackageCodeAndScanStatus(orderPackageCode, "1"); |
||||||
|
if(Objects.isNull(carsLoadScanEntity)){ |
||||||
|
continue; |
||||||
|
} |
||||||
|
carsLoadScanEntity.setWaybillId(waybillId); |
||||||
|
carsLoadScanEntity.setWaybillNo(waybillNo); |
||||||
|
carsLoadScanEntity.setIsData(1); |
||||||
|
carsLoadScanEntity.setIsSupple(1); |
||||||
|
carsLoadScanEntity.setLoadingAbnormal(0); |
||||||
|
carsLoadScanEntity.setUnloadAbnormal(0); |
||||||
|
carsLoadScanService.updateById(carsLoadScanEntity); |
||||||
|
Long loadId = carsLoadScanEntity.getLoadId(); |
||||||
|
Long warehouseId = carsLoadScanEntity.getWarehouseId(); |
||||||
|
String warehouseName = carsLoadScanEntity.getWarehouseName(); |
||||||
|
String orderCode = carsLoadScanEntity.getOrderCode(); |
||||||
|
Long finalNodeId = carsLoadScanEntity.getFinalNodeId(); |
||||||
|
TrunklineCarsLoadLineEntity carsLoadLineEntity = carsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); |
||||||
|
if(Objects.isNull(carsLoadLineEntity)){ |
||||||
|
continue; |
||||||
|
} |
||||||
|
TrunklineCarsOrderEntity trunklineCarsOrderEntity = carsOrderService.findEntityByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId, warehouseId, orderCode, waybillNo); |
||||||
|
if(Objects.isNull(trunklineCarsOrderEntity)){ |
||||||
|
trunklineCarsOrderEntity = new TrunklineCarsOrderEntity(); |
||||||
|
trunklineCarsOrderEntity.setLoadId(loadId); |
||||||
|
trunklineCarsOrderEntity.setNodeId(warehouseId); |
||||||
|
trunklineCarsOrderEntity.setNodeName(warehouseName); |
||||||
|
trunklineCarsOrderEntity.setLoadLineId(carsLoadLineEntity.getId()); |
||||||
|
trunklineCarsOrderEntity.setOrderCode(orderCode); |
||||||
|
trunklineCarsOrderEntity.setWaybillNo(waybillNo); |
||||||
|
Integer totalNum = waybillOrderService.findTotalNumByWaybillNoAndOrderCode(waybillId,orderCode); |
||||||
|
trunklineCarsOrderEntity.setTotalNum(totalNum); |
||||||
|
trunklineCarsOrderEntity.setPlanNum(0); |
||||||
|
trunklineCarsOrderEntity.setIsCustomer("0"); |
||||||
|
trunklineCarsOrderEntity.setRealNum(0); |
||||||
|
trunklineCarsOrderEntity.setType(1); |
||||||
|
trunklineCarsOrderEntity.setFinalNodeId(finalNodeId); |
||||||
|
trunklineCarsOrderEntity.setUnloadNum(0); |
||||||
|
trunklineCarsOrderEntity.setStartNum(0); |
||||||
|
} |
||||||
|
trunklineCarsOrderEntity.setPlanNum(trunklineCarsOrderEntity.getPlanNum()+1); |
||||||
|
carsOrderService.saveOrUpdate(trunklineCarsOrderEntity); |
||||||
|
loadIds.add(loadId); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
for (Long loadId : loadIds) { |
||||||
|
carsLoadService.updateNumByLoadId(loadId); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue