|
@@ -30,6 +30,16 @@ func WaybillTaskTimeScopes(startTime, endTime string) func(db *gorm.DB) *gorm.DB
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func WaybillTaskIdsScopes(ids []int) func(db *gorm.DB) *gorm.DB {
|
|
|
+ return func(db *gorm.DB) *gorm.DB {
|
|
|
+ if len(ids) == 0 {
|
|
|
+ return db
|
|
|
+ }
|
|
|
+ return db.Where("id in (?)", ids)
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
// GetPage 获取WaybillTask列表
|
|
|
func (e *WaybillTask) GetPage(c *dto.WaybillTaskGetPageReq, list *[]model.WaybillTask, count *int64) error {
|
|
|
var err error
|
|
@@ -495,6 +505,89 @@ func (e *WaybillTask) Update(c *dto.WaybillTaskUpdateReq, p *actions.DataPermiss
|
|
|
}
|
|
|
return global.UpdateFailedErr
|
|
|
}
|
|
|
+ oldStartTime := waybillTaskModel.StartTime
|
|
|
+ oldEndTime := waybillTaskModel.EndTime
|
|
|
+
|
|
|
+ // 修改运单物流时间
|
|
|
+ if waybillTaskModel.StartTime != task.StartTime {
|
|
|
+ var waybillLogistics = model.WaybillLogistics{}
|
|
|
+ // 查询运单是否存在
|
|
|
+ err = e.Orm.Scopes(actions.Permission(waybillLogistics.TableName(), p)).
|
|
|
+ Where("created_at = ?", oldStartTime).First(&waybillLogistics).Error
|
|
|
+ if err != nil {
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
+ if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
+ return global.UpdateNotFoundOrNoPermissionErr
|
|
|
+ }
|
|
|
+ return global.UpdateFailedErr
|
|
|
+ }
|
|
|
+ waybillLogistics.CreatedAt = task.StartTime
|
|
|
+ err = tx.Save(&waybillLogistics).Error
|
|
|
+ if err != nil {
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
+ return global.UpdateFailedErr
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改运单物流时间
|
|
|
+ if waybillTaskModel.EndTime != task.EndTime {
|
|
|
+ var waybillLogistics = model.WaybillLogistics{}
|
|
|
+ // 查询运单是否存在
|
|
|
+ err = e.Orm.Scopes(actions.Permission(waybillLogistics.TableName(), p)).
|
|
|
+ Where("created_at = ? and status != ?", oldEndTime, model.WaybillStatusReceipt).Last(&waybillLogistics).Error
|
|
|
+ if err != nil {
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
+ if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
+ return global.UpdateNotFoundOrNoPermissionErr
|
|
|
+ }
|
|
|
+ return global.UpdateFailedErr
|
|
|
+ }
|
|
|
+ waybillLogistics.CreatedAt = task.EndTime
|
|
|
+ err = tx.Save(&waybillLogistics).Error
|
|
|
+ if err != nil {
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
+ return global.UpdateFailedErr
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改运单物流时间
|
|
|
+ if waybillTaskModel.EndTime != task.EndTime {
|
|
|
+ var waybillLogistics = model.WaybillLogistics{}
|
|
|
+ // 查询运单是否存在
|
|
|
+ err = e.Orm.Scopes(actions.Permission(waybillLogistics.TableName(), p)).
|
|
|
+ Where("created_at = ? and status = ?", oldEndTime, model.WaybillStatusReceipt).Last(&waybillLogistics).Error
|
|
|
+ if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
+ return global.UpdateFailedErr
|
|
|
+ }
|
|
|
+ if waybillLogistics.Id > 0 {
|
|
|
+ waybillLogistics.CreatedAt = task.EndTime
|
|
|
+ err = tx.Save(&waybillLogistics).Error
|
|
|
+ if err != nil {
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
+ return global.UpdateFailedErr
|
|
|
+ }
|
|
|
+ // 修改运单签收时间
|
|
|
+ var waybillModel = model.Waybill{}
|
|
|
+ // 查询运单是否存在
|
|
|
+ err = tx.Scopes(actions.Permission(waybillModel.TableName(), p)).
|
|
|
+ Where("waybill_no = ?", waybillLogistics.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不存在", waybillLogistics.WaybillNo))
|
|
|
+ }
|
|
|
+ return errors.New(fmt.Sprintf("运单号%s查询失败", waybillLogistics.WaybillNo))
|
|
|
+ }
|
|
|
+ waybillModel.ReceiptTime = task.StartTime
|
|
|
+ err = tx.Save(&waybillModel).Error
|
|
|
+ if err != nil {
|
|
|
+ e.Log.Errorf("db error: %s", err)
|
|
|
+ return errors.New(fmt.Sprintf("保存运单信息失败:%s", err))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
waybillTaskModel.StartTime = task.StartTime
|
|
|
waybillTaskModel.EndTime = task.EndTime
|
|
@@ -504,6 +597,7 @@ func (e *WaybillTask) Update(c *dto.WaybillTaskUpdateReq, p *actions.DataPermiss
|
|
|
e.Log.Errorf("db error: %s", err)
|
|
|
return global.UpdateFailedErr
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
return nil
|