费用接口PU修改

This commit is contained in:
李鹏飞 2025-06-18 10:38:46 +08:00
parent 6f5bf5da03
commit ded4928aa9
3 changed files with 99 additions and 48 deletions

View File

@ -1446,6 +1446,28 @@ namespace BLL
return response.Content; return response.Content;
} }
public static string RequestPost(string Baseurl, Dictionary<string ,string> Token, string JsonBody)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var client = new RestClient(Baseurl);
client.Timeout = -1;
var request = new RestRequest(Method.POST);
foreach (var item in Token)
{
request.AddHeader(item.Key, item.Value);
}
request.AddHeader("ClientId", SysConstSetService.ClientId);
request.AddHeader("OperationCode", Baseurl.Substring(Baseurl.LastIndexOf("/", StringComparison.Ordinal) + 1));
if (!string.IsNullOrEmpty(JsonBody))
{
request.AddJsonBody(JsonBody);
}
IRestResponse response = client.Execute(request);
return response.Content;
}
/// <summary> /// <summary>
/// 根据星期几返回值 /// 根据星期几返回值
/// </summary> /// </summary>

View File

@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Numerics; using System.Numerics;
using WIA;
namespace BLL namespace BLL
{ {
@ -373,9 +374,7 @@ namespace BLL
} }
/// 推送数据到HSE系统 public static string PushDataToHSE(string projectId, string contractNum,string costManageId)
/// </summary>
public static string PushDataToHSE(string projectId, string contractNum)
{ {
try try
{ {
@ -385,62 +384,79 @@ namespace BLL
where x.ProjectId == projectId && x.ContractNum == contractNum && x.States == Const.State_2 where x.ProjectId == projectId && x.ContractNum == contractNum && x.States == Const.State_2
orderby x.CostManageDate descending orderby x.CostManageDate descending
select x; select x;
var projectModel=ProjectService.GetProjectByProjectId(projectId);
if (costData.Any()) var contractModel = CostManageService.GetCostManageById(costManageId);
{ decimal totalAmount = costData.Sum(x => x.SumMoney ?? 0);
// 获取所有附件文件
var files = new List<object>(); var files = new List<object>();
decimal totalAmount = 0; if (contractModel!=null)
foreach (var item in costData)
{ {
var fileDetails = GetBase64FilesWithDetails(item.CostManageId); var fileDetails = GetBase64FilesWithDetails(contractModel.CostManageId);
if (fileDetails != null && fileDetails.Count > 0) if (fileDetails != null && fileDetails.Count > 0)
{ {
files.AddRange(fileDetails); files.AddRange(fileDetails);
totalAmount += item.SumMoney ?? 0;
}
} }
// 构建请求体 // 构建请求体
var requestBody = new var requestBody = new
{ {
projectId = projectId, projectNumber = projectModel.ProjectCode,
contractNo = contractNum, contractNo = contractNum,
amountHSE = totalAmount.ToString(), amountHSE = totalAmount.ToString(),
files = files files = files
}; };
var jsonBody = JsonConvert.SerializeObject(requestBody); var jsonBody = JsonConvert.SerializeObject(requestBody);
// 调用HSE接口推送数据 // 调用HSE接口推送数据
// TODO: 实现实际的HSE接口调用逻辑 var url = "http://172.29.60.33:8080";
var url="http://172.29.60.33:8080"; var requestGetTokenUrl = url + "/auth/getToken";
var requestGetTokenUrl = url + "/api/Token/GetToken"; string requestGetTokenBody = "{\"username\": \"coadmin\",\"password\": \"coadminPu@2025\"}";
string requestGetTokenBody = "{\r\n\r\n\"username\": \"coadmin\",\r\n\r\n\"password\": \"coadminPu@2025\"\r\n\r\n}";
var response = Funs.RequestPost(requestGetTokenUrl, "", requestGetTokenBody); var response = Funs.RequestPost(requestGetTokenUrl, "", requestGetTokenBody);
var responseStr = JsonConvert.DeserializeObject<JObject>(response); var responseStr = JsonConvert.DeserializeObject<JObject>(response);
if (responseStr == null || responseStr["data"].ToString() != "200") APICommonService.SaveSysHttpLog("PU_Token", requestGetTokenUrl, response);
if (responseStr == null || responseStr["code"]?.ToString() != "200" || responseStr["data"] == null)
{ {
message = "获取Pu系统Token失败"; message = "获取Pu系统Token失败";
return message;
} }
string accessToken = responseStr["data"]["token"].ToString();
var requestUrl = url + "/api/PuPayCraftAmount/AddPuPayCraftAmount"; string accessToken = responseStr["data"]["token"]?.ToString();
var responseHSE = Funs.RequestPost(requestUrl, accessToken, jsonBody); if (string.IsNullOrEmpty(accessToken))
{
message = "获取Pu系统Token失败Token为空";
return message;
}
Dictionary<string, string> headers = new Dictionary<string, string>();
headers.Add("Authorization", "Bearer " + accessToken);
var requestUrl = url + "/pu_api/payCraftAmountToHSE/add";
APICommonService.SaveSysHttpLog("PU_AddPuPayCraftAmount", requestUrl, jsonBody, "Requset");
var responseHSE = Funs.RequestPost(requestUrl, headers, jsonBody);
var responseHSEStr = JsonConvert.DeserializeObject<JObject>(responseHSE); var responseHSEStr = JsonConvert.DeserializeObject<JObject>(responseHSE);
if (responseHSEStr == null || responseHSEStr["data"].ToString()!= "200") APICommonService.SaveSysHttpLog("PU_AddPuPayCraftAmount", requestUrl, responseHSE, "Response");
if (responseHSEStr == null)
{ {
message = "推送数据到HSE系统失败"; message = "推送数据到HSE系统失败";
}
}
return message; return message;
}
else if (responseHSEStr["code"]?.ToString() != "200")
{
message = responseHSEStr["message"]?.ToString();
return message;
}
else
{
message = "";
return message;
}
}
return message;
} }
catch (Exception ex) catch (Exception ex)
{ {
// 记录错误日志 // 记录错误日志
ErrLogInfo.WriteLog(ex.Message, ex.StackTrace); ErrLogInfo.WriteLog(ex.Message, ex.StackTrace);
return "推送数据失败"+ex.Message; return "推送数据失败";
} }
} }
@ -457,9 +473,14 @@ namespace BLL
if (!string.IsNullOrEmpty(attachments)) if (!string.IsNullOrEmpty(attachments))
{ {
string filePath=Funs.RootPath+attachments.Split(',')[0]; string[] filePaths = attachments.Split(',');
FileInfo file = new FileInfo(filePath); foreach (var filePath in filePaths)
byte[] fileBytes = File.ReadAllBytes(filePath); {
string fullPath = Funs.RootPath + filePath;
if (File.Exists(fullPath))
{
FileInfo file = new FileInfo(fullPath);
byte[] fileBytes = File.ReadAllBytes(fullPath);
string base64Content = Convert.ToBase64String(fileBytes); string base64Content = Convert.ToBase64String(fileBytes);
result.Add(new Model.PuPayCraftAmountFileInput result.Add(new Model.PuPayCraftAmountFileInput
@ -470,8 +491,16 @@ namespace BLL
date = costManage?.CostManageDate?.ToString("yyyy-MM-dd") ?? DateTime.Now.ToString("yyyy-MM-dd") date = costManage?.CostManageDate?.ToString("yyyy-MM-dd") ?? DateTime.Now.ToString("yyyy-MM-dd")
}); });
} }
else
{
/* message += $"附件文件路径 {fullPath} 不存在!";
ErrLogInfo.WriteLog(message, $"File not found: {fullPath}");*/
}
}
}
return result; return result;
} }
} }
} }

View File

@ -348,7 +348,7 @@ namespace FineUIPro.Web.HSSE.CostGoods
} }
else else
{ {
string messaage = CostManageService.PushDataToHSE(this.CurrUser.LoginProjectId, costManage.ContractNum); string messaage = CostManageService.PushDataToHSE(this.CurrUser.LoginProjectId, costManage.ContractNum,costManageId);
if (string.IsNullOrEmpty(messaage)) if (string.IsNullOrEmpty(messaage))
{ {
Alert.ShowInTop("推送成功!", MessageBoxIcon.Success); Alert.ShowInTop("推送成功!", MessageBoxIcon.Success);