| 
					
				 | 
			
			
				@@ -3,6 +3,8 @@ package org.jeecg.modules.openApi.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.jeecg.modules.openApi.service.IRdrecord11Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.jeecg.modules.openApi.service.ISenYuDataSourceThree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jeecg.modules.system.entity.SysDictItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jeecg.modules.system.mapper.SysDictItemMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.jeecg.modules.system.util.JsonChangeUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.jeecg.modules.system.util.oConvertUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -21,9 +23,13 @@ import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class Rdrecord11ServiceImpl  implements IRdrecord11Service { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private ISenYuDataSourceThree senYuDataSourceThree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SysDictItemMapper sysDictItemMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public JSONObject getRdrecord(String org, String cCode) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         JSONObject resultJson=new JSONObject(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -52,6 +58,33 @@ public class Rdrecord11ServiceImpl  implements IRdrecord11Service { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public JSONObject getRdrecordToPrint(String org, String cCode) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         JSONObject resultJson=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取字典里打印参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysDictItem sysDictItemBySplit=null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysDictItem sysDictItemByPrint=null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<SysDictItem> listSysDictItem=sysDictItemMapper.selectItemsByMaincode("pda_setting"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (SysDictItem item:listSysDictItem){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(item.getItemText().equals("print_split_sum")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sysDictItemBySplit=item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else if(item.getItemText().equals("print_imageParam")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sysDictItemByPrint=item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(null==sysDictItemBySplit||null==sysDictItemByPrint){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           throw new Exception("获取打印参数失败,请检查字典配置-PDA设置!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int splitNum=Integer.parseInt(sysDictItemBySplit.getItemValue());//分割数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String[] printParam=sysDictItemByPrint.getItemValue().split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int backImageWidth=Integer.parseInt(printParam[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int backImageHeight=Integer.parseInt(printParam[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int qrWidth=Integer.parseInt(printParam[2]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int qrHeight=Integer.parseInt(printParam[3]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int x_text=Integer.parseInt(printParam[4]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int y_text=Integer.parseInt(printParam[5]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int x_image=Integer.parseInt(printParam[6]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int spacing=Integer.parseInt(printParam[7]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int fintSize=Integer.parseInt(printParam[8]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         FileSystemView fsv = FileSystemView.getFileSystemView(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         File com = fsv.getHomeDirectory(); //这两行行是获取桌面路径的具体方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String finalPath=com.getPath()+"/imagePrint";//数据缓存位置,默认放在桌面 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -81,7 +114,7 @@ public class Rdrecord11ServiceImpl  implements IRdrecord11Service { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for(int i=0;i<pljf.size();i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 JSONObject onejson=pljf.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //生成二维码数量= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                int num=(onejson.getBigDecimal("数量").divide(new BigDecimal("15000"),0,BigDecimal.ROUND_UP)).intValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int num=(onejson.getBigDecimal("数量").divide(new BigDecimal(splitNum),0,BigDecimal.ROUND_UP)).intValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sum=sum+num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for(int j=0;j<num;j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     serialNum=serialNum+1; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -89,35 +122,34 @@ public class Rdrecord11ServiceImpl  implements IRdrecord11Service { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String newFilePath=finalPath+"/"+serialNum+".png"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     pathList.add(newFilePath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //生成二维码图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    BufferedImage bufferedImage=oConvertUtils.getBufferedImage(onejson.toJSONString(),200,200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BufferedImage bufferedImage=oConvertUtils.getBufferedImage(onejson.toJSONString(),qrWidth,qrHeight); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //背景图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    BufferedImage backImage = new BufferedImage(400, 400,BufferedImage.TYPE_INT_RGB); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BufferedImage backImage = new BufferedImage(backImageWidth, backImageHeight,BufferedImage.TYPE_INT_RGB); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //显示文字 缸号,委外订单号,匹数,物料,描述,关键属性,供应商,接收方 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //绘制合成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Graphics2D backGraphics=backImage.createGraphics(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.setClip(0, 0, 400, 400);//设置绘画的区域,默认背景是黑色,也叫做获取画笔,指定画笔可画的范围 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.setClip(0, 0, backImageWidth, backImageHeight);//设置绘画的区域,默认背景是黑色,也叫做获取画笔,指定画笔可画的范围 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     backGraphics.setColor(Color.white);//设置画笔颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.fillRect(0, 0, 400, 400);//画一个矩形块,颜色是白色,因为画笔颜色是白色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.fillRect(0, 0, backImageWidth, backImageHeight);//画一个矩形块,颜色是白色,因为画笔颜色是白色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //放文字 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     backGraphics.setColor(Color.black); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    int bTextSize=15; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    Font font=new Font("宋体",Font.BOLD,bTextSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Font font=new Font("宋体",Font.BOLD,fintSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     backGraphics.setFont(font); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     backGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawString("缸号:"+onejson.getString("缸单条码"),0,30+bTextSize*0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawString("委外订单号:"+onejson.getString("下游订单"),0,30+(bTextSize+5)*1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawString("匹数:"+onejson.getString("匹数"),0,30+(bTextSize+5)*2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawString("物料:"+onejson.getString("物料"),0,30+(bTextSize+5)*3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawString("描述:"+onejson.getString("描述"),0,30+(bTextSize+5)*4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawString("关键属性:",0,30+(bTextSize+5)*5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawString("供应商:"+onejson.getString("供应商"),0,30+(bTextSize+5)*6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawString("接收方:"+onejson.getString("接收方"),0,30+(bTextSize+5)*7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawString("缸号:"+onejson.getString("缸单条码"),x_text,y_text+fintSize*0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawString("委外订单号:"+onejson.getString("下游订单"),x_text,y_text+(spacing+fintSize)*1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawString("匹数:"+onejson.getString("匹数"),x_text,y_text+(spacing+fintSize)*2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawString("物料:"+onejson.getString("物料"),x_text,y_text+(spacing+fintSize)*3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawString("描述:"+onejson.getString("描述"),x_text,y_text+(spacing+fintSize)*4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawString("关键属性:",x_text,y_text+(spacing+fintSize)*5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawString("供应商:"+onejson.getString("供应商"),x_text,y_text+(spacing+fintSize)*6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawString("接收方:"+onejson.getString("接收方"),x_text,y_text+(spacing+fintSize)*7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //放图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    backGraphics.drawImage(bufferedImage, 0,180, bufferedImage.getWidth(), bufferedImage.getHeight(),null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    backGraphics.drawImage(bufferedImage, x_image,y_text+spacing+(spacing+fintSize)*7, bufferedImage.getWidth(), bufferedImage.getHeight(),null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     backGraphics.dispose();// 释放对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |