| | |
| | | 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.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.tms.model.request.TmsFacrotyCodeListRequest; |
| | | import com.doumee.core.tms.model.request.TmsOutQtyAndVehicleQtyRequest; |
| | | import com.doumee.core.tms.model.response.TmsDistributionOfDeliveryLocResponse; |
| | | import com.doumee.core.tms.model.response.TmsInventoryListResponse; |
| | | import com.doumee.core.tms.model.response.TmsOutQtyAndVehicleQtyResponse; |
| | | import com.doumee.core.tms.model.response.TmsTotalAndReportVehicleQtyResponse; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | |
| | | 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.impl.VisitsServiceImpl; |
| | | import com.doumee.service.business.third.BoardService; |
| | | import com.doumee.service.business.third.TmsService; |
| | | import com.doumee.service.business.third.WmsService; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private TmsFactoryParamMapper tmsFactoryParamMapper; |
| | | @Autowired |
| | | private PlatformWarnEventJoinMapper platformWarnEventJoinMapper; |
| | | @Autowired |
| | | private PlatformJobMapper platformJobMapper; |
| | |
| | | private RetentionMapper retentionMapper; |
| | | @Autowired |
| | | private PlatformGroupMapper platformGroupMapper; |
| | | @Autowired |
| | | private TmsService tmsService; |
| | | /** |
| | | * 获取区域树形结构数据 |
| | | * @return |
| | |
| | | param.setPage(1); |
| | | param.setUserId("admin"); |
| | | // param.setRegionIndexCodes("root000000"); |
| | | param.setAlarmStartTime(DateUtil.getPlusTime2(DateUtil.addDaysToDate(new Date(),-1))); |
| | | 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); |
| | |
| | | MinitorDataSearchRequest param = new MinitorDataSearchRequest(); |
| | | param.setResourceTypeCodes(new String[]{}); |
| | | param.setRegionIndexCode("root000000"); |
| | | param.setResourceTypeCodes("60,61".split(",")); |
| | | param.setIncludeDown("1"); |
| | | param.setUserId("admin"); |
| | | param.setPageNo(1); |
| | | param.setPageSize(100); |
| | | BaseResponse<BaseListPageResponse<MonitorDataSearchResponse>> response = HKService.minitorDataSearch(param); |
| | | String pressure = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_PRESSURE_LEVEL).getCode(); |
| | | String liquid = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_LIQUID_LEVEL).getCode(); |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) |
| | | && response.getData()!=null ) { |
| | | List<MonitorDataSearchResponse> r = response.getData().getList(); |
| | |
| | | for(MonitorDataSearchResponse model : r){ |
| | | MonitorDataVO m = new MonitorDataVO(); |
| | | m.setName(model.getName()); |
| | | m.setLevel(Constants.equalsInteger(model.getType(),60)?liquid:pressure); |
| | | m.setDataList(new ArrayList<>()); |
| | | if(model.getValues()!=null){ |
| | | List<MonitorDataInfoVO> dataList = new ArrayList<>(); |
| | | for(MonitorDataValResponse v : model.getValues()){ |
| | | MonitorDataInfoVO vm = new MonitorDataInfoVO(); |
| | | vm.setValue(v.getMonitorValue()); |
| | | vm.setCateName(v.getMonitorSpecificName()); |
| | | vm.setCateCode(v.getMonitorTypeKey()); |
| | | vm.setTypeCode(v.getMonitorTypeCode()); |
| | | vm.setTypeName(v.getMonitorTypeName()); |
| | | if(Constants.equalsInteger(model.getType(),60)){ |
| | | if(v.getMonitorTypeCode().equals("254001")){ |
| | | MonitorDataInfoVO vm = new MonitorDataInfoVO(); |
| | | vm.setValue(v.getMonitorValue()); |
| | | vm.setCateName(v.getMonitorSpecificName()); |
| | | vm.setCateCode(v.getMonitorTypeKey()); |
| | | vm.setTypeCode(v.getMonitorTypeCode()); |
| | | vm.setTypeName(v.getMonitorTypeName()); |
| | | dataList.add(vm); |
| | | } |
| | | }else{ |
| | | if(v.getMonitorTypeCode().equals("253958")){ |
| | | MonitorDataInfoVO vm = new MonitorDataInfoVO(); |
| | | vm.setValue(v.getMonitorValue()); |
| | | vm.setCateName(v.getMonitorSpecificName()); |
| | | vm.setCateCode(v.getMonitorTypeKey()); |
| | | vm.setTypeCode(v.getMonitorTypeCode()); |
| | | vm.setTypeName(v.getMonitorTypeName()); |
| | | dataList.add(vm); |
| | | } |
| | | } |
| | | |
| | | } |
| | | m.setDataList(dataList); |
| | | } |
| | | list.add(m); |
| | | } |
| | | } |
| | | } |
| | |
| | | BigDecimal currentInNum = (getSumTotalByList(currentNum,1,null));//今天下发入库任务 |
| | | data.setCurrentInNum(beforeInNum.add(currentInNum));//当前入库总任务成量 |
| | | data.setCurrentOutNum(beforeOutNum.add(currentOutNum));//当前出库总任务成量 |
| | | data.setCurrentInDoneNum(getSumTotalByList(currentDoneNum,0,1));//今日完成量 |
| | | data.setCurrentOutDoneNum(getSumTotalByList(currentDoneNum,1,1));//今日完成量 |
| | | data.setCurrentInDoneNum(getSumTotalByList(currentDoneNum,1,1));//今日完成量 |
| | | data.setCurrentOutDoneNum(getSumTotalByList(currentDoneNum,0,1));//今日完成量 |
| | | |
| | | //------------今日出入库效率---------------- |
| | | BigDecimal outHours = getTotalDoneTimes(currentNum,0);// |
| | | BigDecimal inHours = getTotalDoneTimes(currentNum,1);// |
| | | BigDecimal outHours = getTotalDoneTimes(currentDoneNum,0);// |
| | | BigDecimal inHours = getTotalDoneTimes(currentDoneNum,1);// |
| | | if(outHours.compareTo(new BigDecimal(0))>0){ |
| | | data.setTodayOutRate(data.getCurrentOutDoneNum().divide(outHours,2));//当前入库总任务成量 |
| | | } |
| | |
| | | BigDecimal carbonWater = new BigDecimal(0);//本月用水 |
| | | BigDecimal carbonElec = new BigDecimal(0);//用电 |
| | | |
| | | data.setYesterdayElectricity(getDefaultData());//昨日用电 |
| | | data.setTodayElectricity(getDefaultData());//今日用电 |
| | | data.setElectricityQuantity(getDefaultData());//上月用电 |
| | | data.setWaterQuantity(getDefaultData());//上月用水 |
| | | data.setGasQuantity(getDefaultData());//上月用气 |
| | | data.setMonthElectricity(getDefaultData());//本月用电 |
| | | data.setYesterdayElectricity(getDefaultData());//昨日用电 |
| | | |
| | | |
| | | getMonthElectricityData(data.getMonthElectricity());//通过安防平获取本月用电量数据 |
| | | carbonElec = new BigDecimal(StringUtils.defaultString(data.getMonthElectricity().getTotal(), "0")); |
| | | |
| | | getLastMonthElectricityData(data.getElectricityQuantity());//通过安防平获取上月用电量数据 |
| | | getCurrentDateElectircityData(data.getTodayElectricity(),0);//通过安防平获取今日用电量数据 |
| | | getCurrentDateElectircityData(data.getYesterdayElectricity(),-1);//通过安防平获取昨日用电量数据 |
| | | getCurrentDateElectircityData(data.getTodayElectricity(),0);//通过安防平获取今日用电量数据 |
| | | |
| | | data.setWaterQuantity(getDefaultData());//上月用水 |
| | | data.setGasQuantity(getDefaultData());//上月用气 |
| | | carbonElec = new BigDecimal(StringUtils.defaultString(data.getMonthElectricity().getTotal(), "0")); |
| | | String firstDate = DateUtil.getFirstDayCurrentMonth() +" 00:00:00"; |
| | | Date month0 = DateUtil.getDateFromString(firstDate); |
| | | Date month1 = DateUtil.increaseMonth(month0,-1);//上月 |
| | |
| | | */ |
| | | private void getLastMonthElectricityData(EnergyModelDataVO data) { |
| | | 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")); |
| | | data.setTotal(StringUtils.defaultString(response.getData().getValue(),"0")); |
| | | // 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")); |
| | | // data.setTotal(StringUtils.defaultString(response.getData().getValue(),"0")); |
| | | // } |
| | | // String nowMonth = DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"); |
| | | // //上月日期 |
| | | // DateUtil.getBeforMonthStr(new Date(),1); |
| | | // //上上月日期 |
| | | // DateUtil.getBeforMonthStr(new Date(),2); |
| | | // //上年日期 |
| | | // DateUtil.getBeforMonthStr(new Date(),13); |
| | | |
| | | EnergyTotalDataRequest param = new EnergyTotalDataRequest(); |
| | | param.setPeriodType("month"); |
| | | param.setDate(DateUtil.getBeforMonthStr(new Date(),1).substring(0,7)); |
| | | 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())); |
| | | } |
| | | param.setDate(DateUtil.getBeforMonthStr(new Date(),2).substring(0,7)); |
| | | BaseResponse<EnergyTotalDataResponse> beforBeforMonthResponse = HKService.energyTotal(param); |
| | | if(beforBeforMonthResponse != null && StringUtils.equals(beforBeforMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforBeforMonthResponse.getData()!=null ){ |
| | | if(Objects.nonNull(beforBeforMonthResponse.getData()) && StringUtils.isNotBlank(beforBeforMonthResponse.getData().getElectricity())){ |
| | | data.setRingNum(new BigDecimal(beforBeforMonthResponse.getData().getElectricity())); |
| | | }else{ |
| | | data.setRingNum(BigDecimal.ZERO); |
| | | } |
| | | if(Objects.isNull(data.getTotal()) || Objects.isNull(data.getRingNum()) |
| | | || data.getTotalNum().compareTo(BigDecimal.ZERO) ==0 || data.getRingNum().compareTo(BigDecimal.ZERO) ==0 ){ |
| | | data.setRingRate("0"); |
| | | }else{ |
| | | data.setRingRate(new BigDecimal(data.getTotal()).divide(data.getRingNum(),2,BigDecimal.ROUND_HALF_UP).toString()); |
| | | } |
| | | } |
| | | param.setDate(DateUtil.getBeforMonthStr(new Date(),13).substring(0,7)); |
| | | BaseResponse<EnergyTotalDataResponse> beforYearMonthResponse = HKService.energyTotal(param); |
| | | if(beforYearMonthResponse != null && StringUtils.equals(beforYearMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforBeforMonthResponse.getData()!=null ){ |
| | | if(Objects.nonNull(beforYearMonthResponse.getData()) && StringUtils.isNotBlank(beforYearMonthResponse.getData().getElectricity())){ |
| | | data.setSameNum(new BigDecimal(beforYearMonthResponse.getData().getElectricity())); |
| | | }else{ |
| | | data.setSameNum(BigDecimal.ZERO); |
| | | } |
| | | if(Objects.isNull(data.getTotal()) || Objects.isNull(data.getSameNum()) |
| | | || data.getTotalNum().compareTo(BigDecimal.ZERO) ==0 || data.getSameNum().compareTo(BigDecimal.ZERO) ==0 ){ |
| | | data.setSameRate("0"); |
| | | }else{ |
| | | data.setSameRate(new BigDecimal(data.getTotal()).divide(data.getSameNum(),2,BigDecimal.ROUND_HALF_UP).toString()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 通过安防平获取今日用电量 |
| | |
| | | } |
| | | if(data == null){ |
| | | data = new RegionEnergyListResponse(); |
| | | data.setSecondRegionDataList(new ArrayList<>()); |
| | | data.setRootValue("0"); |
| | | data.setSamePercent("0"); |
| | | data.setRingPercent("0"); |
| | |
| | | if(platformList!=null && platformList.size()>0){ |
| | | List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll( PlatformJob.class) |
| | | // .selectAs(Platform::getCode,PlatformJob::getPlatformCode) |
| | | .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())") |
| | | .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 )); |
| | | //月台状态:0=作业中;1=空闲中;2=作业超时;3=叫号 |
| | | for(Platform model : platformList){ |
| | | PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO(); |
| | | platformDurationVO.setPlatformName(model.getName()); |
| | | platformDurationVO.setPlatformId(model.getId()); |
| | | platformDurationVO.setPlatformCode(model.getCode()); |
| | | platformDurationVO.setPlatformSort(model.getSortnum()); |
| | | PlatformJob job = getJobFromListById(model.getId(),jobList); |
| | | if(job != null){ |
| | |
| | | return data; |
| | | } |
| | | |
| | | /** |
| | | * 查询能耗用电信息 1=今日;2=本月;3=昨日 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<RegionDataRankingDataResponse> getRegionDataRanking(Integer type){ |
| | | RegionDataRankingDataRequest request = new RegionDataRankingDataRequest(); |
| | | request.setMeterType(1); |
| | | if(Constants.equalsInteger(type,Constants.ONE)){ |
| | | request.setDate(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd")); |
| | | request.setPeriodType("day"); |
| | | }else if(Constants.equalsInteger(type,Constants.TWO)){ |
| | | request.setDate(DateUtil.getFomartDate(new Date(),"yyyy-MM")); |
| | | request.setPeriodType("month"); |
| | | }else{ |
| | | request.setDate(DateUtil.getBeforDay(new Date(),1)); |
| | | request.setPeriodType("day"); |
| | | } |
| | | BaseResponse<List<RegionDataRankingDataResponse>> response = HKService.regionDataRanking(request); |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ |
| | | return response.getData(); |
| | | }else{ |
| | | return null; |
| | | } |
| | | } |
| | | /** |
| | | * 出库能力李永利 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public WholeProvinceZXTVO outAbilityUseRate(){ |
| | | WholeProvinceZXTVO result = new WholeProvinceZXTVO(); |
| | | result.setCurrentNum(new BigDecimal(0)); |
| | | result.setTotalNum(new BigDecimal(0)); |
| | | result.setUseRate(new BigDecimal(0)); |
| | | result.setDetailList(new ArrayList<>()); |
| | | List<TmsFactoryParam> paramList = factoryList(); |
| | | List<WholeProvinceZxtDetailVO> list = new ArrayList<>(); |
| | | TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest(); |
| | | if(paramList!=null){ |
| | | String startDate = DateUtil.formatDate(new Date(),"yyyy-MM-dd"); |
| | | String endDate = DateUtil.formatDate(new Date(),"yyyy-MM-dd"); |
| | | for(TmsFactoryParam p : paramList){ |
| | | WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO(); |
| | | t.setFactoryName(p.getName()); |
| | | t.setCurrentNum(new BigDecimal(0)); |
| | | t.setUseRate(new BigDecimal(0)); |
| | | t.setTotalNum(Constants.formatBigdecimal(p.getNum2()));//总出库能力 |
| | | if(StringUtils.isBlank(p.getCode())){ |
| | | param.setFacrotyCodeList(new ArrayList<>()); |
| | | param.setDateStart(startDate); |
| | | param.setDateEnd(endDate); |
| | | param.getFacrotyCodeList().add(p.getCode()); |
| | | List<TmsOutQtyAndVehicleQtyResponse> response = tmsService.getOutQtyAndVehicleQty(param);//查询出库量 |
| | | t.setCurrentNum(getCurrentOutQryByList(response)); |
| | | if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | } |
| | | result.getDetailList().add(t); |
| | | result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum())); |
| | | result.setTotalNum(result.getTotalNum().add(t.getTotalNum())); |
| | | } |
| | | } |
| | | if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | return result; |
| | | } |
| | | /** |
| | | * 出库能力李永利 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public TotalOutQtyNumVO totalOutQtyNum(){ |
| | | TotalOutQtyNumVO data = new TotalOutQtyNumVO(); |
| | | data.setCurrentInYearNum(new BigDecimal(0)); |
| | | data.setCurrentInWeekNum(new BigDecimal(0)); |
| | | data.setCurrentInMonthNum(new BigDecimal(0)); |
| | | data.setLastInYearNum(new BigDecimal(0)); |
| | | data.setLastInMonthNum(new BigDecimal(0)); |
| | | data.setLastInWeekNum(new BigDecimal(0)); |
| | | data.setSameInMonthNum(new BigDecimal(0)); |
| | | //---------省外---------------- |
| | | data.setCurrentOutYearNum(new BigDecimal(0)); |
| | | data.setCurrentOutWeekNum(new BigDecimal(0)); |
| | | data.setCurrentOutMonthNum(new BigDecimal(0)); |
| | | data.setLastOutYearNum(new BigDecimal(0)); |
| | | data.setLastOutMonthNum(new BigDecimal(0)); |
| | | data.setLastOutWeekNum(new BigDecimal(0)); |
| | | data.setSameOutMonthNum(new BigDecimal(0)); |
| | | |
| | | return data; |
| | | } |
| | | /** |
| | | * 出库能力李永利 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<WholeProvinceMapVO> mapYearAndMonthOutList(){ |
| | | List<WholeProvinceMapVO> result = new ArrayList<>(); |
| | | List<TmsFactoryParam> paramList =factoryList(); |
| | | if(paramList!=null && paramList.size()>0){ |
| | | List<String> codes = new ArrayList<>(); |
| | | for(TmsFactoryParam p : paramList){ |
| | | if(StringUtils.isBlank(p.getCode())){ |
| | | continue; |
| | | } |
| | | codes.add(p.getCode()); |
| | | } |
| | | if(codes.size()>0){ |
| | | TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest(); |
| | | param.setFacrotyCodeList(codes); |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private WholeProvinceMapVO getFromProvinceResultList(TmsDistributionOfDeliveryLocResponse model, List<WholeProvinceMapVO> result) { |
| | | for(WholeProvinceMapVO t : result){ |
| | | if(StringUtils.equals(t.getProvinceCode(), model.getFromProvinceCode())){ |
| | | t.setMonthNum(Constants.formatBigdecimal(t.getMonthNum()).add(Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity()))); |
| | | t.setYearNum(Constants.formatBigdecimal(t.getYearNum()).add(Constants.formatBigdecimal0Float(model.getYearOutboundQuantity()))); |
| | | return t; |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 出库能力李永利 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TmsFactoryParam> factoryList(){ |
| | | List<TmsFactoryParam> paramList = tmsFactoryParamMapper.selectList(new QueryWrapper<TmsFactoryParam>().lambda() |
| | | .eq(TmsFactoryParam::getIsdeleted,Constants.ZERO) |
| | | .orderByAsc(TmsFactoryParam::getSortnum)); |
| | | return paramList; |
| | | } |
| | | /** |
| | | * 出库能力李永利 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public WholeProvinceZXTVO tranportAbilityUseRate(){ |
| | | WholeProvinceZXTVO result = new WholeProvinceZXTVO(); |
| | | result.setCurrentNum(new BigDecimal(0)); |
| | | result.setTotalNum(new BigDecimal(0)); |
| | | result.setUseRate(new BigDecimal(0)); |
| | | result.setDetailList(new ArrayList<>()); |
| | | List<TmsFactoryParam> paramList =factoryList(); |
| | | if(paramList!=null){ |
| | | List<TmsTotalAndReportVehicleQtyResponse> response = tmsService.getTotalAndReportVehicleQty();//查询出库量 |
| | | for(TmsFactoryParam p : paramList){ |
| | | WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO(); |
| | | t.setFactoryName(p.getName()); |
| | | t.setCurrentNum(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)); |
| | | } |
| | | result.getDetailList().add(t); |
| | | result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum())); |
| | | result.setTotalNum(result.getTotalNum().add(t.getTotalNum())); |
| | | } |
| | | } |
| | | if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),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); |
| | | if(responses!=null && responses.size()>0){ |
| | | for(TmsTotalAndReportVehicleQtyResponse model: responses){ |
| | | if(StringUtils.equals(model.getFactoryCode(),code)){ |
| | | total = total.add(Constants.formatBigdecimal(model.getTotalQty())); |
| | | current = current.add(Constants.formatBigdecimal(model.getReportQty())); |
| | | } |
| | | } |
| | | } |
| | | t.setCurrentNum(current); |
| | | 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())); |
| | | } |
| | | } |
| | | return r ; |
| | | } |
| | | |
| | | /** |
| | | * 仓库资源利用率 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public WholeProvinceZXTVO inventoryUseRate(){ |
| | | WholeProvinceZXTVO result = new WholeProvinceZXTVO(); |
| | | result.setCurrentNum(new BigDecimal(0)); |
| | | result.setTotalNum(new BigDecimal(0)); |
| | | result.setUseRate(new BigDecimal(0)); |
| | | result.setDetailList(new ArrayList<>()); |
| | | List<TmsFactoryParam> paramList = factoryList(); |
| | | List<TmsInventoryListResponse> responses = tmsService.getRealTimeInventory(); |
| | | if(paramList!=null){ |
| | | for(TmsFactoryParam p : paramList){ |
| | | WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO(); |
| | | t.setFactoryName(p.getName()); |
| | | t.setCurrentNum(new BigDecimal(0)); |
| | | t.setTotalNum(Constants.formatBigdecimal(p.getNum1()));//总库存量 |
| | | t.setCurrentNum(getFromInventoryList(p.getCode(),responses)); |
| | | 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)); |
| | | } |
| | | result.getDetailList().add(t); |
| | | result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum())); |
| | | result.setTotalNum(result.getTotalNum().add(t.getTotalNum())); |
| | | } |
| | | } |
| | | if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private BigDecimal getFromInventoryList(String code, List<TmsInventoryListResponse> responses) { |
| | | BigDecimal r = new BigDecimal(0); |
| | | if(responses!=null && responses.size()>0){ |
| | | for(TmsInventoryListResponse model: responses){ |
| | | if(StringUtils.equals(model.getFactoryCode(),code)){ |
| | | r = r.add(Constants.formatBigdecimal(model.getStockQty())); |
| | | } |
| | | } |
| | | } |
| | | return r ; |
| | | |
| | | } |
| | | |
| | | |
| | | } |