From 2e648a0b784b095e81b632952f9dab3eba413a8c Mon Sep 17 00:00:00 2001 From: atao Date: Mon, 28 Aug 2017 12:05:26 +0800 Subject: [PATCH] 提交代码 --- src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/OrderManageController.java | 385 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 380 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/OrderManageController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/OrderManageController.java index 3f9424f..12eea62 100644 --- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/OrderManageController.java +++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/OrderManageController.java @@ -1,10 +1,24 @@ package com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import com.alibaba.dubbo.common.utils.CollectionUtils; +import com.clouds.common.utils.excle.ExcelUtil; +import com.clouds.common.utils.excle.ExcleFillDateManager; +import com.clouds.common.utils.excle.Layouter; import com.clouds.common.web.BizController; import com.clouds.common.web.vo.BizResultVO; import com.clouds.common.web.vo.EasyUIDataGridVO; +import com.xiaoleilu.hutool.date.DatePattern; +import com.xiaoleilu.hutool.date.DateUtil; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.bean.PageBean; import com.zteits.clouds.api.apibase.constants.ErrorType; @@ -14,11 +28,16 @@ import com.zteits.clouds.api.dto.pay.param.ParkOrderByConditionQueryRequest; import com.zteits.clouds.api.service.pay.TdBOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.xssf.usermodel.XSSFSheet; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; /** * Copyright: Copyright (c) 2017 zteits @@ -33,8 +52,8 @@ import org.springframework.web.bind.annotation.RestController; * ---------------------------------------------------------* * 2017/8/24 atao v1.0.0 创建 */ -@Api(value = "订单管理",description = "订单管理") -@RestController +@Api(value = "订单管理", description = "订单管理") +@Controller @RequestMapping("/order") public class OrderManageController extends BizController { @@ -43,8 +62,9 @@ public class OrderManageController extends BizController { @ApiOperation("根据查询条件查询停车订单") @PostMapping("/queryParkOrderByCondition") + @ResponseBody public BizResultVO> queryParkOrderByCondition( - @RequestBody ParkOrderByConditionQueryRequest request) throws Exception{ + @RequestBody ParkOrderByConditionQueryRequest request) throws Exception { if (CollectionUtils.isEmpty(request.getPlNos())) { throw new BizException(ErrorType.PARAMM_NULL, "停车场编码"); } @@ -56,7 +76,362 @@ public class OrderManageController extends BizController { request.getBaseRequest().setPageSize(10); } BizResult> bizResult = tdBOrderService.queryParkOrderByCondition(request); - return returnJqGridData(bizResult,ParkOrderDTO.class); + return returnJqGridData(bizResult, ParkOrderDTO.class); + } + + /** + * 根据查询条件导出所有记录 + */ + @RequestMapping("/exportAllParkOrderByCondition") + public void exportAllParkOrderByCondition(@RequestParam String plNos, @RequestParam(required = false) String parkStatus, + @RequestParam(required = false) String payType, @RequestParam(required = false) String parkType, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date beginInTime, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endInTime, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date beginOutTime, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endOutTime, + @RequestParam(required = false) String carNum, HttpServletRequest request, + HttpServletResponse response) { + + ParkOrderByConditionQueryRequest dubboReq = new ParkOrderByConditionQueryRequest(); + if (StringUtils.isNotEmpty(plNos)) { + dubboReq.setPlNos(Arrays.asList(plNos.split(","))); + } + if (StringUtils.isNotEmpty(parkStatus)) { + String[] tempStr = parkStatus.split(","); + List nums = new ArrayList<>(); + for (String str : tempStr) { + nums.add(Integer.valueOf(str)); + } + + dubboReq.setParkStatus(nums); + + } + if (StringUtils.isNotEmpty(payType)) { + String[] tempStr = payType.split(","); + List nums = new ArrayList<>(); + for (String str : tempStr) { + nums.add(Integer.valueOf(str)); + } + dubboReq.setPayType(nums); + + } + + if (StringUtils.isNotEmpty(parkType)) { + String[] tempStr = parkType.split(","); + List nums = new ArrayList<>(); + for (String str : tempStr) { + nums.add(Integer.valueOf(str)); + } + dubboReq.setParkType(nums); + } + dubboReq.setBeginInTime(beginInTime); + dubboReq.setEndInTime(endInTime); + dubboReq.setBeginOutTime(beginOutTime); + dubboReq.setEndOutTime(endOutTime); + dubboReq.setCarNum(carNum); + dubboReq.setSysCode("10001"); + dubboReq.getBaseRequest().setPageNum(1); + dubboReq.getBaseRequest().setPageSize(0); + BizResult> bizResult = tdBOrderService.queryParkOrderByCondition(dubboReq); + + String[] title = new String[] {"停车场", "车牌号", "车辆类型", "状态", "进场时间", "出场时间", "进口", "出口", "停车时长", "应收", "实收", + "优惠券", "支付方式", "收费员", "免费理由", "总金额"}; + String sheetName = "停车记录"; + String fileName = "停车记录"; + // 1.创建excel信息 + XSSFSheet workSheet = ExcelUtil.createExcel(sheetName); + // 2.设置excel表头和表体 + Layouter.buildReport(workSheet, title, 0, 0); + //3.填充数据 + List contentList = new ArrayList(); + if (bizResult != null && !CollectionUtils.isEmpty(bizResult.getData().getDataList())) { + List list = bizResult.getData().getDataList(); + for (ParkOrderDTO e : list) { + if (e != null) { + Object[] obj = new Object[title.length]; + int index = 0; + obj[index++] = e.getParkName() != null ? e.getParkName() : ""; + obj[index++] = e.getCarNumber() != null ? e.getCarNumber() : ""; + obj[index++] = getParkTypeStr(e.getParkType()); + obj[index++] = getParkStatusStr(e.getOrderState()); + obj[index++] = e.getParkInTime() != null ? DateUtil.format(e.getParkInTime(), + DatePattern.NORM_DATETIME_PATTERN) : ""; + obj[index++] = e.getParkOutTime() != null ? DateUtil.format(e.getParkOutTime(), + DatePattern.NORM_DATETIME_FORMAT) : ""; + //进口 + obj[index++] = getParkInSouceCodeStr(e.getParkInSourceCode()); + //出口 + obj[index++] = getParkOutSourceCodeStr(e.getParkOutSourceCode()); + //停车时长 + obj[index++] = getParkingDurationStr(e.getParkingDuration()); + //应收 + obj[index++] = e.getOrderTotalFee() != null ? e.getOrderTotalFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP) : ""; + //实收 + obj[index++] = e.getOrderActFee() != null ? e.getOrderActFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP) : ""; + //优惠券 + obj[index++] = ""; + obj[index++] = getPayTypeStr(e.getPayType()); + //收费员 + obj[index++] = ""; + obj[index++] = getFreeReasonStr(e.getOrderType()); + //总金额 + obj[index++] = e.getOrderTotalFee() != null ? e.getOrderTotalFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP) : ""; + contentList.add(obj); + } + } + } + ExcleFillDateManager fillUserManager = new ExcleFillDateManager(); + fillUserManager.fillSalesOrga(workSheet, title, contentList, 2); + // 4.excel输出配置 + ExcelUtil.write(response, workSheet, fileName); + + } + + /** + * 根据查询条件导出欠费记录 + */ + + @RequestMapping("/exportArrearageParkOrderByCondition") + public void exportArrearageParkOrderByCondition(@RequestParam String plNos, @RequestParam(required = false) String parkStatus, + @RequestParam(required = false) String payType, @RequestParam(required = false) String parkType, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date beginInTime, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endInTime, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date beginOutTime, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endOutTime, + @RequestParam(required = false) String carNum, HttpServletRequest request, + HttpServletResponse response) { + + ParkOrderByConditionQueryRequest dubboReq = new ParkOrderByConditionQueryRequest(); + if (StringUtils.isNotEmpty(plNos)) { + dubboReq.setPlNos(Arrays.asList(plNos.split(","))); + } + if (StringUtils.isNotEmpty(parkStatus)) { + String[] tempStr = parkStatus.split(","); + List nums = new ArrayList<>(); + for (String str : tempStr) { + nums.add(Integer.valueOf(str)); + } + dubboReq.setParkStatus(nums); + } + if (StringUtils.isNotEmpty(payType)) { + String[] tempStr = payType.split(","); + List nums = new ArrayList<>(); + for (String str : tempStr) { + nums.add(Integer.valueOf(str)); + } + dubboReq.setPayType(nums); + } + + if (StringUtils.isNotEmpty(parkType)) { + String[] tempStr = parkType.split(","); + List nums = new ArrayList<>(); + for (String str : tempStr) { + nums.add(Integer.valueOf(str)); + } + dubboReq.setParkType(nums); + } + dubboReq.setBeginInTime(beginInTime); + dubboReq.setEndInTime(endInTime); + dubboReq.setBeginOutTime(beginOutTime); + dubboReq.setEndOutTime(endOutTime); + dubboReq.setCarNum(carNum); + dubboReq.setSysCode("10001"); + dubboReq.getBaseRequest().setPageNum(1); + dubboReq.getBaseRequest().setPageSize(0); + BizResult> bizResult = tdBOrderService.queryParkOrderByCondition(dubboReq); + + String[] title = new String[] {"停车场", "车牌号", "进场时间", "出场时间", "进口", "出口", "停车时长", "应收", "收费员"}; + String sheetName = "停车欠费记录"; + String fileName = "停车欠费记录"; + // 1.创建excel信息 + XSSFSheet workSheet = ExcelUtil.createExcel(sheetName); + // 2.设置excel表头和表体 + Layouter.buildReport(workSheet, title, 0, 0); + //3.填充数据 + List contentList = new ArrayList(); + if (bizResult != null && !CollectionUtils.isEmpty(bizResult.getData().getDataList())) { + List list = bizResult.getData().getDataList(); + for (ParkOrderDTO e : list) { + if (e != null) { + Object[] obj = new Object[title.length]; + int index = 0; + obj[index++] = e.getParkName() != null ? e.getParkName() : ""; + obj[index++] = e.getCarNumber() != null ? e.getCarNumber() : ""; + obj[index++] = e.getParkInTime() != null ? DateUtil.format(e.getParkInTime(), + DatePattern.NORM_DATETIME_PATTERN) : ""; + obj[index++] = e.getParkOutTime() != null ? DateUtil.format(e.getParkOutTime(), + DatePattern.NORM_DATETIME_FORMAT) : ""; + //进口 + obj[index++] = getParkInSouceCodeStr(e.getParkInSourceCode()); + //出口 + obj[index++] = getParkOutSourceCodeStr(e.getParkOutSourceCode()); + //停车时长 + obj[index++] = getParkingDurationStr(e.getParkingDuration()); + //应收 + obj[index++] = e.getOrderTotalFee() != null ? e.getOrderTotalFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP) : ""; + //收费员 + obj[index++] = ""; + contentList.add(obj); + } + } + } + ExcleFillDateManager fillUserManager = new ExcleFillDateManager(); + fillUserManager.fillSalesOrga(workSheet, title, contentList, 2); + // 4.excel输出配置 + ExcelUtil.write(response, workSheet, fileName); + + } + + /** + * 根据code 获取支付方式文本 + * + * @param payTypeCode + * @return + */ + private String getPayTypeStr(Integer payTypeCode) { + if (payTypeCode == null) { + return "未知"; + } + + String payTypeStr; + switch (payTypeCode) { + case 1: + payTypeStr = "支付宝"; + break; + case 2: + payTypeStr = "微信"; + break; + case 3: + payTypeStr = "银联"; + break; + case 4: + payTypeStr = "微信公众号"; + break; + case 6: + payTypeStr = "现金"; + break; + case 7: + payTypeStr = "IC卡"; + break; + default: + payTypeStr = "其他"; + } + return payTypeStr; + } + + private String getParkTypeStr(Integer parkTypeCode) { + if (parkTypeCode == null) { + return ""; + } + String parkTypeStr; + switch (parkTypeCode) { + case 0: + parkTypeStr = "临时车"; + break; + case 1: + parkTypeStr = "固定车"; + break; + + default: + parkTypeStr = "其他"; + } + return parkTypeStr; + } + + private String getParkStatusStr(Integer parkStatusCode) { + if (parkStatusCode == null) { + return ""; + } + String parkStatusStr; + switch (parkStatusCode) { + case 1: + parkStatusStr = "在场"; + break; + case 2: + parkStatusStr = "在场"; + break; + case 3: + parkStatusStr = "在场"; + break; + default: + parkStatusStr = "离场"; + break; + + } + return parkStatusStr; + } + + private String getFreeReasonStr(Integer freeReasonCode) { + if (freeReasonCode == null) { + return ""; + } + + String reason; + switch (freeReasonCode) { + case 0: + reason = "短时停车免费"; + break; + case 5: + reason = "逃逸"; + break; + case 7: + reason = "授权车免费"; + break; + case 8: + reason = "手动免费开闸"; + break; + default: + reason = "未知"; + } + return reason; + } + + //进口 + private String getParkInSouceCodeStr(String parkInSourceCode) { + if (null == parkInSourceCode) { + return ""; + } + return ""; } + //出口 + private String getParkOutSourceCodeStr(String parkOutSrouceCode) { + if (null == parkOutSrouceCode) { + return ""; + } + return ""; + } + + //停车时长 + private String getParkingDurationStr(Long parkingDuration) { + if (null == parkingDuration) { + return ""; + } + // 分 + Long theTime1 = 0L; + // 小时Integer + Long theTime2 = 0L; + // alert(theTime); + if (parkingDuration > 60) { + theTime1 = parkingDuration / 60; + // alert(theTime1+"-"+theTime); + if (theTime1 > 60) { + theTime2 = (theTime1 / 60); + theTime1 = theTime1 % 60; + } + } + String result = ""; + if (theTime1 > 0) { + result = "" + theTime1 + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + theTime2 + "小时" + result; + } + return result; + + } } -- libgit2 0.21.4