Files
GateDge2023_ljy/07.珠海英搏尔/Enpower.Python/POSH_CB_PROCOSTRESULTREC/产品成本还原构造程序.py
PastSaid fa480006a8 1
2024-07-16 10:33:50 +08:00

89 lines
2.6 KiB
Python

import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference("Kingdee.BOS.Contracts")
clr.AddReference("Kingdee.BOS.ServiceHelper")
clr.AddReference("ExtensionMethods")
from Kingdee.BOS import*
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from Kingdee.BOS.Orm.DataEntity import*
from Kingdee.BOS.Orm.Metadata.DataEntity import*
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from System import *
from System.ComponentModel import*
from System.Collections.Generic import*
from System.Text import*
from Kingdee.BOS.ServiceHelper import *
from ExtensionMethods import BooleanExtension as boolObjEx
from ExtensionMethods import DateTimeExtension as dateObjEx
from ExtensionMethods import ObjectExtension as objEx
from ExtensionMethods import StringExtension as strObjEx
def ButtonClick(e):
if e.Key.EndsWith("FToSelectBtn", StringComparison.OrdinalIgnoreCase):
billNos = List[str]()
billNos.Add("RO2403280019")
SelectData();
def SelectData(billNos):
jsons = []
sqlL = """/*dialect*/
SELECT t0.FPRODUCTNO
,t0.FPRODUCTID
,SUM(t1.FAMOUNT) AS '领料成本'
,SUM(t1.FQTY) AS '领料数量'
,t2.FMATERIALID
,ISNULL(t4.FNUMBER,'') 'FLOT_TEXT'
,ROW_NUMBER() OVER (PARTITION BY t0.FPRODUCTNO,t0.FPRODUCTID ORDER BY t2.FMATERIALID) RN
,0 plevel
FROM T_CB_PROORDERDIME t0
INNER JOIN V_CB_COSTALLORESULTSEND t1 on t0.FPRODUCTDIMEID = t1.FPRODUCTDIMEID
INNER JOIN T_HS_INIVSTOCKDIMENSION t2 on t2.FENTRYID = t1.FDIMEENTRYID
INNER JOIN V_HS_OUTINSTOCKSEQ t3 on t3.FENTRYID = t1.FOUTINSTOCKID
LEFT JOIN T_BD_LOTMASTER t4 on t4.FLOTID = t2.FLOT
WHERE t0.FPRODUCTNO IN ('{0}')
GROUP BY t0.FPRODUCTNO,t0.FPRODUCTID,t2.FMATERIALID,t4.FNUMBER
"""
datas = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL.format("','".join(billNos)));
if datas != None and datas.Count > 0:
itemBillNos = List[str]()
for item in datas:
lotObjVal = item["FLOT_TEXT"]
lotVal = '' if lotObjVal == None else str(lotObjVal)
jsonData = {"工单编号": item["FPRODUCTNO"],"批号": lotVal}
if lotVal != '':
itemBillNos.Add(lotVal);
jsons.append(jsonData);
if itemBillNos.Count > 0:
return SelectData(itemBillNos)
return None
else :
return None