From 871bc633a7daf1893acc98a84c64c93c9a30aaff Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期二, 10 十二月 2024 15:28:13 +0800
Subject: [PATCH] 器具保养规程、器具点检规程、设备点检规程导出添加

---
 WebAPI/Controllers/数据同步/钉钉同步/DD_DataSynchronizationController.cs |  916 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 827 insertions(+), 89 deletions(-)

diff --git "a/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\351\222\211\351\222\211\345\220\214\346\255\245/DD_DataSynchronizationController.cs" "b/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\351\222\211\351\222\211\345\220\214\346\255\245/DD_DataSynchronizationController.cs"
index df0bb97..06f4011 100644
--- "a/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\351\222\211\351\222\211\345\220\214\346\255\245/DD_DataSynchronizationController.cs"
+++ "b/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\351\222\211\351\222\211\345\220\214\346\255\245/DD_DataSynchronizationController.cs"
@@ -17,6 +17,8 @@
 using DingTalk.Api.Response;
 using System.Globalization;
 using System.Linq;
+using AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models;
+using System.Text.RegularExpressions;
 
 namespace WebAPI.Controllers
 {
@@ -75,7 +77,7 @@
         private string AppKey = "dingiokapm2dvjrhzl2g";                                                                             //宸插垱寤虹殑浼佷笟鍐呴儴搴旂敤鐨凙ppKey銆�
         private string AppSecret = "dPUD7tN3BGVYAC4lDzhpcBH7O4FWFDdjLJWa6cVRBQj5U7GJ4Gwr7Vohnv0oPBOr";                             //宸插垱寤虹殑浼佷笟鍐呴儴搴旂敤鐨凙ppSecret銆�
         private long AgentID = 3188176952;                                                                                          //搴旂敤鐨凙gentId
-        private string accessToken = "";                                                                                           //璋冪敤璇ユ帴鍙g殑璁块棶鍑瘉銆�
+        public string accessToken = "";                                                                                           //璋冪敤璇ユ帴鍙g殑璁块棶鍑瘉銆�
         private string ProcessInstanceId = "";                                                                                     //瀹℃壒瀹炰緥ID銆�
         #endregion
 
@@ -85,6 +87,13 @@
             public long? TotalCount;
             public long? PageNumber;
             public List<string> Data;
+        }
+        //oa瀹℃壒杩斿洖绫�
+        public class OA_GetInstanceIDListResponse
+        {
+           public List<string> list;//鑾峰彇鐨刬d鍒楄〃
+           public string nextToken;
+           public bool? success;
         }
 
         #region 鍒嗗眰瀹℃牳绛惧埌琛�
@@ -276,11 +285,14 @@
             public string HNewModel;//	varchar(100)		--缁翠慨鍚庢柊瑙勬牸				addnew
             public Single HNewDesignLife;//	money			--鏂拌璁″鍛�
             public string HRemark;
+            public string HPlanNo;
+            public string HPlanInterID;
             public DateTime HRequestComDate;
             public double HRecentMainModule;
             public double HCumulativeModule;
             public double HProductionModule;
             public DateTime HRepairAccepDate;
+            public string HMaintainLevID;
 
 
 
@@ -355,8 +367,83 @@
 
             public List<Sc_MouldRepairWorkBillSub> DetailColMouldRepair = new List<Sc_MouldRepairWorkBillSub>();
         }
-       
+
         #endregion
+
+        #region 寮傚父宸ユ椂鐢宠鍗�
+
+        #region 涓昏〃+瀛愯〃
+        public class Pay_ErrWorkTimesRequestBill
+        {
+            public int HInterID;
+            public string HBillNo;
+            public string HDate;
+            public string HInnerBillNo;
+            public int HDeptID;
+            public string HDeptName;
+            public int HGroupID;
+            public string HGroupName;
+            public int HMangerID;
+            public string HManagerName;
+            public int HICMOInterID;
+            public string HICMOBillNo;
+            public string HExplanation;
+            public double HSumRequestTimes;
+            public int HMaterID;
+            public string HMaterName;
+            public int HUnitID;
+            public string HUnitName;
+            public double HPlanQty;
+            public string HBatchNo;
+            public string HRemark;
+
+            public string HMaker;
+            public string HMakerDate;
+            public string HUpdater;
+            public string HUpdaterDate;
+            public string HChecker;
+            public string HCheckerDate;
+            public string HCloseMan;
+            public string HCloseManDate;
+            public string HDeleteMan;
+            public string HDeleteManDate;
+            public string HBacker;
+            public string HBackerDate;
+            public string HBackRemark;
+            public List<Pay_ErrWorkTimesRequestBillSub> Pay_ErrWorkTimesRequestBillSub = new List<Pay_ErrWorkTimesRequestBillSub>();
+        }
+        #endregion
+
+        #region 瀛愯〃
+        public class Pay_ErrWorkTimesRequestBillSub
+        {
+            public int HEmpID;
+            public string HEmpNumber;
+            public string HEmpName;
+            public int HWorkTypeID;
+            public string HWorkTypeNumber;
+            public string HWorkTypeName;
+            public double HPayMoney;
+            public string HBTimes;
+            public string HETimes;
+            public double HTimes;
+            public double HRelTimes;
+            public double HRelPay;
+            public string HRemark;
+
+            public int HSourceInterID;
+            public int HSourceEntryID;
+            public string HSourceBillNo;
+            public string HSourceBillType;
+            public double HRelationQty;
+            public double HRelationMoney;
+            public string HCloseMan;
+            public string HEntryCloseDate;
+        }
+        #endregion
+
+        #endregion
+
         #endregion
 
         #region 閽夐拤 閫氱敤鎿嶄綔鏂规硶
@@ -449,25 +536,29 @@
         #region 鑾峰彇 閽夐拤-鏅鸿兘浜轰簨 鑾峰彇鍦ㄨ亴鍛樺伐ID鍒楄〃
         public bool getEmployeeIDList_DingDing(long offset, long size, ref List<string> IDList, ref string msg)
         {
+            LogService.Write("鏌ョ湅5-1-1");
             OapiSmartworkHrmEmployeeQueryonjobResponse response = new OapiSmartworkHrmEmployeeQueryonjobResponse();
             do
             {
                 if (getEmployeeIDList_Page_DingDing(offset, size, ref response, ref msg) == false)
                 {
+                    LogService.Write("鏌ョ湅5-1-2");
                     return false;
                 }
-
+                LogService.Write("鏌ョ湅5-1-3");
                 for (int i = 0; i < response.Result.DataList.Count; i++)
                 {
                     IDList.Add(response.Result.DataList[i]);
                 }
-
+                LogService.Write("鏌ョ湅5-1-4");
                 if (response.Result.NextCursor != 0)
                 {
+                    LogService.Write("鏌ョ湅5-1-4-1");
                     offset = response.Result.NextCursor;
                 }
                 else
                 {
+                    LogService.Write("鏌ョ湅5-1-5");
                     break;
                 }
             } while (true);
@@ -523,10 +614,10 @@
                 //OriginatorId = "12",                                                                                          //鏍规嵁娴佺▼鍙戣捣浜哄伐鍙锋煡璇€��
 
                 //TaskId = "12",                                                                                                //浠诲姟ID銆�
-                //CreateFromTimeGMT = DateTime.Now.AddMonths(-10).ToString("yyyy-MM-dd"),                                          //鍒涘缓鏃堕棿璧峰鍊笺��
-                //CreateToTimeGMT = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),                                               //鍒涘缓鏃堕棿缁堟鍊笺��
+                //CreateFromTimeGMT = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd"),                                          //鍒涘缓鏃堕棿璧峰鍊笺��
+                //CreateToTimeGMT = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss"),                                               //鍒涘缓鏃堕棿缁堟鍊笺��
                 ModifiedFromTimeGMT = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),                                          //淇敼鏃堕棿璧峰鍊笺��
-                ModifiedToTimeGMT = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),                                               //淇敼鏃堕棿缁堟鍊笺��
+                ModifiedToTimeGMT = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),                                               //淇敼鏃堕棿缁堟鍊笺��
 
                 PageSize = pageSize,                                                  //鍒嗛〉澶у皬銆�
                 PageNumber = pageNumber,                                                 //鍒嗛〉椤电爜
@@ -721,6 +812,145 @@
         #endregion
         #endregion
 
+        #region oa 閫氱敤鎿嶄綔鏂规硶
+
+        #region OA 鑾峰彇瀹℃壒瀹炰緥ID鍒楄〃(鍗曢〉)
+        public bool getInstanceIDList_Page_OA(string processCode,DateTime startTime, DateTime endTime,long nextToken, int maxResult, List<string> statuses, ref OA_GetInstanceIDListResponse response, ref string msg)
+        {
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClient1();
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsHeaders listProcessInstanceIdsHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsHeaders();
+            listProcessInstanceIdsHeaders.XAcsDingtalkAccessToken = this.accessToken;
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsRequest listProcessInstanceIdsRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsRequest
+            {
+                Statuses = statuses,
+                StartTime = getTimeMillions(startTime),
+                EndTime  = getTimeMillions(endTime),
+                ProcessCode = processCode,
+                NextToken = nextToken,
+                MaxResults = maxResult,
+            };
+            try
+            {
+                ListProcessInstanceIdsResponse listProcessInstanceIdsResponse = client.ListProcessInstanceIdsWithOptions(listProcessInstanceIdsRequest, listProcessInstanceIdsHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
+                response.success = listProcessInstanceIdsResponse.Body.Success;
+                response.list = listProcessInstanceIdsResponse.Body.Result.List;
+                response.nextToken = listProcessInstanceIdsResponse.Body.Result.NextToken;
+                return true;
+            }
+            catch (TeaException err)
+            {
+                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
+                {
+                    // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰�
+                }
+                msg = "閿欒浠g爜" + err.Code + "锛�" + err.Message;
+                return false;
+            }
+            catch (Exception _err)
+            {
+                TeaException err = new TeaException(new Dictionary<string, object>
+                {
+                    { "message", _err.Message }
+                });
+                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
+                {
+                    // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰�
+                }
+                msg = "閿欒浠g爜" + err.Code + "锛�" + err.Message;
+                return false;
+            }
+        }
+        #endregion
+
+        #region 鑾峰彇 OA鎸囧畾鍗曟嵁鐨勫疄渚婭D鍒楄〃(鍏ㄩ儴)
+        public bool getInstanceIDList_OA(string processCode, DateTime startTime, DateTime endTime, long nextToken, int maxResult, List<string> statuses, ref List<string> IDList, ref string msg)
+        {
+            OA_GetInstanceIDListResponse response = new OA_GetInstanceIDListResponse();
+            response.nextToken = nextToken.ToString();//璧嬪�煎垵濮嬪��
+            do
+            {
+                nextToken = long.Parse(response.nextToken);
+                if (getInstanceIDList_Page_OA(processCode, startTime, endTime, nextToken, maxResult, statuses,ref response, ref msg) == false)
+                {
+                    return false;
+                }
+
+                for (int i = 0; i < response.list.Count; i++)
+                {
+                    IDList.Add(response.list[i]);
+                }
+                
+            } while (response.nextToken!=null);
+            return true;
+        }
+        #endregion
+
+        #region 鑾峰彇 OA 鏍规嵁瀹炰緥ID鑾峰彇瀹炰緥璇︽儏
+        public bool getInstanceDetailByInstanceID_OA(string processinstanceID,ref GetProcessInstanceResponse response, ref string msg)
+        {
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClient1();
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetProcessInstanceHeaders getProcessInstanceHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetProcessInstanceHeaders();
+            getProcessInstanceHeaders.XAcsDingtalkAccessToken = this.accessToken;
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetProcessInstanceRequest getProcessInstanceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetProcessInstanceRequest
+            {
+                ProcessInstanceId = processinstanceID,
+            };
+            try
+            {
+                response =  client.GetProcessInstanceWithOptions(getProcessInstanceRequest, getProcessInstanceHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
+                return true;
+            }
+            catch (TeaException err)
+            {
+                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
+                {
+                    // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰�
+                }
+                msg = "閿欒浠g爜" + err.Code + "锛�" + err.Message;
+                return false;
+            }
+            catch (Exception _err)
+            {
+                TeaException err = new TeaException(new Dictionary<string, object>
+                {
+                    { "message", _err.Message }
+                });
+                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
+                {
+                    // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰�
+                }
+                msg = "閿欒浠g爜" + err.Code + "锛�" + err.Message;
+                return false;
+            }
+        }
+        #endregion
+
+        #region 鑾峰彇 OA 鏍规嵁瀹炰緥ID鍒楄〃鑾峰彇瀹炰緥璇︽儏鍒楄〃
+        public bool getInstanceDetailListByInstanceIDList_OA(List<string> processinstanceIDList, ref List<GetProcessInstanceResponse> responseList, ref string msg)
+        {
+            GetProcessInstanceResponse getProcessInstanceResponse = new GetProcessInstanceResponse();
+            try
+            {
+                foreach(string processinstanceID in processinstanceIDList)
+                {
+                    if(!getInstanceDetailByInstanceID_OA(processinstanceID,ref getProcessInstanceResponse,ref msg))
+                    {
+                        return false;
+                    }
+                    responseList.Add(getProcessInstanceResponse);
+                }
+                return true;
+            }
+            catch (Exception e)
+            {
+                msg = e.Message;
+                return false;
+            }
+        }
+        #endregion
+
+        #endregion
+
         #region 鏁版嵁鍚屾鏂规硶
         #region 鏁版嵁鍚屾-鍒嗗眰瀹℃牳绛惧埌琛�
         #region 鑾峰彇 瀹滄惌-鍒嗗眰瀹℃牳绛惧埌琛� 瀹炰緥ID鍒楄〃瀵瑰簲鐨勫疄渚嬭鎯�
@@ -872,6 +1102,7 @@
                             lsmain.Add(oItem);
                         }catch(Exception e)
                         {
+                            LogService.Write("鏌ョ湅1" + e.Message);
                             continue;
                         }
                     }
@@ -908,7 +1139,7 @@
             string formUuid = "FORM-A01FFB0B63A34F18B7753F695F49190DJEY7";              //绛惧埌琛�
             int pageNumber = 1;
             int pageSize = 100;
-
+            LogService.Write("鏌ョ湅1");
             //鑾峰彇鍒嗗眰瀹℃牳琛ㄧ殑瀹炰緥ID鍒楄〃
             List<string> IDList = new List<string>();
             if (getInstanceIDList_YiDa(appType, systemToken, userID, formUuid, pageNumber, pageSize, ref IDList, ref msg) == false)
@@ -1115,6 +1346,7 @@
                             lsmain.Add(oItem);
                         }catch(Exception e)
                         {
+                            LogService.Write("鏌ョ湅2"+e.Message);
                             continue;
                         }
                     }
@@ -1146,7 +1378,7 @@
             string formUuid = "FORM-E3DFC12364514330A836DD3056C15668UGG7";
             int pageNumber = 1;
             int pageSize = 100;
-
+            LogService.Write("鏌ョ湅2");
             //鑾峰彇瀹炰緥ID鍒楄〃
             List<string> IDList = new List<string>();
             if (getInstanceIDList_YiDa(appType, systemToken, userID, formUuid, pageNumber, pageSize, ref IDList, ref msg) == false)
@@ -1384,6 +1616,7 @@
                         }
                         catch (Exception e)
                         {
+                            LogService.Write("鏌ョ湅3"+e.Message);
                             continue;
                         }
                     }
@@ -1415,7 +1648,7 @@
             string formUuid = "FORM-K5766HA1CKZB4E1L64Y1KBWCJTQF2HWJ3NDJL4";
             int pageNumber = 1;
             int pageSize = 100;
-
+            LogService.Write("鏌ョ湅3");
             //鑾峰彇瀹炰緥ID鍒楄〃
             List<string> IDList = new List<string>();
             if (getInstanceIDList_YiDa(appType, systemToken, userID, formUuid, pageNumber, pageSize, ref IDList, ref msg) == false)
@@ -1687,6 +1920,7 @@
                         }
                         catch (Exception e)
                         {
+                            LogService.Write("鏌ョ湅4"+e.Message);
                             continue;
                         }
                     }
@@ -1718,7 +1952,7 @@
             string formUuid = "FORM-65AD77453E7F44EA847166C3AB5A1F04IPSS";
             int pageNumber = 1;
             int pageSize = 100;
-
+            LogService.Write("鏌ョ湅4");
             //鑾峰彇瀹炰緥ID鍒楄〃
             List<string> IDList = new List<string>();
             if (getInstanceIDList_YiDa(appType, systemToken, userID, formUuid, pageNumber, pageSize, ref IDList, ref msg) == false)
@@ -1932,6 +2166,7 @@
                         }
                         catch (Exception e)
                         {
+                            LogService.Write("鏌ョ湅5"+e.Message);
                             continue;
                         }
                     }
@@ -1963,14 +2198,16 @@
         {
             long offset = 0;
             long size = 50;
-
+            LogService.Write("鏌ョ湅5");
+            LogService.Write("鏌ョ湅5.1");
             //鑾峰彇鑺卞悕鍐岃亴鍛業D鍒楄〃
             List<string> IDList = new List<string>();
             if (getEmployeeIDList_DingDing(offset, size, ref IDList, ref msg) == false)
             {
+                LogService.Write("鏌ョ湅5-1"+ msg);
                 return false;
             }
-
+            LogService.Write("鏌ョ湅5-2");
             //鑾峰彇璇︾粏淇℃伅骞堕檮鍔犲埌鍒楄〃lsmain涓�
             List<DD_HuaMingCe> lsmain = new List<DD_HuaMingCe>();
             if (getEmployeeDetailList_HuaMingCe__DingDing(IDList, ref lsmain, ref msg) == false)
@@ -1979,6 +2216,7 @@
             }
             try
             {
+                LogService.Write("鏌ョ湅5-3");
                 oCN.BeginTran();
                 foreach (DD_HuaMingCe oItem in lsmain)
                 {
@@ -2003,12 +2241,14 @@
 
                     oCN.RunProc(sql_main);
                 }
+                LogService.Write("鏌ョ湅5-4");
                 oCN.Commit();
                 return true;
             }
             catch (Exception e)
             {
                 msg = e.Message;
+                LogService.Write("鏌ョ湅5鎶ラ敊:" + e.Message);
                 oCN.RollBack();
                 return false;
             }
@@ -2068,11 +2308,88 @@
                             {
                                 continue;
                             }
+                            string HStaus = "";
+
+                            switch (getInstanceByIdResponse.Body.InstanceStatus)
+                            {
+                                case "COMPLETED":
+                                    HStaus = "缁翠慨缁撴潫";
+                                    break;
+                                case "RUNNING":
+                                    HStaus = "缁翠慨杩涜涓�";
+                                    break;
+                                case "TERMINATED":
+                                    HStaus = "缁翠慨缁堟";
+                                    break;
+                            }
+
+                            LogService.Write("鐘舵��:" + HStaus);
 
                             if (getInstanceByIdResponse.Body.InstanceStatus != "COMPLETED")
                             {
+                                //妯″叿缂栫爜
+                                if (keys.Contains("selectField_lq3idkvg"))
+                                {
+                                    string HDate_Temp = response.Body.Result[i].FormData["selectField_lq3idkvg"].ToString();
+                                    LogService.Write("妯″叿:" + HDate_Temp);
+                                    DataSet ds = oCN.RunProcReturn("select * from Gy_MouldFileMain with(nolock)  where HMouldNo='" + HDate_Temp + "'", "Gy_MouldFileMain");
+                                    string HMouldID = "0";
+                                    if (ds.Tables[0].Rows.Count > 0)
+                                    {
+                                        LogService.Write("娴嬭瘯1:" + ds.Tables[0].Rows[0]["HCloseDate"].ToString());
+                                        string HUpdateDate = ds.Tables[0].Rows[0]["HCloseDate"].ToString() == "" ? "1900-01-01 00:00:00" : ds.Tables[0].Rows[0]["HCloseDate"].ToString();
+                                        string HMouldStaus = ds.Tables[0].Rows[0]["HMouldStatus"].ToString();
+                                        LogService.Write("妯″叿:" + HDate_Temp + ",鐘舵��:" + HMouldStaus + ",鏃堕棿:" + HUpdateDate);
+                                        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);
+                                        }
+                                    }
+                                }
+
                                 continue;
                             }
+
+                            //妯″叿缂栫爜
+                            if (keys.Contains("selectField_lq3idkvg"))
+                            {
+                                string HDate_Temp = response.Body.Result[i].FormData["selectField_lq3idkvg"].ToString();
+                                LogService.Write("妯″叿:" + HDate_Temp);
+                                DataSet ds = oCN.RunProcReturn("select * from Gy_MouldFileMain with(nolock)  where HMouldNo='" + HDate_Temp + "'", "Gy_MouldFileMain");
+                                string HMouldID = "0";
+                                if (ds.Tables[0].Rows.Count > 0)
+                                {
+                                    LogService.Write("娴嬭瘯2:" + ds.Tables[0].Rows[0]["HCloseDate"].ToString());
+                                    HMouldID = ds.Tables[0].Rows[0]["HInterID"].ToString();
+                                    string HUpdateDate = ds.Tables[0].Rows[0]["HCloseDate"].ToString() == "" ? "1900-01-01 00:00:00" : ds.Tables[0].Rows[0]["HCloseDate"].ToString();
+                                
+                                    string HMouldStaus = ds.Tables[0].Rows[0]["HMouldStatus"].ToString();
+                                  
+                                    LogService.Write("妯″叿:" + HDate_Temp+ ",鐘舵��:" + HMouldStaus + ",鏃堕棿:" + HUpdateDate);
+                                    if (HMouldStaus != HStaus && DateTime.Parse(HUpdateDate) <= DateTime.Parse(oItem.HUpdateDate))
+                                    {
+                                        //淇敼妯″叿鐨勭姸鎬佸拰鏃堕棿
+                                        oCN.RunProc("update Gy_MouldFileMain set HMouldStatus='" + HStaus + "',HCloseDate='" + oItem.HUpdateDate + "' WHERE HInterID =" + HMouldID);
+                                    }
+                                }
+                                oItem.HMouldID = long.Parse(HMouldID);
+                                oItem.HRemark = HDate_Temp;
+                                //LogService.Write("娴嬭瘯3:" + HMouldID);
+
+                                //鏌ヨ淇濆吇璁″垝
+                                ds = oCN.RunProcReturn(@"select  a.HInterID,a.HBillNo from  Sc_MouldMaintainPlanBillMain a
+                                    inner join Sc_MouldMaintainPlanBillSub b on a.HInterID = b.HInterID
+                                    where a.HMouldID =" + oItem.HMouldID+ " order by a.HMakeDate desc", "Sc_MouldMaintainPlanBillMain");
+                                //LogService.Write("娴嬭瘯4:");
+                                oItem.HPlanInterID = "";
+                                if (ds.Tables[0].Rows.Count > 0)
+                                {
+                                    oItem.HPlanInterID = ds.Tables[0].Rows[0]["HInterID"].ToString();
+                                    oItem.HPlanNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                                }
+                            }
+                            LogService.Write("妯″叿缂栫爜:" + oItem.HMouldID);
 
                             //寮�鍗曟棩鏈�
                             if (keys.Contains("dateField_lq0v65sv"))
@@ -2080,6 +2397,32 @@
                                 double HDate_Temp = double.Parse(response.Body.Result[i].FormData["dateField_lq0v65sv"].ToString());
                                 oItem.HDate = convertFromMillisecondsToDateString(HDate_Temp, "yyyy-MM-dd HH:mm");
                             }
+                            LogService.Write("寮�鍗曟棩鏈�:" + oItem.HDate);
+
+                            //妯″叿淇濆吇绾у埆
+                            if (keys.Contains("selectField_m1ip9j31"))
+                            {
+                                string HDate_Temp = response.Body.Result[i].FormData["selectField_m1ip9j31"].ToString();
+                                if (!HDate_Temp.Contains("涓夌骇"))
+                                {
+                                    ds = oCN.RunProcReturn("select  * from h_v_Gy_MaintainLev where 淇濆吇绾у埆浠g爜='BY-SE-002'", "h_v_Gy_MaintainLev");
+                                    if (ds.Tables[0].Rows.Count > 0)
+                                    {
+                                        HDate_Temp = ds.Tables[0].Rows[0]["HItemID"].ToString();
+                                    }
+                                }
+                                else if (HDate_Temp.Contains("涓夌骇"))
+                                {
+                                    ds = oCN.RunProcReturn("select  * from h_v_Gy_MaintainLev where 淇濆吇绾у埆浠g爜='BY-SE-003'", "h_v_Gy_MaintainLev");
+                                    if (ds.Tables[0].Rows.Count > 0)
+                                    {
+                                        HDate_Temp = ds.Tables[0].Rows[0]["HItemID"].ToString();
+                                    }
+                                }
+                              
+                                oItem.HMaintainLevID = HDate_Temp;
+                            }
+                            LogService.Write("妯″叿淇濆吇绾у埆:" + oItem.HMaintainLevID);
 
                             //淇ā寮�濮嬫椂闂�
                             if (keys.Contains("dateField_lq4gf2ih"))
@@ -2087,6 +2430,7 @@
                                 double HDate_Temp = double.Parse(response.Body.Result[i].FormData["dateField_lq4gf2ih"].ToString());
                                 oItem.HRepairBeginDate = DateTime.Parse(convertFromMillisecondsToDateString(HDate_Temp, "yyyy-MM-dd HH:mm"));
                             }
+                            LogService.Write("淇ā寮�濮嬫椂闂�:" + oItem.HRepairBeginDate);
 
                             //淇ā缁撴潫鏃堕棿
                             if (keys.Contains("dateField_lq4gf2ii"))
@@ -2094,6 +2438,7 @@
                                 double HDate_Temp = double.Parse(response.Body.Result[i].FormData["dateField_lq4gf2ii"].ToString());
                                 oItem.HRepairEndDate = DateTime.Parse(convertFromMillisecondsToDateString(HDate_Temp, "yyyy-MM-dd HH:mm"));
                             }
+                            LogService.Write("淇ā缁撴潫鏃堕棿:" + oItem.HRepairEndDate);
 
                             //妯″叿鍗曟嵁鍙�
                             if (keys.Contains("serialNumberField_lqaak4ts"))
@@ -2101,6 +2446,7 @@
                                 string HDate_Temp = response.Body.Result[i].FormData["serialNumberField_lqaak4ts"].ToString();
                                 oItem.HBillNo = HDate_Temp;
                             }
+                            LogService.Write("妯″叿鍗曟嵁鍙�:" + oItem.HBillNo);
 
                             //瑕佹眰瀹屾垚鏃ユ湡
                             if (keys.Contains("dateField_lq3idkvd"))
@@ -2108,6 +2454,7 @@
                                 double HDate_Temp = double.Parse(response.Body.Result[i].FormData["dateField_lq3idkvd"].ToString());
                                 oItem.HRequestComDate = DateTime.Parse(convertFromMillisecondsToDateString(HDate_Temp, "yyyy-MM-dd HH:mm:ss"));
                             }
+                            LogService.Write("瑕佹眰瀹屾垚鏃ユ湡:" + oItem.HRequestComDate);
 
                             //缁翠慨鍙楃悊鏃ユ湡
                             if (keys.Contains("dateField_lq4gf2ih"))
@@ -2115,6 +2462,7 @@
                                 double HDate_Temp = double.Parse(response.Body.Result[i].FormData["dateField_lq4gf2ih"].ToString());
                                 oItem.HRepairAccepDate = DateTime.Parse(convertFromMillisecondsToDateString(HDate_Temp, "yyyy-MM-dd HH:mm:ss"));
                             }
+                            LogService.Write("缁翠慨鍙楃悊鏃ユ湡:" + oItem.HRepairAccepDate);
 
                             //鏈�杩戜繚鍏绘ā鏁�
                             if (keys.Contains("numberField_lq3idkvi"))
@@ -2122,6 +2470,7 @@
                                 string HDate_Temp = response.Body.Result[i].FormData["numberField_lq3idkvi"].ToString();
                                 oItem.HRecentMainModule = double.Parse(HDate_Temp);
                             }
+                            LogService.Write("鏈�杩戜繚鍏绘ā鏁�:" + oItem.HRecentMainModule);
 
                             //绱妯℃暟
                             if (keys.Contains("numberField_lq3idkvj"))
@@ -2129,6 +2478,7 @@
                                 string HDate_Temp = response.Body.Result[i].FormData["numberField_lq3idkvj"].ToString();
                                 oItem.HCumulativeModule = double.Parse(HDate_Temp);
                             }
+                            LogService.Write("绱妯℃暟:" + oItem.HCumulativeModule);
 
                             //鏈鐢熶骇妯℃暟
                             if (keys.Contains("textField_lq4vdvgh"))
@@ -2136,21 +2486,7 @@
                                 string HDate_Temp = response.Body.Result[i].FormData["textField_lq4vdvgh"].ToString();
                                 oItem.HProductionModule = double.Parse(HDate_Temp);
                             }
-                            
-                            //妯″叿缂栫爜
-                            if (keys.Contains("selectField_lq3idkvg"))
-                            {
-                                string HDate_Temp = response.Body.Result[i].FormData["selectField_lq3idkvg"].ToString();
-                                DataSet ds = oCN.RunProcReturn("select * from Gy_MouldFileMain with(nolock)  where HNumber='" + HDate_Temp + "'", "Gy_MouldFileMain");
-                                string HMouldID = "0";
-                                if (ds.Tables[0].Rows.Count > 0)
-                                {
-                                    HMouldID = ds.Tables[0].Rows[0]["HInterID"].ToString();
-                                }
-                                oItem.HMouldID = long.Parse(HMouldID);
-                                oItem.HRemark = HDate_Temp;
-                            }
-
+                            LogService.Write("绱妯℃暟:" + oItem.HProductionModule);
 
                             //缁翠慨閮ㄩ棬
                             if (keys.Contains("selectField_lq3idkva"))
@@ -2164,6 +2500,7 @@
                                 }
                                 oItem.HDeptID = long.Parse(HDeptID);
                             }
+                            LogService.Write("缁翠慨閮ㄩ棬:" + oItem.HDeptID);
 
                             //鏂拌璁″鍛�
                             oItem.HNewDesignLife = 30000;
@@ -2180,6 +2517,7 @@
                                 }
                                 oItem.HEmpID = long.Parse(HEmpID);
                             }
+                            LogService.Write("缁翠慨浜�:" + oItem.HEmpID);
 
                             //缁翠慨鏃堕棿
                             if (keys.Contains("numberField_lq3ixr9j"))
@@ -2189,6 +2527,7 @@
                                 oItem.HTimes = long.Parse(HDate_Temp);
                                 oItem.HPlanTimes = long.Parse(HDate_Temp);
                             }
+                            LogService.Write("缁翠慨鏃堕棿:" + oItem.HTimes);
 
                             //瀛愯〃 缁翠慨瑕佹眰 缁翠慨澶囨敞(闂鎻忚堪)
                             if (keys.Contains("tableField_lq3ixr9b"))
@@ -2205,15 +2544,19 @@
                                     {
                                         oItemSub.HRepairExplanation = dic[ij]["textareaField_lq3ixr9e"].ToString();
                                     }
+                                    LogService.Write("缁翠慨瑕佹眰:" + oItemSub.HRepairExplanation);
 
                                     //澶囨敞
                                     if (keys_Sub.Contains("textField_lq3ixr9d"))
                                     {
                                         oItemSub.HRemark = dic[ij]["textField_lq3ixr9d"].ToString();
                                     }
+                                    LogService.Write("澶囨敞:" + oItemSub.HRemark);
+
                                     oItem.DetailColMouldRepair.Add(oItemSub);
                                 }
                             }
+                           
 
                             string HRemark = "";
                             //瀛愯〃 淇濆吇澶囨敞(闂鎻忚堪)
@@ -2235,9 +2578,10 @@
                                     oItemSub.HClaim = HDate_Temp[ij];
                                     oItemSub.HMaintainResult = HRemark;
                                     oItem.DetailColMouldMaintain.Add(oItemSub);
+                                    LogService.Write("鍏蜂綋瑕佹眰:" + oItemSub.HClaim);
                                 }
-
                             }
+                           
 
                             int startindex = response.Body.Result[i].Title.IndexOf("zh_CN") + 8;
                             oItem.HTitle = startIndex + response.Body.Result[i].Title.Substring(startindex).Replace("\"}", "").Replace("'", "");
@@ -2272,6 +2616,7 @@
                         }
                         catch (Exception e)
                         {
+                            LogService.Write("鎶ラ敊:" + e.Message);
                             continue;
                         }
                     }
@@ -2307,7 +2652,7 @@
             string formUuid = "FORM-30C78F46E77E46A9AA8778214CEFE6B5J0AN";
             int pageNumber = 1;
             int pageSize = 100;
-
+            LogService.Write("鏌ョ湅7");
             //鑾峰彇妯″叿缁翠慨淇濆吇琛ㄧ殑瀹炰緥ID鍒楄〃
             List<string> IDList = new List<string>();
             if (getInstanceIDList_YiDa(appType, systemToken, userID, formUuid, pageNumber, pageSize, ref IDList, ref msg) == false)
@@ -2366,16 +2711,18 @@
                             string sql_main = "Insert Into Sc_MouldMaintainBillMain " +
                 "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate" +
                 ",HYear,HPeriod,HRemark,HUpDateDate" +
-                ",HPlanNo,HPlanInterID,HMouldID,HBeginDate" +
+                ",HMouldID,HBeginDate" +
                 ",HEndDate" +
-                ",HInnerBillNo,HExplanation,HMouldMaintainRuleInterID,HMaintainLevID,HLastResult" +
-                ",HRequestComDate,HRecentMainModule,HCumulativeModule,HProductionModule)" +
+                ",HInnerBillNo,HExplanation,HMouldMaintainRuleInterID,HLastResult" +
+                ",HRequestComDate,HRecentMainModule,HCumulativeModule,HProductionModule" +
+                ",HPlanInterID,HPlanNo,HMaintainLevID)" +
                 "values('" + BillType + "','" + BillType + "'," + HInterID + ",'" + oItem.HBillNo + "','"+ oItem.HDate + "','" + oItem.HOriginator + "','" + oItem.HMakeDate + "'" +
                       ",'" + DateTime.Now.Year + "','" + DateTime.Now.Month + "','"+ oItem.HRemark + "','" + oItem.HUpdateDate + "'" +
-                      ",'','0','" + oItem.HMouldID + "','" + oItem.HRepairBeginDate + "'" +
+                      ",'" + oItem.HMouldID + "','" + oItem.HRepairBeginDate + "'" +
                       ",'" + oItem.HRepairEndDate + "'" +
-                      ",'" + oItem.HInstanceID + "','',"+ HMouldMaintainRuleInterID + ",0,'OK'" +
-                      ",'"+ oItem.HRequestComDate + "'," + oItem.HRecentMainModule + "," + oItem.HCumulativeModule + "," + oItem.HProductionModule + ")";
+                      ",'" + oItem.HInstanceID + "','',"+ HMouldMaintainRuleInterID + ",'OK'" +
+                      ",'"+ oItem.HRequestComDate + "'," + oItem.HRecentMainModule + "," + oItem.HCumulativeModule + "," + oItem.HProductionModule + "" +
+                      "," + (oItem.HPlanInterID == "" ? "0" : oItem.HPlanInterID) + ",'" + oItem.HPlanNo + "'," + oItem.HMaintainLevID + ")";
                             LogService.Write(sql_main);
                             oCN.RunProc(sql_main);
                             int i = 1;
@@ -2517,72 +2864,79 @@
                                 continue;
                             }
 
+                            string HStaus = "";
+
+                            switch (getInstanceByIdResponse.Body.InstanceStatus)
+                            {
+                                case "COMPLETED":
+                                    HStaus = "缁翠慨缁撴潫";
+                                    break;
+                                case "RUNNING":
+                                    HStaus = "缁翠慨杩涜涓�";
+                                    break;
+                                case "TERMINATED":
+                                    HStaus = "缁翠慨缁堟";
+                                    break;
+                            }
+                            LogService.Write("鐘舵��:" + HStaus);
                             if (getInstanceByIdResponse.Body.InstanceStatus != "COMPLETED")
                             {
+                                //璁惧缂栫爜
+                                if (keys.Contains("textField_lfg9hgys"))
+                                {
+                                    string HDate_Temp = response.Body.Result[i].FormData["textField_lfg9hgys"].ToString();
+                                    DataSet ds = oCN.RunProcReturn("select * from Gy_EquipFileBillMain with(nolock)  where HEquipFileNo='" + HDate_Temp + "'", "Gy_EquipFileBillMain");
+                                    string HEquipID = "0";
+                                    if (ds.Tables[0].Rows.Count > 0)
+                                    {
+                                        HEquipID = ds.Tables[0].Rows[0]["HInterID"].ToString();
+                                        oItem.HEquipID = long.Parse(HEquipID);
+                                        oItem.HRemark2 = HDate_Temp;
+
+                                        string HUpdateDate = ds.Tables[0].Rows[0]["HCloseDate"].ToString()==""?"1900-01-01 00:00:00": ds.Tables[0].Rows[0]["HCloseDate"].ToString();
+                                        string HMouldStaus = ds.Tables[0].Rows[0]["HStatus"].ToString();
+                                        LogService.Write("璁惧:" + HDate_Temp + ",鐘舵��:" + HMouldStaus + ",鏃堕棿:" + HUpdateDate);
+                                        if (HMouldStaus != HStaus && DateTime.Parse(HUpdateDate) <= DateTime.Parse(oItem.HUpdateDate))
+                                        {
+                                            //淇敼璁惧鐨勭姸鎬佸拰鏃堕棿
+                                            oCN.RunProc("update Gy_EquipFileBillMain set HStatus='" + HStaus + "',HCloseDate='" + oItem.HUpdateDate + "' WHERE HInterID =" + HEquipID);
+                                        }
+                                    }
+                                }
                                 continue;
                             }
 
-                            //鎶ヤ慨绫诲埆
-                            if (keys.Contains("multiSelectField_lfg9hgyv"))
-                            {
-                                string[] HDate_Temp = JsonConvert.DeserializeObject<string[]>(JsonConvert.SerializeObject(response.Body.Result[i].FormData["multiSelectField_lfg9hgyv"]));
-
-                                oItem.HRepairCategory = HDate_Temp[0];
-                            }
-
-                            //绱ф�ョ▼搴�
-                            if (keys.Contains("radioField_kzgkw10c"))
-                            {
-                                string HDate_Temp = response.Body.Result[i].FormData["radioField_kzgkw10c"].ToString();
-
-                                oItem.HUrgenLevel = HDate_Temp;
-                            }
-
-                            //鎶ヤ慨浜�
-                            if (keys.Contains("employeeField_lkasesrk"))
-                            {
-                                string[] HDate_Temp = JsonConvert.DeserializeObject<string[]>(JsonConvert.SerializeObject(response.Body.Result[i].FormData["employeeField_lkasesrk"]));
-
-                                oItem.HRepairer = HDate_Temp[0];
-                            }
-
-                            //鏄惁鏈変骇鑳藉奖鍝�
-                            if (keys.Contains("textField_lyjddw0r"))
-                            {
-                                string HDate_Temp = response.Body.Result[i].FormData["textField_lyjddw0r"].ToString();
-
-                                oItem.HIsCapacityImpact = HDate_Temp;
-                            }
-                         
-                            //缁翠慨鏃堕棿
-                            if (keys.Contains("textField_l2r95oo2"))
-                            {
-                                string HDate_Temp = response.Body.Result[i].FormData["textField_l2r95oo2"].ToString();
-                                bool containsNumber = HDate_Temp.Any(c => char.IsDigit(c));
-                           
-                                if (!containsNumber)
-                                {
-                                    HDate_Temp = "0";
-                                }
-                                LogService.Write("1:------"+HDate_Temp+ ",2:------" + int.Parse(new string(HDate_Temp.Where(char.IsDigit).ToArray())));
-                                //a = HDate_Temp;
-                                oItem.HTimes = int.Parse(new string(HDate_Temp.Where(char.IsDigit).ToArray()));
-                                oItem.HPlanTimes = int.Parse(new string(HDate_Temp.Where(char.IsDigit).ToArray()));
-                            }
+                            //if (oItem.HInstanceID != "9b6e108c-b7bf-45e4-910d-5629ac30d4aa") {
+                            //    continue;
+                            //}
 
                             //璁惧缂栫爜
                             if (keys.Contains("textField_lfg9hgys"))
                             {
                                 string HDate_Temp = response.Body.Result[i].FormData["textField_lfg9hgys"].ToString();
                                 DataSet ds = oCN.RunProcReturn("select * from Gy_EquipFileBillMain with(nolock)  where HEquipFileNo='" + HDate_Temp + "'", "Gy_EquipFileBillMain");
+                                LogService.Write("璁惧鏃�:" + HDate_Temp);
                                 string HEquipID = "0";
                                 if (ds.Tables[0].Rows.Count > 0)
                                 {
                                     HEquipID = ds.Tables[0].Rows[0]["HInterID"].ToString();
+                                    oItem.HEquipID = long.Parse(HEquipID);
+                                    oItem.HRemark2 = HDate_Temp;
+                                    string HUpdateDate = ds.Tables[0].Rows[0]["HCloseDate"].ToString() == "" ? "1900-01-01 00:00:00" : ds.Tables[0].Rows[0]["HCloseDate"].ToString();
+                                    string HMouldStaus = ds.Tables[0].Rows[0]["HStatus"].ToString();
+                                    LogService.Write("璁惧:" + HDate_Temp + ",鐘舵��:" + HMouldStaus + ",鏃堕棿:" + HUpdateDate);
+                                    if (HMouldStaus != HStaus && DateTime.Parse(HUpdateDate) <= DateTime.Parse(oItem.HUpdateDate))
+                                    {
+                                        //淇敼璁惧鐨勭姸鎬佸拰鏃堕棿
+                                        oCN.RunProc("update Gy_EquipFileBillMain set HStatus='" + HStaus + "',HCloseDate='" + oItem.HUpdateDate + "' WHERE HInterID =" + HEquipID);
+                                    }
                                 }
-                                oItem.HEquipID = long.Parse(HEquipID);
-                                oItem.HRemark2 = HDate_Temp;
+                                else
+                                {
+                                    continue;
+                                }
                             }
+                            LogService.Write("璁惧:" + oItem.HEquipID);
 
                             //缁翠慨閮ㄩ棬
                             if (keys.Contains("selectField_kzgkw10a"))
@@ -2593,9 +2947,15 @@
                                 if (ds.Tables[0].Rows.Count > 0)
                                 {
                                     HDeptID = ds.Tables[0].Rows[0]["HItemID"].ToString();
+                                    oItem.HDeptID = long.Parse(HDeptID);
                                 }
-                                oItem.HDeptID = long.Parse(HDeptID);
+                                else
+                                {
+                                    continue;
+                                }
+
                             }
+                            LogService.Write("缁翠慨閮ㄩ棬:" + oItem.HDeptID);
 
                             //缁翠慨浜�
                             if (keys.Contains("employeeField_lthwkdh2"))
@@ -2606,9 +2966,15 @@
                                 if (ds.Tables[0].Rows.Count > 0)
                                 {
                                     HEmpID = ds.Tables[0].Rows[0]["HItemID"].ToString();
+                                    oItem.HEmpID = long.Parse(HEmpID);
                                 }
-                                oItem.HEmpID = long.Parse(HEmpID);
+                                else
+                                {
+                                    continue;
+                                }
+
                             }
+                            LogService.Write("缁翠慨浜�:" + oItem.HEmpID);
 
                             //缁翠慨鍐呭
                             if (keys.Contains("textField_l2r9bvwk"))
@@ -2617,6 +2983,59 @@
 
                                 oItem.HRepairContent = HDate_Temp;
                             }
+                            LogService.Write("缁翠慨鍐呭:" + oItem.HRepairContent);
+
+                            //鎶ヤ慨绫诲埆
+                            if (keys.Contains("multiSelectField_lfg9hgyv"))
+                            {
+                                string[] HDate_Temp = JsonConvert.DeserializeObject<string[]>(JsonConvert.SerializeObject(response.Body.Result[i].FormData["multiSelectField_lfg9hgyv"]));
+
+                                oItem.HRepairCategory = HDate_Temp[0];
+                            }
+                            LogService.Write("鎶ヤ慨绫诲埆:" + oItem.HRepairCategory);
+                            //绱ф�ョ▼搴�
+                            if (keys.Contains("radioField_kzgkw10c"))
+                            {
+                                string HDate_Temp = response.Body.Result[i].FormData["radioField_kzgkw10c"].ToString();
+
+                                oItem.HUrgenLevel = HDate_Temp;
+                            }
+                            LogService.Write("绱ф�ョ▼搴�:" + oItem.HUrgenLevel);
+
+                            //鎶ヤ慨浜�
+                            if (keys.Contains("employeeField_lkasesrk"))
+                            {
+                                string[] HDate_Temp = JsonConvert.DeserializeObject<string[]>(JsonConvert.SerializeObject(response.Body.Result[i].FormData["employeeField_lkasesrk"]));
+
+                                oItem.HRepairer = HDate_Temp[0];
+                            }
+                            LogService.Write("鎶ヤ慨浜�:" + oItem.HRepairer);
+
+                            //鏄惁鏈変骇鑳藉奖鍝�
+                            if (keys.Contains("textField_lyjddw0r"))
+                            {
+                                string HDate_Temp = response.Body.Result[i].FormData["textField_lyjddw0r"].ToString();
+
+                                oItem.HIsCapacityImpact = HDate_Temp;
+                            }
+                            LogService.Write("鏄惁鏈変骇鑳藉奖鍝�:" + oItem.HIsCapacityImpact);
+
+                            //缁翠慨鏃堕棿
+                            if (keys.Contains("textField_l2r95oo2"))
+                            {
+                                string HDate_Temp = response.Body.Result[i].FormData["textField_l2r95oo2"].ToString();
+                                bool containsNumber = HDate_Temp.Any(c => char.IsDigit(c));
+                           
+                                if (!containsNumber)
+                                {
+                                    HDate_Temp = "0";
+                                }
+                                //LogService.Write("1:------"+HDate_Temp+ ",2:------" + int.Parse(new string(HDate_Temp.Where(char.IsDigit).ToArray())));
+                                //a = HDate_Temp;
+                                oItem.HTimes = int.Parse(new string(HDate_Temp.Where(char.IsDigit).ToArray()));
+                                oItem.HPlanTimes = int.Parse(new string(HDate_Temp.Where(char.IsDigit).ToArray()));
+                            }
+                            LogService.Write("缁翠慨鏃堕棿:" + oItem.HTimes);
 
 
                             //瀛愯〃 缁翠慨瑕佹眰 缁翠慨澶囨敞(闂鎻忚堪)
@@ -2630,6 +3049,7 @@
                                 oItem.HExplanation = HDate_Temp;
                                 sub.HRepairExplanation = HDate_Temp;
                             }
+                            LogService.Write("缁翠慨瑕佹眰:" + oItem.HExplanation);
 
                             //澶囨敞
                             if (keys.Contains("textField_l2r95oo0"))
@@ -2638,6 +3058,8 @@
 
                                 sub.HRemark = HDate_Temp;
                             }
+                            LogService.Write("澶囨敞:" + oItem.HRemark);
+
                             oItem.DetailColMouldRepair.Add(sub);
 
                             int startindex = response.Body.Result[i].Title.IndexOf("zh_CN") + 8;
@@ -2673,7 +3095,7 @@
                         }
                         catch (Exception e)
                         {
-                            //LogService.Write(a);
+                            LogService.Write("鎶ラ敊:" + e.Message);
                             a = "";
                             continue;
                         }
@@ -2709,7 +3131,7 @@
             string formUuid = "FORM-OM566O7177LW0ARJ5IMFF63NTFKA34G9RL2YKN1";
             int pageNumber = 1;
             int pageSize = 100;
-
+            LogService.Write("鏌ョ湅6");
             //鑾峰彇璁惧缁翠慨淇濆吇琛ㄧ殑瀹炰緥ID鍒楄〃
             List<string> IDList = new List<string>();
             if (getInstanceIDList_YiDa(appType, systemToken, userID, formUuid, pageNumber, pageSize, ref IDList, ref msg) == false)
@@ -2800,6 +3222,288 @@
         #endregion
         #endregion
 
+        #region 鏁版嵁鍚屾-寮傚父宸ユ椂鍗昈A閲岃幏鍙�
+
+        #region 绫诲瀷杞崲鎻愬彇response涓殑value瀵硅薄
+        public class StatValue
+        {
+            public string Id { get; set; }
+            public string Label { get; set; }
+            public string Upper { get; set; }
+            public string Num { get; set; }
+        }
+
+        public class ExtValue
+        {
+            public List<StatValue> StatValue { get; set; }
+            public string ComponentName { get; set; }
+        }
+        public class RowValue
+        {
+            public string Label { get; set; }
+            public object Value { get; set; }
+            public string Key { get; set; }
+            // 娉ㄦ剰锛氳繖閲屼笉瀹氫箟extendValue灞炴�э紝鍥犱负鎴戜滑涓嶉渶瑕佸畠
+            // public SomeType ExtendValue { get; set; } // 濡傛灉闇�瑕侊紝鍙互娉ㄩ噴鎺夋垨鍒犻櫎杩欒
+        }
+        public class Row
+        {
+            public List<RowValue> RowValue { get; set; }
+            public string RowNumber { get; set; }
+            // 娉ㄦ剰锛氳繖閲屽亣璁句綘涓嶉渶瑕乧omponentName锛屽洜涓篔SON绀轰緥涓病鏈夌洿鎺ュ寘鍚畠
+            // 浣嗗鏋滀綘鐨勫疄闄匤SON鎴栭渶姹備腑鍖呭惈锛屼綘搴旇娣诲姞杩欎釜灞炴��
+            // public string ComponentName { get; set; }
+        }
+        #endregion
+
+
+        #region OA寮傚父宸ユ椂鐢宠鍗� 瀹炰緥ID鍒楄〃瀵瑰簲鐨勫疄渚嬭鎯�
+        public bool getInstanceDetailList___ErrWorkTimesRequest_OA(List<string> processinstanceIDList, DateTime startTime, DateTime endTime, ref List<Pay_ErrWorkTimesRequestBill> lsmain,ref string msg)
+        {
+            try
+            {
+                List<GetProcessInstanceResponse> getProcessInstanceResponses = new List<GetProcessInstanceResponse>(); 
+                //鑾峰彇閽夐拤response
+                if (getInstanceDetailListByInstanceIDList_OA(processinstanceIDList,ref getProcessInstanceResponses,ref msg)==false)
+                {
+                    return false;
+                }
+                foreach(GetProcessInstanceResponse getProcessInstanceResponse in getProcessInstanceResponses)
+                {
+                    Pay_ErrWorkTimesRequestBill oItem = new Pay_ErrWorkTimesRequestBill();
+                    //涓昏〃
+                    oItem.HDate = getProcessInstanceResponse.Body.Result.FormComponentValues[1].Value;//鍗曟嵁鏃ユ湡璁℃椂鏃堕棿
+                    DateTime dateTime1 = DateTime.ParseExact(oItem.HDate + " 00:00:00", "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
+                    if (!(DateTime.Compare(dateTime1, startTime)>=0&& DateTime.Compare(dateTime1, endTime) <= 0))//鎺у埗鏃堕棿
+                    {
+                        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];
+                    //涓荤-璐熻矗浜�
+                    string HManagerValue = getProcessInstanceResponse.Body.Result.FormComponentValues[9].Value;//鑾峰彇鐨勫悕瀛楀惈鍚庣紑鑻辨枃
+                    string pattern = @"[\u4e00-\u9fff]+"; // 涓枃瀛楃鐨刄nicode鑼冨洿
+
+                    MatchCollection matches = Regex.Matches(HManagerValue, pattern);
+
+                    // 鍒涘缓涓�涓猄tringBuilder鏉ユ嫾鎺ユ墍鏈夊尮閰嶇殑涓枃瀛楃
+                    System.Text.StringBuilder chineseChars = new System.Text.StringBuilder();
+                    foreach (Match match in matches)
+                    {
+                        chineseChars.Append(match.Value);
+                    }
+                    string HManagerName = chineseChars.ToString();
+                    DataSet ds = oCN.RunProcReturn("select * from Gy_Employee with(nolock)  where HName='" + HManagerName + "'", "Gy_Employee");
+                    string HMangerID = "0";
+                    if (ds.Tables[0].Rows.Count > 0)
+                    {
+                        HMangerID = ds.Tables[0].Rows[0]["HItemID"].ToString();
+                    }
+                    oItem.HMangerID = int.Parse(HMangerID);
+                    //澶勭悊閮ㄩ棬鍜岀彮缁勫悕绉癷d
+                    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]["HDeptID"].ToString();
+                    }
+                    oItem.HDeptID = int.Parse(HDeptID);
+                    ds = oCN.RunProcReturn("select * from Gy_Group with(nolock)  where HName='" + oItem.HGroupName + "'", "Gy_Group");
+                    string HGroupID = "0";
+                    if (ds.Tables[0].Rows.Count > 0)
+                    {
+                        HGroupID = ds.Tables[0].Rows[0]["HItemID"].ToString();
+                    }
+                    oItem.HGroupID = int.Parse(HGroupID);
+                    
+                    //鍙嶅簭鍒楀寲鏄庣粏鍐呭
+                    string tableFieldValue = getProcessInstanceResponse.Body.Result.FormComponentValues[11].Value;
+                    List<Row> rows = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Row>>(tableFieldValue);
+                    ExtValue extValue = Newtonsoft.Json.JsonConvert.DeserializeObject<ExtValue>(getProcessInstanceResponse.Body.Result.FormComponentValues[11].ExtValue);
+                    oItem.HBatchNo = rows[0].RowValue[1].Value.ToString();//鎵规鍙�-璁㈠崟鍙风爜
+                    //浠诲姟鎻忚堪-浠诲姟绫诲瀷+宸ヤ綔鍐呭
+                    oItem.HExplanation = getProcessInstanceResponse.Body.Result.FormComponentValues[2].Value + "-" + rows[0].RowValue[0].Value;
+                    oItem.HSumRequestTimes = double.Parse(extValue.StatValue[1].Num);//鎬绘椂闀�
+                    oItem.HPlanQty = 0;//璁″垝鏁伴噺
+                    oItem.HRemark = "閽夐拤瀵煎叆" + getProcessInstanceResponse.Body.Result.Title;//澶囨敞
+                    //寰幆閬嶅巻鑾峰彇鑱屽憳鍚嶇О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";
+                            //璁剧疆瀛愯〃鑱屽憳id鍚嶇О
+                            if (ds.Tables[0].Rows.Count > 0)
+                            {
+                                HEmpID = ds.Tables[0].Rows[0]["HItemID"].ToString();
+                            }
+                            pay_ErrWorkTimesRequestBillSub.HEmpName = nameArray[j];
+                            pay_ErrWorkTimesRequestBillSub.HEmpID = int.Parse(HEmpID);
+                            pay_ErrWorkTimesRequestBillSub.HRelTimes = double.Parse(rows[i].RowValue[6].Value.ToString());
+                            pay_ErrWorkTimesRequestBillSub.HTimes = double.Parse(rows[i].RowValue[6].Value.ToString());
+                            pay_ErrWorkTimesRequestBillSub.HRelPay = double.Parse(rows[i].RowValue[10].Value.ToString());
+                            pay_ErrWorkTimesRequestBillSub.HPayMoney = pay_ErrWorkTimesRequestBillSub.HRelPay / pay_ErrWorkTimesRequestBillSub.HTimes;
+                            pay_ErrWorkTimesRequestBillSub.HRemark = "閽夐拤瀵煎叆";
+                            oItem.Pay_ErrWorkTimesRequestBillSub.Add(pay_ErrWorkTimesRequestBillSub);
+
+                        }
+                    }
+                    lsmain.Add(oItem);
+                }
+                return true;
+            }catch(Exception e)
+            {
+                msg = e.Message;
+                return false;
+            }
+
+        }
+        #endregion
+
+        #region 鏁版嵁鍚屾
+        public bool getData_ErrWorkTimesRequest(DateTime startTime, DateTime endTime,ref string msg)
+        {
+            string processCode = "PROC-21371550-FEF1-4EDD-A827-639746E22E43";
+            long nextToken = 1;
+            int maxResult = 20;//鏈�澶�20
+            List<string> statues = new List<string>{"COMPLETED"};
+            this.AppKey = "ding7miekiaqn4rc2ert";
+            this.AppSecret = "81qMrC5SvkgjT9t2A3wUyEEENzyl9jJLeXOpjv2SNULc_HSlFZF4NE21YFCXik4K";
+            getAccessToken();//璁剧疆accessToken
+            //鑾峰彇宸ユ椂鐢宠鐨勫疄渚婭D鍒楄〃
+            List<string> IDList = new List<string>();
+            if (getInstanceIDList_OA(processCode,startTime,endTime,nextToken,maxResult,statues,ref IDList, ref msg) == false)
+            {
+                return false;
+            }
+            //鑾峰彇璇︾粏淇℃伅骞堕檮鍔犲埌鍒楄〃lsmain涓�
+            List<Pay_ErrWorkTimesRequestBill> lsmain = new List<Pay_ErrWorkTimesRequestBill>();
+            if (getInstanceDetailList___ErrWorkTimesRequest_OA(IDList,startTime,endTime, ref lsmain, ref msg) == false)
+            {
+                return false;
+            }
+            try
+            {
+                oCN.BeginTran();
+                //鍒犻櫎鏃堕棿鑼冨洿鍐呯殑瀵煎叆鍗曟嵁
+                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)
+                    {
+                        int HInterID = row.Field<int>("HInterID");
+                        oCN.RunProc(@"Delete From Pay_ErrWorkTimesRequestBillMain where HInterID = " + HInterID);
+                        oCN.RunProc(@"Delete From Pay_ErrWorkTimesRequestBillSub where HInterID = " + HInterID);
+                    }
+                }
+                //鎻掑叆鏁版嵁
+                foreach(Pay_ErrWorkTimesRequestBill oItem in lsmain)
+                {
+                    if (oItem.Pay_ErrWorkTimesRequestBillSub.Count != 0)
+                    {
+                        string HBillType = "2231";
+                        long HInterID = DBUtility.ClsPub.CreateBillID(HBillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                        string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod(HBillType, ref DBUtility.ClsPub.sExeReturnInfo, true);
+                        int HYear = int.Parse(oItem.HDate.Split('-')[0]);
+                        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,HChecker,HCheckDate,HIsImport) " +
+                        "values(" +
+                        "" + HYear +
+                        "," + HPeriod +
+                        ",'" + HBillType +
+                        "','" + " " +
+                        "'," + 2 +
+                        "," + HInterID +
+                        ",'" + HBillNo +
+                        "','" + oItem.HDate +
+                        "','" + " " +
+                        "'," + oItem.HDeptID +
+                        "," + oItem.HGroupID +
+                        "," + oItem.HMangerID +
+                        "," + "0" +
+                        ",'" + " " +
+                        "','" + oItem.HExplanation +
+                        "'," + oItem.HSumRequestTimes +
+                        "," + 0 +
+                        "," + 0 +
+                        "," + oItem.HPlanQty +
+                        ",'" + oItem.HBatchNo +
+                        "','" + oItem.HRemark +
+                        "','" + "System" +
+                        "'," + "GETDATE()" +
+                        ",'" + "System" +
+                        "'," + "GETDATE()" +
+                        "," + "1" +
+                        ")";
+                        //涓昏〃
+                        LogService.Write(sql);
+                        oCN.RunProc(sql);
+                        int i = 1;
+                        foreach (Pay_ErrWorkTimesRequestBillSub oItem_Detail in oItem.Pay_ErrWorkTimesRequestBillSub)
+                        {
+                            sql = "insert into Pay_ErrWorkTimesRequestBillSub" +
+                            "(HInterID,HEntryID,HEmpID,HWorkTypeID,HPayMoney,HBTimes,HETimes,HTimes,HRelTimes,HRelPay,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo" +
+                            ",HSourceBillType,HRelationQty,HRelationMoney) " +
+                            "values(" +
+                            "" + HInterID +
+                            "," + i +
+                            "," + oItem_Detail.HEmpID +
+                            "," + 0 +
+                            "," + oItem_Detail.HPayMoney +
+                            ",'" + "" +
+                            "','" + "" +
+                            "'," + oItem_Detail.HTimes +
+                            "," + oItem_Detail.HRelTimes +
+                            "," + oItem_Detail.HRelPay +
+                            ",'" + oItem_Detail.HRemark +
+                            "'," + 0 +
+                            "," + 0 +
+                            ",'" + " " +
+                            "','" + " " +
+                            "'," + 0 +
+                            "," + 0 +
+                            ")";
+                            LogService.Write(sql);
+                            oCN.RunProc(sql);
+                            i += 1;
+                        }
+                    }
+                }
+                oCN.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                LogService.Write(e.Message);
+                msg = e.Message;
+                oCN.RollBack();
+                return false;
+            }
+        }
+        #endregion
+
+        #endregion
+
         #endregion
 
 
@@ -2875,5 +3579,39 @@
         }
         #endregion
 
+        #region 閽夐拤鏁版嵁鍚屾OA
+        [Route("DD_DataSynchronization/DataSynchronization_DingDing_OA")]
+        [HttpGet]
+        public object DataSynchronization_DingDing_OA(DateTime startTime, DateTime endTime, string user)
+        {
+            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;
+                //}
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1