111
cnf
2025-05-08 3155ee2aeffa89f229a4f9d31f8fd34a3809f358
111
已修改3个文件
已添加1个文件
258 ■■■■ 文件已修改
StandardInterface/MES.Service/Modes/QcIssueResult/IqcApplicant.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/QcIssueResult/QcIssueResults.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MESApplication/Controllers/QcIssueResult/QcIssueResultController.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/QcIssueResult/IqcApplicant.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MES.Service.Modes.QcIssueResult;
//异常处置单结果表
[SugarTable("MES_QCISSUE_RESULT_APPLICANT")]
public class IqcApplicant
{
    //SEQ_QCISSUE_RESULT_APPLICANT
    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_QCISSUE_RESULT_APPLICANT")]
    public decimal Id { get; set; }
    //申请人ID
    [SugarColumn(ColumnName = "APPLICANTID")]
    public string? APPLICANTID { get; set; }
    //流程号
    [SugarColumn(ColumnName = "INSTANCEID")]
    public string? INSTANCEID { get; set; }
    //申请人名字
    [SugarColumn(ColumnName = "APPLICANTNAME")]
    public string? APPLICANTNAME { get; set; }
}
StandardInterface/MES.Service/Modes/QcIssueResult/QcIssueResults.cs
@@ -15,20 +15,52 @@
    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_QCISSUE_RESULT")]
    public decimal Id { get; set; }
    //送货单号
    //来料检验单号
    [SugarColumn(ColumnName = "RELEASE_NO")]
    public string? ReleaseNo { get; set; }
    //送货单号
    [SugarColumn(ColumnName = "PROCESSNO")]
    public string? ProcessNo { get; set; }
    //流程号
    [SugarColumn(ColumnName = "INSTANCEID")]
    public string? INSTANCEID { get; set; }
    //供应商
    //处理结果
    [SugarColumn(ColumnName = "FREVIEW")]
    public string? FReview { get; set; }
    //供应商
    //异常处置单是否被拒绝
    [SugarColumn(ColumnName = "QCSTATU")]
    public string? QcStatu { get; set; }
    //申请数量
    [SugarColumn(ColumnName = "APPLICATIONNUM")]
    public string? APPLICATIONNUM { get; set; }
    //不良原因
    [SugarColumn(ColumnName = "BADCAUSES")]
    public string? BADCAUSES { get; set; }
    //所属车间
    [SugarColumn(ColumnName = "BELONGINGWORKSHOP")]
    public string? BELONGINGWORKSHOP { get; set; }
    //评审状态
    [SugarColumn(ColumnName = "REVIEWSTATUS")]
    public string? REVIEWSTATUS { get; set; }
    //物料名称
    [SugarColumn(ColumnName = "ITEMNAME")]
    public string? ITEMNAME { get; set; }
    //物料编码
    [SugarColumn(ColumnName = "ITEMNO")]
    public string? ITEMNO { get; set; }
    //供应商名称
    [SugarColumn(ColumnName = "SUPPLIERNAME")]
    public string? SUPPLIERNAME { get; set; }
    //备注
    [SugarColumn(ColumnName = "REMARK")]
    public string? REMARK { get; set; }
}
StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
@@ -305,12 +305,12 @@
            };
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
            {
                Name = "DDPhotoField_QD15KYR764G0\r\n",
                Name = "DDPhotoField_QD15KYR764G0",
                Value = "测试不良图片",
            };
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
            {
                Name = "DDAttachment_GLZLFSIWK9S0\r\n",
                Name = "DDAttachment_GLZLFSIWK9S0",
                Value = "附件",
            };
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
@@ -419,7 +419,7 @@
    {
        var QcIssueResults = new QcIssueResults
        {
            ProcessNo = ProcessNo,
            INSTANCEID = ProcessNo,
            ReleaseNo = ReleaseNo,
            QcStatu = ""
        };
@@ -432,28 +432,44 @@
    */
    public dynamic Save(ErpQcIssueResult erpQcIssueResult)
    {
        var json = JsonConvert.SerializeObject(erpQcIssueResult);
        //var json = JsonConvert.SerializeObject(erpQcIssueResult);
        //var saveSuccess = UseTransaction(db =>
        ////var saveSuccess = UseTransaction(db =>
        ////{
        ////    var data = GetMesQcIssueResults(erpQcIssueResult);
        ////    return SaveOrUpdateData(db, data);
        ////});
        //return new
        //{
        //    var data = GetMesQcIssueResults(erpQcIssueResult);
        //    return SaveOrUpdateData(db, data);
        //});
        //    SerializedPayload = json,
        //    ServerTime = DateTime.UtcNow.ToString("O")
        //};
        return new
        var mesQcIssueResults = GetMesQcIssueResults(erpQcIssueResult);
        return UseTransaction(db =>
        {
            SerializedPayload = json,
            ServerTime = DateTime.UtcNow.ToString("O")
        };
            return SaveOrUpdateData(db, mesQcIssueResults) ? 1 : 0;
        }) > 0;
    }
    public QcIssueResults GetMesQcIssueResults(ErpQcIssueResult erpQcIssueResult)
    {
        var mesQcIssueResults = new QcIssueResults
        {
            ProcessNo = erpQcIssueResult.ProcessNo,
            INSTANCEID = erpQcIssueResult.ProcessNo,
            FReview = erpQcIssueResult.FReview,
            QcStatu = erpQcIssueResult.QcStatus
            APPLICATIONNUM = erpQcIssueResult.ApplicationQuantity.ToString(),
            BADCAUSES = erpQcIssueResult.BadCauses,
            BELONGINGWORKSHOP = erpQcIssueResult.AffiliatedWorkshop,
            REVIEWSTATUS = erpQcIssueResult.FReview,
            QcStatu = erpQcIssueResult.QcStatus,
            ITEMNAME =erpQcIssueResult.ItemName,
            ITEMNO =erpQcIssueResult.ItemNo,
            SUPPLIERNAME = erpQcIssueResult.SupplierName,
            REMARK=erpQcIssueResult.Remark
        };
        return mesQcIssueResults;
@@ -467,7 +483,7 @@
        // æŸ¥è¯¢ QcIssueResults è¡¨ä¸­æ˜¯å¦å­˜åœ¨åŒ¹é…çš„记录
        var mapping = db.Queryable<QcIssueResults>()
            .Where(t => t.ProcessNo == qcIssueResults.ProcessNo)
            .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID)
            .Select(t => new QcIssueResults
            {
                ReleaseNo = t.ReleaseNo,
@@ -485,9 +501,20 @@
                    .SetColumns(t => new QcIssueResults
                    {
                        ReleaseNo = ReleaseNo,
                        FReview = qcIssueResults.FReview
                        INSTANCEID = qcIssueResults.INSTANCEID,
                        FReview = qcIssueResults.FReview,
                        APPLICATIONNUM = qcIssueResults.APPLICATIONNUM,
                        BADCAUSES = qcIssueResults.BADCAUSES,
                        BELONGINGWORKSHOP = qcIssueResults.BELONGINGWORKSHOP,
                        REVIEWSTATUS = qcIssueResults.REVIEWSTATUS,
                        QcStatu = qcIssueResults.QcStatu,
                        ITEMNAME = qcIssueResults.ITEMNAME,
                        ITEMNO = qcIssueResults.ITEMNO,
                        SUPPLIERNAME = qcIssueResults.SUPPLIERNAME,
                        REMARK = qcIssueResults.REMARK
                    })
                    .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // æ˜¾å¼æŒ‡å®šæ›´æ–°æ¡ä»¶
                    .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // æ˜¾å¼æŒ‡å®šæ›´æ–°æ¡ä»¶
                    .ExecuteCommand();
                // æŸ¥è¯¢ UpdateMesQaItems è¡¨ä¸­æ˜¯å¦å­˜åœ¨åŒ¹é…çš„记录
@@ -499,41 +526,28 @@
                if (existingRecord != null)
                {
                    string result = null;
                    bool returnValue = false;
                    try
                    {
                        string connectionString = "User Id=yc_dev;Password=ycdev;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))";
                        using (OracleConnection connection = new OracleConnection(connectionString))
                        //定义输入参数
                        var inputParam1 = new SugarParameter("pi_no", existingRecord.ReleaseNo);
                        var inputParam2 = new SugarParameter("pi_user", "PL017");
                        // å®šä¹‰è¾“出参数
                        var outParam1 = new SugarParameter("po_result", null, true);
                        var outParam2 = new SugarParameter("po_msg", null, true);
                        // ä½¿ç”¨ SqlSugar æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹
                        Db.Ado.ExecuteCommand("BEGIN PRC_MES_IQC_CG_REVOCK(:pi_no,:pi_user,:po_result,:po_msg ); END;", inputParam1, inputParam2, outParam1, outParam2);
                        // èŽ·å–è¾“å‡ºå‚æ•°çš„å€¼
                        int result = int.Parse((string)outParam1.Value);
                        string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
                        if (result == 1)
                        {
                            using (OracleCommand command = new OracleCommand("PRC_MES_IQC_CG_REVOCK", connection))
                            {
                                command.CommandType = CommandType.StoredProcedure;
                                // æ·»åŠ è¾“å…¥å‚æ•°
                                command.Parameters.Add("pi_no", OracleDbType.Varchar2).Value = existingRecord.ReleaseNo; // æ›¿æ¢ä¸ºå®žé™…值
                                command.Parameters.Add("pi_user", OracleDbType.Varchar2).Value = "PL017"; // æ›¿æ¢ä¸ºå®žé™…值
                                                                                                                       // æ·»åŠ è¾“å‡ºå‚æ•°
                                OracleParameter poResult = new OracleParameter("po_result", OracleDbType.Int32, ParameterDirection.Output);
                                OracleParameter poMsg = new OracleParameter("po_msg", OracleDbType.Varchar2, 4000, ParameterDirection.Output);
                                command.Parameters.Add(poResult);
                                command.Parameters.Add(poMsg);
                                // æ‰“开连接并执行命令
                                connection.Open();
                                command.ExecuteNonQuery();
                                // å¤„理返回值
                                if (poResult.Value != null && poResult.Value.ToString() == "0")
                                {
                                    returnValue = true;
                                }
                                else
                                {
                                    // è¾“出错误信息
                                    string errorMsg = poMsg.Value != null ? poMsg.Value.ToString() : "Unknown error occurred";
                                    Console.WriteLine("Error: " + errorMsg);
                                }
                            }
                            //存储过程失败则事务进行回滚
                            db.Ado.RollbackTran();
                            throw new Exception(message);
                        }
                        return returnValue;
                        // æäº¤äº‹åŠ¡
                        db.Ado.CommitTran();
                        return true;
                    }
                    catch (Exception ex)
                    {
@@ -554,9 +568,20 @@
                    .SetColumns(t => new QcIssueResults
                    {
                        ReleaseNo = ReleaseNo,
                        FReview = qcIssueResults.FReview
                        INSTANCEID = qcIssueResults.INSTANCEID,
                        FReview = qcIssueResults.FReview,
                        APPLICATIONNUM = qcIssueResults.APPLICATIONNUM,
                        BADCAUSES = qcIssueResults.BADCAUSES,
                        BELONGINGWORKSHOP = qcIssueResults.BELONGINGWORKSHOP,
                        REVIEWSTATUS = qcIssueResults.REVIEWSTATUS,
                        QcStatu = qcIssueResults.QcStatu,
                        ITEMNAME = qcIssueResults.ITEMNAME,
                        ITEMNO = qcIssueResults.ITEMNO,
                        SUPPLIERNAME = qcIssueResults.SUPPLIERNAME,
                        REMARK = qcIssueResults.REMARK
                    })
                    .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // æ˜¾å¼æŒ‡å®šæ›´æ–°æ¡ä»¶
                    .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // æ˜¾å¼æŒ‡å®šæ›´æ–°æ¡ä»¶
                    .ExecuteCommand();
                // æŸ¥è¯¢ UpdateMesQaItems è¡¨ä¸­æ˜¯å¦å­˜åœ¨åŒ¹é…çš„记录
@@ -569,7 +594,7 @@
                if (existingRecord != null)
                {
                    // æ›´æ–° UpdateMesQaItems è¡¨ä¸­çš„字段
                    existingRecord.FngHandle = qcIssueResults.FReview;
                    existingRecord.FngHandle = qcIssueResults.REVIEWSTATUS;
                    if (existingRecord.FngHandle == "退货")
                    {
                        existingRecord.FMRMODE = "退料补料";
@@ -582,6 +607,44 @@
                    // æ‰§è¡Œæ›´æ–°æ“ä½œ
                    updateResult = db.Updateable(existingRecord).ExecuteCommand();
                    if (updateResult > 0)
                    {
                        try
                        {
                            //定义输入参数
                            var inputParam1 = new SugarParameter("PI_BILLNO", ReleaseNo);
                            var inputParam2 = new SugarParameter("PI_USER", "PL017");
                            var inputParam3 = new SugarParameter("PI_HANDLE", existingRecord.FngHandle);
                            var inputParam4 = new SugarParameter("PI_TLFS", existingRecord.FMRMODE);
                            var inputParam5 = new SugarParameter("PI_REMARK", "");
                            // å®šä¹‰è¾“出参数
                            var outParam1 = new SugarParameter("PO_RESULT", null, true);
                            var outParam2 = new SugarParameter("PO_MSG", null, true);
                            // ä½¿ç”¨ SqlSugar æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹
                            Db.Ado.ExecuteCommand("BEGIN PRC_MES_IQC_CG_SUBMIT(:PI_BILLNO,:PI_BILLNO,:PI_HANDLE,:PI_TLFS,:PI_REMARK,:PO_RESULT,:PO_MSG); END;", inputParam1, inputParam2, inputParam3, inputParam4, inputParam5, outParam1, outParam2);
                            // èŽ·å–è¾“å‡ºå‚æ•°çš„å€¼
                            int result = int.Parse((string)outParam1.Value);
                            string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
                            if (result == 1)
                            {
                                //存储过程失败则事务进行回滚
                                db.Ado.RollbackTran();
                                throw new Exception(message);
                            }
                            // æäº¤äº‹åŠ¡
                            db.Ado.CommitTran();
                            return true;
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Exception: " + ex.Message);
                            return false;
                        }
                    }
                    return updateResult > 0; // å¦‚果更新成功,返回 true
                }
                else
StandardInterface/MESApplication/Controllers/QcIssueResult/QcIssueResultController.cs
@@ -44,18 +44,18 @@
            // è°ƒç”¨ QcIssueResultManager ä¸­çš„ GetProcessNo æ–¹æ³•来启动钉钉工作流实例
            string result = m.GetProcessNo(getQcIssueResultDetail);
            //string getLaboratoryDetailsJson = JsonConvert.SerializeObject(getQcIssueResultDetail, Formatting.Indented);
            //Debug.WriteLine("getQcIssueResultDetail: " + getLaboratoryDetailsJson);
            string getLaboratoryDetailsJson = JsonConvert.SerializeObject(getQcIssueResultDetail, Formatting.Indented);
            Debug.WriteLine("getQcIssueResultDetail: " + getLaboratoryDetailsJson);
            //string jsonPart = result.Substring(result.IndexOf("{"));
            //JObject jsonObject = JObject.Parse(jsonPart);
            //// æå–instanceId的值
            //string instanceId = jsonObject["InstanceId"].ToString();
            string jsonPart = result.Substring(result.IndexOf("{"));
            JObject jsonObject = JObject.Parse(jsonPart);
            // æå–instanceId的值
            string instanceId = jsonObject["InstanceId"].ToString();
            //dynamic resultInfos = new ExpandoObject();
            //string ProcessNo = instanceId;
            //var save = m.SaveProcessNo(getQcIssueResultDetail.ReleaseNo, instanceId);
            //resultInfos.tbBillList = save;
            dynamic resultInfos = new ExpandoObject();
            string ProcessNo = instanceId;
            var save = m.SaveProcessNo(getQcIssueResultDetail.ReleaseNo, instanceId);
            resultInfos.tbBillList = save;
            return Ok(result);
        }