1
zrg
2025-05-17 c56f2e4192649d55ffc22e174ab0f2ce7b5dd03f
WebAPI/Controllers/Êý¾Ýͬ²½/¶¤¶¤Í¬²½/DD_DataSynchronizationController.cs
@@ -74,9 +74,12 @@
        }
        #region å˜é‡
        private string AppKey = "dingiokapm2dvjrhzl2g";                                                                             //已创建的企业内部应用的AppKey。
        private string AppSecret = "dPUD7tN3BGVYAC4lDzhpcBH7O4FWFDdjLJWa6cVRBQj5U7GJ4Gwr7Vohnv0oPBOr";                             //已创建的企业内部应用的AppSecret。
        private long AgentID = 3188176952;                                                                                          //应用的AgentId
        //private string AppKey = "dingiokapm2dvjrhzl2g";                                                                             //已创建的企业内部应用的AppKey。
        //private string AppSecret = "dPUD7tN3BGVYAC4lDzhpcBH7O4FWFDdjLJWa6cVRBQj5U7GJ4Gwr7Vohnv0oPBOr";                             //已创建的企业内部应用的AppSecret。
        //private long AgentID = 3188176952;                                                                                          //应用的AgentId
        private string AppKey = "dingj3hskhwk8jioofub";                                                                             //已创建的企业内部应用的AppKey。
        private string AppSecret = "qGPbXJGJtFI__FYGdzZPIjHZP_o1jI1KnM4_bbKx9AUuXcYqr3UN6nkQeSe8GcT7";                             //已创建的企业内部应用的AppSecret。
        private long AgentID = 3553515838;                                                                                          //应用的AgentId
        public string accessToken = "";                                                                                           //调用该接口的访问凭证。
        private string ProcessInstanceId = "";                                                                                     //审批实例ID。
        #endregion
@@ -593,6 +596,7 @@
        #region èŽ·å– å®œæ­æŒ‡å®šå•据的实例ID列表--指定分页的数据
        public bool getInstanceIDList_Page_YiDa(string appType, string systemToken, string userID, string formUuid, int pageNumber, int pageSize, ref YD_GetInstanceIDListResponse response, ref string msg)
        {
            LogService.Write("查看4-传递参数:appType=" + appType + ",systemToken=" + systemToken + ",formUuid=" + formUuid + ",userID=" + userID + ",pageSize=" + pageSize + ",pageNumber=" + pageNumber+ ",accessToken="+ this.accessToken);
            AlibabaCloud.SDK.Dingtalkyida_1_0.Client client = CreateClient4();
            AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetInstanceIdListHeaders getInstanceIdListHeaders = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetInstanceIdListHeaders();
            getInstanceIdListHeaders.XAcsDingtalkAccessToken = this.accessToken;
@@ -639,7 +643,9 @@
                {
                    // err ä¸­å«æœ‰ code å’Œ message å±žæ€§ï¼Œå¯å¸®åŠ©å¼€å‘å®šä½é—®é¢˜
                }
                msg = "错误代码" + err.Code + ":" + err.Message;
                LogService.Write("查看4-报错信息1:"+ msg);
                return false;
            }
@@ -654,6 +660,7 @@
                    // err ä¸­å«æœ‰ code å’Œ message å±žæ€§ï¼Œå¯å¸®åŠ©å¼€å‘å®šä½é—®é¢˜
                }
                msg = "错误代码" + err.Code + ":" + err.Message;
                LogService.Write("查看4-报错信息2:" + msg);
                return false;
            }
        }
@@ -662,6 +669,7 @@
        #region èŽ·å– å®œæ­æŒ‡å®šå•据的实例ID列表
        public bool getInstanceIDList_YiDa(string appType, string systemToken, string userID, string formUuid, int pageNumber, int pageSize, ref List<string> IDList, ref string msg)
        {
            LogService.Write("查看4-1查询");
            YD_GetInstanceIDListResponse response = new YD_GetInstanceIDListResponse();
            do
            {
@@ -980,7 +988,7 @@
                        return false;
                    }
                    LogService.Write("查看1-数据查询1");
                    for (int i = 0; i < response.Body.Result.Count; i++)
                    {
                        try
@@ -1028,6 +1036,7 @@
                            //    oItem.HEmployeeID = ((List<object>)response.Body.Result[i].FormData["employeeField_lo6w37hf_id"])[0].ToString().Replace("'", "");
                            //}
                            LogService.Write("查看1-数据查询-循环里面2:"+ oItem.HInstanceID);
                            //签到表
                            if (keys.Contains("dateField_ls9ma7h3"))
@@ -1056,7 +1065,7 @@
                                oItem.HEmployeeID = ((List<object>)response.Body.Result[i].FormData["employeeField_ls9ma7h5_id"])[0].ToString().Replace("'", "");
                            }
                            LogService.Write("查看1-数据查询-循环里面3:获取实例状态:"+ oItem.HInstanceStatus);
                            //获取实例状态
                            GetInstanceByIdResponse response1 = new GetInstanceByIdResponse();
@@ -1097,7 +1106,7 @@
                                oItem.HApprovedResult = "";
                            }
                            LogService.Write("查看1-数据查询-循环里面4:数据新增:" + oItem.HApprovedResult);
                            lsmain.Add(oItem);
                        }catch(Exception e)
@@ -1156,7 +1165,8 @@
            try
            {
              oCN.BeginTran();
                LogService.Write("查看1-新增数据");
                oCN.BeginTran();
                foreach (YD_FenCengShenHeQianDaoBiao oItem in lsmain)
                {
                    string sql_searchRepeat = "select * from DD_FenCengShenHeQianDaoBiao where HInstanceID = '" + oItem.HInstanceID + "'";
@@ -1194,10 +1204,12 @@
                    oCN.RunProc(sql_main);
                }
                oCN.Commit();
                LogService.Write("查看1-新增数据结束");
                return true;
            }catch(Exception e)
            {
                msg = e.Message;
                LogService.Write("查看1-报错" + msg);
                oCN.RollBack();
                return false;
            }
@@ -1759,7 +1771,7 @@
                        return false;
                    }
                    LogService.Write("查看4-循环-查询数据");
                    for (int i = 0; i < response.Body.Result.Count; i++)
                    {
                        try
@@ -1775,6 +1787,8 @@
                            oItem.HUpdateDate = response.Body.Result[i].ModifiedTimeGMT.Replace("T", " ").Replace("Z", "").Replace("'", ""); ;
                            oItem.HInstanceID = response.Body.Result[i].FormInstanceId.Replace("'", ""); ;
                            oItem.HOriginator = response.Body.Result[i].Originator.Name.NameInChinese.Replace("'", ""); ;
                            LogService.Write("查看4-循环-获取id-查询数据"+ oItem.HInstanceID);
                            int startindex = response.Body.Result[i].Title.IndexOf("zh_CN") + 8;
                            oItem.HTitle = startIndex + response.Body.Result[i].Title.Substring(startindex).Replace("\"}", "").Replace("'", "");
@@ -1795,6 +1809,8 @@
                            {
                                return false;
                            }
                            LogService.Write("查看4-循环-获取状态-查询数据" + oItem.HInstanceStatus);
                            oItem.HInstanceStatus = response1.Body.InstanceStatus;
                            if (oItem.HInstanceStatus == "RUNNING")
@@ -1916,6 +1932,8 @@
                            
                            oItem.HQuestion_Duty = sub2List;
                            LogService.Write("查看4-循环-新增结束-查询数据" + oItem.HQuestion_Duty.Count);
                            lsmain.Add(oItem);
                        }
                        catch (Exception e)
@@ -1957,9 +1975,10 @@
            List<string> IDList = new List<string>();
            if (getInstanceIDList_YiDa(appType, systemToken, userID, formUuid, pageNumber, pageSize, ref IDList, ref msg) == false)
            {
                LogService.Write("查看4-1-返回");
                return false;
            }
            LogService.Write("查看4-1");
            //获取详细信息并附加到列表lsmain中
            List<YD_QRQCWenTiTiJiaoBiao> lsmain = new List<YD_QRQCWenTiTiJiaoBiao>();
            if (getInstanceDetailList_QRQCWenTiTiJiaoBiao__YiDa(appType, systemToken, userID, formUuid, IDList, ref lsmain, ref msg) == false)
@@ -1969,6 +1988,7 @@
            try
            {
                LogService.Write("查看4-新增");
                oCN.BeginTran();
                foreach (YD_QRQCWenTiTiJiaoBiao oItem in lsmain)
                {
@@ -2055,11 +2075,13 @@
                }
                oCN.Commit();
                LogService.Write("查看4-新增结束");
                return true;
            }
            catch (Exception e)
            {
                msg = e.Message;
                LogService.Write("查看4-新增报错:"+ msg);
                oCN.RollBack();
                return false;
            }
@@ -2343,7 +2365,7 @@
                                        HMouldID = ds.Tables[0].Rows[0]["HInterID"].ToString();
                                        if (HMouldStaus != HStaus && DateTime.Parse(HUpdateDate) <= DateTime.Parse(oItem.HUpdateDate)) {
                                            //修改模具的状态和时间
                                            oCN.RunProc("update Gy_MouldFileMain set HMouldStatus='" + HStaus + "',HCloseDate='" + oItem.HUpdateDate + "' WHERE HInterID =" + HMouldID);
                                            oCN.RunProc("update Gy_MouldFileMain set HMouldUseStatus='" + HStaus + "',HCloseDate='" + oItem.HUpdateDate + "' WHERE HInterID =" + HMouldID);
                                        }
                                    }
                                }
@@ -2370,7 +2392,7 @@
                                    if (HMouldStaus != HStaus && DateTime.Parse(HUpdateDate) <= DateTime.Parse(oItem.HUpdateDate))
                                    {
                                        //修改模具的状态和时间
                                        oCN.RunProc("update Gy_MouldFileMain set HMouldStatus='" + HStaus + "',HCloseDate='" + oItem.HUpdateDate + "' WHERE HInterID =" + HMouldID);
                                        oCN.RunProc("update Gy_MouldFileMain set HMouldUseStatus='" + HStaus + "',HCloseDate='" + oItem.HUpdateDate + "' WHERE HInterID =" + HMouldID);
                                    }
                                }
                                oItem.HMouldID = long.Parse(HMouldID);
@@ -3278,6 +3300,11 @@
                    {
                        continue;
                    }
                    string result = getProcessInstanceResponse.Body.Result.Result.ToString();
                    if (result != "agree")
                    {
                        continue;
                    }
                    string[] deptNameAndGroupName = getProcessInstanceResponse.Body.Result.OriginatorDeptName.Split('-');//获取部门拼接字符串数组
                    oItem.HDeptName = deptNameAndGroupName[1];
                    oItem.HGroupName = deptNameAndGroupName[deptNameAndGroupName.Length-1];
@@ -3302,11 +3329,11 @@
                    }
                    oItem.HMangerID = int.Parse(HMangerID);
                    //处理部门和班组名称id
                    ds = oCN.RunProcReturn("select * from Gy_Department with(nolock)  where HName='" + oItem.HDeptName + "'", "Gy_Department");
                    ds = oCN.RunProcReturn("select * from h_v_GroupList with(nolock)  where ç­ç»„名称='" + oItem.HGroupName + "'", "h_v_GroupList");
                    string HDeptID = "0";
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        HDeptID = ds.Tables[0].Rows[0]["HItemID"].ToString();
                        HDeptID = ds.Tables[0].Rows[0]["HDeptID"].ToString();
                    }
                    oItem.HDeptID = int.Parse(HDeptID);
                    ds = oCN.RunProcReturn("select * from Gy_Group with(nolock)  where HName='" + oItem.HGroupName + "'", "Gy_Group");
@@ -3330,10 +3357,18 @@
                    //循环遍历获取职员名称id,工时
                    for (int i = 0; i < rows.Count; i++)
                    {
                        if (rows[i].RowValue.Count<10)
                        {
                            continue;
                        }
                        string[] nameArray = rows[i].RowValue[4].Value.ToString().Split(',');//获取每个人的人名
                        oItem.HPlanQty += double.Parse(rows[i].RowValue[2].Value.ToString());//计划数量
                        for (int j = 0; j < int.Parse(rows[i].RowValue[5].Value.ToString()); j++)
                        {
                            if (nameArray.Length < j + 1)//防止出现人离职了计时单申请完了导致技术人员与计时人数不一致的问题
                            {
                                continue;
                            }
                            Pay_ErrWorkTimesRequestBillSub pay_ErrWorkTimesRequestBillSub = new Pay_ErrWorkTimesRequestBillSub();
                            ds = oCN.RunProcReturn("select * from Gy_Employee with(nolock)  where HName='" + nameArray[j] + "'", "Gy_Employee");
                            string HEmpID = "0";
@@ -3391,7 +3426,7 @@
            {
                oCN.BeginTran();
                //删除时间范围内的导入单据
                DataSet dataSet = oCN.RunProcReturn(@"select HInterID from Pay_ErrWorkTimesRequestBillMain a with(nolock) where a.HRemark like '%钉钉导入%' and HDate >= '" + startTime + "' and HDate<='" + endTime + "'", "Pay_ErrWorkTimesRequestBillMain");
                DataSet dataSet = oCN.RunProcReturn(@"select HInterID from Pay_ErrWorkTimesRequestBillMain a with(nolock) where a.HRemark like '%钉钉导入%' and a.HIsImport = 1 and HDate >= '" + startTime + "' and HDate<='" + endTime + "'", "Pay_ErrWorkTimesRequestBillMain");
                if(dataSet != null && dataSet.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow row in dataSet.Tables[0].Rows)
@@ -3413,13 +3448,13 @@
                        int HPeriod = int.Parse(oItem.HDate.Split('-')[1]);
                        //主表
                        string sql = "insert into Pay_ErrWorkTimesRequestBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HBillStatus,HInterID,HBillNo,HDate,HInnerBillNo,HDeptID,HGroupID,HMangerID,HICMOInterID,HICMOBillNo,HExplanation,HSumRequestTimes,HMaterID,HUnitID,HPlanQty,HBatchNo,HRemark,HMaker,HMakeDate) " +
                        "(HYear,HPeriod,HBillType,HBillSubType,HBillStatus,HInterID,HBillNo,HDate,HInnerBillNo,HDeptID,HGroupID,HMangerID,HICMOInterID,HICMOBillNo,HExplanation,HSumRequestTimes,HMaterID,HUnitID,HPlanQty,HBatchNo,HRemark,HMaker,HMakeDate,HChecker,HCheckDate,HIsImport) " +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + " " +
                        "'," + 1 +
                        "'," + 2 +
                        "," + HInterID +
                        ",'" + HBillNo +
                        "','" + oItem.HDate +
@@ -3438,6 +3473,9 @@
                        "','" + oItem.HRemark +
                        "','" + "System" +
                        "'," + "GETDATE()" +
                        ",'" + "System" +
                        "'," + "GETDATE()" +
                        "," + "1" +
                        ")";
                        //主表
                        LogService.Write(sql);
@@ -3571,14 +3609,14 @@
            string msg = "";
            try
            {
                if (getData_ErrWorkTimesRequest(startTime,endTime,ref msg) == false)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "Exception!" + msg;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //if (getData_ErrWorkTimesRequest(startTime,endTime,ref msg) == false)
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "Exception!" + msg;
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                objJsonResult.code = "1";
                objJsonResult.count = 1;