| | |
| | | public class Pro_ScDayImport : AbstractDynamicFormPlugIn |
| | | { |
| | | private string fileFullPath = string.Empty; |
| | | |
| | | //public override void OnLoad(EventArgs e) |
| | | //{ |
| | | // base.OnLoad(e); |
| | | // throw new Exception("1"); |
| | | //} |
| | | /// <summary> |
| | | /// 页面初始化 渲染界面 将T0-T60更改为日期显示 |
| | | /// </summary> |
| | | /// <param name="e"></param> |
| | | public override void OnInitialize(InitializeEventArgs e) |
| | | { |
| | | base.OnInitialize(e); |
| | | DateTime DateNow = DateTime.Now; |
| | | for (int m = 0; m <= 60; m++) |
| | | { |
| | | this.View.GetControl("FT" + "" + m + "").ControlAppearance.TextColor = "#FFFF00"; |
| | | this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString(); |
| | | } |
| | | this.View.SendDynamicFormAction(View); |
| | | } |
| | | public override void BarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | //LogHelper.Info("导入功能点击按钮:"); |
| | | if (e.BarItemKey.ToUpper().Equals("TBIMPORT")) |
| | | { |
| | | //LogHelper.Info("导入功能点击按钮:"); |
| | | ImportData(); |
| | | //WriteImportLog(); |
| | | //this.View.ShowErrMessage("测试导入功能点击按钮"); |
| | | } |
| | | |
| | | if (e.BarItemKey.ToUpper().Equals("TBWJSC")) |
| | | { |
| | | //LogHelper.Info("文件上传功能点击按钮:"); |
| | | ImportDataSC(fileFullPath); |
| | | } |
| | | } |
| | |
| | | return; |
| | | } |
| | | dt.Rows.RemoveAt(0);//去除标题行 |
| | | //DataSet ds = helper.ReadFromFile(fileFullPath, 1); |
| | | //DataTable dt = ds.Tables[0]; |
| | | //LogHelper.Info("导入功能:dt行数:" + dt.Rows.Count); |
| | | string FOrderType = this.Model.GetValue("FOrderType").ToString(); |
| | | string FTempName = "T_PRD_MO"; |
| | | string FTempNameEntry = "T_PRD_MOENTRY"; |
| | | if (FOrderType == "委外订单") |
| | | { |
| | | FTempName = "T_SUB_REQORDER"; |
| | | FTempNameEntry = "T_SUB_REQORDERENTRY"; |
| | | } |
| | | DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date")); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | |
| | | for (int i = 0; i < dt.Rows.Count; i++) |
| | | { |
| | | error = ""; |
| | | if (dt.Rows[i][dicExcelCol["组织编码"]].ToString() == "") |
| | | error += "组织编码不能为空;"; |
| | | if (dt.Rows[i][dicExcelCol["生产订单号"]].ToString() == "") |
| | | error += "生产订单号不能为空;\n"; |
| | | error += "生产订单号不能为空;"; |
| | | if (dt.Rows[i][dicExcelCol["生产订单明细行号"]].ToString() == "") |
| | | error += "生产订单明细行号不能为空;"; |
| | | if (dt.Rows[i][dicExcelCol["生产车间编码"]].ToString() == "") |
| | | error += "生产车间编码不能为空;\n"; |
| | | //增加员工 |
| | | error += "生产车间编码不能为空;"; |
| | | if (dt.Rows[i][dicExcelCol["生产资源编码"]].ToString() == "") |
| | | error += "生产资源编码不能为空;"; |
| | | if (dt.Rows[i][dicExcelCol["物料编码"]].ToString() == "") |
| | | error += "物料编码不能为空;\n"; |
| | | error += "物料编码不能为空;"; |
| | | if (dt.Rows[i][dicExcelCol["交货日期"]].ToString() == "") |
| | | error += "交货日期不能为空;\n"; |
| | | error += "交货日期不能为空;"; |
| | | if (dt.Rows[i][dicExcelCol["订单等级"]].ToString() == "") |
| | | error += "订单等级不能为空;\n"; |
| | | error += "订单等级不能为空;"; |
| | | //验证 生产资源 + 物料 判断 是否有维护产能表 |
| | | string cnSql = string.Format(@"/*dialect*/ |
| | | SELECT Count(*) row |
| | | FROM T_PRD_MATERIALCOMPARE T1 |
| | | JOIN T_PRD_MATERIALCOMPAREENTRY T2 ON T1.FID=T2.FID |
| | | JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID |
| | | JOIN T_ORG_ORGANIZATIONS T4 ON T1.FORGID = T4.FORGID |
| | | JOIN T_JIT_WORKCENTER T5 ON T2.FSCZY = T5.FID |
| | | WHERE T4.FNUMBER = '{0}' AND T3.FNUMBER='{1}' AND T5.FNUMBER ='{2}'", |
| | | dt.Rows[i][dicExcelCol["组织编码"]].ToString(), dt.Rows[i][dicExcelCol["物料编码"]].ToString(), dt.Rows[i][dicExcelCol["生产资源编码"]].ToString()); |
| | | int cnFid = DBServiceHelper.ExecuteScalar<int>(Context, cnSql, 0); |
| | | if (cnFid == 0) |
| | | error += "没有维护产能表;"; |
| | | cnSql = string.Format(@"/*dialect*/ |
| | | SELECT Count(*) row FROM {0} T1 |
| | | LEFT JOIN {1} T2 ON T1.FID = T2.FID |
| | | JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID |
| | | join ( select A.FBILLTYPEID,B.FNAME from T_BAS_BILLTYPE A |
| | | JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID |
| | | where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER') AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID |
| | | WHERE T1.FBILLNO = '{2}' AND T3.FNUMBER = '{3}' and FSEQ='{4}' ", FTempName, FTempNameEntry, dt.Rows[i][dicExcelCol["生产订单号"]].ToString(), dt.Rows[i][dicExcelCol["物料编码"]].ToString(), dt.Rows[i][dicExcelCol["生产订单明细行号"]].ToString()); |
| | | cnFid = DBServiceHelper.ExecuteScalar<int>(Context, cnSql, 0); |
| | | if (cnFid == 0) |
| | | error += "没有生产订单信息;"; |
| | | if (error.Length > 0) |
| | | ErrorResult += $"Excel模板存在错误,行数{i + 1}:{error}\r\n"; |
| | | } |
| | |
| | | { |
| | | //根据生产订单号和物料查询是否存在明细(2.28+生产订单明细行号验证) |
| | | string sql = string.Format(@"/*dialect*/ |
| | | SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.* FROM T_PRD_MO T1 |
| | | LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID |
| | | SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.* FROM {0} T1 |
| | | LEFT JOIN {1} T2 ON T1.FID = T2.FID |
| | | JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID |
| | | join ( select A.FBILLTYPEID,B.FNAME from T_BAS_BILLTYPE A |
| | | JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID |
| | | where FBILLFORMID='PRD_MO' AND FNAME<>'生產訂單')t4 on t1.FBILLTYPE =t4.FBILLTYPEID |
| | | WHERE T1.FBILLNO = '{0}' AND T3.FNUMBER = '{1}' and FSEQ='{2}' ", dt.Rows[i][dicExcelCol["生产订单号"]].ToString(), dt.Rows[i][dicExcelCol["物料编码"]].ToString(), dt.Rows[i][dicExcelCol["生产订单明细行号"]].ToString()); |
| | | where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER') AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID |
| | | WHERE T1.FBILLNO = '{2}' AND T3.FNUMBER = '{3}' and FSEQ='{4}' ", FTempName, FTempNameEntry, dt.Rows[i][dicExcelCol["生产订单号"]].ToString(), dt.Rows[i][dicExcelCol["物料编码"]].ToString(), dt.Rows[i][dicExcelCol["生产订单明细行号"]].ToString()); |
| | | DataTable _dt = new DataTable(); |
| | | _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | string FLOT = "";//FLOT 批次 |
| | |
| | | { |
| | | try |
| | | { |
| | | string FOrderType = this.Model.GetValue("FOrderType").ToString(); |
| | | string FTempName = "T_PRD_MO"; |
| | | string FTempNameEntry = "T_PRD_MOENTRY"; |
| | | string FTempBomName = "T_PRD_PPBOM"; |
| | | string FTempBomNameEntry = "T_PRD_PPBOMENTRY"; |
| | | if (FOrderType == "委外订单") |
| | | { |
| | | FTempName = "T_SUB_REQORDER"; |
| | | FTempNameEntry = "T_SUB_REQORDERENTRY"; |
| | | FTempBomName = "T_SUB_PPBOM"; |
| | | FTempBomNameEntry = "T_SUB_PPBOMENTRY"; |
| | | } |
| | | CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); |
| | | string sql; |
| | | DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date")); |
| | |
| | | foreach (DynamicObject current in entityDataObjoct) |
| | | { |
| | | //根据生产订单号和物料查询是否存在生产订单明细明细 +生产订单明细行号 + 组织(2021-12-10修改) |
| | | sql = string.Format(@"/*dialect*/SELECT T1.FBILLNO,T2.* FROM T_PRD_MO T1 |
| | | LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID |
| | | WHERE T1.FBILLNO = '{0}' AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}' AND T1.FPRDORGID = '{3}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), Convert.ToString(current["FORGID_Id"])); |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | | SELECT T1.FBILLNO,T2.* FROM {4} T1 |
| | | LEFT JOIN {5} T2 ON T1.FID = T2.FID |
| | | WHERE T1.FBILLNO = '{0}' AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}' AND T1.{6} = '{3}'" |
| | | , Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), Convert.ToString(current["FORGID_Id"]), FTempName, FTempNameEntry, FOrderType == "委外订单" ? "FSUBORGID" : "FPRDORGID"); |
| | | //LogHelper.Info(sql); |
| | | DataTable dt = new DataTable(); |
| | | dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | |
| | | return; |
| | | } |
| | | //校验生产用料清单是否审核 |
| | | if (FOrderType == "生产订单") |
| | | { |
| | | foreach (DynamicObject current in entityDataObjoct) |
| | | { |
| | | //根据生产订单号和物料查询是否存在明细 +生产订单明细行号 |
| | | sql = string.Format(@"/*dialect*/SELECT FBILLNO FROM T_PRD_PPBOM T1 |
| | | WHERE T1.FMOBILLNO = '{0}' AND T1.FMATERIALID = '{1}' AND T1.FMOENTRYSEQ = '{2}' and FDOCUMENTSTATUS <>'C' |
| | | ", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"])); |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | | SELECT FBILLNO FROM {0} T1 |
| | | WHERE T1.FMOBILLNO = '{1}' AND T1.FMATERIALID = '{2}' AND T1.FMOENTRYSEQ = '{3}' and FDOCUMENTSTATUS <>'C' |
| | | ", FTempBomName, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"])); |
| | | DataTable dt = new DataTable(); |
| | | dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | if (dt.Rows.Count > 0) |
| | | _result += "序号:" + Convert.ToString(current["SEQ"]) + ",生产订单号:" + Convert.ToString(current["FSCOrderNo"]) + ",生产订单明细行号:" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "物料" + (current["FMatrailId"] as DynamicObject)["Number"] + "对应的生产用料清单:" + dt.Rows[0][0] + "未审核\n"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | foreach (DynamicObject current in entityDataObjoct) |
| | | { |
| | | //根据生产订单号和物料查询是否存在明细 +生产订单明细行号 |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | | SELECT FBILLNO FROM {0} T1 |
| | | WHERE T1.FSUBBILLNO = '{1}' AND T1.FMATERIALID = '{2}' AND T1.FSUBREQENTRYSEQ = '{3}' and FDOCUMENTSTATUS <>'C' |
| | | ", FTempBomName, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"])); |
| | | DataTable dt = new DataTable(); |
| | | dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | if (dt.Rows.Count > 0) |
| | | _result += "序号:" + Convert.ToString(current["SEQ"]) + ",生产订单号:" + Convert.ToString(current["FSCOrderNo"]) + ",生产订单明细行号:" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "物料" + (current["FMatrailId"] as DynamicObject)["Number"] + "对应的生产用料清单:" + dt.Rows[0][0] + "未审核\n"; |
| | | } |
| | | } |
| | | if (_result != "") |
| | | { |
| | |
| | | //查询生产订单数据 |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | | SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM T_PRD_MO T1 |
| | | LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID |
| | | SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM {3} T1 |
| | | LEFT JOIN {4} T2 ON T1.FID = T2.FID |
| | | LEFT JOIN T_ENG_BOM tBom on t2.FBOMID = tBom.FID |
| | | join T_BD_UNIT t3 on t2.FUNITID=t3.FUNITID |
| | | join ( select A.FBILLTYPEID,B.FNAME from T_BAS_BILLTYPE A |
| | | JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID |
| | | where FBILLFORMID='PRD_MO' AND FNAME<>'生產訂單')t4 on t1.FBILLTYPE =t4.FBILLTYPEID |
| | | WHERE T1.FBILLNO = '{0}' AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"])); |
| | | where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER') AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID |
| | | WHERE T1.FBILLNO = '{0}' AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), FTempName, FTempNameEntry); |
| | | DataTable dt = new DataTable(); |
| | | dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | if (dt.Rows.Count == 0) |
| | |
| | | JObject jsonModel = new JObject(); |
| | | jsonModel.Add("FPreparatDate", FPlanBeginDate);//编制日期(改为计划开始日期) |
| | | jsonModel.Add("FMoFBillType", FMoFBillType);// |
| | | jsonModel.Add("FOrderType", FOrderType);// |
| | | jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(current["FSRCBILLENTRYSEQ"]));//生产订单明细行号 |
| | | jsonModel.Add("FSCOrderNo", Convert.ToString(current["FSCOrderNo"])); //生产订单号FSCOrderNo |
| | | jsonModel.Add("FHSeOrderBillNo", Convert.ToString(current["FSalOrderNo"]));//销售订单号 |