feat: 物流轨迹
parent
668b748475
commit
e55eecf5ba
|
|
@ -245,6 +245,9 @@ public class StoreOrderInfoVO {
|
||||||
@ApiModelProperty(value = "订单明细")
|
@ApiModelProperty(value = "订单明细")
|
||||||
private List<Detail> orderDetails;
|
private List<Detail> orderDetails;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "轨迹信息")
|
||||||
|
private List<Track> expressTracks;
|
||||||
|
|
||||||
|
|
||||||
@ApiModel
|
@ApiModel
|
||||||
@Data
|
@Data
|
||||||
|
|
@ -409,4 +412,38 @@ public class StoreOrderInfoVO {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiModel
|
||||||
|
@Data
|
||||||
|
public static class Track {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "物流运单号(快递单号)")
|
||||||
|
private String expressWaybillNo;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "物流ID")
|
||||||
|
private Long expressId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "物流名称")
|
||||||
|
private String expressName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "记录")
|
||||||
|
private List<Record> records;
|
||||||
|
|
||||||
|
@ApiModel
|
||||||
|
@Data
|
||||||
|
public static class Record {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "节点事件")
|
||||||
|
private String action;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "描述")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
private Date createTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代发订单物流轨迹
|
* 物流轨迹
|
||||||
*
|
*
|
||||||
* @author liangyq
|
* @author liangyq
|
||||||
* @date 2025-04-01 11:57:52.599
|
* @date 2025-04-01 11:57:52.599
|
||||||
|
|
@ -14,15 +14,15 @@ import lombok.ToString;
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
public class StoreOrderExpressTrack extends SimpleEntity {
|
public class ExpressTrackRecord extends SimpleEntity {
|
||||||
/**
|
/**
|
||||||
* 订单ID
|
* 物流运单号
|
||||||
*/
|
*/
|
||||||
private Long storeOrderId;
|
private String expressWaybillNo;
|
||||||
/**
|
/**
|
||||||
* 订单明细ID
|
* 物流ID
|
||||||
*/
|
*/
|
||||||
private Long storeOrderIdDetailId;
|
private Long expressId;
|
||||||
/**
|
/**
|
||||||
* 排序
|
* 排序
|
||||||
*/
|
*/
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.ruoyi.xkt.dto.express;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liangyq
|
||||||
|
* @date 2025-05-08 10:44
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ExpressNameDTO {
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 物流名称
|
||||||
|
*/
|
||||||
|
private String expressName;
|
||||||
|
}
|
||||||
|
|
@ -2,7 +2,6 @@ package com.ruoyi.xkt.dto.express;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -22,27 +21,11 @@ public class ExpressTrackDTO {
|
||||||
*/
|
*/
|
||||||
private Long expressId;
|
private Long expressId;
|
||||||
/**
|
/**
|
||||||
* 详情
|
* 物流名称
|
||||||
*/
|
*/
|
||||||
private List<Item> items;
|
private String expressName;
|
||||||
|
/**
|
||||||
@Data
|
* 记录
|
||||||
public static class Item {
|
*/
|
||||||
/**
|
private List<ExpressTrackRecordDTO> records;
|
||||||
* 节点事件
|
|
||||||
*/
|
|
||||||
private String action;
|
|
||||||
/**
|
|
||||||
* 描述
|
|
||||||
*/
|
|
||||||
private String description;
|
|
||||||
/**
|
|
||||||
* 备注
|
|
||||||
*/
|
|
||||||
private String remark;
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private Date createTime;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
package com.ruoyi.xkt.dto.express;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物流轨迹
|
||||||
|
*
|
||||||
|
* @author liangyq
|
||||||
|
* @date 2025-04-01 11:57:52.599
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ExpressTrackRecordAddDTO {
|
||||||
|
/**
|
||||||
|
* 物流ID
|
||||||
|
*/
|
||||||
|
private Long expressId;
|
||||||
|
/**
|
||||||
|
* 物流运单号
|
||||||
|
*/
|
||||||
|
private String expressWaybillNo;
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
private Integer sort;
|
||||||
|
/**
|
||||||
|
* 节点事件
|
||||||
|
*/
|
||||||
|
private String action;
|
||||||
|
/**
|
||||||
|
* 描述
|
||||||
|
*/
|
||||||
|
private String description;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
}
|
||||||
|
|
@ -1,29 +1,29 @@
|
||||||
package com.ruoyi.xkt.dto.order;
|
package com.ruoyi.xkt.dto.express;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代发订单物流轨迹
|
* 物流轨迹
|
||||||
*
|
*
|
||||||
* @author liangyq
|
* @author liangyq
|
||||||
* @date 2025-04-01 11:57:52.599
|
* @date 2025-04-01 11:57:52.599
|
||||||
**/
|
**/
|
||||||
@Data
|
@Data
|
||||||
public class StoreOrderExpressTrackDTO {
|
public class ExpressTrackRecordDTO {
|
||||||
/**
|
/**
|
||||||
* 订单物流明细ID
|
* 订单物流明细ID
|
||||||
*/
|
*/
|
||||||
private Long id;
|
private Long id;
|
||||||
/**
|
/**
|
||||||
* 订单ID
|
* 物流运单号
|
||||||
*/
|
*/
|
||||||
private Long storeOrderId;
|
private String expressWaybillNo;
|
||||||
/**
|
/**
|
||||||
* 订单明细ID
|
* 物流ID
|
||||||
*/
|
*/
|
||||||
private Long storeOrderIdDetailId;
|
private Long expressId;
|
||||||
/**
|
/**
|
||||||
* 排序
|
* 排序
|
||||||
*/
|
*/
|
||||||
|
|
@ -2,12 +2,18 @@ package com.ruoyi.xkt.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.ruoyi.xkt.domain.Express;
|
import com.ruoyi.xkt.domain.Express;
|
||||||
|
import com.ruoyi.xkt.dto.express.ExpressNameDTO;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author liangyq
|
* @author liangyq
|
||||||
* @date 2025-04-02 12:48
|
* @date 2025-04-02 12:48
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface ExpressMapper extends BaseMapper<Express> {
|
public interface ExpressMapper extends BaseMapper<Express> {
|
||||||
|
|
||||||
|
List<ExpressNameDTO> listAllExpressName();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
package com.ruoyi.xkt.mapper;
|
package com.ruoyi.xkt.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.ruoyi.xkt.domain.Express;
|
import com.ruoyi.xkt.domain.ExpressTrackRecord;
|
||||||
import com.ruoyi.xkt.domain.StoreOrderExpressTrack;
|
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -10,5 +9,5 @@ import org.springframework.stereotype.Repository;
|
||||||
* @date 2025-04-02 12:48
|
* @date 2025-04-02 12:48
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface StoreOrderExpressTrackMapper extends BaseMapper<StoreOrderExpressTrack> {
|
public interface ExpressTrackRecordMapper extends BaseMapper<ExpressTrackRecord> {
|
||||||
}
|
}
|
||||||
|
|
@ -3,10 +3,7 @@ package com.ruoyi.xkt.service;
|
||||||
import com.ruoyi.xkt.domain.Express;
|
import com.ruoyi.xkt.domain.Express;
|
||||||
import com.ruoyi.xkt.domain.ExpressFeeConfig;
|
import com.ruoyi.xkt.domain.ExpressFeeConfig;
|
||||||
import com.ruoyi.xkt.domain.ExpressRegion;
|
import com.ruoyi.xkt.domain.ExpressRegion;
|
||||||
import com.ruoyi.xkt.dto.express.ExpressContactDTO;
|
import com.ruoyi.xkt.dto.express.*;
|
||||||
import com.ruoyi.xkt.dto.express.ExpressRegionDTO;
|
|
||||||
import com.ruoyi.xkt.dto.express.ExpressRegionTreeNodeDTO;
|
|
||||||
import com.ruoyi.xkt.dto.express.ExpressStructAddressDTO;
|
|
||||||
import com.ruoyi.xkt.manager.ExpressManager;
|
import com.ruoyi.xkt.manager.ExpressManager;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -98,5 +95,26 @@ public interface IExpressService {
|
||||||
*/
|
*/
|
||||||
ExpressManager getExpressManager(Long expressId);
|
ExpressManager getExpressManager(Long expressId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加轨迹记录
|
||||||
|
*
|
||||||
|
* @param addDTO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Long addTrackRecord(ExpressTrackRecordAddDTO addDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有物流名称
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<Long, String> getAllExpressNameMap();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取轨迹记录
|
||||||
|
*
|
||||||
|
* @param expressWaybillNos
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ExpressTrackRecordDTO> listTrackRecord(Collection<String> expressWaybillNos);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,17 +8,12 @@ import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
|
import com.ruoyi.common.core.domain.SimpleEntity;
|
||||||
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import com.ruoyi.common.utils.bean.BeanValidators;
|
import com.ruoyi.common.utils.bean.BeanValidators;
|
||||||
import com.ruoyi.xkt.domain.Express;
|
import com.ruoyi.xkt.domain.*;
|
||||||
import com.ruoyi.xkt.domain.ExpressFeeConfig;
|
import com.ruoyi.xkt.dto.express.*;
|
||||||
import com.ruoyi.xkt.domain.ExpressRegion;
|
|
||||||
import com.ruoyi.xkt.domain.Store;
|
|
||||||
import com.ruoyi.xkt.dto.express.ExpressContactDTO;
|
|
||||||
import com.ruoyi.xkt.dto.express.ExpressRegionDTO;
|
|
||||||
import com.ruoyi.xkt.dto.express.ExpressRegionTreeNodeDTO;
|
|
||||||
import com.ruoyi.xkt.dto.express.ExpressStructAddressDTO;
|
|
||||||
import com.ruoyi.xkt.manager.ExpressManager;
|
import com.ruoyi.xkt.manager.ExpressManager;
|
||||||
import com.ruoyi.xkt.manager.impl.ZtoExpressManagerImpl;
|
import com.ruoyi.xkt.manager.impl.ZtoExpressManagerImpl;
|
||||||
import com.ruoyi.xkt.mapper.*;
|
import com.ruoyi.xkt.mapper.*;
|
||||||
|
|
@ -26,6 +21,7 @@ import com.ruoyi.xkt.service.IExpressService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -53,7 +49,7 @@ public class ExpressServiceImpl implements IExpressService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ExpressFeeConfigMapper expressFeeConfigMapper;
|
private ExpressFeeConfigMapper expressFeeConfigMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private StoreOrderExpressTrackMapper storeOrderExpressTrackMapper;
|
private ExpressTrackRecordMapper expressTrackRecordMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ExpressRegionMapper expressRegionMapper;
|
private ExpressRegionMapper expressRegionMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -228,4 +224,42 @@ public class ExpressServiceImpl implements IExpressService {
|
||||||
}
|
}
|
||||||
throw new ServiceException("未知物流渠道" + expressId);
|
throw new ServiceException("未知物流渠道" + expressId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public Long addTrackRecord(ExpressTrackRecordAddDTO addDTO) {
|
||||||
|
Assert.notNull(addDTO);
|
||||||
|
Assert.notEmpty(addDTO.getExpressWaybillNo());
|
||||||
|
ExpressTrackRecord expressTrackRecord = new ExpressTrackRecord();
|
||||||
|
expressTrackRecord.setExpressId(addDTO.getExpressId());
|
||||||
|
expressTrackRecord.setExpressWaybillNo(addDTO.getExpressWaybillNo());
|
||||||
|
expressTrackRecord.setSort(addDTO.getSort());
|
||||||
|
expressTrackRecord.setAction(addDTO.getAction());
|
||||||
|
expressTrackRecord.setDescription(addDTO.getDescription());
|
||||||
|
expressTrackRecord.setRemark(addDTO.getRemark());
|
||||||
|
expressTrackRecord.setDelFlag(Constants.UNDELETED);
|
||||||
|
expressTrackRecordMapper.insert(expressTrackRecord);
|
||||||
|
return expressTrackRecord.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Long, String> getAllExpressNameMap() {
|
||||||
|
List<ExpressNameDTO> expressNames = expressMapper.listAllExpressName();
|
||||||
|
return expressNames.stream().collect(Collectors.toMap(ExpressNameDTO::getId,
|
||||||
|
ExpressNameDTO::getExpressName));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ExpressTrackRecordDTO> listTrackRecord(Collection<String> expressWaybillNos) {
|
||||||
|
if (CollUtil.isEmpty(expressWaybillNos)) {
|
||||||
|
return ListUtil.empty();
|
||||||
|
}
|
||||||
|
List<ExpressTrackRecord> expressTrackRecords = expressTrackRecordMapper.selectList(
|
||||||
|
Wrappers.lambdaQuery(ExpressTrackRecord.class)
|
||||||
|
.in(ExpressTrackRecord::getExpressWaybillNo, expressWaybillNos)
|
||||||
|
.eq(SimpleEntity::getDelFlag, Constants.UNDELETED)
|
||||||
|
// .orderByAsc(SimpleEntity::getCreateTime)
|
||||||
|
);
|
||||||
|
return BeanUtil.copyToList(expressTrackRecords, ExpressTrackRecordDTO.class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,6 @@ public class StoreOrderServiceImpl implements IStoreOrderService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private StoreOrderDetailMapper storeOrderDetailMapper;
|
private StoreOrderDetailMapper storeOrderDetailMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private StoreOrderExpressTrackMapper storeOrderExpressTrackMapper;
|
|
||||||
@Autowired
|
|
||||||
private StoreMapper storeMapper;
|
private StoreMapper storeMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private StoreProductMapper storeProductMapper;
|
private StoreProductMapper storeProductMapper;
|
||||||
|
|
@ -365,8 +363,26 @@ public class StoreOrderServiceImpl implements IStoreOrderService {
|
||||||
orderInfo.setBrandName(store.getBrandName());
|
orderInfo.setBrandName(store.getBrandName());
|
||||||
}
|
}
|
||||||
//物流信息
|
//物流信息
|
||||||
Express express = expressService.getById(order.getExpressId());
|
Map<Long, String> expressNameMap = expressService.getAllExpressNameMap();
|
||||||
orderInfo.setExpressName(Optional.ofNullable(express).map(Express::getExpressName).orElse(null));
|
orderInfo.setExpressName(expressNameMap.get(order.getExpressId()));
|
||||||
|
Set<String> expressWaybillNos = detailInfos.stream()
|
||||||
|
.filter(o -> StrUtil.isNotEmpty(o.getExpressWaybillNo()))
|
||||||
|
.map(StoreOrderDetailDTO::getExpressWaybillNo)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
Map<String, List<ExpressTrackRecordDTO>> trackRecordGroupMap = expressService.listTrackRecord(expressWaybillNos)
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.groupingBy(ExpressTrackRecordDTO::getExpressWaybillNo));
|
||||||
|
List<ExpressTrackDTO> expressTracks = new ArrayList<>(trackRecordGroupMap.size());
|
||||||
|
for (Map.Entry<String, List<ExpressTrackRecordDTO>> entry : trackRecordGroupMap.entrySet()) {
|
||||||
|
ExpressTrackDTO expressTrackDTO = new ExpressTrackDTO();
|
||||||
|
Long expressId = CollUtil.getFirst(entry.getValue()).getExpressId();
|
||||||
|
expressTrackDTO.setExpressId(expressId);
|
||||||
|
expressTrackDTO.setExpressName(expressNameMap.get(expressId));
|
||||||
|
expressTrackDTO.setExpressWaybillNo(entry.getKey());
|
||||||
|
expressTrackDTO.setRecords(entry.getValue());
|
||||||
|
expressTracks.add(expressTrackDTO);
|
||||||
|
}
|
||||||
|
orderInfo.setExpressTracks(expressTracks);
|
||||||
Map<String, ExpressRegionDTO> regionMap = expressService.getRegionMapCache();
|
Map<String, ExpressRegionDTO> regionMap = expressService.getRegionMapCache();
|
||||||
orderInfo.setDestinationProvinceName(Optional.ofNullable(regionMap.get(orderInfo.getDestinationProvinceCode()))
|
orderInfo.setDestinationProvinceName(Optional.ofNullable(regionMap.get(orderInfo.getDestinationProvinceCode()))
|
||||||
.map(ExpressRegionDTO::getParentRegionName).orElse(null));
|
.map(ExpressRegionDTO::getParentRegionName).orElse(null));
|
||||||
|
|
@ -1226,16 +1242,16 @@ public class StoreOrderServiceImpl implements IStoreOrderService {
|
||||||
throw new ServiceException(Constants.VERSION_LOCK_ERROR_COMMON_MSG);
|
throw new ServiceException(Constants.VERSION_LOCK_ERROR_COMMON_MSG);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
StoreOrderExpressTrack storeOrderExpressTrack = new StoreOrderExpressTrack();
|
|
||||||
storeOrderExpressTrack.setStoreOrderId(storeOrderDetail.getStoreOrderId());
|
|
||||||
storeOrderExpressTrack.setStoreOrderIdDetailId(storeOrderDetail.getId());
|
|
||||||
storeOrderExpressTrack.setSort(0);
|
|
||||||
storeOrderExpressTrack.setAction(trackAddDTO.getAction());
|
|
||||||
storeOrderExpressTrack.setDescription(trackAddDTO.getDescription());
|
|
||||||
storeOrderExpressTrack.setRemark(trackAddDTO.getRemark());
|
|
||||||
storeOrderExpressTrack.setDelFlag(Constants.UNDELETED);
|
|
||||||
storeOrderExpressTrackMapper.insert(storeOrderExpressTrack);
|
|
||||||
}
|
}
|
||||||
|
ExpressTrackRecordAddDTO expressTrackRecordAddDTO = ExpressTrackRecordAddDTO.builder()
|
||||||
|
.expressId(trackAddDTO.getExpressId())
|
||||||
|
.expressWaybillNo(trackAddDTO.getExpressWaybillNo())
|
||||||
|
.sort(0)
|
||||||
|
.action(trackAddDTO.getAction())
|
||||||
|
.description(trackAddDTO.getDescription())
|
||||||
|
.remark(trackAddDTO.getRemark())
|
||||||
|
.build();
|
||||||
|
expressService.addTrackRecord(expressTrackRecordAddDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,11 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.ruoyi.xkt.mapper.ExpressMapper">
|
<mapper namespace="com.ruoyi.xkt.mapper.ExpressMapper">
|
||||||
|
|
||||||
|
<select id="listAllExpressName" resultType="com.ruoyi.xkt.dto.express.ExpressNameDTO">
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
express_name
|
||||||
|
FROM
|
||||||
|
express
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.ruoyi.xkt.mapper.StoreOrderExpressTrackMapper">
|
<mapper namespace="com.ruoyi.xkt.mapper.ExpressTrackRecordMapper">
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue