210 lines
10 KiB
Plaintext
210 lines
10 KiB
Plaintext
|
||
|
||
Shopee WES客户化设计
|
||
|
||
文档编号:
|
||
Shopee_011
|
||
|
||
文档内容:
|
||
AGV分拣出库
|
||
|
||
版本:
|
||
1.0
|
||
|
||
项目经理:
|
||
|
||
客户经理:
|
||
|
||
确认人:
|
||
|
||
确认日期:
|
||
|
||
修改历史:
|
||
作者
|
||
时间
|
||
版本
|
||
备注
|
||
|
||
张庆辉
|
||
2026-05-15
|
||
1.0
|
||
方案初版
|
||
|
||
业务流程
|
||
主流程
|
||
流程名称
|
||
描述
|
||
应用场景
|
||
设备类型
|
||
|
||
业务描述
|
||
|
||
修改范围
|
||
UI增加AGV分拣出库
|
||
前提条件
|
||
N/A
|
||
新增表/字段
|
||
AGV分拣首选项
|
||
agv_preference
|
||
字段名
|
||
含义
|
||
类型
|
||
长度
|
||
非空
|
||
默认值
|
||
|
||
id
|
||
内部号
|
||
bigint
|
||
|
||
Y
|
||
|
||
code
|
||
编码
|
||
varchar
|
||
50
|
||
Y
|
||
|
||
name
|
||
名称
|
||
varchar
|
||
50
|
||
N
|
||
|
||
warehouseCode
|
||
仓库
|
||
varchar
|
||
50
|
||
Y
|
||
|
||
initDocType
|
||
分拣方式
|
||
varchar
|
||
500
|
||
Y
|
||
固定下拉框选择(批量和按单两种)
|
||
|
||
allUsers
|
||
所有用户
|
||
int
|
||
|
||
N
|
||
0
|
||
|
||
useAsDefault
|
||
是否默认
|
||
int
|
||
|
||
N
|
||
0
|
||
|
||
参数设置
|
||
参数
|
||
取值范围
|
||
模块
|
||
描述
|
||
|
||
功能设计
|
||
|
||
UI
|
||
一.新增AGV分拣首选项界面
|
||
界面可以参考包装复合首选项,可以按照人员设置对应权限。
|
||
|
||
新增UI界面AGV分拣
|
||
|
||
打开界面,选择对应的工作站进行登录;
|
||
|
||
扫描工作站后,需要检测当前工作站是否在wcs_work_station表存在。
|
||
进入管理界面;
|
||
A点击开始按钮,弹框选择出库单类型。弹框显示的内容为出库单类型,点击单选
|
||
|
||
选择后判断工作台的模式currentJobMode=0或者2,则提示成功,并将currentJobMode更新为2; 将选择的出库单类型更新到当前工作台表的tasktype字段。
|
||
若此工作台的currentJobMode!=0或者2,则提示“此工作台正在进行其他工作,不允许开始”;
|
||
|
||
B点击退出,若此工作台的currentJobMode=2,则提示成功,并将currentJobMode更新为0;
|
||
点击暂停,将接单状态acceptStatus更新为0;图表显示为继续
|
||
点击继续,将接单状态acceptStatus更新为1;图表显示为暂停
|
||
|
||
绑箱:点击绑箱,弹框显示
|
||
货架号:XXXXXXX
|
||
周转箱号:XXXXXXX
|
||
扫描货架号,判断必须在wcs_sorting_wall存在,若不存在,则报错
|
||
另外wcs_sorting_wall的LPN必须为空为NULL ,否则报错,提醒“当前货架已存在周转箱”
|
||
扫描周转箱后调用上游WMS的周转箱检查接口,WMS返回成功可用,才可以绑定。将周转箱号更新到wcs_sorting_wall表的LPN。
|
||
若返回不可用,则提示“当前周转箱不可用”
|
||
满箱
|
||
点击满箱,弹框显示
|
||
货架号:XXXXXXX
|
||
周转箱号:XXXXXXX
|
||
扫描货架号,判断必须在wcs_sorting_wall存在,若不存在,则报错
|
||
另外wcs_sorting_wall的LPN必须为有值,否则报错,提醒“当前货架无箱”
|
||
扫描周转箱后调用上游WMS的周转箱检查接口,WMS返回成功可用,才可以绑定。将周转箱号更新到wcs_sorting_wall表的LPN。
|
||
若返回不可用,则提示“当前周转箱不可用”
|
||
G.封箱:点击封箱,弹框显示
|
||
货架号:XXXXXXX
|
||
扫描货架号,判断必须在wcs_sorting_wall存在,若不存在,则报错
|
||
另外wcs_sorting_wall的sy_status必须=6,任务完成状态。将当前格口Task_ID,lpn清空,sy_status更新=0,还需下发当前格口灭灯指令。(之前下发过亮绿灯指令)
|
||
G:封箱后面增加缺料按钮
|
||
点击按钮,弹框进行二次确认,则当前周转箱货品+批次的订单需要重新分配。
|
||
继续判断当前周转箱是否有其他货品需要分拣,若有则显示下一个货品的分拣信息(注意批量和按单)
|
||
若当前周转箱无其他货品需要分拣,则下发周转箱回库调度指令
|
||
同时也生产缺料的盘点单,盘点类型=缺料。盘点单的具体字段见盘点客户化文档
|
||
|
||
波次任务分配
|
||
详情见专属客户化文档
|
||
3.波次任务分配到分拣墙(计划任务)
|
||
A.系统用计划任务检测到工作台表存在的currentJobMode=2,acceptStatus=1,status=1的工作台,可能会多个工作台,需要轮询。先找到找到电子标签货架表wcs_sorting_wall,此工作台对应的的货位workStationCode=当前工作台。判断此工作台Task_ID是否有为NULL的货位,若有货位的Task_ID有值,则不下发任务。若存在Task_ID为空或为NULL的货位,则找到符合下面条件的任务。
|
||
b.波次任务条件:出库单仓库=当前仓库,拣货任务头已释放,任务从货位区域=AGV区域,任务头状态为100,任务头的自定义2字段为空或为null,任务头的自定义1字段(出库任务类型)在电子标签货架表wcs_sorting_wal的cktype类型里包含。(分拣墙的波次任务类型维护多个),而且任务表头的上游波次号自定义4关联上游波次号段表(波次分配客户化确定),上游波次号段表的是否已分配字段自定义1为空为null。
|
||
|
||
将任务分配到电子标签货架表wcs_sorting_wal上,将任务表头的上游波次号自定义4更新到Task_ID字段,sy_status更新=2。任务头自定义2更新为当前时间,自定义3更新为电子标签货架货位号。也将上游波次号段表的是否已分配字段自定义1更新=1.
|
||
|
||
D、继续执行下一个工作台分配
|
||
4.下发AGV任务(计划任务)
|
||
a.(找出库的工作台)工作台表存在的currentJobMode=2,acceptStatus=1,status=1的工作台,可能会多个工作台,需要轮询。工作台对应的分拣墙已经存在执行的任务(Sorting_location表的Task_ID有值,sy_status=2),
|
||
b. (查询当前为完成的周转箱数量)查询自动化调度表wcs_dispatch_task的状态processStatus是未完成,工作台workStationCode等于当前工作台的数量Y。
|
||
判断Y是否小于当前工作台workStationCode表ZDagv维护的数量,若小于则继续执行。若大于,则跳过当前工作台,执行下个工作台。
|
||
C.若小于,则找分拣墙的Task_ID(任务表头的上游波次号自定义4)下的拣货任务的从区域=agv库区,拣货任务头是已释放,拣货明细的从LPN关联周转箱表wcs_container,周转箱表的onHandStatus状态=“10”)的分拣墙分配的拣货任务明细,并按照货品进行排序,找到的周转箱数量最多是workStationCode表ZDagv维护的数量。
|
||
D.根据周转箱,下发AGV任务,每个周转箱是一个报文。
|
||
下发到wcs_dispatch_task调度表。
|
||
|
||
5.AGV搬运任务完成
|
||
接口收到AGV完成的搬运回传指令,WMS将调度表的任务完成。
|
||
|
||
6.扫描周转箱分拣
|
||
a电脑扫描枪扫描已经到达工作台的周转箱号,根据周转箱找到分拣墙 下任务对应的此周转箱status=100的任务明细,若不存在,则提示“无此周转箱任务”,
|
||
b若存在,则电脑分拣界面选择的首选项来判断显示。若首选项initDocType类型是批量。
|
||
则显示此周转箱第一个货品+批次+库存状态的找到所有分拣墙格口的任务分拣信息。(按照每个货品所有格口任务进行分拣。)
|
||
若initDocType类型是按单,则显示此周转箱第一个货品+批次+库存状态的找到第一个分拣格口任务的分拣信息。(按照每个货品单个格口任务进行分拣。)
|
||
|
||
D.显示内容:左边是当前周转箱的信息,需要根据周转箱表的格口数进行动态显示,格口数存在1,2,4,6,8.当前周转箱分拣货位所在货位格口需要放大蓝色显示。
|
||
中间显示的是当前分拣的数量,下面是货品的图片,货品名称,货品sku编码(UPC),
|
||
若
|
||
|
||
左边显示的分拣墙的示意图,每个工作台有2组货架,1组是4层*5=20个货架,2组是3层*5=15个货架,共35个货架。显示的内容是工作台wcs_sorting_wall表groupIndex的。若分拣墙货位所在格口需要放大蓝色显示,下面显示对应格口的分拣数量。
|
||
扫描货品
|
||
扫描周转箱,显示第一个货品的分拣信息。然后扫描货品SKU编码,盘点当前周转箱货品SKU+批次库存是否冻结,若冻结则弹框提醒”当前货品批次已冻结,需要重新分配”。
|
||
若点击了确认,则当前周转箱货品+批次的订单需要重新分配。
|
||
继续判断当前周转箱是否有其他货品需要分拣,若有则显示下一个货品的分拣信息(注意批量和按单)
|
||
若当前周转箱无其他货品需要分拣,则下发周转箱回库调度指令。
|
||
|
||
下发电子标签指令
|
||
扫描周转箱,显示第一个货品的分拣信息。然后扫描货品SKU编码,当前货品没用冻结。还需判断分拣货架表在wcs_sorting_wall表LPN必须都有值。若无值,则提醒“需要绑定订单箱”
|
||
若都有值则下发当前周转箱SKU对应分拣墙的电子标签亮红灯。
|
||
电子标签 id维护在wcs_sorting_wall表的lamp字段。下发成功后将周转箱,货品,批次更新到wcs_sorting_wall表当前货架的fj_lpn,fj_sku,fj_batch字段。并且wcs_sorting_wall表的sy_status更新=4
|
||
|
||
G.若货品管控序列号则,扫描SKU后弹框扫描采集序列号。
|
||
|
||
任务确认
|
||
(可参考国电南瑞项目,汤星明技术经理)UI分拣界面需要监测到电子标签拍灯接口,若节课报文返回的分拣墙货位wcs_sorting_wall表的sy_status=4,则是任务确认,根据记录的周转箱,货品,批次进行当前任务的确认。任务确认的时候将当前分拣货架wcs_sorting_wall的订单箱LPN更新到任务确认的任务明细自定义1字段。
|
||
还要清空当前wcs_sorting_wall货架的fj_lpn,fj_sku,fj_batch字段,sy_status更新=2。
|
||
界面刷新,若首选项是批量,则显示周转箱下一个货品+批次的所有任务格口的分拣信息,
|
||
若是按单的首选项,则显示这个货品+批次下一个任务格口的分拣信息,若无其他任务,则找其他货品+批次的分拣信息。
|
||
若当前周转箱全部货品分拣完成,下发当前周转箱回库。
|
||
手工确认
|
||
为防止电子标签出问题,则保留人工手工任务确认。
|
||
在分拣界面点击右下角的完成指令,是将界面上的周转箱、货品、批次对应的任务格口进行确认。任务确认后,逻辑同上。
|
||
|
||
订单分拣完成
|
||
任务确认的时候,判断wcs_sorting_wall分拣墙格口的任务是否完成,若整个任务分拣完成,则下发当前格口电子标签绿灯。sy_status更新=6.
|
||
UI分拣界面需要监测到电子标签拍灯接口,若节课报文返回的分拣墙货位wcs_sorting_wall表的sy_status=6,则的封箱。将当前格口Task_ID,lpn清空,sy_status更新=0
|
||
|