diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/MonthBillManagementController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/MonthBillManagementController.java index 19827cd..1c713e6 100644 --- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/MonthBillManagementController.java +++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/MonthBillManagementController.java @@ -6,12 +6,12 @@ package com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic; import java.math.BigDecimal; import java.text.SimpleDateFormat; 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 javax.servlet.http.HttpSession; import com.alibaba.dubbo.common.utils.CollectionUtils; import com.alibaba.dubbo.common.utils.StringUtils; @@ -39,13 +39,12 @@ import com.zteits.clouds.api.dto.clouds.dto.BillManageForMonthDetailDTO; import com.zteits.clouds.api.dto.clouds.dto.MonthBillMngtStatisticByParkinglotDTO; import com.zteits.clouds.api.dto.clouds.dto.MonthBillMngtStatisticDTO; import com.zteits.clouds.api.dto.clouds.dto.MonthBillSummaryStatisticDTO; -import com.zteits.clouds.api.dto.clouds.dto.YearMonthCardStatisticDTO; +import com.zteits.clouds.api.dto.clouds.dto.YearMonthCardIncomeStatisticDTO; import com.zteits.clouds.api.dto.clouds.param.BillQueryRequest; import com.zteits.clouds.api.dto.clouds.param.MonthBillRequest; -import com.zteits.clouds.api.dto.pay.param.YearMonthCardStatisticRequest; +import com.zteits.clouds.api.dto.pay.param.YearMonthCardIncomeStatisticRequest; import com.zteits.clouds.api.service.clouds.MonthBillManagementService; import com.zteits.clouds.api.service.clouds.YearMonthCardStatisticService; -import com.zteits.clouds.api.service.pay.TdCustCompanyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.xssf.usermodel.XSSFSheet; @@ -54,6 +53,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -79,79 +79,85 @@ public class MonthBillManagementController extends BizController { private SessionCommUtil sessionCommUtil; @Value("${project.syscode}") private String sysCode; - - + @ApiOperation("月账汇总单查询(统计图)") - @RequestMapping("/queryBillforMonthTotal") - @ResponseBody - public BizResultVO queryBillforMonthTotal(@RequestBody BillQueryRequest billQueryRequest, HttpServletRequest request, - HttpServletResponse response) throws Exception { - BizResult result = monthBillManagementService.queryBillforMonthTotal(billQueryRequest); - return new BizResultVO(result); - } - + @RequestMapping("/queryBillforMonthTotal") + @ResponseBody + public BizResultVO queryBillforMonthTotal(@RequestBody BillQueryRequest billQueryRequest, + HttpServletRequest request, + HttpServletResponse response) throws Exception { + BizResult result = monthBillManagementService.queryBillforMonthTotal(billQueryRequest); + return new BizResultVO(result); + } + @ApiOperation("月账汇总单查询") - @RequestMapping("/queryBillforMonthForPage") - @ResponseBody - public void queryBillforMonthForPage(@RequestBody BillQueryRequest billQueryRequest, HttpServletRequest request, - HttpServletResponse response) throws Exception { - logger.info("---begin--月账汇总单查询调用后场dubbo服务,入参={}", JSONObject.toJSON(billQueryRequest)); - BizResult> result = monthBillManagementService.queryBillforMonthTotalForPage(billQueryRequest); - logger.info("---end--月账汇总单查询调用后场dubbo服务,结果={}", JSONObject.toJSONString(result)); - this.returnJsonDataGrid(response, result); - } - + @RequestMapping("/queryBillforMonthForPage") + @ResponseBody + public void queryBillforMonthForPage(@RequestBody BillQueryRequest billQueryRequest, HttpServletRequest request, + HttpServletResponse response) throws Exception { + logger.info("---begin--月账汇总单查询调用后场dubbo服务,入参={}", JSONObject.toJSON(billQueryRequest)); + BizResult> result = monthBillManagementService.queryBillforMonthTotalForPage( + billQueryRequest); + logger.info("---end--月账汇总单查询调用后场dubbo服务,结果={}", JSONObject.toJSONString(result)); + this.returnJsonDataGrid(response, result); + } + /** - * 日账单导出.
- * - * @param request - * @param response - * @throws Exception - */ - @RequestMapping("/exportToExcleForBillForMonth") - public void exportToExcleForBillForMonth(@RequestParam String beginTime,@RequestParam String endTime,@RequestParam List parkIdList, - HttpServletRequest request,HttpServletResponse response) throws Exception { - SimpleDateFormat format_yyy = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - BillQueryRequest billQueryRequest = new BillQueryRequest(); - billQueryRequest.setSysCode("1001"); - billQueryRequest.getBaseRequest().setPageSize(0); - billQueryRequest.setParkIdList(parkIdList); - billQueryRequest.setBeginTime(format_yyy.parse(beginTime)); - billQueryRequest.setEndTime(format_yyy.parse(endTime)); - BizResult> result = monthBillManagementService.queryBillforMonthTotalForPage(billQueryRequest); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); - 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(result != null && !CollectionUtils.isEmpty(result.getData().getDataList())){ - List list = result.getData().getDataList(); - for (BillManageDTO e: list) { - if(e != null){ - Object[] obj=new Object[title.length]; - int index=0; - obj[index++]=(e.getBillDayTime() != null ? format.format(e.getBillDayTime()) : ""); - obj[index++]=e.getParkName(); - obj[index++]=(e.getCashTotalFee() == null ? "0" : e.getCashTotalFee().divide(new BigDecimal("100"),2, BigDecimal.ROUND_HALF_UP)) ; - obj[index++]=(e.getAliTotalFee() == null ? "0" : e.getAliTotalFee().divide(new BigDecimal("100"),2, BigDecimal.ROUND_HALF_UP)) ; - obj[index++]=(e.getWxTotalFee() == null ? "0" : e.getWxTotalFee().divide(new BigDecimal("100"),2, BigDecimal.ROUND_HALF_UP)) ; - obj[index++]=(e.getOrderTotalFee() == null ? "0" : 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); - - } - + * 日账单导出.
+ * + * @param request + * @param response + * @throws Exception + */ + @RequestMapping("/exportToExcleForBillForMonth") + public void exportToExcleForBillForMonth(@RequestParam String beginTime, @RequestParam String endTime, + @RequestParam List parkIdList, + HttpServletRequest request, HttpServletResponse response) throws Exception { + SimpleDateFormat format_yyy = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + BillQueryRequest billQueryRequest = new BillQueryRequest(); + billQueryRequest.setSysCode("1001"); + billQueryRequest.getBaseRequest().setPageSize(0); + billQueryRequest.setParkIdList(parkIdList); + billQueryRequest.setBeginTime(format_yyy.parse(beginTime)); + billQueryRequest.setEndTime(format_yyy.parse(endTime)); + BizResult> result = monthBillManagementService.queryBillforMonthTotalForPage( + billQueryRequest); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); + 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 (result != null && !CollectionUtils.isEmpty(result.getData().getDataList())) { + List list = result.getData().getDataList(); + for (BillManageDTO e : list) { + if (e != null) { + Object[] obj = new Object[title.length]; + int index = 0; + obj[index++] = (e.getBillDayTime() != null ? format.format(e.getBillDayTime()) : ""); + obj[index++] = e.getParkName(); + obj[index++] = (e.getCashTotalFee() == null ? "0" : e.getCashTotalFee().divide( + new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP)); + obj[index++] = (e.getAliTotalFee() == null ? "0" : e.getAliTotalFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP)); + obj[index++] = (e.getWxTotalFee() == null ? "0" : e.getWxTotalFee().divide(new BigDecimal("100"), 2, + BigDecimal.ROUND_HALF_UP)); + obj[index++] = (e.getOrderTotalFee() == null ? "0" : 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); + + } @ApiOperation("月账单查询汇总统计") @PostMapping("/summaryStatistic") @@ -247,20 +253,21 @@ public class MonthBillManagementController extends BizController { public BizResultVO> queryBillforMonthList( @RequestBody BillQueryRequest billQueryRequest, HttpServletRequest request, HttpServletResponse response) throws Exception { - // 2.调用接口查询当前登录人管辖的停车场名称 + // 2.调用接口查询当前登录人管辖的停车场名称 UserInfo userInfo = sessionCommUtil.getUserInfo(); List plNos = userInfo.getOrgIds(); -// UserInfo userInfo = sessionCommUtil.getUserInfo(); -// List plNos = new ArrayList<>(); -// if (userInfo != null) { -// TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); -// tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); -// tdCompanyParkQueryRequest.setSessionId(session.getId()); -// tdCompanyParkQueryRequest.setSysCode(sysCode); -// BizResult> bizResult = tdCustCompanyService.queryParkNoByCustIds(tdCompanyParkQueryRequest); -// // 拥有的停车场编号 -// plNos = ResultUtils.getBizResultData(bizResult); -// } + // UserInfo userInfo = sessionCommUtil.getUserInfo(); + // List plNos = new ArrayList<>(); + // if (userInfo != null) { + // TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); + // tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); + // tdCompanyParkQueryRequest.setSessionId(session.getId()); + // tdCompanyParkQueryRequest.setSysCode(sysCode); + // BizResult> bizResult = tdCustCompanyService.queryParkNoByCustIds + // (tdCompanyParkQueryRequest); + // // 拥有的停车场编号 + // plNos = ResultUtils.getBizResultData(bizResult); + // } // if (CollectionUtils.isEmpty(plNos)) { // throw new BizException(ErrorType.PARK_LOT_NOT_EXISTS, "停车场plnos不存在"); // } @@ -285,16 +292,17 @@ public class MonthBillManagementController extends BizController { // 2.调用接口查询当前登录人管辖的停车场名称 UserInfo userInfo = sessionCommUtil.getUserInfo(); List plNos = userInfo.getOrgIds(); -// List plNos = new ArrayList<>(); -// if (userInfo != null) { -// TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); -// tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); -// tdCompanyParkQueryRequest.setSessionId(session.getId()); -// tdCompanyParkQueryRequest.setSysCode(sysCode); -// BizResult> bizResult = tdCustCompanyService.queryParkNoByCustIds(tdCompanyParkQueryRequest); -// // 拥有的停车场编号 -// plNos = ResultUtils.getBizResultData(bizResult); -// } + // List plNos = new ArrayList<>(); + // if (userInfo != null) { + // TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); + // tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); + // tdCompanyParkQueryRequest.setSessionId(session.getId()); + // tdCompanyParkQueryRequest.setSysCode(sysCode); + // BizResult> bizResult = tdCustCompanyService.queryParkNoByCustIds + // (tdCompanyParkQueryRequest); + // // 拥有的停车场编号 + // plNos = ResultUtils.getBizResultData(bizResult); + // } // if (CollectionUtils.isEmpty(plNos)) { // throw new BizException(ErrorType.PARK_LOT_NOT_EXISTS, "停车场plnos不存在"); // } @@ -408,8 +416,6 @@ public class MonthBillManagementController extends BizController { } - - /** * 月账单所有导出.
* @@ -436,19 +442,19 @@ public class MonthBillManagementController extends BizController { // 2.调用接口查询当前登录人管辖的停车场名称 UserInfo userInfo = sessionCommUtil.getUserInfo(); List plNos = userInfo.getOrgIds(); -// // 2.调用接口查询当前登录人管辖的停车场名称 -// UserInfo userInfo = sessionCommUtil.getUserInfo(); -// List plNos = new ArrayList<>(); -// if (userInfo != null) { -// TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); -// tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); -// tdCompanyParkQueryRequest.setSessionId(session.getId()); -// tdCompanyParkQueryRequest.setSysCode(sysCode); -// BizResult> bizResult = tdCustCompanyService.queryParkNoByCustIds( -// tdCompanyParkQueryRequest); -// // 拥有的停车场编号 -// plNos = ResultUtils.getBizResultData(bizResult); -// } + // // 2.调用接口查询当前登录人管辖的停车场名称 + // UserInfo userInfo = sessionCommUtil.getUserInfo(); + // List plNos = new ArrayList<>(); + // if (userInfo != null) { + // TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); + // tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); + // tdCompanyParkQueryRequest.setSessionId(session.getId()); + // tdCompanyParkQueryRequest.setSysCode(sysCode); + // BizResult> bizResult = tdCustCompanyService.queryParkNoByCustIds( + // tdCompanyParkQueryRequest); + // // 拥有的停车场编号 + // plNos = ResultUtils.getBizResultData(bizResult); + // } billQueryRequest.setParkIdList(plNos); logger.info("月账单导出所有 req={}", JSONObject.toJSONString(billQueryRequest)); respondResult = monthBillManagementService @@ -523,6 +529,97 @@ public class MonthBillManagementController extends BizController { } + @ApiOperation("月账单年卡月卡统计-详情导出") + @RequestMapping("/exportYearMonthCardIncomeStatistic") + public void exportYearMonthCardIncomeStatistic(@RequestParam String plNos, + @RequestParam(required = false) Long beginTime, + @RequestParam(required = false) Long endTime, @RequestParam(required = false) String orderType, + HttpServletRequest request, HttpServletResponse response) { + YearMonthCardIncomeStatisticRequest dubboReq = new YearMonthCardIncomeStatisticRequest(); + + if (org.apache.commons.lang3.StringUtils.isNotEmpty(plNos)) { + dubboReq.setPlNos(Arrays.asList(plNos.split(","))); + } + if (org.apache.commons.lang3.StringUtils.isNotEmpty(orderType)) { + String[] tempStr = orderType.split(","); + List nums = new ArrayList<>(); + for (String str : tempStr) { + nums.add(Integer.valueOf(str)); + } + dubboReq.setOrderType(nums); + } + dubboReq.setBeginTime(new Date(beginTime)); + dubboReq.setEndTime(new Date(endTime)); + dubboReq.setSysCode("10001"); + BizResult> bizResult = yearMonthCardStatisticService + .queryYearMonthCardIncomeStatistic(dubboReq); + String[] title = new String[] {"类型", "现金(元)", "微信(元)", "支付宝(元)", "其他(元)","总金额(元)"}; + String sheetName = "月卡年卡详情"; + String fileName = "月卡年卡详情"; + List dtos = new ArrayList<>(); + if (null != bizResult && CollectionUtils.isNotEmpty(bizResult.getData())) { + dtos = bizResult.getData(); + } + + // 1.创建excel信息 + XSSFSheet workSheet = ExcelUtil.createExcel(sheetName); + // 2.设置excel表头和表体 + Layouter.buildReport(workSheet, title, 0, 0); + // 3.填充数据 + List contentList = new ArrayList(); + + for (YearMonthCardIncomeStatisticDTO e : dtos) { + Object[] obj = new Object[title.length]; + int index = 0; + obj[index++] = getOrderTypeStr(e.getOrderType()); + //现金 + obj[index++] = e.getCashTotalFee() != null ? e.getCashTotalFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP) : ""; + //微信 + obj[index++] = e.getWxTotalFee() != null ? e.getWxTotalFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP) : ""; + //支付宝 + obj[index++] = e.getAliTotalFee() != null ? e.getAliTotalFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP) : ""; + //其他 + obj[index++] = e.getOthersTotalFee() != null ? e.getOthersTotalFee().divide(new BigDecimal("100"), + 2, BigDecimal.ROUND_HALF_UP) : ""; + //总金额 + 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); + } + + private String getOrderTypeStr(Integer orderType) { + String orderTypeStr; + if (orderType == null) { + return ""; + } + switch (orderType) { + case -1: + orderTypeStr = "合计"; + break; + case 1: + orderTypeStr = "停车订单"; + break; + case 2: + orderTypeStr = "年卡"; + break; + case 3: + orderTypeStr = "月卡"; + break; + default: + orderTypeStr = "未知"; + } + return orderTypeStr; + } + /** * 通过session信息获取停车场编码.
* @@ -531,17 +628,19 @@ public class MonthBillManagementController extends BizController { * @return * @throws Exception */ -// private List queryParkNoByCustIds(TdCompanyParkQueryRequest tdCompanyParkQueryRequest) throws Exception { -// /** 查询停车场编码. */ -// BizResult> parkNoResult = tdCustCompanyService.queryParkNoByCustIds(tdCompanyParkQueryRequest); -// if (parkNoResult.isSuccess() && parkNoResult != null && parkNoResult.getData() != null) { -// logger.info("根据登录获取到对应的停车场编码=" + JSONArray.toJSONString(parkNoResult.getData())); -// return parkNoResult.getData(); -// } else { -// logger.info("根据登录用户没有获取到对应的停车场编码"); -// return null; -// } -// -// } + // private List queryParkNoByCustIds(TdCompanyParkQueryRequest tdCompanyParkQueryRequest) throws + // Exception { + // /** 查询停车场编码. */ + // BizResult> parkNoResult = tdCustCompanyService.queryParkNoByCustIds + // (tdCompanyParkQueryRequest); + // if (parkNoResult.isSuccess() && parkNoResult != null && parkNoResult.getData() != null) { + // logger.info("根据登录获取到对应的停车场编码=" + JSONArray.toJSONString(parkNoResult.getData())); + // return parkNoResult.getData(); + // } else { + // logger.info("根据登录用户没有获取到对应的停车场编码"); + // return null; + // } + // + // } } \ No newline at end of file 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..a927951 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,375 @@ 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, + @RequestParam(required = false) Long beginInTime, + @RequestParam(required = false) Long endInTime, + @RequestParam(required = false) Long beginOutTime, + @RequestParam(required = false) Long 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); + } + if(null != beginInTime){ + dubboReq.setBeginInTime(new Date(beginInTime)); + } + + if(null != endInTime){ + dubboReq.setEndInTime(new Date(endInTime)); + } + if(null != beginOutTime){ + dubboReq.setBeginOutTime(new Date(beginOutTime)); + } + if(null != endOutTime){ + dubboReq.setEndOutTime(new Date(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; + + } }