Эх сурвалжийг харах

LY 预约工作票导出 优化导出

ly 2 жил өмнө
parent
commit
0d0e41f38d

+ 33 - 19
master/src/main/java/com/ruoyi/project/invoice/controller/TInvoiceBookingworkticketController.java

@@ -531,17 +531,31 @@ public class TInvoiceBookingworkticketController extends BaseController {
         List<SysDictData> book_work_type = iSysDictTypeService.selectDictDataByType("book_work_type");
 
         List<TInvoiceWorkcontent> tInvoiceWorkcontentList = tInvoiceBookingworkticketService.selectTInvoiceWorkcontentList(tInvoiceBookingworkticket);
+
+        ExecutorService executorService = Executors.newFixedThreadPool(20);
+        final CountDownLatch latch = new CountDownLatch(tInvoiceWorkcontentList.size()); //相同线程数量的计数
         for (TInvoiceWorkcontent workcontent : tInvoiceWorkcontentList) {
-            TInvoiceBookingworkticket bookingworkticket = tInvoiceBookingworkticketService.selectTInvoiceBookingworkticketById(workcontent.getBookingticketId());
-            SysUser mg = sysUserService.selectUserById(bookingworkticket.getUserMg());
-            bookingworkticket.setUserMgDeptName(mg.getDept().getDeptName());
-            if (bookingworkticket.getUserSupId() != null) {
-                SysUser sup = sysUserService.selectUserById(Long.parseLong(bookingworkticket.getUserSupId()));
-                bookingworkticket.setUserSupDeptName(sup.getDept().getDeptName());
-            }
-            workcontent.setBookingworkticket(bookingworkticket);
+            executorService.execute(() -> {
+                try {
+                    TInvoiceBookingworkticket bookingworkticket = tInvoiceBookingworkticketService.selectTInvoiceBookingworkticketById(workcontent.getBookingticketId());
+                    SysUser mg = sysUserService.selectUserById(bookingworkticket.getUserMg());
+                    bookingworkticket.setUserMgDeptName(mg.getDept().getDeptName());
+                    if (bookingworkticket.getUserSupId() != null) {
+                        SysUser sup = sysUserService.selectUserById(Long.parseLong(bookingworkticket.getUserSupId()));
+                        bookingworkticket.setUserSupDeptName(sup.getDept().getDeptName());
+                    }
+                    workcontent.setBookingworkticket(bookingworkticket);
+                } finally {
+                    latch.countDown();
+                }
+            });
         }
-
+        try {
+            latch.await();
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        executorService.shutdown();
         //除去作废的票 以及 续票
         Iterator<TInvoiceWorkcontent> iterator = tInvoiceWorkcontentList.iterator();
         while (iterator.hasNext()) {
@@ -577,13 +591,13 @@ public class TInvoiceBookingworkticketController extends BaseController {
         //设置列的宽度,第一个参数为列的序号,从0开始,第二参数为列宽,单位1/256个字节
         sheet.setColumnWidth(0, 12 * 256);
         sheet.setColumnWidth(1, 26 * 256);
-        sheet.setColumnWidth(2, 26 * 256);
+        sheet.setColumnWidth(2, 13 * 256);
         sheet.setColumnWidth(3, 26 * 256);
         sheet.setColumnWidth(4, 26 * 256);
-        sheet.setColumnWidth(5, 26 * 256);
-        sheet.setColumnWidth(6, 26 * 256);
-        sheet.setColumnWidth(7, 26 * 256);
-        sheet.setColumnWidth(8, 40 * 256);
+        sheet.setColumnWidth(5, 12 * 256);
+        sheet.setColumnWidth(6, 12 * 256);
+        sheet.setColumnWidth(7, 12 * 256);
+        sheet.setColumnWidth(8, 26 * 256);
         sheet.setColumnWidth(9, 40 * 256);
         sheet.setColumnWidth(10, 40 * 256);
         sheet.setColumnWidth(11, 40 * 256);
@@ -667,7 +681,7 @@ public class TInvoiceBookingworkticketController extends BaseController {
                 }
                 //工艺主管
 
-                row.createCell(4).setCellValue(t.getBookingworkticket().getUserSupDeptName() +" " + t.getBookingworkticket().getUserSupName() + " " + t.getBookingworkticket().getUserSupPhone());
+                row.createCell(4).setCellValue(t.getBookingworkticket().getUserSupDeptName() + " " + t.getBookingworkticket().getUserSupName() + " " + t.getBookingworkticket().getUserSupPhone());
                 //作业单位
                 if (t.getBookingworkticket().getWorkUnit() != null) {
                     row.createCell(5).setCellValue(t.getBookingworkticket().getWorkUnit());
@@ -678,13 +692,13 @@ public class TInvoiceBookingworkticketController extends BaseController {
                 row.createCell(7).setCellValue(t.getBookingworkticket().getPhonenumber());
                 //用户
 
-                row.createCell(8).setCellValue(t.getBookingworkticket().getUserMgDeptName() +" " +t.getBookingworkticket().getUserMgName() + " " + t.getBookingworkticket().getUserMgPhone());
+                row.createCell(8).setCellValue(t.getBookingworkticket().getUserMgDeptName() + " " + t.getBookingworkticket().getUserMgName() + " " + t.getBookingworkticket().getUserMgPhone());
                 //票号
-                String ticketNo = t.getWhgzxkzh() + t.getDhzyxkzh()+t.getGczyxkzh()+t.getMbzyxkzh()+t.getXzkjxkzh() + t.getYqxkzh();
-                row.createCell(9).setCellValue(ticketNo.replaceAll("null" , ""));
+                String ticketNo = t.getWhgzxkzh() + t.getDhzyxkzh() + t.getGczyxkzh() + t.getMbzyxkzh() + t.getXzkjxkzh() + t.getYqxkzh();
+                row.createCell(9).setCellValue(ticketNo.replaceAll("null", ""));
                 rowIndex++;
                 contentUserWorkType.delete(0, contentUserWorkType.length());
-            }catch (Exception e) {
+            } catch (Exception e) {
                 logger.error(e.toString());
             }