异常反馈单;工序检验单PDA;工序出站汇报入库时,如果唯一ID为空则报错(瑞琪);客诉单客户维度报表
9个文件已修改
1个文件已添加
555 ■■■■■ 已修改文件
Model/信息平台/ClsOA_ErrMsgBackBillSub.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/质检管理/ClsQC_ProcessCheckBillMain.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/Sc_ProcessMangementController.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/品质管理/客诉处理单/Crm_CustomerAppealBillController.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/品质管理/工序检验单/MES_ProcessCheckBill_PDAController.cs 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/DLL/ClsOA_ErrMsgBackBill.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/ListModels.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/ClsOA_ErrMsgBackBillSub.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/ÐÅϢƽ̨/ClsOA_ErrMsgBackBillSub.cs
@@ -9,6 +9,7 @@
        public Int64 HSendStatus;//  int          --回复类型(1普通,2审核,4作废,5审核退回,9结案,10验证)
        public string HSendMan;//   varchar(10)   --回复人
        public string HDescription;//  varchar(1000)  --回复内容
        public string HDescriptionSub;//  varchar(1000)  --回复内容
        public DateTime HDate;//      datetime --回复时间
    }
Model/Öʼì¹ÜÀí/ClsQC_ProcessCheckBillMain.cs
@@ -39,6 +39,6 @@
        public Int64 HPackTypeID;
        public Int64 HICMOEntryID;
        public Int64 HQCSchemeID;
        public bool HLastResult;
    }
}
WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
@@ -581,5 +581,170 @@
        }
        #endregion
        #region æŠ¥å·¥å¹³å°å¼‚常反馈单回复
        /// <summary>
        /// å¼‚常反馈单
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("Sc_MESTransFerWorkBill/ReplyMESTransFerWorkFrom")]
        [HttpPost]
        public object ReplyMESTransFerWorkFrom([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string UserName = sArray[1].ToString();
            string refSav = sArray[2].ToString();
            DBUtility.ClsPub.CurUserName = UserName;
            //保存权限
            if (!DBUtility.ClsPub.Security_Log_second("OA_ErrMsgBackBill_Edit", 1, false, DBUtility.ClsPub.CurUserName))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无保存权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            //判断会计期是否合理
            string s = "";
            int sYear = 0;
            int sPeriod = 0;
            if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = s;
                objJsonResult.data = null;
                return objJsonResult;
            }
            ListModels oListModels = new ListModels();
            try
            {
                DLL.ClsOA_ErrMsgBackBill oBill = new DLL.ClsOA_ErrMsgBackBill();
                List<Models.ClsOA_ErrMsgBackBillSub> lsmain = new List<Models.ClsOA_ErrMsgBackBillSub>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Gy_MESTransFerWorkBillSub(msg2);
                foreach (Models.ClsOA_ErrMsgBackBillSub DetailReply in lsmain)
                {
                    oBill.DetailReply = DetailReply;
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.DetailReply.HInterID != 0)
                {
                    bResult = oBill.ReplyBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    bResult = false;
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "回复成功!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "回复失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.Message;
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
        #region å¼‚常反馈列表回复获取数据
        [Route("Sc_MESTransFerWorkBill/Get_TransFerReplyBill")]
        [HttpGet]
        public object Get_TransFerReplyBill(string sWhere, string user)
        {
            try
            {
                string sql1 = "select * from h_v_OA_ErrMsgBackBillSubList where 1 = 1 ";
                string sql = sql1 + sWhere + " order by HInterID desc";
                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackBillSubList");
                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.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å¼‚常反馈列表回复更改状态
        [Route("Sc_MESTransFerWorkBill/Update_TransFerReplyBill")]
        [HttpGet]
        public object Update_TransFerReplyBill(Int64 HInterID, string HEntryID,Int64 Type)
        {
            try
            {
                string sql = "";
                switch (Type)
                {
                    case 9:
                        sql = "update OA_ErrMsgBackBillSub set HSendStatus = 9 where HInterID = " + HInterID + " and HEntryID in (" + HEntryID + ")";
                        break;
                    case 10:
                        sql = "update OA_ErrMsgBackBillSub set HSendStatus = 10 where HInterID = " + HInterID + " and HEntryID in (" + HEntryID + ")";
                        break;
                }
                oCN.RunProc(sql);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = 1;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -747,6 +747,19 @@
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //判断唯一ID是否为空
                        foreach (DataRow item in ds1.Tables[0].Rows)
                        {
                            if (item["HWYID"].ToString() == null || item["HWYID"].ToString() == "" || item["HWYID"].ToString() == "undefined")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "唯一ID为空,请重新手动入库或联系管理员!";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                }
WebAPI/Controllers/Æ·ÖʹÜÀí/¿ÍËß´¦Àíµ¥/Crm_CustomerAppealBillController.cs
@@ -831,5 +831,58 @@
            }
        }
        #endregion
        #region å®¢è¯‰å¤„理单 å®¢æˆ·ç»´åº¦æŠ¥è¡¨æŸ¥è¯¢
        /// <summary>
        /// è¿”回客诉处理单客户维度报表列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("QC_CustomerAppealReport/Customer")]
        [HttpGet]
        public object Customer(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                if (sWhere == null || sWhere.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "请选择有效年份";
                    return objJsonResult;
                }
                else
                {
                    ds = oCN.RunProcReturn("exec h_p_QC_CustomerAppealReport_Customer '" + sWhere + "'", "h_p_QC_CustomerAppealReport_Customer");
                }
                //添加列名
                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列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/Æ·ÖʹÜÀí/¹¤Ðò¼ìÑéµ¥/MES_ProcessCheckBill_PDAController.cs
New file
@@ -0,0 +1,256 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
    public class MES_ProcessCheckBill_PDAController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        #region å·¥åºæ£€éªŒPDA新增保存
        [Route("MES_ProcessCheckBill_PDA/ProcessCheckAddBill")]
        [HttpPost]
        public object ProcessCheckAddBill([FromBody] JObject oMain)
        {
            var _value = oMain["oMain"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            try
            {
                //反序列化
                string msg2 = "[" + sArray[0].ToString() + "]";
                string user = sArray[1].ToString();//用户名
                string OperationType = sArray[2].ToString();//类型
                //判断是否有编辑权限
                if (!DBUtility.ClsPub.Security_Log("QC_ProcessCheckBill_Edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无编辑权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                List<Model.ClsQC_ProcessCheckBillMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_ProcessCheckBillMain>>(msg2);
                string BillType = "7507";
                string HBillSubType = "7507";
                long HInterID = list[0].HInterID;//递入type得到的单据ID
                string HBillNo = list[0].HBillNo;//递入type得到的单据号
                int HBillStatus = 1;
                string HMaker = user;//制单人
                int HYear = DateTime.Now.Year;
                double HPeriod = DateTime.Now.Month;
                long HSourceID = list[0].HSourceID;//生产资源
                long HICMOInterID = list[0].HICMOInterID;//任务单ID
                string HICMOBillNo = list[0].HICMOBillNo;//任务单
                string HProcExchBillNo = list[0].HProcExchBillNo;//指引卡
                long HMaterID = list[0].HMaterID;//产品ID
                //long HUnitID = list[0].HUnitID;//计量单位
                long HProcID = list[0].HProcID;//工序ID
                long HPRDORGID = list[0].HPRDORGID;//组织ID
                bool HLastResult = list[0].HLastResult;//试样结论
                //单据完整性判断
                if (HProcExchBillNo == "")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "流转卡没有选择!请扫描条形码或输入条形码后回车";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                var num = 0;
                oCN.BeginTran();
                if (OperationType == "1")
                {
                    num = 1;
                    ds = oCN.RunProcReturn("select * from QC_ProcessCheckBillMain where HBillNo='" + HBillNo + "'", "QC_ProcessCheckBillMain");
                    if (ds.Tables[0].Rows.Count == 1)
                    {
                        oCN.RollBack();
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    oCN.RunProc("Insert Into QC_ProcessCheckBillMain " +
                    "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
                    ",HYear,HPeriod,HMaterID,HSourceID,HICMOInterID,HICMOBillNo,HProcExchBillNo" +
                    ",HPRDORGID,HLastResult)" +
                    " values('" + BillType + "','" + HBillSubType + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" +
                    "," + HYear + "," + HPeriod + ",'" + HMaterID + "','" + HSourceID + "'," + HICMOInterID + ",'" + HICMOBillNo + "','" + HProcExchBillNo + "'" +
                    "," + HPRDORGID + ",'" + HLastResult + "') ");
                }
                else
                {
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "操作类型无效!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增单据成功!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region  å·¥åºæ£€éªŒ_PDA æŸ¥è¯¢åˆ—表
        [Route("ProcessCheck/ProcessCheckList")]
        [HttpGet]
        public object ProcessCheckList(string sWhere, string user)
        {
            try
            {
                //判断是否有编辑权限
                if (!DBUtility.ClsPub.Security_Log("QC_ProcessCheckBill_Query", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查询权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string sql = "select * from  h_v_QC_ProcessCheckBillMainList where 1=1  " + sWhere + " order by æ—¥æœŸ ";
                ds = oCN.RunProcReturn(sql, "h_v_QC_ProcessCheckBillMainList");
                DataTable dt = ds.Tables[0];
                //获取列名
                List<object> columnNameList = new List<object>();
                //添加列名
                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列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.list = columnNameList;
                objJsonResult.data = dt;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥åºæ£€éªŒ_PDA åˆ é™¤åŠŸèƒ½
        [Route("ProcessCheck/DelProcessCheckBill")]
        [HttpGet]
        public object DelProcessCheckBill(Int64 lngBillKey, string user)
        {
            DataSet ds;
            string ModRightNameCheck = "QC_ProcessCheckBill_Delete";
            try
            {
                //删除权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "删除失败!无权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (lngBillKey == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据id为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();//开始事务
                ds = oCN.RunProcReturn("select * from QC_ProcessCheckBillMain where HInterID=" + lngBillKey, "QC_ProcessCheckBillMain");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有数据,无法删除!";
                    objJsonResult.data = null;
                    return objJsonResult; ;
                }
                string HChecker = Convert.ToString(ds.Tables[0].Rows[0]["HChecker"]);
                if (HChecker != "")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据已经审核,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.RunProc("delete from QC_ProcessCheckBillMain where HInterID=" + lngBillKey);
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "* æ•°æ®åˆ é™¤æˆåŠŸï¼";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "删除失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/DLL/ClsOA_ErrMsgBackBill.cs
@@ -10,6 +10,7 @@
        public Models.ClsOA_ErrMsgBackBillMain omodel = new Models.ClsOA_ErrMsgBackBillMain();
        public List<Models.ClsOA_ErrMsgBackBillSub> DetailColl = new List<Models.ClsOA_ErrMsgBackBillSub>();
        public List<Models.ClsOA_ErrMsgBackBillSub2> DetailColl2 = new List<Models.ClsOA_ErrMsgBackBillSub2>();
        public Models.ClsOA_ErrMsgBackBillSub DetailReply = new Models.ClsOA_ErrMsgBackBillSub();
        public ClsOA_ErrMsgBackBill()
        {
@@ -64,7 +65,9 @@
                ",HDescription='" + omodel.HDescription + "'" +
                ",HHasten=" + omodel.HHasten.ToString() +
                ",HQty=" + omodel.HQty.ToString() +
                ",HRecDeptID=" + omodel.HRecDeptID.ToString() +
                ",HMaterNumber='" + omodel.HMaterNumber + "'" +
                " where HInterID=" + lngBillKey.ToString());
                //删除关联
                DeleteRelation(ref sReturn, lngBillKey);
@@ -193,6 +196,52 @@
            }
        }
        public bool ReplyBill(ref string sReturn)
        {
            try
            {
                //若MAINDI重复则重新获取
                oCn.BeginTran();
                DataSet Ds = oCn.RunProcReturn("select count(HInterID) as num from OA_ErrMsgBackBillSub where HInterID = " + DetailReply.HInterID + " group by HInterID ", "OA_ErrMsgBackBillSub");
                Int64 num = 0;
                if (Ds.Tables[0].Rows.Count == 0)
                {
                    num = 1;
                }
                else
                {
                    num = Convert.ToInt64(Ds.Tables[0].Rows[0]["num"]) + 1;
                }
                //主表
                oCn.RunProc("Insert Into OA_ErrMsgBackBillSub   " +
                "(HInterID,HEntryID,HRemark,HSendStatus,HSendMan" +
                ",HDescriptionSub,HDate" +
                ",HCloseMan,HEntryCloseDate,HCloseType,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                ") " +
                " values(" + DetailReply.HInterID + "," + num + ",'" + DetailReply.HRemark + "'," + 1 + ",'" + DetailReply.HSendMan + "'" +
                ",'" + DetailReply.HDescriptionSub + "','" + DetailReply.HDate + "','" + DetailReply.HCloseMan + "','" + "" + "'" +
                "," + 0 + "," + DetailReply.HSourceInterID + "," + DetailReply.HSourceEntryID + ",'" + DetailReply.HSourceBillNo + "'" +
                ",'" + DetailReply.HSourceBillType + "'," + DetailReply.HRelationQty + "," + DetailReply.HRelationMoney +
                ") ");
                sReturn = omodel.HInterID.ToString();
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
        //删除单据
        public virtual bool DeleteBill(Int64 lngBillKey,string HEntryID, ref string sReturn)
        {
WebAPI/ListModels.cs
@@ -2627,6 +2627,18 @@
            return list;
        }
        /// <summary>
        /// å¼‚常反馈单回复列表子表json
        /// </summary>
        /// <param name="jsonString"></param>
        /// <returns></returns>
        public List<Models.ClsOA_ErrMsgBackBillSub> getObjectByJson_Gy_MESTransFerWorkBillSub(string jsonString)
        {
            jsonString = "[" + jsonString.ToString() + "]";
            List<Models.ClsOA_ErrMsgBackBillSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Models.ClsOA_ErrMsgBackBillSub>>(jsonString);
            return list;
        }
        #region å®¢è¯‰å¤„理单
        /// <summary>
        /// å®¢è¯‰å¤„理单主表json
WebAPI/Models/ClsOA_ErrMsgBackBillSub.cs
@@ -9,6 +9,7 @@
        public Int64 HSendStatus;//  int          --回复类型(1普通,2审核,4作废,5审核退回,9结案,10验证)
        public string HSendMan;//   varchar(10)   --回复人
        public string HDescription;//  varchar(1000)  --回复内容
        public string HDescriptionSub;//  varchar(1000)  --回复内容
        public DateTime HDate;//      datetime --回复时间
    }
WebAPI/WebAPI.csproj
@@ -486,6 +486,7 @@
    <Compile Include="Controllers\品质管理\产线返修平台\Sc_SourceLineRepairBillController.cs" />
    <Compile Include="Controllers\品质管理\客诉处理单\Crm_CustomerAppealBillController.cs" />
    <Compile Include="Controllers\品质管理\巡检单\QC_PatrolProcCheckBillController.cs" />
    <Compile Include="Controllers\品质管理\工序检验单\MES_ProcessCheckBill_PDAController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_COMMONCONTACTBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_CustLocationController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_DutyBillController.cs" />