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