yusijie
8 天以前 861aefcec45c1843ad20d22a017054d33f78f8b9
WebAPI/Controllers/SBGL/SB_EquipICMOTechParamBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using DLL;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
@@ -7,6 +8,7 @@
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using WebAPI.Models;
@@ -332,7 +334,7 @@
                            return objJsonResult;
                        }
                        else
                        {
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据号:"+ oBill.omodel.HBillNo+ " 审核成功!";
@@ -874,6 +876,31 @@
                if (bResult)
                {
                    //自动审核设置
                    if (OperationType == "1")
                    {
                        objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); //返回主ID
                        //系统参数  自动审核
                        string sReturn = "";
                        if (oSystemParameter.ShowBill(ref sReturn) == true)
                        {
                            if (oSystemParameter.omodel.SB_EquipICMOTechParamBill_Check == "Y") //系统参数  自动审核
                            {
                                objJsonResult.Verify = "Y";
                            }
                            else
                            {
                                objJsonResult.Verify = "N";
                            }
                        }
                    }
                    else
                    {
                        objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); //返回主ID
                        objJsonResult.Verify = "N";
                    }
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;  //成功!
@@ -1128,9 +1155,98 @@
                return objJsonResult;
            }
        }
        #endregion
        #endregion
        # region 手工点检表出现NG发送信息
        [Route("SB_EquipICMOTechParamBillController/HSendDDMeg")]
        [HttpGet]
        public async Task<object> HSendDDMeg(string HInterID)
        {
            try
            {
                //查询子表是否有NG值
                ds = oCn.RunProcReturn("select  * from SB_EquipICMOTechParamBillMain a inner join SB_EquipICMOTechParamBillSub b on a.HInterID=b.HInterID where b.HResult='NG' and a.HInterID=" + HInterID, "SB_EquipICMOTechParamBillMain");
                if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count != 0)
                {
                    //查询并合并异常工艺参数值
                    string sql = @"SELECT 生产车间,  STUFF((SELECT ', ' + CAST(hsubid AS VARCHAR(10)) FROM h_v_SB_EquipICMOTechParamBillList_Detail AS InnerTable  WHERE InnerTable.生产车间 = OuterTable.生产车间 AND InnerTable.检测结果 = 'NG' AND InnerTable.hmainid ='"+HInterID+"' FOR XML PATH('')), 1, 2, '') AS hsubid,STUFF((  SELECT '; ' + 设备编码 + ' - ' + 工艺参数 + ' - 工艺参数值: ' + CAST(工艺参数值 AS VARCHAR(10)) + ' - 标准值: ' + CAST(标准值 AS VARCHAR(10)) + ' - 上限: ' + CAST(上限 AS VARCHAR(10)) + ' - 下限: ' + CAST(下限 AS VARCHAR(10)) FROM h_v_SB_EquipICMOTechParamBillList_Detail AS InnerTable  WHERE InnerTable.生产车间 = OuterTable.生产车间  AND InnerTable.检测结果 = 'NG' FOR XML PATH('') ), 1, 2, '') AS 内容  FROM h_v_SB_EquipICMOTechParamBillList_Detail AS OuterTable where OuterTable.hmainid = '" + HInterID + "'  GROUP BY 生产车间";
                    ds = oCn.RunProcReturn(sql, "h_v_SB_EquipICMOTechParamBillList_Detail");
                    var HDeptName = ds.Tables[0].Rows[0]["生产车间"].ToString();
                    var HDescription = ds.Tables[0].Rows[0]["内容"].ToString();
                    var HSubID = ds.Tables[0].Rows[0]["hsubid"].ToString();
                    //查询接收人
                    string newSql1 = @"select a.HDingDingUserID 钉钉id,a.Czymc 接收人 from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserId
                                left join System_UserGroup c on b.GroupId = c.GroupID  where c.GroupName = '" + HDeptName + "工艺异常预警接收人'";
                    DataSet dt = oCn.RunProcReturn(newSql1, "Gy_Czygl");
                    if (dt.Tables[0].Rows.Count > 0)
                    {
                        string appKey = "";
                        string appSecret = "";
                        string sReturn = "";
                        string agentIds = "";
                        Cls_DDMsg msg = new Cls_DDMsg();
                        if (oSystemParameter.ShowBill(ref sReturn) == true)
                        {
                            //系统参数是否 N为本地,Y为斯莫尔
                            if (oSystemParameter.omodel.OA_ErrMsgBackBill_SendDingDingMsg == "N")
                            {
                                appKey = "dingrsrzhdyn3mlaof95";
                                appSecret = "RAqH6YtZnPLCpDbuqfaYQkKkVtVdS0wqfC8I26X6qiS-8eoCJCNrzx3fubGND4Sq";
                                agentIds = "3118119317";
                            }
                            else if (oSystemParameter.omodel.OA_ErrMsgBackBill_SendDingDingMsg == "Y")
                            {
                                appKey = "dingkdddbhdcssk7jduw";
                                appSecret = "iv07c-GLfJPnzfJaNAAOfJDl3Z-eODvDAhlInMZCZhGorkle5Evbaxx3ImylvdjQ";
                                agentIds = "3151454458";
                            }
                        }
                        //获取企业的access_token的值
                        string response = msg.GetAccessToken(appKey, appSecret);
                        JObject responseJson = JObject.Parse(response);
                        // 获取access_token的值
                        string accessToken = responseJson["accessToken"].ToString();
                        string HName = "";  // 用于存储拼接后的钉钉ID
                        List<string> dingDingIds = new List<string>();  // 用来存储钉钉ID的集合
                        // 拼接钉钉ID
                        for (int i = 0; i < dt.Tables[0].Rows.Count; i++)
                        {
                            dingDingIds.Add(dt.Tables[0].Rows[i]["钉钉id"].ToString());  // 将每个钉钉ID添加到列表中
                        }
                        // 使用逗号将钉钉ID拼接成一个字符串
                        HName = string.Join(",", dingDingIds);
                        //更新为NG的子表字段 未  已发送 1
                        oCn.RunProc("update SB_EquipICMOTechParamBillSub set HSendFlag =1 where HInterID='" + HInterID + "' and HEntryID in(" + HSubID + ")");
                        response = await msg.SendTextMessage(accessToken, agentIds, HName, "0", "false", HDescription);
                        return response;
                    }
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "无NG工艺参数!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "发送失败!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}