提交 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 { ...@@ -18,6 +18,8 @@ public class PageVehicleWarnInfoParam extends PageParam {
@ApiModelProperty(value = "预警级别", example = "1") @ApiModelProperty(value = "预警级别", example = "1")
private Integer warnLevel; private Integer warnLevel;
@ApiModelProperty(value = "货单编号", example = "1000")
private String orderGoodsNo;
@ApiModelProperty(value = "运单编号", example = "1000") @ApiModelProperty(value = "运单编号", example = "1000")
private String childNo; private String childNo;
@ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "1") @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 { ...@@ -48,6 +48,8 @@ public class VehicleWarnInfoVO {
if (warnLevel == 3) {return "三级";} if (warnLevel == 3) {return "三级";}
return null; return null;
} }
@ApiModelProperty(value = "货单编号", example = "1000")
private String orderGoodsNo;
@ApiModelProperty(value = "运单编号", example = "1000") @ApiModelProperty(value = "运单编号", example = "1000")
private String childNo; private String childNo;
@ApiModelProperty(value = "发货地址id", example = "1") @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 { ...@@ -32,11 +32,13 @@ public class RabbitVehicleWarnConfig {
params.put("x-max-length", 5000000); params.put("x-max-length", 5000000);
params.put("x-dead-letter-exchange", RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE); params.put("x-dead-letter-exchange", RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE);
params.put("x-dead-letter-routing-key", RabbitKeyVehicleWarnConstants.DEFAULT_DEAD_ROUTING_KEY); 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 @Bean
public Binding vehicleWarnDefaultDelayQueueBinding() { 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 @Bean
...@@ -45,7 +47,8 @@ public class RabbitVehicleWarnConfig { ...@@ -45,7 +47,8 @@ public class RabbitVehicleWarnConfig {
} }
@Bean @Bean
public Binding vehicleWarnDefaultDeadQueueBinding() { 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 { ...@@ -58,7 +61,8 @@ public class RabbitVehicleWarnConfig {
} }
@Bean @Bean
public Binding vehicleWarnChildAddQueueBinding() { 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 { ...@@ -70,7 +74,8 @@ public class RabbitVehicleWarnConfig {
} }
@Bean @Bean
public Binding vehicleWarnTruckWarnQueueBinding() { 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 { ...@@ -81,7 +86,8 @@ public class RabbitVehicleWarnConfig {
} }
@Bean @Bean
public Binding vehicleWarnNoticeQueueBinding() { 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 { ...@@ -36,12 +36,17 @@ public class TempController {
@Autowired @Autowired
private TransportFeignService transportFeignService; private TransportFeignService transportFeignService;
@Autowired
private OrderChildDtsListener orderChildDtsListener;
@ApiOperation(value = "test", notes = "<br>By:艾庆国") @ApiOperation(value = "test", notes = "<br>By:艾庆国")
@RequestMapping(value = "/test", method = RequestMethod.GET) @RequestMapping(value = "/test", method = RequestMethod.GET)
public Result test() { public Result test() {
OrderChildSyncMessage message = new OrderChildSyncMessage();
message.setId(1);
orderChildDtsListener.thirdpartySync(message);
return Result.ok(); return Result.ok();
} }
......
...@@ -39,11 +39,21 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V ...@@ -39,11 +39,21 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V
public boolean updateSuspendTime(VehicleWarnInfo item, Integer warnRang) { public boolean updateSuspendTime(VehicleWarnInfo item, Integer warnRang) {
if (Objects.equals(warnRang, VehicleWarnRangEnum.WarnRange.CHILD.getCode())) { if (Objects.equals(warnRang, VehicleWarnRangEnum.WarnRange.CHILD.getCode())) {
return update(lUdWrapper() if (item.getId() != null) {
.eq(VehicleWarnInfo::getId, item.getId()) return update(lUdWrapper()
.ne(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.RESOLVE.getCode()) .eq(VehicleWarnInfo::getId, item.getId())
.set(VehicleWarnInfo::getSuspendTime, item.getSuspendTime()) .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())) { else if (Objects.equals(warnRang, VehicleWarnRangEnum.WarnRange.ORDER_GOODS.getCode())) {
return update(lUdWrapper() return update(lUdWrapper()
......
package com.clx.performance.dao.impl.vehiclewarn; 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.dao.vehiclewarn.VehicleWarnRangeDao;
import com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum; import com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnRangMapper; 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.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 com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -33,4 +38,21 @@ public class VehicleWarnRangeDaoImpl extends BaseDaoImpl<VehicleWarnRangMapper, ...@@ -33,4 +38,21 @@ public class VehicleWarnRangeDaoImpl extends BaseDaoImpl<VehicleWarnRangMapper,
.set(VehicleWarnRang::getStatus, VehicleWarnRangEnum.Status.DISABLE.getCode()) .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; package com.clx.performance.dao.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnRangMapper; import com.clx.performance.mapper.vehiclewarn.VehicleWarnRangMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnRang; 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 com.msl.common.dao.BaseDao;
import java.util.List; import java.util.List;
...@@ -10,4 +13,8 @@ public interface VehicleWarnRangeDao extends BaseDao<VehicleWarnRangMapper, Vehi ...@@ -10,4 +13,8 @@ public interface VehicleWarnRangeDao extends BaseDao<VehicleWarnRangMapper, Vehi
List<VehicleWarnRang> ListByWarnConfigId(Integer warnConfigId); List<VehicleWarnRang> ListByWarnConfigId(Integer warnConfigId);
boolean updateDisable(VehicleWarnRang item); boolean updateDisable(VehicleWarnRang item);
IPage<VehicleWarnRang> pageByParam(PageVehicleWarnRangeParam param);
Optional<VehicleWarnRang> findById(Integer id);
} }
...@@ -2,9 +2,6 @@ package com.clx.performance.esplus.model; ...@@ -2,9 +2,6 @@ package com.clx.performance.esplus.model;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.dromara.easyes.annotation.IndexField; import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.IndexId; import org.dromara.easyes.annotation.IndexId;
import org.dromara.easyes.annotation.IndexName; import org.dromara.easyes.annotation.IndexName;
......
package com.clx.performance.mapper.vehiclewarn; package com.clx.performance.mapper.vehiclewarn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.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.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
@Mapper @Mapper
public interface VehicleWarnRangMapper extends BaseMapper<VehicleWarnRang> { 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 { ...@@ -43,13 +43,15 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
@Override @Override
public void vehicleWarnInfoUpdate(OrderChild orderChild, VehicleWarnInfo vehicleWarnInfo, VehicleWarnConfig vehicleWarnConfig){ public void vehicleWarnInfoUpdate(OrderChild orderChild, VehicleWarnInfo vehicleWarnInfo,
VehicleWarnConfig vehicleWarnConfig){
// 更新 // 更新
if (vehicleWarnInfo != null){ 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;} if (nextTime.isAfter(LocalDateTime.now())) {return;}
vehicleWarnInfo.setWarnTime(LocalDateTime.now()); vehicleWarnInfo.setWarnTime(LocalDateTime.now());
...@@ -65,7 +67,6 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService { ...@@ -65,7 +67,6 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
vehicleWarnInfo.setWarnConfigId(vehicleWarnConfig.getId()); vehicleWarnInfo.setWarnConfigId(vehicleWarnConfig.getId());
vehicleWarnInfo.setWarnType(vehicleWarnConfig.getWarnType()); vehicleWarnInfo.setWarnType(vehicleWarnConfig.getWarnType());
vehicleWarnInfo.setWarnName(vehicleWarnConfig.getWarnName()); vehicleWarnInfo.setWarnName(vehicleWarnConfig.getWarnName());
vehicleWarnInfo.setWarnName(vehicleWarnConfig.getWarnName());
vehicleWarnInfo.setWarnLevel(vehicleWarnConfig.getWarnLevel()); vehicleWarnInfo.setWarnLevel(vehicleWarnConfig.getWarnLevel());
vehicleWarnInfo.setOrderGoodsNo(orderChild.getOrderGoodsNo()); vehicleWarnInfo.setOrderGoodsNo(orderChild.getOrderGoodsNo());
...@@ -135,7 +136,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService { ...@@ -135,7 +136,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
public int getNeedTime(BigDecimal originLongitude, BigDecimal originLatitude, public int getNeedTime(BigDecimal originLongitude, BigDecimal originLatitude,
BigDecimal destinationLongitude, BigDecimal destinationLatitude){ BigDecimal destinationLongitude, BigDecimal destinationLatitude){
try { try {
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(originLongitude, originLatitude, destinationLongitude, destinationLatitude); List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(originLongitude, originLatitude,
destinationLongitude, destinationLatitude);
if (!gdRouteDTOS.isEmpty()){ if (!gdRouteDTOS.isEmpty()){
return gdRouteDTOS.get(0).getDuration() /SEC_FER_MIN; return gdRouteDTOS.get(0).getDuration() /SEC_FER_MIN;
...@@ -152,7 +154,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService { ...@@ -152,7 +154,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
* 获取需要时间(min) * 获取需要时间(min)
*/ */
@Override @Override
public int getNeedTime(BigDecimal[] currentPosition, BigDecimal destinationLongitude, BigDecimal destinationLatitude) { public int getNeedTime(BigDecimal[] currentPosition,
BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
if (currentPosition == null) {return 0;} if (currentPosition == null) {return 0;}
return getNeedTime(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude); return getNeedTime(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude);
} }
...@@ -167,7 +170,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService { ...@@ -167,7 +170,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
if (currentPosition == null) {return 0;} if (currentPosition == null) {return 0;}
try { 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()){ if (!gdRouteDTOS.isEmpty()){
needDistance = gdRouteDTOS.get(0).getDistance(); needDistance = gdRouteDTOS.get(0).getDistance();
...@@ -181,7 +185,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService { ...@@ -181,7 +185,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
} }
@Override @Override
public Integer getDistance(BigDecimal[] currentPosition, BigDecimal destinationLongitude, BigDecimal destinationLatitude) { public Integer getDistance(BigDecimal[] currentPosition,
BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
if (currentPosition == null) {return null;} if (currentPosition == null) {return null;}
return GpsUtil.distanceM(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude); return GpsUtil.distanceM(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude);
} }
......
...@@ -67,7 +67,8 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService { ...@@ -67,7 +67,8 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateConfig(VehicleWarnConfigUpdateParam param) { 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())){ if (!Objects.equals(vehicleWarnConfig.getWarnName(), param.getWarnName())){
Optional<VehicleWarnConfig> optional = vehicleWarnConfigDao.findByName(param.getWarnName()); Optional<VehicleWarnConfig> optional = vehicleWarnConfigDao.findByName(param.getWarnName());
if (optional.isPresent()){ if (optional.isPresent()){
...@@ -89,13 +90,15 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService { ...@@ -89,13 +90,15 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
vehicleWarnConfigDao.updateConfig(vehicleWarnConfig); vehicleWarnConfigDao.updateConfig(vehicleWarnConfig);
// 同步历史数据 // 同步历史数据
VehicleWarnInfo vehicleWarnInfo = new VehicleWarnInfo(); VehicleWarnInfo vehicleWarnInfo = new VehicleWarnInfo();
vehicleWarnInfoDao.updateByConfig(vehicleWarnConfig.getId(), vehicleWarnConfig.getWarnName(), vehicleWarnConfig.getWarnLevel()); vehicleWarnInfoDao.updateByConfig(vehicleWarnConfig.getId()
, vehicleWarnConfig.getWarnName(), vehicleWarnConfig.getWarnLevel());
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateStatus(VehicleWarnConfigStatusUpdateParam param) { 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()); vehicleWarnConfig.setStatus(param.getStatus());
vehicleWarnConfigDao.updateStatus(vehicleWarnConfig); vehicleWarnConfigDao.updateStatus(vehicleWarnConfig);
...@@ -104,7 +107,8 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService { ...@@ -104,7 +107,8 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
@Override @Override
public void deleteConfig(VehicleWarnConfigDeleteUpdateParam param) { 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()); vehicleWarnConfig.setDeleteStatus(VehicleWarnConfigEnum.DeleteStatus.YES.getCode());
vehicleWarnConfigDao.updateDelete(vehicleWarnConfig); vehicleWarnConfigDao.updateDelete(vehicleWarnConfig);
......
...@@ -27,6 +27,8 @@ import java.util.Objects; ...@@ -27,6 +27,8 @@ import java.util.Objects;
public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnService { public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnService {
// 装卸车默认时间(min) // 装卸车默认时间(min)
private static final Integer LOAD_UNLOAD_TIME_DEFAULT = 60; private static final Integer LOAD_UNLOAD_TIME_DEFAULT = 60;
// 最近30天装卸车时间
private static final int LOAD_UNLOAD_DAY = 30;
@Autowired @Autowired
private OrderChildDao orderChildDao; private OrderChildDao orderChildDao;
...@@ -42,7 +44,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ ...@@ -42,7 +44,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void delayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){ public void delayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;} if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 拉运结束时间 // 拉运结束时间
...@@ -67,7 +70,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ ...@@ -67,7 +70,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
// 超时 // 超时
if (transportEndTime.isAfter(LocalDateTime.now().plusMinutes(needTime))){return;} 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -76,9 +80,12 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ ...@@ -76,9 +80,12 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
} }
private void doDelayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){ private void doDelayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); VehicleWarnConfig vehicleWarnConfig){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(),
VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
} }
...@@ -97,7 +104,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ ...@@ -97,7 +104,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
private Integer getLoadTime(Integer sendAddressId, Integer receiveAddressId, private Integer getLoadTime(Integer sendAddressId, Integer receiveAddressId,
Integer sendSystemAddressId, Integer receiveSystemAddressId, Integer sendSystemAddressId, Integer receiveSystemAddressId,
LocalDateTime now){ 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;} if (time == null) {return LOAD_UNLOAD_TIME_DEFAULT;}
return time/60; return time/60;
} }
...@@ -108,7 +116,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ ...@@ -108,7 +116,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
private Integer getUnloadTime(Integer sendAddressId, Integer receiveAddressId, private Integer getUnloadTime(Integer sendAddressId, Integer receiveAddressId,
Integer sendSystemAddressId, Integer receiveSystemAddressId, Integer sendSystemAddressId, Integer receiveSystemAddressId,
LocalDateTime now){ 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;} if (time == null) {return LOAD_UNLOAD_TIME_DEFAULT;}
return time/60; return time/60;
} }
......
...@@ -42,6 +42,7 @@ import java.util.stream.Collectors; ...@@ -42,6 +42,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService { public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
// 最多查询3天轨迹
private final Integer TRUCK_TRACE_DAY_MAX = 3; private final Integer TRUCK_TRACE_DAY_MAX = 3;
@Autowired @Autowired
...@@ -65,7 +66,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService { ...@@ -65,7 +66,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
LocalDateTime endTime = LocalDateTimeUtils.parseTime(param.getWarnEndTime()); 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); vehicleWarnInfo.setSuspendTime(endTime);
vehicleWarnInfoDao.updateSuspendTime(vehicleWarnInfo, param.getWarnRang()); vehicleWarnInfoDao.updateSuspendTime(vehicleWarnInfo, param.getWarnRang());
...@@ -107,7 +109,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService { ...@@ -107,7 +109,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
public void updateResolve(VehicleWarnInfoResolveUpdateParam param) { public void updateResolve(VehicleWarnInfoResolveUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); 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()); vehicleWarnInfo.setStatus(VehicleWarnInfoEnum.Status.RESOLVE.getCode());
vehicleWarnInfoDao.updateStatus(vehicleWarnInfo); vehicleWarnInfoDao.updateStatus(vehicleWarnInfo);
...@@ -126,18 +129,18 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService { ...@@ -126,18 +129,18 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
@Override @Override
public VehicleTraceVO getTrace(Integer id) { public VehicleTraceVO getTrace(Integer id) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(id).orElseThrow(ResultEnum.DATA_NOT_FIND); 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 beginTime = vehicleWarnInfo.getTakeTime();
LocalDateTime endTime = LocalDateTime.now(); LocalDateTime endTime = LocalDateTime.now();
if (orderChild.getArriveSendTime() != null) {endTime = orderChild.getArriveSendTime();} if (orderChild.getUnloadTime() != null || orderChild.getFinishTime() != null){
if (orderChild.getLoadTime() != null) {endTime = orderChild.getLoadTime();} if (orderChild.getUnloadTime() != null) {endTime = orderChild.getUnloadTime();}
if (orderChild.getArriveReceiveTime() != null) {endTime = orderChild.getArriveReceiveTime();} if (orderChild.getFinishTime() != null) {endTime = orderChild.getFinishTime();}
if (orderChild.getUnloadTime() != null) {endTime = orderChild.getUnloadTime();} }
if (orderChild.getConfirmTime() != null) {endTime = orderChild.getConfirmTime();} if (endTime.isAfter(beginTime.plusDays(TRUCK_TRACE_DAY_MAX))){
if (orderChild.getSettleTime() != null) {endTime = orderChild.getSettleTime();} endTime = beginTime.plusDays(TRUCK_TRACE_DAY_MAX);
if (orderChild.getFinishTime() != null) {endTime = orderChild.getFinishTime();} }
if (endTime.isAfter(beginTime.plusDays(TRUCK_TRACE_DAY_MAX))) {endTime = beginTime.plusDays(TRUCK_TRACE_DAY_MAX);} //最多查询3天
List<DriverTruckTraceVO> truckTraceList = truckTraceService.listTruckTraceByTime(vehicleWarnInfo.getTruckNo(), List<DriverTruckTraceVO> truckTraceList = truckTraceService.listTruckTraceByTime(vehicleWarnInfo.getTruckNo(),
LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime)); LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime));
...@@ -173,10 +176,12 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService { ...@@ -173,10 +176,12 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
public IPage<VehicleWarnInfoVO> pageInfo(PageVehicleWarnInfoParam param) { public IPage<VehicleWarnInfoVO> pageInfo(PageVehicleWarnInfoParam param) {
Page<VehicleWarnInfoVO> page = vehicleWarnInfoStruct.convertPage(vehicleWarnInfoDao.pageByParam(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()) { if (!childNoList.isEmpty()) {
List<OrderChild> list = orderChildDao.listByChildNoList(childNoList); 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()) { for (VehicleWarnInfoVO record : page.getRecords()) {
record.setChildStatus(map.get(record.getChildNo()).getStatus()); record.setChildStatus(map.get(record.getChildNo()).getStatus());
} }
......
...@@ -39,7 +39,8 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA ...@@ -39,7 +39,8 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
@Override @Override
public void loadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild){ 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -48,9 +49,12 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA ...@@ -48,9 +49,12 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
} }
private void doLoadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){ private void doLoadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); , VehicleWarnConfig vehicleWarnConfig){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
} }
...@@ -74,7 +78,8 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA ...@@ -74,7 +78,8 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
@Override @Override
public void unloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild){ 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -83,9 +88,12 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA ...@@ -83,9 +88,12 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
} }
private void doUnloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){ private void doUnloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); VehicleWarnConfig vehicleWarnConfig){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
} }
......
...@@ -44,7 +44,10 @@ import java.util.Objects; ...@@ -44,7 +44,10 @@ import java.util.Objects;
@Slf4j @Slf4j
@Service @Service
public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerService { public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerService {
// 前往目的地距离
private static final Integer DISTANCE_DEFAULT = 2000; private static final Integer DISTANCE_DEFAULT = 2000;
// 车辆轨迹同步时间
private static final int TRUCK_TRACE_SYNC_TIME = 5;
@Autowired @Autowired
private OrderChildDao orderChildDao; private OrderChildDao orderChildDao;
...@@ -80,13 +83,15 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -80,13 +83,15 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override @Override
public void orderChildAdd(VehicleWarnChildAddMqParam mq) { public void orderChildAdd(VehicleWarnChildAddMqParam mq) {
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); 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 truckTraceSyncMqParam = new TruckTraceSyncMqParam();
truckTraceSyncMqParam.setChildNo(orderChild.getChildNo()); truckTraceSyncMqParam.setChildNo(orderChild.getChildNo());
truckTraceSyncMqParam.setTruckNo(orderChild.getTruckNo()); 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()); truckTraceSyncMqParam.setEndTime(LocalDateTimeUtils.formatTime());
try { try {
truckTraceMqHandlerService.truckTracSync(truckTraceSyncMqParam); truckTraceMqHandlerService.truckTracSync(truckTraceSyncMqParam);
...@@ -99,7 +104,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -99,7 +104,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
orderChild.getDriverUserNo()); orderChild.getDriverUserNo());
int arriveSendExpectTime = vehicleWarnCommonService.getNeedTime(currentPosition, int arriveSendExpectTime = vehicleWarnCommonService.getNeedTime(currentPosition,
orderGoods.getSendLongitude(), orderGoods.getSendLatitude()); 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()); orderGoods.getSendLatitude()}, orderGoods.getReceiveLongitude(), orderGoods.getReceiveLatitude());
int needDistance = vehicleWarnCommonService.getNeedDistance(new BigDecimal[]{orderGoods.getSendLongitude(), int needDistance = vehicleWarnCommonService.getNeedDistance(new BigDecimal[]{orderGoods.getSendLongitude(),
...@@ -128,9 +134,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -128,9 +134,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override @Override
public void truckWarn(VehicleWarnTruckWarnMqParam mq) { public void truckWarn(VehicleWarnTruckWarnMqParam mq) {
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); 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(); VehicleWarnCommonInfoDTO commonInfo = new VehicleWarnCommonInfoDTO();
commonInfo.setChildNo(orderChild.getChildNo()); commonInfo.setChildNo(orderChild.getChildNo());
...@@ -138,18 +146,22 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -138,18 +146,22 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
commonInfo.setLastArriveReceiveTime(orderGoods.getLastArriveReceiveTime()); commonInfo.setLastArriveReceiveTime(orderGoods.getLastArriveReceiveTime());
commonInfo.setCurrentTime(LocalDateTime.now()); 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.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()) if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.CREATED.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PAY.getCode()) || Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PAY.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.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()) if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())
...@@ -157,9 +169,13 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -157,9 +169,13 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode()) || 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 ...@@ -242,7 +258,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode()) || Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())
){ ){
try { try {
vehicleWarnReceiveAddressWarnService.gotoReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo); vehicleWarnReceiveAddressWarnService
.gotoReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
}catch (Exception e){ }catch (Exception e){
log.info("前往目的地超时错误, msg:{}", ExceptionUtils.getStackTrace(e)); log.info("前往目的地超时错误, msg:{}", ExceptionUtils.getStackTrace(e));
} }
...@@ -254,7 +271,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -254,7 +271,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode()) || Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())
){ ){
try { try {
vehicleWarnReceiveAddressWarnService.arriveReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo); vehicleWarnReceiveAddressWarnService
.arriveReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
}catch (Exception e){ }catch (Exception e){
log.info("到达目的地超时错误, msg:{}", ExceptionUtils.getStackTrace(e)); log.info("到达目的地超时错误, msg:{}", ExceptionUtils.getStackTrace(e));
} }
...@@ -311,7 +329,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -311,7 +329,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override @Override
public void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq) { 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<>(); List<String> mobileList = new ArrayList<>();
...@@ -328,11 +347,14 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -328,11 +347,14 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
log.info("车辆预警通知, id:{}, mobileList:{}", vehicleWarnInfo.getId(), JSON.toJSONString(mobileList)); log.info("车辆预警通知, id:{}, mobileList:{}", vehicleWarnInfo.getId(), JSON.toJSONString(mobileList));
if (vehicleWarnInfo.getWarnLevel() == 2){ //2级短信 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级外呼+短信 else if (vehicleWarnInfo.getWarnLevel() == 3) { //3级外呼+短信
sendSms(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo()); sendSms(mobileList, vehicleWarnInfo.getWarnName()
sendClink(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo()); , vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendClink(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
} }
} }
......
...@@ -27,10 +27,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService { ...@@ -27,10 +27,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnChildAddMqParam mq = new VehicleWarnChildAddMqParam(); VehicleWarnChildAddMqParam mq = new VehicleWarnChildAddMqParam();
mq.setChildNo(childNo); 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 message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000"); 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 @Override
...@@ -38,10 +40,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService { ...@@ -38,10 +40,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnTruckWarnMqParam mq = new VehicleWarnTruckWarnMqParam(); VehicleWarnTruckWarnMqParam mq = new VehicleWarnTruckWarnMqParam();
mq.setChildNo(childNo); 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 message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000"); 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 @Override
...@@ -49,10 +53,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService { ...@@ -49,10 +53,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnTruckWarnNoticeMqParam mq = new VehicleWarnTruckWarnNoticeMqParam(); VehicleWarnTruckWarnNoticeMqParam mq = new VehicleWarnTruckWarnNoticeMqParam();
mq.setInfoId(infoId); 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 message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000"); 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 ...@@ -44,17 +44,20 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void packTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){ public void packTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
// 未装车前往目的地判断 // 未装车前往目的地判断
if (!commonInfo.isGotoReceive()) {return;} if (!commonInfo.isGotoReceive()) {return;}
orderChild.setLoadTime(commonInfo.getGotoReceiveTime()); 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;} 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -64,9 +67,12 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic ...@@ -64,9 +67,12 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
} }
private void doParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, int parkTime){ private void doParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); , VehicleWarnConfig vehicleWarnConfig, int parkTime){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
} }
...@@ -84,17 +90,20 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic ...@@ -84,17 +90,20 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
} }
@Override @Override
public void sensitiveAreaParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo) { public void sensitiveAreaParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo) {
// 未装车前往目的地判断 // 未装车前往目的地判断
if (!commonInfo.isGotoReceive()) {return;} if (!commonInfo.isGotoReceive()) {return;}
orderChild.setLoadTime(commonInfo.getGotoReceiveTime()); 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;} 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -103,14 +112,18 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic ...@@ -103,14 +112,18 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
} }
private void doSensitiveParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, VehicleWarnCommonInfoDTO commonInfo){ private void doSensitiveParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); , VehicleWarnConfig vehicleWarnConfig, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; 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;} 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 ...@@ -40,7 +40,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void gotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){ public void gotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;} if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 未装车前往目的地判断 // 未装车前往目的地判断
...@@ -54,7 +55,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece ...@@ -54,7 +55,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
// 计算需要的时间 // 计算需要的时间
Integer needTime = commonInfo.getReceiveAddressTime(); 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -63,9 +65,12 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece ...@@ -63,9 +65,12 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
} }
private void doGotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, Integer expectTime, Integer needTime){ private void doGotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); , VehicleWarnConfig vehicleWarnConfig, Integer expectTime, Integer needTime){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus()
, VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
} }
...@@ -76,8 +81,11 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece ...@@ -76,8 +81,11 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
LocalDateTime loadTime = orderChild.getLoadTime(); LocalDateTime loadTime = orderChild.getLoadTime();
// 超时判断 // 超时判断
int time = vehicleWarnConfig.getTimeoutRatio().multiply(new BigDecimal(expectTime)).divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue(); int time = vehicleWarnConfig.getTimeoutRatio()
if (loadTime.plusMinutes(expectTime).plusMinutes(time).isAfter(LocalDateTime.now().plusMinutes(needTime))){return;} .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); vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig);
...@@ -88,7 +96,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece ...@@ -88,7 +96,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void arriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){ public void arriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;} if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 未装车前往目的地判断 // 未装车前往目的地判断
...@@ -103,7 +112,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece ...@@ -103,7 +112,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
LocalDateTime now = commonInfo.getCurrentTime(); LocalDateTime now = commonInfo.getCurrentTime();
if (lastArriveReceiveTime.isAfter(now.plusMinutes(needTime))) {return;} 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -112,9 +122,12 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece ...@@ -112,9 +122,12 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
} }
private void doArriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){ private void doArriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); , VehicleWarnConfig vehicleWarnConfig){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus()
, VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
} }
......
...@@ -38,7 +38,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd ...@@ -38,7 +38,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void gotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){ public void gotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;} if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;}
long expectTime = vehicleWarnChild.getArriveSendExpectTime(); long expectTime = vehicleWarnChild.getArriveSendExpectTime();
...@@ -46,7 +47,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd ...@@ -46,7 +47,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
// 计算需要的时间 // 计算需要的时间
Integer needTime = commonInfo.getSendAddressTime(); 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -55,9 +57,12 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd ...@@ -55,9 +57,12 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
} }
private void doGotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, long expectTime, Integer needTime){ private void doGotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); , VehicleWarnConfig vehicleWarnConfig, long expectTime, Integer needTime){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
} }
...@@ -66,8 +71,11 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd ...@@ -66,8 +71,11 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
if (suspend) {return;} if (suspend) {return;}
// 超时判断 // 超时判断
int time = vehicleWarnConfig.getTimeoutRatio().multiply(new BigDecimal(expectTime)).divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue(); int time = vehicleWarnConfig.getTimeoutRatio()
if (orderChild.getPayTime().plusMinutes(expectTime).plusMinutes(time).isAfter(LocalDateTime.now().plusMinutes(needTime))){return;} .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); vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig);
...@@ -79,7 +87,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd ...@@ -79,7 +87,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void arriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){ public void arriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;} if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;}
// 计算需要的时间 // 计算需要的时间
...@@ -90,7 +99,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd ...@@ -90,7 +99,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
if (lastArriveSendTime.isAfter(now.plusMinutes(needTime))) {return;} 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;} if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) { for (VehicleWarnConfig item : vehicleWarnConfigList) {
...@@ -99,9 +109,12 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd ...@@ -99,9 +109,12 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
} }
private void doArriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){ private void doArriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull(); , VehicleWarnConfig vehicleWarnConfig){
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){ VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return; return;
} }
......
...@@ -37,5 +37,6 @@ public interface TruckTraceService { ...@@ -37,5 +37,6 @@ public interface TruckTraceService {
List<List<DriverTruckTraceVO>> splitTruckTrace(List<DriverTruckTraceVO> traceList); List<List<DriverTruckTraceVO>> splitTruckTrace(List<DriverTruckTraceVO> traceList);
void saveTruckTrace(String truckNo,Integer size,String gpsTime); 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 { ...@@ -20,6 +20,7 @@ public class VehicleWarnInfoSqlProvider {
SELECT("*"); SELECT("*");
FROM(TABLE); FROM(TABLE);
if (StringUtils.isNotBlank(param.getWarnName())) {WHERE("warn_name like CONCAT('%', #{param.warnName},'%')");} 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 (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");}
if (Objects.nonNull(param.getWarnType())) {WHERE("warn_type = #{param.warnType}");} if (Objects.nonNull(param.getWarnType())) {WHERE("warn_type = #{param.warnType}");}
if (Objects.nonNull(param.getWarnLevel())) {WHERE("warn_level = #{param.warnLevel}");} 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论