| | |
| | | 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.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; |
| | | 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.core.wms.model.response.WmsBaseResponse; |
| | | import com.doumee.core.wms.model.response.WmsInventoryDataResponse; |
| | | import com.doumee.core.wms.model.response.WmsBaseDataResponse; |
| | | 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.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.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.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; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | |
| | | @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; |
| | | @Autowired |
| | | private PlatformDeviceMapper platformDeviceMapper; |
| | | |
| | | @Value("${debug_model}") |
| | | private Boolean isDebug; |
| | | /** |
| | | * 获取区域树形结构数据 |
| | | * @return |
| | |
| | | .select(PlatformJob::getTotalNum) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformJob::getOrigin,Constants.ONE) |
| | | .in(PlatformJob::getType,new Integer[]{0,2,4}) |
| | | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() |
| | | , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | | , Constants.PlatformJobStatus.LEAVED.getKey()) |
| | | .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{ |
| | | List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>() |
| | | .select(PlatformJob::getTotalNum) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .apply(" ( origin = 0 or origin is null) ") |
| | | .eq(PlatformJob::getPlatformGroupId,platformGroupId) |
| | | .apply("to_days(done_date) = to_days(now())") |
| | | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() |
| | |
| | | , 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())); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public BoardStockListVO stockList( ){ |
| | | public BoardStockListVO stockList(){ |
| | | BoardStockListVO data = new BoardStockListVO(); |
| | | double toatalNum = 1d; |
| | | BigDecimal num = new BigDecimal(0); |
| | |
| | | try { |
| | | toatalNum =Double.parseDouble(systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_TOTAL_STOCK_NUM).getCode()) ; |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | WmsBaseResponse<WmsInventoryDataResponse> response = wmsService.getInventoryList(); |
| | | WmsBaseResponse<WmsBaseDataResponse> response = wmsService.getInventoryList(); |
| | | if(response!=null && response.getData()!=null && response.getData().size()>0){ |
| | | List<WmsInventoryJsonResponse> t= response.getData().get(0).getJson(); |
| | | if(t!=null &&t.size()>0){ |
| | |
| | | num = num.add (Constants.formatBigdecimal( j.getQty())); |
| | | GeneralVO d = new GeneralVO(); |
| | | d.setNum(Constants.formatBigdecimal(j.getQty())); |
| | | d.setName(j.getItem_name()); |
| | | d.setName(j.getItemName()); |
| | | list.add(d); |
| | | } |
| | | } |
| | |
| | | toatalNum =1; |
| | | } |
| | | data.setTotalNum(new BigDecimal(toatalNum)); |
| | | data.setUseRate(data.getTotalNum().divide(data.getNum(),2,BigDecimal.ROUND_UP)); |
| | | data.setUseRate(Constants.formatBigdecimal(data.getNum()).divide(data.getTotalNum(),2,BigDecimal.ROUND_HALF_UP)); |
| | | return data; |
| | | |
| | | } |
| | |
| | | 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(); |
| | |
| | | if(type == 1){ |
| | | file.setFieldValue("131588");//安防告警 |
| | | }else if(type == 2){ |
| | | |
| | | file.setFieldValue("131593");//人员告警 |
| | | } |
| | | request.getFiledOptions().add(file); |
| | |
| | | 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()){ |
| | | 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; |
| | | } |
| | |
| | | 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; |
| | | } |
| | |
| | | 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.getPlusTime2(DateUtil.addDaysToDate(new Date(),-1))); |
| | | 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; |
| | | |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | |
| | | List<PlatformJob> dataList = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | .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") |
| | |
| | | TransportMeasureVO data = new TransportMeasureVO(); |
| | | data.setPlanDate(date); |
| | | data.setPlanTimes(0); |
| | | data.setPlanTaskNum(new BigDecimal(random.nextInt(0))); |
| | | data.setPlanTaskNum(new BigDecimal( 0)); |
| | | data.setFinishTaskNum(new BigDecimal(0)); |
| | | for(PlatformJob job :dataList){ |
| | | if(queryType == 2){ |
| | |
| | | .selectAll(PlatformJob.class) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformJob::getCarCodeFront,param.getCarCode()) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey(),Constants.PlatformJobStatus.CALLED.getKey()) |
| | | .notIn(PlatformJob::getStatus, |
| | | Constants.PlatformJobStatus.DONE.getKey(), |
| | | Constants.PlatformJobStatus.LEAVED.getKey(), |
| | | Constants.PlatformJobStatus.AUTHED_LEAVE.getKey(), |
| | | Constants.PlatformJobStatus.CANCEL.getKey() |
| | | ) |
| | | .orderByAsc(PlatformJob::getId) |
| | | .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>() |
| | |
| | | .orderByDesc(PlatformLog::getCreateDate)); |
| | | if(detailList!=null){ |
| | | for(PlatformWmsDetail d : detailList){ |
| | | if(!isNotExistIocode(d.getIocode(),data.getContractList())){ |
| | | continue; |
| | | if(isExistIocode(d.getIocode(),data.getContractList())){ |
| | | continue; |
| | | } |
| | | tt = new CarsContractVO(); |
| | | tt.setIoCode(d.getIocode()); |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | return data; |
| | | |
| | | } |
| | | |
| | | private List<PlatformWmsDetail> getDetailListByCode(String iocode, List<PlatformWmsDetail> detailList,CarsContractVO tt) { |
| | |
| | | return list; |
| | | } |
| | | |
| | | private boolean isNotExistIocode(String iocode, List<CarsContractVO> detailList) { |
| | | private boolean isExistIocode(String iocode, List<CarsContractVO> detailList) { |
| | | if(detailList!=null){ |
| | | for(CarsContractVO d :detailList){ |
| | | if(StringUtils.equals(d.getIoCode(),iocode)){ |
| | |
| | | */ |
| | | @Override |
| | | public AlarmDataVO alarmDataSumByCate(){ |
| | | AlarmDataVO alarmDataVO = getAlertDataByStartEndTime(DateUtil.getPlusTime2(DateUtil.addDaysToDate(new Date(),-1)) |
| | | AlarmDataVO alarmDataVO = getAlertDataByStartEndTime(DateUtil.getPlusTime2(Utils.Date.getStart(new Date())) |
| | | ,(DateUtil.getPlusTime2(new Date()))); |
| | | return alarmDataVO; |
| | | } |
| | |
| | | @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());//今年 |
| | | Date lastYear = DateUtil.addYearToDate(year,-1);//去年 |
| | | |
| | | List<PlatformJob> monthNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAs(PlatformJob::getId,PlatformJob::getId) |
| | | .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) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | // .in(PlatformJob::getType,Constants.ONE,Constants.THREE) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) |
| | | .apply("year(create_date) = year("+DateUtil.getPlusTime2(month)+") and month(create_date) = month("+DateUtil.getPlusTime2(month)+") and to_days(create_date)<= "+DateUtil.getPlusTime2(month))); |
| | | List<PlatformJob> monthLastNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAs(PlatformJob::getId,PlatformJob::getId) |
| | | // .select("select sum(io_qty) from platform_wms_details a where a.isdeleted=0 and a.job_id=t.id",create_date) |
| | | .select(PlatformJob::getType,PlatformJob::getType) |
| | | .select(PlatformJob::getTotalNum,PlatformJob::getTotalNum) |
| | | .select(PlatformJob::getStatus,PlatformJob::getStatus) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .in(PlatformJob::getType,Constants.ONE,Constants.THREE) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) |
| | | .apply("year(create_date) = year("+DateUtil.getPlusTime2(lastMonth)+") and month(create_date) = month("+DateUtil.getPlusTime2(lastMonth)+") and to_days(create_date)<= "+DateUtil.getPlusTime2(lastMonth))); |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(), |
| | | Constants.PlatformJobStatus.LEAVED.getKey(), |
| | | Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) |
| | | .apply("year(done_date) = year('"+DateUtil.getPlusTime2(month)+"') and month(done_date) = month('"+DateUtil.getPlusTime2(month)+"') ")); |
| | | |
| | | List<PlatformJob> yearNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAs(PlatformJob::getId,PlatformJob::getId) |
| | | .select(PlatformJob::getTotalNum,PlatformJob::getTotalNum) |
| | | .selectCount(PlatformJob::getPlatformId,PlatformJob::getCountum) |
| | | .selectAs(PlatformJob::getTotalNum,PlatformJob::getTotalNum) |
| | | .select(PlatformJob::getStatus,PlatformJob::getStatus) |
| | | .select(PlatformJob::getType,PlatformJob::getType) |
| | | // .selectCount(PlatformJob::getPlatformId,PlatformJob::getCountum) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .in(PlatformJob::getType,Constants.ONE,Constants.THREE) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) |
| | | .apply("year(done_date) = year('"+DateUtil.getPlusTime2(year)+"') and done_date<= now() ")); |
| | | List<PlatformJob> monthLastNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAs(PlatformJob::getId,PlatformJob::getId) |
| | | .selectAs(PlatformJob::getTotalNum,PlatformJob::getTotalNum) |
| | | .select(PlatformJob::getType,PlatformJob::getType) |
| | | .select(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) |
| | | .in(PlatformJob::getType,Constants.ONE,Constants.THREE) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) |
| | | .apply("year(create_date) = year("+DateUtil.getPlusTime2(year)+") and to_days(create_date)<= "+DateUtil.getPlusTime2(year))); |
| | | .apply("year(done_date) = year('"+DateUtil.getPlusTime2(lastMonth)+"') and month(done_date) = month('"+DateUtil.getPlusTime2(lastMonth)+"') and done_date<= '" |
| | | +DateUtil.getPlusTime2(lastMonth)+"'")); |
| | | |
| | | List<PlatformJob> yearLastNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAs(PlatformJob::getId,PlatformJob::getId) |
| | | .selectAs(PlatformJob::getType,PlatformJob::getId) |
| | | .select(PlatformJob::getStatus,PlatformJob::getStatus) |
| | | .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) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .in(PlatformJob::getType,Constants.ONE,Constants.THREE) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) |
| | | .apply("year(create_date) = year("+DateUtil.getPlusTime2(lastYear)+") and to_days(create_date)<= "+DateUtil.getPlusTime2(lastYear))); |
| | | .apply("year(done_date) = year('"+DateUtil.getPlusTime2(lastYear)+"') and done_date<= now() ")); |
| | | |
| | | data.setMonthOutTotal(getSumTotalByList(monthNum,0,null));//本月出库量 |
| | | data.setMonthLastOutTotal(getSumTotalByList(monthLastNum,null,null) );//上有出库量 |
| | | data.setMonthLastOutTotal(getSumTotalByList(monthLastNum,null,null) );//上月出库量 |
| | | data.setYearOutTotal(getSumTotalByList(yearNum,null,null) );//本年出库量 |
| | | data.setYearLastOutTotal(getSumTotalByList(yearLastNum,null,null) );//去年出库量 |
| | | data.setMonthOutTimes(monthNum!=null?monthNum.size():0); |
| | |
| | | .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(" and to_days(create_date) <to_days(now())")); |
| | | .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(), |
| | | Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | | ,Constants.PlatformJobStatus.CANCEL.getKey()) |
| | | .apply(" to_days(create_date) < to_days(now()) ") |
| | | ); |
| | | |
| | | //==========今天出入库任务 |
| | | List<PlatformJob> currentNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | //==========今天出入库完成量 |
| | | List<PlatformJob> currentDoneNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAs(PlatformJob::getId,PlatformJob::getId) |
| | | .selectAs(PlatformJob::getStatus,PlatformJob::getStatus) |
| | | .selectAs(PlatformJob::getType,PlatformJob::getType) |
| | | .selectAs(PlatformJob::getStatus,PlatformJob::getStatus) |
| | | .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) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()) |
| | | .apply("year(create_date) = year("+DateUtil.getPlusTime2(lastYear)+") and to_days(create_date)<= "+DateUtil.getPlusTime2(lastYear))); |
| | | .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey()) |
| | | .apply(" to_days(done_date) = to_days(now())")); |
| | | |
| | | //==========今天下发出入库任务 未完成的---- |
| | | List<PlatformJob> currentNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAs(PlatformJob::getId,PlatformJob::getId) |
| | | .selectAs(PlatformJob::getType,PlatformJob::getType) |
| | | .selectAs(PlatformJob::getStatus,PlatformJob::getStatus) |
| | | .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) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey()) |
| | | .apply(" to_days(create_date) = to_days(now()) and done_date is null ")); |
| | | |
| | | BigDecimal beforeOutNum = (getSumTotalByList(beforeJobNum,0,null));//今天之前未完成出库任务 |
| | | BigDecimal currentOutNum = (getSumTotalByList(currentNum,0,null));//今天下发出库任务 |
| | | BigDecimal beforeInNum = (getSumTotalByList(beforeJobNum,1,null));//今天之前未完成入库任务 |
| | | BigDecimal currentInNum = (getSumTotalByList(currentNum,1,null));//今天下发入库任务 |
| | | data.setCurrentInNum(beforeInNum.add(currentInNum));//当前入库总任务成量 |
| | | data.setCurrentOutNum(beforeOutNum.add(currentOutNum));//当前出库总任务成量 |
| | | data.setCurrentInDoneNum(getSumTotalByList(currentNum,0,1));//今日完成量 |
| | | data.setCurrentOutDoneNum(getSumTotalByList(currentNum,1,1));//今日完成量 |
| | | data.setCurrentInDoneNum(getSumTotalByList(currentDoneNum,1,1));//今日完成量 |
| | | data.setCurrentOutDoneNum(getSumTotalByList(currentDoneNum,0,1));//今日完成量 |
| | | data.setCurrentInNum(beforeInNum.add(data.getCurrentInDoneNum()).add(currentInNum));//当前入库总任务成量 |
| | | data.setCurrentOutNum(beforeOutNum.add(data.getCurrentOutDoneNum()).add(currentOutNum));//当前出库总任务成量 |
| | | |
| | | //------------今日出入库效率---------------- |
| | | 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));//当前入库总任务成量 |
| | | } |
| | |
| | | data.setTodayInRate(data.getCurrentInDoneNum().divide(inHours,2));//当前入库总任务成量 |
| | | } |
| | | //------------本月出入库效率---------------- |
| | | BigDecimal outMonthNum = getSumTotalByList(monthNum,0,null).add(data.getCurrentOutDoneNum()); |
| | | // BigDecimal outMonthNum = getSumTotalByList(monthNum,0,null).add(data.getCurrentOutDoneNum()); |
| | | BigDecimal inMonthNum = getSumTotalByList(monthNum,1,null).add(data.getCurrentInDoneNum()); |
| | | BigDecimal outYearHours = getTotalDoneTimes(yearNum,0).add(outHours);// |
| | | BigDecimal inYearHours = getTotalDoneTimes(yearNum,1).add(inHours);// |
| | | if(outYearHours.compareTo(new BigDecimal(0))>0){ |
| | | data.setMonthOutRate(outMonthNum.divide(outYearHours,2));//本月入库效率 |
| | | BigDecimal outMonthHours = getTotalDoneTimes(monthNum,0).add(outHours);// |
| | | BigDecimal inMonthHours = getTotalDoneTimes(monthNum,1).add(inHours);// |
| | | if(outMonthHours.compareTo(new BigDecimal(0))>0){ |
| | | data.setMonthOutRate(data.getMonthOutTotal().divide(outMonthHours,0,BigDecimal.ROUND_HALF_UP));//本月入库效率 |
| | | } |
| | | if(inYearHours.compareTo(new BigDecimal(0))>0){ |
| | | data.setMonthInRate(inMonthNum.divide(inYearHours,2));//本月入库效率 |
| | | if(inMonthHours.compareTo(new BigDecimal(0))>0){ |
| | | data.setMonthInRate(inMonthNum.divide(inMonthHours,0,BigDecimal.ROUND_HALF_UP));//本月入库效率 |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | |
| | | private BigDecimal getDoneHoursByData(String start ,String end) { |
| | | List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda() |
| | |
| | | .isNotNull(PlatformLog::getParam3) |
| | | .ne(PlatformLog::getParam3,Constants.ZERO+"")); |
| | | if(platformLogList!=null && platformLogList.size()>0){ |
| | | return new BigDecimal((double)(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum))/(double)60); |
| | | return new BigDecimal((double)(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum))/(double)3600); |
| | | } |
| | | } |
| | | return r; |
| | | } |
| | | |
| | | private BigDecimal getSumTotalByList(List<PlatformJob> list,Integer type,Integer status) { |
| | | private BigDecimal getSumTotalByList(List<PlatformJob> list,Integer type,Integer status) { |
| | | BigDecimal r = new BigDecimal(0); |
| | | if(list==null || list.size() == 0){ |
| | | return r; |
| | |
| | | // if(Constants.formatBigdecimal(job.getIoQty()).compareTo(new BigDecimal(0)) >0){ |
| | | // r.add( job.getIoQty()); |
| | | // }else{ |
| | | r.add(Constants.formatBigdecimal(job.getTotalNum())); |
| | | r = r.add(Constants.formatBigdecimal(job.getTotalNum())); |
| | | // } |
| | | } |
| | | return Constants.formatBigdecimal0Float(r); |
| | | } |
| | | |
| | | @Override |
| | | public List<CarsAlarmResultListResponse> carsEventList(){ |
| | | |
| | | if(HKCarOpenService.HK_CARS_LIST == null){ |
| | | HKCarOpenService.HK_CARS_LIST = HKCarOpenService.getAllCarsDetais(); |
| | | } |
| | | return HKCarOpenService.getAlarmEvemtList( HKCarOpenService.HK_CARS_LIST,new Date()); |
| | | } |
| | | @Override |
| | | public BoardCarsListVO platformJobCarsList(){ |
| | | BoardCarsListVO data = new BoardCarsListVO(); |
| | |
| | | //如果是在线或者休眠,查询在途还是空闲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() |
| | |
| | | .groupBy(PlatformJob::getCarCodeFront)); |
| | | data.setBusyNum( busyNum!=null ?busyNum.size():0);//在途有任务数量 |
| | | data.setIdleNum(codes.size() -data.getBusyNum());//无任务空闲数量 |
| | | data.setEventList(HKCarOpenService.getAlarmEvemtList(detaisResponses,new Date())); |
| | | HKCarOpenService.HK_CARS_LIST = detaisResponses; |
| | | // data.setEventList(HKCarOpenService.getAlarmEvemtList(detaisResponses,new Date())); |
| | | if(busyNum != null){ |
| | | FLAG: for(CarsDeviceDetaisResponse model:detaisResponses){ |
| | | for(PlatformJob job : busyNum){ |
| | |
| | | @Override |
| | | public YearDeviceDataVO yearFightingAdminDeviceData(){ |
| | | YearDeviceDataVO data = new YearDeviceDataVO(); |
| | | |
| | | FireStatisticRequest param = new FireStatisticRequest(); |
| | | param.setIndexCode("api_fire_statistic"); |
| | | BaseResponse<FireStatisticResponse> response = HKService.fireStatistic(param); |
| | |
| | | data.setProtectNum(Constants.formatIntegerNum(response.getData().getMaintenanceNum())); |
| | | data.setPlanProtectTotal(Constants.formatIntegerNum(response.getData().getDeviceTotalNum())); |
| | | } |
| | | |
| | | param = new FireStatisticRequest(); |
| | | param.setIndexCode("api_fire_statistic_month"); |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | public FightingAdminCenterDataVO centerFightingAdminData(){ |
| | | FightingAdminCenterDataVO data = new FightingAdminCenterDataVO(); |
| | | List<DeviceNumByTypeVO> list = new ArrayList<>(); |
| | | FireDevStatusTotalRequest param = new FireDevStatusTotalRequest(); |
| | | FindDeviceStatisticsRequest param1 = new FindDeviceStatisticsRequest(); |
| | | param1.setRegionIndexCode("root000000"); |
| | | BaseResponse<List<FindDeviceStatisticsResponse>> response = HKService.findDeviceStatistics(param1); |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ |
| | | for(FindDeviceStatisticsResponse r :response.getData()){ |
| | | if(r.getDevices()!=null){ |
| | | for(FindDeviceStatisticsInfoResponse td : r.getDevices()){ |
| | | DeviceNumByTypeVO t = new DeviceNumByTypeVO(); |
| | | t.setTypeName(td.getDeviceName()); |
| | | //屏蔽数 |
| | | t.setShieldDeviceNum(Constants.formatIntegerNum(t.getShieldDeviceNum() )+ Constants.formatIntegerNum(td.getShieldSensorCount())); |
| | | //报警数 |
| | | t.setAlarmDeviceNum(Constants.formatIntegerNum(t.getAlarmDeviceNum())+ Constants.formatIntegerNum(td.getAlarmSensorCount())); |
| | | //正常数 |
| | | t.setOnlineDeviceNum(Constants.formatIntegerNum(t.getOnlineDeviceNum())+Constants.formatIntegerNum(td.getNormalSensorCount())); |
| | | //故障数 |
| | | t.setErrDeviceNum(Constants.formatIntegerNum(t.getErrDeviceNum())+ Constants.formatIntegerNum(td.getFaultSensorCount())); |
| | | //总设备数 |
| | | t.setTotalDeviceNum(Constants.formatIntegerNum(t.getTotalDeviceNum())+ Constants.formatIntegerNum(td.getTotalSensorCount())); |
| | | list.add(t); |
| | | // data.setOfflineDeviceNum(Constants.formatIntegerNum( data.getOfflineDeviceNum())+Constants.formatIntegerNum(t.getOfflineDeviceNum())); |
| | | data.setShieldDeviceNum(Constants.formatIntegerNum( data.getShieldDeviceNum())+Constants.formatIntegerNum(t.getShieldDeviceNum())); |
| | | data.setAlarmDeviceNum(Constants.formatIntegerNum( data.getAlarmDeviceNum())+Constants.formatIntegerNum(t.getAlarmDeviceNum())); |
| | | data.setOnlineDeviceNum(Constants.formatIntegerNum( data.getOnlineDeviceNum())+Constants.formatIntegerNum(t.getOnlineDeviceNum())); |
| | | data.setErrDeviceNum(Constants.formatIntegerNum( data.getErrDeviceNum())+Constants.formatIntegerNum(t.getErrDeviceNum())); |
| | | data.setTotalDeviceNum(Constants.formatIntegerNum( data.getTotalDeviceNum())+Constants.formatIntegerNum(t.getTotalDeviceNum())); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /* FireDevStatusTotalRequest param = new FireDevStatusTotalRequest(); |
| | | param.setIncludeBool(1); |
| | | param.setRegionIds(new String[]{"root000000"}); |
| | | BaseResponse<List<FireDevStatusListResponse>> response = HKService.getFireDevStatusList(param); |
| | |
| | | data.setErrDeviceNum(Constants.formatIntegerNum( data.getErrDeviceNum())+Constants.formatIntegerNum(r.getFaultFireDevCount())); |
| | | data.setTotalDeviceNum(Constants.formatIntegerNum( data.getTotalDeviceNum())+Constants.formatIntegerNum(r.getTotalFireDevCount())); |
| | | } |
| | | } |
| | | }*/ |
| | | data.setDeviceTypeList(list); |
| | | Long totalNum =hiddenDangerMapper.selectCount(new QueryWrapper<HiddenDanger>().lambda() |
| | | .eq(HiddenDanger::getIsdeleted,Constants.ZERO ) |
| | |
| | | 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); |
| | |
| | | */ |
| | | @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() |
| | |
| | | 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);//上月 |
| | |
| | | } |
| | | 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 +""); |
| | | 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 +""*/); |
| | | } |
| | | 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){ |
| | | // //计算用水同比环比 |
| | |
| | | * @param data |
| | | */ |
| | | 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")); |
| | | // 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")); |
| | | // } |
| | | // 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()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 通过安防平获取今日用电量 |
| | | * @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() { |
| | |
| | | } |
| | | if(data == null){ |
| | | data = new RegionEnergyListResponse(); |
| | | data.setSecondRegionDataList(new ArrayList<>()); |
| | | data.setRootValue("0"); |
| | | data.setSamePercent("0"); |
| | | data.setRingPercent("0"); |
| | |
| | | .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)); |
| | |
| | | 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,(i+1)+"月")); |
| | | 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"))); |
| | | } |
| | | } |
| | | |
| | |
| | | .eq(Visits::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date)=to_days(now())") |
| | | .in(Visits::getStatus,Constants.VisitStatus.pass,Constants.VisitStatus.xfSuccess )));//待访问 |
| | | result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>() |
| | | result.setRegisterVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>() |
| | | .eq(Visits::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date)=to_days(now())") |
| | | .in(Visits::getStatus,Constants.VisitStatus.signout,Constants.VisitStatus.signin )));//已登记 |
| | | result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>() |
| | | result.setLevelNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>() |
| | | .eq(Visits::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date)=to_days(now())") |
| | | .in(Visits::getStatus,Constants.VisitStatus.signout )));//已签离 |
| | |
| | | result.getVisitRetentionDataList().add(t); |
| | | }); |
| | | } |
| | | result.setRetentionNum(result.getVisitRetentionDataList().size()); |
| | | return result; |
| | | |
| | | } |
| | |
| | | .selectAll(Retention.class) |
| | | .selectAs(Company::getType,Retention::getCompanyType) |
| | | .leftJoin(Company.class,Company::getId,Retention::getCompanyId) |
| | | .eq(Retention::getIsdeleted,Constants.ZERO) |
| | | ); |
| | | |
| | | //今日在园人数 |
| | |
| | | (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() |
| | | ); |
| | | //在园相关方车辆 |
| | |
| | | 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())") |
| | | // .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() }) |
| | | .orderByDesc(PlatformJob::getStatus )); |
| | | // .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .orderByDesc(PlatformJob::getStatus ) |
| | | .orderByAsc(PlatformJob::getId ) |
| | | ); |
| | | List<PlatformDevice> platformDevices = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda().eq(PlatformDevice::getType,Constants.ONE) |
| | | .eq(PlatformDevice::getIsdeleted,Constants.ZERO).isNotNull(PlatformDevice::getDeviceId)); |
| | | |
| | | String videoUrl = getVideoUrl(); |
| | | //月台状态: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()); |
| | | if(CollectionUtils.isNotEmpty(platformDevices)){ |
| | | List<PlatformDevice> deviceList = platformDevices.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),model.getId())).collect(Collectors.toList()); |
| | | if (CollectionUtils.isNotEmpty(deviceList)) { |
| | | platformDurationVO.setDeviceId(deviceList.get(Constants.ZERO).getDeviceId()); |
| | | platformDurationVO.setVideoPluginUrl(videoUrl); |
| | | } |
| | | } |
| | | PlatformJob job = getJobFromListById(model.getId(),jobList); |
| | | if(job != null){ |
| | | if(Constants.equalsInteger(job.getType(),Constants.ONE) || Constants.equalsInteger(job.getType(),Constants.THREE)){ |
| | |
| | | }else{ |
| | | platformDurationVO.setWorkType(Constants.ZERO);//如果是卸货 |
| | | } |
| | | Integer workMinute = Constants.formatBigdecimal(job.getWorkNum()).multiply(new BigDecimal(60)).divide(model.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue(); |
| | | Date overDate = DateUtil.getXMinuteAfterDate(job.getNewStartDate(),workMinute + model.getWorkTimeoutAlarmTime());//预计完成时间 |
| | | platformDurationVO.setFinishTimeStr(DateUtil.DateToStr(overDate,"HH:mm")); |
| | | Integer workMinute = 0; |
| | | Date overDate =null; |
| | | if(model.getWorkRate()!=null && model.getWorkRate().compareTo(new BigDecimal(0)) !=0){ |
| | | workMinute = Constants.formatBigdecimal(job.getWorkNum()).multiply(new BigDecimal(60)).divide(model.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue(); |
| | | overDate = DateUtil.getXMinuteAfterDate(job.getNewStartDate(),workMinute + model.getWorkTimeoutAlarmTime());//预计完成时间 |
| | | platformDurationVO.setFinishTimeStr(DateUtil.DateToStr(overDate,"HH:mm")); |
| | | } |
| | | |
| | | platformDurationVO.setWorkNum(Constants.formatBigdecimal(job.getWorkNum()).intValue()); |
| | | platformDurationVO.setCarNo(job.getCarCodeFront());//车牌号 |
| | |
| | | }else{ |
| | | platformDurationVO.setStatus(Constants.ZERO); //作业中 |
| | | platformDurationVO.setWorkTime(PlatformJobServiceImpl.getWorkTime(job,platformLogMapper));//已工作时间 |
| | | if(overDate.getTime() < System.currentTimeMillis() ){ |
| | | if(overDate!=null && overDate.getTime() < System.currentTimeMillis() ){ |
| | | model.setStatus(Constants.TWO); //作业已超时 |
| | | } |
| | | } |
| | |
| | | List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll( PlatformJob.class) |
| | | // .select("(select sum(ifnull(a.io_qty,0)) from platform_wms_detail a where a.isdeleted=0 and a.job_id =t.id )", create_date) |
| | | .apply("to_days(t.create_date) = to_days(now())") |
| | | .apply("to_days(t.done_date) = to_days(now())") |
| | | .eq(Platform::getIsdeleted, Constants.ZERO) |
| | | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() |
| | | , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | |
| | | } |
| | | int curtotalNum = 0; |
| | | Date today = Utils.Date.getStart(new Date()); |
| | | long curTime=0, lastTime=0; |
| | | long curTime=0, lastTime=0 ; |
| | | for (int i = 0; i < 8; i++) { |
| | | lastTime = curTime;//上次的时间 |
| | | int curHour = 8+(i*2); |
| | |
| | | curtotalNum += Constants.formatIntegerNum(workEfficiencyVO.getWorkNum()) ; |
| | | } |
| | | workEfficiencyVO.setTotalWorkNum(curtotalNum);//累计值 |
| | | if((System.currentTimeMillis() + 2*60*60*1000) < curTime ){ |
| | | workEfficiencyVO.setTotalWorkNum(0); |
| | | } |
| | | workEfficiencyVOList.add(workEfficiencyVO); |
| | | } |
| | | return workEfficiencyVOList; |
| | |
| | | data.setFreePlatform( |
| | | list.stream().filter(i->Constants.formatIntegerNum(i.getWorkStatus())<=Constants.ZERO).collect(Collectors.toList()).size() |
| | | ); |
| | | //查询今日月台个状态作业数量 |
| | | /* //查询今日月台个状态作业数量 |
| | | List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll(PlatformJob.class) |
| | | .select("count(id)" ,PlatformJob::getCountum) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date) = to_days(now())" ) |
| | | .groupBy(PlatformJob::getStatus ) |
| | | .groupBy(PlatformJob::getStatus) |
| | | ); |
| | | if(jobList!=null){ |
| | | |
| | | if(jobList!=null){ |
| | | //-------------TODO----------【看板】爱确认需求-------------- |
| | | // * 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号 12已取消 |
| | | for(PlatformJob model : jobList){ |
| | |
| | | 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())){ |
| | |
| | | } |
| | | // 已离园 |
| | | 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())){ |
| | |
| | | } |
| | | |
| | | } |
| | | }*/ |
| | | //预约数 |
| | | data.setReservationCar(platformJobMapper.selectCount(new MPJLambdaWrapper<PlatformJob>() |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date) = to_days(now())" )).intValue()); |
| | | //作业中 |
| | | data.setWorkingCar(platformJobMapper.selectCount(new MPJLambdaWrapper<PlatformJob>() |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey()) |
| | | ).intValue()); |
| | | //排队车 |
| | | data.setLineUpCar(platformJobMapper.selectCount(new MPJLambdaWrapper<PlatformJob>() |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey(), |
| | | Constants.PlatformJobStatus.WAIT_CALL.getKey(), |
| | | Constants.PlatformJobStatus.IN_WAIT.getKey())).intValue()); |
| | | //已叫号 |
| | | data.setCalledNum(platformJobMapper.selectCount(new MPJLambdaWrapper<PlatformJob>() |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(call_date) = to_days(now())" )).intValue()); |
| | | //签到数 |
| | | data.setSignedNum(platformJobMapper.selectCount(new MPJLambdaWrapper<PlatformJob>() |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(sign_date) = to_days(now())" )).intValue()); |
| | | //今日完成数 |
| | | data.setDoneNum(platformJobMapper.selectCount(new MPJLambdaWrapper<PlatformJob>() |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.LEAVED.getKey(), |
| | | Constants.PlatformJobStatus.AUTHED_LEAVE.getKey(), |
| | | Constants.PlatformJobStatus.DONE.getKey()) |
| | | .apply("to_days(done_date) = to_days(now())" )).intValue()); |
| | | |
| | | data.setVideoPluginUrl(getVideoUrl()); |
| | | String indexCodes = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_CHANGNEI_SCREEN_INDEXCODES).getCode(); |
| | | if(StringUtils.isNotBlank(indexCodes)){ |
| | | data.setVideoIndexCodes(indexCodes.split(",")); |
| | | //已作业数 |
| | | data.setWorkedNum(platformJobMapper.selectCount(new MPJLambdaWrapper<PlatformJob>() |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .and(w-> w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey()) |
| | | .or().in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey() |
| | | ,Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | | ,Constants.PlatformJobStatus.LEAVED.getKey()).apply("to_days(done_date) = to_days(now())") |
| | | .or().eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey()).apply("to_days(done_date) = to_days(now())") |
| | | .or().eq(PlatformJob::getStatus,Constants.PlatformJobStatus.TRANSFERING.getKey()).apply("to_days(trans_platform_date) = to_days(now())") |
| | | ) |
| | | // .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey());}) |
| | | // .and(w->{w.in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey() |
| | | // ,Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | | // ,Constants.PlatformJobStatus.LEAVED.getKey()) |
| | | // .apply("to_days(done_date) = to_days(now())");}) |
| | | // .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey()) |
| | | // .apply("to_days(error_date) = to_days(now())");}) |
| | | // .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.TRANSFERING.getKey()) |
| | | // .apply("to_days(trans_platform_date) = to_days(now())");}) |
| | | ).intValue()); |
| | | |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * 查询能耗用电信息 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 ){ |
| | | 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; |
| | | } |
| | | } |
| | | /** |
| | | * 出库能力 |
| | | * @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"); |
| | | if(isDebug){ |
| | | startDate = "2024-12-01"; |
| | | endDate = "2024-12-05"; |
| | | } |
| | | 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.getParam3()));//8小时出库能力 |
| | | if(StringUtils.isNotBlank(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)); |
| | | } |
| | | 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(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){ |
| | | result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | return result; |
| | | } |
| | | /** |
| | | * 全身出库能力 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public WholeProvinceBoardVO centerProvinceData(String factoryCode){ |
| | | 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.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(); |
| | | String code = null; |
| | | if(paramList!=null){ |
| | | //处理最大出库能力和8小时出库能力 |
| | | for(TmsFactoryParam param : paramList){ |
| | | if(StringUtils.isNotBlank(factoryCode)){ |
| | | if(StringUtils.equals(param.getCode(),factoryCode)){ |
| | | data.setHoursAbility(Constants.formatBigdecimal(param.getParam3())); |
| | | data.setMaxAbility(Constants.formatBigdecimal(param.getNum2())); |
| | | code = param.getCode(); |
| | | break; |
| | | } |
| | | }else{ |
| | | data.setHoursAbility(data.getHoursAbility().add(Constants.formatBigdecimal(param.getParam3()))); |
| | | data.setMaxAbility(data.getMaxAbility().add(Constants.formatBigdecimal(param.getNum2()))); |
| | | } |
| | | } |
| | | } |
| | | /* Date date = new Date(); |
| | | TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest(); |
| | | param.setDateEnd(DateUtil.getShortTime(date)); |
| | | param.setDateStart(DateUtil.getShortTime(date)); |
| | | if(StringUtils.isNotBlank(code)){ |
| | | param.setFacrotyCodeList(new ArrayList<>()); |
| | | param.getFacrotyCodeList().add(code);//查询指定厂区 |
| | | } |
| | | 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){ |
| | | String todayDate = DateUtil.getShortTime(new Date()); |
| | | List<String> planCodes = new ArrayList<>(); |
| | | List<String> todayCodes = new ArrayList<>(); |
| | | if(result.getCurrentDayOrderList()!=null && result.getCurrentDayOrderList().size()>0){ |
| | | for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayOrderList()){ |
| | | dealOutOrderBiz(data,model,planCodes,todayCodes,todayDate); |
| | | } |
| | | } |
| | | if(result.getCurrentDayAgoOrderList()!=null && result.getCurrentDayAgoOrderList().size()>0){ |
| | | for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayAgoOrderList()){ |
| | | dealOutOrderBiz(data,model,planCodes,todayCodes,todayDate); |
| | | } |
| | | } |
| | | 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()); |
| | | data.setCrrentRestCarNum(data.getCurrentPlanCarNum()); |
| | | if(data.getCrrentRestNum().compareTo(new BigDecimal(0)) <=0){ |
| | | data.setCrrentRestNum(new BigDecimal(0)); |
| | | } |
| | | 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.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()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return data; |
| | | } |
| | | |
| | | private boolean notInList(String transportCode, List<String> planCodes) { |
| | | for(String s :planCodes){ |
| | | if(StringUtils.equals(transportCode,s)){ |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 出库能力李永利 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public TotalOutQtyNumVO totalOutQtyNum(int type,String code){ |
| | | 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)); |
| | | data.setSameOutNum(new BigDecimal(0)); |
| | | |
| | | Date sameStart = DateUtil.getBeginDayOfMonth(-1); |
| | | Date sameEnd = DateUtil.getEndDayOfMonth(-1); |
| | | Date curStart = DateUtil.getBeginDayOfMonth(0); |
| | | Date curEnd = DateUtil.getEndDayOfMonth(0); |
| | | Date lastStart = DateUtil.getBeginDayOfLastMonth(); |
| | | Date lastEnd = DateUtil.getEndDayOfLastMonth(); |
| | | if(type ==1){ |
| | | //本周 |
| | | sameStart= DateUtil.getBeginDayOfWeek(-1); |
| | | sameEnd= DateUtil.getEndDayOfWeek(-1); |
| | | curStart= DateUtil.getBeginDayOfWeek(0); |
| | | curEnd= DateUtil.getEndDayOfWeek(0); |
| | | lastStart = DateUtil.getBeginDayOfLastWeek(); |
| | | lastEnd= DateUtil.getEndDayOfLastWeek(); |
| | | }else if(type == 2){ |
| | | curStart= DateUtil.getBeginDayOfYear(0); |
| | | curEnd= DateUtil.getEndDayOfYear(0); |
| | | lastStart= DateUtil.getBeginDayOfYear(-1); |
| | | lastEnd= DateUtil.getEndDayOfYear(-1); |
| | | sameStart = null; |
| | | sameEnd =null; |
| | | } |
| | | TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest(); |
| | | if(StringUtils.isNotBlank(code)){ |
| | | param.setFacrotyCodeList(new ArrayList<>()); |
| | | param.getFacrotyCodeList().add(code); |
| | | } |
| | | if(type !=2){ |
| | | //本年的不需要查去年同周期 |
| | | param.setDateEnd(DateUtil.getShortTime(sameEnd)); |
| | | param.setDateStart(DateUtil.getShortTime(sameStart)); |
| | | 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()))); |
| | | } |
| | | } |
| | | } |
| | | param.setDateEnd(DateUtil.getShortTime(curEnd)); |
| | | param.setDateStart(DateUtil.getShortTime(curStart)); |
| | | 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(Constants.formatBigdecimal(model.getOutSideProvinceOutT01Qty())) |
| | | .add(Constants.formatBigdecimal(model.getInSideProvinceOutT01Qty())));//省内省外销售量 |
| | | data.setCurrentOtherNum(data.getCurrentOtherNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutT03Qty())) |
| | | .add(Constants.formatBigdecimal(model.getInSideProvinceOutT03Qty())));//省内省外其他出库量 |
| | | } |
| | | } |
| | | param.setDateEnd(DateUtil.getShortTime(lastEnd)); |
| | | param.setDateStart(DateUtil.getShortTime(lastStart)); |
| | | 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()))); |
| | | } |
| | | } |
| | | if(type == 2){//本年的 |
| | | 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.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)); |
| | | data.setSameOutNum(Constants.formatBigdecimal(data.getSameOutNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | return data; |
| | | } |
| | | /** |
| | | * 出库能力李永利 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<WholeProvinceMapVO> mapYearAndMonthOutList(String code){ |
| | | List<WholeProvinceMapVO> result = new ArrayList<>(); |
| | | TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest(); |
| | | if(StringUtils.isNotBlank(code)){ |
| | | param.setFacrotyCodeList(new ArrayList<>()); |
| | | param.getFacrotyCodeList().add(code); |
| | | } |
| | | List<TmsDistributionOfDeliveryLocResponse> response = tmsService.getDistributionOfDeliveryLocations(param);//查询出库量 |
| | | if(response!=null &&response.size()>0){ |
| | | for(TmsDistributionOfDeliveryLocResponse model : response){ |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private WholeProvinceMapVO getFromProvinceResultList(TmsDistributionOfDeliveryLocResponse model, List<WholeProvinceMapVO> result) { |
| | | for(WholeProvinceMapVO t : result){ |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | 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 TmsBaseResponse |
| | | */ |
| | | @Override |
| | | 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; |
| | | } |
| | | /** |
| | | * 近七日到货情况-改成近15日 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<LastSevenDaysOrderVo> arriveGoodsList(String code){ |
| | | List<LastSevenDaysOrderVo> list = new ArrayList<>(); |
| | | TmsSevenArrivalDetailsRequest param = new TmsSevenArrivalDetailsRequest(); |
| | | if(StringUtils.isNotBlank(code)){ |
| | | param.setFacrotyCodeList(new ArrayList<>()); |
| | | param.getFacrotyCodeList().add(code);//查询指定厂区 |
| | | } |
| | | Date date = new Date(); |
| | | Date startDate = DateUtil.addDaysToDate(date,-15); |
| | | //看板大屏近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,15); |
| | | } |
| | | param.setNcCreateDateFrom(DateUtil.getShortTime(startDate)); |
| | | param.setNcCreateDateThrough(DateUtil.getShortTime(date)); |
| | | List<TmsSevenArrivalStatusAndDetailsResponse> infoList = tmsService.getSevenArrivalStatusAndDetails(param);//查询出库量 |
| | | for (int i = 0; i < 15; i++) { |
| | | LastSevenDaysOrderVo model = new LastSevenDaysOrderVo(); |
| | | Date td = DateUtil.addDaysToDate(date,-i); |
| | | model.setDateStr(DateUtil.getShortTime(td)); |
| | | dealGoodsListFromResponse(model,infoList); |
| | | list.add(model); |
| | | } |
| | | return list; |
| | | } |
| | | private void dealGoodsListFromResponse( LastSevenDaysOrderVo model, List<TmsSevenArrivalStatusAndDetailsResponse> list) { |
| | | model.setIngList(new ArrayList<>()); |
| | | model.setWaitList(new ArrayList<>()); |
| | | model.setDoneList(new ArrayList<>()); |
| | | if(list ==null || list.size()==0){ |
| | | return; |
| | | } |
| | | for(TmsSevenArrivalStatusAndDetailsResponse temp : list){ |
| | | if(StringUtils.equals(temp.getNcCreateDate(),model.getDateStr())){ |
| | | if(Constants.equalsInteger(temp.getStatus(),Constants.ZERO)){ |
| | | model.getWaitList().add(temp); |
| | | }else if(Constants.equalsInteger(temp.getStatus(),Constants.ONE)){ |
| | | model.getIngList().add(temp); |
| | | }else if(Constants.equalsInteger(temp.getStatus(),Constants.TWO)){ |
| | | model.getDoneList().add(temp); |
| | | } |
| | | } |
| | | } |
| | | model.setDoneNum(model.getDoneList().size()); |
| | | model.setIngNum(model.getIngList().size()); |
| | | model.setWaitNum(model.getWaitList().size()); |
| | | } |
| | | |
| | | /** |
| | | * 出库能力李永利 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public WholeProvinceZXTVO tranportAbilityUseRate(){ |
| | | 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(); |
| | | 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.setZaituNum(new BigDecimal(0)); |
| | | t.setTotalNum(Constants.formatBigdecimal(p.getNum1()));//总库存量 |
| | | getFromReportVehicleQtyList(p.getCode(),t,response);//处理提报运力和总运力数据 |
| | | t.setUseRate(new BigDecimal(0)); |
| | | 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) { |
| | | //处理单位成“箱”,一箱=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().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){ |
| | | // model.setTotalOutQty(Constants.formatBigdecimal(model.getTotalOutT03Qty()).add(Constants.formatBigdecimal(model.getTotalOutT01Qty()))); |
| | | 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)); |
| | | } |
| | | 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(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 ; |
| | | |
| | | } |
| | | |
| | | |
| | | } |