From dc40143800edd914d0f721b06f90c8b4d307b979 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期四, 17 八月 2023 15:46:19 +0800 Subject: [PATCH] 调整bom --- kingdee/bom.go | 110 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 89 insertions(+), 21 deletions(-) diff --git a/kingdee/bom.go b/kingdee/bom.go index 9b276bf..8426c84 100644 --- a/kingdee/bom.go +++ b/kingdee/bom.go @@ -1,24 +1,30 @@ package kingdee +import ( + "fmt" + "strings" +) + type ICBom struct { - FInterID int // 鍐呯爜 - FBOMNumber string // BOM鍗曠紪鍙� - FUseStatus int // 浣跨敤鐘舵�佺爜 - FUseStatusName string // 浣跨敤鐘舵�� - FItemIDNumber string // 鐗╂枡浠g爜 - FItemIDName string // 鐗╂枡鍚嶇О - FModel string // 瑙勬牸鍨嬪彿 - FErpClsID string // 鐗╂枡灞炴�� - FQty float64 // 鏁伴噺 - FUnitName string // 鍗曚綅 - FYield float64 // 鎴愬搧鐜� - FRoutingIDNumber string // 宸ヨ壓璺嚎浠g爜 - FRoutingIDName string // 宸ヨ壓璺嚎鍚嶇О - FNote string // 澶囨敞 - FBomType int // BOM绫诲瀷 - FAudDate string // 鏇存柊鏃堕棿 - FPDMImportDate string // 瀵煎叆鏃堕棿 - FStatus int // 鐘舵�� + 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"` // 鐗╂枡浠g爜 + 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"` // 宸ヨ壓璺嚎浠g爜 + 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"` // 鐘舵�� + Component []ICBomChild `json:"Component"` // BOM缁勪欢 } func BomList(fData bool) []ICBom { @@ -42,7 +48,7 @@ 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 @@ -51,13 +57,75 @@ // 濡傛灉涓嶆槸璇锋眰鍏ㄩ儴鏁版嵁, 浠呮煡璇㈠綋澶╂洿鏂扮殑, 榛樿鏌ュ綋澶� 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"` // 鎵�灞濨OM鍐呯爜 + FBOMNumber string `gorm:"column:FBOMNumber" json:"FBOMNumber"` // 鎵�灞濨OM鍗曠紪鍙� + FEntryID int `gorm:"column:FEntryID" json:"FEntryID"` // 椤哄簭鍙� + FItemIDNumber string `gorm:"column:FItemIDNumber" json:"FItemIDNumber"` // 鐗╂枡浠g爜 + 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"` // 鏄惁鍊掑啿浠g爜 + FBackFlushName string `gorm:"column:FBackFlushName" json:"FBackFlushName"` // 鏄惁鍊� + FUseState string `gorm:"column:FUseState" json:"FUseState"` // 浣跨敤鐘舵�� + FStockIDNumber string `gorm:"column:FStockIDNumber" json:"FStockIDNumber"` // 浠撳簱浠g爜 + 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 + ` + + // 鎸塨om鏌ヨ + 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 } -- Gitblit v1.8.0