Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

mshop_shippicker.md 7.0KB

Порт приложения shop_job

Используемые схемы данных:

1. job_data

{
  "_id": "6315990c0178dd8a83657b31",
  "id": "125_12165",
  "type": "ПОДТОВАРКА_ХАБ",
  "number": "125-S12165",
  "title": "Подтоварка из 125 в 111",
  "date": "2022-09-05T11:42:39.000Z",
  "from": "125",
  "to": "111",
  "store": "ТорговыйЗал",
  "comment": "Ежедневная подтоварка из 125 в 111 ",
  "user": {
    "id": "b3eb970a-06a6-11ed-a98f-fa163e191731",
    "title": "Линейцева В.В."
  },
  "items": {
    "124610": {
      "id": "124610",
      "image": "https://media.saticogroup.com/media/marmalato/www/0/116242-0.jpg",
      "image2": "https://media.saticogroup.com/media/marmalato/www/1/101-045.jpg",
      "article": "101-045",
      "color": "ЧЕРНЫЙ-БЕЛЫЙ-СЕРЕБРО",
      "size": "XS/S",
      "title": "РЕМЕНЬ",
      "desc": "",
      "qty": 1,
      "codes": [
        {
          "code": "124610",
          "limit": 1
        }
      ]
    },
    "132634": {
      "id": "132634",
      "image": "https://media.saticogroup.com/media/marmalato/www/0/128096-0.jpg",
      "image2": "https://media.saticogroup.com/media/marmalato/www/1/235-012.jpg",
      "article": "235-012",
      "color": "БЕЖЕВЫЙ",
      "size": "38",
      "title": "БОСОНОЖКИ",
      "desc": "",
      "qty": 1,
      "codes": [
        {
          "code": "SGTN333",
          "limit": 1
        },
        {
          "code": "SGTN493",
          "limit": 1
        },
        {
          "code": "SGTN779",
          "limit": 1
        },
        {
          "code": "SGTN875",
          "limit": 1
        }
      ]
    }
  }
}    

2. job_state

{
  "job_id": "125_12165",
  "state": "НОВЫЙ",
  "current_pack_id": "125-S12165-1",
  "opened": "2022-09-05T02:36:59.000Z",
  "closed": null,
  "updated": "2025-05-23T09:26:37.773Z",
  "user": {
    "id": "b3eb970a-06a6-11ed-a98f-fa163e191731",
    "title": "Линейцева В.В."
  },
  "version": 11,
  "auto_save": false,
  "packs": {
    "125-S12165-1": {
      "pack_id": "125-S12165-1",
      "items": {
        "124610": {},
        "129439": {
          "129439": 1
        },
        "135213": {
          "135213": 1
        },
        ...,
        "135064,130194": {
          "135064": 1
        },
        "132859,135047": {
          "135047": 1
        },
      },
      "state": "ЗАКРЫТА",
      "user": {
        "id": "b3eb970a-06a6-11ed-a98f-fa163e191731",
        "title": "Линейцева В.В."
      },
      "opened": "2022-09-05T06:37:09.791Z",
      "item_updates": {
        "124610": "2022-09-05T14:32:35.594Z",
        "129439": "2022-09-05T14:33:20.922Z",
        "133480": "2022-09-05T06:45:07.390Z",
        "135193": "2022-09-05T06:41:27.346Z",
        ...
        "135202": "2022-09-05T06:42:00.226Z",
        "135213": "2022-09-05T06:42:28.544Z",
        "135064,130194": "2022-09-05T15:22:15.303Z",
        "132859,135047": "2022-09-05T15:22:59.674Z",
        "134396,132254": "2022-09-05T15:24:44.566Z",
        "134845,129456": "2022-09-05T15:25:27.555Z"
      },
      "updated": "2022-09-05T15:34:35.856Z",
      "closed": "2022-09-05T15:34:35.856Z",
      "confirmed": "2022-09-05T02:49:43.000Z"
    },
    "125-S12165-2": {
      "pack_id": "125-S12165-2",
      "items": {},
      "state": "УДАЛЕНА",
      "user": {
        "id": "b3eb970a-06a6-11ed-a98f-fa163e191731",
        "title": "Линейцева В.В."
      },
      "opened": "2022-09-05T15:28:40.345Z",
      "item_updates": {
        "124610": "2022-09-05T15:28:40.348Z"
      },
      "updated": "2022-09-05T15:28:40.348Z"
    },
    "125-S12165-3": {
      "pack_id": "125-S12165-3",
      "items": {
        "124610": {
          "124610": 1
        },
        "132029": {
          "132029": 1
        },
        "132435": {
          "SGFV243": 1
        },
        "132634": {
          "SGTN493": 1
        }
      },
      "state": "ОТКРЫТА",
      "user": {
        "id": "b3eb970a-06a6-11ed-a98f-fa163e191731",
        "title": "Линейцева В.В."
      },
      "opened": "2025-05-23T05:46:57.990Z",
      "item_updates": {
        "124610": "2025-05-23T09:26:31.394Z",
        "132435": "2025-05-23T09:26:34.188Z",
        "132634": "2025-05-23T09:26:37.773Z"
      },
      "updated": "2025-05-23T09:26:37.773Z"
    }
  },
  "current_item_id": "124610"
}

Текущие требования по ендпоинтам:

getState

получение стейта

GET /mshop/{dep}/shippicker/state

query-параметры:

	job_id: "job_id",

возврат:

{
	result: 1,
	job_id: integer,
	job_data: {
		...
	},
	job_state: {
		...
	}
}

saveState

Сохранение стейта целиком

POST /mshop/{dep}/shippicker/state

query-параметры:

	job_id: "job_id",

тело:

{
	...job_state
}

saveItemCode

Сохранение выбранного кода для отгрузки

POST /mshop/{dep}/shippicker/update_item,

query-параметры:

	job_id: "job_id",
	pack_id: "pack_id"

тело:

{
	id: item.id,
	code: code,
	qty: integer,
	date: date.now()
}

при удалении количество (qty) = 0

Частичные сохранения стейта

saveCurrentPosition

POST /mshop/{dep}/shippicker/state

query-параметры:

	job_id: "job_id",

тело:

{
	current_item_id: str
	current_pack_id: str
}

toggleAutosave

POST /mshop/{dep}/shippicker/state

query-параметры:

	job_id: "job_id",

тело:

{
	auto_save: bool
}

savePackState

POST /mshop/{dep}/shippicker/pack_state

query-параметры:

	job_id: "job_id",
	pack_id: "pack_id"

тело:

{
  state: string (ОТКРЫТА, ЗАКРЫТА, УДАЛЕНА), 
  date: now()
}

Новые методы

Список отгрузок (задач)

GET /mshop/{dep}/shippicker/list

query-параметры (опционально)

status=opened | closed (необязательный, default=opened)

возврат:

{
  result: true,
  message: "",
  tasks: [
    {
      id: 'job_id',
      title: 'string',
      comment: 'коммент',
      closed: datetime, 
      items_count: int,
      items_done: int,
      packs_count: int
    }
  ]
}

Печать этикетки для коробки

POST /mshop/{dep}/shippicker/print_label

query-params:

  • job_id
  • pack_id

возврат:

{
  result: true,
  message: ""
}

Закрытие задания

POST /mshop/{dep}/shippicker/close_job

query-параметры:

	job_id: "job_id",

возврат:

{
  result: true,
  message: ""
}

Открытие задания

POST /mshop/{dep}/shippicker/open_job

query-параметры:

	job_id: "job_id",

возврат:

{
  result: true,
  message: ""
}