diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsMapTraceController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsMapTraceController.java index aa45d641d..6c1eb265d 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsMapTraceController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsMapTraceController.java @@ -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); + } + } + /** * 查询可视化物流轨迹列表 */ diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsMapTrace.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsMapTrace.java index f751346de..1760b39d8 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsMapTrace.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsMapTrace.java @@ -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; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsMapTraceService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsMapTraceService.java index d4f88678c..d4c4353a8 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsMapTraceService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsMapTraceService.java @@ -27,6 +27,13 @@ public interface IEmisTmsMapTraceService */ public EmisTmsMapTrace selectEmisTmsMapTraceById(Long id); + /** + * 获取lbs记录 + * @param billCode + * @return + */ + public EmisTmsMapTrace getLbsRecordListByBillCode(String billCode); + /** * 根据运单号获取设备号 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsMapTraceServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsMapTraceServiceImpl.java index 634971bf2..7b1edce4c 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsMapTraceServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsMapTraceServiceImpl.java @@ -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 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 + +"¶ms[beginCreateTime]="+ DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,startDate) + +"¶ms[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)); + } + /** * 查询可视化物流轨迹列表 *