PayOrderController.java 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915
  1. package com.yijia.station.controller;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.OutputStream;
  6. import java.text.DateFormat;
  7. import java.text.SimpleDateFormat;
  8. import java.util.*;
  9. import com.yijia.common.config.YiJiaConfig;
  10. import com.yijia.common.core.domain.entity.SysDept;
  11. import com.yijia.common.core.domain.model.LoginUser;
  12. import com.yijia.common.exception.CustomException;
  13. import com.yijia.common.utils.SecurityUtils;
  14. import com.yijia.station.service.IStationDeviceManageService;
  15. import com.yijia.station.utils.FeiEPrinterUtil;
  16. import com.yijia.system.service.ISysDeptService;
  17. import com.yijia.system.service.ISysUserService;
  18. import org.apache.poi.ss.usermodel.*;
  19. import org.apache.poi.xssf.streaming.SXSSFWorkbook;
  20. import org.slf4j.Logger;
  21. import org.slf4j.LoggerFactory;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.web.bind.annotation.GetMapping;
  24. import org.springframework.web.bind.annotation.PostMapping;
  25. import org.springframework.web.bind.annotation.PutMapping;
  26. import org.springframework.web.bind.annotation.DeleteMapping;
  27. import org.springframework.web.bind.annotation.PathVariable;
  28. import org.springframework.web.bind.annotation.RequestBody;
  29. import org.springframework.web.bind.annotation.RequestMapping;
  30. import org.springframework.web.bind.annotation.RestController;
  31. import com.yijia.common.annotation.Log;
  32. import com.yijia.common.core.controller.BaseController;
  33. import com.yijia.common.core.domain.AjaxResult;
  34. import com.yijia.common.enums.BusinessType;
  35. import com.yijia.station.domain.PayOrder;
  36. import com.yijia.station.service.IPayOrderService;
  37. import com.yijia.common.utils.poi.ExcelUtil;
  38. import com.yijia.common.core.page.TableDataInfo;
  39. /**
  40. * 订单支付Controller
  41. *
  42. * @author yijia
  43. * @date 2020-12-10
  44. */
  45. @RestController
  46. @RequestMapping("/station/order")
  47. public class PayOrderController extends BaseController
  48. {
  49. private static final Logger log = LoggerFactory.getLogger(PayOrderController.class);
  50. @Autowired
  51. private IPayOrderService payOrderService;
  52. @Autowired
  53. private ISysDeptService deptService;
  54. @Autowired
  55. private IStationDeviceManageService stationDeviceManageService;
  56. /**
  57. * 查询订单支付列表
  58. */
  59. @GetMapping("/list")
  60. public TableDataInfo list(PayOrder payOrder)
  61. {
  62. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  63. if(list!=null && list.size()>0){
  64. payOrder.setStationIdList(list);
  65. payOrder.setStationId(null);
  66. }
  67. startPage();
  68. payOrder.setStatus("1");
  69. List<PayOrder> payOrderList = payOrderService.selectPayOrderList(payOrder);
  70. return getDataTable(payOrderList);
  71. }
  72. /**
  73. * 关联用户查询订单支付列表
  74. */
  75. @GetMapping("/selectUserPayOrderList")
  76. public TableDataInfo selectUserPayOrderList(PayOrder payOrder)
  77. {
  78. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  79. if(list!=null && list.size()>0){
  80. payOrder.setStationIdList(list);
  81. payOrder.setStationId(null);
  82. }
  83. startPage();
  84. payOrder.setStatus("1");
  85. List<PayOrder> payOrderList = payOrderService.selectUserPayOrderList(payOrder);
  86. return getDataTable(payOrderList);
  87. }
  88. @GetMapping("/selectPayOrderList")
  89. public TableDataInfo selectPayOrderList(PayOrder payOrder)
  90. {
  91. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  92. if(list!=null && list.size()>0){
  93. payOrder.setStationIdList(list);
  94. payOrder.setStationId(null);
  95. }
  96. startPage();
  97. payOrder.setStatus("1");
  98. List<PayOrder> payOrderList = payOrderService.selectPayOrderList(payOrder);
  99. return getDataTable(payOrderList);
  100. }
  101. /**
  102. * 查询订单支付列表
  103. */
  104. @GetMapping("/listInfo")
  105. public TableDataInfo listInfo(PayOrder payOrder)
  106. {
  107. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  108. if(list!=null && list.size()>0){
  109. payOrder.setStationIdList(list);
  110. payOrder.setStationId(null);
  111. }
  112. payOrder.setOrderType("1");
  113. payOrder.setStatus("1");
  114. List<PayOrder> payOrderList = payOrderService.selectPayOrderList(payOrder);
  115. return getTable(payOrderList);
  116. }
  117. /**
  118. * 查询总金额,总升数
  119. * @param payOrder
  120. * @return
  121. */
  122. @GetMapping("/selectDaySources")
  123. public AjaxResult selectDaySources(PayOrder payOrder)
  124. {
  125. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  126. if(list!=null && list.size()>0){
  127. payOrder.setStationIdList(list);
  128. payOrder.setStationId(null);
  129. }
  130. payOrder.setStatus("1");
  131. payOrder.setOrderType("1");
  132. PayOrder order = payOrderService.selectDaySources(payOrder);
  133. return AjaxResult.success(order);
  134. }
  135. /***
  136. * 根据油品分类,查询油品的总金额,总升数
  137. * @param payOrder
  138. * @return
  139. */
  140. @GetMapping("/selectOilTypeSources")
  141. public TableDataInfo selectOilTypeSources(PayOrder payOrder)
  142. {
  143. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  144. if(list!=null && list.size()>0){
  145. payOrder.setStationIdList(list);
  146. payOrder.setStationId(null);
  147. }
  148. payOrder.setStatus("1");
  149. payOrder.setOrderType("1");
  150. List<PayOrder> orderList = payOrderService.selectOilTypeSources(payOrder);
  151. return getTable(orderList);
  152. }
  153. /***
  154. * 根据油品分类,查询油品的总金额,总升数
  155. * @param payOrder
  156. * @return
  157. */
  158. @GetMapping("/dayOilTypeSources")
  159. public TableDataInfo dayOilTypeSources(PayOrder payOrder)
  160. {
  161. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  162. if(list!=null && list.size()>0){
  163. payOrder.setStationIdList(list);
  164. payOrder.setStationId(null);
  165. }
  166. payOrder.setStatus("1");
  167. payOrder.setOrderType("1");
  168. List<PayOrder> orderList = payOrderService.dayOilTypeSources(payOrder);
  169. return getTable(orderList);
  170. }
  171. /***
  172. * 根据油品分类,查询油品的总金额,总升数
  173. * @param payOrder
  174. * @return
  175. */
  176. @GetMapping("/selectOverViewData")
  177. public AjaxResult selectOverViewData(PayOrder payOrder)
  178. {
  179. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  180. if(list!=null && list.size()>0){
  181. payOrder.setStationIdList(list);
  182. payOrder.setStationId(null);
  183. }
  184. payOrder.setStatus("1");
  185. payOrder.setOrderType("1");
  186. PayOrder order = payOrderService.selectOverViewData(payOrder);
  187. return AjaxResult.success(order);
  188. }
  189. /**
  190. * 日报数据详细
  191. */
  192. @GetMapping("/selectDayReportDetail")
  193. public TableDataInfo selectDayReportDetail(PayOrder payOrder)
  194. {
  195. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  196. if(list!=null && list.size()>0){
  197. payOrder.setStationIdList(list);
  198. payOrder.setStationId(null);
  199. }
  200. //默认当前登陆人的ID 5冯总油站
  201. startPage();
  202. payOrder.setStatus("1");
  203. payOrder.setOrderType("1");
  204. List<PayOrder> orderList = payOrderService.selectDayReport(payOrder);
  205. return getDataTable(orderList);
  206. }
  207. /***
  208. * 根据油品分类,查询油品的总金额,总升数
  209. * @param payOrder
  210. * @return
  211. */
  212. @GetMapping("/selectDayReport")
  213. public TableDataInfo selectDayReport(PayOrder payOrder)
  214. {
  215. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  216. if(list!=null && list.size()>0){
  217. payOrder.setStationIdList(list);
  218. payOrder.setStationId(null);
  219. }
  220. payOrder.setStatus("1");
  221. payOrder.setOrderType("1");
  222. List<PayOrder> orderList = payOrderService.selectDayReport(payOrder);
  223. return getTable(orderList);
  224. }
  225. /**
  226. * 导出订单支付列表
  227. */
  228. @Log(title = "订单支付", businessType = BusinessType.EXPORT)
  229. @GetMapping("/export")
  230. public AjaxResult export(PayOrder payOrder)
  231. {
  232. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  233. if(list!=null && list.size()>0){
  234. payOrder.setStationIdList(list);
  235. payOrder.setStationId(null);
  236. }
  237. payOrder.setStatus("1");
  238. payOrder.setOrderType("1");
  239. List<PayOrder> payOrderList = payOrderService.selectPayOrderExport(payOrder);
  240. ExcelUtil<PayOrder> util = new ExcelUtil<PayOrder>(PayOrder.class);
  241. return util.exportExcel(payOrderList, "order");
  242. }
  243. /**
  244. * 获取订单支付详细信息
  245. */
  246. @GetMapping(value = "/{orderId}")
  247. public AjaxResult getInfo(@PathVariable("orderId") Long orderId)
  248. {
  249. return AjaxResult.success(payOrderService.selectPayOrderById(orderId));
  250. }
  251. /**
  252. * 获取92号汽油数据
  253. * @param payOrder
  254. * @return
  255. */
  256. @GetMapping("/listQydata92")
  257. public TableDataInfo listQydata92(PayOrder payOrder)
  258. {
  259. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  260. if(list!=null && list.size()>0){
  261. payOrder.setStationIdList(list);
  262. payOrder.setStationId(null);
  263. }
  264. payOrder.setOilName("92#");
  265. payOrder.setStatus("1");
  266. payOrder.setOrderType("1");
  267. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  268. return getTable(orderList);
  269. }
  270. /**
  271. * 获取95号汽油数据
  272. * @param payOrder
  273. * @return
  274. */
  275. @GetMapping("/listQydata95")
  276. public TableDataInfo listQydata95(PayOrder payOrder)
  277. {
  278. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  279. if(list!=null && list.size()>0){
  280. payOrder.setStationIdList(list);
  281. payOrder.setStationId(null);
  282. }
  283. payOrder.setOilName("95#");
  284. payOrder.setStatus("1");
  285. payOrder.setOrderType("1");
  286. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  287. return getTable(orderList);
  288. }
  289. /**
  290. * 获取97号汽油数据
  291. * @param payOrder
  292. * @return
  293. */
  294. @GetMapping("/listQydata98")
  295. public TableDataInfo listQydata98(PayOrder payOrder)
  296. {
  297. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  298. if(list!=null && list.size()>0){
  299. payOrder.setStationIdList(list);
  300. payOrder.setStationId(null);
  301. }
  302. payOrder.setOilName("98#");
  303. payOrder.setStatus("1");
  304. payOrder.setOrderType("1");
  305. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  306. return getTable(orderList);
  307. }
  308. /**
  309. * 获取97号汽油数据
  310. * @param payOrder
  311. * @return
  312. */
  313. @GetMapping("/listQydata20")
  314. public TableDataInfo listQydata20(PayOrder payOrder)
  315. {
  316. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  317. if(list!=null && list.size()>0){
  318. payOrder.setStationIdList(list);
  319. payOrder.setStationId(null);
  320. }
  321. payOrder.setOilName("-20#");
  322. payOrder.setStatus("1");
  323. payOrder.setOrderType("1");
  324. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  325. return getTable(orderList);
  326. }
  327. /**
  328. * 获取97号汽油数据
  329. * @param payOrder
  330. * @return
  331. */
  332. @GetMapping("/listQydata0")
  333. public TableDataInfo listQydata0(PayOrder payOrder)
  334. {
  335. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  336. if(list!=null && list.size()>0){
  337. payOrder.setStationIdList(list);
  338. payOrder.setStationId(null);
  339. }
  340. payOrder.setOilName("0#");
  341. payOrder.setStatus("1");
  342. payOrder.setOrderType("1");
  343. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  344. return getTable(orderList);
  345. }
  346. /**
  347. * 获取97号汽油数据
  348. * @param payOrder
  349. * @return
  350. */
  351. @GetMapping("/listQydata10")
  352. public TableDataInfo listQydata10(PayOrder payOrder)
  353. {
  354. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  355. if(list!=null && list.size()>0){
  356. payOrder.setStationIdList(list);
  357. payOrder.setStationId(null);
  358. }
  359. payOrder.setOilName("-10#");
  360. payOrder.setStatus("1");
  361. payOrder.setOrderType("1");
  362. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  363. return getTable(orderList);
  364. }
  365. /**
  366. * 获取x轴数据
  367. * @param payOrder
  368. * @return
  369. */
  370. @GetMapping("/listXdata")
  371. public TableDataInfo listXdata(PayOrder payOrder)
  372. {
  373. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  374. if(list!=null && list.size()>0){
  375. payOrder.setStationIdList(list);
  376. payOrder.setStationId(null);
  377. }
  378. payOrder.setStatus("1");
  379. payOrder.setOrderType("1");
  380. List<PayOrder> orderList = payOrderService.listXdata(payOrder);
  381. return getTable(orderList);
  382. }
  383. /**
  384. * 查询油站第一笔订单的数据
  385. */
  386. @GetMapping("/getPayOrderInfoMin")
  387. public AjaxResult getPayOrderInfoMin(PayOrder payOrder)
  388. {
  389. if(payOrder.getStationId() ==null) {
  390. LoginUser currentUser = SecurityUtils.getLoginUser();
  391. payOrder.setStationId(currentUser.getUser().getDeptId());
  392. }
  393. payOrder.setStatus("1");
  394. payOrder.setOrderType("1");
  395. return AjaxResult.success(payOrderService.getPayOrderInfoMin(payOrder));
  396. }
  397. /**
  398. * 新增订单支付
  399. */
  400. @Log(title = "订单支付", businessType = BusinessType.INSERT)
  401. @PostMapping
  402. public AjaxResult add(@RequestBody PayOrder payOrder)
  403. {
  404. return toAjax(payOrderService.insertPayOrder(payOrder));
  405. }
  406. /**
  407. * 修改订单支付
  408. */
  409. @Log(title = "订单支付", businessType = BusinessType.UPDATE)
  410. @PutMapping
  411. public AjaxResult edit(@RequestBody PayOrder payOrder)
  412. {
  413. return toAjax(payOrderService.updatePayOrder(payOrder));
  414. }
  415. /**
  416. * 删除订单支付
  417. */
  418. @Log(title = "订单支付", businessType = BusinessType.DELETE)
  419. @DeleteMapping("/{orderIds}")
  420. public AjaxResult remove(@PathVariable Long[] orderIds)
  421. {
  422. return toAjax(payOrderService.deletePayOrderByIds(orderIds));
  423. }
  424. /**
  425. * 查询订单支付列表
  426. */
  427. @GetMapping("/LNGDeptList")
  428. public TableDataInfo LNGDeptList(PayOrder payOrder)
  429. {
  430. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  431. if(list!=null && list.size()>0){
  432. payOrder.setStationIdList(list);
  433. payOrder.setStationId(null);
  434. }
  435. startPage();
  436. payOrder.setStatus("1");
  437. List<PayOrder> payOrderList = payOrderService.LNGDeptList(payOrder);
  438. return getDataTable(payOrderList);
  439. }
  440. /**
  441. * 查询订单支付列表
  442. */
  443. @GetMapping("/LNGlist")
  444. public TableDataInfo LNGlist(PayOrder payOrder)
  445. {
  446. List<String> list = deptService.levelLngDeptList(payOrder.getLevelId());
  447. if(list!=null && list.size()>0){
  448. payOrder.setStationIdList(list);
  449. payOrder.setStationId(null);
  450. }
  451. startPage();
  452. payOrder.setStatus("1");
  453. List<PayOrder> payOrderList = payOrderService.selectLNGPayOrderExport(payOrder);
  454. return getDataTable(payOrderList);
  455. }
  456. @Log(title = "导出LNG", businessType = BusinessType.EXPORT)
  457. @GetMapping("/LNGExport")
  458. public AjaxResult LNGExport(PayOrder payOrder)
  459. {
  460. List<String> list = deptService.levelLngDeptList(payOrder.getLevelId());
  461. if(list!=null && list.size()>0){
  462. payOrder.setStationIdList(list);
  463. payOrder.setStationId(null);
  464. }
  465. payOrder.setStatus("1");
  466. List<PayOrder> payOrderList = payOrderService.selectLNGPayOrderExport(payOrder);
  467. AjaxResult ss = exportExcel(payOrderList, "导出订单信息");
  468. return ss;
  469. }
  470. private AjaxResult exportExcel(List<PayOrder> payOrderList, String sheetName) {
  471. OutputStream out = null;
  472. Workbook wb= new SXSSFWorkbook(500);
  473. try
  474. {
  475. Sheet sheet = wb.createSheet(sheetName);
  476. sheet.setDefaultColumnWidth(20);//默认列宽20
  477. CellStyle style = wb.createCellStyle();
  478. CreationHelper createHelper = wb.getCreationHelper();
  479. style.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-mm-dd hh:mm:ss"));
  480. int rows =payOrderList.size()+1;
  481. Cell cell =null;
  482. Row row =null;
  483. for (int i = 0; i < rows; i++) {
  484. if(i == 0) {
  485. row = sheet.createRow(i);
  486. cell = row.createCell(0);
  487. cell.setCellValue("油站名称");
  488. cell.setCellStyle(style);
  489. cell = row.createCell(1);
  490. cell.setCellValue("油品");
  491. cell.setCellStyle(style);
  492. cell = row.createCell(2);
  493. cell.setCellValue("订单号");
  494. cell.setCellStyle(style);
  495. cell = row.createCell(3);
  496. cell.setCellValue("枪标价");
  497. cell.setCellStyle(style);
  498. cell = row.createCell(4);
  499. cell.setCellValue("结算价");
  500. cell.setCellStyle(style);
  501. cell = row.createCell(5);
  502. cell.setCellValue("司机价");
  503. cell.setCellStyle(style);
  504. cell = row.createCell(6);
  505. cell.setCellValue("升数");
  506. cell.setCellStyle(style);
  507. cell = row.createCell(7);
  508. cell.setCellValue("应付金额");
  509. cell.setCellStyle(style);
  510. cell = row.createCell(8);
  511. cell.setCellValue("结算金额");
  512. cell.setCellStyle(style);
  513. cell = row.createCell(9);
  514. cell.setCellValue("司机金额");
  515. cell.setCellStyle(style);
  516. cell = row.createCell(10);
  517. cell.setCellValue("支付时间");
  518. cell.setCellStyle(style);
  519. cell = row.createCell(11);
  520. cell.setCellValue("手机号");
  521. cell.setCellStyle(style);
  522. }else {
  523. row = sheet.createRow(i);
  524. int j =i-1;
  525. cell = row.createCell(0);
  526. cell.setCellValue(payOrderList.get(j).getStationName());
  527. cell.setCellStyle(style);
  528. cell = row.createCell(1);
  529. cell.setCellValue(payOrderList.get(j).getOilName());
  530. cell.setCellStyle(style);
  531. cell = row.createCell(2);
  532. cell.setCellValue(payOrderList.get(j).getOrderNo());
  533. cell.setCellStyle(style);
  534. cell = row.createCell(3);
  535. cell.setCellValue(payOrderList.get(j).getOilPirce()+"");
  536. cell.setCellStyle(style);
  537. cell = row.createCell(4);
  538. if(payOrderList.get(j).getSellOilPrice()!=null){
  539. cell.setCellValue(payOrderList.get(j).getSellOilPrice()+"");
  540. }else{
  541. cell.setCellValue("0");
  542. }
  543. cell.setCellStyle(style);
  544. cell = row.createCell(5);
  545. if(payOrderList.get(j).getDriverOilPrice()!=null){
  546. cell.setCellValue(payOrderList.get(j).getDriverOilPrice()+"");
  547. }else{
  548. cell.setCellValue("0");
  549. }
  550. cell.setCellStyle(style);
  551. cell = row.createCell(6);
  552. if(payOrderList.get(j).getOrderLiters()!=null){
  553. cell.setCellValue(payOrderList.get(j).getOrderLiters()+"");
  554. }else{
  555. cell.setCellValue("0");
  556. }
  557. cell.setCellStyle(style);
  558. cell = row.createCell(7);
  559. if(payOrderList.get(j).getReceivableAmt()!=null){
  560. cell.setCellValue(payOrderList.get(j).getReceivableAmt()+"");
  561. }else{
  562. cell.setCellValue("0");
  563. }
  564. cell.setCellStyle(style);
  565. cell = row.createCell(8);
  566. if(payOrderList.get(j).getSellAmt()!=null){
  567. cell.setCellValue(payOrderList.get(j).getSellAmt()+"");
  568. }else{
  569. cell.setCellValue("0");
  570. }
  571. cell.setCellStyle(style);
  572. cell = row.createCell(9);
  573. if(payOrderList.get(j).getAmt()!=null){
  574. cell.setCellValue(payOrderList.get(j).getAmt()+"");
  575. }else{
  576. cell.setCellValue("0");
  577. }
  578. cell.setCellStyle(style);
  579. cell = row.createCell(10);
  580. cell.setCellValue(payOrderList.get(j).getPayDate());
  581. cell.setCellStyle(style);
  582. cell = row.createCell(11);
  583. cell.setCellValue(payOrderList.get(j).getMobilePhone());
  584. cell.setCellStyle(style);
  585. }
  586. }
  587. String filename = encodingFilename(sheetName);
  588. out = new FileOutputStream(getAbsoluteFile(filename));
  589. wb.write(out);
  590. return AjaxResult.success(filename);
  591. }
  592. catch (Exception e)
  593. {
  594. log.error("导出Excel异常{}", e.getMessage());
  595. throw new CustomException("导出Excel失败,请联系网站管理员!");
  596. }
  597. finally
  598. {
  599. if (wb != null)
  600. {
  601. try
  602. {
  603. wb.close();
  604. }
  605. catch (IOException e1)
  606. {
  607. e1.printStackTrace();
  608. }
  609. }
  610. if (out != null)
  611. {
  612. try
  613. {
  614. out.close();
  615. }
  616. catch (IOException e1)
  617. {
  618. e1.printStackTrace();
  619. }
  620. }
  621. }
  622. }
  623. private String encodingFilename(String filename) {
  624. filename = UUID.randomUUID().toString() + "_" + filename + ".xlsx";
  625. return filename;
  626. }
  627. public String getAbsoluteFile(String filename)
  628. {
  629. String downloadPath = YiJiaConfig.getDownloadPath() + filename;
  630. File desc = new File(downloadPath);
  631. if (!desc.getParentFile().exists())
  632. {
  633. desc.getParentFile().mkdirs();
  634. }
  635. return downloadPath;
  636. }
  637. @Log(title = "导出LNG站点", businessType = BusinessType.EXPORT)
  638. @GetMapping("/LNGDeptExport")
  639. public AjaxResult LNGDeptExport(PayOrder payOrder)
  640. {
  641. List<String> list = deptService.levelLngDeptList(payOrder.getLevelId());
  642. if(list!=null && list.size()>0){
  643. payOrder.setStationIdList(list);
  644. payOrder.setStationId(null);
  645. }
  646. payOrder.setStatus("1");
  647. List<PayOrder> payOrderList = payOrderService.LNGDeptList(payOrder);
  648. AjaxResult ss = exportDeptExcel(payOrderList, "导出订单信息");
  649. return ss;
  650. }
  651. private AjaxResult exportDeptExcel(List<PayOrder> payOrderList, String sheetName) {
  652. OutputStream out = null;
  653. Workbook wb= new SXSSFWorkbook(500);
  654. try
  655. {
  656. Sheet sheet = wb.createSheet(sheetName);
  657. sheet.setDefaultColumnWidth(20);//默认列宽20
  658. CellStyle style = wb.createCellStyle();
  659. CreationHelper createHelper = wb.getCreationHelper();
  660. style.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-mm-dd hh:mm:ss"));
  661. int rows =payOrderList.size()+1;
  662. Cell cell =null;
  663. Row row =null;
  664. for (int i = 0; i < rows; i++) {
  665. if(i == 0) {
  666. row = sheet.createRow(i);
  667. cell = row.createCell(0);
  668. cell.setCellValue("油站名称");
  669. cell.setCellStyle(style);
  670. cell = row.createCell(1);
  671. cell.setCellValue("订单号");
  672. cell.setCellStyle(style);
  673. cell = row.createCell(2);
  674. cell.setCellValue("油品");
  675. cell.setCellStyle(style);
  676. cell = row.createCell(3);
  677. cell.setCellValue("枪标价");
  678. cell.setCellStyle(style);
  679. cell = row.createCell(4);
  680. cell.setCellValue("结算价");
  681. cell.setCellStyle(style);
  682. cell = row.createCell(5);
  683. cell.setCellValue("升数");
  684. cell.setCellStyle(style);
  685. cell = row.createCell(6);
  686. cell.setCellValue("应付金额");
  687. cell.setCellStyle(style);
  688. cell = row.createCell(7);
  689. cell.setCellValue("结算金额");
  690. cell.setCellStyle(style);
  691. cell = row.createCell(8);
  692. cell.setCellValue("结算优惠金额");
  693. cell.setCellStyle(style);
  694. cell = row.createCell(9);
  695. cell.setCellValue("支付时间");
  696. cell.setCellStyle(style);
  697. cell = row.createCell(10);
  698. cell.setCellValue("手机号");
  699. cell.setCellStyle(style);
  700. }else {
  701. row = sheet.createRow(i);
  702. int j =i-1;
  703. cell = row.createCell(0);
  704. cell.setCellValue(payOrderList.get(j).getStationName());
  705. cell.setCellStyle(style);
  706. cell = row.createCell(1);
  707. cell.setCellValue(payOrderList.get(j).getOrderNo());
  708. cell.setCellStyle(style);
  709. cell = row.createCell(2);
  710. cell.setCellValue(payOrderList.get(j).getOilName());
  711. cell.setCellStyle(style);
  712. cell = row.createCell(3);
  713. cell.setCellValue(payOrderList.get(j).getOilPirce()+"");
  714. cell.setCellStyle(style);
  715. cell = row.createCell(4);
  716. if(payOrderList.get(j).getSellOilPrice()!=null){
  717. cell.setCellValue(payOrderList.get(j).getSellOilPrice()+"");
  718. }else{
  719. cell.setCellValue("0");
  720. }
  721. cell.setCellStyle(style);
  722. cell = row.createCell(5);
  723. cell.setCellValue(payOrderList.get(j).getOrderLiters() + "");
  724. cell.setCellStyle(style);
  725. cell = row.createCell(6);
  726. if(payOrderList.get(j).getReceivableAmt()!=null){
  727. cell.setCellValue(payOrderList.get(j).getReceivableAmt()+"");
  728. }else{
  729. cell.setCellValue("0");
  730. }
  731. cell.setCellStyle(style);
  732. cell = row.createCell(7);
  733. if(payOrderList.get(j).getSellAmt()!=null){
  734. cell.setCellValue(payOrderList.get(j).getSellAmt()+"");
  735. }else{
  736. cell.setCellValue("0");
  737. }
  738. cell.setCellStyle(style);
  739. cell = row.createCell(8);
  740. if(payOrderList.get(j).getSellDiscountAmt()!=null){
  741. cell.setCellValue(payOrderList.get(j).getSellDiscountAmt()+"");
  742. }else{
  743. cell.setCellValue("0");
  744. }
  745. cell.setCellStyle(style);
  746. cell = row.createCell(9);
  747. cell.setCellValue(payOrderList.get(j).getPayDate());
  748. cell.setCellStyle(style);
  749. cell = row.createCell(10);
  750. cell.setCellValue(payOrderList.get(j).getMobilePhone());
  751. cell.setCellStyle(style);
  752. }
  753. }
  754. String filename = encodingFilename(sheetName);
  755. out = new FileOutputStream(getAbsoluteFile(filename));
  756. wb.write(out);
  757. return AjaxResult.success(filename);
  758. }
  759. catch (Exception e)
  760. {
  761. log.error("导出Excel异常{}", e.getMessage());
  762. throw new CustomException("导出Excel失败,请联系网站管理员!");
  763. }
  764. finally
  765. {
  766. if (wb != null)
  767. {
  768. try
  769. {
  770. wb.close();
  771. }
  772. catch (IOException e1)
  773. {
  774. e1.printStackTrace();
  775. }
  776. }
  777. if (out != null)
  778. {
  779. try
  780. {
  781. out.close();
  782. }
  783. catch (IOException e1)
  784. {
  785. e1.printStackTrace();
  786. }
  787. }
  788. }
  789. }
  790. /**
  791. * 补打订单信息
  792. */
  793. @Log(title = "补打订单小票", businessType = BusinessType.OTHER)
  794. @GetMapping("/printOrderInfo")
  795. public AjaxResult printOrderInfo(PayOrder payOrder){
  796. int i =0;
  797. DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  798. if(payOrder.getOrderId() !=null){
  799. String content1 ="";
  800. String content2 ="" ;
  801. PayOrder order = payOrderService.selectPayOrderById(payOrder.getOrderId());
  802. if(order!=null){
  803. String paytype ="";
  804. String phoneNumber ="";
  805. if(order.getCustomerPhone()!=null ){
  806. phoneNumber = order.getCustomerPhone().replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");
  807. }
  808. if(order.getPayType().equals("wx")){
  809. paytype="微信";
  810. }else if(order.getPayType().equals("dzk")){
  811. paytype="电子卡";
  812. }else if(order.getPayType().equals("zfb")){
  813. paytype="支付宝";
  814. }else if(order.getPayType().equals("xj")){
  815. paytype="现金";
  816. }
  817. content1 = "<CB>油品订单--顾客联</CB><BR>";
  818. content1 += "<BR>";
  819. content1 += "--------------------------------<BR>";
  820. content1 += "<BR>";
  821. content1 += "<BOLD><B>原价: "+order.getReceivableAmt()+" 元</B></BOLD><BR>";
  822. content1 += "订单号:"+order.getOrderNo()+" <BR>";
  823. content1 += "支付方式: "+paytype+" <BR>";
  824. content1 += "下单时间:"+dateFormat.format(order.getCreatedDate())+" <BR>";
  825. content1 += "付款时间:"+dateFormat.format(order.getPayDate())+" <BR>";
  826. content1 += "油站:"+order.getStationName()+" <BR>";
  827. content1 += "油枪:"+order.getOilGun()+"号枪<BR>";
  828. if(order.getOilType()!=null && !order.getOilType().equals("3")){
  829. content1 += "油品: "+order.getOilName()+" <BR>";
  830. content1 += "油量: "+order.getOrderLiters()+" 升<BR>";
  831. content1 += "单价: "+order.getOilPirce()+" L/元<BR>";
  832. content1 += "优惠: "+order.getDiscountAmt()+" 元<BR>";
  833. }
  834. content1 += "支付: "+order.getAmt()+" 元<BR>";
  835. content1 += "手机号: "+phoneNumber +" <BR>";
  836. content1 += "<BR>";
  837. content2 = "<CB>油品订单--商户联</CB><BR>";
  838. content2 += "<BR>";
  839. content2 += "--------------------------------<BR>";
  840. content2 += "<BR>";
  841. content2 += "<BOLD><B>原价: "+order.getReceivableAmt()+" 元</B></BOLD><BR>";
  842. content2 += "订单号:"+order.getOrderNo()+" <BR>";
  843. content2 += "支付方式: "+paytype+" <BR>";
  844. content2 += "下单时间:"+dateFormat.format(order.getCreatedDate())+" <BR>";
  845. content2 += "付款时间:"+dateFormat.format(order.getPayDate())+" <BR>";
  846. content2 += "油站:"+order.getStationName()+" <BR>";
  847. content2 += "油枪:"+order.getOilGun()+"号枪<BR>";
  848. if(order.getOilType()!=null && !order.getOilType().equals("3")){
  849. content2 += "油品: "+order.getOilName()+" <BR>";
  850. content2 += "油量: "+order.getOrderLiters()+" 升<BR>";
  851. content2 += "单价: "+order.getOilPirce()+" L/元<BR>";
  852. content2 += "优惠: "+order.getDiscountAmt()+" 元<BR>";
  853. }
  854. content2 += "支付: "+order.getAmt()+" 元<BR>";
  855. content2 += "手机号: "+phoneNumber +" <BR>";
  856. content2 += "<BR>";
  857. }
  858. Map params =new HashMap();
  859. params.put("stationId", order.getStationId());
  860. params.put("deviceType", "1");
  861. Map mp = stationDeviceManageService.getPrinterSnByStationId(params);
  862. SysDept dept= deptService.selectDeptById(order.getStationId());
  863. if(mp!=null&&mp.containsKey("device_no") && mp.get("device_no")!= null && mp.get("device_no")!=""){
  864. String sn = mp.get("device_no").toString();
  865. if(dept!=null && dept.getPrintSetting()!=null&&dept.getPrintSetting().equals("1") &&content1!=null){
  866. FeiEPrinterUtil.printReceipt(sn,content1);
  867. i=1;
  868. logger.info("客户联打印成功");
  869. }else if(dept!=null && dept.getPrintSetting()!=null&&dept.getPrintSetting().equals("2")&&content2!=null){
  870. FeiEPrinterUtil.printReceipt(sn,content2);
  871. i=1;
  872. logger.info("商户联打印成功");
  873. }else if(dept!=null && dept.getPrintSetting()!=null&&dept.getPrintSetting().equals("3")&&content1!=null&&content2!=null){
  874. FeiEPrinterUtil.printReceipt(sn, content1+content2);
  875. i=1;
  876. logger.info("客户联和商户联打印成功");
  877. }else {
  878. i=0;
  879. logger.info("打印失败");
  880. }
  881. }else {
  882. logger.info("请正确配置打印机");
  883. i=2;
  884. }
  885. }
  886. return toAjaxee(i);
  887. }
  888. }