From b7f144bf5256d986762b27a07a7531f7679c52ce Mon Sep 17 00:00:00 2001
From: duhe <226547893@qq.com>
Date: 星期一, 28 四月 2025 13:24:25 +0800
Subject: [PATCH] 三升:小诸葛接口

---
 LMES/XiaoZhuGe_autoGetData.Designer.cs                             |   34 
 LMES/Program.cs                                                    |    6 
 LMES/XiaoZhuGe_autoGetData.resx                                    |  335 +++++++++++++
 LMES/XiaoZhuGe_autoGetData.cs                                      |   72 ++
 WebAPI/Controllers/数据同步/小诸葛同步/XZG_DataSynchronizationController.cs |  939 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 1,348 insertions(+), 38 deletions(-)

diff --git a/LMES/Program.cs b/LMES/Program.cs
index f36a4e2..a123ba2 100644
--- a/LMES/Program.cs
+++ b/LMES/Program.cs
@@ -15,8 +15,8 @@
         {
             Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
-            //Application.Run(new DingDing_autoGetData());
-            //Application.Run(new XiaoZhuGe_autoGetData());
+            //Application.Run(new DingDing_autoGetData());                          //鏂帿灏斻�愰拤閽�-MES銆戝悓姝ユ彃浠�
+            //Application.Run(new XiaoZhuGe_autoGetData());                           //涓夊崌銆愬皬璇歌憶-閲戣澏浜戙�戝悓姝ユ彃浠�
 
 
             DBUtility.ClsPub.AppPath = System.Environment.CurrentDirectory;
@@ -25,7 +25,7 @@
             DBUtility.ClsPub.SetIPAddress();
             DBUtility.ClsPub.VersionNum = "12.1";
             Pub_Class.ClsPub.VersionNum = "12.1";//
-            //===================================================================
+                                                 //===================================================================
             try
             {
                 if (DBUtility.ClsPub.CheckUpdate())
diff --git a/LMES/XiaoZhuGe_autoGetData.Designer.cs b/LMES/XiaoZhuGe_autoGetData.Designer.cs
index ff58e8a..4bd975d 100644
--- a/LMES/XiaoZhuGe_autoGetData.Designer.cs
+++ b/LMES/XiaoZhuGe_autoGetData.Designer.cs
@@ -29,25 +29,35 @@
         /// </summary>
         private void InitializeComponent()
         {
-            this.button1 = new System.Windows.Forms.Button();
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(XiaoZhuGe_autoGetData));
+            this.timer1 = new System.Windows.Forms.Timer(this.components);
+            this.timer2 = new System.Windows.Forms.Timer(this.components);
+            this.notifyIcon_Icon = new System.Windows.Forms.NotifyIcon(this.components);
             this.SuspendLayout();
             // 
-            // button1
+            // timer1
             // 
-            this.button1.Location = new System.Drawing.Point(35, 22);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(105, 52);
-            this.button1.TabIndex = 0;
-            this.button1.Text = "button1";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
+            this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
+            // 
+            // timer2
+            // 
+            this.timer2.Enabled = true;
+            this.timer2.Interval = 3600;
+            this.timer2.Tick += new System.EventHandler(this.timer2_Tick);
+            // 
+            // notifyIcon_Icon
+            // 
+            this.notifyIcon_Icon.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon_Icon.Icon")));
+            this.notifyIcon_Icon.Text = "LMES";
+            this.notifyIcon_Icon.Visible = true;
+            this.notifyIcon_Icon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon_Icon_MouseDoubleClick);
             // 
             // XiaoZhuGe_autoGetData
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(800, 450);
-            this.Controls.Add(this.button1);
             this.Name = "XiaoZhuGe_autoGetData";
             this.Text = "XiaoZhuGe_autoGetData";
             this.ResumeLayout(false);
@@ -56,6 +66,8 @@
 
         #endregion
 
-        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.Timer timer1;
+        private System.Windows.Forms.NotifyIcon notifyIcon_Icon;
+        private System.Windows.Forms.Timer timer2;
     }
 }
\ No newline at end of file
diff --git a/LMES/XiaoZhuGe_autoGetData.cs b/LMES/XiaoZhuGe_autoGetData.cs
index a15e860..096dacc 100644
--- a/LMES/XiaoZhuGe_autoGetData.cs
+++ b/LMES/XiaoZhuGe_autoGetData.cs
@@ -15,15 +15,75 @@
         public XiaoZhuGe_autoGetData()
         {
             InitializeComponent();
+
+            //涓虹郴缁熸墭鐩樺浘鏍囧鍔� 鍙冲嚮鑿滃崟椤�
+            ContextMenu contextMenu = new ContextMenu();
+            MenuItem exitMenuItem = new MenuItem("閫�鍑�");
+            exitMenuItem.Click += ExitMenuItem_Click;
+            contextMenu.MenuItems.Add(exitMenuItem);
+            notifyIcon_Icon.ContextMenu = contextMenu;
+
+            //椤甸潰鍒濆鍖�
+            set_initPage();
         }
 
-        private void button1_Click(object sender, EventArgs e)
+        #region 椤甸潰鍒濆鍖�
+        public void set_initPage()
         {
-            XZG_DataSynchronizationController t = new XZG_DataSynchronizationController();
-
-            //t.getAddMaterAsync_1();
-
-            t.icmoInfoSyncFromERPToXZG();
+            timer1.Enabled = true;
         }
+        #endregion
+
+        #region 瀹氭椂鍣�1锛氱敤浜庨殣钘忛〉闈笌浠诲姟鏍忓浘鏍�
+        private void timer1_Tick(object sender, EventArgs e)
+        {
+            //绯荤粺鎵樼洏鏄剧ず杞欢鍥炬爣
+            this.notifyIcon_Icon.Visible = true;
+            // 闅愯棌涓荤獥浣�
+            this.Hide();
+            // 闅愯棌浠诲姟鏍忚蒋浠跺浘鏍�
+            this.ShowInTaskbar = false;
+
+            timer1.Enabled = false;
+        }
+        #endregion
+
+        #region 瀹氭椂鍣�2锛氱敤浜庡畾鏃跺悓姝ユ暟鎹�
+        private void timer2_Tick(object sender, EventArgs e)
+        {
+            try
+            {
+                XZG_DataSynchronizationController t = new XZG_DataSynchronizationController();
+                t.dataAnsy();
+            }catch(Exception e1)
+            {
+                string sErrMsg = "";
+            }
+        }
+        #endregion
+
+        #region 绯荤粺鎵樼洏鐐瑰嚮鍥炬爣鍚庡浘鏍囦粛瀛樺湪
+        private void notifyIcon_Icon_MouseDoubleClick(object sender, MouseEventArgs e)
+        {
+            
+
+            if (e.Button == MouseButtons.Left && e.Clicks == 2) // 鍙屽嚮宸﹂敭浜嬩欢绀轰緥
+            {
+                // 澶勭悊鍙屽嚮浜嬩欢锛屼緥濡傛樉绀烘垨闅愯棌涓荤獥浣撶瓑銆�
+                //this.Show(); // 绀轰緥锛氭樉绀轰富绐椾綋锛堝鏋滀箣鍓嶆槸闅愯棌鐨勶級
+                //this.WindowState = FormWindowState.Normal; // 纭繚绐楀彛澶勪簬姝e父鐘舵�侊紙闈炴渶灏忓寲锛�
+
+                //绯荤粺鎵樼洏鏄剧ず杞欢鍥炬爣
+                this.notifyIcon_Icon.Visible = true;        //淇濊瘉绯荤粺鎵樼洏鍥炬爣浠嶆棫瀛樺湪
+            }
+        }
+        #endregion
+
+        #region 绯荤粺鎵樼洏鍥炬爣 鍙冲嚮鍔熻兘鑿滃崟閫�鍑烘寜閽簨浠�
+        private void ExitMenuItem_Click(object sender, EventArgs e)
+        {
+            Application.Exit(); // 杩欏皢鍏抽棴鏁翠釜搴旂敤绋嬪簭
+        }
+        #endregion
     }
 }
diff --git a/LMES/XiaoZhuGe_autoGetData.resx b/LMES/XiaoZhuGe_autoGetData.resx
index 1af7de1..356ab97 100644
--- a/LMES/XiaoZhuGe_autoGetData.resx
+++ b/LMES/XiaoZhuGe_autoGetData.resx
@@ -117,4 +117,339 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>136, 17</value>
+  </metadata>
+  <metadata name="notifyIcon_Icon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>246, 21</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="notifyIcon_Icon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        AAAAAAAAAAAAAAAAAAAAAAAAAgkMFAYcJTwCGCFFAAAAOwAAAEQEAgFYJxoRc0QvII1gRDGkcEcusYJN
+        LbqIVDa+hmFQu3FTQ7NYNyOmOh8LkR8QBnoAAABmAAAAXAAAAFkAAABTAAAARwAAADcAAAAmAAAAFwAA
+        AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJOZokhj7v/Dj1PfwAA
+        ADIAAAA7AAAAIAAAAAkAAAAAAAAAAAAAAAoAAAAWAAAAHQAAACUAAABBIxoTbmVHMqShcVPS0Zt07e27
+        lPr7063//8+i///NoP//0qj//+bL///bu//4yqT/4qV5+cN8S+qSVi7QVTAXqRULA38AAABlAAAAXAAA
+        AFEAAABBAAAALgAAABwAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVa
+        dqghjLj8DjlKdAAAADgAAAA7AAAAHwAAAAkAAAAAAAAADAAAABkAAAAmAAAANyYcFWd/YFCu0qKH7Pe/
+        lP//167//+/P///86P////X////x////9v////n/////////8////+r///7t///jyf//v5T/6Ztn/7Rw
+        QOlhOhy1GA4FfgAAAF8AAABYAAAASwAAADYAAAAjAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAFVhzDBlpiboii7f8DjhJdAAAADwAAAA/AAAAIgAAAAwAAAALAAAAGgAAACIRDAhIak8yoMyb
+        bOn9yaT//+PL///z3f///Or////3///////////////2////9/////b////9/////v////X////0////
+        +///+/L//+TI//2+kv/nl2H/rnFG5lA3JqcGAwBtAAAAXAAAAFIAAAA7AAAAIgAAABEAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAG3edEBx5nsMhjLj/DjxPfQAAAEAAAABEAAAAJwAAABYAAAAYAAAAIywg
+        FGCheE7K7LN+//3Imf/+4Lb///vh////+P////v////u///64v//8NL//+bA///kv///47v//+7T///0
+        3P//7Mj///HP///21P//++H////v///13f/9zan/9K+D/9iZbfx/TCPLGQ4EfgAAAF4AAABTAAAAOwAA
+        ACQAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG3uhERx6oMMhj7v/D0BUjwAAAEQAAABLAAAAMAAA
+        ACAAAAAhQC4db76LW+Pvtn//98SX///bsf//68P///LV///w1v//6cz//+vP///jw//+yJ///riM//65
+        jv/9tor//sWd///Qrv/+wJT//sWa///OpP//1q3//+C6///szf//79P//te6//O+nf/ajlf/nFwr3yUV
+        CIcAAABdAAAAVAAAADsAAAAhAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAHX6lEBx6n78lk7//E09mqAAA
+        AEkAAABRAAAAPAAAACpALiByxY5b7OWsd//tuY7//s+l///ctP//17L//9a1///Wtv/+x6D//sei///L
+        qf//xKL//biR//2ufv/9q3r//rWL//7CoP/6roH/+Kt9//qvgv/7tIj//LyQ///Emf//zqj//9i2//3X
+        vf/nsI7/2Y1V/6ViK+gpFgiKAAAAXQAAAFAAAAAzAAAAGwAAAAwAAAAAAAAAAAAAAAAAAAAAFmSCDRpr
+        jLUsmsj/GmiJxQEFB1UAAABVAAAAQjEjGHG2gmDr259t/+GqfP/2wpX//82i//7Jo///wZz//sOe//7M
+        q///w5z//8Oc//+5jf//u5L//8up///Hov//tor//7WJ///HpP/9s4f/+6x9//erff/0q3v/86p9//au
+        gf/5tIj/+7iM//7Lqv/1xKb/3qiE/9WRXf+fYS7mHhAFggAAAFgAAABGAAAALAAAABUAAAAIAAAAAAAA
+        AAAAAAAADkJXCBVad6Ywm8n/IoCm3gMRF2kAAABUEwwGbIteO9zKk27/0Jlx/+asgf/0u5L/+LyV//m7
+        lP/9vJX//sGa///Qr///zqj//8Wd//+3iv//t4b//7uO///Hof//zqr//8mj///Orv//uIz//699//2w
+        gf/4rn//9Kt8//Coef/uqHv/8Kl7//a7l//yt5H/4KJ4/9CZc//Sk2L/iFo11QsHBW0AAABSAAAAPgAA
+        ACIAAAAMAAAAAAAAAAAAAAAAAAAAABNbeI8zmMP/MZvH+gQlNIYBAABeUzMew59nQP+1hGT/0Jl3/+Sm
+        gf/vsov/9LWP//q6kv//wZn//8ef///XtP//1bD//76S//+6i///vY7//7uM//+5if//v5P//8ym///Z
+        uv//yqT//7aI//+zgP/9sYH/+q+A//Wtff/wqXr/66R1/+6wiv/uso3/459v/9KPX//GhVL/xYZU/1s/
+        KrIAAAFfAAAATwAAAC8AAAATAAAAAAAAAAAAAAAAAAAAABBVcXIvkbr/Ra/d/wtLZq4iEQiUeksr+41b
+        OP+vgGD/1J9+/+WngP/xs4r/+rqS///Dmv//yqH//82j///buP//0qz//7yM//+/kP//wJP//7+S//+/
+        j///vIz//7uH///PqP//1rT//82o///FnP//tof//a9///muf//1rX3/8Kd3/+2uhP/qrof/4p9u/9mW
+        Zv/Ef0z/uXI3/6VnMPMoGQuLAAAAVwAAAD0AAAAdAAAACgAAAAAAAAAAAAAAAAo9UFUmiLD7Vrjl/yqC
+        qOZXRjbifFE0/4RXOP+vfl7/1aKB/+irgv/3uI7//sKa///Lov//0Kf//9Or///ZtP//1K7//8CQ///E
+        lP//xZb//8aW///Elf//w5T//7+O///Opf//zab//8CS///Np///zaj//8GY//yzhf/4rXv/9Kp5//Gy
+        hv/tsYr/455t/9uYZ//Kh1X/tXI8/7hwMf9zRRzNBAIBYwAAAEYAAAAoAAAAEwAAAAAAAAAAAAAAAAw8
+        TjMbeZ7jWbfg/0mt2f9WYmD/fVU8/4hlTP+uf2L/1aOE/+ywh//7v5T//8mg///RqP//1Kz//8yh///L
+        n///2rb//8SV///Flf//yJn//8mZ///ImP//x5f//8WT///Sqf//1rL//72K//+8iv//wpX//8uj///J
+        p//8v5n/97KD//azh//xtpH/6KFu/96aaf/Pi1v/vHlD/7VvNP+mZSr3LBoLiwAAAEkAAAA0AAAAGwAA
+        AAkAAAAAAAAAAA01RhIUZ4jASKnS/2rI7v1AeIz/dk4x/45sU/+xjHP/2KqO/++2lP/7wpn//s6k///V
+        q///zqL//8KR///Hmf//3rr//8qa///Glf//yZr//8qa///Jmf//yJj//8aV///Spf//3Lf//8WT///A
+        j///vIr//7uK//++kP/+xZv//cWg//vDof/2vZj/7KVz/+Ocaf/UkF7/w39L/7BtNP+zbC3/YjoXvAIB
+        AFMAAAA8AAAAJAAAAAwAAAAAAAAAAAAAAAATXnyTMZS+/33M5/1SpMD/Y1lL/5RiQf+wh2z/1qyS/+7H
+        qf/507H//tSv///Knf//v4///8CQ///GmP//37r//9Kk///JmP//zJ3//8yc///Lm///y5r//8mX///Q
+        of//3rn//8ma///Dkv//wZD//76M//+6h///toT//biK//zDm//7yKj/9LmS/+qqe//blmP/yYRP/7Jv
+        Nf+waiz/jFMh4xIKA2gAAABAAAAAKwAAAA8AAAAAAAAAAAAAAAAMP1NWJoeu922zzv98w9f/VXmB/5do
+        SP+xgWD/z6WI/+jEpP/30rL//du+///buf//1az//82h///ImP//3LX//9aq///Hlf//zZ3//8+f///Q
+        oP//0Z7//86b///RoP//473//9Cg///Fkv//xZP//8OP///Ajf//u4z//7aD//y5if/6wpz/9riN//O5
+        kf/mrIP/1JVn/7h1P/+qZSf/omAk9y4cDocAAABDAAAAMQAAABIAAAAAAAAAAAAAAAADFRwiInCP1Fic
+        uP+Iv83/ZZ2s/4h2ZP+6hWL/zJ9//+OwjP/zsob//MSa///Xsv//48H//+jH///lxP//6sv//+K8///T
+        pP//0qL//8+d///Om///0Zz//8+c///Rnf//5b7//9ap///Jlf//yJb//8aT///CkP//v4z//7qI//+8
+        kP/7xZ7/8698//CqeP/pp3r/26R5/8OMYv+rcD//qmgt/1AyGqkAAABJAAAANAAAABQAAAAAAAAAAAAA
+        AAAMCAUUNVZew02Npv9+rLr/grK6/3mDfv+7f1f/zZJt/+Ctiv/xroH/+reH///Aj///yZr//9Ko///d
+        tv//7Mr///bW///x0P//8c3//+rF///gtv//2an//9Sg///Omf//4rj//9iq///Jlf//ypj//8eW///E
+        k///wY3//7yI//+/kf/9yKL/97KE//Otev/qo2//25Zh/8WHVf+udkj/r3NE/2dDJsEBAQFQAAAANQAA
+        ABQAAAAAAAAAAAAAAAAgDAAebFM40U19i/9vlaL/lLCw/4CWlf+vgWL/05Fo/96tjf/usYf/97iK//zA
+        kf/+xZP//8iV///Jlf//2av//+rE///cr///5bn//+7H///yzf//8s7///HL///pw///7cr//+C1///M
+        mP//yJX//8eU///Fk///wo///72L///Ck//+yaT/+bSG//Wxfv/uqnX/35pn/8iFT/+ubDL/rGkv/3hN
+        KdEJBwVZAAAAMwAAABUAAAAAAAAAAAAAAAAjDwApi0wa3mBvbP9kiJT/maai/5mppP+hjXz/1pJn/96q
+        if/osYn/87WH//nAkP/9xpb//82b///Nmf//1aX//+fA///ToP//0Zz//9ah///XpP//2qv//+G0///m
+        vP//8c3///LT///owf//37T//9Ok///Ilv//wo7//76I///Ckf/+zKj/+reI//eyf//vrHj/4aBs/8+O
+        WP+0dDz/rmkq/4FQKNoQCgdfAAAAMAAAABQAAAAAAAAAAAAAAAAjEgIskkkQ4n5iQ/9jgIj/lJ2c/66w
+        o/+hnpD/zJNu/+Gqg//lsYr/8LGE//i+j//8x5b//82b///Pnf//1aL//+rC///aq///06D//9aj///U
+        of//06D//9Og///RnP//4bP//+i////aqf//37T//+G6///dt///1Kr//8mZ///Elf/+zaf/+riG//ez
+        fv/wrXr/4qNu/9CRW/+0dj//r2wv/4RSK90RCwhfAAAALgAAABQAAAAAAAAAAAAAAAAjEgMokUwV4Jha
+        Jv9wdGv/i5eX/7ayp/+0r53/vJd7/+KlgP/lso//7LCB//W+jv/7xZX//sqY///OnP//0qD//+jA///e
+        sf//1KH//9mn///Xpf//16X//9ak///ToP//3bH//+W8///Omv//y5b//8yZ///QoP//0qj//9Wt///V
+        rv//1rL//MKV//i1gv/vrHf/4qBq/8yNV/+ydD3/rmwv/4NOJtsQCgVaAAAAKwAAABMAAAAAAAAAAAAA
+        AAAkEwQgjE0Y16NbI/+Ma07/goZ9/7Crof/IwLD/vKya/9imgv/msov/6Kp9//G5iv/4w5H//cmX//7N
+        m///0J3//+S7///gtf//05///9im///Xpf//2Kb//9im///Wof//3q///+rB///Sn///z5r//8yY///I
+        lP//xZH//8SQ///Imf//17T//c+p//3In//1vZL/4qV2/8qKVv+xcjn/rWop/3xIHdMNBwZPAAAAJwAA
+        ABEAAAAAAAAAAAAAAABSLA4Xf0cZyKJdJ/+la0H/jHtm/6GXiP/ItaH/zL6t/8q1n//mupj/57KI/+y1
+        h//zu4v/+cOQ//7Kl///z5v//+K3///it///0p7//9ak///VpP//1qT//9aj///VoP//3az//+vD///W
+        of//0Zv//86a//7Jlv/9x5T/+cCN//K6iv/nv5v/2KZ8/8yacf/Dl3T/to1t/6Z9W/+TZT7/lFYi/1sx
+        EccBAQFKAAAAKwAAAA4AAAAAAAAAAAAAAABsPBYJhUscppxcJ/+pajv/p3lT/5qNfP+7ppD/1Leb/8iz
+        nf/Yu6L/6MKc/+fFof/uyKH/9sme//vMm//9zJj//9yw///kuv//0Z3//9Wi///Vo///1aL//9Wj///T
+        nv//26r//+rE///Wov//0Zr//8+b//3Klv/5xJH/8rqI/+Wvg//SrYz/tZNr/4SQM/97hyP/gHRI/4Ne
+        Pf9yYFD/eGVa/0UuHroAAABGAAAALQAAAAoAAAAAAAAAAAAAAAAAAAAAZjsWeKBfKv+laTv/t3ZF/6iH
+        av+tnIn/0LOX/9e5nP/ItJ7/5bCE/+i3i//ow5z/8M+p//fZtP/63rj//ubC///qxP//263//9mr///X
+        pv//1aH//9Kf///Rmv//16T//+rE///Uof//zpf//syY//rGk//zvo3/5rCC/9Kfdv+zmnv/epxb/1W0
+        Jv5bqQD/VIJG/1BrZ/9Ilbr/Tp7F/zhaZs0DDRBRAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAWDQTSJxd
+        KfOlbD3/s3JB/8CFWP+slHr/wKeR/9y7n//Twq3/z62M/+qrev/osYP/6riI//HClP/2zaD//N20//7r
+        xv//5r7//+rC///qxP//6L///+a6///hsv//3rH//+vD///Vof//zZb/+8iS//XAjP/ptYX/1qV4/7qN
+        af+JnHX/Yr1x91zCV/9isST+P6Fy8yC/4Pgd0v7/Jc71/yvA6fEQVWeKAAAAOAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAPCMOFYVQJMurbz//qm47/8WBTP/Ekmr/tJuE/82xl//gybH/zLmi/9iqg//tsYD/6LKE/+y4
+        if/xvYz/98ye//vetv/9z53//9Sh///bq///36///+e6///rwf//7cb///XP///pvP//4bL/99Kj/+zA
+        jv/aq3z/wJJo/6SDYf9zq2D/XLQ6/2C3OP+KlVL/W6a0/xPN9v8I0Pj/Ds30/wvV9f8Ll6/IAxwhQwAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtCHH6rcD3/p2w4/7d3Qv/Tj1v/xJhz/7mhi//YwKr/4Mir/8ew
+        lf/crYT/7bOB/+i0hf/quYn/8MWY//XZsv/6zJr//c2X//7Qmv//zpj//9Ga///Rmv//16P//+zE///g
+        sv//3q3/79Os/+DFof/Iro3/sJJ1/6ydb/9pnxj9S6QA/2mTAP+lbE7/dJTD/zO59/8sqPD/KJfr/xKs
+        7v8ArMfhAFlgZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEksFCWeaTzgqGw2/61uOf/Gh1L/15hm/8Kb
+        ev/DsJ7/3cSq/9m/of/HsJb/366E/+yygf/ns4T/6r6R/+/Sqv/0x5f/+ciV//vOm//9z5r//9Gc///Q
+        mv//0Zz//+a9///UoP//ypH/5beF/9Gofv+4mHX/zaiL/9awcP93mg3/UKQA/4V5Ev+jZmn/cJjU/06o
+        +P9KkO3/Q3Lm/zRs5v8Rh8LlAlhkegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzUDZ6s3pM/6pw
+        O/+3eUP/0Y9c/92cav/JqY3/xbOf/9y+nv/XwKP/xrCV/92vhf/rsID/5rWJ/+fKpP/rwJP/8L+O//TF
+        lf/4yZf//M2Z//7MmP/+zpr//+S6///Vov//ypT/2qx+/8SYb//Hnnf/5LeN/9imbv+cmR7/cpMC/51r
+        L/+Tepr/W6ns/0iu+P9DnO3/Oobp/zZo5f8hUbfmBx46hwAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AABFMCEZnW5Iy7iFW/+2g1n/xY5g/9ubaP/mroL/y62P/8Opjf/bvZ//1b6j/8Ovlv/Zq4T/6rOD/+fC
+        nf/kuIv/5raH/+q8jP/uwI7/88SR//fFkv/5x5T/+921//3Rn//+yJH/0KR5/8accv/aqnv12KJt/9iZ
+        Yf/CkjL/qXwP/6VrU/9yksf/TrX5/0qw9P9Ene7/OYjp/y9t5f8mRb/wEBhQpAAAABEAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAYz8fTa51QfC4hlj/wJJq/9Kkfv/puZP/7byT/8urif/BrpX/17uf/9O8
+        of+/rZT/zq2J/+bAmv/otIb/4a19/96wgv/gsoX/47aG/+i5h//uv4z/9Nau//jLmv/8wo3/ypht/9Kd
+        bP/Um2H/zZFP/8iIO//Jfxv5wG0i/417iPNSo+3+RKv4/0Sa7f86hen/MWzl/yta4f8qUtv6FSpwvgAA
+        ABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHhMI3u5djr9t31E/8CNWf/ar4f/8sSf//TF
+        nP/avqP/w7em/83BsP/QxK//urem/7q2pf/Uroj/5Kp5/9+nd//Wpnj/1Kd6/9ipe//er4D/5MKe/+u0
+        iP/wqHf/zI9e/8+UVf/Jij7/w38m/r57Ev+/fCn/p21D/4prXv9Kmt//OJPx/zR35v8sX+L/KVPh/ypU
+        4f8qV+H/GDGBxQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOUCKNuG4v/7l0
+        OP/JkWT/4a+F//C2hf/7w5L/576X/8e4ov++vbD/xsi7/7bEvv+jsar/r6mV/82rif/eqX//2KB4/86V
+        bf/Jj2n/y5x+/9GSa//XjmL/yItH/8SDK/m+ehDzw30a/8SDOv+/iWP/uHdK/6piLf9NaobXOI/u+zJ0
+        5v8qXeP/KVTh/ypW4f8qV+H/GTWIvgAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AABwOxcJjEscj71kJ/vBeEv/zY9p/+Kdb//5tor//8GT//a+kv/VsZH/t6uc/7O7t/+ut7X/lqqs/4ee
+        of+am5T/wJ2I/9Kbff/JlXf/upeB/7iSeP+/lHb/voU+/8GELP/LjU3/zYtc/8B7Sv/HiWT/w3tL/0op
+        D40VL0VGM4TZvzN14/srX+P/Klbh/ypX4f8qV+D+GDOFsQAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHtBGHS0bUDqxn1S/858TP/pn3b//7+Z///Rq///1a7/7s+u/8bN
+        wv+itrX/mbG0/5Czu/9zprT/YZWj/3qQkP+mm4r/w7Of/8O2n/+7spz/tauX/76ljf/Cl4D/uYNk/7t3
+        Sv+ocU/nPykcdwEAABkAAAAbDyhDPyZUpKwrXuD1KVbg/ipX4f8fVa37FS1zkQAAABkAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFUTFErGk9xMFqLv/Qfkj/5ptv//m9
+        mP//2rf///LQ////8v/m8+T/stfU/4bC0v93vNX/arnX/0+nyf9Bk7D/Xpiq/5mrov/FrI3/w5Fw/7B4
+        Vv+mbEr/pG1K/3FPOsseFhFgAAAAHwAAAB4AAAAeAAAAHwAAACsULWxwIki90CpX4PwbVJrtBxAmSAAA
+        ABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaEInF4pK
+        G3yxYynZx3M5/92KVP/wpXj/+sSf///t2v//+uL///rl/+Dw5v+j0df/cbfP/1ex2P9Hrdn/MZfE/yyG
+        rP9Ufo3/hm5b/5taL/uCQRfPRCILiwoFAkoAAAAvAAAALQAAACYAAAAdAAAAGgAAABwULGoSFjB/RxtY
+        l9gYUom4AAICGAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAACKTR8mpVslc6JaJsDCbDPr0n5I/+6viP/1r4H/+7SC///Flv//ypn/67eO/6qa
+        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
+        IGQeHh41NDQ0GDQ0NBQeJSgpHh4eUiAiI4g2LimxVUQ5xXNfT8yEcF7Pim9Z0OS4lcbTtZzRemNTz2FJ
+        OM1CMijKKyckwyUlJbYjIyOjIiIigyEhIV4gICA+NDQ0IjQ0NBA0NDQFNDQ0AgAAAAA0NDQGH05gfSJi
+        fMAjJSaOHx8fbR8fHz00NDQjHBwcNx4eHmQ6MiundWFVyffKp9H/7crR///x0f///9H///3R////0f//
+        /9H///fR//fm0f/Mp9HWkF7JTjstzSsoJ8QlJSWzIyMjliEhIWsgICBENDQ0IzQ0NA80NDQENDQ0ATQ0
+        NAYjY3yII2J8wyMmJ5YfHx94Hx8fTh8fH0MmIyFzYk88vvK7iM//68XR///z0f//+9H//vDR//La0f/r
+        z9H/7tPR//bm0f/02dH/+uPR///w0f/x2NH9vpHRu4Fc0TkvJ8slJSW8JCQknSEhIW0gICBDNDQ0HzQ0
+        NAs0NDQENDQ0BiNphYgiaIPIIiYooCAgIIghISFlKygkgHtgRsf7wo7R/9qw0f/pxtH/68/R/+DB0f/f
+        vtH+wprR/rKE0f21h9H/yKPR/LuP0f3CltH+0KbR/+K/0f/mydH/0bHR2Y9b0VY3H9EmJia+IyMjnSEh
+        IWc0NDQ0NDQ0GTQ0NAk0NDQFIl51fyaNt8wiKy6qIyMjlygmJJF4XEfI6K150fjFmdH/0KjR/8ai0f7L
+        qdH/wpzR/76W0f/AmtH+wZrR/rOF0f+/mdH7roLR+Kl70fWrfdH3sIPR+7uQ0f/OrtHvuprR2JFc0VI2
+        INEmJia6IyMjkCEhIVg0NDQpNDQ0EjQ0NAUeSVptMJ7M0SE0PLUlJCStVUExx8+XcNHgpn3R9bqR0fm5
+        ktH+vJXR/82q0f/Np9H/uozR/7iI0f/Bl9H/yqTR/9Cv0f+6jdH+rn3R+K1+0fKqetHupXfR87OL0e6y
+        jNHZm3HRyotY0TgxLMomJiawIiIieyAgIEE0NDQeNDQ0Ax1FVVU5o8/RJEpZvzEoIsWOWjbRu4lp0eGm
+        gNHzs4vR/L6V0f/IntH/2LPR/82k0f+7i9H/v5LR/7yM0f+8i9H/zqbR/9Ct0f/Bl9H+tITR+a5+0fKp
+        eNHtrIHR6auB0dmVZNHGgUrRmWM00SknJsIkJCSbISEhWjQ0NCw0NDQCGjhDODaXv81BnsjHYk09x4RY
+        OtG4iGjR5qyE0fu9ktH/y6LR/9Kp0f/VrtH/z6bR/8GR0f/Hl9H/xpfR/8KQ0f/Ln9H/y6LR/8WZ0f/K
+        otH+vpXR+LCA0fOvgtHrrYLR35po0cSBT9G9dDXRRTUnzCYmJq8iIiJ0ICAgPwAAAAAeND0XKHGOuF3C
+        7NFWaGrRiF5B0buSeNHrs5HR/cab0f/SqNH/y5/R/8eZ0f/Xr9H/xZTR/8ma0f/JmdH/xpXR/8+j0f/U
+        qtH/vYnR/76N0f/DmNH9w5vR+sCb0fO1jNHknWnRzopX0bp0OtGTWibRKigmvSQkJIogICBQAAAAADQ0
+        NAYcWHGUZL7g0V6YqdGDWz/RvI5y0efBpdH82LfR/9Os0f/ElNH/xJXR/9qy0f/KmdH/zJzR/82d0f/M
+        mtH/0KDR/9qx0f/Ek9H/wI7R/7yI0f64h9H9v5TR+sOf0fCyh9HbmWjRu3Y+0a9nKNE3LibGJSUlmiEh
+        IV8AAAAANDQ0BBk3Q2FPnr3RernL0Xt4bdG+iWXR3rGP0ffBmdH/1rLR/+G90f/futH/5cLR/9Wo0f/Q
+        oNH/z53R/8+b0f/QndH/4LbR/8uY0f/Gk9H/w5HR/7yK0f66i9H5vpTR8q+A0eapftHGjWDRsW810Ug3
+        KcwmJiakIiIiagAAAAA0NDQFKSYiTkl2g813pK/Rd4yK0a14VtLGlnfT2qF41OOrgdTkt4/U5MGb1ObU
+        tdPm17nT6Ni30unVstLqz6jR68mf0f/iudH/zZrR/8aT0f/Fk9H/v4zR/8CR0fzBmdH1rXvR6KJt0cuL
+        WNGydULRVkEwziYmJqsjIyNvAAAAADQ0NAU7Kx5eZmRX0W2LlNKImJXTnn1l1r+PcNnGmHfbzJ553dGn
+        gNzVq4Hb1ruW2tq8ltnevZLX48ig1OfQqtLq1rLR//DN0f/kvNH/1qjR/8uZ0f/AjNH/wZDR/cWd0fiy
+        gNHsqXXR0pBb0bRwM9FeRC7OJyYmrSMjI24AAAAAJiYmBTQiFmKBUirTY3R31oyQitqJe2vgnHRb55h3
+        X+2del/vp4hq7K6PbumwmXvotqGE5sOjfeDSsIba4ryR1enBktL/5LjR/92v0f/ZrNH/2rHR/9Ko0f/M
+        odH9yaHR+LN/0e2pdNHUlV/RtXU60WFFLs8oJiWqIyMjZwAAAAAmJiYGMCMYX45PHdZtYlPafoB64YWC
+        c+uAfE/4iHtK/IVyVfqNc1r3koFs9pSLefeZjHfzqZBw7MGlgeHcu5LY58OU0//it9H/2ajR/8qV0f/K
+        ltH/yZnR/82h0f7Ur9H9xZrR8LSF0dGSX9GzcjXRXkIpzSclJaAhISFZGRkZASUlJQs5KRxWgUsg1n1X
+        OuBtaFzqfopr+VW0Jv5bqQD/MlI3+ytGTvg0Zn/7OmyF/DJRX/KUgGb2rZNz6tOzjNzkwJHU/+O10f/e
+        rtH/0JnR/8uY0f/HktH/xJLR/c6j0fu8itHvtYnR0J1y0bZ5RtFWPSnLJCQkjR8fH0YZGRkGJSUlFDQo
+        HkljPyLTe1Aw6HJvVfZivXH3XMJX/2KxJP4/oXLzIL/g+B3S/v8lzvX/K8Dp8YiJePudiG3xyquG4OG6
+        jNX/3rDR/9ut0f/NldH/y5fR/8eU0f/Dk9H+z6bR+LiE0eWmcdHGhlDRt2ov0Uo2KcMjIyNxHR0dMBkZ
+        GQ0ZGRkkIyMjSkszH8t3VTfyT3dJ91y0Ov9gtzj/ipVS/1umtP8Tzfb/CND4/w7N9P8L1fX/Iml1+pSK
+        dfXCsZLj3smj1//pwNH/47XR/9Kd0f/LlNH/xY7R/8KO0f/NpNH3uIXR4KBr0cJ0PNG2YiHRNywjsSEh
+        IVE0NDQaGBgYGBkZGTkhISFpQTUqyYZpRftpnxj9S6QA/2mTAP+lbE7/dJTD/zO59/8sqPD/KJfr/xKs
+        7v8bdIL9jIVs+L2hfebcvJLY/+W50f/pvdH/4LHR/92x0f/Wp9H/y5vR/82j0e+rdtHWhlDRw28x0W9I
+        Kc0oJSKINDQ0MDQ0NBIYGBgmGRkZUjQwLJR8aFrq1rBw/3eaDf9QpAD/hXkS/6Nmaf9wmNT/Tqj4/0qQ
+        7f9Dcub/NGzm/xaIwv+Gf2r5uZp359qxhNn/2KfR/9ur0f/LktH/zZjR/9Ge0f3NoNH8xaPR66mC0cyF
+        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
+        6/7r4tn/38qx//Pv6v/u6OH/3b6S/+bYxf/p5uP+zczM+lVVVfkwMDC/VlZWa2FhYQg8Ozxls7Kz8+Hh
+        4f7x8fD/8vHv/+PTwv/j2c3/4NC8/+DEmv/u6ub/7ezr/9vb2/2rq6vxNjY201FRUYVjY2MLTU1Ni7a2
+        tvbd3N3/5+fn/+rp6P/k4Nz/1r6f/9i3hv/g1cb/6Ofl/+Xl5f/a2tr+srGy9T4+Pt5RUVGJZGRkC1FQ
+        UY+ysbL21tXW/9/f3//g4OD/3dnU/9S9m//Ut4X/3NjS/+Df3v/e3t7/1NTU/6+vr/VAQEDaVlZWeGJi
+        YgZCQkJpqKeo9NDQ0P7d3d3/3t3c/9TNxf/YtH3/0beW/9fSzv/e3t3/3d3d/8/Pz/6lpaXzOjo6xF1d
+        XVRhYWEBLi4uKoaGhuzJycn84ODg/9/c2P/YwaH/2MCb/9nOwv/VxbL/4d/c/+Dg4P/Hx8f8ZmZm+DAw
+        MINkZGQxAAAAACcnJw1NTU2Vtra29t/e3f3a0MT/3ryI/97Wzv/k4Nr/2MOo/9jPxP/d29r9srGx9kBA
+        QMMrKytCNDQ0GAAAAAAkJCQDIiIiHWppasPIxcL328q2/OLRuP7k1sf/6eLc/9zGq/7Yxa78wLiz9lhX
+        WNckJCRLJycnHTQ0NAkAAAAAAAAAABsbGwUkJCQgWFhXo6Wjo/LZ19T25uTj+ebk4fnY1dP2kY+N9U5N
+        TbMlJSVAHR0dGjQ0NAk0NDQDAAAAAAAAAAAAAAAAJiYmBCoqKg45OTk7V1dXhmxrbK5qaWqwVFRUjzc3
+        N00qKioiJiYmDjQ0NAY0NDQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwBHJycgp0dHQOc3JzEHBw
+        cA1ubm4INDQ0BDQ0NAIAAAAAAAAAAAAAAADAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAIAAAACAAAAAwAAAAOABAAD4BwAA
+</value>
+  </data>
 </root>
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\345\260\217\350\257\270\350\221\233\345\220\214\346\255\245/XZG_DataSynchronizationController.cs" "b/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\345\260\217\350\257\270\350\221\233\345\220\214\346\255\245/XZG_DataSynchronizationController.cs"
index 51c1829..5e4f9f1 100644
--- "a/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\345\260\217\350\257\270\350\221\233\345\220\214\346\255\245/XZG_DataSynchronizationController.cs"
+++ "b/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\345\260\217\350\257\270\350\221\233\345\220\214\346\255\245/XZG_DataSynchronizationController.cs"
@@ -28,6 +28,7 @@
 using System.Security.Cryptography;
 using System.Net.Http.Headers;
 using System.Web;
+using Kingdee.BOS.WebApi.Client;
 
 namespace WebAPI.Controllers
 {
@@ -427,6 +428,118 @@
 
     #endregion
     #endregion
+
+    #region 鐢熶骇姹囨姤
+    #region 宸插鏍哥殑鎶ュ伐璁板綍淇℃伅鍒楄〃
+    public class ICMOReportListResponse
+    {
+        public string code;
+        public string msg;
+        public List<ICMOReportListResponse_Data> data;
+    }
+    public class ICMOReportListResponse_Data
+    {
+        public List<ICMOReportListResponse_Data_Data> data;
+        public string pageIndex;                
+        public string pageCount;
+    }
+    public class ICMOReportListResponse_Data_Data
+    {
+        public string produceReportId;                  //鎶ュ伐璁板綍id
+        public string machineName;                      //璁惧鍚嶇О
+        public string macId;                            //璁惧id
+        public string productName;                      //浜у搧鍚嶇О
+        public string partId;                           //浜у搧id
+        public string workTime;                         //宸ヤ綔鏃堕棿
+        public string tour;                             //鐝
+        public string productNum;                       //鐢熶骇鏁版嵁
+        public string standardNum;                      //鎶ュ悎鏍兼暟閲�
+        public string defectiveNum;                     //娆″搧鏁伴噺
+        public string remark;                           //澶囨敞
+        public string materialId;                       //
+        public string materialName;                     //鏉愭枡鍚嶇О
+        public string materialNo;                       //鏉愭枡缂栧彿
+        public string producePerson;                    //鐢熶骇浜哄憳
+        public string producePersonId;                  //鐢熶骇浜哄憳id
+        public string producePersonCode;                //鐢熶骇浜哄憳code
+        public string planNo;                           //璁″垝鍗曞彿
+        public string taskNo;                           //浠诲姟鍗曞彿
+
+        public string partNum;                          //浜у搧缂栧彿
+        public string produceRecordId;                  //鐢熶骇璁板綍鐨刬d
+        public string moldNo;                           //妯″叿缂栧彿
+        public string reportDate;                       //鎶ュ伐鏃ユ湡
+        public string reportUser;                       //鎶ュ伐浜哄憳
+        public string reportUserCode;                   //鎶ュ伐浜哄憳缂栫爜
+        public string auditUser;                        //瀹℃牳浜�
+        public string auditUserCode;                    //瀹℃牳浜哄憳缂栧彿
+        public string auditDate;                        //瀹℃牳鏃ユ湡
+        public string moldName;                         //妯″叿鍚嶇О
+        public string defectiveReasonName;              //娆″搧鏄庣粏淇℃伅
+        public string boxCodes;                         //绠辩爜
+        public string tourGroupName;                    //鐝粍
+        
+    }
+    #endregion
+
+    #region 鐢熶骇姹囨姤璇︾粏淇℃伅
+    public class ICMOReportDetailResponse
+    {
+        public string code;
+        public string msg;
+        public List<ICMOReportDetailResponse_Data> data;
+    }
+    public class ICMOReportDetailResponse_Data
+    {
+        public string produceReportId;                  //鎶ュ伐璁板綍id
+        public string machineName;                      //璁惧鍚嶇О
+        public string macId;                            //璁惧id
+        public string productName;                      //浜у搧鍚嶇О
+        public string partId;                           //浜у搧id
+        public string workTime;                         //宸ヤ綔鏃堕棿
+        public string tour;                             //鐝
+        public string productNum;                       //鐢熶骇鏁版嵁
+        public string standardNum;                      //鎶ュ悎鏍兼暟閲�
+        public string defectiveNum;                     //娆″搧鏁伴噺
+        public string stockInputNum;            
+        public string remark;                           //澶囨敞
+/*        public string materialId;     */             //
+        public string materialName;                      //鏉愭枡鍚嶇О
+        public string materialNo;                       //鏉愭枡缂栧彿
+        public string producePerson;                    //鐢熶骇浜哄憳
+        public string producePersonId;                  //鐢熶骇浜哄憳id
+        public string producePersonCode;                //鐢熶骇浜哄憳code
+        public string planNo;                           //璁″垝鍗曞彿
+        public string taskNo;                           //浠诲姟鍗曞彿
+
+        public string partNum;                          //浜у搧缂栧彿
+        public string produceRecordId;                  //鐢熶骇璁板綍鐨刬d
+        public string moldNo;                           //妯″叿缂栧彿
+        public string reportDate;                       //鎶ュ伐鏃ユ湡
+        public string reportUser;                       //鎶ュ伐浜哄憳
+        public string reportUserCode;                   //鎶ュ伐浜哄憳缂栫爜
+        public string auditUser;                        //瀹℃牳浜�
+        public string auditUserCode;                    //瀹℃牳浜哄憳缂栧彿
+        public string auditDate;                        //瀹℃牳鏃ユ湡
+
+
+        public string piceWage;                         //鍗曚环
+        public string moldName;                         //妯″叿鍚嶇О
+
+        public List<string> defectiveReasonNameList;
+        public List<string> defectiveNumList;
+
+        public string tourGroupName;            //鐝粍
+        public List<ICMOReportDetailResponse_Data_Box> boxs;
+    }
+
+    public class ICMOReportDetailResponse_Data_Box
+    {
+        public string boxCode;                  //绠辩爜
+        public string boxActQty;                //鏁伴噺
+    }
+    #endregion
+    #endregion
     #endregion
 
     #region 灏忚钁涙暟鎹悓姝�
@@ -442,6 +555,10 @@
         #region 灏忚钁涙暟鎹悓姝ュ瘑閽�
         string APPID = "1f2e019a-ff51-f115-ce59-205606c72853";
         string APPPWD = "YYLM01A";
+        #endregion
+
+        #region erp鏁版嵁搴撳悕绉�
+        string erpDatabaseName = "AIS20210811135644..";
         #endregion
 
         #region 鑾峰彇鏈嶅姟鍦板潃
@@ -522,6 +639,37 @@
 
             return res;
         }
+        #endregion
+
+        #region 鏁版嵁鍚屾
+        #region 鏁版嵁鍚屾-姹囨�诲叏閮ㄥ悓姝�
+        public async Task<json> dataAnsy()
+        {
+            try
+            {
+                //浜у搧妗f鍚屾锛坋rp->灏忚钁涳級
+                await productInfoSyncFromERPToXZG();
+                //鐢熶骇璁㈠崟鍚屾锛坋rp->灏忚钁涳級
+                await icmoInfoSyncFromERPToXZG();
+                //鐢熶骇姹囨姤鍗曞悓姝�(灏忚钁�->erp)
+                await icmoReportInfoSyncFromXZGToERP();
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍚屾鎴愬姛!";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch(Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍚屾澶辫触!" + e.Message;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
         #endregion
 
         #region 浜у搧妗f
@@ -832,29 +980,22 @@
         #region 鑾峰彇鐢熶骇璁㈠崟璇︾粏淇℃伅
         public async Task<ICMODetailResponse> getICMODetailAsync(string url, string key, string planNum)
         {
-            try
-            {
-                //璇锋眰鍦板潃
-                url = url + "/v2/GET/getPlanOrderDetail";
-                //璇锋眰鍙傛暟
-                Dictionary<string, string> queryParams = new Dictionary<string, string>
+            //璇锋眰鍦板潃
+            url = url + "/v2/GET/getPlanOrderDetail";
+            //璇锋眰鍙傛暟
+            Dictionary<string, string> queryParams = new Dictionary<string, string>
             {
                 {"key", key},
                 {"planNum",planNum }
             };
 
-                //杩斿洖缁撴灉
-                string responseBody = await DefinedRequestSendMethod.GetDataAsyncByGetRequest(url, queryParams);
+            //杩斿洖缁撴灉
+            string responseBody = await DefinedRequestSendMethod.GetDataAsyncByGetRequest(url, queryParams);
 
-                //灏嗗瓧绗︿覆杞崲涓哄璞�
-                ICMODetailResponse icmoDetailResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ICMODetailResponse>(responseBody);
+            //灏嗗瓧绗︿覆杞崲涓哄璞�
+            ICMODetailResponse icmoDetailResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ICMODetailResponse>(responseBody);
 
-                return icmoDetailResponse;
-            }catch(Exception e)
-            {
-                return new ICMODetailResponse();
-            }
-            
+            return icmoDetailResponse;
         }
         #endregion
 
@@ -955,7 +1096,7 @@
                 //鑾峰彇閲戣澏浜戠敓浜ц鍗曟暟鎹�
                 List<ICMO> icmos = new List<ICMO>();
                 string sql = @"select 
-	                            cast(a.FBILLNO as varchar(100)) + '_' + cast(b.FSEQ as varchar(10)) 璁″垝鍗曞彿
+	                            cast(a.FBILLNO as varchar(100)) + '_' + cast(b.FSEQ as varchar(10)) + '_' +  cast(b.FENTRYID as varchar(10)) 璁″垝鍗曞彿
 	                            ,cast(b.FQTY as int) 璁″垝鏁伴噺
 	                            ,m.FNUMBER 浜у搧缂栧彿
 	                            ,convert(varchar(100),b.FPLANSTARTDATE,20) 璁″垝寮�宸ユ棩鏈�
@@ -985,7 +1126,7 @@
 	                            or
 	                            convert(varchar(100),c.fstartdate ,23) >= convert(varchar(100),dateadd(day,-7,getdate()),23)
 	                            )
-                            and cast(a.FBILLNO as varchar(100)) + '_' + cast(b.FSEQ as varchar(10)) = 'MO000269_1'";
+                            --and cast(a.FBILLNO as varchar(100)) + '_' + cast(b.FSEQ as varchar(10)) = 'MO000269_1'";
                 DataSet ds = oCN.RunProcReturn(sql, "AIS20210811135644..T_PRD_MO");
                 if (ds != null && ds.Tables.Count > 0)
                 {
@@ -1090,6 +1231,768 @@
         }
         #endregion
         #endregion
+
+        #region 鐢熶骇姹囨姤
+        #region 鑾峰彇宸插鏍哥殑鎶ュ伐璁板綍淇℃伅鍒楄〃淇℃伅
+        public async Task<ICMOReportListResponse> getICMOReportListAsync()
+        {
+            //璇锋眰鍦板潃
+            string url = await getServerAddressAsync() + "/v2/GET/getAuditedProduceReportList";
+            string token = await getTokenAsync();
+            //璇锋眰鍙傛暟
+            Dictionary<string, string> queryParams = new Dictionary<string, string>
+            {
+                {"key", token},
+                {"indexPage", "1"},
+                //{"startDate", DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd")},
+                //{"endDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
+                {"sidx", "reportDate"},
+                {"sord", "desc"},
+                //{"tour", "鐧界彮"},
+                {"type", "1"},
+                {"reportStartDate", DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd HH:mm:ss")},
+                {"reportEndDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}
+            };
+
+            //杩斿洖缁撴灉
+            string responseBody = await DefinedRequestSendMethod.GetDataAsyncByGetRequest(url, queryParams);
+
+            //灏嗗瓧绗︿覆杞崲涓哄璞�
+            ICMOReportListResponse icmoReportListResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ICMOReportListResponse>(responseBody);
+
+            return icmoReportListResponse;
+        }
+        #endregion
+
+        #region 鑾峰彇鐢熶骇姹囨姤璇︾粏淇℃伅
+        public async Task<ICMOReportDetailResponse> getICMOReportDetailAsync(string url, string key, string reportId)
+        {
+            //璇锋眰鍦板潃
+            url = url + "/v2/GET/getProduceRecordReport";
+            //璇锋眰鍙傛暟
+            Dictionary<string, string> queryParams = new Dictionary<string, string>
+            {
+                {"key", key},
+                {"reportId",reportId }
+            };
+
+            //杩斿洖缁撴灉
+            string responseBody = await DefinedRequestSendMethod.GetDataAsyncByGetRequest(url, queryParams);
+
+            //灏嗗瓧绗︿覆杞崲涓哄璞�
+            ICMOReportDetailResponse icmoReportDetailResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ICMOReportDetailResponse>(responseBody);
+
+            return icmoReportDetailResponse;
+        }
+        #endregion
+
+        #region 鐢熶骇姹囨姤瀹氭椂鍚屾_浠庡皬璇歌憶鍒癊RP
+        public async Task<json> icmoReportInfoSyncFromXZGToERP()
+        {
+            string sErrMsg = "";
+            try
+            {
+                //璇锋眰鍦板潃
+                string url = await getServerAddressAsync();
+                string token = await getTokenAsync();
+
+                ICMOReportListResponse iCMOReportListResponse = await getICMOReportListAsync();
+                List<ICMOReportListResponse_Data_Data> iCMOReportList = new List<ICMOReportListResponse_Data_Data>();
+                for(int i = 0; i < iCMOReportListResponse.data.Count; i++)
+                {
+                    for(int j=0;j< iCMOReportListResponse.data[i].data.Count; j++)
+                    {
+                        string sql = "select * from AIS20210811135644..T_PRD_MORPT where FBillNo = '" + iCMOReportListResponse.data[i].data[j].produceReportId + "'";
+                        DataSet ds_erp = oCN.RunProcReturn(sql, "AIS20210811135644..T_PRD_MORPT");
+                        if(ds_erp!=null&ds_erp.Tables[0].Rows.Count == 0)
+                        {
+                            iCMOReportList.Add(iCMOReportListResponse.data[i].data[j]);
+                        }
+                    }
+                }
+
+                ////閲戣澏浜戠敓浜ф眹鎶ュ崟锛氭壒閲忓悓姝�
+                //ICMOReportListResponse_Data_Data data = new ICMOReportListResponse_Data_Data();
+                //data.planNo = "MO000269_1_100483";
+                //data.reportDate = "2025-04-27 00:00:00";
+                //data.standardNum = "1";
+                //data.produceReportId = "1234321";
+                //iCMOReportList.Add(data);
+
+                objJsonResult = set_SaveICMOReportBillList(iCMOReportList);
+
+                //objJsonResult.code = "1";
+                //objJsonResult.count = 1;
+                //objJsonResult.Message = "鍚屾鎴愬姛!";
+                //objJsonResult.data = null;
+
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍚屾澶辫触!" + e.Message;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇姹囨姤 鎵归噺鏂板
+        public json set_SaveICMOReportBillList(List<ICMOReportListResponse_Data_Data> iCMOReportList)
+        {
+            string sErrMsg = "";
+            string sRemark = "";
+            string sRemark_errAudit = "";
+
+            try
+            {
+                for (int i = 0; i < iCMOReportList.Count; i++)
+                {
+                    objJsonResult = set_SaveICMOReportBill(iCMOReportList[i]);
+                    if (objJsonResult.code == "1" && objJsonResult.count == 1)
+                    {
+                        sRemark += objJsonResult.Message;
+                    }else if(objJsonResult.code == "1" && objJsonResult.count == 0)
+                    {
+                        sRemark_errAudit += objJsonResult.Message;
+                    }
+                    else
+                    {
+                        sErrMsg += objJsonResult.Message;
+                    }
+                }
+
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "銆愬悓姝ュ苟瀹℃牳鎴愬姛淇℃伅銆戯細" + sRemark + "锛涖�愬悓姝ユ垚鍔熶絾瀹℃牳澶辫触淇℃伅銆戯細" + sRemark_errAudit + "锛涖�愬悓姝ュけ璐ヤ俊鎭細銆戯細" + sErrMsg  ;  //鎴愬姛锛�
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鐢熶骇姹囨姤鍗曚笂浼犲け璐ワ紒" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇姹囨姤 鏂板
+        public json set_SaveICMOReportBill(ICMOReportListResponse_Data_Data data)
+        {
+            string sErrMsg = "";
+
+            //鐢ㄤ簬璁板綍杩囩▼鏁版嵁锛屼綔涓烘棩璁版暟鎹�
+            string sRemark = "";
+            try
+            {
+                try
+                {
+                    #region 浠庨厤缃枃浠惰幏鍙� CLOUD缃戝潃銆佽处濂椾俊鎭�佺櫥褰曠敤鎴枫�佺櫥褰曞瘑鐮�
+                    //鐧诲綍
+                    string HReturn;
+                    bool bLogin = false;
+                    var loginRet = InvokeHelper.LoginUser(data.reportUser);
+                    string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117
+                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
+                    if (isSuccess <= 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = loginRet;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        bLogin = true;
+                        sRemark = sRemark + " 锛涜幏鍙栭獙璇丆LOUD璐﹀彿瀵嗙爜" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+                    }
+                    #endregion
+
+                    #region 鍒ゆ柇鐢熶骇璁㈠崟鐘舵�� 鏄惁涓� 瀹屽伐 鎴栫粨妗�
+                    string[] planNoSplit = data.planNo.Split('_');
+                    string HICMOBillNo = planNoSplit[0];
+                    string HICMOSEQ = planNoSplit[1];
+                    string HICMOEntryID = planNoSplit[2];
+
+                    string sql_judgeICMOStatus = @"select distinct 
+	                                                mo.FBILLNO 
+                                                from AIS20210811135644..T_PRD_MO mo
+                                                inner join AIS20210811135644..T_PRD_MOENTRY_A a on mo.FID=a.FID 
+                                                where a.FSTATUS in (5,6)
+                                                and mo.FBILLNO = '" + HICMOBillNo + "' " +
+                                                "and a.FENTRYID = " + HICMOEntryID;
+                    DataSet Ds2;
+                    Ds2 = oCN.RunProcReturn(sql_judgeICMOStatus, "AIS20210811135644..T_PRD_MO");
+                    if (Ds2 != null && Ds2.Tables[0].Rows.Count > 0)
+                    {
+                        sErrMsg = "鐢熶骇璁㈠崟銆� " + HICMOBillNo + "銆戜笟鍔$姸鎬佸凡瀹屽伐涓嶅厑璁告眹鎶ワ紒";
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = sErrMsg;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    #endregion
+
+                    #region 鑾峰彇閲戣澏浜戠敓鎴愬崟鎹甹son
+                    string json = getErpJSON(data);
+                    sRemark = sRemark + " 锛涜幏鍙朇LOUD鍗曟嵁API閫掑叆鍊�" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+                    #endregion
+
+                    #region 鐢熸垚閲戣澏浜戝崟鎹�
+                    if (bLogin)
+                    {
+                        var result = InvokeHelper.Save("PRD_MORPT", json);
+                        sRemark = sRemark + " 锛涚敓鎴怌LOUD鍗曟嵁" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                        //鑾峰彇閲戣澏浜戝崟鎹敓鎴愯繑鍥炰俊鎭�
+                        HReturn = result.ToString();
+                        if (HReturn.Contains("\"IsSuccess\":false") == true)
+                        {
+                            sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曞け璐ワ紒" + HReturn;
+                            LogService.Write("鐢熸垚鐢熶骇姹囨姤鍗曪紙婧愬崟锛氱敓浜ц鍗曪級澶辫触锛�" + HReturn + json);   //鍐欏叆txt鏂囨湰
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = sErrMsg;  //鎴愬姛锛�
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        else
+                        {
+                            sRemark = sRemark + json;
+                        }
+                    }
+                    else
+                    {
+                        sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曞け璐ワ紒閲戣澏浜戠櫥褰曞け璐ワ紒";
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = sErrMsg;  //鎴愬姛锛�
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    #endregion
+
+                }
+                catch (Exception e)
+                {
+                    sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曞け璐ワ紒" + e.Message;
+
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = sErrMsg;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                #region 瀹℃牳鍗曟嵁
+                try
+                {
+                    //鎻愪氦銆佸鏍搁噾铦朵簯鍗曟嵁
+                    #region 浠庨厤缃枃浠惰幏鍙� CLOUD缃戝潃銆佽处濂椾俊鎭�佺櫥褰曠敤鎴枫�佺櫥褰曞瘑鐮�
+                    //鐧诲綍
+                    string HReturn = "";
+                    bool bLogin = false;
+                    var loginRet = InvokeHelper.LoginUser(data.auditUser);
+                    string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117
+                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
+                    if (isSuccess <= 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = loginRet;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        bLogin = true;
+                        sRemark = sRemark + " 锛涜幏鍙栭獙璇丆LOUD璐﹀彿瀵嗙爜" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+                    }
+                    #endregion
+
+                    if (bLogin)
+                    {
+                        ////鎻愪氦鍗曟嵁
+                        string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + data.produceReportId + "\"]}";
+                        var result2 = InvokeHelper.Submit("PRD_MORPT", sJson2);
+
+                        //瀹℃牳鍗曟嵁
+                        string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + data.produceReportId + "\"]}";
+                        var result3 = InvokeHelper.Audit("PRD_MORPT", sJson3);
+
+                        HReturn = result2.ToString() + "," + result3.ToString();
+
+                        if (HReturn.Contains("\"IsSuccess\":false") == true)
+                        {
+                            LogService.Write("瀹℃牳鍗曟嵁澶辫触" + sRemark);
+                            sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曟垚鍔燂紝瀹℃牳鍗曟嵁澶辫触锛�" + HReturn;
+
+                            objJsonResult.code = "1";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = sErrMsg;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        else
+                        {
+                            LogService.Write("鐢熸垚骞跺鏍哥敓浜ф眹鎶ュ崟锛堟簮鍗曪細鐢熶骇璁㈠崟锛夋垚鍔燂紒" + sRemark);
+                            sErrMsg = "鐢熸垚骞跺鏍哥敓浜ф眹鎶ュ崟鎴愬姛锛佸崟鎹彿涓猴細" + data.produceReportId;
+
+                            objJsonResult.code = "1";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = sErrMsg;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    else
+                    {
+                        sErrMsg = "瀹℃牳鐢熶骇姹囨姤鍗曞け璐ワ紒閲戣澏浜戠櫥褰曞け璐ワ紒";
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = sErrMsg;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                catch (Exception e)
+                {
+                    sErrMsg = "瀹℃牳鐢熶骇姹囨姤鍗曞け璐ワ紒" + e.Message;
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = sErrMsg;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                #endregion
+            }catch(Exception e0)
+            {
+                sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曞け璐ワ紒" + e0.Message;
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = sErrMsg;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+        #region 鏍规嵁鑾峰彇鐨勬姤宸ヤ俊鎭紝鎷兼帴json璇彞
+        public string getErpJSON(ICMOReportListResponse_Data_Data data)
+        {
+            //try
+            //{
+                //data.planNo = "MO000269_1_100483";
+                //data.reportDate = "2025-04-27 00:00:00";
+                //data.standardNum = "1";
+                //data.produceReportId = "1234321";
+
+                // 鑾峰彇鐢熶骇姹囨姤鐨勬簮鍗曚俊鎭�
+                string[] planNoSplit = data.planNo.Split('_');
+                string HICMOBillNo = planNoSplit[0];
+                string HICMOSEQ = planNoSplit[1];
+                string HICMOEntryID = planNoSplit[2];
+
+                //鏍规嵁鎶ュ伐淇℃伅锛岃幏鍙栫浉鍏充俊鎭�
+                string sql1 = @"select 
+	                            isnull(org1.hnumber,'') FPRDORGIDNumber
+	                            ,ISNULL(org1.HItemID,0) FPRDORGID
+	                            ,isnull(moSub.FPRODUCTTYPE,'1') FPRODUCTTYPE
+	                            ,ISNULL(pr.HNumber,'') FAUXPROPNumber
+	                            ,ISNULL(unit.HNumber,'') FUNITNumber
+	                            ,ISNULL(dept.HNumber,'') FWORKSHOPNumber
+	                            ,isnull(moSub.FMTONO,'') FMTONO
+	                            ,isnull(moSubA.FCHECKPRODUCT,'false') FCHECKPRODUCT
+	                            ,isnull(mo.FISENTRUST,'false') FISENTRUST
+	                            ,isnull(moSub.FPROJECTNO,'') FPROJECTNO
+	                            ,isnull(mp.FPERUNITSTANDHOUR,0) FSTDMANHOUR
+	                            ,isnull(mp.FSTDLABORPREPARETIME,0) FHRPREPARETIME
+	                            ,isnull(mp.FSTDMACHINEPREPARETIME,0) FMACPREPARETIME
+	                            ,isnull(mo.FID,0) FSRCINTERID
+	                            ,isnull(moSub.FSEQ,0) FSRCENTRYSEQ
+	                            ,isnull(mo.FID,0) FMOID
+	                            ,isnull(moSub.FENTRYID,0) FMOENTRYID
+	                            ,isnull(unit1.HNumber,'') FBASEUNITID
+	                            ,isnull(org1.HNumber,'') FSTOCKINORGID
+	                            ,isnull(moSubA.FINSTOCKOWNERTYPEID,'') FOWNERTYPEID
+	                            ,isnull(org2.HNumber,'') FOWNERID
+	                            ,isnull(moSub.FCOSTRATE,0) FCOSTRATE
+	                            ,isnull('','') FSTOCKID
+	                            ,isnull(moSubA.FISBACKFLUSH,'false') FISBACKFLUSH
+	                            ,isnull(moSub.FENTRYID,0) FMOMAINENTRYID
+	                            ,isnull(moSubA.FQAIP,'') FQAIP
+
+	                            ,isnull(moSubA.FREQSRC,'') FREQSRC
+	                            ,isnull(moSub.FSALEORDERNO,'') FREQBILLNO
+	                            ,isnull(moSub.FSALEORDERID,0) FREQBILLID
+	                            ,isnull(moSub.FSALEORDERENTRYSEQ,0) FREQENTRYSEQ
+	                            ,isnull(moSub.FSALEORDERENTRYID,0) FREQENTRYID
+	                            ,isnull(moSubA.FINSTOCKTYPE,'1') FINSTOCKTYPE
+                            from AIS20210811135644..T_PRD_MO mo with(nolock)
+                            left join AIS20210811135644..T_PRD_MOENTRY moSub with(nolock) on mo.FID=moSub.FID
+                            left join AIS20210811135644..T_PRD_MOENTRY_A moSubA with(nolock) on moSubA.FID=moSub.FID and moSubA.FENTRYID=moSub.FENTRYID
+                            left join Xt_ORGANIZATIONS org1 with(nolock) on mo.FPRDORGID=org1.HItemID			--鐢熶骇缁勭粐
+                            left join xt_ORGANIZATIONS org2 with(nolock) on moSubA.FINSTOCKOWNERID=org2.HItemID		--鍏ュ簱璐т富
+                            left join AIS20210811135644..t_BD_MaterialProduce mp with(nolock) on moSub.FMATERIALID=mp.FMATERIALID	--鐗╂枡鐢熶骇淇℃伅
+                            left join Gy_Unit as unit with(nolock) on moSub.FUNITID = unit.HItemID
+                            left join Gy_Unit as unit1 with(nolock) on moSub.FBASEUNITID = unit1.HItemID
+                            left join Gy_Property pr on moSub.FAUXPROPID = pr.HItemID
+                            left join Gy_Department dept on moSub.FWORKSHOPID = dept.HItemID 
+                            where 
+                            mo.FBillNo = '" + HICMOBillNo + "' " +
+                                " and moSub.FENTRYID = " + HICMOEntryID;
+                DataSet jsonData = oCN.RunProcReturn(sql1, "AIS20210811135644..T_PRD_MO");
+                if (jsonData == null || jsonData.Tables[0].Rows.Count == 0)
+                {
+                    return "";
+                }
+
+                string FBillType = "SCHBD01_SYS";                                                                               //鍗曟嵁绫诲瀷
+                string FPRDORGIDNumber = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FPRDORGIDNumber"]);             //鐢熶骇缁勭粐缂栫爜
+                string FPRDORGID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FPRDORGID"]);                         //鐢熶骇缁勭粐缂栫爜
+                string FAUXPROPNumber = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FAUXPROPNumber"]);               //杈呭姪灞炴��
+                string FIsNew = "false";                                                                                        //鏄惁鏂板琛�
+                string FPRODUCTTYPE = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FPRODUCTTYPE"]);                   //浜у搧绫诲瀷
+                string FREPORTTYPE = "";                                                                                        //鐢熶骇姹囨姤绫诲瀷
+                string FUNITNumber = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FUNITNumber"]);                     //鍗曚綅缂栫爜
+                string FWORKSHOPNumber = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FWORKSHOPNumber"]);             //閮ㄩ棬
+                string FMTONO = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMTONO"]);                               //璁″垝璺熻釜鍙�
+                string FCHECKPRODUCT = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FCHECKPRODUCT"]);                 //浜у搧妫�楠�
+                string FISENTRUST = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FISENTRUST"]);                       //缁勭粐濮旀墭鍔犲伐
+                string FSRCBILLTYPE = "PRD_MO";                                                                                 //婧愬崟绫诲瀷
+                string FPROJECTNO = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FPROJECTNO"]);                       //椤圭洰缂栧彿
+                string FSTDMANHOUR = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSTDMANHOUR"]);                     //鍗曚綅鏍囧噯宸ユ椂
+                string FHRPREPARETIME = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FHRPREPARETIME"]);               //浜哄憳鍑嗗宸ユ椂
+                string FMACPREPARETIME = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMACPREPARETIME"]);             //鏈哄櫒鍑嗗宸ユ椂
+                string FSRCINTERID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSRCINTERID"]);                     //婧愬崟鍐呯爜
+                string FSRCENTRYSEQ = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSRCENTRYSEQ"]);                   //婧愬崟琛屽彿
+                string FMOID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMOID"]);                                 //鐢熶骇璁㈠崟鍐呯爜
+                string FMOENTRYID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMOENTRYID"]);                       //鐢熶骇璁㈠崟鍒嗗綍鍙�
+                string FBASEUNITID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FBASEUNITID"]);                     //鍩烘湰鍗曚綅
+                string FSTOCKINORGID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSTOCKINORGID"]);                 //鍏ュ簱缁勭粐
+                string FBOMID = "";                               //BOM鐗堟湰
+                string FOWNERTYPEID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FOWNERTYPEID"]);                   //璐т富绫诲瀷
+                string FOWNERID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FOWNERID"]);                           //璐т富
+                string FSTOCKID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSTOCKID"]);                           //浠撳簱
+                string FCOSTRATE = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FCOSTRATE"]);                         //鎴愭湰鏉冮噸
+                string FSNUNITID = "";                         //搴忓垪鍙峰崟浣�
+                string FISBACKFLUSH = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FISBACKFLUSH"]);                   //鍊掑啿棰嗘枡
+                string FMOMAINENTRYID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMOMAINENTRYID"]);               //鐢熶骇璁㈠崟涓讳骇鍝佸垎褰�
+                string FQAIP = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FQAIP"]);                                 //绱ф�ユ斁琛�
+                string FREQSRC = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQSRC"]);                             //闇�姹傛潵婧�
+                string FREQBILLNO = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQBILLNO"]);                       //闇�姹傚崟鎹�
+                string FREQBILLID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQBILLID"]);                       //闇�姹傚崟鎹唴鐮�
+                string FREQENTRYSEQ = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQENTRYSEQ"]);                   //闇�姹傚崟鎹鍙�
+                string FREQENTRYID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQENTRYID"]);                     //闇�姹傚崟鎹垎褰曞唴鐮�
+                string FINSTOCKTYPE = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FINSTOCKTYPE"]);                   //渚涗笅鎺ㄥ叆搴撳崟浣跨敤-鍏ュ簱绫诲瀷
+                string FEntity_Link_FFlowId = "f6e6eec3-5267-4f02-8593-b633da508a72";   //涓氬姟娴佺▼鍥�
+                string FEntity_Link_FFlowLineId = "3";                                  //鎺ㄨ繘璺嚎
+                string FEntity_Link_FRuleId = "PRD_MO2MORPT";                           //杞崲瑙勫垯 
+                string FEntity_Link_FSTableName = "T_PRD_MOENTRY";                      //婧愬崟琛� 
+                string FBFLOWID = "f6e6eec3-5267-4f02-8593-b633da508a72";             //涓氬姟娴佺▼
+
+                //鑾峰彇鐢熶骇姹囨姤绫诲瀷
+                string sql2 = @"select top(1) 
+	                            FNUMBER FREPORTTYPE 
+                            from AIS20210811135644..T_PRD_REPORTTYPE with(nolock) 
+                            Where FUSEORGID = " + FPRDORGID +
+                                " and FISDEFREPTYPE=1";
+                DataSet jsonData2 = oCN.RunProcReturn(sql2, "T_PRD_REPORTTYPE");
+                if (jsonData2 != null && jsonData2.Tables[0].Rows.Count > 0)
+                {
+                    FREPORTTYPE = Pub_Class.ClsPub.isStrNull(jsonData2.Tables[0].Rows[0]["FREPORTTYPE"]);
+                }
+
+
+
+
+                //鏈�缁堣鍙�
+                string json = "";
+
+                string sJson_ZYMESFLAG = "";    //鐢熶骇姹囨姤鍗曞悓姝ES鏍囪
+                string sJson_MainCustom = "";   //涓昏〃鑷畾涔夊瓧娈�
+                string sJson_Date = "";         //鍗曟嵁鏃ユ湡
+
+                //sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]);
+                //鍗曟嵁鏃ユ湡
+                sJson_Date = ",\"FDATE\":\"" + data.reportDate + "\"";
+                sJson_ZYMESFLAG = "";
+
+
+                string sJson_Main =
+                    "{" +
+                        "\"Creator\":\"\"" +
+                        ",\"NeedUpDateFields\":[]" +
+                        ",\"NeedReturnFields\":[]" +
+                        ",\"IsDeleteEntry\":\"True\"" +
+                        ",\"SubSystemId\":\"\"" +
+                        ",\"IsVerifyBaseDataField\":\"false\"" +
+                        ",\"IsEntryBatchFill\":\"false\"" +
+                        ",\"ValidateFlag\":\"True\"" +
+                        ",\"NumberSearch\":\"True\"" +
+                        ",\"InterationFlags\":\"\"" +
+                        ",\"Model\": " +
+                            "{ " +
+                                "\"FBILLNO\":\"" + data.produceReportId + "\"" +
+                                //",\"FID\":\"" + oMain.HInterID.ToString() + "\"" +
+                                ",\"FBillType\":" +
+                                    "{" +
+                                        "\"FNumber\":\"" + FBillType + "\"" +
+                                    "}" +
+                                ",\"FDocumentStatus\":\"\"" +
+                                sJson_Date +
+                                ",\"FPRDORGID\":" +
+                                    "{" +
+                                        "\"FNumber\":\"" + FPRDORGIDNumber + "\"" +
+                                    "}" +
+                                //",\"FWorkshipIdH\":" +
+                                //    "{" +
+                                //        "\"FNumber\":\"\"" +
+                                //    "}" +
+                                //",\"FDescription\":\"\"" +
+                                sJson_ZYMESFLAG +
+                                sJson_MainCustom +
+                                ",\"FEntity\": [   ";
+
+                string sJson_Entry = "";
+
+                string sJson_BatchNo = "";
+                string sJson_StockPlace = "";
+                string sJson_FProduceDate = "";     //鐢熶骇鏃ユ湡
+                string sJson_FExpiryDate = "";      //鏈夋晥鏈熻嚦
+                string sJson_EntryCustom = "";
+                string sJson_FAUXPROPID = "";
+                string sJson_SubCustom = "";    //瀛愯〃鑷畾涔夊瓧娈�
+
+                //瀛愯〃鑷畾涔夊瓧娈�
+                //sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]);
+
+                ////鏄惁鍚敤鎵规绠$悊
+                //if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HISBATCHMANAGE"]) == "1")
+                //{
+                //    sJson_BatchNo = "  \"FLOT\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"},    \"FLOT_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"  , ";
+                //}
+                //else
+                //{
+                //    sJson_BatchNo = "";
+                //}
+
+                ////鏄惁鍚敤淇濊川鏈熸帶鍒�
+                //if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1")
+                //{
+                //    sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\",";
+                //    sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\",";
+                //}
+                //else
+                //{
+                //    sJson_FProduceDate = "";
+                //    sJson_FExpiryDate = "";
+                //}
+
+                //杈呭姪灞炴��
+                sJson_FAUXPROPID = ", \"FAUXPROPID\":" +
+                                        "{" +
+                                            "\"FAUXPROPID__FF100002\":" +
+                                                "{" +
+                                                    "\"FNumber\":\"" + FAUXPROPNumber + "\"" +
+                                                "}" +
+                                        "}";
+
+
+                ////浠撲綅
+                //if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKLOCID"]) == "")
+                //{
+                //    sJson_StockPlace = "";
+                //}
+                //else
+                //{
+                //    sJson_StockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKLOCID"]) + "\"}},";
+                //}
+
+                //鑷畾涔夊瓧娈靛鐞�
+                sJson_EntryCustom = "";
+
+                sJson_Entry = sJson_Entry +
+                    " {" +
+                        //"\"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HEntryID"]) + "," +
+                        " \"FSRCENTRYID\":" + HICMOEntryID + "" +
+                        ", \"FIsNew\":" + FIsNew + "" +
+                        ", \"FMATERIALID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + data.partNum + "\"" +
+                            "}" +
+                        ", \"FPRODUCTTYPE\":\"" + FPRODUCTTYPE + "\"" +
+                        ", \"FREPORTTYPE\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FREPORTTYPE + "\"" +
+                            "}" +
+                        ", \"FUNITID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FUNITNumber + "\"" +
+                            "}" +
+                        ", \"FWORKSHIPID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FWORKSHOPNumber + "\"" +
+                            "}" +
+                        //", \"FShiftGroupId\":{\"FNumber\":\"\"}" +
+                        sJson_BatchNo +
+                        //\"FDeptId\":{\"FNumber\":\"\"},
+                        //sJson_StockPlace +          //浠撲綅绉诲埌涓嬫柟
+                        ",  \"FMTONO\":\"" + FMTONO + "\"" +
+                        ", \"FCHECKPRODUCT\":" + FCHECKPRODUCT + "" +
+                        ", \"FISENTRUST\":" + FISENTRUST + "" +
+                        ", \"FSRCBILLTYPE\":\"" + FSRCBILLTYPE + "\"" +
+                        ", \"FMOBILLNO\":\"" + HICMOBillNo + "\"" +
+                        //", \"FAUXPROPID\":" +
+                        //    "{" +
+                        //        "\"FAUXPROPID__FF100002\":" +
+                        //            "{" +
+                        //                "\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"" +
+                        //            "}" +
+                        //    "}" +
+                        sJson_FAUXPROPID +
+                        //", \"FHumanQty\":\"0\"" +
+                        ", \"FSRCBILLNO\":\"" + HICMOBillNo + "\"" +
+                        //", \"FMachineQty\":\"0\"" +
+                        //", \"FMaterialUnitID\":" +
+                        //    "{" +
+                        //        "\"FNumber\":\"\"" +
+                        //    "}" +
+                        //", \"FStartTime\":\"1900-01-01\"" +
+                        //", \"FEndTime\":\"1900-01-01\"" +
+                        //", \"FTimeUnitId\":\"\"" +
+                        ", \"FMOENTRYSEQ\":" + HICMOSEQ + "" +
+                        //", \"FSTANDHOURUNITID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTANDHOURUNITID"]) + "\"" +
+                        ", \"FPROJECTNO\":\"" + FPROJECTNO + "\"" +
+                        ", \"FSTDMANHOUR\":" + FSTDMANHOUR + "" +
+                        ", \"FHRPREPARETIME\":" + FHRPREPARETIME + "" +
+                        //", \"FHrWorkTime\":\"0\"" +
+                        ", \"FMACPREPARETIME\":" + FMACPREPARETIME + "" +
+                        //",\"FMacWorkTime\":\"0\"" +
+                        //",\"FDescriptionE\":\"\"" +
+                        ", \"FSRCINTERID\":" + FSRCINTERID + "" +
+                        ", \"FSRCENTRYSEQ\":" + FSRCENTRYSEQ + "" +
+                        ", \"FMOID\":" + FMOID + "" +
+                        ", \"FMOENTRYID\":" + FMOENTRYID + "" +
+                        ", \"FBASEUNITID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FBASEUNITID + "\"" +
+                            "}" +
+                        ", \"FSTOCKINORGID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FSTOCKINORGID + "\"" +
+                            "}" +
+                        ", \"FBOMID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FBOMID + "\"" +
+                            "}" +
+                        ", \"FOWNERTYPEID\":\"" + FOWNERTYPEID + "\"" +
+                        ", \"FOWNERID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FOWNERID + "\"" +
+                            "}" +
+                        ", \"FSTOCKID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FSTOCKID + "\"" +
+                            "}" +
+                        ", \"FCOSTRATE\":" + FCOSTRATE + "" +
+                        ", \"FSNUNITID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FSNUNITID + "\"" +
+                            "}" +
+                        //", \"FSNQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNQty"]) + "" +
+                        sJson_FProduceDate +
+                        sJson_FExpiryDate +
+                        ", \"FISBACKFLUSH\":" + FISBACKFLUSH + "" +
+                        ", \"FMOMAINENTRYID\":" + FMOMAINENTRYID + "" +
+                        ", \"FQAIP\":\"" + FQAIP + "\"" +
+                        ", \"FREQSRC\":\"" + FREQSRC + "\"" +
+                        ", \"FREQBILLNO\":\"" + FREQBILLNO + "\"" +
+                        ", \"FREQBILLID\":" + FREQBILLID + "" +
+                        ", \"FREQENTRYSEQ\":" + FREQENTRYSEQ + "" +
+                        ", \"FREQENTRYID\":" + FREQENTRYID + "" +
+                        ", \"FBASEQUAQTY\":" + data.standardNum + "" +
+                        ", \"FQUAQTY\":" + data.standardNum + "" +
+                        ", \"FBASEFINISHQTY\":" + data.standardNum + "" +
+                        ", \"FFINISHQTY\":" + data.standardNum + "" +
+                        ", \"FInStockType\":\"" + FINSTOCKTYPE + "\"" +
+                        sJson_StockPlace +
+                        sJson_EntryCustom +
+                        sJson_SubCustom +
+
+                        //",\"FSerialSubEntity\":" +
+                        //    "[" +
+                        //        "{" +
+                        //            "\"FDetailID\":\"0\"" +
+                        //            ",\"FQCMaterialId\":" +
+                        //                "{" +
+                        //                    "\"FNUMBER\":\"\"" +
+                        //                "}" +
+                        //            ",\"FInspectResult\":\"\"" +
+                        //            ",\"FQcAuxPropId\":" +
+                        //                "{" +
+                        //                    "\"FQCAUXPROPID__FF100002\":" +
+                        //                        "{" +
+                        //                            "\"FNumber\":\"\"" +
+                        //                        "}" +
+                        //                "}" +
+                        //            ",\"FQCQty\":\"0\"" +
+                        //            ",\"FSerialNo\":\"\"" +
+                        //            ",\"FSerialId\":" +
+                        //                "{" +
+                        //                    "\"FNUMBER\":\"\"" +
+                        //                "}" +
+                        //            ",\"FQCStockInSelQty\":\"0\"" +
+                        //            ",\"FSerialNote\":\"\"" +
+                        //            ",\"FBaseQCQty\":\"0\"" +
+                        //            ",\"FBaseQCStockInSelQty\":\"0\"" +
+                        //        "}" +
+                        //    "]"
+
+                        ", \"FEntity_Link\": " +
+                            "[" +
+                                "{" +
+                                    " \"FEntity_Link_FFlowId\":\"" + FEntity_Link_FFlowId + "\"" +
+                                    ", \"FEntity_Link_FFlowLineId\":\"" + FEntity_Link_FFlowLineId + "\"" +
+                                    ", \"FEntity_Link_FRuleId\":\"" + FEntity_Link_FRuleId + "\"" +
+                                    ", \"FEntity_Link_FSTableName\":\"" + FEntity_Link_FSTableName + "\"" +
+                                    ", \"FEntity_Link_FSBillId\":\"" + FMOID + "\"" +
+                                    ", \"FEntity_Link_FSId\":\"" + FMOENTRYID + "\"" +
+                                " }" +
+                            " ]" +
+                        ", \"FBFLOWID\":" +
+                            "{" +
+                                "\"FID\":\"" + FBFLOWID + "\"" +
+                            "}" +
+                    "}";
+
+
+                string sJson_End = "  ]  }}";
+
+
+                json = sJson_Main + sJson_Entry + sJson_End;
+
+
+                return json;
+            //}catch(Exception e)
+            //{
+            //    return e.Message;
+            //}
+        }
+        #endregion
+        #endregion
     }
     #endregion
 

--
Gitblit v1.9.1