提交 bd56e2c0 authored 作者: 艾庆国's avatar 艾庆国

Merge branch 'refs/heads/v16.3_line_warn_202405281' into dev

# Conflicts: # performance-web/src/main/java/com/clx/performance/controller/temp/TempController.java # performance-web/src/main/java/com/clx/performance/controller/temp/TempTraceController.java # performance-web/src/main/java/com/clx/performance/esplus/model/DriverTraceESPlus.java # performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceMqHandlerServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/impl/vehiclewarn/VehicleWarnUserServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceService.java
......@@ -18,6 +18,8 @@ public class PageVehicleWarnInfoParam extends PageParam {
@ApiModelProperty(value = "预警级别", example = "1")
private Integer warnLevel;
@ApiModelProperty(value = "货单编号", example = "1000")
private String orderGoodsNo;
@ApiModelProperty(value = "运单编号", example = "1000")
private String childNo;
@ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "1")
......
package com.clx.performance.param.pc.vehiclewarn;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class PageVehicleWarnRangeParam extends PageParam {
@ApiModelProperty(value = "预警名称", example = "超时")
private String warnName;
@ApiModelProperty(value = "预警屏蔽范围:1运单 2货单 3全部", example = "")
private Integer warnRang;
@ApiModelProperty(value = "开始时间", example = "")
private String beginTime;
@ApiModelProperty(value = "结束时间", example = "")
private String endTime;
}
package com.clx.performance.param.pc.vehiclewarn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnRangeResumeUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotNull(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "预警屏蔽结束时间", example = "")
@NotBlank(message = "预警屏蔽结束时间不能为空")
private String warnEndTime;
}
package com.clx.performance.param.pc.vehiclewarn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnRangeSuspendUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotNull(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "预警屏蔽结束时间", example = "")
@NotBlank(message = "预警屏蔽结束时间不能为空")
private String warnEndTime;
}
......@@ -48,6 +48,8 @@ public class VehicleWarnInfoVO {
if (warnLevel == 3) {return "三级";}
return null;
}
@ApiModelProperty(value = "货单编号", example = "1000")
private String orderGoodsNo;
@ApiModelProperty(value = "运单编号", example = "1000")
private String childNo;
@ApiModelProperty(value = "发货地址id", example = "1")
......
package com.clx.performance.vo.pc.vehiclewarn;
import com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @Author: aiqinguo
* @Description: 预警范围
* @Date: 2024/06/04 18:49:39
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnRangDTO {
@ApiModelProperty(value = "id", example = "1")
private Integer id;
@ApiModelProperty(value = "预警配置id", example = "1")
private Integer warnConfigId;
@ApiModelProperty(value = "预警名称", example = "运单预警")
private String warnName;
@ApiModelProperty(value = "预警屏蔽范围:1运单 2货单 3全部", example = "1")
private Integer warnRang;
@ApiModelProperty(value = "预警屏蔽范围:1运单 2货单 3全部", example = "1")
private String warnRangMsg;
public String getWarnRangMsg() {
return VehicleWarnRangEnum.WarnRange.getMsgByCode(warnRang);
}
@ApiModelProperty(value = "货单编号", example = "10000")
private String orderGoodsNo;
@ApiModelProperty(value = "运单编号", example = "10001")
private String childNo;
@ApiModelProperty(value = "预警屏蔽结束时间", example = "")
private String warnEndTime;
@ApiModelProperty(value = "状态:1有效 2无效", example = "")
private Integer status;
@ApiModelProperty(value = "创建人", example = "")
private String createBy;
@ApiModelProperty(value = "创建时间", example = "")
private String createTime;
@ApiModelProperty(value = "操作时间", example = "")
private String modifiedTime;
}
\ No newline at end of file
......@@ -32,11 +32,13 @@ public class RabbitVehicleWarnConfig {
params.put("x-max-length", 5000000);
params.put("x-dead-letter-exchange", RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE);
params.put("x-dead-letter-routing-key", RabbitKeyVehicleWarnConstants.DEFAULT_DEAD_ROUTING_KEY);
return new Queue(RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_QUEUE, true, false, false, params);
return new Queue(RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_QUEUE,
true, false, false, params);
}
@Bean
public Binding vehicleWarnDefaultDelayQueueBinding() {
return BindingBuilder.bind(vehicleWarnDefaultDelayQueue()).to(vehicleWarnDefaultExchange()).with(RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY);
return BindingBuilder.bind(vehicleWarnDefaultDelayQueue()).to(vehicleWarnDefaultExchange())
.with(RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY);
}
@Bean
......@@ -45,7 +47,8 @@ public class RabbitVehicleWarnConfig {
}
@Bean
public Binding vehicleWarnDefaultDeadQueueBinding() {
return BindingBuilder.bind(vehicleWarnDefaultDeadQueue()).to(vehicleWarnDefaultExchange()).with(RabbitKeyVehicleWarnConstants.DEFAULT_DEAD_ROUTING_KEY);
return BindingBuilder.bind(vehicleWarnDefaultDeadQueue()).to(vehicleWarnDefaultExchange())
.with(RabbitKeyVehicleWarnConstants.DEFAULT_DEAD_ROUTING_KEY);
}
......@@ -58,7 +61,8 @@ public class RabbitVehicleWarnConfig {
}
@Bean
public Binding vehicleWarnChildAddQueueBinding() {
return BindingBuilder.bind(vehicleWarnChildAddQueue()).to(vehicleWarnDefaultExchange()).with(RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_ROUTING_KEY);
return BindingBuilder.bind(vehicleWarnChildAddQueue()).to(vehicleWarnDefaultExchange())
.with(RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_ROUTING_KEY);
}
/**
......@@ -70,7 +74,8 @@ public class RabbitVehicleWarnConfig {
}
@Bean
public Binding vehicleWarnTruckWarnQueueBinding() {
return BindingBuilder.bind(vehicleWarnTruckWarnQueue()).to(vehicleWarnDefaultExchange()).with(RabbitKeyVehicleWarnConstants.TRUCK_WARN_ROUTING_KEY);
return BindingBuilder.bind(vehicleWarnTruckWarnQueue()).to(vehicleWarnDefaultExchange())
.with(RabbitKeyVehicleWarnConstants.TRUCK_WARN_ROUTING_KEY);
}
/**
* 车辆预警
......@@ -81,7 +86,8 @@ public class RabbitVehicleWarnConfig {
}
@Bean
public Binding vehicleWarnNoticeQueueBinding() {
return BindingBuilder.bind(vehicleWarnNoticeQueue()).to(vehicleWarnDefaultExchange()).with(RabbitKeyVehicleWarnConstants.TRUCK_WARN_NOTICE_ROUTING_KEY);
return BindingBuilder.bind(vehicleWarnNoticeQueue()).to(vehicleWarnDefaultExchange())
.with(RabbitKeyVehicleWarnConstants.TRUCK_WARN_NOTICE_ROUTING_KEY);
}
}
package com.clx.performance.controller.pc.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnRangeParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnRangeResumeUpdateParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnRangeSuspendUpdateParam;
import com.clx.performance.service.vehiclewarn.VehicleWarnRangeService;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnRangDTO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@Validated
@Api(tags = "车辆预警-预警暂停管理")
@RequestMapping(value="/pc/owner/vehicleWarnRange")
public class VehicleWarnRangeController {
@Autowired
private VehicleWarnRangeService vehicleWarnRangeService;
@ApiOperation(value = "更新预警暂停", notes = "<br>By:艾庆国")
@PostMapping("/updateSuspend")
public Result<Void> updateSuspend(@RequestBody @Validated VehicleWarnRangeSuspendUpdateParam param) {
vehicleWarnRangeService.updateSuspend(param);
return Result.ok();
}
@ApiOperation(value = "更新预警解除", notes = "<br>By:艾庆国")
@PostMapping("/updateResume")
public Result<Void> updateResume(@RequestBody @Validated VehicleWarnRangeResumeUpdateParam param) {
vehicleWarnRangeService.updateResume(param);
return Result.ok();
}
@ApiOperation(value = "获取暂停信息",notes = "<br>By:艾庆国")
@GetMapping("/getRange")
public Result<VehicleWarnRangDTO> getRange(@NotNull(message = "id不能为空") @Validated Integer id) {
return Result.ok(vehicleWarnRangeService.getRange(id));
}
@ApiOperation(value = "分页搜索预警暂停列表",notes = "<br>By:艾庆国")
@PostMapping("/pageRange")
public Result<PageData<VehicleWarnRangDTO>> pageRange(@RequestBody @Validated PageVehicleWarnRangeParam param) {
IPage<VehicleWarnRangDTO> page = vehicleWarnRangeService.pageRange(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
......@@ -36,12 +36,17 @@ public class TempController {
@Autowired
private TransportFeignService transportFeignService;
@Autowired
private OrderChildDtsListener orderChildDtsListener;
@ApiOperation(value = "test", notes = "<br>By:艾庆国")
@RequestMapping(value = "/test", method = RequestMethod.GET)
public Result test() {
OrderChildSyncMessage message = new OrderChildSyncMessage();
message.setId(1);
orderChildDtsListener.thirdpartySync(message);
return Result.ok();
}
......
......@@ -39,11 +39,21 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V
public boolean updateSuspendTime(VehicleWarnInfo item, Integer warnRang) {
if (Objects.equals(warnRang, VehicleWarnRangEnum.WarnRange.CHILD.getCode())) {
return update(lUdWrapper()
.eq(VehicleWarnInfo::getId, item.getId())
.ne(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.RESOLVE.getCode())
.set(VehicleWarnInfo::getSuspendTime, item.getSuspendTime())
);
if (item.getId() != null) {
return update(lUdWrapper()
.eq(VehicleWarnInfo::getId, item.getId())
.ne(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.RESOLVE.getCode())
.set(VehicleWarnInfo::getSuspendTime, item.getSuspendTime())
);
}
else {
return update(lUdWrapper()
.eq(VehicleWarnInfo::getWarnConfigId, item.getWarnConfigId())
.eq(VehicleWarnInfo::getChildNo, item.getChildNo())
.ne(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.RESOLVE.getCode())
.set(VehicleWarnInfo::getSuspendTime, item.getSuspendTime())
);
}
}
else if (Objects.equals(warnRang, VehicleWarnRangEnum.WarnRange.ORDER_GOODS.getCode())) {
return update(lUdWrapper()
......
package com.clx.performance.dao.impl.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.vehiclewarn.VehicleWarnRangeDao;
import com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnRangMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.model.vehiclewarn.VehicleWarnRang;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnRangeParam;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
......@@ -33,4 +38,21 @@ public class VehicleWarnRangeDaoImpl extends BaseDaoImpl<VehicleWarnRangMapper,
.set(VehicleWarnRang::getStatus, VehicleWarnRangEnum.Status.DISABLE.getCode())
);
}
@Override
public IPage<VehicleWarnRang> pageByParam(PageVehicleWarnRangeParam param) {
Page<VehicleWarnRang> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
@Override
public Optional<VehicleWarnRang> findById(Integer id) {
return Optional.of(id)
.map(item -> lQrWrapper()
.eq(VehicleWarnRang::getId, id)
.last("limit 1")
)
.map(super::getOne);
}
}
package com.clx.performance.dao.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnRangMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnRang;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnRangeParam;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import java.util.List;
......@@ -10,4 +13,8 @@ public interface VehicleWarnRangeDao extends BaseDao<VehicleWarnRangMapper, Vehi
List<VehicleWarnRang> ListByWarnConfigId(Integer warnConfigId);
boolean updateDisable(VehicleWarnRang item);
IPage<VehicleWarnRang> pageByParam(PageVehicleWarnRangeParam param);
Optional<VehicleWarnRang> findById(Integer id);
}
......@@ -2,9 +2,6 @@ package com.clx.performance.esplus.model;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.IndexId;
import org.dromara.easyes.annotation.IndexName;
......
package com.clx.performance.mapper.vehiclewarn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.model.vehiclewarn.VehicleWarnRang;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnRangeParam;
import com.clx.performance.sqlProvider.vehiclewarn.VehicleWarnInfoSqlProvider;
import com.clx.performance.sqlProvider.vehiclewarn.VehicleWarnRangeSqlProvider;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
@Mapper
public interface VehicleWarnRangMapper extends BaseMapper<VehicleWarnRang> {
String TABLE = "vehicle_warn_range";
/**
* @see VehicleWarnRangeSqlProvider#pageByParam(Page, PageVehicleWarnRangeParam)
*/
@SelectProvider(type = VehicleWarnRangeSqlProvider.class, method = "pageByParam")
IPage<VehicleWarnRang> pageByParam(@Param("page") Page page, @Param("param") PageVehicleWarnRangeParam param);
}
\ No newline at end of file
......@@ -43,13 +43,15 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
@Override
public void vehicleWarnInfoUpdate(OrderChild orderChild, VehicleWarnInfo vehicleWarnInfo, VehicleWarnConfig vehicleWarnConfig){
public void vehicleWarnInfoUpdate(OrderChild orderChild, VehicleWarnInfo vehicleWarnInfo,
VehicleWarnConfig vehicleWarnConfig){
// 更新
if (vehicleWarnInfo != null){
// 计算下次生效时间
LocalDateTime nextTime = vehicleWarnInfo.getWarnTime().plusMinutes(vehicleWarnConfig.getInterval().multiply(new BigDecimal(MIN_FER_HOUR)).intValue());
LocalDateTime nextTime = vehicleWarnInfo.getWarnTime()
.plusMinutes(vehicleWarnConfig.getInterval().multiply(new BigDecimal(MIN_FER_HOUR)).intValue());
if (nextTime.isAfter(LocalDateTime.now())) {return;}
vehicleWarnInfo.setWarnTime(LocalDateTime.now());
......@@ -65,7 +67,6 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
vehicleWarnInfo.setWarnConfigId(vehicleWarnConfig.getId());
vehicleWarnInfo.setWarnType(vehicleWarnConfig.getWarnType());
vehicleWarnInfo.setWarnName(vehicleWarnConfig.getWarnName());
vehicleWarnInfo.setWarnName(vehicleWarnConfig.getWarnName());
vehicleWarnInfo.setWarnLevel(vehicleWarnConfig.getWarnLevel());
vehicleWarnInfo.setOrderGoodsNo(orderChild.getOrderGoodsNo());
......@@ -135,7 +136,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
public int getNeedTime(BigDecimal originLongitude, BigDecimal originLatitude,
BigDecimal destinationLongitude, BigDecimal destinationLatitude){
try {
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(originLongitude, originLatitude, destinationLongitude, destinationLatitude);
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(originLongitude, originLatitude,
destinationLongitude, destinationLatitude);
if (!gdRouteDTOS.isEmpty()){
return gdRouteDTOS.get(0).getDuration() /SEC_FER_MIN;
......@@ -152,7 +154,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
* 获取需要时间(min)
*/
@Override
public int getNeedTime(BigDecimal[] currentPosition, BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
public int getNeedTime(BigDecimal[] currentPosition,
BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
if (currentPosition == null) {return 0;}
return getNeedTime(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude);
}
......@@ -167,7 +170,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
if (currentPosition == null) {return 0;}
try {
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude);
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(currentPosition[0], currentPosition[1],
destinationLongitude, destinationLatitude);
if (!gdRouteDTOS.isEmpty()){
needDistance = gdRouteDTOS.get(0).getDistance();
......@@ -181,7 +185,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
}
@Override
public Integer getDistance(BigDecimal[] currentPosition, BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
public Integer getDistance(BigDecimal[] currentPosition,
BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
if (currentPosition == null) {return null;}
return GpsUtil.distanceM(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude);
}
......
......@@ -67,7 +67,8 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
@Transactional(rollbackFor = Exception.class)
@Override
public void updateConfig(VehicleWarnConfigUpdateParam param) {
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (!Objects.equals(vehicleWarnConfig.getWarnName(), param.getWarnName())){
Optional<VehicleWarnConfig> optional = vehicleWarnConfigDao.findByName(param.getWarnName());
if (optional.isPresent()){
......@@ -89,13 +90,15 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
vehicleWarnConfigDao.updateConfig(vehicleWarnConfig);
// 同步历史数据
VehicleWarnInfo vehicleWarnInfo = new VehicleWarnInfo();
vehicleWarnInfoDao.updateByConfig(vehicleWarnConfig.getId(), vehicleWarnConfig.getWarnName(), vehicleWarnConfig.getWarnLevel());
vehicleWarnInfoDao.updateByConfig(vehicleWarnConfig.getId()
, vehicleWarnConfig.getWarnName(), vehicleWarnConfig.getWarnLevel());
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateStatus(VehicleWarnConfigStatusUpdateParam param) {
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnConfig.setStatus(param.getStatus());
vehicleWarnConfigDao.updateStatus(vehicleWarnConfig);
......@@ -104,7 +107,8 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
@Override
public void deleteConfig(VehicleWarnConfigDeleteUpdateParam param) {
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnConfig.setDeleteStatus(VehicleWarnConfigEnum.DeleteStatus.YES.getCode());
vehicleWarnConfigDao.updateDelete(vehicleWarnConfig);
......
......@@ -27,6 +27,8 @@ import java.util.Objects;
public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnService {
// 装卸车默认时间(min)
private static final Integer LOAD_UNLOAD_TIME_DEFAULT = 60;
// 最近30天装卸车时间
private static final int LOAD_UNLOAD_DAY = 30;
@Autowired
private OrderChildDao orderChildDao;
......@@ -42,7 +44,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void delayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void delayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 拉运结束时间
......@@ -67,7 +70,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
// 超时
if (transportEndTime.isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.DELAY.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.
listByWarnType(VehicleWarnConfigEnum.WarnType.DELAY.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -76,9 +80,12 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
}
private void doDelayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doDelayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(),
VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -97,7 +104,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
private Integer getLoadTime(Integer sendAddressId, Integer receiveAddressId,
Integer sendSystemAddressId, Integer receiveSystemAddressId,
LocalDateTime now){
Integer time = orderChildDao.loadTimeAvg(sendAddressId, receiveAddressId, sendSystemAddressId, receiveSystemAddressId, LocalDateTimeUtils.formatTime(now.minusDays(30)));
Integer time = orderChildDao.loadTimeAvg(sendAddressId, receiveAddressId, sendSystemAddressId,
receiveSystemAddressId, LocalDateTimeUtils.formatTime(now.minusDays(LOAD_UNLOAD_DAY)));
if (time == null) {return LOAD_UNLOAD_TIME_DEFAULT;}
return time/60;
}
......@@ -108,7 +116,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
private Integer getUnloadTime(Integer sendAddressId, Integer receiveAddressId,
Integer sendSystemAddressId, Integer receiveSystemAddressId,
LocalDateTime now){
Integer time = orderChildDao.unloadTimeAvg(sendAddressId, receiveAddressId, sendSystemAddressId, receiveSystemAddressId, LocalDateTimeUtils.formatTime(now.minusDays(30)));
Integer time = orderChildDao.unloadTimeAvg(sendAddressId, receiveAddressId, sendSystemAddressId,
receiveSystemAddressId, LocalDateTimeUtils.formatTime(now.minusDays(LOAD_UNLOAD_DAY)));
if (time == null) {return LOAD_UNLOAD_TIME_DEFAULT;}
return time/60;
}
......
......@@ -42,6 +42,7 @@ import java.util.stream.Collectors;
@Slf4j
@Service
public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
// 最多查询3天轨迹
private final Integer TRUCK_TRACE_DAY_MAX = 3;
@Autowired
......@@ -65,7 +66,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
LocalDateTime endTime = LocalDateTimeUtils.parseTime(param.getWarnEndTime());
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnInfo.setSuspendTime(endTime);
vehicleWarnInfoDao.updateSuspendTime(vehicleWarnInfo, param.getWarnRang());
......@@ -107,7 +109,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
public void updateResolve(VehicleWarnInfoResolveUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnInfo.setStatus(VehicleWarnInfoEnum.Status.RESOLVE.getCode());
vehicleWarnInfoDao.updateStatus(vehicleWarnInfo);
......@@ -126,18 +129,18 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
@Override
public VehicleTraceVO getTrace(Integer id) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(id).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderChild orderChild = orderChildDao.getByChildNo(vehicleWarnInfo.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderChild orderChild = orderChildDao
.getByChildNo(vehicleWarnInfo.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
LocalDateTime beginTime = vehicleWarnInfo.getTakeTime();
LocalDateTime endTime = LocalDateTime.now();
if (orderChild.getArriveSendTime() != null) {endTime = orderChild.getArriveSendTime();}
if (orderChild.getLoadTime() != null) {endTime = orderChild.getLoadTime();}
if (orderChild.getArriveReceiveTime() != null) {endTime = orderChild.getArriveReceiveTime();}
if (orderChild.getUnloadTime() != null) {endTime = orderChild.getUnloadTime();}
if (orderChild.getConfirmTime() != null) {endTime = orderChild.getConfirmTime();}
if (orderChild.getSettleTime() != null) {endTime = orderChild.getSettleTime();}
if (orderChild.getFinishTime() != null) {endTime = orderChild.getFinishTime();}
if (endTime.isAfter(beginTime.plusDays(TRUCK_TRACE_DAY_MAX))) {endTime = beginTime.plusDays(TRUCK_TRACE_DAY_MAX);} //最多查询3天
if (orderChild.getUnloadTime() != null || orderChild.getFinishTime() != null){
if (orderChild.getUnloadTime() != null) {endTime = orderChild.getUnloadTime();}
if (orderChild.getFinishTime() != null) {endTime = orderChild.getFinishTime();}
}
if (endTime.isAfter(beginTime.plusDays(TRUCK_TRACE_DAY_MAX))){
endTime = beginTime.plusDays(TRUCK_TRACE_DAY_MAX);
}
List<DriverTruckTraceVO> truckTraceList = truckTraceService.listTruckTraceByTime(vehicleWarnInfo.getTruckNo(),
LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime));
......@@ -173,10 +176,12 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
public IPage<VehicleWarnInfoVO> pageInfo(PageVehicleWarnInfoParam param) {
Page<VehicleWarnInfoVO> page = vehicleWarnInfoStruct.convertPage(vehicleWarnInfoDao.pageByParam(param));
List<String> childNoList = page.getRecords().stream().map(item -> item.getChildNo()).collect(Collectors.toList());
List<String> childNoList = page.getRecords().stream()
.map(item -> item.getChildNo()).collect(Collectors.toList());
if (!childNoList.isEmpty()) {
List<OrderChild> list = orderChildDao.listByChildNoList(childNoList);
Map<String, OrderChild> map = list.stream().collect(Collectors.toMap(item -> item.getChildNo(), item -> item));
Map<String, OrderChild> map = list.stream()
.collect(Collectors.toMap(item -> item.getChildNo(), item -> item));
for (VehicleWarnInfoVO record : page.getRecords()) {
record.setChildStatus(map.get(record.getChildNo()).getStatus());
}
......
......@@ -39,7 +39,8 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
@Override
public void loadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild){
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.LOAD_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.LOAD_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -48,9 +49,12 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
}
private void doLoadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doLoadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -74,7 +78,8 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
@Override
public void unloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild){
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.UNLOAD_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.UNLOAD_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -83,9 +88,12 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
}
private void doUnloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doUnloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......
......@@ -44,7 +44,10 @@ import java.util.Objects;
@Slf4j
@Service
public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerService {
// 前往目的地距离
private static final Integer DISTANCE_DEFAULT = 2000;
// 车辆轨迹同步时间
private static final int TRUCK_TRACE_SYNC_TIME = 5;
@Autowired
private OrderChildDao orderChildDao;
......@@ -80,13 +83,15 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override
public void orderChildAdd(VehicleWarnChildAddMqParam mq) {
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
// 同步车辆轨迹
TruckTraceSyncMqParam truckTraceSyncMqParam = new TruckTraceSyncMqParam();
truckTraceSyncMqParam.setChildNo(orderChild.getChildNo());
truckTraceSyncMqParam.setTruckNo(orderChild.getTruckNo());
truckTraceSyncMqParam.setBeginTime(LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(5)));
truckTraceSyncMqParam.setBeginTime(
LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(TRUCK_TRACE_SYNC_TIME)));
truckTraceSyncMqParam.setEndTime(LocalDateTimeUtils.formatTime());
try {
truckTraceMqHandlerService.truckTracSync(truckTraceSyncMqParam);
......@@ -99,7 +104,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
orderChild.getDriverUserNo());
int arriveSendExpectTime = vehicleWarnCommonService.getNeedTime(currentPosition,
orderGoods.getSendLongitude(), orderGoods.getSendLatitude());
int arriveReceiveExpectTime = vehicleWarnCommonService.getNeedTime(new BigDecimal[]{orderGoods.getSendLongitude(),
int arriveReceiveExpectTime = vehicleWarnCommonService
.getNeedTime(new BigDecimal[]{orderGoods.getSendLongitude(),
orderGoods.getSendLatitude()}, orderGoods.getReceiveLongitude(), orderGoods.getReceiveLatitude());
int needDistance = vehicleWarnCommonService.getNeedDistance(new BigDecimal[]{orderGoods.getSendLongitude(),
......@@ -128,9 +134,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override
public void truckWarn(VehicleWarnTruckWarnMqParam mq) {
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnChild vehicleWarnChild = vehicleWarnChildDao.findByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnChild vehicleWarnChild = vehicleWarnChildDao
.findByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnCommonInfoDTO commonInfo = new VehicleWarnCommonInfoDTO();
commonInfo.setChildNo(orderChild.getChildNo());
......@@ -138,18 +146,22 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
commonInfo.setLastArriveReceiveTime(orderGoods.getLastArriveReceiveTime());
commonInfo.setCurrentTime(LocalDateTime.now());
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderGoods.getOrderNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
FeignOrderInfoVO orderInfo = orderService
.getOrderInfo(orderGoods.getOrderNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
commonInfo.setTransportEndTime(LocalDateTimeUtils.parseTime(orderInfo.getTransportEndTime()));
// 获取当前位置
commonInfo.setCurrentPosition(vehicleWarnCommonService.getCurrentPosition(orderChild.getTruckNo(), orderChild.getDriverUserNo()));
commonInfo.setCurrentPosition(vehicleWarnCommonService
.getCurrentPosition(orderChild.getTruckNo(), orderChild.getDriverUserNo()));
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.CREATED.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PAY.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode())
) {
// 距货源地时间
commonInfo.setSendAddressTime(vehicleWarnCommonService.getNeedTime(commonInfo.getCurrentPosition(), vehicleWarnChild.getSendLongitude(), vehicleWarnChild.getSendLatitude()));
commonInfo.setSendAddressTime(vehicleWarnCommonService
.getNeedTime(commonInfo.getCurrentPosition(), vehicleWarnChild.getSendLongitude()
, vehicleWarnChild.getSendLatitude()));
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())
......@@ -157,9 +169,13 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())
) {
// 距目的地时间
commonInfo.setReceiveAddressTime(vehicleWarnCommonService.getNeedTime(commonInfo.getCurrentPosition(), vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
commonInfo.setReceiveAddressTime(vehicleWarnCommonService
.getNeedTime(commonInfo.getCurrentPosition()
, vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
// 距目的地距离
commonInfo.setReceiveAddressDistance(vehicleWarnCommonService.getNeedDistance(commonInfo.getCurrentPosition(), vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
commonInfo.setReceiveAddressDistance(vehicleWarnCommonService
.getNeedDistance(commonInfo.getCurrentPosition()
, vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
}
// 未装车前往目的地判断
......@@ -242,7 +258,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())
){
try {
vehicleWarnReceiveAddressWarnService.gotoReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
vehicleWarnReceiveAddressWarnService
.gotoReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
}catch (Exception e){
log.info("前往目的地超时错误, msg:{}", ExceptionUtils.getStackTrace(e));
}
......@@ -254,7 +271,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())
){
try {
vehicleWarnReceiveAddressWarnService.arriveReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
vehicleWarnReceiveAddressWarnService
.arriveReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
}catch (Exception e){
log.info("到达目的地超时错误, msg:{}", ExceptionUtils.getStackTrace(e));
}
......@@ -311,7 +329,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override
public void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(mq.getInfoId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findById(mq.getInfoId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
List<String> mobileList = new ArrayList<>();
......@@ -328,11 +347,14 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
log.info("车辆预警通知, id:{}, mobileList:{}", vehicleWarnInfo.getId(), JSON.toJSONString(mobileList));
if (vehicleWarnInfo.getWarnLevel() == 2){ //2级短信
sendSms(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendSms(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
}
else if (vehicleWarnInfo.getWarnLevel() == 3) { //3级外呼+短信
sendSms(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendClink(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendSms(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendClink(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
}
}
......
......@@ -27,10 +27,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnChildAddMqParam mq = new VehicleWarnChildAddMqParam();
mq.setChildNo(childNo);
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_ROUTING_KEY, new MqWrapper<>(mq));
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
......@@ -38,10 +40,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnTruckWarnMqParam mq = new VehicleWarnTruckWarnMqParam();
mq.setChildNo(childNo);
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.TRUCK_WARN_ROUTING_KEY, new MqWrapper<>(mq));
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.TRUCK_WARN_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
......@@ -49,10 +53,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnTruckWarnNoticeMqParam mq = new VehicleWarnTruckWarnNoticeMqParam();
mq.setInfoId(infoId);
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.TRUCK_WARN_NOTICE_ROUTING_KEY, new MqWrapper<>(mq));
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.TRUCK_WARN_NOTICE_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
}
......@@ -44,17 +44,20 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void packTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void packTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
// 未装车前往目的地判断
if (!commonInfo.isGotoReceive()) {return;}
orderChild.setLoadTime(commonInfo.getGotoReceiveTime());
// 停留时间
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo(), vehicleWarnChild.getDriverUserNo(), orderChild.getLoadTime());
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo()
, vehicleWarnChild.getDriverUserNo(), orderChild.getLoadTime());
if (parkTime == 0) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.PARK_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.PARK_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -64,9 +67,12 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
}
private void doParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, int parkTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig, int parkTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -84,17 +90,20 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
}
@Override
public void sensitiveAreaParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo) {
public void sensitiveAreaParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo) {
// 未装车前往目的地判断
if (!commonInfo.isGotoReceive()) {return;}
orderChild.setLoadTime(commonInfo.getGotoReceiveTime());
// 停留时间
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo(), vehicleWarnChild.getDriverUserNo(), vehicleWarnChild.getTakeTime());
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo(),
vehicleWarnChild.getDriverUserNo(), vehicleWarnChild.getTakeTime());
if (parkTime < PARK_TIMEOUT_DEFAULT) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.SENSITIVE_AREA_PARK_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.SENSITIVE_AREA_PARK_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -103,14 +112,18 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
}
private void doSensitiveParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, VehicleWarnCommonInfoDTO commonInfo){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doSensitiveParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig, VehicleWarnCommonInfoDTO commonInfo){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
// 敏感区距离
Integer sensitiveDistance = vehicleWarnCommonService.getDistance(commonInfo.getCurrentPosition(), vehicleWarnConfig.getLongitude(), vehicleWarnConfig.getLatitude());
Integer sensitiveDistance = vehicleWarnCommonService.getDistance(commonInfo.getCurrentPosition()
, vehicleWarnConfig.getLongitude(), vehicleWarnConfig.getLatitude());
if (sensitiveDistance==null || sensitiveDistance > vehicleWarnConfig.getRadius()) {return;}
// 暂停检测
......
package com.clx.performance.service.impl.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.vehiclewarn.VehicleWarnConfigDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnRangeDao;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum;
import com.clx.performance.model.vehiclewarn.VehicleWarnConfig;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.model.vehiclewarn.VehicleWarnRang;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnRangeParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnRangeResumeUpdateParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnRangeSuspendUpdateParam;
import com.clx.performance.service.vehiclewarn.VehicleWarnRangeService;
import com.clx.performance.struct.vehiclewarn.VehicleWarnRangeStruct;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnRangDTO;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@Slf4j
@Service
public class VehicleWarnRangeServiceImpl implements VehicleWarnRangeService {
@Autowired
private VehicleWarnRangeDao vehicleWarnRangeDao;
@Autowired
private VehicleWarnRangeStruct vehicleWarnRangeStruct;
@Autowired
private VehicleWarnInfoDao vehicleWarnInfoDao;
@Autowired
private VehicleWarnConfigDao vehicleWarnConfigDao;
@Override
public void updateSuspend(VehicleWarnRangeSuspendUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
LocalDateTime endTime = LocalDateTimeUtils.parseTime(param.getWarnEndTime());
VehicleWarnRang vehicleWarnRangOld = vehicleWarnRangeDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao
.findById(vehicleWarnRangOld.getWarnConfigId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnInfo vehicleWarnInfo = new VehicleWarnInfo();
vehicleWarnInfo.setWarnConfigId(vehicleWarnRangOld.getWarnConfigId());
vehicleWarnInfo.setOrderGoodsNo(vehicleWarnRangOld.getOrderGoodsNo());
vehicleWarnInfo.setChildNo(vehicleWarnRangOld.getChildNo());
vehicleWarnInfoDao.updateSuspendTime(vehicleWarnInfo, vehicleWarnRangOld.getWarnRang());
// VehicleWarnLog vehicleWarnLog = new VehicleWarnLog();
// vehicleWarnLog.setInfoId(vehicleWarnInfo.getId());
// vehicleWarnLog.setType(VehicleWarnLogEnum.Type.SUSPEND.getCode());
// vehicleWarnLog.setContent(VehicleWarnLogEnum.Type.SUSPEND.getMsg());
// vehicleWarnLog.setChildNo(vehicleWarnInfo.getChildNo());
// vehicleWarnLog.setWarnName(vehicleWarnInfo.getWarnName());
// vehicleWarnLog.setWarnRang(param.getWarnRang());
// vehicleWarnLog.setWarnEndTime(endTime);
// vehicleWarnLog.setWarnTime(vehicleWarnInfo.getWarnTime());
// vehicleWarnLog.setCreateBy(loginUserInfo.getUserName());
// vehicleWarnLogDao.saveEntity(vehicleWarnLog);
VehicleWarnRang vehicleWarnRang = new VehicleWarnRang();
vehicleWarnRang.setWarnConfigId(vehicleWarnConfig.getId());
vehicleWarnRang.setWarnName(vehicleWarnConfig.getWarnName());
vehicleWarnRang.setWarnRang(vehicleWarnRangOld.getWarnRang());
vehicleWarnRang.setOrderGoodsNo(vehicleWarnRangOld.getOrderGoodsNo());
vehicleWarnRang.setChildNo(vehicleWarnRangOld.getChildNo());
vehicleWarnRang.setWarnEndTime(endTime);
vehicleWarnRang.setStatus(VehicleWarnRangEnum.Status.ENABLE.getCode());
vehicleWarnRang.setCreateBy(loginUserInfo.getUserName());
// 禁用旧数据
vehicleWarnRangeDao.updateDisable(vehicleWarnRang);
// 新增新数据
vehicleWarnRangeDao.saveEntity(vehicleWarnRang);
}
@Override
public void updateResume(VehicleWarnRangeResumeUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
VehicleWarnRang vehicleWarnRangOld = vehicleWarnRangeDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
}
@Override
public VehicleWarnRangDTO getRange(Integer id) {
return vehicleWarnRangeStruct.convert(vehicleWarnRangeDao.findById(id).orNull());
}
@Override
public IPage<VehicleWarnRangDTO> pageRange(PageVehicleWarnRangeParam param) {
Page<VehicleWarnRangDTO> page = vehicleWarnRangeStruct.convertPage(vehicleWarnRangeDao.pageByParam(param));
return null;
}
}
......@@ -40,7 +40,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void gotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void gotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 未装车前往目的地判断
......@@ -54,7 +55,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
// 计算需要的时间
Integer needTime = commonInfo.getReceiveAddressTime();
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.GOTO_RECEIVE_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.GOTO_RECEIVE_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -63,9 +65,12 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
}
private void doGotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, Integer expectTime, Integer needTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doGotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig, Integer expectTime, Integer needTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus()
, VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -76,8 +81,11 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
LocalDateTime loadTime = orderChild.getLoadTime();
// 超时判断
int time = vehicleWarnConfig.getTimeoutRatio().multiply(new BigDecimal(expectTime)).divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue();
if (loadTime.plusMinutes(expectTime).plusMinutes(time).isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
int time = vehicleWarnConfig.getTimeoutRatio()
.multiply(new BigDecimal(expectTime))
.divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue();
if (loadTime.plusMinutes(expectTime).plusMinutes(time)
.isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
// 更新
vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig);
......@@ -88,7 +96,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void arriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void arriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 未装车前往目的地判断
......@@ -103,7 +112,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
LocalDateTime now = commonInfo.getCurrentTime();
if (lastArriveReceiveTime.isAfter(now.plusMinutes(needTime))) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.ARRIVE_RECEIVE_DELAY.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.ARRIVE_RECEIVE_DELAY.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -112,9 +122,12 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
}
private void doArriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doArriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus()
, VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......
......@@ -38,7 +38,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void gotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void gotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;}
long expectTime = vehicleWarnChild.getArriveSendExpectTime();
......@@ -46,7 +47,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
// 计算需要的时间
Integer needTime = commonInfo.getSendAddressTime();
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.GOTO_SEND_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.GOTO_SEND_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -55,9 +57,12 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
}
private void doGotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, long expectTime, Integer needTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doGotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig, long expectTime, Integer needTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -66,8 +71,11 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
if (suspend) {return;}
// 超时判断
int time = vehicleWarnConfig.getTimeoutRatio().multiply(new BigDecimal(expectTime)).divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue();
if (orderChild.getPayTime().plusMinutes(expectTime).plusMinutes(time).isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
int time = vehicleWarnConfig.getTimeoutRatio()
.multiply(new BigDecimal(expectTime))
.divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue();
if (orderChild.getPayTime().plusMinutes(expectTime)
.plusMinutes(time).isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
// 更新
vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig);
......@@ -79,7 +87,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void arriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void arriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;}
// 计算需要的时间
......@@ -90,7 +99,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
LocalDateTime now = LocalDateTime.now();
if (lastArriveSendTime.isAfter(now.plusMinutes(needTime))) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.ARRIVE_SEND_DELAY.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.ARRIVE_SEND_DELAY.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -99,9 +109,12 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
}
private void doArriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doArriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......
......@@ -37,5 +37,6 @@ public interface TruckTraceService {
List<List<DriverTruckTraceVO>> splitTruckTrace(List<DriverTruckTraceVO> traceList);
void saveTruckTrace(String truckNo,Integer size,String gpsTime);
}
package com.clx.performance.service.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnRangeParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnRangeResumeUpdateParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnRangeSuspendUpdateParam;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnRangDTO;
public interface VehicleWarnRangeService {
void updateSuspend(VehicleWarnRangeSuspendUpdateParam param);
void updateResume(VehicleWarnRangeResumeUpdateParam param);
VehicleWarnRangDTO getRange(Integer id);
IPage<VehicleWarnRangDTO> pageRange(PageVehicleWarnRangeParam param);
}
......@@ -20,6 +20,7 @@ public class VehicleWarnInfoSqlProvider {
SELECT("*");
FROM(TABLE);
if (StringUtils.isNotBlank(param.getWarnName())) {WHERE("warn_name like CONCAT('%', #{param.warnName},'%')");}
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {WHERE("order_goods_no = #{param.orderGoodsNo}");}
if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");}
if (Objects.nonNull(param.getWarnType())) {WHERE("warn_type = #{param.warnType}");}
if (Objects.nonNull(param.getWarnLevel())) {WHERE("warn_level = #{param.warnLevel}");}
......
package com.clx.performance.sqlProvider.vehiclewarn;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnRangeParam;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class VehicleWarnRangeSqlProvider {
private static final String TABLE = "vehicle_warn_range";
public String pageByParam(@Param("page") Page page, @Param("param") PageVehicleWarnRangeParam param) {
return new SQL(){{
SELECT("*");
FROM(TABLE);
WHERE("status = 1");
if (StringUtils.isNotBlank(param.getWarnName())) {WHERE("warn_name like CONCAT('%', #{param.warnName},'%')");}
if (Objects.nonNull(param.getWarnRang())) {WHERE("warn_rang = #{param.warnRang}");}
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");}
ORDER_BY("id desc");
}}.toString();
}
}
package com.clx.performance.struct.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.vehiclewarn.VehicleWarnRang;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnRangDTO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface VehicleWarnRangeStruct {
VehicleWarnRangDTO convert(VehicleWarnRang item);
Page<VehicleWarnRangDTO> convertPage(IPage<VehicleWarnRang> page);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论