public override object Do(object obj)
        {
            QueryShipPlan bpObj = (QueryShipPlan)obj;

            //get business operation context is as follows
            //IContext context = ContextManager.Context

            //auto generating code end,underside is user custom code
            //and if you Implement replace this Exception Code...
            if (bpObj == null)
            {
                return(null);
            }
            return(GetShipPlan(bpObj));
        }
        private List <ShipPlanDTO> GetShipPlan(QueryShipPlan bpObj)
        {
            List <SrcSOInfoDTO> srcListDto  = new List <SrcSOInfoDTO>(); //传入参数集合
            List <ShipPlanDTO>  shipListDto = new List <ShipPlanDTO>();  //传出参数集合
            ShipPlanDTO         shipDto     = null;

            srcListDto = bpObj.SrcSOInfoDTO;
            UFIDA.U9.Cust.GS.FT.InstalledArkBE.InstalledArkDetailLine.EntityList installList = null;
            foreach (SrcSOInfoDTO srcDto in srcListDto)
            {
                if (srcDto.ShipInvoiceNo.Trim() == "")
                {
                    throw new Exception("出运发票号不能为空");
                }
                StringBuilder strbuilder = new StringBuilder();
                //通过传递进来的参数查询预装柜表中的数据,查询条件为:预装柜出运明细单行.出运明细单行.已同步WMS=false and
                //预装柜出运明细单行.出运明细单行.已预装柜=true;
                #region OQL查询
                //strbuilder.Append(" SrcShipLine in (select ID from UFIDA::U9::Cust::GS::FT::ShipPlanDetailBE::ShipPlanDetailLine where IsWms=0 and IsShipping=1");
                //strbuilder.Append(" and SrcShip.BillNoItem.BillNoItemID like '%" + srcDto.ShipInvoiceNo + "%'");
                if (srcDto.DocNo != "")
                {
                    //strbuilder.Append(" and SrcShipNO like '%" + srcDto.DocNo + "%'");//OQL查询
                    strbuilder.Append(" and DocNo like  '%" + srcDto.DocNo + "%'");
                }
                if (srcDto.SODocNo != "")
                {
                    strbuilder.Append(" and SrcSONo like '%" + srcDto.SODocNo + "%'");
                }
                if (srcDto.CustomerName != "")
                {
                    //strbuilder.Append(" and InstalledArkLine.InstalledArkHead.Customer.Name like '%" + srcDto.CustomerName + "%'");
                    strbuilder.Append(" and CustomerName like '%" + srcDto.CustomerName + "%'");
                }
                if (srcDto.CustomerCode != "")
                {
                    //strbuilder.Append(" and InstalledArkLine.InstalledArkHead.Customer.Code like '%" + srcDto.CustomerCode + "%'");
                    strbuilder.Append(" and CustomerCode like '%" + srcDto.CustomerCode + "%'");
                }
                if (srcDto.SODateFrom != null && srcDto.SODateFrom > DateTime.Parse("1979-01-01") && srcDto.SODateTo != null && srcDto.SODateTo > DateTime.Parse("1979-01-01"))
                {
                    //strbuilder.Append(" and InstalledArkLineInstalledArkHead.BusinessDate >='" + srcDto.SODateFrom + "' and InstalledArkLineInstalledArkHead.BusinessDate <='" + srcDto.SODateTo + "'");
                    strbuilder.Append(" and SODate >='" + srcDto.SODateFrom + "' and SODate <='" + srcDto.SODateTo + "'");
                }
                if (srcDto.OrderOrg != "")
                {
                    strbuilder.Append(" and OrderOrgName like '%" + srcDto.OrderOrg + "%'");
                }
                installList = UFIDA.U9.Cust.GS.FT.InstalledArkBE.InstalledArkDetailLine.Finder.FindAll(strbuilder.ToString());
                #endregion
                DataSet ds      = new DataSet();
                string  queyStr = "";

                string sql = @"select A.ID,A.SrcShipNO as DocNo,A.SrcShipLineNo as DocLineNo,A.SrcSONo as SODocNo,A.SrcSOLineNo as SOLineNo,
C.CustomerName,C.CustomerCode,D.BusinessDate as DocDate,E.BusinessDate as SODate,
D.OrderOrgCode,D.OrderOrgName,C.ShipInvoiceNo,C.OrgCode,F.Code as ItemCode,F.Name as ItemName,A.Qty as ShipPlanQty,
G.UOMCode,G.UOMName,B.Cabinet as BoxTypeValue,
A.Bulks as Volume,A.NetWeight as NetWeight,A.GrossWeight as GW,A.Length as L,A.Width as W,A.Higth as H
 from GS_FT_InstalledArkDetailLine A 
left join  GS_FT_InstalledArkLine as  B  on A.InstalledArkLine=B.ID
left join (select IHead.ID as HeadID,Org.Code as OrgCode,CutTrl.Name as CustomerName,Cut.Code as CustomerCode,BNO.BillNoItemID as ShipInvoiceNo from GS_FT_InstalledArkHead IHead
                                                       left join GS_FT_BillNoItemHead BNO on IHead.BillNoItemHead=BNo.ID
                                                       left join CBO_Customer Cut on Cut.ID=IHead.Customer 
													   left join CBO_Customer_Trl CutTrl on CutTrl.ID=Cut.ID
													   left join Base_Organization Org on IHead.Org=Org.ID) as C
                                                       on B.InstalledArkHead=C.HeadID
left join (select Ship.ID as ShipID,Ship.BusinessDate,Org.Code as OrderOrgCode,OrgTrl.Name as OrderOrgName from GS_FT_ShipPlanDetailHead Ship 
                                                       left join Base_Organization Org on ship.GetOrderOrg=Org.ID
                                                       left join Base_Organization_Trl OrgTrl on OrgTrl.ID=Org.ID ) as D 
                                                     on D.ShipID=A.SrcShip
left join SM_SO E on E.ID=A.SrcSO
left join  CBO_ItemMaster F on F.ID=A.ItemMaster
left join  (select Uom.ID as UomID,Uom.Code as UOMCode,UomTrl.Name as UOMName  from Base_UOM Uom left join Base_UOM_Trl UomTrl on Uom.ID=UomTrl.ID )G on G.UomID=A.Uom
inner join GS_FT_ShipPlanDetailLine H on A.SrcShipLine=H.ID where H.IsWms=0 and H.IsShipping=1 " + queyStr + "";
                UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), sql, null, out ds);
                if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        shipDto               = new ShipPlanDTO();
                        shipDto.DocNo         = dr["DocNo"].ToString();
                        shipDto.DocLineNo     = Convert.ToInt32(dr["DocLineNo"].ToString());
                        shipDto.SODocNo       = dr["SODocNo"].ToString();
                        shipDto.SOLineNo      = Convert.ToInt32(dr["SOLineNo"].ToString());
                        shipDto.CustomerName  = dr["CustomerName"].ToString();
                        shipDto.CustomerCode  = dr["CustomerCode"].ToString();
                        shipDto.DocDate       = Convert.ToDateTime(dr["DocDate"].ToString());
                        shipDto.SODate        = Convert.ToDateTime(dr["SODate"].ToString());
                        shipDto.OrderOrgCode  = dr["OrderOrgCode"].ToString();
                        shipDto.OrderOrgName  = dr["OrderOrgName"].ToString();
                        shipDto.ShipInvoiceNo = dr["ShipInvoiceNo"].ToString();
                        shipDto.OrgCode       = dr["OrgCode"].ToString();
                        shipDto.ItemCode      = dr["ItemCode"].ToString();
                        shipDto.ItemName      = dr["ItemName"].ToString();
                        shipDto.ItemSpece     = "";//料品规则
                        shipDto.ShipPlanQty   = decimal.Parse(dr["ShipPlanQty"].ToString());
                        shipDto.UOMCode       = dr["UOMCode"].ToString();
                        shipDto.UOMName       = dr["UOMName"].ToString();
                        shipDto.BoxTypeName   = UFIDA.U9.Cust.GS.FT.AllEnumBE.CabinetEnum.EnumRes.GetResourceByValue(Convert.ToInt32(dr["BoxTypeValue"].ToString()));
                        shipDto.Volume        = decimal.Parse(dr["Volume"].ToString());
                        shipDto.NetWeight     = decimal.Parse(dr["NetWeight"].ToString());
                        shipDto.GW            = decimal.Parse(dr["GW"].ToString());
                        shipDto.L             = decimal.Parse(dr["L"].ToString());
                        shipDto.W             = decimal.Parse(dr["W"].ToString());
                        shipDto.H             = decimal.Parse(dr["H"].ToString());
                        shipListDto.Add(shipDto);
                    }
                }
            }
            return(shipListDto);
        }