PayOrderController.java 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428
  1. package com.yijia.station.controller;
  2. import com.yijia.common.annotation.Log;
  3. import com.yijia.common.config.YiJiaConfig;
  4. import com.yijia.common.core.controller.BaseController;
  5. import com.yijia.common.core.domain.AjaxResult;
  6. import com.yijia.common.core.domain.entity.SysDept;
  7. import com.yijia.common.core.domain.model.LoginUser;
  8. import com.yijia.common.core.page.TableDataInfo;
  9. import com.yijia.common.enums.BusinessType;
  10. import com.yijia.common.exception.CustomException;
  11. import com.yijia.common.utils.SecurityUtils;
  12. import com.yijia.common.utils.poi.ExcelUtil;
  13. import com.yijia.station.domain.PayOrder;
  14. import com.yijia.station.domain.StationBalanceChange;
  15. import com.yijia.station.service.IPayOrderService;
  16. import com.yijia.station.service.IStationBalanceChangeService;
  17. import com.yijia.station.service.IStationDeviceManageService;
  18. import com.yijia.station.utils.FeiEPrinterUtil;
  19. import com.yijia.system.service.ISysDeptService;
  20. import org.apache.poi.ss.usermodel.*;
  21. import org.apache.poi.xssf.streaming.SXSSFWorkbook;
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.web.bind.annotation.*;
  26. import java.io.File;
  27. import java.io.FileOutputStream;
  28. import java.io.IOException;
  29. import java.io.OutputStream;
  30. import java.math.BigDecimal;
  31. import java.text.DateFormat;
  32. import java.text.SimpleDateFormat;
  33. import java.util.*;
  34. /**
  35. * 订单支付Controller
  36. *
  37. * @author yijia
  38. * @date 2020-12-10
  39. */
  40. @RestController
  41. @RequestMapping("/station/order")
  42. public class PayOrderController extends BaseController
  43. {
  44. private static final Logger log = LoggerFactory.getLogger(PayOrderController.class);
  45. @Autowired
  46. private IPayOrderService payOrderService;
  47. @Autowired
  48. private ISysDeptService deptService;
  49. @Autowired
  50. private IStationDeviceManageService stationDeviceManageService;
  51. @Autowired
  52. private IStationBalanceChangeService stationBalanceChangeService;
  53. public static final String PAY_VER = "110";//版本号
  54. public static final String KEY = "";//机构秘钥
  55. public static final String ACCESS_TOKEN = "23570b46a955484d92038f6a18d2b9d6";//支付秘钥
  56. public static final String INST_NO = "";//机构号
  57. public static final String MERCHANT_NO = "";//商户号
  58. public static final String TERMINAL_ID = "";//终端号
  59. /**
  60. * 查询订单支付列表
  61. */
  62. @GetMapping("/list")
  63. public TableDataInfo list(PayOrder payOrder)
  64. {
  65. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  66. if(list!=null && list.size()>0){
  67. payOrder.setStationIdList(list);
  68. payOrder.setStationId(null);
  69. }
  70. startPage();
  71. //payOrder.setStatus("1");
  72. List<PayOrder> payOrderList = payOrderService.selectPayOrderList(payOrder);
  73. return getDataTable(payOrderList);
  74. }
  75. /**
  76. * 查询订单支付列表
  77. */
  78. @GetMapping("/allList")
  79. public TableDataInfo allList(PayOrder payOrder)
  80. {
  81. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  82. if(list!=null && list.size()>0){
  83. payOrder.setStationIdList(list);
  84. payOrder.setStationId(null);
  85. }
  86. startPage();
  87. List<PayOrder> payOrderList = payOrderService.selectALlPayOrderList(payOrder);
  88. return getDataTable(payOrderList);
  89. }
  90. /**
  91. * 关联用户查询订单支付列表
  92. */
  93. @GetMapping("/selectUserPayOrderList")
  94. public TableDataInfo selectUserPayOrderList(PayOrder payOrder)
  95. {
  96. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  97. if(list!=null && list.size()>0){
  98. payOrder.setStationIdList(list);
  99. payOrder.setStationId(null);
  100. }
  101. startPage();
  102. //payOrder.setStatus("1");
  103. List<PayOrder> payOrderList = payOrderService.selectUserPayOrderList(payOrder);
  104. return getDataTable(payOrderList);
  105. }
  106. @GetMapping("/selectPayOrderList")
  107. public TableDataInfo selectPayOrderList(PayOrder payOrder)
  108. {
  109. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  110. if(list!=null && list.size()>0){
  111. payOrder.setStationIdList(list);
  112. payOrder.setStationId(null);
  113. }
  114. startPage();
  115. //payOrder.setStatus("1");
  116. List<PayOrder> payOrderList = payOrderService.selectPayOrderList(payOrder);
  117. return getDataTable(payOrderList);
  118. }
  119. /**
  120. * 查询订单支付列表
  121. */
  122. @GetMapping("/listInfo")
  123. public TableDataInfo listInfo(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.setOrderType("1");
  131. //payOrder.setStatus("1");
  132. List<PayOrder> payOrderList = payOrderService.selectPayOrderList(payOrder);
  133. return getTable(payOrderList);
  134. }
  135. /**
  136. * 查询总金额,总升数
  137. * @param payOrder
  138. * @return
  139. */
  140. @GetMapping("/selectDaySources")
  141. public AjaxResult selectDaySources(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. PayOrder order = payOrderService.selectDaySources(payOrder);
  151. return AjaxResult.success(order);
  152. }
  153. /**
  154. * 查询总金额,总升数(针对加气平台的)
  155. * @param payOrder
  156. * @return
  157. */
  158. @GetMapping("/selectLNGDaySources")
  159. public AjaxResult selectLNGDaySources(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. PayOrder order = payOrderService.selectDaySources(payOrder);
  169. return AjaxResult.success(order);
  170. }
  171. /**
  172. * 查询总站下的合计数
  173. * @param payOrder
  174. * @return
  175. */
  176. @GetMapping("/selectAllDaySources")
  177. public AjaxResult selectAllDaySources(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.selectAllDaySources(payOrder);
  187. return AjaxResult.success(order);
  188. }
  189. /**
  190. * 查询总金额,总升数
  191. * @param payOrder
  192. * @return
  193. */
  194. @GetMapping("/selectSumPayOrder")
  195. public AjaxResult selectSumPayOrder(PayOrder payOrder)
  196. {
  197. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  198. if(list!=null && list.size()>0){
  199. payOrder.setStationIdList(list);
  200. payOrder.setStationId(null);
  201. }
  202. //payOrder.setStatus("1");
  203. payOrder.setOrderType("1");
  204. PayOrder order = payOrderService.selectDaySources(payOrder);
  205. return AjaxResult.success(order);
  206. }
  207. /***
  208. * 根据油品分类,查询油品的总金额,总升数
  209. * @param payOrder
  210. * @return
  211. */
  212. @GetMapping("/selectOilTypeSources")
  213. public TableDataInfo selectOilTypeSources(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.selectOilTypeSources(payOrder);
  223. return getTable(orderList);
  224. }
  225. /***
  226. * 根据油品分类,查询油品的总金额,总升数,查询所有订单信息
  227. * @param payOrder
  228. * @return
  229. */
  230. @GetMapping("/selectAllOilTypeSources")
  231. public TableDataInfo selectAllOilTypeSources(PayOrder payOrder)
  232. {
  233. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  234. if(list!=null && list.size()>0){
  235. payOrder.setStationIdList(list);
  236. payOrder.setStationId(null);
  237. }
  238. payOrder.setStatus("1");
  239. payOrder.setOrderType("1");
  240. List<PayOrder> orderList = payOrderService.selectAllOilTypeSources(payOrder);
  241. return getTable(orderList);
  242. }
  243. /***
  244. * 根据油品分类,查询油品的总金额,总升数
  245. * @param payOrder
  246. * @return
  247. */
  248. @GetMapping("/dayOilTypeSources")
  249. public TableDataInfo dayOilTypeSources(PayOrder payOrder)
  250. {
  251. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  252. if(list!=null && list.size()>0){
  253. payOrder.setStationIdList(list);
  254. payOrder.setStationId(null);
  255. }
  256. payOrder.setStatus("1");
  257. payOrder.setOrderType("1");
  258. List<PayOrder> orderList = payOrderService.dayOilTypeSources(payOrder);
  259. return getTable(orderList);
  260. }
  261. /***
  262. * 根据油品分类,查询油品的总金额,总升数
  263. * @param payOrder
  264. * @return
  265. */
  266. @GetMapping("/dayAllOilTypeSources")
  267. public TableDataInfo dayAllOilTypeSources(PayOrder payOrder)
  268. {
  269. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  270. if(list!=null && list.size()>0){
  271. payOrder.setStationIdList(list);
  272. payOrder.setStationId(null);
  273. }
  274. payOrder.setStatus("1");
  275. payOrder.setOrderType("1");
  276. List<PayOrder> orderList = payOrderService.dayAllOilTypeSources(payOrder);
  277. return getTable(orderList);
  278. }
  279. /***
  280. * 根据油品分类,查询油品的总金额,总升数
  281. * @param payOrder
  282. * @return
  283. */
  284. @GetMapping("/selectOverViewData")
  285. public AjaxResult selectOverViewData(PayOrder payOrder)
  286. {
  287. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  288. if(list!=null && list.size()>0){
  289. payOrder.setStationIdList(list);
  290. payOrder.setStationId(null);
  291. }
  292. payOrder.setStatus("1");
  293. payOrder.setOrderType("1");
  294. PayOrder order = payOrderService.selectOverViewData(payOrder);
  295. return AjaxResult.success(order);
  296. }
  297. /***
  298. * 根据油品分类,查询油品的总金额,总升数(包括已经退款的)
  299. * @param payOrder
  300. * @return
  301. */
  302. @GetMapping("/selectAllOverViewData")
  303. public AjaxResult selectAllOverViewData(PayOrder payOrder)
  304. {
  305. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  306. if(list!=null && list.size()>0){
  307. payOrder.setStationIdList(list);
  308. payOrder.setStationId(null);
  309. }
  310. payOrder.setStatus("1");
  311. payOrder.setOrderType("1");
  312. PayOrder order = payOrderService.selectAllOverViewData(payOrder);
  313. return AjaxResult.success(order);
  314. }
  315. /**
  316. * 月报数据详细
  317. */
  318. @GetMapping("/selectDayReportDetail")
  319. public TableDataInfo selectDayReportDetail(PayOrder payOrder)
  320. {
  321. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  322. if(list!=null && list.size()>0){
  323. payOrder.setStationIdList(list);
  324. payOrder.setStationId(null);
  325. }
  326. //默认当前登陆人的ID 5冯总油站
  327. startPage();
  328. //payOrder.setStatus("1");
  329. payOrder.setOrderType("1");
  330. List<PayOrder> orderList = payOrderService.selectDayReport(payOrder);
  331. return getDataTable(orderList);
  332. }
  333. /**
  334. * 月报数据详细
  335. */
  336. @GetMapping("/selectAllDayReportDetail")
  337. public TableDataInfo selectAllDayReportDetail(PayOrder payOrder)
  338. {
  339. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  340. if(list!=null && list.size()>0){
  341. payOrder.setStationIdList(list);
  342. payOrder.setStationId(null);
  343. }
  344. //默认当前登陆人的ID 5冯总油站
  345. startPage();
  346. //payOrder.setStatus("1");
  347. payOrder.setOrderType("1");
  348. List<PayOrder> orderList = payOrderService.selectAllDayReport(payOrder);
  349. return getDataTable(orderList);
  350. }
  351. /***
  352. * 根据油品分类,查询油品的总金额,总升数
  353. * @param payOrder
  354. * @return
  355. */
  356. @GetMapping("/selectDayReport")
  357. public TableDataInfo selectDayReport(PayOrder payOrder)
  358. {
  359. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  360. if(list!=null && list.size()>0){
  361. payOrder.setStationIdList(list);
  362. payOrder.setStationId(null);
  363. }
  364. //payOrder.setStatus("1");
  365. payOrder.setOrderType("1");
  366. List<PayOrder> orderList = payOrderService.selectDayReport(payOrder);
  367. return getTable(orderList);
  368. }
  369. /**
  370. * 导出订单支付列表
  371. */
  372. @Log(title = "订单支付", businessType = BusinessType.EXPORT)
  373. @GetMapping("/export")
  374. public AjaxResult export(PayOrder payOrder)
  375. {
  376. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  377. if(list!=null && list.size()>0){
  378. payOrder.setStationIdList(list);
  379. payOrder.setStationId(null);
  380. }
  381. //payOrder.setStatus("1");
  382. payOrder.setOrderType("1");
  383. List<PayOrder> payOrderList = payOrderService.selectPayOrderExport(payOrder);
  384. ExcelUtil<PayOrder> util = new ExcelUtil<PayOrder>(PayOrder.class);
  385. return util.exportExcel(payOrderList, "order");
  386. }
  387. /**
  388. * 获取订单支付详细信息
  389. */
  390. @GetMapping(value = "/{orderId}")
  391. public AjaxResult getInfo(@PathVariable("orderId") Long orderId)
  392. {
  393. return AjaxResult.success(payOrderService.selectPayOrderById(orderId));
  394. }
  395. /**
  396. * 订单退款
  397. */
  398. @GetMapping(value = "/refund/{orderId}")
  399. public AjaxResult refund(@PathVariable("orderId") Long orderId)
  400. {
  401. int i=0;
  402. PayOrder payOrder=new PayOrder();
  403. PayOrder payOrder1=payOrderService.selectPayOrderById(orderId);
  404. if(payOrder1.getStatus().equals("3")){
  405. return AjaxResult.error("已经被线上退款,不能重复退款");
  406. }
  407. if(payOrder1.getStatus().equals("2")){
  408. return AjaxResult.error("已经被退款,不能重复退款");
  409. }
  410. LoginUser currentUser = SecurityUtils.getLoginUser();
  411. StationBalanceChange stationBalanceChange=new StationBalanceChange();
  412. stationBalanceChange.setAmt(payOrder1.getSellAmt());
  413. stationBalanceChange.setStationId(payOrder1.getStationId());
  414. stationBalanceChange.setType("+");
  415. stationBalanceChange.setCreateBy(currentUser.getUser().getUserId()+"");
  416. Long deptId=payOrder1.getStationId();
  417. SysDept dept1=deptService.selectDeptById(deptId);
  418. SysDept dept=new SysDept();
  419. Float Balance1= Float.parseFloat(dept1.getBalance().toString());
  420. Float value=Float.parseFloat(payOrder1.getSellAmt().toString());
  421. stationBalanceChange.setNowAmt(dept1.getBalance());
  422. dept.setDeptId(deptId);
  423. dept.setBalance(BigDecimal.valueOf(Balance1+value));
  424. i= deptService.updateDept(dept);
  425. if(i!=0) {
  426. payOrder.setOrderId(orderId);
  427. payOrder.setStatus("2");//设置为已退款
  428. payOrder.setRefundDate(new Date());
  429. payOrder.setRefundUser(currentUser.getUser().getUserId());
  430. stationBalanceChangeService.insertStationBalanceChange(stationBalanceChange);
  431. i = payOrderService.updatePayOrder(payOrder);
  432. }
  433. if(i==0){
  434. return AjaxResult.error();
  435. }
  436. return AjaxResult.success(i);
  437. }
  438. /**
  439. * lng线上退款
  440. */
  441. @GetMapping(value = "/examinRefundLNGSuccess")
  442. public AjaxResult refund(@RequestBody PayOrder payOrder)
  443. {
  444. PayOrder payOrder1=payOrderService.selectPayOrderById(payOrder.getOrderId());
  445. if(payOrder1.getStatus().equals("3")){
  446. return AjaxResult.error("已经被线上退款,不能重复退款");
  447. }
  448. if(payOrder1.getStatus().equals("2")){
  449. return AjaxResult.error("已经被退款,不能重复退款");
  450. }
  451. try {
  452. AjaxResult ajaxResult=payOrderService.lngRefund(payOrder);
  453. return ajaxResult;
  454. } catch (Exception e) {
  455. return AjaxResult.error(e.getMessage());
  456. }
  457. }
  458. /**
  459. * 线上订单退款
  460. */
  461. @PostMapping(value = "/sxfRefund")
  462. public AjaxResult sxfRefund(@RequestBody PayOrder payOrder)
  463. {
  464. if(!"1".equals(payOrder.getStatus())){
  465. return AjaxResult.error("当前订单不能进行退款");
  466. }
  467. try {
  468. payOrderService.sxfRefund(payOrder);
  469. } catch (Exception e) {
  470. return AjaxResult.error(e.getMessage());
  471. }
  472. return AjaxResult.success(1);
  473. }
  474. /**
  475. * 不需要审核直接进行退款
  476. */
  477. @PostMapping(value = "/directRefund")
  478. public AjaxResult directRefund(@RequestBody PayOrder payOrder)
  479. {
  480. if(!"1".equals(payOrder.getStatus())){
  481. return AjaxResult.error("当前订单不能进行退款");
  482. }
  483. int i=0;
  484. LoginUser currentUser = SecurityUtils.getLoginUser();
  485. payOrder.setExaminUser(currentUser.getUser().getUserId());
  486. payOrder.setExaminDate( new Date());
  487. payOrder.setExaminStatus("2");
  488. payOrder.setRefundUser(currentUser.getUser().getUserId());
  489. payOrder.setRefundDate( new Date());
  490. try {
  491. payOrderService.sxfRefund(payOrder);
  492. i=payOrderService.updatePayOrder(payOrder);
  493. } catch (Exception e) {
  494. return AjaxResult.error(e.getMessage());
  495. }
  496. return AjaxResult.success(i);
  497. }
  498. /**
  499. * 根据上级集团的信息判断当前的用户是否进行审核
  500. *
  501. */
  502. @PostMapping(value = "/applyExaminRefund")
  503. public AjaxResult applyExaminRefund(@RequestBody PayOrder payOrder)
  504. {
  505. LoginUser currentUser = SecurityUtils.getLoginUser();
  506. SysDept dept= currentUser.getUser().getDept();
  507. if(!"1".equals(payOrder.getStatus())){
  508. return AjaxResult.error("当前订单不能进行退款");
  509. }
  510. if("dzk".equals(payOrder.getPayType())){
  511. return AjaxResult.error("电子卡的订单不能进行退款");
  512. }
  513. if(dept.getParentId()==100||dept.getParentId()==0||dept.getParentId()==3){
  514. //集团的账号没有申请退款的权利
  515. return AjaxResult.error("集团账号没有申请退款的权限");
  516. }else{
  517. SysDept dept1=deptService.selectDeptById(dept.getParentId());
  518. //当前不需要进行审批时
  519. if("0".equals(dept1.getRefundExaminStatus())){
  520. if(!"1".equals(payOrder.getStatus())){
  521. return AjaxResult.error("当前订单不能进行退款");
  522. }
  523. int i=0;
  524. //payOrder.setExaminUser(currentUser.getUser().getUserId());
  525. //payOrder.setExaminDate( new Date());
  526. payOrder.setExaminStatus("1");
  527. payOrder.setRefundUser(currentUser.getUser().getUserId());
  528. payOrder.setRefundDate( new Date());
  529. try {
  530. //payOrderService.sxfRefund(payOrder);
  531. i=payOrderService.updatePayOrder(payOrder);
  532. } catch (Exception e) {
  533. return AjaxResult.error(e.getMessage());
  534. }
  535. return AjaxResult.success(i);
  536. }
  537. //当前进行需要进行审批时,进行申请
  538. else {
  539. if(!"1".equals(payOrder.getStatus())){
  540. return AjaxResult.error("当前订单不能进行退款");
  541. }
  542. int i=0;
  543. payOrder.setRefundUser(currentUser.getUser().getUserId());
  544. payOrder.setRefundDate( new Date());
  545. payOrder.setExaminStatus("1");
  546. i=payOrderService.updatePayOrder(payOrder);
  547. return AjaxResult.success(i);
  548. }
  549. }
  550. }
  551. /**
  552. * 订单申请退款,重新申请退款
  553. */
  554. /*@PostMapping(value = "/applyRefund")
  555. public AjaxResult applyRefund(@RequestBody PayOrder payOrder)
  556. {
  557. if(!"1".equals(payOrder.getStatus())){
  558. return AjaxResult.error("当前订单不能进行退款");
  559. }
  560. if(!("0".equals(payOrder.getExaminStatus())||payOrder.getExaminStatus()==null||"3".equals(payOrder.getExaminStatus()))){
  561. return AjaxResult.error("当前订单不能进行退款");
  562. }
  563. int i=0;
  564. LoginUser currentUser = SecurityUtils.getLoginUser();
  565. payOrder.setRefundUser(currentUser.getUser().getUserId());
  566. payOrder.setRefundDate( new Date());
  567. payOrder.setExaminStatus("1");
  568. i=payOrderService.updatePayOrder(payOrder);
  569. return AjaxResult.success(i);
  570. }*/
  571. /**
  572. * 重新申请退款
  573. */
  574. /*@PostMapping(value = "/reapplyRefund")
  575. public AjaxResult reapplyRefund(@RequestBody PayOrder payOrder)
  576. {
  577. if(!"1".equals(payOrder.getStatus())){
  578. return AjaxResult.error("当前订单不能进行退款");
  579. }
  580. if(!("3".equals(payOrder.getExaminStatus()))){
  581. return AjaxResult.error("当前订单不能进行退款");
  582. }
  583. int i=0;
  584. LoginUser currentUser = SecurityUtils.getLoginUser();
  585. payOrder.setRefundUser(currentUser.getUser().getUserId());
  586. payOrder.setRefundDate( new Date());
  587. payOrder.setExaminStatus("1");
  588. i=payOrderService.updatePayOrder(payOrder);
  589. return AjaxResult.success(i);
  590. }*/
  591. /**
  592. * 撤回申请
  593. */
  594. @PostMapping(value = "/recallApplyRefund")
  595. public AjaxResult recallApplyRefund(@RequestBody PayOrder payOrder)
  596. {
  597. if(!"1".equals(payOrder.getStatus())){
  598. return AjaxResult.error("当前订单不能撤回申请");
  599. }
  600. int i=0;
  601. LoginUser currentUser = SecurityUtils.getLoginUser();
  602. payOrder.setRefundUser(currentUser.getUser().getUserId());
  603. payOrder.setRefundDate( new Date());
  604. payOrder.setExaminStatus("0");
  605. i=payOrderService.updatePayOrder(payOrder);
  606. return AjaxResult.success(i);
  607. }
  608. /**
  609. * 审核通过
  610. */
  611. @PostMapping(value = "/examinRefundSuccess")
  612. public AjaxResult examinRefundSuccess(@RequestBody PayOrder payOrder)
  613. {
  614. if(!"1".equals(payOrder.getStatus())){
  615. return AjaxResult.error("当前订单不能进行退款");
  616. }
  617. if(!("1".equals(payOrder.getExaminStatus())||"4".equals(payOrder.getExaminStatus()))){
  618. return AjaxResult.error("当前订单不能进行退款");
  619. }
  620. int i=0;
  621. LoginUser currentUser = SecurityUtils.getLoginUser();
  622. /* if("0".equals(currentUser.getUser().getDept().getRefundExaminStatus())){
  623. return AjaxResult.error("当前集团未设置审核权限");
  624. }*/
  625. payOrder.setExaminUser(currentUser.getUser().getUserId());
  626. payOrder.setExaminDate( new Date());
  627. payOrder.setExaminStatus("2");
  628. try {
  629. payOrderService.sxfRefund(payOrder);
  630. payOrder.setRefundSuccessDate(new Date());
  631. payOrder.setStatus(null);
  632. i=payOrderService.updatePayOrder(payOrder);
  633. } catch (Exception e) {
  634. //设置为退款失败的状态
  635. payOrder.setExaminStatus("4");
  636. payOrderService.updatePayOrder(payOrder);
  637. return AjaxResult.error(e.getMessage());
  638. }
  639. return AjaxResult.success(i);
  640. }
  641. /**
  642. * 审核驳回
  643. */
  644. @PostMapping(value = "/examinRefundBack")
  645. public AjaxResult examinRefundBack(@RequestBody PayOrder payOrder)
  646. {
  647. if(!"1".equals(payOrder.getStatus())){
  648. return AjaxResult.error("当前订单不能进行退款");
  649. }
  650. if(!"1".equals(payOrder.getExaminStatus())){
  651. return AjaxResult.error("当前订单不能进行退款");
  652. }
  653. int i=0;
  654. LoginUser currentUser = SecurityUtils.getLoginUser();
  655. if("0".equals(currentUser.getUser().getDept().getRefundExaminStatus())){
  656. return AjaxResult.error("当前集团未设置审核权限");
  657. }
  658. payOrder.setExaminUser(currentUser.getUser().getUserId());
  659. payOrder.setExaminDate( new Date());
  660. payOrder.setExaminStatus("3");
  661. try {
  662. i=payOrderService.updatePayOrder(payOrder);
  663. } catch (Exception e) {
  664. return AjaxResult.error(e.getMessage());
  665. }
  666. return AjaxResult.success(i);
  667. }
  668. /**
  669. * 恢复正常付款状态
  670. */
  671. @GetMapping(value = "/reback/{orderId}")
  672. public AjaxResult reback(@PathVariable("orderId") Long orderId)
  673. {
  674. int i=0;
  675. PayOrder payOrder=new PayOrder();
  676. PayOrder payOrder1=payOrderService.selectPayOrderById(orderId);
  677. if(payOrder1.getStatus().equals("3")){
  678. return AjaxResult.error("已经被线上退款,不能回退");
  679. }
  680. if(payOrder1.getStatus().equals("1")){
  681. return AjaxResult.error("已经支付成功,不能重新回退");
  682. }
  683. StationBalanceChange stationBalanceChange=new StationBalanceChange();
  684. LoginUser currentUser = SecurityUtils.getLoginUser();
  685. stationBalanceChange.setAmt(payOrder1.getSellAmt());
  686. stationBalanceChange.setStationId(payOrder1.getStationId());
  687. stationBalanceChange.setType("-");
  688. stationBalanceChange.setCreateBy(currentUser.getUser().getUserId()+"");
  689. Long deptId=payOrder1.getStationId();
  690. SysDept dept1=deptService.selectDeptById(deptId);
  691. SysDept dept=new SysDept();
  692. Float Balance1= Float.parseFloat(dept1.getBalance().toString());
  693. Float value=Float.parseFloat(payOrder1.getSellAmt().toString());
  694. stationBalanceChange.setNowAmt(dept1.getBalance());
  695. dept.setDeptId(deptId);
  696. dept.setBalance(BigDecimal.valueOf(Balance1-value));
  697. i= deptService.updateDept(dept);
  698. if(i!=0) {
  699. payOrder.setOrderId(orderId);
  700. payOrder.setStatus("1");//设置为已退款
  701. stationBalanceChangeService.insertStationBalanceChange(stationBalanceChange);
  702. i = payOrderService.updatePayOrder(payOrder);
  703. }
  704. if(i==0){
  705. return AjaxResult.error();
  706. }
  707. return AjaxResult.success(i);
  708. }
  709. /**
  710. * 获取92号汽油数据
  711. * @param payOrder
  712. * @return
  713. */
  714. @GetMapping("/listQydata92")
  715. public TableDataInfo listQydata92(PayOrder payOrder)
  716. {
  717. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  718. if(list!=null && list.size()>0){
  719. payOrder.setStationIdList(list);
  720. payOrder.setStationId(null);
  721. }
  722. payOrder.setOilName("92#");
  723. payOrder.setStatus("1");
  724. payOrder.setOrderType("1");
  725. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  726. return getTable(orderList);
  727. }
  728. /**
  729. * 获取95号汽油数据
  730. * @param payOrder
  731. * @return
  732. */
  733. @GetMapping("/listQydata95")
  734. public TableDataInfo listQydata95(PayOrder payOrder)
  735. {
  736. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  737. if(list!=null && list.size()>0){
  738. payOrder.setStationIdList(list);
  739. payOrder.setStationId(null);
  740. }
  741. payOrder.setOilName("95#");
  742. payOrder.setStatus("1");
  743. payOrder.setOrderType("1");
  744. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  745. return getTable(orderList);
  746. }
  747. /**
  748. * 获取97号汽油数据
  749. * @param payOrder
  750. * @return
  751. */
  752. @GetMapping("/listQydata98")
  753. public TableDataInfo listQydata98(PayOrder payOrder)
  754. {
  755. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  756. if(list!=null && list.size()>0){
  757. payOrder.setStationIdList(list);
  758. payOrder.setStationId(null);
  759. }
  760. payOrder.setOilName("98#");
  761. payOrder.setStatus("1");
  762. payOrder.setOrderType("1");
  763. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  764. return getTable(orderList);
  765. }
  766. /**
  767. * 获取97号汽油数据
  768. * @param payOrder
  769. * @return
  770. */
  771. @GetMapping("/listQydata20")
  772. public TableDataInfo listQydata20(PayOrder payOrder)
  773. {
  774. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  775. if(list!=null && list.size()>0){
  776. payOrder.setStationIdList(list);
  777. payOrder.setStationId(null);
  778. }
  779. payOrder.setOilName("-20#");
  780. payOrder.setStatus("1");
  781. payOrder.setOrderType("1");
  782. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  783. return getTable(orderList);
  784. }
  785. /**
  786. * 获取97号汽油数据
  787. * @param payOrder
  788. * @return
  789. */
  790. @GetMapping("/listQydata0")
  791. public TableDataInfo listQydata0(PayOrder payOrder)
  792. {
  793. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  794. if(list!=null && list.size()>0){
  795. payOrder.setStationIdList(list);
  796. payOrder.setStationId(null);
  797. }
  798. payOrder.setOilName("0#");
  799. payOrder.setStatus("1");
  800. payOrder.setOrderType("1");
  801. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  802. return getTable(orderList);
  803. }
  804. /**
  805. * 获取97号汽油数据
  806. * @param payOrder
  807. * @return
  808. */
  809. @GetMapping("/listQydata10")
  810. public TableDataInfo listQydata10(PayOrder payOrder)
  811. {
  812. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  813. if(list!=null && list.size()>0){
  814. payOrder.setStationIdList(list);
  815. payOrder.setStationId(null);
  816. }
  817. payOrder.setOilName("-10#");
  818. payOrder.setStatus("1");
  819. payOrder.setOrderType("1");
  820. List<PayOrder> orderList = payOrderService.listQydata(payOrder);
  821. return getTable(orderList);
  822. }
  823. /**
  824. * 获取x轴数据
  825. * @param payOrder
  826. * @return
  827. */
  828. @GetMapping("/listXdata")
  829. public TableDataInfo listXdata(PayOrder payOrder)
  830. {
  831. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  832. if(list!=null && list.size()>0){
  833. payOrder.setStationIdList(list);
  834. payOrder.setStationId(null);
  835. }
  836. payOrder.setStatus("1");
  837. payOrder.setOrderType("1");
  838. List<PayOrder> orderList = payOrderService.listXdata(payOrder);
  839. return getTable(orderList);
  840. }
  841. /**
  842. * 查询油站第一笔订单的数据
  843. */
  844. @GetMapping("/getPayOrderInfoMin")
  845. public AjaxResult getPayOrderInfoMin(PayOrder payOrder)
  846. {
  847. if(payOrder.getStationId() ==null) {
  848. LoginUser currentUser = SecurityUtils.getLoginUser();
  849. payOrder.setStationId(currentUser.getUser().getDeptId());
  850. }
  851. payOrder.setStatus("1");
  852. payOrder.setOrderType("1");
  853. return AjaxResult.success(payOrderService.getPayOrderInfoMin(payOrder));
  854. }
  855. /**
  856. * 新增订单支付
  857. */
  858. @Log(title = "订单支付", businessType = BusinessType.INSERT)
  859. @PostMapping
  860. public AjaxResult add(@RequestBody PayOrder payOrder)
  861. {
  862. return toAjax(payOrderService.insertPayOrder(payOrder));
  863. }
  864. /**
  865. * 修改订单支付
  866. */
  867. @Log(title = "订单支付", businessType = BusinessType.UPDATE)
  868. @PutMapping
  869. public AjaxResult edit(@RequestBody PayOrder payOrder)
  870. {
  871. return toAjax(payOrderService.updatePayOrder(payOrder));
  872. }
  873. /**
  874. * 删除订单支付
  875. */
  876. @Log(title = "订单支付", businessType = BusinessType.DELETE)
  877. @DeleteMapping("/{orderIds}")
  878. public AjaxResult remove(@PathVariable Long[] orderIds)
  879. {
  880. return toAjax(payOrderService.deletePayOrderByIds(orderIds));
  881. }
  882. /**
  883. * 查询订单支付列表
  884. */
  885. @GetMapping("/LNGDeptList")
  886. public TableDataInfo LNGDeptList(PayOrder payOrder)
  887. {
  888. List<String> list = deptService.levelDeptList(payOrder.getLevelId());
  889. if(list!=null && list.size()>0){
  890. payOrder.setStationIdList(list);
  891. payOrder.setStationId(null);
  892. }
  893. startPage();
  894. //payOrder.setStatus("1");
  895. List<PayOrder> payOrderList = payOrderService.LNGDeptList(payOrder);
  896. return getDataTable(payOrderList);
  897. }
  898. /**
  899. * 查询订单支付列表
  900. */
  901. @GetMapping("/LNGlist")
  902. public TableDataInfo LNGlist(PayOrder payOrder)
  903. {
  904. List<String> list = deptService.levelLngDeptList(payOrder.getLevelId());
  905. if(list!=null && list.size()>0){
  906. payOrder.setStationIdList(list);
  907. payOrder.setStationId(null);
  908. }
  909. startPage();
  910. //payOrder.setStatus("1");
  911. List<PayOrder> payOrderList = payOrderService.selectLNGPayOrderExport(payOrder);
  912. return getDataTable(payOrderList);
  913. }
  914. @Log(title = "导出LNG", businessType = BusinessType.EXPORT)
  915. @GetMapping("/LNGExport")
  916. public AjaxResult LNGExport(PayOrder payOrder)
  917. {
  918. List<String> list = deptService.levelLngDeptList(payOrder.getLevelId());
  919. if(list!=null && list.size()>0){
  920. payOrder.setStationIdList(list);
  921. payOrder.setStationId(null);
  922. }
  923. //payOrder.setStatus("1");
  924. List<PayOrder> payOrderList = payOrderService.selectLNGPayOrderExport(payOrder);
  925. AjaxResult ss = exportExcel(payOrderList, "导出订单信息");
  926. return ss;
  927. }
  928. private AjaxResult exportExcel(List<PayOrder> payOrderList, String sheetName) {
  929. OutputStream out = null;
  930. Workbook wb= new SXSSFWorkbook(500);
  931. try
  932. {
  933. Sheet sheet = wb.createSheet(sheetName);
  934. sheet.setDefaultColumnWidth(20);//默认列宽20
  935. CellStyle style = wb.createCellStyle();
  936. CreationHelper createHelper = wb.getCreationHelper();
  937. style.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-mm-dd hh:mm:ss"));
  938. int rows =payOrderList.size()+1;
  939. Cell cell =null;
  940. Row row =null;
  941. for (int i = 0; i < rows; i++) {
  942. if(i == 0) {
  943. row = sheet.createRow(i);
  944. cell = row.createCell(0);
  945. cell.setCellValue("油站名称");
  946. cell.setCellStyle(style);
  947. cell = row.createCell(1);
  948. cell.setCellValue("油品");
  949. cell.setCellStyle(style);
  950. cell = row.createCell(2);
  951. cell.setCellValue("订单号");
  952. cell.setCellStyle(style);
  953. cell = row.createCell(3);
  954. cell.setCellValue("枪标价");
  955. cell.setCellStyle(style);
  956. cell = row.createCell(4);
  957. cell.setCellValue("结算价");
  958. cell.setCellStyle(style);
  959. cell = row.createCell(5);
  960. cell.setCellValue("司机价");
  961. cell.setCellStyle(style);
  962. cell = row.createCell(6);
  963. cell.setCellValue("升数");
  964. cell.setCellStyle(style);
  965. cell = row.createCell(7);
  966. cell.setCellValue("应付金额");
  967. cell.setCellStyle(style);
  968. cell = row.createCell(8);
  969. cell.setCellValue("结算金额");
  970. cell.setCellStyle(style);
  971. cell = row.createCell(9);
  972. cell.setCellValue("司机金额");
  973. cell.setCellStyle(style);
  974. cell = row.createCell(10);
  975. cell.setCellValue("支付时间");
  976. cell.setCellStyle(style);
  977. cell = row.createCell(11);
  978. cell.setCellValue("手机号");
  979. cell.setCellStyle(style);
  980. }else {
  981. row = sheet.createRow(i);
  982. int j =i-1;
  983. cell = row.createCell(0);
  984. cell.setCellValue(payOrderList.get(j).getStationName());
  985. cell.setCellStyle(style);
  986. cell = row.createCell(1);
  987. cell.setCellValue(payOrderList.get(j).getOilName());
  988. cell.setCellStyle(style);
  989. cell = row.createCell(2);
  990. cell.setCellValue(payOrderList.get(j).getOrderNo());
  991. cell.setCellStyle(style);
  992. cell = row.createCell(3);
  993. cell.setCellValue(payOrderList.get(j).getOilPirce()+"");
  994. cell.setCellStyle(style);
  995. cell = row.createCell(4);
  996. if(payOrderList.get(j).getSellOilPrice()!=null){
  997. cell.setCellValue(payOrderList.get(j).getSellOilPrice()+"");
  998. }else{
  999. cell.setCellValue("0");
  1000. }
  1001. cell.setCellStyle(style);
  1002. cell = row.createCell(5);
  1003. if(payOrderList.get(j).getDriverOilPrice()!=null){
  1004. cell.setCellValue(payOrderList.get(j).getDriverOilPrice()+"");
  1005. }else{
  1006. cell.setCellValue("0");
  1007. }
  1008. cell.setCellStyle(style);
  1009. cell = row.createCell(6);
  1010. if(payOrderList.get(j).getOrderLiters()!=null){
  1011. cell.setCellValue(payOrderList.get(j).getOrderLiters()+"");
  1012. }else{
  1013. cell.setCellValue("0");
  1014. }
  1015. cell.setCellStyle(style);
  1016. cell = row.createCell(7);
  1017. if(payOrderList.get(j).getReceivableAmt()!=null){
  1018. cell.setCellValue(payOrderList.get(j).getReceivableAmt()+"");
  1019. }else{
  1020. cell.setCellValue("0");
  1021. }
  1022. cell.setCellStyle(style);
  1023. cell = row.createCell(8);
  1024. if(payOrderList.get(j).getSellAmt()!=null){
  1025. cell.setCellValue(payOrderList.get(j).getSellAmt()+"");
  1026. }else{
  1027. cell.setCellValue("0");
  1028. }
  1029. cell.setCellStyle(style);
  1030. cell = row.createCell(9);
  1031. if(payOrderList.get(j).getAmt()!=null){
  1032. cell.setCellValue(payOrderList.get(j).getAmt()+"");
  1033. }else{
  1034. cell.setCellValue("0");
  1035. }
  1036. cell.setCellStyle(style);
  1037. cell = row.createCell(10);
  1038. cell.setCellValue(payOrderList.get(j).getPayDate());
  1039. cell.setCellStyle(style);
  1040. cell = row.createCell(11);
  1041. cell.setCellValue(payOrderList.get(j).getMobilePhone());
  1042. cell.setCellStyle(style);
  1043. }
  1044. }
  1045. String filename = encodingFilename(sheetName);
  1046. out = new FileOutputStream(getAbsoluteFile(filename));
  1047. wb.write(out);
  1048. return AjaxResult.success(filename);
  1049. }
  1050. catch (Exception e)
  1051. {
  1052. log.error("导出Excel异常{}", e.getMessage());
  1053. throw new CustomException("导出Excel失败,请联系网站管理员!");
  1054. }
  1055. finally
  1056. {
  1057. if (wb != null)
  1058. {
  1059. try
  1060. {
  1061. wb.close();
  1062. }
  1063. catch (IOException e1)
  1064. {
  1065. e1.printStackTrace();
  1066. }
  1067. }
  1068. if (out != null)
  1069. {
  1070. try
  1071. {
  1072. out.close();
  1073. }
  1074. catch (IOException e1)
  1075. {
  1076. e1.printStackTrace();
  1077. }
  1078. }
  1079. }
  1080. }
  1081. private String encodingFilename(String filename) {
  1082. filename = UUID.randomUUID().toString() + "_" + filename + ".xlsx";
  1083. return filename;
  1084. }
  1085. public String getAbsoluteFile(String filename)
  1086. {
  1087. String downloadPath = YiJiaConfig.getDownloadPath() + filename;
  1088. File desc = new File(downloadPath);
  1089. if (!desc.getParentFile().exists())
  1090. {
  1091. desc.getParentFile().mkdirs();
  1092. }
  1093. return downloadPath;
  1094. }
  1095. @Log(title = "导出LNG站点", businessType = BusinessType.EXPORT)
  1096. @GetMapping("/LNGDeptExport")
  1097. public AjaxResult LNGDeptExport(PayOrder payOrder)
  1098. {
  1099. List<String> list = deptService.levelLngDeptList(payOrder.getLevelId());
  1100. if(list!=null && list.size()>0){
  1101. payOrder.setStationIdList(list);
  1102. payOrder.setStationId(null);
  1103. }
  1104. //payOrder.setStatus("1");
  1105. List<PayOrder> payOrderList = payOrderService.LNGDeptList(payOrder);
  1106. AjaxResult ss = exportDeptExcel(payOrderList, "导出订单信息");
  1107. return ss;
  1108. }
  1109. private AjaxResult exportDeptExcel(List<PayOrder> payOrderList, String sheetName) {
  1110. OutputStream out = null;
  1111. Workbook wb= new SXSSFWorkbook(500);
  1112. try
  1113. {
  1114. Sheet sheet = wb.createSheet(sheetName);
  1115. sheet.setDefaultColumnWidth(20);//默认列宽20
  1116. CellStyle style = wb.createCellStyle();
  1117. CreationHelper createHelper = wb.getCreationHelper();
  1118. style.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-mm-dd hh:mm:ss"));
  1119. int rows =payOrderList.size()+1;
  1120. Cell cell =null;
  1121. Row row =null;
  1122. for (int i = 0; i < rows; i++) {
  1123. if(i == 0) {
  1124. row = sheet.createRow(i);
  1125. cell = row.createCell(0);
  1126. cell.setCellValue("油站名称");
  1127. cell.setCellStyle(style);
  1128. cell = row.createCell(1);
  1129. cell.setCellValue("订单号");
  1130. cell.setCellStyle(style);
  1131. cell = row.createCell(2);
  1132. cell.setCellValue("油品");
  1133. cell.setCellStyle(style);
  1134. cell = row.createCell(3);
  1135. cell.setCellValue("枪标价");
  1136. cell.setCellStyle(style);
  1137. cell = row.createCell(4);
  1138. cell.setCellValue("结算价");
  1139. cell.setCellStyle(style);
  1140. cell = row.createCell(5);
  1141. cell.setCellValue("升数");
  1142. cell.setCellStyle(style);
  1143. cell = row.createCell(6);
  1144. cell.setCellValue("应付金额");
  1145. cell.setCellStyle(style);
  1146. cell = row.createCell(7);
  1147. cell.setCellValue("结算金额");
  1148. cell.setCellStyle(style);
  1149. cell = row.createCell(8);
  1150. cell.setCellValue("结算优惠金额");
  1151. cell.setCellStyle(style);
  1152. cell = row.createCell(9);
  1153. cell.setCellValue("支付时间");
  1154. cell.setCellStyle(style);
  1155. cell = row.createCell(10);
  1156. cell.setCellValue("手机号");
  1157. cell.setCellStyle(style);
  1158. cell = row.createCell(11);
  1159. cell.setCellValue("付款状态(1付款成功,2线下退款,3线上退款)");
  1160. cell.setCellStyle(style);
  1161. }else {
  1162. row = sheet.createRow(i);
  1163. int j =i-1;
  1164. cell = row.createCell(0);
  1165. cell.setCellValue(payOrderList.get(j).getStationName());
  1166. cell.setCellStyle(style);
  1167. cell = row.createCell(1);
  1168. cell.setCellValue(payOrderList.get(j).getOrderNo());
  1169. cell.setCellStyle(style);
  1170. cell = row.createCell(2);
  1171. cell.setCellValue(payOrderList.get(j).getOilName());
  1172. cell.setCellStyle(style);
  1173. cell = row.createCell(3);
  1174. cell.setCellValue(payOrderList.get(j).getOilPirce()+"");
  1175. cell.setCellStyle(style);
  1176. cell = row.createCell(4);
  1177. if(payOrderList.get(j).getSellOilPrice()!=null){
  1178. cell.setCellValue(payOrderList.get(j).getSellOilPrice()+"");
  1179. }else{
  1180. cell.setCellValue("0");
  1181. }
  1182. cell.setCellStyle(style);
  1183. cell = row.createCell(5);
  1184. cell.setCellValue(payOrderList.get(j).getOrderLiters() + "");
  1185. cell.setCellStyle(style);
  1186. cell = row.createCell(6);
  1187. if(payOrderList.get(j).getReceivableAmt()!=null){
  1188. cell.setCellValue(payOrderList.get(j).getReceivableAmt()+"");
  1189. }else{
  1190. cell.setCellValue("0");
  1191. }
  1192. cell.setCellStyle(style);
  1193. cell = row.createCell(7);
  1194. if(payOrderList.get(j).getSellAmt()!=null){
  1195. cell.setCellValue(payOrderList.get(j).getSellAmt()+"");
  1196. }else{
  1197. cell.setCellValue("0");
  1198. }
  1199. cell.setCellStyle(style);
  1200. cell = row.createCell(8);
  1201. if(payOrderList.get(j).getSellDiscountAmt()!=null){
  1202. cell.setCellValue(payOrderList.get(j).getSellDiscountAmt()+"");
  1203. }else{
  1204. cell.setCellValue("0");
  1205. }
  1206. cell.setCellStyle(style);
  1207. cell = row.createCell(9);
  1208. cell.setCellValue(payOrderList.get(j).getPayDate());
  1209. cell.setCellStyle(style);
  1210. cell = row.createCell(10);
  1211. cell.setCellValue(payOrderList.get(j).getMobilePhone());
  1212. cell.setCellStyle(style);
  1213. cell = row.createCell(11);
  1214. if(payOrderList.get(j).getStatus().equals("1")) {
  1215. cell.setCellValue("支付成功");
  1216. }else if(payOrderList.get(j).getStatus().equals("2")){
  1217. cell.setCellValue("线下退款");
  1218. }else if(payOrderList.get(j).getStatus().equals("3")){
  1219. cell.setCellValue("线上退款");
  1220. }else{
  1221. cell.setCellValue("支付失败");
  1222. }
  1223. cell.setCellStyle(style);
  1224. }
  1225. }
  1226. String filename = encodingFilename(sheetName);
  1227. out = new FileOutputStream(getAbsoluteFile(filename));
  1228. wb.write(out);
  1229. return AjaxResult.success(filename);
  1230. }
  1231. catch (Exception e)
  1232. {
  1233. log.error("导出Excel异常{}", e.getMessage());
  1234. throw new CustomException("导出Excel失败,请联系网站管理员!");
  1235. }
  1236. finally
  1237. {
  1238. if (wb != null)
  1239. {
  1240. try
  1241. {
  1242. wb.close();
  1243. }
  1244. catch (IOException e1)
  1245. {
  1246. e1.printStackTrace();
  1247. }
  1248. }
  1249. if (out != null)
  1250. {
  1251. try
  1252. {
  1253. out.close();
  1254. }
  1255. catch (IOException e1)
  1256. {
  1257. e1.printStackTrace();
  1258. }
  1259. }
  1260. }
  1261. }
  1262. /**
  1263. * 补打订单信息
  1264. */
  1265. @Log(title = "补打订单小票", businessType = BusinessType.OTHER)
  1266. @GetMapping("/printOrderInfo")
  1267. public AjaxResult printOrderInfo(PayOrder payOrder){
  1268. int i =0;
  1269. DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1270. if(payOrder.getOrderId() !=null){
  1271. String content1 ="";
  1272. String content2 ="" ;
  1273. PayOrder order = payOrderService.selectPayOrderById(payOrder.getOrderId());
  1274. if(order!=null){
  1275. String paytype ="";
  1276. String phoneNumber ="";
  1277. if(order.getCustomerPhone()!=null ){
  1278. phoneNumber = order.getCustomerPhone().replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");
  1279. }
  1280. if(order.getPayType().equals("wx")){
  1281. paytype="微信";
  1282. }else if(order.getPayType().equals("dzk")){
  1283. paytype="电子卡";
  1284. }else if(order.getPayType().equals("zfb")){
  1285. paytype="支付宝";
  1286. }else if(order.getPayType().equals("xj")){
  1287. paytype="现金";
  1288. }
  1289. content1 = "<CB>油品订单--顾客联</CB><BR>";
  1290. content1 += "<BR>";
  1291. content1 += "--------------------------------<BR>";
  1292. content1 += "<BR>";
  1293. content1 += "<BOLD><B>原价: "+order.getReceivableAmt()+" 元</B></BOLD><BR>";
  1294. content1 += "订单号:"+order.getOrderNo()+" <BR>";
  1295. content1 += "支付方式: "+paytype+" <BR>";
  1296. content1 += "下单时间:"+dateFormat.format(order.getCreatedDate())+" <BR>";
  1297. content1 += "付款时间:"+dateFormat.format(order.getPayDate())+" <BR>";
  1298. content1 += "油站:"+order.getStationName()+" <BR>";
  1299. content1 += "油枪:"+order.getOilGun()+"号枪<BR>";
  1300. if(order.getOilType()!=null && !order.getOilType().equals("3")){
  1301. content1 += "油品: "+order.getOilName()+" <BR>";
  1302. content1 += "油量: "+order.getOrderLiters()+" 升<BR>";
  1303. content1 += "单价: "+order.getOilPirce()+" L/元<BR>";
  1304. content1 += "优惠: "+order.getDiscountAmt()+" 元<BR>";
  1305. }
  1306. content1 += "支付: "+order.getAmt()+" 元<BR>";
  1307. content1 += "手机号: "+phoneNumber +" <BR>";
  1308. content1 += "加油员: "+order.getOilPersonnel() +" <BR>";
  1309. content1 += "<BR>";
  1310. content2 = "<CB>油品订单--商户联</CB><BR>";
  1311. content2 += "<BR>";
  1312. content2 += "--------------------------------<BR>";
  1313. content2 += "<BR>";
  1314. content2 += "<BOLD><B>原价: "+order.getReceivableAmt()+" 元</B></BOLD><BR>";
  1315. content2 += "订单号:"+order.getOrderNo()+" <BR>";
  1316. content2 += "支付方式: "+paytype+" <BR>";
  1317. content2 += "下单时间:"+dateFormat.format(order.getCreatedDate())+" <BR>";
  1318. content2 += "付款时间:"+dateFormat.format(order.getPayDate())+" <BR>";
  1319. content2 += "油站:"+order.getStationName()+" <BR>";
  1320. content2 += "油枪:"+order.getOilGun()+"号枪<BR>";
  1321. if(order.getOilType()!=null && !order.getOilType().equals("3")){
  1322. content2 += "油品: "+order.getOilName()+" <BR>";
  1323. content2 += "油量: "+order.getOrderLiters()+" 升<BR>";
  1324. content2 += "单价: "+order.getOilPirce()+" L/元<BR>";
  1325. content2 += "优惠: "+order.getDiscountAmt()+" 元<BR>";
  1326. }
  1327. content2 += "支付: "+order.getAmt()+" 元<BR>";
  1328. content2 += "手机号: "+phoneNumber +" <BR>";
  1329. content2 += "<BR>";
  1330. }
  1331. Map params =new HashMap();
  1332. params.put("stationId", order.getStationId());
  1333. params.put("deviceType", "1");
  1334. Map mp = stationDeviceManageService.getPrinterSnByStationId(params);
  1335. SysDept dept= deptService.selectDeptById(order.getStationId());
  1336. if(mp!=null&&mp.containsKey("device_no") && mp.get("device_no")!= null && mp.get("device_no")!=""){
  1337. String sn = mp.get("device_no").toString();
  1338. if(dept!=null && dept.getPrintSetting()!=null&&dept.getPrintSetting().equals("1") &&content1!=null){
  1339. FeiEPrinterUtil.printReceipt(sn,content1);
  1340. i=1;
  1341. logger.info("客户联打印成功");
  1342. }else if(dept!=null && dept.getPrintSetting()!=null&&dept.getPrintSetting().equals("2")&&content2!=null){
  1343. FeiEPrinterUtil.printReceipt(sn,content2);
  1344. i=1;
  1345. logger.info("商户联打印成功");
  1346. }else if(dept!=null && dept.getPrintSetting()!=null&&dept.getPrintSetting().equals("3")&&content1!=null&&content2!=null){
  1347. FeiEPrinterUtil.printReceipt(sn, content1+content2);
  1348. i=1;
  1349. logger.info("客户联和商户联打印成功");
  1350. }else {
  1351. i=0;
  1352. logger.info("打印失败");
  1353. }
  1354. }else {
  1355. logger.info("请正确配置打印机");
  1356. i=2;
  1357. }
  1358. }
  1359. return toAjaxee(i);
  1360. }
  1361. }