k94314517
2024-12-13 ad86a0aa39f20e1b8bb511acd6961c7ec59f9251
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -22,6 +22,7 @@
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;
@@ -30,6 +31,7 @@
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;
@@ -60,7 +62,7 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private PlatformWarnEventMapper platformWarnEventMapper;
    private PlatformWarnEventJoinMapper platformWarnEventJoinMapper;
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
@@ -314,7 +316,10 @@
    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)
        );
@@ -353,6 +358,7 @@
    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)
        );
@@ -400,12 +406,13 @@
        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 ==2){
            file.setFieldValue("131593");//人员告警
        }
        request.getFiledOptions().add(file);
        SortRequest sort = new SortRequest();
@@ -997,6 +1004,14 @@
            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);
        }
        return  alarmDataVO;
    }
@@ -1069,6 +1084,46 @@
        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
@@ -1169,7 +1224,7 @@
        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;
    }
@@ -1253,8 +1308,21 @@
            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个水电气油耗数据统计
@@ -1325,15 +1393,15 @@
        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);
@@ -1444,7 +1512,12 @@
                (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) {
@@ -1475,7 +1548,8 @@
            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() })
@@ -1612,9 +1686,13 @@
    }
    @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)
        );
@@ -1665,12 +1743,14 @@
                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())){
@@ -1717,6 +1797,12 @@
                }
            }
            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;