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

线路预警

上级 3208a1fc
......@@ -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
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());
}
}
......@@ -39,12 +39,22 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V
public boolean updateSuspendTime(VehicleWarnInfo item, Integer warnRang) {
if (Objects.equals(warnRang, VehicleWarnRangEnum.WarnRange.CHILD.getCode())) {
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()
.eq(VehicleWarnInfo::getWarnConfigId, item.getWarnConfigId())
......
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);
}
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
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;
}
}
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论