业务组件
# 1 仓库管理
组件说明:仓库涉及的业务组件如下,注:业务组件凡是要记录人、记录时间、单据编号、上级单据编号的,都会获取主表的Creater,CreateTime、TableNo、UpTableNo值,下面不再重复。
# 1.1 入库、调拨
- 组件名称: IntoStoreDataApi
- 表:Mes_Store_InstoreHead,Mes_Store_InStorePart
- 关键字段:
a) Mes_Store_InstoreHead- StoreID:入库库位
b) Mes_Store_InstoreHead- FromStoreID:入库源库位,如果有值表示从FromStoreID到StoreID的一个调拨操作(注:有FromStoreID必须有Mes_Store_InStorePart- FromStoreSetID)
c) Mes_Store_InstoreHead-BussinessType:如果有值,会同步到明细账、流水账中,作为不同出入库业务的区分
d) Mes_Store_InStorePart-LotNo:入库的批号
e) Mes_Store_InStorePart- ProductName:入库的物品编码
f) Mes_Store_InStorePart- Num:入库的数量
g) Mes_Store_InStorePart- FromStoreSetID:入库的来源库位,如果有值表示从FromStoreSetID到StoreSetID的调拨操作
对入库组件赋值后,入库组件会进行以下处理
- 按照LotNo、ProductName、Num、StoreID、StoreSetID更新现存量、明细账、流水账
如果有FromStoreID和FromStoreSetID,会生成对应的出库单
# 1.2 出库、调拨
- 组件名称:OutStoreDataApi
- 表:Mes_Store_OutStoreHead,Mes_Store_OutStorePart
- 关键字段:
a) Mes_Store_ OutStoreHead - StoreID:出库库位
b) Mes_Store_ OutStoreHead - FromStoreID:出库目标库位,如果有值表示从StoreID到ToStoreID一个调拨操作(注:有ToStoreID必须有Mes_Store_InStorePart-ToStoreSetID)
c) Mes_Store_ OutStoreHead -BussinessType:如果有值,会同步到明细账、流水账中,作为不同出出库业务的区分
d) Mes_Store_ OutStorePart -LotNo:出库的批号
e) Mes_Store_ OutStorePart - ProductName:出库的物品编码
f) Mes_Store_ OutStorePart - Num:出库的数量,如果出库数量<条码数量,则会部分出库。当出库为调拨时(即有ToStoreID和ToStoreSetID时),部分出库会原批号出库,原批号的子批号入库
g) Mes_Store_ OutStorePart-FromStoreSetID:出库的来目标库位,如果有值表示从StoreSetID到ToStoreSetID到的调拨操作
# 1.3 装箱
- 组件名称:ContainerAddLotDataApi
- 表:Mes_Store_ContainerAddHead,Mes_Store_ContainerAddPart
- 关键字段:
a) Mes_Store_ContainerAddHead- ContainerNo:容器编号,要打包的编号
b) Mes_Store_ContainerAddHead- FromContainerNo:源容器编号,如果有值,则代表从FromContainerNo到ContainerNo 的过程
c) Mes_Store_ContainerAddPart:LotNo 、Num
数据保存后,后台会根据ContainerNo、LotNo、Num
- 往Mes_Store_ContainerLot插入容器-批次的关系数据,这张表ContainerNo-LotNo唯一
- 往Mes_Store_ContainerLotHistory插入容器-批次关系历史数据
- 会刷新Mes_Store_CurrentStore的ContainerNo字段
- 注意:装箱的LotNo必须StoreSetID相同
# 1.4 拆箱
- 组件名称:ContainerDisLotDataApi
- 表:Mes_Store_ContainerDisHead,Mes_Store_ContainerDisPart
- 关键字段:
a) Mes_Store_ ContainerDisHead - ContainerNo:容器编号,要拆箱的容器编号
b) Mes_Store_ ContainerDisHead - ToContainerNo:目标容器编号,如果有值,则代表从ContainerNo到ToContainerNo的过程
c) Mes_Store_ ContainerDisLotDataApi:LotNo、StoreSetID、Num
数据保存后,后台会根据ContainerNo、LotNo、Num
- 往Mes_Store_ContainerLot删除容器-批次的关系数据
- 往Mes_Store_ContainerLotHistory插入容器-批次关系历史数据
会刷新Mes_Store_CurrentStore的ContainerNo字段
# 1.5 拆批
- 组件名称:SplitStoreDataApi
- 表:Mes_Store_CLotSplitHead,Mes_Store_CLotSplitPart
- 关键字段:
a) Mes_Store_CLotSplitHead –ProductName, StoreID,StoreSetID:拆批会生成父批的出库单和子批的入库单,出入库单的物品、仓库、库位在此指定
b) Mes_Store_CLotSplitHead-LotNo:拆批的父批号,也是生成出库单的批号
c) Mes_Store_CLotSplitPart-LotNo:拆批的子批号,可指定,如果不指定则由系统自动生成,生成规则为父批次+流水号。子批号也是入库单的批号,如果指定的批号在现存量中存在,则该批号的现存量增加
d) Mes_Store_CLotSplitPart-Num:子批数量
# 1.6 组批
- 组件名称:CombStoreDataApi
- 表:Mes_Store_CLotCombHead,Mes_Store_CLotCombPart
- 关键字段:
a) Mes_Store_CLotCombHead- ProductName,StoreID,StoreSetID:合批会生成子批的出库和主批的入库,出入库单对应的物品、仓库、库位在此指定
b) Mes_Store_CLotCombHead—LotNo:主批批号,也是入库单的批号
c) Mes_Store_CLotCombPart-LotNo:子批批次,也是出库单的批号
d) Mes_Store_CLotCombPart-Num:子批数量,如果数量小于现存量里的数量,则会产生部分合批的情况。
注意:业务组件本身不限制不同物品的合批,即如果有不同物品进行合批,合批后的物品也以主批次件为准。如果项目上需要这种限制,则通过js自行处理。
# 1.7 移库
- 组件名称:TranStoreDataApi
- 表:Mes_Store_StoreSetTranHead,Mes_Store_StoreSetTranPart
- 关键字段:
a) Mes_Store_StoreSetTranHead- StoreID:需要移库的仓库
b) Mes_Store_StoreSetTranPart - StoreSetID:该批次的当前库位
c) Mes_Store_StoreSetTranPart - ToStoreSetID:该批次的目标库位
d) Mes_Store_StoreSetTranPart –LotNo, ProductName,Num, StoreSetID:移库的条码、物品\数量和当前库位,移库时根据给定值查找现存量进行移库。当移库数量小于现存量数量时,会产生部分移库,即生成一个子批存入新库位现存量。注意这里有个小问题,如果因为某些原因导致子批、物品、库位在现存量存在,则会叠加,如果 子批、库位相同但是物品不同会新增一条,会违背管理原则,应在实施端控制。
# 1.8 改材
- 组件名称:CChangeStoreDataApi
- 表:Mes_Store_CChangeHead、Mes_Store_CChangePart
- 关键字段:
a) Mes_Store_CChangeHead-StoreID:改材所处仓库
b) Mes_Store_CChangePart-- OproductName(源产品名称),OutNum出库数量(源批次拆分数量),NproductName(目标产品名称),ChangeNum(改材后数量),NewLotNo改材后新批号(如果为空系统自动生成 年月日+流水号)
改材后台的逻辑是原物品改材数量出库,新物品改材数量入库。因此会生成两个出入库单
# 1.9 盘点
- 组件名称:CheckStoreDataApi
- 表:Mes_Store_CheckStoreHead,Mes_Store_CheckStorePart
- 关键字段:
a) Mes_Store_CheckStoreHead-StoreID:盘点仓库
b) Mes_Store_CheckStorePart-LotNo,ProductName,Num,RealNum,StoreSetID
盘点单保存后,系统会根据盘盈盘亏结果生成出入库单,所需信息即上述字段
# 2 生产管理
说明:
- 报工中的GoWhere目前支持指定scrap、terminated、next、self、last以及工艺路线中各节点的StepSeq(工艺路线新增时生成)
- scrap表示报废批次;terminated表示终止批次;为空或next都是流转到当前工序的下一道;self表示不做流转,报工后仍然停留在当前工序;last表示流转到进入批次当前工序的来源工序;StepSeq流转到指定工序
- 每个报工表单一定为CreateTime(报工时间)、Creater(报工人)、PlanName(流程名称)、PlanVersion(流程版本)、LotNo(批号)字段提供值
- 报工表中的流程名称(PlanName)和流程版本(PlanVersion)字段要与报工批次当前使用的流程名称和流程版本要一致
- 生产模块使用BussinessType字段来标识批次操作所对应的业务类型,此字段可指定可不指定,保存在流转记录表(MES_WIPTRANSACTION)的REASONCODE字段
- 所有的流转报工组件都支持把报工表中的Site,Rsv01,Rsv02,Rsv03,Rsv04,Rsv05字段同步到批次表(MES_LOT)表,空值不做同步处理
# 2.1 标准生产报工
2.1.1 组件名称
StandardLotWipBook
2.1.2 组件说明
组件只负责批次正常的流转,不会做其他额外的处理,比如拆批、合批、修改批次数量等。
支持指定GoWhere来控制批次的流转。
如果GoWhere指定为scrap或terminated,则组件会自动把批次报废或终止。
2.1.3 表
报工表:Mes_Produce_Book
报工明细表:Mes_Produce_BookDetails
2.1.4 组件使用
报工表单绑定组件名称,表单需要提供CreateTime(报工时间)、Creater(报工人)、PlanName(流程名称)、PlanVersion(流程版本)、LotNo(批号)字段的值,其他业务代码可以使用执行前、后函数、更新函数处理。
# 2.2 通用生产报工
2.2.1 组件名称
LotWipBook
2.2.2 组件说明
以下业务都支持指定GoWhere、处理报废数量、处理不良数量,具体GoWhere使用在说明中已列出。
业务权限:isPieceSplit > 组批 > isSplit
业务权限条件:isPieceSplit=1使用按件拆分业务;ToLotNo不为空且ToLotNo不等于当前批号;以上两个条件都不满足的情况下走isSplit业务。
拆批出来的子批如果未具体指定,则以主批+流水号指定子批批号。如:主批100000拆两个子批,子批的批号为100000-1,100000-2。
通用报工组件支持以下业务情况:
1、isPieceSplit(按件拆分)
1.1、报工表使用isPieceSplit字段标识是否按件拆分,1标识按件拆分,默认不设置。
1.2、报工数量>批次数量,则以报工数量为准,修改批次数量为报工数量。然后再以批次数量循环拆批为数量为1的子批,子批以指定的GoWhere流转,主批终止状态。
报工数量<批次数量,以报工数量循环拆批为数量为1的子批,子批以指定的GoWhere流转,主批不做流转处理。
报工数量=批次数量,循环拆批为数量为1的子批,子批以指定的GoWhere流转,主批终止状态。
2、IsSplit
2.1、当isSplit为空时(正常拆批业务),报工数量>批次数量,则更改批次数量为报工数量,批次以指定的GoWhere流转;报工数量=批次数量,批次以指定的GoWhere流转;
报工数量<批次数量,按报工数量拆出一个子批,子批以指定的GoWhere流转,主批不做流转处理。
2.2、当isSplit=0时,报工数量>批次数量,则更改批次数量为报工数量,批次以指定的GoWhere流转;
报工数量=批次数量,批次直接以GoWhere流转。
报工数量<批次数量,差异数量做报废处理,然后批次以GoWhere流转
3、组批
组批批次需要满足:同产品、产品版本,同流程、流程版本,同工序以操作。
3.1、组批批次(ToLotNo)不存在批次表(MES_LOT)
新建ToLotNo批次,通过从当前批次拆分出和当前批次组批数量同等的新批ToLotNo。
3.2、组批批次(ToLotNo)存在批次表
当前批次转移组批数量给新批(ToLotNo)。
组批后如果当前批次数量>0,则批次不流转,ToLotNo则以GoWhere流转
组件可进行成品入库,通过设置报工表的ToStoreID以及报工明细表中的ToStoreSetID,另外需提供数据字段:TableNo:报工表单流水号,ProductName:产品编码,LotNo:批号,BookQty:数量
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2.2.3 表
关键字段说明:
字段名 | 说明 |
---|---|
PcQty | 批次当前数量 |
BookQty | 报工数量 |
NgQty | 不良数量 |
ScrapQty | 报废数量 |
Location | 位置(可指定为设备) |
LotNo | 报工批次 |
ProductName | 产品名称 |
ProductVersion | 成品版本 |
PlanName | 流程名称 |
PlanVersion | 流程版本 |
GoWhere | 流转标识 |
ToLotNo | 组批批次号 |
2.2.4 组件使用
1、按件拆分业务需要设置isPieceSplit为1、报工数量、报工批次
2、组批业务需要设置报工批次的ToLotNo、报工数量、报工批次
3、拆批业务
IsSplit设置为空或为0、报工数量、报工批次
# 2.3 批次多拆报工
2.3.1 组件名称
LotWipBookMultiSplit
2.3.2 组件说明
用于将一个批次拆分成n个子批且需做批次流转的报工组件
拆批子批次的批次号可以提供也可以由系统生成,生成规则同说明
组件还支持指定GoWhere、处理报废数量、处理不良数量,具体GoWhere使用在说明中已列出
2.3.3 表
2.3.4 组件使用
报工表单设置业务执行组件为LotWipBookMultiSplit,且报工表需提供拆批主批次,子批次可提供也可空着
# 2.4 TrackIn报工
2.4.1 组件名称
LotTrackIn
2.4.2 组件说明
TrackIn相当于批次进入工序的起始操作,为了记录批次进入工序的时间而做的组件。
此组件不支持GoWhere、处理报废、不良等,只是一个单纯的批次进入工序的流转操作。
2.4.3 表
2.4.4 组件使用
报工表单设置业务执行组件为LotTrackIn
# 2.5 TrackOut报工
2.5.1 组件名称
LotTrackOut
2.5.2 组件说明
TrackOut相当于批次离开工序的结束操作,为了记录批次离开工序的时间等参数而做的组件。
此组件不支持GoWhere、处理报废、不良等,只是单纯的批次离开工序的流转操作。
2.5.3 表
2.5.4 组件使用
报工表单设置业务执行组件为LotTrackOut
# 2.6 TrackInOut报工
2.6.1 组件名称
LotTrackInOut
2.6.2 组件说明
此组件不支持GoWhere、处理报废、不良等,只是单纯的批次离开工序的流转操作。
TrackInOut适合工序单操作然后直接流转。
2.6.3 表
2.6.4 组件使用
报工表单设置业务执行组件为LotTrackInOut
# 3 生产离线
说明:Creater、CreateTime必须设置值
# 3.1 标准表单
3.1.1 组件名称
StandardFormApi
3.1.2 组件说明
组件不存在任何业务处理的功能,通过执行指定的执行前后等组件,达到额外数据及定制业务的处理。
3.1.3 表
3.1.4 组件使用
表单设置业务执行组件为StandardFormApi
# 3.2 批次开卡
3.2.1 组件名称
CreateAndStartLot
3.2.2 组件说明
批次开卡分两种情况:正常开卡和返修开卡,开卡表中使用字段StartType进行标识,StartType=0标识返修开卡,否则为正常开卡。
组件支持GoWhere,但是GoWhere只能指定为流程工序的StepSeq,不能再设置scrap、terminated、next、self、last。
返修开卡需要注意:
1、所有批次的状态不能是Active
2、把批次状态为Finished的状态,重置为Active状态
3、指定的GoWhere与批次当前工序的StepSeq不同,并且产品、产品版本、流程、流程版本一致时,则只做工序间的跳转,否则做流程迁移操作。
4、GoWhere指定为空则不做跳转或迁移
5、GoWhere与批次当前工序的StepSeq相同,并且产品、产品版本、流程、流程版本一致,不做跳转或迁移。
6、开卡成功后会把开卡扩展信息到批次扩展信息表(Mes_Lot_LotInfo)中,需要保证开卡扩展字段名以及类型要与批次扩展信息表中的字段名和类型一致,不区分大小写。(扩展信息可以理解为一些客户定制的业务字段而非系统产品字段)
3.2.3 表
Mes_Lot_Start,Mes_Lot_Start_Details
3.2.4 组件使用
正常开卡:需要提供批次、产品、产品版本、流程、流程版本、开卡数量(PcQty),如果没有指定产品版本或流程版本,系统默认去产品或流程当前正在使用的版本号,GoWhere、BussinessType按具体业务可选指定。
返修开卡:需要提供批次、产品、产品版本、流程、流程版本、开卡类型(StartType),如果没有指定产品版本或流程版本,系统默认去产品或流程当前正在使用的版本号GoWhere、BussinessType按具体业务可选指定。
# 3.3 批次拆批
3.3.1 组件名称
SplitLot
3.3.2 组件说明
处理批次拆分为多个子批,子批批次号可以直接指定,也可以由系统自动生成。
3.3.3 表
Mes_Lot_Split,Mes_Lot_Split_Details
3.3.4 组件使用
Mes_Lot_Split:拆批批号(LotNo),拆批批次数量(Qty)
Mes_Lot_Split_Details:拆批子批号(LotNo),拆批子批数量(Qty)
表单设置业务执行组件为SplitLot
# 3.4 多批次合批
3.4.1 组件名称
MultiLotMerge
3.4.2 组件说明
多个批次合并到一个批次,支持批次部分数量合并。
3.4.3 表
Mes_Lot_Merge,Mes_Lot_Merge_Details
3.4.4 组件使用
Mes_Lot_Merge:合批主批号(LotNo)
Mes_Lot_Merge_Details:合批子批批号(LotNo),合批子批数量(MergeQty)
表单设置业务执行组件为MultiLotMerge
# 3.5 流程迁移
3.5.1 组件名称
LotReassign
3.5.2 组件说明
批次可实现流程的迁移,支持批次部分数量的迁移
3.5.3 表
Mes_Lot_Reassign、Mes_Lot_Reassign_Details
3.5.4 组件使用
Mes_Lot_Reassign_Details:
迁移批号(LotNo),迁移数量ReassignQty,
批号当前产品(OriginalProductName),批号当前产品版本(OriginalProductVersion),批号当前流程(OriginalPlanName),批号当前流程版本(OriginalPlanVersion),批号当前工序名(OrginalStepName),批号当前工序序号(OrginalStepSeq),批号当前操作(OriginalRuleName),
批号迁移产品(NewProductName),批号迁移产品版本(NewProductVersion),批号迁移流程(NewPlanName),批号迁移流程版本(NewPlanVersion),批号迁移工序序号(NewStepSeq),批号迁移操作(NewRuleName)
表单设置业务执行组件为LotReassign
# 3.6 状态更新
3.6.1 组件名称
SetLotProcessingStatus
3.6.2 组件说明
修改批次状态使用,目前支持的状态有:HOLD(锁定),RELEASE(释放),FINISHED(完成),UNFINISHED(取消完成),TERMINATED(终止),UNTERMINATED(取消终止),OUTSOURCED(外协),UNOUTSOURCED(取消外协)
HOLD和RELEASE组合使用:HOLD需要确保批次状态不是Terminated,Finished,Created,Hold,
OutSourced,只有批次状态为HOLD时才能使用RELEASE进行释放,并还原到批次进入HOLD时的状态。
FINISHED和UNFINISHED组合使用:FINISHED需要确保批次状态为Active, 只有批次状态为FINISHED时才能使用UNFINISHED进行取消,并还原批次状态到Active。
TERMINATED和UNTERMINATED组合使用 :TERMINATED需要确保批次状态不是Terminated,Finished,HOLD,Created,OutSourced,只有批次状态为TERMINATED时才能使用UNTERMINATED进行释放,并还原到批次进入TERMINATED时的状态。
OUTSOURCED和UNOUTSOURCED组合使用:OUTSOURCED需要确保批次状态不是Terminated,Finished,Created,Hold,OutSourced,只有批次状态为OUTSOURCED时才能使用UNOUTSOURCED进行释放,并还原到批次进入OUTSOURCED时的状态。
3.6.3 表
Mes_Lot_Deal、Mes_Lot_DealDetail
3.6.4 组件使用
表单需提供LotNo、ProcessingStatus的值
表单设置业务执行组件为SetLotProcessingStatus
# 3.7 批次改批
1.2.1 组件名称
ChangeLot
1.2.2 组件说明
用于把一个批号信息更改为新的批号信息,同时会Mes_Lot_LotInfo表中批次扩展信息更新为新批号
1.2.3 表
Mes_Lot_Change,Mes_Lot_Change_Details
1.2.4 组件使用
表单需提供FromLotNo、ToLotNo的值
表单设置业务执行组件为ChangeLot