| | |
| | | package com.doumee.service.business.impl.thrid; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.fastjson.TypeReference; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | |
| | | import com.doumee.core.haikang.model.param.respose.*; |
| | | import com.doumee.core.haikang.service.HKCarOpenService; |
| | | import com.doumee.core.haikang.service.HKService; |
| | | import com.doumee.core.tms.model.TMSContants; |
| | | import com.doumee.core.tms.model.request.TmsFacrotyCodeListRequest; |
| | | import com.doumee.core.tms.model.request.TmsOrderNoFinishListRequest; |
| | | import com.doumee.core.tms.model.request.TmsOutQtyAndVehicleQtyRequest; |
| | | import com.doumee.core.tms.model.request.TmsSevenArrivalDetailsRequest; |
| | | import com.doumee.core.tms.model.response.*; |
| | | import com.doumee.service.business.third.model.request.TmsFacrotyCodeListRequest; |
| | | import com.doumee.service.business.third.model.request.TmsOrderNoFinishListRequest; |
| | | import com.doumee.service.business.third.model.request.TmsOutQtyAndVehicleQtyRequest; |
| | | import com.doumee.service.business.third.model.request.TmsSevenArrivalDetailsRequest; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | |
| | | import com.doumee.dao.business.join.PlatformWarnEventJoinMapper; |
| | | import com.doumee.dao.business.join.VisitsJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.web.reqeust.CarsJobAndContractDTO; |
| | | import com.doumee.dao.web.response.platformReport.*; |
| | | import com.doumee.service.business.impl.PlatformJobServiceImpl; |
| | | import com.doumee.service.business.third.BoardService; |
| | | import com.doumee.service.business.third.TmsService; |
| | | import com.doumee.service.business.third.WmsService; |
| | | import com.doumee.service.business.third.model.response.*; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | public List<AlarmEventDataVO> fightingAdminAlertList(){ |
| | | List<AlarmEventDataVO> data = new ArrayList<>(); |
| | | |
| | | //查询24小时内的 |
| | | List<FindHomeAlarmInfoPageResponse> allList = new ArrayList<>(); |
| | | boolean hasNext = true; |
| | | int curTotal = 0; |
| | | int curPage = 1; |
| | | FindHomeAlarmInfoPageRequest param = new FindHomeAlarmInfoPageRequest(); |
| | | param.setHour(24); |
| | | param.setPage(1); |
| | | param.setUserId("admin"); |
| | | while (hasNext){ |
| | | //分页遍历循环查询所有门禁设备数据 |
| | | param.setPage(curPage); |
| | | // param.setRegionIndexCodes("root000000"); |
| | | param.setAlarmStartTime(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd") + " 00:00:00"); |
| | | param.setAlarmEndTime(DateUtil.getPlusTime2(new Date())); |
| | | param.setPageSize(20); |
| | | BaseResponse<BaseListPageResponse<FindHomeAlarmInfoPageResponse>> response = HKService.findHomeAlarmInfoPage(param); |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) |
| | | && response.getData()!=null |
| | | &&response.getData().getList()!=null) { |
| | | param.setAlarmStartTime(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd") + " 00:00:00"); |
| | | param.setAlarmEndTime(DateUtil.getPlusTime2(new Date())); |
| | | param.setPageSize(50); |
| | | BaseResponse<BaseListPageResponse<FindHomeAlarmInfoPageResponse>> response = HKService.findHomeAlarmInfoPage(param); |
| | | if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,海康同步数据失败~"); |
| | | } |
| | | for(FindHomeAlarmInfoPageResponse r : response.getData().getList()){ |
| | | AlarmEventDataVO t = new AlarmEventDataVO(); |
| | | BeanUtils.copyProperties(r,t); |
| | | data.add(t); |
| | | try { |
| | | if(DateUtil.getDateFromString(t.getAlarmTime()).getTime() >= Utils.Date.getStart(new Date()).getTime()){ |
| | | data.add(t); |
| | | }else{ |
| | | hasNext =false; |
| | | } |
| | | }catch (Exception e){ |
| | | } |
| | | } |
| | | curTotal += 50; |
| | | if(curTotal >= response.getData().getTotal()){ |
| | | hasNext = false; |
| | | } |
| | | if(response.getData().getList() == null || response.getData().getList().size()==0){ |
| | | hasNext =false; |
| | | } |
| | | curPage++; |
| | | } |
| | | |
| | | return data; |
| | | |
| | | } |
| | |
| | | //如果是在线或者休眠,查询在途还是空闲ty |
| | | codes.add(model.getPlateNum()); |
| | | model.setJobStatus(Constants.ZERO); |
| | | }else |
| | | }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) |
| | | List<PlatformJob> busyNum = platformJobMapper.selectList(new QueryWrapper<PlatformJob>() .lambda() |
| | |
| | | BaseResponse<FireStatisticResponse> response1 = HKService.fireStatisticMonth(param); |
| | | if(response1 != null && StringUtils.equals(response1.getCode(), HKConstants.RESPONSE_SUCCEE) |
| | | && response1.getData()!=null ) { |
| | | data.setMonthAddNum(Constants.formatIntegerNum(response1.getData().getMaintenanceNum())); |
| | | data.setMonthAddNum(Constants.formatIntegerNum(response1.getData().getMaintenanceNumMonth())); |
| | | data.setMonthTotalNum(Constants.formatIntegerNum(response1.getData().getDeviceTotalNum())); |
| | | } |
| | | return data; |
| | | return data; |
| | | |
| | | } |
| | | |
| | |
| | | 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")){ |
| | | if(StringUtils.isNotBlank(data.getName())){ |
| | | Integer index = data.getName().indexOf("-"); |
| | | if(index>=0){ |
| | | data.setName(data.getName().substring(0,index)); |
| | | } |
| | | } |
| | | if(data.getSensorType().equals("currTemperature")){ |
| | | temperatureHumidityDataVO.setTemperatureData(data); |
| | | }else{ |
| | | temperatureHumidityDataVO.setHumidityData(data); |
| | |
| | | } |
| | | if( data.getGasQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | //计算用气同比环比 |
| | | data.getGasQuantity().setSameRate( |
| | | (data.getGasQuantity().getTotalNum().subtract(data.getGasQuantity().getSameNum())).divide(data.getGasQuantity().getSameNum()).doubleValue()*100 +"" |
| | | if(Constants.formatBigdecimal(data.getGasQuantity().getSameNum()).compareTo(new BigDecimal(0))!=0){ |
| | | data.getGasQuantity().setSameRate( |
| | | (data.getGasQuantity().getTotalNum().subtract(data.getGasQuantity().getSameNum())).divide(data.getGasQuantity().getSameNum(),4,BigDecimal.ROUND_HALF_UP).doubleValue()*100 +"" |
| | | /*Constants.formatBigdecimal4Float(data.getGasQuantity().getSameNum() |
| | | .divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +""*/); |
| | | data.getGasQuantity().setRingRate( |
| | | (data.getGasQuantity().getTotalNum().subtract(data.getGasQuantity().getRingNum())).divide(data.getGasQuantity().getRingNum()).doubleValue()*100 +"" |
| | | //Constants.formatBigdecimal4Float(data.getGasQuantity().getRingNum().divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +"" |
| | | ); |
| | | } |
| | | if(Constants.formatBigdecimal(data.getGasQuantity().getRingNum()).compareTo(new BigDecimal(0))!=0){ |
| | | data.getGasQuantity().setRingRate( |
| | | (data.getGasQuantity().getTotalNum().subtract(data.getGasQuantity().getRingNum())).divide(data.getGasQuantity().getRingNum(),4,BigDecimal.ROUND_HALF_UP).doubleValue()*100 +"" |
| | | //Constants.formatBigdecimal4Float(data.getGasQuantity().getRingNum().divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +"" |
| | | ); |
| | | } |
| | | |
| | | } |
| | | if( data.getWaterQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | // //计算用水同比环比 |
| | |
| | | .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(" ( 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())") |
| | | // .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() }) |
| | | // .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .orderByDesc(PlatformJob::getStatus )); |
| | | .orderByDesc(PlatformJob::getStatus ) |
| | | .orderByAsc(PlatformJob::getId ) |
| | | ); |
| | | //月台状态:0=作业中;1=空闲中;2=作业超时;3=叫号 |
| | | for(Platform model : platformList){ |
| | | PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO(); |
| | |
| | | if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | if(Constants.UNIT_TYPE == 1) { |
| | | //处理单位成“箱”,一箱=5万支 |
| | | t.setCurrentNum(Constants.formatBigdecimal(t.getCurrentNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | t.setTotalNum(Constants.formatBigdecimal(t.getTotalNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | } |
| | | result.getDetailList().add(t); |
| | | result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum())); |
| | |
| | | for(TmsFactoryParam param : paramList){ |
| | | if(StringUtils.isNotBlank(factoryCode)){ |
| | | if(StringUtils.equals(param.getCode(),factoryCode)){ |
| | | data.setHoursAbility(data.getHoursAbility().add(Constants.formatBigdecimal(param.getParam3()))); |
| | | data.setMaxAbility(data.getMaxAbility().add(Constants.formatBigdecimal(param.getNum2()))); |
| | | data.setHoursAbility(Constants.formatBigdecimal(param.getParam3())); |
| | | data.setMaxAbility(Constants.formatBigdecimal(param.getNum2())); |
| | | code = param.getCode(); |
| | | break; |
| | | } |
| | |
| | | } |
| | | }*/ |
| | | initOutboundCapability(data,factoryCode); |
| | | |
| | | return data; |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | if(result.getCurrentDayAgoOrderList()!=null && result.getCurrentDayAgoOrderList().size()>0){ |
| | | |
| | | for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayAgoOrderList()){ |
| | | /** |
| | | * out_date为空,sum(NC_TOTALITY) 昨天未完成出库计划任务 |
| | |
| | | } |
| | | if(data.getCrrentRestCarNum()<=0){ |
| | | data.setCrrentRestCarNum(0); |
| | | } |
| | | //处理单位成“箱”,一箱=5万支 |
| | | if(Constants.UNIT_TYPE == 1) { |
| | | data.setMaxAbility(Constants.formatBigdecimal(data.getMaxAbility()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setHoursAbility(Constants.formatBigdecimal(data.getHoursAbility()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCrrentRestNum(Constants.formatBigdecimal(data.getCrrentRestNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCurrentPlanNum(Constants.formatBigdecimal(data.getCurrentPlanNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCrrentOutNum(Constants.formatBigdecimal(data.getCrrentOutNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCurrentOrderNum(Constants.formatBigdecimal(data.getCurrentOrderNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | } |
| | | |
| | |
| | | data.setSameOutNum(data.getLastOutNum()); |
| | | data.setSameInNum(data.getLastInNum()); |
| | | } |
| | | |
| | | //处理单位成“箱”,一箱=5万支 |
| | | if(Constants.UNIT_TYPE == 1) { |
| | | data.setCurrentInNum(Constants.formatBigdecimal(data.getCurrentInNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCurrentOutNum(Constants.formatBigdecimal(data.getCurrentOutNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setLastInNum(Constants.formatBigdecimal(data.getLastInNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setLastOutNum(Constants.formatBigdecimal(data.getLastOutNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setSameInNum(Constants.formatBigdecimal(data.getSameInNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setSameOutNum(Constants.formatBigdecimal(data.getSameOutNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | return data; |
| | | } |
| | | /** |
| | |
| | | List<TmsDistributionOfDeliveryLocResponse> response = tmsService.getDistributionOfDeliveryLocations(param);//查询出库量 |
| | | if(response!=null &&response.size()>0){ |
| | | for(TmsDistributionOfDeliveryLocResponse model : response){ |
| | | WholeProvinceMapVO tt = getFromProvinceResultList(model ,result); |
| | | if(tt == null){ |
| | | tt =new WholeProvinceMapVO(); |
| | | tt.setMonthNum( Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity())); |
| | | tt.setYearNum( Constants.formatBigdecimal0Float(model.getYearOutboundQuantity())); |
| | | tt.setProvinceCode(model.getFromProvinceCode()); |
| | | tt.setProvinceName(model.getFromProvinceName()); |
| | | result.add(tt); |
| | | WholeProvinceMapVO t = getFromProvinceResultList(model ,result); |
| | | if(t == null){ |
| | | t =new WholeProvinceMapVO(); |
| | | t.setMonthNum( Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity())); |
| | | t.setYearNum( Constants.formatBigdecimal0Float(model.getYearOutboundQuantity())); |
| | | |
| | | if(Constants.UNIT_TYPE == 1) { |
| | | //处理单位成“箱”,一箱=5万支 |
| | | t.setMonthNum(Constants.formatBigdecimal(t.getMonthNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | t.setYearNum(Constants.formatBigdecimal(t.getYearNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | t.setProvinceCode(model.getToProvinceCode()); |
| | | t.setProvinceName(model.getToProvinceName()); |
| | | result.add(t); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | private WholeProvinceMapVO getFromProvinceResultList(TmsDistributionOfDeliveryLocResponse model, List<WholeProvinceMapVO> result) { |
| | | for(WholeProvinceMapVO t : result){ |
| | | if(StringUtils.equals(t.getProvinceCode(), model.getFromProvinceCode())){ |
| | | if(StringUtils.equals(t.getProvinceCode(), model.getToProvinceCode())){ |
| | | t.setMonthNum(Constants.formatBigdecimal(t.getMonthNum()).add(Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity()))); |
| | | t.setYearNum(Constants.formatBigdecimal(t.getYearNum()).add(Constants.formatBigdecimal0Float(model.getYearOutboundQuantity()))); |
| | | return t; |
| | |
| | | if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | if(Constants.UNIT_TYPE == 1) { |
| | | //处理单位成“箱”,一箱=5万支 |
| | | t.setCurrentNum(Constants.formatBigdecimal(t.getCurrentNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | t.setTotalNum(Constants.formatBigdecimal(t.getTotalNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | |
| | | } |
| | | result.getDetailList().add(t); |
| | | result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum())); |
| | | result.setTotalNum(result.getTotalNum().add(t.getTotalNum())); |
| | |
| | | if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | if(Constants.UNIT_TYPE == 1){ |
| | | //处理单位成“箱”,一箱=5万支 |
| | | t.setCurrentNum(Constants.formatBigdecimal(t.getCurrentNum()).divide(new BigDecimal(5),2,BigDecimal.ROUND_HALF_UP)); |
| | | t.setTotalNum(Constants.formatBigdecimal(t.getTotalNum()).divide(new BigDecimal(5),2,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | result.getDetailList().add(t); |
| | | result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum())); |
| | | result.setTotalNum(result.getTotalNum().add(t.getTotalNum())); |