using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Core.Mes.Client.Comm.Format;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using CoreFS.CA06;
using System.Net;
using Core.StlMes.Client.SaleOrder.Control;
using CoreFS.SA06;
using Core.Mes.Client.Comm.Control;
namespace Core.StlMes.Client.SaleOrder.BLL
{
public class CraftOrdDesignBLL
{
private OpeBase _ob;
public CraftOrdDesignBLL(OpeBase ob)
{
_ob = ob;
}
///
/// 查询工艺评审主表
///
///
///
public List Query(CraftOrdDesignEntity craftOrdDesignEntity, string[] DataPurviewIds, string userId)
{
List listCraftOrdDesignEntity = EntityHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.query", new object[] {
JSONFormat.Format(craftOrdDesignEntity), DataPurviewIds, userId}, _ob);
return listCraftOrdDesignEntity;
}
///
/// 查询工艺评审主表(审核审批专用)
///
///
///
public List QueryAudit(CraftOrdDesignEntity craftOrdDesignEntity, string[] DataPurviewIds, string userId)
{
List listCraftOrdDesignEntity = EntityHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.queryAudit", new object[] {
JSONFormat.Format(craftOrdDesignEntity), DataPurviewIds, userId}, _ob);
return listCraftOrdDesignEntity;
}
public List QueryCraftLv2(string craftNo, string orderNo,
string planStatus, string maintenanceStatus, string customInfo)
{
List listCraftOrdDesignEntity = EntityHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.queryCraftLv2",
new object[] { craftNo, orderNo, planStatus, maintenanceStatus, customInfo }, _ob);
return listCraftOrdDesignEntity;
}
public List QueryCraftLv2New(string craftNo, string orderNo,
string planStatus, string maintenanceStatus, string customInfo, string exeStatus,List AllPline )
{
List listCraftOrdDesignEntity = EntityHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.queryCraftLv2New",
new object[] { craftNo, orderNo, planStatus, maintenanceStatus, customInfo, exeStatus, AllPline }, _ob);
return listCraftOrdDesignEntity;
}
public List QueryCraftLv2New(string craftNo, string orderNo,
string planStatus, string maintenanceStatus, string customInfo, string[] exeStatus, List AllPline)
{
List listCraftOrdDesignEntity = EntityHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.queryCraftLv2New",
new object[] { craftNo, orderNo, planStatus, maintenanceStatus, customInfo, exeStatus, AllPline }, _ob);
return listCraftOrdDesignEntity;
}
///
/// 获取工艺评审工序点类型
///
///
///
///
public DataTable GetCraftStationType(string designKey, string processCode)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftStationType",
new object[] { designKey, processCode }, _ob);
return dt;
}
public DataTable QueryUnfinishTimeZg()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.queryUnfinishTimeZg",
new object[]{ }, _ob);
return dt;
}
///
/// 通过主键查询工艺评审主表
///
///
///
public CraftOrdDesignEntity QueryByPk(CraftOrdDesignEntity craftOrdDesignEntity)
{
List listCraftOrdDesignEntity = EntityHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.queryByPk", new object[] { JSONFormat.Format(craftOrdDesignEntity) }, _ob);
if (listCraftOrdDesignEntity.Count > 0)
{
return listCraftOrdDesignEntity[0];
}
else
{
return null;
}
}
///
/// 科室审核
///
///
public void Audit(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesgin in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesgin));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.audit",
new object[] { list }, _ob);
}
///
/// 相关科室审核
///
///
public void Audit1(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesgin in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesgin));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.audit1",
new object[] { list }, _ob);
}
///
/// 审批
///
///
public void Approval(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesgin in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesgin));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.approval",
new object[] { list }, _ob);
}
///
/// 人工创建工艺文件
///
///
public void CreateCraft(List craftOrdDesignList, bool autoBacklog,
bool autoMaterial, string userId)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesgin in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesgin));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.createCraft",
new object[] { list, autoBacklog, autoMaterial, userId }, _ob);
}
///
/// 修改审批人
///
///
public void UpdateApproveName(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesgin in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesgin));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.updateApproveName",
new object[] { list }, _ob);
}
///
/// 修改批准人
///
///
public void UpdateApprove1Name(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesgin in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesgin));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.updateApprove1Name",
new object[] { list }, _ob);
}
///
/// 批准
///
///
public void Approval1(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesgin in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesgin));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.approval1",
new object[] { list }, _ob);
}
///
/// 解锁
///
///
public void UnLock(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesign in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesign));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.unLock",
new object[] { list }, _ob);
}
///
/// 封锁
///
///
public void Lock(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesign in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesign));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.lock",
new object[] { list }, _ob);
}
///
/// 修改备注
///
///
public void SetMemo(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesign in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesign));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.setMemo",
new object[] { list }, _ob);
}
///
/// 保存二级工艺文件
///
///
public void SaveCraftLv2(List craftOrdDesignList)
{
ArrayList parms = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesignEntity in craftOrdDesignList)
{
parms.Add(JSONFormat.Format(craftOrdDesignEntity));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.SaveCraftLv2",
new object[] { parms }, _ob);
}
///
/// 修改有效标志
///
///
public void UpdateCraftNo(List craftOrdDesignList, ArrayList list)
{
ArrayList Craftlist = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesignEntity in craftOrdDesignList)
{
Craftlist.Add(JSONFormat.Format(craftOrdDesignEntity));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.updateCraftNo",
new object[] { Craftlist, list }, _ob);
}
///
/// 通过合同行主键查询工艺评审记录
///
///
///
public CraftOrdDesignEntity QueryCraftByOrLnPk(CraftOrdDesignEntity craftOrdDesignEntity)
{
List craftOrdDesingList = EntityHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.queryCraftByOrLnPk"
, new object[] { JSONFormat.Format(craftOrdDesignEntity) }, _ob);
if(craftOrdDesingList.Count > 0)
{
return craftOrdDesingList[0];
}
else
{
return null;
}
}
///
/// 修改工艺文件路径
///
///
public void UpdateCraftPath(CraftOrdDesignEntity craftOrdDesignEntity, string isMultiUse, string isCraftPath)
{
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.updateCraftPath",
new object[] { JSONFormat.Format(craftOrdDesignEntity), isMultiUse, isCraftPath }, _ob);
}
///
/// 获取工艺主表中的工艺文件号数目
///
///
///
public int GetCraftCraftNoCnt(string craftNo)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftNoCnt",
new object[] { craftNo }, _ob);
return int.Parse(dt.Rows[0][0].ToString());
}
///
/// 获取工艺主表中的引用工艺文件号数目
///
///
///
public int GetRefCraftCraftNoCnt(string craftNo, string ordLnPk, string craftSeq)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getRefCraftNoCnt",
new object[] { craftNo, ordLnPk, craftSeq }, _ob);
return int.Parse(dt.Rows[0][0].ToString());
}
///
/// 获取工艺主表中的最大工艺版本号。
///
///
///
public string GetCraftMaxCraftNoV(string craftNo)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftMaxCraftNoV",
new object[] { craftNo }, _ob);
return dt.Rows[0][0].ToString();
}
///
/// 通过合同行主键查询有效数目
///
///
///
public int GetCraftValidCntByOrdLnPk(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftValidCntByOrLnPk",
new object[] { ordLnPk }, _ob);
return int.Parse(dt.Rows[0][0].ToString());
}
///
/// 匹配工艺文件
///
public void MatchCraftFile(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesign in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesign));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.matchCraftFile",
new object[] { list }, _ob);
}
///
/// 查询最大的工艺号并且有效的。
///
///
///
public CraftOrdDesignEntity GetNewValidCraft(string ordLnPk)
{
List list = EntityHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getNewValidCraft",
new object[] { ordLnPk }, _ob);
if (list.Count > 0)
{
return list[0];
}
else
{
return null;
}
}
///
/// 设置最大的工艺序号生效
///
///
public void SetCraftOrDesignValid(string ordLnPk)
{
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.setCraftOrDesignValid",
new object[] { ordLnPk }, _ob);
}
///
/// 获取排除合同行的工艺文件数目
///
///
///
///
///
public int GetCraftNoCntOutLn(string craftNo, string craftNoV, string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftNoCntOutLn",
new object[]{ craftNo, craftNoV, ordLnPk}, _ob);
return int.Parse(dt.Rows[0][0].ToString());
}
///
/// 获取DESIGN_KEY数目
///
///
public int GetDesignKeyCnt(string designKey)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getDesignKeyCnt",
new object[] { designKey }, _ob);
return int.Parse(dt.Rows[0][0].ToString());
}
public int GetCntByDesignKeyProcess(string designKey, string processCode)
{
DataTable dt = ServerHelper.GetData(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCntByDesignKeyProcess",
new object[] { designKey, processCode }, _ob);
return int.Parse(dt.Rows[0][0].ToString());
}
///
/// 复制二级工艺文件
///
///
///
public void CopyCraftFileLv2(string ordLnPk, string craftSeq, string craftSeq2)
{
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.CopyCraftFileLv2",
new object[] { ordLnPk, craftSeq, craftSeq2 }, _ob);
}
///
/// 获取上一个二级工艺文件
///
///
///
public DataTable GetPreviousCraftLv2(string ordLnPk, string craftSeq)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.GetPreviousCraftLv2",
new object[]{ordLnPk, craftSeq}, _ob);
return dt;
}
///
/// 删除工艺文件
///
///
public void DeleteCraftFile(List craftOrdDesignList)
{
ArrayList list = new ArrayList();
foreach (CraftOrdDesignEntity craftOrdDesign in craftOrdDesignList)
{
list.Add(JSONFormat.Format(craftOrdDesign));
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.DeleteCraftFile",
new object[] { list }, _ob);
}
public string GetMaxCraftSeq(string ordLnPk)
{
return ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.GetMaxCraftSeq",
new object[] { ordLnPk }, _ob).Rows[0][0].ToString();
}
public bool GetMaterialAutoCraft(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.GetMaterialAutoCraft",
new object[] { ordLnPk }, _ob);
if (dt.Rows[0][0].ToString() == "1")
{
return true;
}
else
{
return false;
}
}
public bool GetBacklogAutoCraft(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.GetBacklogAutoCraft",
new object[] { ordLnPk }, _ob);
if (dt.Rows[0][0].ToString() == "0")
{
return true;
}
else
{
return false;
}
}
public bool AutoCreateCraft(string ordLnPk, string designStyle)
{
string[] results = (string[])ServerHelper.SetDataReturnObj(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.GetAutoCreateCraftParms",
new object[] { ordLnPk }, _ob);
if (designStyle != "2" && (!GetMaterialAutoCraft(ordLnPk) || !GetBacklogAutoCraft(ordLnPk)))//只有物料和所有制程都为自动生成,才进行自动生成工艺文件。
{
return false;
}
WaitingForm2 wf;
if (designStyle == "2") //备料处理
{
wf = new WaitingForm2("正在生成工艺文件....");
}
else
{
wf = new WaitingForm2("正在自动生成工艺文件....");
}
CraftOrdDesignEntity craftOrdDesign = new CraftOrdDesignEntity();
craftOrdDesign.OrdLnPk = ordLnPk;
craftOrdDesign.CraftSeq = decimal.Parse(results[0]);
craftOrdDesign.CraftNo = results[1];
craftOrdDesign.DesginKey = results[2];
string craftPath = "Qcm/Craft/" + craftOrdDesign.OrdLnPk + "/" +
craftOrdDesign.CraftSeq + "/" + results[3] + ".pdf";
ServerHelper.SetDataReturnObj(
"com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.AutoCreateCraft",
new object[] { ordLnPk, results[0], results[1], craftPath, CoreUserInfo.UserInfo.GetUserName(), designStyle }, _ob);
if (!CreatePdfToFtp(craftOrdDesign, results[3]))
{
MessageUtil.ShowError("系统生成PDF失败,请稍后再试!");
return false;
}
string validflag = "1";
if (craftOrdDesign.CraftSeq > 1)
{
validflag = "8";
}
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.SetValidflagByPk",
new object[] { validflag, ordLnPk, results[0] }, _ob);
wf.Close();
return true;
}
public void SetMaterialAutoCraft(string ordLnPk)
{
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.SetMaterialAutoCraft",
new object[]{ordLnPk}, _ob);
}
public void SetBacklogAutoCraft(string ordLnPk)
{
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.SetBacklogAutoCraft",
new object[] { ordLnPk }, _ob);
}
public void SetCraftOrdDesignMaterial(string ordLnPk)
{
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.SetCraftOrdDesignMaterial",
new object[] { ordLnPk }, _ob);
}
public void SetCraftOrdDesignBacklog(string ordLnPk)
{
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.SetCraftOrdDesignBacklog",
new object[] { ordLnPk }, _ob);
}
public DataRow GetMscByOrdLnPk(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.GetMscByOrdLnPk",
new object[] { ordLnPk }, _ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0];
}
else
{
return null;
}
}
public DataRow GetCraftDesignSts(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.getCraftDesignSts",
new object[] { ordLnPk }, _ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0];
}
else
{
return null;
}
}
///
/// 调用报表服务器生成PDF并上传到FTP服务器。
///
///
///
public bool CreatePdfToFtp(CraftOrdDesignEntity craftOrdDesign, string pdfName)
{
WebClient webClient = new WebClient();
List listPdf = new List();
string filePathNew = "Qcm/Craft/" + craftOrdDesign.OrdLnPk + "/" + craftOrdDesign.CraftSeq + "/";
craftOrdDesign.CraftPath = filePathNew + pdfName + ".pdf";
DataTable dtComMsc = CraftOrdDesignCtrl.GetComMscByOrdLnPk(craftOrdDesign.OrdLnPk, _ob);
string strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineCraft.cpt&bypagesize=false&format=pdf&embed=true"
+ "&desgin_key=" + craftOrdDesign.DesginKey + "&lnpk=" + craftOrdDesign.OrdLnPk;
if (dtComMsc.Rows[0]["DEPARTMENT_CODE"].ToString() == "002001007")
{
strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineCraftCenter.cpt&bypagesize=false&format=pdf&embed=true"
+ "&desgin_key=" + craftOrdDesign.DesginKey + "&lnpk=" + craftOrdDesign.OrdLnPk;
}
byte[] pdf = webClient.DownloadData(strurl);
if (pdf.Length <= 10000)
{
MessageUtil.ShowError("生成PDF出错,请重新生成!");
return false;
}
FileBean fileBean = new FileBean();
fileBean.setFile(pdf);
fileBean.setFileName(pdfName + ".pdf");
fileBean.setPathName(filePathNew);
listPdf.Add(fileBean);
webClient.Dispose();
return FileHelper.Upload(listPdf);
}
public void SetProcessFlag(string processCode, string flag,
string ordLnPk, string craftSeq)
{
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.SetProcessFlag",
new object[] { processCode, flag, ordLnPk, craftSeq }, _ob);
}
public void SetProcessFlag(List