WebAPI/Controllers/BaseSet/Gy_PropertyController.cs
@@ -19,6 +19,73 @@
        DataSet ds;
        #region 辅助属性列表-分页
        [Route("Gy_Property/listPage")]
        [HttpGet]
        public object listPage(string sWhere, string user, int page, int size)
        {
            try
            {
                List<object> columnNameList = new List<object>();  //定义声明变量 ,把通过 new List<object>()创建的 实例,赋值给变量
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Gy_Property", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限查询!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("exec h_p_IF_PropertyList " + page + "," + size + "," + "''", "h_p_Gy_CarList");
                }
                else
                {
                    sWhere = sWhere.Replace("'", "''");
                    ds = oCN.RunProcReturn("exec h_p_IF_PropertyList " + page + "," + size + ",'" + sWhere + "'", "h_p_Gy_CarList");
                }
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                if (ds.Tables[0].Rows.Count > 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.list = columnNameList;
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "没有返回任何记录!";
                objJsonResult.list = columnNameList;
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        /// <summary>
        /// 返回辅助属性列表
        ///参数:string sql。
@@ -365,50 +432,85 @@
        }
        #endregion
        //#region 辅助属性 金蝶同步
        //[Route("Gy_Property/SaveGy_PropertyListApi")]
        //[HttpPost]
        //public object SaveGy_PropertyListApi([FromBody] JObject msg)
        //{
        //    try
        //    {
        //        var _value = msg["model"].ToString();
        //        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        //        ListModels oListModels = new ListModels();
        //        List<Model.ClsGy_Property_Model> lsmain = new List<Model.ClsGy_Property_Model>();
        //        lsmain = oListModels.getObjectByJson_Gy_Property(_value);
        //        string sql = string.Empty;
        //        //保存
        //        oCN.BeginTran();
        //        sql = $"delete Gy_Property where HItemID = {lsmain[0].HItemID}";
        //        oCN.RunProc(sql);
        //        sql = "set identity_insert Gy_Property on";
        //        oCN.RunProc(sql);
        #region 辅助属性 金蝶同步
        [Route("Gy_Property/SaveGy_PropertyListApi")]
        [HttpPost]
        public object SaveGy_PropertyListApi([FromBody] JObject msg)
        {
            LogService.Write("开始同步");
            try
            {
                var _value = msg["model"].ToString();
                LogService.Write("1" + _value);
                var entry = msg["model"]["HENTRY"].ToString();
                LogService.Write("1" + _value);
                LogService.Write("12" + entry);
                entry = entry.Replace("\"hendflag\": \"1\"", "\"hendflag\": true")
                               .Replace("\"hstopflag\": \"0\"", "\"hstopflag\": false")
                               .Replace("\"hendflag\": \"0\"", "\"hendflag\": false")
                               .Replace("\"hstopflag\": \"1\"", "\"hstopflag\": true");
        //        oCN.RunProc($@"insert into Gy_Property(HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID
        //            ,HLevel,HEndFlag,HStopflag,HRemark,HPropertyTypeID,HUseFlag,HERPItemID,HMakeTime)
        //          values({lsmain[0].HItemID},'{lsmain[0].HNumber}','{lsmain[0].HName}','{lsmain[0].HHelpCode}','{lsmain[0].HShortNumber}',{lsmain[0].HParentID},{lsmain[0].HLevel}
        //   ,{Convert.ToString(lsmain[0].HEndFlag ? 1 : 0)},{Convert.ToString(lsmain[0].HStopflag ? 1 : 0) },'{lsmain[0].HRemark}',{lsmain[0].HPropertyTypeID},'{lsmain[0].HUseFlag}',{lsmain[0].HERPItemID},'{lsmain[0].HMakeTime}')", ref DBUtility.ClsPub.sExeReturnInfo);
        //        //修改上级为非末级代码
        //        sql = "set identity_insert Gy_Property off";
        //        oCN.RunProc(sql);
        //        oCN.Commit();
                LogService.Write($"处理后的JSON: {_value}");
                _value = "[" + _value.ToString() + "]";
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                List<Model.ClsGy_PropertyType_Model> lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_PropertyType_Model>>(_value);
                List<Model.ClsGy_Property_Model> lssub = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_Property_Model>>(entry);
                string sql = string.Empty;
                LogService.Write(lsmain);
                //保存
                oCN.BeginTran();
                foreach (var osub in lssub)
                {
                    sql = $"delete Gy_Property where HItemID = {osub.HItemID}";
                    oCN.RunProc(sql);
                }
                foreach (var osub in lsmain)
                {
                    sql = $"delete Gy_PropertyEntry where HItemID = {osub.HItemID}";
                    oCN.RunProc(sql);
                }
                sql = "set identity_insert Gy_Property on";
                oCN.RunProc(sql);
        //        objJsonResult.code = "1";
        //        objJsonResult.count = 1;
        //        objJsonResult.Message = "保存成功!";
        //        objJsonResult.data = 1;
        //        return objJsonResult;
        //    }
        //    catch (Exception e)
        //    {
        //        objJsonResult.code = "0";
        //        objJsonResult.count = 0;
        //        objJsonResult.Message = "保存失败!" + e.ToString();
        //        objJsonResult.data = 1;
        //        return objJsonResult;
        //    }
        //}
        //#endregion
                oCN.RunProc($@"insert into Gy_Property(HItemID,HNumber,HShortNumber,HName,HHelpCode,HParentID
                    ,HLevel,HEndFlag,HStopflag,HRemark,HPropertyTypeID,HUseFlag,HERPItemID,HMakeTime)
                  values({lssub[0].HItemID},'{lssub[0].HNumber}','{lssub[0].HShortNumber}','{lssub[0].HName}','{lssub[0].HHelpCode}',{lssub[0].HParentID},{lssub[0].HLevel}
           ,{Convert.ToString(lssub[0].HEndFlag ? 1 : 0)},{Convert.ToString(lssub[0].HStopflag ? 1 : 0) },'{lssub[0].HRemark}',{lssub[0].HPropertyTypeID},'{lssub[0].HUseFlag}',{lssub[0].HERPItemID},'{lssub[0].HMakeTime}')", ref DBUtility.ClsPub.sExeReturnInfo);
                LogService.Write("辅助属性表插入成功");
                //新增辅助子表:
                oCN.RunProc($@"insert into Gy_PropertyEntry
                            (HItemID,HERPItemID,HAuxpuID,HMaterID,HISDefault,HStopflag,HSno)
                  values({lsmain[0].HItemID},'{lsmain[0].HERPItemID}','{lsmain[0].HAuxpuID}','{lsmain[0].HMaterID}','{lsmain[0].HISDefault}',{Convert.ToString(lsmain[0].HStopflag ? 1 : 0) },'{lsmain[0].HSno}')", ref DBUtility.ClsPub.sExeReturnInfo);
                //修改上级为非末级代码
                sql = "set identity_insert Gy_Property off";
                LogService.Write("辅助属性值表插入成功");
                oCN.RunProc(sql);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "保存成功!";
                objJsonResult.data = 1;
                return objJsonResult;
            }
            catch (Exception e)
            {
                LogService.Write("异常信息:" + e.ToString());
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
    }
}