using HH.WCS.Mobox3.HD.models; using HH.WCS.Mobox3.HD.util; using System; using System.Collections.Generic; using static HH.WCS.Mobox3.HD.util.ExpressionHelper; using System.Linq.Expressions; using System.Linq; namespace HH.WCS.Mobox3.HD.wms { internal class MouldHelper { internal static MouldCntr GetMouldCntr(MouldCntr mouldCntrTemplate) { var db = new SqlHelper().GetInstance(); var query = db.Queryable(); if (mouldCntrTemplate.S_MOULD_NO != null) { query.Where(a => a.S_MOULD_NO == mouldCntrTemplate.S_MOULD_NO || a.S_ITEM_CODE == mouldCntrTemplate.S_MOULD_NO); } if (mouldCntrTemplate.S_CNTR_CODE != null) { query.Where(a => a.S_CNTR_CODE == mouldCntrTemplate.S_CNTR_CODE); } if (mouldCntrTemplate.S_LOC_CODE != null) { query.Where(a => a.S_LOC_CODE == mouldCntrTemplate.S_LOC_CODE); } if (mouldCntrTemplate.S_ABLE_FLAG != null) { query.Where(a => a.S_ABLE_FLAG == mouldCntrTemplate.S_ABLE_FLAG); } MouldCntr mouldCntr = query.First(); if (mouldCntr != null) { // 加载相关的 MouldDetail 记录 List mouldDetails = db.Queryable().Where(a => a.S_MOULD_NO == mouldCntr.S_MOULD_NO).ToList(); mouldCntr.mouldDetails = mouldDetails; } return mouldCntr; } internal static List GetMouldCntrList(MouldCntr mouldCntrTemplate) { var db = new SqlHelper().GetInstance(); var query = db.Queryable(); if (mouldCntrTemplate.S_MOULD_NO != null) { query.Where(a => (a.S_MOULD_NO == mouldCntrTemplate.S_MOULD_NO || a.S_ITEM_CODE == mouldCntrTemplate.S_MOULD_NO)); } if (mouldCntrTemplate.S_CNTR_CODE != null) { query.Where(a => a.S_CNTR_CODE == mouldCntrTemplate.S_CNTR_CODE); } if (mouldCntrTemplate.S_LOC_CODE != null) { query.Where(a => a.S_LOC_CODE == mouldCntrTemplate.S_LOC_CODE); } var mouldCntrs = query.Where(a => a.S_STATUS == "Y" && a.S_ABLE_FLAG == "是").ToList(); return mouldCntrs; } internal static MouldCntr GetMouldCntrByLoc(string locCode) { var db = new SqlHelper().GetInstance(); return db.Queryable().Where(a => a.S_LOC_CODE == locCode).First(); } internal static MouldCntr GetMouldCntrByCntr(string cntrNo) { var db = new SqlHelper().GetInstance(); return db.Queryable().Where(a => a.S_CNTR_CODE == cntrNo).First(); } internal static MouldCntr GetMouldCntr(string mouldNo) { var db = new SqlHelper().GetInstance(); return db.Queryable().Where(a => a.S_MOULD_NO == mouldNo).First(); } internal static List GetMouldDetails (string mouldNo ) { var db = new SqlHelper().GetInstance(); return db.Queryable().Where(a => a.S_MOULD_NO == mouldNo).ToList(); } internal static bool deleteMould(string mouldNo) { bool result = false; var db = new SqlHelper().GetInstance(); try { db.BeginTran(); var mouldCntr = db.Queryable().Where(a => a.S_MOULD_NO == mouldNo).First(); if (mouldCntr != null) { int count = db.Deleteable().Where(a => a.S_MOULD_NO == mouldNo).ExecuteCommand(); if (count > 0) { result = db.Deleteable().Where(a => a.S_MOULD_NO == mouldNo).ExecuteCommand() > 0; if (result) { var container = ContainerHelper.GetCntr(mouldCntr.S_CNTR_CODE); container.N_DETAIL_COUNT = 0; db.Updateable(container).ExecuteCommand(); } } } db.CommitTran(); return result; } catch (Exception ex) { db.RollbackTran(); LogHelper.Info("删除模具异常-deleteMould,error:"+ex.Message, "mobox"); } return result; } internal static bool deleteMouldByCntr(string cntrCode) { bool result = false; var db = new SqlHelper().GetInstance(); try { db.BeginTran(); var mouldCntr = db.Queryable().Where(a => a.S_CNTR_CODE.Trim() == cntrCode).First(); int count = db.Deleteable().Where(a => a.S_MOULD_NO == mouldCntr.S_MOULD_NO).ExecuteCommand(); if (count > 0) { result = db.Deleteable().Where(a => a.S_MOULD_NO == mouldCntr.S_MOULD_NO).ExecuteCommand() > 0; } db.CommitTran(); return result; } catch (Exception ex) { db.RollbackTran(); LogHelper.Info("删除模具异常-deleteMould,error:" + ex.Message, "mobox"); } return result; } /// /// 更新模具数量 /// /// /// internal static bool updateMouldNum(List mouldDetails) { var db = new SqlHelper().GetInstance(); mouldDetails.ForEach(it => { db.Updateable(it).UpdateColumns(a => a.N_QTY).ExecuteCommand(); }); return true; } /// /// 更新模具状态 /// /// /// /// internal static bool updateMouldStatus(string cntrCode ,string status) { var db = new SqlHelper().GetInstance(); return db.Updateable().SetColumns(a => a.S_STATUS == status).Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand() > 0; } /// /// 更新模具状态 /// /// /// internal static bool updateMouldStatus(MouldCntr mouldCntr) { var db = new SqlHelper().GetInstance(); return db.Updateable(mouldCntr).UpdateColumns(a => new { a.S_ABLE_FLAG ,a.S_STATUS }).ExecuteCommand() > 0; } /// /// 添加模具 /// /// /// internal static bool addMould(MouldCntr mouldCntr) { var db = new SqlHelper().GetInstance(); return db.Insertable(mouldCntr).ExecuteCommand() > 0; } /// /// 添加子模具 /// /// /// internal static void batchAddChildMould(List mouldDetails) { var db = new SqlHelper().GetInstance(); foreach (MouldDetail item in mouldDetails) { db.Insertable(item).ExecuteCommand(); } } } }