yusijie
2022-12-07 048243255e2f36b32ab43cd9a8e05c7e608ad48b
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API
14个文件已修改
445 ■■■■ 已修改文件
Model/生产管理/ClsSc_PPBomBillSub.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/采购管理/ClsCg_POInStockBillSub.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/采购管理/ClsCg_POOrderBillSub.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/CustomerCls/ClsSqlHelper.cs 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/BaseSet/Gy_UnitController.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/BaseSet/Gy_WarehouseController.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/BaseSet/Gy_WorkDayController.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/Sc_PPBomBillController.cs 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/日计划管理/DataHelper.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/基础资料/Warehouse.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/基础资料/WorkDay.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/Éú²ú¹ÜÀí/ClsSc_PPBomBillSub.cs
@@ -18,7 +18,7 @@
        public string HRemark;            //备注
        public Int64 HQtyMust; //应发数量
        public decimal HQtyMust; //应发数量
        public double HNumerator;  //分子
        public double HDenominator;  //分母
        public double HQtyScrap;  //损耗率
Model/²É¹º¹ÜÀí/ClsCg_POInStockBillSub.cs
@@ -18,6 +18,9 @@
        public double HMoney;//   dec(18,8)         --原币金额
        public double HTaxPrice;//   dec(18,8)         --含税单价
        public double HTaxMoney;//   dec(18,8)         --含税金额
        public double HTaxRate;//   dec(18,8)         --含税金额
        public double HTaxMoney_TAX;//   dec(18,8)         --含税金额
        public double HTaxRate_TAX;//   dec(18,8)         --含税金额
        public Int64 HWHID;//              --收料仓库
        public Int64 HPOOrderInterID;//
        public Int64 HPOOrderEntryID;//
Model/²É¹º¹ÜÀí/ClsCg_POOrderBillSub.cs
@@ -14,6 +14,8 @@
        public double HPrice;//   dec(18,8)         //原币单价
        public double HMoney;//   dec(18,8)         //原币金额
        public Single HTaxRate;//   money              //税率
        public Single HTaxRate_TAX;//   money              //税率
        public Single HTaxMoney_TAX;//   money              //税率
        public double HTaxPrice;                    //含税单价
        public double HTaxMoney;//  dec(18,8)                //税额=原币金额*税率
        public double HlineTotal;//   dec(18,8)              //价税合计=原币金额+税额 
Pub_Class/CustomerCls/ClsSqlHelper.cs
@@ -7,23 +7,23 @@
namespace Pub_Class
{
    public class ClsSqlHelper:IDisposable
    public class ClsSqlHelper : IDisposable
    {
        private SqlConnection MainCn;//创建连接对象
        public string strCon;
        SqlTransaction MainTran;
        public string sServer;
        public string sDataBase ;
        public string sDataBase;
        public string sUser;
        public string sPassword;
        //public string sTextBox = "HXErp_Test.ini";
        public string sTextBox = "HXErp.ini";
        //开始事务
        public void  BeginTran()
        public void BeginTran()
        {
            if (!this.CnOpen())
                return;
            MainTran=MainCn.BeginTransaction();
            MainTran = MainCn.BeginTransaction();
        }
        //结束事务
        public void Commit()
@@ -45,7 +45,7 @@
                ClsPub.AppPath = System.Environment.CurrentDirectory;
                //ClsPub.AppPath = @"C:\Windows\System32";
            }
            sServer = ClsIni.ReadIni("Erp", "Server", ClsPub.AppPath + @"\"+sTextBox);
            sServer = ClsIni.ReadIni("Erp", "Server", ClsPub.AppPath + @"\" + sTextBox);
            sDataBase = ClsIni.ReadIni("Erp", "DataBase", ClsPub.AppPath + @"\" + sTextBox);
            sUser = ClsIni.ReadIni("Erp", "UserName", ClsPub.AppPath + @"\" + sTextBox);
            sPassword = ClsIni.ReadIni("Erp", "PassWord", ClsPub.AppPath + @"\" + sTextBox);
@@ -54,13 +54,13 @@
        public bool CheckOpen()
        {
            if (sServer == "" || sServer == "没有找到!" )
            if (sServer == "" || sServer == "没有找到!")
            {
                throw new Exception("错误的服务器名!!" + System.Environment.CurrentDirectory);
            }
            if (sDataBase == "" || sDataBase == "没有找到!")
            {
                throw new Exception("错误的数据库名!!"  +System.Environment.CurrentDirectory);
                throw new Exception("错误的数据库名!!" + System.Environment.CurrentDirectory);
            }
            SqlConnection oCn = new SqlConnection("Data Source=" + sServer + ";DataBase=master;User ID=" + sUser + ";PWD=" + sPassword + ";max pool size=32767");
            try
@@ -78,7 +78,7 @@
            }
        }
        private bool  CnOpen()//OPEN数据库连接
        private bool CnOpen()//OPEN数据库连接
        {
            if (sServer == "" || sServer == "没有找到!")
            {
@@ -88,7 +88,7 @@
            {
                throw new Exception("错误的数据库名!");
            }
            if (MainCn==null)
            if (MainCn == null)
            {
                MainCn = new SqlConnection("Data Source=" + sServer + ";DataBase=" + sDataBase + ";User ID=" + sUser + ";PWD=" + sPassword + ";max pool size=32767");
            }
@@ -117,10 +117,10 @@
        public void CnDispose()//释放资源
        {
            if(MainCn!=null)
            {
            if (MainCn != null)
            {
                MainCn.Dispose();
                MainCn=null;
                MainCn = null;
            }
        }
        /// <summary>
@@ -133,7 +133,7 @@
        /// <returns>新的 parameter å¯¹è±¡</returns>
        public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
        {
            return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
            return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
        }
        /// <summary>
        /// åˆå§‹åŒ–参数值
@@ -192,13 +192,13 @@
        /// <param name="procName"></param>
        /// <param name="sErrMessage"></param>
        /// <returns></returns>
        public void RunProc(string procName,ref string sErr)
        public void RunProc(string procName, ref string sErr)
        {
            if (!this.CnOpen())
            {
                sErr = "连接数据库失败!";
                return;
            }
            try
            {
@@ -211,7 +211,7 @@
            }
            catch (Exception e)
            {
                sErr =e.Message;
                sErr = e.Message;
                ClsPub.sErrInfo = e.Message;
                throw (e);
                //return;
@@ -226,7 +226,7 @@
        /// <param name="tbName">表名</param>
        /// <param name="sErrMessage">异常信息</param>
        /// <returns></returns>
        public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName )
        public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
        {
            SqlDataAdapter dap = CreateDataAdaper(procName, prams);
            if (dap == null)
@@ -252,7 +252,7 @@
        /// <param name="tbName">表名</param>
        /// <param name="sErrMessage">异常信息</param>
        /// <returns></returns>
        public DataSet RunProcReturn(string procName, string tbName )
        public DataSet RunProcReturn(string procName, string tbName)
        {
            SqlDataAdapter dap = CreateDataAdaper(procName, null);
            DataSet ds = new DataSet();
@@ -276,7 +276,7 @@
        /// <param name="tbName">表名</param>
        /// <param name="sErrMessage">异常信息</param>
        /// <returns></returns>
        public DataSet RunProcReturn(string procName, string tbName,ref string sErr)
        public DataSet RunProcReturn(string procName, string tbName, ref string sErr)
        {
            SqlDataAdapter dap = CreateDataAdaper(procName, null);
            DataSet ds = new DataSet();
@@ -366,7 +366,7 @@
        }
        public SqlDataReader RunReader(string sSQL,string tbName,ref string sErr)
        public SqlDataReader RunReader(string sSQL, string tbName, ref string sErr)
        {
            if (!this.CnOpen())
            {
@@ -384,12 +384,42 @@
            catch (Exception e)
            {
                ClsPub.sErrInfo = e.Message;
                sErr = e.Message;
                sErr = e.Message;
                return null;
            }
        }
        /// <summary>
        /// æ‰¹é‡æ’入数据库
        /// </summary>
        /// <param name="TableName">目标表</param>
        /// <param name="dt">源数据</param>
        public bool SqlBulkCopyByDatatable(string TableName, DataTable dt)
        {
            string connectionString = $"Data Source={sServer};DataBase={sDataBase};User ID={sUser};PWD={sPassword}";
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
                {
                    try
                    {
                        sqlbulkcopy.DestinationTableName = TableName;
                        for (int i = 0; i < dt.Columns.Count; i++)
                        {
                            sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                        }
                        sqlbulkcopy.WriteToServer(dt);
                        return true;
                    }
                    catch (System.Exception ex)
                    {
                        //ex.Message;
                        return false;
                    }
                }
            }
        }
        #region IDisposable æˆå‘˜
        public void Dispose()
WebAPI/Controllers/BaseSet/Gy_UnitController.cs
@@ -1,5 +1,7 @@
using Newtonsoft.Json;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NPOI.SS.Formula.Functions;
using Pub_Class;
using System;
using System.Collections;
@@ -7,6 +9,7 @@
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Controllers.SCGL.日计划管理;
using WebAPI.Models;
using WebAPI.Service;
WebAPI/Controllers/BaseSet/Gy_WarehouseController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
@@ -7,6 +8,7 @@
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Controllers.SCGL.日计划管理;
using WebAPI.Models;
namespace WebAPI.Controllers
{
@@ -221,7 +223,7 @@
                long HParentID = list[0].HParentID;
                long HLevel = list[0].HLevel;
                bool HEndFlag = list[0].HEndFlag;
                bool HStopflag = list[0].HStopflag;
                bool HStopflag = list[0].HStopFlag;
                string HRemark = list[0].HRemark;
                string HBarCode = list[0].HBarCode;
                long HEmpID = list[0].HEmpID;
@@ -304,7 +306,7 @@
                long HParentID = list[0].HParentID;
                long HLevel = list[0].HLevel;
                bool HEndFlag = list[0].HEndFlag;
                bool HStopflag = list[0].HStopflag;
                bool HStopflag = list[0].HStopFlag;
                string HRemark = list[0].HRemark;
                string HBarCode = list[0].HBarCode;
                long HEmpID = list[0].HEmpID;
@@ -411,6 +413,8 @@
                _value = "[" + _value.ToString() + "]";
                List<Warehouse> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Warehouse>>(_value);
                string sql = string.Empty;
                //DataTable dt = DataHelper.ListToDataTable<Warehouse>(list);
                //oCN.SqlBulkCopyByDatatable("Gy_Warehouse", dt);
                //保存
                oCN.BeginTran();
                sql = $"delete Gy_Warehouse where HItemID = {list[0].HItemID}";
@@ -421,7 +425,7 @@
                       " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                       ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID) " +
                       " Values('" + list[0].HItemID + "','" + list[0].HNumber + "','" +list[0].HName + "','" + list[0].HHelpCode + "','" + list[0].HShortNumber + "'," + list[0].HParentID.ToString() +
                       "," + list[0].HLevel.ToString() + "," + Convert.ToString(list[0].HEndFlag ? 1 : 0) + "," + Convert.ToString(list[0].HStopflag ? 1 : 0) + ",'" + list[0].HRemark + "'," + list[0].HEmpID.ToString() + ",'" + list[0].HAddress + "','" + list[0].HPhone + "','" + list[0].HUSEORGID + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                       "," + list[0].HLevel.ToString() + "," + Convert.ToString(list[0].HEndFlag ? 1 : 0) + "," + Convert.ToString(list[0].HStopFlag ? 1 : 0) + ",'" + list[0].HRemark + "'," + list[0].HEmpID.ToString() + ",'" + list[0].HAddress + "','" + list[0].HPhone + "','" + list[0].HUSEORGID + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                //修改上级为非末级代码
                sql = "set identity_insert Gy_Warehouse off";
                oCN.RunProc(sql);
WebAPI/Controllers/BaseSet/Gy_WorkDayController.cs
@@ -95,16 +95,14 @@
                //反序列化
                msg2 = "[" + msg2.ToString() + "]";
                List<WorkDay> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<WorkDay>>(msg2);
                long HItemID = list[0].HItemID;
                //保存
                //保存完毕后处理
                if (HItemID == 0)
                {
                    oCN.BeginTran();
                    string sql = string.Format(@"insert into Gy_WorkDay (HDate,HWorkBegin,HWorkEnd,HNoonbreakBegin,HNoonbreakEnd,HNightbreakBegin,HNightbreakEnd)
values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", list[0].HDate, list[0].HWorkBegin, list[0].HWorkEnd, list[0].HNoonbreakBegin, list[0].HNoonbreakEnd, list[0].HNightbreakBegin, list[0].HNightbreakEnd);
                    string sql = string.Format(@"insert into Gy_WorkDay (HDate,HWorkBegin,HWorkEnd,HNoonbreakBegin,HNoonbreakEnd,HNightbreakBegin,HNightbreakEnd,HNoonbreakBegin2,HNoonbreakEnd2,HNightbreakBegin2,HNightbreakEnd2)
values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')", list[0].HDate, list[0].HWorkBegin, list[0].HWorkEnd, list[0].HNoonbreakBegin, list[0].HNoonbreakEnd, list[0].HNightbreakBegin, list[0].HNightbreakEnd, list[0].HNoonbreakBegin2, list[0].HNoonbreakEnd2, list[0].HNightbreakBegin2, list[0].HNightbreakEnd2);
                    oCN.RunProc(sql);
                    oCN.Commit();
                }
@@ -118,9 +116,13 @@
                        ",HWorkBegin='" + list[0].HWorkBegin + "'" +
                        ",HWorkEnd='" + list[0].HWorkEnd + "'" +
                        ",HNoonbreakBegin='" + list[0].HNoonbreakBegin + "'" +
                        ",HNoonbreakEnd=" + list[0].HNoonbreakEnd +
                        ",HNightbreakBegin=" + list[0].HNightbreakBegin +
                        ",HNightbreakEnd=" + list[0].HNightbreakEnd +
                        ",HNoonbreakEnd='" + list[0].HNoonbreakEnd + "'" +
                        ",HNightbreakBegin='" + list[0].HNightbreakBegin + "'" +
                        ",HNightbreakEnd='" + list[0].HNightbreakEnd + "'" +
                        ",HNoonbreakBegin2='" + list[0].HNoonbreakBegin2 + "'" +
                        ",HNoonbreakEnd2='" + list[0].HNoonbreakEnd2 + "'" +
                        ",HNightbreakBegin2='" + list[0].HNightbreakBegin2 + "'" +
                        ",HNightbreakEnd2='" + list[0].HNightbreakEnd2 + "'" +
                        " Where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                    //
                    oCN.Commit();
WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
@@ -68,7 +68,7 @@
        /// </summary>
        [Route("Cg_POInStockBill/list")]
        [HttpGet]
        public object list(string sWhere,string user)
        public object list(string sWhere, string user)
        {
            try
            {
@@ -84,12 +84,12 @@
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList  order by hmainid desc" , "h_v_IF_POInStockBillList");
                    ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList  order by hmainid desc", "h_v_IF_POInStockBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_IF_POInStockBillList where 1 = 1 ";
                    string sql = sql1 + sWhere+ " order by æ—¥æœŸ desc,hmainid desc";
                    string sql = sql1 + sWhere + " order by æ—¥æœŸ desc,hmainid desc";
                    ds = oCN.RunProcReturn(sql, "h_v_IF_POInStockBillList");
                }
@@ -119,14 +119,14 @@
                return objJsonResult;
            }
        }
        /// <summary>
        ///删除功能
        /// </summary>
        /// <returns></returns>
        [Route("Cg_POInStockBill/DeltetPOInStockBill")]
        [HttpGet]
        public object DeltetPOInStockBill(string HInterID,string user)
        public object DeltetPOInStockBill(string HInterID, string user)
        {
            try
            {
@@ -171,7 +171,7 @@
        /// </summary>
        [Route("Cg_POInStockBill/DeAuditPOInStockBill")]
        [HttpGet]
        public object DeAuditPOInStockBill(string HInterID,string user)
        public object DeAuditPOInStockBill(string HInterID, string user)
        {
            try
            {
@@ -224,7 +224,7 @@
                        Ids = ""
                    };
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    if (isSuccess == 0)
                    {
@@ -544,7 +544,80 @@
            return objJsonResult;
        }
        #endregion
        [Route("Cg_POInStockBill/Cg_POInStockBillSaveApi")]
        [HttpPost]
        public object Cg_POInStockBillSaveApi([FromBody] JObject sMainSub)
        {
            try
            {
                var model = sMainSub["model"].ToString();
                var entry = sMainSub["model"]["HENTRY"].ToString();
                model = "[" + model.ToString() + "]";
                List<ClsCg_POInStockBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillMain>>(model);
                List<ClsCg_POInStockBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillSub>>(entry);
                string sql = string.Empty;
                oCN.BeginTran();
                sql = $"delete Cg_POInStockBillMain where HinterID = {mainList[0].HInterID}";
                oCN.RunProc(sql);
                sql = $"delete Cg_POInStockBillMain where HinterID = {mainList[0].HInterID}";
                oCN.RunProc(sql);
                //主表
                sql = @"
Insert Into Cg_POInStockBillMain
(HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
,HBillNo,HBillStatus,HSupID,HManagerID,HEmpID,HDeptID,HRemark
,HMaker,HMakeDate,HChecker,HCheckDate,HOWNERTYPEID,HOWNERID
,HERPInterID,HERPBillType,HPURCHASEORGID,HSTOCKORGID,HREQUIREORGID
,HSTOCKGROUPID,HSENDBILLNO,HLADBILLNO,HPURDEPTID,HPURGROUPID,HSUPPLYID
,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HSUPPLYADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID,HCurID,HExRate,HAddress,HWHID)
values(" + mainList[0].HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1103 + "','" +
mainList[0].HBillSubType + "','" + mainList[0].HDate + "','" + mainList[0].HBillNo + "'," + mainList[0].HBillStatus + "," + mainList[0].HSupID +
"," + mainList[0].HManagerID + "," + mainList[0].HEmpID + "," + mainList[0].HDeptID + ",'" + mainList[0].HRemark + "','" + mainList[0].HMaker +
"','" + mainList[0].HMakeDate + "','" + mainList[0].HChecker + "','" + mainList[0].HCheckDate + "','" + mainList[0].HOWNERTYPEID + "'," + mainList[0].HOWNERID + "," + mainList[0].HERPInterID + ",'" + mainList[0].HERPBillType + "'," + mainList[0].HPURCHASEORGID + "," + mainList[0].HSTOCKORGID + "," + mainList[0].HREQUIREORGID + "," +
mainList[0].HSTOCKGROUPID + ",'" + mainList[0].HSENDBILLNO + "','" + mainList[0].HLADBILLNO + "'," + mainList[0].HPURDEPTID + "," + mainList[0].HPURGROUPID + "," + mainList[0].HSUPPLYID + "," +
mainList[0].HSETTLEID + "," + mainList[0].HCHARGEID + ",'" + mainList[0].HBUSINESSTYPE + "','" + mainList[0].HSUPPLYADDRESS + "'," + mainList[0].HCORRESPONDORGID + "," + mainList[0].HPROVIDERCONTACTID + "," + mainList[0].HCurID + "," + mainList[0].HExRate + ",'" + mainList[0].HAddress + "'," + mainList[0].HWHID + ")";
                oCN.RunProc(sql);
                //保存主表
                foreach (var oSub in subList)
                {
                    sql = $@"
Insert into Cg_POInStockBillSub
(HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice
,HMoney,HWHID,HSPID,HRemark,HTaxMoney,HTaxRate,HTaxMoney_TAX,HTaxRate_TAX
,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HPOOrderInterID
,HPOOrderEntryID,HPOORderBillNo,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID
,HRelationQty,HGiveAwayFlag,HReceiveQty,HSEQ,HPRODUCEDATE,HEXPIRYDATE,HSUPPLYLOT,HREQTRACENO,HBOMID,HSTOCKUNITID
,HBASEUNITID,HSTOCKSTATUSID,HKEEPERTYPEID,HPROJECTNO,HCHECKINCOMING,HTAXPRICE,HDISCOUNTRATE
,HPRICECOEFFICIENT,HPRICEUNITID,HPRICELISTENTRY,HSAMPLEDAMAGEQTY,HSAMPLEDAMAGEBASEQTY
,HPAYORGID,HSETTLEORGID,HSETTLECURRID,HSETTLEMODEID,HEXCHANGETYPEID,HPAYCONDITONID
,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX
,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HSecUnitID)
values(
'{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}','{oSub.HPrice}'
,'{oSub.HMoney}','{oSub.HWHID}','{oSub.HSPID}','{oSub.HRemark}','{oSub.HTaxMoney}','{oSub.HTaxRate}','{oSub.HTaxMoney_TAX}','{oSub.HTaxRate_TAX}'
,'{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}','{oSub.HSourceBillType}','{oSub.HPOOrderInterID}','{oSub.HPOOrderEntryID}','{oSub.HPOOrderBillNo}','{oSub.HAuxPropID}','{oSub.HBatchNO}','{oSub.HMTONo}','{oSub.HPlanMode}','{oSub.HERPInterID}','{oSub.HERPEntryID}','{oSub.HRelationQty}','{oSub.HGiveAwayFlag}','{oSub.HReceiveQty}','{oSub.HSEQ}','{oSub.HPRODUCEDATE}','{oSub.HEXPIRYDATE}',
'{oSub.HSUPPLYLOT}','{oSub.HREQTRACENO}','{oSub.HBOMID}','{oSub.HSTOCKUNITID}','{oSub.HBASEUNITID}','{oSub.HSTOCKSTATUSID}','{oSub.HKEEPERTYPEID}','{oSub.HPROJECTNO}','{oSub.HCHECKINCOMING}','{oSub.HTaxPrice}','{oSub.HDISCOUNTRATE}','{oSub.HPRICECOEFFICIENT}','{oSub.HPRICEUNITID}','{oSub.HPRICELISTENTRY}','{oSub.HSAMPLEDAMAGEQTY}','{oSub.HSAMPLEDAMAGEBASEQTY}','{oSub.HPAYORGID}','{oSub.HSETTLEORGID}','{oSub.HSETTLECURRID}','{oSub.HSETTLEMODEID}','{oSub.HEXCHANGETYPEID}','{oSub.HPAYCONDITONID}','{oSub.HEXCHANGERATE}','{oSub.HLOCALCURRID}','{oSub.HISINCLUDEDTAX}','{oSub.HISPRICEEXCLUDETAX}','{oSub.HTAXRATEID}','{oSub.HCOSTPERCENT}','{oSub.HCOSTAMOUNT}','{oSub.HVAT}','{oSub.HSELLERWITHHOLDING}','{oSub.HBUYERWITHHOLDING}','{oSub.HSecUnitID}')";
                    oCN.RunProc(sql);
                }
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "单据保存成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
@@ -781,7 +781,7 @@
                    HBillSubType + "','" + HDate + "','" + HBillNo + "','" + HBillStatus + "','" + HAddress +
                    "'," + HSSID + ",'" + HSSDate + "'," + HPSStyleID + "," + HSupID + "," + HCurID +
                    "," + HExRate + "," + HEmpID + "," + HManagerID + "," + HDeptID + ",'" + HExplanation + "','" + HRemark + "','" + HInnerBillNo + "','" + HChecker + "','" + HCheckDate + "','" + HMaker + "','" +
                    HMakeDate + "'," + HERPInterID + ",'" + HERPBillType + "'," + HPURCHASEORGID + "," + HPURCHASERGROUPID + ","
                    HMakeDate + "'," + HERPInterID + ",'" + HERPBillType + "'," + HPURCHASEORGID + "," + HPURCHASERGROUPID + ","
                    + HPROVIDERID + "," + HSETTLEID + "," + HCHARGEID + ",'" + HBUSINESSTYPE + "','" + HPROVIDERADDRESS + "',"
                    + HCORRESPONDORGID + "," + HPROVIDERCONTACTID + ")");
                }
@@ -830,7 +830,7 @@
            List<ClsCg_POOrderBillSub> DetailColl2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillSub>>(msg3);
            string HSourceBillNo = DetailColl2[0].HSourceBillNo == null ? "''" : DetailColl2[0].HSourceBillNo;
            string HSourceBillType = DetailColl2[0].HSourceBillType == null ? "''" : DetailColl2[0].HSourceBillType;
            double HRelationQty = DetailColl2[0].HRelationQty == null ? 0 : DetailColl2[0].HRelationQty;
@@ -953,6 +953,83 @@
            return objJsonResult;
        }
        [Route("Cg_POOrderBill/Cg_POOrderBillSaveApi")]
        [HttpPost]
        public object Cg_POOrderBillSaveApi([FromBody] JObject sMainSub)
        {
            try
            {
                var model = sMainSub["model"].ToString();
                var entry = sMainSub["model"]["HENTRY"].ToString();
                model = "[" + model.ToString() + "]";
                List<ClsCg_POOrderBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillMain>>(model);
                List<ClsCg_POOrderBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillSub>>(entry);
                string sql = string.Empty;
                oCN.BeginTran();
                sql = $"delete Cg_POOrderBillMain where HinterID = {mainList[0].HInterID}";
                oCN.RunProc(sql);
                sql = $"delete Cg_POOrderBillSub where HinterID = {mainList[0].HInterID}";
                oCN.RunProc(sql);
                //主表
                oCN.RunProc(@"Insert Into Cg_POOrderBillMain
                        (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus
                        ,HAddress,HSSID,HSSDate,HPSStyleID,HSupID,HCurID
                        ,HExRate,HEmpID,HManagerID,HDeptID,HExplanation,HRemark,HInnerBillNo
                        ,HChecker,HCheckDate,HMaker,HMakeDate
                        ,HERPInterID,HERPBillType,HPURCHASEORGID
                        ,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID)
                        values(" + mainList[0].HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1102 + "','" +
                    mainList[0].HBillSubType + "','" + mainList[0].HDate + "','" + mainList[0].HBillNo + "','" + mainList[0].HBillStatus + "','" + mainList[0].HAddress +
                    "'," + mainList[0].HSSID + ",'" + mainList[0].HSSDate + "'," + mainList[0].HPSStyleID + "," + mainList[0].HSupID + "," + mainList[0].HCurID +
                    "," + mainList[0].HExRate + "," + mainList[0].HEmpID + "," + mainList[0].HManagerID + "," + mainList[0].HDeptID + ",'" + mainList[0].HExplanation + "','" + mainList[0].HRemark + "','" + mainList[0].HInnerBillNo + "','" + mainList[0].HChecker + "','" + mainList[0].HCheckDate + "','" + mainList[0].HMaker + "','" +
                    mainList[0].HMakeDate + "'," + mainList[0].HERPInterID + ",'" + mainList[0].HERPBillType + "'," + mainList[0].HPURCHASEORGID + "," + mainList[0].HPURCHASERGROUPID + ","
                    + mainList[0].HPROVIDERID + "," + mainList[0].HSETTLEID + "," + mainList[0].HCHARGEID + ",'" + mainList[0].HBUSINESSTYPE + "','" + mainList[0].HPROVIDERADDRESS + "',"
                    + mainList[0].HCORRESPONDORGID + "," + mainList[0].HPROVIDERCONTACTID + ")");
                //保存主表
                foreach (var oSub in subList)
                {
                    sql = $@"
Insert into Cg_POOrderBillSub
(HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HTaxRate_TAX,HTaxMoney_TAX,HTaxPrice,HDiscountRate,HRelTaxPrice
,HMoney,HTaxRate,HTaxMoney,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HSeOrderBillNo,HSeOrderInterID
,HSeOrderEntryID,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo
,HSourceBillType,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo
,HERPInterID,HERPEntryID
,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY,HSTOCKBASEQTY
,HREQTRACENO,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID,HSETTLEMODEID,HSETTLECURRID
,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT
,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HMATERIALDESC)
values('{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}','{oSub.HPrice}','{oSub.HPrice}','{oSub.HTaxRate_TAX}','{oSub.HTaxMoney_TAX}','{oSub.HDiscountRate}','{oSub.HRelTaxPrice}',
'{oSub.HMoney}','{oSub.HTaxRate}','{oSub.HTaxMoney}','{oSub.HlineTotal}','{oSub.HlineTotalBB}','{oSub.HDate}','{oSub.HInStockQty}','{oSub.HInvoiceQty}','{oSub.HSeOrderBillNo}','{oSub.HSeOrderInterID}',
'{oSub.HSeOrderEntryID}','{oSub.HRemark}','{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}',
'{oSub.HSourceBillType}','{oSub.HRelationQty}','{oSub.HBackRelationQty}','{oSub.HPropertyID}','{oSub.HBatChNo}','{oSub.HAuxPropID}','{oSub.HMTONo}',
'{oSub.HERPInterID}','{oSub.HERPEntryID}',
'{oSub.HSEQ}','{oSub.HRECEIVEDEPTID}','{oSub.HSUPPLIERLOT}','{oSub.HBOMID}','{oSub.HSTOCKUNITID}','{oSub.HBASEUNITID}','{oSub.HBFLOWID}','{oSub.HGIVEAWAY}','{oSub.HROWTYPE}','{oSub.HBASEUNITQTY}','{oSub.HSTOCKBASEQTY}',
'{oSub.HREQTRACENO}','{oSub.HTAXNETPRICE}','{oSub.HPRICECOEFFICIENT}','{oSub.HTAXCOMBINATION}','{oSub.HPRICEUNITID}','{oSub.HPRICELISTENTRY}','{oSub.HPAYORGID}','{oSub.HSETTLEMODEID}','{oSub.HSETTLECURRID}',
'{oSub.HEXCHANGETYPEID}','{oSub.HPAYCONDITIONID}','{oSub.HEXCHANGERATE}','{oSub.HLOCALCURRID}','{oSub.HISINCLUDEDTAX}','{oSub.HISPRICEEXCLUDETAX}','{oSub.HTAXRATEID}','{oSub.HCOSTPERCENT}','{oSub.HCOSTAMOUNT}',
'{oSub.HVAT}','{oSub.HSELLERWITHHOLDING}','{oSub.HBUYERWITHHOLDING}','{oSub.HMATERIALDESC}')";
                    oCN.RunProc(sql);
                }
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "单据保存成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        /// <summary>
        ///删除功能
WebAPI/Controllers/SCGL/Sc_PPBomBillController.cs
@@ -28,7 +28,7 @@
        /// </summary>
        [Route("Sc_PPBomBill/list")]
        [HttpGet]
        public object list(string sWhere,string user)
        public object list(string sWhere, string user)
        {
            try
            {
@@ -49,7 +49,7 @@
                else
                {
                    string sql1 = "select * from h_v_IF_PPBomBillList where 1 = 1 ";
                    string sql = sql1 + sWhere+ " order by hmainid desc ";
                    string sql = sql1 + sWhere + " order by hmainid desc ";
                    ds = oCN.RunProcReturn(sql, "h_v_IF_PPBomBillList");
                }
@@ -79,9 +79,6 @@
                return objJsonResult;
            }
        }
        #region ç”Ÿäº§ç”¨æ–™æ¸…单 å®¡æ ¸/反审核
        [Route("Sc_PPBomBill/DeOrAuditBill")]
        [HttpGet]
@@ -148,7 +145,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在,原因:"+DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.Message = "单据不存在,原因:" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -219,7 +216,7 @@
            catch (Exception e)
            {
                sReturn = e.Message;
                throw(e);
                throw (e);
            }
        }
        //反审核
@@ -409,7 +406,7 @@
            DateTime dt = DateTime.Now;
            long HQtyMust = DetailColl2[0].HQtyMust == null ? 0 : DetailColl2[0].HQtyMust; //应发数量
            decimal HQtyMust = DetailColl2[0].HQtyMust == null ? 0 : DetailColl2[0].HQtyMust; //应发数量
            double HNumerator = DetailColl2[0].HNumerator == null ? 0 : DetailColl2[0].HNumerator;  //分子
            double HDenominator = DetailColl2[0].HDenominator == null ? 0 : DetailColl2[0].HDenominator;  //分母
            double HQtyScrap = DetailColl2[0].HQtyScrap == null ? 0 : DetailColl2[0].HQtyScrap;  //损耗率
@@ -514,7 +511,7 @@
                {
                    NewHEntryID = ClsPub.isLong(Cs.Tables[0].Rows[0]["HEntryID"].ToString());
                    NewHEntryID += 1;
                }
                }
                oCN.RunProc($@"Insert into Sc_PPBomBillSub 
@@ -536,6 +533,66 @@
            return objJsonResult;
        }
        [Route("Sc_PPBomBill/Sc_PPBomBillSaveApi")]
        [HttpPost]
        public object Sc_PPBomBillSaveApi([FromBody] JObject sMainSub)
        {
            try
            {
                var model = sMainSub["model"].ToString();
                var entry = sMainSub["model"]["HENTRY"].ToString();
                model = "[" + model.ToString() + "]";
                List<ClsSc_PPBomBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsSc_PPBomBillMain>>(model);
                List<ClsSc_PPBomBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsSc_PPBomBillSub>>(entry);
                string sql = string.Empty;
                oCN.BeginTran();
                sql = $"delete Sc_PPBomBillMain where HinterID = {mainList[0].HInterID}";
                oCN.RunProc(sql);
                sql = $"delete Sc_PPBomBillSub where HinterID = {mainList[0].HInterID}";
                oCN.RunProc(sql);
                //主表
                oCN.RunProc(@"Insert Into Sc_PPBomBillMain
                        (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus,HICMOInterID
                        ,HICMOEntryID,HMaterID,HUnitID,HQty,HDeptID,HMaker,HMakeDate,HChecker,HCheckDate
                        ,HSeOrderBillNo,HSeOrderInterID,HSeOrderEntryID,HPRDORGID,HENTRUSTORGID,HPARENTOWNERID
                        ,HPARENTOWNERTYPEID,HERPInterID,HERPBillType,HSeOrderEntrySEQ,HICMOEntrySEQ,HREQSRC)
                        values(" + mainList[0].HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 3720 + "','" +
                mainList[0].HBillSubType + "','" + mainList[0].HDate + "','" + mainList[0].HBillNo + "','" + mainList[0].HBillStatus + "'," + mainList[0].HICMOInterID +
                "," + mainList[0].HICMOEntryID + ",'" + mainList[0].HMaterID + "'," + mainList[0].HUnitID + "," + mainList[0].HQty + "," + mainList[0].HDeptID +
                ",'" + mainList[0].HMaker + "','" + mainList[0].HMakeDate + "','" + mainList[0].HChecker + "','" + mainList[0].HCheckDate + "','" + mainList[0].HSeOrderBillNo + "'," + mainList[0].HSeOrderInterID + "," + mainList[0].HSeOrderEntryID + "," + mainList[0].HPRDORGID + "," + mainList[0].HENTRUSTORGID + "," + mainList[0].HPARENTOWNERID + ",'" +
                mainList[0].HPARENTOWNERTYPEID + "'," + mainList[0].HERPInterID + ",'" + mainList[0].HERPBillType + "'," + mainList[0].HSeOrderEntrySEQ + "," + mainList[0].HICMOEntrySEQ + ",'" + mainList[0].HREQSRC + "')");
                //保存主表
                foreach (var oSub in subList)
                {
                    oCN.RunProc($@"Insert into Sc_PPBomBillSub
                (HInterID,HEntryID,HMaterID,HMaterNumber,HUnitID,HUnitNumber,HSPID,HQty,HQtyMust,HWHID,HRemark
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HICMOInterID,HICMOEntryID,HICMOBillNo
                ,HCHILDSUPPLYORGID,HSUPPLYORGID,HENTRUSTPICKORGID,HSRCTRANSORGID,HGROUPBYOWNERID,HOWNERID,HOWNERTYPEID
                ,HRelationQty,HMoveStockQty,HAuxPropID,HBatchNO,HMTONo,HQtyScrap,HERPInterID,HERPEntryID
                ,HBackRelationQty,HNumerator,HDenominator,HBASEUNITID,HProcessID,HICMOENTRYSEQ,HPROJECTNO
                ,HOPERID,HSEQ,HSTOCKSTATUSID,HLOT,HOPTQUEUE,HRESERVETYPE,HSelPickedQty,HSELPRCDRETURNQTY)
                 values('{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HMaterNumber}','{oSub.HUnitID}','{oSub.HUnitNumber}','{oSub.HSPID}','{oSub.HQty}'
                ,'{oSub.HQtyMust}','{oSub.HWHID}','{oSub.HRemark}','{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}','{oSub.HSourceBillType}','{oSub.HICMOInterID}','{oSub.HICMOEntryID}','{oSub.HICMOBillNo}','{oSub.HCHILDSUPPLYORGID}','{oSub.HSUPPLYORGID}','{oSub.HENTRUSTPICKORGID}','{oSub.HSRCTRANSORGID}','{oSub.HGROUPBYOWNERID}','{oSub.HOWNERID}','{oSub.HOWNERTYPEID}','{oSub.HRelationQty}','{oSub.HMoveStockQty}','{oSub.HAuxPropID}','{oSub.HBatchNO}','{oSub.HMTONo}','{oSub.HQtyScrap}','{oSub.HERPInterID}','{oSub.HERPEntryID}','{oSub.HBackRelationQty}','{oSub.HNumerator}','{oSub.HDenominator}','{oSub.HBASEUNITID}','{oSub.HProcessID}','{oSub.HICMOENTRYSEQ}','{oSub.HPROJECTNO}','{oSub.HOPERID}','{oSub.HSEQ}','{oSub.HSTOCKSTATUSID}','{oSub.HLOT}','{oSub.HOPTQUEUE}','{oSub.HRESERVETYPE}','{oSub.HSelPickedQty}','{oSub.HSELPRCDRETURNQTY}')");
                }
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "单据保存成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        /// <summary>
WebAPI/Controllers/SCGL/Èռƻ®¹ÜÀí/DataHelper.cs
@@ -1,5 +1,8 @@
using System;
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Reflection;
@@ -19,7 +22,7 @@
                List<T> list = new List<T>();
                if (ds.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow row in ds.Tables[0].Rows)
                    foreach (DataRow row in ds.Tables[0].Rows)
                    {
                        list.Add(row.Put(new T()));
                    }
@@ -167,5 +170,77 @@
            }
            return $"update {table} set {strSet} where 1=1 {condition}";
        }
        /// <summary>
        /// å°†List转换成DataTable
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <returns></returns>
        public static DataTable ToDataTable<T>(this IList<T> data)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
            DataTable dt = new DataTable();
            for (int i = 0; i < properties.Count; i++)
            {
                PropertyDescriptor property = properties[i];
                dt.Columns.Add(property.Name, property.PropertyType);
            }
            object[] values = new object[properties.Count];
            foreach (T item in data)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    values[i] = properties[i].GetValue(item);
                }
                dt.Rows.Add(values);
            }
            return dt;
        }
        /// <summary>
        /// å°†List转换为DataTable
        /// </summary>
        /// <param name="list">请求数据</param>
        /// <returns></returns>
        public static DataTable ListToDataTable<T>(List<T> list)
        {
            //创建一个名为"tableName"的空表
            DataTable dt = new DataTable("tableName");
            //创建传入对象名称的列
            foreach (var item in list.FirstOrDefault().GetType().GetProperties())
            {
                dt.Columns.Add(item.Name);
            }
            //循环存储
            foreach (var item in list)
            {
                //新加行
                DataRow value = dt.NewRow();
                //根据DataTable中的值,进行对应的赋值
                foreach (DataColumn dtColumn in dt.Columns)
                {
                    int i = dt.Columns.IndexOf(dtColumn);
                    //基元元素,直接复制,对象类型等,进行序列化
                    if (value.GetType().IsPrimitive)
                    {
                        value[i] = item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item);
                    }
                    else
                    {
                        value[i] = JsonConvert.SerializeObject(item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item));
                    }
                }
                dt.Rows.Add(value);
            }
            return dt;
        }
    }
}
WebAPI/Models/»ù´¡×ÊÁÏ/Warehouse.cs
@@ -16,12 +16,11 @@
        public long HParentID { get; set; }
        public string HRemark { get; set; }
        public string HShortNumber { get; set; }
        public bool HStopflag { get; set; }
        public bool HStopFlag { get; set; }
        public string HUseFlag { get; set; }
        public Int64 HEmpID { get; set; }
        public string HAddress { get; set; }
        public string HPhone { get; set; }
        public bool HIsStockMgr { get; set; }
        public Int64 HSPGroupID { get; set; }
        public string HBarCode { get; set; }
        public Int64 HUSEORGID { get; set; }
WebAPI/Models/»ù´¡×ÊÁÏ/WorkDay.cs
@@ -15,5 +15,9 @@
        public DateTime HNoonbreakEnd { get; set; }
        public DateTime HNightbreakBegin { get; set; }
        public DateTime HNightbreakEnd { get; set; }
        public DateTime HNoonbreakBegin2 { get; set; }
        public DateTime HNoonbreakEnd2 { get; set; }
        public DateTime HNightbreakBegin2 { get; set; }
        public DateTime HNightbreakEnd2 { get; set; }
    }
}
WebAPI/WebAPI.csproj.user
@@ -18,7 +18,7 @@
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <UseGlobalApplicationHostFile />
    <ProjectView>ShowAllFiles</ProjectView>
    <ProjectView>ProjectFiles</ProjectView>
    <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
    <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
  </PropertyGroup>