diff --git a/APP/QMAPP.Web/Web.config b/APP/QMAPP.Web/Web.config
index e8cc96b..0357f34 100644
--- a/APP/QMAPP.Web/Web.config
+++ b/APP/QMAPP.Web/Web.config
@@ -40,7 +40,10 @@
-
+
+
+
+
diff --git a/APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj b/APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj
index 90cfe81..e993bd7 100644
--- a/APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj
+++ b/APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj
@@ -185,6 +185,9 @@
+
+
+
diff --git a/APPQ5/QMAPP.FJC.BLL/TianJin/TJDoorPlankPlanBLL.cs b/APPQ5/QMAPP.FJC.BLL/TianJin/TJDoorPlankPlanBLL.cs
new file mode 100644
index 0000000..4760d1d
--- /dev/null
+++ b/APPQ5/QMAPP.FJC.BLL/TianJin/TJDoorPlankPlanBLL.cs
@@ -0,0 +1,1113 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using QMAPP.BLL;
+using QMAPP.FJC.Entity.FIS;
+using QMAPP.Entity;
+using QMFrameWork.Log;
+using QMAPP.FJC.Entity;
+using QMFrameWork.Data;
+using QMAPP.FJC.DAL.FIS;
+using System.Data;
+using QMAPP.FJC.BLL.Dict;
+using QMAPP.MD.Entity;
+using QMAPP.MD.DAL;
+using QMAPP.FJC.DAL.ProductionPlan;
+using QMAPP.FJC.Entity.ProductionPlan;
+using QMFrameWork.Common.Util;
+using QMAPP.FJC.Entity.FileCopy.FIS;
+using QMAPP.FJC.Entity.TianJin;
+using QMAPP.FJC.DAL.TianJin;
+
+namespace QMAPP.FJC.BLL.TianJin
+{
+ public class TJDoorPlankPlanBLL : BaseBLL
+ {
+ #region 获取信息
+ ///
+ /// 获取信息
+ ///
+ ///
条件
+ ///
信息
+ public DataResult
Get(TJOrderPlan model)
+ {
+ DataResult result = new DataResult();
+ try
+ {
+ result.Result = new TJDoorPlankPlanDAL().Get(model);
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "订单计划信息逻辑层-获取信息!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ ///
+ /// 获取FIS插单的位置
+ ///
+ ///
+ ///
+ public DataResult GetFISInsertPos(TJOrderPlan model)
+ {
+ DataResult result = new DataResult();
+ try
+ {
+ var dal= new TJDoorPlankPlanDAL();
+ //var position =dal.Get(model);
+
+ //if (position == null)
+ //{
+ // throw new Exception("获取FIS插单位置信息失败!");
+ //}
+ //if(!string.Equals(position.PLANSOURCE,EnumGeter.WORKORDERTYPE.FIS.GetHashCode().ToString()))
+ //{
+ // result.Msg = "只能选择FIS计划作为插单位置!";
+ // result.IsSuccess = false;
+ // return result;
+ //}
+
+ result.Result = null;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "订单计划信息逻辑层-获取信息!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ #endregion
+
+ #region 获取列表
+ ///
+ /// 获取列表
+ ///
+ /// 条件
+ /// 数据页
+ /// 数据页
+ public DataResult GetList(TJOrderPlan condition, DataPage page)
+ {
+ DataResult result = new DataResult();
+ try
+ {
+ //获取订单计划信息列表
+ DataPage dataPage = new TJDoorPlankPlanDAL().GetList(condition, page);
+ //DataPage dataPage = new DataPage();
+
+ List list = page.Result as List;
+ #region 显示类型
+ //处理字典信息
+ DictManageBLL dictPLANSTATE = new DictManageBLL(DictKind.PLAN_STATE);
+ foreach (var info in list)
+ {
+ info.PLAN_STATE = dictPLANSTATE.GetDictValue(info.PLAN_STATE);
+ }
+ #endregion
+ result.Result = dataPage;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息逻辑层-获取列表!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ #endregion
+
+ #region 信息是否重复
+ ///
+ /// 判断名称是否存在
+ ///
+ ///
+ /// true:已存在;fasel:不存在。
+ public int ExistsOrderPlan(TJOrderPlan model)
+ {
+ try
+ {
+ return new TJDoorPlankPlanDAL().ExistsOrderPlan(model);
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 插入信息
+ ///
+ /// 插入信息(单表)
+ ///
+ /// 信息
+ /// 插入行数
+ public DataResult Insert(TJOrderPlan model)
+ {
+ DataResult result = new DataResult();
+ //基本信息
+ model.PID = Guid.NewGuid().ToString();
+ model.PLAN_STATE = "0";
+ model.CREATEUSER = this.LoginUser.UserID;
+ model.CREATEDATE = DateTime.Now;
+ model.UPDATEUSER = model.CREATEUSER;
+ model.UPDATEDATE = model.CREATEDATE;
+
+ TJDoorPlankPlanDAL cmdDAL = new TJDoorPlankPlanDAL();
+
+ model.MATERIAL_NAME = cmdDAL.GetMATERIALNAME(model.MATERIAL_CODE);
+
+ try
+ {
+ //获取流水号
+ var SEQSTR = this.GetOrderPlanSeq(model);
+ model.PLAN_SEQ = SEQSTR;
+ //计划单号
+ model.PLAN_NO = "DP" + model.PLAN_DATE.ToString("yyyyMMdd") + SEQSTR;
+ result.Result = new TJDoorPlankPlanDAL().Insert(model);
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息逻辑层-插入信息!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ #endregion
+
+ #region 获取流水号信息
+ ///
+ /// 获取流水号信息
+ ///
+ ///
+ ///
+ public string GetOrderPlanSeq(TJOrderPlan condition)
+ {
+ TJOrderPlan fisplan = new TJOrderPlan();
+ TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+ //根据表皮条码获取本体信息
+
+ try
+ {
+ fisplan = new TJOrderPlanDAL().GetOrderPlanSeq(condition);
+
+ //若存在记录,流水号加1,且更新
+ if (fisplan != null)
+ {
+ return (Convert.ToInt32(fisplan.PLAN_SEQ) + 1).ToString().PadLeft(3, '0');
+
+ }
+ //不存在则插入此日期信息
+ else
+ {
+ return "001";
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "仪表板逻辑层-获取流水号本体信息!"
+ });
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 更新信息
+ ///
+ /// 更新信息
+ ///
+ ///
+ /// 更新行数
+ public DataResult Update(TJOrderPlan model)
+ {
+ DataResult result = new DataResult();
+ model.UPDATEUSER = this.LoginUser.UserID;
+ try
+ {
+ if (model.PLAN_STATE != "0")
+ {
+ result.IsSuccess = false;
+ result.Msg = "计划已经下发,无法修改!";
+ return result;
+ }
+
+ #region 判断数量
+
+ TJDoorPlankPlanDAL cmdDAL = new TJDoorPlankPlanDAL();
+ model.MATERIAL_NAME = cmdDAL.GetMATERIALNAME(model.MATERIAL_CODE);
+
+ //获取流水号
+ var SEQSTR = this.GetOrderPlanSeq(model);
+ model.PLAN_SEQ = SEQSTR;
+ //计划单号
+ model.PLAN_NO = "DP" + model.PLAN_DATE.ToString("yyyyMMdd") + SEQSTR;
+
+ TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+
+ #endregion
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ TJOrderPlanDAL.Update(model);
+ }
+
+ result.IsSuccess = true;
+ result.Msg = "修改成功!";
+
+ return result;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息逻辑层-更新信息!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ #endregion
+
+ #region 删除
+ ///
+ /// 删除信息
+ ///
+ ///
+ /// 删除个数
+ public DataResult Delete(string strs)
+ {
+ int count = 0;
+ DataResult result = new DataResult();
+ try
+ {
+
+ TJWorkOrderDAL TJworkOrderDal = new TJWorkOrderDAL();
+ TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+
+ //可以删除的订单
+ List deleteOrderList = new List();
+
+ TJOrderPlan op = TJOrderPlanDAL.Get(new TJOrderPlan() { PID = strs });
+ int Num = TJworkOrderDal.GetAllWorkOrder(strs);
+ if (op.PLAN_STATE == EnumGeter.PLANSTATE.INIT.GetHashCode().ToString()
+ || (op.PLAN_STATE == EnumGeter.PLANSTATE.COMMIT.GetHashCode().ToString() && Num == 0))
+ {
+ //删除订单
+ TJOrderPlanDAL.DeleteOrderPlan(op);
+ TJworkOrderDal.BatchDeleteByOrderPlan(new TJWorkOrder() { ORDERPLANID = op.PID });
+ }
+ else
+ {
+ result.IsSuccess = false;
+ result.Msg = "只有初始化或是确认生产并且生产数量为0订单可以删除!";
+ return result;
+ }
+
+ result.Result = count;
+ result.Msg = "订单删除成功!";
+ result.IsSuccess = true;
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+ ///
+ /// 删除信息
+ ///
+ /// 信息
+ /// 删除个数
+ public int DeleteDoorPlankPlan(TJOrderPlan model)
+ {
+ int count = 0;
+ int number = new TJDoorPlankPlanDAL().DelCheck(model);
+ if (number > 0)
+ {
+ return count;
+ }
+ count = new TJDoorPlankPlanDAL().Delete(model);
+ return count;
+ }
+ #endregion
+
+ #region 发布
+ ///
+ /// 发布信息
+ ///
+ ///
+ /// 发布个数
+ public DataResult PutOut(string strs)
+ {
+ DataResult result = new DataResult();
+ try
+ {
+ TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+ List validorderPlanList = new List();
+
+ TJOrderPlan op = TJOrderPlanDAL.Get(new TJOrderPlan { PID = strs });
+
+ if (op.PLAN_STATE != EnumGeter.PLANSTATE.INIT.GetHashCode().ToString())
+ {
+ result.IsSuccess = false;
+ result.Msg = "只有初始状态下的订单能够进行发布!";
+
+ return result;
+ }
+
+ DataTable totalDt = GetWorkOrderTable();
+ op.PLAN_STATE = EnumGeter.PLANSTATE.COMMIT.GetHashCode().ToString();
+ op.UPDATEUSER = this.LoginUser.UserID;
+
+ totalDt = this.PutOutOrderPlan(op, totalDt);
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ IDbConnection dbConn = DbManager.MainConnectionInfo.Connection;
+ if (dbConn.State == ConnectionState.Closed)
+ {
+ dbConn.Open();
+ }
+ IDbTransaction ids = dbConn.BeginTransaction();
+
+ TJOrderPlanDAL.Update(op);
+
+ session.DbHelper.BulkCopyData(totalDt, "T_PP_TJFY_WORKORDER", dbConn, ids);
+ ids.Commit();
+ }
+
+ result.IsSuccess = true;
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 发布信息
+ ///
+ /// 信息
+ /// 发布个数
+ public DataTable PutOutOrderPlan(TJOrderPlan info, DataTable workOrderDt)
+ {
+ WorkCellDAL workCelldal = new WorkCellDAL();
+ var list = "LF,LR,RF,RR".Split(',');
+ //注入派工单信息
+ for (int i = 0; i < info.QTY; i++)
+ {
+ foreach (var seq in list)
+ {
+ DataRow workOrder = workOrderDt.NewRow();
+
+ workOrder["PID"] = Guid.NewGuid().ToString();
+ workOrder["ORDERPLANID"] = info.PID;
+ workOrder["ORDERPLAN_NO"] = (info.PLAN_NO.ToString()+ (i + 1).ToString().PadLeft(4, '0'));
+ workOrder["SEQ"] = info.PLAN_NO.Substring(info.PLAN_NO.Length-2,2)+(i + 1).ToString().PadLeft(4, '0');
+ workOrder["MATERIAL_CODE"] = info.MATERIAL_CODE;
+ workOrder["MATERIAL_NAME"] = info.MATERIAL_NAME;
+ workOrder["PLAN_DATE"] = info.PLAN_DATE;
+ workOrder["PRODUCTCODE"] = "";
+ workOrder["MOULD_CODE"] = seq;
+ workOrder["LINENO"] = info.LINENO;
+ workOrder["STATE"] = EnumGeter.WORKPLANSTATE.INIT.GetHashCode().ToString();
+ workOrder["UPDATEDATE"] = DateTime.Now.ToString();
+
+ workOrderDt.Rows.Add(workOrder);
+ }
+ }
+
+ return workOrderDt;
+ }
+
+ //public List PutOutOrderPlan(TJOrderPlan info, int number, int lastIndex)
+ //{
+ // List wolist = new List();
+ // WorkCellDAL workCelldal = new WorkCellDAL();
+ // string pbomcode = info.PBOM_CODE;
+ // List list = workCelldal.GetFirstWorkCell(pbomcode);
+ // var dicPRI = new DictManageBLL(Dict.DictKind.ORDERPRI);
+
+ // //注入派工单信息
+ // for (int i = 0; i < number; i++)
+ // {
+ // foreach (var seq in list)
+ // {
+ // WorkOrder wo = new WorkOrder();
+ // wo.PID = Guid.NewGuid().ToString();
+ // wo.ORDERPLANID = info.PID;
+ // wo.ORDERPLAN_NO = (info.PLAN_NO.ToString() + (i + 1 + lastIndex).ToString().PadLeft(4, '0'));
+ // wo.ORDER_TYPE = info.PLANSOURCE;
+ // wo.SEQ = (i + 1 + lastIndex).ToString().PadLeft(6, '0');
+ // wo.MATERIAL_CODE = info.MATERIAL_CODE;
+ // wo.PBOM_CODE = info.PBOM_CODE;
+ // wo.QTY = 1;
+ // wo.COMPLETE_QTY = 0;
+ // wo.PLAN_DATE = info.PLAN_DATE;
+ // wo.SHIFT_CODE = info.SHIFT_CODE;
+ // wo.WORKCENTER_CODE = info.WORKCENTER_CODE;
+ // wo.WORKCELL_CODE = seq.WORKCELL_CODE;
+ // wo.WORKLOC_CODE = "";
+ // wo.REMARK = "";
+ // wo.EQPT_NAME = "";
+ // wo.EQPT_CODE = "";
+ // wo.STATE = Convert.ToInt32(EnumGeter.WORKPLANSTATE.INIT.GetHashCode().ToString());
+ // wo.PRI = Convert.ToInt32(dicPRI.GetDictValue(info.PLANSOURCE));
+ // wo.PRINTED = "0";
+ // wolist.Add(wo);
+ // }
+
+ // }
+
+ // return wolist;
+ //}
+
+ #endregion
+
+ #region 导出数据
+ ///
+ /// 获取导出的数据
+ ///
+ /// 查询条件
+ /// 数据
+ public DataTable GetExportData(TJOrderPlan model)
+ {
+ try
+ {
+ //DataTable dt = new TJDoorPlankPlanDAL().GetExportData(model);
+ DataTable dt = new DataTable();
+
+ DictManageBLL dictPRODUCEREQUIRE = new DictManageBLL(DictKind.PRODUCEREQUIRE);
+ DictManageBLL dictPLANSOURCE = new DictManageBLL(DictKind.PLANSOURCE);
+ DictManageBLL dictPLANSTATE = new DictManageBLL(DictKind.PLAN_STATE);
+ foreach (DataRow dr in dt.Rows)
+ {
+ //替换状态类别显示值
+ dr["PRODUCEREQUIRE"] = dictPRODUCEREQUIRE.GetDictValue(dr["PRODUCEREQUIRE"].ToString());
+ //info.PLANSOURCE = dictPLANSOURCE.GetDictValue(info.PLANSOURCE);
+ dr["PLANSOURCE"] = dictPLANSOURCE.GetDictValue(dr["PLANSOURCE"].ToString());
+ dr["PLAN_STATE"] = dictPLANSTATE.GetDictValue(dr["PLAN_STATE"].ToString());
+ }
+
+ return dt;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 导入数据
+ ///
+ /// 导入Excel表数据
+ ///
+ /// Excel列表
+ /// 区域信息
+ /// 工厂信息
+ /// 零件类别信息
+ /// 结果
+ //public DataResult GetImportData(List list, Material materialmodel, QMAPP.FJC.Entity.Basic.MachineInfo machine, FJC.Entity.Basic.ProduceShift produceshiftmodel, QMAPP.MD.Entity.WorkCell workcellmodel)
+ //{
+ // DataResult result = new DataResult();
+ // TJDoorPlankPlanDAL cmDal = new TJDoorPlankPlanDAL();
+ // List List = new List();
+ // int index = 0;
+ // int num = 0;
+ // try
+ // {
+ // result.Result = new ImportMessage();
+ // result.Result.Errors = new List();
+ // List materialinfo = null;
+ // List produceshiftinfo = null;
+ // List machineList = null;
+ // using (IDataSession session = AppDataFactory.CreateMainSession())
+ // {
+ // ///获取物料信息
+ // materialinfo = new QMAPP.MD.BLL.MaterialBLL().GetNewMaterialList(materialmodel,workcellmodel);
+ // //获取班次信息
+ // produceshiftinfo = new QMAPP.FJC.BLL.Basic.ProduceShiftBLL().GetWorkcenterShifts(workcellmodel.WORKCENTER_CODE);
+ // //获取设备信息
+ // machineList = new QMAPP.FJC.BLL.Basic.MachineInfoBLL().GetMachineForOrderList(machine, workcellmodel);
+ // //状态判断
+ // foreach (TJOrderPlan ma in list)
+ // {
+ // index++;
+ // num++;
+ // //物料
+ // Material areaMes = materialinfo.Find(a => a.MATERIAL_CODE == ma.MATERIAL_CODE);
+ // if (areaMes != null)
+ // {
+ // ma.MATERIAL_CODE = areaMes.MATERIAL_CODE;
+ // }
+ // else
+ // {
+ // ma.MATERIAL_CODE = null;
+ // result.Result.Errors.Add(new RowError(index, "物料信息不存在"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // //班次
+ // FJC.Entity.Basic.ProduceShift plantMes = produceshiftinfo.Find(p => p.PRODUCESHIFTTCODE == ma.SHIFT_CODE);
+ // if (plantMes != null)
+ // {
+ // ma.SHIFT_CODE = plantMes.PRODUCESHIFTTCODE;
+ // }
+ // else
+ // {
+ // ma.SHIFT_CODE = null;
+ // result.Result.Errors.Add(new RowError(index, "班次信息不存在"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // //转变生产要求PRODUCEREQUIRE
+ // if (ma.PRODUCEREQUIRE != null)
+ // {
+ // if (ma.PRODUCEREQUIRE.Equals("以数量为准"))
+ // {
+ // ma.PRODUCEREQUIRE = "0";
+ // }
+ // else if (ma.PRODUCEREQUIRE.Equals("以时间为准"))
+ // {
+ // ma.PRODUCEREQUIRE = "1";
+ // }
+ // else
+ // {
+ // ma.PRODUCEREQUIRE = null;
+ // result.Result.Errors.Add(new RowError(index, "生产要求信息错误"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // }
+ // if (string.IsNullOrEmpty(ma.InfoError) == false)
+ // {
+ // ma.PID = null;
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // //修改改时根据主键等信息获取详细内容信息
+ // TJOrderPlan oldInfo = cmDal.Get(ma);
+ // if (oldInfo != null)
+ // {
+ // //更新
+ // ma.PID = oldInfo.PID;
+ // ma.PLAN_SEQ = oldInfo.PLAN_SEQ;
+ // ma.FACTORY_CODE = oldInfo.FACTORY_CODE;
+ // ma.WORKCENTER_CODE = oldInfo.WORKCENTER_CODE;
+ // ma.PBOM_CODE = oldInfo.PBOM_CODE;
+ // ma.ROUTE_CODE = oldInfo.ROUTE_CODE;
+ // ma.PLAN_STATE = oldInfo.PLAN_STATE;
+ // ma.PLANSOURCE = oldInfo.PLANSOURCE;
+ // ma.CREATEUSER = oldInfo.CREATEUSER;
+ // ma.CREATEDATE = oldInfo.CREATEDATE;
+ // ma.UPDATEUSER = this.LoginUser.UserID;
+ // ma.UPDATEDATE = oldInfo.UPDATEDATE;
+ // ma.IsNewInfo = false;
+ // result.Result.updateNum += 1;
+ // }
+ // else
+ // {
+ // //新增
+ // oldInfo = new TJOrderPlan();
+ // ma.PID = Guid.NewGuid().ToString();
+ // ma.PLAN_NO = ma.PLAN_NO;
+ // //int no = new TJDoorPlankPlanDAL().GetNum(ma) + (num - 1);
+ // //ma.PLAN_SEQ = ma.PLAN_DATE.ToString("yyyyMMdd") + no;
+ // ma.PLAN_STATE = EnumGeter.PLANSTATE.INIT.GetHashCode().ToString();
+ // ma.MATERIAL_CODE = ma.MATERIAL_CODE;
+ // ma.MACHINECODDE = ma.MACHINECODDE;
+ // ma.QTY = ma.QTY;
+ // //Pbom
+ // Pbom pbomcode = new PbomDAL().Get(new Pbom { MATERIAL_CODE = ma.MATERIAL_CODE });
+ // ma.PBOM_CODE = pbomcode.PBOM_CODE;
+ // //工艺路线
+ // QMAPP.MD.Entity.ProcessRoute routecode = new QMAPP.MD.DAL.ProcessRouteDAL().RouteWithMaterial(ma.MATERIAL_CODE);
+ // ma.ROUTE_CODE = routecode.ROUTE_CODE;
+ // ma.PLAN_DATE = ma.PLAN_DATE;
+ // ma.SHIFT_CODE = ma.SHIFT_CODE;
+ // ma.PLANSOURCE = "1";
+ // ma.PRODUCEREQUIRE = ma.PRODUCEREQUIRE;
+ // ma.CREATEUSER = this.LoginUser.UserID;
+ // ma.CREATEDATE = DateTime.Now;
+ // ma.UPDATEUSER = ma.CREATEUSER;
+ // ma.UPDATEDATE = ma.CREATEDATE;
+ // //工作中心
+ // string workcentercode = new WorkCellDAL().GetWorkcenter(workcellmodel.WORKCELL_CODE);
+ // ma.WORKCENTER_CODE = workcentercode;
+ // //工厂
+ // string factory = new QMAPP.MD.DAL.FactoryDAL().GetFactoryWithWorkcenter(workcentercode);
+ // ma.FACTORY_CODE = factory;
+ // ma.IsNewInfo = true;
+ // result.Result.insertNum += 1;
+ // }
+ // List.Add(ma);
+ // }
+ // }
+ // //导入
+ // cmDal.GetImportData(List);
+ // result.Msg = "导入成功";
+ // result.IsSuccess = true;
+ // return result;
+ // }
+ // catch (Exception ex)
+ // {
+ // result.IsSuccess = false;
+ // result.Ex = ex;
+ // return result;
+ // }
+ //}
+
+ #endregion
+
+ #region 获取产品表
+ ///
+ /// 获取产品表
+ ///
+ ///
+ private DataTable GetOrderPlanTable()
+ {
+ DataTable dt = new DataTable();
+
+ dt.Columns.Add(new DataColumn() { ColumnName = "PID", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "FACTORY_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_NO", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_SEQ", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_STATE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "MATERIAL_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PBOM_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "ROUTE_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "REMARK", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "QTY", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "COMPLETE_QTY", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_DATE", DataType = typeof(DateTime) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "SHIFT_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLANSOURCE", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PRODUCEREQUIRE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "CREATEDATE", DataType = typeof(DateTime) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "CREATEUSER", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "UPDATEDATE", DataType = typeof(DateTime) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "UPDATEUSER", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "WORKCENTER_CODE", DataType = typeof(string) });
+
+ return dt;
+ }
+
+ private DataTable GetWorkOrderTable()
+ {
+ DataTable dt = new DataTable();
+
+ dt.Columns.Add(new DataColumn() { ColumnName = "PID", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "ORDERPLANID", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "ORDERPLAN_NO", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "SEQ", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "MATERIAL_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "MATERIAL_NAME", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_DATE", DataType = typeof(DateTime) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PRODUCTCODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "STATE", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "MOULD_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "LINENO", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "UPDATEDATE", DataType = typeof(string) });
+ return dt;
+ }
+ #endregion
+
+ #region 整车插入信息
+ ///
+ /// 插入信息(单表)
+ ///
+ /// 信息
+ /// 插入行数
+ //public DataResult InsertWholeDoor(TJOrderPlan model, List materiallist)
+ //{
+ // List List = new List();
+ // DataResult result = new DataResult();
+ // TJDoorPlankPlanDAL cmdDAL = new TJDoorPlankPlanDAL();
+ // cmdDAL.BaseSession = AppDataFactory.CreateMainSession();
+ // string plan_Seq = "";
+ // foreach (Material ma in materiallist)
+ // {
+ // TJOrderPlan planmodel = new TJOrderPlan();
+ // planmodel.MATERIAL_CODE = ma.MATERIAL_CODE;
+ // planmodel.PID = Guid.NewGuid().ToString();
+
+ // planmodel.QTY = model.QTY;
+ // planmodel.PLAN_DATE = model.PLAN_DATE;
+ // planmodel.SHIFT_CODE = model.SHIFT_CODE;
+ // planmodel.PRODUCEREQUIRE = "0";
+
+
+ // planmodel.PLANSOURCE = model.PLANSOURCE;
+ // planmodel.PLAN_STATE = "0";
+ // //计划来源
+ // planmodel.PLANSOURCE = model.PLANSOURCE;
+
+ // //顺序号
+ // OrderPlanSerial serial = new TJDoorPlankPlanDAL().GetNumSerial(model);
+
+ // if (serial != null)
+ // {
+
+ // //流水号加1,补位
+ // planmodel.PLAN_SEQ = (serial.SERIAL_NO + 1).ToString().PadLeft(3, '0');
+ // //更新流水号
+ // serial.SERIAL_NO = serial.SERIAL_NO + 1;
+
+ // if (string.IsNullOrEmpty(plan_Seq))
+ // {
+ // plan_Seq = planmodel.PLAN_SEQ;
+ // }
+
+ // int no = new TJDoorPlankPlanDAL().UpdateSerial(serial);
+ // }
+ // else
+ // {
+ // OrderPlanSerial serialinfo = new OrderPlanSerial();
+ // //若为空则插入流水号表信息
+ // serialinfo.PID = Guid.NewGuid().ToString();
+ // serialinfo.SERIAL_NO = 1;
+ // serialinfo.SERIAL_TYPE = model.ORDER_TYPE;
+ // serialinfo.SERIAL_DATE = model.PLAN_DATE.ToString("yyyyMMdd");
+ // int num = new TJDoorPlankPlanDAL().InsertSerial(serialinfo);
+ // //流水号补位
+ // planmodel.PLAN_SEQ = (serialinfo.SERIAL_NO).ToString().PadLeft(3, '0');
+
+ // if (string.IsNullOrEmpty(plan_Seq))
+ // {
+ // plan_Seq = planmodel.PLAN_SEQ;
+ // }
+ // }
+
+ // string matype = ma.MATERIAL_TYPE_CODE;
+ // string a = matype.Substring(matype.Length - 2, 1);
+ // string b = matype.Substring(matype.Length - 1, 1);
+ // string planSet = b + a;
+ // //计划单号
+ // planmodel.PLAN_NO = model.AsmSetCode+planSet + model.PLAN_DATE.ToString("yyMMdd") + planmodel.PLAN_SEQ + "SD";
+
+ // Pbom pbomcode = new PbomDAL().Get(new Pbom { MATERIAL_CODE = planmodel.MATERIAL_CODE });
+ // planmodel.PBOM_CODE = pbomcode.PBOM_CODE;
+ // string workcentercode = new WorkCellDAL().GetWorkcenter(model.ORDER_TYPE);
+ // planmodel.WORKCENTER_CODE = workcentercode;
+ // if (planmodel.WORKCENTER_CODE != "")
+ // {
+ // string factory = new FactoryDAL().GetFactoryWithWorkcenter(planmodel.WORKCENTER_CODE);
+ // planmodel.FACTORY_CODE = factory;
+ // }
+ // QMAPP.MD.Entity.ProcessRoute routecode = new QMAPP.MD.DAL.ProcessRouteDAL().RouteWithMaterial(planmodel.MATERIAL_CODE);
+ // //QMAPP.MD.Entity.ProcessRoute routecode = new QMAPP.MD.DAL.ProcessRouteDAL().RouteWithMaterial(model.MATERIAL_CODE);
+ // planmodel.ROUTE_CODE = routecode != null ? routecode.ROUTE_CODE : "";
+ // planmodel.CREATEUSER = this.LoginUser.UserID;
+ // planmodel.CREATEDATE = DateTime.Now;
+ // planmodel.UPDATEUSER = planmodel.CREATEUSER;
+ // planmodel.UPDATEDATE = planmodel.CREATEDATE;
+
+ // planmodel.PLAN_SEQ = plan_Seq;
+
+ // List.Add(planmodel);
+ // }
+
+
+ // try
+ // {
+ // if (ExistsOrderPlan(model) > 0)
+ // {
+ // result.IsSuccess = false;
+ // result.Msg = Resource.MaterielCodeIsHave;
+ // return result;
+ // }
+ // result.Result = cmdDAL.InsertDoorPlan(List);
+
+ // }
+ // catch (Exception ex)
+ // {
+ // LogManager.LogHelper.Error(new LogInfo()
+ // {
+ // ErrorInfo = ex,
+ // Tag = ex.StackTrace,
+ // Info = "信息逻辑层-插入信息!"
+ // });
+ // result.IsSuccess = false;
+ // result.Msg = Resource.SystemException;
+ // throw ex;
+ // }
+ // result.IsSuccess = true;
+ // return result;
+ //}
+
+ #endregion
+
+ #region 保存FIS插单
+ ///
+ /// 保存FIS插单
+ ///
+ /// 信息
+ /// 插入行数
+ //public DataResult SaveFISInsert(TJOrderPlan model, List materiallist,bool Publish)
+ //{
+ // List List = new List();
+ // DataResult result = new DataResult();
+ // TJDoorPlankPlanDAL cmdDAL = new TJDoorPlankPlanDAL();
+ // cmdDAL.BaseSession = AppDataFactory.CreateMainSession();
+ // var InsertNum = cmdDAL.GetMaxFISInsertNum(model) + 1;
+ // foreach (Material ma in materiallist)
+ // {
+ // TJOrderPlan planmodel = new TJOrderPlan();
+ // planmodel.MATERIAL_CODE = ma.MATERIAL_CODE;
+ // planmodel.PID = Guid.NewGuid().ToString();
+
+ // planmodel.QTY = model.QTY;
+ // planmodel.PLAN_DATE = model.PLAN_DATE;
+ // //planmodel.SHIFT_CODE = model.SHIFT_CODE;
+ // planmodel.PRODUCEREQUIRE = "0";
+
+ // planmodel.PLAN_STATE = "0";
+ // //计划来源
+ // planmodel.PLANSOURCE = model.PLANSOURCE;
+ // //顺序号
+ // planmodel.PLAN_SEQ = string.Format("{0}-{1:D1}", model.PLAN_SEQ, InsertNum);
+ // var seqstr = model.PLAN_SEQ;
+ // if (seqstr.Length < 4)
+ // {
+ // seqstr = seqstr.PadLeft(4, '0');
+ // }
+ // else if (seqstr.Length > 4)
+ // {
+ // seqstr = seqstr.Substring(seqstr.Length - 4);
+ // }
+ // string matype = ma.MATERIAL_TYPE_CODE;
+
+ // //计划单号
+ // planmodel.PLAN_NO = string.Format("DPINS{0:yyyyMMdd}{1}{2}{3:D1}",
+ // model.PLAN_DATE,
+ // matype.Substring(matype.Length - 2, 2),
+ // seqstr,
+ // InsertNum);
+
+ // Pbom pbomcode = new PbomDAL().Get(new Pbom { MATERIAL_CODE = planmodel.MATERIAL_CODE });
+ // planmodel.PBOM_CODE = pbomcode.PBOM_CODE;
+ // string workcentercode = new WorkCellDAL().GetWorkcenter(model.ORDER_TYPE);
+ // planmodel.WORKCENTER_CODE = workcentercode;
+ // if (planmodel.WORKCENTER_CODE != "")
+ // {
+ // string factory = new FactoryDAL().GetFactoryWithWorkcenter(planmodel.WORKCENTER_CODE);
+ // planmodel.FACTORY_CODE = factory;
+ // }
+ // planmodel.CREATEUSER = this.LoginUser.UserID;
+ // planmodel.CREATEDATE = DateTime.Now;
+ // planmodel.UPDATEUSER = planmodel.CREATEUSER;
+ // planmodel.UPDATEDATE = planmodel.CREATEDATE;
+
+ // List.Add(planmodel);
+ // }
+
+
+ // try
+ // {
+ // if (ExistsOrderPlan(model) > 0)
+ // {
+ // result.IsSuccess = false;
+ // result.Msg = Resource.MaterielCodeIsHave;
+ // return result;
+ // }
+ // result.Result = cmdDAL.InsertDoorPlan(List);
+ // }
+ // catch (Exception ex)
+ // {
+ // LogManager.LogHelper.Error(new LogInfo()
+ // {
+ // ErrorInfo = ex,
+ // Tag = ex.StackTrace,
+ // Info = "信息逻辑层-插入信息!"
+ // });
+ // result.IsSuccess = false;
+ // result.Msg = Resource.SystemException;
+ // throw ex;
+ // }
+ // result.IsSuccess = true;
+ // return result;
+ //}
+ #endregion
+
+ #region 获取列表(为了修改顺序号使用)
+ ///
+ /// 获取列表
+ ///
+ /// 条件
+ /// 数据页
+ /// 数据页
+ public DataResult GetDoorPlankPlanList(TJOrderPlan condition, DataPage page)
+ {
+ DataResult result = new DataResult();
+ try
+ {
+ //获取信息列表
+ DataPage dataPage = new TJDoorPlankPlanDAL().GetDoorPlankPlanList(condition, page);
+
+ result.Result = dataPage;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息逻辑层-获取列表!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ #endregion
+
+ #region 更新顺序号信息
+ ///
+ /// 更新顺序号信息
+ ///
+ ///
+ /// 更新个数
+ public DataResult UpdateDoorPlankPlanSeq(TJOrderPlan TJOrderPlan)
+ {
+ int count = 0;
+ DataResult result = new DataResult();
+ try
+ {
+ //foreach (string str in list)
+ //{
+ // TJOrderPlan op = new TJOrderPlan();
+ // op.PID = str;
+ // op.PLAN_SEQ = TJOrderPlan.PLAN_SEQ;
+ // result.Result += this.UpdateSeq(op);
+ //}
+
+ result.Result = count;
+ result.Msg = "更新成功!";
+ result.IsSuccess = true;
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 更新顺序号信息
+ ///
+ /// 信息
+ /// 删除个数
+ public int UpdateSeq(TJOrderPlan model)
+ {
+ int count = 0;
+ count = new TJDoorPlankPlanDAL().UpdateSeq(model);
+ return count;
+ }
+ #endregion
+
+ #region 门板计划物料号CD
+ ///
+ /// 门板计划物料号CD
+ ///
+ ///
+ ///
+ public List GetMaterialDoorPlanForCD(FISAssembly info)
+ {
+ List result = new List();
+ try
+ {
+ result = new TJDoorPlankPlanDAL().GetMaterialDoorPlanForCD(info);
+ //转换高低配和颜色
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ return result;
+ }
+ #endregion
+
+ #region 获取本体信息
+ ///
+ /// 获取本体信息
+ ///
+ ///
+ ///
+ public FISAssembly GetFISMaterialInfoCD(string IdInfo)
+ {
+ FISAssembly Fisassmble = new FISAssembly();
+ //根据表皮条码获取本体信息
+ Fisassmble.Id = IdInfo;
+ try
+ {
+ List FisassmbleList = new TJDoorPlankPlanDAL().GetMaterialDoorPlanForCD(Fisassmble);
+ foreach (FISAssembly m in FisassmbleList)
+ {
+ Fisassmble.MESModulFL = m.MESModulFL;
+ Fisassmble.MESModulFR = m.MESModulFR;
+ Fisassmble.MESModulRL = m.MESModulRL;
+ Fisassmble.MESModulRR = m.MESModulRR;
+ Fisassmble.AsmSetCode = m.AsmSetCode;
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "产品档案逻辑层-获取本体信息!"
+ });
+ throw ex;
+ }
+ return Fisassmble;
+ }
+ #endregion
+
+ }
+}
diff --git a/APPQ5/QMAPP.FJC.BLL/TianJin/TJFrmPlaceBLL.cs b/APPQ5/QMAPP.FJC.BLL/TianJin/TJFrmPlaceBLL.cs
new file mode 100644
index 0000000..2073f52
--- /dev/null
+++ b/APPQ5/QMAPP.FJC.BLL/TianJin/TJFrmPlaceBLL.cs
@@ -0,0 +1,599 @@
+using System;
+using System.Collections.Generic;
+using QMAPP.BLL;
+using QMAPP.Entity;
+using QMAPP.FJC.BLL.Dict;
+using QMAPP.FJC.DAL.ProduceManage;
+using QMAPP.FJC.Entity.ProduceManage;
+using QMFrameWork.Data;
+using QMFrameWork.Log;
+using QMAPP.FJC.Entity;
+using System.Data;
+using Model;
+using QMAPP.FJC.DAL.Operation;
+using QMAPP.FJC.Entity.Operation;
+//using QMAPP.FJC.Entity.Operation;
+//using QMAPP.FJC.DAL.Operation;
+
+namespace QMAPP.FJC.BLL.TianJin
+{
+ ///
+ /// 模块编号:M4-1
+ /// 作 用:发运模块
+ /// 作 者:崔法宝
+ /// 编写日期:2017年09月05日
+ ///
+ public class TJFrmPlaceBLL : BaseBLL
+ {
+
+ #region 获取列表
+ ///
+ /// 获得Fis发货队列信息
+ ///
+ ///
+ ///
+ public DataTable GetList(string pFisType,string WORKCENTER_CODE)
+ {
+ #region
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetList(pFisType, WORKCENTER_CODE);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ #endregion
+ }
+ #endregion
+
+ #region 天津发运--计划挂起 state=4
+
+ public int UpdateWorkOrderState(List Ids)
+ {
+ try
+ {
+ var count = 0;
+ if (Ids.Count > 0)
+ {
+ return new FJC.DAL.TianJin.TJFrmPlaceDAL().UpdateWorkOrderState(Ids);
+ }
+ return count;
+ }
+ catch
+ {
+ return 0;
+ }
+ }
+
+ #endregion
+
+ ///
+ /// 贴车单记录查询
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public DataTable GetPastecardInfoWithVin(string ppastercardno, string strbegindate, string strenddate, string vinLack, string PlantCode, string Operator)
+ {
+ #region
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetPastecardInfoWithVin(ppastercardno, strbegindate, strenddate, vinLack, PlantCode, Operator);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ #endregion
+ }
+
+
+ ///
+ /// 根据贴车单主键查询贴车单明细
+ ///
+ ///
+ ///
+ public DataTable GetPasteDetails(string ppastercarKey)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetPasteDetails(ppastercarKey);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+
+ ///
+ /// 实现校准功能
+ ///
+ ///
+ public void UpdateFisOrder(string strvwseq, string strCP5A,string workcenter)
+ {
+ try
+ {
+ new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().UpdateFisOrder(strvwseq, strCP5A, workcenter);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+ ///
+ /// 获取贴车单当天的总条数
+ ///
+ ///
+ public DataTable GetPastecardNo(string strcreatetime)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetPastecardNo(strcreatetime);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+ ///
+ /// 获取发车信息
+ ///
+ ///
+ public DataTable GetPastecardIndex(string PLANTNAME, string PASTECARDNO)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetPastecardIndex(PLANTNAME, PASTECARDNO);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+ ///
+ /// 添加贴车单
+ ///
+ ///
+ ///
+ public int AddPasteCard(EPasteCard ppastecard)
+ {
+
+
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().AddPasteCard(ppastecard);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 更新贴车单信息
+ ///
+ ///
+ ///
+ public int UpdatePastecardIndex(string UpdatePastecardIndex,string Plantname)
+ {
+ try
+ {
+
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().UpdatePastecardIndex(UpdatePastecardIndex, System.DateTime.Now, Plantname);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+ ///
+ /// 更新补打时间
+ ///
+ ///
+ ///
+ ///
+ ///
+ public int UpdatePasteCardPasteCardDate2Value(string PASTECARDNO, string PasteCarddate2, string OPERATOR)
+ {
+
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().UpdatePasteCardPasteCardDate2Value(PASTECARDNO, PasteCarddate2, OPERATOR);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 获取下护板扫描表其他条码号
+ ///
+ ///
+ ///
+ public DataTable GetOhterCode(string code)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetOhterCode(code);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 获取配置表中的规则类型值
+ ///
+ ///
+ ///
+ public DataTable GetRule(string cartype, string nf)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetRule(cartype, nf);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 根据条码标识查询零件信息
+ ///
+ ///
+ ///
+ public DataTable GetSparepartsinfo(string strbarcode)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetSparepartsinfo(strbarcode);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+ ///
+ /// 判断条码是否重复
+ ///
+ ///
+ ///
+ public DataTable ExistBarcode(int barcodetime, string pbarcode)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().ExistBarcode(barcodetime, pbarcode);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 打印条码
+ ///
+ ///
+ ///
+ public DataTable WriteFile(string sql)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().WriteFile(sql);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+ ///
+ /// 更新贴车单补打印时间
+ ///
+ ///
+ public void UpdataBarcodeDate(string pastecardno)
+ {
+ try
+ {
+ new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().UpdataBarcodeDate(pastecardno);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+ public void InsertLog(EFailLog plog)
+ {
+ try
+ {
+ new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().InsertLog(plog);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+
+
+ ///
+ /// 获取扫取条形码是否存在
+ ///
+ ///
+ ///
+ public int GetExitsCode(string code)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetExitsCode(code);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+
+ ///
+ /// 查询是否为成品
+ ///
+ ///
+ ///
+ public object GetExitsStatus(string code)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetExitsStatus(code);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+ ///
+ /// 添加贴车单
+ ///
+ ///
+ ///
+ ///
+ public int AddNewPasteCard(EPasteCard ppastecard,int Count)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().AddNewPasteCard(ppastecard,Count);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+ ///
+ /// 获取工作中心
+ ///
+ ///
+ ///
+ public DataTable GetWORKCENTERCODE()
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetWORKCENTERCODE();
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+
+ }
+
+
+ ///
+ /// 获取 DASPASTECARDINDEX表数据
+ ///
+ ///
+ ///
+ public DataTable GetDaspssteCarIndexByPlanName(string PlanTName)
+ {
+
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetDaspssteCarIndexByPlanName(PlanTName);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+ ///
+ /// 插入 DASPASTECARDINDEX表数据
+ ///
+ ///
+ ///
+ public int InsertDaspssteCarIndexByPlanName(EPasteCard ppastecard)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().InsertDaspssteCarIndexByPlanName(ppastecard);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+ ///
+ /// GetPastecardDeatis
+ ///
+ ///
+ ///
+ public DataTable GetPastecardDeatis()
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetPastecardDeatis();
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+ ///
+ /// 根据贴车单ID获取详细
+ ///
+ ///
+ ///
+ public DataTable GetPascardDetailsByPid(string ppastercarKey)
+ {
+ try
+ {
+ return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().GetPascardDetailsByPid(ppastercarKey);
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+
+ //public Product GetProductForSend(string code)
+ //{
+ // try
+ // {
+ // return new ProductDAL().GetProductInfo(new Product() { PRODUCTCODE = code });
+ // //return new Product();
+ // }
+ // catch (Exception ex)
+ // {
+ // throw ex;
+ // }
+
+ //}
+ ///
+ /// 查询Code在Main表的记录
+ ///
+ ///
+ ///
+ public Product GetProductByAssembleCode(string code)
+ {
+ try
+ {
+ return new ProductDAL().GetProductByAssembleCode(code);
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+ public QMAPP.FJC.Entity.SendManage.PastCard GetLastPastCard(string workcentercode)
+ {
+ try
+ {
+ return new DAL.SendManage.SendPlanRecordDAL().GetLastPastCard(workcentercode);
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+ ///
+ /// 获得超时时间信息信息(列表)
+ ///
+ ///
+ ///
+ ///
+ public DataTable GetTimeOutSet()
+ {
+ #region
+ try
+ {
+ #region
+ try
+ {
+ return new DAL.TianJin.TJFrmPlaceDAL().GetLastPastCard();
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ #endregion
+ }
+ catch (System.Exception ex)
+ {
+ throw ex;
+ }
+ #endregion
+ }
+ }
+}
diff --git a/APPQ5/QMAPP.FJC.BLL/TianJin/TJOrderPlanBLL.cs b/APPQ5/QMAPP.FJC.BLL/TianJin/TJOrderPlanBLL.cs
new file mode 100644
index 0000000..e82a362
--- /dev/null
+++ b/APPQ5/QMAPP.FJC.BLL/TianJin/TJOrderPlanBLL.cs
@@ -0,0 +1,1532 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using QMAPP.BLL;
+using QMAPP.Entity;
+using QMAPP.FJC.Entity.FIS;
+using QMFrameWork.Log;
+using QMAPP.FJC.Entity;
+using QMFrameWork.Data;
+using QMAPP.FJC.DAL.FIS;
+using System.Data;
+using QMAPP.FJC.BLL.Dict;
+using QMAPP.MD.Entity;
+using QMAPP.MD.DAL;
+using QMAPP.FJC.DAL.Basic;
+using QMAPP.FJC.Entity.ProductionPlan;
+using QMAPP.FJC.Entity.Basic;
+using QMAPP.FJC.DAL.ProductionPlan;
+using QMFrameWork.Common.Util;
+//using QMAPP.FJC.Entity.FileCopy.FIS;
+using System.Globalization;
+using System.Text.RegularExpressions;
+using QMAPP.FJC.Entity.TianJin;
+using QMAPP.FJC.DAL.TianJin;
+
+namespace QMAPP.FJC.BLL.TianJin
+{
+ ///
+ /// 注塑计划管理
+ ///
+ public class TJOrderPlanBLL : BaseBLL
+ {
+ #region 获取信息
+ ///
+ /// 获取信息
+ ///
+ /// 条件
+ /// 信息
+ public DataResult Get(TJOrderPlan model)
+ {
+ DataResult result = new DataResult();
+ try
+ {
+ result.Result = new TJOrderPlanDAL().Get(model);
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "订单计划信息逻辑层-获取信息!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ #endregion
+
+ #region 获取列表
+ ///
+ /// 获取列表
+ ///
+ /// 条件
+ /// 数据页
+ /// 数据页
+ public DataResult GetList(TJOrderPlan condition, DataPage page)
+ {
+ DataResult result = new DataResult();
+ try
+ {
+ //获取订单计划信息列表
+ page = new TJOrderPlanDAL().GetList(condition, page);
+
+ List list = page.Result as List;
+
+ #region 显示类型
+ //处理字典信息
+ DictManageBLL dictPRODUCEREQUIRE = new DictManageBLL(DictKind.PRODUCEREQUIRE);
+ DictManageBLL dictPLANSOURCE = new DictManageBLL(DictKind.PLANSOURCE);
+ DictManageBLL dictPLANSTATE = new DictManageBLL(DictKind.PLAN_STATE);
+ foreach (var info in list)
+ {
+ //info.PRODUCEREQUIRE = dictPRODUCEREQUIRE.GetDictValue(info.PRODUCEREQUIRE);
+ //info.PLANSOURCE = dictPLANSOURCE.GetDictValue(info.PLANSOURCE);
+ info.PLAN_STATE = dictPLANSTATE.GetDictValue(info.PLAN_STATE);
+ }
+ #endregion
+ result.Result = page;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息逻辑层-获取列表!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+
+ #endregion
+
+ #region 信息是否重复
+ ///
+ /// 判断名称是否存在
+ ///
+ ///
+ /// true:已存在;fasel:不存在。
+ public int ExistsOrderPlan(TJOrderPlan model)
+ {
+ try
+ {
+ return new TJOrderPlanDAL().ExistsOrderPlan(model);
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 插入信息
+ ///
+ /// 插入信息(单表)
+ ///
+ /// 信息
+ /// 插入行数
+ public DataResult Insert(TJOrderPlan model)
+ {
+ DataResult result = new DataResult();
+ //基本信息
+ model.PID = Guid.NewGuid().ToString();
+ model.PLAN_STATE = "0";
+
+ model.CREATEUSER = this.LoginUser.UserID;
+ model.CREATEDATE = DateTime.Now;
+ model.UPDATEUSER = model.CREATEUSER;
+ model.UPDATEDATE = model.CREATEDATE;
+ TJOrderPlanDAL cmdDAL = new TJOrderPlanDAL();
+ try
+ {
+ //if (ExistsOrderPlan(model) > 0)
+ //{
+ // result.IsSuccess = false;
+ // result.Msg = "该订单号已经存在!";
+ // return result;
+ //}
+
+ //流水号信息
+ //FISPlan condition = new FISPlan();
+ //condition.PREFIX = "IN";
+ //condition.DATASTR = model.PLAN_DATE.ToString("yyyyMMdd");
+ //获取流水号
+ //FISPlan info = this.GetOrderPlanSeq(condition);
+
+ //model.PLAN_NO = condition.PREFIX + condition.DATASTR + info.SEQSTR;
+
+ result.Result = new TJOrderPlanDAL().Insert(model);
+
+ //痕迹表
+ //FISPlanRecord record = new FISPlanRecord();
+
+ //record.PID = Guid.NewGuid().ToString();
+ //record.MID = model.PID;
+ //record.PLAN_NO = model.PLAN_NO;
+ //record.MATERIAL_CODE = model.MATERIAL_CODE;
+ //record.PLAN_QTY = model.QTY;
+ //record.OPERATION_TYPE = "0";
+ //record.CREATEUSER = model.CREATEUSER;
+ //record.CREATEDATE = model.CREATEDATE;
+
+ //int no = new TJOrderPlanDAL().InsertRecord(record);
+
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息逻辑层-插入信息!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ #endregion
+
+ #region 更新信息
+ ///
+ /// 更新信息
+ ///
+ ///
+ /// 更新行数
+ public DataResult Update(TJOrderPlan model)
+ {
+ DataResult result = new DataResult();
+ model.UPDATEUSER = this.LoginUser.UserID;
+ try
+ {
+ if (ExistsOrderPlan(model) > 0)
+ {
+ result.IsSuccess = false;
+ result.Msg = "该订单号已经存在!";
+ return result;
+ }
+
+ //if (model.COMPLETE_QTY > model.QTY)
+ //{
+ // result.IsSuccess = false;
+ // result.Msg = "修改后的计划数量不能小于已完成数量!";
+ // return result;
+ //}
+
+ if (model.PLAN_STATE == EnumGeter.PLANSTATE.COMPLATED.GetHashCode().ToString())
+ {
+ result.IsSuccess = false;
+ result.Msg = "订单已经完成不能进行修改!";
+ return result;
+ }
+ #region 如果修改后的计划数量等于完成数量,将计划状态更新为完成
+ //if (model.QTY.Equals(model.COMPLETE_QTY))
+ //{
+ // model.PLAN_STATE = EnumGeter.PLANSTATE.COMPLATED.GetHashCode().ToString();
+ //}
+
+ #endregion
+
+ #region 判断数量
+
+ TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+ TJOrderPlan initialOrderPlan = TJOrderPlanDAL.Get(new TJOrderPlan { PID = model.PID });
+ string deleteWorkOrderSql = "";
+ List workOrderList = new List();
+
+ WorkOrderDAL workOrderDal = new WorkOrderDAL();
+
+ //将计划数量调整变小,删除为生产的派工单
+ if ((initialOrderPlan.QTY - model.QTY) > 0)
+ {
+ deleteWorkOrderSql = string.Format("delete from T_PP_WORKORDER where pid in (select top {0} pid from T_PP_WORKORDER where ORDERPLANID='{1}' and COMPLETE_QTY=0 )", (initialOrderPlan.QTY - model.QTY), initialOrderPlan.PID);
+ }
+ else
+ {
+ List list = workOrderDal.GetList(new WorkOrder() { ORDERPLANID = initialOrderPlan.PID });
+
+ if (list.Count > 0)
+ {
+ WorkOrder wo = list.First();
+
+ //将计划数量调整变大
+ for (int i = 0; i < (model.QTY - initialOrderPlan.QTY); i++)
+ {
+ WorkOrder inWO = BindHelper.CopyToModel(wo, false);//CopyToModel(wo);
+ inWO.PID = Guid.NewGuid().ToString();
+ inWO.COMPLETE_QTY = 0;
+ workOrderList.Add(inWO);
+ }
+ }
+
+ }
+ #endregion
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ session.OpenTs();
+ TJOrderPlanDAL.BaseSession = session;
+ workOrderDal.BaseSession = session;
+
+ Pbom pbomcode = new PbomDAL().Get(new Pbom { MATERIAL_CODE = model.MATERIAL_CODE });
+ if (pbomcode!=null)
+ {
+ //model.PBOM_CODE = pbomcode.PBOM_CODE;
+ }
+
+
+ TJOrderPlanDAL.Update(model);
+
+ #region 插入修改信息痕迹表
+ //插入修改信息痕迹表
+ //FISPlanRecord record = new FISPlanRecord();
+
+ //record.PID = Guid.NewGuid().ToString();
+ //record.MID = model.PID;
+ //record.PLAN_NO = model.PLAN_NO;
+ //record.MATERIAL_CODE = model.MATERIAL_CODE;
+ //record.PLAN_QTY = model.QTY;
+ //record.OPERATION_TYPE = "1";
+ //record.CREATEUSER = model.CREATEUSER;
+ //record.CREATEDATE = model.CREATEDATE;
+
+ //int no = new TJOrderPlanDAL().InsertRecord(record);
+ #endregion
+
+ if (string.IsNullOrEmpty(deleteWorkOrderSql) == false)
+ {
+ session.ExecuteSql(deleteWorkOrderSql, new List().ToArray());
+ }
+
+ if (workOrderList.Count > 0)
+ {
+ foreach (var wo in workOrderList)
+ {
+ workOrderDal.Insert(wo);
+ }
+ }
+
+ session.CommitTs();
+ }
+
+ result.IsSuccess = true;
+ result.Msg = "修改成功!";
+
+ return result;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息逻辑层-更新信息!"
+ });
+ result.IsSuccess = false;
+ result.Msg = Resource.SystemException;
+ throw ex;
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+
+ private WorkOrder CopyToModel(WorkOrder wo)
+ {
+ throw new NotImplementedException();
+ }
+ #endregion
+
+ #region 删除
+ ///
+ /// 删除信息
+ ///
+ ///
+ /// 删除个数
+ public DataResult Delete(string strs)
+ {
+ int count = 0;
+ string[] list = strs.Split(":".ToCharArray());
+ DataResult result = new DataResult();
+ try
+ {
+ TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+ WorkOrderDAL workOrderDal = new WorkOrderDAL();
+ //校验未通过的订单
+ List validOrderList = new List();
+ //可以删除的订单
+ List deleteOrderList = new List();
+ foreach (string str in list)
+ {
+ TJOrderPlan op = TJOrderPlanDAL.Get(new TJOrderPlan() { PID = str });
+
+ //去T_PP_WORkORDER表查询此计划下的派工单是否有不为0(初始)状态的派工信息,若有则不让删除
+ int Num = workOrderDal.GetAllWorkOrder(str);
+
+ //如果订单初始化或是确认生产并且生产数量为0
+ //if (op.PLAN_STATE == EnumGeter.PLANSTATE.INIT.GetHashCode().ToString()
+ // || (op.PLAN_STATE == EnumGeter.PLANSTATE.COMMIT.GetHashCode().ToString() && op.COMPLETE_QTY == 0 && Num==0))
+ //{
+ // deleteOrderList.Add(op);
+ //}
+ //else
+ //{
+ // validOrderList.Add(op);
+ //}
+ }
+ if (validOrderList.Count > 0)
+ {
+ result.IsSuccess = false;
+ result.Msg = "删除失败,只有计划状态为初始状态、执行状态并且完成数量为0的订单可以删除!";
+ return result;
+ }
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ session.OpenTs();
+ TJOrderPlanDAL.BaseSession = session;
+ workOrderDal.BaseSession = session;
+
+ foreach (var op in deleteOrderList)
+ {
+ //删除订单
+ TJOrderPlanDAL.DeleteOrderPlan(op);
+ //新增删除情况下的痕迹表信息
+ #region 插入修改信息痕迹表
+ //插入修改信息痕迹表
+ //FISPlanRecord record = new FISPlanRecord();
+
+ //record.PID = Guid.NewGuid().ToString();
+ //record.MID = op.PID;
+ //record.PLAN_NO = op.PLAN_NO;
+ //record.MATERIAL_CODE = op.MATERIAL_CODE;
+ //record.PLAN_QTY = op.QTY;
+ //record.OPERATION_TYPE = "2";
+ //record.CREATEUSER = op.CREATEUSER;
+ //record.CREATEDATE = op.CREATEDATE;
+
+ //int no = new TJOrderPlanDAL().InsertRecord(record);
+ #endregion
+
+ //删除订单下的派工单
+ workOrderDal.BatchDeleteByOrderPlan(new WorkOrder() { ORDERPLANID = op.PID });
+ }
+
+ session.CommitTs();
+ }
+
+ result.Result = count;
+ result.Msg = "订单删除成功!";
+ result.IsSuccess = true;
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 删除信息
+ ///
+ /// 信息
+ /// 删除个数
+ public int DeleteOrderPlan(TJOrderPlan model)
+ {
+ int count = 0;
+ int number = new TJOrderPlanDAL().DelCheck(model);
+ if (number > 0)
+ {
+ return count;
+ }
+ count = new TJOrderPlanDAL().Delete(model);
+ return count;
+ }
+ #endregion
+
+ #region 发布
+ ///
+ /// 发布信息
+ ///
+ ///
+ /// 发布个数
+ public DataResult PutOut(string strs)
+ {
+ string[] list = strs.Split(":".ToCharArray());
+ DataResult result = new DataResult();
+ try
+ {
+ TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+
+ List validorderPlanList = new List();
+ List putOutPlanList = new List();
+
+ foreach (string str in list)
+ {
+ TJOrderPlan op = TJOrderPlanDAL.Get(new TJOrderPlan { PID = str });
+
+ if (op.PLAN_STATE != EnumGeter.PLANSTATE.INIT.GetHashCode().ToString())
+ {
+ validorderPlanList.Add(op);
+ }
+
+ putOutPlanList.Add(op);
+
+ }
+
+ if (validorderPlanList.Count > 0)
+ {
+ result.IsSuccess = false;
+ result.Msg = "只有初始状态下的订单能够进行发布!";
+
+ return result;
+ }
+
+ DataTable totalDt = GetWorkOrderTable();
+ foreach (var op in putOutPlanList)
+ {
+ op.PLAN_STATE = EnumGeter.PLANSTATE.COMMIT.GetHashCode().ToString();
+ op.UPDATEUSER = this.LoginUser.UserID;
+ totalDt = this.PutOutOrderPlan(op, totalDt);
+ }
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ IDbConnection dbConn = DbManager.MainConnectionInfo.Connection;
+ IDbTransaction ids = dbConn.BeginTransaction();
+
+ TJOrderPlanDAL.BaseSession = session;
+ foreach (var op in putOutPlanList)
+ {
+ TJOrderPlanDAL.Update(op);
+ }
+
+ session.DbHelper.BulkCopyData(totalDt, "T_PP_WORKORDER", dbConn, ids);
+ ids.Commit();
+ }
+
+ result.IsSuccess = true;
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 发布信息
+ ///
+ /// 信息
+ /// 发布个数
+ public DataTable PutOutOrderPlan(TJOrderPlan info, DataTable workOrderDt)
+ {
+ WorkCellDAL workCelldal = new WorkCellDAL();
+ string pbomcode = info.MATERIAL_CODE;
+ List list = workCelldal.GetFirstWorkCell(pbomcode);
+
+ //注入派工单信息
+ for (int i = 0; i < info.QTY; i++)
+ {
+ if (list.Count > 0)
+ {
+ foreach (var seq in list)
+ {
+ DataRow workOrder = workOrderDt.NewRow();
+
+ workOrder["PID"] = Guid.NewGuid().ToString();
+ workOrder["ORDERPLANID"] = info.PID;
+ workOrder["ORDERPLAN_NO"] = (info.PLAN_NO.ToString() + (i + 1).ToString().PadLeft(4, '0'));
+ workOrder["ORDER_TYPE"] = EnumGeter.WORKORDERTYPE.STOCK.GetHashCode().ToString();
+ workOrder["SEQ"] = (i + 1).ToString();
+ workOrder["MATERIAL_CODE"] = info.MATERIAL_CODE;
+ //workOrder["PBOM_CODE"] = info.PBOM_CODE;
+ workOrder["QTY"] = 1;
+ workOrder["COMPLETE_QTY"] = 0;
+ workOrder["PLAN_DATE"] = info.PLAN_DATE;
+ //workOrder["SHIFT_CODE"] = info.SHIFT_CODE;
+ //workOrder["WORKCENTER_CODE"] = info.WORKCENTER_CODE;
+ workOrder["WORKCELL_CODE"] = seq.WORKCELL_CODE;
+ workOrder["WORKLOC_CODE"] = "";
+ workOrder["REMARK"] = "";
+ workOrder["EQPT_NAME"] = "";
+ workOrder["EQPT_CODE"] = "";
+ workOrder["STATE"] = EnumGeter.WORKPLANSTATE.INIT.GetHashCode().ToString();
+
+ workOrderDt.Rows.Add(workOrder);
+ }
+ }
+ else
+ {
+ DataRow workOrder = workOrderDt.NewRow();
+
+ workOrder["PID"] = Guid.NewGuid().ToString();
+ workOrder["ORDERPLANID"] = info.PID;
+ workOrder["ORDERPLAN_NO"] = (info.PLAN_NO.ToString() + (i + 1).ToString().PadLeft(4, '0'));
+ workOrder["ORDER_TYPE"] = EnumGeter.WORKORDERTYPE.STOCK.GetHashCode().ToString();
+ workOrder["SEQ"] = (i + 1).ToString();
+ workOrder["MATERIAL_CODE"] = info.MATERIAL_CODE;
+ //workOrder["PBOM_CODE"] = info.PBOM_CODE;
+ workOrder["QTY"] = 1;
+ workOrder["COMPLETE_QTY"] = 0;
+ workOrder["PLAN_DATE"] = info.PLAN_DATE;
+ //workOrder["SHIFT_CODE"] = info.SHIFT_CODE;
+ //workOrder["WORKCENTER_CODE"] = info.WORKCENTER_CODE;
+ workOrder["WORKLOC_CODE"] = "";
+ workOrder["REMARK"] = "";
+ workOrder["EQPT_NAME"] = "";
+ workOrder["EQPT_CODE"] = "";
+ workOrder["STATE"] = EnumGeter.WORKPLANSTATE.INIT.GetHashCode().ToString();
+
+ workOrderDt.Rows.Add(workOrder);
+ }
+
+ }
+
+ return workOrderDt;
+ }
+
+ ///
+ /// 插入TJOrderPlan
+ /// 写serveice和事物,重写方法.zxd20171101
+ ///
+ /// 信息
+ /// 发布个数
+ //public int InsertOrderPlanAndWorkOrder(TJOrderPlan model,IDataSession tempSession)
+ //{
+ // var TJOrderPlanDAL = new TJOrderPlanDAL();
+ // TJOrderPlanDAL.BaseSession = tempSession;
+ // int count = 0;
+ // //给ordePlan赋值
+ // ///////////////////
+ // //Pbom pbomcode = new PbomDAL().Get(new Pbom { MATERIAL_CODE = model.MATERIAL_CODE });
+ // //if (pbomcode != null)
+ // //{
+ // // model.PBOM_CODE = pbomcode.PBOM_CODE;
+ // //}
+ // //QMAPP.MD.Entity.ProcessRoute routecode = new QMAPP.MD.DAL.ProcessRouteDAL().RouteWithMaterial(model.MATERIAL_CODE);
+ // //if (routecode != null)
+ // //{
+ // // model.ROUTE_CODE = routecode.ROUTE_CODE;
+ // //}
+ // //string workcentercode = new WorkCellDAL().GetWorkcenterWithMaterial(model.MATERIAL_CODE);
+ // //if (workcentercode != null)
+ // //{
+ // // model.WORKCENTER_CODE = workcentercode;
+ // //}
+ // //赋值新session后插入 zxd20171101
+ // TJOrderPlanDAL.Insert(model);
+
+
+ // //获取当前PID下注塑计划数量
+ // TJOrderPlan info = TJOrderPlanDAL.Get(model);
+ // DataTable workOrderDt = GetWorkOrderTable();
+ // int number = TJOrderPlanDAL.PutOutCheck(model);
+ // if (number == 1)
+ // {
+ // return count;
+ // }
+
+ // var wodDal = new WorkOrderDAL();
+ // List list = new WorkCellDAL().GetFirstWorkCell(model.PBOM_CODE);
+
+ // wodDal.BaseSession = tempSession;
+ // //注入派工单信息
+ // for (int i = 0; i < info.QTY; i++)
+ // {
+ // //DataRow workOrder = workOrderDt.NewRow();
+ // var workOrder = new WorkOrder();
+
+ // workOrder.PID= Guid.NewGuid().ToString();
+ // workOrder.ORDERPLANID = info.PID;
+ // workOrder.ORDERPLAN_NO = (info.PLAN_NO.ToString() + (i + 1).ToString().PadLeft(4, '0'));
+ // workOrder.ORDER_TYPE = EnumGeter.WORKORDERTYPE.FIS.GetHashCode().ToString();
+ // workOrder.SEQ = info.PLAN_SEQ;
+ // workOrder.MATERIAL_CODE = info.MATERIAL_CODE;
+ // //workOrder.PBOM_CODE = info.PBOM_CODE;
+ // workOrder.QTY = 1;
+ // workOrder.COMPLETE_QTY = 0;
+ // workOrder.PLAN_DATE = info.PLAN_DATE;
+ // //workOrder.SHIFT_CODE = info.SHIFT_CODE;
+ // //workOrder.WORKCENTER_CODE = info.WORKCENTER_CODE;
+ // //WorkCell workcellcode = new WorkCellDAL().Get(new WorkCell { WORKCENTER_CODE = info.WORKCENTER_CODE });
+ // workOrder.WORKCELL_CODE = (list.Count > 0) ? list[0].WORKCELL_CODE : "";
+ // workOrder.WORKLOC_CODE = "";
+ // workOrder.REMARK = "";
+ // workOrder.EQPT_NAME = "";
+ // workOrder.EQPT_CODE = "";
+ // workOrder.STATE = EnumGeter.WORKPLANSTATE.INIT.GetHashCode();
+ // workOrder.PRI = 0;
+ // //workOrder.UPDATEDATE=DateTime.Now;
+ // workOrder.PRINTED = "0";
+ // wodDal.Insert(workOrder);
+ // //workOrderDt.Rows.Add(workOrder);
+ // }
+ // count = TJOrderPlanDAL.PutOutBaseSession(model, workOrderDt);
+ // return count;
+ //}
+
+ #endregion
+
+ #region 导出数据
+ ///
+ /// 获取导出的数据
+ ///
+ /// 查询条件
+ /// 数据
+ public DataTable GetExportData(TJOrderPlan model)
+ {
+ try
+ {
+ DataTable dt = new TJOrderPlanDAL().GetExportData(model);
+
+ DictManageBLL dictPRODUCEREQUIRE = new DictManageBLL(DictKind.PRODUCEREQUIRE);
+ DictManageBLL dictPLANSTATE = new DictManageBLL(DictKind.PLAN_STATE);
+ DictManageBLL dictPLANSOURCE = new DictManageBLL(DictKind.PLANSOURCE);
+ foreach (DataRow dr in dt.Rows)
+ {
+ //替换状态类别显示值
+ dr["PRODUCEREQUIRE"] = dictPRODUCEREQUIRE.GetDictValue(dr["PRODUCEREQUIRE"].ToString());
+ dr["PLAN_STATE"] = dictPLANSTATE.GetDictValue(dr["PLAN_STATE"].ToString());
+ dr["PLANSOURCE"] = dictPLANSOURCE.GetDictValue(dr["PLANSOURCE"].ToString());
+ }
+
+ return dt;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+ #endregion
+
+ #region 导入数据
+ ///
+ /// 导入Excel表数据
+ ///
+ /// Excel列表
+ /// 物料信息
+ /// 班次信息
+ /// 零件类别信息
+ /// 结果
+ //public DataResult GetImportData(List list, Material condition, MachineInfo machine, ProduceShift produceshiftmodel, WorkCell workcellmodel)
+ //{
+ // DataResult result = new DataResult();
+ // TJOrderPlanDAL cmDal = new TJOrderPlanDAL();
+ // cmDal.BaseSession = AppDataFactory.CreateMainSession();
+ // List List = new List();
+ // List workOrderList = new List();
+
+ // DataTable orderDt = GetOrderPlanTable();
+ // DataTable workOrderDt = GetWorkOrderTable();
+ // int index = 0;
+ // int num = 0;
+ // try
+ // {
+ // result.Result = new ImportMessage();
+ // result.Result.Errors = new List();
+ // List materialinfo = null;
+ // List produceshiftinfo = null;
+ // List machineList = null;
+ // ///获取物料信息(PBOM表)
+ // materialinfo = new QMAPP.MD.BLL.MaterialBLL().GetMaterialForOrder(workcellmodel.WORKCELL_CODE);
+ // //获取班次信息
+ // produceshiftinfo = new QMAPP.FJC.BLL.Basic.ProduceShiftBLL().GetWorkcenterShifts(workcellmodel.WORKCENTER_CODE);
+ // //获取设备信息
+ // machineList = new QMAPP.FJC.BLL.Basic.MachineInfoBLL().GetMachineForOrderList(machine, workcellmodel);
+
+
+ // foreach (TJOrderPlan ma in list)
+ // {
+ // if (string.IsNullOrEmpty(ma.InfoError))
+ // {
+ // #region 状态判断
+ // index++;
+ // num++;
+ // //物料
+ // Material areaMes = materialinfo.Find(a => a.MATERIAL_CODE == ma.MATERIAL_CODE.Trim());
+ // if (areaMes != null)
+ // {
+ // ma.MATERIAL_CODE = areaMes.MATERIAL_CODE;
+ // }
+ // else
+ // {
+ // ma.MATERIAL_CODE = null;
+ // result.Result.Errors.Add(new RowError(index, "物料信息不存在"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // //班次
+ // //Shift plantMes = produceshiftinfo.Find(p => p.SHIFT_CODE == ma.SHIFT_CODE.Trim());
+ // //if (plantMes != null)
+ // //{
+ // // ma.SHIFT_CODE = plantMes.SHIFT_CODE;
+ // //}
+ // //else
+ // //{
+ // // ma.SHIFT_CODE = null;
+ // // result.Result.Errors.Add(new RowError(index, "班次信息不存在"));
+ // // result.Result.failureNum += 1;
+ // // continue;
+ // //}
+ // //转变生产要求PRODUCEREQUIRE
+ // if (ma.PRODUCEREQUIRE != null)
+ // {
+ // if (ma.PRODUCEREQUIRE.Trim().Equals("以数量为准"))
+ // {
+ // ma.PRODUCEREQUIRE = "0";
+ // }
+ // else if (ma.PRODUCEREQUIRE.Trim().Equals("以时间为准"))
+ // {
+ // ma.PRODUCEREQUIRE = "1";
+ // }
+ // else
+ // {
+ // ma.PRODUCEREQUIRE = null;
+ // result.Result.Errors.Add(new RowError(index, "生产要求信息错误"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // }
+
+ // //设备
+ // MachineInfo machineMes = machineList.Find(c => c.MACHINECODDE == ma.MACHINECODDE.Trim());
+ // if (machineMes != null)
+ // {
+ // ma.MACHINECODDE = ma.MACHINECODDE;
+ // }
+ // else
+ // {
+ // ma.MACHINECODDE = null;
+ // result.Result.Errors.Add(new RowError(index, "设备信息不存在"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+
+ // //if (machineList.Count(o => o.MACHINECODDE.Trim() == ma.MACHINECODDE.ToUpper()) > 0)
+ // //{
+ // // ma.MACHINECODDE = ma.MACHINECODDE;
+ // //}
+ // //else
+ // //{
+ // // ma.MACHINECODDE = null;
+ // // result.Result.Errors.Add(new RowError(index, "设备不符"));
+ // // result.Result.failureNum += 1;
+ // // continue;
+ // //}
+
+ // #region 时间
+ // //计划日期
+ // DateTime dateTime = new DateTime();
+ // bool convertResult = DateTime.TryParse(ma.PLAN_DATEIN, out dateTime);
+ // if (!convertResult)
+ // {
+ // result.Result.Errors.Add(new RowError(index, "计划日期格式错误!"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // else
+ // {
+ // DateTimeFormatInfo dtFormat1 = new DateTimeFormatInfo();
+ // dtFormat1.ShortDatePattern = "yyyy/MM/dd";
+ // ma.PLAN_DATE = Convert.ToDateTime(ma.PLAN_DATEIN, dtFormat1);
+ // }
+ // //开始日期
+ // bool convertResultstart = DateTime.TryParse(ma.STARTTIMEIN, out dateTime);
+ // if (!convertResultstart)
+ // {
+ // result.Result.Errors.Add(new RowError(index, "开始日期格式错误!"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // else
+ // {
+ // DateTimeFormatInfo dtFormat2 = new DateTimeFormatInfo();
+ // dtFormat2.ShortDatePattern = "yyyy/MM/dd hh:mm:ss";
+ // ma.STARTTIME = Convert.ToDateTime(ma.STARTTIMEIN, dtFormat2);
+ // }
+
+ // //截止日期
+ // bool convertResultend = DateTime.TryParse(ma.ENDTIMEIN, out dateTime);
+ // if (!convertResultend)
+ // {
+ // result.Result.Errors.Add(new RowError(index, "截止日期格式错误!"));
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+ // else
+ // {
+ // DateTimeFormatInfo dtFormat3 = new DateTimeFormatInfo();
+ // dtFormat3.ShortDatePattern = "yyyy/MM/dd hh:mm:ss";
+ // ma.ENDTIME = Convert.ToDateTime(ma.ENDTIMEIN, dtFormat3);
+ // }
+
+ // #endregion
+
+ // #endregion
+ // }
+ // if (string.IsNullOrEmpty(ma.InfoError) == false)
+ // {
+ // ma.PID = null;
+ // result.Result.failureNum += 1;
+ // continue;
+ // }
+
+
+ // //修改改时根据主键等信息获取详细内容信息
+ // //TJOrderPlan oldInfo = cmDal.GetInfo(ma);
+
+ // #region 注释掉另一种导入增加和更新
+ // //增加
+ // //DataRow odr = orderDt.NewRow();
+ // //odr["PID"] = Guid.NewGuid().ToString();
+ // //odr["FACTORY_CODE"] = "";
+ // //odr["PLAN_NO"] = "";
+ // //odr["PLAN_SEQ"] = "";
+ // //odr["PLAN_STATE"] = EnumGeter.PLANSTATE.INIT.GetHashCode().ToString();
+ // //odr["MATERIAL_CODE"] = ma.MATERIAL_CODE;
+ // //odr["PBOM_CODE"] = "";
+ // //odr["QTY"] = ma.QTY;
+ // //odr["COMPLETE_QTY"] = ma.QTY;
+ // //odr["PLAN_DATE"] = ma.PLAN_DATE;
+ // //odr["SHIFT_CODE"] = "";
+ // //odr["PLANSOURCE"] = DBNull.Value;
+ // //odr["PRODUCEREQUIRE"] = ma.PRODUCEREQUIRE;
+ // //odr["CREATEDATE"] = System.DateTime.Now;
+ // //odr["CREATEUSER"] = this.LoginUser.UserID;
+ // //odr["UPDATEDATE"] = System.DateTime.Now;
+ // //odr["UPDATEUSER"] = this.LoginUser.UserID;
+ // //odr["WORKCENTER_CODE"] = "ZS";
+ // //orderDt.Rows.Add(odr);
+
+ // //if (oldInfo != null)
+ // //{
+ // // //更新
+ // // ma.PID = oldInfo.PID;
+ // // ma.PLAN_SEQ = oldInfo.PLAN_SEQ;
+ // // ma.FACTORY_CODE = oldInfo.FACTORY_CODE;
+ // // ma.WORKCENTER_CODE = oldInfo.WORKCENTER_CODE;
+ // // ma.PBOM_CODE = oldInfo.PBOM_CODE;
+ // // ma.ROUTE_CODE = oldInfo.ROUTE_CODE;
+ // // ma.PLAN_STATE = oldInfo.PLAN_STATE;
+ // // ma.PLANSOURCE = oldInfo.PLANSOURCE;
+ // // ma.CREATEUSER = oldInfo.CREATEUSER;
+ // // ma.CREATEDATE = oldInfo.CREATEDATE;
+ // // ma.UPDATEUSER = this.LoginUser.UserID;
+ // // ma.UPDATEDATE = oldInfo.UPDATEDATE;
+ // // ma.IsNewInfo = false;
+ // // result.Result.updateNum += 1;
+ // //}
+ // //else
+ // //{
+ // #endregion
+
+ // //新增
+ // //oldInfo = new TJOrderPlan();
+ // ma.PID = Guid.NewGuid().ToString();
+ // //ma.PLAN_NO = ma.PLAN_NO;
+
+ // //FISPlan planinfo = new FISPlan();
+ // //planinfo.PREFIX = "IN";
+ // ////planinfo.DATASTR = ma.PLAN_DATE.ToString("yyyyMMdd");
+ // //////获取流水号
+ // //planinfo = this.GetOrderPlanSeq(planinfo);
+ // //planinfo.DATASTR = ma.PLAN_DATE.ToString("yyyyMMdd");
+ // //ma.PLAN_NO = planinfo.PREFIX + planinfo.DATASTR + planinfo.SEQSTR;
+
+ // //ma.PLAN_NO = planinfo.PREFIX+ma.PLAN_NO;
+
+ // //int no = new DoorPlankPlanDAL().GetNum(ma) + (num - 1);
+ // //ma.PLAN_SEQ = ma.PLAN_DATE.ToString("yyyyMMdd") + no;
+ // ma.PLAN_STATE = EnumGeter.PLANSTATE.INIT.GetHashCode().ToString();
+ // ma.MATERIAL_CODE = ma.MATERIAL_CODE;
+ // ma.MACHINECODDE = ma.MACHINECODDE;
+ // ma.QTY = ma.QTY;
+ // //Pbom
+ // Pbom pbomcode = new PbomDAL().Get(new Pbom { MATERIAL_CODE = ma.MATERIAL_CODE });
+ // if (pbomcode != null)
+ // {
+ // ma.PBOM_CODE = pbomcode.PBOM_CODE;
+ // }
+ // //工艺路线
+ // QMAPP.MD.Entity.ProcessRoute routecode = new QMAPP.MD.DAL.ProcessRouteDAL().RouteWithMaterial(ma.MATERIAL_CODE);
+ // if (routecode != null)
+ // {
+ // ma.ROUTE_CODE = routecode.ROUTE_CODE;
+ // }
+ // ma.PLAN_DATE = ma.PLAN_DATE;
+ // ma.SHIFT_CODE = ma.SHIFT_CODE;
+ // ma.PLANSOURCE = "1";
+ // ma.PRODUCEREQUIRE = ma.PRODUCEREQUIRE;
+ // ma.CREATEUSER = this.LoginUser.UserID;
+ // ma.CREATEDATE = DateTime.Now;
+ // ma.UPDATEUSER = ma.CREATEUSER;
+ // ma.UPDATEDATE = ma.CREATEDATE;
+ // //工作中心
+ // string workcentercode = new WorkCellDAL().GetWorkcenter(workcellmodel.WORKCELL_CODE);
+ // ma.WORKCENTER_CODE = workcentercode;
+ // //工厂
+ // string factory = new QMAPP.MD.DAL.FactoryDAL().GetFactoryWithWorkcenter(workcentercode);
+ // ma.FACTORY_CODE = factory;
+ // ma.IsNewInfo = true;
+ // result.Result.insertNum += 1;
+ // //}
+ // List.Add(ma);
+ // #region 注入派工单信息(已注释)
+ // ////注入派工单信息
+ // //for (int i = 0; i < ma.QTY; i++)
+ // //{
+ // // DataRow workOrder = workOrderDt.NewRow();
+
+ // // workOrder["PID"] = Guid.NewGuid().ToString();
+ // // workOrder["ORDERPLANID"] = odr["PID"];
+ // // workOrder["ORDERPLAN_NO"] = (odr["PLAN_NO"].ToString() + (i + 1).ToString().PadLeft(4, '0'));
+ // // workOrder["ORDER_TYPE"] = EnumGeter.WORKORDERTYPE.PROCEDURE.GetHashCode().ToString();
+ // // workOrder["SEQ"] = (i + 1).ToString();
+ // // workOrder["MATERIAL_CODE"] = ma.MATERIAL_CODE;
+
+ // // workOrder["PBOM_CODE"] = "";
+ // // workOrder["QTY"] = 1;
+ // // workOrder["COMPLETE_QTY"] = 0;
+ // // workOrder["PLAN_DATE"] = ma.PLAN_DATE;
+ // // workOrder["SHIFT_CODE"] = "";
+
+ // // workOrder["WORKCENTER_CODE"] = "";
+
+ // // workOrder["WORKCELL_CODE"] = "";
+ // // workOrder["WORKLOC_CODE"] = "";
+ // // workOrder["REMARK"] = "";
+ // // workOrder["EQPT_NAME"] = "";
+ // // workOrder["EQPT_CODE"] = "";
+ // // workOrder["STATE"] = EnumGeter.WORKPLANSTATE.INIT.GetHashCode().ToString();
+
+ // // workOrderDt.Rows.Add(workOrder);
+ // //}
+ // #endregion
+ // }
+
+ // cmDal.GetImportData(List);
+ // result.Msg = "导入成功";
+ // result.IsSuccess = true;
+ // return result;
+ // }
+ // catch (Exception ex)
+ // {
+ // result.IsSuccess = false;
+ // result.Ex = ex;
+ // return result;
+ // }
+ //}
+
+ #endregion
+
+ #region 获取产品表
+ ///
+ /// 获取产品表
+ ///
+ ///
+ private DataTable GetOrderPlanTable()
+ {
+ DataTable dt = new DataTable();
+
+ dt.Columns.Add(new DataColumn() { ColumnName = "PID", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "FACTORY_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_NO", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_SEQ", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_STATE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "MATERIAL_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PBOM_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "ROUTE_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "REMARK", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "QTY", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "COMPLETE_QTY", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_DATE", DataType = typeof(DateTime) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "SHIFT_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLANSOURCE", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PRODUCEREQUIRE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "CREATEDATE", DataType = typeof(DateTime) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "CREATEUSER", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "UPDATEDATE", DataType = typeof(DateTime) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "UPDATEUSER", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "WORKCENTER_CODE", DataType = typeof(string) });
+
+ return dt;
+ }
+
+ private DataTable GetWorkOrderTable()
+ {
+ DataTable dt = new DataTable();
+
+ dt.Columns.Add(new DataColumn() { ColumnName = "PID", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "ORDERPLANID", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "ORDERPLAN_NO", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "ORDER_TYPE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "SEQ", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "MATERIAL_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PBOM_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "QTY", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "COMPLETE_QTY", DataType = typeof(int) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "PLAN_DATE", DataType = typeof(DateTime) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "SHIFT_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "WORKCENTER_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "WORKCENTER_NAME", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "WORKCELL_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "WORKCELL_NAME", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "WORKLOC_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "REMARK", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "EQPT_NAME", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "EQPT_CODE", DataType = typeof(string) });
+ dt.Columns.Add(new DataColumn() { ColumnName = "STATE", DataType = typeof(int) });
+
+ return dt;
+ }
+ #endregion
+
+ #region 根据WINFORM修改订单状态
+ ///
+ /// 根据WINFORM修改订单状态
+ ///
+ ///
+ /// 更新个数
+ public DataResult ChangeOrderPlan(TJOrderPlan info)
+ {
+ DataResult result = new DataResult();
+ try
+ {
+ TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+
+ List ChangePlanList = new List();
+ List validOrderList = new List();
+ TJOrderPlan op = TJOrderPlanDAL.Get(new TJOrderPlan() { MATERIAL_CODE = info.MATERIAL_CODE, PLAN_STATES = (EnumGeter.PLANSTATE.COMMIT.GetHashCode().ToString() + ',' + EnumGeter.PLANSTATE.CREATING.GetHashCode().ToString()) });
+ if (op == null)
+ {
+ result.IsSuccess = false;
+ return result;
+ }
+ //如果订单初始化或是确认生产
+ if (op.PLAN_STATE == EnumGeter.PLANSTATE.COMMIT.GetHashCode().ToString()
+ || op.PLAN_STATE == EnumGeter.PLANSTATE.CREATING.GetHashCode().ToString() )
+ {
+ ChangePlanList.Add(op);
+ }
+ else
+ {
+ validOrderList.Add(op);
+ }
+
+ if (validOrderList.Count > 0)
+ {
+ result.IsSuccess = false;
+ return result;
+ }
+
+ //更新TJOrderPlan相应字段
+ //if (op.PLAN_STATE == EnumGeter.PLANSTATE.COMMIT.GetHashCode().ToString())
+ //{
+ // op.PLAN_STATE = EnumGeter.PLANSTATE.CREATING.GetHashCode().ToString();
+ // op.COMPLETE_QTY = op.COMPLETE_QTY + 1;
+ //}
+ //else if (op.COMPLETE_QTY + 1 < op.QTY && op.PLAN_STATE == EnumGeter.PLANSTATE.CREATING.GetHashCode().ToString())
+ //{
+ // op.PLAN_STATE = EnumGeter.PLANSTATE.CREATING.GetHashCode().ToString();
+ // op.COMPLETE_QTY = op.COMPLETE_QTY + 1;
+ //}
+ //else if (op.COMPLETE_QTY + 1 >= op.QTY && op.PLAN_STATE == EnumGeter.PLANSTATE.CREATING.GetHashCode().ToString())
+ //{
+ // op.PLAN_STATE = EnumGeter.PLANSTATE.COMPLATED.GetHashCode().ToString();
+ // op.COMPLETE_QTY = op.COMPLETE_QTY + 1;
+ //}
+ //更新workorder相应字段
+ WorkOrderDAL workOrderDal = new WorkOrderDAL();
+ WorkOrder wo = workOrderDal.GetworkOrderInfo(new WorkOrder() { ORDERPLANID = op.PID });
+ if(wo.PID!=null)
+ {
+ wo.COMPLETE_QTY = 1;
+ wo.STATE = 3;
+ }
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ session.OpenTs();
+ TJOrderPlanDAL.BaseSession = session;
+ workOrderDal.BaseSession = session;
+
+ //更新订单
+ TJOrderPlanDAL.ChangeOrderPlan(op);
+
+ //更新订单下的派工单
+ workOrderDal.ChangeByOrderPlan(wo);
+ session.CommitTs();
+ }
+ result.IsSuccess = true;
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 获取订单信息
+ ///
+ /// 获取订单信息
+ ///
+ /// 条件
+ /// 信息
+ public TJOrderPlan GetOrderPlantState(TJOrderPlan condition)
+ {
+ TJOrderPlan result = new TJOrderPlan();
+ try
+ {
+ result = new TJOrderPlanDAL().Get(condition);
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ return result;
+ }
+ #endregion
+
+ #region GetBreakFIS
+ ///
+ ///
+ ///
+ public void GetBreakFIS()
+ {
+ DAL.ProductionPlan.WorkOrderDAL workorderdal = new DAL.ProductionPlan.WorkOrderDAL();
+
+ //获取当前工序优先级最高的工单
+ var workorder = workorderdal.GetMatchOrders("");
+ if (workorder.Count > 0)
+ {
+ if (string.Equals(workorder[0].ORDER_TYPE, "0")) //如果为FIS工单
+ {
+ //获取前一个FIS计划顺序号
+ var lastseqstr = workorderdal.GetLastFISSEQ(workorder[0].PLAN_DATE, workorder[0].WORKCENTER_CODE);
+ if (!string.IsNullOrEmpty(lastseqstr))
+ {
+ int maxseq = 1999;
+ int minseq = 1;
+ int lastseq = int.Parse(lastseqstr);
+ int currentseq = int.Parse(workorder[0].SEQ);
+ if (lastseq < maxseq)
+ {
+ if (currentseq - lastseq > 1)
+ {
+ }
+ }
+ else
+ {
+ if (currentseq != minseq)
+ {
+ }
+ }
+ }
+ }
+ }
+ }
+#endregion
+
+ #region 获取流水号信息
+ ///
+ /// 获取流水号信息
+ ///
+ ///
+ ///
+ //public FISPlan GetOrderPlanSeq(FISPlan condition)
+ //{
+ // FISPlan fisplan = new FISPlan();
+ // TJOrderPlanDAL TJOrderPlanDAL = new TJOrderPlanDAL();
+ // //根据表皮条码获取本体信息
+
+ // try
+ // {
+ // fisplan = new TJOrderPlanDAL().GetOrderPlanSeq(condition);
+ // //若存在记录,流水号加1,且更新
+ // if (fisplan!=null)
+ // {
+ // string seqstr = (Convert.ToInt32(fisplan.SEQSTR) + 1).ToString().PadLeft(4, '0');
+ // fisplan.SEQSTR = seqstr;
+ // //更新表T_AW_FISPLAN数据
+ // using (IDataSession session = AppDataFactory.CreateMainSession())
+ // {
+ // session.OpenTs();
+ // TJOrderPlanDAL.BaseSession = session;
+
+ // TJOrderPlanDAL.UpdateFisPlan(fisplan);
+
+ // session.CommitTs();
+ // }
+ // }
+ // //不存在则插入此日期信息
+ // else {
+ // FISPlan planinfo = new FISPlan();
+ // planinfo.PID = Guid.NewGuid().ToString();
+ // planinfo.PREFIX = condition.PREFIX;
+ // planinfo.DATASTR = condition.DATASTR;
+ // planinfo.SEQSTR = "0001";
+ // using (IDataSession session = AppDataFactory.CreateMainSession())
+ // {
+ // session.OpenTs();
+ // TJOrderPlanDAL.BaseSession = session;
+
+ // TJOrderPlanDAL.InsertFisPlan(planinfo);
+
+ // session.CommitTs();
+ // }
+ // return planinfo;
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // LogManager.LogHelper.Error(new LogInfo()
+ // {
+ // ErrorInfo = ex,
+ // Tag = ex.StackTrace,
+ // Info = "注塑逻辑层-获取流水号本体信息!"
+ // });
+ // throw ex;
+ // }
+ // return fisplan;
+ //}
+ #endregion
+
+ #region 痕迹表
+ ///
+ /// 获取人员信息(分页)
+ ///
+ /// 条件
+ /// 数据页
+ /// 数据页
+ //public DataResult FisPlanRecordList(FISPlanRecord condition, DataPage page)
+ //{
+ // DataResult result = new DataResult();
+ // try
+ // {
+ // //获取生产版本项目信息列表
+ // DataPage dataPage = new TJOrderPlanDAL().FisPlanRecordList(condition, page);
+
+ // #region 转换使用状态显示类型
+ // List operatorList = dataPage.Result as List;
+
+ // DictManageBLL dictOPERATORSTATE = new DictManageBLL(DictKind.OperatioType);
+ // foreach (var info in operatorList)
+ // {
+ // info.OPERATION_TYPE = dictOPERATORSTATE.GetDictValue(info.OPERATION_TYPE);
+ // }
+ // #endregion
+ // result.Result = dataPage;
+ // }
+ // catch (Exception ex)
+ // {
+ // LogManager.LogHelper.Error(new LogInfo()
+ // {
+ // ErrorInfo = ex,
+ // Tag = ex.StackTrace,
+ // Info = "设备信息维护逻辑层-获取人员列表!"
+ // });
+ // result.IsSuccess = false;
+ // result.Msg = Resource.SystemException;
+ // return result;
+ // }
+ // result.IsSuccess = true;
+ // return result;
+ //}
+
+ #endregion
+
+
+
+ #region 计划操作记录
+
+ //public DataResult GetTraceList(OrderPlanTrace condition, DataPage page)
+ //{
+ // DataResult result = new DataResult();
+ // try
+ // {
+ // //获取订单计划信息列表
+ // page = new TJOrderPlanDAL().GetTraceList(condition, page);
+
+ // List list = page.Result as List;
+
+ // #region 显示类型
+ // //处理字典信息
+ // DictManageBLL dictPRODUCEREQUIRE = new DictManageBLL(DictKind.PRODUCEREQUIRE);
+ // DictManageBLL dictPLANSOURCE = new DictManageBLL(DictKind.PLANSOURCE);
+ // DictManageBLL dictPLANSTATE = new DictManageBLL(DictKind.PLAN_STATE);
+ // foreach (var info in list)
+ // {
+ // info.PRODUCEREQUIRE = dictPRODUCEREQUIRE.GetDictValue(info.PRODUCEREQUIRE);
+ // info.PLANSOURCE = dictPLANSOURCE.GetDictValue(info.PLANSOURCE);
+ // info.PLAN_STATE = dictPLANSTATE.GetDictValue(info.PLAN_STATE);
+ // }
+ // #endregion
+ // result.Result = page;
+ // }
+ // catch (Exception ex)
+ // {
+ // LogManager.LogHelper.Error(new LogInfo()
+ // {
+ // ErrorInfo = ex,
+ // Tag = ex.StackTrace,
+ // Info = "信息逻辑层-获取列表!"
+ // });
+ // result.IsSuccess = false;
+ // result.Msg = Resource.SystemException;
+ // throw ex;
+ // }
+ // result.IsSuccess = true;
+ // return result;
+ //}
+ //public DataTable GetExportDataTrace(OrderPlanTrace model)
+ //{
+ // try
+ // {
+ // DataTable dt = new TJOrderPlanDAL().GetExportDataTrace(model);
+
+ // DictManageBLL dictPRODUCEREQUIRE = new DictManageBLL(DictKind.PRODUCEREQUIRE);
+ // DictManageBLL dictPLANSTATE = new DictManageBLL(DictKind.PLAN_STATE);
+ // DictManageBLL dictPLANSOURCE = new DictManageBLL(DictKind.PLANSOURCE);
+ // foreach (DataRow dr in dt.Rows)
+ // {
+ // //替换状态类别显示值
+ // dr["PRODUCEREQUIRE"] = dictPRODUCEREQUIRE.GetDictValue(dr["PRODUCEREQUIRE"].ToString());
+ // dr["PLAN_STATE"] = dictPLANSTATE.GetDictValue(dr["PLAN_STATE"].ToString());
+ // dr["PLANSOURCE"] = dictPLANSOURCE.GetDictValue(dr["PLANSOURCE"].ToString());
+ // }
+ // //根据所选信息进行导出
+ // if (string.IsNullOrEmpty(model.PIDList) == false)
+ // {
+ // model.PIDList = "'" + model.PIDList.Replace(":", "','") + "'";
+ // DataView dv = new DataView(dt);
+ // dv.RowFilter = "PID in (" + model.PIDList + ")";
+
+ // dt = dv.ToTable();
+ // }
+ // return dt;
+ // }
+ // catch (Exception ex)
+ // {
+ // throw ex;
+ // }
+
+ //}
+ #endregion
+
+ public DataResult GetPlanWithOrderNo(string orderno, bool CreateIfNotExists)
+ {
+ string regexp_full = "^D\\d{2}\\w+[RF][LR]\\d{2}(10|11|12|0[1-9])(30|31|2\\d|1\\d|0[1-9])\\w\\d{5}$";
+ string regexp_prefix = "^D\\d{2}\\w+(?=[RF][LR]\\d{6})";
+ string regexp_position = "[RF][LR](?=\\d{6})";
+ string regexp_date = "(?<=[RF][LR])\\d{2}(10|11|12|0[1-9])(30|31|2\\d|1\\d|0[1-9])";
+ string regexp_seq = "\\d{5}$";
+
+ var plandal = new TJOrderPlanDAL();
+ var workorderdal = new DAL.ProductionPlan.WorkOrderDAL();
+ //Entity.FIS.TJOrderPlan plan = null;
+ Entity.ProductionPlan.WorkOrder order = null;
+ order = workorderdal.GetOneByOrderNO(orderno);
+
+ if (order == null)
+ {
+ if (!Regex.IsMatch(orderno, regexp_full))
+ {
+ var plan = plandal.Get(new TJOrderPlan { PLAN_NO = orderno.Substring(0, orderno.Length - 4) });
+ if (plan != null)
+ {
+ return new DataResult { Result = plan, IsSuccess = true, MsgCode = "1" };
+ }
+ else
+ {
+ return new DataResult { IsSuccess = false, Ex = new Exception("未查询到此FIS条码对应的计划工单,此工单可能已完成或删除!") };
+ }
+ }
+ else
+ {
+ var plan = plandal.Get(new TJOrderPlan { PLAN_NO = orderno });
+ if (plan != null)
+ {
+ return new DataResult { Result = plan, IsSuccess = true, MsgCode = "1" };
+ }
+ }
+ string codeprefix = Regex.Match(orderno, regexp_prefix).Value;
+ string positioncode = Regex.Match(orderno, regexp_position).Value;
+ string date = Regex.Match(orderno, regexp_date).Value;
+ string seq = Regex.Match(orderno, regexp_seq).Value;
+
+ string materialcode = new DAL.FIS.FISPhraseDAL().GetMESModulCode(codeprefix, positioncode);
+ if (string.IsNullOrWhiteSpace(materialcode))
+ {
+ return new DataResult { IsSuccess = false, Ex = new Exception("FIS码未能识别,FIS短语字典配置不准确或未更新!") };
+
+ //throw new ;
+ }
+
+ DateTime plandate
+ = new DateTime(2000 + int.Parse(date.Substring(0, 2))
+ , int.Parse(date.Substring(2, 2))
+ , int.Parse(date.Substring(4, 2)));
+
+ var nplan = new TJOrderPlan
+ {
+ CREATEDATE = DateTime.Now,
+ //COMPLETE_QTY = 0,
+ CREATEUSER = "",
+ MATERIAL_CODE = materialcode,//////////////////
+ PID = Guid.NewGuid().ToString(),
+ PLAN_DATE = plandate,////////////
+ PLAN_NO = orderno,
+ PLAN_SEQ = seq,//////////////////
+ PLAN_STATE = "1",
+ //PLANSOURCE = "0",
+ QTY = 1,
+ UPDATEUSER = "",
+ UPDATEDATE = DateTime.Now,
+ };
+
+ Pbom pbomcode = new PbomDAL().Get(new Pbom { MATERIAL_CODE = nplan.MATERIAL_CODE });
+ //if (pbomcode != null)
+ //{
+ // nplan.PBOM_CODE = pbomcode.PBOM_CODE;
+ //}
+ QMAPP.MD.Entity.ProcessRoute routecode = new QMAPP.MD.DAL.ProcessRouteDAL().RouteWithMaterial(nplan.MATERIAL_CODE);
+ //if (routecode != null)
+ //{
+ // nplan.ROUTE_CODE = routecode.ROUTE_CODE;
+ //}
+ string workcentercode = new WorkCellDAL().GetWorkcenterWithMaterial(nplan.MATERIAL_CODE);
+ //if (workcentercode != null)
+ //{
+ // nplan.WORKCENTER_CODE = workcentercode;
+ //}
+ //赋值新session后插入 zxd20171101
+ if (CreateIfNotExists)
+ {
+ plandal.Insert(nplan);
+ return new DataResult { Result = nplan, IsSuccess = true, MsgCode = "1" };
+ }
+ return new DataResult { Result = nplan, IsSuccess = true, MsgCode = "0" };
+ }
+ else
+ {
+ var plan = plandal.GetOne(new TJOrderPlan { PID = order.ORDERPLANID });
+ return new DataResult { Result = plan, IsSuccess = true, MsgCode = "1" };
+ }
+ }
+
+ }
+}
diff --git a/APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj b/APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj
index fc9901e..9d366e4 100644
--- a/APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj
+++ b/APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj
@@ -174,6 +174,10 @@
+
+
+
+
diff --git a/APPQ5/QMAPP.FJC.DAL/TianJin/TJDoorPlankPlanDAL.cs b/APPQ5/QMAPP.FJC.DAL/TianJin/TJDoorPlankPlanDAL.cs
new file mode 100644
index 0000000..8c54265
--- /dev/null
+++ b/APPQ5/QMAPP.FJC.DAL/TianJin/TJDoorPlankPlanDAL.cs
@@ -0,0 +1,1017 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using QMAPP.FJC.Entity.FIS;
+using System.Data;
+using QMFrameWork.Data;
+using QMFrameWork.Log;
+using QMAPP.Entity;
+using QMAPP.DAL;
+using QMAPP.FJC.Entity.FileCopy.FIS;
+using QMAPP.FJC.Entity.TianJin;
+using QMAPP.FJC.Entity.Basic;
+
+namespace QMAPP.FJC.DAL.TianJin
+{
+ ///
+ /// 门板计划管理
+ ///
+ ///
+ ///
+ public class TJDoorPlankPlanDAL : BaseDAL
+ {
+ #region 获取信息
+ ///
+ /// 获取信息
+ ///
+ /// 条件
+ /// 信息
+ public TJOrderPlan Get(TJOrderPlan model)
+ {
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ sql = "SELECT * FROM T_PP_TJFY_ORDERPLAN WHERE '1'='1'";
+ if (string.IsNullOrEmpty(model.PID) == false)
+ {
+ sql += " AND PID = @PID";
+ parameters.Add(new DataParameter("PID", model.PID));
+ }
+ if (string.IsNullOrEmpty(model.PLAN_NO) == false)
+ {
+ sql += " AND PLAN_NO = @PLAN_NO";
+ parameters.Add(new DataParameter("PLAN_NO", model.PLAN_NO));
+ }
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //获取信息
+ model = session.Get(sql, parameters.ToArray());
+ }
+ return model;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "门板信息数据层-获取信息"
+ });
+ throw;
+ }
+ }
+ #endregion
+
+ #region 获取列表
+ ///
+ /// 获取列表
+ ///
+ /// 条件
+ /// 数据页
+ /// 数据页
+ public DataPage GetList(TJOrderPlan condition, DataPage page)
+ {
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ sql = this.GetQuerySql(condition, ref parameters);
+ //分页关键字段及排序
+ page.KeyName = "PID";
+ if (string.IsNullOrEmpty(page.SortExpression))
+ {
+ page.SortExpression = "PLAN_DATE DESC,PLAN_SEQ DESC";
+ }
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ page = session.GetDataPage(sql, parameters.ToArray(), page);
+ }
+ return page;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "公司信息数据层-获取列表"
+ });
+ throw;
+ }
+ }
+ #endregion
+
+ #region 获取查询语句
+ ///
+ /// 获取查询语句
+ ///
+ /// 查询条件
+ /// 参数
+ /// 查询语句
+ private string GetQuerySql(TJOrderPlan condition, ref List parameters)
+ {
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder whereBuilder = new StringBuilder();
+ try
+ {
+ sqlBuilder.AppendLine(" SELECT DISTINCT PID ,PLAN_NO ,PLAN_SEQ ,PLAN_STATE ,MATERIAL_CODE ,MATERIAL_NAME ,QTY,[LINENO] ,CONVERT(VARCHAR(19), PLAN_DATE, 120) AS PLAN_DATE, CREATEDATE, UPDATEDATE FROM T_PP_TJFY_ORDERPLAN ");
+
+ //查询条件
+ if (string.IsNullOrEmpty(condition.PLAN_NO) == false)
+ {
+ whereBuilder.Append(" AND PLAN_NO = @PLAN_NO ");
+ parameters.Add(new DataParameter { ParameterName = "PLAN_NO", DataType = DbType.String, Value = condition.PLAN_NO });
+ }
+ //物料号
+ if (string.IsNullOrEmpty(condition.MATERIAL_CODE) == false)
+ {
+ whereBuilder.Append(" AND MATERIAL_CODE = @MATERIAL_CODE ");
+ parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = condition.MATERIAL_CODE });
+ }
+
+ //计划时间
+ if (condition.PLANTIMESTART != DateTime.MinValue)
+ {
+ whereBuilder.Append(" AND PLAN_DATE >= @PLANTIMESTART");
+ parameters.Add(new DataParameter { ParameterName = "PLANTIMESTART", DataType = DbType.String, Value = condition.PLANTIMESTART });
+ }
+ if (condition.PLANTIMEEND != DateTime.MinValue)
+ {
+ whereBuilder.Append(" AND PLAN_DATE <= @PLANTIMEEND");
+ parameters.Add(new DataParameter { ParameterName = "PLANTIMEEND", DataType = DbType.String, Value = condition.PLANTIMEEND });
+ }
+
+ if (whereBuilder.Length > 0)
+ {
+ sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4));
+ }
+ return sqlBuilder.ToString();
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+ ///
+ /// 为了修改计划顺序号用
+ ///
+ ///
+ ///
+ ///
+ private string GetQuerySqlForSeq(TJOrderPlan condition, ref List parameters)
+ {
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder whereBuilder = new StringBuilder();
+ try
+ {
+ //构成查询语句
+ sqlBuilder.AppendLine(" SELECT DISTINCT O.PID ");
+ sqlBuilder.AppendLine(" ,O.FACTORY_CODE ");
+ sqlBuilder.AppendLine(" ,F.FACTORY_NAME ");
+ sqlBuilder.AppendLine(" ,O.PLAN_NO ");
+ sqlBuilder.AppendLine(" ,O.PLAN_SEQ ");
+ sqlBuilder.AppendLine(" ,O.PLAN_STATE ");
+ sqlBuilder.AppendLine(" ,O.MATERIAL_CODE ");
+ sqlBuilder.AppendLine(" ,M.MATERIAL_NAME ");
+ sqlBuilder.AppendLine(" ,O.MACHINECODDE ");
+ sqlBuilder.AppendLine(" ,O.PBOM_CODE ");
+ sqlBuilder.AppendLine(" ,O.ROUTE_CODE ");
+ sqlBuilder.AppendLine(" ,R.ROUTE_NAME ");
+ sqlBuilder.AppendLine(" ,O.REMARK ");
+ sqlBuilder.AppendLine(" ,O.QTY ");
+ sqlBuilder.AppendLine(" ,O.COMPLETE_QTY ");
+ sqlBuilder.AppendLine(" ,O.PLAN_DATE ");
+ sqlBuilder.AppendLine(" ,O.SHIFT_CODE ");
+ sqlBuilder.AppendLine(" ,P.PRODUCESHIFTNAME AS SHIFT_NAME ");
+ sqlBuilder.AppendLine(" ,O.PLANSOURCE ");
+ sqlBuilder.AppendLine(" ,O.PRODUCEREQUIRE ");
+ sqlBuilder.AppendLine(" ,O.CREATEUSER ");
+ sqlBuilder.AppendLine(" ,O.CREATEDATE ");
+ sqlBuilder.AppendLine(" ,O.UPDATEUSER ");
+ sqlBuilder.AppendLine(" ,O.UPDATEDATE ");
+ sqlBuilder.AppendLine(" ,O.IGNORE_FISBREAK ");
+ sqlBuilder.AppendLine(" ,O.FIS_ASMSETCODE ");
+ sqlBuilder.AppendLine(" ,O.STARTTIME AS STARTTIMEVIEW ");
+ sqlBuilder.AppendLine(" ,O.ENDTIME AS ENDTIMEVIEW");
+ sqlBuilder.AppendLine(" ,C.USERNAME AS CREATEUSERNAME ");
+ sqlBuilder.AppendLine(" ,U.USERNAME AS UPDATEUSERNAME ");
+ sqlBuilder.AppendLine(" FROM T_PP_TJFY_ORDERPLAN O ");
+
+ //门板所需要的表T_PP_FISORDER
+ sqlBuilder.AppendLine(" LEFT JOIN T_PP_FISWITHPLAN W ON W.PLANID=O.PID ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_PP_FISORDER A ON W.FISID=A.PID ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_FACTORY F ON F.FACTORY_CODE=O.FACTORY_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_MATERIAL M ON M.MATERIAL_CODE=O.MATERIAL_CODE ");
+
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_PBOM PB ON PB.MATERIAL_CODE=O.MATERIAL_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_MATERIAL_ROUTE MR ON MR.MATERIAL_CODE=PB.MATERIAL_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_PROCESS_ROUTE PR ON PR.ROUTE_CODE=MR.ROUTE_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_PROCESS_ROUTE_WORKCELL PRW ON PRW.ROUTE_CODE=PR.ROUTE_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_WORKCELL WC ON WC.WORKCELL_CODE=PRW.WORKCELL_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_BD_PRODUCESHIFT P ON P.PRODUCESHIFTTCODE=O.SHIFT_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_BD_PROCESS_ROUTE R ON R.ROUTE_CODE=O.ROUTE_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER C ON C.USERID=O.CREATEUSER ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER U ON U.USERID=O.UPDATEUSER ");
+
+ //whereBuilder.AppendFormat(" AND O.WORKCENTER_CODE in (select distinct WORKCENTER from T_PP_ORDERINDENTITY where ORDER_TYPE='{0}')", condition.ORDER_TYPE);
+
+ //查询条件
+ //if (string.IsNullOrEmpty(condition.FACTORY_CODE) == false)
+ //{
+ // whereBuilder.Append(" AND O.FACTORY_CODE = @FACTORY_CODE ");
+ // parameters.Add(new DataParameter { ParameterName = "FACTORY_CODE", DataType = DbType.String, Value = condition.FACTORY_CODE });
+ //}
+ if (string.IsNullOrEmpty(condition.PLAN_NO) == false)
+ {
+ whereBuilder.Append(" AND PLAN_NO = @PLAN_NO ");
+ parameters.Add(new DataParameter { ParameterName = "PLAN_NO", DataType = DbType.String, Value = condition.PLAN_NO });
+ }
+ //物料号
+ if (string.IsNullOrEmpty(condition.MATERIAL_CODE) == false)
+ {
+ whereBuilder.Append(" AND O.MATERIAL_CODE = @MATERIAL_CODE ");
+ parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = condition.MATERIAL_CODE });
+ }
+
+ //计划时间
+ if (condition.PLANTIMESTART != DateTime.MinValue)
+ {
+ whereBuilder.Append(" AND O.PLAN_DATE >= @PLANTIMESTART");
+ parameters.Add(new DataParameter { ParameterName = "PLANTIMESTART", DataType = DbType.String, Value = condition.PLANTIMESTART });
+ }
+ if (condition.PLANTIMEEND != DateTime.MinValue)
+ {
+ whereBuilder.Append(" AND O.PLAN_DATE <= @PLANTIMEEND");
+ parameters.Add(new DataParameter { ParameterName = "PLANTIMEEND", DataType = DbType.String, Value = condition.PLANTIMEEND });
+ }
+
+
+ if (whereBuilder.Length > 0)
+ {
+ sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4));
+ }
+ return sqlBuilder.ToString();
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 信息是否重复
+ ///
+ /// 判断计划单号是否存在
+ ///
+ ///
+ /// true:已存在;fasel:不存在。
+ public int ExistsOrderPlan(TJOrderPlan model)
+ {
+ string PID = "";
+ int count = 0;
+ StringBuilder sqlBuilder = new StringBuilder();
+
+ try
+ {
+ if (string.IsNullOrEmpty(model.PID) == false)
+ {
+ PID = model.PID;
+ }
+ sqlBuilder.AppendLine("SELECT COUNT(*) FROM T_PP_TJFY_ORDERPLAN ");
+ sqlBuilder.AppendLine(" WHERE PID <> @PID AND PLAN_NO=@PLAN_NO");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ count = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(),
+ new DataParameter("PID", PID),
+ new DataParameter { ParameterName = "PLAN_NO", Value = model.PLAN_NO }));
+ }
+ return count;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 插入信息
+ ///
+ /// 插入信息(单表)
+ ///
+ /// 信息
+ /// 插入行数
+ public int Insert(TJOrderPlan model)
+ {
+ int count = 0;
+ try
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //插入基本信息
+ count = session.Insert(model);
+ InsertOrderPlanTrace(session, model, "新增");
+ }
+ return count;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 更新信息
+ ///
+ /// 更新信息
+ ///
+ ///
+ /// 更新行数
+ public int Update(TJOrderPlan model)
+ {
+ int count = 0;
+ try
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //更新基本信息
+ count = session.Update(model);
+ }
+ return count;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 删除
+ ///
+ /// 删除信息
+ ///
+ ///
+ /// 删除个数
+ //提交事务
+ public int Delete(TJOrderPlan model)
+ {
+ int count = 0;
+ try
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //删除基本信息
+ count = session.Delete(model);
+ }
+ return count;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 删除校验
+ ///
+ /// 删除校验
+ ///
+ ///
+ ///
+ public int DelCheck(TJOrderPlan model)
+ {
+ int num = 0;
+ int state;
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder sqlBuilder2 = new StringBuilder();
+ sqlBuilder.AppendLine(" SELECT COMPLETE_QTY ");
+ sqlBuilder.AppendLine(" FROM T_PP_TJFY_ORDERPLAN ");
+ sqlBuilder.AppendLine(" WHERE PID = @PID ");
+ sqlBuilder2.AppendLine(" SELECT PLAN_STATE ");
+ sqlBuilder2.AppendLine(" FROM T_PP_TJFY_ORDERPLAN ");
+ sqlBuilder2.AppendLine(" WHERE PID = @PID ");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ num = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", model.PID)));
+ state = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder2.ToString(), new DataParameter("PID", model.PID)));
+ }
+ return num + state;
+
+ }
+ #endregion
+
+ #region 发布
+ ///
+ /// 发布信息
+ ///
+ ///
+ /// 发布个数
+ public int PutOut(TJOrderPlan model, DataTable workOrderDt)
+ {
+ BaseSession = AppDataFactory.CreateMainSession();
+ IDbConnection dbConn = DbManager.MainConnectionInfo.Connection;
+ IDbTransaction ids = dbConn.BeginTransaction();
+ try
+ {
+ if (workOrderDt.Rows != null)
+ {
+ BaseSession.DbHelper.BulkCopyData(workOrderDt, "T_PP_WORKORDER", dbConn, ids);
+ ids.Commit();
+ }
+ }
+ catch (Exception ex)
+ {
+ ids.Rollback();
+ throw ex;
+ }
+ int count = 0;
+ int count2 = 0;
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder sqlBuilder2 = new StringBuilder();
+ List parameters = new List();
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ sqlBuilder.AppendLine(" UPDATE T_PP_TJFY_ORDERPLAN ");
+ sqlBuilder.AppendLine(" SET PLAN_STATE='1' ");
+ sqlBuilder.AppendLine(" WHERE PID = @PID ");
+
+ sqlBuilder2.AppendLine(" UPDATE T_PP_WORKORDER ");
+ sqlBuilder2.AppendLine(" SET STATE='1' ");
+ sqlBuilder2.AppendLine(" WHERE ORDERPLANID = @PID ");
+
+ //发布更新基本信息
+ parameters.Add(new DataParameter { ParameterName = "PID", DataType = DbType.String, Value = model.PID });
+ count = session.ExecuteSql(sqlBuilder.ToString(), parameters.ToArray());
+ count2 = session.ExecuteSql(sqlBuilder2.ToString(), parameters.ToArray());
+ }
+ return count;
+ }
+ #endregion
+
+ #region 发布校验
+ ///
+ /// 发布校验
+ ///
+ ///
+ ///
+ public int PutOutCheck(TJOrderPlan model)
+ {
+ int num = 0;
+ StringBuilder sqlBuilder = new StringBuilder();
+
+ sqlBuilder.AppendLine(" SELECT PLAN_STATE ");
+ sqlBuilder.AppendLine(" FROM T_PP_TJFY_ORDERPLAN ");
+ sqlBuilder.AppendLine(" WHERE PID = @PID ");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ num = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", model.PID)));
+ }
+ return num;
+
+ }
+ #endregion
+
+ #region 导入
+ public ImportMessage GetImportData(List list)
+ {
+ ImportMessage em = new ImportMessage();
+ List parameters = new List();
+ try
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //设置祖先对象数据会话
+ session.OpenTs();
+ foreach (TJOrderPlan info in list)
+ {
+ if (info.IsNewInfo == true)
+ {
+ //插入信息
+ int count = session.Insert(info);
+ InsertOrderPlanTrace(session, info, "新增");
+ em.insertNum++;
+ }
+ else
+ {
+ //更新信息
+ int count = session.Update(info);
+ InsertOrderPlanTrace(session, info, "修改");
+ em.updateNum++;
+ }
+ }
+ session.CommitTs();
+ }
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ return em;
+ }
+ #endregion
+
+ #region 导入校验工厂区域信息是否匹配
+ /////
+ ///// 导入校验工厂区域信息是否匹配
+ /////
+ ///// 工厂
+ ///// 区域
+ ///// 结果
+ //public int ImportCheck(Plant plantmodel, Area areamodel)
+ //{
+ // int num = 0;
+ // StringBuilder sqlBuilder = new StringBuilder();
+ // try
+ // {
+ // sqlBuilder.AppendLine("SELECT COUNT(1) FROM T_BD_FACTORY ");
+ // sqlBuilder.AppendLine(" WHERE PID=@PID AND AREAID=@AREAID");
+ // using (IDataSession session = AppDataFactory.CreateMainSession())
+ // {
+ // num = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", plantmodel.PID),
+ // new DataParameter { ParameterName = "AREAID", Value = areamodel.PID }));
+ // }
+ // return num;
+ // }
+ // catch (Exception ex)
+ // {
+ // throw ex;
+ // }
+ //}
+ #endregion
+
+ #region 获取导出的数据
+ ///
+ /// 获取导出的数据
+ ///
+ /// 查询条件
+ /// 数据
+ public DataTable GetExportData(TJOrderPlan model)
+ {
+ DataTable dt = null;
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ //构成查询语句
+ sql = this.GetQuerySql(model, ref parameters);
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ dt = session.GetTable(sql, parameters.ToArray());
+ dt.TableName = "DoorPlankPlanExp";
+ }
+ return dt;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 获取流水号信息
+ ///
+ /// 获取流水号信息
+ ///
+ /// 条件
+ /// 信息
+ public int GetNum(TJOrderPlan model)
+ {
+ int num = 0;
+ StringBuilder sqlBuilder = new StringBuilder();
+ try
+ {
+ sqlBuilder.AppendLine("SELECT count(*) FROM T_PP_TJFY_ORDERPLAN ");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //获取数量信息
+ num = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString()))+1;
+ }
+ return num;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "门板信息数据层-获取信息"
+ });
+ throw;
+ }
+ }
+ ///
+ /// 查询
+ ///
+ ///
+ ///
+ public OrderPlanSerial GetNumSerial(TJOrderPlan model)
+ {
+ string sql = null;
+ OrderPlanSerial serial = new OrderPlanSerial();
+ List parameters = new List();
+ try
+ {
+ sql = "SELECT * FROM T_PP_ORDERPLANSERIAL WHERE '1'='1'";
+ //if (string.IsNullOrEmpty(model.ORDER_TYPE) == false)
+ //{
+ // sql += " AND SERIAL_TYPE = @SERIAL_TYPE";
+ // parameters.Add(new DataParameter("SERIAL_TYPE", model.ORDER_TYPE));
+ //}
+ if (model.PLAN_DATE != DateTime.MinValue)
+ {
+ sql += " AND SERIAL_DATE = @SERIAL_DATE";
+ parameters.Add(new DataParameter("SERIAL_DATE", model.PLAN_DATE.ToString("yyyyMMdd")));
+ }
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //获取信息
+ serial = session.Get(sql, parameters.ToArray());
+ }
+ return serial;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "门板信息数据层-获取信息"
+ });
+ throw;
+ }
+ }
+ ///
+ /// 更新流水号
+ ///
+ ///
+ ///
+ //public int UpdateSerial(OrderPlanSerial model)
+ //{
+ // int count = 0;
+ // try
+ // {
+ // using (IDataSession session = AppDataFactory.CreateMainSession())
+ // {
+ // //更新基本信息
+ // count = session.Update(model);
+ // }
+ // return count;
+ // }
+ // catch (Exception ex)
+ // {
+ // throw ex;
+ // }
+ // }
+ ///
+ /// 插入信息
+ ///
+ /// 信息
+ /// 插入行数
+ //public int InsertSerial(OrderPlanSerial model)
+ //{
+ // int count = 0;
+ // try
+ // {
+ // using (IDataSession session = AppDataFactory.CreateMainSession())
+ // {
+ // //插入基本信息
+ // count = session.Insert(model);
+ // }
+ // return count;
+ // }
+ // catch (Exception ex)
+ // {
+ // throw ex;
+ // }
+ //}
+
+ #endregion
+
+ #region 整车插入信息
+ public int InsertDoorPlan(List list)
+ {
+ ImportMessage em = new ImportMessage();
+ int count=0;
+ List parameters = new List();
+ try
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //设置祖先对象数据会话
+ session.OpenTs();
+ foreach (TJOrderPlan info in list)
+ {
+ count = session.Insert(info);
+ InsertOrderPlanTrace(session, info, "新增");
+ }
+ session.CommitTs();
+ }
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ return count;
+ }
+ #endregion
+
+ #region 获取上一条FIS计划
+ ///
+ /// 获取上一条FIS计划
+ ///
+ ///
+ ///
+ public TJOrderPlan GetLastFIS(TJOrderPlan position)
+ {
+ StringBuilder sql = new StringBuilder();
+ List parameters = new List();
+ try
+ {
+ sql.AppendLine("SELECT TOP 1 * ");
+ sql.AppendLine(" FROM T_PP_TJFY_ORDERPLAN ");
+ sql.AppendLine(" WHERE PLAN_DATE<=@plandate ");
+ sql.AppendLine(" AND PLAN_SEQ<@planseq ");
+ sql.AppendLine("AND (PLANSOURCE='0' OR PLANSOURCE='2') ");
+ sql.AppendLine(" ORDER BY PLAN_DATE DESC,PLAN_SEQ DESC ");
+
+ parameters.Add(new DataParameter("plandate", position.PLAN_DATE));
+ parameters.Add(new DataParameter("planseq", position.PLAN_SEQ));
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ return session.Get(sql.ToString(), parameters.ToArray());
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "数据层门板计划管理-获取上一条FIS计划"
+ });
+ throw;
+ }
+
+ }
+ #endregion
+
+ #region 获取指定FIS计划位置存在的最大插单序号
+ ///
+ /// 获取指定FIS计划位置存在的最大插单序号
+ ///
+ ///
+ ///
+ public int GetMaxFISInsertNum(TJOrderPlan model)
+ {
+ StringBuilder sql = new StringBuilder();
+ List parameters = new List();
+ try
+ {
+ sql.AppendLine("SELECT ISNULL(MAX(PLAN_SEQ),'0')");
+ sql.AppendLine("FROM T_PP_TJFY_ORDERPLAN ");
+ sql.AppendLine("WHERE PLAN_SEQ LIKE @planseq+'%' ");
+ sql.AppendLine("AND PLANSOURCE='2' ");
+ sql.AppendLine("AND PLAN_DATE=@plandate ");
+
+ parameters.Add(new DataParameter("plandate", model.PLAN_DATE));
+ parameters.Add(new DataParameter("planseq", model.PLAN_SEQ));
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ var maxseq= session.ExecuteSqlScalar(sql.ToString(), parameters.ToArray()).ToString();
+ if (string.Equals(maxseq,"0"))
+ {
+ return 0;
+ }
+ if (maxseq.Split('-').Length > 1)
+ {
+ return int.Parse(maxseq.Split('-')[1]);
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "数据层门板计划管理-获取上一条FIS计划"
+ });
+ throw;
+ }
+
+ }
+ #endregion
+
+ #region 获取列表(为了修改顺序号使用)
+ ///
+ /// 获取列表
+ ///
+ /// 条件
+ /// 数据页
+ /// 数据页
+ public DataPage GetDoorPlankPlanList(TJOrderPlan condition, DataPage page)
+ {
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ #region 排序
+ //分页关键字段及排序
+ page.KeyName = "PID";
+ page.SortExpression = "UPDATEDATE DESC";
+ #endregion
+ sql = this.GetQuerySqlForSeq(condition, ref parameters);
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ page = session.GetDataPage(sql, parameters.ToArray(), page);
+ }
+ return page;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息数据层-获取列表"
+ });
+ throw;
+ }
+ }
+ #endregion
+
+ #region 更新计划顺序号
+ ///
+ /// 更新计划顺序号
+ ///
+ ///
+ ///
+ public int UpdateSeq(TJOrderPlan model)
+ {
+ int count = 0;
+ StringBuilder sql = new StringBuilder();
+ List parameters = new List();
+ try
+ {
+ sql.AppendLine("UPDATE T_PP_TJFY_ORDERPLAN SET PLAN_SEQ =@PLAN_SEQ WHERE PID=@PID");
+ parameters.Add(new DataParameter("PLAN_SEQ", model.PLAN_SEQ));
+ parameters.Add(new DataParameter("PID", model.PID));
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ count= session.ExecuteSql(sql.ToString(), parameters.ToArray());
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "FIS 计划信息数据层-获取列表"
+ });
+ throw;
+ }
+ return Convert.ToInt32(count);
+
+ }
+ #endregion
+
+ #region 获取门板计划使用的物料号成都
+ ///
+ /// 获取门板计划使用的物料号成都
+ ///
+ ///
+ ///
+ public List GetMaterialDoorPlanForCD(FISAssembly info)
+ {
+ string sql = null;
+ List list = new List();
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder whereBuilder = new StringBuilder();
+ List parameters = new List();
+ try
+ {
+ sqlBuilder.AppendLine(" SELECT Id ");
+ sqlBuilder.AppendLine(" ,Name ");
+ sqlBuilder.AppendLine(" ,Description ");
+ sqlBuilder.AppendLine(" ,CarModel ");
+ sqlBuilder.AppendLine(" ,ProjectCode ");
+ sqlBuilder.AppendLine(" ,BaseSet ");
+ sqlBuilder.AppendLine(" ,Color ");
+ sqlBuilder.AppendLine(" ,Cover ");
+ sqlBuilder.AppendLine(" ,SetOption ");
+ sqlBuilder.AppendLine(" ,OptionDesc1 ");
+ sqlBuilder.AppendLine(" ,OptionDesc2 ");
+ sqlBuilder.AppendLine(" ,OptionDesc3 ");
+ sqlBuilder.AppendLine(" ,OptionDesc4 ");
+ sqlBuilder.AppendLine(" ,OptionDesc5 ");
+ sqlBuilder.AppendLine(" ,AsmSetCode ");
+ sqlBuilder.AppendLine(" ,Active ");
+ sqlBuilder.AppendLine(" ,LegendColor ");
+ sqlBuilder.AppendLine(" ,LegendText ");
+ sqlBuilder.AppendLine(" ,ContractNo ");
+ sqlBuilder.AppendLine(" ,IsDeleted ");
+ sqlBuilder.AppendLine(" ,MESModulFL ");
+ sqlBuilder.AppendLine(" ,MESModulFR ");
+ sqlBuilder.AppendLine(" ,MESModulRL ");
+ sqlBuilder.AppendLine(" ,MESModulRR ");
+ sqlBuilder.AppendLine(" FROM [T_FIS_ASSEMBLY] AS FA ");
+ whereBuilder.Append("AND FA.[MESModulFL] IS NOT NULL ");
+ whereBuilder.Append("AND FA.[MESModulFR] IS NOT NULL ");
+ whereBuilder.Append("AND FA.[MESModulRL] IS NOT NULL ");
+ whereBuilder.Append("AND FA.[MESModulRR] IS NOT NULL ");
+ //查询条件
+
+ if (string.IsNullOrEmpty(info.Id) == false)
+ {
+ whereBuilder.Append(" AND FA.Id = @Id ");
+ parameters.Add(new DataParameter { ParameterName = "Id", DataType = DbType.String, Value = info.Id });
+ }
+
+ if (whereBuilder.Length > 0)
+ {
+ sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4));
+ }
+ sqlBuilder.AppendLine(" ORDER BY FA.Name");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ sql = this.ChangeSqlByDB(sqlBuilder.ToString(), session);
+ list = session.GetList(sql, parameters.ToArray()).ToList();
+ }
+ return list;
+ }
+ catch (Exception ex)
+ {
+ RecordExceptionLog(ex, "物料号信息数据层-获取信息");
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 插入操作记录
+
+ public int InsertOrderPlanTrace(IDataSession Bsession, TJOrderPlan model, string operatType)
+ {
+ try
+ {
+ var sql = $" insert into T_PP_TJFY_ORDERPLANTRACE(PID,PLAN_NO,PLAN_SEQ,PLAN_STATE,MATERIAL_CODE,QTY,PLAN_DATE,CREATEDATE,CREATEUSER,OPERATE_TYPE) " +
+ $" VALUES ('{Guid.NewGuid().ToString()}','{model.PLAN_NO}','{model.PLAN_SEQ}','{model.PLAN_STATE}','{model.MATERIAL_CODE}','{model.QTY}','{model.PLAN_DATE}','{model.UPDATEDATE}','{model.UPDATEUSER}','{operatType}');";
+ return Bsession.ExecuteSql(sql);
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ #endregion
+
+ #region 查询物料名称
+
+ ///
+ /// 获取列表
+ ///
+ /// 条件
+ /// 全部集合
+ public string GetMATERIALNAME(string MATERIAL_CODE)
+ {
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ sql = $"select * from T_MD_MATERIAL where MATERIAL_CODE = '{MATERIAL_CODE}'";
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ var datatable = session.GetTable(sql, parameters.ToArray());
+ if (datatable.Rows.Count > 0)
+ return datatable.Rows[0]["MATERIAL_NAME"].ToString();
+ else
+ return null;
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "物料号信息数据层-获取列表"
+ });
+ throw;
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs b/APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs
new file mode 100644
index 0000000..e30bbeb
--- /dev/null
+++ b/APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs
@@ -0,0 +1,1340 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using QMAPP.DAL;
+using QMFrameWork.Data;
+using QMAPP.FJC.Entity.FIS;
+using QMFrameWork.Log;
+using System.Data;
+using System.Collections;
+using Model;
+
+namespace QMAPP.FJC.DAL.TianJin
+{
+ ///
+ /// 模块编号:M20
+ /// 作 用:发运模块
+ /// 作 者:张松男
+ /// 编写日期:2021-12-20
+ ///
+ public class TJFrmPlaceDAL : BaseDAL
+ {
+ ///
+ /// 获得FIS发货信息信息(列表)
+ ///
+ ///
+ ///
+ ///
+ public DataTable GetList(string pFistype, string WORKCENTER_CODE)
+ {
+ #region
+ try
+ {
+ DataTable returnDt = null;
+ StringBuilder strSql = new StringBuilder();
+ List parameters = new List();
+
+ //
+ //
+
+ strSql.Append(" SELECT TOP 1000 O.PID,O.SEQ,O.MATERIAL_CODE,O.MATERIAL_NAME,O.STATE,O.[LINENO]," +
+ "CASE O.MOULD_CODE WHEN 'LF' THEN '左前' WHEN 'LR' THEN '左后' WHEN 'RF' THEN '右前' WHEN 'RR' THEN '右后' ELSE O.MOULD_CODE END as 'MOULD_CODE'," +
+ "O.PLAN_DATE FROM T_PP_TJFY_WORKORDER AS O LEFT JOIN T_PP_TJFY_ORDERPLAN AS P ON P.PID = O.ORDERPLANID ");
+
+ if (!string.IsNullOrEmpty(pFistype) && pFistype == "01")
+ {
+ strSql.Append(" WHERE O.MOULD_CODE IN( 'LF', 'LR' ) ");
+ }
+ else
+ {
+ strSql.Append(" WHERE O.MOULD_CODE IN( 'RF', 'RR' ) ");
+ }
+
+ strSql.Append(" and O.STATE in ('0','1') ");
+
+ strSql.Append(" ORDER BY O.PLAN_DATE DESC,SEQ,O.MOULD_CODE ");
+
+ //strSql.Append(" SELECT TOP 1000 ");
+ //strSql.Append(" T1.PID,T1.VWSEQ,T1.PRODNO,T1.CARSETDESC_CN, T1.CP5A,T1.[LINENO], ");
+ //strSql.Append("T1.KIN,T1.VIN,T1.SCANSTATE, T2.WORKCENTER_CODE ");
+ //strSql.Append(" FROM dbo.T_PP_FISORDER T1 ");
+ //strSql.Append(" INNER JOIN dbo.T_PP_FISORDERSENDDETAIL T2 ");
+ //strSql.Append(" on T1.PID=T2.FIS_PID ");
+ //strSql.Append(" WHERE T1.scanstate=0 ");
+ //strSql.Append(" and LEFT(T1.VWSEQ,2)='" + pFistype + "' ");
+ //strSql.Append(" AND T1.flagdel=0 ");
+
+ //if (!string.IsNullOrEmpty(WORKCENTER_CODE))
+ //{
+ // strSql.Append(" and T2.WORKCENTER_CODE='" + WORKCENTER_CODE + "'");
+ //}
+ //strSql.Append(" ORDER BY T1.CP5A ASC,T1.VWSEQ ASC,T1.PRODNO ASC ");
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ returnDt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+
+ //逻辑说明
+ //FIS要货计划都有大众上线时间CP5A:201611011001表示2016年11月1号10点01分上线
+ //FIS要货计划都有一个大众顺序号VWSEQ: 018029或是029382,前两位01和02表示东厂和西厂,没有锦衣卫
+ //后面四位表示实际顺序号,所以9999台一轮回,
+ //实际出现的情况有可能出现同一个分钟上线的大众顺序号可能有两个
+ //如果出现019999和010001,实际的顺序是019999在前,010001在后,即上一个轮回的最后一条和下一个轮回的第一条
+ //如果这样前面的查询语句中就会把010001排在019999前面
+ //所以要处理这种情况。
+
+ //实现方式就是获取数据后,放到两个表中,这两个表相同,遍历第一个表,用记录和后一条记录比较,
+ //如果大众上线时间相同并且两个顺序号的差值在1000以上,一定是顺序出差,
+ //差值1000是个估计值,9999与1差值是9998,我们之前1000
+ //修改第二个表中的对应的数据
+ //极端情况出现一个大众上线时间对一个三个大众顺序号,
+ //这里一并处理
+ //if (returnDt.Rows.Count > 1)
+ //{
+
+ // //必须进行第一次循环
+ // bool flag = true;
+
+ // while (flag)
+ // {
+ // //复制表
+ // DataTable dt = returnDt.Copy();
+
+ // //是否进行了值的交换标记
+ // bool isChange = false;
+
+ // for (int i = 0; i < dt.Rows.Count; i++)
+ // {
+
+ // if (i == dt.Rows.Count - 1)
+ // continue;
+
+ // //获取当前行对象
+ // DataRow dr = dt.Rows[i];
+ // string cp5aDr = dr["CP5A"].ToString();
+ // int seqDr = Convert.ToInt32(dr["VWSEQ"].ToString().Substring(2));
+
+ // //获取下一行对象
+ // DataRow nextDr = dt.Rows[i + 1];
+ // string nextCp5a = nextDr["CP5A"].ToString();
+ // int nextSeq = Convert.ToInt32(nextDr["VWSEQ"].ToString().Substring(2));
+
+ // //如果两行记录的大众上线时间不相同
+ // //不需要比较
+ // if (cp5aDr != nextCp5a)
+ // continue;
+
+ // //如果大众上线时间相同并且前后值大于1000,
+ // //我们默认是
+ // if (nextSeq - seqDr > 1000)
+ // {
+ // returnDt.Rows[i]["PID"] = nextDr["PID"].ToString();
+ // returnDt.Rows[i]["VWSEQ"] = nextDr["VWSEQ"].ToString();
+ // returnDt.Rows[i]["PRODNO"] = nextDr["PRODNO"].ToString();
+ // returnDt.Rows[i]["CARSETDESC_CN"] = nextDr["CARSETDESC_CN"].ToString();
+ // returnDt.Rows[i]["CP5A"] = nextDr["CP5A"].ToString();
+ // returnDt.Rows[i]["LINENO"] = nextDr["LINENO"].ToString();
+ // returnDt.Rows[i]["KIN"] = nextDr["KIN"].ToString();
+ // returnDt.Rows[i]["VIN"] = nextDr["VIN"].ToString();
+ // returnDt.Rows[i]["SCANSTATE"] = nextDr["SCANSTATE"].ToString();
+
+ // returnDt.Rows[i + 1]["PID"] = dr["PID"].ToString();
+ // returnDt.Rows[i + 1]["VWSEQ"] = dr["VWSEQ"].ToString();
+ // returnDt.Rows[i + 1]["PRODNO"] = dr["PRODNO"].ToString();
+ // returnDt.Rows[i + 1]["CARSETDESC_CN"] = dr["CARSETDESC_CN"].ToString();
+ // returnDt.Rows[i + 1]["CP5A"] = dr["CP5A"].ToString();
+ // returnDt.Rows[i + 1]["LINENO"] = dr["LINENO"].ToString();
+ // returnDt.Rows[i + 1]["KIN"] = dr["KIN"].ToString();
+ // returnDt.Rows[i + 1]["VIN"] = dr["VIN"].ToString();
+ // returnDt.Rows[i + 1]["SCANSTATE"] = dr["SCANSTATE"].ToString();
+
+ // //设置值的交换标记值为true
+ // isChange = true;
+
+ // }
+
+ // }
+
+ // //将是否 交换标记值付给外层标记值
+ // //如果未进行交换,跳出while循环
+ // //如果进行了交换就得再次循环,放在一个大众上线时间对应两个以上大众顺序号的情况
+ // flag = isChange;
+ // }
+ //}
+ return returnDt;
+
+ }
+ catch (System.Exception ex)
+ {
+ throw ex;
+ }
+ #endregion
+ }
+
+ public int UpdateWorkOrderState(List Ids)
+ {
+ var ids = "";
+ foreach (var id in Ids)
+ {
+ ids += $"'{id}',";
+ }
+ ids = ids.TrimEnd(',');
+
+ var strSql = $" update T_PP_TJFY_WORKORDER set STATE = '4' where PID IN ({ids})";
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ return session.ExecuteSql(strSql.ToString());
+ }
+ }
+
+ ///
+ /// 贴车单记录查询
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+
+ public DataTable GetPastecardInfoWithVin(string ppastercardno, string strbegindate, string strenddate, string vinLack, string PlantCode, string Operator)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ DataTable returnDt = null;
+ List parameters = new List();
+ strSql.Append(@"SELECT PID,PASTECARDNO, PLANTNAME,PASTECARDDATE,PASTECARDDATE2,OPERATOR, CASE PRODUCTIONNAME WHEN '01' THEN '左侧门板发运' ELSE '右侧门板发运' END AS PRODUCTIONNAME ,CREATETIME, CASE VINLACK WHEN '1' THEN '是' ELSE '否' END AS VINLACK FROM T_PP_PASTECARD ");
+ if (!string.IsNullOrEmpty(strbegindate) && !string.IsNullOrEmpty(strenddate))
+ {
+ strSql.Append(string.Format(" WHERE CREATETIME >='{0} 00:00:00' AND CREATETIME <= '{1} 23:59:59' ", strbegindate, strenddate));
+ if (vinLack == "1")
+ {
+ strSql.Append(string.Format(" AND VINLACK='{0}'", vinLack));
+ }
+
+ strSql.Append(string.Format(" AND FLAGDEL='0'"));
+
+ }
+ if (!string.IsNullOrEmpty(ppastercardno))
+ {
+ strSql.Append(string.Format(" AND PASTECARDNO='{0}' ", ppastercardno));
+ }
+ if (!string.IsNullOrEmpty(PlantCode))
+ {
+ strSql.Append(string.Format(" AND PLANTNAME='{0}' ", PlantCode));
+ }
+ if (!string.IsNullOrEmpty(Operator))
+ {
+ strSql.Append(string.Format(" AND OPERATOR='{0}' ", Operator));
+ }
+
+ strSql.Append(" ORDER BY CREATETIME desc");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ returnDt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+
+
+ return returnDt;
+ #endregion
+ }
+
+
+
+ ///
+ /// 根据贴车单主键查询贴车单明细
+ ///
+ ///
+ ///
+ public DataTable GetPasteDetails(string ppastercarKey)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ DataTable returnDt = null;
+ List parameters = new List();
+ //strSql.Append(@"SELECT ROWINDEX,VWSEQ,KIN,VIN,PRODNO,CARSETDESC_CN,CP5A,[LINENO],SANBARCODE,SCANDATE,PASTECARDNO,PRODUCTIONNAME,T_PP_PASTECARD.PASTE_CARD_KEY ");
+ //strSql.Append(@"FROM T_PP_PASCARDDETAILS,T_PP_PASTECARD,T_PM_FISORDER_YB ");
+ //strSql.Append(string.Format("WHERE T_PP_PASCARDDETAILS.FIS_KEY=T_PM_FISORDER_YB.FIS_KEY AND T_PP_PASTECARD.PASTE_CARD_KEY=T_PP_PASCARDDETAILS.PASTE_CARD_KEY AND T_PP_PASCARDDETAILS.PASTE_CARD_KEY='{0}' AND T_PP_PASCARDDETAILS.FLAGDEL='0' ORDER BY ROWINDEX", ppastercarKey));
+
+ strSql.Append(@" SELECT
+ t1.ROWINDEX,
+ t3.VWSEQ,
+ t3.KIN,
+ t3.VIN,
+ t3.PRODNO,
+ t3.CARSETDESC_CN,
+ t3.CP5A,
+ t3.[LINENO],
+ t1.SANBARCODE,
+ t1.SCANDATE,
+ t2.PASTECARDNO,
+ t2.PRODUCTIONNAME,
+ t2.pid AS PASTE_CARD_KEY
+ FROM T_PP_PASCARDDETAILS t1
+ inner join
+ T_PP_PASTECARD t2 on t2.PID= t1.PID
+ inner join
+ (
+ SELECT *
+ FROM dbo.T_PP_FISORDER T1
+ INNER JOIN dbo.T_PP_FISORDERSENDDETAIL T2
+ on t1.pid=T2.FIS_PID
+ )t3
+ on t1.pid=t3.pid ");
+ strSql.Append(string.Format("AND T1.pid='{0}' AND t1.FLAGDEL='0' ORDER BY t1.ROWINDEX ", ppastercarKey));
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ returnDt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ return returnDt;
+ #endregion
+ }
+
+
+ ///
+ /// 根据贴车单ID获取详细
+ ///
+ ///
+ ///
+ public DataTable GetPascardDetailsByPid(string ppastercarKey)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ DataTable returnDt = null;
+ List parameters = new List();
+
+ strSql.AppendLine("SELECT D.ROWINDEX ,F.SEQ as 'VWSEQ' ,F.ORDERPLAN_NO as 'vin' ,F.MATERIAL_CODE as 'PRODNO' ,F.MATERIAL_NAME as 'CARSETDESC_CN' ,CASE F.MOULD_CODE WHEN 'LF' THEN '左前' WHEN 'LR' THEN '左后' WHEN 'RF' THEN '右前' WHEN 'RR' THEN '右后' ELSE F.MOULD_CODE END AS 'CP5A', ");
+ strSql.AppendLine("F.[LINENO] ,C.PASTECARDNO FROM T_PP_PASCARDDETAILS AS D LEFT JOIN T_PP_TJFY_WORKORDER AS F ON F.PID = D.FISDETAILID LEFT JOIN T_PP_PASTECARD AS C ON C.PID = D.PASTECARDID ");
+ strSql.AppendLine(" WHERE PASTECARDID='" + ppastercarKey.ToString() + "' ");
+ strSql.AppendLine(" ORDER BY D.ROWINDEX,F.SEQ,F.MATERIAL_CODE");
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ returnDt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ return returnDt;
+ #endregion
+ }
+
+
+ ///
+ /// 获取贴车单当天的总条数
+ ///
+ ///
+ public DataTable GetPastecardNo(string strcreatetime)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ DataTable returnDt = null;
+ List parameters = new List();
+ strSql.Append(@"SELECT COUNT(*)+1 FROM T_PP_PASTECARD ");
+ strSql.Append(string.Format(" WHERE CREATETIME>='{0} 00:00:00' AND CREATETIME<='{0} 23:59:59' AND FLAGDEL='0' ", strcreatetime));
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ returnDt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+
+ return returnDt;
+ #endregion
+ }
+
+
+
+ public int UpdatePasteCardPasteCardDate2Value(string PASTECARDNO, string PasteCarddate2, string OPERATOR)
+ {
+ try
+ {
+ StringBuilder strSql = new StringBuilder();
+ strSql.AppendFormat(" update T_PP_PASTECARD set PasteCarddate2='" + PasteCarddate2 + "' , OPERATOR='" + OPERATOR + "' WHERE PASTECARDNO='" + PASTECARDNO + "'");
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ return session.ExecuteSql(strSql.ToString());
+ }
+ }
+ catch (System.Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+
+
+ ///
+ /// 获取发车信息
+ ///
+ ///
+ public DataTable GetPastecardIndex(string PLANTNAME, string PASTECARDNO)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ StringBuilder whereBuilder = new StringBuilder();
+ DataTable returnDt = null;
+ List parameters = new List();
+ strSql.Append(" SELECT PASTECARDNO,PASTECARDDATE,PLANTCODE,PLANTNAME FROM T_DAS_PASTE_CARDINDEX");
+ if (PLANTNAME != "")
+ {
+ whereBuilder.Append(" AND PLANTNAME = '" + PLANTNAME + "'");
+
+ }
+ if (PASTECARDNO != "")
+ {
+ whereBuilder.Append(" AND PASTECARDNO like '%" + PASTECARDNO + "%'");
+ }
+ if (whereBuilder.Length > 0)
+ {
+ strSql.Append(" WHERE " + whereBuilder.ToString().Substring(4));
+ }
+
+ strSql.Append(" ORDER BY PLANTCODE ASC");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ returnDt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ return returnDt;
+ #endregion
+ }
+
+ ///
+ /// 获取贴车明细单当天的总条数
+ ///
+ ///
+ public DataTable GetPastecardDeatis()
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ DataTable returnDt = null;
+ List parameters = new List();
+ strSql.Append(@"SELECT COUNT(*)+1 FROM T_PP_PASCARDDETAILS ");
+ strSql.Append(string.Format(" WHERE SCANDATE>='{0} 00:00:00' AND SCANDATE<='{0} 23:59:59' AND FLAGDEL='0'", DateTime.Now.ToShortDateString()));
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ returnDt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+
+ //return SqlHelper.QueryReturnDataTable(strSql.ToString());
+ return returnDt;
+ #endregion
+ }
+
+
+
+ ///
+ /// 获取下护板扫描表其他条码号
+ ///
+ ///
+ ///
+ public DataTable GetOhterCode(string code)
+ {
+ #region
+ try
+ {
+ List parameters = new List();
+ string strSql = string.Format(@"SELECT OTHERCODE,SENDED FROM T_AW_PRODUCT WHERE SCANCODE='{0}'", code);
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ return session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ #endregion
+ }
+
+
+
+
+
+
+ private string UpdateFISORDERSENDDETAIL(string FIS_PID)
+ {
+ StringBuilder strSql = new StringBuilder();
+ strSql.Append("UPDATE T_PP_FISORDERSENDDETAIL SET state='1' WHERE FIS_PID='" + FIS_PID + "'");
+ return strSql.ToString();
+
+ }
+
+
+ ///
+ /// 生成贴车单明细SQL
+ ///
+ ///
+ ///
+ private string Insertdetailcard(int rowindex, EPasteDetailsCard pdecard)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ StringBuilder strFields = new StringBuilder();
+ StringBuilder strValues = new StringBuilder();
+
+ strFields.Append(" PID ,");
+ strFields.Append(" FISDETAILID ,");
+ strFields.Append(" PASTECARDID, ");
+ strFields.Append(" SANBARCODE, ");
+ strFields.Append(" SCANDATE,");
+ strFields.Append(" ROWINDEX,");
+ strFields.Append(" FLAGDEL ");
+
+ strValues.Append("'" + pdecard.PASTEDETAILED_CARD_KEY + "',");
+ strValues.Append("'" + pdecard.FIS_KEY + "',");
+ strValues.Append("'" + pdecard.PASTE_CARD_KEY + "',");
+ strValues.Append("'" + pdecard.SANBARCODE + "',");
+ strValues.Append("'" + pdecard.SCANDATE + "',");
+ strValues.Append("'" + rowindex + "',");
+ strValues.Append("'0'");
+
+ strSql.Append(" INSERT INTO T_PP_PASCARDDETAILS ");
+ strSql.Append(" (" + strFields.ToString() + ")");
+ strSql.Append(" VALUES ");
+ strSql.Append(" (" + strValues.ToString() + ")");
+ return strSql.ToString();
+ #endregion
+ }
+
+
+
+
+
+
+
+ ///
+ /// 获取配置表中的规则类型值
+ ///
+ ///
+ ///
+ public DataTable GetRule(string cartype, string nf)
+ {
+ #region
+ try
+ {
+ //string nfcheck = string.Format(@"SELECT COUNT(*) FROM T_DCS_FISCHECKRULE WHERE CARTYPE='{0}' AND BINDINGTYPE = '{1}'", cartype, nf);
+ //int count = (int)SqlHelper.GetSingle(nfcheck);
+
+ //if (count > 0)
+ //{
+ // string strSql = string.Format(@"SELECT BINDINGTYPE, BINDINGVALUE AS OTHERCODE FROM T_DCS_FISCHECKRULE WHERE CARTYPE='{0}' AND BINDINGTYPE <>'下护板'", cartype);
+
+ // return SqlHelper.QueryReturnDataTable(strSql.ToString());
+ //}
+ //return null;
+ DataTable dt = new DataTable();
+ List parameters = new List();
+ string strSql = string.Format(@"SELECT BINDINGTYPE, BINDINGVALUE AS OTHERCODE FROM T_DCS_FISCHECKRULE WHERE CARTYPE='{0}'", cartype);
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ dt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+
+ return dt;
+
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ #endregion
+ }
+
+
+
+ ///
+ /// 根据条码标识查询零件信息
+ ///
+ ///
+ ///
+ public DataTable GetSparepartsinfo(string strbarcode)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ List parameters = new List();
+ strSql.Append(@"SELECT CUSTOMERSPAREPARTS,BARCODEIDENTIFICATION,VEHICLETYPE,CODENAME FROM T_DAS_SPAREPARTS_INFO ,T_QM_CODE ");
+ strSql.Append(@"WHERE T_DAS_SPAREPARTS_INFO.VEHICLETYPE= T_QM_CODE.CODENUM AND T_QM_CODE.CODE='101' ");
+ strSql.Append(string.Format(" AND T_DAS_SPAREPARTS_INFO.FLAGDEL='0' AND BARCODEIDENTIFICATION='{0}' ", strbarcode));
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //dt = session.GetTable(strSql.ToString(), parameters.ToArray());
+ return session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ #endregion
+ }
+
+
+
+
+
+
+ ///
+ /// 实现校准功能
+ ///
+ ///
+ public void UpdateFisOrder(string strvwseq, string strCP5A, string workcenter)
+ {
+ #region
+
+ StringBuilder strSql = new StringBuilder();
+ StringBuilder strSql2 = new StringBuilder();
+
+ //增加更新数据的条件: LEFT(VWSEQ,2)='{0}' AND ,需按单线或混线更新数据。MODIFIED BY SUUN GQ ON 20130330.
+ // StringBuilder deleteSql = new StringBuilder();
+
+ // // strSql.Append(string.Format(@"UPDATE T_PP_FISORDERSENDDETAIL SET SCANSTATE=2 WHERE LEFT(VWSEQ,2)='{0}' AND CP5A <= '{1}' AND SCANSTATE=0 AND FLAGDEL='0'", strvwseq.Substring(0, 2), strCP5A));
+ // strSql.Append(string.Format(@"update T_PP_FISORDERSENDDETAIL set STATE='2' where FIS_PID in (
+ // select PID from T_PP_FISORDER where LEFT(VWSEQ,2)='{0}' AND CP5A <= '{1}' AND SCANSTATE=0 AND FLAGDEL='0' )", strvwseq.Substring(0, 2), strCP5A));
+
+ // strSql2.Append(string.Format(@" UPDATE dbo.T_PP_FISORDER
+ // SET SCANSTATE=(SELECT MIN(STATE) AS STATE FROM dbo.T_PP_FISORDERSENDDETAIL WHERE FIS_pid in (SELECT pid from T_PP_FISORDER WHERE LEFT(VWSEQ,2)='{0}' AND CP5A <= '{1}' AND SCANSTATE=0 AND FLAGDEL='0' ) )
+ // WHERE LEFT(VWSEQ,2)='{0}' AND CP5A <= '{1}' AND SCANSTATE=0 AND FLAGDEL='0' ", strvwseq.Substring(0, 2), strCP5A));
+
+ //deleteSql.Append(string.Format(@"delete from T_PP_FISORDER WHERE LEFT(VWSEQ,2)='{0}' AND CP5A <= '{1}' AND SCANSTATE=0 AND FLAGDEL='0'", strvwseq.Substring(0, 2), strCP5A));
+
+ strSql.AppendLine("UPDATE T_PP_FISORDERSENDDETAIL ");
+ strSql.AppendLine("SET STATE=3 ");
+ strSql.AppendLine("WHERE FIS_PID IN(SELECT F.PID ");
+ strSql.AppendLine(" FROM T_PP_FISORDER AS F ");
+ strSql.AppendLine(" LEFT JOIN T_PP_FISORDERSENDDETAIL AS D ");
+ strSql.AppendLine(" ON D.FIS_PID=F.PID ");
+ strSql.AppendFormat(" WHERE F.CP5A<='{0}'", strCP5A);
+ strSql.AppendFormat(" AND D.WORKCENTER_CODE='{0}'", workcenter);
+ strSql.AppendLine(" AND F.SCANSTATE='0') ");
+
+ strSql2.AppendLine("UPDATE T_PP_FISORDER ");
+ strSql2.AppendLine("SET SCANSTATE=3 ");
+ strSql2.AppendLine("WHERE PID IN(SELECT F.PID");
+ strSql2.AppendLine(" FROM T_PP_FISORDER AS F");
+ strSql2.AppendLine(" LEFT JOIN T_PP_FISORDERSENDDETAIL AS D");
+ strSql2.AppendLine(" ON D.FIS_PID=F.PID ");
+ strSql2.AppendFormat(" WHERE F.CP5A<='{0}'", strCP5A);
+ strSql2.AppendFormat(" AND D.WORKCENTER_CODE='{0}'", workcenter);
+ strSql2.AppendLine(" AND F.SCANSTATE='0')");
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ session.ExecuteSql(strSql.ToString());
+ session.ExecuteSql(strSql2.ToString());
+ //session.ExecuteSql(deleteSql.ToString());
+ }
+ //SqlHelper.ExecuteSqlTran(sqlList);
+ #endregion
+ }
+
+
+ ///
+ /// 更新FIS队列表。
+ ///
+ ///
+ private string updateFisOrder(string pfiskey,string PRODUCTCODE)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+ strSql.Append(string.Format($" UPDATE T_PP_TJFY_WORKORDER SET STATE =2,PRODUCTCODE = '{PRODUCTCODE}' WHERE PID= '{pfiskey}' "));
+
+ return strSql.ToString();
+ #endregion
+ }
+
+ private string updateProduct(string product_pid)
+ {
+ #region
+ StringBuilder strSql = new StringBuilder();
+
+
+ strSql.Append(string.Format(@" UPDATE t_aw_product
+ SET OUTFLAG='1'
+ WHERE PID='{0}' ", product_pid));
+
+ return strSql.ToString();
+ #endregion
+ }
+
+ private string updateProduct(string product_pid, string vin, string kin, string seq)
+ {
+ #region
+
+ StringBuilder strSql = new StringBuilder();
+ string vin_rev = "";
+ if (!string.IsNullOrWhiteSpace(vin))
+ {
+ vin_rev = new string(vin.Reverse().ToArray());
+ }
+
+ strSql.Append(string.Format(@" UPDATE t_aw_product
+ SET OUTFLAG='1',VIN='{1}',VIN_REV='{4}',KIN='{2}',VWSEQ='{3}'
+ WHERE PID='{0}' ", product_pid, vin, kin, seq, vin_rev));
+
+ return strSql.ToString();
+
+ #endregion
+ }
+
+
+ ///
+ /// 删除FIS发运表
+ ///
+ ///
+ ///
+ private string DeleteSPFisOrder(string pfiskey)
+ {
+ #region
+
+ StringBuilder strSql = new StringBuilder();
+ strSql.Append(string.Format(" delete from T_PP_FISORDER WHERE PID= '{0}' AND FLAGDEL='0' ", pfiskey));
+ return strSql.ToString();
+ #endregion
+ }
+
+
+ public string UpdateScan(string scancode)
+ {
+ #region
+ try
+ {
+ string strSql = string.Format(@"UPDATE T_AW_PRODUCT SET SENDED='1' WHERE SCANCODE='{0}'", scancode);
+
+ return strSql;
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ #endregion
+ }
+ ///
+ /// 添加贴车单
+ ///
+ ///
+ ///
+ ///
+ public int AddPasteCard(EPasteCard ppastecard)
+ {
+ #region
+ try
+ {
+ #region 判断是否出现底盘号情况
+
+ if (ppastecard.DetailsCardlist.Count == 1)
+ {
+ ppastecard.VINLACK = "0";
+ }
+ else
+ {
+ int firstVin = Convert.ToInt32(ppastecard.DetailsCardlist[0].VIN.Substring(10, 7));
+ int lastVin = Convert.ToInt32(ppastecard.DetailsCardlist[ppastecard.DetailsCardlist.Count - 1].VIN.Substring(10, 7));
+ if ((lastVin - firstVin) == ppastecard.DetailsCardlist.Count - 1)
+ {
+ ppastecard.VINLACK = "0";
+ }
+ else
+ {
+ ppastecard.VINLACK = "1";
+ }
+ }
+
+ #endregion
+
+
+ DataTable tbl = GetPastecardDeatis();
+ int strindex = 0;
+ int reindex = 0;
+ if (tbl != null)
+ {
+ strindex = int.Parse(tbl.Rows[0][0].ToString());
+ reindex = strindex;
+ }
+ ArrayList sqllist = new ArrayList();
+ StringBuilder strSql = new StringBuilder();
+ StringBuilder strFields = new StringBuilder();
+ StringBuilder strValues = new StringBuilder();
+ strFields.Append(" PID ,");
+ strFields.Append(" PASTECARDNO ,");
+ strFields.Append(" PASTECARDDATE, ");
+ strFields.Append(" PASTECARDDATE2, ");
+ strFields.Append(" OPERATOR, ");
+ strFields.Append(" PRODUCTIONNAME, ");
+ strFields.Append(" CREATETIME, ");
+ strFields.Append(" VINLACK, ");
+ strFields.Append(" FLAGDEL, ");
+ strFields.Append(" PLANTNAME ");
+
+ //strValues.Append(" '" + pLog.LOGDATE + "',");
+ strValues.Append("'" + ppastecard.PASTE_CARD_KEY + "',");
+ strValues.Append("'" + ppastecard.PASTECARDNO + "',");
+ strValues.Append("'" + ppastecard.PASTECARDDATE + "',");
+ strValues.Append("'" + ppastecard.PASTECARDDATE2 + "',");
+ strValues.Append("'" + ppastecard.OPERATOR + "',");
+ strValues.Append("'" + ppastecard.PRODUCTIONNAME + "',");
+ strValues.Append("'" + ppastecard.CREATETIME + "',");
+ strValues.Append("'" + ppastecard.VINLACK + "',");
+ strValues.Append("'0',");
+ //strValues.Append("'" + ppastecard.PLANTNAME + "'");
+
+ strSql.Append(" INSERT INTO T_PP_PASTECARD ");
+ strSql.Append(" (" + strFields.ToString() + ")");
+ strSql.Append(" VALUES ");
+ strSql.Append(" (" + strValues.ToString() + ")");
+
+
+ StringBuilder strSqllog = new StringBuilder();
+ StringBuilder strFieldslog = new StringBuilder();
+ StringBuilder strValueslog = new StringBuilder();
+ strFieldslog.Append(" TID ,");
+ strFieldslog.Append(" FCT_OPERTYPE ,");
+ strFieldslog.Append(" FCT_NO, ");
+ strFieldslog.Append(" FCT_REASON, ");
+ strFieldslog.Append(" FCT_DATE, ");
+ strFieldslog.Append(" FCT_OPER, ");
+ strFieldslog.Append(" FLAGDEL ");
+
+ //strValues.Append(" '" + pLog.LOGDATE + "',");
+ strValueslog.Append("'" + ppastecard.FailLog.TID + "',");
+ strValueslog.Append("'" + ppastecard.FailLog.FCT_OPERTYPE + "',");
+ strValueslog.Append("'" + ppastecard.FailLog.FCT_NO + "',");
+ strValueslog.Append("'" + ppastecard.FailLog.FCT_REASON + "',");
+ strValueslog.Append("'" + ppastecard.FailLog.FCT_DATE + "',");
+ strValueslog.Append("'" + ppastecard.FailLog.FCT_OPER + "',");
+ strValueslog.Append("'0'");
+
+ strSqllog.Append(" INSERT INTO T_DAS_FAILCODE ");
+ strSqllog.Append(" (" + strFieldslog.ToString() + ")");
+ strSqllog.Append(" VALUES ");
+ strSqllog.Append(" (" + strValueslog.ToString() + ")");
+
+ sqllist.Add(strSqllog.ToString());
+ sqllist.Add(strSql.ToString());
+ foreach (EPasteDetailsCard decard in ppastecard.DetailsCardlist)
+ {
+ int rowindex = strindex;
+ string strinsertsql = Insertdetailcard(rowindex, decard);
+ string updatesql = updateFisOrder(decard.FIS_KEY, decard.SANBARCODE);
+ string deleteSql = DeleteSPFisOrder(decard.FIS_KEY);
+
+
+ sqllist.Add(strinsertsql);
+
+ //更新FIS原表T_PM_FISORDER_YB
+ sqllist.Add(updatesql);
+
+ //删除FIS发货表T_PP_FISORDER(错误)(瞎说)
+ //DCS系统存储FIS要货信息时存了两张表,MES只存了一张
+ //sqllist.Add(deleteSql);
+
+ //2016-9-13 闫永刚更新
+ if (decard.SANBARCODE.Substring(0, 2) == "xxxxx")
+ {
+ string updateScanBarCodesql = UpdateScan(decard.SANBARCODE);
+ sqllist.Add(updateScanBarCodesql);
+ }
+
+
+ strindex++;
+ }
+
+ //2016-10-31 闫永刚
+ //更新发货单记录表
+ sqllist.Add(string.Format("update T_DAS_PASTE_CARDINDEX set PASTECARDNO='{0}',PASTECARDDATE='{1}' where PLANTNAME='{2}'", ppastecard.PASTECARDNO, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ""));
+
+ for (var i = 0; i < sqllist.Count; i++)
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ session.ExecuteSql(sqllist[i].ToString());
+ }
+
+ }
+ // SqlHelper.ExecuteSqlTran(sqllist);
+ return reindex;
+ }
+ catch (System.Exception ex)
+ {
+ throw ex;
+ }
+ #endregion
+ }
+
+
+
+ ///
+ /// 添加贴车单
+ ///
+ ///
+ ///
+ ///
+ public int AddNewPasteCard(EPasteCard ppastecard,int Count)
+ {
+ try
+ {
+ #region 获取贴车单序列号
+
+ string indexNumber = string.Format("select PASTECARDNO from T_DAS_PASTE_CARDINDEX where PLANTCODE='{0}'", ppastecard.PLANTNAME);
+
+ string pastCardNo = "";
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ pastCardNo = Convert.ToString(session.ExecuteSqlScalar(indexNumber, new List().ToArray()));
+ }
+
+ //if (pastCardNo.Substring(ppastecard.PLANTNAME.Length, 8)
+ // == System.DateTime.Now.ToString("yyyyMMdd"))
+ //{
+ // int numberIndex = Convert.ToInt32(pastCardNo.Substring(ppastecard.PLANTNAME.Length + 8, 4));
+ // pastCardNo = pastCardNo.Substring(0, ppastecard.PLANTNAME.Length + 8) + (numberIndex + 1).ToString().PadLeft(4, '0');
+ //}
+ //else
+ //{
+ // pastCardNo = pastCardNo.Substring(0, ppastecard.PLANTNAME.Length) + System.DateTime.Now.ToString("yyyyMMdd") + "0001";
+ //}
+
+ #endregion
+
+ if (ppastecard.DetailsCardlist.Count == 1)
+ {
+ ppastecard.VINLACK = "0";
+ }
+ else
+ {
+ if (ppastecard.DetailsCardlist.Count == Count)
+ {
+ ppastecard.VINLACK = "0";
+ }
+ else
+ {
+ ppastecard.VINLACK = "1";
+ }
+ }
+
+ DataTable tbl = GetPastecardDeatis();
+ int strindex = 0;
+ int reindex = 0;
+ if (tbl != null)
+ {
+ strindex = int.Parse(tbl.Rows[0][0].ToString());
+ reindex = strindex;
+ }
+
+
+
+ ArrayList sqllist = new ArrayList();
+ StringBuilder strSql = new StringBuilder();
+ StringBuilder strFields = new StringBuilder();
+ StringBuilder strValues = new StringBuilder();
+ strFields.Append(" PID ,");
+ strFields.Append(" PASTECARDNO ,");
+ strFields.Append(" PASTECARDDATE, ");
+ strFields.Append(" PASTECARDDATE2, ");
+ strFields.Append(" OPERATOR, ");
+ strFields.Append(" PRODUCTIONNAME, ");
+ strFields.Append(" CREATETIME, ");
+ strFields.Append(" VINLACK, ");
+ strFields.Append(" FLAGDEL, ");
+ strFields.Append(" PLANTNAME ");
+
+
+ strValues.Append("'" + ppastecard.PASTE_CARD_KEY + "',");
+ strValues.Append("'" + ppastecard.PASTECARDNO + "',");
+ strValues.Append("'" + ppastecard.PASTECARDDATE + "',");
+ strValues.Append("'" + ppastecard.PASTECARDDATE2 + "',");
+ strValues.Append("'" + ppastecard.OPERATOR + "',");
+ strValues.Append("'" + ppastecard.PRODUCTIONNAME + "',");
+ ppastecard.CREATETIME = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ strValues.Append("'" + ppastecard.CREATETIME + "',");
+ strValues.Append("'" + ppastecard.VINLACK + "',");
+ strValues.Append($"'0','{ppastecard.PLANTNAME}'");
+
+ strSql.Append(" INSERT INTO T_PP_PASTECARD ");
+ strSql.Append(" (" + strFields.ToString() + ")");
+ strSql.Append(" VALUES ");
+ strSql.Append(" (" + strValues.ToString() + ")");
+
+ sqllist.Add(strSql.ToString());
+
+ foreach (EPasteDetailsCard decard in ppastecard.DetailsCardlist)
+ {
+ int rowindex = strindex;
+ string strinsertsql = Insertdetailcard(rowindex, decard);
+ //string updatesql = UpdateFISORDERSENDDETAIL(decard.FIS_KEY);
+ string updatesql2 = updateFisOrder(decard.FIS_KEY, decard.SANBARCODE);
+ //string updatesql3 = updateProduct(decard.PRODUCT_PID, decard.VIN, decard.KIN, decard.VWSEQ);
+ sqllist.Add(strinsertsql.ToString());
+ //sqllist.Add(updatesql.ToString());
+ sqllist.Add(updatesql2.ToString());
+ //sqllist.Add(updatesql3.ToString());
+ strindex++;
+ }
+
+ //2016-10-31 闫永刚
+ //更新发货单记录表
+ sqllist.Add(string.Format("update T_DAS_PASTE_CARDINDEX set PASTECARDNO='{0}',PASTECARDDATE='{1}' where PLANTCODE='{2}'", pastCardNo, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ppastecard.PLANTNAME));
+
+
+ for (var i = 0; i < sqllist.Count; i++)
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ session.ExecuteSql(sqllist[i].ToString());
+ }
+
+ }
+ return reindex;
+
+ }
+ catch (System.Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+
+
+
+
+ ///
+ /// 更新贴车单信息
+ ///
+ ///
+ ///
+ public int UpdatePastecardIndex(string UpdatePastecardIndex, System.DateTime dt, string Plantname)
+ {
+ #region
+ try
+ {
+ StringBuilder strSql = new StringBuilder();
+ strSql.AppendFormat(" update T_DAS_PASTE_CARDINDEX set PASTECARDNO='{0}',PASTECARDDATE='{1}' where plantname='{2}'", UpdatePastecardIndex, dt.ToString("yyyy-MM-dd HH:mm:ss"), Plantname);
+ //SqlHelper.ExecuteSql(strSql.ToString());
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ return session.ExecuteSql(strSql.ToString());
+ }
+ }
+ catch (System.Exception ex)
+ {
+ throw ex;
+ }
+ #endregion
+ }
+
+
+
+
+ ///
+ /// 判断条码是否重复
+ ///
+ ///
+ ///
+ public DataTable ExistBarcode(int barcodetime, string pbarcode)
+ {
+ StringBuilder strSql = new StringBuilder();
+ strSql.Append($"SELECT PRODUCTCODE FROM T_PP_TJFY_WORKORDER WHERE PRODUCTCODE = '{pbarcode}'");
+ List parameters = new List();
+ //DateTime dtime = DateTime.Now;
+ //string bdatetime = dtime.AddDays(-barcodetime).ToShortDateString();
+ //strSql.Append(string.Format(" WHERE SANBARCODE='{2}' AND SCANDATE>='{0} 00:00:00' and SCANDATE<='{1} 23:59:59' AND FLAGDEL='0' ", bdatetime, DateTime.Now.ToShortDateString(), pbarcode));
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ return session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ }
+
+ ///
+ /// 打印条码
+ ///
+ ///
+ ///
+ public DataTable WriteFile(string sql)
+ {
+ List parameters = new List();
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ return session.GetTable(sql.ToString(), parameters.ToArray());
+ }
+
+ }
+
+
+ ///
+ /// 更新贴车单补打印时间
+ ///
+ ///
+ public void UpdataBarcodeDate(string pastecardno)
+ {
+ StringBuilder strSql = new StringBuilder();
+ strSql.Append(string.Format("UPDATE T_PP_PASTECARD SET PASTECARDDATE2='{0}' WHERE PASTECARDNO='{1}'", DateTime.Now.ToString(), pastecardno));
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ session.ExecuteSql(strSql.ToString());
+ }
+
+
+
+ }
+
+
+ public void InsertLog(EFailLog plog)
+ {
+ StringBuilder strSqllog = new StringBuilder();
+ StringBuilder strFieldslog = new StringBuilder();
+ StringBuilder strValueslog = new StringBuilder();
+ strFieldslog.Append(" TID ,");
+ strFieldslog.Append(" FCT_OPERTYPE ,");
+ strFieldslog.Append(" FCT_NO, ");
+ strFieldslog.Append(" FCT_REASON, ");
+ strFieldslog.Append(" FCT_DATE, ");
+ strFieldslog.Append(" FCT_OPER, ");
+ strFieldslog.Append(" FLAGDEL ");
+
+ //strValues.Append(" '" + pLog.LOGDATE + "',");
+ strValueslog.Append("'" + plog.TID + "',");
+ strValueslog.Append("'" + plog.FCT_OPERTYPE + "',");
+ strValueslog.Append("'" + plog.FCT_NO + "',");
+ strValueslog.Append("'" + plog.FCT_REASON + "',");
+ strValueslog.Append("'" + plog.FCT_DATE + "',");
+ strValueslog.Append("'" + plog.FCT_OPER + "',");
+ strValueslog.Append("'0'");
+
+ strSqllog.Append(" INSERT INTO T_DAS_FAILCODE ");
+ strSqllog.Append(" (" + strFieldslog.ToString() + ")");
+ strSqllog.Append(" VALUES ");
+ strSqllog.Append(" (" + strValueslog.ToString() + ")");
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ session.ExecuteSql(strSqllog.ToString());
+
+ }
+
+ }
+
+
+
+
+
+ ///
+ /// 获取扫取条形码是否存在
+ ///
+ ///
+ ///
+ public int GetExitsCode(string code)
+ {
+ #region
+ try
+ {
+ object result;
+ List parameters = new List();
+ string strSql = string.Format(@"SELECT count(1) as NUM FROM dbo.T_AW_PRODUCT where PRODUCTCODE='{0}'", code);
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ result = session.ExecuteSqlScalar(strSql.ToString(), parameters.ToArray());
+ }
+ return Convert.ToInt32(result);
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ #endregion
+ }
+
+ ///
+ /// 查询是否为成品
+ ///
+ ///
+ ///
+ public object GetExitsStatus(string code)
+ {
+ #region
+ try
+ {
+ object result;
+ List parameters = new List();
+ string strSql = string.Format(@"SELECT Status FROM dbo.T_AW_PRODUCT where PRODUCTCODE='{0}'", code);
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ result = session.ExecuteSqlScalar(strSql.ToString(), parameters.ToArray());
+ }
+ return result;
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ #endregion
+ }
+
+
+ ///
+ /// 获取工作中心
+ ///
+ ///
+ ///
+ public DataTable GetWORKCENTERCODE()
+ {
+
+ #region
+ try
+ {
+ DataTable result;
+ List parameters = new List();
+ string strSql = "SELECT [WORKCENTER_CODE],[WORKCENTER_NAME] FROM [T_MD_WORKCENTER] WHERE CENTER_TYPE='1'";
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ result = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ return result;
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ #endregion
+ }
+
+
+ /////
+ ///// 更新index表
+ /////
+ /////
+ /////
+ //public DataTable GetWORKCENTERCODE()
+ //{
+
+ // #region
+ // try
+ // {
+ // DataTable result;
+ // List parameters = new List();
+ // string strSql = "select WORKCENTER_CODE from dbo.T_PP_FISORDERSENDDETAIL group by WORKCENTER_CODE";
+ // using (IDataSession session = AppDataFactory.CreateMainSession())
+ // {
+ // result = session.GetTable(strSql.ToString(), parameters.ToArray());
+ // }
+ // return result;
+ // }
+ // catch (Exception ex)
+ // {
+
+ // throw ex;
+ // }
+ // #endregion
+ //}
+
+ ///
+ /// 获取 DASPASTECARDINDEX表数据
+ ///
+ ///
+ ///
+ public DataTable GetDaspssteCarIndexByPlanName(string PlanTName)
+ {
+
+ #region
+ try
+ {
+ DataTable result;
+ List parameters = new List();
+ string strSql = "select PASTECARDNO,PASTECARDDATE,PLANTCODE, PLANTNAME from T_DAS_PASTE_CARDINDEX where PLANTCODE='" + PlanTName + "'";
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ result = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ return result;
+ }
+
+
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ #endregion
+ }
+
+
+
+
+ ///
+ /// 插入 DASPASTECARDINDEX表数据
+ ///
+ ///
+ ///
+ public int InsertDaspssteCarIndexByPlanName(EPasteCard ppastecard)
+ {
+ try
+ {
+ int result;
+ List parameters = new List();
+
+ StringBuilder strSql = new StringBuilder();
+ StringBuilder strFields = new StringBuilder();
+ StringBuilder strValues = new StringBuilder();
+ strFields.Append(" PID ,");
+ strFields.Append(" PASTECARDNO ,");
+ strFields.Append(" PASTECARDDATE, ");
+ strFields.Append(" PLANTCODE, ");
+ strFields.Append(" PLANTNAME ");
+
+ strValues.Append("'" + ppastecard.PASTE_CARD_KEY + "',");
+ strValues.Append("'" + ppastecard.PASTECARDNO + "',");
+ strValues.Append("'" + ppastecard.PASTECARDDATE + "',");
+
+ strValues.Append("'" + ppastecard.PRODUCTIONNAME + "',");
+ //strValues.Append("'" + ppastecard.PLANTNAME + "'");
+
+ strSql.Append(" INSERT INTO T_DAS_PASTE_CARDINDEX ");
+ strSql.Append(" (" + strFields.ToString() + ")");
+ strSql.Append(" VALUES ");
+ strSql.Append(" (" + strValues.ToString() + ")");
+
+
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ result = session.ExecuteSql(strSql.ToString(), parameters.ToArray());
+ }
+
+ return result;
+
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+
+ }
+
+
+
+
+ public DataTable GetLastPastCard()
+ {
+ try
+ {
+ #region
+ DataTable result;
+ StringBuilder strSql = new StringBuilder();
+ List parameters = new List();
+ strSql.Append(@"SELECT [TIMEOUT_KEY] ,[TIMEOUT_TYPE],[TIMEOUT_VALUE],[FLAGDEL] FROM [T_DCS_TIMEOUT_SET] ");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ result = session.GetTable(strSql.ToString(), parameters.ToArray());
+ }
+ return result;
+ #endregion
+ }
+ catch (System.Exception ex)
+ {
+ throw ex;
+ }
+ }
+ }
+}
diff --git a/APPQ5/QMAPP.FJC.DAL/TianJin/TJOrderPlanDAL.cs b/APPQ5/QMAPP.FJC.DAL/TianJin/TJOrderPlanDAL.cs
new file mode 100644
index 0000000..ae29b64
--- /dev/null
+++ b/APPQ5/QMAPP.FJC.DAL/TianJin/TJOrderPlanDAL.cs
@@ -0,0 +1,989 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using QMAPP.FJC.Entity.FIS;
+using QMFrameWork.Data;
+using QMFrameWork.Log;
+using System.Data;
+using QMAPP.Entity;
+using QMAPP.DAL;
+using QMAPP.FJC.Entity.TianJin;
+//using QMAPP.FJC.Entity.FileCopy.FIS;
+
+namespace QMAPP.FJC.DAL.TianJin
+{
+ ///
+ /// 注塑计划管理
+ ///
+ ///
+ ///
+ public class TJOrderPlanDAL : BaseDAL
+ {
+ #region 获取信息
+ ///
+ /// 获取信息
+ ///
+ /// 条件
+ /// 信息
+ public TJOrderPlan Get(TJOrderPlan model)
+ {
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ sql = "SELECT * FROM T_PP_TJFY_ORDERPLAN WHERE 1=1 ";
+ if (string.IsNullOrEmpty(model.PID) == false)
+ {
+ sql += " AND PID = @PID";
+ parameters.Add(new DataParameter("PID", model.PID));
+ }
+ if (string.IsNullOrEmpty(model.PLAN_NO) == false)
+ {
+ sql += " AND PLAN_NO = @PLAN_NO";
+ parameters.Add(new DataParameter("PLAN_NO", model.PLAN_NO));
+ }
+ //if (string.IsNullOrEmpty(model.MACHINECODDE) == false)
+ //{
+ // sql += " AND MACHINECODDE = @MACHINECODDE";
+ // parameters.Add(new DataParameter("MACHINECODDE", model.MACHINECODDE));
+ //}
+ if (string.IsNullOrEmpty(model.MATERIAL_CODE) == false)
+ {
+ sql += " AND MATERIAL_CODE = @MATERIAL_CODE";
+ parameters.Add(new DataParameter("MATERIAL_CODE", model.MATERIAL_CODE));
+ }
+ if (string.IsNullOrEmpty(model.PLAN_STATES) == false)
+ {
+ sql += " AND PLAN_STATE IN ('" + model.PLAN_STATES.Replace(",", "','") + "')";
+
+ }
+ if (BaseSession != null)
+ {
+ //获取信息
+ model = BaseSession.Get(sql, parameters.ToArray());
+ }
+ else
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //获取信息
+ model = session.Get(sql, parameters.ToArray());
+ }
+ }
+ return model;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息数据层-获取信息"
+ });
+ throw;
+ }
+ }
+
+ public TJOrderPlan GetOne(TJOrderPlan model)
+ {
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ sql = "SELECT * FROM T_PP_ORDERPLAN WHERE PLAN_STATE IN ('1','2') ";
+ if (string.IsNullOrEmpty(model.PID) == false)
+ {
+ sql += " AND PID = @PID";
+ parameters.Add(new DataParameter("PID", model.PID));
+ }
+ if (string.IsNullOrEmpty(model.PLAN_NO) == false)
+ {
+ sql += " AND PLAN_NO = @PLAN_NO";
+ parameters.Add(new DataParameter("PLAN_NO", model.PLAN_NO));
+ }
+ //if (string.IsNullOrEmpty(model.MACHINECODDE) == false)
+ //{
+ // sql += " AND MACHINECODDE = @MACHINECODDE";
+ // parameters.Add(new DataParameter("MACHINECODDE", model.MACHINECODDE));
+ //}
+ if (string.IsNullOrEmpty(model.MATERIAL_CODE) == false)
+ {
+ sql += " AND MATERIAL_CODE = @MATERIAL_CODE";
+ parameters.Add(new DataParameter("MATERIAL_CODE", model.MATERIAL_CODE));
+ }
+
+ sql += " order by CREATEDATE desc ";
+
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //获取信息
+ model = session.Get(sql, parameters.ToArray());
+ }
+ return model;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息数据层-获取信息"
+ });
+ throw;
+ }
+ }
+
+ public TJOrderPlan GetInfo(TJOrderPlan model)
+ {
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ sql = "SELECT * FROM T_PP_ORDERPLAN WHERE PLAN_NO = @PLAN_NO";
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //获取信息
+ parameters.Add(new DataParameter { ParameterName = "PLAN_NO", DataType = DbType.String, Value = model.PLAN_NO });
+ model = session.Get(sql, parameters.ToArray());
+ }
+ return model;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "信息数据层-获取信息"
+ });
+ throw;
+ }
+ }
+ #endregion
+
+ #region 获取列表
+ ///
+ /// 获取列表
+ ///
+ /// 条件
+ /// 数据页
+ /// 数据页
+ public DataPage GetList(TJOrderPlan condition, DataPage page)
+ {
+ string sql = null;
+ List parameters = new List();
+ try
+ {
+ sql = this.GetQuerySql(condition, ref parameters);
+ //分页关键字段及排序
+ page.KeyName = "PID";
+ if (string.IsNullOrEmpty(page.SortExpression))
+ {
+ page.SortExpression = "CREATEDATE DESC";
+ }
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ page = session.GetDataPage(sql, parameters.ToArray(), page);
+ }
+ return page;
+ }
+ catch (Exception ex)
+ {
+ LogManager.LogHelper.Error(new LogInfo()
+ {
+ ErrorInfo = ex,
+ Tag = ex.StackTrace,
+ Info = "注塑信息数据层-获取列表"
+ });
+ throw;
+ }
+ }
+ #endregion
+
+ #region 获取查询语句
+ ///
+ /// 获取查询语句
+ ///
+ /// 查询条件
+ /// 参数
+ /// 查询语句
+ private string GetQuerySql(TJOrderPlan condition, ref List parameters)
+ {
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder whereBuilder = new StringBuilder();
+ try
+ {
+ //构成查询语句
+ sqlBuilder.AppendLine(" SELECT DISTINCT O.PID ");
+ sqlBuilder.AppendLine(" ,O.FACTORY_CODE ");
+ sqlBuilder.AppendLine(" ,F.FACTORY_NAME ");
+ sqlBuilder.AppendLine(" ,O.PLAN_NO ");
+ sqlBuilder.AppendLine(" ,O.PLAN_SEQ ");
+ sqlBuilder.AppendLine(" ,O.PLAN_STATE ");
+ sqlBuilder.AppendLine(" ,O.MATERIAL_CODE ");
+ sqlBuilder.AppendLine(" ,M.MATERIAL_NAME ");
+ sqlBuilder.AppendLine(" ,O.MACHINECODDE ");
+ sqlBuilder.AppendLine(" ,O.PBOM_CODE ");
+ sqlBuilder.AppendLine(" ,O.ROUTE_CODE ");
+ sqlBuilder.AppendLine(" ,O.REMARK ");
+ sqlBuilder.AppendLine(" ,O.QTY ");
+ sqlBuilder.AppendLine(" ,O.COMPLETE_QTY ");
+ sqlBuilder.AppendLine(" ,CONVERT(VARCHAR(19),O.PLAN_DATE,120) AS PLAN_DATE ");
+ sqlBuilder.AppendLine(" ,O.SHIFT_CODE ");
+ sqlBuilder.AppendLine(" ,P.PRODUCESHIFTNAME AS SHIFT_NAME ");
+ sqlBuilder.AppendLine(" ,O.PLANSOURCE ");
+ sqlBuilder.AppendLine(" ,O.PRODUCEREQUIRE ");
+ //sqlBuilder.AppendLine(" ,WC.WORKCENTER_CODE ");
+ sqlBuilder.AppendLine(" ,O.CREATEUSER ");
+ sqlBuilder.AppendLine(" ,O.CREATEDATE ");
+ sqlBuilder.AppendLine(" ,O.UPDATEUSER ");
+ sqlBuilder.AppendLine(" ,O.UPDATEDATE ");
+ sqlBuilder.AppendLine(" ,O.IGNORE_FISBREAK ");
+ sqlBuilder.AppendLine(" ,O.FIS_ASMSETCODE ");
+ sqlBuilder.AppendLine(" ,O.STARTTIME AS STARTTIMEVIEW ");
+ sqlBuilder.AppendLine(" ,O.ENDTIME AS ENDTIMEVIEW");
+ sqlBuilder.AppendLine(" ,C.USERNAME AS CREATEUSERNAME ");
+ sqlBuilder.AppendLine(" ,U.USERNAME AS UPDATEUSERNAME ");
+ sqlBuilder.AppendLine(" FROM T_PP_ORDERPLAN O ");
+ //注塑所需要的表T_PP_WORKORDER
+ sqlBuilder.AppendLine(" LEFT JOIN T_BD_PRODUCESHIFT P ON P.PRODUCESHIFTTCODE=O.SHIFT_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_FACTORY F ON F.FACTORY_CODE=O.FACTORY_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_PP_WORKORDER W ON W.ORDERPLANID=O.PID ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_MD_MATERIAL M ON M.MATERIAL_CODE=O.MATERIAL_CODE ");
+ //sqlBuilder.AppendLine(" LEFT JOIN T_MD_WORKCELL WC ON WC.WORKCELL_CODE=PRW.WORKCELL_CODE ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER C ON C.USERID=O.CREATEUSER ");
+ sqlBuilder.AppendLine(" LEFT JOIN T_QM_USER U ON U.USERID=O.UPDATEUSER ");
+
+ //whereBuilder.AppendFormat(" AND O.WORKCENTER_CODE in (select distinct WORKCENTER from T_PP_ORDERINDENTITY where ORDER_TYPE='{0}')", condition.ORDER_TYPE);
+ //查询条件
+ //if (string.IsNullOrEmpty(condition.FACTORY_CODE) == false)
+ //{
+ // whereBuilder.Append(" AND O.FACTORY_CODE = @FACTORY_CODE ");
+ // parameters.Add(new DataParameter { ParameterName = "FACTORY_CODE", DataType = DbType.String, Value = condition.FACTORY_CODE });
+ //}
+ if (string.IsNullOrEmpty(condition.PLAN_NO) == false)
+ {
+ whereBuilder.Append(" AND O.PLAN_NO = @PLAN_NO ");
+ parameters.Add(new DataParameter { ParameterName = "PLAN_NO", DataType = DbType.String, Value = condition.PLAN_NO });
+ }
+ //物料号
+ if (string.IsNullOrEmpty(condition.MATERIAL_CODE) == false)
+ {
+ whereBuilder.Append(" AND O.MATERIAL_CODE = @MATERIAL_CODE ");
+ parameters.Add(new DataParameter { ParameterName = "MATERIAL_CODE", DataType = DbType.String, Value = condition.MATERIAL_CODE });
+ }
+ //工艺路线
+ //if (string.IsNullOrEmpty(condition.ROUTE_CODE) == false)
+ //{
+ // whereBuilder.Append(" AND O.ROUTE_CODE = @ROUTE_CODE ");
+ // parameters.Add(new DataParameter { ParameterName = "ROUTE_CODE", DataType = DbType.String, Value = condition.ROUTE_CODE });
+ //}
+ //班次编码
+ //if (string.IsNullOrEmpty(condition.SHIFT_CODE) == false)
+ //{
+ // whereBuilder.Append(" AND O.SHIFT_CODE = @SHIFT_CODE ");
+ // parameters.Add(new DataParameter { ParameterName = "SHIFT_CODE", DataType = DbType.String, Value = condition.SHIFT_CODE });
+ //}
+ //设备
+ //if (string.IsNullOrEmpty(condition.MACHINECODDE) == false)
+ //{
+ // whereBuilder.Append(" AND O.MACHINECODDE = @MACHINECODDE ");
+ // parameters.Add(new DataParameter { ParameterName = "MACHINECODDE", DataType = DbType.String, Value = condition.MACHINECODDE });
+ //}
+ //计划时间
+ if (condition.PLANTIMESTART != DateTime.MinValue)
+ {
+ whereBuilder.Append(" AND O.PLAN_DATE >= @PLANTIMESTART");
+ parameters.Add(new DataParameter { ParameterName = "PLANTIMESTART", DataType = DbType.String, Value = condition.PLANTIMESTART });
+ }
+ if (condition.PLANTIMEEND != DateTime.MinValue)
+ {
+ whereBuilder.Append(" AND O.PLAN_DATE <= @PLANTIMEEND");
+ parameters.Add(new DataParameter { ParameterName = "PLANTIMEEND", DataType = DbType.String, Value = condition.PLANTIMEEND });
+ }
+
+
+ if (whereBuilder.Length > 0)
+ {
+ sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4));
+ }
+ return sqlBuilder.ToString();
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 信息是否重复
+ ///
+ /// 判断计划单号是否存在
+ ///
+ ///
+ /// true:已存在;fasel:不存在。
+ public int ExistsOrderPlan(TJOrderPlan model)
+ {
+ string PID = "";
+ int count = 0;
+ StringBuilder sqlBuilder = new StringBuilder();
+
+ try
+ {
+ if (string.IsNullOrEmpty(model.PID) == false)
+ {
+ PID = model.PID;
+ }
+ sqlBuilder.AppendLine("SELECT COUNT(*) FROM T_PP_ORDERPLAN ");
+ sqlBuilder.AppendLine(" WHERE PID <> @PID AND PLAN_NO=@PLAN_NO");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ count = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(),
+ new DataParameter("PID", PID),
+ new DataParameter { ParameterName = "PLAN_NO", Value = model.PLAN_NO }));
+ }
+
+ return count;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 插入信息
+ ///
+ /// 插入信息(单表)
+ ///
+ /// 信息
+ /// 插入行数
+ public int Insert(TJOrderPlan model)
+ {
+ int count = 0;
+ try
+ {
+ if (BaseSession != null)
+ {
+ //插入基本信息
+ count = BaseSession.Insert(model);
+ //InsertOrderPlanTrace(BaseSession, model, "新增");
+ }
+ else
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //插入基本信息
+ count = session.Insert(model);
+ //InsertOrderPlanTrace(session, model, "新增");
+ }
+ }
+ //using (IDataSession session = AppDataFactory.CreateMainSession())
+ //{
+ // //插入基本信息
+ // count = session.Insert(model);
+ //}
+ return count;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 更新信息
+ ///
+ /// 更新信息
+ ///
+ ///
+ /// 更新行数
+ public int Update(TJOrderPlan model)
+ {
+ int count = 0;
+ try
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ var sql = $"update T_PP_TJFY_ORDERPLAN set MATERIAL_CODE = '{model.MATERIAL_CODE}',QTY = '{model.QTY}',PLAN_SEQ = '{model.PLAN_SEQ}',PLAN_NO = '{model.PLAN_NO}',MATERIAL_NAME = '{model.MATERIAL_NAME}',PLAN_STATE = '{model.PLAN_STATE}' where PID = '{model.PID}';";
+ //更新基本信息
+ count = session.ExecuteSql(sql);
+ InsertOrderPlanTrace(session, model, "修改");
+ }
+ return count;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 删除
+ ///
+ /// 删除信息
+ ///
+ ///
+ /// 删除个数
+ //提交事务
+ public int Delete(TJOrderPlan model)
+ {
+ int count = 0;
+ try
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //删除基本信息
+ count = session.Delete(model);
+ //InsertOrderPlanTrace(session, model, "删除");
+ }
+ return count;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+ #endregion
+
+ #region 删除校验
+ ///
+ /// 删除校验
+ ///
+ ///
+ ///
+ public int DelCheck(TJOrderPlan model)
+ {
+ int num = 0;
+ int state;
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder sqlBuilder2 = new StringBuilder();
+
+ sqlBuilder.AppendLine(" SELECT COMPLETE_QTY ");
+ sqlBuilder.AppendLine(" FROM T_PP_ORDERPLAN ");
+ sqlBuilder.AppendLine(" WHERE PID = @PID ");
+ sqlBuilder2.AppendLine(" SELECT PLAN_STATE ");
+ sqlBuilder2.AppendLine(" FROM T_PP_ORDERPLAN ");
+ sqlBuilder2.AppendLine(" WHERE PID = @PID ");
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ num = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", model.PID)));
+ state = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder2.ToString(), new DataParameter("PID", model.PID)));
+ }
+ return num+state;
+
+ }
+ #endregion
+
+ #region 发布
+ ///
+ /// 发布信息
+ ///
+ ///
+ /// 发布个数
+ public int PutOut(TJOrderPlan model, DataTable workOrderDt)
+ {
+
+ BaseSession = AppDataFactory.CreateMainSession();
+ IDbConnection dbConn = DbManager.MainConnectionInfo.Connection;
+ IDbTransaction ids = dbConn.BeginTransaction();
+ try
+ {
+ if (workOrderDt.Rows != null)
+ {
+ BaseSession.DbHelper.BulkCopyData(workOrderDt, "T_PP_WORKORDER", dbConn, ids);
+ ids.Commit();
+ }
+ }
+ catch (Exception ex)
+ {
+ ids.Rollback();
+ throw ex;
+ }
+ int count = 0;
+ int count2 = 0;
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder sqlBuilder2 = new StringBuilder();
+ List parameters = new List();
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ sqlBuilder.AppendLine(" UPDATE T_PP_ORDERPLAN ");
+ sqlBuilder.AppendLine(" SET PLAN_STATE='1' ");
+ sqlBuilder.AppendLine(" WHERE PID = @PID ");
+
+ sqlBuilder2.AppendLine(" UPDATE T_PP_WORKORDER ");
+ sqlBuilder2.AppendLine(" SET STATE='1' ");
+ sqlBuilder2.AppendLine(" WHERE ORDERPLANID = @PID ");
+
+ //发布更新基本信息
+ parameters.Add(new DataParameter { ParameterName = "PID", DataType = DbType.String, Value = model.PID });
+ count = session.ExecuteSql(sqlBuilder.ToString(), parameters.ToArray());
+ count2 = session.ExecuteSql(sqlBuilder2.ToString(), parameters.ToArray());
+ }
+ return count;
+ }
+ #endregion
+
+ #region 发布 新
+ ///
+ /// 发布信息
+ /// 为了事物传递新的session zxd20171101
+ ///
+ ///
+ /// 发布个数
+ public int PutOutBaseSession(TJOrderPlan model, DataTable workOrderDt)
+ {
+ if (BaseSession==null)
+ {
+ BaseSession = AppDataFactory.CreateMainSession();
+ }
+
+ //IDbConnection dbConn = DbManager.MainConnectionInfo.Connection;
+ //IDbTransaction ids = dbConn.BeginTransaction();
+ //try
+ //{
+ // if (workOrderDt.Rows != null)
+ // {
+ // BaseSession.DbHelper.BulkCopyData(workOrderDt, "T_PP_WORKORDER", dbConn, ids);
+ // ids.Commit();
+ // }
+ //}
+ //catch (Exception ex)
+ //{
+ // ids.Rollback();
+ // throw ex;
+ //}
+ int count = 0;
+ int count2 = 0;
+ StringBuilder sqlBuilder = new StringBuilder();
+ StringBuilder sqlBuilder2 = new StringBuilder();
+ List parameters = new List();
+
+ sqlBuilder.AppendLine(" UPDATE T_PP_ORDERPLAN ");
+ sqlBuilder.AppendLine(" SET PLAN_STATE='1' ");
+ sqlBuilder.AppendLine(" WHERE PID = @PID ");
+
+ sqlBuilder2.AppendLine(" UPDATE T_PP_WORKORDER ");
+ sqlBuilder2.AppendLine(" SET STATE='1' ");
+ sqlBuilder2.AppendLine(" WHERE ORDERPLANID = @PID ");
+
+ //发布更新基本信息
+ parameters.Add(new DataParameter { ParameterName = "PID", DataType = DbType.String, Value = model.PID });
+ //string sqlChange = ChangeSqlByDB(sqlBuilder.ToString(), session);
+ count = BaseSession.ExecuteSql(sqlBuilder.ToString(), parameters.ToArray());
+ count2 = BaseSession.ExecuteSql(sqlBuilder2.ToString(), parameters.ToArray());
+
+ return count;
+ }
+ #endregion
+
+ #region 发布校验
+ ///
+ /// 发布校验
+ ///
+ ///
+ ///
+ public int PutOutCheck(TJOrderPlan model)
+ {
+ int num = 0;
+ StringBuilder sqlBuilder = new StringBuilder();
+
+ sqlBuilder.AppendLine(" SELECT PLAN_STATE ");
+ sqlBuilder.AppendLine(" FROM T_PP_ORDERPLAN ");
+ sqlBuilder.AppendLine(" WHERE PID = @PID ");
+
+ if (BaseSession != null)
+ {
+ num = Convert.ToInt32(BaseSession.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", model.PID)));
+
+ }
+ else
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ num = Convert.ToInt32(session.ExecuteSqlScalar(sqlBuilder.ToString(), new DataParameter("PID", model.PID)));
+
+ }
+ }
+ return num;
+
+ }
+ #endregion
+
+ #region 导入
+ public ImportMessage GetImportData(List list)
+ {
+ ImportMessage em = new ImportMessage();
+ List parameters = new List();
+ try
+ {
+ using (IDataSession session = AppDataFactory.CreateMainSession())
+ {
+ //设置祖先对象数据会话
+ session.OpenTs();
+ foreach (TJOrderPlan info in list)
+ {
+ if (info.IsNewInfo == true)
+ {
+ //插入信息
+ int count = session.Insert