SVN r1056

SVN-Revision: r1056
This commit is contained in:
tdx
2025-11-24 06:14:46 +00:00
parent d11096f254
commit 6b0aeb6229
2 changed files with 49 additions and 33 deletions
+13 -5
View File
@@ -184,7 +184,7 @@ namespace Lskj.PubBomImport
throw new Exception($"MX中只能存在一个ZZQD,请进行合并");
}
}
GetFileCodeInfo(code, out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC);
GetFileCodeInfo(code, out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC, true);
if (sourceBC > 0)
{
throw new Exception($"MX中的{code}不允许有版次");
@@ -197,7 +197,7 @@ namespace Lskj.PubBomImport
string fileName = fileRow["sname"] + "";
string fileId = fileRow["fileId"] + "";
string sname = fileRow["sname"] + "";
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC, false);
if (fileBC >= childMaxBc)
{
childMaxBc = fileBC;
@@ -222,7 +222,7 @@ namespace Lskj.PubBomImport
}
foreach (var selectFile in selectFiles)
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(selectFile), out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(selectFile, out string fileCode, out string name, out string fileBB, out int fileBC, false);
if (fileBC >= childMaxBc)
{
maxBc = fileBC;
@@ -2262,7 +2262,7 @@ namespace Lskj.PubBomImport
/// <param name="name"></param>
/// <param name="bb"></param>
/// <param name="bc"></param>
private void GetFileCodeInfo(string sourceCode, out string code, out string name, out string bb, out int bc)
private void GetFileCodeInfo(string sourceCode, out string code, out string name, out string bb, out int bc, bool withoutExtension)
{
string namepattern = @"^(.*-S[A-Z]\d*)(.*)$";
string pattern = @"^(.*?)(\d+)?$";
@@ -2271,7 +2271,15 @@ namespace Lskj.PubBomImport
string childsourceCode = "";
string childsourceBB = "";
int childsourceBC = 0;
Match namematch = Regex.Match(Path.GetFileNameWithoutExtension(sourceCode).Trim(), namepattern);
Match namematch;
if (withoutExtension)
{
namematch = Regex.Match(sourceCode.Trim(), namepattern);
}
else
{
namematch = Regex.Match(Path.GetFileNameWithoutExtension(sourceCode).Trim(), namepattern);
}
if (namematch.Success)
{
childcode = namematch.Groups[1].Value.Trim();
+36 -28
View File
@@ -59,7 +59,7 @@ namespace Lskj.PubBomImport
if (fileInfo != null)
{
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileInfo.Name).Trim();
GetFileCodeInfo(fileNameWithoutExtension, out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC);
GetFileCodeInfo(fileNameWithoutExtension, out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC, true);
//if (sourceCode.StartsWith("ZZQD"))
//{
// throw new Exception($"不允许补充ZZQD文件{sourceCode}\r\n请进行变更");
@@ -125,7 +125,7 @@ namespace Lskj.PubBomImport
if (fileInfo != null)
{
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileInfo.Name).Trim();
GetFileCodeInfo(fileNameWithoutExtension, out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC);
GetFileCodeInfo(fileNameWithoutExtension, out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC, true);
if (sourceCode.StartsWith("QD"))
{
DataRow productRow = BaseImpl.GetDataRowResult($"select top 1 billdocument_id from bom_BillTab where productid = (select top 1 productid from p_ProductTab where spec = '{sourceCode}')");
@@ -1211,7 +1211,7 @@ namespace Lskj.PubBomImport
}
DataTable dataTable = SqlHelper.ExecuteDataTable($"select * from FileAttachmentMapping where MaterialCode = '{topProductId}'");
GetFileCodeInfo(beforeName, out string beforeSourceCode, out string beforeSourceName, out string beforeSourceBB, out int beforeSourceBC);
GetFileCodeInfo(beforeName, out string beforeSourceCode, out string beforeSourceName, out string beforeSourceBB, out int beforeSourceBC, false);
List<LabelRemarkEdit> labelRemarkList = new List<LabelRemarkEdit>();
List<ControlModel> uploadModels = StaticControl.RightMenuMyControl.ControlModels.Where(n => n.FileUploadControl).ToList();
@@ -1260,14 +1260,14 @@ namespace Lskj.PubBomImport
//如果是ZZQD文件
if (parentInfo != null && (parentInfo.Name.Trim().StartsWith("ZZQD")))
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(parentInfo.Name).Trim(), out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC);
GetFileCodeInfo(parentInfo.Name.Trim(), out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC, false);
DataTable filetable = BaseImpl.GetDataTableResult($"select sname,fileId,webpath from p_fm_filetab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{sourceCode}' and dllcoid = '1000202') and speciesno = '010106' and sname like '{sourceCode}%'");
int childMaxBc = -1;
foreach (DataRow fileRow in filetable.Rows)
{
string fileName = fileRow["sname"] + "";
string fileId = fileRow["fileId"] + "";
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC, false);
if (fileBC >= childMaxBc)
{
childMaxBc = fileBC;
@@ -1394,14 +1394,14 @@ namespace Lskj.PubBomImport
//如果是QD文件
if (parentInfo != null && (parentInfo.Name.Trim().StartsWith("QD")))
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(parentInfo.Name).Trim(), out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC);
GetFileCodeInfo(parentInfo.Name.Trim(), out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC, false);
DataTable filetable = BaseImpl.GetDataTableResult($"select sname,fileId,webpath from p_fm_filetab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{sourceCode}' and dllcoid = '1000202') and speciesno = '010106' and sname like '{sourceCode}%'");
int childMaxBc = -1;
foreach (DataRow fileRow in filetable.Rows)
{
string fileName = fileRow["sname"] + "";
string fileId = fileRow["fileId"] + "";
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC, false);
if (fileBC >= childMaxBc)
{
childMaxBc = fileBC;
@@ -1503,14 +1503,14 @@ namespace Lskj.PubBomImport
//如果是MX文件
else if (parentInfo != null && (parentInfo.Name.Trim().StartsWith("MX")))
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(parentInfo.Name).Trim(), out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC);
GetFileCodeInfo(parentInfo.Name.Trim(), out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC, false);
DataTable filetable = BaseImpl.GetDataTableResult($"select sname,fileId,webpath from p_fm_filetab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{topProductId}' and dllcoid = '1000202') and speciesno = '010106' and sname like '{sourceCode}%'");
int childMaxBc = -1;
foreach (DataRow fileRow in filetable.Rows)
{
string fileName = fileRow["sname"] + "";
string fileId = fileRow["fileId"] + "";
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC, false);
if (fileBC >= childMaxBc)
{
childMaxBc = fileBC;
@@ -1617,7 +1617,7 @@ namespace Lskj.PubBomImport
{
int.TryParse(parentRow["套数"] + "", out int tamount);
string childCode = parentRow["图号"] + "";
GetFileCodeInfo(childCode, out string childsourceCode0, out string childsourceName0, out string childsourceBB0, out int childsourceBC0);
GetFileCodeInfo(childCode, out string childsourceCode0, out string childsourceName0, out string childsourceBB0, out int childsourceBC0, true);
if (!childCode.StartsWith("RJ"))
{
if (childsourceBC0 > 0)
@@ -1638,7 +1638,7 @@ namespace Lskj.PubBomImport
if (childInfo == null)
{
//throw new Exception($"MX明细中不包含文件{childCode}");
GetFileCodeInfo(childCode, out string childsourceCode, out string childsourceName, out string childsourceBB, out int childsourceBC);
GetFileCodeInfo(childCode, out string childsourceCode, out string childsourceName, out string childsourceBB, out int childsourceBC, true);
if (childCode.StartsWith("QD"))
{
DataRow childRow = childTable.NewRow();
@@ -1659,7 +1659,7 @@ namespace Lskj.PubBomImport
}
if (childInfo != null)
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(childInfo.Name).Trim(), out string childsourceCode, out string childsourceName, out string childsourceBB, out int childsourceBC);
GetFileCodeInfo(childInfo.Name.Trim(), out string childsourceCode, out string childsourceName, out string childsourceBB, out int childsourceBC, false);
if (childCode.StartsWith("ZZQD"))
{
zzqdTag = childCode;
@@ -1762,14 +1762,14 @@ namespace Lskj.PubBomImport
}
else
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(parentInfo.Name).Trim(), out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC);
GetFileCodeInfo(parentInfo.Name.Trim(), out string sourceCode, out string sourceName, out string sourceBB, out int sourceBC, false);
DataTable filetable = BaseImpl.GetDataTableResult($"select sname,fileId,webpath from p_fm_filetab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{sourceCode}' and dllcoid = '1000202') and speciesno = '010106' and sname like '{sourceCode}%'");
int childMaxBc = -1;
foreach (DataRow fileRow in filetable.Rows)
{
string fileName = fileRow["sname"] + "";
string fileId = fileRow["fileId"] + "";
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC, false);
if (fileBC >= childMaxBc)
{
childMaxBc = fileBC;
@@ -1891,7 +1891,7 @@ namespace Lskj.PubBomImport
throw new Exception($"物料编码{productId}的BOM建立单已终审\r\n禁止修改操作");
}
}
GetFileCodeInfo(mxFileName.Trim(), out string mxsourceCode, out string mxname, out string mxsourceBB, out int mxsourceBC);
GetFileCodeInfo(mxFileName.Trim(), out string mxsourceCode, out string mxname, out string mxsourceBB, out int mxsourceBC, false);
DataTable mxfiletable = BaseImpl.GetDataTableResult($"select sname,fileId,webpath from p_fm_filetab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{productId}' and dllcoid = '1000202') and speciesno = '010106' and sname like '{mxsourceCode}%'");
FileInfo mxInfo = null;
@@ -1968,7 +1968,7 @@ namespace Lskj.PubBomImport
{
int.TryParse(parentRow["套数"] + "", out int tamount);
string code = (parentRow["图号"] + "").Trim();
GetFileCodeInfo(code, out string childsourceCode0, out string childsourceName0, out string childsourceBB0, out int childsourceBC0);
GetFileCodeInfo(code, out string childsourceCode0, out string childsourceName0, out string childsourceBB0, out int childsourceBC0, true);
if (!code.StartsWith("RJ"))
{
if (childsourceBC0 > 0)
@@ -1990,7 +1990,7 @@ namespace Lskj.PubBomImport
{
string fileName = fileRow["sname"] + "";
string fileId = fileRow["fileId"] + "";
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC, false);
if (fileBC >= childMaxBc)
{
childMaxBc = fileBC;
@@ -2050,7 +2050,7 @@ namespace Lskj.PubBomImport
{
if (childInfo != null)
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(childInfo.Name).Trim(), out string childsourceCode, out string childname, out string childsourceBB, out int childsourceBC);
GetFileCodeInfo(childInfo.Name.Trim(), out string childsourceCode, out string childname, out string childsourceBB, out int childsourceBC, false);
//如果文件夹中有附件,则比较版次,如果大于最大版次,则提示
if (childsourceBC > childMaxBc && filetable.Rows.Count > 0)
{
@@ -2232,7 +2232,7 @@ namespace Lskj.PubBomImport
}
if (childInfo != null)
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(childInfo.Name).Trim(), out string qdsourceCode, out string qdname, out string qdsourceBB, out int qdsourceBC);
GetFileCodeInfo(childInfo.Name.Trim(), out string qdsourceCode, out string qdname, out string qdsourceBB, out int qdsourceBC, false);
DataRow productRow = BaseImpl.GetDataRowResult($"select top 1 billdocument_id from bom_BillTab where productid = (select top 1 productid from p_ProductTab where spec = '{code}')");
if (productRow == null)
{
@@ -2396,7 +2396,7 @@ namespace Lskj.PubBomImport
string uploadFileId = maxBcFileDic.ContainsKey(code) ? maxBcFileDic[code]["fileId"] + "" : "-1";
if (filetable.Rows.Count == 0)
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(childInfo.Name).Trim(), out string qdsourceCode, out string qdname, out string qdsourceBB, out int qdsourceBC);
GetFileCodeInfo(childInfo.Name.Trim(), out string qdsourceCode, out string qdname, out string qdsourceBB, out int qdsourceBC, false);
if (filetable.Rows.Count == 0)
{
isUpload = UploadFileToAudit(childInfo.FullName, qdsourceCode, "010106", out msg, out uploadFileId);
@@ -2816,7 +2816,7 @@ namespace Lskj.PubBomImport
// throw new Exception($"物料编码{productId}的BOM建立单已终审\r\n禁止修改操作");
//}
}
GetFileCodeInfo(mxFileName.Trim(), out string mxsourceCode, out string mxname, out string mxsourceBB, out int mxsourceBC);
GetFileCodeInfo(mxFileName.Trim(), out string mxsourceCode, out string mxname, out string mxsourceBB, out int mxsourceBC, false);
DataTable mxfiletable = BaseImpl.GetDataTableResult($"select sname,fileId,webpath from p_fm_filetab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{productId}' and dllcoid = '1000202') and speciesno = '010106' and sname like '{mxsourceCode}%'");
FileInfo mxInfo = null;
@@ -2907,7 +2907,7 @@ namespace Lskj.PubBomImport
{
string fileName = fileRow["sname"] + "";
string fileId = fileRow["fileId"] + "";
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(fileName, out string fileCode, out string name, out string fileBB, out int fileBC, false);
if (fileBC >= childMaxBc)
{
childMaxBc = fileBC;
@@ -2967,7 +2967,7 @@ namespace Lskj.PubBomImport
{
if (childInfo != null)
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(childInfo.Name).Trim(), out string childsourceCode, out string childname, out string childsourceBB, out int childsourceBC);
GetFileCodeInfo(childInfo.Name.Trim(), out string childsourceCode, out string childname, out string childsourceBB, out int childsourceBC, false);
//如果文件夹中有附件,则比较版次,如果大于最大版次,则提示
if (childsourceBC > childMaxBc && filetable.Rows.Count > 0)
{
@@ -3138,7 +3138,7 @@ namespace Lskj.PubBomImport
string uploadFileId = maxBcFileDic.ContainsKey(code) ? maxBcFileDic[code]["fileId"] + "" : "-1";
if (filetable.Rows.Count == 0)
{
GetFileCodeInfo(Path.GetFileNameWithoutExtension(childInfo.Name).Trim(), out string qdsourceCode, out string qdname, out string qdsourceBB, out int qdsourceBC);
GetFileCodeInfo(childInfo.Name.Trim(), out string qdsourceCode, out string qdname, out string qdsourceBB, out int qdsourceBC, false);
if (filetable.Rows.Count == 0)
{
isUpload = UploadFileToAudit(childInfo.FullName, qdsourceCode, "010106", out msg, out uploadFileId);
@@ -3264,7 +3264,7 @@ namespace Lskj.PubBomImport
int result = BillImpl.BillSave(masterSql, detailSql, detailTable, ref billNo, detailGuid, billSeq, billWay, comfirm, out string tipMsg, auditFlag, newVer);
if (result == 1)
{
GetFileCodeInfo(afterFilename, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(afterFilename, out string fileCode, out string name, out string fileBB, out int fileBC, false);
BaseImpl.ExecSqlValue(afterSql);
BaseImpl.ExecSqlValue($"update p_bomImportExecTab set success = 1 where guid = '{execGuid}'");
BaseImpl.ExecSqlValue($"update bom_bgRwTab set ComID = 1 where productid = '{productid}'");
@@ -3290,7 +3290,7 @@ namespace Lskj.PubBomImport
}
else
{
GetFileCodeInfo(afterFilename, out string fileCode, out string name, out string fileBB, out int fileBC);
GetFileCodeInfo(afterFilename, out string fileCode, out string name, out string fileBB, out int fileBC, false);
BaseImpl.ExecSqlValue(afterSql);
BaseImpl.ExecSqlValue($"update p_bomImportExecTab set success = 1 where guid = '{execGuid}'");
BaseImpl.ExecSqlValue($"update bom_bgRwTab set ComID = 1 where productid = '{productid}'");
@@ -4224,7 +4224,7 @@ namespace Lskj.PubBomImport
/// <param name="name"></param>
/// <param name="bb"></param>
/// <param name="bc"></param>
private void GetFileCodeInfo(string sourceCode, out string code, out string name, out string bb, out int bc)
private void GetFileCodeInfo(string sourceCode, out string code, out string name, out string bb, out int bc, bool withoutExtension)
{
string namepattern = @"^(.*-S[A-Z]\d*)(.*)$";
string pattern = @"^(.*?)(\d+)?$";
@@ -4233,7 +4233,15 @@ namespace Lskj.PubBomImport
string childsourceCode = "";
string childsourceBB = "";
int childsourceBC = 0;
Match namematch = Regex.Match(Path.GetFileNameWithoutExtension(sourceCode).Trim(), namepattern);
Match namematch;
if (withoutExtension)
{
namematch = Regex.Match(sourceCode.Trim(), namepattern);
}
else
{
namematch = Regex.Match(Path.GetFileNameWithoutExtension(sourceCode).Trim(), namepattern);
}
if (namematch.Success)
{
childcode = namematch.Groups[1].Value.Trim();