| | |
| | | package kingdee |
| | | |
| | | import ( |
| | | "fmt" |
| | | "strings" |
| | | ) |
| | | |
| | | type ICBom struct { |
| | | FInterID int `gorm:"column:FInterID" json:"FInterID"` // 内码 |
| | | FBOMNumber string `gorm:"column:FBOMNumber" json:"FBOMNumber"` // BOM单编号 |
| | |
| | | ICBom.FAudDate, |
| | | ICBom.FPDMImportDate, |
| | | ICBom.FStatus |
| | | FROM ICBom |
| | | 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 |
| | |
| | | |
| | | // 如果不是请求全部数据, 仅查询当天更新的, 默认查当天 |
| | | if !fData { |
| | | sql = sql + " Where DateDiff(dd,FAudDate,getdate())=1" |
| | | sql = sql + " WHERE DateDiff(dd, ICBom.FAudDate, getdate())=1" |
| | | } |
| | | |
| | | var result []ICBom |
| | | |
| | | db.Raw(sql).Scan(&result) |
| | | //db.Raw(sql).Debug().Scan(&result) |
| | | |
| | | return result |
| | | } |
| | | |
| | | type ICBomChild struct { |
| | | FInterID int `gorm:"column:FInterID" json:"FInterID"` // 所属BOM内码 |
| | | FBOMNumber string `gorm:"column:FBOMNumber" json:"FBOMNumber"` // 所属BOM单编号 |
| | | FEntryID int `gorm:"column:FEntryID" json:"FEntryID"` // 顺序号 |
| | | 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"` // 物料属性 |
| | | FMaterielTypeName string `gorm:"column:FMaterielTypeName" json:"FMaterielTypeName"` // 子项类型 |
| | | FMarshalTypeName string `gorm:"column:FMarshalTypeName" json:"FMarshalTypeName"` // 配置属性 |
| | | FQty float64 `gorm:"column:FQty" json:"FQty"` // 数量 |
| | | FUnitName string `gorm:"column:FUnitName" json:"FUnitName"` // 单位 |
| | | FPercent float64 `gorm:"column:FPercent" json:"FPercent"` // 计划百分比 |
| | | FBackFlushNumber string `gorm:"column:FBackFlushNumber" json:"FBackFlushNumber"` // 是否倒冲代码 |
| | | FBackFlushName string `gorm:"column:FBackFlushName" json:"FBackFlushName"` // 是否倒 |
| | | FUseState string `gorm:"column:FUseState" json:"FUseState"` // 使用状态 |
| | | FStockIDNumber string `gorm:"column:FStockIDNumber" json:"FStockIDNumber"` // 仓库代码 |
| | | FStockIDName string `gorm:"column:FStockIDName" json:"FStockIDName"` // 仓库名称 |
| | | FPDMImportDate string `gorm:"column:FPDMImportDate" json:"FPDMImportDate"` // 导入时间 |
| | | } |
| | | |
| | | func BomChild(bomNumber []string) []ICBomChild { |
| | | sql := ` |
| | | SELECT ICBomChild.FInterID, |
| | | ICBOM.FBOMNumber, |
| | | ICBomChild.FEntryID, |
| | | t_ICItem.FNumber as FItemIDNumber, |
| | | t_ICItem.FName as FItemName, |
| | | t_ICItem.FModel as FModel, |
| | | (SELECT FName FROM t_SubMessage WHERE t_ICItem.FErpClsID=FInterID) as FErpCls, |
| | | t010.FName as FMaterielTypeName, |
| | | t011.FName as FMarshalTypeName, |
| | | ICBomChild.FQty, |
| | | t_MeasureUnit.FName as FUnitName, |
| | | ICBomChild.FPercent, |
| | | t012.FID as FBackFlushNumber, |
| | | t012.FName as FBackFlushName, |
| | | (SELECT FName FROM t_SubMessage WHERE t_ICItem.FUseState=FInterID) as FUseState, |
| | | t_Stock.FNumber as FStockIDNumber, |
| | | t_Stock.FName as FStockIDName, |
| | | ICBomChild.FPDMImportDate |
| | | FROM ICBomChild |
| | | join t_ICItem on t_ICItem.FItemID = ICBomChild.FItemID AND t_ICItem.FItemID <>0 |
| | | left join ICBOM on ICBOM.FInterID = ICBomChild.FInterID AND ICBOM.FInterID<>0 |
| | | left join t_MeasureUnit on t_MeasureUnit.FItemID = t_ICItem.FUnitID AND t_MeasureUnit.FItemID<>0 |
| | | left join t_SubMessage t010 on t010.FInterID = ICBomChild.FMaterielType AND t010.FInterID <>0 |
| | | left join t_SubMessage t011 on t011.FInterID = ICBomChild.FMarshalType AND t011.FInterID <>0 |
| | | left join t_SubMessage t012 on t012.FInterID = ICBomChild.FBackFlush AND t012.FInterID <>0 |
| | | left join t_Stock on t_Stock.FItemID = ICBomChild.FStockID AND t_Stock.FItemID <>0 |
| | | ` |
| | | |
| | | // 按bom查询 |
| | | if bomNumber != nil { |
| | | sql = fmt.Sprintf("%s WHERE ICBOM.FBOMNumber in('%s')", sql, strings.Join(bomNumber, "','")) |
| | | } |
| | | |
| | | var result []ICBomChild |
| | | |
| | | db.Raw(sql).Scan(&result) |
| | | |
| | | return result |
| | | } |