Esempio n. 1
0
        public void KanPan_Submit_UnRead(object code, string info, string Work_Path, Dictionary <string, string> TempDic)
        {
            //string sql = "update XW_FileOrderinfo set 可读否='否',制作说明=\"" + info+ "\" where 编号='" + code + "'";
            //sqlite.ExecuteNonQuery(sql, null);
            //sql = "update db_State set 保存否='不可做' where 编号='" + code + "'";
            //sqlite.ExecuteNonQuery(sql, null);
            //TextLog.WritwLog("into KanPan_Submit_UnRead");
            Register  reg      = new Register();
            string    Ini_Path = reg.ReadRegeditKey("QueuePath", "software\\CNKI\\Assistant\\Work\\", Register.RegDomain.CurrentUser).ToString();
            INIManage ini      = new INIManage(Ini_Path);
            string    strTask  = ini.SectionValues("Task")[0];

            strTask = strTask.Substring(strTask.IndexOf('=') + 1);
            MatchTask task = strTask.FromJson <MatchTask>();
            //var dic = GetBiaoZhu("纯盘");
            string filename = Work_Path + "\\Explain.xml";
            string unit     = XDocument.Load(filename).Element("ExplainInfo").Element("Info").Value;

            //TextLog.WritwLog("基本信息构造完毕");
            #region 生成提交信息的xml的Content字段
            SendTask sTask = new SendTask();
            sTask.code        = task.Code;
            sTask.ArticleCode = code.ToString();
            sTask.Units       = unit;

            sTask.IsRead       = "否";
            sTask.Year         = "";
            sTask.Level        = "";
            sTask.IsSecret     = "";
            sTask.IsSQ         = "";
            sTask.IsQM         = "";
            sTask.Iscopyright  = "";
            sTask.Explain      = "";
            sTask.DeleteWords  = "";
            sTask.SchoolName   = "";
            sTask.PaperSummary = "";
            sTask.Cutf         = "";
            sTask.HardCoverf   = "";
            sTask.DelayDate    = "";


            sTask.TaskComeTime = task.TaskComeTime;
            //不可做原因说明
            sTask.ProcMode = info;

            sTask.ProductCode = task.Code;
            sTask.PostName    = "文件整理";

            string strSendTask = sTask.ToJson();

            string sql = string.Format("update XW_FileOrderinfo set 年度='{0}',级别='{1}',保密否='{2}',版权反馈否='{3}',是否签名='{4}',是否授权='{5}',备注='{6}',删除字样='{7}',滞后上网='{8}' where 编号='{9}'",
                                       sTask.Year, sTask.Level, sTask.IsSecret, sTask.Iscopyright, sTask.IsQM, sTask.IsSQ, sTask.Explain, sTask.DeleteWords, sTask.DelayDate, code);
            //TextLog.WritwLog("unread:" + sql);
            sqlite.ExecuteNonQuery(sql, null);
            //TextLog.WritwLog("更新db");
            XDocument newdoc           = new XDocument();
            XElement  node_root        = new XElement("ArticleInfo");
            XElement  node_code        = new XElement("SN");
            XElement  node_articleCode = new XElement("ArticleCode");
            XElement  node_content     = new XElement("CONTENT");
            node_code.Value        = code.ToString();
            node_articleCode.Value = code.ToString();
            node_content.Value     = strSendTask;
            node_root.Add(node_code, node_content);
            newdoc.Add(node_root);
            if (!Directory.Exists(Work_Path + "\\ArticlePublish"))
            {
                Directory.CreateDirectory(Work_Path + "\\ArticlePublish");
            }
            newdoc.Save(Work_Path + "\\ArticlePublish\\" + code + ".xml");
            //TextLog.WritwLog("保存xml");
            //保存参数,用于在篇提交成功后更新db
            if (TempDic.Keys.Contains(code.ToString()))
            {
                TempDic.Remove(code.ToString());
            }
            TempDic.Add(code.ToString(), "否");
            //TextLog.WritwLog("同步");

            #endregion

            #region 移动篇提交文件至ArticleUpload文件夹
            string tempPath = sqlite.ExecuteScalar("select 路径 from XW_FileOrderinfo where 编号='" + code + "'", null).ToString();

            #region 验证'整理后'文件夹中的文件个数和db中是否一样
            int c0 = Convert.ToInt32(sqlite.ExecuteScalar("select count(*) from db_File where 编号 ='" + code + "'", null));
            int c1 = Traverse(tempPath);
            if (c0 != c1)
            {
                TextLog.WritwLog(code + ":整理后文件夹中文件个数(" + c1 + ")与db中文件个数(" + c0 + ")不一致");
                MessageBox.Show(code + ":整理后文件夹中文件个数(" + c1 + ")与db中文件个数(" + c0 + ")不一致,请联系研发!");
                return;
            }
            #endregion

            DirectoryInfo dir        = new DirectoryInfo(tempPath);
            string        uploadPath = Work_Path + "\\ArticleUpload";
            if (!Directory.Exists(uploadPath))
            {
                Directory.CreateDirectory(uploadPath);
            }
            if (!Directory.Exists(uploadPath + "\\" + code))
            {
                Directory.Move(tempPath, uploadPath + "\\" + code);
            }
            TextLog.WritwLog(code + ":移动篇提交文件至ArticleUpload文件夹成功");
            #endregion

            #region 验证upload文件夹中的文件个数和db中是否一样
            int c2 = Traverse(uploadPath + "\\" + code);
            if (c0 != c2)
            {
                TextLog.WritwLog(code + ":articleupload文件夹中文件个数(" + c2 + ")与db中文件个数(" + c0 + ")不一致");
                MessageBox.Show(code + ":articleupload文件夹中文件个数(" + c2 + ")与db中文件个数(" + c0 + ")不一致,请联系研发!");
                return;
            }
            #endregion

            #region 给加工助手发送udp进行篇提交
            //TextLog.WritwLog(code + ":开始篇提交");

            string transport_WorkPath = task.WorkPath.Replace("\\", "\\\\");
            string message            = "{\"ArticleCode\":\"" + code + "\"," + "\"Code\":\"" + task.Code + "\"," + "\"LineId\":\"" + task.LineID + "\"," + "\"PostId\":\"" + task.PostID + "\"," +
                                        "\"TaskComeTime\":\"" + task.TaskComeTime + "\"," + "\"WorkPath\":\"" + transport_WorkPath + "\"}";
            //TextLog.WritwLog(message);
            try
            {
                Byte[] sendBytes = Encoding.Default.GetBytes(message);
                PublicTool.localUdp.Send(sendBytes, sendBytes.Length, remotePoint);
            }
            catch (Exception ss)
            {
                TextLog.WritwLog(code + "发送udp失败:" + ss.Message);
            }


            #endregion
        }
Esempio n. 2
0
			/// <summary>
			/// Constructor for non-root node
			/// </summary>
			internal MatchTask(MatchTask<P_IN, P_OUT> parent, Spliterator<P_IN> spliterator) : base(parent, spliterator)
			{
				this.Op = parent.Op;
			}
Esempio n. 3
0
        /// <summary>
        /// 纯盘篇提交
        /// </summary>
        /// <param name="code">编号</param>
        /// <param name="dic">标记的参数</param>
        /// <param name="TempDic">临时存储参数,用于提交成功后保存db</param>
        /// <param name="Work_Path">工作路径</param>
        public void ChunPan_Submit(object code, Dictionary <string, object> dic, Dictionary <string, string> TempDic, string Work_Path)
        {
            Register  reg      = new Register();
            string    Ini_Path = reg.ReadRegeditKey("QueuePath", "software\\CNKI\\Assistant\\Work\\", Register.RegDomain.CurrentUser).ToString();
            INIManage ini      = new INIManage(Ini_Path);

            MatchTask task = null;

            foreach (string strValue in ini.SectionValues("Task"))
            {
                string    strTask = strValue.Substring(strValue.IndexOf('=') + 1);
                MatchTask mt      = strTask.FromJson <MatchTask>();
                if (mt.TaskStatus == "0")
                {
                    task = mt;
                    break;
                }
            }
            TextLog.WritwLog("提交code" + task.Code);

            string filename = Work_Path + "\\Explain.xml";
            string unit     = XDocument.Load(filename).Element("ExplainInfo").Element("Info").Value;

            #region 生成提交信息的xml的Content字段

            SendTask sTask = new SendTask();
            sTask.code        = task.Code;
            sTask.ArticleCode = code.ToString();
            sTask.Units       = unit;
            sTask.Year        = dic["学位年度"] == null ? "" : dic["学位年度"].ToString();
            sTask.Level       = dic["级别"] == null ? "" : dic["级别"].ToString();
            sTask.IsSecret    = dic["保密"].ToString();
            sTask.IsSQ        = dic["授权"].ToString();
            sTask.IsQM        = dic["签名"].ToString();
            sTask.Iscopyright = dic["版权反馈"].ToString();
            sTask.Explain     = dic["备注"] == null ? "" : dic["备注"].ToString();
            sTask.DeleteWords = dic["删除字样"].ToString();
            sTask.DelayDate   = dic["滞后上网"].ToString();

            DataRow row = sqlite.ExecuteDataTable("select 小样数,提取页数 from XW_FileOrderinfo where 编号='" + code + "'", null).Rows[0];
            sTask.XiaoYangSum = Convert.ToInt32(row["小样数"]);
            sTask.TotalPage   = Convert.ToInt32(row["提取页数"]);

            sTask.Cutf       = "否";
            sTask.HardCoverf = "否";

            sTask.TaskComeTime = task.TaskComeTime;
            sTask.IsRead       = "";
            sTask.ProcMode     = task.ProcMode;
            sTask.SchoolName   = "";
            sTask.PaperSummary = "";
            sTask.ProductCode  = task.ProductCode;
            sTask.PostName     = "文件整理";

            string strSendTask = sTask.ToJson();

            string sql = string.Format("update XW_FileOrderinfo set 年度='{0}',级别='{1}',保密否='{2}',版权反馈否='{3}',是否签名='{4}',是否授权='{5}',备注='{6}',删除字样='{7}',滞后上网='{8}' where 编号='{9}'",
                                       sTask.Year, sTask.Level, sTask.IsSecret, sTask.Iscopyright, sTask.IsQM, sTask.IsSQ, sTask.Explain, sTask.DeleteWords, sTask.DelayDate, code);
            sqlite.ExecuteNonQuery(sql, null);
            TextLog.WritwLog("执行sql成功:" + sql);

            XDocument newdoc           = new XDocument();
            XElement  node_root        = new XElement("ArticleInfo");
            XElement  node_code        = new XElement("SN");
            XElement  node_articleCode = new XElement("ArticleCode");
            XElement  node_content     = new XElement("CONTENT");
            node_code.Value        = code.ToString();
            node_articleCode.Value = code.ToString();
            node_content.Value     = strSendTask;
            node_root.Add(node_code, node_articleCode, node_content);
            newdoc.Add(node_root);
            if (!Directory.Exists(Work_Path + "\\ArticlePublish"))
            {
                Directory.CreateDirectory(Work_Path + "\\ArticlePublish");
            }
            newdoc.Save(Work_Path + "\\ArticlePublish\\" + code + ".xml");
            //保存参数,用于在篇提交成功后更新db
            if (TempDic.Keys.Contains(code.ToString()))
            {
                TempDic.Remove(code.ToString());
            }
            TextLog.WritwLog("添加编号:" + code);
            TempDic.Add(code.ToString(), "是");
            string dics = "";
            foreach (string key in TempDic.Keys)
            {
                dics += key + "-";
            }
            TextLog.WritwLog("添加后字典里:" + dics);

            Console.WriteLine(code + ":生成提交信息的xml成功");

            #endregion

            int    c0         = Convert.ToInt32(sqlite.ExecuteScalar("select count(*) from db_File where 编号 ='" + code + "'", null));
            string uploadPath = Work_Path + "\\ArticleUpload";
            if (!Directory.Exists(Work_Path + "\\ArticleUpload\\" + code))
            {
                #region 移动篇提交文件至ArticleUpload文件夹
                string tempPath = sqlite.ExecuteScalar("select 路径 from XW_FileOrderinfo where 编号='" + code + "'", null).ToString();

                #region 验证'整理后'文件夹中的文件个数和db中是否一样

                int c1 = Traverse(tempPath);
                if (c0 != c1)
                {
                    TextLog.WritwLog(code + ":整理后文件夹中文件个数(" + c1 + ")与db中文件个数(" + c0 + ")不一致");
                    MessageBox.Show(code + ":整理后文件夹中文件个数(" + c1 + ")与db中文件个数(" + c0 + ")不一致,请联系研发!");
                    return;
                }
                #endregion

                DirectoryInfo dir = new DirectoryInfo(tempPath);

                if (!Directory.Exists(uploadPath))
                {
                    Directory.CreateDirectory(uploadPath);
                }
                if (!Directory.Exists(uploadPath + "\\" + code))
                {
                    Directory.Move(tempPath, uploadPath + "\\" + code);
                }
                Console.WriteLine(code + ":移动篇提交文件至ArticleUpload文件夹成功");
                #endregion
            }

            #region 验证upload文件夹中的文件个数和db中是否一样
            int c2 = Traverse(uploadPath + "\\" + code);
            if (c0 != c2)
            {
                TextLog.WritwLog(code + ":articleupload文件夹中文件个数(" + c2 + ")与db中文件个数(" + c0 + ")不一致");
                MessageBox.Show(code + ":articleupload文件夹中文件个数(" + c2 + ")与db中文件个数(" + c0 + ")不一致,请联系研发!");
                return;
            }
            #endregion

            #region 给加工助手发送udp进行篇提交
            Console.WriteLine(code + ":开始篇提交");

            //UdpServer udpServer =UdpServer.GetInstance();
            string transport_WorkPath = task.WorkPath.Replace("\\", "\\\\");
            string message            = "{\"ArticleCode\":\"" + code + "\"," + "\"Code\":\"" + task.Code + "\"," + "\"LineId\":\"" + task.LineID + "\"," + "\"PostId\":\"" + task.PostID + "\"," +
                                        "\"TaskComeTime\":\"" + task.TaskComeTime + "\"," + "\"WorkPath\":\"" + transport_WorkPath + "\"}";
            try
            {
                Byte[] sendBytes = Encoding.Default.GetBytes(message);
                PublicTool.localUdp.Send(sendBytes, sendBytes.Length, remotePoint);
                TextLog.WritwLog(message);
                //listView2.Items[code.ToString()].SubItems[1].Text = "提交中";
            }
            catch (Exception ss)
            {
                TextLog.WritwLog(code + "发送udp失败:" + ss.Message);
            }


            #endregion
        }