提交修改

This commit is contained in:
quyixiao 2025-10-23 09:38:43 +08:00
parent daa1c45188
commit 72435fbaf3
9 changed files with 200 additions and 33 deletions

View File

@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/**
*包裹表
* @author quyixiao
* @since 2025-10-16
* @since 2025-10-23
*/
@Data
@ -32,10 +32,15 @@ private static final long serialVersionUID = 1L;
public final static String shipping_from = CLASS_NAME + "shipping_from"; // 发货地址
public final static String shipping_to = CLASS_NAME + "shipping_to"; // 收货地址
public final static String shipping_amount = CLASS_NAME + "shipping_amount"; // 运费
public final static String ischeck_ = CLASS_NAME + "ischeck"; // 是否签收标记0未签收1已签收请忽略明细状态请参考state字段
public final static String ischeck_ = CLASS_NAME + "ischeck"; // 是否签收标记0未签收1已签收2 已经发送妥投消息3 已妥投请忽略明细状态请参考state字段
public final static String com_ = CLASS_NAME + "com"; // 快递公司编码,一律用小写字母
public final static String status_ = CLASS_NAME + "status"; // 通讯状态请忽略
public final static String state_ = CLASS_NAME + "state"; // 快递单当前状态默认为0在途1揽收2疑难3签收4退签5派件8清关14拒签等10个基础物流状态如需要返回高级物流状态请参考 resultv2 传值
public final static String gmt_sign_receipt = CLASS_NAME + "gmt_sign_receipt"; // 签收日期
public final static String gmt_shipping = CLASS_NAME + "gmt_shipping"; // 发货日期
public final static String gmt_send_mq_delivered = CLASS_NAME + "gmt_send_mq_delivered"; // 发送消息mq,确认妥投
public final static String gmt_delivered = CLASS_NAME + "gmt_delivered"; // 已经妥投
public final static String delivered_by = CLASS_NAME + "delivered_by"; // system:系统user:用户 admin 后台确认
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ -59,7 +64,7 @@ private static final long serialVersionUID = 1L;
private String shippingTo;
//运费
private BigDecimal shippingAmount;
// 是否签收标记0未签收1已签收请忽略明细状态请参考state字段
//是否签收标记0未签收1已签收2 已经发送妥投消息3 已妥投请忽略明细状态请参考state字段
private String ischeck;
//快递公司编码,一律用小写字母
private String com;
@ -67,6 +72,16 @@ private static final long serialVersionUID = 1L;
private String status;
//快递单当前状态默认为0在途1揽收2疑难3签收4退签5派件8清关14拒签等10个基础物流状态如需要返回高级物流状态请参考 resultv2 传值
private String state;
//签收日期
private Date gmtSignReceipt;
//发货日期
private Date gmtShipping;
//发送消息mq,确认妥投
private Date gmtSendMqDelivered;
//已经妥投
private Date gmtDelivered;
//system:系统user:用户 admin 后台确认
private String deliveredBy;
/**
*
* @return
@ -233,14 +248,14 @@ private static final long serialVersionUID = 1L;
}
/**
* 是否签收标记0未签收1已签收请忽略明细状态请参考state字段
* 是否签收标记0未签收1已签收2 已经发送妥投消息3 已妥投请忽略明细状态请参考state字段
* @return
*/
public String getIscheck() {
return ischeck;
}
/**
* 是否签收标记0未签收1已签收请忽略明细状态请参考state字段
* 是否签收标记0未签收1已签收2 已经发送妥投消息3 已妥投请忽略明细状态请参考state字段
* @param ischeck
*/
public void setIscheck(String ischeck) {
@ -292,6 +307,81 @@ private static final long serialVersionUID = 1L;
this.state = state;
}
/**
* 签收日期
* @return
*/
public Date getGmtSignReceipt() {
return gmtSignReceipt;
}
/**
* 签收日期
* @param gmtSignReceipt
*/
public void setGmtSignReceipt(Date gmtSignReceipt) {
this.gmtSignReceipt = gmtSignReceipt;
}
/**
* 发货日期
* @return
*/
public Date getGmtShipping() {
return gmtShipping;
}
/**
* 发货日期
* @param gmtShipping
*/
public void setGmtShipping(Date gmtShipping) {
this.gmtShipping = gmtShipping;
}
/**
* 发送消息mq,确认妥投
* @return
*/
public Date getGmtSendMqDelivered() {
return gmtSendMqDelivered;
}
/**
* 发送消息mq,确认妥投
* @param gmtSendMqDelivered
*/
public void setGmtSendMqDelivered(Date gmtSendMqDelivered) {
this.gmtSendMqDelivered = gmtSendMqDelivered;
}
/**
* 已经妥投
* @return
*/
public Date getGmtDelivered() {
return gmtDelivered;
}
/**
* 已经妥投
* @param gmtDelivered
*/
public void setGmtDelivered(Date gmtDelivered) {
this.gmtDelivered = gmtDelivered;
}
/**
* system:系统user:用户 admin 后台确认
* @return
*/
public String getDeliveredBy() {
return deliveredBy;
}
/**
* system:系统user:用户 admin 后台确认
* @param deliveredBy
*/
public void setDeliveredBy(String deliveredBy) {
this.deliveredBy = deliveredBy;
}
@Override
public String toString() {
return "VvPackageEntity{" +
@ -310,6 +400,11 @@ private static final long serialVersionUID = 1L;
",com=" + com +
",status=" + status +
",state=" + state +
",gmtSignReceipt=" + gmtSignReceipt +
",gmtShipping=" + gmtShipping +
",gmtSendMqDelivered=" + gmtSendMqDelivered +
",gmtDelivered=" + gmtDelivered +
",deliveredBy=" + deliveredBy +
"}";
}
}

View File

@ -0,0 +1,46 @@
package com.heyu.api.data.enums;
public enum KuaiDi100StateEnums {
// 具体的状态
// 快递单当前状态默认为0在途1揽收2疑难3签收4退签5派件8清关14拒签等10个基础物流状态如需要返回高级物流状态请参考 resultv2 传值
collect("1","揽收"),
shipping("0","在途"),
problem("2","疑难"),
sign_receipt("3","签收"),
return_sign("4","退签"),
distribution("5","派件"),
clear_customs("8","清关"),
reject_sign("14","拒签"),
;
KuaiDi100StateEnums(String state, String desc) {
this.state = state;
this.desc = desc;
}
private String state ;
private String desc;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}

View File

@ -1,4 +1,4 @@
package com.heyu.api.kuaidi100;
package com.heyu.api.data.kuaidi100;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@ -73,9 +73,9 @@ public class KuaiDi100Utils {
/**
* 订阅接口
*/
public String subscribe(String companyCode, String trackNumber, String phone) throws Exception {
public static String subscribe(String companyCode, String trackNumber, String phone) throws Exception {
SubscribeParameters subscribeParameters = new SubscribeParameters();
subscribeParameters.setCallbackurl(" https://api.1024api.com/api-interface/app/kuaidi/callback");
subscribeParameters.setCallbackurl("https://api.1024api.com/api-interface/app/kuaidi/callback");
subscribeParameters.setPhone(phone);
SubscribeParam subscribeParam = new SubscribeParam();

View File

@ -1,4 +1,4 @@
package com.heyu.api.kuaidi100;
package com.heyu.api.data.kuaidi100;
import java.util.HashMap;
import java.util.Map;

View File

@ -8,10 +8,17 @@ package com.heyu.api.data.service.impl.vv;
* @since 2025-08-23
*/
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.heyu.api.data.dao.vv.VvPackageDao;
import com.heyu.api.data.dto.vv.KuaiDi100DTO;
import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.enums.KuaiDi100StateEnums;
import com.heyu.api.data.kuaidi100.KuaiDi100Utils;
import com.heyu.api.data.kuaidi100.LogisticsMapUtils;
import com.heyu.api.data.service.vv.VvPackageService;
import com.heyu.api.data.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@ -61,8 +68,39 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
@Override
public int deleteVvPackageById(Long id){
return vvPackageDao.deleteVvPackageById(id);
}
}
@Override
public KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber) {
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(trackNumber);
KuaiDi100DTO kuaiDi100DTO = null;
if (KuaiDi100StateEnums.sign_receipt.getState().equals(vvPackageEntity.getState())) {
kuaiDi100DTO = JSONObject.parseObject(vvPackageEntity.getPackageLogisticsInfo(), KuaiDi100DTO.class);
} else {
kuaiDi100DTO = KuaiDi100Utils.getLogisticsInfo(trackNumber);
vvPackageEntity.setIscheck(kuaiDi100DTO.getIscheck());
vvPackageEntity.setCom(kuaiDi100DTO.getCom());
vvPackageEntity.setStatus(kuaiDi100DTO.getStatus());
vvPackageEntity.setState(kuaiDi100DTO.getState());
vvPackageEntity.setPackageLogisticsInfo(JSON.toJSONString(kuaiDi100DTO));
if (StringUtils.isBlank(vvPackageEntity.getLogisticsCompany())
&& StringUtils.isNotEmpty(kuaiDi100DTO.getCom())) {
vvPackageEntity.setLogisticsCompany(LogisticsMapUtils.getLogisticsCompanyName(kuaiDi100DTO.getCom()));
}
if (kuaiDi100DTO.getRouteInfo() != null
&& kuaiDi100DTO.getRouteInfo().getFrom() != null
) {
vvPackageEntity.setShippingFrom(kuaiDi100DTO.getRouteInfo().getFrom().getName());
}
vvPackageDao.updateVvPackageById(vvPackageEntity);
}
return kuaiDi100DTO;
}
}

View File

@ -8,6 +8,7 @@ package com.heyu.api.data.service.vv;
* @since 2025-08-23
*/
import com.baomidou.mybatisplus.extension.service.IService;
import com.heyu.api.data.dto.vv.KuaiDi100DTO;
import com.heyu.api.data.entity.vv.VvPackageEntity;
public interface VvPackageService extends IService<VvPackageEntity> {
@ -31,4 +32,5 @@ public interface VvPackageService extends IService<VvPackageEntity> {
int deleteVvPackageById(Long id);
KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber);
}

View File

@ -49,7 +49,7 @@ public class MysqlMain_update {
List<TablesBean> list = new ArrayList<TablesBean>();
String a = "vv_trade_order_line";
String a = "vv_package";
for (String s : a.split(",")) {
list.add(new TablesBean(s));
}

View File

@ -20,11 +20,13 @@
<dependencies>
<dependency>
<groupId>com.lz.eb</groupId>
<artifactId>api-mapper</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@ -1,18 +1,14 @@
package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSON;
import com.heyu.api.alibaba.request.mm.VvAppLogisticsRequest;
import com.heyu.api.common.annotation.Describe;
import com.heyu.api.data.dao.vv.VvPackageDao;
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
import com.heyu.api.data.dto.vv.KuaiDi100DTO;
import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import com.heyu.api.data.service.vv.VvPackageService;
import com.heyu.api.data.utils.R;
import com.heyu.api.data.utils.StringUtils;
import com.heyu.api.kuaidi100.KuaiDi100Utils;
import com.heyu.api.kuaidi100.LogisticsMapUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
@ -34,6 +30,9 @@ public class AppLogisticsController {
@Autowired
private VvTradeOrderLineDao vvTradeOrderLineDao;
@Autowired
private VvPackageService vvPackageService;
// http://localhost:8888/app/logistics/query
@Describe("物流查询")
@ -46,27 +45,12 @@ public class AppLogisticsController {
return R.error("trackNumber不是你的");
}
KuaiDi100DTO kuaiDi100DTO = KuaiDi100Utils.getLogisticsInfo(request.getTrackNumber());
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(request.getTrackNumber());
vvPackageEntity.setIscheck(kuaiDi100DTO.getIscheck());
vvPackageEntity.setCom(kuaiDi100DTO.getCom());
vvPackageEntity.setStatus(kuaiDi100DTO.getStatus());
vvPackageEntity.setState(kuaiDi100DTO.getState());
vvPackageEntity.setPackageLogisticsInfo(JSON.toJSONString(kuaiDi100DTO));
KuaiDi100DTO kuaiDi100DTO = vvPackageService.selectVvKuaidiAndUpdateData(request.getTrackNumber());
if (StringUtils.isBlank(vvPackageEntity.getLogisticsCompany())
&& StringUtils.isNotEmpty(kuaiDi100DTO.getCom())) {
vvPackageEntity.setLogisticsCompany(LogisticsMapUtils.getLogisticsCompanyName(kuaiDi100DTO.getCom()));
}
if (kuaiDi100DTO.getRouteInfo() != null
&& kuaiDi100DTO.getRouteInfo().getFrom() != null
) {
vvPackageEntity.setShippingFrom(kuaiDi100DTO.getRouteInfo().getFrom().getName());
}
vvPackageDao.updateVvPackageById(vvPackageEntity);
return R.ok().setData(kuaiDi100DTO);
}