This commit is contained in:
PastSaid
2024-08-29 09:42:49 +08:00
parent fa480006a8
commit 5472714e30
66 changed files with 7417 additions and 243 deletions

View File

@@ -12,10 +12,12 @@ clr.AddReference("HUIWEI.Lexmark.sftp.SDK")
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.Contracts import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.Core.Util import *
from System import *
@@ -29,13 +31,13 @@ from HUIWEI.Lexmark.sftp.SDK.Domain import *
def BarItemClick(e):
if e.BarItemKey == "tbSendPoASNToSFTP":
# raise Exception(JsonUtil.Serialize(billObj))
billObj = this.View.Model.DataObject;
if billObj.CustomerID_Id != 957286:
return
if billObj["FIsReplyASN"] == "1":
return
# if billObj["FIsReplyASN"] == "1":
# return
sqlL = """/*dialect*/
WITH #辅助资料 AS (
@@ -71,9 +73,11 @@ FROM T_CLIENT_SFTP_LINK t0
LEFT JOIN #辅助资料 t9 on t9.FNAME = '包装方式' AND t9.FENTRYID = t0.FMODESOFPACKING
LEFT JOIN #辅助资料 t10 on t10.FNAME = '包装方式' AND t10.FENTRYID = t0.FMODESOFPACKING1
WHERE 1=1
AND t0.FNUMBER = 'SFTP202407071'
--AND t0.FNUMBER = 'SFTP202407071' --测试
AND t0.FNUMBER = 'SFTP202407311'
AND t0.FDOCUMENTSTATUS = 'C'
AND t0.FFORBIDSTATUS = 'A'
ORDER BY t0.FID
""";
data = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL)
@@ -90,7 +94,10 @@ WHERE 1=1
# //端口号
FSFTPPort = int(row["FSFTPPORT"]);
# //推送地址 /HUIWE_SFTP_TST/LEXMK_SFTP_TST/LEXMKASNXML
FSFTPPutPath = row["FSFTPPUTPATH"] + "/LEXMKASNXML";
FSFTPPutPath = str(row["FSFTPPUTPATH"]);
FSFTPPutPath = FSFTPPutPath + '/LEXMKASNXML/'
# FSFTPPutPath = '/HUIWE_SFTP_TST/LEXMK_SFTP_TST/LEXMKASNXML/'
# raise Exception(FSFTPPutPath)
# //存放地址
sendPath = row["FSFTPBEFORESAVEPATH"]+ "/SEND/ASN/";
@@ -175,7 +182,7 @@ WHERE 1=1
# 箱数
palletsObj = item["F_ora_Text"];
pallets = 1 if palletsObj == None or palletsObj == "" else int(palletsObj);
pallets = 1 if palletsObj == None or palletsObj.strip() == "" else int(palletsObj);
asnItem.Pallets = pallets;
# 每箱数量
@@ -197,6 +204,7 @@ WHERE 1=1
asnItem.LXK_Description = nameItem.Value
break;
asnItem.Serial_No = item.FLexSN+item.FLexSN1
ASNLineItem.Add(asnItem);
if message != "":
@@ -206,20 +214,24 @@ WHERE 1=1
ASNObj.LineItem = ASNLineItem.ToArray();
# 转换成xml字符串
ackXmlStr = XmlSerializerHelper.Serialize(ASNObj);
ASNXmlStr = XmlSerializerHelper.Serialize(ASNObj);
# 创建XML文件
xmldoc = XmlDocument();
# 加载成XML文件
xmldoc.LoadXml(ASNXmlStr)
# 文件名
fileName = "ASN" + ASNHeader.LEX_PO + GetFileName()
xmldoc = XmlDocument();
xmldoc.LoadXml(ackXmlStr)
# 保存XML文件
xmldoc.Save(sendPath + fileName);
# 推送到SFTP
helper.Put(sendPath + fileName, FSFTPPutPath);
helper.Put(sendPath + fileName, FSFTPPutPath + fileName);
updSql = """
# raise Exception(FSFTPPutPath)
updSql = """/*dialect*/
UPDATE t0 SET t0.FIsReplyASN = '1'
FROM T_SAL_OUTSTOCK t0
WHERE t0.FID = {0}
@@ -228,10 +240,9 @@ WHERE t0.FID = {0}
num = DBServiceHelper.Execute(this.Context, updSql)
billObj["FIsReplyASN"] == "1";
AddSftpOpRecord(fileName,sendPath,ASNHeader.LEX_PO,billObj.BillNo,billObj.Id,"ASN ")
# billObj["FIsReplyASN"] = "1";
AddSftpOpRecord(fileName,sendPath,ASNHeader.LEX_PO,billObj.BillNo,billObj.Id,"ASN")
this.View.ShowMessage("ASN推送完成PO{0},文件名:{1}".format(ASNHeader.LEX_PO,fileName))
@@ -240,7 +251,7 @@ def GetFileName():
fileName = ""
dateTime = DateTime.Now
# fileName = fileName + dateTime.ToString("yyyyMMdd") + str(DateTimeFormatUtils.GetTimestamp(dateTime))
fileName = "{0}{1}{2}.xml".format(fileName,dateTime.ToString("yyyyMMdd"),str(DateTimeFormatUtils.GetTimestamp(dateTime)))
fileName = "{0}_{1}_{2}.xml".format(fileName,dateTime.ToString("yyyyMMdd"),str(DateTimeFormatUtils.GetTimestamp(dateTime)))
return fileName
@@ -256,6 +267,7 @@ def AddSftpOpRecord(FFileName,FFilePath,FPO,FERPBillNo,FERPBillId,FFileTypeText)
newObj["FReceiveOrSend"] = "2"
newObj["FFileName"] = FFileName
newObj["FFilePath"] = FFilePath
newObj["FDate"] = DateTime.Now
newObj["FPO"] = FPO
newObj["FERPBillNo"] = FERPBillNo
newObj["FERPBillId"] = FERPBillId
@@ -270,6 +282,6 @@ def AddSftpOpRecord(FFileName,FFilePath,FPO,FERPBillNo,FERPBillId,FFileTypeText)
#Q:既然是Save方法为什么还要传操作代码"Save"呢?
#A:Save方法调用的是单据操作列表中,"操作类型=保存"的操作,可以为单据添加多个"操作类型=保存"的操作。
#例如,可以添加一个"OnlySave",这个操作不注册任何服务插件和服务端服务,仅用于保存单据数据到数据库
saveRslt=BusinessDataServiceHelper.Save(this.Context, meta.BusinessInfo,ObjList.ToArray(), None, "Save");
saveRslt = BusinessDataServiceHelper.Save(this.Context, meta.BusinessInfo,ObjList.ToArray(), None, "Save");
# raise Exception(JsonUtil.Serialize(newObj))