Browse Source

工时统计修改 .net版本变更为4.5.2

Branch_PaiNaWeiSJob
shiqian.wang 2 months ago
parent
commit
a9faf144b5
  1. 3
      ICSSoft.FromERP/App.config
  2. 83
      ICSSoft.FromERP/ICSAddStdWorkHourFromMES.cs
  3. 2
      ICSSoft.FromERP/ICSSoft.FromERP.csproj
  4. 14
      ICSSoft.FromERP/packages.config
  5. 4
      ICSSoft.Test/ICSSoft.Test.csproj
  6. 2
      ICSSoft.Test/Program.cs
  7. 2
      ICSSoft.Test/app.config

3
ICSSoft.FromERP/App.config

@ -5,6 +5,7 @@
</appSettings>
<connectionStrings>
<add name="SysConnectionString" connectionString="Data Source=119.3.29.177;Database=ICSMESBase;Uid=gitea;Pwd=aA123456;"/>
<add name="APIAddStdWorkHour" connectionString="http://192.168.1.110:9097/api/APIAddStdWorkHour"/>
<add name="MailOpen" connectionString="true"/>
<add name="SendHost" connectionString="mail.huahengweld.com"/>
<add name="SendPort" connectionString="25"/>
@ -12,4 +13,4 @@
<add name="SendAddress" connectionString="srm-huaheng@huahengweld.com"/>
<add name="SendPassword" connectionString="mail.huahengweld.com"/>
</connectionStrings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>

83
ICSSoft.FromERP/ICSAddStdWorkHourFromMES.cs

@ -1,4 +1,5 @@
using Newtonsoft.Json;
using log4net.Core;
using Newtonsoft.Json;
using Quartz;
using System;
using System.Collections.Generic;
@ -41,6 +42,7 @@ namespace ICSSoft.FromERP
{
Configuration config = GetConfig();
string url = config.ConnectionStrings.ConnectionStrings["APIAddStdWorkHour"].ConnectionString.ToString();
// 若变更环境 除了修改接口外,还需要替换ERP.U9DB u9数据库
log.Info("获取创建定额工时接口 " + url);
if (string.IsNullOrEmpty(url))
{
@ -48,7 +50,9 @@ namespace ICSSoft.FromERP
}
string conStr = ICSHelper.GetConnectString();
string Namespace = this.GetType().Namespace;
List<string> ErrorCode = new List<string>();
List<string> AErrorCode = new List<string>();
List<string> BErrorCode = new List<string>();
List<string> CErrorCode = new List<string>();
// 业务逻辑 从u9那边料品关联工时表 找到没有工时数据的料品 再向mes这边根据料号找到数据 去匹配条件 计算出工时 给u9
// 二 分别抓取整机、本体部、驱动部未统计的料号 本体部、驱动部逆向去找型号
@ -69,18 +73,20 @@ namespace ICSSoft.FromERP
if (dt != null)
{
log.Info("查询到整机待统计数量:" + dt.Rows.Count + "。");
//准备整机条件
string argsqls = @"select ItemModel,Type,NominalDiameter,Coefficient,ManHour,AdditiveManHour,ISNULL(SpecialRequirement,'') as SpecialRequirement
//准备整机条件 口径+A拼接
string argsqls = @"select ItemModel,Type,NominalDiameter+'A' as NominalDiameter,Coefficient,ManHour,AdditiveManHour,ISNULL(SpecialRequirement,'') as SpecialRequirement
from IcsProductionDurationStatistics
where Type = 0 --and TenantId = ''";
DataTable argdt = ICSHelper.ExecuteTable(conStr, argsqls);
if (argdt != null)
{
//log.Info("整机循环开始!");
foreach (DataRow dr in dt.Rows)
{
// 整机条件过滤 阀门型号、口径、特殊要求
DataRow[] infoArgRow = argdt?.Select("ItemModel='" + dr["ValueModel"].ToString()
+ "' and SpecialRequirement = '" + dr["SpecialRequirement"].ToString() //特殊条件都为空 或者有特殊条件
var ValueModel = dr["ValueModel"].ToString().Length > 5 ? dr["ValueModel"].ToString().Substring(0, 5) : dr["ValueModel"].ToString(); // 截取前五位数字符
DataRow[] infoArgRow = argdt?.Select("ItemModel='" + ValueModel
// + "' and SpecialRequirement = '" + dr["SpecialRequirement"].ToString() //特殊条件都为空 或者有特殊条件
+ "' and NominalDiameter = '" + dr["NominalDiameter"].ToString()
+ "'");
if (infoArgRow.Length > 0)
@ -100,9 +106,10 @@ namespace ICSSoft.FromERP
else
{
//记录未匹配到条件 统计失败的料号
ErrorCode.Add(dr["code"].ToString());
AErrorCode.Add(dr["code"].ToString()+ "(阀门型号:" + dr["ValueModel"].ToString() + ",特殊规格:" + dr["SpecialRequirement"].ToString()+ ",口径:" + dr["NominalDiameter"].ToString() + ");");
}
}
//log.Info("整机循环结束!");
}
else
{
@ -127,18 +134,21 @@ namespace ICSSoft.FromERP
if (vbsdt != null)
{
log.Info("查询到本体部待统计数量:" + vbsdt.Rows.Count + "。");
//准备本体部条件 ItemModel型号 驱动部类型时此字段为驱动型号
string vbsargsqls = @"select ItemModel,Type,NominalDiameter,Coefficient,ManHour,AdditiveManHour,ISNULL(SpecialRequirement,'') as SpecialRequirement
//准备本体部条件 ItemModel型号 驱动部类型时此字段为驱动型号 口径+A拼接
string vbsargsqls = @"select ItemModel,Type,NominalDiameter+'A' as NominalDiameter,Coefficient,ManHour,AdditiveManHour,ISNULL(SpecialRequirement,'') as SpecialRequirement
from IcsProductionDurationStatistics
where Type = 1 --and TenantId = ''";
DataTable vbsargdt = ICSHelper.ExecuteTable(conStr, vbsargsqls);
if (vbsargdt != null)
{
//log.Info("本体部循环开始!");
foreach (DataRow dr in vbsdt.Rows)
{
// 本体部条件过滤 阀门型号、口径、特殊条件
DataRow[] infoVbsRow = vbsargdt?.Select("ItemModel='" + dr["ValueModel"].ToString()
+ "' and SpecialRequirement = '" + dr["SpecialRequirement"].ToString() //特殊条件都为空 或者有特殊条件
var ValueModel = dr["ValueModel"].ToString().Length > 5 ? dr["ValueModel"].ToString().Substring(0, 5) : dr["ValueModel"].ToString(); // 截取前五位数字符
//log.Info(ValueModel);
DataRow[] infoVbsRow = vbsargdt?.Select("ItemModel='" + ValueModel
// + "' and SpecialRequirement = '" + dr["SpecialRequirement"].ToString() //特殊条件都为空 或者有特殊条件
+ "' and NominalDiameter = '" + dr["NominalDiameter"].ToString()
+ "'");
if (infoVbsRow.Length > 0)
@ -158,9 +168,10 @@ namespace ICSSoft.FromERP
else
{
//记录未匹配到条件 统计失败的料号
ErrorCode.Add(dr["code"].ToString());
BErrorCode.Add(dr["code"].ToString() + "(阀门型号:" + dr["ValueModel"].ToString() + ",特殊规格:" + dr["SpecialRequirement"].ToString() + ",口径:" + dr["NominalDiameter"].ToString() + ");");
}
}
//log.Info("本体部循环结束!");
}
else
{
@ -176,11 +187,11 @@ namespace ICSSoft.FromERP
string dssqls = @"select d.DriveModel,case when ISNULL(d.HandwheelMechanism,'NON') = 'NON' then 1 else 0 end as HandwheelMechanism,b.MFId,a.code
from ERP.U9DB.dbo.CBO_ItemMaster a
join (select ROW_NUMBER() over(partition by PartItemCode order by MFId desc) as Flag,PartItemCode,MFId from ICSPartItem where PartItemName = '') b
on a.code = b.PartItemCode
on a.code = b.PartItemCode and b.Flag = 1
join IcsMfDriverSpec d on b.MFId = d.MFId
left join ERP.U9DB.dbo.CA_StdWorkingHours c on a.Id = c.ItemMaster
LEFT OUTER JOIN ERP.U9DB.dbo.Base_Organization AS oo ON oo.ID = a.Org
where oo.Code = '01' and c.id is null and a.code like 'A2002%''";
where oo.Code = '01' and c.id is null and a.code like 'A2002%'";
DataTable dsdt = ICSHelper.ExecuteTable(conStr, dssqls);
if (dsdt != null)
{
@ -192,10 +203,13 @@ namespace ICSSoft.FromERP
DataTable dsArgdt = ICSHelper.ExecuteTable(conStr, dsArgsqls);
if (dsArgdt != null)
{
foreach (DataRow dr in vbsdt.Rows)
//log.Info("驱动部循环开始!");
foreach (DataRow dr in dsdt.Rows)
{
// 驱动部条件过滤 驱动型号、是否有手轮机构
DataRow[] infoDsArgRow = dsArgdt?.Select("ItemModel='" + dr["DriveModel"].ToString()
var DriveModel = dr["DriveModel"].ToString().Length > 5 ? dr["DriveModel"].ToString().Substring(0, 5) : dr["DriveModel"].ToString(); // 截取前五位数字符
//log.Info(DriveModel);
DataRow[] infoDsArgRow = dsArgdt?.Select("ItemModel='" + DriveModel
+ "' and HandwheelMechanism = '" + dr["HandwheelMechanism"].ToString()
+ "'");
if (infoDsArgRow.Length > 0)
@ -215,9 +229,10 @@ namespace ICSSoft.FromERP
else
{
//记录未匹配到条件 统计失败的料号
ErrorCode.Add(dr["code"].ToString());
CErrorCode.Add(dr["code"].ToString() + "(驱动型号:" + dr["DriveModel"].ToString() + ",是否有手轮机构:" + dr["HandwheelMechanism"].ToString() + ");");
}
}
//log.Info("驱动部循环结束!");
}
else
{
@ -230,27 +245,43 @@ namespace ICSSoft.FromERP
}
#endregion
if (ErrorCode.Any())
if (AErrorCode.Any())
{
log.Info("未匹配到统计条件的整机料号:" + string.Join(",", AErrorCode) + "。");
}
if (BErrorCode.Any())
{
log.Info("未匹配到统计条件的本体部料号:" + string.Join(",", BErrorCode) + "。");
}
if (CErrorCode.Any())
{
log.Info("未匹配到统计条件的料号:" + string.Join(",", ErrorCode) + "。");
log.Info("未匹配到统计条件的驱动部料号:" + string.Join(",", CErrorCode) + "。");
}
log.Info("创建定额工时Req:" + JsonConvert.SerializeObject(AddList));
var response = await HttpHelper.HttpClientPost<AddStdWorkHourReq>(url, JsonConvert.SerializeObject(AddList));
//返回成功后 用流水号填写 表头产品名称、产品编码、u9料号
if (response != null)
if (AddList.Any())
{
if (response.IsOK)
var response = await HttpHelper.HttpClientPost<AddStdWorkHourReq>(url, JsonConvert.SerializeObject(AddList));
//返回成功后 用流水号填写 表头产品名称、产品编码、u9料号
if (response != null)
{
log.Info("请求成功。" + response.Message);
if (response.IsOK)
{
log.Info("请求成功。" + response.Message);
}
else
{
log.Info("请求失败。" + response.Message);
}
}
else
{
log.Info("请求失败。" + response.Message);
log.Info("未拿到响应,请求失败。");
}
}
else
{
log.Info("未拿到响应,请求失败。");
log.Info("无需请求。");
}
}

2
ICSSoft.FromERP/ICSSoft.FromERP.csproj

@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ICSSoft.FromERP</RootNamespace>
<AssemblyName>ICSSoft.FromERP</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>
</SccProjectName>

14
ICSSoft.FromERP/packages.config

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.17" targetFramework="net48" />
<package id="System.IO" version="4.3.0" targetFramework="net48" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net48" />
<package id="System.Runtime" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net48" />
<package id="System.IO" version="4.3.0" targetFramework="net48" requireReinstallation="true" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net48" requireReinstallation="true" />
<package id="System.Runtime" version="4.3.0" targetFramework="net48" requireReinstallation="true" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net48" requireReinstallation="true" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net48" requireReinstallation="true" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net48" requireReinstallation="true" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net48" requireReinstallation="true" />
</packages>

4
ICSSoft.Test/ICSSoft.Test.csproj

@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ICSSoft.Test</RootNamespace>
<AssemblyName>ICSSoft.Test</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
@ -22,6 +22,7 @@
</SccAuxPath>
<SccProvider>
</SccProvider>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
@ -34,7 +35,6 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>

2
ICSSoft.Test/Program.cs

@ -13,7 +13,7 @@ namespace ICSSoft.Test
//ICSVendor test = new ICSVendor();
//test.Execute();
IcsAutoMo2Lot4JWX test = new IcsAutoMo2Lot4JWX();
ICSAddStdWorkHourFromMES test = new ICSAddStdWorkHourFromMES();
test.Execute();
}

2
ICSSoft.Test/app.config

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup>
<connectionStrings>
<add name="connstr" connectionString="Data Source=192.168.1.88;Database=ICSWMS_Base;Uid=sa;Pwd=aA123456;"/>
<add name="APIAddStdWorkHour" connectionString="http://192.168.1.110:9097/api/APIAddStdWorkHour"/>

Loading…
Cancel
Save