1.OA->MES审批接口开发。
2.OA->MES退回接口开发。
3.MES->OA由同步调整为异步。
已添加1个文件
已修改3个文件
86 ■■■■ 文件已修改
Controllers/QC/OAJyController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/QC/OaToMesController.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/QC/OaApi.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesXkyService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/QC/OAJyController.cs
@@ -15,11 +15,11 @@
    OaApiService m = new OaApiService();
    [HttpPost("SumbitIQCToOA")]
    public async Task<ResponseResult> SumbitIQCToOA(dynamic queryObj)
    public  ResponseResult SumbitIQCToOA(dynamic queryObj)
    {
        try
        {
            dynamic resultInfos = await m.SubmitIQCToOA(queryObj);
            dynamic resultInfos =  m.SubmitIQCToOA(queryObj);
            
            return new ResponseResult
            {
Controllers/QC/OaToMesController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
using System.Dynamic;
using Microsoft.AspNetCore.Mvc;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.service.QC;
using NewPdaSqlServer.util;
using Newtonsoft.Json.Linq;
namespace NewPdaSqlServer.Controllers.QC;
[Route("api/[controller]")]
[ApiController]
public class OaToMesController : ControllerBase
{
    OaApiService m = new OaApiService();
    [HttpPost("ApproveIqcEx")]
    public ResponseResult ApproveIqc(dynamic queryObj)
    {
        try
        {
            return new ResponseResult
            {
                status = 0,
                message = "异常处置单审批接口开发中",
                data = ""
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("RetrunIqcEx")]
    public ResponseResult APVMes_QC_Exceptional(dynamic queryObj)
    {
        try
        {
            return new ResponseResult
            {
                status = 0,
                message = "异常处置单退回接口开发中",
                data = ""
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
service/QC/OaApi.cs
@@ -33,7 +33,7 @@
        _httpClient.Timeout = TimeSpan.FromSeconds(30);
    }
    public async Task<dynamic> SubmitIQCToOA(dynamic queryObj)
    public  dynamic SubmitIQCToOA(dynamic queryObj)
    {
        // ä¿®æ”¹å‚数验证字段名
        if (string.IsNullOrEmpty(queryObj.userId.ToString())) throw new Exception("用户id不允许为空");
@@ -47,12 +47,12 @@
            //var query = JObject.FromObject(queryObj);
            // 1. æ³¨å†ŒèŽ·å–å‡­è¯
            var registResult = await GetRegistAsync();
            var registResult =  GetRegistAsync();
            var secret = registResult["secrit"].ToString();
            var spk = registResult["spk"].ToString();
            // 2. èŽ·å–è®¿é—®ä»¤ç‰Œ
            var tokenResult = await ApplyTokenAsync(secret, spk);
            var tokenResult =  ApplyTokenAsync(secret, spk);
            var token = tokenResult["token"].ToString();
            // 3. å‡†å¤‡è¯·æ±‚头(移除Content-Type设置)
@@ -65,7 +65,7 @@
            var requestData = BuildRequestData(queryObj);
            // 5. å‘送请求
            var response = await PostFormAsync(WorkflowUrl, requestData);
            var response = PostForm(WorkflowUrl, requestData);
            // æ–°å¢žæ—¥å¿—记录(在返回响应前)
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
@@ -430,7 +430,7 @@
        };
    }
    private async Task<JObject> GetRegistAsync()
    private  JObject GetRegistAsync()
    {
        using var rsa = new RSACryptoServiceProvider(2048);
        var cpk = Convert.ToBase64String(rsa.ExportRSAPublicKey());
@@ -439,18 +439,18 @@
        _httpClient.DefaultRequestHeaders.Add("appid", AppId);
        _httpClient.DefaultRequestHeaders.Add("cpk", cpk);
        var response = await _httpClient.PostAsync(BaseUrl + "regist", null);
        return JObject.Parse(await response.Content.ReadAsStringAsync());
        var response = _httpClient.PostAsync(BaseUrl + "regist", null).Result;
        return JObject.Parse(response.Content.ReadAsStringAsync().Result);
    }
    private async Task<JObject> ApplyTokenAsync(string secret, string spk)
    private JObject ApplyTokenAsync(string secret, string spk)
    {
        _httpClient.DefaultRequestHeaders.Clear();
        _httpClient.DefaultRequestHeaders.Add("appid", AppId);
        _httpClient.DefaultRequestHeaders.Add("secret", RSAEncrypt(secret, spk));
        var response = await _httpClient.PostAsync(BaseUrl + "applytoken", null);
        return JObject.Parse(await response.Content.ReadAsStringAsync());
        var response = _httpClient.PostAsync(BaseUrl + "applytoken", null).Result;
        return JObject.Parse(response.Content.ReadAsStringAsync().Result);
    }
    private string RSAEncrypt(string data, string publicKey)
@@ -475,7 +475,7 @@
        return encryptedContent;
    }
    private async Task<dynamic> PostFormAsync(string url, Dictionary<string, object> data)
    private dynamic PostForm(string url, Dictionary<string, object> data)
    {
        // æ”¹ç”¨FormUrlEncodedContent并正确设置Content-Type
        var formData = new List<KeyValuePair<string, string>>();
@@ -487,8 +487,8 @@
        var content = new FormUrlEncodedContent(formData);
        content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/x-www-form-urlencoded");
        var response = await _httpClient.PostAsync(url, content);
        var responseString = await response.Content.ReadAsStringAsync();
        var response = _httpClient.PostAsync(url, content).Result;
        var responseString = response.Content.ReadAsStringAsync().Result;
        // æ·»åŠ å“åº”å…ƒæ•°æ®
        var responseInfo = new JObject
service/Warehouse/MesXkyService.cs
@@ -66,8 +66,8 @@
            if (responseJson.result != 1)
                throw new ApplicationException(responseJson.errorMsg);
            // æ–°å¢žæ•°æ®å­˜å‚¨é€»è¾‘,储存主表逻辑
            var result = 0;
            // æ–°å¢žæ•°æ®å­˜å‚¨é€»è¾‘
           List<DeliveryNotice> noticeList = JsonConvert.DeserializeObject<List<DeliveryNotice>>(responseJson.dataList.ToString());
            noticeList.ForEach(n => n.Id = Guid.NewGuid());  // æ–°å¢žGUID赋值
            Db.Ado.UseTran(() =>