123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395 |
- using SysBaseLibs;
- using SysDataLibs;
- using SysDataLibs.TableClass;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Web;
- using System.Web.Services;
- using System.Xml.Serialization;
- namespace GSMarketSys.WS
- {
- /// <summary>
- /// WSComplaints 的摘要说明
- /// </summary>
- [WebService(Namespace = "http://tempuri.org/")]
- [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
- [System.ComponentModel.ToolboxItem(false)]
- // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
- // [System.Web.Script.Services.ScriptService]
- public class WSComplaints : System.Web.Services.WebService
- {
- public WSComplaints()
- {
- //如果使用设计的组件,请取消注释以下行
- //InitializeComponent();
- }
- // 实现处理食安办分派过来的投诉举报信息
- [XmlInclude(typeof(ComplaintsResult))]
- [WebMethod]
- public ComplaintsResult CompaintsIssued(string OnlineComplaintsID, string OnlineComplaintsIP, string OnlineComplaintsName,
- string OnlineComplaintsContent, DateTime CreateDate, string ComplaintsDept, DateTime EndHandleDate, string ContactTel,
- string ComplaintType, string AssignNo, string AcceptancePeople,
- int EndHandleDateCount, ComplaintsAttachEntity[] Attachments, string Guid)
- {
- ComplaintsResult result = new ComplaintsResult();
- result.Flag = false;
- result.Message = "";
- DBConnSql loDBConn = null;
- try
- {
- // 检查是否有效guid
- if (LoginGUID.Instance.GetOne(Guid) == null)
- {
- string strMsg = "Invalid guid " + Guid;
- result.Message = strMsg;
- throw new Exception(strMsg);
- }
- FSOnlineComplaints_info complaints = new FSOnlineComplaints_info();
- complaints.OnlineComplaintsID = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsID);
- complaints.OnlineComplaintsIP = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsIP);
- complaints.OnlineComplaintsName = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsName);
- complaints.OnlineComplaintsContent = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsContent);
- complaints.IsAudit = "0";
- complaints.IsDeleted = "0";
- complaints.IsReply = "0";
- complaints.CreateDate = CreateDate.ToString();
- complaints.ComplaintsDept = SysBaseLibs.Utils.AreaToSQL(ComplaintsDept);
- complaints.ReplyPeople = "";
- complaints.ReplyDate = "";
- complaints.ReplyContent = "";
- complaints.EndHandleDateCount = EndHandleDateCount.ToString();
- complaints.EndHandleDate = EndHandleDate.ToString();
- complaints.OnlineComplaintsRemark = "";
- complaints.ContactTel = SysBaseLibs.Utils.AreaToSQL(ContactTel);
- complaints.ComplaintType = SysBaseLibs.Utils.AreaToSQL(ComplaintType);
- complaints.AssignedNo = SysBaseLibs.Utils.AreaToSQL(AssignNo);
- complaints.AcceptancePeople = SysBaseLibs.Utils.AreaToSQL(AcceptancePeople);
- // 数据库操作
- loDBConn = new DBConnSql();
- if (loDBConn.Open())
- {
- // 通过CompaintsIssued接口调用的OnlineComplaintsID,理论上不会有重复
- string lcSql = complaints.InsertSql();
- if (loDBConn.ExcuteSqlTran(lcSql))
- {
- // 保存附件信息
- SaveAttachments(OnlineComplaintsID, Attachments, loDBConn);
- result.Flag = true;
- }
- }
- }
- catch (Exception err)
- {
- result.Flag = false;
- result.Message = err.Message;
- string strTemp = "WSComplaints::CompaintsIssued失败," + err.Message;
- ThreadLog.LogInfo(strTemp);
- }
- finally
- {
- if (loDBConn != null && loDBConn.IsOpened)
- loDBConn.Close();
- }
- return result;
- }
- // 实现接收从其他系统中转交过来的投诉举报
- [XmlInclude(typeof(ComplaintsResult))]
- [WebMethod]
- public ComplaintsResult CompaintsTransmit(string OnlineComplaintsID, string OnlineComplaintsIP, string OnlineComplaintsName,
- string OnlineComplaintsContent, DateTime CreateDate, string ComplaintsDept, DateTime EndHandleDate, string ContactTel,
- string ComplaintType, string AssignNo, string AcceptancePeople, int EndHandleDateCount, ComplaintsAttachEntity[] Attachments,
- string TransmitPeople, string OldDept, string Guid)
- {
- ComplaintsResult result = new ComplaintsResult();
- result.Flag = false;
- result.Message = "";
- DBConnSql loDBConn = null;
- try
- {
- // 检查是否有效guid
- if (LoginGUID.Instance.GetOne(Guid) == null)
- {
- string strMsg = "Invalid guid " + Guid;
- result.Message = strMsg;
- throw new Exception(strMsg);
- }
- OnlineComplaintsID = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsID);
- FSOnlineComplaints_info complaints = new FSOnlineComplaints_info();
- complaints.OnlineComplaintsID = OnlineComplaintsID;
- complaints.OnlineComplaintsIP = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsIP);
- complaints.OnlineComplaintsName = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsName);
- complaints.OnlineComplaintsContent = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsContent);
- complaints.IsAudit = "0";
- complaints.IsDeleted = "0";
- complaints.IsReply = "0";
- complaints.CreateDate = CreateDate.ToString();
- complaints.ComplaintsDept = SysBaseLibs.Utils.AreaToSQL(ComplaintsDept);
- complaints.ReplyPeople = "";
- complaints.ReplyDate = "";
- complaints.ReplyContent = "";
- complaints.EndHandleDateCount = EndHandleDateCount.ToString();
- complaints.EndHandleDate = EndHandleDate.ToString();
- complaints.OnlineComplaintsRemark = "";
- complaints.ContactTel = SysBaseLibs.Utils.AreaToSQL(ContactTel);
- complaints.ComplaintType = SysBaseLibs.Utils.AreaToSQL(ComplaintType);
- complaints.AssignedNo = SysBaseLibs.Utils.AreaToSQL(AssignNo);
- complaints.AcceptancePeople = SysBaseLibs.Utils.AreaToSQL(AcceptancePeople);
- // 数据库操作
- loDBConn = new DBConnSql();
- if (loDBConn.Open())
- {
- // 记录转发信息
- FSOnlineComplaintsTransmit_info transmit = new FSOnlineComplaintsTransmit_info();
- transmit.TransmitID = System.Guid.NewGuid().ToString("N");
- transmit.OnlineComplaintsID = OnlineComplaintsID;
- transmit.TransmitDept = SysBaseLibs.Utils.AreaToSQL(ComplaintsDept);
- transmit.OldDept = SysBaseLibs.Utils.AreaToSQL(OldDept);
- transmit.TransmitPeople = SysBaseLibs.Utils.AreaToSQL(TransmitPeople);
- transmit.UpdateTime = DateTime.Now.ToString();
- if (loDBConn.ExcuteSqlTran(transmit.InsertSql()))
- {
- string strSql = string.Empty;
- bool bSaveAttach = false;
- // OnlineComplaintsID已经存在
- if (IsComplaintsExist(OnlineComplaintsID, loDBConn) == true)
- {
- // 只要更新改记录的承办部门即可
- strSql = complaints.UpdateComplaintsDeptSql();
- }
- // 也可能是通过CompaintsTransmit转发过来的,该ID第一次出现
- else
- {
- // 新增投诉记录
- strSql = complaints.InsertSql();
- // 需要保存附件
- bSaveAttach = true;
- }
- if (loDBConn.ExcuteSqlTran(strSql))
- {
- if (bSaveAttach)
- {
- // 保存附件信息
- SaveAttachments(OnlineComplaintsID, Attachments, loDBConn);
- }
- result.Flag = true;
- }
- }
- }
- }
- catch (Exception err)
- {
- result.Flag = false;
- result.Message = err.Message;
- string strTemp = "WSComplaints::CompaintsTransmit失败," + err.Message;
- ThreadLog.LogInfo(strTemp);
- }
- finally
- {
- if (loDBConn != null && loDBConn.IsOpened)
- loDBConn.Close();
- }
- return result;
- }
- // 实现处理 平台对子系统投诉举报信息“要求反馈时间延期申请”的回复
- [XmlInclude(typeof(ComplaintsResult))]
- [WebMethod]
- public ComplaintsResult CompaintsDelayReply(string DelayID, string OnlineComplaintsID, string BackPeople,
- string BackContent, int IsDegree, string Guid)
- {
- ComplaintsResult result = new ComplaintsResult();
- result.Flag = false;
- result.Message = "";
- DBConnSql loDBConn = null;
- try
- {
- // 检查是否有效guid
- if (LoginGUID.Instance.GetOne(Guid) == null)
- {
- string strMsg = "Invalid guid " + Guid;
- result.Message = strMsg;
- throw new Exception(strMsg);
- }
- DelayID = SysBaseLibs.Utils.AreaToSQL(DelayID);
- OnlineComplaintsID = SysBaseLibs.Utils.AreaToSQL(OnlineComplaintsID);
- // 数据库操作
- loDBConn = new DBConnSql();
- if (loDBConn.Open())
- {
- // 修改延期申请记录
- FSOnlineComplaintsDelay_info delay = new FSOnlineComplaintsDelay_info();
- delay.DelayID = DelayID;
- delay.IsAgree = IsDegree.ToString(); // 1同意;-1不同意
- delay.BackPeople = SysBaseLibs.Utils.AreaToSQL(BackPeople);
- delay.BackContent = SysBaseLibs.Utils.AreaToSQL(BackContent);
- delay.UpdateTime = DateTime.Now.ToString();
- string lcSql = delay.UpdateSql();
- loDBConn.ExcuteSqlTran(lcSql);
- // 申请延期同意
- if (IsDegree == 1)
- {
- // 查询延期申请中的延期时间
- FSOnlineComplaintsDelay_Qry delayQry = new FSOnlineComplaintsDelay_Qry();
- string lcDelayQrySql = "select * from " + Tn.FSOnlineComplaintsDelay + " where " + FSOnlineComplaintsDelay_info.cDelayID + "='" + DelayID + "'";
- if (delayQry.Open(lcDelayQrySql, loDBConn) && (delayQry.RecCount > 0))
- {
- int nDelayCount = delayQry.GetInt(FSOnlineComplaintsDelay_info.cDelayCount);
- string strDelayDate = delayQry.GetString(FSOnlineComplaintsDelay_info.cDelayDate);
- // 用延期时间去修改投诉记录的'要求反馈日期'
- FSOnlineComplaints_info complaints = new FSOnlineComplaints_info();
- complaints.OnlineComplaintsID = OnlineComplaintsID;
- complaints.EndHandleDate = strDelayDate;
- //complaints.EndHandleDateCount = nDelayCount.ToString();
- lcSql = complaints.UpdateDelaySql();
- if (loDBConn.ExcuteSqlTran(lcSql))
- {
- result.Flag = true;
- }
- }
- }
- }
- }
- catch (Exception err)
- {
- result.Flag = false;
- result.Message = err.Message;
- string strTemp = "WSComplaints::CompaintsDelayReply失败," + err.Message;
- ThreadLog.LogInfo(strTemp);
- }
- finally
- {
- if (loDBConn != null && loDBConn.IsOpened)
- loDBConn.Close();
- }
- return result;
- }
- // 查询指定投诉信息是否存在
- private bool IsComplaintsExist(string lcComplaintsID, DBConnSql loConn)
- {
- bool bRet = false;
- string lcSql = "select count(*) as totalcount from " + Tn.FSOnlineComplaints +
- " where " + FSOnlineComplaints_info.cOnlineComplaintsID + "='" + lcComplaintsID + "'";
- SysBaseLibs.rsQuery loQuery = loConn.OpenQuery(lcSql);
- if (loQuery != null && loQuery.IsOpened && loQuery.RecCount > 0)
- {
- int nCount = loQuery.GetInt("totalcount");
- if (nCount > 0)
- bRet = true;
- }
- return bRet;
- }
- // 保存附件文件
- private void SaveAttachments(string OnlineComplaintsID, ComplaintsAttachEntity[] Attachments, DBConnSql loDBConn)
- {
- if (Attachments == null)
- return;
- foreach (ComplaintsAttachEntity attachFile in Attachments)
- {
- if (string.IsNullOrEmpty(attachFile.AttachmentName) || string.IsNullOrEmpty(attachFile.AttachmentFormat) || attachFile.AttachmentContent == null)
- {
- continue;
- }
- try
- {
- // 相对路径路径
- string strFilePath = SysDataLibs.AppEnv.SysSetObj.GetString("DOWNLOADPATH") + "/" +
- SysDataLibs.AppEnv.SysSetObj.GetString("ATTACHFILES") + "/" + Tn.FSOnlineComplaints.ToUpper();
- // 物理路径
- string strPhysicalDir = HttpContext.Current.Request.PhysicalApplicationPath;
- strPhysicalDir += strFilePath;
- if (!Directory.Exists(strPhysicalDir))
- {
- Directory.CreateDirectory(strPhysicalDir);
- }
- string strFileExt = attachFile.AttachmentFormat.Replace("'", "");
- strFileExt = strFileExt.Replace(".", ""); // 扩展名不需要"."符号
- string strFileTitle = attachFile.AttachmentName.Replace("'", "");
- string lcDateRd = strFileTitle + "-" + DateTime.Now.ToString("yyyyMMddHHmmssffffff") + "." + strFileExt;
- string strFileName = lcDateRd.Replace(" ", "");
- // 写入文件
- System.IO.File.WriteAllBytes(strPhysicalDir + "/" + strFileName, attachFile.AttachmentContent);
- // 附件信息写入数据库
- Sys_AttachFiles_info loAttachFile = new Sys_AttachFiles_info();
- loAttachFile.TableId = Tn.FSOnlineComplaints;
- loAttachFile.ColumnId = FSOnlineComplaints_info.cOnlineComplaintsID;
- loAttachFile.SourceKey = OnlineComplaintsID;
- loAttachFile.FileTitle = strFileTitle;
- loAttachFile.FileName = strFileName;
- loAttachFile.FilePath = strFilePath;
- loAttachFile.FileExt = strFileExt;
- loAttachFile.TimeCreated = DateTime.Now.ToString();
- loAttachFile.TimeLastMod = DateTime.Now.ToString();
- loAttachFile.UserIDLastMod = "platuser";
- loAttachFile.Description = "";
- string strSql = loAttachFile.InsertSql();
- bool bRet = loDBConn.ExcuteSqlTran(strSql);
- }
- catch (Exception err)
- {
- string strMsg = "WSComplaints.SaveAttachments exception," + err.Message;
- ThreadLog.LogErr(strMsg);
- }
- }//foreach
- }
- }
- // 附件信息
- [Serializable]
- public class ComplaintsAttachEntity
- {
- public string AttachmentName; // 附件名称
- public byte[] AttachmentContent; // 附件内容
- public string AttachmentFormat; // 附件格式
- }
- // 调用返回结果
- [Serializable]
- public class ComplaintsResult
- {
- public bool Flag; // 是否执行成功
- public string Message; // 无法执行成功的原因
- }
- }
|