[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);
            }
        }
Esempio n. 2
0
        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("物料对接成功");
            }
        }