|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|