1
zrg
2 天以前 db047f20127c25c22853331dd9cbfd307fd2df68
1
22个文件已修改
55个文件已添加
698 ■■■■ 已修改文件
DAL/bin/Release/DAL.dll 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/DAL.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/DBUtility.dll 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/DBUtility.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/Model.dll 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/Model.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/Pub_Class.dll 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/Pub_Class.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/Pub_Control.dll 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/Pub_Control.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/SQLHelper.dll 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/SQLHelper.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DAL/质检管理/ClsQC_FirstPieceCheckBill.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/bin/Release/DBUtility.dll 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/bin/Release/DBUtility.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/bin/Release/Pub_Class.dll 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/bin/Release/Pub_Class.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/bin/Release/Pub_Control.dll 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/bin/Release/Pub_Control.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/bin/Release/SQLHelper.dll 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/bin/Release/SQLHelper.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/DBUtility.dll 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/DBUtility.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/Model.dll 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/Model.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/Pub_Class.dll 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/Pub_Class.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/Pub_Control.dll 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/Pub_Control.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/SQLHelper.dll 补丁 | 查看 | 原始文档 | blame | 历史
Model/bin/Release/SQLHelper.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/bin/Release/Pub_Class.dll 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/bin/Release/Pub_Class.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/bin/Release/SyntacticSugar.dll 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/bin/Release/SyntacticSugar.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Control/bin/Release/Pub_Class.dll 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Control/bin/Release/Pub_Class.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Control/bin/Release/Pub_Control.dll 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Control/bin/Release/Pub_Control.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SQLHelper/bin/Release/Pub_Class.dll 补丁 | 查看 | 原始文档 | blame | 历史
SQLHelper/bin/Release/Pub_Class.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SQLHelper/bin/Release/SQLHelper.dll 补丁 | 查看 | 原始文档 | blame | 历史
SQLHelper/bin/Release/SQLHelper.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/bin/Debug/SyntacticSugar.dll 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/bin/Debug/SyntacticSugar.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/bin/Release/SyntacticSugar.dll 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/bin/Release/SyntacticSugar.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Debug/SyntacticSugar.dll 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Debug/SyntacticSugar.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Release/SyntacticSugar.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Release/SyntacticSugar.csproj.CoreCompileInputs.cache 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Release/SyntacticSugar.dll 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Release/SyntacticSugar.pdb 补丁 | 查看 | 原始文档 | blame | 历史
WarM/条码打印/Gy_BarCodeBill_Rework.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/App_Start/WebApiConfig.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/仓存管理/条码生成/Sc_BarCodeController.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/品质管理/首件检验单/QC_FirstPieceCheckBillController.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Gy_CostItemController.cs 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/成本管理/CB_ItemMoneyBillController.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/条码管理/WEBSController.cs 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/packages.config 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/bin/Debug/TopSdk.dll 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/bin/Release/TopSdk.dll 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/bin/Release/TopSdk.pdb 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Debug/TopSdk.dll 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.CoreCompileInputs.cache 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Release/TopSdk.dll 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Release/TopSdk.pdb 补丁 | 查看 | 原始文档 | blame | 历史
DAL/bin/Release/DAL.dll
Binary files differ
DAL/bin/Release/DAL.pdb
Binary files differ
DAL/bin/Release/DBUtility.dll
Binary files differ
DAL/bin/Release/DBUtility.pdb
Binary files differ
DAL/bin/Release/Model.dll
Binary files differ
DAL/bin/Release/Model.pdb
Binary files differ
DAL/bin/Release/Pub_Class.dll
Binary files differ
DAL/bin/Release/Pub_Class.pdb
Binary files differ
DAL/bin/Release/Pub_Control.dll
Binary files differ
DAL/bin/Release/Pub_Control.pdb
Binary files differ
DAL/bin/Release/SQLHelper.dll
Binary files differ
DAL/bin/Release/SQLHelper.pdb
Binary files differ
DAL/Öʼì¹ÜÀí/ClsQC_FirstPieceCheckBill.cs
@@ -554,9 +554,42 @@
            }
        }
        /// <summary>
        /// é©³å›žå•据,先保存驳回原因到HRemark,然后执行原有驳回流程
        /// </summary>
        /// <param name="lngBillKey">单据ID</param>
        /// <param name="HRemark">驳回原因</param>
        /// <param name="CurUserID">当前用户ID</param>
        /// <param name="sReturn">返回信息</param>
        /// <returns></returns>
        public bool RejectWithReason(Int64 lngBillKey, string HRemark, string CurUserID, ref string sReturn)
        {
            try
            {
                // 1. å…ˆæ›´æ–°HRemark,保存驳回原因(RejectCheckFlowProgress内部会处理事务)
                string sql = "Update QC_FirstPieceCheckBillMain set " +
                             " HRemark = '" + HRemark.Replace("'", "''") + "'," +
                             " HUpDater = '" + DBUtility.ClsPub.CurUserName + "'," +
                             " HUpDateDate = getdate()" +
                             " where HInterID = " + lngBillKey.ToString();
                oCn.RunProc(sql);
                // 2. æ‰§è¡ŒåŽŸæœ‰é©³å›žæµç¨‹ï¼ˆç»§æ‰¿è‡ªåŸºç±»çš„é©³å›žæµç¨‹å¤„ç†ï¼Œå†…éƒ¨å·²åŒ…å«äº‹åŠ¡å¤„ç†ï¼‰
                if (!this.RejectCheckFlowProgress(lngBillKey, this.omodel.HBillNo, CurUserID, ref sReturn))
                {
                    return false;
                }
                sReturn = "驳回成功";
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                return false;
            }
        }
    }
}
DBUtility/bin/Release/DBUtility.dll
Binary files differ
DBUtility/bin/Release/DBUtility.pdb
Binary files differ
DBUtility/bin/Release/Pub_Class.dll
Binary files differ
DBUtility/bin/Release/Pub_Class.pdb
Binary files differ
DBUtility/bin/Release/Pub_Control.dll
Binary files differ
DBUtility/bin/Release/Pub_Control.pdb
Binary files differ
DBUtility/bin/Release/SQLHelper.dll
Binary files differ
DBUtility/bin/Release/SQLHelper.pdb
Binary files differ
Model/bin/Release/DBUtility.dll
Binary files differ
Model/bin/Release/DBUtility.pdb
Binary files differ
Model/bin/Release/Model.dll
Binary files differ
Model/bin/Release/Model.pdb
Binary files differ
Model/bin/Release/Pub_Class.dll
Binary files differ
Model/bin/Release/Pub_Class.pdb
Binary files differ
Model/bin/Release/Pub_Control.dll
Binary files differ
Model/bin/Release/Pub_Control.pdb
Binary files differ
Model/bin/Release/SQLHelper.dll
Binary files differ
Model/bin/Release/SQLHelper.pdb
Binary files differ
Pub_Class/bin/Release/Pub_Class.dll
Binary files differ
Pub_Class/bin/Release/Pub_Class.pdb
Binary files differ
Pub_Class/bin/Release/SyntacticSugar.dll
Binary files differ
Pub_Class/bin/Release/SyntacticSugar.pdb
Binary files differ
Pub_Control/bin/Release/Pub_Class.dll
Binary files differ
Pub_Control/bin/Release/Pub_Class.pdb
Binary files differ
Pub_Control/bin/Release/Pub_Control.dll
Binary files differ
Pub_Control/bin/Release/Pub_Control.pdb
Binary files differ
SQLHelper/bin/Release/Pub_Class.dll
Binary files differ
SQLHelper/bin/Release/Pub_Class.pdb
Binary files differ
SQLHelper/bin/Release/SQLHelper.dll
Binary files differ
SQLHelper/bin/Release/SQLHelper.pdb
Binary files differ
SyntacticSugar/bin/Debug/SyntacticSugar.dll
Binary files differ
SyntacticSugar/bin/Debug/SyntacticSugar.pdb
Binary files differ
SyntacticSugar/bin/Release/SyntacticSugar.dll
Binary files differ
SyntacticSugar/bin/Release/SyntacticSugar.pdb
Binary files differ
SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache
Binary files differ
SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
@@ -19,10 +19,20 @@
D:\WMES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
D:\WMES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.dll
D:\WMES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> ce72deb4068917547d97c3e8991dde8772728d25
D:\WorkBench\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.dll
D:\WorkBench\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.pdb
D:\WorkBench\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
D:\WorkBench\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.dll
D:\WorkBench\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
<<<<<<< HEAD
C:\Users\19858\Desktop\智云迈思\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
=======
>>>>>>> b96dd44760e07a20de9cd28f6daf0deccdf0705c
=======
D:\WorkBench\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
D:\工作代码\智云迈思\MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
>>>>>>> ce72deb4068917547d97c3e8991dde8772728d25
SyntacticSugar/obj/Debug/SyntacticSugar.dll
Binary files differ
SyntacticSugar/obj/Debug/SyntacticSugar.pdb
Binary files differ
SyntacticSugar/obj/Release/SyntacticSugar.csproj.AssemblyReference.cache
Binary files differ
SyntacticSugar/obj/Release/SyntacticSugar.csproj.CoreCompileInputs.cache
New file
@@ -0,0 +1 @@
5dd9c82feb12f833c78ecebea7d9a46c99f29e3f
SyntacticSugar/obj/Release/SyntacticSugar.dll
Binary files differ
SyntacticSugar/obj/Release/SyntacticSugar.pdb
Binary files differ
WarM/ÌõÂë´òÓ¡/Gy_BarCodeBill_Rework.cs
@@ -709,11 +709,12 @@
                                    string[] HMaterNumberPrefix = oSystemParameter.omodel.Gy_BarCodeBill_Rework_Ctrl.Split(',');
                                    char HMaterfirstChar = grdMain.Rows[j].Cells[HMaterNumberCol].Value.ToString()[0];
                                    string HMaterthirdChar = grdMain.Rows[j].Cells[HMaterNumberCol].Value.ToString().Substring(0,3);
                                    if (HMaterNumberPrefix.Contains(HMaterfirstChar.ToString()))
                                    {
                                        //条码编号 = å·¥åŽ‚ä»£ç ï¼ˆ1) + è½¦é—´ä»£ç ï¼ˆ060113)+ æœºåž‹å· + å¹´ + æœˆ + æ—¥ + æµæ°´å·
                                        TM = "1" + "060113" + HSubjoin2 + sYear + sPeriod + sDay + LSH.ToString("D5");
                                        //条码编号 = å·¥åŽ‚ä»£ç ï¼ˆ1) + è½¦é—´ä»£ç ï¼ˆ060113)+ ç‰©æ–™ä»£ç å‰ä¸‰ä½ + å¹´ + æœˆ + æ—¥ + æµæ°´å·
                                        TM = "1" + "060113" + HMaterthirdChar.ToString() + sYear + sPeriod + sDay + LSH.ToString("D5");
                                    }
                                    else
                                    {
WebAPI/App_Start/WebApiConfig.cs
@@ -31,12 +31,16 @@
                defaults: new { id = RouteParameter.Optional }
            );
            // æ³¨å†Œç­¾å
            // config.Filters.Add(new SignatureVerifyAttribute());
            //config.Filters.Add(new SignatureVerifyAttribute());
            //// å…¨å±€å¯ç”¨ JWT è®¤è¯
            // config.Filters.Add(new JwtAuthorizeAttribute());
            //config.Filters.Add(new JwtAuthorizeAttribute());
            //// å¯ç”¨JWT响应拦截器,自动刷新JWT
            // config.MessageHandlers.Add(new TokenAppendHandler());
            //config.MessageHandlers.Add(new TokenAppendHandler());
        }
    }
}
WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs
@@ -173,8 +173,7 @@
                }
                else
                {
                    //若MAINDI重复则重新获取
                    oCN.BeginTran();
                    //主表
                    oCN.RunProc("Update PM_ProjectCommunicationBillMain" + " set " +
                    " HProSituation='" + list[0].HProSituation + "'" +
@@ -239,5 +238,198 @@
                return objJsonResult;
            }
        }
        #region  åˆ é™¤
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectCommunicationBillList/delete")]
        [HttpGet]
        public object delete(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from PM_ProjectCommunicationBillMain where HInterID = " + HInterID);
                oCN.Commit();
                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
        #region  å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("PM_ProjectCommunicationBillList/AuditPM_ProjectCommunicationBillList")]
        [HttpGet]
        public object AuditPM_ProjectCommunicationBillList(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from PM_ProjectCommunicationBillMain where HInterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, "PM_ProjectCommunicationBillMain");
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据不存在!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        string sqll = $"update PM_ProjectCommunicationBillMain set HChecker ='{user}', HCheckDate=GETDATE(),HBillStatus=2 where HInterID={HInterID} ";
                        oCN.RunProc(sqll);
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from PM_ProjectCommunicationBillMain where HInterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, "PM_ProjectCommunicationBillMain");
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不能进行反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不能进行反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未审核!不需要反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //反审核单据
                        string sqll = $"update PM_ProjectCommunicationBillMain set HChecker ='',HBillStatus=1 where HInterID={HInterID} ";
                        oCN.RunProc(sqll);
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/²Ö´æ¹ÜÀí/ÌõÂëÉú³É/Sc_BarCodeController.cs
@@ -540,13 +540,13 @@
                            break;
                        case "1103": //收料通知单
                            //得到信息
                            // ds = oCN.RunProcReturn("select * from h_v_IF_POInStockList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POInStockList");
                            ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList_Source where å¯ç”Ÿæˆæ¡ç æ•°é‡ > 0 and hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POInStockBillList_Source");
                             ds = oCN.RunProcReturn("select * from h_v_IF_POInStockList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POInStockList");
                            //ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList_Source where å¯ç”Ÿæˆæ¡ç æ•°é‡ > 0 and hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POInStockBillList_Source");
                            //写入信息
                            //ListRows.Add(HSourceOrderList1(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            ListRows.Add(HSourceOrderList2(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            ListRows.Add(HSourceOrderList1(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            //ListRows.Add(HSourceOrderList2(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        case "1601": //委外订单
                            //得到信息
WebAPI/Controllers/Æ·ÖʹÜÀí/Ê×¼þ¼ìÑéµ¥/QC_FirstPieceCheckBillController.cs
@@ -1966,6 +1966,79 @@
        }
        #endregion
        #region é¦–件检验单驳回(带原因,保存到HRemark)
        [Route("QC_FirstPieceCheckBill/RejectWithReason")]
        [HttpGet]
        public object RejectWithReason(string HInterID, string HRemark, string CurUserID)
        {
            try
            {
                Int64 lngBillKey = 0;
                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
                DAL.ClsQC_FirstPieceCheckBill oBill = new DAL.ClsQC_FirstPieceCheckBill();
                //获取系统参数判断首件检验单是否启用多级审批禁用
                Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
                string sReturn = "";
                if (oSystemParameter.ShowBill(ref sReturn) == true)
                {
                    if (oSystemParameter.omodel.QC_FirstPieceCheckBill_EnableMultiLevel.ToUpper() == "N")
                    {
                        objJsonResult.code = CodeConstant.FAIL;
                        objJsonResult.count = CountConstant.FAIL;
                        objJsonResult.Message = "首件检验单未启用多级审批禁用";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    if (oBill.omodel.HBillStatus != 6)
                    {
                        objJsonResult.code = CodeConstant.FAIL;
                        objJsonResult.count = CountConstant.FAIL;
                        objJsonResult.Message = "单据未在审核中不能驳回";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //先保存驳回原因到HRemark,再执行驳回
                    if (oBill.RejectWithReason(lngBillKey, HRemark, CurUserID, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                    {
                        objJsonResult.code = CodeConstant.SUCCEED;
                        objJsonResult.count = CountConstant.SUCCEED;
                        objJsonResult.Message = "驳回成功";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        objJsonResult.code = CodeConstant.FAIL;
                        objJsonResult.count = CountConstant.FAIL;
                        objJsonResult.Message = "驳回失败!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    objJsonResult.code = CodeConstant.FAIL;
                    objJsonResult.count = CountConstant.FAIL;
                    objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = CodeConstant.FAIL;
                objJsonResult.count = CountConstant.FAIL;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¦–件检验单 å‘起审批
        [Route("QC_FirstPieceCheckBill/StartCheckFlow")]
        [HttpGet]
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_CostItemController.cs
@@ -675,27 +675,27 @@
                            return objJsonResult;
                        }
                        //检查父级是否存在
                        string sParent;
                        sParent = DBUtility.ClsPub.GetParentCode(oItem.HNumber.Trim());
                        if (sParent.Trim() == "")
                        {
                            oBill.oModel.HParentID = 0;
                        }
                        else
                        {
                            if (oBill.HavParentCode(sParent.Trim(), HItemID))
                            {
                                oBill.oModel.HParentID = oBill.oModel.HItemID;
                            }
                            else
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "保存失败!上级代码不存在或被禁用!";
                                objJsonResult.data = 1;
                                return objJsonResult;
                            }
                        }
                        //string sParent;
                        //sParent = DBUtility.ClsPub.GetParentCode(oItem.HNumber.Trim());
                        //if (sParent.Trim() == "")
                        //{
                        //    oBill.oModel.HParentID = 0;
                        //}
                        //else
                        //{
                        //    if (oBill.HavParentCode(sParent.Trim(), HItemID))
                        //    {
                        //        oBill.oModel.HParentID = oBill.oModel.HItemID;
                        //    }
                        //    else
                        //    {
                        //        objJsonResult.code = "0";
                        //        objJsonResult.count = 0;
                        //        objJsonResult.Message = "保存失败!上级代码不存在或被禁用!";
                        //        objJsonResult.data = 1;
                        //        return objJsonResult;
                        //    }
                        //}
                    }
                    else//编辑时判断
                    {
WebAPI/Controllers/³É±¾¹ÜÀí/CB_ItemMoneyBillController.cs
@@ -1286,12 +1286,6 @@
                    errorMessage.Append(";");
                }
                if (missingMaterialMessages.Any())
                {
                    errorMessage.Append("以下物料未维护:");
                    errorMessage.Append(string.Join("、", missingMaterialMessages));
                    errorMessage.Append(";");
                }
                if (missingCostMessages.Any())
                {
                    errorMessage.Append("成本项目未维护或有误:");
@@ -1304,12 +1298,7 @@
                    errorMessage.Append(string.Join("、", missingmoneyMessages));
                    errorMessage.Append(";");
                }
                if (missingEmployeeMessages.Any())
                {
                    errorMessage.Append("以下职员未维护:");
                    errorMessage.Append(string.Join("、", missingEmployeeMessages));
                    errorMessage.Append(";");
                }
                if (errorMessage.Length > 0)
                {
@@ -1362,18 +1351,22 @@
                    DateTime firstDayWithTime = new DateTime(Convert.ToInt32(list[0]["年份"]), Convert.ToInt32(list[0]["月份"]), 1);
                    // æ’入主表(每组插入一次)
                    insertSql.AppendLine($"INSERT INTO CB_ItemMoneyBillMain  ([HInterID], [HBillNo], [HDate], [HYear], [HPeriod], [HBillType], [HBillSubType], [HBillStatus], [HCheckItemNowID], [HCheckItemNextID], [HCheckFlowID], [HRemark], [HBacker], [HBackDate], [HBackRemark], [HChecker], [HCheckDate], [HMaker], [HMakeDate], [HUpDater], [HUpDateDate], [HCloseMan], [HCloseDate], [HCloseType], [HDeleteMan], [HDeleteDate], [HMainSourceBillType], [HMainSourceInterID], [HMainSourceEntryID], [HMainSourceBillNo], [HPrintQty],  [HEmpID], [HDeptID], [HICMOInterID], [HMaterID], [HICMOBillNo], [HExplanation], [HInnerBillNo], [HBeginDate], [HEndDate], [HOrgID]) VALUES (");
                        insertSql.AppendLine($"'{HInterID}', '{HBillNo}', '{firstDayWithTime}', {list[0]["年份"]}, {list[0]["月份"]}, {"1802"}, '{"1802"}', '{"1"}',  '{"0"}', '{"0"}', '{"0"}', '{"excel导入"}', '{""}', '{DateTime.Now}', '{""}', '{""}', '{DateTime.Now}', '{user}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{"0"}', '{""}', '{DateTime.Now}', '{""}', '{"0"}', '{"0"}', '{""}', '{"0"}', '{EmpID}', '{HSupplierID}', '{ICMOInterID}','{0}','{ICMO}','{""}','{"0"}','{DateTime.Now}','{DateTime.Now}','{"100038"}');");
                        insertSql.AppendLine($"'{HInterID}', '{HBillNo}', '{firstDayWithTime}', {list[0]["年份"]}, {list[0]["月份"]}, {"1802"}, '{"1802"}', '{"1"}',  '{"0"}', '{"0"}', '{"0"}', '{"excel导入"}', '{""}', '{DateTime.Now}', '{""}', '{""}', '{DateTime.Now}', '{user}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{"0"}', '{""}', '{DateTime.Now}', '{""}', '{"0"}', '{"0"}', '{""}', '{"0"}', '{EmpID}', '{HSupplierID}', '{ICMOInterID}','{0}','{ICMO}','{""}','{"0"}','{DateTime.Now}','{DateTime.Now}','{organ}');");
                        // æ’入子表(组内每个物料插入一次)
                        int HEntryID = 1;
                        foreach (var item in group)
                        {
                            int HMaterID = materialDict[$"{item["物料编码"]}_{item["物料名称"]}"];
                        // èŽ·å–ç‰©æ–™ID,如果字典中不存在对应的物料编码和物料名称组合,则赋值为0
                            int HMaterID = materialDict.TryGetValue($"{item["物料编码"]}_{item["物料名称"]}", out int materId)
                                ? materId : 0;
                            int HCostID = CostDict[item["成本项目"]];
                            int HProcID = ProcDict[item["工序"]];
                            // èŽ·å–å·¥åºID,如果字典中不存在对应的工序,则赋值为0
int HProcID = ProcDict.TryGetValue(item["工序"].ToString(), out int procId)
    ? procId : 0;
                            insertSql_sub.AppendLine($"INSERT INTO [CB_ItemMoneyBillSub] ([HInterID], [HEntryID], [HCloseMan], [HEntryCloseDate], [HCloseType], [HRemark],[HSourceInterID], [HSourceEntryID], [HSourceBillNo], [HSourceBillType],[HRelationQty], [HRelationMoney], [HBillNo_bak], [HCostItemID],[HDeptID], [HQty], [HPrice], [HMoney],[HMaterID], [HWaster], [HDate], [HBeginBalance], [HEndBalance], [HTimes],[HProcID]) VALUES (");
                            insertSql_sub.AppendLine($"'{HInterID}', '{HEntryID}', '{""}', '{DateTime.Now}', '{"0"}', '{"excel导入"}','{"0"}', '{"0"}',  '{"0"}', '{"0"}','{"0"}', '{"0"}', '{""}', '{HCostID}', '{HSupplierID}', '{item["数量"]}', '{item["单价"]}', '{item["金额"]}','{HMaterID}', '{item["损耗量"] ?? "0"}', '{DateTime.Now}', '{"0"}', '{"0"}', '{"0"}', '{HProcID}');");
                            insertSql_sub.AppendLine($"'{HInterID}', '{HEntryID}', '{""}', '{DateTime.Now}', '{"0"}', '{"excel导入"}','{"0"}', '{"0"}',  '{"0"}', '{"0"}','{"0"}', '{"0"}', '{""}', '{HCostID}', '{HSupplierID}', '{(item["数量"] == "" ? "0" : item["数量"])}', '{(item["单价"] == "" ? "0" : item["单价"])}', '{item["金额"]}','{HMaterID}', '{(item["损耗量"]=="" ? "0" : item["损耗量"])}', '{DateTime.Now}', '{"0"}', '{"0"}', '{"0"}', '{HProcID}');");
                            HEntryID++;
                        }
                    
WebAPI/Controllers/ÌõÂë¹ÜÀí/WEBSController.cs
@@ -17,7 +17,7 @@
using WebAPI.Models;
using WebAPI.Service;
using WebAPI.Utility;
using Kingdee.BOS.WebApi.Client;
using Alex.Kingdee.Cloud.WebAPI.Client;
namespace WebAPI.Controllers
{
@@ -15585,167 +15585,100 @@
        #region ç‰©æ–™åŸºç¡€èµ„料同步
        [Route("WEBSController/MaterialDataToLocalByKDWebApi")]
        [HttpGet]
        public object MaterialDataToLocalByKDWebApi(string HDate)
        public object MaterialDataToLocalByKDWebApi(string HDate,int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl);
                var loginRet = InvokeHelper.Login();
                var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
                string HReturn;
                int startRow = 0;//分页,从第1条开始查询
                List<JObject> allData = new List<JObject>();//接收存储所有查询到的数据
                if (isSuccess == 0)
                if (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。" + loginRet;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FMATERIALID,FNumber,FName,FSpecification,FFORBIDSTATUS,FErpClsID,FSTOREUNITID,FLENGTH,FWIDTH,FHEIGHT,FNETWEIGHT,FGROSSWEIGHT,FOLDNUMBER,FSTOCKID,FStockPlaceID,FPLANMODE,FCREATORID,FAPPROVERID,FAPPROVEDATE,FMODIFYDATE,FCREATEORGID,FUSEORGID,FISBATCHMANAGE,FCHECKINCOMING,FISENABLE1,FISKFPERIOD,FEXPUNIT,FEXPPERIOD,FAUXUNITID,FSNUNIT,FBASEUNITID,FSALEUNITID,FSALEPRICEUNITID,FPERUNITSTANDHOUR,FSTDLABORPREPARETIME,FSTDMACHINEPREPARETIME,FMASTERID,FMAXPOQTY,FMINPOQTY,FMATERIALGROUP";
                //调用单据查询webapi
                string sJson = $"{{\"FormId\":\"BD_MATERIAL\",\"FieldKeys\":\"FMATERIALID,FNumber,FName,FSpecification,FApproveDate,FCreateDate,FDocumentStatus\",\"FilterString\":\"FApproveDate >= '2025-04-01T00:00:00' AND FApproveDate <= '2025-04-30T23:59:59'\",\"Limit\":100,\"StartRow\":0,\"TopRowCount\":0}}";
                oCn.BeginTran();//开始事务
                var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc", new object[] { "BD_MATERIAL", sJson });
                var _saveObj = JObject.Parse(result);
                //判断数据是否获取成功
                if (_saveObj.SelectToken("Result.ResponseStatus.IsSuccess")?.ToString().ToUpper() != "TRUE")
                while (hasMore) //循环分组查询,避免漏同步
                {
                    HReturn = result.ToString();
                    //反序列化json数据
                    var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn);
                    //接收金蝶报错信息
                    var strErrorMsg = string.Empty;
                    //遍历获取报错信息
                    foreach (var item in retModel.Result.ResponseStatus.Errors)
                    {
                        strErrorMsg += item.Message + "\r\n";
                    };
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_MATERIAL\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FApproveDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据查询物料信息失败!" + strErrorMsg;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    //主表数据赋值
                    var MainData = new
                    {
                        HInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                        HDate = _saveObj.SelectToken("Result.Result.Date")?.ToString(),
                        HBillNo = _saveObj.SelectToken("Result.Result.BillNo")?.ToString() ?? "",
                        HBillStatus = _saveObj.SelectToken("Result.Result.ApproverId_Id")?.ToString() == "0" ? 1 : 2,
                        HPURCHASERNumber = _saveObj.SelectToken("Result.Result.PurchaserId.Number")?.ToString() ?? "",
                        HMaker = _saveObj.SelectToken("Result.Result.CreatorId.Name")?.ToString() ?? "",
                        HChecker = _saveObj.SelectToken("Result.Result.ApproverId.Name")?.ToString() ?? "",
                        HUpDater = _saveObj.SelectToken("Result.Result.ModifierId.Name")?.ToString() ?? "",
                        HDeleteMan = _saveObj.SelectToken("Result.Result.CancellerId.Name")?.ToString() ?? "",
                        HCloseMan = _saveObj.SelectToken("Result.Result.CloserId.Name")?.ToString() ?? "",
                        HPURCHASERGROUPNumber = _saveObj.SelectToken("Result.Result.PurchaserGroupId.Number")?.ToString() ?? "",
                        HPROVIDERCONTACTNumber = _saveObj.SelectToken("Result.Result.ProviderContactId.CONTACTNUMBER")?.ToString() ?? "",
                        HSETTLEMODEID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleModeId_Id")?.ToString() ?? "0",
                        HSETTLEMODENumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleModeId.Number")?.ToString() ?? "",
                        HSETTLECURRID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleCurrId_Id")?.ToString() ?? "0",
                        HSETTLECURRNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleCurrId.Number")?.ToString() ?? "",
                        HEXCHANGETYPEID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeTypeId_Id")?.ToString() ?? "0",
                        HEXCHANGETYPENumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeTypeId.Number")?.ToString() ?? "",
                        HPAYCONDITIONID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].PayConditionId_Id")?.ToString() ?? "0",
                        HPAYCONDITIONNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].PayConditionId.Number")?.ToString() ?? "",
                        HEXCHANGERATE = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeRate")?.ToString() ?? "0",
                        HLOCALCURRID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].LocalCurrId_Id")?.ToString() ?? "0",
                        HLOCALCURRNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].LocalCurrId.Number")?.ToString() ?? "",
                        HISINCLUDEDTAX = _saveObj.SelectToken("Result.Result.POOrderFinance[0].IsIncludedTax")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                        HISPRICEEXCLUDETAX = _saveObj.SelectToken("Result.Result.POOrderFinance[0].FISPRICEEXCLUDETAX")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                    };
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //根据单据号、单据ID,删除本地数据
                    oCn.RunProc("Delete from Cg_POOrderBillMain where HBillNo='" + MainData.HBillNo + "'", ref DBUtility.ClsPub.sExeReturnInfo);
                    oCn.RunProc("Delete from Cg_POOrderBillMain where HInterID=" + MainData.HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo);
                    oCn.RunProc("Delete from Cg_POOrderBillSub where HInterID=" + MainData.HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo);
                    //子表数据赋值
                    var dataArr = _saveObj.SelectToken("Result.Result.POOrderEntry") as JArray;
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (dataArr != null)
                    if (formattedData.Count < limit)
                    {
                        foreach (var oSub in dataArr)
                        {
                            var SubData = new
                            {
                                HInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                                HEntryID = oSub.SelectToken("Id")?.ToString() ?? "0",
                                HMaterID = oSub.SelectToken("MaterialId_Id")?.ToString() ?? "0",
                                HUnitID = oSub.SelectToken("UnitId_Id")?.ToString() ?? "0",
                                HQty = oSub.SelectToken("Qty")?.ToString() ?? "0",
                                HPrice = oSub.SelectToken("Price")?.ToString() ?? "0",
                                HTaxPrice = oSub.SelectToken("TaxPrice")?.ToString() ?? "0",
                                HDiscountRate = oSub.SelectToken("DiscountRate")?.ToString() ?? "0",
                                HMoney = oSub.SelectToken("Amount")?.ToString() ?? "0",
                                HTaxRate = oSub.SelectToken("TaxRate")?.ToString() ?? "0",
                                HTaxMoney = oSub.SelectToken("TaxAmount")?.ToString() ?? "0",
                                HDate = oSub.SelectToken("DeliveryDate")?.ToString() ?? "",
                                HRemark = oSub.SelectToken("Note")?.ToString() ?? "",
                                HRelationQty = oSub.SelectToken("JOINQTY")?.ToString() ?? "0",
                                HBackRelationQty = oSub.SelectToken("STOCKRETQTY")?.ToString() ?? "0",
                                HPropertyID = oSub.SelectToken("AuxPropId_Id")?.ToString() ?? "0",
                                HBatChNo = oSub.SelectToken("FLot_Text")?.ToString() ?? "",
                                HAuxPropID = oSub.SelectToken("AuxPropId_Id")?.ToString() ?? "0",
                                HMTONo = oSub.SelectToken("MtoNo")?.ToString() ?? "",
                                HERPInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                                HERPEntryID = oSub.SelectToken("Id")?.ToString() ?? "0",
                                HSEQ = oSub.SelectToken("Seq")?.ToString() ?? "0",
                                HRECEIVEDEPTID = oSub.SelectToken("ReceiveDeptId_Id")?.ToString() ?? "0",
                                HSUPPLIERLOT = oSub.SelectToken("SupplierLot")?.ToString() ?? "",
                                HBOMID = oSub.SelectToken("BomId_Id")?.ToString() ?? "0",
                                HBomNumber = oSub.SelectToken("BomId.Number")?.ToString() ?? "",
                                HSTOCKUNITID = oSub.SelectToken("StockUnitID_Id")?.ToString() ?? "0",
                                HBASEUNITID = oSub.SelectToken("BaseUnitId_Id")?.ToString() ?? "0",
                                HBFLOWID = oSub.SelectToken("FBFLowId_Id")?.ToString() ?? "",
                                HGIVEAWAY = oSub.SelectToken("GiveAway")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HROWTYPE = oSub.SelectToken("RowType")?.ToString() ?? "",
                                HBASEUNITQTY = oSub.SelectToken("BaseUnitQty")?.ToString() ?? "0",
                                HSTOCKBASEQTY = oSub.SelectToken("StockBaseQty")?.ToString() ?? "0",
                                HREQTRACENO = oSub.SelectToken("ReqTraceNo")?.ToString() ?? "",
                                HMATERIALDESC = oSub.SelectToken("MaterialDesc[0].Value")?.ToString() ?? "",
                                HRECEIVEORGID = oSub.SelectToken("ReceiveOrgId_Id")?.ToString() ?? "0",
                                HREQUIREORGID = oSub.SelectToken("RequireOrgId_Id")?.ToString() ?? "0",
                                HTAXNETPRICE = oSub.SelectToken("TaxNetPrice")?.ToString() ?? "0",
                                HPRICECOEFFICIENT = oSub.SelectToken("PriceCoefficient")?.ToString() ?? "0",
                                HTAXCOMBINATION = oSub.SelectToken("FTaxCombination_Id")?.ToString() ?? "0",
                                HTAXCOMBINATIONNumber = oSub.SelectToken("FTaxCombination.Number")?.ToString() ?? "",
                                HPRICEUNITID = oSub.SelectToken("PriceUnitId_Id")?.ToString() ?? "0",
                                HPRICELISTENTRY = oSub.SelectToken("PriceListEntry_Id")?.ToString() ?? "0",
                                HPRICELISTENTRYNumber = oSub.SelectToken("PriceListEntry.Number")?.ToString() ?? "",
                                HPAYORGID = oSub.SelectToken("PayOrgId_Id")?.ToString() ?? "0",
                                HSETTLEORGID = oSub.SelectToken("SettleOrgId_Id")?.ToString() ?? "0",
                                HTaxRate_TAX = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRate")?.ToString() ?? "0",
                                HTaxMoney_TAX = oSub.SelectToken("POORDERENTRY_TAX[0].TaxAmount")?.ToString() ?? "0",
                                HTAXRATEID = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRateId_Id")?.ToString() ?? "0",
                                HTAXRATENumber = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRateId.Number")?.ToString() ?? "",
                                HCOSTPERCENT = oSub.SelectToken("POORDERENTRY_TAX[0].CostPercent")?.ToString() ?? "0",
                                HCOSTAMOUNT = oSub.SelectToken("POORDERENTRY_TAX[0].CostAmount")?.ToString() ?? "0",
                                HVAT = oSub.SelectToken("POORDERENTRY_TAX[0].VAT")?.ToString() ?? "",
                                HSELLERWITHHOLDING = oSub.SelectToken("POORDERENTRY_TAX[0].SellerWithholding")?.ToString() ?? "",
                                HBUYERWITHHOLDING = oSub.SelectToken("POORDERENTRY_TAX[0].BuyerWithholding")?.ToString() ?? "",
                            };
                        }
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "成功";
                    objJsonResult.data = WebSoBar;
                    return objJsonResult;
                }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_Material where HItemID = {item["FMATERIALID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_Material on");
                        //重新写入表
                        oCn.RunProc($"insert into Gy_Material(HItemID,HERPItemID,HNumber,HName,HModel,HShortNumber,HParentID" +
                        $", HLevel, HEndFlag, HStopflag, HRemark, HMaterClsID, HUnitID, HUnitGroupID" +
                        $", HLength, HWidth, HHeight, HJQty, HMQty, HOldMaterNumber, HBarCodeType" +
                        $", HWHID, HSPID, HPlanMode, HUseFlag, HMinPickQty" +
                        $", HMakeEmp, HMakeTime, HCheckEmp, HCheckTime, HUpdateTime" +
                        $", HCREATEORGID, HUSEORGID, HBatchManager, HCHECKINCOMING" +
                        $", HAuxPropFlag, HISKFPERIOD, HEXPUNIT, HEXPPERIOD" +
                        $", HAuxUnitID, HSNUnitID, HBASEUNITID, HSALEUNITID, HSALEPRICEUNITID" +
                        $", HPERUNITSTANDHOUR, HSTDLABORPREPARETIME, HSTDMACHINEPREPARETIME, HMASTERID" +
                        $", HMaxPOQty, HMinPOQty, HMaterTypeID) " +
                        $" values ( {item["FMATERIALID"]?.ToString()},{item["FMATERIALID"]?.ToString()},'{item["FNumber"]?.ToString()}','{item["FName"]?.ToString()}','{item["FSpecification"]?.ToString()}'" +
                        $",'{item["FNumber"]?.ToString()}',0,1,1,'{(item["FFORBIDSTATUS"]?.ToString() == "A" ? 0 : 1)}','WEBAPI-导入'" +
                        $",'{item["FErpClsID"]?.ToString()}','{item["FSTOREUNITID"]?.ToString()}',0,'{item["FLENGTH"]?.ToString()}','{item["FWIDTH"]?.ToString()}','{item["FHEIGHT"]?.ToString()}'" +
                        $",'{item["FNETWEIGHT"]?.ToString()}','{item["FGROSSWEIGHT"]?.ToString()}','{item["FOLDNUMBER"]?.ToString()}','','{item["FSTOCKID"]?.ToString()}','{item["FStockPlaceID"]?.ToString()}'" +
                        $",'{item["FPLANMODE"]?.ToString()}','未检验',0,'{item["FCREATORID"]?.ToString()}',getdate(),'{item["FAPPROVERID"]?.ToString()}'" +
                        $",'{item["FAPPROVEDATE"]?.ToString()}','{item["FMODIFYDATE"]?.ToString()}','{item["FCREATEORGID"]?.ToString()}','{item["FUSEORGID"]?.ToString()}','{(item["FISBATCHMANAGE"]?.ToString() == "1" ? 1 : 0)}','{(item["FCHECKINCOMING"]?.ToString() == "1" ? 1 : 0)}'" +
                        $",'{(item["FISENABLE1"]?.ToString() == "1" ? 1 : 0)}','{(item["FISKFPERIOD"]?.ToString() == "1" ? 1 : 0)}','{item["FEXPUNIT"]?.ToString()}','{item["FEXPPERIOD"]?.ToString()}','{item["FAUXUNITID"]?.ToString()}','{item["FSNUNIT"]?.ToString()}'" +
                        $",'{item["FBASEUNITID"]?.ToString()}','{item["FSALEUNITID"]?.ToString()}','{item["FSALEPRICEUNITID"]?.ToString()}','{item["FPERUNITSTANDHOUR"]?.ToString()}','{item["FSTDLABORPREPARETIME"]?.ToString()}','{item["FSTDMACHINEPREPARETIME"]?.ToString()}'" +
                        $",'{item["FMASTERID"]?.ToString()}','{item["FMAXPOQTY"]?.ToString()}','{item["FMINPOQTY"]?.ToString()}','{item["FMATERIALGROUP"]?.ToString()}'" +
                        $")");
                        oCn.RunProc("set identity_insert Gy_Material off");
                    }
                }
                oCn.Commit(); //提交事务
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "物料信息同步成功";
                objJsonResult.data = "";
                return objJsonResult;
            }
            catch (Exception e)
            {
                hasMore = false;
                oCn.RollBack();//回滚事务
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据查询物料信息发生异常!" + e.ToString();
@@ -15756,6 +15689,41 @@
        #endregion
        #region å°†é‡‘蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
        public static JArray ConvertKingdeeResultToObjects(string rawJson, string fieldKeys)
        {
            // <param name="rawJson">API è¿”回的原始 JSON å­—符串(如 [[...],[...]])</param>
            // <param name="fieldKeys">查询时传入的 FieldKeys å­—符串(逗号分隔)</param>
            // 1. è§£æžåŽŸå§‹æ•°æ®ä¸º JArray(二维数组)
            JArray rawData = JArray.Parse(rawJson);
            // 2. æ‹†åˆ†å­—段名数组
            string[] fieldNames = fieldKeys.Split(',')
                                           .Select(f => f.Trim())
                                           .ToArray();
            // 3. åˆ›å»ºç»“果数组
            JArray result = new JArray();
            // 4. éåŽ†æ¯ä¸€è¡Œæ•°æ®
            foreach (JArray row in rawData)
            {
                JObject obj = new JObject();
                // 5. æŒ‰ç´¢å¼•位置映射字段名和值
                for (int i = 0; i < fieldNames.Length && i < row.Count; i++)
                {
                    obj[fieldNames[i]] = row[i];
                }
                result.Add(obj);
            }
            return result;
        }
        #endregion
        #endregion
    }
}
WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user
@@ -5,7 +5,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_PublishTargetUrl>D:\网站发布\API</_PublishTargetUrl>
    <History>True|2026-04-21T11:59:04.4142925Z;False|2026-04-21T19:58:56.0531602+08:00;True|2026-04-20T16:04:39.0536757+08:00;True|2026-04-16T11:30:27.4548617+08:00;True|2026-04-16T11:28:16.2273318+08:00;True|2026-04-15T14:26:05.9192637+08:00;False|2026-04-15T14:25:55.1433729+08:00;True|2026-04-15T10:09:40.2224711+08:00;True|2026-04-15T10:01:41.2211939+08:00;False|2026-04-15T10:01:33.5163195+08:00;True|2026-04-10T14:40:32.9638263+08:00;True|2026-04-10T14:09:17.8938591+08:00;True|2026-04-10T09:43:03.1496594+08:00;False|2026-04-10T09:42:48.1357703+08:00;True|2026-04-04T14:02:29.0801567+08:00;False|2026-04-04T14:02:19.7271116+08:00;True|2026-04-02T15:43:33.7777154+08:00;False|2026-04-02T15:43:18.7956363+08:00;True|2026-03-27T14:21:25.0796115+08:00;True|2026-03-26T11:06:46.4787179+08:00;False|2026-03-26T11:06:35.4166660+08:00;True|2026-03-25T16:10:29.4610079+08:00;False|2026-03-25T16:10:15.2610463+08:00;True|2026-03-25T16:05:31.2437927+08:00;False|2026-03-25T16:04:42.8165129+08:00;True|2026-03-25T15:51:12.3488143+08:00;True|2026-03-25T15:41:15.4809614+08:00;True|2026-03-25T15:36:47.6377104+08:00;True|2026-03-25T15:24:05.9533971+08:00;True|2026-03-25T15:08:09.4213443+08:00;True|2026-03-25T15:02:35.5966546+08:00;True|2026-03-25T14:39:57.1426058+08:00;True|2026-03-23T22:27:05.9947039+08:00;True|2026-03-23T22:17:02.8820923+08:00;True|2026-03-23T21:52:15.7333002+08:00;True|2026-03-23T21:47:32.5007616+08:00;True|2026-03-23T21:40:56.5048061+08:00;True|2026-03-23T13:19:40.2829571+08:00;True|2026-03-23T12:21:19.4345768+08:00;True|2026-03-23T12:18:14.1029044+08:00;True|2026-03-23T12:14:30.8931394+08:00;True|2026-03-23T11:21:56.8156303+08:00;True|2026-03-23T11:12:41.0316561+08:00;True|2026-03-23T11:08:54.1270716+08:00;True|2026-03-23T09:56:08.8942090+08:00;True|2026-03-20T10:11:11.2023901+08:00;True|2026-03-17T09:33:58.4998522+08:00;True|2026-03-13T14:39:56.2046419+08:00;True|2026-03-13T10:45:44.5969827+08:00;False|2026-03-13T10:45:39.0031185+08:00;True|2026-03-13T10:33:50.6454960+08:00;True|2026-03-13T10:13:54.8054151+08:00;False|2026-03-13T10:13:48.7433858+08:00;True|2026-03-13T08:27:44.0365848+08:00;False|2026-03-13T08:27:15.7236925+08:00;True|2026-03-10T13:21:23.4020454+08:00;False|2026-03-10T13:20:37.7978257+08:00;True|2026-03-09T16:23:37.1957075+08:00;False|2026-03-09T16:23:09.1793900+08:00;True|2026-03-08T19:14:49.7700862+08:00;False|2026-03-08T19:13:57.9637951+08:00;True|2026-03-07T15:31:56.3119377+08:00;True|2026-03-07T15:27:26.3686205+08:00;True|2026-03-07T15:20:44.8497962+08:00;True|2026-03-07T15:16:09.1126972+08:00;True|2026-03-07T15:13:14.8502726+08:00;True|2026-03-07T15:00:35.5106409+08:00;True|2026-03-06T09:17:38.4826562+08:00;False|2026-03-06T09:17:12.2137124+08:00;True|2026-03-04T10:37:38.3542826+08:00;True|2026-03-04T10:35:38.0033181+08:00;False|2026-03-04T10:35:21.6139985+08:00;True|2026-03-04T10:10:33.7184690+08:00;False|2026-03-04T10:10:13.6608297+08:00;True|2026-02-28T14:44:48.8921146+08:00;True|2026-02-28T13:49:09.3417790+08:00;True|2026-02-28T13:36:36.7808689+08:00;True|2026-02-28T13:07:59.4097968+08:00;True|2026-02-28T11:22:16.2244092+08:00;False|2026-02-28T11:21:50.3452184+08:00;True|2026-02-27T15:15:26.7008273+08:00;False|2026-02-27T15:15:03.5165987+08:00;True|2026-02-24T13:26:35.7198126+08:00;True|2026-02-24T13:17:50.6475487+08:00;False|2026-02-24T13:17:16.4754994+08:00;True|2026-02-09T09:03:02.9552827+08:00;False|2026-02-09T09:02:19.7888361+08:00;True|2026-01-23T16:43:00.5233443+08:00;True|2026-01-23T15:52:34.0578166+08:00;True|2026-01-23T15:18:26.9929522+08:00;True|2026-01-23T14:54:41.7989523+08:00;True|2026-01-23T14:20:36.5052445+08:00;False|2026-01-23T13:57:17.0723425+08:00;True|2026-01-23T08:08:55.5799949+08:00;False|2026-01-23T08:08:18.0965301+08:00;True|2026-01-21T13:46:11.7257946+08:00;True|2026-01-20T09:22:33.7255529+08:00;False|2026-01-20T08:33:10.2890987+08:00;True|2026-01-19T13:53:48.2079321+08:00;False|2026-01-19T13:53:24.9464993+08:00;True|2026-01-16T15:23:46.2649561+08:00;True|2026-01-16T09:00:43.1528772+08:00;</History>
    <History>True|2026-04-29T08:00:17.6440714Z;True|2026-04-29T14:14:09.1651505+08:00;False|2026-04-29T14:13:54.1872312+08:00;True|2026-04-24T15:49:18.5984317+08:00;True|2026-04-24T15:18:37.7596765+08:00;False|2026-04-24T15:18:27.3527276+08:00;True|2026-04-24T14:34:40.4556991+08:00;True|2026-04-23T15:33:33.6935128+08:00;True|2026-04-23T13:07:44.0967026+08:00;True|2026-04-23T11:44:04.1791314+08:00;True|2026-04-23T11:37:21.5525136+08:00;False|2026-04-23T11:37:11.8652401+08:00;True|2026-04-21T19:59:04.4142925+08:00;False|2026-04-21T19:58:56.0531602+08:00;True|2026-04-20T16:04:39.0536757+08:00;True|2026-04-16T11:30:27.4548617+08:00;True|2026-04-16T11:28:16.2273318+08:00;True|2026-04-15T14:26:05.9192637+08:00;False|2026-04-15T14:25:55.1433729+08:00;True|2026-04-15T10:09:40.2224711+08:00;True|2026-04-15T10:01:41.2211939+08:00;False|2026-04-15T10:01:33.5163195+08:00;True|2026-04-10T14:40:32.9638263+08:00;True|2026-04-10T14:09:17.8938591+08:00;True|2026-04-10T09:43:03.1496594+08:00;False|2026-04-10T09:42:48.1357703+08:00;True|2026-04-04T14:02:29.0801567+08:00;False|2026-04-04T14:02:19.7271116+08:00;True|2026-04-02T15:43:33.7777154+08:00;False|2026-04-02T15:43:18.7956363+08:00;True|2026-03-27T14:21:25.0796115+08:00;True|2026-03-26T11:06:46.4787179+08:00;False|2026-03-26T11:06:35.4166660+08:00;True|2026-03-25T16:10:29.4610079+08:00;False|2026-03-25T16:10:15.2610463+08:00;True|2026-03-25T16:05:31.2437927+08:00;False|2026-03-25T16:04:42.8165129+08:00;True|2026-03-25T15:51:12.3488143+08:00;True|2026-03-25T15:41:15.4809614+08:00;True|2026-03-25T15:36:47.6377104+08:00;True|2026-03-25T15:24:05.9533971+08:00;True|2026-03-25T15:08:09.4213443+08:00;True|2026-03-25T15:02:35.5966546+08:00;True|2026-03-25T14:39:57.1426058+08:00;True|2026-03-23T22:27:05.9947039+08:00;True|2026-03-23T22:17:02.8820923+08:00;True|2026-03-23T21:52:15.7333002+08:00;True|2026-03-23T21:47:32.5007616+08:00;True|2026-03-23T21:40:56.5048061+08:00;True|2026-03-23T13:19:40.2829571+08:00;True|2026-03-23T12:21:19.4345768+08:00;True|2026-03-23T12:18:14.1029044+08:00;True|2026-03-23T12:14:30.8931394+08:00;True|2026-03-23T11:21:56.8156303+08:00;True|2026-03-23T11:12:41.0316561+08:00;True|2026-03-23T11:08:54.1270716+08:00;True|2026-03-23T09:56:08.8942090+08:00;True|2026-03-20T10:11:11.2023901+08:00;True|2026-03-17T09:33:58.4998522+08:00;True|2026-03-13T14:39:56.2046419+08:00;True|2026-03-13T10:45:44.5969827+08:00;False|2026-03-13T10:45:39.0031185+08:00;True|2026-03-13T10:33:50.6454960+08:00;True|2026-03-13T10:13:54.8054151+08:00;False|2026-03-13T10:13:48.7433858+08:00;True|2026-03-13T08:27:44.0365848+08:00;False|2026-03-13T08:27:15.7236925+08:00;True|2026-03-10T13:21:23.4020454+08:00;False|2026-03-10T13:20:37.7978257+08:00;True|2026-03-09T16:23:37.1957075+08:00;False|2026-03-09T16:23:09.1793900+08:00;True|2026-03-08T19:14:49.7700862+08:00;False|2026-03-08T19:13:57.9637951+08:00;True|2026-03-07T15:31:56.3119377+08:00;True|2026-03-07T15:27:26.3686205+08:00;True|2026-03-07T15:20:44.8497962+08:00;True|2026-03-07T15:16:09.1126972+08:00;True|2026-03-07T15:13:14.8502726+08:00;True|2026-03-07T15:00:35.5106409+08:00;True|2026-03-06T09:17:38.4826562+08:00;False|2026-03-06T09:17:12.2137124+08:00;True|2026-03-04T10:37:38.3542826+08:00;True|2026-03-04T10:35:38.0033181+08:00;False|2026-03-04T10:35:21.6139985+08:00;True|2026-03-04T10:10:33.7184690+08:00;False|2026-03-04T10:10:13.6608297+08:00;True|2026-02-28T14:44:48.8921146+08:00;True|2026-02-28T13:49:09.3417790+08:00;True|2026-02-28T13:36:36.7808689+08:00;True|2026-02-28T13:07:59.4097968+08:00;True|2026-02-28T11:22:16.2244092+08:00;False|2026-02-28T11:21:50.3452184+08:00;True|2026-02-27T15:15:26.7008273+08:00;False|2026-02-27T15:15:03.5165987+08:00;True|2026-02-24T13:26:35.7198126+08:00;True|2026-02-24T13:17:50.6475487+08:00;False|2026-02-24T13:17:16.4754994+08:00;True|2026-02-09T09:03:02.9552827+08:00;False|2026-02-09T09:02:19.7888361+08:00;True|2026-01-23T16:43:00.5233443+08:00;True|2026-01-23T15:52:34.0578166+08:00;True|2026-01-23T15:18:26.9929522+08:00;True|2026-01-23T14:54:41.7989523+08:00;True|2026-01-23T14:20:36.5052445+08:00;False|2026-01-23T13:57:17.0723425+08:00;True|2026-01-23T08:08:55.5799949+08:00;False|2026-01-23T08:08:18.0965301+08:00;True|2026-01-21T13:46:11.7257946+08:00;True|2026-01-20T09:22:33.7255529+08:00;False|2026-01-20T08:33:10.2890987+08:00;True|2026-01-19T13:53:48.2079321+08:00;False|2026-01-19T13:53:24.9464993+08:00;True|2026-01-16T15:23:46.2649561+08:00;True|2026-01-16T09:00:43.1528772+08:00;</History>
  </PropertyGroup>
  <ItemGroup>
    <File Include="apiapp.json">
@@ -45,28 +45,28 @@
      <publishTime>02/22/2013 16:43:40</publishTime>
    </File>
    <File Include="bin/BLL.dll">
      <publishTime>04/21/2026 19:58:24</publishTime>
      <publishTime>04/29/2026 15:59:50</publishTime>
    </File>
    <File Include="bin/BLL.pdb">
      <publishTime>04/21/2026 19:58:24</publishTime>
      <publishTime>04/29/2026 15:59:50</publishTime>
    </File>
    <File Include="bin/BouncyCastle.Crypto.dll">
      <publishTime>12/18/2020 05:32:28</publishTime>
    </File>
    <File Include="bin/DAL.dll">
      <publishTime>04/21/2026 19:58:22</publishTime>
      <publishTime>04/29/2026 15:59:44</publishTime>
    </File>
    <File Include="bin/DAL.pdb">
      <publishTime>04/21/2026 19:58:22</publishTime>
      <publishTime>04/29/2026 15:59:44</publishTime>
    </File>
    <File Include="bin/Dapper.dll">
      <publishTime>07/22/2016 22:52:40</publishTime>
    </File>
    <File Include="bin/DBUtility.dll">
      <publishTime>04/21/2026 19:58:19</publishTime>
      <publishTime>04/29/2026 15:59:38</publishTime>
    </File>
    <File Include="bin/DBUtility.pdb">
      <publishTime>04/21/2026 19:58:19</publishTime>
      <publishTime>04/29/2026 15:59:38</publishTime>
    </File>
    <File Include="bin/Fleck.dll">
      <publishTime>04/22/2021 11:48:12</publishTime>
@@ -150,10 +150,10 @@
      <publishTime>07/25/2012 19:48:56</publishTime>
    </File>
    <File Include="bin/Model.dll">
      <publishTime>04/21/2026 19:58:20</publishTime>
      <publishTime>04/29/2026 15:59:41</publishTime>
    </File>
    <File Include="bin/Model.pdb">
      <publishTime>04/21/2026 19:58:20</publishTime>
      <publishTime>04/29/2026 15:59:41</publishTime>
    </File>
    <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
      <publishTime>08/18/2025 16:11:18</publishTime>
@@ -189,34 +189,34 @@
      <publishTime>11/13/2012 20:19:34</publishTime>
    </File>
    <File Include="bin/Pub_Class.dll">
      <publishTime>04/21/2026 19:58:16</publishTime>
      <publishTime>04/29/2026 15:59:33</publishTime>
    </File>
    <File Include="bin/Pub_Class.pdb">
      <publishTime>04/21/2026 19:58:16</publishTime>
      <publishTime>04/29/2026 15:59:33</publishTime>
    </File>
    <File Include="bin/Pub_Control.dll">
      <publishTime>04/21/2026 19:58:18</publishTime>
      <publishTime>04/29/2026 15:59:36</publishTime>
    </File>
    <File Include="bin/Pub_Control.pdb">
      <publishTime>04/21/2026 19:58:18</publishTime>
      <publishTime>04/29/2026 15:59:36</publishTime>
    </File>
    <File Include="bin/RestSharp.dll">
      <publishTime>08/31/2012 06:22:50</publishTime>
    </File>
    <File Include="bin/SQLHelper.dll">
      <publishTime>04/21/2026 19:58:18</publishTime>
      <publishTime>04/29/2026 15:59:36</publishTime>
    </File>
    <File Include="bin/SQLHelper.pdb">
      <publishTime>04/21/2026 19:58:18</publishTime>
      <publishTime>04/29/2026 15:59:36</publishTime>
    </File>
    <File Include="bin/Swashbuckle.Core.dll">
      <publishTime>02/16/2015 01:57:08</publishTime>
    </File>
    <File Include="bin/SyntacticSugar.dll">
      <publishTime>04/10/2026 09:35:18</publishTime>
      <publishTime>04/24/2026 16:24:01</publishTime>
    </File>
    <File Include="bin/SyntacticSugar.pdb">
      <publishTime>04/10/2026 09:35:18</publishTime>
      <publishTime>04/24/2026 16:24:01</publishTime>
    </File>
    <File Include="bin/System.Buffers.dll">
      <publishTime>07/19/2017 18:01:28</publishTime>
@@ -330,19 +330,19 @@
      <publishTime>05/09/2023 10:43:40</publishTime>
    </File>
    <File Include="bin/TopSdk.dll">
      <publishTime>04/21/2026 19:58:18</publishTime>
      <publishTime>04/29/2026 15:59:35</publishTime>
    </File>
    <File Include="bin/TopSdk.pdb">
      <publishTime>04/21/2026 19:58:18</publishTime>
      <publishTime>04/29/2026 15:59:35</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>11/24/2014 19:18:48</publishTime>
    </File>
    <File Include="bin/WebAPI.dll">
      <publishTime>04/21/2026 19:58:29</publishTime>
      <publishTime>04/29/2026 16:00:01</publishTime>
    </File>
    <File Include="bin/WebAPI.pdb">
      <publishTime>04/21/2026 19:58:29</publishTime>
      <publishTime>04/29/2026 16:00:01</publishTime>
    </File>
    <File Include="bin/WebGrease.dll">
      <publishTime>07/18/2013 01:03:52</publishTime>
@@ -567,7 +567,7 @@
      <publishTime>10/27/2025 08:51:29</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>04/21/2026 19:59:01</publishTime>
      <publishTime>04/29/2026 16:00:15</publishTime>
    </File>
  </ItemGroup>
</Project>
WebAPI/WebAPI.csproj
@@ -47,6 +47,9 @@
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Alex.Kingdee.Cloud.WebAPI.Client, Version=2.5.0.0, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\Alex.Kingdee.Cloud.WebAPI.Client.2.5.0\lib\net45\Alex.Kingdee.Cloud.WebAPI.Client.dll</HintPath>
    </Reference>
    <Reference Include="AlibabaCloud.EndpointUtil, Version=0.1.1.0, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\AlibabaCloud.EndpointUtil.0.1.1\lib\net45\AlibabaCloud.EndpointUtil.dll</HintPath>
    </Reference>
WebAPI/packages.config
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Alex.Kingdee.Cloud.WebAPI.Client" version="2.5.0" targetFramework="net45" />
  <package id="AlibabaCloud.EndpointUtil" version="0.1.1" targetFramework="net45" />
  <package id="AlibabaCloud.GatewayDingTalk" version="1.0.2" targetFramework="net45" />
  <package id="AlibabaCloud.GatewaySpi" version="0.0.3" targetFramework="net45" />
sdk_dingding/TopSdk/bin/Debug/TopSdk.dll
Binary files differ
sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb
Binary files differ
sdk_dingding/TopSdk/bin/Release/TopSdk.dll
Binary files differ
sdk_dingding/TopSdk/bin/Release/TopSdk.pdb
Binary files differ
sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.AssemblyReference.cache
Binary files differ
sdk_dingding/TopSdk/obj/Debug/TopSdk.dll
Binary files differ
sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb
Binary files differ
sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache
Binary files differ
sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.CoreCompileInputs.cache
New file
@@ -0,0 +1 @@
eb64bc61f5da8fdd8ad56e04c391e3a377d8ca59
sdk_dingding/TopSdk/obj/Release/TopSdk.dll
Binary files differ
sdk_dingding/TopSdk/obj/Release/TopSdk.pdb
Binary files differ