Преглед на файлове

add:添加库管签收

zoie преди 9 месеца
родител
ревизия
c6bd563679
променени са 4 файла, в които са добавени 334 реда и са изтрити 84 реда
  1. 2 2
      app/admin/model/waybill.go
  2. 9 6
      app/admin/service/company.go
  3. 323 76
      app/admin/service/waybill.go
  4. 0 0
      冷链运输平台操作手册-物流公司.docx

+ 2 - 2
app/admin/model/waybill.go

@@ -63,11 +63,11 @@ type Waybill struct {
 	CustomerId              int         `json:"customerId" gorm:"size:4"`                 // 下单客户id
 	CustomerName            string      `json:"customerName" gorm:"size:128"`             // 下单客户名称
 	OrderTime               model2.Time `json:"orderTime"  gorm:"size:128"`               // 下单时间
-	DeliveryTime            model2.Time `json:"deliveryTime"  gorm:"size:128"`            // 发货时间 入库/装车时间
+	DeliveryTime            model2.Time `json:"deliveryTime"  gorm:"size:128"`            // 发货时间 入库/装车/装箱时间
 	PrintUserId             int         `json:"printUserId"  gorm:"size:128"`             // 打印人id
 	ReceiptTime             model2.Time `json:"receiptTime"  gorm:"size:128"`             // 签收时间
 	WarehouseId             int         `json:"warehouseId"  gorm:"size:128"`             // 仓库id
-	CarId                   int         `json:"carId"  gorm:"size:128"`                   // 仓库id
+	CarId                   int         `json:"carId"  gorm:"size:128"`                   // 车辆id
 	CoolerBoxId             int         `json:"coolerBoxId"  gorm:"size:128"`             // 保温箱id
 	ReceiptImg              string      `json:"ReceiptImg"  gorm:"size:text"`             // 签收图片
 	Qualified               int         `json:"qualified"  gorm:"size:128"`               // 1-合格 2-不合格

+ 9 - 6
app/admin/service/company.go

@@ -160,13 +160,16 @@ func (e *Company) Update(c *dto.CompanyUpdateReq) error {
 		return global.UpdateFailedErr
 	}
 
-	coldCompany, err := nats_server.Cold_ReadCompanyByT_key(c.ColdKey)
-	if err != nil {
-		err = errors.New("查询公司秘钥信息失败,请检查秘钥是否正确!")
-		e.Log.Errorf("db error: %s", err)
-		return err
+	if c.ColdKey != deptModel.ColdKey {
+		var coldCompany nats_server.Company
+		coldCompany, err = nats_server.Cold_ReadCompanyByT_key(c.ColdKey)
+		if err != nil {
+			err = errors.New("查询公司秘钥信息失败,请检查秘钥是否正确!")
+			e.Log.Errorf("db error: %s", err)
+			return err
+		}
+		deptModel.ColdPid = coldCompany.Id
 	}
-	deptModel.ColdPid = coldCompany.Id
 
 	c.Generate(&deptModel)
 

+ 323 - 76
app/admin/service/waybill.go

@@ -452,7 +452,7 @@ func (e *Waybill) Delivery(c *dto.WaybillDeliveryReq, p *actions.DataPermission)
 			return errors.New("获取保温箱信息失败")
 		}
 		var user = model.SysUser{}
-		// 查询保温箱信息
+		// 查询制单人信息
 		err = tx.Scopes(actions.Permission(user.TableName(), p)).
 			Where("id = ?", c.PrintUserId).
 			First(&user).Error
@@ -616,7 +616,7 @@ func (e *Waybill) WarehouseIn(c *dto.WaybillInOutReq, p *actions.DataPermission)
 			err = errors.New(fmt.Sprintf("运单号%s状态为%s,无法入库!", waybillNo, model.WaybillStatusMap[waybillModel.Status]))
 			return err
 		}
-		if waybillModel.Status == model.WaybillStatusWaitTruck {
+		if waybillModel.Status == model.WaybillStatusWaitTruck || waybillModel.Status == model.WaybillStatusWaitVanning {
 			// 待装车
 			err = errors.New(fmt.Sprintf("运单号%s状态为%s,无法入库!", waybillNo, model.WaybillStatusMap[waybillModel.Status]))
 			return err
@@ -629,7 +629,7 @@ func (e *Waybill) WarehouseIn(c *dto.WaybillInOutReq, p *actions.DataPermission)
 			return err
 		}
 		if time.Time(logistics.CreatedAt).After(time.Time(c.StartTime)) {
-			err = errors.New(fmt.Sprintf("运单号%s装车时间[%s]与上一阶段时间[%s]冲突,无法入库!", waybillNo, c.StartTime.String(), logistics.CreatedAt.String()))
+			err = errors.New(fmt.Sprintf("运单号%s入库时间[%s]与上一阶段时间[%s]冲突,无法入库!", waybillNo, c.StartTime.String(), logistics.CreatedAt.String()))
 			return err
 		}
 
@@ -640,6 +640,7 @@ func (e *Waybill) WarehouseIn(c *dto.WaybillInOutReq, p *actions.DataPermission)
 			return err
 		}
 
+		// 如果上一个状态为装车,则自动下车
 		if waybillModel.Status == model.WaybillStatusTruck {
 			// 已装车
 			var car model.Car
@@ -688,6 +689,49 @@ func (e *Waybill) WarehouseIn(c *dto.WaybillInOutReq, p *actions.DataPermission)
 				return errors.New(fmt.Sprintf("保存运单任务信息失败:%s", err))
 			}
 		}
+		// 如果上一个状态为装箱,则自动出箱
+		if waybillModel.Status == model.WaybillStatusVanning {
+			// 添加出箱物流记录
+			Logistics := model.WaybillLogistics{
+				WaybillNo:   waybillNo,
+				Status:      model.WaybillStatusVanningOut,
+				CoolerBoxId: waybillModel.CoolerBoxId,
+				UserId:      waybillModel.PrintUserId,
+				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))
+			}
+
+			// 查询任务
+			var task model.WaybillTask
+			err = tx.Model(&task).Where("waybill_no = ? and cooler_box_id = ?", waybillNo, waybillModel.CoolerBoxId).
+				Last(&task).Error
+			if err != nil {
+				e.Log.Errorf("db error: %s", err)
+				return errors.New(fmt.Sprintf("查询运单任务信息失败:%s", err))
+			}
+			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))
+			}
+		}
+
 		if waybillModel.Status == model.WaybillStatusWaitStorage {
 			waybillModel.DeliveryTime = c.StartTime
 		}
@@ -894,7 +938,7 @@ func (e *Waybill) CarIn(c *dto.WaybillInOutReq, p *actions.DataPermission) error
 			err = errors.New(fmt.Sprintf("运单号%s状态为%s,无法装车!", waybillNo, model.WaybillStatusMap[waybillModel.Status]))
 			return err
 		}
-		if waybillModel.Status == model.WaybillStatusWaitStorage {
+		if waybillModel.Status == model.WaybillStatusWaitStorage || waybillModel.Status == model.WaybillStatusWaitVanning {
 			err = errors.New(fmt.Sprintf("运单号%s状态为%s,无法装车!", waybillNo, model.WaybillStatusMap[waybillModel.Status]))
 			return err
 		}
@@ -907,7 +951,7 @@ func (e *Waybill) CarIn(c *dto.WaybillInOutReq, p *actions.DataPermission) error
 			return err
 		}
 		if time.Time(logistics.CreatedAt).After(time.Time(c.StartTime)) {
-			err = errors.New(fmt.Sprintf("运单号%s入库时间[%s]与上一阶段时间[%s]冲突,无法入库!", waybillNo, c.StartTime.String(), logistics.CreatedAt.String()))
+			err = errors.New(fmt.Sprintf("运单号%s装车时间[%s]与上一阶段时间[%s]冲突,无法装车!", waybillNo, c.StartTime.String(), logistics.CreatedAt.String()))
 			return err
 		}
 
@@ -970,6 +1014,49 @@ func (e *Waybill) CarIn(c *dto.WaybillInOutReq, p *actions.DataPermission) error
 			}
 		}
 
+		// 如果上一个状态为装箱,则自动出箱
+		if waybillModel.Status == model.WaybillStatusVanning {
+			// 添加出箱物流记录
+			Logistics := model.WaybillLogistics{
+				WaybillNo:   waybillNo,
+				Status:      model.WaybillStatusVanningOut,
+				CoolerBoxId: waybillModel.CoolerBoxId,
+				UserId:      waybillModel.PrintUserId,
+				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))
+			}
+
+			// 查询任务
+			var task model.WaybillTask
+			err = tx.Model(&task).Where("waybill_no = ? and cooler_box_id = ?", waybillNo, waybillModel.CoolerBoxId).
+				Last(&task).Error
+			if err != nil {
+				e.Log.Errorf("db error: %s", err)
+				return errors.New(fmt.Sprintf("查询运单任务信息失败:%s", err))
+			}
+			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))
+			}
+		}
+
 		waybillModel.Status = model.WaybillStatusTruck
 		waybillModel.CarId = car.Id
 
@@ -1160,13 +1247,14 @@ func (e *Waybill) CoolerBoxIn(c *dto.WaybillCoolerBoxInReq, p *actions.DataPermi
 		if waybillModel.Status != model.WaybillStatusWaitVanning &&
 			waybillModel.Status != model.WaybillStatusStorage &&
 			waybillModel.Status != model.WaybillStatusTruck {
-			err = errors.New(fmt.Sprintf("运单号%s状态为%s,无法装箱!", waybillNo, model.WaybillStatusMap[waybillModel.Status]))
-			return err
+			if !(waybillModel.Status == model.WaybillStatusVanning && waybillModel.PrintUserId != p.UserId) {
+				err = errors.New(fmt.Sprintf("运单号%s状态为%s,无法装箱!", waybillNo, model.WaybillStatusMap[waybillModel.Status]))
+				return err
+			}
 		}
 
-		// 查询保温箱信息
+		// 查询保温箱信息 有可能先装车再装箱 所以需要选保温箱
 		var coolerBox = model.CoolerBox{}
-		// 查询运单是否存在
 		err = tx.Scopes(actions.Permission(coolerBox.TableName(), p)).
 			Where("id = ?", c.CoolerBoxId).
 			First(&coolerBox).Error
@@ -1174,6 +1262,18 @@ func (e *Waybill) CoolerBoxIn(c *dto.WaybillCoolerBoxInReq, p *actions.DataPermi
 			e.Log.Errorf("db error: %s", err)
 			return errors.New("获取保温箱信息失败")
 		}
+		if waybillModel.CoolerBoxId > 0 && waybillModel.CoolerBoxId != c.CoolerBoxId {
+			// 扫码装箱 派单的保温箱与当前保温箱不一致
+			err = tx.Model(&waybillModel).Where("waybill_no = ?", waybillNo).
+				Updates(map[string]interface{}{
+					"cooler_box_id": c.CoolerBoxId,
+					"print_user_id": p.UserId,
+				}).Error
+			if err != nil {
+				e.Log.Errorf("db error: %s", err)
+				return errors.New("修改运单关联保温箱失败")
+			}
+		}
 
 		// 验证时间
 		var logistics model.WaybillLogistics
@@ -1289,6 +1389,49 @@ func (e *Waybill) CoolerBoxIn(c *dto.WaybillCoolerBoxInReq, p *actions.DataPermi
 			}
 		}
 
+		// 如果上一个状态为装箱,则自动出箱
+		if waybillModel.Status == model.WaybillStatusVanning {
+			// 添加出箱物流记录
+			Logistics := model.WaybillLogistics{
+				WaybillNo:   waybillNo,
+				Status:      model.WaybillStatusVanningOut,
+				CoolerBoxId: waybillModel.CoolerBoxId,
+				UserId:      waybillModel.PrintUserId,
+				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))
+			}
+
+			// 查询任务
+			var task model.WaybillTask
+			err = tx.Model(&task).Where("waybill_no = ? and cooler_box_id = ?", waybillNo, waybillModel.CoolerBoxId).
+				Last(&task).Error
+			if err != nil {
+				e.Log.Errorf("db error: %s", err)
+				return errors.New(fmt.Sprintf("查询运单任务信息失败:%s", err))
+			}
+			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))
+			}
+		}
+
 		waybillModel.Status = model.WaybillStatusVanning
 		waybillModel.CoolerBoxId = coolerBox.Id
 		waybillModel.DeliveryTime = c.StartTime
@@ -1373,12 +1516,19 @@ func (e *Waybill) Receipt(c *dto.WaybillReceiptReq, p *actions.DataPermission) e
 	if waybillModel.Status == model.WaybillStatusReceipt {
 		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.CoolerBoxId > 0 {
-		// 查询车辆信息
+	if waybillModel.CoolerBoxId > 0 && waybillModel.Status == model.WaybillStatusVanning {
+		// 查询保温箱信息
 		var coolerBox = model.CoolerBox{}
-		// 查询运单是否存在
+		// 查询保温箱是否存在
 		err = tx.Scopes(actions.Permission(coolerBox.TableName(), p)).
 			Where("id = ?", waybillModel.CoolerBoxId).
 			First(&coolerBox).Error
@@ -1451,7 +1601,7 @@ func (e *Waybill) Receipt(c *dto.WaybillReceiptReq, p *actions.DataPermission) e
 			WaybillNo:   c.WaybillNo,
 			Status:      model.WaybillStatusReceipt,
 			CoolerBoxId: coolerBox.Id,
-			UserId:      p.UserId,
+			UserId:      waybillModel.PrintUserId,
 			Lng:         lng,
 			Lat:         lat,
 			ControlBy: model2.ControlBy{
@@ -1473,55 +1623,81 @@ func (e *Waybill) Receipt(c *dto.WaybillReceiptReq, p *actions.DataPermission) e
 		return nil
 	}
 
-	// 查询车辆信息
-	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("获取车辆信息失败")
-	}
+	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.WaybillStatusReceipt
-	waybillModel.CarId = car.Id
-	waybillModel.ReceiptTime = c.StartTime
-	waybillModel.ReceiptImg = c.ReceiptImg
-	err = tx.Save(&waybillModel).Error
-	if err != nil {
-		e.Log.Errorf("db error: %s", err)
-		return errors.New(fmt.Sprintf("保存运单信息失败:%s", err))
-	}
+		waybillModel.Status = model.WaybillStatusReceipt
+		waybillModel.CarId = car.Id
+		waybillModel.ReceiptTime = c.StartTime
+		waybillModel.ReceiptImg = c.ReceiptImg
+		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 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
+		// 查询任务
+		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))
+			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))
+			}
 		}
-		// 添加下车物流记录
+
+		// 添加签收记录
 		Logistics := model.WaybillLogistics{
 			WaybillNo: c.WaybillNo,
-			Status:    model.WaybillStatusTruckOut,
+			Status:    model.WaybillStatusReceipt,
 			CarId:     car.Id,
 			UserId:    p.UserId,
 			Lng:       lng,
@@ -1542,29 +1718,100 @@ func (e *Waybill) Receipt(c *dto.WaybillReceiptReq, p *actions.DataPermission) e
 			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("获取仓库信息失败")
+		}
 
-	// 添加签收记录
-	Logistics := model.WaybillLogistics{
-		WaybillNo: c.WaybillNo,
-		Status:    model.WaybillStatusReceipt,
-		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))
+		waybillModel.Status = model.WaybillStatusReceipt
+		waybillModel.WarehouseId = warehouse.Id
+		waybillModel.ReceiptTime = c.StartTime
+		waybillModel.ReceiptImg = c.ReceiptImg
+		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))
+			}
+		}
+
+		// 添加签收记录
+		Logistics := model.WaybillLogistics{
+			WaybillNo:   c.WaybillNo,
+			Status:      model.WaybillStatusReceipt,
+			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

+ 0 - 0
冷链物流运输追溯系统-物流公司.docx → 冷链运输平台操作手册-物流公司.docx