zhangzengfei
2023-08-15 851cb98ae2f9d1713a5443274ca14424b118018f
1
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package kingdee
 
type ICBom struct {
    FInterID         int     `gorm:"column:FInterID" json:"FInterID"`                 // 内码
    FBOMNumber       string  `gorm:"column:FBOMNumber" json:"FBOMNumber"`             // BOM单编号
    FUseStatus       int     `gorm:"column:FUseStatus" json:"FUseStatus"`             // 使用状态码
    FUseStatusName   string  `gorm:"column:FUseStatusName" json:"FUseStatusName"`     // 使用状态
    FItemIDNumber    string  `gorm:"column:FItemIDNumber" json:"FItemIDNumber"`       // 物料代码
    FItemIDName      string  `gorm:"column:FItemIDName" json:"FItemIDName"`           // 物料名称
    FModel           string  `gorm:"column:FModel" json:"FModel"`                     // 规格型号
    FErpClsID        string  `gorm:"column:FErpClsID" json:"FErpClsID"`               // 物料属性
    FQty             float64 `gorm:"column:FQty" json:"FQty"`                         // 数量
    FUnitName        string  `gorm:"column:FUnitName" json:"FUnitName"`               // 单位
    FYield           float64 `gorm:"column:FYield" json:"FYield"`                     // 成品率
    FRoutingIDNumber string  `gorm:"column:FRoutingIDNumber" json:"FRoutingIDNumber"` // 工艺路线代码
    FRoutingIDName   string  `gorm:"column:FRoutingIDName" json:"FRoutingIDName"`     // 工艺路线名称
    FNote            string  `gorm:"column:FNote" json:"FNote"`                       // 备注
    FBomType         int     `gorm:"column:FBomType" json:"FBomType"`                 // BOM类型
    FAudDate         string  `gorm:"column:FAudDate" json:"FAudDate"`                 // 更新时间
    FPDMImportDate   string  `gorm:"column:FPDMImportDate" json:"FPDMImportDate"`     // 导入时间
    FStatus          int     `gorm:"column:FStatus" json:"FStatus"`                   // 状态
}
 
func BomList(fData bool) []ICBom {
    sql := `
    SELECT 
        ICBom.FInterID, 
        ICBom.FBOMNumber, 
        ICBom.FUseStatus, 
        t_SubMessage.FName as FUseStatusName, 
        t_ICItem.FNumber as FItemIDNumber, 
        t_ICItem.FName as FItemIDName, 
        t_ICItem.FModel as FModel,
        (SELECT FName FROM t_SubMessage WHERE t_ICItem.FErpClsID=FInterID) as FErpClsID, 
        ICBom.FQty,
        t_MeasureUnit.FName as FUnitName, 
        ICBom.FYield, 
        t_Routing.FBillNO as FRoutingIDNumber, 
        t_Routing.FRoutingName as FRoutingIDName,         
        ICBom.FNote,         
        ICBom.FBomType, 
        ICBom.FAudDate, 
        ICBom.FPDMImportDate, 
        ICBom.FStatus
     FROM ICBom 
        left join t_SubMessage on ICBom.FUseStatus = t_SubMessage.FInterID AND t_SubMessage.FInterID <> 0  
        join t_ICItem on ICBom.FItemID= t_ICItem.FItemID  AND t_ICItem.FItemID <> 0  
        left join t_MeasureUnit on ICBom.FUnitID = t_MeasureUnit.FItemID AND t_MeasureUnit.FItemID <> 0  
        left join t_Routing on ICBom.FRoutingID = t_Routing.FInterID AND t_Routing.FInterID <> 0
    `
 
    // 如果不是请求全部数据, 仅查询当天更新的, 默认查当天
    if !fData {
        sql = sql + " Where DateDiff(dd,FAudDate,getdate())=1"
    }
 
    var result []ICBom
 
    db.Raw(sql).Scan(&result)
    //db.Raw(sql).Debug().Scan(&result)
 
    return result
}