jiangping
2025-01-16 f63d3a3be83fea258e7920efccd2567b6a511bb3
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -14,6 +14,7 @@
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.dao.web.reqeust.CarsJobAndContractByJobIdDTO;
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;
@@ -489,7 +490,7 @@
        List<WaningEventDataListVO> list = new ArrayList<>();
        RuleEventSearchRequest request = new RuleEventSearchRequest();
        request.setPageNo(1);
        request.setPageSize(10);
        request.setPageSize(1000);
        request.setFiledOptions(new ArrayList<>());
        request.setSorts(new ArrayList<>());
        RuleEventFiledOptionsRequest file = new RuleEventFiledOptionsRequest();
@@ -499,7 +500,6 @@
        if(type == 1){
            file.setFieldValue("131588");//安防告警
        }else  if(type == 2){
            file.setFieldValue("131593");//人员告警
        }
        request.getFiledOptions().add(file);
@@ -507,34 +507,36 @@
        sort.setSortField("happen_time");
        sort.setSortType("desc");
        request.getSorts().add(sort);
        int total =0;
        BaseResponse<BaseListPageResponse< RuleEventSearchDataResponse>> result = HKService.ruleEventSearch(request);
        if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
            List<RuleEventSearchDataResponse> rlist = result.getData().getList();
            lastResult.setTotal(result.getData().getTotal());
            if(rlist!=null){
                String privateIp =systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.EVENT_FILES_PRIVATE_DOMAIN).getCode();
                String publicIp =systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.EVENT_FILES_PUBLIC_DOMAIN).getCode();
                for(RuleEventSearchDataResponse r :rlist){
                    try {
                        if(DateUtil.getISO8601DateByStr(r.getHappen_time()).getTime() >= Utils.Date.getStart(new Date()).getTime()){
                        if(DateUtil.getISO8601DateByStr(r.getHappen_time()).getTime() < Utils.Date.getStart(new Date()).getTime()){
                            continue;
                        }
                    }catch (Exception e){
                    }
                    total ++;
                    WaningEventDataListVO data = new WaningEventDataListVO();
                    data.setCreateDate(DateUtil.getPlusTime(DateUtil.getISO8601DateByStr(r.getHappen_time())));
                    data.setAddr(r.getSrc_name());
                    data.setImg(r.getImage_url());
                    if(data.getImg()!=null){
                        data.setImg(data.getImg().replace(privateIp,publicIp));
                    }
                    data.setTitle(r.getEvent_type_name());
                    data.setCreateDate(DateUtil.getPlusTime(DateUtil.getISO8601DateByStr(r.getHappen_time())));
//                data.setContent(r.get);
                    list.add(data);
                }
            }
        }
        lastResult.setTotal(total);
        lastResult.setList(list);
        return lastResult;
    }
@@ -805,6 +807,36 @@
                                Constants.PlatformJobStatus.AUTHED_LEAVE.getKey(),
                                Constants.PlatformJobStatus.CALLED.getKey())
                        .last("limit 1"));
        dealJobDetailAndContractBiz(job,data);
        return data;
    }
    /**
     * 【园区物料中心调度】看板-根据车牌号查询作业信息和合同信息集合
     *
     * @return
     *
     */
    @Override
    public  CarsJobAndContractVO  getJobDetailsById(CarsJobAndContractByJobIdDTO param) {
        CarsJobAndContractVO data = new CarsJobAndContractVO();
        if(param.getId() == null){
            return  data;
        }
        PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class,
                new MPJLambdaWrapper<PlatformJob>()
                        .selectAll(PlatformJob.class)
                        .eq(PlatformJob::getId,param.getId())
                        .last("limit 1"));
        dealJobDetailAndContractBiz(job,data);
        return data;
    }
    private void dealJobDetailAndContractBiz(PlatformJob job, CarsJobAndContractVO data) {
        if(job!=null){
            List<PlatformLog>  logList = platformLogMapper.selectJoinList(PlatformLog.class,
                    new MPJLambdaWrapper<PlatformLog>()
@@ -844,7 +876,7 @@
                if(detailList!=null){
                    for(PlatformWmsDetail d : detailList){
                        if(isExistIocode(d.getIocode(),data.getContractList())){
                                continue;
                            continue;
                        }
                        tt = new CarsContractVO();
                        tt.setIoCode(d.getIocode());
@@ -857,10 +889,6 @@
            }
        }
        return data;
    }
    private List<PlatformWmsDetail> getDetailListByCode(String iocode, List<PlatformWmsDetail> detailList,CarsContractVO tt) {
@@ -910,11 +938,8 @@
    @Override
    public  PlatformJobRunBoardNewVO platformJobCenterData(){
        PlatformJobRunBoardNewVO data = new PlatformJobRunBoardNewVO();
        Random random = new Random();
        data.setMonthOutTimes(random.nextInt(1000));
        data.setYearOutTimes(random.nextInt(1000) * 11);
        data.setMonthOutTimes(0);
        data.setYearOutTimes(0);
        Date month  = Utils.Date.getStart(new Date());//本月
        Date lastMonth =  DateUtil.addMonthToDate(month,-1);//上月
        Date year = Utils.Date.getStart(new Date());//今年
@@ -977,7 +1002,7 @@
                        .selectAs(PlatformJob::getStatus,PlatformJob::getStatus)
                        .selectAs(PlatformJob::getType,PlatformJob::getType)
                        .select(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
//                        .select("select sum(io_qty) from platform_wms_details a where a.isdeleted=0 and a.job_id=t.id",create_date)
                        // .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)
                        .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey(),Constants.PlatformJobStatus.CALLED.getKey())
                        .apply("   to_days(create_date) <to_days(now())"));
@@ -1036,7 +1061,6 @@
        }
        return data;
    }
    private BigDecimal getDoneHoursByData(String start ,String end) {
        List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda()
@@ -1627,27 +1651,50 @@
                energyDataVOList.add(data);
            }
        }else{
            String lastYear = null;
            int lastMonths = 0,curMonths =0;
            String curYear =DateUtil.getFomartDate(new Date(),"yyyy");
            for (int i = 0; i < 12; i++) {
                Date tempDate = DateUtil.increaseMonth(lastMonth,i);
                String tt =DateUtil.getFomartDate(tempDate,"yyyy");
                if(!StringUtils.equals(curYear,tt)){
                   lastYear = tt;
                   lastMonths = i+1;//去年的月份数
                }
                EnergyDataVO data = new EnergyDataVO();
                data.setTimeData(DateUtil.getFomartDate(tempDate,"YYYY-MM"));
//                data.setTimeData(DateUtil.getFomartDate(tempDate,(i+1)+"月"));
                data.setEnergy(new BigDecimal(0));
                energyDataVOList.add(data);
            }
            //如果是用电数据
            curMonths = 12 - lastMonths;//今年的月份数
            EnergyTrendRequest param = new EnergyTrendRequest();
            param.setDate(DateUtil.getFomartDate(new Date(),"yyyy"));//年份
            param.setMeterType(1);
            param.setNodeType(2);
            param.setNodeId("root000000");
            param.setPeriodType("year");
            if(lastYear!=null){
                //如果是用电数据
                param.setDate(lastYear);//查询去年年份
                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 < lastMonths; i++) { //0,11,取值1-12
                        if(response.getData().getYvalues().size()>0 &&response.getData().getYvalues().get(0).getValue().length>curMonths+i){
                            //取相应的参数值
                            energyDataVOList.get(i).setEnergy(new BigDecimal(StringUtils.defaultString(response.getData().getYvalues().get(0).getValue()[curMonths+i],"0")));
                        }
                    }
                }
            }
            //如果是用电数据
            param.setDate(curYear);//年份
            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 < 12; i++) {
                    if(response.getData().getYvalues().size()>0 &&response.getData().getYvalues().get(0).getValue().length>i){
                for (int i = lastMonths; i < 12; i++) { //12 取值 0
                    if(response.getData().getYvalues().size()>0 &&response.getData().getYvalues().get(0).getValue().length>i-lastMonths){
                        //取相应的参数值
                        energyDataVOList.get(i).setEnergy(new BigDecimal(StringUtils.defaultString(response.getData().getYvalues().get(0).getValue()[i],"0")));
                        energyDataVOList.get(i).setEnergy(new BigDecimal(StringUtils.defaultString(response.getData().getYvalues().get(0).getValue()[i-lastMonths],"0")));
                    }
                }
@@ -2184,6 +2231,9 @@
        data.setHoursAbility(new BigDecimal(0));
        data.setCurrentPlanNum(new BigDecimal(0));
        data.setCurrentOrderNum(new BigDecimal(0));
        data.setNoNeedTransportOrderNum(new BigDecimal(0));
        data.setNeedTransportOrderNum(new BigDecimal(0));
        data.setCurrentOrderNum(new BigDecimal(0));
        data.setCrrentRestNum(new BigDecimal(0));
        data.setCrrentOutNum(new BigDecimal(0));
        List<TmsFactoryParam> paramList = factoryList();
@@ -2231,73 +2281,26 @@
        }
        TmsOutboundCapabilityResponse result=  tmsService.getOutboundCapability(param);
        if(result !=null){
            String todayDate = DateUtil.getShortTime(new Date());
            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());
                        }
                    }
                    dealOutOrderBiz(data,model,planCodes,todayCodes,todayDate);
                }
            }
            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());
                        }
                    }
                    dealOutOrderBiz(data,model,planCodes,todayCodes,todayDate);
                }
            }
            data.setCurrentPlanCarNum(planCodes.size());//今日计划车次
            data.setCurrentPlanCarNum(planCodes.size());//今日任务车次
            data.setCrrentOutCarNum(todayCodes.size());//今日出库车次
        }
        data.setCrrentRestNum(data.getCurrentPlanNum().subtract(data.getCrrentOutNum()));
        data.setCrrentRestCarNum(data.getCurrentPlanCarNum() -data.getCrrentOutCarNum());
//        data.setCrrentRestNum(data.getCurrentPlanNum().subtract(data.getCrrentOutNum()));
//        data.setCrrentRestCarNum(data.getCurrentPlanCarNum() -data.getCrrentOutCarNum());
        data.setCrrentRestNum(data.getCurrentPlanNum());
        data.setCrrentRestCarNum(data.getCurrentPlanCarNum());
        if(data.getCrrentRestNum().compareTo(new BigDecimal(0)) <=0){
            data.setCrrentRestNum(new BigDecimal(0));
        }
@@ -2312,7 +2315,59 @@
            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.setNoNeedTransportOrderNum(Constants.formatBigdecimal(data.getNoNeedTransportOrderNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP));
            data.setNeedTransportOrderNum(Constants.formatBigdecimal(data.getNeedTransportOrderNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP));
        }
    }
    /**
     * 1、当前订单里:截止目前未配载订单量;
     * 2、当前任务量:截止目前已配载未出库订单量+无需配载的未出库任务量;
     * 3、当前任务量和剩余任务量统计逻辑一致;
     * @param data
     * @param model
     */
    private void dealOutOrderBiz(WholeProvinceBoardVO data, TmsOutboundCapabilityInfoResponse model,List<String> planCodes,List<String> todayCodes,  String todayDate ) {
        /**
         * 当前订单量:截至目前未配载的数据
         */
        if(StringUtils.isBlank(model.getTransportCode())
                &&( StringUtils.equals("1",model.getDispatchType()) || StringUtils.equals("2",model.getDispatchType()))){
            data.setCurrentOrderNum(data.getCurrentOrderNum().add(Constants.formatBigdecimal(model.getNcTotality())));//当前订单量
        }
        /**
         * 当前任务量(和剩余任务里):截至目前已配载未出库的订单
         */
        if(StringUtils.isNotBlank(model.getTransportCode()) && StringUtils.isBlank(model.getOutDate())){
            data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//当前任务量(累计)
            data.setNeedTransportOrderNum(data.getNeedTransportOrderNum().add(Constants.formatBigdecimal(model.getNcTotality())));//同城剩余任务量(累计)
            if(notInList(model.getTransportCode(),planCodes)){
                planCodes.add(model.getTransportCode());
            }
        }
        /**
         *   同城单子(无需配载但是未完成)
         */
        if(StringUtils.isBlank(model.getOutDate())
                && !StringUtils.equals("1",model.getDispatchType()) && !StringUtils.equals("2",model.getDispatchType())){
            data.setNoNeedTransportOrderNum(data.getNoNeedTransportOrderNum().add(Constants.formatBigdecimal(model.getNcTotality())));//同城剩余任务量(累计)
            data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//当前任务量(累计)
        }
        /**
         * 今日出库量,出库时间为今天的
         */
        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());
                }
            }
        }
    }
    private boolean notInList(String transportCode, List<String> planCodes) {
@@ -2333,7 +2388,10 @@
        TotalOutQtyNumVO  data = new TotalOutQtyNumVO();
        data.setCurrentInNum(new BigDecimal(0));
        data.setLastInNum(new BigDecimal(0));
        data.setCurrentProvinceNum(new BigDecimal(0));
        data.setCurrentOtherNum(new BigDecimal(0));
        data.setSameInNum(new BigDecimal(0));
        //---------省外----------------
        data.setCurrentOutNum(new BigDecimal(0));
        data.setLastOutNum(new BigDecimal(0));
@@ -2373,6 +2431,8 @@
            List<TmsOutQtyAndVehicleQtyResponse> listSame=  tmsService.getOutQtyAndVehicleQty(param);//去年同期
            if(listSame!=null ){
                for(TmsOutQtyAndVehicleQtyResponse model : listSame){
                    model.setOutSideProvinceOutQty(Constants.formatBigdecimal(model.getOutSideProvinceOutT03Qty()).add(Constants.formatBigdecimal(model.getOutSideProvinceOutT01Qty())));//省外累计
                    model.setInSideProvinceOutQty(Constants.formatBigdecimal(model.getInSideProvinceOutT03Qty()).add(Constants.formatBigdecimal(model.getInSideProvinceOutT01Qty())));//省内累计
                    data.setSameOutNum(data.getSameOutNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutQty())));
                    data.setSameInNum(data.getSameInNum().add(Constants.formatBigdecimal(model.getInSideProvinceOutQty())));
                }
@@ -2383,9 +2443,13 @@
        List<TmsOutQtyAndVehicleQtyResponse> listCur =  tmsService.getOutQtyAndVehicleQty(param);//本周期
        if(listCur!=null ){
            for(TmsOutQtyAndVehicleQtyResponse model : listCur){
                model.setOutSideProvinceOutQty(Constants.formatBigdecimal(model.getOutSideProvinceOutT03Qty()).add(Constants.formatBigdecimal(model.getOutSideProvinceOutT01Qty())));//省外累计
                model.setInSideProvinceOutQty(Constants.formatBigdecimal(model.getInSideProvinceOutT03Qty()).add(Constants.formatBigdecimal(model.getInSideProvinceOutT01Qty())));//省内累计
                data.setCurrentOutNum(data.getCurrentOutNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutQty())));
                data.setCurrentInNum(data.getCurrentInNum().add(Constants.formatBigdecimal(model.getInSideProvinceOutQty())));
                data.setTotalCarNum(data.getTotalCarNum()+Constants.formatIntegerNum(model.getVehicleQty()));//累计车次
                data.setCurrentProvinceNum(data.getCurrentProvinceNum().add(model.getOutSideProvinceOutQty()).add(model.getInSideProvinceOutT01Qty()));//省内省外销售量
                data.setCurrentOtherNum(data.getCurrentOtherNum().add(model.getOutSideProvinceOutT03Qty()).add(model.getInSideProvinceOutT03Qty()));//省内省外其他出库量
            }
        }
        param.setDateEnd(DateUtil.getShortTime(lastEnd));
@@ -2393,6 +2457,8 @@
        List<TmsOutQtyAndVehicleQtyResponse> listLast =  tmsService.getOutQtyAndVehicleQty(param);//上周期
        if(listCur!=null ){
            for(TmsOutQtyAndVehicleQtyResponse model : listLast){
                model.setOutSideProvinceOutQty(Constants.formatBigdecimal(model.getOutSideProvinceOutT03Qty()).add(Constants.formatBigdecimal(model.getOutSideProvinceOutT01Qty())));//省外累计
                model.setInSideProvinceOutQty(Constants.formatBigdecimal(model.getInSideProvinceOutT03Qty()).add(Constants.formatBigdecimal(model.getInSideProvinceOutT01Qty())));//省内累计
                data.setLastOutNum(data.getLastOutNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutQty())));
                data.setLastInNum(data.getLastInNum().add(Constants.formatBigdecimal(model.getInSideProvinceOutQty())));
            }
@@ -2406,6 +2472,8 @@
        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.setCurrentOtherNum(Constants.formatBigdecimal(data.getCurrentOtherNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP));
            data.setCurrentProvinceNum(Constants.formatBigdecimal(data.getCurrentProvinceNum()).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));
@@ -2550,6 +2618,7 @@
        WholeProvinceZXTVO result = new WholeProvinceZXTVO();
        result.setCurrentNum(new BigDecimal(0));
        result.setTotalNum(new BigDecimal(0));
        result.setZtNum(new BigDecimal(0));
        result.setUseRate(new BigDecimal(0));
        result.setDetailList(new ArrayList<>());
        List<TmsFactoryParam> paramList =factoryList();
@@ -2559,47 +2628,52 @@
                WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO();
                t.setFactoryName(p.getName());
                t.setCurrentNum(new BigDecimal(0));
                t.setZaituNum(new BigDecimal(0));
                t.setTotalNum(Constants.formatBigdecimal(p.getNum1()));//总库存量
                getFromReportVehicleQtyList(p.getCode(),t,response);//处理提报运力和总运力数据
                t.setUseRate(new BigDecimal(0));
                if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){
                    t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
                if((t.getTotalNum().subtract(t.getZaituNum())).compareTo(new BigDecimal(0)) !=0){
                    t.setUseRate(t.getCurrentNum().divide(t.getTotalNum().subtract(t.getZaituNum()),4,BigDecimal.ROUND_HALF_UP));
                }
                if(Constants.UNIT_TYPE == 1) {
                /*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()));
                result.setZtNum(result.getZtNum().add(t.getZaituNum()));
            }
        }
        if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){
            result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
        if((result.getTotalNum().subtract(result.getZtNum())).compareTo(new BigDecimal(0)) !=0){
            result.setUseRate(result.getCurrentNum().divide(result.getTotalNum().subtract(result.getZtNum()),4,BigDecimal.ROUND_HALF_UP));
        }
        return result;
    }
    private void getFromReportVehicleQtyList(String code,WholeProvinceZxtDetailVO t, List<TmsTotalAndReportVehicleQtyResponse> responses) {
        BigDecimal current = new BigDecimal(0);
        BigDecimal total= new BigDecimal(0);
        BigDecimal ztTotal= new BigDecimal(0);
        if(responses!=null && responses.size()>0){
            for(TmsTotalAndReportVehicleQtyResponse model: responses){
                if(StringUtils.equals(model.getFactoryCode(),code)){
                    ztTotal = ztTotal.add(Constants.formatBigdecimal(model.getInTransitQty()));
                    total = total.add(Constants.formatBigdecimal(model.getTotalQty()));
                    current = current.add(Constants.formatBigdecimal(model.getReportQty()));
                }
            }
        }
        t.setCurrentNum(current);
        t.setZaituNum(ztTotal);
        t.setTotalNum(total);
    }
    private BigDecimal getCurrentOutQryByList(List<TmsOutQtyAndVehicleQtyResponse> response) {
        BigDecimal r = new BigDecimal(0);
        if(response!=null && response.size()>0){
            for(TmsOutQtyAndVehicleQtyResponse model: response){
                    r = r.add(Constants.formatBigdecimal(model.getTotalOutQty()));
//                model.setTotalOutQty(Constants.formatBigdecimal(model.getTotalOutT03Qty()).add(Constants.formatBigdecimal(model.getTotalOutT01Qty())));
                r = r.add(Constants.formatBigdecimal(model.getTotalOutQty()));
            }
        }
        return r ;