You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
695 lines
33 KiB
695 lines
33 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data;
|
|
using System.IO;
|
|
using ICSSoft.Base.Config.AppConfig;
|
|
using ICSSoft.Base.Config.DBHelper;
|
|
using ICSSoft.Frame.Data.BLL;
|
|
using System.Configuration;
|
|
|
|
namespace ICSSoft.Frame.APP
|
|
{
|
|
public class FileDrawing
|
|
{
|
|
public static string YanMo = "研磨";
|
|
public static string ZhuangPei = "装配";
|
|
public static string PengQi = "喷漆";
|
|
public static string QiLu = "气路";
|
|
public static string ShiYa = "试压";
|
|
public static string ZiJian = "自检";
|
|
|
|
public static string TuZhi = "设计图纸";
|
|
public static string WuLiao = "物料清单";
|
|
public static string CuJiaGong = "工序图纸";
|
|
public static string ZuoYeZhiDao = "工艺卡片";
|
|
public static string ZuoYeZhiDaoJY = "检验作业指导书";
|
|
public static string YaoSu = "工作要素表";
|
|
public static string GuanCha = "工作观察表";
|
|
public static string ZuHe = "工作组合表";
|
|
public static string SZuoYeZhiDao = "6S作业指导书";
|
|
public static string SZuoYeZhiDaoJY = "检验6S作业指导书";
|
|
public static string SheBei = "设备操作规程";
|
|
public static string WPS = "WPS";
|
|
public static string ChengXu = "程序";
|
|
public static string ShiPin = "视频";
|
|
public static string JianYan = "检验规范";
|
|
public static string ZhuYi = "注意事项";
|
|
public static string ZhuYiJY = "检验注意事项";
|
|
public static string GuiFan = "作业规范";
|
|
public static string WenTi = "常见问题处理方案";
|
|
public static string PeiXun = "培训文件";
|
|
public static string ToolSpec = "刀具规格";
|
|
public static string GongZhuang = "工装信息";
|
|
|
|
//public static SysUserBLL userBll = new SysUserBLL();
|
|
private static DataTable dataSource = null;
|
|
|
|
public static string GetMainTypeCode(string ItemCode)
|
|
{
|
|
string MainTypeCode = "";
|
|
string strsql = @"select ItemMainCategoryCode from Base_Inventory
|
|
where ItemCode='{0}'";
|
|
strsql = string.Format(strsql, ItemCode);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, strsql).Tables[0];
|
|
if (dt.Rows.Count != 0)
|
|
{
|
|
MainTypeCode = dt.Rows[0]["ItemMainCategoryCode"].ToString();
|
|
}
|
|
return MainTypeCode;
|
|
}
|
|
|
|
public static DataTable GetDrawingDT(string name, string suffix, string type)
|
|
{
|
|
try
|
|
{
|
|
#region new
|
|
// string sql = @"SELECT DISTINCT
|
|
// T.CDOCUMENTNAME as [FileName],
|
|
// T.CDOCUMENTID as FileID,
|
|
// T.CDOCUMENTVER as FileVer,
|
|
// T.CDFORMAT as FileFormat
|
|
// FROM
|
|
// DOC_008 T
|
|
// LEFT OUTER JOIN DOC_030 S ON (T.SECRECYGRADEID = S.SECRECYGRADEID)
|
|
// LEFT OUTER JOIN SYS_057 SORT ON (T.SORTID = SORT.SORTID)
|
|
// LEFT OUTER JOIN SYS_019 Q ON (T.CMODIFIER = Q.CPERSONID),
|
|
// DOC_026 T_ADD,
|
|
// SYS_019 P,
|
|
// DOC_017 K,
|
|
// BOM_026 M
|
|
// WHERE
|
|
// T.CDOCUMENTID = M.CDOCUMENTID
|
|
// AND T.CDOCUMENTVER = M.CDOCUMENTVER
|
|
// AND T.CDOCUMENTID = T_ADD.CDOCUMENTID
|
|
// AND T.CDOCUMENTVER = T_ADD.CDOCUMENTVER
|
|
// AND T.CCREATORID = P.CPERSONID
|
|
// AND T.CMKINDID = K.CMKINDID
|
|
// AND M.PARTVAR = 'A1'
|
|
// AND M.PARTID = '{0}'
|
|
// AND T.CDFORMAT = '{1}'";
|
|
|
|
// sql = string.Format(sql, name, suffix);
|
|
#endregion
|
|
string sql = "";
|
|
if (type.Equals(ShiPin) || type.Equals(SZuoYeZhiDaoJY) || type.Equals(ChengXu) || type.Equals(ZhuYiJY) || type.Equals(ZhuYi) || type.Equals(GuiFan) || type.Equals(WenTi) || type.Equals(WPS) || type.Equals(SZuoYeZhiDao) || type.Equals(SheBei))
|
|
{
|
|
sql = @"select Top 1
|
|
A.CDOCUMENTID + '$' + A.CDOCUMENTVER AS FilePATH ,
|
|
-- CDOCUMENTID + '$' + CDOCUMENTVER +'.' +CDFORMAT AS FileName,
|
|
CDOCUMENTNAME as [FileName],
|
|
CDOCUMENTID as FileID,
|
|
CDOCUMENTVER as FileVer,
|
|
CDFORMAT as FileFormat,
|
|
CDOCUMENTID,
|
|
* from DOC_008 A where CDOCUMENTID = '{0}' AND CDFORMAT='{1}'
|
|
";
|
|
if (type.Equals(ZhuYi))
|
|
name = "ZY-" + name;
|
|
else if (type.Equals(GuiFan))
|
|
name = "ZG-" + name;
|
|
else if (type.Equals(WenTi))
|
|
name = "WT-" + name;
|
|
else if (type.Equals(WPS))
|
|
name = "WPS-" + name;
|
|
else if (type.Equals(SZuoYeZhiDao))
|
|
name = "5S-" + name;
|
|
else if (type.Equals(SheBei))
|
|
name = "SG-" + name;
|
|
else if (type.Equals(ZhuYiJY))
|
|
name = "Q-Attention-" + name;
|
|
else if (type.Equals(SZuoYeZhiDaoJY))
|
|
name = "Q-5S" + name;
|
|
}
|
|
else if (type.Equals(ZuoYeZhiDao))
|
|
{
|
|
sql = @"select Top 1
|
|
A.CDOCUMENTID + '$' + A.CDOCUMENTVER AS FilePATH ,
|
|
-- CDOCUMENTID + '$' + CDOCUMENTVER +'.' +CDFORMAT AS FileName,
|
|
CDOCUMENTNAME as [FileName],
|
|
CDOCUMENTID as FileID,
|
|
CDOCUMENTVER as FileVer,
|
|
CDFORMAT as FileFormat,
|
|
CDOCUMENTID,
|
|
* from DOC_008 A where CDOCUMENTNAME = '{0}' AND CDFORMAT='{1}'
|
|
";
|
|
}
|
|
else if (type.Equals(JianYan) || type.Equals(ZuoYeZhiDaoJY))
|
|
{
|
|
sql = @"select Top 1
|
|
A.CDOCUMENTID + '$' + A.CDOCUMENTVER AS FilePATH ,
|
|
CDOCUMENTNAME as [FileName],
|
|
CDOCUMENTID as FileID,
|
|
CDOCUMENTVER as FileVer,
|
|
CDFORMAT as FileFormat,
|
|
CDOCUMENTID,*
|
|
from DOC_008 A
|
|
where CDOCUMENTID='{0}' AND CDFORMAT='{1}'
|
|
";
|
|
}
|
|
else
|
|
{
|
|
#region 图纸
|
|
sql = @"SELECT Top 1
|
|
A.CDOCUMENTID + '$' + A.CDOCUMENTVER AS FilePATH ,
|
|
-- A.CDOCUMENTID + '$' + A.CDOCUMENTVER + '.' + A.CDFORMAT AS FileName,
|
|
A.CDOCUMENTNAME AS [FileName],
|
|
A.CDOCUMENTID AS FileID,
|
|
A.CDOCUMENTVER AS FileVer,
|
|
A.CDFORMAT AS FileFormat,
|
|
A.CDOCUMENTID,
|
|
*
|
|
FROM
|
|
DOC_008 A
|
|
LEFT JOIN BOM_026 B ON A.CDOCUMENTNAME = B.CDOCUMENTNAME
|
|
--AND A.CCREATORID = B.relevancePerson
|
|
LEFT JOIN DOC_017 C ON A.CMKINDID=C.CMKINDID
|
|
WHERE
|
|
1=1
|
|
AND A.CDFORMAT = '{1}'";
|
|
#endregion
|
|
if (type.Equals(CuJiaGong))
|
|
{
|
|
sql += " AND B.PARTID = '{0}'";
|
|
|
|
//sql += " AND A.CDOCUMENTNAME = '{0}'";
|
|
|
|
// string sqlstd = @"SELECT * from Base_Inventory c WITH (nolock) where c.ItemCode
|
|
// = '{0}'";
|
|
|
|
//sqlstd = string.Format(sqlstd, name);
|
|
//DataTable dataStd = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sqlstd).Tables[0];
|
|
|
|
//if (dataStd.Rows.Count > 0)
|
|
//{
|
|
// //name = dataStd.Rows[0]["ItemStd"].ToString();
|
|
// //sql += " AND C.CMKINDNAME = 'CJ-粗加工'";
|
|
// //sql += " AND A.CDOCUMENTID = '{0}'";
|
|
|
|
// //name = dataStd.Rows[0]["ItemStd"].ToString();
|
|
// //sql += " AND C.CMKINDNAME = 'CJ-粗加工'";
|
|
// //sql += " AND A.CDOCUMENTID = '{0}'";
|
|
//}
|
|
}
|
|
else
|
|
{
|
|
sql += " AND B.PARTID = '{0}'";
|
|
}
|
|
}
|
|
if (string.IsNullOrWhiteSpace(sql))
|
|
return null;
|
|
|
|
sql = string.Format(sql, name, suffix);
|
|
|
|
sql += " Order by A.CREATETIME desc ";
|
|
string connectionStr = AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
DataTable dt = DBHelper.ExecuteDataset(connectionStr, CommandType.Text, sql).Tables[0];
|
|
return dt;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
public static string GetDrawing(string name, string suffix, string type)
|
|
{
|
|
////TODO
|
|
//if(itemCode =="1")
|
|
// return "E:\\1501010061$A1.pdf";
|
|
//else
|
|
// return "E:\\1303040001$A1.pdf";
|
|
|
|
try
|
|
{
|
|
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
|
|
string filePath = System.IO.Path.GetTempPath() + "Drawing";
|
|
|
|
if (!Directory.Exists(filePath))
|
|
{
|
|
Directory.CreateDirectory(filePath);
|
|
}
|
|
|
|
//获取图纸数据
|
|
DataTable dt = GetDrawingDT(name, suffix, type);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
|
|
string fileName = "";
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
DataRow dr = dt.Rows[i];
|
|
//文件名称有 ID + “$” + 版本 + 文件格式组成
|
|
fileName = dr["FileID"].ToString() + "$" + dr["FileVer"].ToString() + "." + dr["FileFormat"].ToString();
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(fileName))
|
|
{
|
|
fileName = fileName.Replace("/", "");
|
|
if (fileName.Contains(".CNC"))
|
|
filePath = "C:\\mesjk";
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
return filePathName;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (type.Equals(TuZhi) || type.Equals(CuJiaGong))
|
|
{
|
|
DataTable dtauto = GetAutoPDF(name);
|
|
if (dtauto != null && dtauto.Rows.Count > 0)
|
|
{
|
|
string fileName = "";
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath + "\\pdf", ftpUserID, ftpPassword);
|
|
string FilePath = dtauto.Rows[0]["FileID"].ToString() + '$' + dtauto.Rows[0]["FileVer"].ToString();
|
|
if (ftpWeb.DirectoryExist(FilePath))
|
|
{
|
|
string[] downloadFiles = ftpWeb.GetFileList(FilePath);
|
|
Array.Sort(downloadFiles);
|
|
fileName = downloadFiles[downloadFiles.Length - 1];
|
|
ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath + "\\pdf\\" + FilePath, ftpUserID, ftpPassword);
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
return filePathName;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return string.Empty;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
return string.Empty;
|
|
}
|
|
}
|
|
|
|
public static DataTable GetAutoPDF(string itemCode)
|
|
{
|
|
string sql = @"SELECT DISTINCT
|
|
T.CDOCUMENTID + '$' + T.CDOCUMENTVER AS FilePath,
|
|
T.CDOCUMENTNAME as [FileName],
|
|
T.CDOCUMENTID as FileID,
|
|
T.CDOCUMENTVER as FileVer,
|
|
T.CDFORMAT as FileFormat,
|
|
'' as ItemCode,
|
|
'' as ItemName,
|
|
'' as ItemStd,
|
|
M.PARTID
|
|
|
|
FROM
|
|
DOC_008 T
|
|
LEFT OUTER JOIN DOC_030 S ON (T.SECRECYGRADEID = S.SECRECYGRADEID)
|
|
LEFT OUTER JOIN SYS_057 SORT ON (T.SORTID = SORT.SORTID)
|
|
LEFT OUTER JOIN SYS_019 Q ON (T.CMODIFIER = Q.CPERSONID),
|
|
DOC_026 T_ADD,
|
|
SYS_019 P,
|
|
DOC_017 K,
|
|
BOM_026 M
|
|
WHERE
|
|
T.CDOCUMENTID = M.CDOCUMENTID
|
|
AND T.CDOCUMENTVER = M.CDOCUMENTVER
|
|
AND T.CDOCUMENTID = T_ADD.CDOCUMENTID
|
|
AND T.CDOCUMENTVER = T_ADD.CDOCUMENTVER
|
|
AND T.CCREATORID = P.CPERSONID
|
|
AND T.CMKINDID = K.CMKINDID
|
|
AND M.PARTVAR = 'A1'
|
|
AND T.CDFORMAT in ('dwg') ";
|
|
|
|
|
|
string[] itemlist = itemCode.Trim(',').Split(',');
|
|
|
|
for (int i = 0; i < itemlist.Length; i++)
|
|
{
|
|
if (!string.IsNullOrEmpty(itemlist[i]))
|
|
{
|
|
if (i == 0)
|
|
{
|
|
sql += " And ( M.PARTID like '%" + itemlist[i] + "%' ";
|
|
}
|
|
else
|
|
{
|
|
sql += " OR M.PARTID like '%" + itemlist[i] + "%' ";
|
|
}
|
|
}
|
|
}
|
|
sql += " ) ";
|
|
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
DataTable dt = DBHelper.ExecuteDataset(connectionString, CommandType.Text, sql).Tables[0];
|
|
|
|
return dt;
|
|
}
|
|
|
|
public static void Enlarge(AxAcroPDFLib.AxAcroPDF axAcroPDF)
|
|
{
|
|
//string fileName = "E:\\1501010061$A1.pdf";
|
|
string fileName = axAcroPDF.src;
|
|
if (!string.IsNullOrWhiteSpace(fileName))
|
|
{
|
|
FormICSDrawingShow draw = new FormICSDrawingShow(fileName, "");
|
|
draw.ShowDialog();
|
|
}
|
|
}
|
|
|
|
public static void LoadPDF(string fileName)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(fileName))
|
|
{
|
|
FormICSDrawingShow draw = new FormICSDrawingShow(fileName, "");
|
|
draw.ShowDialog();
|
|
}
|
|
}
|
|
|
|
public static void DeleteFile(List<string> fileNames)
|
|
{
|
|
//遍历所有文件
|
|
//foreach (string fileName in fileNames)
|
|
//{
|
|
// try
|
|
// {
|
|
// //文件己存在
|
|
// if (File.Exists(fileName))
|
|
// {
|
|
// FileInfo fi = new FileInfo(fileName);
|
|
// //判断当前文件属性是否是只读
|
|
// if (fi.Attributes.ToString().IndexOf("ReadyOnly") >= 0)
|
|
// {
|
|
// fi.Attributes = FileAttributes.Normal;
|
|
// }
|
|
// //删除文件
|
|
// File.Delete(fileName);
|
|
// }
|
|
// }
|
|
// catch (Exception)
|
|
// {
|
|
|
|
// }
|
|
//}
|
|
}
|
|
|
|
public void DeleteFile()
|
|
{
|
|
try
|
|
{
|
|
//获取文件夹
|
|
//string path = Server.MapPath("Image");
|
|
string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
|
|
//获取文件夹中所有图片
|
|
if (Directory.GetFileSystemEntries(filePath).Length > 0)
|
|
{
|
|
//遍历文件夹中所有文件
|
|
foreach (string file in Directory.GetFiles(filePath))
|
|
{
|
|
try
|
|
{
|
|
//文件己存在
|
|
if (File.Exists(file))
|
|
{
|
|
FileInfo fi = new FileInfo(file);
|
|
//判断当前文件属性是否是只读
|
|
if (fi.Attributes.ToString().IndexOf("ReadyOnly") >= 0)
|
|
{
|
|
fi.Attributes = FileAttributes.Normal;
|
|
}
|
|
//删除文件
|
|
File.Delete(file);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
}
|
|
//删除文件夹
|
|
//Directory.Delete(path);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
public static bool Login(string userCode, string userPwd)
|
|
{
|
|
//if (userCode == "")
|
|
//{
|
|
// ICSBaseSimpleCode.AppshowMessageBox("用户账号不可以为空!");
|
|
// return false;
|
|
//}
|
|
//else if (userPwd == "")
|
|
//{
|
|
// ICSBaseSimpleCode.AppshowMessageBox("用户口令不可以为空!");
|
|
// return false;
|
|
//}
|
|
//int num = userBll.Login(AppConfig.WorkPointCode, userCode, userPwd);
|
|
//if (num == 0)
|
|
//{
|
|
// return true;
|
|
//}
|
|
//else
|
|
//{
|
|
// switch (num)
|
|
// {
|
|
// case 1:
|
|
// ICSBaseSimpleCode.AppshowMessageBox("用户账号不存在");
|
|
// return false;
|
|
// case 2:
|
|
// ICSBaseSimpleCode.AppshowMessageBox("用户口令错误");
|
|
// return false;
|
|
// case 3:
|
|
// ICSBaseSimpleCode.AppshowMessageBox("用户账号被禁用");
|
|
// return false;
|
|
// case 4:
|
|
// ICSBaseSimpleCode.AppshowMessageBox("用户账号已经累计输出口令超过5次被自动锁定");
|
|
// return false;
|
|
// case 5:
|
|
// ICSBaseSimpleCode.AppshowMessageBox("本机IP地址禁止该用户账号登录");
|
|
// return false;
|
|
// case 6:
|
|
// ICSBaseSimpleCode.AppshowMessageBox("该用户账号为单点登录账号,该账号已经在其他地方登录");
|
|
// return false;
|
|
// }
|
|
//}
|
|
|
|
return false;
|
|
}
|
|
|
|
public static void loadCollect(string userCode, DevExpress.XtraGrid.GridControl gridControl, DevExpress.XtraGrid.Views.Grid.GridView gridView1)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(userCode))
|
|
return;
|
|
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
|
|
try
|
|
{
|
|
_wait.Show();
|
|
dataSource = null;
|
|
dataSource = FindSIMULATION(userCode).Copy();
|
|
gridControl.DataSource = dataSource;
|
|
gridView1.BestFitColumns();
|
|
_wait.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("异常:" + ex.Message);
|
|
_wait.Close();
|
|
}
|
|
}
|
|
|
|
#region 主表数据
|
|
private static DataTable FindSIMULATION(string userCode)
|
|
{
|
|
string sql = @"SELECT distinct
|
|
a.ProjectCode,
|
|
a.mocode,
|
|
b.LOTNO ,
|
|
A.ITEMCODE ,
|
|
c.ROUTECODE ,
|
|
e.ROUTEDESC,
|
|
c.OPCODE,
|
|
f.OPDESC ,
|
|
c.EQPCODE ,
|
|
c.[ACTION],
|
|
c.NGTIMES ,
|
|
c.UserCodeBegin,
|
|
g.UserName AS UserNameBegin,
|
|
c.UserCodeEnd ,
|
|
h.UserName AS UserNameEnd ,
|
|
CONVERT (
|
|
datetime,
|
|
CASE LEN(c.BeginTime)
|
|
WHEN '5' THEN
|
|
SUBSTRING (
|
|
CAST (c.BeginDate AS CHAR),
|
|
1,
|
|
4
|
|
) + '-' + SUBSTRING (
|
|
CAST (c.BeginDate AS CHAR),
|
|
5,
|
|
2
|
|
) + '-' + SUBSTRING (CAST(BeginDate AS CHAR), 7, 2) + ' ' + SUBSTRING (CAST(BeginTime AS CHAR), 1, 1) + ':' + SUBSTRING (CAST(BeginTime AS CHAR), 2, 2) + ':' + SUBSTRING (CAST(BeginTime AS CHAR), 4, 2)
|
|
WHEN '6' THEN
|
|
SUBSTRING (
|
|
CAST (c.BeginDate AS CHAR),
|
|
1,
|
|
4
|
|
) + '-' + SUBSTRING (
|
|
CAST (c.BeginDate AS CHAR),
|
|
5,
|
|
2
|
|
) + '-' + SUBSTRING (CAST(BeginDate AS CHAR), 7, 2) + ' ' + SUBSTRING (CAST(BeginTime AS CHAR), 1, 2) + ':' + SUBSTRING (CAST(BeginTime AS CHAR), 3, 2) + ':' + SUBSTRING (CAST(BeginTime AS CHAR), 5, 2)
|
|
END
|
|
) AS BeginTime,
|
|
CONVERT (
|
|
datetime,
|
|
CASE LEN(EndTime)
|
|
WHEN '5' THEN
|
|
SUBSTRING (CAST(EndDate AS CHAR), 1, 4) + '-' + SUBSTRING (CAST(EndDate AS CHAR), 5, 2) + '-' + SUBSTRING (CAST(EndDate AS CHAR), 7, 2) + ' ' + SUBSTRING (CAST(EndTime AS CHAR), 1, 1) + ':' + SUBSTRING (CAST(EndTime AS CHAR), 2, 2) + ':' + SUBSTRING (CAST(EndTime AS CHAR), 4, 2)
|
|
WHEN '6' THEN
|
|
SUBSTRING (CAST(EndDate AS CHAR), 1, 4) + '-' + SUBSTRING (CAST(EndDate AS CHAR), 5, 2) + '-' + SUBSTRING (CAST(EndDate AS CHAR), 7, 2) + ' ' + SUBSTRING (CAST(EndTime AS CHAR), 1, 2) + ':' + SUBSTRING (CAST(EndTime AS CHAR), 3, 2) + ':' + SUBSTRING (CAST(EndTime AS CHAR), 5, 2)
|
|
END
|
|
) AS EndTime,
|
|
DATEDIFF(
|
|
s,
|
|
CONVERT (
|
|
datetime,
|
|
CASE LEN(BeginTime)
|
|
WHEN '5' THEN
|
|
SUBSTRING (CAST(BeginDate AS CHAR), 1, 4) + '-' + SUBSTRING (CAST(BeginDate AS CHAR), 5, 2) + '-' + SUBSTRING (CAST(BeginDate AS CHAR), 7, 2) + ' ' + SUBSTRING (CAST(BeginTime AS CHAR), 1, 1) + ':' + SUBSTRING (CAST(BeginTime AS CHAR), 2, 2) + ':' + SUBSTRING (CAST(BeginTime AS CHAR), 4, 2)
|
|
WHEN '6' THEN
|
|
SUBSTRING (CAST(BeginDate AS CHAR), 1, 4) + '-' + SUBSTRING (CAST(BeginDate AS CHAR), 5, 2) + '-' + SUBSTRING (CAST(BeginDate AS CHAR), 7, 2) + ' ' + SUBSTRING (CAST(BeginTime AS CHAR), 1, 2) + ':' + SUBSTRING (CAST(BeginTime AS CHAR), 3, 2) + ':' + SUBSTRING (CAST(BeginTime AS CHAR), 5, 2)
|
|
END
|
|
),
|
|
CONVERT (
|
|
datetime,
|
|
CASE LEN(EndTime)
|
|
WHEN '5' THEN
|
|
SUBSTRING (CAST(EndDate AS CHAR), 1, 4) + '-' + SUBSTRING (CAST(EndDate AS CHAR), 5, 2) + '-' + SUBSTRING (CAST(EndDate AS CHAR), 7, 2) + ' ' + SUBSTRING (CAST(EndTime AS CHAR), 1, 1) + ':' + SUBSTRING (CAST(EndTime AS CHAR), 2, 2) + ':' + SUBSTRING (CAST(EndTime AS CHAR), 4, 2)
|
|
WHEN '6' THEN
|
|
SUBSTRING (CAST(EndDate AS CHAR), 1, 4) + '-' + SUBSTRING (CAST(EndDate AS CHAR), 5, 2) + '-' + SUBSTRING (CAST(EndDate AS CHAR), 7, 2) + ' ' + SUBSTRING (CAST(EndTime AS CHAR), 1, 2) + ':' + SUBSTRING (CAST(EndTime AS CHAR), 3, 2) + ':' + SUBSTRING (CAST(EndTime AS CHAR), 5, 2)
|
|
END
|
|
)
|
|
) * 1.0 / 3600 AS Hours,
|
|
round(convert(float,i.STIME),2) AS STIME
|
|
FROM
|
|
ICSMO A
|
|
LEFT JOIN ICSMO2Lot B ON A.MOCODE = B.MOCODE
|
|
LEFT JOIN ICSLOTONWIP c ON a.MOCODE = c.MOCODE
|
|
AND B.LOTNO = C.LOTNO
|
|
AND (
|
|
c.[ACTION] IN ('GOOD', 'NG')
|
|
OR [ACTION] IS NULL
|
|
)
|
|
LEFT JOIN ICSMO2ROUTE d ON a.MOCODE = d.MOCODE
|
|
LEFT JOIN ICSROUTE e ON d.ROUTECODE = e.routecode
|
|
LEFT JOIN ICSOP f ON c.opcode = f.opcode
|
|
LEFT JOIN Sys_User G ON C.UserCodeBegin = G.Usercode
|
|
LEFT JOIN Sys_User h ON c.UserCodeEnd = h.UserCode
|
|
LEFT JOIN ICSEQPSTP i ON a.itemcode = i.itemcode
|
|
AND c.opcode = i.opcode
|
|
WHERE
|
|
(
|
|
c.[ACTION] IN ('GOOD', 'NG')
|
|
OR [ACTION] IS NULL
|
|
) AND year(c.MTIME)+month(c.MTIME) = year(getDate())+month(getDate())
|
|
AND c.UserCodeEnd = '" + userCode + "'";
|
|
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
return data;
|
|
}
|
|
#endregion
|
|
|
|
public static string GetFTPToPath(string path)
|
|
{
|
|
try
|
|
{
|
|
string returnpath = "";
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
string TempFile = ConfigurationManager.AppSettings["MesTempFilePath"].ToString(); ; //MesTempFilePath
|
|
if (Directory.Exists(TempFile) == false)//如果不存在就创建file文件夹
|
|
{
|
|
Directory.CreateDirectory(TempFile);
|
|
}
|
|
else
|
|
{
|
|
DeleteFile(TempFile, 3);//删除3天前的临时图纸文件
|
|
}
|
|
|
|
string fileName = "";
|
|
//例子:\\192.168.0.40\share\9db49a4d-7b42-41f7-a037-62ef95551276_0100001ZH1410011040.pdf
|
|
int index = path.LastIndexOf("\\");
|
|
string pathfrom = path.Substring(0, index + 1);//例子:\\192.168.0.40\share\
|
|
pathfrom = pathfrom.Replace("\\", "/").TrimStart('/').TrimStart('/'); //例子://192.168.0.40/share/
|
|
FtpWeb ftpWeb = new FtpWeb(pathfrom, ftpUserID, ftpPassword);
|
|
fileName = path.Substring(index + 1);//例子:9db49a4d-7b42-41f7-a037-62ef95551276_0100001ZH1410011040.pdf
|
|
if (ftpWeb.FileExist(fileName))
|
|
{
|
|
string filePathName = TempFile + "\\" + fileName;
|
|
if (File.Exists(filePathName))
|
|
{
|
|
File.Delete(filePathName);
|
|
}
|
|
ftpWeb.Download(TempFile + "\\", fileName);
|
|
returnpath = filePathName;
|
|
}
|
|
else
|
|
{
|
|
returnpath = "";
|
|
}
|
|
|
|
return returnpath;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 删除文件夹
|
|
/// </summary>
|
|
/// <param name="fileDirect"></param>
|
|
/// <param name="saveDay"></param>
|
|
private static void DeleteFile(string fileDirect, int saveDay)
|
|
{
|
|
DateTime nowTime = DateTime.Now;
|
|
DirectoryInfo root = new DirectoryInfo(fileDirect);
|
|
DirectoryInfo[] dics = root.GetDirectories();//获取文件夹
|
|
|
|
FileAttributes attr = File.GetAttributes(fileDirect);
|
|
if (attr == FileAttributes.Directory)//判断是不是文件夹
|
|
{
|
|
foreach (DirectoryInfo file in dics)//遍历文件夹
|
|
{
|
|
TimeSpan t = nowTime - file.CreationTime; //当前时间 减去 文件创建时间
|
|
int day = t.Days;
|
|
if (day > saveDay) //保存的时间 ; 单位:天
|
|
{
|
|
|
|
Directory.Delete(file.FullName, true); //删除超过时间的文件夹
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|