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

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

# Conflicts: # performance-api/src/main/java/com/clx/performance/param/pc/vehiclewarn/VehicleWarnUserConfigUpdateParam.java # performance-api/src/main/java/com/clx/performance/vo/pc/vehiclewarn/VehicleWarnUserVO.java # performance-web/src/main/java/com/clx/performance/config/ClxMessageConfig.java # performance-web/src/main/java/com/clx/performance/controller/pc/vehiclewarn/VehicleWarnUserController.java # performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # performance-web/src/main/java/com/clx/performance/dao/impl/vehiclewarn/VehicleWarnUserDaoImpl.java # performance-web/src/main/java/com/clx/performance/mapper/OrderChildMapper.java # performance-web/src/main/java/com/clx/performance/model/vehiclewarn/VehicleWarnUser.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
......@@ -29,6 +29,10 @@ public enum OrderGoodsStatusEnum {
public static Optional<Status> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getMsgByCode(Integer code) {
if (code == null) {return null;}
return getByCode(code).map(Status::getName).orElse(null);
}
}
......
......@@ -19,5 +19,7 @@ public class VehicleWarnUserConfigUpdateParam {
private Integer id;
@ApiModelProperty(value = "选中报警类型列表")
private List<VehicleWarnUserVO.WarnTypeItem> warnTypeList;
@ApiModelProperty(value = "选中线路报警类型列表")
private List<VehicleWarnUserVO.WarnTypeItem> lineWarnTypeList;
}
package com.clx.performance.vo.pc.linewarn;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class LineWarnTraceVO {
@ApiModelProperty(value = "货单编号", example = "10000")
private String orderGoodsNo;
@ApiModelProperty(value = "发货地址id", example = "1")
private Integer sendAddressId;
@ApiModelProperty(value = "发货地址", example = "北京")
private String sendAddress;
@ApiModelProperty(value = "收货地址id", example = "2")
private Integer receiveAddressId;
@ApiModelProperty(value = "收货地址", example = "山西")
private String receiveAddress;
@ApiModelProperty("发货地址经度")
private BigDecimal sendLongitude;
@ApiModelProperty("发货地址纬度")
private BigDecimal sendLatitude;
@ApiModelProperty("收货地址经度")
private BigDecimal receiveLongitude;
@ApiModelProperty("收货地址纬度")
private BigDecimal receiveLatitude;
@ApiModelProperty("货单状态")
private Integer orderGoodsStatus;
@ApiModelProperty("货单状态")
private String orderGoodsStatusMsg;
public String getOrderGoodsStatusMsg() {
return OrderGoodsStatusEnum.Status.getMsgByCode(orderGoodsStatus);
}
@ApiModelProperty("提取吨数")
private BigDecimal extractWeight;
@ApiModelProperty("装车吨数")
private BigDecimal loadWeight;
@ApiModelProperty("卸车吨数")
private BigDecimal unloadWeight;
@ApiModelProperty("车辆列表")
private List<LineWarnTruckTraceInfoVO> truckList;
}
package com.clx.performance.vo.pc.linewarn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Getter
@Setter
@NoArgsConstructor
public class LineWarnTruckTraceInfoVO {
@ApiModelProperty(value = "运单编号", example = "100000")
private String childNo;
@ApiModelProperty(value = "车牌号", example = "京A12345")
private String truckNo;
@ApiModelProperty(value = "司机用户编号", example = "100000")
private Long driverUserNo;
@ApiModelProperty(value = "司机姓名", example = "张三")
private String driverName;
@ApiModelProperty(value = "司机手机号", example = "13000000000")
private String driverMobile;
@ApiModelProperty(value = "车辆状态:1空车 2重车", example = "1")
private Integer truckStatus;
@ApiModelProperty(value = "运单状态", example = "1")
private Integer status;
@ApiModelProperty("经度")
private BigDecimal longitude;
@ApiModelProperty("纬度")
private BigDecimal latitude;
@ApiModelProperty(value = "装车时间", example = "")
private LocalDateTime loadTime;
@ApiModelProperty(value = "卸车时间", example = "")
private LocalDateTime unloadTime;
@ApiModelProperty(value = "完成时间", example = "")
private LocalDateTime finishTime;
}
\ No newline at end of file
package com.clx.performance.vo.pc.vehiclewarn;
import com.alibaba.fastjson.JSON;
import com.clx.performance.enums.linewarn.LineWarnConfigEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
......@@ -54,12 +55,31 @@ public class VehicleWarnUserVO {
return list;
}
@ApiModelProperty(value = "通知配置列表")
private List<WarnTypeItem> lineWarnTypeItemList;
@JsonIgnore
@ApiModelProperty(value = "预警配置", example = "", hidden = true)
private String warnTypeJson;
@JsonIgnore
@ApiModelProperty(value = "线路预警配置", example = "", hidden = true)
private String lineWarnTypeJson;
public List<WarnTypeItem> getLineWarnTypeItemList() {
List<Integer> warnTypeList = JSON.parseArray(lineWarnTypeJson, Integer.class);
List<WarnTypeItem> list = new ArrayList<>();
for (LineWarnConfigEnum.WarnType item : LineWarnConfigEnum.WarnType.values()) {
if (warnTypeList.contains(item.getCode())){
list.add(new WarnTypeItem(item.getCode(), item.getMsg(), 1));
}
else {
list.add(new WarnTypeItem(item.getCode(), item.getMsg(), 0));
}
}
return list;
}
@Getter
@Setter
......
......@@ -33,4 +33,7 @@ public class ClxMessageConfig {
private String vehicleWarnTemplateCode;
//车辆报警渠道id
private Integer vehicleWarnChannelId;
//线路报警短信模板
private String lineWarnTemplateCode;
}
package com.clx.performance.controller.pc.linewarn;
import com.clx.performance.service.linewarn.LineWarnTraceService;
import com.clx.performance.vo.pc.linewarn.LineWarnTraceVO;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@Validated
@Api(tags = "线路预警-轨迹信息")
@RequestMapping(value="/pc/lineWarnInfo")
public class LineWarnTraceController {
@Autowired
private LineWarnTraceService lineWarnTraceService;
@ApiOperation(value = "获取预警信息",notes = "<br>By:艾庆国")
@GetMapping("/getTraceInfo")
public Result<LineWarnTraceVO> getTraceInfo(@NotNull(message = "货单编号不能为空") @Validated String orderGoodsNo) {
return Result.ok(lineWarnTraceService.getTraceInfo(orderGoodsNo));
}
}
......@@ -49,7 +49,8 @@ public class VehicleWarnUserController {
@ApiOperation(value = "更新通知配置", notes = "<br>By:艾庆国")
@PostMapping("/updateConfig")
public Result<Void> updateConfig(@RequestBody @Validated VehicleWarnUserConfigUpdateParam param) {
if (param.getWarnTypeList() == null) {param.setWarnTypeList(new ArrayList<>());}
if (param.getLineWarnTypeList() == null) {param.setLineWarnTypeList(new ArrayList<>());}
vehicleWarnUserService.updateConfig(param);
return Result.ok();
}
......
......@@ -178,4 +178,9 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
MonthInComeAndOrderedVO statisticsTruckMonth(LocalDateTime startTime, LocalDateTime endTime, String truckNo);
List<OrderChild> listByChildNoList(List<String> childNoList);
List<OrderChild> listByOrderGoodsNoAndStatus(String orderGoodsNo, List<Integer> statusList);
BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo);
BigDecimal sumUnloadWeightByOrderGoodsNo(String orderGoodsNo);
}
......@@ -566,4 +566,22 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public List<OrderChild> listByChildNoList(List<String> childNoList) {
return list(lQrWrapper().in(OrderChild :: getChildNo,childNoList));
}
@Override
public List<OrderChild> listByOrderGoodsNoAndStatus(String orderGoodsNo, List<Integer> statusList) {
return list(lQrWrapper()
.eq(OrderChild :: getOrderGoodsNo,orderGoodsNo)
.in(OrderChild :: getStatus,statusList)
);
}
@Override
public BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.sumLoadWeightByOrderGoodsNo(orderGoodsNo);
}
@Override
public BigDecimal sumUnloadWeightByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.sumUnloadWeightByOrderGoodsNo(orderGoodsNo);
}
}
......@@ -38,6 +38,7 @@ public class VehicleWarnUserDaoImpl extends BaseDaoImpl<VehicleWarnUserMapper, V
return update(lUdWrapper()
.eq(VehicleWarnUser::getId, item.getId())
.set(VehicleWarnUser::getWarnTypeJson, item.getWarnTypeJson())
.set(VehicleWarnUser::getLineWarnTypeJson, item.getLineWarnTypeJson())
);
}
......
......@@ -120,4 +120,10 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@SelectProvider(type = OrderChildSqlProvider.class, method = "statisticsTruckMonth")
MonthInComeAndOrderedVO statisticsTruckMonth(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime, @Param("truckNo")String truckNo);
@Select("select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(50,60,70,80,90,100)")
BigDecimal sumLoadWeightByOrderGoodsNo(String orderGoodsNo);
@Select("select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(80,90,100)")
BigDecimal sumUnloadWeightByOrderGoodsNo(String orderGoodsNo);
}
\ No newline at end of file
......@@ -22,7 +22,7 @@ import java.time.LocalDateTime;
@Setter
@NoArgsConstructor
@TableName(autoResultMap = true)
public class VehicleWarnUser implements HasKey<Integer> {
public class VehicleWarnUser implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id; //id
......
package com.clx.performance.service.impl.linewarn;
import cn.hutool.json.JSONObject;
import com.alibaba.fastjson.JSON;
import com.clx.message.feign.ClxMessageOpenapiFeign;
import com.clx.message.req.message.AliSmsMessageReq;
import com.clx.message.req.message.ClinkMessageReq;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.config.ClxMessageConfig;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.linewarn.LineWarnInfoDao;
import com.clx.performance.dao.linewarn.LineWarnOrderGoodsDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.linewarn.LineWarnInfo;
import com.clx.performance.model.linewarn.LineWarnOrderGoods;
import com.clx.performance.model.vehiclewarn.VehicleWarnUser;
import com.clx.performance.param.mq.linewarn.LineWarnLineWarnMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnNoticeMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnOrderChildWarnMqParam;
......@@ -23,6 +33,8 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
......@@ -32,6 +44,8 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
private static final int DEFAULT_LOAD_UNLOAD_TIME = 60;
private static final int DEFAULT_LOAD_UNLOAD_DAY = 7;
@Autowired
private ClxMessageConfig clxMessageConfig;
@Autowired
private OrderGoodsDao orderGoodsDao;
@Autowired
......@@ -58,7 +72,12 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
private LineWarnLineWarnService lineWarnLineWarnService;
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private LineWarnInfoDao lineWarnInfoDao;
@Autowired
private VehicleWarnUserDao vehicleWarnUserDao;
@Autowired
private ClxMessageOpenapiFeign clxMessageOpenapiFeign;
@Override
......@@ -99,7 +118,7 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
Integer loadTimeAvg = orderChildDao.loadTimeAvg(orderGoods.getSendAddressId(), orderGoods.getReceiveAddressId(),
orderGoods.getSendSystemAddressId(), orderGoods.getReceiveSystemAddressId(),
LocalDateTimeUtils.formatTime(LocalDateTime.now().minusDays(DEFAULT_LOAD_UNLOAD_DAY)));
Integer unloadTimeAvg = orderChildDao.loadTimeAvg(orderGoods.getSendAddressId(), orderGoods.getReceiveAddressId(),
Integer unloadTimeAvg = orderChildDao.unloadTimeAvg(orderGoods.getSendAddressId(), orderGoods.getReceiveAddressId(),
orderGoods.getSendSystemAddressId(), orderGoods.getReceiveSystemAddressId(),
LocalDateTimeUtils.formatTime(LocalDateTime.now().minusDays(DEFAULT_LOAD_UNLOAD_DAY)));
lineWarnCommonInfo.setLoadTimeAvg(loadTimeAvg!=null? loadTimeAvg:DEFAULT_LOAD_UNLOAD_TIME);
......@@ -155,6 +174,85 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
@Override
public void notice(LineWarnNoticeMqParam mq) {
LineWarnInfo vehicleWarnInfo = lineWarnInfoDao
.findById(mq.getInfoId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
List<String> mobileList = new ArrayList<>();
// 过滤需要通知的人员
List<VehicleWarnUser> list = vehicleWarnUserDao.listAllEnable();
for (VehicleWarnUser item : list) {
List<Integer> warnTypeList = JSON.parseArray(item.getLineWarnTypeJson(),Integer.class);
if (warnTypeList.contains(vehicleWarnInfo.getWarnType())){
mobileList.add(item.getMobile());
}
}
if (mobileList.isEmpty()) {return;}
log.info("线路预警通知, id:{}, mobileList:{}", vehicleWarnInfo.getId(), JSON.toJSONString(mobileList));
if (vehicleWarnInfo.getWarnLevel() == 2){ //2级短信
sendSms(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getOrderGoodsNo());
}
else if (vehicleWarnInfo.getWarnLevel() == 3) { //3级外呼+短信
sendSms(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getOrderGoodsNo());
sendClink(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getOrderGoodsNo());
}
}
/**
* 发送预警短信
*/
@Override
public void sendSms(List<String> mobileList, String warnName, String orderGoodsNo) {
//触发${warnName}预警;货单${orderGoodsNo};请尽快核实情况。
AliSmsMessageReq req = new AliSmsMessageReq();
req.setTemplateCode(clxMessageConfig.getLineWarnTemplateCode());
JSONObject jsonObject = new JSONObject();
jsonObject.set("warnName", warnName);
jsonObject.set("orderGoodsNo", orderGoodsNo);
req.setChannelId(clxMessageConfig.getChannelId());
req.setAppId(clxMessageConfig.getAppId().toString());
req.setContent(jsonObject.toString());
req.setExpire(300L);
for (String mobile : mobileList) {
req.setMobile(mobile);
clxMessageOpenapiFeign.sendAliSms(req);
}
}
/**
* 发送预警外呼
*/
@Override
public void sendClink(List<String> mobileList, String warnName, String orderGoodsNo) {
//触发${warnName}预警;货单${orderGoodsNo};请尽快核实情况。
ClinkMessageReq req = new ClinkMessageReq();
StringBuilder sb = new StringBuilder();
sb.append("触发");
sb.append(warnName);
sb.append("预警;货单");
sb.append(orderGoodsNo);
sb.append(";请尽快核实情况");
String content = sb.toString();
req.setChannelId(clxMessageConfig.getVehicleWarnChannelId());
req.setAppId(clxMessageConfig.getAppId().toString());
req.setContent(content);
for (String mobile : mobileList) {
req.setMobile(mobile);
clxMessageOpenapiFeign.sendClink(req);
}
}
......
package com.clx.performance.service.impl.linewarn;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.DriverTruckEnum;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.linewarn.LineWarnTraceService;
import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.struct.OrderChildStruct;
import com.clx.performance.struct.OrderGoodsStruct;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.linewarn.LineWarnTraceVO;
import com.clx.performance.vo.pc.linewarn.LineWarnTruckTraceInfoVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
@Slf4j
@Service
public class LineWarnTraceServiceImpl implements LineWarnTraceService {
// 最近位置时间
private static final Integer LAST_POSITION_TIME = 60;
@Autowired
private OrderGoodsDao orderGoodsDao;
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private OrderGoodsStruct orderGoodsStruct;
@Autowired
private OrderChildStruct orderChildStruct;
@Autowired
private TruckTraceService truckTraceService;
@Override
public LineWarnTraceVO getTraceInfo(String orderGoodsNo) {
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderGoodsNo).orElseThrow(ResultEnum.DATA_NOT_FIND);
LineWarnTraceVO result = orderGoodsStruct.convertLineWarnTraceVO(orderGoods);
// 装卸吨数
BigDecimal loadWeight = orderChildDao.sumLoadWeightByOrderGoodsNo(orderGoodsNo);
BigDecimal unloadWeight = orderChildDao.sumUnloadWeightByOrderGoodsNo(orderGoodsNo);
result.setLoadWeight(loadWeight==null? BigDecimal.ZERO : loadWeight);
result.setUnloadWeight(unloadWeight==null? BigDecimal.ZERO : unloadWeight);
// 车辆信息
List<OrderChild> orderChildList = orderChildDao.listByOrderGoodsNoAndStatus(orderGoods.getOrderGoodsNo(),
Arrays.asList(
OrderChildEnum.Status.CREATED.getCode(),
OrderChildEnum.Status.PAY.getCode(),
OrderChildEnum.Status.GO_TO_SEND.getCode(),
OrderChildEnum.Status.ARRIVE_SEND.getCode(),
OrderChildEnum.Status.LOAD.getCode(),
OrderChildEnum.Status.GO_TO_RECEIVE.getCode(),
OrderChildEnum.Status.ARRIVE_RECEIVE.getCode()
)
);
List<LineWarnTruckTraceInfoVO> truckList = orderChildStruct.convertLineWarnTruckTraceInfoVO(orderChildList);
LocalDateTime now = LocalDateTime.now();
// 查询最近位置
for (LineWarnTruckTraceInfoVO item : truckList) {
BigDecimal[] currentPosition = truckTraceService.getCurrentPosition(item.getTruckNo(),
item.getDriverUserNo(), LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(LAST_POSITION_TIME)));
if (currentPosition != null){
item.setLongitude(currentPosition[0]);
item.setLatitude(currentPosition[1]);
}
item.setTruckStatus(DriverTruckEnum.TraceTruckStatus.HEAVY.getCode());
if (item.getFinishTime() != null){
if (item.getFinishTime().isBefore(now)){
item.setTruckStatus(DriverTruckEnum.TraceTruckStatus.EMPTY.getCode());}
}
else if (item.getUnloadTime() != null){
if (item.getUnloadTime().isBefore(now)){
item.setTruckStatus(DriverTruckEnum.TraceTruckStatus.EMPTY.getCode());}
}
}
result.setTruckList(truckList);
return result;
}
}
......@@ -32,6 +32,8 @@ import java.util.List;
public class TruckTraceServiceImpl implements TruckTraceService {
// 停留速度
private static final Integer PARK_SPEED = 5;
// 最近位置时间
private static final Integer LAST_POSITION_TIME = 5;
@Autowired
private TruckTraceESPlusMapper truckTraceESPlusMapper;
......@@ -261,7 +263,12 @@ public class TruckTraceServiceImpl implements TruckTraceService {
@Override
public BigDecimal[] getCurrentPosition(String truckNo, Long userNo) {
String beginTime = LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(5));
String beginTime = LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(LAST_POSITION_TIME));
return getCurrentPosition(truckNo, userNo, beginTime);
}
@Override
public BigDecimal[] getCurrentPosition(String truckNo, Long userNo, String beginTime) {
String endTime = LocalDateTimeUtils.formatTime();
// 车辆
......
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.linewarn.LineWarnConfigEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnUserEnum;
import com.clx.performance.model.vehiclewarn.VehicleWarnUser;
......@@ -47,11 +48,15 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
}
List<Integer> warnTypeList = Arrays.stream(VehicleWarnConfigEnum.WarnType.values())
.map(item -> item.getCode()).collect(Collectors.toList());
List<Integer> lineWarnTypeList = Arrays.stream(LineWarnConfigEnum.WarnType.values())
.map(item -> item.getCode()).collect(Collectors.toList());
VehicleWarnUser vehicleWarnUser = new VehicleWarnUser();
vehicleWarnUser.setName(param.getName());
vehicleWarnUser.setMobile(param.getMobile());
vehicleWarnUser.setWarnTypeJson(JSON.toJSONString(warnTypeList));
vehicleWarnUser.setLineWarnTypeJson(JSON.toJSONString(new ArrayList<>()));
vehicleWarnUser.setLineWarnTypeJson(JSON.toJSONString(lineWarnTypeList));
vehicleWarnUser.setCreateBy(loginUserInfo.getUserName());
vehicleWarnUserDao.saveEntity(vehicleWarnUser);
......@@ -61,7 +66,8 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
@Transactional(rollbackFor = Exception.class)
@Override
public void updateUser(VehicleWarnUserUpdateParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (!Objects.equals(vehicleWarnUser.getMobile(), param.getMobile())){
Optional<VehicleWarnUser> optional = vehicleWarnUserDao.findByMobile(param.getMobile());
if (optional.isPresent()){
......@@ -75,9 +81,12 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
@Transactional(rollbackFor = Exception.class)
@Override
public void updateConfig(VehicleWarnUserConfigUpdateParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
List<Integer> warnTypeList = param.getWarnTypeList().stream().filter(item -> Objects.equals(item.getEnable(), 1)).map(item->item.getWarnType()).collect(Collectors.toList());
List<Integer> warnTypeList = param.getWarnTypeList().stream()
.filter(item -> Objects.equals(item.getEnable(), 1))
.map(item->item.getWarnType()).collect(Collectors.toList());
vehicleWarnUser.setWarnTypeJson(JSON.toJSONString(warnTypeList));
vehicleWarnUserDao.updateWarnType(vehicleWarnUser);
......@@ -86,7 +95,8 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteUser(VehicleWarnUserDeleteParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnUser.setDeleteStatus(VehicleWarnUserEnum.DeleteStatus.YES.getCode());
vehicleWarnUserDao.deleteUser(vehicleWarnUser);
}
......
......@@ -5,6 +5,8 @@ import com.clx.performance.param.mq.linewarn.LineWarnNoticeMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnOrderChildWarnMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnOrderGoodsAddMqParam;
import java.util.List;
public interface LineWarnMqHandlerService {
void orderGoodsAdd(LineWarnOrderGoodsAddMqParam mq);
......@@ -13,5 +15,9 @@ public interface LineWarnMqHandlerService {
void notice(LineWarnNoticeMqParam mq);
void sendSms(List<String> mobileList, String warnName, String orderGoodsNo);
void sendClink(List<String> mobileList, String warnName, String orderGoodsNo);
void orderChildWarn(LineWarnOrderChildWarnMqParam mq);
}
package com.clx.performance.service.linewarn;
import com.clx.performance.vo.pc.linewarn.LineWarnTraceVO;
public interface LineWarnTraceService {
LineWarnTraceVO getTraceInfo(String orderGoodsNo);
}
......@@ -9,6 +9,7 @@ import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.owner.OwnerOrderChildVO;
import com.clx.performance.vo.pc.CarrierOrderChildDetailVO;
import com.clx.performance.vo.pc.OrderChildPCVO;
import com.clx.performance.vo.pc.linewarn.LineWarnTruckTraceInfoVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
......@@ -34,4 +35,7 @@ public interface OrderChildStruct {
List<OwnerOrderChildVO> convertOwnerOrderChildVOList(List<OrderChild> list);
List<LineWarnTruckTraceInfoVO> convertLineWarnTruckTraceInfoVO(List<OrderChild> list);
}
......@@ -3,6 +3,7 @@ package com.clx.performance.struct;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.vo.feign.OrderGoodsFeignVO;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.clx.performance.vo.pc.linewarn.LineWarnTraceVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
......@@ -16,4 +17,7 @@ public interface OrderGoodsStruct {
OrderGoodsVO convert(OrderGoods orderGoods);
List<OrderGoodsFeignVO> convertList(List<OrderGoods> orderGoods);
LineWarnTraceVO convertLineWarnTraceVO(OrderGoods orderGoods);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论