public string ajqxUpQM_Batch_Error(QM_Batch_Error_Param def) { try { QM_Batch_Error defList = new QM_Batch_Error(); LES_REQUEST_RECEIVE updateReceiveTime = new LES_REQUEST_RECEIVE(); string orderID = ""; string materialID = ""; string lotID = ""; if (def.IsMoisture == "1" || def.IsMoisture == "是") { defList.RowDelete = true; defList.PK = def.PK; IQM_Batch_ErrorBOibo.UpdateSome(defList); materialID = defList.MaterialID; orderID = defList.OrderID; lotID = defList.lotID; string sqlGetReceivePK = @"SELECT ReceivePK FROM dbo.LES_REQUEST_RECEIVE WHERE OrderID='{0}' AND MaterialID='{1}' AND LotID='{2}' and Status=3"; sqlGetReceivePK = string.Format(sqlGetReceivePK, orderID, materialID, lotID); DataTable dtReceivePk = co_BSC_BO.GetDataTableBySql(sqlGetReceivePK); if (dtReceivePk == null || dtReceivePk.Rows.Count == 0) { } else { for (int i = 0; i < dtReceivePk.Rows.Count; i++) { updateReceiveTime.ReceivePK = Convert.ToInt32(dtReceivePk.Rows[i][0]); updateReceiveTime.ReceiveTime = DateTime.Now; ILES_Request_ReceiveBO.UpdateSome(updateReceiveTime); //string updateLesReceiveTime = @"UPDATE dbo.LES_REQUEST_RECEIVE SET ReceiveTime=GETDATE() WHERE ReceivePK='" + dtReceivePk.Rows[i][0] + "'"; //updateLesReceiveTime = string.Format(updateLesReceiveTime); //co_BSC_BO.ExecuteNonQueryBySql(updateLesReceiveTime); } } } else { return("当前产品不需要释放。"); } return("OK"); } catch (Exception ex) { return("系统内部出现异常:" + ex.Message); } }
[Route("SplitLots")] //原批次 拆分批次号 拆分批次数 public string SplitLots(IList <SMT_MMLotsSplit> SMT_SplitLots) { try { foreach (var item in SMT_SplitLots) { if (item.IsSplit == "0") { s = Convert.ToInt32(item.Quantity); break; } } foreach (var item in SMT_SplitLots) { //更新送料表拆分的状态 LES_REQUEST_RECEIVE receive = new LES_REQUEST_RECEIVE(); receive.ReceivePK = item.ReceivePK; receive.IsSplit = true; receiveBO.UpdateSome(receive); if (item.IsSplit == "0") { continue; } //添加PM_SMT_RECEIPE_SETUP_DETAIL_REPLACE拆分数据 string sqlRequestReceive = @"SELECT * FROM dbo.LES_REQUEST_RECEIVE WHERE ReceivePK='{0}'"; sqlRequestReceive = string.Format(sqlRequestReceive, item.ReceivePK); DataTable dtrequest = co_BSC_BO.GetDataTableBySql(sqlRequestReceive); PM_SMT_RECEIPE_SETUP_DETAIL_REPLACE replace = new PM_SMT_RECEIPE_SETUP_DETAIL_REPLACE(); replace.OldLotID = dtrequest.Rows[0]["HutID"].ToString(); replace.OldLotQty = s; replace.NewLotID = item.HutID; replace.NewLotQty = Convert.ToInt32(item.Quantity); replace.Operator = "zwg"; replace.OperationTime = SSGlobalConfig.Now; replace.ReceivePK = item.ReceivePK; string sqlreplace = @"INSERT INTO dbo.PM_SMT_RECEIPE_SETUP_DETAIL_REPLACE(OldLotID,OldLotQty,NewLotID,NewLotQty, Operator,OperationTime,ReceivePK,OldOrderID) VALUES('{0}','{1}','{2}','{3}','{4}',GETDATE(),'{5}','{6}');select @@identity"; sqlreplace = string.Format(sqlreplace, replace.OldLotID, replace.OldLotQty, replace.NewLotID, replace.NewLotQty, replace.Operator, replace.ReceivePK, dtrequest.Rows[0]["OrderID"].ToString()); DataTable dtreplace = co_BSC_BO.GetDataTableBySql(sqlreplace); LESSplit_ReelID reelid = new LESSplit_ReelID(); reelid.RequestPK = Convert.ToInt32(dtreplace.Rows[0][0]); reelid.NewReelID = replace.NewLotID.ToString(); reelid.NewQuantity = Convert.ToDouble(replace.NewLotQty); reelid.OldReelID = replace.OldLotID; reelid.OperationTime = Convert.ToDateTime(replace.OperationTime); reelid.Operator = replace.Operator; ReturnValue rv = WMSBO.SplitReelID(reelid); if (rv.Success) { replace.Attribute01 = "1"; setupdetailBO.UpdateSome(replace); } else { replace.Attribute01 = "0"; setupdetailBO.UpdateSome(replace); return("拆分失败:" + rv.Message); } } return("拆分成功"); } catch (Exception ex) { return("拆分异常:" + ex.Message); } }
public IList <CV_PM_SMT_RECEIPE_DETAIL> checkAgain(CV_PM_SMT_RECEIPE_DETAIL_QueryParam Entitie) { bool isFinishedAll = true; IList <CV_PM_SMT_ReceipeDetailSetup> detaillist = new List <CV_PM_SMT_ReceipeDetailSetup>(); CV_MM_LOTS_EXT_QueryParam lotqp = new CV_MM_LOTS_EXT_QueryParam(); IList <CV_MM_LOTS_EXT> lotList = new List <CV_MM_LOTS_EXT>(); IList <CV_PM_SMT_RECEIPE_DETAIL> cvfourList = new List <CV_PM_SMT_RECEIPE_DETAIL>(); CV_PM_SMT_ReceipeDetailSetup_QueryParam sanQP = new CV_PM_SMT_ReceipeDetailSetup_QueryParam(); sanQP.Slot = Entitie.Slot; sanQP.OrderID = Entitie.OrderID; sanQP.MachineID = Entitie.MachineID; sanQP.PcbSide = Entitie.PcbSide; detaillist = CV_PM_SMT_ReceipeDetailSetupBO.GetEntities(sanQP); ////在视图中查 //lotqp.LotID = Entitie.LotID; //lotqp.OrderID = Entitie.OrderID; //lotList = CV_MM_LOTS_EXTBO.GetEntities(lotqp); //if (lotList.Count == 0) //{ // cvfourList.Clear(); // return cvfourList; //} //if (lotList[0].DefID != detaillist[0].MaterialID) //条码是否存在,必须由WMS导入MES //{ // cvfourList.Clear(); // return cvfourList; //} LES_REQUEST_RECEIVE receive = new LES_REQUEST_RECEIVE(); receive.HutID = Entitie.LotID; IList <LES_REQUEST_RECEIVE> detailPKList = receiveBO.GetEntities(receive); if (detailPKList == null || detailPKList.Count == 0 || detailPKList[0].OrderID != Entitie.OrderID || detailPKList[0].MaterialID != detaillist[0].MaterialID)//核对工单、物料 { cvfourList.Clear(); return(cvfourList); } receive.ReceivePK = detailPKList[0].ReceivePK; //hutID对应的接料信息,调wms接口用 LESReceive lesReceive = new LESReceive(); lesReceive.HutID = receive.HutID; lesReceive.DetailPK = Convert.ToInt32(detailPKList[0].DetailPK); lesReceive.OperationTime = SSGlobalConfig.Now; lesReceive.Operator = Entitie.UpdatedBy; lesReceive.ReceivePK = (int)detailPKList[0].ReceivePK; lesReceive.IsLastHut = Convert.ToBoolean(detailPKList[0].IsLastHut); LES_REQUEST_DETAIL lesDetail = lesDetailBO.GetEntity(Convert.ToInt32(detailPKList[0].DetailPK)); if (lesDetail == null) { cvfourList.Clear(); return(cvfourList); } lesReceive.RequestPK = (int)lesDetail.RequestPK; PM_SMT_RECEIPE_SETUP_DETAIL detail = new PM_SMT_RECEIPE_SETUP_DETAIL(); PM_SMT_RECEIPE_SETUP_DETAIL detailQP = new PM_SMT_RECEIPE_SETUP_DETAIL(); CV_PM_SMT_RECEIPE_DETAIL_QueryParam cvFourQP = new CV_PM_SMT_RECEIPE_DETAIL_QueryParam(); PM_SMT_RECEIPE_SETUP_DETAIL setDetail = new PM_SMT_RECEIPE_SETUP_DETAIL(); setDetail.DetailPK = detaillist[0].DetailPK; //查询SetupDetailPK IList <PM_SMT_RECEIPE_SETUP_DETAIL> listSet = setupDetailBO.GetEntities(setDetail); if (listSet != null && listSet.Count != 0) { detail.SetupDetailPK = listSet[0].SetupDetailPK; } detail.DetailPK = detaillist[0].DetailPK; detail.CfmedLotID = Entitie.CfmedLotID; detail.SetupPK = detaillist[0].SetupPK; detail.CfmedOperator = Entitie.UpdatedBy; detailQP.SetupPK = detaillist[0].SetupPK; detailQP.DetailPK = detaillist[0].DetailPK; detailQP.CfmedLotID = Entitie.CfmedLotID; //防止二次添加。 IList <PM_SMT_RECEIPE_SETUP_DETAIL> listCV = setupDetailBO.GetEntities(detailQP); if (listCV != null && listCV.Count != 0 && detail.SetupDetailPK != null) { if (listCV[0].CfmedLotID == null) { // //调用存储过程 // string Sql = string.Format( //如果已存在会返回LocPK // @"DECLARE @return_value int, // @ReturnMessage nvarchar(1000) // // EXEC @return_value = [dbo].[CP_LES_CheckReceiveMaterial_1.18] // @HutID = N'{0}', // @LotID = N'{0}', // @ReturnMessage = @ReturnMessage OUTPUT // // SELECT @ReturnMessage as N'@ReturnMessage'", Entitie.LotID); // DataTable exelist = null; // exelist = co_BSC_BO.GetDataTableBySql(Sql); // string result = exelist.Rows[0][0].ToString(); // if (result!="OK") //realID校验不通过 // { // return cvfourList; // } //调wms接口,二次核对同时接料 ReturnValue rv = new ReturnValue(); rv = API_WMS_BO.ReceiveMaterial(lesReceive); if (rv.Success == false) { return(cvfourList); } //修改接料状态 string s = receiveBO.ModifyMaterialStatus(Entitie.UpdatedBy, Convert.ToInt32(receive.ReceivePK)); if (s.Contains("OK")) { detail.CfmedOperationTime = SSGlobalConfig.Now; setupDetailBO.UpdateSome(detail); } } } cvFourQP.RcpPK = detaillist[0].RcpPK; cvfourList = cvReceipeDetailBO.GetEntities(cvFourQP); //检查是否扫描完毕。 for (int i = 0; i < cvfourList.Count; i++) { if (cvfourList[i].CfmedLotID == null) { isFinishedAll = false; break; } } if (!isFinishedAll) { PM_SMT_RECEIPE_SETUP Setup = new PM_SMT_RECEIPE_SETUP(); Setup.UpdatedBy = Entitie.UpdatedBy; Setup.UpdatedOn = SSGlobalConfig.Now; Setup.SetupPK = cvfourList[0].SetupPK; Setup.SetupStatus = 4; ReceipeSetupBO.UpdateSome(Setup); } return(cvfourList); }
public string checkNewReelID(DockMaterial entity) { LES_REQUEST_RECEIVE receive = new LES_REQUEST_RECEIVE(); receive.HutID = entity.NewReelID; IList <LES_REQUEST_RECEIVE> detailPKList = receiveBO.GetEntities(receive); if (detailPKList == null || detailPKList.Count == 0) { return("新批次信息错误"); } if (detailPKList[0].Status == 3) { return("此物料已接料,无需再次操作"); } if (detailPKList[0].Quantity.ToString() == "") { return("新物料数量丢失,对接失败"); } receive.ReceivePK = detailPKList[0].ReceivePK; LES_REQUEST_DETAIL lesDetail = lesDetailBO.GetEntity(Convert.ToInt32(detailPKList[0].DetailPK)); if (lesDetail == null || lesDetail.MaterialID != entity.MaterialID) { return("新批次与物料不符,请扫描正确批次"); } //旧物料个数 int oldQuantity = 0; LES_REQUEST_RECEIVE receiveOld = new LES_REQUEST_RECEIVE(); receive.HutID = entity.OldReelID; IList <LES_REQUEST_RECEIVE> detailPKListOld = receiveBO.GetEntities(receiveOld); if (detailPKListOld == null || detailPKListOld.Count == 0 || detailPKList[0].Quantity.ToString() == "") { return("旧物料数量丢失,对接失败"); } oldQuantity = Convert.ToInt32(detailPKListOld[0].Quantity); //调接口,接料 LESReceive lesReceive = new LESReceive(); lesReceive.HutID = entity.NewReelID; lesReceive.DetailPK = Convert.ToInt32(detailPKList[0].DetailPK); lesReceive.ReceivePK = (int)detailPKList[0].ReceivePK; lesReceive.RequestPK = (int)lesDetail.RequestPK; lesReceive.OperationTime = SSGlobalConfig.Now; lesReceive.Operator = entity.Operator; lesReceive.IsLastHut = Convert.ToBoolean(detailPKList[0].IsLastHut); ReturnValue rv = new ReturnValue(); rv = API_WMS_BO.ReceiveMaterial(lesReceive); if (rv.Success == false) { return("接料失败"); } //修改接料状态 string s = receiveBO.ModifyMaterialStatus(entity.Operator, Convert.ToInt32(receive.ReceivePK)); if (s.Contains("NG")) { return(s); } else { //新批次正确,像PM_SMT_RECEIPE_SETUP_DETAIL_REPLACE中添加数据 PM_SMT_RECEIPE_SETUP_DETAIL_REPLACE replace = new PM_SMT_RECEIPE_SETUP_DETAIL_REPLACE(); replace.NewLotID = entity.NewReelID; replace.NewLotQty = Convert.ToInt32(detailPKList[0].Quantity); replace.OldLotID = entity.OldReelID; replace.OldLotQty = oldQuantity; replace.OperationTime = SSGlobalConfig.Now; replace.Operator = entity.Operator; replace.SetupDetailPK = entity.SetupDetailPK; replaceBO.Insert(replace); return("物料对接成功"); } }
public IList <CV_PM_SMT_RECEIPE_DETAIL> GetScanningEntities(CV_PM_SMT_RECEIPE_DETAIL_QueryParam Entitie) //传入的参数是对象,用Post,不能用Get { bool isFinishedAll = true; IList <CV_PM_SMT_ReceipeDetailSetup> setupList = new List <CV_PM_SMT_ReceipeDetailSetup>(); //CV_MM_LOTS_EXT_QueryParam lotQP = new CV_MM_LOTS_EXT_QueryParam(); //IList<CV_MM_LOTS_EXT> lotList = new List<CV_MM_LOTS_EXT>(); PM_SMT_RECEIPE_SETUP_DETAIL detailNew = new PM_SMT_RECEIPE_SETUP_DETAIL(); IList <CV_PM_SMT_RECEIPE_DETAIL> cvfourList = new List <CV_PM_SMT_RECEIPE_DETAIL>(); CV_PM_SMT_ReceipeDetailSetup_QueryParam setuoQP = new CV_PM_SMT_ReceipeDetailSetup_QueryParam(); setuoQP.Slot = Entitie.Slot; setuoQP.OrderID = Entitie.OrderID; setuoQP.MachineID = Entitie.MachineID; setuoQP.PcbSide = Entitie.PcbSide; setupList = CV_PM_SMT_ReceipeDetailSetupBO.GetEntities(setuoQP); //根据lotID查询物料 //lotQP.LotID = Entitie.LotID; //lotQP.OrderID = Entitie.OrderID; // lotList = CV_MM_LOTS_EXTBO.GetEntities(lotQP); //if (lotList == null || lotList.Count == 0) //{ // cvfourList.Clear(); // return cvfourList; //} //if (lotList[0].DefID != setupList[0].MaterialID) //{ // cvfourList.Clear(); // return cvfourList; //} LES_REQUEST_RECEIVE receive = new LES_REQUEST_RECEIVE(); receive.HutID = Entitie.LotID;//接料表中hutID(reelID) IList <LES_REQUEST_RECEIVE> detailPKList = receiveBO.GetEntities(receive); if (detailPKList == null || detailPKList.Count == 0 || detailPKList[0].OrderID != Entitie.OrderID || detailPKList[0].MaterialID != setupList[0].MaterialID) { cvfourList.Clear(); return(cvfourList); } //LES_REQUEST_DETAIL lesDetail = lesDetailBO.GetEntity(Convert.ToInt32(detailPKList[0].DetailPK)); //if (lesDetail == null || lesDetail.MaterialID != setupList[0].MaterialID) //{ // cvfourList.Clear(); // return cvfourList; //} PM_SMT_RECEIPE_SETUP_DETAIL detailQP = new PM_SMT_RECEIPE_SETUP_DETAIL(); detailQP.SetupPK = setupList[0].SetupPK; detailQP.DetailPK = setupList[0].DetailPK; detailQP.LotID = Entitie.LotID; //防止二次添加。 IList <PM_SMT_RECEIPE_SETUP_DETAIL> detailList = setupDetailBO.GetEntities(detailQP); if (detailList == null || detailList.Count == 0) { detailNew.LotID = Entitie.LotID; detailNew.SetupPK = setupList[0].SetupPK; detailNew.DetailPK = setupList[0].DetailPK; detailNew.Operator = Entitie.UpdatedBy; detailNew.OperationTime = SSGlobalConfig.Now; setupDetailBO.Insert(detailNew); //sacnningNum++; } CV_PM_SMT_RECEIPE_DETAIL_QueryParam cvfourQP = new CV_PM_SMT_RECEIPE_DETAIL_QueryParam(); cvfourQP.RcpPK = setupList[0].RcpPK; cvfourList = cvReceipeDetailBO.GetEntities(cvfourQP); //检查是否扫描完毕。 for (int i = 0; i < cvfourList.Count; i++) { if (string.IsNullOrEmpty(cvfourList[i].LotID)) { isFinishedAll = false; break; } } if (!isFinishedAll) { PM_SMT_RECEIPE_SETUP Setup = new PM_SMT_RECEIPE_SETUP(); Setup.UpdatedBy = Entitie.UpdatedBy; Setup.UpdatedOn = SSGlobalConfig.Now; Setup.SetupPK = cvfourList[0].SetupPK; Setup.SetupStatus = 2; //1:已生成 2:一次核对中 3:一次核对完成 4:二次核对中 5:二次核对完成 ReceipeSetupBO.UpdateSome(Setup); } return(cvfourList); }