进出场修改
parent
4f8b2b95c1
commit
1fa1db7381
|
|
@ -13,7 +13,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
|
|||
@ConfigurationProperties(prefix = "app")
|
||||
public class AppProperties {
|
||||
|
||||
private int inOutGap = 300;
|
||||
private int inOutGap = 60;
|
||||
|
||||
private DefaultPlace defaultPlace;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,16 +13,19 @@ import com.njzscloud.common.core.tuple.Tuple2;
|
|||
import com.njzscloud.common.mp.support.PageParam;
|
||||
import com.njzscloud.common.mp.support.PageResult;
|
||||
import com.njzscloud.common.mqtt.util.Mqtt;
|
||||
import com.njzscloud.supervisory.config.AppProperties;
|
||||
import com.njzscloud.supervisory.device.contant.DeviceCode;
|
||||
import com.njzscloud.supervisory.device.mapper.DeviceInfoMapper;
|
||||
import com.njzscloud.supervisory.device.pojo.entity.DeviceInfoEntity;
|
||||
import com.njzscloud.supervisory.order.contant.CheckStatus;
|
||||
import com.njzscloud.supervisory.order.contant.OrderStatus;
|
||||
import com.njzscloud.supervisory.order.contant.PaymentStatus;
|
||||
import com.njzscloud.supervisory.order.pojo.entity.OrderCarInOutEntity;
|
||||
import com.njzscloud.supervisory.order.pojo.entity.OrderInfoEntity;
|
||||
import com.njzscloud.supervisory.order.pojo.param.TruckComingOrderParam;
|
||||
import com.njzscloud.supervisory.order.pojo.param.TruckLeavingOrderParam;
|
||||
import com.njzscloud.supervisory.order.pojo.result.OrderPagingResult;
|
||||
import com.njzscloud.supervisory.order.service.OrderCarInOutService;
|
||||
import com.njzscloud.supervisory.order.service.OrderInfoService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -31,6 +34,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
|
@ -44,6 +49,22 @@ import java.util.Objects;
|
|||
public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoEntity> implements IService<DeviceInfoEntity> {
|
||||
private static final TimedCache<String, Tuple2<String, String>> waitOpen = CacheUtil.newTimedCache(600000);
|
||||
private final OrderInfoService orderInfoService;
|
||||
private final OrderCarInOutService orderCarInOutService;
|
||||
private final AppProperties appProperties;
|
||||
|
||||
public static void open(String oredrSn) {
|
||||
Tuple2<String, String> tuple2 = waitOpen.get(oredrSn);
|
||||
if (tuple2 == null) {
|
||||
log.warn("开门: {} 无等待订单", oredrSn);
|
||||
return;
|
||||
}
|
||||
String sn = tuple2.get_0();
|
||||
String cid = tuple2.get_1();
|
||||
log.info("开门: {} {}", sn, cid);
|
||||
Mqtt.publish(cid + "/1/barrier", MapUtil.builder()
|
||||
.put("deviceNo", sn)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
|
|
@ -87,17 +108,6 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
|
|||
return this.getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @param deviceInfoEntity 筛选条件
|
||||
* @param pageParam 分页参数
|
||||
* @return PageResult<DeviceInfoEntity> 分页结果
|
||||
*/
|
||||
public PageResult<DeviceInfoEntity> paging(PageParam pageParam, DeviceInfoEntity deviceInfoEntity) {
|
||||
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<DeviceInfoEntity>query(deviceInfoEntity)));
|
||||
}
|
||||
|
||||
/* public void recognition(DeviceRecognitionParam deviceRecognitionParam) {
|
||||
String sn = deviceRecognitionParam.getSn();
|
||||
DeviceInfoEntity deviceInfoEntity = this.getOne(Wrappers.<DeviceInfoEntity>lambdaQuery().eq(DeviceInfoEntity::getSn, sn));
|
||||
|
|
@ -184,6 +194,17 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
|
|||
|
||||
} */
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @param deviceInfoEntity 筛选条件
|
||||
* @param pageParam 分页参数
|
||||
* @return PageResult<DeviceInfoEntity> 分页结果
|
||||
*/
|
||||
public PageResult<DeviceInfoEntity> paging(PageParam pageParam, DeviceInfoEntity deviceInfoEntity) {
|
||||
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<DeviceInfoEntity>query(deviceInfoEntity)));
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Map<String, Object> report1(JSONObject data) {
|
||||
MapBuilder<String, Object> resBuilder = MapUtil.<String, Object>builder()
|
||||
|
|
@ -192,71 +213,88 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
|
|||
MapBuilder<String, Object> dataBuilder = MapUtil.<String, Object>builder()
|
||||
.put("order_no", "")
|
||||
.put("type", 0);
|
||||
String sn = data.getString("carDiscernCode");
|
||||
String licensePlate = data.getString("carNumber");
|
||||
DeviceInfoEntity deviceInfoEntity = this.getOne(Wrappers.<DeviceInfoEntity>lambdaQuery().eq(DeviceInfoEntity::getSn, sn));
|
||||
if (deviceInfoEntity == null) {
|
||||
log.error("设备不存在:{}", data);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
String cid = deviceInfoEntity.getCid();
|
||||
OrderPagingResult orderPagingResult = orderInfoService.pendingOrder(licensePlate);
|
||||
if (orderPagingResult == null) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}无订单", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
Long deviceStationId = deviceInfoEntity.getStationId();
|
||||
Long orderStationId = orderPagingResult.getStationId();
|
||||
if (!Objects.equals(deviceStationId, orderStationId)) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}站点错误,请前往预约的站点", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
DeviceCode deviceCode = deviceInfoEntity.getDeviceCode();
|
||||
OrderStatus orderStatus = orderPagingResult.getOrderStatus();
|
||||
CheckStatus checkStatus = orderPagingResult.getCheckStatus();
|
||||
|
||||
if (deviceCode == DeviceCode.JinQianZhi && orderStatus == OrderStatus.QingYunZhong) {
|
||||
PaymentStatus paymentStatus = orderPagingResult.getPaymentStatus();
|
||||
/* if (paymentStatus == null) {
|
||||
OrderInfoEntity orderInfoEntity = orderInfoService.getById(orderPagingResult.getId());
|
||||
orderInfoService.settleForTransCompany(orderInfoEntity, 0);
|
||||
orderPagingResult = orderInfoService.detail(orderPagingResult.getId());
|
||||
paymentStatus = orderPagingResult.getPaymentStatus();
|
||||
} */
|
||||
if (paymentStatus == PaymentStatus.WeiZhiFu) {
|
||||
try {
|
||||
String sn = data.getString("carDiscernCode");
|
||||
String licensePlate = data.getString("carNumber");
|
||||
DeviceInfoEntity deviceInfoEntity = this.getOne(Wrappers.<DeviceInfoEntity>lambdaQuery().eq(DeviceInfoEntity::getSn, sn));
|
||||
if (deviceInfoEntity == null) {
|
||||
log.error("设备不存在:{}", data);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
String cid = deviceInfoEntity.getCid();
|
||||
OrderPagingResult orderPagingResult = orderInfoService.pendingOrder(licensePlate);
|
||||
if (orderPagingResult == null) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}请先支付", licensePlate);
|
||||
playVoice(sn, cid, "{}无订单", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
Long deviceStationId = deviceInfoEntity.getStationId();
|
||||
Long orderStationId = orderPagingResult.getStationId();
|
||||
if (!Objects.equals(deviceStationId, orderStationId)) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}站点错误,请前往预约的站点", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
DeviceCode deviceCode = deviceInfoEntity.getDeviceCode();
|
||||
OrderStatus orderStatus = orderPagingResult.getOrderStatus();
|
||||
CheckStatus checkStatus = orderPagingResult.getCheckStatus();
|
||||
|
||||
if (deviceCode == DeviceCode.Jin && orderStatus == OrderStatus.QingYunZhong) {
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 1)
|
||||
.put("order_no", orderPagingResult.getId() + "")
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
if (deviceCode == DeviceCode.JinQianZhi && orderStatus == OrderStatus.QingYunZhong) {
|
||||
PaymentStatus paymentStatus = orderPagingResult.getPaymentStatus();
|
||||
/* if (paymentStatus == null) {
|
||||
OrderInfoEntity orderInfoEntity = orderInfoService.getById(orderPagingResult.getId());
|
||||
orderInfoService.settleForTransCompany(orderInfoEntity, 0);
|
||||
orderPagingResult = orderInfoService.detail(orderPagingResult.getId());
|
||||
paymentStatus = orderPagingResult.getPaymentStatus();
|
||||
} */
|
||||
if (paymentStatus == PaymentStatus.WeiZhiFu) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}请先支付", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.JinQianZhi && orderStatus == OrderStatus.YiJinChang) {
|
||||
if (checkStatus == CheckStatus.WeiKanLiao) {
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.Jin && orderStatus == OrderStatus.QingYunZhong) {
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 1)
|
||||
.put("order_no", orderPagingResult.getId() + "")
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.JinQianZhi && orderStatus == OrderStatus.YiJinChang) {
|
||||
if (checkStatus == CheckStatus.WeiKanLiao) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}未看料", licensePlate);
|
||||
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.ChuQianZhi && checkStatus == CheckStatus.WeiKanLiao) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}未看料", licensePlate);
|
||||
|
||||
|
|
@ -265,44 +303,31 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
|
|||
.build();
|
||||
}
|
||||
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
if (deviceCode == DeviceCode.ChuQianZhi && orderStatus == OrderStatus.YiJinChang) {
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.ChuQianZhi && checkStatus == CheckStatus.WeiKanLiao) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}未看料", licensePlate);
|
||||
if (deviceCode == DeviceCode.Jin && orderStatus == OrderStatus.YiJinChang) {
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 2)
|
||||
.put("order_no", orderPagingResult.getId() + "")
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.ChuQianZhi && orderStatus == OrderStatus.YiJinChang) {
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 0).build())
|
||||
.build();
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.Jin && orderStatus == OrderStatus.YiJinChang) {
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 2)
|
||||
.put("order_no", orderPagingResult.getId() + "")
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.Chu && orderStatus == OrderStatus.YiJinChang) {
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 2)
|
||||
.put("order_no", orderPagingResult.getId() + "")
|
||||
.build())
|
||||
.build();
|
||||
if (deviceCode == DeviceCode.Chu && orderStatus == OrderStatus.YiJinChang) {
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.put("type", 2)
|
||||
.put("order_no", orderPagingResult.getId() + "")
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("上报数据处理异常: {}", data, e);
|
||||
}
|
||||
|
||||
return resBuilder
|
||||
|
|
@ -310,20 +335,6 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
|
|||
.build();
|
||||
}
|
||||
|
||||
public static void open(String oredrSn) {
|
||||
Tuple2<String, String> tuple2 = waitOpen.get(oredrSn);
|
||||
if (tuple2 == null) {
|
||||
log.warn("开门: {} 无等待订单", oredrSn);
|
||||
return;
|
||||
}
|
||||
String sn = tuple2.get_0();
|
||||
String cid = tuple2.get_1();
|
||||
log.info("开门: {} {}", sn, cid);
|
||||
Mqtt.publish(cid + "/1/barrier", MapUtil.builder()
|
||||
.put("deviceNo", sn)
|
||||
.build());
|
||||
}
|
||||
|
||||
private void open(String sn, String cid) {
|
||||
log.info("开门: {} {}", sn, cid);
|
||||
Mqtt.publish(cid + "/1/barrier", MapUtil.builder()
|
||||
|
|
@ -340,90 +351,145 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
|
|||
.put("car_number", "")
|
||||
.put("order_no", "")
|
||||
.put("lane_code", "");
|
||||
String sn = data.getString("carDiscernCode");
|
||||
String licensePlate = data.getString("carNumber");
|
||||
Long orderId = data.getLong("orderNo");
|
||||
DeviceInfoEntity deviceInfoEntity = this.getOne(Wrappers.<DeviceInfoEntity>lambdaQuery().eq(DeviceInfoEntity::getSn, sn));
|
||||
if (deviceInfoEntity == null) {
|
||||
log.error("设备不存在:{}", data);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
String cid = deviceInfoEntity.getCid();
|
||||
OrderPagingResult orderPagingResult = orderInfoService.detail(orderId);
|
||||
try {
|
||||
String sn = data.getString("carDiscernCode");
|
||||
String licensePlate = data.getString("carNumber");
|
||||
Long orderId = data.getLong("orderNo");
|
||||
DeviceInfoEntity deviceInfoEntity = this.getOne(Wrappers.<DeviceInfoEntity>lambdaQuery().eq(DeviceInfoEntity::getSn, sn));
|
||||
if (deviceInfoEntity == null) {
|
||||
log.error("设备不存在:{}", data);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
String cid = deviceInfoEntity.getCid();
|
||||
OrderPagingResult orderPagingResult = orderInfoService.detail(orderId);
|
||||
|
||||
if (orderPagingResult == null) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}无订单", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
Long deviceStationId = deviceInfoEntity.getStationId();
|
||||
Long orderStationId = orderPagingResult.getStationId();
|
||||
if (!Objects.equals(deviceStationId, orderStationId)) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}站点错误,请前往预约的站点", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
DeviceCode deviceCode = deviceInfoEntity.getDeviceCode();
|
||||
OrderInfoEntity orderInfo = orderInfoService.getById(orderId);
|
||||
if (orderInfo == null) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}无订单", orderId);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
Integer weight = data.getInteger("weight");
|
||||
String frontPhoto = data.getString("photoFront");
|
||||
String bodyPhoto = data.getString("photoBody");
|
||||
if (weight == null || weight == 0) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}磅重异常,请重新称重", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
if (deviceCode == DeviceCode.Jin) {
|
||||
// 播语音
|
||||
BigDecimal weight_ = new BigDecimal(weight);
|
||||
BigDecimal v = weight_.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
|
||||
playVoice(sn, cid, "{}称重完成,磅重{}吨", licensePlate, v.toPlainString());
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
orderInfoService.truckComing(new TruckComingOrderParam()
|
||||
.setOrderId(orderId)
|
||||
.setWeight(weight)
|
||||
.setFrontPhoto(frontPhoto)
|
||||
.setBodyPhoto(bodyPhoto),
|
||||
0);
|
||||
}
|
||||
if (orderPagingResult == null) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}无订单", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
Long deviceStationId = deviceInfoEntity.getStationId();
|
||||
Long orderStationId = orderPagingResult.getStationId();
|
||||
if (!Objects.equals(deviceStationId, orderStationId)) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}站点错误,请前往预约的站点", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
DeviceCode deviceCode = deviceInfoEntity.getDeviceCode();
|
||||
OrderInfoEntity orderInfo = orderInfoService.getById(orderId);
|
||||
if (orderInfo == null) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}无订单", orderId);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
Integer weight = data.getInteger("weight");
|
||||
String frontPhoto = data.getString("photoFront");
|
||||
String bodyPhoto = data.getString("photoBody");
|
||||
if (weight == null || weight == 0) {
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}磅重异常,请重新称重", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
if (deviceCode == DeviceCode.Jin) {
|
||||
// 播语音
|
||||
BigDecimal weight_ = new BigDecimal(weight);
|
||||
BigDecimal v = weight_.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
|
||||
OrderStatus orderStatus = orderInfo.getOrderStatus();
|
||||
|
||||
if (deviceCode == DeviceCode.Chu) {
|
||||
BigDecimal weight_ = new BigDecimal(weight);
|
||||
BigDecimal v = weight_.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
|
||||
try {
|
||||
boolean b = orderInfoService.truckLeaving(new TruckLeavingOrderParam()
|
||||
if (orderStatus == OrderStatus.YiJinChang) {
|
||||
Long carInOutId = orderInfo.getCarInOutId();
|
||||
String orderInfoSn = orderInfo.getSn();
|
||||
if (carInOutId == null) {
|
||||
log.warn("订单{}不存在关联的车辆进场记录", orderInfoSn);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
OrderCarInOutEntity orderCarInOutEntity = orderCarInOutService.getById(carInOutId);
|
||||
if (orderCarInOutEntity == null) {
|
||||
log.warn("订单{}不存在关联的车辆进场记录", orderInfoSn);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
LocalDateTime inTime = orderCarInOutEntity.getInTime();
|
||||
|
||||
long interval = Duration.between(inTime, LocalDateTime.now()).toMillis() / 1000;
|
||||
int inOutGap = appProperties.getInOutGap();
|
||||
if (inOutGap <= 0) {
|
||||
inOutGap = 60;
|
||||
}
|
||||
if (interval <= inOutGap) {
|
||||
log.warn("车辆进场时间间隔不能小于{}秒,订单{}", inOutGap, orderInfoSn);
|
||||
playVoice(sn, cid, "{}重复识别,请稍后再试", licensePlate);
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
log.info("进道闸转出道闸,订单号:{}", orderInfoSn);
|
||||
boolean b = orderInfoService.truckLeaving(new TruckLeavingOrderParam()
|
||||
.setOrderId(orderId)
|
||||
.setWeight(weight)
|
||||
.setFrontPhoto(frontPhoto)
|
||||
.setBodyPhoto(bodyPhoto),
|
||||
0);
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}称重完成,磅重{}吨", licensePlate, v.toPlainString());
|
||||
if (b) {
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
} else {
|
||||
waitOpen.put(orderPagingResult.getSn(), Tuple2.create(sn, cid));
|
||||
}
|
||||
return resBuilder
|
||||
.put("data", dataBuilder.build())
|
||||
.build();
|
||||
}
|
||||
// 开门
|
||||
orderInfoService.truckComing(new TruckComingOrderParam()
|
||||
.setOrderId(orderId)
|
||||
.setWeight(weight)
|
||||
.setFrontPhoto(frontPhoto)
|
||||
.setBodyPhoto(bodyPhoto),
|
||||
0);
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}称重完成,磅重{}吨", licensePlate, v.toPlainString());
|
||||
if (b) {
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
} else {
|
||||
waitOpen.put(orderPagingResult.getSn(), Tuple2.create(sn, cid));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
playVoice(sn, cid, "{}称重异常,磅重{}吨", licensePlate, v.toPlainString());
|
||||
open(sn, cid);
|
||||
}
|
||||
|
||||
if (deviceCode == DeviceCode.Chu) {
|
||||
BigDecimal weight_ = new BigDecimal(weight);
|
||||
BigDecimal v = weight_.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
|
||||
try {
|
||||
boolean b = orderInfoService.truckLeaving(new TruckLeavingOrderParam()
|
||||
.setOrderId(orderId)
|
||||
.setWeight(weight)
|
||||
.setFrontPhoto(frontPhoto)
|
||||
.setBodyPhoto(bodyPhoto),
|
||||
0);
|
||||
// 播语音
|
||||
playVoice(sn, cid, "{}称重完成,磅重{}吨", licensePlate, v.toPlainString());
|
||||
if (b) {
|
||||
// 开门
|
||||
open(sn, cid);
|
||||
} else {
|
||||
waitOpen.put(orderPagingResult.getSn(), Tuple2.create(sn, cid));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
playVoice(sn, cid, "{}称重异常,磅重{}吨", licensePlate, v.toPlainString());
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("上报数据处理异常: {}", data, e);
|
||||
}
|
||||
|
||||
return resBuilder
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ import com.njzscloud.supervisory.biz.pojo.entity.*;
|
|||
import com.njzscloud.supervisory.biz.service.BizAuditConfigService;
|
||||
import com.njzscloud.supervisory.biz.service.BizWarnService;
|
||||
import com.njzscloud.supervisory.biz.service.TruckLocationTrackService;
|
||||
import com.njzscloud.supervisory.config.AppProperties;
|
||||
import com.njzscloud.supervisory.constant.Constant;
|
||||
import com.njzscloud.supervisory.device.pojo.entity.DeviceLocalizerEntity;
|
||||
import com.njzscloud.supervisory.device.service.DeviceInfoService;
|
||||
|
|
@ -45,7 +44,10 @@ import com.njzscloud.supervisory.money.service.MoneyAccountService;
|
|||
import com.njzscloud.supervisory.money.service.MoneyChangeDetailService;
|
||||
import com.njzscloud.supervisory.order.contant.*;
|
||||
import com.njzscloud.supervisory.order.mapper.OrderInfoMapper;
|
||||
import com.njzscloud.supervisory.order.pojo.entity.*;
|
||||
import com.njzscloud.supervisory.order.pojo.entity.OrderCargoPlaceEntity;
|
||||
import com.njzscloud.supervisory.order.pojo.entity.OrderExpenseItemsEntity;
|
||||
import com.njzscloud.supervisory.order.pojo.entity.OrderGoodsEntity;
|
||||
import com.njzscloud.supervisory.order.pojo.entity.OrderInfoEntity;
|
||||
import com.njzscloud.supervisory.order.pojo.param.*;
|
||||
import com.njzscloud.supervisory.order.pojo.result.*;
|
||||
import com.njzscloud.supervisory.order.utils.FileUtil;
|
||||
|
|
@ -63,7 +65,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
|
@ -88,7 +89,6 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||
private final ExpenseItemsConfigService expenseItemsConfigService;
|
||||
private final TruckLocationTrackService truckLocationTrackService;
|
||||
private final BizWarnService bizWarnService;
|
||||
private final AppProperties appProperties;
|
||||
private final StationManageService stationManageService;
|
||||
private final CloudVoiceboxService cloudVoiceboxService;
|
||||
private final MoneyAccountService moneyAccountService;
|
||||
|
|
@ -974,37 +974,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||
OrderInfoEntity orderInfoEntity = this.getById(truckComingOrderParam.getOrderId());
|
||||
Assert.notNull(orderInfoEntity, () -> Exceptions.clierr("订单不存在"));
|
||||
OrderStatus orderStatus = orderInfoEntity.getOrderStatus();
|
||||
if (orderStatus == OrderStatus.YiJinChang) {
|
||||
Long carInOutId = orderInfoEntity.getCarInOutId();
|
||||
if (carInOutId == null) {
|
||||
log.warn("订单{}不存在关联的车辆进场记录", orderInfoEntity.getId());
|
||||
return;
|
||||
}
|
||||
OrderCarInOutEntity orderCarInOutEntity = orderCarInOutService.getById(carInOutId);
|
||||
if (orderCarInOutEntity == null) {
|
||||
log.warn("订单{}不存在关联的车辆进场记录", orderInfoEntity.getId());
|
||||
return;
|
||||
}
|
||||
LocalDateTime inTime = orderCarInOutEntity.getInTime();
|
||||
|
||||
long interval = Duration.between(inTime, LocalDateTime.now()).toMillis() / 1000;
|
||||
int inOutGap = appProperties.getInOutGap();
|
||||
if (inOutGap <= 0) {
|
||||
inOutGap = 300;
|
||||
}
|
||||
if (interval <= inOutGap) {
|
||||
log.warn("车辆进场时间间隔不能小于{}秒,订单{}", inOutGap, orderInfoEntity.getSn());
|
||||
return;
|
||||
}
|
||||
log.info("进道闸转出道闸,订单{}", orderInfoEntity.getSn());
|
||||
truckLeaving(new TruckLeavingOrderParam()
|
||||
.setOrderId(orderInfoEntity.getId())
|
||||
.setWeight(truckComingOrderParam.getWeight())
|
||||
.setFrontPhoto(truckComingOrderParam.getFrontPhoto())
|
||||
.setBodyPhoto(truckComingOrderParam.getBodyPhoto()),
|
||||
0);
|
||||
return;
|
||||
}
|
||||
Assert.isTrue(orderStatus == OrderStatus.QingYunZhong, () -> Exceptions.clierr("当前订单状态,无法进场"));
|
||||
|
||||
OrderCategory orderCategory = orderInfoEntity.getOrderCategory();
|
||||
|
|
|
|||
Loading…
Reference in New Issue