|
@@ -1540,7 +1540,7 @@ func (e *Waybill) Receipt(c *dto.WaybillReceiptReq, p *actions.DataPermission) e
|
|
}
|
|
}
|
|
|
|
|
|
// 保温箱配送 不需要中转
|
|
// 保温箱配送 不需要中转
|
|
- if waybillModel.CoolerBoxId > 0 && waybillModel.Status == model.WaybillStatusVanning {
|
|
|
|
|
|
+ if waybillModel.Status == model.WaybillStatusVanning || waybillModel.Status == model.WaybillStatusVanningOut {
|
|
// 查询保温箱信息
|
|
// 查询保温箱信息
|
|
var coolerBox = model.CoolerBox{}
|
|
var coolerBox = model.CoolerBox{}
|
|
// 查询保温箱是否存在
|
|
// 查询保温箱是否存在
|
|
@@ -1638,7 +1638,7 @@ func (e *Waybill) Receipt(c *dto.WaybillReceiptReq, p *actions.DataPermission) e
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
- if waybillModel.Status == model.WaybillStatusTruck {
|
|
|
|
|
|
+ if waybillModel.Status == model.WaybillStatusTruck || waybillModel.Status == model.WaybillStatusTruckOut {
|
|
// 查询车辆信息
|
|
// 查询车辆信息
|
|
var car = model.Car{}
|
|
var car = model.Car{}
|
|
// 查询运单是否存在
|
|
// 查询运单是否存在
|
|
@@ -1733,7 +1733,8 @@ func (e *Waybill) Receipt(c *dto.WaybillReceiptReq, p *actions.DataPermission) e
|
|
return errors.New(fmt.Sprintf("保存运单物流信息失败:%s", err))
|
|
return errors.New(fmt.Sprintf("保存运单物流信息失败:%s", err))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if waybillModel.Status == model.WaybillStatusStorage {
|
|
|
|
|
|
+
|
|
|
|
+ if waybillModel.Status == model.WaybillStatusStorage || waybillModel.Status == model.WaybillStatusStorageOut {
|
|
// 查询车辆信息
|
|
// 查询车辆信息
|
|
var warehouse model.Warehouse
|
|
var warehouse model.Warehouse
|
|
// 查询运单是否存在
|
|
// 查询运单是否存在
|
|
@@ -1832,6 +1833,259 @@ func (e *Waybill) Receipt(c *dto.WaybillReceiptReq, p *actions.DataPermission) e
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 停止记录
|
|
|
|
+func (e *Waybill) StopRecord(c *dto.WaybillStopRecordReq, p *actions.DataPermission) error {
|
|
|
|
+ var err error
|
|
|
|
+
|
|
|
|
+ tx := e.Orm.Begin()
|
|
|
|
+ defer func() {
|
|
|
|
+ if err != nil {
|
|
|
|
+ tx.Rollback()
|
|
|
|
+ } else {
|
|
|
|
+ tx.Commit()
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ var waybillModel = model.Waybill{}
|
|
|
|
+ // 查询运单是否存在
|
|
|
|
+ err = tx.Scopes(actions.Permission(waybillModel.TableName(), p)).
|
|
|
|
+ Where("waybill_no = ?", c.WaybillNo).
|
|
|
|
+ First(&waybillModel).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
|
+ return errors.New(fmt.Sprintf("运单号%s不存在", c.WaybillNo))
|
|
|
|
+ }
|
|
|
|
+ return errors.New(fmt.Sprintf("运单号%s查询失败", c.WaybillNo))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if waybillModel.Status == model.WaybillStatusTruckOut ||
|
|
|
|
+ waybillModel.Status == model.WaybillStatusStorageOut ||
|
|
|
|
+ waybillModel.Status == model.WaybillStatusVanningOut {
|
|
|
|
+ return nil
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if waybillModel.Status == model.WaybillStatusWaitDelivery ||
|
|
|
|
+ waybillModel.Status == model.WaybillStatusWaitTruck ||
|
|
|
|
+ waybillModel.Status == model.WaybillStatusWaitStorage ||
|
|
|
|
+ waybillModel.Status == model.WaybillStatusWaitVanning {
|
|
|
|
+ err = errors.New(fmt.Sprintf("运单号%s状态为%s,无法停止记录!", c.WaybillNo, model.WaybillStatusMap[waybillModel.Status]))
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 保温箱配送 不需要中转
|
|
|
|
+ if waybillModel.Status == model.WaybillStatusVanning {
|
|
|
|
+ // 查询保温箱信息
|
|
|
|
+ var coolerBox = model.CoolerBox{}
|
|
|
|
+ // 查询保温箱是否存在
|
|
|
|
+ err = tx.Scopes(actions.Permission(coolerBox.TableName(), p)).
|
|
|
|
+ Where("id = ?", waybillModel.CoolerBoxId).
|
|
|
|
+ First(&coolerBox).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New("获取保温箱信息失败")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ waybillModel.Status = model.WaybillStatusVanningOut
|
|
|
|
+ err = tx.Save(&waybillModel).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var lng, lat string
|
|
|
|
+ lng, lat, err = e.GetSite(p.DeptId, coolerBox.Sn, c.StartTime.String())
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("获取定位信息失败: %s", err)
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 查询任务
|
|
|
|
+ var task model.WaybillTask
|
|
|
|
+ err = tx.Model(&task).Where("waybill_no = ? and cooler_box_id = ?", c.WaybillNo, coolerBox.Id).
|
|
|
|
+ Last(&task).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("查询运单任务信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ // 未出箱 停止记录
|
|
|
|
+ if time.Time(task.EndTime).IsZero() {
|
|
|
|
+ task.EndTime = c.StartTime
|
|
|
|
+ task.UpdateBy = p.UserId
|
|
|
|
+ err = tx.Save(&task).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单任务信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ // 添加下车物流记录
|
|
|
|
+ Logistics := model.WaybillLogistics{
|
|
|
|
+ WaybillNo: c.WaybillNo,
|
|
|
|
+ Status: model.WaybillStatusVanningOut,
|
|
|
|
+ CoolerBoxId: coolerBox.Id,
|
|
|
|
+ UserId: p.UserId,
|
|
|
|
+ Lng: lng,
|
|
|
|
+ Lat: lat,
|
|
|
|
+ ControlBy: model2.ControlBy{
|
|
|
|
+ CreateBy: p.UserId,
|
|
|
|
+ },
|
|
|
|
+ DeptBy: model2.DeptBy{
|
|
|
|
+ DeptId: p.DeptId,
|
|
|
|
+ },
|
|
|
|
+ ModelTime: model2.ModelTime{
|
|
|
|
+ CreatedAt: c.StartTime,
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ err = tx.Create(&Logistics).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单物流信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if waybillModel.Status == model.WaybillStatusTruck {
|
|
|
|
+ // 查询车辆信息
|
|
|
|
+ var car = model.Car{}
|
|
|
|
+ // 查询运单是否存在
|
|
|
|
+ err = tx.Scopes(actions.Permission(car.TableName(), p)).
|
|
|
|
+ Where("user_id = ?", p.UserId).
|
|
|
|
+ First(&car).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New("获取车辆信息失败")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ waybillModel.Status = model.WaybillStatusTruckOut
|
|
|
|
+ err = tx.Save(&waybillModel).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var lng, lat string
|
|
|
|
+ lng, lat, err = e.GetSite(p.DeptId, car.Sn, c.StartTime.String())
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("获取定位信息失败: %s", err)
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 查询任务
|
|
|
|
+ var task model.WaybillTask
|
|
|
|
+ err = tx.Model(&task).Where("waybill_no = ? and car_id = ?", c.WaybillNo, car.Id).
|
|
|
|
+ Last(&task).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("查询运单任务信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ // 未下车 停止记录
|
|
|
|
+ if time.Time(task.EndTime).IsZero() {
|
|
|
|
+ task.EndTime = c.StartTime
|
|
|
|
+ task.UpdateBy = p.UserId
|
|
|
|
+ err = tx.Save(&task).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单任务信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ // 添加下车物流记录
|
|
|
|
+ Logistics := model.WaybillLogistics{
|
|
|
|
+ WaybillNo: c.WaybillNo,
|
|
|
|
+ Status: model.WaybillStatusTruckOut,
|
|
|
|
+ CarId: car.Id,
|
|
|
|
+ UserId: p.UserId,
|
|
|
|
+ Lng: lng,
|
|
|
|
+ Lat: lat,
|
|
|
|
+ ControlBy: model2.ControlBy{
|
|
|
|
+ CreateBy: p.UserId,
|
|
|
|
+ },
|
|
|
|
+ DeptBy: model2.DeptBy{
|
|
|
|
+ DeptId: p.DeptId,
|
|
|
|
+ },
|
|
|
|
+ ModelTime: model2.ModelTime{
|
|
|
|
+ CreatedAt: c.StartTime,
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ err = tx.Create(&Logistics).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单物流信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if waybillModel.Status == model.WaybillStatusStorage {
|
|
|
|
+ // 查询车辆信息
|
|
|
|
+ var warehouse model.Warehouse
|
|
|
|
+ // 查询运单是否存在
|
|
|
|
+ err = tx.Scopes(actions.Permission(warehouse.TableName(), p)).
|
|
|
|
+ Where("user_id = ?", p.UserId).
|
|
|
|
+ First(&warehouse).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New("获取仓库信息失败")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ waybillModel.Status = model.WaybillStatusStorageOut
|
|
|
|
+ err = tx.Save(&waybillModel).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var lng, lat string
|
|
|
|
+ lng, lat, err = e.GetSite(p.DeptId, warehouse.Sn, c.StartTime.String())
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("获取定位信息失败: %s", err)
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 查询任务
|
|
|
|
+ var task model.WaybillTask
|
|
|
|
+ err = tx.Model(&task).Where("waybill_no = ? and warehouse_id = ?", c.WaybillNo, warehouse.Id).
|
|
|
|
+ Last(&task).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("查询运单任务信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ // 未出库 停止记录
|
|
|
|
+ if time.Time(task.EndTime).IsZero() {
|
|
|
|
+ task.EndTime = c.StartTime
|
|
|
|
+ task.UpdateBy = p.UserId
|
|
|
|
+ err = tx.Save(&task).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单任务信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ // 添加下车物流记录
|
|
|
|
+ Logistics := model.WaybillLogistics{
|
|
|
|
+ WaybillNo: c.WaybillNo,
|
|
|
|
+ Status: model.WaybillStatusTruckOut,
|
|
|
|
+ WarehouseId: warehouse.Id,
|
|
|
|
+ UserId: p.UserId,
|
|
|
|
+ Lng: lng,
|
|
|
|
+ Lat: lat,
|
|
|
|
+ ControlBy: model2.ControlBy{
|
|
|
|
+ CreateBy: p.UserId,
|
|
|
|
+ },
|
|
|
|
+ DeptBy: model2.DeptBy{
|
|
|
|
+ DeptId: p.DeptId,
|
|
|
|
+ },
|
|
|
|
+ ModelTime: model2.ModelTime{
|
|
|
|
+ CreatedAt: c.StartTime,
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ err = tx.Create(&Logistics).Error
|
|
|
|
+ if err != nil {
|
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
|
+ return errors.New(fmt.Sprintf("保存运单物流信息失败:%s", err))
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return nil
|
|
|
|
+}
|
|
|
|
+
|
|
// 获取入库 出库 上车 下车 定位信息
|
|
// 获取入库 出库 上车 下车 定位信息
|
|
func (e *Waybill) GetSite(companyId int, sn string, time string) (lng, lat string, err error) {
|
|
func (e *Waybill) GetSite(companyId int, sn string, time string) (lng, lat string, err error) {
|
|
// 获取公司秘钥
|
|
// 获取公司秘钥
|
|
@@ -2117,7 +2371,7 @@ func (e *Waybill) GetTwoDeviceSensorData(c *dto.WaybillGetByWaybillNoReq) ([]nat
|
|
|
|
|
|
err = e.Orm.Model(&data).
|
|
err = e.Orm.Model(&data).
|
|
Where("waybill_no = ?", c.WaybillNo).
|
|
Where("waybill_no = ?", c.WaybillNo).
|
|
- Order("id desc").
|
|
|
|
|
|
+ //Order("id desc").
|
|
Preload("Warehouse").Preload("Car").Preload("CoolerBox").
|
|
Preload("Warehouse").Preload("Car").Preload("CoolerBox").
|
|
Find(&taskList).Error
|
|
Find(&taskList).Error
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -2168,29 +2422,27 @@ func (e *Waybill) GetTwoDeviceSensorData(c *dto.WaybillGetByWaybillNoReq) ([]nat
|
|
for j := 0; j < len(list); j++ {
|
|
for j := 0; j < len(list); j++ {
|
|
if v.T_id == list[j].T_id {
|
|
if v.T_id == list[j].T_id {
|
|
if list[j].T_time != taskList[i].StartTime.String() {
|
|
if list[j].T_time != taskList[i].StartTime.String() {
|
|
- if i < len(taskList)-2 && list[j].T_time != taskList[i+1].EndTime.String() {
|
|
|
|
- firstData := list[len(list)-1-j]
|
|
|
|
- firstData.T_time = taskList[i].StartTime.String()
|
|
|
|
- firstMap[v.T_id] = firstData
|
|
|
|
- count += 1
|
|
|
|
- }
|
|
|
|
|
|
+ firstData := list[len(list)-1-j]
|
|
|
|
+ firstData.T_time = taskList[i].StartTime.String()
|
|
|
|
+ firstMap[v.T_id] = firstData
|
|
|
|
+ count += 1
|
|
}
|
|
}
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if waybill.Status == model.WaybillStatusReceipt {
|
|
|
|
- for k := len(list) - 1; k >= 0; k-- {
|
|
|
|
- if v.T_id == list[k].T_id {
|
|
|
|
- if taskList[i].Id == lastWaybillTask.Id && list[k].T_time != taskList[i].EndTime.String() && !time.Time(taskList[i].EndTime).IsZero() {
|
|
|
|
- lastData := list[len(list)-1-k]
|
|
|
|
- lastData.T_time = taskList[i].EndTime.String()
|
|
|
|
- lastMap[v.T_id] = lastData
|
|
|
|
- count += 1
|
|
|
|
- }
|
|
|
|
- break
|
|
|
|
|
|
+
|
|
|
|
+ for k := len(list) - 1; k >= 0; k-- {
|
|
|
|
+ if v.T_id == list[k].T_id {
|
|
|
|
+ if list[k].T_time != taskList[i].EndTime.String() && !time.Time(taskList[i].EndTime).IsZero() {
|
|
|
|
+ lastData := list[len(list)-1-k]
|
|
|
|
+ lastData.T_time = taskList[i].EndTime.String()
|
|
|
|
+ lastMap[v.T_id] = lastData
|
|
|
|
+ count += 1
|
|
}
|
|
}
|
|
|
|
+ break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for _, v := range firstMap {
|
|
for _, v := range firstMap {
|
|
@@ -2202,17 +2454,21 @@ func (e *Waybill) GetTwoDeviceSensorData(c *dto.WaybillGetByWaybillNoReq) ([]nat
|
|
}
|
|
}
|
|
|
|
|
|
name := ""
|
|
name := ""
|
|
|
|
+ sn := ""
|
|
if taskList[i].WarehouseId > 0 {
|
|
if taskList[i].WarehouseId > 0 {
|
|
name = taskList[i].Warehouse.Name
|
|
name = taskList[i].Warehouse.Name
|
|
|
|
+ sn = taskList[i].Warehouse.Sn
|
|
}
|
|
}
|
|
if taskList[i].CarId > 0 {
|
|
if taskList[i].CarId > 0 {
|
|
name = taskList[i].Car.CarNo
|
|
name = taskList[i].Car.CarNo
|
|
|
|
+ sn = taskList[i].Car.Sn
|
|
}
|
|
}
|
|
if taskList[i].CoolerBoxId > 0 {
|
|
if taskList[i].CoolerBoxId > 0 {
|
|
name = taskList[i].CoolerBox.Name
|
|
name = taskList[i].CoolerBox.Name
|
|
|
|
+ sn = taskList[i].CoolerBox.Sn
|
|
}
|
|
}
|
|
|
|
|
|
- deviceDataPdfList := DeviceSensorDataListToDeviceDataPdfList(name, list, t_id_list[0], t_id_list[1])
|
|
|
|
|
|
+ deviceDataPdfList := DeviceSensorDataListToDeviceDataPdfList(name, sn, list, t_id_list[0], t_id_list[1])
|
|
deviceDataPdf = append(deviceDataPdf, deviceDataPdfList...)
|
|
deviceDataPdf = append(deviceDataPdf, deviceDataPdfList...)
|
|
dataList = append(dataList, list...)
|
|
dataList = append(dataList, list...)
|
|
waybillPDF = append(waybillPDF, WaybillPDF{
|
|
waybillPDF = append(waybillPDF, WaybillPDF{
|
|
@@ -2232,6 +2488,10 @@ func (e *Waybill) GetTwoDeviceSensorData(c *dto.WaybillGetByWaybillNoReq) ([]nat
|
|
})
|
|
})
|
|
|
|
|
|
sort.Slice(deviceDataPdf, func(i, j int) bool {
|
|
sort.Slice(deviceDataPdf, func(i, j int) bool {
|
|
|
|
+ if deviceDataPdf[i].T_time == deviceDataPdf[j].T_time {
|
|
|
|
+ // 如果时间相同,则按预设顺序排序
|
|
|
|
+ return orderMap[dataList[i].T_sn] < orderMap[dataList[j].T_sn]
|
|
|
|
+ }
|
|
return deviceDataPdf[i].T_time < deviceDataPdf[j].T_time
|
|
return deviceDataPdf[i].T_time < deviceDataPdf[j].T_time
|
|
})
|
|
})
|
|
|
|
|
|
@@ -2246,13 +2506,14 @@ type WaybillPDF struct {
|
|
}
|
|
}
|
|
|
|
|
|
type DeviceDataPdf struct {
|
|
type DeviceDataPdf struct {
|
|
|
|
+ T_sn string // 设备名称
|
|
T_name string // 设备名称
|
|
T_name string // 设备名称
|
|
T_time string // 时间
|
|
T_time string // 时间
|
|
T_id1 *float32 // 传感器id1温度
|
|
T_id1 *float32 // 传感器id1温度
|
|
T_id2 *float32 // 传感器id2温度
|
|
T_id2 *float32 // 传感器id2温度
|
|
}
|
|
}
|
|
|
|
|
|
-func DeviceSensorDataListToDeviceDataPdfList(T_name string, list []nats_server.DeviceData_R, T_id1 int, T_id2 int) []DeviceDataPdf {
|
|
|
|
|
|
+func DeviceSensorDataListToDeviceDataPdfList(T_name, T_sn string, list []nats_server.DeviceData_R, T_id1 int, T_id2 int) []DeviceDataPdf {
|
|
// 创建一个 map 用于存储 DeviceData_Pdf 结果
|
|
// 创建一个 map 用于存储 DeviceData_Pdf 结果
|
|
resultMap := make(map[string]DeviceDataPdf)
|
|
resultMap := make(map[string]DeviceDataPdf)
|
|
|
|
|
|
@@ -2263,6 +2524,7 @@ func DeviceSensorDataListToDeviceDataPdfList(T_name string, list []nats_server.D
|
|
if _, ok := resultMap[key]; !ok {
|
|
if _, ok := resultMap[key]; !ok {
|
|
pdf.T_time = item.T_time
|
|
pdf.T_time = item.T_time
|
|
pdf.T_name = T_name
|
|
pdf.T_name = T_name
|
|
|
|
+ pdf.T_sn = T_sn
|
|
resultMap[key] = pdf
|
|
resultMap[key] = pdf
|
|
}
|
|
}
|
|
data := resultMap[key]
|
|
data := resultMap[key]
|