1
chenhaozhe
6 天以前 58e61ae3142d1d98e9cc4f9b283e504e82152bf0
1
21个文件已修改
1个文件已添加
2个文件已删除
1751 ■■■■ 已修改文件
SyntacticSugar/bin/Debug/SyntacticSugar.dll 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/bin/Debug/SyntacticSugar.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Debug/SyntacticSugar.dll 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Debug/SyntacticSugar.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Release/.NETFramework,Version=v4.5.AssemblyAttributes.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/obj/Release/SyntacticSugar.csproj.FileListAbsolute.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WarM/条码打印/Gy_BarCodeBill_Rework.cs 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/App_Start/WebApiConfig.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/BaseSet/Gy_SampleSchemeController.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/BaseSet/Kf_WIPBalController.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/WebAPIController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Gy_CostItemController.cs 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/条码管理/WEBSController.cs 1077 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/通用方法/文件上传/WebFileController.cs 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Properties/PublishProfiles/FolderProfile2.pubxml.user 182 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj.user 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/bin/Debug/TopSdk.dll 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Debug/TopSdk.dll 补丁 | 查看 | 原始文档 | blame | 历史
sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb 补丁 | 查看 | 原始文档 | blame | 历史
SyntacticSugar/bin/Debug/SyntacticSugar.dll
Binary files differ
SyntacticSugar/bin/Debug/SyntacticSugar.pdb
Binary files differ
SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
@@ -1,38 +1,6 @@
D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.dll
D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.pdb
D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.dll
D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
C:\Users\19858\Desktop\智云迈思\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.dll
C:\Users\19858\Desktop\智云迈思\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.pdb
C:\Users\19858\Desktop\智云迈思\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
C:\Users\19858\Desktop\智云迈思\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.dll
C:\Users\19858\Desktop\智云迈思\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
D:\工作代码\智云迈思\MES\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.dll
D:\工作代码\智云迈思\MES\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.pdb
D:\工作代码\智云迈思\MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
D:\工作代码\智云迈思\MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
D:\工作代码\智云迈思\MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.dll
D:\工作代码\智云迈思\MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
D:\WMES\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.dll
D:\WMES\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.pdb
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/.NETFramework,Version=v4.5.AssemblyAttributes.cs
File was deleted
SyntacticSugar/obj/Release/SyntacticSugar.csproj.FileListAbsolute.txt
File was deleted
WarM/ÌõÂë´òÓ¡/Gy_BarCodeBill_Rework.cs
@@ -601,28 +601,28 @@
                if (oSystemParameter.ShowBill(ref Ret))
                {
                    //生成物料条码时,机型码不允许为空,如若物料代码前缀不为G或L的,可跳过控制
                    if (oSystemParameter.omodel.Gy_BarCodeBill_Rework_Ctrl != "")
                    {
                        string[] HMaterNumberPrefix = oSystemParameter.omodel.Gy_BarCodeBill_Rework_Ctrl.Split(',');
                        for (int j = 0; j < grdMain.Rows.Count; j++)
                        {
                            if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) == 0)
                            {
                                continue;
                            }
                    //if (oSystemParameter.omodel.Gy_BarCodeBill_Rework_Ctrl != "")
                    //{
                    //    string[] HMaterNumberPrefix = oSystemParameter.omodel.Gy_BarCodeBill_Rework_Ctrl.Split(',');
                            char HMaterfirstChar = grdMain.Rows[j].Cells[HMaterNumberCol].Value.ToString()[0];
                    //    for (int j = 0; j < grdMain.Rows.Count; j++)
                    //    {
                    //        if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) == 0)
                    //        {
                    //            continue;
                    //        }
                            if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) != 0 && grdMain.Rows[j].Cells[HSubjoin2Col].Value.ToString() == "" && HMaterNumberPrefix.Contains(HMaterfirstChar.ToString()))
                            {
                                MessageBox.Show("第" + (j + 1) + "行,机型码未维护,不允许生成条码");
                                bc.Enabled = true;
                                return;
                            }
                        }
                    }
                }
                    //        char HMaterfirstChar = grdMain.Rows[j].Cells[HMaterNumberCol].Value.ToString()[0];
                    //        if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) != 0 && grdMain.Rows[j].Cells[HSubjoin2Col].Value.ToString() == "" && HMaterNumberPrefix.Contains(HMaterfirstChar.ToString()))
                    //        {
                    //            MessageBox.Show("第" + (j + 1) + "行,机型码未维护,不允许生成条码");
                    //            bc.Enabled = true;
                    //            return;
                    //        }
                    //    }
                    //}
                }
                oCn.BeginTran();
                Application.DoEvents();
WebAPI/App_Start/WebApiConfig.cs
@@ -37,6 +37,10 @@
            //// å¯ç”¨JWT响应拦截器,自动刷新JWT
            //config.MessageHandlers.Add(new TokenAppendHandler());
<<<<<<< HEAD
            // config.Filters.Add(new SignatureVerifyAttribute());
            //// å…¨å±€å¯ç”¨ JWT è®¤è¯
            // config.Filters.Add(new JwtAuthorizeAttribute());
        }
    }
WebAPI/Controllers/BaseSet/Gy_SampleSchemeController.cs
@@ -275,16 +275,9 @@
                ",HEndFlag=" + Convert.ToString(list[0].HEndFlag ? 1 : 0) +
                ",HStopflag=" + Convert.ToString(list[0].HStopflag ? 1 : 0) +
                ",HRemark='" + list[0].HRemark + "'" +
                ",HHelpCode='" + list[0].HHelpCode + "'" +
                ",HUseFlag='" + list[0].HUseFlag + "'" +
                ",HMakeTime='" + list[0].HMakeTime + "'" +
                ",HMakeEmp='" + HMakeEmp + "'" +
                ",HCheckEmp='" + list[0].HCheckEmp + "'" +
                ",HCheckTime='" + list[0].HCheckTime + "'" +
                ",HModifyEmp='" + list[0].HModifyEmp + "'" +
                ",HModifyTime='" + list[0].HModifyTime + "'" +
                ",HStopEmp='" + list[0].HStopEmp + "'" +
                ",HStopTime='" + list[0].HStopTime + "'" +
                ",HHelpCode='" + list[0].HHelpCode + "'" +
                ",HModifyEmp='" + list[0].HMakeEmp + "'" +
                ",HModifyTime=getdate()" +
                ",HUSEORGID=" + list[0].HUSEORGID +
                ",HCREATEORGID=" + list[0].HCREATEORGID +
                ",HInterID=" + list[0].HInterID +
WebAPI/Controllers/BaseSet/Kf_WIPBalController.cs
@@ -160,11 +160,7 @@
                        }
                        else if (costObject == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,该" + HORGName + "组织,成本对象:" + costObject + ",为空";
                            objJsonResult.data = null;
                            return objJsonResult;
                            tb2.Rows[i]["HCostObjID"] = 0;
                        }
                        else
                        {
WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs
@@ -160,7 +160,7 @@
                    [HCusID], [HPMEmpID], [HWorkEmpID], [HProSituation], [HProRisk], [HProProgramme], 
                    [HReportEmpID], [HOrgID]
                ) 
                VALUES ({DateTime.Now.Year}, {DateTime.Now.Month},  '{list[0].HBillType}',  '{list[0].HBillSubType}', {list[0].HInterID},  '{list[0].HDate}',  '{list[0].HBillNo}',  1, 0,  0, 0, '{list[0].HRemark ?? ""}',  '{list[0].HBacker ?? ""}',  '{(list[0].HBackDate)}',  '{list[0].HBackRemark ?? ""}', '{list[0].HChecker ?? ""}',  '{(list[0].HCheckDate)}',  '{list[0].HMaker ?? ""}',  '{(list[0].HMakeDate)}',  '{list[0].HUpDater ?? ""}',  '{(list[0].HUpDateDate)}',  '{list[0].HCloseMan ?? ""}',  '{(list[0].HCloseDate)}',  '{list[0].HCloseType }',  '{list[0].HDeleteMan ?? ""}',  '{(list[0].HDeleteDate)}',  '{list[0].HMainSourceBillType ?? ""}',  '{list[0].HMainSourceInterID}',  '{list[0].HMainSourceEntryID}',  '{list[0].HMainSourceBillNo ?? ""}',  '{list[0].HPrintQty}',   {list[0].HProjectID },  '{list[0].HProNumber ?? ""}',  '{list[0].HProName ?? ""}',  {list[0].HCusID },  {list[0].HPMEmpID }, {list[0].HWorkEmpID }, '{list[0].HProSituation ?? ""}', '{list[0].HProRisk ?? ""}', '{list[0].HProProgramme ?? ""}', {list[0].HReportEmpID}, {100038} );";
                VALUES ({DateTime.Now.Year}, {DateTime.Now.Month},  '{list[0].HBillType}',  '{list[0].HBillSubType}', {list[0].HInterID},  '{list[0].HDate}',  '{list[0].HBillNo}',  1, 0,  0, 0, '{list[0].HRemark ?? ""}',  '{list[0].HBacker ?? ""}',  '{(list[0].HBackDate)}',  '{list[0].HBackRemark ?? ""}', '{ ""}',  '{(list[0].HCheckDate)}',  '{list[0].HMaker ?? ""}',  '{(list[0].HMakeDate)}',  '{list[0].HUpDater ?? ""}',  '{(list[0].HUpDateDate)}',  '{list[0].HCloseMan ?? ""}',  '{(list[0].HCloseDate)}',  '{list[0].HCloseType }',  '{list[0].HDeleteMan ?? ""}',  '{(list[0].HDeleteDate)}',  '{list[0].HMainSourceBillType ?? ""}',  '{list[0].HMainSourceInterID}',  '{list[0].HMainSourceEntryID}',  '{list[0].HMainSourceBillNo ?? ""}',  '{list[0].HPrintQty}',   {list[0].HProjectID },  '{list[0].HProNumber ?? ""}',  '{list[0].HProName ?? ""}',  {list[0].HCusID },  {list[0].HPMEmpID }, {list[0].HWorkEmpID }, '{list[0].HProSituation ?? ""}', '{list[0].HProRisk ?? ""}', '{list[0].HProProgramme ?? ""}', {list[0].HReportEmpID}, {100038} );";
                    oCN.RunProc(sql);
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
@@ -180,6 +180,8 @@
                    ",HProRisk='" + list[0].HProRisk + "'" +
                    ",HProProgramme='" + list[0].HProProgramme + "'" +
                    ",HReportEmpID=" + list[0].HReportEmpID +
                    ",HUpDater='" + UserName +"'"+
                    ",HUpDateDate='" + DateTime.Now +"'"+
                    " Where HInterID=" + list[0].HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
@@ -268,7 +270,15 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DataSet ds=oCN.RunProcReturn("select HChecker from PM_ProjectCommunicationBillMain where HInterID=" + HInterID, "PM_ProjectCommunicationBillMain");
                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;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from PM_ProjectCommunicationBillMain where HInterID = " + HInterID);
WebAPI/Controllers/WebAPIController.cs
@@ -24365,6 +24365,9 @@
        }
        #endregion
        #region APP根据设备id进行自动登录
        [HttpGet]
        [Route("Web/getSysParameter")]
        public object getSysParameter(string HClientID)
@@ -24408,5 +24411,8 @@
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_CostItemController.cs
@@ -712,27 +712,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(), oItem.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(), oItem.HItemID))
                        //    {
                        //        oBill.oModel.HParentID = oBill.oModel.HItemID;
                        //    }
                        //    else
                        //    {
                        //        objJsonResult.code = "0";
                        //        objJsonResult.count = 0;
                        //        objJsonResult.Message = "保存失败!上级代码不存在或被禁用!";
                        //        objJsonResult.data = 1;
                        //        return objJsonResult;
                        //    }
                        //}
                    }
                    //得到短代码
                    string sShortNumber;
WebAPI/Controllers/ÌõÂë¹ÜÀí/WEBSController.cs
@@ -15186,7 +15186,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
                    objJsonResult.Message = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -15582,113 +15582,6 @@
        #region è°ƒç”¨é‡‘蝶webapi接口同步基础资料方法
        #region ç‰©æ–™åŸºç¡€èµ„料同步
        [Route("WEBSController/MaterialDataToLocalByKDWebApi")]
        [HttpGet]
        public object MaterialDataToLocalByKDWebApi(string HDate,int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    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";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_MATERIAL\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FApproveDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å°†é‡‘蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
        public static JArray ConvertKingdeeResultToObjects(string rawJson, string fieldKeys)
        {
@@ -15724,6 +15617,974 @@
        }
        #endregion
        #region ç‰©æ–™åŸºç¡€èµ„料同步
        [Route("WEBSController/MaterialDataToLocalByKDWebApi")]
        [HttpGet]
        public object MaterialDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            string sJson = "";
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    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";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    sJson = $"{{\"FormId\":\"BD_MATERIAL\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FApproveDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    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;
                LogService.Write("单据查询物料信息发生异常!:" + e.ToString() + "=======递入JSON参数:" + sJson);
                oCn.RollBack();//回滚事务
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据查询物料信息发生异常!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region è®¡é‡å•位基础资料同步[接口里面查询不到创建组织和使用组织,先存0,然后数据库刷新下]
        [Route("WEBSController/UnitDataToLocalByKDWebApi")]
        [HttpGet]
        public object UnitDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FUNITID,FNumber,FName,FFORBIDSTATUS";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_UNIT\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FApproveDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_Unit where HItemID = {item["FUNITID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_Unit on");
                        //重新写入表
                        oCn.RunProc($"insert into Gy_Unit(HItemID,HERPItemID,HNumber,HName,HShortNumber,HParentID" +
                        $", HLevel,HEndFlag,HStopflag,HRemark,HUseFlag,HRate" +
                        $", HMakeTime,HStandard,HCREATEORGID,HUSEORGID) " +
                        $" values ( {item["FUNITID"]?.ToString()},{item["FUNITID"]?.ToString()},'{item["FNumber"]?.ToString()}','{item["FName"]?.ToString()}','{item["FNumber"]?.ToString()}'" +
                        $",0,1,1,{(item["FFORBIDSTATUS"]?.ToString() == "A" ? 0 : 1)},'WEBAPI-导入','未检测','1',getdate(),1,{0},{0}" +
                        $")");
                        oCn.RunProc("set identity_insert Gy_Unit 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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region éƒ¨é—¨åŸºç¡€èµ„料同步
        [Route("WEBSController/DepartmentDataToLocalByKDWebApi")]
        [HttpGet]
        public object DepartmentDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FDEPTID,FNumber,FName,FFORBIDSTATUS,FCREATEORGID,FUSEORGID";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_Department\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_Department where HItemID = {item["FDEPTID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_Department on");
                        //重新写入表
                        oCn.RunProc("Insert Into Gy_Department " +
              "(HItemID,HNumber,HShortNumber,HName,HParentID" +
              ",HLevel,HEndFlag,HRemark,HStopFlag,HUseFlag" +
              ",HCREATEORGID,HUSEORGID,HERPItemID" +
              ") " +
              " values('" + item["FDEPTID"] + "','" + item["FNumber"] + "','" + item["FNumber"] + "','" + item["FName"] + "',0" +
              ",'',0,'" + "CLD-ERP导入" + "',0,''" +
              "," + item["FCREATEORGID"] + "," + item["FCREATEORGID"] + "," + item["FDEPTID"] +
            ") ");
                        oCn.RunProc("set identity_insert Gy_Department 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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä»“库基础资料同步
        [Route("WEBSController/StockDataToLocalByKDWebApi")]
        [HttpGet]
        public object StockDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FSTOCKID,FNumber,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FIsOpenLocation,FAllowMinusQty,FSTOCKPROPERTY";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_STOCK\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_Warehouse where HItemID = {item["FSTOCKID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_Warehouse on");
                        //重新写入表
                        oCn.RunProc("Insert into Gy_Warehouse  " +
                        " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                        ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID,HCREATEORGID,HSPFlag,HSPGroupID,HUnderStock,HSTOCKPROPERTY,HERPItemID) " +
                        " Values('" + item["FSTOCKID"] + "','" + item["FNumber"] + "','" + item["FName"] + "','" +0 + "','" + item["FNumber"] + "'," + 1 +
                        "," + 1 + "," + "'true'" + "," + Convert.ToString(item["FFORBIDSTATUS"].ToString()=="A" ? 0 : 1) + ",'" + "CLD-ERP导入" + "'," + 0 + ",'" + item["FAddress"] + "','" + item["FTel"] + "','" + item["FUSEORGID"] + "','" + item["FUSEORGID"] + "','" + item["FIsOpenLocation"] + "','" + item["FSTOCKID"] + "','" + item["FAllowMinusQty"] + "','" + item["FSTOCKPROPERTY"] + "'," + item["FSTOCKID"] + ")", ref DBUtility.ClsPub.sExeReturnInfo);
                        oCn.RunProc("set identity_insert Gy_Warehouse 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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä¾›åº”商基础资料同步
        [Route("WEBSController/SupplierDataToLocalByKDWebApi")]
        [HttpGet]
        public object SupplierDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FSUPPLIERID,FNumber,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FAddress,FContact,FMobile,FLocNewContact ,FFax,FEMail ,FBankCode ,FBankHolder,FTaxType,FTaxRateId ,FCountry ,FPayCurrencyId";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_Supplier\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_Supplier where HItemID = {item["FSUPPLIERID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_Supplier on");
                        oCn.RunProc("Insert Into Gy_Supplier " +
                         "(HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                             ",HLevel,HEndFlag,HStopflag,HRemark" +
                             ",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
                             ",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
                             ",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
                             ",HEnglishAddress,HCurID,HSSID,HAreaID,HMaterClass,HERPItemID,HUseOrgID,HCreateOrgID) " +
                         " values('" + item["FSUPPLIERID"] + "','" + item["FNumber"] + "','" + item["FName"] + "','" + 1 + "','" + item["FNumber"] + "','" + 1 + "'" +
                         "," + 1+ ",0,'" + (item["FFORBIDSTATUS"].ToString() == "A" ? 0 : 1) + "','" + "CLD-ERP导入" + "'" +
                         ",'" + item["FName"] + "','" + item["FAddress"] + "','" + item["FLocNewContact"] + "','" + item["FMobile"] + "','" + item["FMobile"] + "'" +
                         ",'" + item["FFax"] + "','" + 0 + "','" + item["FEMail "] + "','" + item["FBankHolder"] + "','" + item["FBankCode"] + "'" +
                         ",'" + item["FTaxType"] + "','" + item["FTaxRateId  "] + "','" + item["FCountry "] + "','" + "" + "','" + "" + "'" +
                         ",'" + item["FAddress"] + "'," + item["FPayCurrencyId"] + "," + 0 + "," + 0 + ",'" + 0 +
                         "'," + item["FSUPPLIERID"] + ",'" + item["FCREATEORGID"] + "','" + item["FCREATEORGID"] +
                          "') ");
                        oCn.RunProc("set identity_insert Gy_Supplier 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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å•位换算基础资料同步
        [Route("WEBSController/UnitConvertRateDataToLocalByKDWebApi")]
        [HttpGet]
        public object UnitConvertRateDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FUNITCONVERTRATEID,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FBILLNO,FMATERIALID,FCURRENTUNITID,FDESTUNITID,FCONVERTTYPE,FCONVERTNUMERATOR,FCONVERTDENOMINATOR,FCREATORID,FCREATEDATE,FAPPROVERID,FAPPROVEDATE,FMODIFIERID,FMODIFYDATE,FFORBIDDERID,FFORBIDDATE";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_MATERIALUNITCONVERT\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FApproveDate   >= '{HDate}'\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_UnitConvertRate where HItemID = {item["FUNITCONVERTRATEID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_UnitConvertRate on");
                       string sql = "Insert into Gy_UnitConvertRate " +
                   "(HItemID,HNumber,HName,HShortNumber,HParentID,HLevel," +
                   "HEndFlag,HStopflag,HRemark,HUseFlag,HUSEORGID,HCREATEORGID," +
                   "HBILLNO,HMATERID,HCURRENTUNITID,HDESTUNITID,HCONVERTTYPE,HCONVERTNUMERATOR," +
                   "HCONVERTDENOMINATOR,HFORBIDSTATUS,HUnitID,HMaterNumber," +
                   "HMakeEmp,HMakeTime,HCheckEmp,HCheckTime,HModifyEmp,HModifyTime,HStopEmp,HStopTime) " +
                   "values('" + item["FUNITCONVERTRATEID"] + "','"  + "','"  + "','"  + "'," + 1 + "," + 1 + ",'" +
                   "true" + "','" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "','CLD-ERP导入','已使用','" + item["FUSEORGID"] + "','" + item["FUSEORGID"] + "'" +
                   ",'" + item["FBILLNO"] + "','" + item["FMATERIALID"] + "','" + item["FCURRENTUNITID"] + "','" + item["FDESTUNITID"] + "','" + item["FCONVERTTYPE"] + "','" + item["FCONVERTNUMERATOR"] + "'" +
                   ",'" + item["FCONVERTDENOMINATOR"] + "','" + item["FFORBIDSTATUS"] + "','" + 0 + "','"  + "'" +
                   ",'" + item["FCREATORID"] + "','" + item["FCREATEDATE"] + "','" + item["FAPPROVERID"] + "','" + item["FAPPROVEDATE"] + "','" +
                   item["FMODIFIERID"] + "','" + item["FMODIFYDATE"] + "','" + item["FFORBIDDERID"] + "','" + item["FFORBIDDATE"] + "')";
                        oCn.RunProc(sql);
                        oCn.RunProc("set identity_insert Gy_UnitConvertRate 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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å‘˜å·¥åŸºç¡€èµ„料同步
        [Route("WEBSController/StaffDataToLocalByKDWebApi")]
        [HttpGet]
        public object StaffDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FPERSONID,FNumber,FName,FUSEORGID,FCREATEORGID,FPOSTID,FFIRSTCARDID,FSTAFFNUMBER";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_Empinfo\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_Staff where HItemID = {item["FPERSONID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_Staff on");
                        oCn.RunProc($@"insert into Gy_Staff(HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID
                            ,HLevel,HEndFlag,HStopflag,HRemark,HUseFlag,HUSEORGID
                            ,HCREATEORGID,HPERSONID,HPOSTID,HFIRSTCARDID,HDEPTID,HSTAFFNUMBER)
                  values({item["FPERSONID"]},'{item["FNUMBER"]}','{item["FNAME"]}','{""}','{item["FNUMBER"]}',
                        {1},{1},{"'true'"},{ 0 },
                        '{"CLD-ERP"}','{""}',{item["FUSEORGID"]},{item["FCREATEORGID"]},{item["FPERSONID"]},
                        {item["FPOSTID"]},{item["FFIRSTCARDID"]},{0},'{item["FSTAFFNUMBER"]}')", ref DBUtility.ClsPub.sExeReturnInfo);
                        oCn.RunProc("set identity_insert Gy_Staff 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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å®¢æˆ·åŸºç¡€èµ„料同步
        [Route("WEBSController/CustomerDataToLocalByKDWebApi")]
        [HttpGet]
        public object CustomerDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FCUSTID,FNUMBER,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FLOCATIONSTATUS,FADDRESS,FTContact,FMOBILE ,FTAXRATE1,FZIP,FTEL,FEMail ,FINVOICEBANKNAME,FINVOICEBANKACCOUNT,FTaxRate ,FTAXREGISTERCODE ,FCOUNTRY ,FTRADINGCURRID ,FSETTLETYPEID ,FSELLER ,FCustTypeId ";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_Customer\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAPPROVEDATE  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_Customer where HItemID = {item["FCUSTID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_Customer on");
                        oCn.RunProc("Insert into Gy_Customer " +
                    " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                    ",HLevel,HEndFlag,HStopflag,HRemark" +
                    ",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
                    ",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
                    ",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
                    ",HEnglishAddress,HCurID,HSSID,HAreaID,HCusStatus" +
                    ",HEmpID,HCreditDate,HCreditRatingDate,HMaxCreditRatingDate" +
                    ",HMonthUseQty,HForecastCreditRating,HCreditLevelID,HCountAccrualRating" +
                    ",HSubsidyAccrualRating,HCreditRating,HMaxCreditRating" +
                    ",HCusTypeID,HERPItemID,HUseOrgID,HCreateOrgID) " +
                    " Values('" + item["FCUSTID"] + "','" + item["FNUMBER"] + "','" + item["FName"] + "','" + 1 + "','" + item["FNUMBER"] + "'," + 1 +
                    ", " + 1 + ",0,'" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "','" + "ERP导入" + "'" +
                    ",'" + item["FName"] + "','" + item["FADDRESS"] + "','" + item["FTContact"] + "','" + item["FMOBILE"] + "','" + item["FTEL"] + "'" +
                    ",'" + item["FTAXRATE1"] + "','" + item["FZIP"] + "','" + item["FEMail"] + "','" + item["FINVOICEBANKNAME"] + "','" + item["FINVOICEBANKACCOUNT"] + "'" +
                    ",'" + item["FTAXREGISTERCODE"] + "'," + item["FTaxRate"] + ",'" + item["FCOUNTRY"] + "','','','','" + item["FTRADINGCURRID"] + "','" + item["FSETTLETYPEID"] + "'," + 0 + ",'" + "合格" + "'" +
                    ",'" + 0+ "'," + 0 + "," + 0 + "," + 0 +
                    "," + 0 + "," + 0 + "," + 0+ "," + 0 +
                    "," + 0 + "," + 0 + "," + 0 +
                    ", '" + 0 + "','" + item["FCUSTID"] + "','" + item["FUSEORGID"] + "','" + item["FCREATEORGID"] + "')");
                        string sql = "set identity_insert gy_Customer off";
                        oCn.RunProc(sql);
                    }
                }
                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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ç»„织基础资料同步
        [Route("WEBSController/ORGANIZATIONSDataToLocalByKDWebApi")]
        [HttpGet]
        public object ORGANIZATIONSDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FORGID,FNUMBER,FName,FParentid,FFORBIDSTATUS";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"ORG_Organizations\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAUDITDATE  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Xt_ORGANIZATIONS where HItemID = {item["FORGID"]?.ToString()}");
                       // oCn.RunProc("set identity_insert Xt_ORGANIZATIONS on");
                        string sql = "Insert into Xt_ORGANIZATIONS  (HItemID,HNumber,HName,HParentID,HStopflag,HMakeTime,HRemark)" +
                          " values('" + item["FORGID"] + "','" + item["FNUMBER"] + "','" + item["FNAME"] + "','" + item["FParentid"] + "','" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "'," +
                         "getdate(),'" + "CLD导入" +
                          "') ";
                        oCn.RunProc(sql);
                        //oCn.RunProc("set identity_insert Xt_ORGANIZATIONS 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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region è¾…助属性基础资料同步
        [Route("WEBSController/PropertyDataToLocalByKDWebApi")]
        [HttpGet]
        public object PropertyDataToLocalByKDWebApi(string HDate, int limit)
        {
            bool hasMore = true;//是否循环查询
            try
            {
                //访问金蝶
                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 (!bLogin)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //要通过接口查询的字段
                string fieldKeys = "FAuxPtyValueID,FAuxPtyNumber,FAuxPtyName,FBillNo,FFORBIDSTATUS";
                oCn.BeginTran();//开始事务
                while (hasMore) //循环分组查询,避免漏同步
                {
                    //拼接单据查询接口参数
                    string sJson = $"{{\"FormId\":\"BD_AuxPtyValue\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
                    //调用金蝶webapi单据查询接口
                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
                    new object[] { sJson });
                    //将金蝶单据查询WEBAPI接口返回的纯数组转换为带字段名的对象列表
                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
                    if (formattedData.Count < limit)
                    {
                        hasMore = false; // å¦‚果本次返回的数量少于请求的 limit,说明已经是最后一页了
                    }
                    else
                    {
                        startRow += limit; // å¦åˆ™ï¼Œå¢žåŠ èµ·å§‹è¡Œç´¢å¼•ï¼Œå‡†å¤‡è¯·æ±‚ä¸‹ä¸€é¡µ
                    }
                    foreach (JObject item in formattedData)
                    {
                        //删除原有记录
                        oCn.RunProc($"delete from Gy_Property where HItemID = {item["FAuxPtyValueID"]?.ToString()}");
                        oCn.RunProc("set identity_insert Gy_Property on");
                        oCn.RunProc($@"insert into Gy_Property(HItemID,HNumber,HShortNumber,HName,HHelpCode,HParentID
                    ,HLevel,HEndFlag,HStopflag,HRemark,HPropertyTypeID,HUseFlag,HERPItemID,HMakeTime)
                  values({item["FAuxPtyValueID"]},'{item["FAuxPtyNumber"]}','{item["FAuxPtyNumber"]}','{item["FAuxPtyName"]}','{1}',{1},{1}
           ,{ 1},{Convert.ToString(item["FFORBIDSTATUS"].ToString()=="A" ? 0 : 1) },'{"ERP导入"}',{1},'{1}',{item["FAuxPtyValueID"]},{"getdate()"})", ref DBUtility.ClsPub.sExeReturnInfo);
                        oCn.RunProc("set identity_insert Gy_Property 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();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #endregion
    }
}
WebAPI/Controllers/ͨÓ÷½·¨/ÎļþÉÏ´«/WebFileController.cs
New file
@@ -0,0 +1,265 @@
using DAL;
using DBUtility;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using SQLHelper;
using System;
using System.Text;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using WebAPI;
using WebAPI.Controllers.SCGL.日计划管理;
using WebAPI.Models;
using WebAPI.Service;
using SyntacticSugar.constant;
using System.Text.RegularExpressions;
namespace WebAPI.Controllers
{
    public class WebFileController : ApiController
    {
        //通用文件上传控制器
        public string sWhere = "";
        public WebServer webserver = new WebServer();
        public DataSet ds = new DataSet();
        private json objjson = new json();
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        string fileip = System.Configuration.ConfigurationManager.AppSettings["FileIP"];
        #region æ–‡ä»¶ä¸Šä¼ 
        [Route("WebFile/UploadFile_WebFile")]
        [HttpPost]
        public object UploadFile_WebFile()
        {
            string path = "";
            string HBillType = HttpContext.Current.Request.Params["HBillType"];  //单据类型
            string HBillNo = HttpContext.Current.Request.Params["HBillNo"];  //单据号
            string HRemark = HttpContext.Current.Request.Params["HRemark"];  //备注
            string HUserName = HttpContext.Current.Request.Params["HUserName"];  //创建人
            HttpPostedFile files = HttpContext.Current.Request.Files["file"];
            // === åŠ¨æ€ç¡®å®šåŸºç¡€æ–‡ä»¶å¤¹ï¼ˆæ ¹æ®å•æ®ç±»åž‹ï¼‰ ===
            string baseFolder = "Files/WebFile/";  // é»˜è®¤è·¯å¾„
            if (HBillType == "3907")
                baseFolder = "Files/Sb_EquipConkBookBill/";      // è®¾å¤‡æ•…障登记单
            else if (HBillType == "3920")
                baseFolder = "Files/Sb_EquipRepairSignBill/";   // è®¾å¤‡ç»´ä¿®ç­¾åˆ°å•
            else if (HBillType == "3909")
                baseFolder = "Files/Sb_EquipRepairSendWorkBill/";   // è®¾å¤‡ç»´ä¿®æ´¾å·¥å•
            else if (HBillType == "3910")
                baseFolder = "Files/Sb_EquipRepairWorkBill/";   // è®¾å¤‡ç»´ä¿®è®°å½•单
            else if (HBillType == "3911")
                baseFolder = "Files/Sb_EquipRepairCheckBill/";   // è®¾å¤‡ç»´ä¿®éªŒæ”¶å•
            else if (HBillType == "3815")
                baseFolder = "Files/Sc_MouldConkBookBill/";   // æ¨¡å…·æ•…障登记单
            else if (HBillType == "3843")
                baseFolder = "Files/Sc_MouldRepairSendWorkBill/";   // æ¨¡å…·ç»´ä¿®æ´¾å·¥å•
            else if (HBillType == "3807")
                baseFolder = "Files/Sc_MouldRepairWorkBill/";   // æ¨¡å…·ç»´ä¿®è®°å½•单
            else if (HBillType == "3817")
                baseFolder = "Files/Sc_MouldRepairCheckBill/";   // æ¨¡å…·ç»´ä¿®éªŒæ”¶
            path = HttpContext.Current.Server.MapPath("~/../" + baseFolder + HBillNo);
            dynamic dyResult = UploadFile_WebFile(files, path, HBillNo, HRemark, HUserName, baseFolder);
            if (dyResult != null && dyResult.result == 1)
            {
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "上传成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = dyResult.returnval;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public dynamic UploadFile_WebFile(HttpPostedFile files, string path, string HBillNo, string HRemark, string HUserName, string baseFolder)
        {
            dynamic Result_Ob = new { result = 1, returnval = "上传成功!" };
            string filePath = Path.GetFullPath(files.FileName);//文件上传路径
            string fileExtension = Path.GetExtension(files.FileName);// æ–‡ä»¶æ‰©å±•名
            string filename = files.FileName;//文件名
            string fileSavePath = path;// ä¸Šä¼ ä¿å­˜è·¯å¾„
            int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
            int Maxsize = 40000 * 1024;//定义上传文件的最大空间大小为40M
            // æž„建数据库存储的相对路径(/ å¼€å¤´ï¼Œå¦‚ /Files/WebFile/BillNo/)
            string relativeUrlPath = "/" + baseFolder.TrimStart('~').TrimStart('/') + HBillNo + "/";
            try
            {
                if (files == null || files.ContentLength <= 0)
                {
                    Result_Ob = new { result = 0, returnval = "文件不能为空!" };
                    return Result_Ob;
                }
                if (filesize >= Maxsize)
                {
                    Result_Ob = new { result = 0, returnval = "上传文件超过40M,不能上传!" };
                    return Result_Ob;
                }
                string fileurl = Path.Combine(fileSavePath, filename);
                if (Directory.Exists(fileurl) == true)  //如果存在重名文件就提示
                {
                    Result_Ob = new { result = 0, returnval = "存在同名文件!" };
                    return Result_Ob;
                }
                //删除数据表数据
                ds = oCN.RunProcReturn("delete from MES_AccessoriesList where HSourceBillNo ='" + HBillNo + "' and HFileName='" + filename + "'", "MES_AccessoriesList");
                if (Directory.Exists(path))
                {
                    File.Delete(fileurl);      //删除指定文件
                    files.SaveAs(fileurl);
                    string StrPath = relativeUrlPath + filename;   // æ•°æ®åº“存储的相对路径+文件名
                    if (File.Exists(fileurl))
                    {
                        //写入数据表(HFilePath ä½¿ç”¨ç›¸å¯¹è·¯å¾„)
                        oCN.RunProc("Insert into MES_AccessoriesList (HFileName,HFilePath,HFilePath_Cus,HFileType" +
                                    ",HLoadMan,HLoadDate,HRemark,HVerNum,HFileSize" +
                                    ",HFileClsID,HSourceBillNo" +
                                   ") values('"
                                    + filename.ToString() + "','" + StrPath.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" +
                                    ",'" + HUserName + "',getdate(),'" + HRemark + "','V1','" + filesize +
                                    "','" + 0 + "','" + HBillNo +
                                   "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
                else
                {
                    Directory.CreateDirectory(fileSavePath); //添加文件夹
                    files.SaveAs(fileurl);
                    string StrPath = relativeUrlPath + filename;
                    if (File.Exists(fileurl))
                    {
                        oCN.RunProc("Insert into MES_AccessoriesList (HFileName,HFilePath,HFilePath_Cus,HFileType" +
                                    ",HLoadMan,HLoadDate,HRemark,HVerNum,HFileSize" +
                                    ",HFileClsID,HSourceBillNo" +
                                   ") values('"
                                    + filename.ToString() + "','" + StrPath.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" +
                                    ",'" + HUserName + "',getdate(),'" + HRemark + "','V1','" + filesize +
                                    "','" + 0 + "','" + HBillNo +
                                   "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
            }
            catch (Exception e)
            {
                Result_Ob = new { result = 0, returnval = e.Message };
            }
            return Result_Ob;
        }
        /// <summary>
        /// æ ¹æ®å•据号查找上传文件列表
        /// </summary>
        [Route("WebFile/WebFileList")]
        [HttpGet]
        public object WebFileList(string HBillNo)
        {
            try
            {
                var request = HttpContext.Current.Request;
                string baseUrl = $"{request.Url.Scheme}://{request.Url.Authority}/";
                // 2. ç›´æŽ¥ç”¨æ•°æ®åº“已有的 HFilePath + HFileName æ‹¼æŽ¥å®Œæ•´ URL
                //    HFilePath ç¤ºä¾‹ï¼š/Files/WebFile/BillNo-001/
                string sql = $@"SELECT *,  '{baseUrl}' + HFilePath  AS url  FROM MES_AccessoriesList  WHERE HSourceBillNo = '{HBillNo.Replace("'", "''")}'";
                ds = oCN.RunProcReturn(sql, "MES_AccessoriesList");
                // 3. æ­£å¸¸è¿”回数据
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        /// <summary>
        /// æ ¹æ®ID,单据号,文件名 åˆ é™¤æ–‡ä»¶ï¼ˆåŒæ—¶åˆ é™¤æ•°æ®åº“记录和服务器物理文件)
        /// </summary>
        [Route("WebFile/WebFile_DeleteFilelist")]
        [HttpGet]
        public object WebFile_DeleteFilelist(string HItemID)
        {
            try
            {
                // 1. å…ˆä»Žæ•°æ®åº“获取该文件的存储路径(HFilePath å­—段在上传时已存储了完整的相对路径+文件名)
                DataSet dsFile = oCN.RunProcReturn(
                    "select HFilePath from MES_AccessoriesList where HItemID =" + HItemID,
                    "MES_AccessoriesList");
                // 2. æž„建物理路径并删除服务器上的文件
                if (dsFile != null && dsFile.Tables[0].Rows.Count > 0)
                {
                    string relativePath = dsFile.Tables[0].Rows[0]["HFilePath"].ToString(); // å¦‚ /Files/WebFile/BillNo/xxx.pdf
                                                                                            // åŽ»æŽ‰å¼€å¤´çš„ /,然后拼到网站根目录上一级
                    string physicalPath = HttpContext.Current.Server.MapPath("~/../" + relativePath.TrimStart('/'));
                    if (File.Exists(physicalPath))
                    {
                        File.Delete(physicalPath);
                    }
                }
                // 3. åˆ é™¤æ•°æ®åº“记录
                oCN.RunProc("delete from MES_AccessoriesList where HItemID =" + HItemID);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "删除成功!";
                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
    }
}
WebAPI/Properties/PublishProfiles/FolderProfile2.pubxml.user
@@ -9,7 +9,7 @@
  </PropertyGroup>
  <ItemGroup>
    <File Include="apiapp.json">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="bin/Alex.Kingdee.Cloud.WebAPI.Client.dll">
      <publishTime>09/28/2018 16:28:36</publishTime>
@@ -48,40 +48,40 @@
      <publishTime>02/22/2013 16:43:40</publishTime>
    </File>
    <File Include="bin/BLL.dll">
      <publishTime>05/07/2026 15:11:32</publishTime>
      <publishTime>05/06/2026 16:43:13</publishTime>
    </File>
    <File Include="bin/BLL.pdb">
      <publishTime>05/07/2026 15:11:32</publishTime>
      <publishTime>05/06/2026 16:43:13</publishTime>
    </File>
    <File Include="bin/BouncyCastle.Crypto.dll">
      <publishTime>12/18/2020 05:32:28</publishTime>
    </File>
    <File Include="bin/DAL.dll">
      <publishTime>05/07/2026 15:11:29</publishTime>
      <publishTime>05/06/2026 16:43:11</publishTime>
    </File>
    <File Include="bin/DAL.pdb">
      <publishTime>05/07/2026 15:11:29</publishTime>
      <publishTime>05/06/2026 16:43:11</publishTime>
    </File>
    <File Include="bin/Dapper.dll">
      <publishTime>07/22/2016 22:52:40</publishTime>
    </File>
    <File Include="bin/DBUtility.dll">
      <publishTime>05/07/2026 15:11:23</publishTime>
      <publishTime>05/06/2026 16:43:06</publishTime>
    </File>
    <File Include="bin/DBUtility.pdb">
      <publishTime>05/07/2026 15:11:23</publishTime>
      <publishTime>05/06/2026 16:43:06</publishTime>
    </File>
    <File Include="bin/Fleck.dll">
      <publishTime>04/22/2021 11:48:12</publishTime>
    </File>
    <File Include="bin/GetuiServerApiSDK.dll">
      <publishTime>12/13/2018 15:35:36</publishTime>
      <publishTime>01/19/2026 18:29:10</publishTime>
    </File>
    <File Include="bin/GetuiServerApiSDK.dll.config">
      <publishTime>12/12/2018 17:49:02</publishTime>
      <publishTime>01/19/2026 18:29:10</publishTime>
    </File>
    <File Include="bin/Google.ProtocolBuffers.dll">
      <publishTime>12/12/2018 17:31:14</publishTime>
      <publishTime>01/19/2026 18:29:10</publishTime>
    </File>
    <File Include="bin/Grpc.Core.Api.dll">
      <publishTime>03/22/2022 13:17:26</publishTime>
@@ -108,7 +108,7 @@
      <publishTime>05/09/2021 01:08:30</publishTime>
    </File>
    <File Include="bin/Kingdee.BOS.WebApi.Client.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="bin/libgrpc_csharp_ext.x64.dylib">
      <publishTime>03/19/2022 07:38:44</publishTime>
@@ -153,13 +153,13 @@
      <publishTime>07/25/2012 19:48:56</publishTime>
    </File>
    <File Include="bin/Model.dll">
      <publishTime>05/07/2026 15:11:24</publishTime>
      <publishTime>05/06/2026 16:43:09</publishTime>
    </File>
    <File Include="bin/Model.pdb">
      <publishTime>05/07/2026 15:11:24</publishTime>
      <publishTime>05/06/2026 16:43:09</publishTime>
    </File>
    <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="bin/Newtonsoft.Json.dll">
      <publishTime>03/08/2023 15:09:56</publishTime>
@@ -192,34 +192,34 @@
      <publishTime>11/13/2012 20:19:34</publishTime>
    </File>
    <File Include="bin/Pub_Class.dll">
      <publishTime>05/07/2026 15:11:21</publishTime>
      <publishTime>05/06/2026 16:43:04</publishTime>
    </File>
    <File Include="bin/Pub_Class.pdb">
      <publishTime>05/07/2026 15:11:21</publishTime>
      <publishTime>05/06/2026 16:43:04</publishTime>
    </File>
    <File Include="bin/Pub_Control.dll">
      <publishTime>05/07/2026 15:11:22</publishTime>
      <publishTime>05/06/2026 16:43:05</publishTime>
    </File>
    <File Include="bin/Pub_Control.pdb">
      <publishTime>05/07/2026 15:11:22</publishTime>
      <publishTime>05/06/2026 16:43:05</publishTime>
    </File>
    <File Include="bin/RestSharp.dll">
      <publishTime>08/31/2012 06:22:50</publishTime>
    </File>
    <File Include="bin/SQLHelper.dll">
      <publishTime>05/07/2026 15:11:23</publishTime>
      <publishTime>05/06/2026 16:43:05</publishTime>
    </File>
    <File Include="bin/SQLHelper.pdb">
      <publishTime>05/07/2026 15:11:23</publishTime>
      <publishTime>05/06/2026 16:43:05</publishTime>
    </File>
    <File Include="bin/Swashbuckle.Core.dll">
      <publishTime>02/16/2015 01:57:08</publishTime>
    </File>
    <File Include="bin/SyntacticSugar.dll">
      <publishTime>05/06/2026 13:05:27</publishTime>
      <publishTime>05/06/2026 16:40:49</publishTime>
    </File>
    <File Include="bin/SyntacticSugar.pdb">
      <publishTime>05/06/2026 13:05:27</publishTime>
      <publishTime>05/06/2026 16:40:49</publishTime>
    </File>
    <File Include="bin/System.Buffers.dll">
      <publishTime>07/19/2017 18:01:28</publishTime>
@@ -300,7 +300,7 @@
      <publishTime>01/28/2015 12:03:16</publishTime>
    </File>
    <File Include="bin/System.Web.Http.WebHost.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="bin/System.Web.Mvc.dll">
      <publishTime>01/28/2015 12:02:18</publishTime>
@@ -333,10 +333,10 @@
      <publishTime>05/09/2023 10:43:40</publishTime>
    </File>
    <File Include="bin/TopSdk.dll">
      <publishTime>05/06/2026 17:10:37</publishTime>
      <publishTime>05/06/2026 16:40:51</publishTime>
    </File>
    <File Include="bin/TopSdk.pdb">
      <publishTime>05/06/2026 17:10:38</publishTime>
      <publishTime>05/06/2026 16:40:51</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>11/24/2014 19:18:48</publishTime>
@@ -375,61 +375,61 @@
      <publishTime>11/29/2018 21:26:30</publishTime>
    </File>
    <File Include="Config/kdapi.config">
      <publishTime>04/21/2025 11:46:15</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Content/bootstrap.css">
      <publishTime>04/21/2025 11:46:15</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Content/bootstrap.min.css">
      <publishTime>04/21/2025 11:46:15</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Content/Site.css">
      <publishTime>04/21/2025 11:46:15</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/BLL.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/DAL.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/DBUtility.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/Interop.grsvr6Lib.dll">
      <publishTime>12/14/2025 21:28:19</publishTime>
      <publishTime>12/16/2025 16:29:36</publishTime>
    </File>
    <File Include="DLL/Kingdee.BOS.WebApi.Client.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/Model.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/Newtonsoft.Json.Net35.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/Pub_Class.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/Pub_Control.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="DLL/SQLHelper.dll">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="fonts/glyphicons-halflings-regular.eot">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="fonts/glyphicons-halflings-regular.svg">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="fonts/glyphicons-halflings-regular.ttf">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="fonts/glyphicons-halflings-regular.woff">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Global.asax">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="grpc_csharp_ext.x64.dll">
      <publishTime>03/22/2022 13:17:22</publishTime>
@@ -438,7 +438,7 @@
      <publishTime>03/22/2022 13:17:22</publishTime>
    </File>
    <File Include="Index.html">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="libgrpc_csharp_ext.x64.dylib">
      <publishTime>03/19/2022 07:38:44</publishTime>
@@ -447,142 +447,142 @@
      <publishTime>03/19/2022 07:38:42</publishTime>
    </File>
    <File Include="libman.json">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Metadata/deploymentTemplates/apiappconfig.azureresource.json">
      <publishTime>04/21/2025 11:46:16</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="packages.config">
      <publishTime>05/06/2026 17:10:37</publishTime>
      <publishTime>05/06/2026 16:15:06</publishTime>
    </File>
    <File Include="Properties/PublishProfiles/JFAPI.pubxml.user">
      <publishTime>12/07/2025 12:01:10</publishTime>
      <publishTime>12/10/2025 17:08:59</publishTime>
    </File>
    <File Include="Scripts/jquery.signalR-2.2.2.js">
      <publishTime>01/28/2026 13:57:47</publishTime>
      <publishTime>01/28/2026 14:08:07</publishTime>
    </File>
    <File Include="Scripts/jquery.signalR-2.2.2.min.js">
      <publishTime>01/28/2026 13:57:47</publishTime>
      <publishTime>01/28/2026 14:08:07</publishTime>
    </File>
    <File Include="Template/barCodeTemplateStorage.json">
      <publishTime>08/29/2025 09:43:09</publishTime>
      <publishTime>09/05/2025 16:16:48</publishTime>
    </File>
    <File Include="Utility/Barcode.ashx">
      <publishTime>12/14/2025 21:28:19</publishTime>
      <publishTime>12/16/2025 16:29:36</publishTime>
    </File>
    <File Include="Views/Scripts/bootstrap.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/bootstrap.min.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/jquery-1.10.2.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/jquery-1.10.2.min.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/jquery-1.10.2.min.map">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/jquery.validate.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/jquery.validate.min.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/jquery.validate.unobtrusive.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/jquery.validate.unobtrusive.min.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Scripts/modernizr-2.6.2.js">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Shared/Error.cshtml">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/Shared/_Layout.cshtml">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/web.config">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Views/_ViewStart.cshtml">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>05/23/2025 10:00:25</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Customer_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:36</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Department_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:36</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Employee_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_StockPlace_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:36</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Supplier_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:36</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Warehouse_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:36</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_BadReason_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_BarCodeBill_WMS_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_BarCodeBill_WMS_Model_View.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Customer_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Department_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Employee_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Group_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Item30JiTai_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Source_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_StockPlace_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Supplier_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Warehouse_Model.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web References/WebS/ClsKf_ICStockBill_Mould.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:36</publishTime>
    </File>
    <File Include="Web References/WebS/ClsKf_ICStockBill_WMS.datasource">
      <publishTime>04/21/2025 11:46:17</publishTime>
      <publishTime>08/21/2025 15:39:37</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>05/07/2026 15:11:43</publishTime>
      <publishTime>05/06/2026 09:18:31</publishTime>
    </File>
    <File Include="ZPLTemplate/测试.zpl">
      <publishTime>05/07/2026 10:57:35</publishTime>
      <publishTime>05/09/2026 09:53:59</publishTime>
    </File>
    <File Include="ZPLTemplate/物料条码 100×60.zpl">
      <publishTime>05/06/2026 08:26:31</publishTime>
      <publishTime>05/09/2026 09:53:59</publishTime>
    </File>
    <File Include="ZPLTemplate/物料条码 80×60.zpl">
      <publishTime>05/07/2026 15:46:25</publishTime>
      <publishTime>05/09/2026 09:53:59</publishTime>
    </File>
  </ItemGroup>
</Project>
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-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>
    <History>True|2026-05-09T07:51:11.3169048Z;False|2026-05-09T15:50:59.4496078+08:00;True|2026-05-06T09:21:01.0076391+08:00;False|2026-05-06T09:20:18.6427460+08:00;True|2026-04-29T16:00:17.6440714+08:00;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/29/2026 15:59:50</publishTime>
      <publishTime>05/09/2026 15:49:44</publishTime>
    </File>
    <File Include="bin/BLL.pdb">
      <publishTime>04/29/2026 15:59:50</publishTime>
      <publishTime>05/09/2026 15:49:44</publishTime>
    </File>
    <File Include="bin/BouncyCastle.Crypto.dll">
      <publishTime>12/18/2020 05:32:28</publishTime>
    </File>
    <File Include="bin/DAL.dll">
      <publishTime>04/29/2026 15:59:44</publishTime>
      <publishTime>05/09/2026 15:49:37</publishTime>
    </File>
    <File Include="bin/DAL.pdb">
      <publishTime>04/29/2026 15:59:44</publishTime>
      <publishTime>05/09/2026 15:49:37</publishTime>
    </File>
    <File Include="bin/Dapper.dll">
      <publishTime>07/22/2016 22:52:40</publishTime>
    </File>
    <File Include="bin/DBUtility.dll">
      <publishTime>04/29/2026 15:59:38</publishTime>
      <publishTime>05/09/2026 15:49:31</publishTime>
    </File>
    <File Include="bin/DBUtility.pdb">
      <publishTime>04/29/2026 15:59:38</publishTime>
      <publishTime>05/09/2026 15:49:31</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/29/2026 15:59:41</publishTime>
      <publishTime>05/09/2026 15:49:35</publishTime>
    </File>
    <File Include="bin/Model.pdb">
      <publishTime>04/29/2026 15:59:41</publishTime>
      <publishTime>05/09/2026 15:49:35</publishTime>
    </File>
    <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
      <publishTime>08/18/2025 16:11:18</publishTime>
@@ -189,25 +189,25 @@
      <publishTime>11/13/2012 20:19:34</publishTime>
    </File>
    <File Include="bin/Pub_Class.dll">
      <publishTime>04/29/2026 15:59:33</publishTime>
      <publishTime>05/09/2026 15:49:26</publishTime>
    </File>
    <File Include="bin/Pub_Class.pdb">
      <publishTime>04/29/2026 15:59:33</publishTime>
      <publishTime>05/09/2026 15:49:26</publishTime>
    </File>
    <File Include="bin/Pub_Control.dll">
      <publishTime>04/29/2026 15:59:36</publishTime>
      <publishTime>05/09/2026 15:49:28</publishTime>
    </File>
    <File Include="bin/Pub_Control.pdb">
      <publishTime>04/29/2026 15:59:36</publishTime>
      <publishTime>05/09/2026 15:49:28</publishTime>
    </File>
    <File Include="bin/RestSharp.dll">
      <publishTime>08/31/2012 06:22:50</publishTime>
    </File>
    <File Include="bin/SQLHelper.dll">
      <publishTime>04/29/2026 15:59:36</publishTime>
      <publishTime>05/09/2026 15:49:29</publishTime>
    </File>
    <File Include="bin/SQLHelper.pdb">
      <publishTime>04/29/2026 15:59:36</publishTime>
      <publishTime>05/09/2026 15:49:29</publishTime>
    </File>
    <File Include="bin/Swashbuckle.Core.dll">
      <publishTime>02/16/2015 01:57:08</publishTime>
@@ -330,19 +330,19 @@
      <publishTime>05/09/2023 10:43:40</publishTime>
    </File>
    <File Include="bin/TopSdk.dll">
      <publishTime>04/29/2026 15:59:35</publishTime>
      <publishTime>05/09/2026 15:49:28</publishTime>
    </File>
    <File Include="bin/TopSdk.pdb">
      <publishTime>04/29/2026 15:59:35</publishTime>
      <publishTime>05/09/2026 15:49:28</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>11/24/2014 19:18:48</publishTime>
    </File>
    <File Include="bin/WebAPI.dll">
      <publishTime>04/29/2026 16:00:01</publishTime>
      <publishTime>05/09/2026 15:50:03</publishTime>
    </File>
    <File Include="bin/WebAPI.pdb">
      <publishTime>04/29/2026 16:00:01</publishTime>
      <publishTime>05/09/2026 15:50:03</publishTime>
    </File>
    <File Include="bin/WebGrease.dll">
      <publishTime>07/18/2013 01:03:52</publishTime>
@@ -567,7 +567,13 @@
      <publishTime>10/27/2025 08:51:29</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>04/29/2026 16:00:15</publishTime>
      <publishTime>05/09/2026 15:51:08</publishTime>
    </File>
    <File Include="ZPLTemplate/物料条码 100×60.zpl">
      <publishTime>05/06/2026 08:39:38</publishTime>
    </File>
    <File Include="ZPLTemplate/物料条码 80×60.zpl">
      <publishTime>05/06/2026 08:39:38</publishTime>
    </File>
  </ItemGroup>
</Project>
WebAPI/WebAPI.csproj
@@ -740,6 +740,7 @@
    <Compile Include="Controllers\物流管理\其他结算单\YF_PayMentOtherBillTranController.cs" />
    <Compile Include="Controllers\物流管理\出运单\WLYayBillController.cs" />
    <Compile Include="Controllers\物流管理\运单费用结算单\Pay_WayBillPaymentBillController.cs" />
    <Compile Include="Controllers\通用方法\文件上传\WebFileController.cs" />
    <Compile Include="Controllers\项目管理\工程项目\PM_ProjectBill_WorkController.cs" />
    <Compile Include="DLL\ClsGy_ItemMoney_Ctl.cs" />
    <Compile Include="DLL\ClsSc_MESStopRestoreWorkBill.cs" />
WebAPI/WebAPI.csproj.user
@@ -3,7 +3,6 @@
  <PropertyGroup>
    <LastActiveSolutionConfig>Debug|x86</LastActiveSolutionConfig>
    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
    <LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
    <UseIISExpress>true</UseIISExpress>
    <Use64BitIISExpress />
    <IISExpressSSLPort />
@@ -14,10 +13,17 @@
    <NameOfLastUsedPublishProfile>D:\gz\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile1.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\gz\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile8.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\WorkBench\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile4.pubxml</NameOfLastUsedPublishProfile>
    <ProjectView>ShowAllFiles</ProjectView>
    <ProjectView>ProjectFiles</ProjectView>
    <NameOfLastUsedPublishProfile>D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile2.pubxml</NameOfLastUsedPublishProfile>
<<<<<<< HEAD
    <NameOfLastUsedPublishProfile>D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile4.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\WorkBench\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile2.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>C:\Users\19858\Desktop\智云迈思\MES-WEB-API\WebAPI\Properties\PublishProfiles\WTTFolder.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>C:\Users\19858\Desktop\智云迈思\MES-WEB-API\WebAPI\Properties\PublishProfiles\WTTFolder.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>C:\Users\19858\Desktop\智云迈思\MES-WEB-API\WebAPI\Properties\PublishProfiles\WTTFolder.pubxml</NameOfLastUsedPublishProfile>
=======
    <NameOfLastUsedPublishProfile>C:\Users\19858\Desktop\智云迈思\MES-WEB-API\WebAPI\Properties\PublishProfiles\WTTFolder.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\工作代码\智云迈思\MES\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile2.pubxml</NameOfLastUsedPublishProfile>
>>>>>>> d430c8baf7d62f95a9b22854dc7e1bb82e3e1996
  </PropertyGroup>
  <ProjectExtensions>
    <VisualStudio>
sdk_dingding/TopSdk/bin/Debug/TopSdk.dll
Binary files differ
sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb
Binary files differ
sdk_dingding/TopSdk/obj/Debug/TopSdk.dll
Binary files differ
sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb
Binary files differ