张延森 2 years ago
parent
commit
2685a54fae

+ 20
- 0
src/main/java/com/njyunzhi/invoice/controller/TaInvoiceDetailController.java View File

68
         return ResponseBean.success(result);
68
         return ResponseBean.success(result);
69
     }
69
     }
70
 
70
 
71
+
72
+    /**
73
+     * 分页查询列表
74
+     * @param pageNum
75
+     * @param pageSize
76
+     * @return
77
+     */
78
+    @RequestMapping(value="/admin/invoice/{invoiceId}/detail",method= RequestMethod.GET)
79
+    @ApiOperation(value="报销列表", notes = "报销列表", httpMethod = "GET", response = ResponseBean.class)
80
+    public ResponseBean getList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
81
+                                @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
82
+                                @ApiParam("班级ID") @PathVariable(value ="invoiceId") String invoiceId,
83
+                                @ApiParam("单位名称") @PathVariable(value ="orgName", required = false) String orgName,
84
+                                @ApiParam("报销人名称") @PathVariable(value ="personName", required = false) String personName) throws Exception{
85
+
86
+        IPage<TaInvoiceDetail> pg = new Page<>(pageNum, pageSize);
87
+        IPage<TaInvoiceDetail> result = iTaInvoiceDetailService.getPageBy(pg, invoiceId, orgName, personName);
88
+        return ResponseBean.success(result);
89
+    }
90
+
71
     @RequestMapping(value="/admin/invoice/{invoiceId}/detail-tpl",method= RequestMethod.POST)
91
     @RequestMapping(value="/admin/invoice/{invoiceId}/detail-tpl",method= RequestMethod.POST)
72
     @ApiOperation(value="一键生成", notes = "一键生成", httpMethod = "POST", response = ResponseBean.class)
92
     @ApiOperation(value="一键生成", notes = "一键生成", httpMethod = "POST", response = ResponseBean.class)
73
     public ResponseBean taInvoiceDetailAdd(@ApiParam("班级ID") @PathVariable(value ="invoiceId") String invoiceId) throws Exception{
93
     public ResponseBean taInvoiceDetailAdd(@ApiParam("班级ID") @PathVariable(value ="invoiceId") String invoiceId) throws Exception{

+ 3
- 2
src/main/java/com/njyunzhi/invoice/controller/TaInvoiceFillController.java View File

103
 
103
 
104
         String tplPath = "excel/invoice_tpl.xlsx";  // 相对 resource 目录位置
104
         String tplPath = "excel/invoice_tpl.xlsx";  // 相对 resource 目录位置
105
         InputStream inputStream = fileUtil.getResourceFile(tplPath);
105
         InputStream inputStream = fileUtil.getResourceFile(tplPath);
106
-        String expFile = String.format("%s开票信息表.xlsx", invoiceFill.getName());
106
+        String expFile = StringUtils.urlEncode(String.format("%s开票信息表.xlsx", invoiceFill.getName()));
107
 
107
 
108
         response.setContentType("application/vnd.ms-excel");
108
         response.setContentType("application/vnd.ms-excel");
109
         response.setCharacterEncoding("utf-8");
109
         response.setCharacterEncoding("utf-8");
115
 //                .doFill(list);
115
 //                .doFill(list);
116
 
116
 
117
         List<Object> mergeDataList = list.stream().map(x -> x.getPersonName()).collect(Collectors.toList());
117
         List<Object> mergeDataList = list.stream().map(x -> x.getPersonName()).collect(Collectors.toList());
118
-        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), TaInvoiceDetail.class).build();
118
+        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), TaInvoiceDetail.class).withTemplate(inputStream).build();
119
         WriteSheet writeSheet = EasyExcel.writerSheet().registerWriteHandler(new MergeRowStrategy(mergeDataList, 2, 0)).build();
119
         WriteSheet writeSheet = EasyExcel.writerSheet().registerWriteHandler(new MergeRowStrategy(mergeDataList, 2, 0)).build();
120
         FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
120
         FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
121
 
121
 
122
         excelWriter.fill(list, fillConfig, writeSheet);
122
         excelWriter.fill(list, fillConfig, writeSheet);
123
+        excelWriter.finish();
123
     }
124
     }
124
 
125
 
125
     /**
126
     /**

+ 5
- 0
src/main/java/com/njyunzhi/invoice/mapper/TaInvoiceDetailMapper.java View File

38
                                          @Param("personName") String personName);
38
                                          @Param("personName") String personName);
39
 
39
 
40
     TaInvoiceDetail getTplByPerson(@Param("invoiceId") String invoiceId, @Param("invoicePersonId") String invoicePersonId);
40
     TaInvoiceDetail getTplByPerson(@Param("invoiceId") String invoiceId, @Param("invoicePersonId") String invoicePersonId);
41
+
42
+    IPage<TaInvoiceDetail> getPageBy(IPage<TaInvoiceDetail> pg,
43
+                                     @Param("invoiceId") String invoiceId,
44
+                                     @Param("orgName") String orgName,
45
+                                     @Param("personName") String personName);
41
 }
46
 }

+ 2
- 0
src/main/java/com/njyunzhi/invoice/service/ITaInvoiceDetailService.java View File

35
     boolean createOrUpdateItem(TaInvoiceItem taInvoiceItem) throws Exception;
35
     boolean createOrUpdateItem(TaInvoiceItem taInvoiceItem) throws Exception;
36
 
36
 
37
     boolean deleteItem(String invoiceId, Integer itemId);
37
     boolean deleteItem(String invoiceId, Integer itemId);
38
+
39
+    IPage<TaInvoiceDetail> getPageBy(IPage<TaInvoiceDetail> pg, String invoiceId, String orgName, String personName);
38
 }
40
 }

+ 5
- 0
src/main/java/com/njyunzhi/invoice/service/impl/TaInvoiceDetailServiceImpl.java View File

130
     public boolean deleteItem(String invoiceId, Integer itemId) {
130
     public boolean deleteItem(String invoiceId, Integer itemId) {
131
         return taInvoiceItemMapper.deleteById(itemId) > 0;
131
         return taInvoiceItemMapper.deleteById(itemId) > 0;
132
     }
132
     }
133
+
134
+    @Override
135
+    public IPage<TaInvoiceDetail> getPageBy(IPage<TaInvoiceDetail> pg, String invoiceId, String orgName, String personName) {
136
+        return baseMapper.getPageBy(pg, invoiceId, orgName, personName);
137
+    }
133
 }
138
 }

+ 25
- 3
src/main/resources/mapper/TaInvoiceDetailMapper.xml View File

77
           AND t.person_id = #{personId}
77
           AND t.person_id = #{personId}
78
           AND t.`status` &gt; -1
78
           AND t.`status` &gt; -1
79
     </select>
79
     </select>
80
-    <select id="getListByMainId" resultType="com.njyunzhi.invoice.entity.TaInvoiceDetail">
80
+
81
+    <sql id="getInvoiceDetail">
81
         SELECT
82
         SELECT
82
             t.`detail_id`,
83
             t.`detail_id`,
83
             t.`invoice_id`,
84
             t.`invoice_id`,
103
             t.`create_date`
104
             t.`create_date`
104
         FROM
105
         FROM
105
             ta_invoice_detail t
106
             ta_invoice_detail t
106
-                INNER JOIN ta_invoice_item s ON t.invoice_id = s.invoice_id
107
+                INNER JOIN ta_invoice_item s ON t.invoice_id = s.invoice_id AND t.invoice_person_id = s.invoice_person_id
108
+    </sql>
109
+
110
+    <select id="getListByMainId" resultType="com.njyunzhi.invoice.entity.TaInvoiceDetail">
111
+        <include refid="getInvoiceDetail"></include>
107
         WHERE
112
         WHERE
108
-            t.invoice_id = #{invoiceId}
113
+            t.`status` &gt; -1
114
+            AND t.invoice_id = #{invoiceId}
109
         ORDER BY
115
         ORDER BY
110
             t.org_name ASC,
116
             t.org_name ASC,
111
             t.person_name ASC,
117
             t.person_name ASC,
182
             t.org_name ASC,
188
             t.org_name ASC,
183
             t.`name` ASC
189
             t.`name` ASC
184
     </select>
190
     </select>
191
+    <select id="getPageBy" resultType="com.njyunzhi.invoice.entity.TaInvoiceDetail">
192
+        <include refid="getInvoiceDetail"></include>
193
+        WHERE
194
+            t.`status` &gt; -1
195
+            AND t.invoice_id = #{invoiceId}
196
+        <if test="orgName != null and orgName != ''">
197
+            AND t.org_name LIKE CONCAT( '%', #{orgName}, '%' )
198
+        </if>
199
+        <if test="personName != null and personName != ''">
200
+            AND t.person_name LIKE CONCAT( '%', #{personName}, '%' )
201
+        </if>
202
+        ORDER BY
203
+            t.org_name ASC,
204
+            t.person_name ASC,
205
+            s.`name` ASC
206
+    </select>
185
 </mapper>
207
 </mapper>