This commit is contained in:
linfso 2025-08-15 01:24:33 +08:00
parent f73e1de1e3
commit 7719bd6285
4 changed files with 106 additions and 2 deletions

View File

@ -60,6 +60,17 @@ public class EmisTmsMapTraceController extends BaseController
}
}
@GetMapping("/getLbsRecordListByBillCode")
public AjaxResult getLbsRecordListByBillCode(EmisTmsMapTrace emisTmsMapTrace)
{
EmisTmsMapTrace rst=emisTmsMapTraceService.getLbsRecordListByBillCode(emisTmsMapTrace.getBillCode());
if(rst!=null){
return AjaxResult.success("成功",rst);
}else{
return AjaxResult.success("成功",null);
}
}
/**
* 查询可视化物流轨迹列表
*/

View File

@ -10,6 +10,8 @@
package com.xdadan.erp.emis.domain;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -19,6 +21,8 @@ import com.xdadan.erp.common.core.domain.TreeEntity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import lombok.Data;
@ -49,8 +53,12 @@ public class EmisTmsMapTrace extends BaseEntity
/* 最后地点 */
private String lastLocationInfo;
// 扩展
private String billCode;
private JSONArray lbsRecordList;
// device 跟踪 开始时间,结束时间
private Date startTraceDate;
private Date endTraceDate;
}

View File

@ -27,6 +27,13 @@ public interface IEmisTmsMapTraceService
*/
public EmisTmsMapTrace selectEmisTmsMapTraceById(Long id);
/**
* 获取lbs记录
* @param billCode
* @return
*/
public EmisTmsMapTrace getLbsRecordListByBillCode(String billCode);
/**
* 根据运单号获取设备号

View File

@ -10,7 +10,18 @@
package com.xdadan.erp.emis.service.impl;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.common.utils.StringUtils;
import com.xdadan.erp.emis.domain.EmisWaybill;
import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.utils.HTTPHelperV3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xdadan.erp.emis.domain.EmisTmsMapTrace;
@ -24,7 +35,7 @@ import com.xdadan.erp.emis.service.IEmisTmsMapTraceService;
* @date 2025-08-13 04:50:50
*/
@Service
public class EmisTmsMapTraceServiceImpl implements IEmisTmsMapTraceService
public class EmisTmsMapTraceServiceImpl extends EmisBaseService implements IEmisTmsMapTraceService
{
@Autowired
private EmisTmsMapTraceMapper emisTmsMapTraceMapper;
@ -46,13 +57,80 @@ public class EmisTmsMapTraceServiceImpl implements IEmisTmsMapTraceService
public EmisTmsMapTrace getDeviceNoByBillCode(String billCode)
{
EmisTmsMapTrace emisTmsMapTrace=emisTmsMapTraceMapper.selectEmisTmsMapTraceByBillCode(billCode);
if(emisTmsMapTrace!=null){
// 获取轨迹开始时间,获取轨迹结束时间
// List<Map> stepList=emisTmsScanRecordService.queryWaybillTraceInfo(mainNo,lang,false);
// EmisWaybill waybill=getWaybillByBillCode(billCode);
// if(waybill.)
return emisTmsMapTrace;
}
return emisTmsMapTraceMapper.selectEmisTmsMapTraceFromSiteBatch(billCode);
}
@Override
public EmisTmsMapTrace getLbsRecordListByBillCode(String billCode)
{
EmisWaybill waybill=getWaybillByBillCode(billCode);
if(waybill==null){
return null;
}
EmisTmsMapTrace emisTmsMapTrace=emisTmsMapTraceMapper.selectEmisTmsMapTraceByBillCode(billCode);
if(emisTmsMapTrace==null){
emisTmsMapTrace=emisTmsMapTraceMapper.selectEmisTmsMapTraceFromSiteBatch(billCode);
}
if(emisTmsMapTrace!=null){
Date signDate=waybill.getSignDate();
if(signDate==null){
signDate=new Date();
}
JSONArray lbsRecordList = getLbsList(emisTmsMapTrace.getDeviceNo(),waybill.getSendDate(),signDate);
emisTmsMapTrace.setLbsRecordList(lbsRecordList);
}
return emisTmsMapTrace;
}
private static JSONArray getLbsList(String msisdn,Date startDate,Date endDate){
JSONArray lbsRecordList = new JSONArray();
String url="https://api.lbs.jtrs56.com/api/lbssvr/lbs/common/getLocationRecord?msisdn=" +msisdn
+"&params[beginCreateTime]="+ DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,startDate)
+"&params[endCreateTime]="+DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,endDate);
try {
String result= HTTPHelperV3.get(url);
if(!StringUtils.isEmpty(result)) {
JSONObject jobj = JSONObject.parseObject(result);
if ("200".equals(jobj.getString("code"))) {
JSONArray arrLbs=jobj.getJSONArray("rows");
for(Object item:arrLbs){
JSONObject oldItem=(JSONObject)item;
JSONObject newItem=new JSONObject();
newItem.put("address",oldItem.getOrDefault("address",null));
newItem.put("createTime",oldItem.getOrDefault("createTime",null));
newItem.put("latitude",oldItem.getOrDefault("latitude",null));
newItem.put("longitude",oldItem.getOrDefault("longitude",null));
lbsRecordList.add(newItem);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return lbsRecordList;
}
public static void main(String[] args) {
JSONArray lbsRecordList = getLbsList("13110244178",DateUtils.parseDate("2025-07-01"),DateUtils.parseDate("2025-09-01"));
System.out.println(JSON.toJSONString(lbsRecordList));
}
/**
* 查询可视化物流轨迹列表
*