1010import com .java110 .front .smo .assetExport .IExportFeeManualCollectionSMO ;
1111import com .java110 .utils .constant .ServiceConstant ;
1212import com .java110 .utils .util .Assert ;
13+ import com .java110 .utils .util .Base64Convert ;
1314import com .java110 .utils .util .DateUtil ;
1415import com .java110 .utils .util .Money2ChineseUtil ;
1516import org .apache .poi .ss .usermodel .*;
1617import org .apache .poi .ss .util .CellRangeAddress ;
18+ import org .apache .poi .xssf .usermodel .XSSFClientAnchor ;
1719import org .apache .poi .xssf .usermodel .XSSFWorkbook ;
1820import org .slf4j .Logger ;
1921import org .slf4j .LoggerFactory ;
@@ -163,17 +165,29 @@ private void getRoomOweFees(IPageData pd, ComponentValidateResult result, Workbo
163165 return ;
164166 }
165167
168+ //查询催缴单二维码
169+ JSONObject feePrint = null ;
170+ apiUrl = ServiceConstant .SERVICE_API_URL + "/api/feePrintSpec/queryFeePrintSpec?page=1&row=1&specCd=1010&communityId=" + result .getCommunityId ();
171+ responseEntity = this .callCenterService (restTemplate , pd , "" , apiUrl , HttpMethod .GET );
172+ if (responseEntity .getStatusCode () == HttpStatus .OK ) {
173+ JSONArray feePrints = savedRoomInfoResults .getJSONArray ("data" );
174+ if (feePrints != null && feePrints .size () > 0 ) {
175+ feePrint = feePrints .getJSONObject (0 );
176+ }
177+ }
178+
166179 Sheet sheet = workbook .createSheet ("催缴单" );
180+ Drawing patriarch = sheet .createDrawingPatriarch ();
167181 int line = 0 ;
168182 double totalPageHeight = 0 ;
169183 for (int roomIndex = 0 ; roomIndex < rooms .size (); roomIndex ++) {
170- Map info = generatorRoomOweFee (sheet , workbook , rooms .getJSONObject (roomIndex ), line , totalPageHeight );
184+ Map info = generatorRoomOweFee (sheet , workbook , rooms .getJSONObject (roomIndex ), line , totalPageHeight , patriarch , feePrint );
171185 line = Integer .parseInt (info .get ("line" ).toString ()) + 1 ;
172186 totalPageHeight = Double .parseDouble (info .get ("totalPageHeight" ).toString ());
173187 }
174188 }
175189
176- private Map <String , Object > generatorRoomOweFee (Sheet sheet , Workbook workbook , JSONObject room , int line , double totalPageHeight ) {
190+ private Map <String , Object > generatorRoomOweFee (Sheet sheet , Workbook workbook , JSONObject room , int line , double totalPageHeight , Drawing patriarch , JSONObject feePrint ) {
177191 JSONArray fees = room .getJSONArray ("fees" );
178192 int defaultRowHeight = 280 ;
179193 //计算当前单子的高度
@@ -232,13 +246,22 @@ private Map<String, Object> generatorRoomOweFee(Sheet sheet, Workbook workbook,
232246
233247
234248 //第一行
249+ if (feePrint != null ) {
250+ XSSFClientAnchor anchor = new XSSFClientAnchor (0 , 0 , 0 , 0 , (short ) 0 , 1 + line , (short ) 1 , 1 + line + 1 );
251+ anchor .setAnchorType (ClientAnchor .AnchorType .MOVE_AND_RESIZE );//设置图片随单元移动调整大小
252+ try {
253+ patriarch .createPicture (anchor , workbook .addPicture (Base64Convert .base64ToByte (feePrint .getString ("qrImg" ).replace ("data:image/png;base64," , "" )), XSSFWorkbook .PICTURE_TYPE_JPEG ));
254+ } catch (IOException e ) {
255+ e .printStackTrace ();
256+ }
257+ }
235258 CellStyle subTitleCellStyle = workbook .createCellStyle ();
236259 subTitleCellStyle .setAlignment (HorizontalAlignment .CENTER );
237260 subTitleCellStyle .setVerticalAlignment (VerticalAlignment .BOTTOM );
238261 row = sheet .createRow (1 + line );
239- cell0 = row .createCell (0 );
240- cell0 .setCellValue ("收费二维码" );
241- cell0 .setCellStyle (subTitleCellStyle );
262+ // cell0 = row.createCell(0);
263+ // cell0.setCellValue("收费二维码");
264+ // cell0.setCellStyle(subTitleCellStyle);
242265 Cell cell1 = row .createCell (1 );
243266 cell1 .setCellValue ("房号:" + room .getString ("floorNum" )
244267 + "-" + room .getString ("unitNum" )
@@ -257,7 +280,9 @@ private Map<String, Object> generatorRoomOweFee(Sheet sheet, Workbook workbook,
257280 row .setRowStyle (rowCellStyle );
258281
259282 //设置表头之上
260- region = new CellRangeAddress (1 + line , 1 + line , 1 , 2 );
283+ region = new CellRangeAddress (1 + line , 1 + line , 1 , 3 );
284+ sheet .addMergedRegion (region );
285+ region = new CellRangeAddress (1 + line , 1 + line , 5 , 6 );
261286 sheet .addMergedRegion (region );
262287 row .setHeight ((short ) (titleHeight ));
263288
0 commit comments