diff --git a/src/main/java/com/zteits/irain/portal/web/govclouds/TbAreaController.java b/src/main/java/com/zteits/irain/portal/web/govclouds/TbAreaController.java index 8f2bb75..8794604 100644 --- a/src/main/java/com/zteits/irain/portal/web/govclouds/TbAreaController.java +++ b/src/main/java/com/zteits/irain/portal/web/govclouds/TbAreaController.java @@ -7,33 +7,38 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.GetMapping; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.alibaba.fastjson.JSONObject; import com.clouds.common.cache.sys.SysCodeValueCacheUtil; import com.clouds.common.constants.CodeValKindEnum; +import com.clouds.common.entity.UserInfo; +import com.clouds.common.web.SessionCommUtil; import com.clouds.common.web.vo.BizResultVO; -import com.google.common.collect.Lists; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.bean.PageBean; +import com.zteits.clouds.api.apibase.constants.AreaTypeEnum; +import com.zteits.clouds.api.apibase.constants.BasicEnum; import com.zteits.clouds.api.apibase.constants.ErrorType; import com.zteits.clouds.api.apibase.exception.BizException; +import com.zteits.clouds.api.dto.park.dto.TpPRegionAreaDTO; +import com.zteits.clouds.api.dto.park.param.ParkInfoByAreaBlockIdsRequest; +import com.zteits.clouds.api.dto.park.param.QueryTpPRegionAreaForPageRequest; import com.zteits.clouds.api.dto.park.param.StatisticParkLotCountByCountryRequest; -import com.zteits.clouds.api.dto.park.param.UpdateFreeBerthRequest; -import com.zteits.clouds.api.dto.sys.SysRoleDTO; -import com.zteits.clouds.api.dto.sys.TbAreaDTO; -import com.zteits.clouds.api.dto.sys.param.TbAreaQueryRequest; +import com.zteits.clouds.api.dto.sys.AreaTreeDTO; +import com.zteits.clouds.api.dto.sys.param.AreaBlockByOrgIdQueryRequest; +import com.zteits.clouds.api.service.park.ParkingLotService; +import com.zteits.clouds.api.service.park.TpPRegionAreaService; import com.zteits.clouds.api.service.sys.TbAreaService; -import com.zteits.irain.portal.web.irain.UpdateFreeBerthController; +import io.jsonwebtoken.lang.Collections; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -60,6 +65,13 @@ public class TbAreaController { private String sysCode; @Autowired private TbAreaService tbAreaService; + @Autowired + private SessionCommUtil sessionCommUtil; + @Autowired + private ParkingLotService parkingLotService; + + @Autowired + private TpPRegionAreaService tpPRegionAreaService; @ApiOperation("查询区域下一级") @PostMapping("queryNextLowerLeverById") @@ -80,4 +92,102 @@ public class TbAreaController { return new BizResultVO>>().setData(list); } + /** + * 获取泊位区间tree + * @param request + * @return + * @throws Exception + */ + @ApiOperation("获取泊位区间tree") + @PostMapping("/getBerthAreatree") + public BizResultVO> getBerthAreatree(@RequestBody AreaBlockByOrgIdQueryRequest + request) throws Exception { + logger.info("---begin加载泊位区间tree.."); + + UserInfo userInfo = sessionCommUtil.getUserInfo(); + request.setOrgId(userInfo.getOrgId()); + BizResult> result = tbAreaService.queryAreaBlockByOrgId(request); + //2.获取块id列表 + List areaBlockIdList = this.getAreaBlockIds(result); + //3.通过块Ids查询块下面得停车场 + List parklist = this.queryParkInfoByAreaBlockIds(areaBlockIdList); + if (result != null && !CollectionUtils.isEmpty(result.getData())) { + if (!CollectionUtils.isEmpty(parklist)) { + result.getData().addAll(parklist); + + //4.通过停车场编号查询停车场下的泊位区间 + List berthArealist = new ArrayList<>(); + List plNos = new ArrayList<>(); + for (AreaTreeDTO a : parklist) { + plNos.add(a.getPlNo()); + } + QueryTpPRegionAreaForPageRequest areaRequest = new QueryTpPRegionAreaForPageRequest(); + BeanUtils.copyProperties(request, areaRequest); + areaRequest.setPlNos(plNos); + BizResult> arearesult = tpPRegionAreaService.queryTpPRegionAreaForPage(areaRequest); + if (!(arearesult.isSuccess())) { + throw new BizException(arearesult.getErrCode(),arearesult.getErrMsg()); + } + if(!(CollectionUtils.isEmpty(arearesult.getData().getDataList()))){ + for (TpPRegionAreaDTO t : arearesult.getData().getDataList()) { + AreaTreeDTO area = new AreaTreeDTO(); + area.setAreaName(t.getParkAreaName()); + area.setAreaType(AreaTypeEnum.Area.code()); + area.setPlNo(t.getPlNo()); + area.setIdCode(t.getParkAreaCode()); + area.setParentCode(t.getPlNo()); + area.setAreaRangeCode(t.getParkAreaCode()); + berthArealist.add(area); + } + if(!(CollectionUtils.isEmpty(berthArealist))){ + result.getData().addAll(berthArealist); + + } + } + } + } + + + logger.info("---end加载泊位区间tree.."); + return new BizResultVO>(result); + } + /** + * 通过块Ids查询块下面得停车场.
+ * + * @param areaBlockIdList + * @return + */ + private List queryParkInfoByAreaBlockIds(List areaBlockIdList) { + List list = new ArrayList(); + ParkInfoByAreaBlockIdsRequest blockIdRequest = new ParkInfoByAreaBlockIdsRequest(); + if (!CollectionUtils.isEmpty(areaBlockIdList)) { + blockIdRequest.setAreaBlockIds(areaBlockIdList); + blockIdRequest.setSysCode(BasicEnum.SYS_CODE.getValue()); + BizResult> result = parkingLotService.queryParkInfoByAreaBlockIds(blockIdRequest); + if (result != null && !Collections.isEmpty(result.getData())) { + for (AreaTreeDTO a : result.getData()) { + a.setAreaType(AreaTypeEnum.PARK.code()); + } + list.addAll(result.getData()); + } + } + return list; + } + + /** + * 获取块ids列表.
+ * + * @return + */ + private List getAreaBlockIds(BizResult> result) { + List areaBlockIdList = new ArrayList(); + if (result != null && !CollectionUtils.isEmpty(result.getData())) { + for (AreaTreeDTO e : result.getData()) { + if (e != null && AreaTypeEnum.BLOCK.code().equals(e.getAreaType())) { + areaBlockIdList.add(e.getId()); + } + } + } + return areaBlockIdList; + } } diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/areamanage/RegionAreaController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/areamanage/RegionAreaController.java index 348aa10..7457f69 100644 --- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/areamanage/RegionAreaController.java +++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/areamanage/RegionAreaController.java @@ -1,37 +1,48 @@ package com.zteits.irain.portal.web.parkinglotcloudplatform.areamanage; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import org.apache.poi.xssf.usermodel.XSSFSheet; 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.stereotype.Controller; import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; 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.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.dubbo.common.utils.CollectionUtils; import com.alibaba.fastjson.JSONObject; +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.zteits.clouds.api.apibase.bean.BaseInfo; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.bean.PageBean; import com.zteits.clouds.api.apibase.constants.ErrorType; import com.zteits.clouds.api.apibase.exception.BizException; +import com.zteits.clouds.api.dto.clouds.dto.YearMonthCardStatisticDTO; import com.zteits.clouds.api.dto.park.dto.TpPRegionAreaDTO; import com.zteits.clouds.api.dto.park.param.DeleteTpPRegionAreaRequest; import com.zteits.clouds.api.dto.park.param.QueryTpPRegionAreaForPageRequest; import com.zteits.clouds.api.dto.park.param.SaveOrUpdateTpPRegionAreaRequest; -import com.zteits.clouds.api.dto.sys.SysOpDTO; -import com.zteits.clouds.api.dto.sys.param.SysOpDeleteRequest; -import com.zteits.clouds.api.dto.sys.param.SysOpForPageRequest; -import com.zteits.clouds.api.dto.sys.param.SysOpSaveOrModfiyRequest; +import com.zteits.clouds.api.dto.pay.param.YearMonthCardStatisticRequest; import com.zteits.clouds.api.service.park.TpPRegionAreaService; -import com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic.RealTimeMonitorController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -121,5 +132,57 @@ public class RegionAreaController extends BizController { logger.info("调用分页查询泊位区间信息dubbo服务返回信息:response={}"+JSONObject.toJSONString(result)); return returnJqGridData(result, TpPRegionAreaDTO.class); } + + + + @ApiOperation("导出泊位区间管理excel") + @GetMapping("exportTpPRegionAreaExcel") + public void exportYearMonthStatisticExcel( + @RequestParam List plNos, String parkAreaCode, + HttpServletRequest requests, HttpServletResponse response) throws Exception { + + QueryTpPRegionAreaForPageRequest request= new QueryTpPRegionAreaForPageRequest(); + request.setSysCode(sysCode); + request.setPlNos(plNos); + request.setBaseRequest(new BaseInfo(1, 0)); + request.setParkAreaCode(parkAreaCode); + + BizResult> result = tpPRegionAreaService.queryTpPRegionAreaForPage(request); + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd"); + String[] title = new String[] {"泊位区间名称", "泊位区间编号", "停车场名称", "泊位数"}; + String sheetName = "泊位区间管理"; + String fileName = "泊位区间管理" + format2.format(new Date()); + +// String[] billTitle = new String[9]; +// billTitle = new String[2]; +// billTitle[0] = "年卡月卡统计"; + + + // 1.创建excel信息 + XSSFSheet workSheet = ExcelUtil.createExcel(sheetName); + // 2.设置excel表头和表体 + Layouter.buildReport(workSheet, title,0,0); + // 3.填充数据 + List contentList = new ArrayList(); + List list = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(result.getData().getDataList())) { + list = result.getData().getDataList(); + } + for (TpPRegionAreaDTO e : list) { + Object[] obj = new Object[title.length]; + int index = 0; + obj[index++] = e.getParkAreaName() != null ? e.getParkAreaName() : ""; + obj[index++] = e.getParkAreaCode() != null ? e.getParkAreaCode() : ""; + obj[index++] = e.getPlName() != null ? e.getPlName() : ""; + obj[index++] = e.getBerthNum(); + contentList.add(obj); + } + ExcleFillDateManager fillUserManager = new ExcleFillDateManager(); + fillUserManager.fillSalesOrga(workSheet, title, contentList, 2); + // 4.excel输出配置 + ExcelUtil.write(response, workSheet, fileName); + } } diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/RealTimeMonitorController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/RealTimeMonitorController.java index 1431e95..2aeed07 100644 --- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/RealTimeMonitorController.java +++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/RealTimeMonitorController.java @@ -30,8 +30,10 @@ import com.zteits.clouds.api.apibase.exception.BizException; import com.zteits.clouds.api.dto.clouds.param.RealTimeMonitoringRequest; import com.zteits.clouds.api.dto.park.dto.BerthsDTO; import com.zteits.clouds.api.dto.park.dto.ParkOccupancyRateDTO; +import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO; import com.zteits.clouds.api.dto.park.dto.TpPEqpLogDTO; import com.zteits.clouds.api.dto.park.param.QueryBerthForPageRequest; +import com.zteits.clouds.api.dto.park.param.QueryParkingLotByParkRequest; import com.zteits.clouds.api.dto.sys.SysOpDTO; import com.zteits.clouds.api.dto.sys.SysOrgDTO; import com.zteits.clouds.api.dto.sys.SysRoleDTO; @@ -42,6 +44,7 @@ import com.zteits.clouds.api.dto.sys.param.SysOrgPageQueryRequest; import com.zteits.clouds.api.dto.sys.param.SysRolePageQueryRequest; import com.zteits.clouds.api.service.park.BerthManageService; import com.zteits.clouds.api.service.park.EqpBerthsService; +import com.zteits.clouds.api.service.park.ParkingLotQueryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -72,6 +75,8 @@ public class RealTimeMonitorController extends BizController { private EqpBerthsService eqpBerthsService; @Autowired private BerthManageService berthManageService; + @Autowired + private ParkingLotQueryService parkingLotQueryService; /** @@ -111,7 +116,7 @@ public class RealTimeMonitorController extends BizController { } logger.info("调用分组查询停车场占用率dubbo服务入参:request={}"+JSONObject.toJSONString(request)); BizResult> result = eqpBerthsService.queryParkOccupancyRate(request); - logger.info("调用分组查询停车场占用率dubbo服务返回信息:request={}"+JSONObject.toJSONString(result)); + logger.info("调用分组查询停车场占用率dubbo服务返回信息:response={}"+JSONObject.toJSONString(result)); return new BizResultVO>(result); } @@ -151,7 +156,26 @@ public class RealTimeMonitorController extends BizController { throws Exception { logger.info("调用分组查询停车场占用率dubbo服务入参:request={}"+JSONObject.toJSONString(request)); BizResult> result = berthManageService.queryParkOccupancyRate(request); - logger.info("调用分组查询停车场占用率dubbo服务返回信息:request={}"+JSONObject.toJSONString(result)); + logger.info("调用分组查询停车场占用率dubbo服务返回信息:response={}"+JSONObject.toJSONString(result)); return new BizResultVO>(result); } + + /** + * 通过停车场集合查询停车场信息 + * + * @param request + * @return + * @throws Exception + * langlw 2017-9-1 + */ + @ApiOperation("通过停车场集合查询停车场信息") + @PostMapping("/queryParkingLotGeoByPlNos") + public BizResultVO> queryParkingLotGeoByPlNos( + @RequestBody QueryParkingLotByParkRequest request) + throws Exception { + logger.info("通过停车场集合查询停车场信息dubbo服务入参:request={}"+JSONObject.toJSONString(request)); + BizResult> result = parkingLotQueryService.queryParkingLotGeoByPlNos(request); + logger.info("通过停车场集合查询停车场信息dubbo服务返回信息:response={}"+JSONObject.toJSONString(result)); + return new BizResultVO>(result); + } } diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/devicemanagement/PdaController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/devicemanagement/PdaController.java index 97d6785..bd049c4 100644 --- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/devicemanagement/PdaController.java +++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/devicemanagement/PdaController.java @@ -34,9 +34,12 @@ import com.zteits.clouds.api.apibase.bean.PageBean; import com.zteits.clouds.api.apibase.constants.ErrorType; import com.zteits.clouds.api.apibase.exception.BizException; import com.zteits.clouds.api.dto.park.dto.TpPPdaDTO; +import com.zteits.clouds.api.dto.park.dto.TpPTgsPassedcarDTO; import com.zteits.clouds.api.dto.park.param.TpPPdaRequest; import com.zteits.clouds.api.dto.park.param.TpPPdaSRequest; +import com.zteits.clouds.api.dto.park.param.TpPTgsPassedcarRequest; import com.zteits.clouds.api.service.park.TpPPdaService; +import com.zteits.clouds.api.service.park.TpPTgsPassedcarService; import com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic.InOutParkStatisticController; import io.swagger.annotations.ApiOperation; @@ -63,10 +66,31 @@ public class PdaController extends BizController { @Autowired private TpPPdaService tpPPdaService; + @Autowired + private TpPTgsPassedcarService tpPTgsPassedcarService; @Value("${project.syscode}") private String sysCode; + + + @ApiOperation("PDA信息信息") + @PostMapping("/queryPassedca4pabe") + public BizResultVO> queryPassedca4pabe(@RequestBody TpPTgsPassedcarRequest tpPTgsPassedcarRequest, HttpServletRequest request, + HttpServletResponse response){ + BizResult> bizResult = new BizResult>(); + try { + tpPTgsPassedcarRequest.setSysCode(sysCode); + bizResult = tpPTgsPassedcarService.queryPassedcar4Page(tpPTgsPassedcarRequest); + if(bizResult.isSuccess()){ + return returnJqGridData(bizResult, TpPTgsPassedcarDTO.class); + } + } catch (Exception e) { + logger.debug("分页查询过车信息异常:{}",bizResult.getErrMsg()); + } + return new BizResultVO>(); + } + @ApiOperation("PDA信息信息") @PostMapping("/queryPdaInfo4pabe") public BizResultVO> queryPdaInfo4pabe(@RequestBody TpPPdaRequest tpPPdaRequest, HttpServletRequest request, @@ -202,7 +226,7 @@ public class PdaController extends BizController { Layouter.buildReport(workSheet, title, 0, 0); // 3.填充数据 ExcleFillDateManager fillUserManager = new ExcleFillDateManager(); - fillUserManager.fillSalesOrga(workSheet, title, null, 2); + fillUserManager.fillSalesOrga(workSheet, title, Lists.newArrayList(), 2); // 4.excel输出配置 ExcelUtil.write(response, workSheet, fileName); } diff --git a/src/main/resources/dubbo/dubbo-park-consumer.xml b/src/main/resources/dubbo/dubbo-park-consumer.xml index 3bc8e2d..1554b4a 100644 --- a/src/main/resources/dubbo/dubbo-park-consumer.xml +++ b/src/main/resources/dubbo/dubbo-park-consumer.xml @@ -162,4 +162,9 @@ + + + \ No newline at end of file