jiangping
2024-12-24 537671dd0a367dfa9ef3f0dd3d33db2d4838ceed
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -18,6 +18,7 @@
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.*;
@@ -137,7 +138,10 @@
                        .apply("to_days(done_date) = to_days(now())") );
                if(jobs!=null){
                    for(PlatformJob j :jobs){
                        num =num.add(Constants.formatBigdecimal(j.getTotalNum()));
                        if(Objects.nonNull(j)&&Objects.nonNull(j.getTotalNum())){
                            num =num.add(Constants.formatBigdecimal(j.getTotalNum()));
                        }
                    }
                }
            }else{
@@ -151,7 +155,9 @@
                                , Constants.PlatformJobStatus.LEAVED.getKey()) );
                if(jobs!=null){
                    for(PlatformJob j :jobs){
                        num = num.add(Constants.formatBigdecimal(j.getTotalNum()));
                        if(Objects.nonNull(j)&&Objects.nonNull(j.getTotalNum())){
                            num = num.add(Constants.formatBigdecimal(j.getTotalNum()));
                        }
                    }
                }
            }
@@ -534,7 +540,6 @@
        BaseResponse<CamerasPreviewURLsResponse> result = HKService.cameraPreviewURLs(request);
        if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
            return result.getData().getUrl();
        }
        return null;
    }
@@ -709,6 +714,7 @@
                        .selectAs(PlatformJob::getId,PlatformJob::getId)
                        .selectAs(PlatformJob::getCreateDate,PlatformJob::getCreateDate)
                        .selectAs(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
                        .selectAs(PlatformJob::getStatus,PlatformJob::getStatus)
//                        .select("select sum(io_qty) from platform_wms_details a where a.isdeleted=0 and a.job_id=t.id",create_date)
                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                        .apply(queryType==0,"to_days(create_date) >= to_days(now()) -7")
@@ -1285,8 +1291,8 @@
     */
    @Override
    public  EnergyBoardVO centerEnergyData(){
        EnergyBoardVO data = new EnergyBoardVO();
        Random random = new Random();
       EnergyBoardVO data = new EnergyBoardVO();
       Random random = new Random();
       PlatformWaterGas smoke=  platformWaterGasMapper.selectOne(new QueryWrapper<PlatformWaterGas>()
                 .select("sum(num) as num")
                .lambda()
@@ -1369,8 +1375,14 @@
        }
        if( data.getGasQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){
            //计算用气同比环比
            data.getGasQuantity().setSameRate(Constants.formatBigdecimal4Float(data.getGasQuantity().getSameNum().divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +"");
            data.getGasQuantity().setRingRate(Constants.formatBigdecimal4Float(data.getGasQuantity().getRingNum().divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +"");
            data.getGasQuantity().setSameRate(
                    (data.getGasQuantity().getTotalNum().subtract(data.getGasQuantity().getSameNum())).divide(data.getGasQuantity().getSameNum()).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( data.getWaterQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){
            // //计算用水同比环比
@@ -1407,7 +1419,7 @@
     * @param data
     */
    private void getLastMonthElectricityData(EnergyModelDataVO data) {
         BaseResponse<LastMonthFeeByMeterTypeResponse> response = HKService.lastMonthFeeByMeterType("1");
//         BaseResponse<LastMonthFeeByMeterTypeResponse> response = HKService.lastMonthFeeByMeterType("1");
//        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
//           data.setRingRate(StringUtils.defaultString(response.getData().getRingPercent(),"0"));
//           data.setSameRate(StringUtils.defaultString(response.getData().getSamePercent(),"0"));
@@ -1470,23 +1482,31 @@
     * @param data
     */
    private void getCurrentDateElectircityData(EnergyModelDataVO data,int days) {
        EnergyTrendRequest param = new EnergyTrendRequest();
        param.setDate(DateUtil.getFomartDate(DateUtil.addDaysToDate(new Date(),days),"yyyy-MM-dd"));//日期
        param.setMeterType(1);
        param.setShowType("4");
        param.setNodeType(2);
        param.setNodeId("root000000");
//        EnergyTrendRequest param = new EnergyTrendRequest();
//        param.setDate(DateUtil.getFomartDate(DateUtil.addDaysToDate(new Date(),days),"yyyy-MM-dd"));//日期
//        param.setMeterType(1);
//        param.setShowType("4");
//        param.setNodeType(2);
//        param.setNodeId("root000000");
//        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 ){
//            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.setTotal(Constants.formatBigdecimal2Float(total).toString());
        EnergyTotalDataRequest param = new EnergyTotalDataRequest();
        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 ){
            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")));
            }
        param.setDate(DateUtil.getFomartDate(DateUtil.addDaysToDate(new Date(),days),"yyyy-MM-dd"));
        BaseResponse<EnergyTotalDataResponse> beforMonthResponse = HKService.energyTotal(param);
        if(beforMonthResponse != null && StringUtils.equals(beforMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforMonthResponse.getData()!=null ){
            data.setTotal(beforMonthResponse.getData().getElectricity());
            data.setTotalNum(new BigDecimal(beforMonthResponse.getData().getElectricity()));
        }
        data.setTotal(Constants.formatBigdecimal2Float(total).toString());
    }
    private EnergyModelDataVO getDefaultData() {
@@ -1555,7 +1575,7 @@
                    .last(" group by DATE_FORMAT(TIME_INFO,'%Y-%m')")
            );
            for (int i = 0; i < 12; i++) {
                Date tempDate = DateUtil.increaseMonth(lastMonth,i);
                Date tempDate = DateUtil.increaseMonth(lastMonth,i);
                EnergyDataVO data = new EnergyDataVO();
                data.setTimeData(DateUtil.getFomartDate(tempDate,"YYYY-MM"));
                data.setEnergy(new BigDecimal(0));
@@ -1572,7 +1592,8 @@
            for (int i = 0; i < 12; i++) {
                Date tempDate = DateUtil.increaseMonth(lastMonth,i);
                EnergyDataVO data = new EnergyDataVO();
                data.setTimeData(DateUtil.getFomartDate(tempDate,(i+1)+"月"));
                data.setTimeData(DateUtil.getFomartDate(tempDate,"YYYY-MM"));
//                data.setTimeData(DateUtil.getFomartDate(tempDate,(i+1)+"月"));
                data.setEnergy(new BigDecimal(0));
                energyDataVOList.add(data);
            }
@@ -1689,7 +1710,7 @@
                (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Objects.isNull(i.getCompanyType())).count()
        );
        //在园车辆
        data.setInternalCarTotal(
        data.setInParkCarTotal(
                (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count()
        );
        //在园相关方车辆
@@ -1974,6 +1995,7 @@
                    data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum()));
                    data.setCalledNum(data.getCalledNum()+Constants.formatIntegerNum(model.getCountum()));
                    data.setWorkedNum(data.getWorkedNum()+Constants.formatIntegerNum(model.getCountum()));
                     data.setWorkingCar(data.getWorkingCar()+Constants.formatIntegerNum(model.getCountum()));
                }
                // 作业完成(预约车、签到数、已叫号、作业车、已完成)
                if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
@@ -1999,7 +2021,7 @@
                }
                // 已离园
                if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey())){
                    data.setWorkingCar(data.getWorkingCar()+Constants.formatIntegerNum(model.getCountum()));
                    // data.setWorkingCar(data.getWorkingCar()+Constants.formatIntegerNum(model.getCountum()));
                }
                // 已过号(预约车、签到数、排队车)
                if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.OVER_NUMBER.getKey())){
@@ -2044,7 +2066,16 @@
        }
        BaseResponse<List<RegionDataRankingDataResponse>> response = HKService.regionDataRanking(request);
        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
            return response.getData();
            List<RegionDataRankingDataResponse> regionDataRankingDataResponseList = new ArrayList<>();
            for (RegionDataRankingDataResponse regionDataRankingDataResponse:response.getData()) {
                if(StringUtils.isNotBlank(regionDataRankingDataResponse.getPercent())){
                    if(Constants.equalsInteger(Integer.valueOf(new BigDecimal(regionDataRankingDataResponse.getPercent()).intValue()),Constants.ONE)){
                        continue;
                    }
                    regionDataRankingDataResponseList.add(regionDataRankingDataResponse);
                }
            }
            return regionDataRankingDataResponseList;
        }else{
            return null;
        }
@@ -2106,6 +2137,10 @@
        WholeProvinceBoardVO data = new WholeProvinceBoardVO();
        data.setMaxAbility(new BigDecimal(0));
        data.setHoursAbility(new BigDecimal(0));
        data.setCurrentPlanNum(new BigDecimal(0));
        data.setCurrentOrderNum(new BigDecimal(0));
        data.setCrrentRestNum(new BigDecimal(0));
        data.setCrrentOutNum(new BigDecimal(0));
        List<TmsFactoryParam> paramList = factoryList();
        String code = null;
        if(paramList!=null){
@@ -2124,13 +2159,7 @@
                }
            }
        }
        if(isDebug){
            data.setCurrentPlanNum(new BigDecimal(1220));
            data.setCurrentOrderNum(new BigDecimal(32340));
            data.setCrrentOutNum(new BigDecimal(3450));
            data.setCrrentRestNum(new BigDecimal(456450));
        }
        Date date = new Date();
      /*  Date date = new Date();
        TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest();
        param.setDateEnd(DateUtil.getShortTime(date));
        param.setDateStart(DateUtil.getShortTime(date));
@@ -2138,16 +2167,111 @@
            param.setFacrotyCodeList(new ArrayList<>());
            param.getFacrotyCodeList().add(code);//查询指定厂区
        }
        List<TmsOutQtyAndVehicleQtyResponse> listSame=  tmsService.getOutQtyAndVehicleQty(param);//去年同期
        List<TmsOutQtyAndVehicleQtyResponse> listSame=  tmsService.getOutQtyAndVehicleQty(param);
        if(listSame!=null ){
            for(TmsOutQtyAndVehicleQtyResponse model : listSame){
                data.setCrrentOutNum(data.getCrrentOutNum().add(Constants.formatBigdecimal(model.getTotalOutQty())));//今日出库量
                data.setCrrentOutCarNum(data.getCrrentOutCarNum()+(Constants.formatIntegerNum(model.getVehicleQty())));//今日出库车次
            }
        }
        }*/
        initOutboundCapability(data,factoryCode);
        return  data;
    }
    private void initOutboundCapability(WholeProvinceBoardVO data, String code) {
        TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest();
        if(StringUtils.isNotBlank(code)){
            param.setFacrotyCodeList(new ArrayList<>());
            param.getFacrotyCodeList().add(code);
        }
        TmsOutboundCapabilityResponse result=  tmsService.getOutboundCapability(param);
        if(result !=null){
            List<String> planCodes = new ArrayList<>();
            List<String> todayCodes = new ArrayList<>();
            String todayDate = DateUtil.getShortTime(new Date());
            if(result.getCurrentDayOrderList()!=null && result.getCurrentDayOrderList().size()>0){
                for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayOrderList()){
                    data.setCurrentOrderNum(data.getCurrentOrderNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日订单量
                    /**
                     * DISPATCH_TYPE in(1,2) 且 TRANSPORT_CODE不为空,sum(NC_TOTALITY)  +      DISPATCH_TYPE not in(1,2) sum(NC_TOTALITY)
                     *    今日出库下达的计划任务总量
                     */
                    if(StringUtils.isNotBlank(model.getTransportCode())
                            && (StringUtils.equals("1",model.getDispatchType()) || StringUtils.equals("2",model.getDispatchType()))){
                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日订单量
                    }
                    if(!(StringUtils.equals("1",model.getDispatchType()) || StringUtils.equals("2",model.getDispatchType()))){
                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日计划量
                    }
                    /**
                     * 今日下达出库的计划任务对应的运输车次数
                     * TRANSPORT_CODE不为空count(transport_code )
                     */
                    if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
                        planCodes.add(model.getTransportCode());
                    }
                    /**
                     * 今日下达出库的计划任务对应的运输车次数
                     * TRANSPORT_CODE不为空count(transport_code )
                     */
                    if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
                        planCodes.add(model.getTransportCode());
                    }
                    /**
                     *  out_date为当日,sum(NC_TOTALITY) 今日完成的出库作业任务总量
                     * TRANSPORT_CODE不为空 且out_date为当日 count(transport_code)     今日完成的出库作业任务的运输车次数
                     */
                    if(StringUtils.isNotBlank(model.getOutDate()) && model.getOutDate().length()> 10){
                        String tDate = model.getOutDate().substring(0,10);
                        if(tDate.equals(todayDate)){
                            //如果是当日
                            data.setCrrentOutNum(data.getCrrentOutNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日订单量
                        }
                        if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),todayCodes)){
                            todayCodes.add(model.getTransportCode());
                        }
                    }
                }
            }
            if(result.getCurrentDayAgoOrderList()!=null && result.getCurrentDayAgoOrderList().size()>0){
                for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayAgoOrderList()){
                    /**
                     * out_date为空,sum(NC_TOTALITY)   昨天未完成出库计划任务
                     * out_date为空 且TRANSPORT_CODE不为空 * count(transport_code )   昨天未完成出库计划任务车次
                     */
                    if(StringUtils.isBlank(model.getOutDate())){
                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日计划量
                        if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
                            planCodes.add(model.getTransportCode());
                        }
                    }
                }
            }
            data.setCurrentPlanCarNum(planCodes.size());//今日计划车次
            data.setCrrentOutCarNum(todayCodes.size());//今日出库车次
        }
        data.setCrrentRestNum(data.getCurrentPlanNum().subtract(data.getCrrentOutNum()));
        data.setCrrentRestCarNum(data.getCurrentPlanCarNum() -data.getCrrentOutCarNum());
        if(data.getCrrentRestNum().compareTo(new BigDecimal(0)) <=0){
            data.setCrrentRestNum(new BigDecimal(0));
        }
        if(data.getCrrentRestCarNum()<=0){
            data.setCrrentRestCarNum(0);
        }
    }
    private boolean notInList(String transportCode, List<String> planCodes) {
        for(String s :planCodes){
            if(StringUtils.equals(transportCode,s)){
                return  false;
            }
        }
        return true;
    }
    /**
     * 出库能力李永利
     * @return
@@ -2284,13 +2408,14 @@
     * @return TmsBaseResponse
     */
    @Override
    public   List<TmsOrderNoFinishListResponse>  orderNoFinishList(String code){
        TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest();
        if(StringUtils.isNotBlank(code)){
            param.setFacrotyCodeList(new ArrayList<>());
            param.getFacrotyCodeList().add(code);//查询指定厂区
        }
        List<TmsOrderNoFinishListResponse> infoList =   tmsService.getNotFinishOrderList(param);//查询出库量
    public   TmsBasePageResponse<TmsOrderNoFinishListResponse>  orderNoFinishList(TmsOrderNoFinishListRequest param){
        TmsBasePageResponse<TmsOrderNoFinishListResponse> infoList =   tmsService.getNotFinishOrderList(param);//查询出库量
     /*    if(infoList!=null && infoList.getRows()!=null){
            for(TmsOrderNoFinishListResponse model :infoList.getRows()){
                model.setStatusDesc(TMSContants.TopStatusLevel.getNameByKey(TMSContants.ChildStatusLevel.getParentIndexByStatus(model.getStatus())));
            }
        }*/
        return infoList;
    }
    /**
@@ -2305,13 +2430,23 @@
            param.setFacrotyCodeList(new ArrayList<>());
            param.getFacrotyCodeList().add(code);//查询指定厂区
        }
        List<TmsSevenArrivalStatusAndDetailsResponse> infoList =   tmsService.getSevenArrivalStatusAndDetails(param);//查询出库量
        Date date = new Date();
        Date startDate = DateUtil.addDaysToDate(date,-7);
        //看板大屏近7日到货情况日期 0表示当天当前推7天,-1表示本月初1号-7号
        String flag = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.SCREEN_SEVENT_ARRIVAL_STARTDATE).getCode();
        if(StringUtils.equals(flag,"-1")){
            startDate =DateUtil.getBeginDayOfMonth(0);
            date = DateUtil.addDaysToDate(startDate,7);
        }
        param.setNcCreateDateFrom(DateUtil.getShortTime(startDate));
        param.setNcCreateDateThrough(DateUtil.getShortTime(date));
        List<TmsSevenArrivalStatusAndDetailsResponse> infoList =   tmsService.getSevenArrivalStatusAndDetails(param);//查询出库量
        for (int i = 0; i < 7; i++) {
            LastSevenDaysOrderVo model = new LastSevenDaysOrderVo();
            Date td = DateUtil.addDaysToDate(date,-i);
            model.setDateStr(DateUtil.getShortTime(td));
            dealGoodsListFromResponse(model,infoList);
            list.add(model);
        }
        return list;
    }