zoukankan      html  css  js  c++  java
  • Agile PLM bom表结构学习笔记

    BOM表字段说明:

    id:bom表主键,每次变更单对BOM有任务修改都会追加记录,而不是直接修改原纪录

    item:父物料id,关联item表

    component:子物料id,关联item表

    item_number:子物料编码

    flag:bom子项状态(目前仅第4,第5位数有效)。第4位:0代表无效,1代表有效。第5位:0代表已过时,1代表最新。

    prior_bom:如果不为空,代表该行数据变更了另一行数据,值为另一行BOM表ID

    Change_in:子物料被加入的变更单ID。如果为0代表是走变更之前(初始状态)就添加到BOM中的。

    Change_out:子物料被删除的变更单ID。当这个字段值>0时代表当前这个子行已经被这个变更单作废了。

    quantity:子料用量,文本字段。可支持分数,例如:1/6

    BOM注释:通过id和agile_flex表的row_id字段关联查询,还有attid=1036 and class="10000"

    find_number:查找编号,目前没用起来

     

    场景说明:

    1. 变更单C0095696,状态为:新建,受影响物件为90.01.002271
      1. 在父料中新增1行子料03.10.000488,则BOM表会新增1行记录,flag=00000,change_in=该变更单ID,change_out=空,prior_bom=空
      2. 在父料中删除1行子料06.06.034701,则BOM表会新增1行记录,flag=00000,change_in=该变更单ID,change_out=该变更单ID,prior_bom=被删除的数据ID
      3. 在父料中将1行子料03.15.030311修改为03.15.010001R,则BOM表会新增1行记录,flag=00000,change_in=该变更单ID,change_out=空,prior_bom=被删除的数据ID
      4. 在父料中将1行子料02.80.603667的用量从6改成5,则BOM表会新增1行记录,flag=00000,change_in=该变更单ID,change_out=空,prior_bom=被修改的数据ID
    2. 变更单C0095696,状态变为:审核,受影响物件为90.01.002271
      1. 以上数据均无任何变化
    3. 变更单C0095696,状态变为:发放,受影响物件为90.01.002271
      1. 在父料中新增1行子料03.10.000488,则BOM表会新增1行记录,flag变为00011,change_in为该变更单ID,change_out为空,prior_bom为空
      2. 在父料中删除1行子料06.06.034701,则BOM表会新增1行记录,flag依然为00000,change_in为该变更单ID,change_out为该变更单ID,prior_bom指向被删除的数据ID;被删除的数据flag从00011变为00010,change_out变为当前变更单ID
      3. 在父料中将1行子料03.15.030311修改为03.15.010001R,则BOM表会新增1行记录,flag变为00011,change_in为该变更单ID,change_out为空,prior_bom指向被删除的数据ID;被删除的数据flag从00011变为00010,change_out变为当前变更单ID
      4. 在父料中将1行子料02.80.603667的用量从6改成5,则BOM表会新增1行记录,flag变为00011,change_in为该变更单ID,change_out为空,prior_bom指向被修改的数据ID;被删除的数据flag从00011变为00010,change_out变为当前变更单ID

    根据变更单或者受影响物件编号查询BOM变更内容的SQL

     1 with e as (
     2     select c.change_number
     3     ,i.item_number as parent_item_number,i.description as parent_item_name
     4     ,case when (change_out > 0 and prior_bom > 0) then 2 else 1 end as op_type
     5     ,ci.description as item_name
     6     ,b.item_number,b.id,b.prior_bom,b.quantity as qty,b.FLAGS,b.created,b.last_upd,b.change_in,b.change_out
     7     ,f.text as remark
     8     ,decode(b.prior_bom,0,b.id,b.prior_bom) as order_id
     9     from AGILE.Change C
    10     INNER JOIN AGILE.REV R ON R.CHANGE = C.ID
    11     INNER JOIN AGILE.bom b on r.item = b.item and b.change_in = c.id
    12     inner join AGILE.item i on r.item = i.id 
    13     inner join AGILE.item ci on b.component = ci.id
    14     left join agile.agile_flex f on b.id = f.row_id and f.class = 10000 and f.attid = 1036
    15     LEFT JOIN AGILE.LISTENTRY LDELAY ON R.LIST01 = LDELAY.ENTRYID AND LDELAY.LANGID = 4
    16     where 1=1 
    17     ${if(trim(changeNumber) == '',""," and c.change_number = '"+changeNumber+"'")}
    18     ${if(trim(pitemNumber) == '',""," and i.item_number = '"+pitemNumber+"'")}
    19 )
    20 select * from (
    21     -- 操作BOM
    22     select e.* from e
    23     union all
    24     -- 被操作的BOM
    25     select e.change_number
    26     ,e.parent_item_number,e.parent_item_name
    27     ,2 as op_type
    28     ,ci.description as item_name
    29     ,b.item_number,b.id,b.prior_bom,b.quantity as qty,b.FLAGS,b.created,b.last_upd,b.change_in,b.change_out
    30     ,f.text as remark
    31     ,decode(b.prior_bom,0,b.id,b.prior_bom) as order_id
    32     from agile.bom b
    33     inner join e on b.id = e.prior_bom 
    34     inner join AGILE.item ci on b.component = ci.id
    35     left join agile.agile_flex f on b.id = f.row_id and f.class = 10000 and f.attid = 1036
    36     where e.change_in != e.change_out
    37 ) t order by t.parent_item_number,t.change_number,t.order_id

     将上述SQL,放到FineReport报表工具中,开发成报表的最终呈现结果如下图(重要信息已做马赛克处理):

  • 相关阅读:
    B00009 C语言分割字符串库函数strtok
    B00009 C语言分割字符串库函数strtok
    I00026 计算数根
    I00026 计算数根
    I00025 寻找循环数
    Magic Stones CodeForces
    Continued Fractions CodeForces
    AtCoder Beginner Contest 116 D
    Applese 的毒气炸弹 G 牛客寒假算法基础集训营4(图论+最小生成树)
    Choosing The Commander CodeForces
  • 原文地址:https://www.cnblogs.com/namelessmyth/p/13042193.html
Copyright © 2011-2022 走看看