|
|
|
@ -18,9 +18,9 @@ import com.logpm.oldproject.feign.IAdvanceClient;
|
|
|
|
|
import com.logpm.oldproject.feign.ITrayClient; |
|
|
|
|
import com.logpm.oldproject.feign.ITrayScanClient; |
|
|
|
|
import com.logpm.oldproject.feign.ITrayScanDesClient; |
|
|
|
|
import com.logpm.warehouse.feign.IWarehouseTaryAllocationClient; |
|
|
|
|
import com.logpm.warehouse.feign.IWarehouseTrayTypeClient; |
|
|
|
|
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient; |
|
|
|
|
import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity; |
|
|
|
|
import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity; |
|
|
|
|
import com.logpm.warehouse.feign.*; |
|
|
|
|
import com.rabbitmq.client.Channel; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.springblade.common.constant.RabbitConstant; |
|
|
|
@ -77,6 +77,10 @@ public class OrderStatusHandler {
|
|
|
|
|
private ITrayScanDesClient trayScanDesClient; |
|
|
|
|
@Autowired |
|
|
|
|
private ITrayScanClient trayScanClient; |
|
|
|
|
@Autowired |
|
|
|
|
private IWarehouseTrayGoodsClient warehouseTrayGoodsClient; |
|
|
|
|
@Autowired |
|
|
|
|
private IWarehouseUpdownGoodsClient warehouseUpdownGoodsClient; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@RabbitHandler |
|
|
|
@ -218,16 +222,70 @@ public class OrderStatusHandler {
|
|
|
|
|
m.put("warehouseId",warehouseId); |
|
|
|
|
m.put("orderPackageCode",unitNo); |
|
|
|
|
|
|
|
|
|
boolean b = warehouseTrayTypeClient.orderScanOrderPackageCode(m); |
|
|
|
|
if(!b){ |
|
|
|
|
log.warn("####################orderStatusHandler: 打托失败 unitNo={} trayCode={}",unitNo,"T"+trayId); |
|
|
|
|
R response = warehouseTrayTypeClient.orderScanOrderPackageCodeReturnR(m); |
|
|
|
|
int code = response.getCode(); |
|
|
|
|
if(code == 4001){ |
|
|
|
|
log.info("####################orderStatusHandler: 包件已在当前托盘打托 unitNo={} trayCode={}",unitNo,"T"+trayId); |
|
|
|
|
}else if(code == 4002){ |
|
|
|
|
log.info("####################orderStatusHandler: 包件已在其他托盘打托 unitNo={} ",unitNo); |
|
|
|
|
WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsClient.findTrayCodeByOrderPackageCode(unitNo); |
|
|
|
|
if(Objects.isNull(trayGoodsEntity)){ |
|
|
|
|
log.warn("####################orderStatusHandler: 包件未打托 unitNo={}",unitNo); |
|
|
|
|
}else{ |
|
|
|
|
String oldTrayCode = trayGoodsEntity.getTrayCode(); |
|
|
|
|
Long trayGoodsId = trayGoodsEntity.getId(); |
|
|
|
|
Long wid = trayGoodsEntity.getWarehouseId(); |
|
|
|
|
BasicdataTrayEntity oldTrayEntity = basicdataTrayClient.getTrayByTrayCode(oldTrayCode); |
|
|
|
|
Long oldTrayId = oldTrayEntity.getId(); |
|
|
|
|
//判断托盘是否有上架
|
|
|
|
|
Long oldAllocationId = taryAllocationClient.findAllocationByTrayId(oldTrayId); |
|
|
|
|
if (Objects.isNull(oldAllocationId)){ |
|
|
|
|
//没有上架
|
|
|
|
|
//直接解绑托盘
|
|
|
|
|
warehouseTrayGoodsClient.delTrayGoodsById(trayGoodsId,wid); |
|
|
|
|
}else{ |
|
|
|
|
//有上架
|
|
|
|
|
//下架
|
|
|
|
|
updownTypeClient.downPackage(unitNo,wid); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
boolean b1 = warehouseTrayTypeClient.orderScanOrderPackageCode(m); |
|
|
|
|
if(!b1){ |
|
|
|
|
log.warn("####################orderStatusHandler: 二次打托失败 unitNo={} trayCode={}",unitNo,"T"+trayId); |
|
|
|
|
}else{ |
|
|
|
|
log.info("####################orderStatusHandler: 二次打托成功 unitNo={} trayCode={}",unitNo,"T"+trayId); |
|
|
|
|
} |
|
|
|
|
}else if(code == 4003){ |
|
|
|
|
log.info("####################orderStatusHandler: 包件未打托已上架 unitNo={} ",unitNo); |
|
|
|
|
WarehouseUpdownGoodsEntity updownGoodsEntity = warehouseUpdownGoodsClient.findEntityByOrderPackageCode(unitNo); |
|
|
|
|
if(Objects.isNull(updownGoodsEntity)){ |
|
|
|
|
log.warn("####################orderStatusHandler: 包件未上架 unitNo={}",unitNo); |
|
|
|
|
}else{ |
|
|
|
|
Long wid = updownGoodsEntity.getWarehouseId(); |
|
|
|
|
updownTypeClient.downPackage(unitNo,wid); |
|
|
|
|
} |
|
|
|
|
boolean b1 = warehouseTrayTypeClient.orderScanOrderPackageCode(m); |
|
|
|
|
if(!b1){ |
|
|
|
|
log.warn("####################orderStatusHandler: 二次打托失败 unitNo={} trayCode={}",unitNo,"T"+trayId); |
|
|
|
|
}else{ |
|
|
|
|
log.info("####################orderStatusHandler: 二次打托成功 unitNo={} trayCode={}",unitNo,"T"+trayId); |
|
|
|
|
} |
|
|
|
|
}else if(code == 4004){ |
|
|
|
|
log.info("####################orderStatusHandler: 包件打托方式不正确 unitNo={} ",unitNo); |
|
|
|
|
//先去空置托盘再打托
|
|
|
|
|
warehouseTrayTypeClient.trayToNull("T"+trayId); |
|
|
|
|
boolean b1 = warehouseTrayTypeClient.orderScanOrderPackageCode(m); |
|
|
|
|
if(!b1){ |
|
|
|
|
log.warn("####################orderStatusHandler: 二次打托失败 unitNo={} trayCode={}",unitNo,"T"+trayId); |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
String msg1 = r.getMsg(); |
|
|
|
|
int code1 = r.getCode(); |
|
|
|
|
log.warn("######################orderStatusHandler: 打托失败 msg={} code={}",msg1,code1); |
|
|
|
|
log.warn("######################orderStatusHandler: 打托失败 unitNo={} trayCode={}",unitNo,"T"+trayId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}else{ |
|
|
|
|
//有上架就上架
|
|
|
|
|
updownTypeClient.upShelfPackage(unitNo,allocationId,warehouseId); |
|
|
|
|