1
This commit is contained in:
@@ -92,6 +92,11 @@ namespace BLL
|
||||
{
|
||||
return Funs.DB.Sys_Const.FirstOrDefault(e => e.ConstValue == constValue && e.GroupId == groupId);
|
||||
}
|
||||
|
||||
public static Sys_Const GetConstByConstText(string constText)
|
||||
{
|
||||
return Funs.DB.Sys_Const.FirstOrDefault(e => e.ConstText == constText);
|
||||
}
|
||||
public static void DeleteConstValueBygroupId(string groupId)
|
||||
{
|
||||
var q = Funs.DB.Sys_Const.Where(x => x.GroupId == groupId);
|
||||
|
||||
@@ -386,28 +386,17 @@ namespace BLL
|
||||
select x;
|
||||
var projectModel=ProjectService.GetProjectByProjectId(projectId);
|
||||
var contractModel = CostManageService.GetCostManageById(costManageId);
|
||||
decimal totalAmount = costData.Sum(x => x.SumMoney ?? 0);
|
||||
//decimal totalAmount = costData.Sum(x => x.SumMoney ?? 0);
|
||||
var files = new List<object>();
|
||||
if (contractModel!=null)
|
||||
{
|
||||
var fileDetails = GetBase64FilesWithDetails(contractModel.CostManageId);
|
||||
if (fileDetails != null && fileDetails.Count > 0)
|
||||
{
|
||||
var url = ConstValue.GetConstByConstText("PU_PUSH_URL")?.ConstValue;
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
files.AddRange(fileDetails);
|
||||
message = "未配置推送接口地址";
|
||||
return message;
|
||||
|
||||
}
|
||||
|
||||
// 构建请求体
|
||||
var requestBody = new
|
||||
{
|
||||
projectNumber = projectModel.ProjectCode,
|
||||
contractNo = contractNum,
|
||||
amountHSE = totalAmount.ToString(),
|
||||
files = files
|
||||
};
|
||||
var jsonBody = JsonConvert.SerializeObject(requestBody);
|
||||
|
||||
// 调用HSE接口推送数据
|
||||
var url = "http://172.29.60.33:9037";
|
||||
var requestGetTokenUrl = url + "/auth/getToken";
|
||||
string requestGetTokenBody = "{\"username\": \"coadmin\",\"password\": \"coadminPu@2025\"}";
|
||||
var response = Funs.RequestPost(requestGetTokenUrl, "", requestGetTokenBody);
|
||||
@@ -425,10 +414,55 @@ namespace BLL
|
||||
{
|
||||
message = "获取Pu系统Token失败,Token为空";
|
||||
return message;
|
||||
}
|
||||
}
|
||||
Dictionary<string, string> headers = new Dictionary<string, string>();
|
||||
headers.Add("Authorization", "Bearer " + accessToken);
|
||||
#region 先获取当前费用是否已经推送过
|
||||
var getRequestUrl = url + "/pu_api/payCraftAmountToHSE/get";
|
||||
var getRequestbody= $"{{\"projectNumber\":\"{projectModel.ProjectCode}\",\"contractNo\":\"{contractNum}\"}}";
|
||||
APICommonService.SaveSysHttpLog("PU_GetPuPayCraftAmount", getRequestUrl, getRequestbody, "Requset");
|
||||
var getResponse = Funs.RequestPost(getRequestUrl, headers, getRequestbody);
|
||||
APICommonService.SaveSysHttpLog("PU_GetPuPayCraftAmount", getRequestUrl, getResponse, "Response");
|
||||
var getResponseStr = JsonConvert.DeserializeObject<JObject>(getResponse);
|
||||
if (getResponseStr == null)
|
||||
{
|
||||
message = "推送数据到HSE系统失败";
|
||||
return message;
|
||||
}
|
||||
else if (getResponseStr["code"]?.ToString() != "200")
|
||||
{
|
||||
message = getResponseStr["message"]?.ToString();
|
||||
return message;
|
||||
}
|
||||
var getResponseOutput = JsonConvert.DeserializeObject<List<PuGetApiOutput>>(getResponseStr["data"]?.ToString()) ;
|
||||
if (getResponseOutput.Any() && getResponseOutput.Count(x=>x.itemNo== costManageId)>0)
|
||||
{
|
||||
message = "当前费用已推送,无需重复推送!";
|
||||
return message;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 推送数据至Pu
|
||||
var requestUrl = url + "/pu_api/payCraftAmountToHSE/add";
|
||||
// 构建请求体
|
||||
var fileDetails = GetBase64FilesWithDetails(contractModel.CostManageId);
|
||||
if (fileDetails != null && fileDetails.Count > 0)
|
||||
{
|
||||
files.AddRange(fileDetails);
|
||||
}
|
||||
List<PuAddApiInput> puAddApiInputs = new List<PuAddApiInput>()
|
||||
{
|
||||
new PuAddApiInput()
|
||||
{
|
||||
projectNumber = projectModel.ProjectCode,
|
||||
itemId= costManageId,
|
||||
contractNo = contractNum,
|
||||
amountHSE = contractModel.SumMoney.ToString(),
|
||||
files = files
|
||||
}
|
||||
};
|
||||
var jsonBody = JsonConvert.SerializeObject(puAddApiInputs);
|
||||
APICommonService.SaveSysHttpLog("PU_AddPuPayCraftAmount", requestUrl, jsonBody, "Requset");
|
||||
var responseHSE = Funs.RequestPost(requestUrl, headers, jsonBody);
|
||||
var responseHSEStr = JsonConvert.DeserializeObject<JObject>(responseHSE);
|
||||
@@ -438,16 +472,23 @@ namespace BLL
|
||||
message = "推送数据到HSE系统失败";
|
||||
return message;
|
||||
}
|
||||
else if ( string.IsNullOrEmpty(responseHSEStr["code"]?.ToString()))
|
||||
{
|
||||
message = responseHSE;
|
||||
return message;
|
||||
}
|
||||
else if (responseHSEStr["code"]?.ToString() != "200")
|
||||
{
|
||||
message = responseHSEStr["message"]?.ToString();
|
||||
return message;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
message = "";
|
||||
return message;
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
return message;
|
||||
@@ -459,7 +500,6 @@ namespace BLL
|
||||
return "推送数据失败";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取Base64编码的附件文件
|
||||
/// </summary>
|
||||
@@ -468,37 +508,39 @@ namespace BLL
|
||||
var result = new List<object>();
|
||||
// 获取费用管理信息
|
||||
var costManage = GetCostManageById(costManageId);
|
||||
// 获取附件文件
|
||||
var attachments = AttachFileService.getFileUrl(costManageId);
|
||||
var costItem = BLL.CostManageItemService.GetCostManageItemByCostManageId(costManageId);
|
||||
foreach (var item in costItem)
|
||||
{ // 获取附件文件
|
||||
var attachments = AttachFileService.getFileUrl(item.CostManageItemId);
|
||||
|
||||
if (!string.IsNullOrEmpty(attachments))
|
||||
{
|
||||
string[] filePaths = attachments.Split(',');
|
||||
foreach (var filePath in filePaths)
|
||||
if (!string.IsNullOrEmpty(attachments))
|
||||
{
|
||||
string fullPath = Funs.RootPath + filePath;
|
||||
if (File.Exists(fullPath))
|
||||
string[] filePaths = attachments.Split(',');
|
||||
foreach (var filePath in filePaths)
|
||||
{
|
||||
FileInfo file = new FileInfo(fullPath);
|
||||
byte[] fileBytes = File.ReadAllBytes(fullPath);
|
||||
string base64Content = Convert.ToBase64String(fileBytes);
|
||||
|
||||
result.Add(new Model.PuPayCraftAmountFileInput
|
||||
string fullPath = Funs.RootPath + filePath;
|
||||
if (File.Exists(fullPath))
|
||||
{
|
||||
name = file.Name,
|
||||
content = base64Content,
|
||||
thisamount = costManage?.SumMoney?.ToString() ?? "0",
|
||||
date = costManage?.CostManageDate?.ToString("yyyy-MM-dd") ?? DateTime.Now.ToString("yyyy-MM-dd")
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
/* message += $"附件文件路径 {fullPath} 不存在!";
|
||||
ErrLogInfo.WriteLog(message, $"File not found: {fullPath}");*/
|
||||
FileInfo file = new FileInfo(fullPath);
|
||||
byte[] fileBytes = File.ReadAllBytes(fullPath);
|
||||
string base64Content = Convert.ToBase64String(fileBytes);
|
||||
|
||||
result.Add(new Model.PuPayCraftAmountFileInput
|
||||
{
|
||||
name = file.Name,
|
||||
content = base64Content,
|
||||
thisamount = item?.PriceMoney?.ToString() ?? "0",
|
||||
date = costManage?.CompileDate?.ToString("yyyy-MM-dd") ?? DateTime.Now.ToString("yyyy-MM-dd")
|
||||
});
|
||||
|
||||
continue;//只取第一个文件
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -16785,7 +16785,7 @@
|
||||
</COMReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v17.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Model
|
||||
{
|
||||
public class PuGetApiOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 合同号
|
||||
/// </summary>
|
||||
public string contractNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目号
|
||||
/// </summary>
|
||||
public string projectNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
public string itemNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 本次申请费用
|
||||
/// </summary>
|
||||
public string amountHSE { get; set; }
|
||||
}
|
||||
public class PuAddApiInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 合同号
|
||||
/// </summary>
|
||||
public string contractNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目号
|
||||
/// </summary>
|
||||
public string projectNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
public string itemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 本次申请费用
|
||||
/// </summary>
|
||||
public string amountHSE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the files.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// The files.
|
||||
/// </value>
|
||||
public List<object> files { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -245,6 +245,7 @@
|
||||
<Compile Include="HJGL\sp_index_HJGLItem.cs" />
|
||||
<Compile Include="HSSE\DigDataHSEDataCollectItem.cs" />
|
||||
<Compile Include="HSSE\PageDataPersonInOutItem.cs" />
|
||||
<Compile Include="HSSE\PuApiOutput.cs" />
|
||||
<Compile Include="HSSE\PuPayCraftAmountInput.cs" />
|
||||
<Compile Include="HSSE\WorkPostStatisticItem.cs" />
|
||||
<Compile Include="HSSE\HSSE_HazardTemplate.cs" />
|
||||
|
||||
Reference in New Issue
Block a user