Bläddra i källkod

人员一人一卡

git-svn-id: https://192.168.57.71/svn/lyggkj@38 1a6f6e3a-4066-fe46-b609-79c204482ece
ld_liufl 9 år sedan
förälder
incheckning
9109fe42e9

+ 1 - 1
gkaq/yjpt-flex/trunk/html-template/index.template.html

@@ -54,7 +54,7 @@
             attributes.name = "${application}";
             attributes.align = "middle";
             swfobject.embedSWF(
-                "${swf}.swf?version=4.1.3", "flashContent", 
+                "${swf}.swf?version=4.1.7", "flashContent", 
                 "${width}", "${height}", 
                 swfVersionStr, xiSwfUrlStr, 
                 flashvars, params, attributes);

+ 0 - 16
gkaq/yjpt-flex/trunk/src/com/jtgh/yjpt/model/jyrxxgl/ryqk/RyjbxxModel.as

@@ -1,11 +1,9 @@
 package com.jtgh.yjpt.model.jyrxxgl.ryqk
 {
 	import com.jtgh.yjpt.common.BusinessContext;
-	import com.jtgh.yjpt.common.Global;
 	import com.jtgh.yjpt.common.IModule;
 	import com.jtgh.yjpt.common.component.ui.DataGridColumn;
 	import com.jtgh.yjpt.common.component.ui.Pager;
-	import com.jtgh.yjpt.common.util.Constants;
 	import com.jtgh.yjpt.common.util.Utils;
 	import com.jtgh.yjpt.model.BaseModel;
 	import com.jtgh.yjpt.view.Check.Mb;
@@ -13,12 +11,10 @@ package com.jtgh.yjpt.model.jyrxxgl.ryqk
 	import com.jtgh.yjpt.view.jyrxxgl.ryqk.RyjbxxLayout;
 	import com.jtgh.yjpt.view.jyrxxgl.ryqk.RyjbxxView;
 	import com.jtgh.yjpt.view.jyrxxgl.ryqk.count.RyjbxxCount;
-	import com.jtgh.yjpt.vo.common.AccessoryVo;
 	import com.jtgh.yjpt.vo.common.CodeVo;
 	import com.jtgh.yjpt.vo.common.SinglePageRequestVo;
 	import com.jtgh.yjpt.vo.gkgq.GqVo;
 	import com.jtgh.yjpt.vo.jyr.JyrVo;
-	import com.jtgh.yjpt.vo.jyrxxgl.JyrxxglVo;
 	import com.jtgh.yjpt.vo.jyrxxgl.RyjbxxVo;
 	
 	import flash.display.Bitmap;
@@ -34,14 +30,11 @@ package com.jtgh.yjpt.model.jyrxxgl.ryqk
 	import flash.net.URLVariables;
 	import flash.utils.ByteArray;
 	
-	import mx.binding.utils.BindingUtils;
 	import mx.collections.ArrayCollection;
 	import mx.collections.ArrayList;
 	import mx.controls.Alert;
 	import mx.core.FlexGlobals;
-	import mx.core.IFactory;
 	import mx.events.FlexEvent;
-	import mx.events.ListEvent;
 	import mx.managers.CursorManager;
 	import mx.rpc.events.ResultEvent;
 
@@ -222,9 +215,6 @@ package com.jtgh.yjpt.model.jyrxxgl.ryqk
 						loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleterHandler);
 						loader.loadBytes(acc);
 					}
-					else{
-						view.tx.source=null;
-					}
 				});									
 			},thisView.dataGrid.selectedItem.id);
 		}
@@ -270,18 +260,12 @@ package com.jtgh.yjpt.model.jyrxxgl.ryqk
 						loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleterHandler);
 						loader.loadBytes(acc);
 					}
-					else{
-						view.tx.source=null;
-					}
 					if(null!=data){
 						var img2:BitmapData=new BitmapData(100,100);
 						var loader2:Loader=new Loader;
 						loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleterHandler2);
 						loader2.loadBytes(data);
 					}
-					else{
-						view.tx.source=null;
-					}
 				});					
 			},thisView.dataGrid.selectedItem.id);
 		}

+ 14 - 2
gkaq/yjpt-flex/trunk/src/com/jtgh/yjpt/view/jyrxxgl/ryqk/RyjbxxAdd.mxml

@@ -66,6 +66,7 @@
 					Utils.showInfoMessage("msg.upload.FileSizeOutOfRange",arr);
 					return;
 				}
+				//
 				if(model.vo.zp!=null)
 				{
 					doDeleteFile(model.vo.zp);
@@ -103,6 +104,13 @@
 			{
 				this.tx.source=uploadFile.data;
 			}
+			
+			protected function ts_creationCompleteHandler(event:FlexEvent):void
+			{
+				ts.setStyle("color","red");
+				ts.setStyle("fontSize","10");			
+			}
+			
 		]]>
 	</fx:Script>
 	<s:VGroup width="100%" height="100%" paddingBottom="5"  paddingLeft="5"
@@ -136,8 +144,12 @@
 				</s:HGroup>
 			</s:VGroup>
 			<s:VGroup width="50%" horizontalAlign="center">
-				<s:Image id="tx"  width="100" height="100"/>
-				<s:Button id="browseFile" width="100" label="{resourceManager.getString('common','btn.uploadPhoto')}" enabled="{enable}"/>
+				<s:Image id="tx" width="100" height="100" fillMode="scale" scaleMode="stretch"
+						 smooth="false" smoothingQuality="high"
+						 source="@Embed('resource/images/portrait.png')"/>
+				<s:Label id="ts"  height="10" color="#FF6363" fontSize="10"
+						 text="上传本人近期免冠2寸(像素626*413)正面电子证件照片"/>
+				<s:Button id="browseFile" width="100" label="上传照片" enabled="{enable}"/>
 			</s:VGroup>
 		</s:HGroup>	
 		<s:HGroup width="100%" verticalAlign="middle">

+ 57 - 49
gkaq/yjpt-flex/trunk/src/com/jtgh/yjpt/view/jyrxxgl/ryqk/RyjbxxView.mxml

@@ -12,24 +12,22 @@
 
 	<fx:Script>
 		<![CDATA[
-			import com.anychart.context.AboutAnyChart;
+			import com.jtgh.yjpt.common.BusinessContext;
 			import com.jtgh.yjpt.common.Global;
 			import com.jtgh.yjpt.common.PrintParam;
-			import com.jtgh.yjpt.common.PrintTypes;
 			import com.jtgh.yjpt.common.TypeBase;
 			import com.jtgh.yjpt.common.util.Constants;
 			import com.jtgh.yjpt.common.util.PrintUtil;
+			import com.jtgh.yjpt.common.util.Utils;
 			import com.jtgh.yjpt.model.jyrxxgl.ryqk.RyjbxxAddModel;
-			import com.jtgh.yjpt.model.jyrxxgl.ryqk.RyjbxxModel;
-			import com.jtgh.yjpt.vo.jyrxxgl.RyjbxxVo;
 			import com.jtgh.yjpt.vo.jyrxxgl.RyjbxxZSVo;
 			
-			import mx.collections.ArrayCollection;
-			import mx.controls.Alert;
+			import mx.core.FlexGlobals;
+			import mx.events.CloseEvent;
 			import mx.events.FlexEvent;
+			import mx.managers.PopUpManager;
+			import mx.rpc.events.ResultEvent;
 			import mx.utils.ObjectUtil;
-			import com.jtgh.yjpt.common.util.Utils;
-
 			[Bindable]
 			public var model:RyjbxxAddModel = new RyjbxxAddModel();
 			[Bindable]
@@ -39,7 +37,7 @@
 				model.doCreationComplete(this);
 			}
 
-			private function doPrint():void
+			protected function doPrint():void
 			{
 				var param:PrintParam=new PrintParam("ryjcxx");
 				param.setParameter("id", model.vo.id);
@@ -47,26 +45,24 @@
 				param.setParameter("type",PrintUtil.REPORT_EXPORT_TYPE_WORD);
 				PrintUtil.doPrint1(param,"_blank");
 			}
-			
-			private function doPrint2():void
-			{
-				var param:PrintParam=new PrintParam("ryjcxx");
-				param.setParameter("id", model.vo.id);
-				param.setParameter("sfzh",model.vo.sfzh);
-				param.setParameter("type",PrintUtil.REPORT_EXPORT_TYPE_HTML);
-				PrintUtil.doPrint1(param,"_blank");
-			}
-			
+				
 			public  function doPrint1():void
 			{
-				var param:URLVariables = new URLVariables();
-				param.id=model.vo.id;
-				param.sfzh=model.vo.sfzh;
-				var url:String = Utils.getBaseUrl()+"ryjcxxView.do";
-				var req:URLRequest=new URLRequest(url);
-				req.method = URLRequestMethod.POST;
-				req.data = param;
-				navigateToURL(req,"_blank");
+				if(model.vo!=null){
+					Utils.callRemote("ryjbxxController","getRyzp",function(r:ResultEvent):void{
+						var bc:BusinessContext  = r.result as BusinessContext;
+						var data:ByteArray = bc.getAttribute("ryzp") as ByteArray;
+						var view:RyzpView = new RyzpView;
+						view.data=data;
+						view.ryVo=model.vo;
+						view.addEventListener( CloseEvent.CLOSE,function():void{
+							PopUpManager.removePopUp(view);
+						});
+						view.addEventListener(FlexEvent.CREATION_COMPLETE,function(e:Event):void{PopUpManager.centerPopUp(view);});
+						view.isPopUp=true;
+						PopUpManager.addPopUp(view,FlexGlobals.topLevelApplication as DisplayObject,true);
+					},model.vo);	
+				}	
 			}
 
 			public function showWarn(item:Object):uint
@@ -115,39 +111,51 @@
 									<cus:QLabel width="36%"  text="证件号码"  notNull="true"/>
 									<cus:QTextInput width="60%" id="sfzh" text="@{model.vo.sfzh}" editable="{enable}" />
 								</s:HGroup>
+							</s:VGroup>
+							<s:VGroup width="50%" horizontalAlign="center">
+								<s:HGroup width="100%" horizontalAlign="center">
+									<s:Image id="tx" width="75" height="100" fillMode="scale"
+											 scaleMode="stretch"
+											 source="@Embed('resource/images/portrait.png')"/>
+									<s:Image id="qrcode"  width="100" height="100"/>
+								</s:HGroup>
+							</s:VGroup>				
+						</s:HGroup>
+						<s:HGroup width="100%" verticalAlign="middle">
+							<s:VGroup width="50%" horizontalAlign="center">
 								<s:HGroup width="100%" verticalAlign="middle">
 									<cus:QLabel text="所在地" width="36%" notNull="true"/>
 									<cus:QComboBox id="szd" comboxClass="SzdEditSelect" hasBlank="false"
-												   selectedVO="{model.vo.szd==null?Global.user.szd:model.vo.szd}" width="60%" parentId="{Global.szd.id}"/>					
+												   selectedVO="{model.vo.szd==null?Global.user.szd:model.vo.szd}" width="60%" parentId="{Global.szd.id}" enabled="{enable}" />					
 								</s:HGroup>
 								<s:HGroup width="100%" verticalAlign="middle">
 									<cus:QLabel text="所在港区" width="36%" notNull="true"/>
 									<cus:QComboBox id="szgq"  comboxClass="GqBySzdSelect" parentId="{model.vo.szd==null?Global.user.szd:model.vo.szd}"
 												   selectedVO="{model.vo.ssgq}" hasBlank="false" width="60%" enabled="{enable}"/>
 								</s:HGroup>
+								<s:HGroup width="100%" verticalAlign="middle">
+									<cus:QLabel width="36%" text="{resourceManager.getString('common','gkjyr')}"/>
+									<cus:QComboBox id="qymc"  comboxClass="JyrSelect" selectedVO="{model.vo.ssjyr}" hasBlank="true" width="60%" enabled="{enable}"/>								
+								</s:HGroup>
 							</s:VGroup>
-							<s:VGroup width="25%" horizontalAlign="center">
-								<s:Image id="tx"  width="100" height="100"/>
-							</s:VGroup>
-							<s:VGroup width="25%" horizontalAlign="center">
-								<s:Image id="qrcode"  width="100" height="100"/>
+							<s:VGroup width="50%" horizontalAlign="center">
+								<s:HGroup width="100%" verticalAlign="middle">
+									<cus:QLabel width="36%"  text="职务" />
+									<cus:QTextInput width="60%" text="@{model.vo.zwhzc}" editable="{enable}" />
+								</s:HGroup>
+								<s:HGroup width="100%" verticalAlign="middle">
+									<cus:QLabel width="36%"  text="人员类型" />
+									<cus:QComboBox id="rylx" codeType="{Constants.GROUP_CODE_RYLX}"
+												   comboxClass="CodeSelect" hasBlank="true"
+												   selectedVO="{model.vo.rylx}" width="60%"
+												   enabled="{enable}"/>
+								</s:HGroup>	
+								<s:HGroup width="100%" verticalAlign="middle">								
+									<cus:QLabel width="36%"  text="联系电话" />
+									<cus:QTextInput width="60%" text="@{model.vo.lxdh}" editable="{enable}" />
+								</s:HGroup>
 							</s:VGroup>
-						</s:HGroup>
-						<s:HGroup width="100%" verticalAlign="middle">
-							<cus:QLabel width="18%" text="{resourceManager.getString('common','gkjyr')}"/>
-							<cus:QComboBox id="qymc"  comboxClass="JyrSelect" selectedVO="{model.vo.ssjyr}" hasBlank="true" width="30%" enabled="{enable}"/>
-							<cus:QLabel width="18%"  text="人员类型" />
-							<cus:QComboBox id="rylx" codeType="{Constants.GROUP_CODE_RYLX}"
-										   comboxClass="CodeSelect" hasBlank="true"
-										   selectedVO="{model.vo.rylx}" width="30%"
-										   enabled="{enable}"/>
-						</s:HGroup>	
-						<s:HGroup width="100%" verticalAlign="middle">
-							<cus:QLabel width="18%"  text="职务" />
-							<cus:QTextInput width="30%" text="@{model.vo.zwhzc}" editable="{enable}" />
-							<cus:QLabel width="18%"  text="联系电话" />
-							<cus:QTextInput width="30%" text="@{model.vo.lxdh}" editable="{enable}" />
-						</s:HGroup>
+						</s:HGroup>				
 					</mx:VBox>
 				</s:BorderContainer>
 

+ 89 - 0
gkaq/yjpt-flex/trunk/src/com/jtgh/yjpt/view/jyrxxgl/ryqk/RyzpView.mxml

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		 xmlns:s="library://ns.adobe.com/flex/spark" 
+		 xmlns:mx="library://ns.adobe.com/flex/mx" 
+		 creationComplete="creationCompleteHandler(event)" width="250" height="350">
+	<fx:Script>
+		<![CDATA[
+			import com.jtgh.yjpt.common.BusinessContext;
+			
+			import mx.printing.FlexPrintJobScaleType;
+			
+			import com.jtgh.yjpt.common.PrintParam;
+			import com.jtgh.yjpt.common.util.PrintUtil;
+			import com.jtgh.yjpt.common.util.Utils;
+			import com.jtgh.yjpt.vo.jyrxxgl.RyjbxxVo;
+			
+			import mx.events.CloseEvent;
+			import mx.events.FlexEvent;
+			import mx.printing.FlexPrintJob;
+			import mx.rpc.events.ResultEvent;
+			
+			import spark.components.Image;
+			[Bindable]
+			public var ryVo:RyjbxxVo;
+			[Bindable]
+			public var data:ByteArray;
+			[Bindable]
+			public var pview:RyjbxxView;
+			
+			protected function creationCompleteHandler(event:FlexEvent):void
+			{
+				showTx(data);
+			}
+			
+			public function showTx(data:ByteArray):void{
+				var image:Image=new Image();
+				image.width=250;
+				image.height=300;
+				image.source=data;
+				tx.addElement(image);
+				cursorManager.removeBusyCursor();
+			}
+			
+			private function doPrint():void
+			{
+				var param:PrintParam=new PrintParam("ryjcxx");
+				param.setParameter("id", ryVo.id);
+				param.setParameter("sfzh",ryVo.sfzh);
+				param.setParameter("type",PrintUtil.REPORT_EXPORT_TYPE_PDF);
+				PrintUtil.doPrint1(param,"_blank");
+			}
+			
+			public  function doPrint1():void
+			{
+				var pj:FlexPrintJob = new FlexPrintJob();
+				pj.printAsBitmap = true;
+				if(pj.start()){				
+					var loader:Loader=new Loader;
+					loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{
+						var img:BitmapData;
+						var loadInfo:LoaderInfo =e.target as LoaderInfo;
+						if(loadInfo.content is Bitmap){
+							var image:Image = new Image();
+							addElement(image);
+							image.height=300;
+							image.width=250;
+							image.source = loadInfo.content;
+							pj.addObject(image,FlexPrintJobScaleType.NONE);
+							removeElement(image);				
+						}	
+					});
+					loader.loadBytes(data);
+				}
+			}		
+		]]>
+	</fx:Script>
+	<s:BorderContainer width="100%" height="100%"  borderVisible="false">
+		<s:VGroup  width="100%" height="100%" gap="5">
+			<s:HGroup  id="tx" width="250" horizontalAlign="left" verticalAlign="middle" height="300">
+			</s:HGroup>
+			<s:HGroup width="100%" height="40" verticalAlign="middle" horizontalAlign="center">
+				<s:Button id="cancel" label="关闭" click="this.dispatchEvent(new CloseEvent(CloseEvent.CLOSE))" skinClass="skins.cus.ButtonSkin" />
+				<s:Button id="print" label="{resourceManager.getString('common','btn.download')}" click="doPrint()" skinClass="skins.cus.ButtonSkin" />
+				<s:Button id="print1" label="{resourceManager.getString('common','btn.print')}"
+						  click="doPrint1()" skinClass="skins.cus.ButtonSkin" />
+			</s:HGroup>
+		</s:VGroup>
+	</s:BorderContainer>	
+</s:Group>

BIN
gkaq/yjpt-flex/trunk/src/resource/images/portrait.png


BIN
gkaq/yjpt-java/trunk/flexResource/resource/images/portrait.png


+ 149 - 80
gkaq/yjpt-java/trunk/java_src/com/jtgh/yjpt/controller/jyrxxgl/RyjbxxController.java

@@ -6,6 +6,7 @@ import java.awt.Graphics2D;
 import java.awt.Image;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -155,97 +156,28 @@ public class RyjbxxController extends BaseController {
 		Map<String, Object> parameters = new HashMap<String, Object>();
 		// parameters.put("SUBREPORT_DIR", "iReport/jyr/");
 		String report = "iReport/jyr/ryjcxx.jasper";
-		if (ReportExportHelper.REPORT_EXPORT_TYPE_HTML.equals(type)) {
-			report = "iReport/jyr/ryjcxx-html.jasper";
-			BlobEntity blob = new BlobEntity();
-			blob.setValue(getAccById(Long.parseLong(id)));
-			parameters.put("zp", blob);
+		if (ReportExportHelper.REPORT_EXPORT_TYPE_PDF.equals(type)) {
+			report = "iReport/jyr/ryjcxx-pdf.jasper";			
+			parameters.put("zp", getAccById(Long.parseLong(id)));
+			String url = request.getRequestURL().toString();
+			url = url.replaceAll("ryjcxxJasper.do", "")
+					+ "resource/images/portrait.png";
+			parameters.put("portrait", url);
 			parameters.put(
 					"qrcode",
-					Utils.getQrcodeImage(50, 50, Constants.ALL_QRCODE
+					Utils.getQrcodeImage(75, 75, Constants.ALL_QRCODE
 							+ Constants.QRCODE_RYJBXX + id));
-			InputStream buffin = new ByteArrayInputStream(
-					getAccById(Long.parseLong(id)));
-			InputStream buffin2 = new ByteArrayInputStream(
-					Utils.getQrcodeImage(50, 50, Constants.ALL_QRCODE
-							+ Constants.QRCODE_RYJBXX + id));
-			try {
-				Image img = ImageIO.read(buffin);
-				parameters.put("zp_1", img);
-				Image img2 = ImageIO.read(buffin2);
-				parameters.put("qrcode_1", img2);
-				parameters.put("zp_2", buffin);
-				parameters.put("qrcode_2", buffin2);
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
 		} else {
 			List<RyjbxxZSEntity> dataList2 = new ArrayList<RyjbxxZSEntity>();
 			dataList2 = service.ryjbxxzsByRyid(sfzh);
 			parameters.put("SUBREPORT_DIR", "iReport/jyr/");
 			parameters.put("sublist", dataList2);
-			download(parameters, "人员基础信息", report, type,
-					new JRBeanCollectionDataSource(dataList), response, request);
 		}
-
+		download(parameters, "人员基础信息", report, ReportExportHelper.REPORT_EXPORT_TYPE_WORD,
+				new JRBeanCollectionDataSource(dataList), response, request);
 	}
 
-	@RequestMapping(value = "ryjcxxView", method = RequestMethod.POST)
-	@ResponseBody
-	@RemotingExclude
-	public void ryjcxxView(@RequestParam String id, String sfzh,
-			HttpServletResponse response, HttpServletRequest request) {
-		try {
-			int hength = 200;
-			int width = 400;
-			BufferedImage img = new BufferedImage(width, hength,
-					BufferedImage.TYPE_INT_RGB);
-			RyjbxxEntity data = service.findOne(Long.parseLong(id));
-			for (int i = 0; i < img.getWidth(); i++) {
-				for (int j = 0; j < img.getHeight(); j++) {
-					img.setRGB(i, j, 0xffffff);
-				}
-			}
-			Graphics2D g = (Graphics2D) img.getGraphics();
-			g.setColor(new Color(128,128,255));
-			g.setFont(new Font("宋体", Font.PLAIN, 14));
-			Graphics2D g2 = (Graphics2D) img.getGraphics();
-			g2.setColor(new Color(0,0,0));
-			g2.setFont(new Font("黑体", Font.PLAIN, 14));
-			if(data!=null){
-				//姓名
-				g.drawString("姓名", 10,20);
-				g2.drawString(data.getXm()==null?"":data.getXm(), 90, 20);
-				//职务
-				g.drawString("职务", 10,60);
-				g2.drawString(data.getZwhzc()==null?"":data.getZwhzc(), 90, 60);
-				//联系电话
-				g.drawString("联系电话", 10,100);
-				g2.drawString(data.getLxdh()==null?"":data.getLxdh(), 90, 100);
-				//经营人
-				g.drawString("港口经营人名称", 10,140);
-				g2.drawString(data.getSsjyr()==null?"":data.getSsjyr().getGkjyr(), 120, 140);
-				//人员照片
-				if(getAccById(Long.parseLong(id))!=null){
-					InputStream buffin1 = new ByteArrayInputStream(getAccById(Long.parseLong(id)));
-					Image ryImg = ImageIO.read(buffin1);
-					g.drawImage(ryImg.getScaledInstance(100, 100,
-							Image.SCALE_DEFAULT), 190, 20, null);
-				}				
-				//二维码
-				InputStream buffin2 = new ByteArrayInputStream(Utils.getQrcodeImage(100, 100, Constants.ALL_QRCODE
-						+ Constants.QRCODE_RYJBXX+id));
-				Image qrImg=ImageIO.read(buffin2);
-				g.drawImage(qrImg.getScaledInstance(100, 100,
-						Image.SCALE_DEFAULT), 295, 20, null);
-				response.setCharacterEncoding("utf-8");
-				response.setContentType("image/PNG");
-				ImageIO.write(img, "PNG", response.getOutputStream());
-			}
-		} catch (IOException e) {
-				e.printStackTrace();
-		}	
-	}
+	
 
 	public Collection<String[]> print(List<String> param) {
 		List<PredicateModel> filterList = new ArrayList<PredicateModel>();
@@ -720,4 +652,141 @@ public class RyjbxxController extends BaseController {
 		accessoryEntity.setSuffix("txt");
 		return accessoryService.save(accessoryEntity).getId();
 	}
+	
+	/**
+	 * 获取人员照片
+	 * @param entity
+	 * @return
+	 */
+	public BusinessContext getRyzp(RyjbxxEntity entity) {
+		BusinessContext bc = new BusinessContext();
+		ByteArrayOutputStream o = new ByteArrayOutputStream();
+		try {
+			ImageIO.write(getRyZpImage(entity.getId()), "PNG", o);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		bc.setAttribute("ryzp", o.toByteArray());
+		return bc;
+	}
+	
+	
+	@RequestMapping(value = "ryjcxxView", method = RequestMethod.POST)
+	@ResponseBody
+	@RemotingExclude
+	public void ryjcxxView(@RequestParam String id, String sfzh,
+			HttpServletResponse response, HttpServletRequest request) {
+		try {
+				response.setCharacterEncoding("utf-8");
+				response.setContentType("image/PNG");
+				ImageIO.write(getRyZpImage(Long.parseLong(id)), "PNG", response.getOutputStream());
+		} catch (IOException e) {
+				e.printStackTrace();
+		}	
+	}
+	
+	/**
+	 * 人员卡片
+	 * @param id
+	 * @return
+	 */
+	private BufferedImage getRyZpImage(Long id){
+		int hength = 300;
+		int width = 250;
+		BufferedImage img = new BufferedImage(width, hength,
+				BufferedImage.TYPE_INT_RGB);
+		try {
+			RyjbxxEntity data = service.findOne(id);
+			for (int i = 0; i < img.getWidth(); i++) {
+				for (int j = 0; j < img.getHeight(); j++) {
+					img.setRGB(i, j, 0xffffff);
+				}
+			}
+			Graphics2D g = (Graphics2D) img.getGraphics();
+			g.setColor(new Color(0,0,0));
+			g.setFont(new Font("宋体", Font.PLAIN, 14));
+			/*Graphics2D g2 = (Graphics2D) img.getGraphics();
+			g2.setColor(new Color(0,0,0));
+			g2.setFont(new Font("黑体", Font.PLAIN, 20));
+			Graphics2D g3 = (Graphics2D) img.getGraphics();
+			g3.setColor(new Color(128,128,255));
+			g3.setFont(new Font("宋体", Font.PLAIN, 14));
+			Graphics2D g4= (Graphics2D) img.getGraphics();
+			g4.setColor(new Color(0,0,0));
+			g4.setFont(new Font("黑体", Font.PLAIN, 14));*/
+			if(data!=null){
+				//经营人
+				if(data.getSsjyr()!=null){
+					g.setColor(new Color(97,97,97));
+					g.setFont(new Font("黑体", Font.BOLD, 18));	
+					String jyr = data.getSsjyr().getGkjyr();
+					int jyrLen = 200;
+					if (g.getFontMetrics().charsWidth(jyr.toCharArray(), 0,
+							jyr.length()) <= jyrLen) {
+						g.drawString(jyr,25,30);
+					} else {
+						char[] jyrChars = jyr.toCharArray();
+						int len = 0;
+						String line1 = "";
+						String line2 = "";
+						for (char c : jyrChars) {
+							if (len < jyrLen) {
+								len += g.getFontMetrics().charWidth(c);
+								line1 += String.valueOf(c);
+							} else {
+								line2 += String.valueOf(c);
+							}
+						}
+						g.drawString(line1,25,20);
+						g.drawString(line2,25,40);
+					}	
+				}
+				//人员照片
+				if(getAccById(id)!=null){		
+					InputStream buffin1 = new ByteArrayInputStream(getAccById(id));
+					Image ryImg = ImageIO.read(buffin1);
+					g.drawImage(ryImg.getScaledInstance(100, 125,
+							Image.SCALE_SMOOTH), 0, 50, null);
+				} else {	
+					InputStream imgIn = new FileInputStream(Utils.getSession()
+							.getServletContext().getRealPath("/")
+							+ "resource/images/portrait.png");
+					Image portrait = ImageIO.read(imgIn);
+					g.drawImage(portrait.getScaledInstance(100, 125,
+							Image.SCALE_SMOOTH), 0, 50, null);
+				}
+				//工作证背景
+				g.setColor(new Color(33,165,182));
+				g.fillRect(100, 50, 150, 125);
+				//工作证
+				g.setColor(new Color(255,255,255));
+				g.setFont(new Font("宋体", Font.PLAIN, 20));
+				g.drawString("工作证", 100,75);
+				//姓名 人员类型,联系电话
+				g.setColor(new Color(168,168,168));
+				g.setFont(new Font("宋体", Font.PLAIN, 14));
+				g.drawString("  姓 名 ", 15,215);
+				g.drawString("人员类型", 15,240);
+				g.drawString("联系电话", 15,265);
+				g.setColor(new Color(36,36,36));
+				g.setFont(new Font("黑体", Font.PLAIN, 14));
+				g.drawString(data.getXm()==null?"":data.getXm(), 75, 215);
+				//人员类型
+				g.drawString(data.getRylx()==null?"":data.getRylx().getBz(), 75, 240);
+				//联系电话
+				g.drawString(data.getLxdh()==null?"":data.getLxdh(), 75, 265);						
+				//二维码
+				InputStream buffin2 = new ByteArrayInputStream(Utils.getQrcodeImage(100, 100, Constants.ALL_QRCODE
+						+ Constants.QRCODE_RYJBXX+id));
+				Image qrImg=ImageIO.read(buffin2);
+				g.drawImage(qrImg.getScaledInstance(75, 75,
+						Image.SCALE_DEFAULT), 175, 200, null);
+			}
+		} catch (IOException e) {
+				e.printStackTrace();								
+		}	
+		return img;
+	}
+	
+	
 }

+ 16 - 0
gkaq/yjpt-java/trunk/java_src/com/jtgh/yjpt/webService/common/accessory/FjWebService.java

@@ -181,6 +181,22 @@ public class FjWebService {
 				.findByEntityIdAndEntityTypeAndType(entityId, sslx, lx);
 		return list;
 	}
+	
+	/**
+	 * 返回的附件不包含内容
+	 * @param entityId
+	 * @param sslx
+	 * @param lx
+	 * @return
+	 */
+	public List<AccessoryEntity> findNoBlobByEntityIdAndEntityTypeAndType(long entityId, long sslx, long lx){
+		List<AccessoryEntity> list = accessoryService
+				.findByEntityIdAndEntityTypeAndType(entityId, sslx, lx);
+		for(AccessoryEntity entity:list){
+			entity.setContent(new BlobEntity());
+		}
+		return list;
+	}
 
 	/**
 	 * 保存附件数据

+ 16 - 1
gkaq/yjpt-java/trunk/java_src/com/jtgh/yjpt/webService/zysqbp/WhsqbpWebService.java

@@ -379,6 +379,7 @@ public class WhsqbpWebService extends BaseController {
 			sqbp.setAddDate(new Date());
 			sqbp.setAddUser(Utils.getWebServiceUser());
 			sqbp.setRecordCode("90");
+			sqbp.setKgzt(Constants.NO);
 		} else {
 			sqbp.setUpdateDate(new Date());
 			sqbp.setUpdateUser(Utils.getWebServiceUser());
@@ -393,7 +394,20 @@ public class WhsqbpWebService extends BaseController {
 	 * @return
 	 */
 	public ZysqbpEntity saveKgWg(ZysqbpEntity sqbp) {
-		return zysqbpService.kgwgSave(sqbp);
+		if(sqbp!=null){
+			ZysqbpEntity entity = zysqbpService.findOne(sqbp.getId());
+			entity.setUpdateDate(new Date());
+			entity.setUpdateUser(Utils.getWebServiceUser());
+			entity.setKgzt(sqbp.getKgzt());
+			entity.setKgsj(sqbp.getKgsj());
+			entity.setKpsj(sqbp.getKpsj());
+			entity.setSg(sqbp.getSg());
+			entity.setXg(sqbp.getXg());
+			entity.setWgzt(sqbp.getWgzt());
+			entity.setWgsj(sqbp.getWgsj());
+			sqbp= zysqbpService.kgwgSave(sqbp);
+		}
+		return sqbp;		
 	}
 
 	/**
@@ -408,6 +422,7 @@ public class WhsqbpWebService extends BaseController {
 			sqbp.setAddDate(new Date());
 			sqbp.setAddUser(Utils.getWebServiceUser());
 			sqbp.setRecordCode("90");
+			sqbp.setKgzt(Constants.NO);//确保开 工状态有数据
 		} else {
 			sqbp.setUpdateDate(new Date());
 			sqbp.setUpdateUser(Utils.getWebServiceUser());

BIN
gkaq/yjpt-java/trunk/resources/iReport/jyr/ryjcxx-html.jasper


+ 0 - 120
gkaq/yjpt-java/trunk/resources/iReport/jyr/ryjcxx-html.jrxml

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="ryjcxx" language="groovy" pageWidth="595" pageHeight="855" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isIgnorePagination="true" uuid="6ba495ef-8263-45ad-a2fd-2d5f92c4f9fd">
-	<property name="ireport.zoom" value="1.0"/>
-	<property name="ireport.x" value="0"/>
-	<property name="ireport.y" value="71"/>
-	<parameter name="zp" class="com.jtgh.yjpt.entity.common.BlobEntity"/>
-	<parameter name="qrcode" class="java.lang.Object"/>
-	<parameter name="zp_1" class="java.lang.Object"/>
-	<parameter name="qrcode_1" class="java.lang.Object"/>
-	<parameter name="zp_2" class="java.io.InputStream"/>
-	<parameter name="qrcode_2" class="java.io.InputStream"/>
-	<queryString>
-		<![CDATA[]]>
-	</queryString>
-	<field name="zwhzc" class="java.lang.String">
-		<fieldDescription><![CDATA[zwhzc]]></fieldDescription>
-	</field>
-	<field name="xm" class="java.lang.String">
-		<fieldDescription><![CDATA[xm]]></fieldDescription>
-	</field>
-	<field name="ssjyr" class="com.jtgh.yjpt.entity.jyr.JyrEntity">
-		<fieldDescription><![CDATA[ssjyr]]></fieldDescription>
-	</field>
-	<field name="lxdh" class="java.lang.String">
-		<fieldDescription><![CDATA[lxdh]]></fieldDescription>
-	</field>
-	<background>
-		<band splitType="Stretch"/>
-	</background>
-	<detail>
-		<band height="815" splitType="Immediate">
-			<textField isBlankWhenNull="true">
-				<reportElement x="60" y="40" width="100" height="30" uuid="c2a0e6e5-5a10-459c-855e-0d43c40f1ec1"/>
-				<textElement verticalAlignment="Middle">
-					<font fontName="黑体"/>
-				</textElement>
-				<textFieldExpression><![CDATA[$F{zwhzc}]]></textFieldExpression>
-			</textField>
-			<staticText>
-				<reportElement x="10" y="10" width="50" height="30" forecolor="#8080FF" uuid="0d76b95d-7544-49da-9ed0-8b2f32e78d8d"/>
-				<textElement verticalAlignment="Middle">
-					<font fontName="仿宋"/>
-				</textElement>
-				<text><![CDATA[姓名]]></text>
-			</staticText>
-			<staticText>
-				<reportElement x="10" y="70" width="50" height="30" forecolor="#8080FF" uuid="1710a381-2dc5-45fe-bb12-95f10050592f"/>
-				<textElement verticalAlignment="Middle">
-					<font fontName="仿宋"/>
-				</textElement>
-				<text><![CDATA[联系电话]]></text>
-			</staticText>
-			<staticText>
-				<reportElement x="10" y="40" width="50" height="30" forecolor="#8080FF" uuid="aba4540a-7616-4c35-a671-29cc791e89a5"/>
-				<textElement verticalAlignment="Middle">
-					<font fontName="仿宋"/>
-				</textElement>
-				<text><![CDATA[职务]]></text>
-			</staticText>
-			<staticText>
-				<reportElement x="10" y="100" width="75" height="30" forecolor="#8080FF" uuid="df66452b-3893-4af7-968c-8e38c04fbc56"/>
-				<textElement verticalAlignment="Middle">
-					<font fontName="仿宋"/>
-				</textElement>
-				<text><![CDATA[港口经营人名称]]></text>
-			</staticText>
-			<textField isBlankWhenNull="true">
-				<reportElement x="60" y="70" width="100" height="30" uuid="0231e712-d427-4ebb-95f6-d68c1c86a563"/>
-				<textElement verticalAlignment="Middle">
-					<font fontName="黑体"/>
-				</textElement>
-				<textFieldExpression><![CDATA[$F{lxdh}]]></textFieldExpression>
-			</textField>
-			<textField isBlankWhenNull="true">
-				<reportElement x="85" y="100" width="225" height="30" uuid="e9b6cc7a-e72d-4b76-abb6-19b4478f2b3b"/>
-				<textElement verticalAlignment="Middle">
-					<font fontName="黑体"/>
-				</textElement>
-				<textFieldExpression><![CDATA[$F{ssjyr}.getGkjyr()]]></textFieldExpression>
-			</textField>
-			<textField isBlankWhenNull="true">
-				<reportElement x="60" y="10" width="100" height="30" uuid="7a513df3-74a6-4a8a-8de1-806c64b935b1"/>
-				<textElement verticalAlignment="Middle">
-					<font fontName="黑体"/>
-				</textElement>
-				<textFieldExpression><![CDATA[$F{xm}]]></textFieldExpression>
-			</textField>
-			<textField>
-				<reportElement x="160" y="10" width="610" height="90" uuid="2ea10b3a-c9da-4445-beec-cdb322af6257"/>
-				<textFieldExpression><![CDATA[$P{qrcode}==null?"":$P{qrcode}.toString()]]></textFieldExpression>
-			</textField>
-			<image isLazy="true">
-				<reportElement isPrintRepeatedValues="false" x="10" y="130" width="100" height="100" uuid="accf78bf-4bd7-4f83-9d10-55ceb17f304a"/>
-				<imageExpression><![CDATA[net.sf.jasperreports.engine.util.JRImageLoader.loadImage($P{zp}.getValue())]]></imageExpression>
-			</image>
-			<image scaleImage="RealSize" isLazy="true">
-				<reportElement isPrintRepeatedValues="false" x="125" y="130" width="50" height="50" uuid="efb32dd4-d1cd-48a8-9dc2-769a178fff0c"/>
-				<imageExpression><![CDATA[new java.io.ByteArrayInputStream((byte[])$P{qrcode})]]></imageExpression>
-			</image>
-			<image isUsingCache="true" isLazy="true">
-				<reportElement x="226" y="151" width="100" height="50" uuid="28586190-654a-4bc0-b355-19f67586c2d5"/>
-				<imageExpression><![CDATA[javax.imageio.ImageIO.read(new java.io.ByteArrayInputStream($P{zp}.getValue()))]]></imageExpression>
-			</image>
-			<frame>
-				<reportElement x="10" y="280" width="658" height="88" uuid="e82f4ee4-e799-4a55-8d65-75b963638ff1"/>
-				<image isUsingCache="true" isLazy="true">
-					<reportElement x="0" y="0" width="100" height="88" uuid="ef76e753-d3a5-4691-a22c-5e1230f385b8"/>
-					<imageExpression><![CDATA[javax.imageio.ImageIO.read($P{zp_2})]]></imageExpression>
-				</image>
-			</frame>
-			<frame>
-				<reportElement x="10" y="368" width="658" height="88" uuid="97e8a0c9-d368-4f08-b590-7b2aa44d1f9a"/>
-				<image scaleImage="RealSize" isUsingCache="true" isLazy="true">
-					<reportElement x="0" y="0" width="100" height="88" uuid="9b708262-20d9-4028-adf8-d698b433d317"/>
-					<imageExpression><![CDATA[$P{zp_1}]]></imageExpression>
-				</image>
-			</frame>
-		</band>
-	</detail>
-</jasperReport>

BIN
gkaq/yjpt-java/trunk/resources/iReport/jyr/ryjcxx-pdf.jasper


+ 98 - 0
gkaq/yjpt-java/trunk/resources/iReport/jyr/ryjcxx-pdf.jrxml

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="ryjcxx" language="groovy" pageWidth="290" pageHeight="340" columnWidth="250" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isIgnorePagination="true" uuid="6ba495ef-8263-45ad-a2fd-2d5f92c4f9fd">
+	<property name="ireport.zoom" value="1.0"/>
+	<property name="ireport.x" value="0"/>
+	<property name="ireport.y" value="0"/>
+	<parameter name="zp" class="byte[]"/>
+	<parameter name="qrcode" class="byte[]"/>
+	<parameter name="portrait" class="java.lang.String"/>
+	<queryString>
+		<![CDATA[]]>
+	</queryString>
+	<field name="lxdh" class="java.lang.String">
+		<fieldDescription><![CDATA[lxdh]]></fieldDescription>
+	</field>
+	<field name="rylx" class="com.jtgh.yjpt.entity.common.CodeEntity">
+		<fieldDescription><![CDATA[rylx]]></fieldDescription>
+	</field>
+	<field name="ssjyr" class="com.jtgh.yjpt.entity.jyr.JyrEntity">
+		<fieldDescription><![CDATA[ssjyr]]></fieldDescription>
+	</field>
+	<field name="xm" class="java.lang.String">
+		<fieldDescription><![CDATA[xm]]></fieldDescription>
+	</field>
+	<background>
+		<band splitType="Stretch"/>
+	</background>
+	<detail>
+		<band height="300" splitType="Immediate">
+			<textField isBlankWhenNull="true">
+				<reportElement x="65" y="214" width="100" height="30" forecolor="#242424" uuid="c2a0e6e5-5a10-459c-855e-0d43c40f1ec1"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="宋体"/>
+				</textElement>
+				<textFieldExpression><![CDATA[$F{rylx}.getBz()]]></textFieldExpression>
+			</textField>
+			<staticText>
+				<reportElement x="15" y="184" width="50" height="30" forecolor="#A8A8A8" uuid="0d76b95d-7544-49da-9ed0-8b2f32e78d8d"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="宋体" size="12"/>
+				</textElement>
+				<text><![CDATA[ 姓 名]]></text>
+			</staticText>
+			<staticText>
+				<reportElement x="15" y="244" width="50" height="30" forecolor="#A8A8A8" uuid="1710a381-2dc5-45fe-bb12-95f10050592f"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="宋体" size="12"/>
+				</textElement>
+				<text><![CDATA[联系电话]]></text>
+			</staticText>
+			<staticText>
+				<reportElement x="15" y="214" width="50" height="30" forecolor="#A8A8A8" uuid="aba4540a-7616-4c35-a671-29cc791e89a5"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="宋体" size="12"/>
+				</textElement>
+				<text><![CDATA[人员类型]]></text>
+			</staticText>
+			<textField isBlankWhenNull="true">
+				<reportElement x="65" y="244" width="100" height="30" forecolor="#242424" uuid="0231e712-d427-4ebb-95f6-d68c1c86a563"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="宋体"/>
+				</textElement>
+				<textFieldExpression><![CDATA[$F{lxdh}]]></textFieldExpression>
+			</textField>
+			<textField isBlankWhenNull="true">
+				<reportElement x="0" y="0" width="250" height="50" forecolor="#616161" uuid="e9b6cc7a-e72d-4b76-abb6-19b4478f2b3b"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="宋体" size="18" isBold="true"/>
+				</textElement>
+				<textFieldExpression><![CDATA[$F{ssjyr}.getGkjyr()]]></textFieldExpression>
+			</textField>
+			<textField isBlankWhenNull="true">
+				<reportElement x="65" y="184" width="100" height="30" forecolor="#242424" uuid="7a513df3-74a6-4a8a-8de1-806c64b935b1"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="宋体"/>
+				</textElement>
+				<textFieldExpression><![CDATA[$F{xm}]]></textFieldExpression>
+			</textField>
+			<frame>
+				<reportElement mode="Opaque" x="0" y="50" width="250" height="125" backcolor="#21A5B6" uuid="f45b84b2-29f2-43e4-93d0-86e1b1f26771"/>
+				<image scaleImage="RealSize" isLazy="true">
+					<reportElement isPrintRepeatedValues="false" x="0" y="0" width="100" height="125" uuid="efb32dd4-d1cd-48a8-9dc2-769a178fff0c"/>
+					<imageExpression><![CDATA[$P{zp}==null?$P{portrait}:new java.io.ByteArrayInputStream($P{zp})]]></imageExpression>
+				</image>
+				<staticText>
+					<reportElement x="129" y="21" width="100" height="40" forecolor="#FFFFFF" uuid="e7eab92c-3632-4095-94fd-f37c49f60746"/>
+					<textElement>
+						<font fontName="宋体" size="20"/>
+					</textElement>
+					<text><![CDATA[工作证]]></text>
+				</staticText>
+			</frame>
+			<image scaleImage="RealSize" isLazy="true">
+				<reportElement isPrintRepeatedValues="false" x="165" y="200" width="75" height="75" uuid="438206de-fa7e-44de-b3fd-42c8db0b925d"/>
+				<imageExpression><![CDATA[new java.io.ByteArrayInputStream($P{qrcode})]]></imageExpression>
+			</image>
+		</band>
+	</detail>
+</jasperReport>

+ 50 - 0
gkaq/yjpt-java/trunk/resources/iReport/jyr/ryjcxx-pdf.pdf

@@ -0,0 +1,50 @@
+%PDF-1.4
+%âãÏÓ
+3 0 obj
+<</Length 183/Filter/FlateDecode>>stream
+xœ½R±
+Â0Ýï+ÞXëÝ%iÚUÐÁMÈ&NÖ„öÿ“‚ZŠHE”�¼KîñÞñÈ•Ö�Lá¦M =)véUÀq¥ÓXFèhµH¬Êá’¸O
+ãÔM¯‡cÄz�›tFêÆAÄ=ä5És^¸²TL±o)’7£}á?×Ð}à÷½[ùc·9­¬¤™­ç"¢ãMš]êãvŒ¥¨C¦æM0b+¨úÜU÷ttøZ’zó³•7Ÿ,Š£
+endstream
+endobj
+1 0 obj
+<</Group<</Type/Group/CS/DeviceRGB/S/Transparency>>/Parent 4 0 R/Contents 3 0 R/Type/Page/Resources<</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]/ColorSpace<</CS/DeviceRGB>>/Font<</F1 2 0 R>>>>/MediaBox[0 0 290 340]>>
+endobj
+5 0 obj
+[1 0 R/XYZ 0 350 0]
+endobj
+2 0 obj
+<</BaseFont/Helvetica/Type/Font/Encoding/WinAnsiEncoding/Subtype/Type1>>
+endobj
+4 0 obj
+<</ITXT(2.1.7)/Type/Pages/Count 1/Kids[1 0 R]>>
+endobj
+6 0 obj
+<</Names[(JR_PAGE_ANCHOR_0_1) 5 0 R]>>
+endobj
+7 0 obj
+<</Dests 6 0 R>>
+endobj
+8 0 obj
+<</Names 7 0 R/Type/Catalog/ViewerPreferences<</PrintScaling/AppDefault>>/Pages 4 0 R>>
+endobj
+9 0 obj
+<</Creator(JasperReports Library version 5.6.0)/Producer(iText 2.1.7 by 1T3XT)/ModDate(D:20160721020657+08'00')/CreationDate(D:20160721020657+08'00')>>
+endobj
+xref
+0 10
+0000000000 65535 f 
+0000000265 00000 n 
+0000000534 00000 n 
+0000000015 00000 n 
+0000000622 00000 n 
+0000000499 00000 n 
+0000000685 00000 n 
+0000000739 00000 n 
+0000000771 00000 n 
+0000000874 00000 n 
+trailer
+<</Root 8 0 R/ID [<f6b1b04c3d8cc17054ffd50bd5bc1059><4149d7fef5820ff46b4bce28607226a4>]/Info 9 0 R/Size 10>>
+startxref
+1041
+%%EOF