using System;
|
using System.Collections.Generic;
|
using AlibabaCloud.OpenApiClient.Models;
|
using AlibabaCloud.SDK.Dingtalkworkflow_1_0;
|
using AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models;
|
using AlibabaCloud.SDK.Dingtalkoauth2_1_0;
|
using AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models;
|
using AlibabaCloud.TeaUtil.Models;
|
using Tea;
|
using System.Diagnostics;
|
using MES.Service.Dto.webApi;
|
using MES.Service.Modes;
|
using SqlSugar;
|
using MES.Service.DB;
|
using MES.Service.Modes.QcIssueResult;
|
using MES.Service.Dto.webApi.QcIssueResult;
|
using MES.Service.Dto.webApi.DeliveryNote;
|
using MES.Service.Modes.DeliveryNote;
|
|
namespace MES.Service.service.QcIssueResult;
|
|
//异常处置单结果表
|
[SugarTable("MES_QCISSUE_RESULT")]
|
public class QcIssueResultManager: Repository<QcIssueResults>
|
{
|
/**
|
* 使用 Token 初始化账号Client
|
* @return Client
|
* @throws Exception
|
*/
|
public static AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client CreateClient()
|
{
|
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
|
config.Protocol = "https";
|
config.RegionId = "central";
|
return new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client(config);
|
}
|
|
public static AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client CreateClient1()
|
{
|
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
|
config.Protocol = "https";
|
config.RegionId = "central";
|
return new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client(config);
|
}
|
|
/**
|
* 获取钉钉的 Access Token
|
* @return string 返回获取到的 Access Token
|
*/
|
public string GetToken()
|
{
|
AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client client = CreateClient1();
|
AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest getAccessTokenRequest = new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest
|
{
|
AppKey = "dingyzos0r1bizj7g6lr",
|
AppSecret = "-HP4RvK2OUbqhG3iBUpd_TPe5MZRj8cfLc0b8Skt8rhC3I38kVLY9SS8P3kLWFcH",
|
};
|
|
try
|
{
|
var response = client.GetAccessToken(getAccessTokenRequest);
|
return response.Body.AccessToken; // 返回获取到的 Access Token
|
}
|
catch (TeaException err)
|
{
|
Console.WriteLine($"TeaException: Code={err.Code}, Message={err.Message}");
|
return null;
|
}
|
catch (Exception _err)
|
{
|
Console.WriteLine($"Exception: {_err.Message}");
|
return null;
|
}
|
}
|
|
/**
|
* 查看有无自选审批节点
|
* @return string 返回启动结果
|
*/
|
public string GetForecast()
|
{
|
// 获取 Access Token
|
string accessToken = GetToken();
|
if (string.IsNullOrEmpty(accessToken))
|
{
|
return "获取 Access Token 失败";
|
}
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClient();
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastHeaders processForecastHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastHeaders();
|
processForecastHeaders.XAcsDingtalkAccessToken = accessToken;
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastRequest.ProcessForecastRequestFormComponentValues formComponentValues0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastRequest.ProcessForecastRequestFormComponentValues
|
{
|
Name = "PhoneField",
|
Value = "123xxxxxxxx",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastRequest processForecastRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastRequest
|
{
|
ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC",
|
DeptId = 1,
|
UserId = "923188102",
|
FormComponentValues = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastRequest.ProcessForecastRequestFormComponentValues>
|
{
|
formComponentValues0
|
},
|
};
|
try
|
{
|
var response = client.ProcessForecastWithOptions(processForecastRequest, processForecastHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
|
return $"钉钉工作流实例启动成功: {Newtonsoft.Json.JsonConvert.SerializeObject(response.Body)}";
|
}
|
catch (TeaException err)
|
{
|
|
return $"TeaException: Code={err.Code}, Message={err.Message}";
|
|
}
|
catch (Exception _err)
|
{
|
return $"Exception: {_err.Message}";
|
}
|
}
|
|
|
/**
|
* 启动钉钉工作流实例
|
* @return string 返回启动结果
|
*/
|
|
public string GetProcessNo(GetQcIssueResultDetail getQcIssueResultDetail)
|
{
|
|
var db = SqlSugarHelper.GetInstance();
|
var mapping = db.Queryable<DingNameCode>()
|
.Where(t => t.DingDingName == getQcIssueResultDetail.Fname)
|
.Select(t => new DingNameCode
|
{
|
DingDingCode=t.DingDingCode,
|
})
|
.ToList();
|
string UserId = mapping.FirstOrDefault().DingDingCode;
|
|
|
|
Debug.WriteLine(UserId);
|
|
// 获取 Access Token
|
string accessToken = GetToken();
|
if (string.IsNullOrEmpty(accessToken))
|
{
|
return "获取 Access Token 失败";
|
}
|
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClient();
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceHeaders startProcessInstanceHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceHeaders();
|
Debug.WriteLine(accessToken);
|
startProcessInstanceHeaders.XAcsDingtalkAccessToken = accessToken; // 使用获取到的 Access Token
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues1 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextField-K2AD4O5B",
|
Value = "产品名称",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues2 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextField_DYFD1EESLVC0",
|
Value = "规格型号",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextField_1AVN2BNVY1OG0",
|
Value = "数量",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues4 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextField_1DKEMESOOGSG0",
|
Value = "送检单位",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues5 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "DDDateField_20LKOACGMLXC0",
|
Value = DateTime.Now.ToString("yyyy-MM-dd"),
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues6 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextField_WBNBWGFHR000",
|
Value = "订单号",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues7 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextareaField_1ZP3BDPMYY800",
|
Value = "对不合格或潜在不合格的描述:",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues8 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "SignatureField_SKF9Q82DZUO0",
|
Value = getQcIssueResultDetail.Fname,
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "DDSelectField_1AK82Q8A2NB40",
|
Value = "退货",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues10 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextareaField_1LM82CPPR35S0",
|
Value = "挑选内容",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues11 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextareaField_AK4JLDDNS2O0",
|
Value = "让步接收内容",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextareaField_K69R6770WLS0",
|
Value = "退货备注",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "TextareaField_194UFGLMI02O0",
|
Value = "报废备注",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "DDSelectField_1RN2L4RWQ0AO0",
|
Value = "否",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues15 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "InnerContactField_WNG7AU9R2AO0",
|
Value = "加签",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues16 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
|
{
|
Name = "DDAttachment_23VB5MMC1R1C0",
|
Value = "附件",
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners targetSelectActioners0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners
|
{
|
ActionerKey = "null",
|
ActionerUserIds = new List<string>
|
{
|
UserId
|
},
|
};
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers approvers0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers
|
{
|
ActionType = "OR",
|
UserIds = new List<string>
|
{
|
UserId
|
},
|
};
|
|
|
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest startProcessInstanceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest
|
{
|
OriginatorUserId = UserId,
|
ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC",
|
DeptId = 1,
|
FormComponentValues = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues>
|
{
|
formComponentValues1,formComponentValues2,formComponentValues3, formComponentValues4, formComponentValues5, formComponentValues6, formComponentValues7, formComponentValues8,
|
formComponentValues9,formComponentValues10, formComponentValues11, formComponentValues12, formComponentValues13, formComponentValues14
|
},
|
TargetSelectActioners = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners>
|
{
|
targetSelectActioners0
|
},
|
Approvers = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers>
|
{
|
approvers0
|
},
|
CcList = new List<string>
|
{
|
UserId
|
},
|
CcPosition = "START",
|
|
};
|
return "1";
|
//try
|
//{
|
// string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
|
// Debug.WriteLine("startProcessInstanceRequest内容:");
|
// Debug.WriteLine(requestContent);
|
// var response = client.StartProcessInstanceWithOptions(startProcessInstanceRequest, startProcessInstanceHeaders, new RuntimeOptions());
|
// return $"钉钉工作流实例启动成功: {Newtonsoft.Json.JsonConvert.SerializeObject(response.Body)}";
|
//}
|
//catch (TeaException err)
|
//{
|
// string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
|
// Debug.WriteLine("startProcessInstanceRequest内容:");
|
// Debug.WriteLine(startProcessInstanceRequest);
|
// return $"TeaException: Code={err.Code}, Message={err.Message}";
|
//}
|
//catch (Exception _err)
|
//{
|
// return $"Exception: {_err.Message}";
|
//}
|
}
|
|
|
/**
|
* 将带有流程号和检验单号的新记录插入表中
|
*/
|
public dynamic SaveProcessNo(string ReleaseNo,string ProcessNo)
|
{
|
|
var QcIssueResults = GetQcIssueResults(ReleaseNo, ProcessNo);
|
|
return UseTransaction(db =>
|
{
|
return SaveOrUpdateData(db, QcIssueResults) ? 1 : 0;
|
}) > 0;
|
}
|
|
public QcIssueResults GetQcIssueResults(string ReleaseNo, string ProcessNo)
|
{
|
var QcIssueResults = new QcIssueResults
|
{
|
ProcessNo = ProcessNo,
|
ReleaseNo = ReleaseNo
|
};
|
|
return QcIssueResults;
|
}
|
|
/**
|
* 根据流程号更新表的记录
|
*/
|
public dynamic Save(ErpQcIssueResult erpQcIssueResult)
|
{
|
|
var mesQcIssueResults = GetMesQcIssueResults(erpQcIssueResult);
|
|
return UseTransaction(db =>
|
{
|
return SaveOrUpdateData(db, mesQcIssueResults) ? 1 : 0;
|
}) > 0;
|
}
|
|
public QcIssueResults GetMesQcIssueResults(ErpQcIssueResult erpQcIssueResult)
|
{
|
var mesQcIssueResults = new QcIssueResults
|
{
|
ProcessNo = erpQcIssueResult.ProcessNo,
|
FReview = erpQcIssueResult.FReview
|
};
|
|
return mesQcIssueResults;
|
}
|
|
/**
|
* 插入和更新数据库表
|
*/
|
private bool SaveOrUpdateData(SqlSugarScope db, QcIssueResults qcIssueResults)
|
{
|
|
// 检查ProcessNo是否已经存在于数据库中
|
var existingRecord = db.Queryable<QcIssueResults>()
|
.Where(it => it.ProcessNo == qcIssueResults.ProcessNo)
|
.First(); // 使用FirstOrDefault替代
|
|
if (existingRecord != null)
|
{
|
// 如果存在,更新记录
|
existingRecord.ProcessNo = qcIssueResults.ProcessNo; // 假设Data是需要更新的字段
|
existingRecord.FReview = qcIssueResults.FReview; // 更新其他字段
|
// ... 更新其他需要更新的字段
|
|
// 执行更新操作
|
var updateResult = db.Updateable(existingRecord).ExecuteCommand();
|
return updateResult > 0; // 如果更新成功,返回true
|
}
|
else
|
{
|
var orUpdate = base.Insert(qcIssueResults);
|
if (orUpdate) return true;
|
throw new NotImplementedException("插入或更新失败");
|
}
|
|
}
|
|
///**
|
// * 将带有流程号和检验单号的新记录插入表中
|
// */
|
//public dynamic GetDingUserId()
|
//{
|
|
// return UseTransaction(db =>
|
// {
|
// return SaveOrUpdateData(db) ? 1 : 0;
|
// }) > 0;
|
//}
|
|
//public string FindDingUserId(SqlSugarScope db,DingNameCode dingNameCode)
|
//{
|
|
//}
|
}
|