Browse Source

二次分配订单发送短信,订单添加处方

huangyan 7 months ago
parent
commit
94f5c09fc4

+ 3 - 0
app/admin/model/waybill.go

@@ -117,6 +117,9 @@ type Waybill struct {
 	AuditRemark                string            `json:"audit_remark"  gorm:"size:255;"`                              //驳回原因
 	AuditRemark                string            `json:"audit_remark"  gorm:"size:255;"`                              //驳回原因
 	AdminAuditRemark           string            `json:"admin_audit_remark"  gorm:"size:255;"`                        //管理员审核备注
 	AdminAuditRemark           string            `json:"admin_audit_remark"  gorm:"size:255;"`                        //管理员审核备注
 	IsSecondaryDistribution    bool              `json:"is_secondary_distribution" gorm:"type:boolean;default:false"` //是否二次分配
 	IsSecondaryDistribution    bool              `json:"is_secondary_distribution" gorm:"type:boolean;default:false"` //是否二次分配
+	Confirmer                  string            `json:"confirmer" gorm:"size:255;"`                                  // 确认人
+	ConfirmerPhone             string            `json:"confirmerPhone" gorm:"size:255;"`                             // 确认人电话
+	Prescription               model2.StringList `json:"prescription"`                                                // 处方
 	model2.ControlBy
 	model2.ControlBy
 	model2.ModelTime
 	model2.ModelTime
 	model2.DeptBy
 	model2.DeptBy

+ 4 - 0
app/admin/service/cooler_box.go

@@ -82,6 +82,10 @@ func (e *CoolerBox) GetPage(c *dto.CoolerBoxGetPageReq, list *[]model.CoolerBox,
 		}
 		}
 		(*list)[i].IceRaft = dataIces
 		(*list)[i].IceRaft = dataIces
 	}
 	}
+	//排序
+	sort.SliceStable(*list, func(i, j int) bool {
+		return len((*list)[i].IceRaft) > len((*list)[j].IceRaft)
+	})
 	return nil
 	return nil
 }
 }
 
 

+ 59 - 54
app/admin/service/dto/waybill.go

@@ -44,26 +44,27 @@ func (m *WaybillGetCustomerPageReq) GetNeedSearch() interface{} {
 }
 }
 
 
 type WaybillInsertReq struct {
 type WaybillInsertReq struct {
-	Id                      int          `json:"id" comment:"编码" swaggerignore:"true"`                                 // 编码
-	No                      string       `json:"no" swaggerignore:"true"`                                              //单号
-	OrderNo                 string       `json:"orderNo"`                                                              // 订单号
-	Status                  int          `json:"status" swaggerignore:"true"`                                          //订单状态:1-待处理;102-待装车 103-运输中 104-已签收
-	SaveConsigneeAddress    bool         `json:"SaveConsigneeAddress"`                                                 //保存收货地址
-	ConsigneeAddressDetails string       `json:"consigneeAddressDetails"`                                              //收发货地址详情
-	ConsigneeAddressName    string       `json:"consigneeAddressName"`                                                 //收发货地址名称
-	ConsigneeAddressPhone   string       `json:"consigneeAddressPhone" vd:"regexp('^1[3-9]\\d{9}$');msg:'收件人电话格式不正确'"` //收发货地址电话
-	DeliveryName            string       `json:"deliveryName"`                                                         // 配送姓名
-	DeliveryPhone           string       `json:"deliveryPhone"`                                                        // 配送电话
-	DeliveryId              int          `json:"deliveryId"`                                                           // 配送人id
-	ReCheckId               int          `json:"reCheckId"`                                                            // 复核人id
-	Quantity                int          `json:"quantity"`                                                             // 药品数量
-	Remark                  string       `json:"remark"`                                                               // 运输备注
-	TamperProofLabel        string       `json:"tamperProofLabel"`                                                     // 防拆码标签
-	TamperProofLabelImg     string       `json:"tamperProofLabelImg"`                                                  // 防拆码标签图片
-	CoolerBoxId             int          `json:"coolerBoxId"`                                                          // 保温箱id
-	IsSecondaryDistribution bool         `json:"is_secondary_distribution"`                                            //是否二次分配
-	Drugs                   []model.Drug `json:"drugs"`                                                                //药品信息
-	IsPhone                 bool         `json:"is_phone"`                                                             //是否手机添加订单
+	Id                      int               `json:"id" comment:"编码" swaggerignore:"true"`                                 // 编码
+	No                      string            `json:"no" swaggerignore:"true"`                                              //单号
+	OrderNo                 string            `json:"orderNo"`                                                              // 订单号
+	Status                  int               `json:"status" swaggerignore:"true"`                                          //订单状态:1-待处理;102-待装车 103-运输中 104-已签收
+	SaveConsigneeAddress    bool              `json:"SaveConsigneeAddress"`                                                 //保存收货地址
+	ConsigneeAddressDetails string            `json:"consigneeAddressDetails"`                                              //收发货地址详情
+	ConsigneeAddressName    string            `json:"consigneeAddressName"`                                                 //收发货地址名称
+	ConsigneeAddressPhone   string            `json:"consigneeAddressPhone" vd:"regexp('^1[3-9]\\d{9}$');msg:'收件人电话格式不正确'"` //收发货地址电话
+	DeliveryName            string            `json:"deliveryName"`                                                         // 配送姓名
+	DeliveryPhone           string            `json:"deliveryPhone"`                                                        // 配送电话
+	DeliveryId              int               `json:"deliveryId"`                                                           // 配送人id
+	ReCheckId               int               `json:"reCheckId"`                                                            // 复核人id
+	Quantity                int               `json:"quantity"`                                                             // 药品数量
+	Remark                  string            `json:"remark"`                                                               // 运输备注
+	TamperProofLabel        string            `json:"tamperProofLabel"`                                                     // 防拆码标签
+	TamperProofLabelImg     string            `json:"tamperProofLabelImg"`                                                  // 防拆码标签图片
+	CoolerBoxId             int               `json:"coolerBoxId"`                                                          // 保温箱id
+	IsSecondaryDistribution bool              `json:"is_secondary_distribution"`                                            //是否二次分配
+	Drugs                   []model.Drug      `json:"drugs"`                                                                //药品信息
+	IsPhone                 bool              `json:"is_phone"`                                                             //是否手机添加订单
+	Prescription            model2.StringList `json:"prescription"`
 	model2.ControlBy        `swaggerignore:"true"`
 	model2.ControlBy        `swaggerignore:"true"`
 	model2.DeptBy
 	model2.DeptBy
 }
 }
@@ -86,6 +87,7 @@ func (s *WaybillInsertReq) Generate(m *model.Waybill) {
 	m.TamperProofLabelImg = s.TamperProofLabelImg
 	m.TamperProofLabelImg = s.TamperProofLabelImg
 	m.CoolerBoxId = s.CoolerBoxId
 	m.CoolerBoxId = s.CoolerBoxId
 	m.IsSecondaryDistribution = s.IsSecondaryDistribution
 	m.IsSecondaryDistribution = s.IsSecondaryDistribution
+	m.Prescription = s.Prescription
 	m.OrderTime = model2.Time(time.Now())
 	m.OrderTime = model2.Time(time.Now())
 
 
 	if s.ControlBy.UpdateBy != 0 {
 	if s.ControlBy.UpdateBy != 0 {
@@ -104,24 +106,25 @@ func (s *WaybillInsertReq) GetId() interface{} {
 }
 }
 
 
 type WaybillAssignment struct {
 type WaybillAssignment struct {
-	WaybillNo               string       `json:"waybillNo" comment:"运单号" swaggerignore:"true"`                         // 编码
-	OrderNo                 string       `json:"orderNo"`                                                              // 订单号
-	Status                  int          `json:"status" swaggerignore:"true"`                                          //订单状态:1-待处理;102-待装车 103-运输中 104-已签收
-	SaveConsigneeAddress    bool         `json:"SaveConsigneeAddress"`                                                 //保存收货地址
-	ConsigneeAddressDetails string       `json:"consigneeAddressDetails"`                                              //收发货地址详情
-	ConsigneeAddressName    string       `json:"consigneeAddressName"`                                                 //收发货地址名称
-	ConsigneeAddressPhone   string       `json:"consigneeAddressPhone" vd:"regexp('^1[3-9]\\d{9}$');msg:'收件人电话格式不正确'"` //收发货地址电话
-	DeliveryName            string       `json:"deliveryName"`                                                         // 配送姓名
-	DeliveryPhone           string       `json:"deliveryPhone"`                                                        // 配送电话
-	DeliveryId              int          `json:"deliveryId"`                                                           // 配送人id
-	ReCheckId               int          `json:"reCheckId"`                                                            // 复核人id
-	Quantity                int          `json:"quantity"`                                                             // 药品数量
-	Remark                  string       `json:"remark"`                                                               // 运输备注
-	TamperProofLabel        string       `json:"tamperProofLabel"`                                                     // 防拆码标签
-	TamperProofLabelImg     string       `json:"tamperProofLabelImg"`                                                  // 防拆码标签图片
-	CoolerBoxId             int          `json:"coolerBoxId"`                                                          // 保温箱id
-	IsSecondaryDistribution bool         `json:"is_secondary_distribution"`                                            //是否二次分配
-	Drugs                   []model.Drug `json:"drugs"`                                                                //药品信息
+	WaybillNo               string            `json:"waybillNo" comment:"运单号" swaggerignore:"true"`                         // 编码
+	OrderNo                 string            `json:"orderNo"`                                                              // 订单号
+	Status                  int               `json:"status" swaggerignore:"true"`                                          //订单状态:1-待处理;102-待装车 103-运输中 104-已签收
+	SaveConsigneeAddress    bool              `json:"SaveConsigneeAddress"`                                                 //保存收货地址
+	ConsigneeAddressDetails string            `json:"consigneeAddressDetails"`                                              //收发货地址详情
+	ConsigneeAddressName    string            `json:"consigneeAddressName"`                                                 //收发货地址名称
+	ConsigneeAddressPhone   string            `json:"consigneeAddressPhone" vd:"regexp('^1[3-9]\\d{9}$');msg:'收件人电话格式不正确'"` //收发货地址电话
+	DeliveryName            string            `json:"deliveryName"`                                                         // 配送姓名
+	DeliveryPhone           string            `json:"deliveryPhone"`                                                        // 配送电话
+	DeliveryId              int               `json:"deliveryId"`                                                           // 配送人id
+	ReCheckId               int               `json:"reCheckId"`                                                            // 复核人id
+	Quantity                int               `json:"quantity"`                                                             // 药品数量
+	Remark                  string            `json:"remark"`                                                               // 运输备注
+	TamperProofLabel        string            `json:"tamperProofLabel"`                                                     // 防拆码标签
+	TamperProofLabelImg     string            `json:"tamperProofLabelImg"`                                                  // 防拆码标签图片
+	CoolerBoxId             int               `json:"coolerBoxId"`                                                          // 保温箱id
+	IsSecondaryDistribution bool              `json:"is_secondary_distribution"`                                            //是否二次分配
+	Drugs                   []model.Drug      `json:"drugs"`                                                                //药品信息
+	Prescription            model2.StringList `json:"prescription"`
 	model2.ControlBy        `swaggerignore:"true"`
 	model2.ControlBy        `swaggerignore:"true"`
 	model2.DeptBy
 	model2.DeptBy
 }
 }
@@ -141,7 +144,7 @@ func (s *WaybillAssignment) Generate(m *model.Waybill) {
 	m.CoolerBoxId = s.CoolerBoxId
 	m.CoolerBoxId = s.CoolerBoxId
 	m.IsSecondaryDistribution = s.IsSecondaryDistribution
 	m.IsSecondaryDistribution = s.IsSecondaryDistribution
 	m.OrderTime = model2.Time(time.Now())
 	m.OrderTime = model2.Time(time.Now())
-
+	m.Prescription = s.Prescription
 	if s.ControlBy.UpdateBy != 0 {
 	if s.ControlBy.UpdateBy != 0 {
 		m.UpdateBy = s.UpdateBy
 		m.UpdateBy = s.UpdateBy
 	}
 	}
@@ -154,21 +157,22 @@ func (s *WaybillAssignment) Generate(m *model.Waybill) {
 }
 }
 
 
 type WaybillUpdateReq struct {
 type WaybillUpdateReq struct {
-	Id                      int    `json:"id" comment:"编码" swaggerignore:"true"` // 编码
-	OrderNo                 string `json:"orderNo"`
-	ConsigneeAddressDetails string `json:"consigneeAddressDetails"` //收发货地址详情
-	ConsigneeAddressName    string `json:"consigneeAddressName"`    //收发货地址名称
-	ConsigneeAddressPhone   string `json:"consigneeAddressPhone"`   //收发货地址电话
-	DeliveryName            string `json:"deliveryName"`            // 配送姓名
-	DeliveryPhone           string `json:"deliveryPhone"`           // 配送电话
-	DeliveryId              int    `json:"deliveryId"`              // 配送id
-	ReCheckId               int    `json:"reCheckId"`               // 复核人id
-	TamperProofLabel        string `json:"tamperProofLabel"`        //防拆标签
-	TamperProofLabelImg     string `json:"tamperProofLabelImg"`     //防拆码标签图片
-	DeliveryCondition       string `json:"deliveryCondition"`       //配送要求
-	Quantity                int    `json:"quantity"`                //药品数量
-	Remark                  string `json:"remark"`                  //运输备注
-	CoolerBoxId             int    `json:"coolerBoxId"`             //保温箱id
+	Id                      int               `json:"id" comment:"编码" swaggerignore:"true"` // 编码
+	OrderNo                 string            `json:"orderNo"`
+	ConsigneeAddressDetails string            `json:"consigneeAddressDetails"` //收发货地址详情
+	ConsigneeAddressName    string            `json:"consigneeAddressName"`    //收发货地址名称
+	ConsigneeAddressPhone   string            `json:"consigneeAddressPhone"`   //收发货地址电话
+	DeliveryName            string            `json:"deliveryName"`            // 配送姓名
+	DeliveryPhone           string            `json:"deliveryPhone"`           // 配送电话
+	DeliveryId              int               `json:"deliveryId"`              // 配送id
+	ReCheckId               int               `json:"reCheckId"`               // 复核人id
+	TamperProofLabel        string            `json:"tamperProofLabel"`        //防拆标签
+	TamperProofLabelImg     string            `json:"tamperProofLabelImg"`     //防拆码标签图片
+	DeliveryCondition       string            `json:"deliveryCondition"`       //配送要求
+	Quantity                int               `json:"quantity"`                //药品数量
+	Remark                  string            `json:"remark"`                  //运输备注
+	CoolerBoxId             int               `json:"coolerBoxId"`             //保温箱id
+	Prescription            model2.StringList `json:"prescription"`
 	model2.ControlBy        `swaggerignore:"true"`
 	model2.ControlBy        `swaggerignore:"true"`
 	model2.DeptBy           `swaggerignore:"true"`
 	model2.DeptBy           `swaggerignore:"true"`
 }
 }
@@ -208,6 +212,7 @@ func (s *WaybillUpdateReq) Generate(m *model.Waybill) {
 	m.Remark = s.Remark
 	m.Remark = s.Remark
 	m.TamperProofLabel = s.TamperProofLabel
 	m.TamperProofLabel = s.TamperProofLabel
 	m.TamperProofLabelImg = s.TamperProofLabelImg
 	m.TamperProofLabelImg = s.TamperProofLabelImg
+	m.Prescription = s.Prescription
 	if s.CoolerBoxId > 0 {
 	if s.CoolerBoxId > 0 {
 		m.CoolerBoxId = s.CoolerBoxId
 		m.CoolerBoxId = s.CoolerBoxId
 	}
 	}

+ 1 - 1
app/admin/service/ice_raft.go

@@ -593,7 +593,7 @@ func (e *IceRaft) IsOutStorage(c *dto.IceOutStorageReq, p *actions.DataPermissio
 
 
 		for _, vs := range iceRaftRecordModel.FreezeClaim {
 		for _, vs := range iceRaftRecordModel.FreezeClaim {
 			if inTime.Add(time.Hour * time.Duration(vs)).After(time.Now()) {
 			if inTime.Add(time.Hour * time.Duration(vs)).After(time.Now()) {
-				str = fmt.Sprintf("冰排编号【%s】未达到冷冻时长【%v】小时,已达到冷冻时长【%v】,是否继续出库", v, vs, time.Now().Sub(inTime))
+				str = fmt.Sprintf("冰排编号【%s】未达到冷冻时长【%v】小时,已达到冷冻时长【%v】,是否继续出库", v, vs, time.Now().Sub(inTime).Hours())
 				break
 				break
 			}
 			}
 		}
 		}

+ 85 - 68
app/admin/service/waybill.go

@@ -146,6 +146,12 @@ func (e *Waybill) GetPage(c *dto.WaybillGetPageReq, list *[]model.Waybill, count
 		e.Log.Errorf("db error: %s", err)
 		e.Log.Errorf("db error: %s", err)
 		return global.GetFailedErr
 		return global.GetFailedErr
 	}
 	}
+	//查询对应药品信息
+	for i, _ := range *list {
+		var drugs []model.Drug
+		e.Orm.Where("drug.waybill_no = ?", (*list)[i].WaybillNo).Find(&drugs)
+		(*list)[i].Drugs = drugs
+	}
 	return nil
 	return nil
 }
 }
 func (e *Waybill) GetUserPage(c *dto.WaybillGetPageReq, list *[]model.Waybill, count *int64, p *actions.DataPermission) error {
 func (e *Waybill) GetUserPage(c *dto.WaybillGetPageReq, list *[]model.Waybill, count *int64, p *actions.DataPermission) error {
@@ -183,6 +189,12 @@ func (e *Waybill) GetUserPage(c *dto.WaybillGetPageReq, list *[]model.Waybill, c
 		e.Log.Errorf("db error: %s", err)
 		e.Log.Errorf("db error: %s", err)
 		return global.GetFailedErr
 		return global.GetFailedErr
 	}
 	}
+	//查询对应药品信息
+	for i, _ := range *list {
+		var drugs []model.Drug
+		e.Orm.Where("drug.waybill_no = ?", (*list)[i].WaybillNo).Find(&drugs)
+		(*list)[i].Drugs = drugs
+	}
 	return nil
 	return nil
 }
 }
 func (e *Waybill) GetAppletPage(c *dto.WaybillGetAppletPageReq, list *[]model.Waybill, count *int64, p *actions.DataPermission) error {
 func (e *Waybill) GetAppletPage(c *dto.WaybillGetAppletPageReq, list *[]model.Waybill, count *int64, p *actions.DataPermission) error {
@@ -513,52 +525,23 @@ func (e *Waybill) UpdateStatus(c *dto.UpdateStatusReq, p *actions.DataPermission
 			}
 			}
 			return global.UpdateFailedErr
 			return global.UpdateFailedErr
 		}
 		}
-
+		//添加确认人信息
+		if waybillModel.Status == model.WaybillStatusAudits {
+			err, sysUser := GetUserProfile(e.Orm, p.UserId)
+			if err != nil {
+				e.Log.Errorf("db 获取用户信息失败: %s", err)
+				return errors.New("获取用户信息失败")
+			}
+			waybillModel.Confirmer = sysUser.NickName
+			waybillModel.ConfirmerPhone = sysUser.Phone
+		}
 		waybillModel.Status = c.Status
 		waybillModel.Status = c.Status
-		err = tx.Table(waybillModel.TableName()).Where("id=?", v).Update("status", c.Status).Error
+		err = tx.Table(waybillModel.TableName()).Where("id=?", v).Updates(&waybillModel).Error
 		if err != nil {
 		if err != nil {
 			e.Log.Errorf("db error: %s", err)
 			e.Log.Errorf("db error: %s", err)
 			return global.UpdateFailedErr
 			return global.UpdateFailedErr
 		}
 		}
-		// 查询任务
-		//var logistics model.WaybillLogistics
-		//err = tx.Model(&logistics).Where("waybill_no = ? and status = ?", waybillModel.WaybillNo, model.WaybillStatusInDeliverys).
-		//	Last(&logistics).Error
-		//if err != nil {
-		//	if errors.Is(err, gorm.ErrRecordNotFound) {
-		//		// 添加物流
-		//		logisticsObj := model.WaybillLogistics{
-		//			WaybillNo: waybillModel.WaybillNo,
-		//			Status:    waybillModel.Status,
-		//			ControlBy: model2.ControlBy{
-		//				CreateBy: p.UserId,
-		//			},
-		//			DeptBy: model2.DeptBy{
-		//				DeptId: p.DeptId,
-		//			},
-		//		}
-		//		err = tx.Create(&logisticsObj).Error
-		//		if err != nil {
-		//			e.Log.Errorf("db error: %s", err)
-		//			return errors.New(fmt.Sprintf("保存运单物流信息失败:%s", err))
-		//		}
-		//	} else {
-		//		e.Log.Errorf("db error: %s", err)
-		//		return errors.New(fmt.Sprintf("保存运单物流信息失败:%s", err))
-		//	}
-		//}
-		//err = tx.Save(&logistics).Error
-		//if err != nil {
-		//	e.Log.Errorf("db error: %s", err)
-		//	return errors.New(fmt.Sprintf("保存运单物流信息失败:%s", err))
-		//}
 	}
 	}
-	//err = tx.Save(&waybillModel).Error
-	//if err != nil {
-	//	e.Log.Errorf("db error: %s", err)
-	//	return global.UpdateFailedErr
-	//}
-
 	return nil
 	return nil
 }
 }
 
 
@@ -574,6 +557,11 @@ func (e *Waybill) Delivery(c *dto.WaybillDeliveryReq, p *actions.DataPermission)
 			tx.Commit()
 			tx.Commit()
 		}
 		}
 	}()
 	}()
+	var user model.SysUser
+	first := e.Orm.Table(user.TableName()).Where("id = ?", p.UserId).First(&user)
+	if first.Error != nil {
+		return global.GetFailedErr
+	}
 
 
 	if !lib.StrListEqual(c.IceRaftCode, c.OldIceRaftCode) {
 	if !lib.StrListEqual(c.IceRaftCode, c.OldIceRaftCode) {
 		// 获取删除的冰排列表
 		// 获取删除的冰排列表
@@ -603,6 +591,7 @@ func (e *Waybill) Delivery(c *dto.WaybillDeliveryReq, p *actions.DataPermission)
 		//	}
 		//	}
 		//}
 		//}
 		// 获取新增的冰排列表
 		// 获取新增的冰排列表
+		//判断是否可以随时出库冰排
 		extraData := lib.FindStrListExtraData(c.OldIceRaftCode, c.IceRaftCode)
 		extraData := lib.FindStrListExtraData(c.OldIceRaftCode, c.IceRaftCode)
 		if len(extraData) > 0 {
 		if len(extraData) > 0 {
 			for _, code := range extraData {
 			for _, code := range extraData {
@@ -617,22 +606,49 @@ func (e *Waybill) Delivery(c *dto.WaybillDeliveryReq, p *actions.DataPermission)
 					}
 					}
 
 
 				}
 				}
-				if iceRaft.IceRaftRecord.Status != model.IceRaftRecordStatusWaitUse {
-					err = errors.New(fmt.Sprintf("冰排【%s】状态为%s,出库保温箱失败!", code, model.GetIceRaftRecordStatus(iceRaft.IceRaftRecord.Status)))
-					return err
+				if !user.Dept.IsOutStorage {
+					if iceRaft.IceRaftRecord.Status != model.IceRaftRecordStatusWaitUse {
+						err = errors.New(fmt.Sprintf("冰排【%s】状态为%s,出库保温箱失败!", code, model.GetIceRaftRecordStatus(iceRaft.IceRaftRecord.Status)))
+						return err
+					}
+					err = tx.Model(&model.IceRaftRecord{}).
+						Where("ice_raft_id = ? and status = ?", iceRaft.Id, model.IceRaftRecordStatusWaitUse).
+						Updates(map[string]interface{}{
+							"status":           model.IceRaftRecordStatusUsing,
+							"out_storage_time": time.Now(),
+							"cooler_box_id":    c.CoolerBoxId,
+						}).Error
+					if err != nil {
+						e.Log.Errorf("db error: %s", err)
+						return errors.New(fmt.Sprintf("冰排【%s】出库失败", iceRaft.Code))
+					}
+
+				} else {
+					err = tx.Model(&model.IceRaftRecord{}).
+						Where("ice_raft_id = ? and status = ?", iceRaft.Id, model.IceRaftRecordStatusFreezing).
+						Or("ice_raft_id = ? and status = ?", iceRaft.Id, model.IceRaftRecordStatusWaitUse).
+						Updates(map[string]interface{}{
+							"status":           model.IceRaftRecordStatusUsing,
+							"out_storage_time": time.Now(),
+							"cooler_box_id":    c.CoolerBoxId,
+						}).Error
+					if err != nil {
+						e.Log.Errorf("db error: %s", err)
+						return errors.New(fmt.Sprintf("冰排【%s】出库失败", iceRaft.Code))
+					}
 				}
 				}
 				// 获取冰排记录
 				// 获取冰排记录
-				err = tx.Model(&model.IceRaftRecord{}).
-					Where("ice_raft_id = ? and status = ?", iceRaft.Id, model.IceRaftRecordStatusWaitUse).
-					Updates(map[string]interface{}{
-						"status":           model.IceRaftRecordStatusUsing,
-						"out_storage_time": time.Now(),
-						"cooler_box_id":    c.CoolerBoxId,
-					}).Error
-				if err != nil {
-					e.Log.Errorf("db error: %s", err)
-					return errors.New(fmt.Sprintf("冰排【%s】出库失败", iceRaft.Code))
-				}
+				//err = tx.Model(&model.IceRaftRecord{}).
+				//	Where("ice_raft_id = ? and status = ?", iceRaft.Id, model.IceRaftRecordStatusWaitUse).
+				//	Updates(map[string]interface{}{
+				//		"status":           model.IceRaftRecordStatusUsing,
+				//		"out_storage_time": time.Now(),
+				//		"cooler_box_id":    c.CoolerBoxId,
+				//	}).Error
+				//if err != nil {
+				//	e.Log.Errorf("db error: %s", err)
+				//	return errors.New(fmt.Sprintf("冰排【%s】出库失败", iceRaft.Code))
+				//}
 			}
 			}
 		}
 		}
 	}
 	}
@@ -647,11 +663,6 @@ func (e *Waybill) Delivery(c *dto.WaybillDeliveryReq, p *actions.DataPermission)
 			return errors.New("获取保温箱信息失败")
 			return errors.New("获取保温箱信息失败")
 		}
 		}
 	}
 	}
-	var user model.SysUser
-	first := e.Orm.Table(user.TableName()).Where("id = ?", p.UserId).First(&user)
-	if first.Error != nil {
-		return global.GetFailedErr
-	}
 
 
 	for _, id := range c.WaybillIds {
 	for _, id := range c.WaybillIds {
 
 
@@ -681,14 +692,6 @@ func (e *Waybill) Delivery(c *dto.WaybillDeliveryReq, p *actions.DataPermission)
 			waybillModel.IceRaftCode = c.IceRaftCode
 			waybillModel.IceRaftCode = c.IceRaftCode
 			if c.Status == model.WaybillStatusInShippeds {
 			if c.Status == model.WaybillStatusInShippeds {
 				waybillModel.Status = c.Status
 				waybillModel.Status = c.Status
-				// 查询保温箱信息
-				//var coolerBoxModel model.CoolerBox
-				//err = e.Orm.Scopes(actions.Permission(coolerBoxModel.TableName(), p)).
-				//	First(&coolerBoxModel, c.CoolerBoxId).Error
-				//if err != nil {
-				//	e.Log.Errorf("查询保温箱信息失败: %s", err)
-				//	return errors.New("查询保温箱信息失败")
-				//}
 				var data model.IceRaft
 				var data model.IceRaft
 				var list []string
 				var list []string
 				err := e.Orm.Model(&data).
 				err := e.Orm.Model(&data).
@@ -708,7 +711,7 @@ func (e *Waybill) Delivery(c *dto.WaybillDeliveryReq, p *actions.DataPermission)
 				var cooler model.CoolerBoxRecord
 				var cooler model.CoolerBoxRecord
 				var count int64
 				var count int64
 				e.Orm.Scopes(actions.Permission(cooler.TableName(), p)).
 				e.Orm.Scopes(actions.Permission(cooler.TableName(), p)).
-					First(&cooler).Where("cooler_box_id = ?", coolerBox.Id).Where("status = ?", 1).Count(&count)
+					Where("cooler_box_id = ?", c.CoolerBoxId).Where("status = ?", 1).First(&cooler).Count(&count)
 				if count == 0 {
 				if count == 0 {
 					cooler.CoolerUseUsers = user.NickName
 					cooler.CoolerUseUsers = user.NickName
 					cooler.HistoryCode = append(cooler.HistoryCode, list...)
 					cooler.HistoryCode = append(cooler.HistoryCode, list...)
@@ -1712,6 +1715,7 @@ func (e *Waybill) SecondaryDistribution(c *dto.WaybillAssignment, p *actions.Dat
 	waybil.DeliveryId = waybillModel.DeliveryId
 	waybil.DeliveryId = waybillModel.DeliveryId
 	waybil.DeliveryPhone = waybillModel.DeliveryPhone
 	waybil.DeliveryPhone = waybillModel.DeliveryPhone
 	waybil.OrderTime = model2.Time(time.Now())
 	waybil.OrderTime = model2.Time(time.Now())
+	waybil.IsSecondaryDistribution = false
 	c.Generate(&waybil)
 	c.Generate(&waybil)
 	err = tx.Create(&waybil).Error
 	err = tx.Create(&waybil).Error
 	if err != nil {
 	if err != nil {
@@ -1763,5 +1767,18 @@ func (e *Waybill) SecondaryDistribution(c *dto.WaybillAssignment, p *actions.Dat
 		e.Log.Errorf("更新运单失败: %s", err)
 		e.Log.Errorf("更新运单失败: %s", err)
 		return global.UpdateFailedErr
 		return global.UpdateFailedErr
 	}
 	}
+	// 二次分配订单发送短信
+	ss := sms.NewSMS(conf.ExtConfig.SubMail.Appid, conf.ExtConfig.SubMail.Signature)
+	addr := conf.ExtConfig.Applet.WaybillUrl + url.QueryEscape(lib.AesEncryptCBC(waybil.WaybillNo, lib.AesKey))
+	res, err1 := ss.SmsXSend(waybil.ConsigneeAddressPhone, addr)
+	if err1 != nil || res.Status != sms.SUCCESS {
+		e.Log.Errorf("派单短信发送失败", zap.Any("res", res), zap.Error(err1))
+		err = errors.New("派单短信发送失败,请检查收件人电话是否正确!")
+		return err
+	}
+	waybil.SendLog = model.WaybillSendLog{
+		Phone:   waybil.ConsigneeAddressPhone,
+		Content: "【冷链送药追溯平台】您的运单正在派送中,点击查看详情:" + addr,
+	}
 	return nil
 	return nil
 }
 }