| | |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.haikang.model.HKConstants; |
| | | import com.doumee.core.haikang.model.cars.response.CarsAlarmResultListResponse; |
| | | import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse; |
| | | import com.doumee.core.haikang.model.param.BaseListPageRequest; |
| | | import com.doumee.core.haikang.model.param.BaseListPageResponse; |
| | |
| | | import com.doumee.core.wms.model.response.WmsInventoryDataResponse; |
| | | import com.doumee.core.wms.model.response.WmsInventoryJsonResponse; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.join.PlatformWarnEventJoinMapper; |
| | | import com.doumee.dao.business.join.VisitsJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.web.reqeust.CarsJobAndContractDTO; |
| | |
| | | import com.doumee.service.business.impl.VisitsServiceImpl; |
| | | import com.doumee.service.business.third.BoardService; |
| | | import com.doumee.service.business.third.WmsService; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private PlatformWarnEventMapper platformWarnEventMapper; |
| | | private PlatformWarnEventJoinMapper platformWarnEventJoinMapper; |
| | | @Autowired |
| | | private PlatformJobMapper platformJobMapper; |
| | | @Autowired |
| | | private PlatformBooksMapper platformBooksMapper; |
| | | @Autowired |
| | | private PlatformWmsDetailMapper platformWmsDetailMapper; |
| | | @Autowired |
| | |
| | | private RetentionMapper retentionMapper; |
| | | @Autowired |
| | | private PlatformGroupMapper platformGroupMapper; |
| | | /** |
| | | * 获取区域树形结构数据 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<GeneralVO> todayTotalInList(){ |
| | | /** |
| | | * 1市公司:根据预约的入园原因为市公司卸货的任务为市公司入库的统计; |
| | | * 2集散中心:WMS推送的入库单据; |
| | | * 3加工入库:预约入园为重庆加工入库的(作业月台为安泰物流卸货月台); |
| | | */ |
| | | String[] names = new String[]{"市公司","集散中心","加工入库"}; |
| | | String reason =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.CITY_XH_REASON_ID).getCode(); |
| | | String platformGroupId =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ATWL_XH_PLATFORM_ID).getCode();; |
| | | List<GeneralVO> list = new ArrayList<>(); |
| | | for (int i = 0; i < 3; i++) { |
| | | Random random = new Random(); |
| | | GeneralVO data = new GeneralVO(); |
| | | data.setName(names[i]); |
| | | BigDecimal num =new BigDecimal(0); |
| | | if(i == 0){ |
| | | List<PlatformBooks> jobs = platformBooksMapper.selectJoinList(PlatformBooks.class, new MPJLambdaWrapper<PlatformBooks>() |
| | | .select(PlatformJob::getTotalNum) |
| | | .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformBooks::getJobId) |
| | | .eq(PlatformBooks::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformBooks::getReasonId,reason) |
| | | .apply("to_days(t1.done_date) = to_days(now())") |
| | | .eq(PlatformBooks::getStatus,Constants.TWO)); |
| | | if(jobs!=null){ |
| | | for(PlatformBooks j :jobs){ |
| | | num =num.add(Constants.formatBigdecimal(j.getTotalNum())); |
| | | } |
| | | } |
| | | }else if(i ==1){ |
| | | List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>() |
| | | .select(PlatformJob::getTotalNum) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformJob::getOrigin,Constants.ONE) |
| | | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() |
| | | , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | | , Constants.PlatformJobStatus.LEAVED.getKey()) |
| | | .apply("to_days(done_date) = to_days(now())") ); |
| | | if(jobs!=null){ |
| | | for(PlatformJob j :jobs){ |
| | | num =num.add(Constants.formatBigdecimal(j.getTotalNum())); |
| | | } |
| | | } |
| | | }else{ |
| | | List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>() |
| | | .select(PlatformJob::getTotalNum) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformJob::getPlatformGroupId,platformGroupId) |
| | | .apply("to_days(done_date) = to_days(now())") |
| | | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() |
| | | , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | | , Constants.PlatformJobStatus.LEAVED.getKey()) ); |
| | | if(jobs!=null){ |
| | | for(PlatformJob j :jobs){ |
| | | num = num.add(Constants.formatBigdecimal(j.getTotalNum())); |
| | | } |
| | | } |
| | | } |
| | | data.setNum(num); |
| | | list.add(data); |
| | | } |
| | | return list; |
| | | |
| | | } |
| | | /** |
| | | * 获取区域树形结构数据 |
| | | * @return |
| | |
| | | public List<PlatformGroupFinishVO> platformGroupFinish(){ |
| | | List<PlatformGroupFinishVO> data = new ArrayList<>(); |
| | | List<PlatformGroup> groups = platformGroupMapper.selectJoinList(PlatformGroup.class, new MPJLambdaWrapper<PlatformGroup>() |
| | | .select("(select sum(a.TOTAL_NUM) from platform_job a where a.PLATFORM_GROUP_ID=t.id and a.isdeleted=0 and a.status in(6,9,10) and to_days(a.done_date) = to_days(now()))",PlatformGroup::getOrtherTotalNum) |
| | | .select("(select sum(case when a.total_num is null then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = a.id ) else a.total_num end) from platform_job a where a.PLATFORM_GROUP_ID=t.id and a.isdeleted=0 and a.status in(6,9,10) and to_days(a.done_date) = to_days(now()))",PlatformGroup::getOrtherTotalNum) |
| | | //.select("(select sum(a.TOTAL_NUM) from platform_job a where a.PLATFORM_GROUP_ID=t.id and a.isdeleted=0 and a.status in(6,9,10) and to_days(a.done_date) = to_days(now()))",PlatformGroup::getOrtherTotalNum) |
| | | |
| | | //.select(" case when t.total_num is null then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id ) else t.total_num end ioQty ") |
| | | .selectAll(PlatformGroup.class) |
| | | .eq(PlatformGroup::getIsdeleted,Constants.ZERO) |
| | | ); |
| | |
| | | public CarWorkSituationVO carWorkSituation(int limit){ |
| | | CarWorkSituationVO carWorkSituationVO = new CarWorkSituationVO(); |
| | | List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda() |
| | | .like(PlatformLog::getCreateDate,DateUtil.getCurrDate()) |
| | | .orderByDesc(PlatformLog::getCreateDate) |
| | | .last(" limit "+limit) |
| | | ); |
| | |
| | | request.setSorts(new ArrayList<>()); |
| | | RuleEventFiledOptionsRequest file = new RuleEventFiledOptionsRequest(); |
| | | file.setFieldName("event_type"); |
| | | file.setFieldValue("131588");//安防告警 |
| | | file.setFieldValue("131588,131593");//安防告警和人员告警 |
| | | file.setType("in"); |
| | | if(type == 1){ |
| | | file.setFieldValue("131588");//安防告警 |
| | | }else if(type == 2){ |
| | | |
| | | }else if(type == 1){ |
| | | |
| | | file.setFieldValue("131593");//人员告警 |
| | | } |
| | | request.getFiledOptions().add(file); |
| | | SortRequest sort = new SortRequest(); |
| | |
| | | public BoardCarsListVO platformJobCarsList(){ |
| | | BoardCarsListVO data = new BoardCarsListVO(); |
| | | List<CarsDeviceDetaisResponse> detaisResponses = HKCarOpenService.getAllCarsDetais(); |
| | | data.setCarsList(detaisResponses); |
| | | data.setCarsList(detaisResponses); |
| | | if(data.getCarsList()!=null && data.getCarsList().size()>0){ |
| | | List<String> codes = new ArrayList<>(); |
| | | //设备状态 0:离线;1:在线;2:休眠 |
| | | int online = 0; |
| | | for(CarsDeviceDetaisResponse model:detaisResponses){ |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ONE) ||Constants.equalsInteger(model.getStatus(),Constants.TWO)){ |
| | | //如果是在线或者休眠,查询在途还是空闲 |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ONE) |
| | | ||Constants.equalsInteger(model.getStatus(),Constants.TWO)){ |
| | | //如果是在线或者休眠,查询在途还是空闲ty |
| | | codes.add(model.getPlateNum()); |
| | | model.setJobStatus(Constants.ZERO); |
| | | }else |
| | | model.setJobStatus(Constants.TWO); |
| | | data.setOfflineNum(data.getOfflineNum()+1); |
| | | } |
| | | if(codes.size()>0){ |
| | | //状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号 12取消(WMS) |
| | | long busyNum = platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda() |
| | | List<PlatformJob> busyNum = platformJobMapper.selectList(new QueryWrapper<PlatformJob>() .lambda() |
| | | .select(PlatformJob::getCarCodeFront) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .in(PlatformJob::getCarCodeFront,codes) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey() |
| | |
| | | ,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey() |
| | | ,Constants.PlatformJobStatus.EXCEPTION.getKey()) |
| | | .groupBy(PlatformJob::getCarCodeFront)); |
| | | data.setBusyNum((int)busyNum);//在途有任务数量 |
| | | data.setBusyNum( busyNum!=null ?busyNum.size():0);//在途有任务数量 |
| | | data.setIdleNum(codes.size() -data.getBusyNum());//无任务空闲数量 |
| | | data.setEventList(HKCarOpenService.getAlarmEvemtList(detaisResponses,new Date())); |
| | | if(busyNum != null){ |
| | | FLAG: for(CarsDeviceDetaisResponse model:detaisResponses){ |
| | | for(PlatformJob job : busyNum){ |
| | | if(StringUtils.equals(job.getCarCodeFront(),model.getPlateNum())){ |
| | | model.setJobStatus(Constants.ONE); |
| | | continue FLAG; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | alarmDataVO.setErrNum(Constants.formatIntegerNum(response.getData().getMisReportAlarmNum())); |
| | | alarmDataVO.setLiftNum(Constants.formatIntegerNum(response.getData().getHandledAlarmNum())); |
| | | alarmDataVO.setProcessingNum(Constants.formatIntegerNum(response.getData().getUnHandedAlarmNum())); |
| | | alarmDataVO.setStartDate(start); |
| | | alarmDataVO.setEndDate(end); |
| | | }else{ |
| | | alarmDataVO.setTotalNum(Constants.ZERO); |
| | | alarmDataVO.setRealNum(Constants.ZERO); |
| | | alarmDataVO.setErrNum(Constants.ZERO); |
| | | alarmDataVO.setLiftNum(Constants.ZERO); |
| | | alarmDataVO.setProcessingNum(Constants.ZERO); |
| | | alarmDataVO.setStartDate(start); |
| | | alarmDataVO.setEndDate(end); |
| | | } |
| | |
| | | data.setDangerDealedNum(totalNum !=null?totalNum.intValue():0);//今日处理隐患数量 |
| | | return data; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 消防 温湿度数据 |
| | | */ |
| | | @Override |
| | | public List<TemperatureHumidityDataVO> getTemperatureHumidityData(){ |
| | | TemperatureHumidityDataRequest request = new TemperatureHumidityDataRequest(); |
| | | List<TemperatureHumidityDataVO> temperatureHumidityDataVOList = new ArrayList<>(); |
| | | request.setPageNo(1); |
| | | request.setPageSize(100); |
| | | request.setParentIndexCode(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.TEMPERATURE_HUMIDITY).getCode()); |
| | | BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse>> response = HKService.temperatureHumidityDataStatistic(request); |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ |
| | | List<TemperatureHumidityDataResponse> temperatureHumidityDataResponseList = response.getData().getList(); |
| | | |
| | | if(CollectionUtils.isNotEmpty(temperatureHumidityDataResponseList)){ |
| | | Set<String> parentIndexCode = new HashSet<String>(temperatureHumidityDataResponseList.stream().map( |
| | | i->i.getIndexCode().replace("@0","").replace("@1","") |
| | | ).collect(Collectors.toList())); |
| | | for (String code:parentIndexCode) { |
| | | List<TemperatureHumidityDataResponse> dateList = |
| | | temperatureHumidityDataResponseList.stream().filter(i->i.getIndexCode().indexOf(code)>=Constants.ZERO).collect(Collectors.toList()); |
| | | TemperatureHumidityDataVO temperatureHumidityDataVO = new TemperatureHumidityDataVO(); |
| | | for (TemperatureHumidityDataResponse data:dateList) { |
| | | if(data.getSensorType().equals("temp")){ |
| | | temperatureHumidityDataVO.setTemperatureData(data); |
| | | }else{ |
| | | temperatureHumidityDataVO.setHumidityData(data); |
| | | } |
| | | } |
| | | temperatureHumidityDataVOList.add(temperatureHumidityDataVO); |
| | | } |
| | | } |
| | | } |
| | | return temperatureHumidityDataVOList; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 用电总能耗同比、环比和区域用电量集合 |
| | | * @return |
| | |
| | | 3) 自来水二氧化碳排放量(kg)=自来水使用量(m3)×0.91;*/ |
| | | data.setCarbon(Constants.formatBigdecimal2Float((carbonElec.multiply(new BigDecimal(0.785))) |
| | | .add(carbonGas.multiply(new BigDecimal(0.19))) |
| | | .add(carbonWater.multiply(new BigDecimal(0.91))))); |
| | | .add(carbonWater.multiply(new BigDecimal(0.91)))).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP)); |
| | | return data; |
| | | |
| | | } |
| | |
| | | param.setPeriodType("day"); |
| | | BigDecimal total = new BigDecimal(0); |
| | | BaseResponse<EnergyTrendResponse> response = HKService.energyTrend(param); |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null&& response.getData().getYvalues()!=null ){ |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) |
| | | && response.getData()!=null&& response.getData().getYvalues()!=null ){ |
| | | for (int i = 0; i < response.getData().getYvalues().get(0).getValue().length; i++) { |
| | | total = total.add(new BigDecimal(StringUtils.defaultString( response.getData().getYvalues().get(0).getValue()[i],"0"))); |
| | | } |
| | |
| | | data.setRingPercent("0"); |
| | | data.setSecondRegionDataList(new ArrayList<>()); |
| | | } |
| | | return data; |
| | | if(data.getSecondRegionDataList()!=null && data.getSecondRegionDataList().size()>1){ |
| | | int index =-1; |
| | | for (int i = 0; i <data.getSecondRegionDataList().size() ; i++) { |
| | | RegionTopPowerResponse t=data.getSecondRegionDataList().get(i); |
| | | if(Constants.formatBigdecimal(t.getPercent()).compareTo(new BigDecimal(1)) == 0){ |
| | | index =i; |
| | | break; |
| | | } |
| | | } |
| | | if(index>-1){ |
| | | data.getSecondRegionDataList().remove(index);//删除根节点数据 |
| | | } |
| | | } |
| | | |
| | | return data; |
| | | } |
| | | /** |
| | | * 近12个水电气油耗数据统计 |
| | |
| | | VisitDataVO result = new VisitDataVO(); |
| | | result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>() |
| | | .eq(Visits::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date)=to_days(now()") |
| | | .apply("to_days(create_date)=to_days(now())") |
| | | .in(Visits::getStatus,Constants.VisitStatus.pass,Constants.VisitStatus.xfSuccess )));//待访问 |
| | | result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>() |
| | | .eq(Visits::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date)=to_days(now()") |
| | | .apply("to_days(create_date)=to_days(now())") |
| | | .in(Visits::getStatus,Constants.VisitStatus.signout,Constants.VisitStatus.signin )));//已登记 |
| | | result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>() |
| | | .eq(Visits::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date)=to_days(now()") |
| | | .apply("to_days(create_date)=to_days(now())") |
| | | .in(Visits::getStatus,Constants.VisitStatus.signout )));//已签离 |
| | | /*PageWrap<Visits> pageWrap = new PageWrap<>(); |
| | | pageWrap.setCapacity(10); |
| | |
| | | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE) |
| | | &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.outTruck)).count() |
| | | ); |
| | | data.setVideoPluginUrl(getVideoUrl()); |
| | | return data; |
| | | } |
| | | |
| | | private String getVideoUrl() { |
| | | return systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()+"plugin/VideoWebPlugin.exe"; |
| | | } |
| | | |
| | | private void getParkingCarsNum(SecurityBoardVO data) { |
| | |
| | | List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll( PlatformJob.class) |
| | | .select("( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = "+Constants.PlatformJobLogType.WORKING.getKey()+" order by pl.CREATE_DATE desc limit 1 ) as newStartDate") |
| | | .select(" (select sum(ifnull(pl.IO_QTY , 0 )) from platform_wms_detail pl where pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum) |
| | | //.select(" ( select sum(ifnull(pl.IO_QTY , 0 )) from platform_wms_detail pl where pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum) |
| | | .select(" ( case when t.total_num is null then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id ) else t.total_num end )",PlatformJob::getWorkNum) |
| | | .apply("to_days(t.create_date) = to_days(now())") |
| | | .eq(Platform::getIsdeleted, Constants.ZERO) |
| | | .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() }) |
| | |
| | | } |
| | | @Override |
| | | public List<PlatformWarnEvent> warningList(int limit){ |
| | | List<PlatformWarnEvent> platformLogList = platformWarnEventMapper.selectList(new QueryWrapper<PlatformWarnEvent>().lambda() |
| | | List<PlatformWarnEvent> platformLogList = platformWarnEventJoinMapper |
| | | .selectJoinList(PlatformWarnEvent.class,new MPJLambdaWrapper<PlatformWarnEvent>() |
| | | .selectAll(PlatformWarnEvent.class) |
| | | .selectAs(Platform::getName,PlatformWarnEvent::getPlatformName) |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .eq(PlatformWarnEvent::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date) = to_days(now())") |
| | | .apply("to_days(t.create_date) = to_days(now())") |
| | | .orderByDesc(PlatformWarnEvent::getCreateDate) |
| | | .last(" limit "+limit) |
| | | ); |
| | |
| | | if( Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())){ |
| | | data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); |
| | | data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); |
| | | data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum())); |
| | | } |
| | | //已叫号(预约车、签到数、已叫号) |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.CALLED.getKey()) ){ |
| | | data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); |
| | | data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); |
| | | data.setCalledNum(data.getCalledNum()+Constants.formatIntegerNum(model.getCountum())); |
| | | data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum())); |
| | | } |
| | | // 作业车辆(预约车、签到数、已叫号、作业车) |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | data.setVideoPluginUrl(getVideoUrl()); |
| | | String indexCodes = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_CHANGNEI_SCREEN_INDEXCODES).getCode(); |
| | | if(StringUtils.isNotBlank(indexCodes)){ |
| | | data.setVideoIndexCodes(indexCodes.split(",")); |
| | | } |
| | | } |
| | | |
| | | return data; |