费用接口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;
}
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>

View File

@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
using WIA;
namespace BLL
{
@ -373,74 +374,89 @@ namespace BLL
}
/// 推送数据到HSE系统
/// </summary>
public static string PushDataToHSE(string projectId, string contractNum)
public static string PushDataToHSE(string projectId, string contractNum,string costManageId)
{
try
{
string message = "";
// 查询当前合同所有审核通过的数据
var costData = from x in Funs.DB.CostGoods_CostManage
where x.ProjectId == projectId && x.ContractNum == contractNum && x.States == Const.State_2
orderby x.CostManageDate descending
select x;
if (costData.Any())
where x.ProjectId == projectId && x.ContractNum == contractNum && x.States == Const.State_2
orderby x.CostManageDate descending
select x;
var projectModel=ProjectService.GetProjectByProjectId(projectId);
var contractModel = CostManageService.GetCostManageById(costManageId);
decimal totalAmount = costData.Sum(x => x.SumMoney ?? 0);
var files = new List<object>();
if (contractModel!=null)
{
// 获取所有附件文件
var files = new List<object>();
decimal totalAmount = 0;
foreach (var item in costData)
var fileDetails = GetBase64FilesWithDetails(contractModel.CostManageId);
if (fileDetails != null && fileDetails.Count > 0)
{
var fileDetails = GetBase64FilesWithDetails(item.CostManageId);
if (fileDetails != null && fileDetails.Count > 0)
{
files.AddRange(fileDetails);
totalAmount += item.SumMoney ?? 0;
}
files.AddRange(fileDetails);
}
// 构建请求体
var requestBody = new
var requestBody = new
{
projectId = projectId,
projectNumber = projectModel.ProjectCode,
contractNo = contractNum,
amountHSE = totalAmount.ToString(),
files = files
};
var jsonBody = JsonConvert.SerializeObject(requestBody);
// 调用HSE接口推送数据
// TODO: 实现实际的HSE接口调用逻辑
var url="http://172.29.60.33:8080";
var requestGetTokenUrl = url + "/api/Token/GetToken";
string requestGetTokenBody = "{\r\n\r\n\"username\": \"coadmin\",\r\n\r\n\"password\": \"coadminPu@2025\"\r\n\r\n}";
var url = "http://172.29.60.33:8080";
var requestGetTokenUrl = url + "/auth/getToken";
string requestGetTokenBody = "{\"username\": \"coadmin\",\"password\": \"coadminPu@2025\"}";
var response = Funs.RequestPost(requestGetTokenUrl, "", requestGetTokenBody);
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失败";
return message;
}
}
string accessToken = responseStr["data"]["token"].ToString();
var requestUrl = url + "/api/PuPayCraftAmount/AddPuPayCraftAmount";
var responseHSE = Funs.RequestPost(requestUrl, accessToken, jsonBody);
string accessToken = responseStr["data"]["token"]?.ToString();
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);
if (responseHSEStr == null || responseHSEStr["data"].ToString()!= "200")
APICommonService.SaveSysHttpLog("PU_AddPuPayCraftAmount", requestUrl, responseHSE, "Response");
if (responseHSEStr == null)
{
message = "推送数据到HSE系统失败";
return message;
}
else if (responseHSEStr["code"]?.ToString() != "200")
{
message = responseHSEStr["message"]?.ToString();
return message;
}
else
{
message = "";
return message;
}
}
return message;
return message;
}
catch (Exception ex)
{
// 记录错误日志
ErrLogInfo.WriteLog(ex.Message, ex.StackTrace);
return "推送数据失败"+ex.Message;
return "推送数据失败";
}
}
@ -456,22 +472,35 @@ namespace BLL
var attachments = AttachFileService.getFileUrl(costManageId);
if (!string.IsNullOrEmpty(attachments))
{
string filePath=Funs.RootPath+attachments.Split(',')[0];
FileInfo file = new FileInfo(filePath);
byte[] fileBytes = File.ReadAllBytes(filePath);
string base64Content = Convert.ToBase64String(fileBytes);
result.Add(new Model.PuPayCraftAmountFileInput
{
string[] filePaths = attachments.Split(',');
foreach (var filePath in filePaths)
{
name = file.Name,
content = base64Content,
thisamount = costManage?.SumMoney?.ToString() ?? "0",
date = costManage?.CostManageDate?.ToString("yyyy-MM-dd") ?? DateTime.Now.ToString("yyyy-MM-dd")
});
string fullPath = Funs.RootPath + filePath;
if (File.Exists(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 = 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}");*/
}
}
}
return result;
}
}
}

View File

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