|  |  |  | 
|---|
|  |  |  | package com.doumee.service.business.impl.thrid; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.doumee.biz.system.SystemDictDataBiz; | 
|---|
|  |  |  | import com.doumee.core.constants.ResponseStatus; | 
|---|
|  |  |  | import com.doumee.core.exception.BusinessException; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.HKConstants; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.cars.response.CarsAlarmResultListResponse; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.BaseListPageRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.BaseListPageResponse; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.BaseResponse; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.BaseListPageRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.RuleEventFiledOptionsRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.RuleEventSearchRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.SecureDevStatusTotalRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.SensorStatusListRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.*; | 
|---|
|  |  |  | 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.ApiResponse; | 
|---|
|  |  |  | 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.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.web.reqeust.SavePlatformWarnEventDTO; | 
|---|
|  |  |  | 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.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 PlatformLogMapper platformLogMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformWarnEventMapper platformWarnEventMapper; | 
|---|
|  |  |  | private WmsService wmsService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private HiddenDangerMapper hiddenDangerMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformWaterGasMapper platformWaterGasMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictDataBiz systemDictDataBiz; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TmsFactoryParamMapper tmsFactoryParamMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformWarnEventJoinMapper platformWarnEventJoinMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformJobMapper platformJobMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformBooksMapper platformBooksMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformWmsDetailMapper platformWmsDetailMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformWmsJobMapper platformWmsJobMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformMapper platformMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private VisitsJoinMapper visitsJoinMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private RetentionMapper retentionMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformGroupMapper platformGroupMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TmsService tmsService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PlatformDeviceMapper platformDeviceMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Value("${debug_model}") | 
|---|
|  |  |  | private Boolean isDebug; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取区域树形结构数据 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public     List<GeneralVO> todayTotalInList(){ | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 1市公司:根据预约的入园原因为市公司卸货的任务为市公司入库的统计; | 
|---|
|  |  |  | * 2集散中心:WMS推送的入库单据; | 
|---|
|  |  |  | * 3加工入库:预约入园为重庆加工入库的(作业月台为安泰物流卸货月台); | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | String[] names = new String[]{"市公司","集散中心","加工入库"}; | 
|---|
|  |  |  | String reason =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.CITY_XH_REASON_ID).getCode(); | 
|---|
|  |  |  | String platformGroupId =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ATWL_XH_PLATFORM_ID).getCode();; | 
|---|
|  |  |  | List<GeneralVO> list = new ArrayList<>(); | 
|---|
|  |  |  | for (int i = 0; i < 3; i++) { | 
|---|
|  |  |  | Random random = new Random(); | 
|---|
|  |  |  | GeneralVO data = new GeneralVO(); | 
|---|
|  |  |  | data.setName(names[i]); | 
|---|
|  |  |  | BigDecimal num =new BigDecimal(0); | 
|---|
|  |  |  | if(i == 0){ | 
|---|
|  |  |  | List<PlatformBooks> jobs = platformBooksMapper.selectJoinList(PlatformBooks.class, new MPJLambdaWrapper<PlatformBooks>() | 
|---|
|  |  |  | .select(PlatformJob::getTotalNum) | 
|---|
|  |  |  | .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformBooks::getJobId) | 
|---|
|  |  |  | .eq(PlatformBooks::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformBooks::getReasonId,reason) | 
|---|
|  |  |  | .apply("to_days(t1.done_date) = to_days(now())") | 
|---|
|  |  |  | .eq(PlatformBooks::getStatus,Constants.TWO)); | 
|---|
|  |  |  | if(jobs!=null){ | 
|---|
|  |  |  | for(PlatformBooks j :jobs){ | 
|---|
|  |  |  | num =num.add(Constants.formatBigdecimal(j.getTotalNum())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else if(i ==1){ | 
|---|
|  |  |  | List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | .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){ | 
|---|
|  |  |  | 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.AUTHED_LEAVE.getKey() | 
|---|
|  |  |  | , Constants.PlatformJobStatus.LEAVED.getKey()) ); | 
|---|
|  |  |  | if(jobs!=null){ | 
|---|
|  |  |  | for(PlatformJob j :jobs){ | 
|---|
|  |  |  | if(Objects.nonNull(j)&&Objects.nonNull(j.getTotalNum())){ | 
|---|
|  |  |  | num = num.add(Constants.formatBigdecimal(j.getTotalNum())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | data.setNum(num); | 
|---|
|  |  |  | list.add(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取区域树形结构数据 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public BoardStockListVO stockList(){ | 
|---|
|  |  |  | BoardStockListVO data = new BoardStockListVO(); | 
|---|
|  |  |  | double toatalNum = 1d; | 
|---|
|  |  |  | BigDecimal num = new BigDecimal(0); | 
|---|
|  |  |  | List<GeneralVO> list = new ArrayList<>(); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | toatalNum =Double.parseDouble(systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_TOTAL_STOCK_NUM).getCode()) ; | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | for(WmsInventoryJsonResponse j :t){ | 
|---|
|  |  |  | //2025年4月9日16:46:40 处理 包含托盘字眼的数据 不进行合计 | 
|---|
|  |  |  | num = num.add (j.getItemName().indexOf("托盘")<Constants.ZERO?Constants.formatBigdecimal( j.getQty()):BigDecimal.ZERO); | 
|---|
|  |  |  | GeneralVO d = new GeneralVO(); | 
|---|
|  |  |  | d.setNum(Constants.formatBigdecimal(j.getQty())); | 
|---|
|  |  |  | d.setName(j.getItemName()); | 
|---|
|  |  |  | list.add(d); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | data.setStockList(list); | 
|---|
|  |  |  | data.setNum(num); | 
|---|
|  |  |  | if(toatalNum<=0){ | 
|---|
|  |  |  | toatalNum =1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | data.setTotalNum(new BigDecimal(toatalNum)); | 
|---|
|  |  |  | data.setUseRate(Constants.formatBigdecimal(data.getNum()).divide(data.getTotalNum(),2,BigDecimal.ROUND_HALF_UP)); | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取区域树形结构数据 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | 
|---|
|  |  |  | return  data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private void initReginCameralList(List<PageRegionInfoResponse> allList,String name) { | 
|---|
|  |  |  | List<CarmeraListVO> carmeraListVOList = cameraList(null); | 
|---|
|  |  |  | CarmeraListVO re = new CarmeraListVO(); | 
|---|
|  |  |  | re.setName(name); | 
|---|
|  |  |  | List<CarmeraListVO> carmeraListVOList = cameraList(re); | 
|---|
|  |  |  | if(carmeraListVOList!=null && carmeraListVOList.size()>0){ | 
|---|
|  |  |  | for(PageRegionInfoResponse p : allList){ | 
|---|
|  |  |  | for(CarmeraListVO c : carmeraListVOList){ | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<CarmeraListVO> data = new ArrayList<>(); | 
|---|
|  |  |  | for(PageCameraInfoResponse p : allList){ | 
|---|
|  |  |  | CarmeraListVO t = new CarmeraListVO(); | 
|---|
|  |  |  | t.setIndexCode(p.getCameraIndexCode()); | 
|---|
|  |  |  | t.setReginCode(p.getRegionIndexCode()); | 
|---|
|  |  |  | t.setName(p.getCameraName()); | 
|---|
|  |  |  | t.setStatus(p.getStatus()); | 
|---|
|  |  |  | t.setStatusName(p.getStatusName()); | 
|---|
|  |  |  | data.add(t); | 
|---|
|  |  |  | if(StringUtils.isBlank(req.getName()) ||StringUtils.contains(p.getCameraName(),req.getName())){ | 
|---|
|  |  |  | CarmeraListVO t = new CarmeraListVO(); | 
|---|
|  |  |  | t.setIndexCode(p.getCameraIndexCode()); | 
|---|
|  |  |  | t.setReginCode(p.getRegionIndexCode()); | 
|---|
|  |  |  | t.setName(p.getCameraName()); | 
|---|
|  |  |  | t.setStatus(p.getStatus()); | 
|---|
|  |  |  | t.setStatusName(p.getStatusName()); | 
|---|
|  |  |  | data.add(t); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return  data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | public  List<PlatformGroupFinishVO> platformGroupFinish(){ | 
|---|
|  |  |  | List<PlatformGroupFinishVO> data = new ArrayList<>(); | 
|---|
|  |  |  | List<PlatformGroup> groups = platformGroupMapper.selectJoinList(PlatformGroup.class, new MPJLambdaWrapper<PlatformGroup>() | 
|---|
|  |  |  | .select("(select sum(a.TOTAL_NUM) from platform_job a where a.PLATFORM_GROUP_ID=t.id and a.isdeleted=0   and a.status in(6,9,10) and to_days(a.done_date) = to_days(now()))",PlatformGroup::getOrtherTotalNum) | 
|---|
|  |  |  | .select("(select sum(case when a.total_num is null  then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = a.id  ) else a.total_num end) from platform_job a where a.PLATFORM_GROUP_ID=t.id and a.isdeleted=0   and a.status in(6,9,10) and to_days(a.done_date) = to_days(now()))",PlatformGroup::getOrtherTotalNum) | 
|---|
|  |  |  | //.select("(select sum(a.TOTAL_NUM) from platform_job a where a.PLATFORM_GROUP_ID=t.id and a.isdeleted=0   and a.status in(6,9,10) and to_days(a.done_date) = to_days(now()))",PlatformGroup::getOrtherTotalNum) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //.select(" case when t.total_num is null  then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id  ) else t.total_num end ioQty ") | 
|---|
|  |  |  | .selectAll(PlatformGroup.class) | 
|---|
|  |  |  | .eq(PlatformGroup::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | 
|---|
|  |  |  | public  CarWorkSituationVO carWorkSituation(int limit){ | 
|---|
|  |  |  | CarWorkSituationVO carWorkSituationVO = new CarWorkSituationVO(); | 
|---|
|  |  |  | List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda() | 
|---|
|  |  |  | .like(PlatformLog::getCreateDate,DateUtil.getCurrDate()) | 
|---|
|  |  |  | .orderByDesc(PlatformLog::getCreateDate) | 
|---|
|  |  |  | .last(" limit "+limit) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  List<SecurityDeviceDataVO> securityDeviceData(){ | 
|---|
|  |  |  | List<SecurityDeviceDataVO> list = new ArrayList<>(); | 
|---|
|  |  |  | BaseResponse<List<SecureDevStatusListResponse>> result = HKService.getSecureDevStatusList(new SecureDevStatusTotalRequest()) ; | 
|---|
|  |  |  | SecureDevStatusTotalRequest request =new SecureDevStatusTotalRequest(); | 
|---|
|  |  |  | request.setIncludeBool(""); | 
|---|
|  |  |  | request.setRegionIds(new String[]{}); | 
|---|
|  |  |  | BaseResponse<List<SecureDevStatusListResponse>> result = HKService.getSecureDevStatusList(request) ; | 
|---|
|  |  |  | if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){ | 
|---|
|  |  |  | List<SecureDevStatusListResponse> rlist = result.getData(); | 
|---|
|  |  |  | for(SecureDevStatusListResponse r :rlist){ | 
|---|
|  |  |  | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  List<WaningEventDataVO> warningEventData(Integer type){ | 
|---|
|  |  |  | List<WaningEventDataVO> list = new ArrayList<>(); | 
|---|
|  |  |  | public  WaningEventDataVO warningEventData(Integer type){ | 
|---|
|  |  |  | WaningEventDataVO lastResult = new WaningEventDataVO(); | 
|---|
|  |  |  | List<WaningEventDataListVO> list = new ArrayList<>(); | 
|---|
|  |  |  | RuleEventSearchRequest request = new RuleEventSearchRequest(); | 
|---|
|  |  |  | request.setPageNo(1); | 
|---|
|  |  |  | request.setPageSize(1000); | 
|---|
|  |  |  | request.setFiledOptions(new ArrayList<>()); | 
|---|
|  |  |  | request.setSorts(new ArrayList<>()); | 
|---|
|  |  |  | RuleEventFiledOptionsRequest file = new RuleEventFiledOptionsRequest(); | 
|---|
|  |  |  | file.setFieldName("event_type"); | 
|---|
|  |  |  | file.setFieldValue("131588");//安防告警 | 
|---|
|  |  |  | file.setType("eq"); | 
|---|
|  |  |  | file.setFieldValue("131588,131593");//安防告警和人员告警 | 
|---|
|  |  |  | file.setType("in"); | 
|---|
|  |  |  | if(type == 1){ | 
|---|
|  |  |  | file.setFieldValue("131588");//安防告警 | 
|---|
|  |  |  | }else  if(type == 2){ | 
|---|
|  |  |  | file.setFieldValue("131593");//人员告警 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | request.getFiledOptions().add(file); | 
|---|
|  |  |  | BaseResponse< RuleEventSearchResponse> result = HKService.ruleEventSearch(request); | 
|---|
|  |  |  | SortRequest sort = new SortRequest(); | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | WaningEventDataVO data = new WaningEventDataVO(); | 
|---|
|  |  |  | 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(r.getCreate_time()); | 
|---|
|  |  |  | //                data.setContent(r.get); | 
|---|
|  |  |  | list.add(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | lastResult.setTotal(total); | 
|---|
|  |  |  | lastResult.setList(list); | 
|---|
|  |  |  | return lastResult; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  String getCarmeraPreviemUrl(CarmeraListVO param){ | 
|---|
|  |  |  | CameraPreviewURLsRequest request = new CameraPreviewURLsRequest(); | 
|---|
|  |  |  | request.setCameraIndexCode(param.getIndexCode()); | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public   List<EnergyDataVO>  loadEnergyCurve(){ | 
|---|
|  |  |  | List<EnergyDataVO> loadCurveList = new ArrayList<>(); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | BaseResponse<List<EnergyTodayLoadDataResponse>>  response = HKService.energyTodayLoadData(); | 
|---|
|  |  |  | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ | 
|---|
|  |  |  | for (EnergyTodayLoadDataResponse model :response.getData()) { | 
|---|
|  |  |  | EnergyDataVO data = new EnergyDataVO(); | 
|---|
|  |  |  | data.setTimeData(model.getName()); | 
|---|
|  |  |  | data.setEnergy(new BigDecimal(StringUtils.defaultString(model.getValue(),"0"))); | 
|---|
|  |  |  | loadCurveList.add(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return loadCurveList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public     List<OilDataVO> energyLastMonthOilSort(){ | 
|---|
|  |  |  | List<OilDataVO> oilDataVOList = new ArrayList<>(); | 
|---|
|  |  |  | //上月油耗 | 
|---|
|  |  |  | List<PlatformWaterGas> list =  platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda() | 
|---|
|  |  |  | .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformWaterGas::getType,Constants.TWO) | 
|---|
|  |  |  | .apply("DATE_FORMAT(time_info, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m')") | 
|---|
|  |  |  | .orderByDesc(PlatformWaterGas::getNum) | 
|---|
|  |  |  | .last("limit 30" ) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | for (PlatformWaterGas model :list) { | 
|---|
|  |  |  | OilDataVO oilDataVO = new OilDataVO(); | 
|---|
|  |  |  | oilDataVO.setCarNo(model.getCarCode()); | 
|---|
|  |  |  | oilDataVO.setQuantity(model.getNum()); | 
|---|
|  |  |  | oilDataVOList.add(oilDataVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return oilDataVOList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 【消防管控】看板-本年和本月新增消防设备/设施维护情况 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public    List<AlarmEventDataVO> fightingAdminAlertList(){ | 
|---|
|  |  |  | List<AlarmEventDataVO> data = new ArrayList<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<FindHomeAlarmInfoPageResponse> allList = new ArrayList<>(); | 
|---|
|  |  |  | boolean hasNext = true; | 
|---|
|  |  |  | int curTotal = 0; | 
|---|
|  |  |  | int curPage = 1; | 
|---|
|  |  |  | FindHomeAlarmInfoPageRequest param = new FindHomeAlarmInfoPageRequest(); | 
|---|
|  |  |  | param.setHour(24); | 
|---|
|  |  |  | param.setUserId("admin"); | 
|---|
|  |  |  | while (hasNext){ | 
|---|
|  |  |  | //分页遍历循环查询所有门禁设备数据 | 
|---|
|  |  |  | param.setPage(curPage); | 
|---|
|  |  |  | //        param.setRegionIndexCodes("root000000"); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 【消防管控】看板-实时监测数据 | 
|---|
|  |  |  | * 液压固定值:254001 | 
|---|
|  |  |  | * 水压固定值:253958 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  List<MonitorDataVO> monitorDataList(){ | 
|---|
|  |  |  | List<MonitorDataVO> list = new ArrayList<>(); | 
|---|
|  |  |  | MinitorDataSearchRequest param = new MinitorDataSearchRequest(); | 
|---|
|  |  |  | param.setResourceTypeCodes(new String[]{}); | 
|---|
|  |  |  | param.setRegionIndexCode("root000000"); | 
|---|
|  |  |  | //60-液位 61-水压 | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | String pressureUnit = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.PRESSURE_LEVEL_UNIT).getCode(); | 
|---|
|  |  |  | String liquidUnit = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.LIQUID_LEVEL_UNIT).getCode(); | 
|---|
|  |  |  | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) | 
|---|
|  |  |  | && response.getData()!=null ) { | 
|---|
|  |  |  | List<MonitorDataSearchResponse> r = response.getData().getList(); | 
|---|
|  |  |  | if(r!= null){ | 
|---|
|  |  |  | for(MonitorDataSearchResponse model : r){ | 
|---|
|  |  |  | MonitorDataVO m = new MonitorDataVO(); | 
|---|
|  |  |  | m.setName(model.getName()); | 
|---|
|  |  |  | m.setType(model.getType()); | 
|---|
|  |  |  | //                    m.setLevel(Constants.equalsInteger(model.getType(),60)?liquid:pressure); | 
|---|
|  |  |  | m.setLevel(getLevelDataByDeviceName(m,model.getName(),Constants.equalsInteger(model.getType(),60)?liquidUnit:pressureUnit)); | 
|---|
|  |  |  | m.setDataList(new ArrayList<>()); | 
|---|
|  |  |  | if(model.getValues()!=null){ | 
|---|
|  |  |  | List<MonitorDataInfoVO> dataList = new ArrayList<>(); | 
|---|
|  |  |  | for(MonitorDataValResponse v : model.getValues()){ | 
|---|
|  |  |  | //液压固定值:254001 | 
|---|
|  |  |  | //水压固定值:253958 | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return  list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String getLevelDataByDeviceName(MonitorDataVO m,String name,String unit) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   { | 
|---|
|  |  |  | *     "name":"液", | 
|---|
|  |  |  | *     "regionIndexCodes": [ | 
|---|
|  |  |  | *         "root000000" | 
|---|
|  |  |  | *     ], | 
|---|
|  |  |  | *     "isSubRegion": true, | 
|---|
|  |  |  | *     "resourceType": "fireSensor", | 
|---|
|  |  |  | *     "pageNo": 1, | 
|---|
|  |  |  | *     "pageSize": 20, | 
|---|
|  |  |  | *     "orderBy": "name", | 
|---|
|  |  |  | *     "orderType": "desc" | 
|---|
|  |  |  | *     } | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | String r = ""; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ResourcesByParamsRequest param = new ResourcesByParamsRequest(); | 
|---|
|  |  |  | param.setName(name); | 
|---|
|  |  |  | param.setIsSubRegion(Boolean.TRUE); | 
|---|
|  |  |  | param.setRegionIndexCodes(new String[]{"root000000"}); | 
|---|
|  |  |  | param.setResourceType("fireSensor"); | 
|---|
|  |  |  | param.setOrderType("desc"); | 
|---|
|  |  |  | param.setOrderBy("name"); | 
|---|
|  |  |  | param.setPageNo(1); | 
|---|
|  |  |  | param.setPageSize(20); | 
|---|
|  |  |  | BaseResponse<BaseListPageResponse<ResourcesByParamsResponse>> response = HKService.resourcesByParams(param); | 
|---|
|  |  |  | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) | 
|---|
|  |  |  | && response.getData()!=null ) { | 
|---|
|  |  |  | String min  = response.getData().getList().get(0).getFireproChannelMinValue(); | 
|---|
|  |  |  | String max  = response.getData().getList().get(0).getFireproChannelMaxvalue(); | 
|---|
|  |  |  | m.setMax(max); | 
|---|
|  |  |  | m.setMin(min); | 
|---|
|  |  |  | r  =StringUtils.defaultString(min,"-")+"~"+StringUtils.defaultString(max,"-") +unit; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return  r; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 【消防管控】看板-告警处理分析集合 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public   List<AlarmDataVO> fightingAlarmHandleData(){ | 
|---|
|  |  |  | List<AlarmDataVO> alarmHandleDataVOList = new ArrayList<>(); | 
|---|
|  |  |  | Date now =DateUtil.StringToDate(DateUtil.getFirstDayCurrentMonth(),"yyyy-MM") ; | 
|---|
|  |  |  | for (int i = 1; i <= 12; i++) { | 
|---|
|  |  |  | Date start  =  DateUtil.addMonthToDate(now,-12+i); | 
|---|
|  |  |  | Date end  =  DateUtil.addMonthToDate(now,-11+i); | 
|---|
|  |  |  | AlarmDataVO t = getAlertDataByStartEndTime(DateUtil.getPlusTime2(start),DateUtil.getPlusTime2(end)); | 
|---|
|  |  |  | alarmHandleDataVOList.add(t); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return alarmHandleDataVOList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 【园区物料中心调度】看板-运输任务分析 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  List<TransportMeasureVO> transportMeasure(Integer queryType){ | 
|---|
|  |  |  | List<TransportMeasureVO> list = new ArrayList<>(); | 
|---|
|  |  |  | Random random = new Random(); | 
|---|
|  |  |  | List<Date> dayList = DateUtil.getDateListBeforDays(new Date(),7);//近7天 | 
|---|
|  |  |  | if(Constants.equalsInteger(queryType,Constants.ONE)){ | 
|---|
|  |  |  | dayList = DateUtil.getThisMonthDateList();//本月天数 | 
|---|
|  |  |  | }else if(Constants.equalsInteger(queryType,Constants.TWO)){ | 
|---|
|  |  |  | dayList = DateUtil.getThisYearMonthList();//本年月份 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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") | 
|---|
|  |  |  | .apply(queryType==1,"year(create_date) = year(now()) and month(create_date) = month(now())") | 
|---|
|  |  |  | .apply(queryType==2,"year(create_date) = year(now())")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<PlatformJob>  finishDataList = 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) | 
|---|
|  |  |  | .eq(PlatformJob::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) | 
|---|
|  |  |  | .apply(queryType==0,"to_days(done_date) >= to_days(now()) -7") | 
|---|
|  |  |  | .apply(queryType==1,"year(done_date) = year(now()) and month(done_date) = month(now())") | 
|---|
|  |  |  | .apply(queryType==2,"year(done_date) = year(now())")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (Date date : dayList) { | 
|---|
|  |  |  | TransportMeasureVO data = new TransportMeasureVO(); | 
|---|
|  |  |  | data.setPlanDate(date); | 
|---|
|  |  |  | data.setPlanTimes(0); | 
|---|
|  |  |  | data.setPlanTaskNum(new BigDecimal( 0)); | 
|---|
|  |  |  | data.setFinishTaskNum(new BigDecimal(0)); | 
|---|
|  |  |  | for(PlatformJob job :dataList){ | 
|---|
|  |  |  | if(queryType == 2){ | 
|---|
|  |  |  | if(DateUtil.formatDate(date,"yyyy-MM").equals(DateUtil.formatDate(job.getCreateDate(),"yyyy-MM"))){ | 
|---|
|  |  |  | data.setPlanTimes( data.getPlanTimes() +1); | 
|---|
|  |  |  | data.setPlanTaskNum( data.getPlanTaskNum().add(Constants.formatBigdecimal(job.getTotalNum()))); | 
|---|
|  |  |  | //                        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) | 
|---|
|  |  |  | //                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey()) | 
|---|
|  |  |  | //                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){ | 
|---|
|  |  |  | //                            //完成数 | 
|---|
|  |  |  | //                            data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum()))); | 
|---|
|  |  |  | //                        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if(DateUtil.formatDate(date,"yyyy-MM-dd").equals(DateUtil.formatDate(job.getCreateDate(),"yyyy-MM-dd"))){ | 
|---|
|  |  |  | data.setPlanTimes( data.getPlanTimes() +1); | 
|---|
|  |  |  | data.setPlanTaskNum( data.getPlanTaskNum().add(Constants.formatBigdecimal(job.getTotalNum()))); | 
|---|
|  |  |  | //                        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) | 
|---|
|  |  |  | //                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey()) | 
|---|
|  |  |  | //                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){ | 
|---|
|  |  |  | //                            //完成数 | 
|---|
|  |  |  | //                            data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum()))); | 
|---|
|  |  |  | //                        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (PlatformJob job :finishDataList) { | 
|---|
|  |  |  | if(queryType == 2){ | 
|---|
|  |  |  | if(DateUtil.formatDate(date,"yyyy-MM").equals(DateUtil.formatDate(job.getDoneDate(),"yyyy-MM"))){ | 
|---|
|  |  |  | data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum()))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if(DateUtil.formatDate(date,"yyyy-MM-dd").equals(DateUtil.formatDate(job.getDoneDate(),"yyyy-MM-dd"))){ | 
|---|
|  |  |  | data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum()))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | list.add(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 【园区物料中心调度】看板-根据车牌号查询作业信息和合同信息集合 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public    CarsJobAndContractVO getCarsJobDetails(CarsJobAndContractDTO param){ | 
|---|
|  |  |  | CarsJobAndContractVO data = new CarsJobAndContractVO(); | 
|---|
|  |  |  | if(StringUtils.isBlank(param.getCarCode())){ | 
|---|
|  |  |  | return  data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | .selectAll(PlatformJob.class) | 
|---|
|  |  |  | .eq(PlatformJob::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformJob::getCarCodeFront,param.getCarCode()) | 
|---|
|  |  |  | .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>() | 
|---|
|  |  |  | .selectAll(PlatformLog.class) | 
|---|
|  |  |  | .eq(PlatformLog::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformLog::getJobId,job.getId()) | 
|---|
|  |  |  | .orderByDesc(PlatformLog::getCreateDate)); | 
|---|
|  |  |  | data.setLogList(logList); | 
|---|
|  |  |  | data.setName(job.getDriverName()); | 
|---|
|  |  |  | data.setPhone(job.getDrivierPhone()); | 
|---|
|  |  |  | data.setBillCode(job.getBillCode()); | 
|---|
|  |  |  | data.setTotalNum(Constants.formatBigdecimal(job.getTotalNum())); | 
|---|
|  |  |  | data.setContractList(new ArrayList<>()); | 
|---|
|  |  |  | CarsContractVO tt = new CarsContractVO(); | 
|---|
|  |  |  | tt.setIoCode(job.getContractNum()); | 
|---|
|  |  |  | tt.setDetailList(new ArrayList<>()); | 
|---|
|  |  |  | data.getContractList().add(tt); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | PlatformWmsJob wmsJob = platformWmsJobMapper.selectJoinOne(PlatformWmsJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformWmsJob>() | 
|---|
|  |  |  | .selectAll(PlatformWmsJob.class) | 
|---|
|  |  |  | .eq(PlatformWmsJob::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformWmsJob::getJobId,job.getId()) | 
|---|
|  |  |  | .last("limit 1")); | 
|---|
|  |  |  | if(wmsJob!=null){ | 
|---|
|  |  |  | data.setName(wmsJob.getDriverName()); | 
|---|
|  |  |  | data.setPhone(wmsJob.getDriverPhone()); | 
|---|
|  |  |  | data.setBillCode(wmsJob.getCarryBillCode()); | 
|---|
|  |  |  | data.setContractList(new ArrayList<>()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<PlatformWmsDetail>  detailList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformWmsDetail>() | 
|---|
|  |  |  | .selectAll(PlatformWmsDetail.class) | 
|---|
|  |  |  | .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformWmsDetail::getWmsJobId,wmsJob.getId()) | 
|---|
|  |  |  | .orderByDesc(PlatformLog::getCreateDate)); | 
|---|
|  |  |  | if(detailList!=null){ | 
|---|
|  |  |  | for(PlatformWmsDetail d : detailList){ | 
|---|
|  |  |  | if(isExistIocode(d.getIocode(),data.getContractList())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tt = new CarsContractVO(); | 
|---|
|  |  |  | tt.setIoCode(d.getIocode()); | 
|---|
|  |  |  | tt.setAddress(d.getRepertotyAddress()); | 
|---|
|  |  |  | tt.setDetailList(getDetailListByCode(d.getIocode(),detailList,tt)); | 
|---|
|  |  |  | data.getContractList().add(tt); | 
|---|
|  |  |  | data.getTotalNum().add(Constants.formatBigdecimal(tt.getTotalNum()));//总运输量 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private List<PlatformWmsDetail> getDetailListByCode(String iocode, List<PlatformWmsDetail> detailList,CarsContractVO tt) { | 
|---|
|  |  |  | List<PlatformWmsDetail> list = new ArrayList<>(); | 
|---|
|  |  |  | BigDecimal total = new BigDecimal(0); | 
|---|
|  |  |  | if(detailList!=null){ | 
|---|
|  |  |  | for(PlatformWmsDetail d :detailList){ | 
|---|
|  |  |  | if(StringUtils.equals(d.getIocode(),iocode)){ | 
|---|
|  |  |  | list.add(d); | 
|---|
|  |  |  | total.add(Constants.formatBigdecimal(d.getIoQty())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tt.setTotalNum(total); | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private boolean isExistIocode(String iocode, List<CarsContractVO> detailList) { | 
|---|
|  |  |  | if(detailList!=null){ | 
|---|
|  |  |  | for(CarsContractVO d :detailList){ | 
|---|
|  |  |  | if(StringUtils.equals(d.getIoCode(),iocode)){ | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 【消防管控】看板-告警信息集合 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public   AlarmDataVO alarmDataSumByCate(){ | 
|---|
|  |  |  | AlarmDataVO alarmDataVO = getAlertDataByStartEndTime(DateUtil.getPlusTime2(Utils.Date.getStart(new Date())) | 
|---|
|  |  |  | ,(DateUtil.getPlusTime2(new Date()))); | 
|---|
|  |  |  | return  alarmDataVO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询本月 本年的累计出库量统计数据,出库任务、入库任务量 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  PlatformJobRunBoardNewVO platformJobCenterData(){ | 
|---|
|  |  |  | PlatformJobRunBoardNewVO data = new PlatformJobRunBoardNewVO(); | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | .selectAs(PlatformJob::getTotalNum,PlatformJob::getTotalNum) | 
|---|
|  |  |  | .selectAs(PlatformJob::getDoneDate,PlatformJob::getDoneDate) | 
|---|
|  |  |  | .select(PlatformJob::getStatus,PlatformJob::getStatus) | 
|---|
|  |  |  | .select(PlatformJob::getType,PlatformJob::getType) | 
|---|
|  |  |  | .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(month)+"') and month(done_date) = month('"+DateUtil.getPlusTime2(month)+"') ")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<PlatformJob>  yearNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | .selectAs(PlatformJob::getId,PlatformJob::getId) | 
|---|
|  |  |  | .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(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) | 
|---|
|  |  |  | .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(lastYear)+"')  and done_date<=  now()  ")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | data.setMonthOutTotal(getSumTotalByList(monthNum,0,null));//本月出库量 | 
|---|
|  |  |  | data.setMonthLastOutTotal(getSumTotalByList(monthLastNum,null,null) );//上月出库量 | 
|---|
|  |  |  | data.setYearOutTotal(getSumTotalByList(yearNum,null,null)  );//本年出库量 | 
|---|
|  |  |  | data.setYearLastOutTotal(getSumTotalByList(yearLastNum,null,null) );//去年出库量 | 
|---|
|  |  |  | data.setMonthOutTimes(monthNum!=null?monthNum.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)||Constants.equalsInteger(i.getType(),Constants.THREE)).collect(Collectors.toList()).size():0); | 
|---|
|  |  |  | data.setYearOutTimes(yearNum!=null?yearNum.size():0); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //==========今天之前未完成出入库任务 | 
|---|
|  |  |  | List<PlatformJob> beforeJobNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | .selectAs(PlatformJob::getId,PlatformJob::getId) | 
|---|
|  |  |  | .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) | 
|---|
|  |  |  | .eq(PlatformJob::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .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> currentDoneNum = 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(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.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));//当前出库总任务成量 | 
|---|
|  |  |  | data.setTodayOutRate(getDayTotalRata(data.getCurrentOutDoneNum(),DateUtil.getToday()));//当日出库效率 | 
|---|
|  |  |  | data.setTodayInRate(getDayTotalRata(data.getCurrentInDoneNum(),DateUtil.getToday()));//当日入库效率 | 
|---|
|  |  |  | data.setMonthOutRate(getMonthRata(monthNum,Constants.ZERO));//本月出库效率 | 
|---|
|  |  |  | data.setMonthInRate(getMonthRata(monthNum,Constants.ONE));//本月入库效率 | 
|---|
|  |  |  | //------------今日出入库效率---------------- | 
|---|
|  |  |  | //        BigDecimal outHours = getTotalDoneTimes(currentDoneNum,0);// | 
|---|
|  |  |  | //        BigDecimal inHours = getTotalDoneTimes(currentDoneNum,1);// | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        if(outHours.compareTo(new BigDecimal(0))>0){ | 
|---|
|  |  |  | //            data.setTodayOutRate(data.getCurrentOutDoneNum().divide(outHours,2));//当前入库总任务成量 | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        if(inHours.compareTo(new BigDecimal(0))>0){ | 
|---|
|  |  |  | //            data.setTodayInRate(data.getCurrentInDoneNum().divide(inHours,2));//当前入库总任务成量 | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //------------本月出入库效率---------------- | 
|---|
|  |  |  | //        BigDecimal outMonthNum = getSumTotalByList(monthNum,0,null).add(data.getCurrentOutDoneNum()); | 
|---|
|  |  |  | //        BigDecimal inMonthNum = getSumTotalByList(monthNum,1,null).add(data.getCurrentInDoneNum()); | 
|---|
|  |  |  | //        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(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() | 
|---|
|  |  |  | .apply("create_date >= '"+start+"' and create_date <= '"+end+"'") | 
|---|
|  |  |  | .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(0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private BigDecimal getTotalDoneTimes(List<PlatformJob> list, Integer type) { | 
|---|
|  |  |  | BigDecimal r = new BigDecimal(0); | 
|---|
|  |  |  | if(list==null || list.size() == 0){ | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Integer> jobIds= new ArrayList<>(); | 
|---|
|  |  |  | for(PlatformJob job : list){ | 
|---|
|  |  |  | if( !(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) | 
|---|
|  |  |  | ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey()) | 
|---|
|  |  |  | ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()))){ | 
|---|
|  |  |  | //只查询完成数据 | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(type !=null &&type ==0 &&  (Constants.equalsInteger(job.getType(),Constants.ONE) ||Constants.equalsInteger(job.getType(),Constants.THREE))){ | 
|---|
|  |  |  | //出库 | 
|---|
|  |  |  | jobIds.add(job.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(type !=null &&type ==1 &&  (Constants.equalsInteger(job.getType(),Constants.ZERO) ||Constants.equalsInteger(job.getType(),Constants.TWO)||Constants.equalsInteger(job.getType(),Constants.FOUR))){ | 
|---|
|  |  |  | //入库 | 
|---|
|  |  |  | jobIds.add(job.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(jobIds.size()>0){ | 
|---|
|  |  |  | //处理作业时长 | 
|---|
|  |  |  | List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda() | 
|---|
|  |  |  | .in(PlatformLog::getJobId,jobIds) | 
|---|
|  |  |  | .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)3600); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private BigDecimal getMonthRata(List<PlatformJob> list, Integer type) { | 
|---|
|  |  |  | BigDecimal r = new BigDecimal(0); | 
|---|
|  |  |  | if(list==null || list.size() == 0){ | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<PlatformJob> jobList= new ArrayList<>(); | 
|---|
|  |  |  | for(PlatformJob job : list) { | 
|---|
|  |  |  | if (!(Constants.equalsInteger(job.getStatus(), Constants.PlatformJobStatus.DONE.getKey()) | 
|---|
|  |  |  | || Constants.equalsInteger(job.getStatus(), Constants.PlatformJobStatus.LEAVED.getKey()) | 
|---|
|  |  |  | || Constants.equalsInteger(job.getStatus(), Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()))) { | 
|---|
|  |  |  | //只查询完成数据 | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (type != null && type == 0 && (Constants.equalsInteger(job.getType(), Constants.ONE) || Constants.equalsInteger(job.getType(), Constants.THREE))) { | 
|---|
|  |  |  | //出库 | 
|---|
|  |  |  | jobList.add(job); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (type != null && type == 1 && (Constants.equalsInteger(job.getType(), Constants.ZERO) || Constants.equalsInteger(job.getType(), Constants.TWO) || Constants.equalsInteger(job.getType(), Constants.FOUR))) { | 
|---|
|  |  |  | //入库 | 
|---|
|  |  |  | jobList.add(job); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(jobList)){ | 
|---|
|  |  |  | //获取任务数据 | 
|---|
|  |  |  | List<String> jobDataList = jobList.stream().filter(i->Objects.nonNull(i.getDoneDate())) | 
|---|
|  |  |  | .map(i->DateUtil.formatDate(i.getDoneDate(),"yyyy-MM-dd")).collect(Collectors.toList()); | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(jobDataList)){ | 
|---|
|  |  |  | for (String jobDate:jobDataList) { | 
|---|
|  |  |  | //过滤当天的数据 | 
|---|
|  |  |  | List<PlatformJob> platformJobList = list.stream(). | 
|---|
|  |  |  | filter(i->jobDate.equals(DateUtil.formatDate(i.getDoneDate(),"yyyy-MM-dd"))).collect(Collectors.toList()); | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(platformJobList)){ | 
|---|
|  |  |  | //获取今天的 | 
|---|
|  |  |  | r = r.add(this.getDayTotalRata(getSumTotalByList(platformJobList,type,null),jobDate)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | r = r.divide(new BigDecimal(Integer.toString(jobList.size())),2,BigDecimal.ROUND_HALF_UP); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private BigDecimal getDayTotalRata(BigDecimal totalAmount,String today) { | 
|---|
|  |  |  | BigDecimal r = new BigDecimal(0); | 
|---|
|  |  |  | //查询今日最早/最晚的作业数据 | 
|---|
|  |  |  | List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>() | 
|---|
|  |  |  | .lambda() | 
|---|
|  |  |  | .apply(" (  DATE_FORMAT( param1 ,'%Y-%m-%d' ) =  '"+today+"' or DATE_FORMAT( param2 ,'%Y-%m-%d' )  =  '"+today+"' ) ") | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if(totalAmount.compareTo(BigDecimal.ZERO)==0||CollectionUtils.isEmpty(platformLogList)){ | 
|---|
|  |  |  | return BigDecimal.ZERO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(platformLogList!=null && platformLogList.size()>0){ | 
|---|
|  |  |  | return this.getWorkTime(totalAmount,platformLogList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询作业时长(小时) | 
|---|
|  |  |  | * @param totalAmount | 
|---|
|  |  |  | * @param platformLogList | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public BigDecimal getWorkTime(BigDecimal totalAmount,List<PlatformLog> platformLogList){ | 
|---|
|  |  |  | if(CollectionUtils.isEmpty(platformLogList)){ | 
|---|
|  |  |  | return BigDecimal.ZERO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //获取开始时间 | 
|---|
|  |  |  | List<Long> startTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam1())).map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam1()).getTime()).collect(Collectors.toList()); | 
|---|
|  |  |  | Long startTime  = Collections.min(startTimeList); | 
|---|
|  |  |  | //获取结束时间 | 
|---|
|  |  |  | List<Long> endTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam2())).map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam2()).getTime()).collect(Collectors.toList()); | 
|---|
|  |  |  | Long endTime = Collections.max(endTimeList); | 
|---|
|  |  |  | if(Objects.isNull(startTime) | 
|---|
|  |  |  | || Objects.isNull(endTime) || (startTime>=endTime)){ | 
|---|
|  |  |  | return BigDecimal.ZERO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return   totalAmount.divide(new BigDecimal(( endTime - startTime )+"").divide(new BigDecimal("3600000"),2,BigDecimal.ROUND_HALF_UP),2,BigDecimal.ROUND_HALF_UP) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private BigDecimal  getSumTotalByList(List<PlatformJob> list,Integer type,Integer status) { | 
|---|
|  |  |  | BigDecimal r = new BigDecimal(0); | 
|---|
|  |  |  | if(list==null || list.size() == 0){ | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for(PlatformJob job : list){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(type !=null &&type ==0 && !(Constants.equalsInteger(job.getType(),Constants.ONE) ||Constants.equalsInteger(job.getType(),Constants.THREE))){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(type !=null &&type ==1 && !(Constants.equalsInteger(job.getType(),Constants.ZERO) ||Constants.equalsInteger(job.getType(),Constants.TWO)||Constants.equalsInteger(job.getType(),Constants.FOUR))){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(status !=null &&status ==1 && !(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) | 
|---|
|  |  |  | ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey()) | 
|---|
|  |  |  | ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()))){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            if(Constants.formatBigdecimal(job.getIoQty()).compareTo(new BigDecimal(0)) >0){ | 
|---|
|  |  |  | //                r.add( job.getIoQty()); | 
|---|
|  |  |  | //            }else{ | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | List<CarsDeviceDetaisResponse> detaisResponses = HKCarOpenService.getAllCarsDetais(); | 
|---|
|  |  |  | data.setCarsList(detaisResponses); | 
|---|
|  |  |  | if(data.getCarsList()!=null && data.getCarsList().size()>0){ | 
|---|
|  |  |  | List<String> codes = new ArrayList<>(); | 
|---|
|  |  |  | //设备状态 0:离线;1:在线;2:休眠 | 
|---|
|  |  |  | int online = 0; | 
|---|
|  |  |  | for(CarsDeviceDetaisResponse model:detaisResponses){ | 
|---|
|  |  |  | if(Constants.equalsInteger(model.getStatus(),Constants.ONE) | 
|---|
|  |  |  | ||Constants.equalsInteger(model.getStatus(),Constants.TWO)){ | 
|---|
|  |  |  | //如果是在线或者休眠,查询在途还是空闲ty | 
|---|
|  |  |  | codes.add(model.getPlateNum()); | 
|---|
|  |  |  | model.setJobStatus(Constants.ZERO); | 
|---|
|  |  |  | }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() | 
|---|
|  |  |  | .select(PlatformJob::getCarCodeFront) | 
|---|
|  |  |  | .eq(PlatformJob::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .in(PlatformJob::getCarCodeFront,codes) | 
|---|
|  |  |  | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey() | 
|---|
|  |  |  | ,Constants.PlatformJobStatus.WAIT_CALL.getKey() | 
|---|
|  |  |  | ,Constants.PlatformJobStatus.CALLED.getKey() | 
|---|
|  |  |  | ,Constants.PlatformJobStatus.IN_WAIT.getKey() | 
|---|
|  |  |  | ,Constants.PlatformJobStatus.TRANSFERING.getKey() | 
|---|
|  |  |  | ,Constants.PlatformJobStatus.WART_SIGN_IN.getKey() | 
|---|
|  |  |  | ,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey() | 
|---|
|  |  |  | ,Constants.PlatformJobStatus.EXCEPTION.getKey()) | 
|---|
|  |  |  | .groupBy(PlatformJob::getCarCodeFront)); | 
|---|
|  |  |  | data.setBusyNum( busyNum!=null ?busyNum.size():0);//在途有任务数量 | 
|---|
|  |  |  | data.setIdleNum(codes.size() -data.getBusyNum());//无任务空闲数量 | 
|---|
|  |  |  | HKCarOpenService.HK_CARS_LIST = detaisResponses; | 
|---|
|  |  |  | //                data.setEventList(HKCarOpenService.getAlarmEvemtList(detaisResponses,new Date())); | 
|---|
|  |  |  | if(busyNum != null){ | 
|---|
|  |  |  | FLAG:  for(CarsDeviceDetaisResponse model:detaisResponses){ | 
|---|
|  |  |  | for(PlatformJob job : busyNum){ | 
|---|
|  |  |  | if(StringUtils.equals(job.getCarCodeFront(),model.getPlateNum())){ | 
|---|
|  |  |  | model.setJobStatus(Constants.ONE); | 
|---|
|  |  |  | continue FLAG; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return  data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static AlarmDataVO getAlertDataByStartEndTime(String start,String end){ | 
|---|
|  |  |  | AlarmDataVO alarmDataVO = new AlarmDataVO(); | 
|---|
|  |  |  | FindAlarmBaseDataStatisticRequest param = new FindAlarmBaseDataStatisticRequest(); | 
|---|
|  |  |  | param.setAlarmStartTime(start); | 
|---|
|  |  |  | param.setAlarmEndTime(end); | 
|---|
|  |  |  | param.setUserId("admin"); | 
|---|
|  |  |  | BaseResponse<FindAlarmBaseDataStatisticResponse> response = HKService.findAlarmBaseDataStatistic(param); | 
|---|
|  |  |  | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) | 
|---|
|  |  |  | && response.getData()!=null ) { | 
|---|
|  |  |  | alarmDataVO.setTotalNum(Constants.formatIntegerNum(response.getData().getTotalAlarmNum())); | 
|---|
|  |  |  | alarmDataVO.setRealNum(Constants.formatIntegerNum(response.getData().getTotalAlarmNum())); | 
|---|
|  |  |  | alarmDataVO.setErrNum(Constants.formatIntegerNum(response.getData().getMisReportAlarmNum())); | 
|---|
|  |  |  | alarmDataVO.setLiftNum(Constants.formatIntegerNum(response.getData().getHandledAlarmNum())); | 
|---|
|  |  |  | alarmDataVO.setProcessingNum(Constants.formatIntegerNum(response.getData().getUnHandedAlarmNum())); | 
|---|
|  |  |  | alarmDataVO.setStartDate(start); | 
|---|
|  |  |  | alarmDataVO.setEndDate(end); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | alarmDataVO.setTotalNum(Constants.ZERO); | 
|---|
|  |  |  | alarmDataVO.setRealNum(Constants.ZERO); | 
|---|
|  |  |  | alarmDataVO.setErrNum(Constants.ZERO); | 
|---|
|  |  |  | alarmDataVO.setLiftNum(Constants.ZERO); | 
|---|
|  |  |  | alarmDataVO.setProcessingNum(Constants.ZERO); | 
|---|
|  |  |  | alarmDataVO.setStartDate(start); | 
|---|
|  |  |  | alarmDataVO.setEndDate(end); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return  alarmDataVO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 【消防管控】看板-本年和本月新增消防设备/设施维护情况 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public    YearDeviceDataVO yearFightingAdminDeviceData(){ | 
|---|
|  |  |  | YearDeviceDataVO data = new YearDeviceDataVO(); | 
|---|
|  |  |  | FireStatisticRequest param = new FireStatisticRequest(); | 
|---|
|  |  |  | param.setIndexCode("api_fire_statistic"); | 
|---|
|  |  |  | BaseResponse<FireStatisticResponse> response = HKService.fireStatistic(param); | 
|---|
|  |  |  | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ) { | 
|---|
|  |  |  | 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().getMaintenanceNumMonth())); | 
|---|
|  |  |  | data.setMonthTotalNum(Constants.formatIntegerNum(response1.getData().getDeviceTotalNum())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 【消防管控】看板-分类和汇总的各状态设备数量 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  FightingAdminCenterDataVO centerFightingAdminData(){ | 
|---|
|  |  |  | FightingAdminCenterDataVO data = new FightingAdminCenterDataVO(); | 
|---|
|  |  |  | List<DeviceNumByTypeVO> list = new ArrayList<>(); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ | 
|---|
|  |  |  | for(FireDevStatusListResponse r :response.getData()){ | 
|---|
|  |  |  | DeviceNumByTypeVO t = new DeviceNumByTypeVO(); | 
|---|
|  |  |  | t.setTypeName(r.getDevTypeName()); | 
|---|
|  |  |  | t.setOfflineDeviceNum(Constants.formatIntegerNum(r.getOfflineFireDevCount())); | 
|---|
|  |  |  | t.setAlarmDeviceNum(Constants.formatIntegerNum(r.getAlarmFireDevCount())); | 
|---|
|  |  |  | t.setOnlineDeviceNum(Constants.formatIntegerNum(r.getOnlineFireDevCount())); | 
|---|
|  |  |  | t.setErrDeviceNum(Constants.formatIntegerNum(r.getFaultFireDevCount())); | 
|---|
|  |  |  | t.setTotalDeviceNum(Constants.formatIntegerNum(r.getTotalFireDevCount())); | 
|---|
|  |  |  | list.add(t); | 
|---|
|  |  |  | data.setOfflineDeviceNum(Constants.formatIntegerNum( data.getOfflineDeviceNum())+Constants.formatIntegerNum(r.getOfflineFireDevCount())); | 
|---|
|  |  |  | data.setAlarmDeviceNum(Constants.formatIntegerNum( data.getAlarmDeviceNum())+Constants.formatIntegerNum(r.getAlarmFireDevCount())); | 
|---|
|  |  |  | data.setOnlineDeviceNum(Constants.formatIntegerNum( data.getOnlineDeviceNum())+Constants.formatIntegerNum(r.getOnlineFireDevCount())); | 
|---|
|  |  |  | 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 ) | 
|---|
|  |  |  | .apply("to_days(create_date) = to_days(now())" ) ); | 
|---|
|  |  |  | data.setDangerTotalNum(totalNum !=null?totalNum.intValue():0);//今日隐患数量 | 
|---|
|  |  |  | totalNum =hiddenDangerMapper.selectCount(new QueryWrapper<HiddenDanger>().lambda() | 
|---|
|  |  |  | .eq(HiddenDanger::getIsdeleted,Constants.ZERO ) | 
|---|
|  |  |  | .in(HiddenDanger::getStatus,Constants.ONE,Constants.TWO ) | 
|---|
|  |  |  | .apply("to_days(check_date) = to_days(now())" ) ); | 
|---|
|  |  |  | data.setDangerDealedNum(totalNum !=null?totalNum.intValue():0);//今日处理隐患数量 | 
|---|
|  |  |  | return  data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 消防 温湿度数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<TemperatureHumidityDataVO> getTemperatureHumidityData(){ | 
|---|
|  |  |  | TemperatureHumidityDataRequest request = new TemperatureHumidityDataRequest(); | 
|---|
|  |  |  | List<TemperatureHumidityDataVO> temperatureHumidityDataVOList = new ArrayList<>(); | 
|---|
|  |  |  | request.setPageNo(1); | 
|---|
|  |  |  | request.setPageSize(100); | 
|---|
|  |  |  | request.setParentIndexCode(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.TEMPERATURE_HUMIDITY).getCode()); | 
|---|
|  |  |  | BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse>> response = HKService.temperatureHumidityDataStatistic(request); | 
|---|
|  |  |  | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ | 
|---|
|  |  |  | List<TemperatureHumidityDataResponse> temperatureHumidityDataResponseList = response.getData().getList(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(temperatureHumidityDataResponseList)){ | 
|---|
|  |  |  | Set<String> parentIndexCode = new HashSet<String>(temperatureHumidityDataResponseList.stream().map( | 
|---|
|  |  |  | i->i.getIndexCode().replace("@0","").replace("@1","") | 
|---|
|  |  |  | ).collect(Collectors.toList())); | 
|---|
|  |  |  | for (String code:parentIndexCode) { | 
|---|
|  |  |  | List<TemperatureHumidityDataResponse> dateList = | 
|---|
|  |  |  | temperatureHumidityDataResponseList.stream().filter(i->i.getIndexCode().indexOf(code)>=Constants.ZERO).collect(Collectors.toList()); | 
|---|
|  |  |  | TemperatureHumidityDataVO temperatureHumidityDataVO = new TemperatureHumidityDataVO(); | 
|---|
|  |  |  | for (TemperatureHumidityDataResponse data:dateList) { | 
|---|
|  |  |  | if(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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | temperatureHumidityDataVOList.add(temperatureHumidityDataVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return temperatureHumidityDataVOList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 用电总能耗同比、环比和区域用电量集合 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  EnergyBoardVO centerEnergyData(){ | 
|---|
|  |  |  | EnergyBoardVO data = new EnergyBoardVO(); | 
|---|
|  |  |  | Random random = new Random(); | 
|---|
|  |  |  | PlatformWaterGas smoke=  platformWaterGasMapper.selectOne(new QueryWrapper<PlatformWaterGas>() | 
|---|
|  |  |  | .select("sum(num) as num") | 
|---|
|  |  |  | .lambda() | 
|---|
|  |  |  | .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformWaterGas::getType,Constants.THREE) | 
|---|
|  |  |  | .apply("year(time_info) = year(now())") | 
|---|
|  |  |  | .last("limit 1 " )); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | data.setSmokeBoxTotal(0); | 
|---|
|  |  |  | if(smoke!=null){ | 
|---|
|  |  |  | data.setSmokeBoxTotal(Constants.formatBigdecimal(smoke.getNum()).intValue());//当年烟箱数 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal carbonGas = new BigDecimal(0);//本月用气 | 
|---|
|  |  |  | BigDecimal carbonWater = new BigDecimal(0);//本月用水 | 
|---|
|  |  |  | BigDecimal carbonElec = new BigDecimal(0);//用电 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | data.setYesterdayElectricity(getDefaultData());//昨日用电 | 
|---|
|  |  |  | data.setTodayElectricity(getDefaultData());//今日用电 | 
|---|
|  |  |  | data.setElectricityQuantity(getDefaultData());//上月用电 | 
|---|
|  |  |  | data.setMonthElectricity(getDefaultData());//本月用电 | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | getMonthElectricityData(data.getMonthElectricity());//通过安防平获取本月用电量数据 | 
|---|
|  |  |  | carbonElec = new BigDecimal(StringUtils.defaultString(data.getMonthElectricity().getTotal(), "0")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | getLastMonthElectricityData(data.getElectricityQuantity());//通过安防平获取上月用电量数据 | 
|---|
|  |  |  | 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);//上月 | 
|---|
|  |  |  | Date month2 = DateUtil.increaseMonth(month0,-2);//上上月 | 
|---|
|  |  |  | Date month3 = DateUtil.increaseMonth(month0,-13);//去年同月 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<PlatformWaterGas> list =  platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>() | 
|---|
|  |  |  | .lambda() | 
|---|
|  |  |  | .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .in(PlatformWaterGas::getType,Constants.ZERO,Constants.ONE) | 
|---|
|  |  |  | .in(PlatformWaterGas::getTimeInfo,month0,month1,month3,month2) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(list!=null){ | 
|---|
|  |  |  | //类型 0用水 1用气 2用油 | 
|---|
|  |  |  | for(PlatformWaterGas model : list){ | 
|---|
|  |  |  | if(Constants.equalsInteger(model.getType(),Constants.ONE)){ | 
|---|
|  |  |  | if(model.getTimeInfo().getTime() == month0.getTime()){ | 
|---|
|  |  |  | carbonGas = Constants.formatBigdecimal(model.getNum()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(model.getTimeInfo().getTime() == month1.getTime()){ | 
|---|
|  |  |  | data.getGasQuantity().setTotalNum(Constants.formatBigdecimal(model.getNum()) ); | 
|---|
|  |  |  | data.getGasQuantity().setTotal(Constants.formatBigdecimal(model.getNum())+""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(model.getTimeInfo().getTime() == month2.getTime()){ | 
|---|
|  |  |  | data.getGasQuantity().setRingNum(Constants.formatBigdecimal(model.getNum()) ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(model.getTimeInfo().getTime() == month3.getTime()){ | 
|---|
|  |  |  | data.getGasQuantity().setSameNum(Constants.formatBigdecimal(model.getNum()) ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }else if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ | 
|---|
|  |  |  | if(model.getTimeInfo().getTime() == month0.getTime()){ | 
|---|
|  |  |  | carbonWater = Constants.formatBigdecimal(model.getNum()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(model.getTimeInfo().getTime() == month1.getTime()){ | 
|---|
|  |  |  | data.getWaterQuantity().setTotalNum(Constants.formatBigdecimal(model.getNum()) ); | 
|---|
|  |  |  | data.getWaterQuantity().setTotal(Constants.formatBigdecimal(model.getNum())+""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(model.getTimeInfo().getTime() == month2.getTime()){ | 
|---|
|  |  |  | data.getWaterQuantity().setRingNum(Constants.formatBigdecimal(model.getNum()) ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(model.getTimeInfo().getTime() == month3.getTime()){ | 
|---|
|  |  |  | data.getWaterQuantity().setSameNum(Constants.formatBigdecimal(model.getNum()) ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if( data.getGasQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){ | 
|---|
|  |  |  | //计算用气同比环比 | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | // //计算用水同比环比 | 
|---|
|  |  |  | data.getWaterQuantity().setSameRate(Constants.formatBigdecimal4Float(data.getWaterQuantity().getSameNum().divide(data.getWaterQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +""); | 
|---|
|  |  |  | data.getWaterQuantity().setRingRate(Constants.formatBigdecimal4Float(data.getWaterQuantity().getRingNum().divide(data.getWaterQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /*计算碳排量,以下三个因素之和 | 
|---|
|  |  |  | 1)用电的二氧化碳排放量(kg)=耗电量(kWh)x0.785; | 
|---|
|  |  |  | 2) 天然气二氧化碳排放量(kg)=天然气使用量(m3)×0.19; | 
|---|
|  |  |  | 3) 自来水二氧化碳排放量(kg)=自来水使用量(m3)×0.91;*/ | 
|---|
|  |  |  | data.setCarbon(Constants.formatBigdecimal2Float((carbonElec.multiply(new BigDecimal(0.785))) | 
|---|
|  |  |  | .add(carbonGas.multiply(new BigDecimal(0.19))) | 
|---|
|  |  |  | .add(carbonWater.multiply(new BigDecimal(0.91)))).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP)); | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 通过安防平获取本月数据 | 
|---|
|  |  |  | * @param data | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void getMonthElectricityData(EnergyModelDataVO data) { | 
|---|
|  |  |  | BaseResponse<MonthDataByMeterTypeResponse> response = HKService.getCurrentMonthDataByMeterType("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")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 通过安防平获取上月数据 | 
|---|
|  |  |  | * @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")); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        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"); | 
|---|
|  |  |  | //        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"); | 
|---|
|  |  |  | 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())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private EnergyModelDataVO getDefaultData() { | 
|---|
|  |  |  | EnergyModelDataVO data = new EnergyModelDataVO(); | 
|---|
|  |  |  | data.setTotal("0"); | 
|---|
|  |  |  | data.setSameRate("0"); | 
|---|
|  |  |  | data.setRingRate("0"); | 
|---|
|  |  |  | data.setTotalNum(new BigDecimal(0)); | 
|---|
|  |  |  | data.setSameNum(new BigDecimal(0)); | 
|---|
|  |  |  | data.setRingNum(new BigDecimal(0)); | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 用电总能耗同比、环比和区域用电量集合 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public   RegionEnergyListResponse energyRegionData(){ | 
|---|
|  |  |  | RegionEnergyListResponse data = null; | 
|---|
|  |  |  | BaseResponse<RegionEnergyListResponse> response = HKService.regionEnergyList("1"); | 
|---|
|  |  |  | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ | 
|---|
|  |  |  | data = response.getData(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(data == null){ | 
|---|
|  |  |  | data = new RegionEnergyListResponse(); | 
|---|
|  |  |  | data.setRootValue("0"); | 
|---|
|  |  |  | data.setSamePercent("0"); | 
|---|
|  |  |  | data.setRingPercent("0"); | 
|---|
|  |  |  | data.setSecondRegionDataList(new ArrayList<>()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(data.getSecondRegionDataList()!=null && data.getSecondRegionDataList().size()>1){ | 
|---|
|  |  |  | int index =-1; | 
|---|
|  |  |  | for (int i = 0; i <data.getSecondRegionDataList().size() ; i++) { | 
|---|
|  |  |  | RegionTopPowerResponse t=data.getSecondRegionDataList().get(i); | 
|---|
|  |  |  | if(Constants.formatBigdecimal(t.getPercent()).compareTo(new BigDecimal(1)) == 0){ | 
|---|
|  |  |  | index =i; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(index>-1){ | 
|---|
|  |  |  | data.getSecondRegionDataList().remove(index);//删除根节点数据 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return  data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 近12个水电气油耗数据统计 | 
|---|
|  |  |  | * @param type | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public   List<EnergyDataVO> energyDataList(Integer type){ | 
|---|
|  |  |  | List<EnergyDataVO> energyDataVOList = new ArrayList<>(); | 
|---|
|  |  |  | List<OilDataVO> oilDataVOList = new ArrayList<>(); | 
|---|
|  |  |  | Date lastMonth = DateUtil.increaseMonth(new Date(),-11); | 
|---|
|  |  |  | if(type >=0 && type <=2){ | 
|---|
|  |  |  | //用水用电用气 | 
|---|
|  |  |  | List<PlatformWaterGas> list =  platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>() | 
|---|
|  |  |  | .select("DATE_FORMAT(TIME_INFO,'%Y-%m') as time_info_str,sum(num) as num") | 
|---|
|  |  |  | .lambda() | 
|---|
|  |  |  | .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformWaterGas::getType,type) | 
|---|
|  |  |  | .apply("time_info BETWEEN DATE_SUB(CURDATE(), INTERVAL 12 MONTH) AND CURDATE()")//近12个月 | 
|---|
|  |  |  | .last(" group by DATE_FORMAT(TIME_INFO,'%Y-%m')") | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | for (int i = 0; i < 12; i++) { | 
|---|
|  |  |  | Date tempDate = DateUtil.increaseMonth(lastMonth,i); | 
|---|
|  |  |  | EnergyDataVO data = new EnergyDataVO(); | 
|---|
|  |  |  | data.setTimeData(DateUtil.getFomartDate(tempDate,"YYYY-MM")); | 
|---|
|  |  |  | data.setEnergy(new BigDecimal(0)); | 
|---|
|  |  |  | if(list!=null){ | 
|---|
|  |  |  | for(PlatformWaterGas m : list){ | 
|---|
|  |  |  | if(StringUtils.equals(m.getTimeInfoStr(),data.getTimeData())){ | 
|---|
|  |  |  | data.setEnergy(Constants.formatBigdecimal(m.getNum())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | energyDataVOList.add(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | String lastYear = null; | 
|---|
|  |  |  | int lastMonths = 0,curMonths =0; | 
|---|
|  |  |  | String curYear =DateUtil.getFomartDate(new Date(),"yyyy"); | 
|---|
|  |  |  | for (int i = 0; i < 12; i++) { | 
|---|
|  |  |  | Date tempDate = DateUtil.increaseMonth(lastMonth,i); | 
|---|
|  |  |  | String tt =DateUtil.getFomartDate(tempDate,"yyyy"); | 
|---|
|  |  |  | if(!StringUtils.equals(curYear,tt)){ | 
|---|
|  |  |  | lastYear = tt; | 
|---|
|  |  |  | lastMonths = i+1;//去年的月份数 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | EnergyDataVO data = new EnergyDataVO(); | 
|---|
|  |  |  | data.setTimeData(DateUtil.getFomartDate(tempDate,"YYYY-MM")); | 
|---|
|  |  |  | //                data.setTimeData(DateUtil.getFomartDate(tempDate,(i+1)+"月")); | 
|---|
|  |  |  | data.setEnergy(new BigDecimal(0)); | 
|---|
|  |  |  | energyDataVOList.add(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | curMonths = 12 - lastMonths;//今年的月份数 | 
|---|
|  |  |  | EnergyTrendRequest param = new EnergyTrendRequest(); | 
|---|
|  |  |  | param.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 = 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-lastMonths],"0"))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return energyDataVOList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  VisitDataVO visitSecurityData(){ | 
|---|
|  |  |  | //待访问、已登记、已离开 | 
|---|
|  |  |  | VisitDataVO result = new VisitDataVO(); | 
|---|
|  |  |  | result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>() | 
|---|
|  |  |  | .eq(Visits::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .apply(" now() >  STARTTIME and now() < ENDTIME") | 
|---|
|  |  |  | .in(Visits::getStatus,Constants.VisitStatus.pass,Constants.VisitStatus.xfSuccess )));//待访问 | 
|---|
|  |  |  | 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.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 )));//已签离 | 
|---|
|  |  |  | /*PageWrap<Visits> pageWrap = new PageWrap<>(); | 
|---|
|  |  |  | pageWrap.setCapacity(10); | 
|---|
|  |  |  | pageWrap.setPage(1); | 
|---|
|  |  |  | pageWrap.setModel(new Visits()); | 
|---|
|  |  |  | pageWrap.getModel().setLevelStatus(Constants.ZERO); | 
|---|
|  |  |  | pageWrap.getModel().setStatus(Constants.TWO); | 
|---|
|  |  |  | PageData<Visits> visitsPageData =    VisitsServiceImpl.retentionPageBiz(pageWrap,visitsJoinMapper,systemDictDataBiz); | 
|---|
|  |  |  | List<VisitRetentionDataVO> list = new ArrayList<>(); | 
|---|
|  |  |  | if(visitsPageData !=null && visitsPageData.getRecords() !=null && visitsPageData.getRecords().size()>0){ | 
|---|
|  |  |  | for (Visits model : visitsPageData.getRecords()) { | 
|---|
|  |  |  | VisitRetentionDataVO data = new VisitRetentionDataVO(); | 
|---|
|  |  |  | data.setName(model.getName()); | 
|---|
|  |  |  | data.setCompanyName(model.getCompanyName()); | 
|---|
|  |  |  | data.setTimeOutMinute(Constants.formatIntegerNum(model.getTimeOut())); | 
|---|
|  |  |  | list.add(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | result.setRetentionNum(visitsPageData.getTotal()); | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String code= systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.TIMEOUT_WARNING).getCode(); | 
|---|
|  |  |  | MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); | 
|---|
|  |  |  | queryWrapper.selectAll(Visits.class); | 
|---|
|  |  |  | queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName); | 
|---|
|  |  |  | queryWrapper.select("TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) AS timeOut"); | 
|---|
|  |  |  | queryWrapper.selectAs(Company::getName,Visits::getReceptMemberDepartment); | 
|---|
|  |  |  | queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId); | 
|---|
|  |  |  | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); | 
|---|
|  |  |  | queryWrapper.leftJoin(" member m on m.id= t.MEMBER_ID"); | 
|---|
|  |  |  | queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.signin); | 
|---|
|  |  |  | queryWrapper.apply(" TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) <= "+code+"  "); | 
|---|
|  |  |  | queryWrapper.ne("m.type ",Constants.TWO); | 
|---|
|  |  |  | queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO); | 
|---|
|  |  |  | queryWrapper.orderByDesc(Visits::getEditDate); | 
|---|
|  |  |  | List<Visits> vr = visitsJoinMapper.selectList(queryWrapper); | 
|---|
|  |  |  | result.setVisitRetentionDataList(new ArrayList<>());//访客滞留数据集合 | 
|---|
|  |  |  | if(vr!=null&&vr!=null){ | 
|---|
|  |  |  | vr.stream().forEach(s ->{ | 
|---|
|  |  |  | VisitRetentionDataVO t = new VisitRetentionDataVO(); | 
|---|
|  |  |  | t.setName(s.getName()); | 
|---|
|  |  |  | t.setCompanyName(s.getCompanyName()); | 
|---|
|  |  |  | t.setTimeOutMinute(s.getTimeOut()); | 
|---|
|  |  |  | result.getVisitRetentionDataList().add(t); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | result.setRetentionNum(result.getVisitRetentionDataList().size()); | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  SecurityBoardVO centerSecurityData(){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SecurityBoardVO data = new SecurityBoardVO(); | 
|---|
|  |  |  | getParkingCarsNum(data);//获取车位数据 | 
|---|
|  |  |  | List<Retention> retentionList = retentionMapper.selectJoinList(Retention.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<Retention>() | 
|---|
|  |  |  | .selectAll(Retention.class) | 
|---|
|  |  |  | .selectAs(Company::getType,Retention::getCompanyType) | 
|---|
|  |  |  | .leftJoin(Company.class,Company::getId,Retention::getCompanyId) | 
|---|
|  |  |  | .eq(Retention::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //今日在园人数 | 
|---|
|  |  |  | data.setInParkTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->!Constants.equalsInteger(i.getType(),Constants.THREE)).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //在园长期相关方人数 | 
|---|
|  |  |  | data.setRelatedTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.FOUR) ).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //在园内部员工人数 | 
|---|
|  |  |  | data.setInternalTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO) ).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //在园访客数量 | 
|---|
|  |  |  | data.setVisitTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Objects.isNull(i.getCompanyType())).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //在园车辆 | 
|---|
|  |  |  | data.setInParkCarTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //在园车辆 | 
|---|
|  |  |  | data.setInParkCarUserTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.FIVE)).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | /* //在园相关方车辆 | 
|---|
|  |  |  | data.setRelatedCarTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE) | 
|---|
|  |  |  | &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.relation)).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //内部车辆 | 
|---|
|  |  |  | data.setInternalCarTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE) | 
|---|
|  |  |  | &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.internal)).count() | 
|---|
|  |  |  | );*/ | 
|---|
|  |  |  | //来访车辆 | 
|---|
|  |  |  | data.setVisitCarTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE) | 
|---|
|  |  |  | &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.fkCar)).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //自由物流车数量 | 
|---|
|  |  |  | data.setVisitCarTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE) | 
|---|
|  |  |  | &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.atwlzyCar)).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //市公司卸货车数量 | 
|---|
|  |  |  | data.setInternalJobCarTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE) | 
|---|
|  |  |  | &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.sgsxhCar)).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //外协车数量 | 
|---|
|  |  |  | data.setRelatedJobCarTotal( | 
|---|
|  |  |  | (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE) | 
|---|
|  |  |  | &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.wxysCar)).count() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | data.setVideoPluginUrl(getVideoUrl()); | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String getVideoUrl() { | 
|---|
|  |  |  | return  systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()+"plugin/VideoWebPlugin.exe"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void getParkingCarsNum(SecurityBoardVO data) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | BaseResponse<ParkingStatisticResponse> response = HKService.getParkingStatistics(); | 
|---|
|  |  |  | if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) || response.getData()==null | 
|---|
|  |  |  | ||response.getData().getTodayParkingDataDto() == null){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | data.setParkingLotTotal(Constants.formatIntegerNum(response.getData().getTodayParkingDataDto().getTotalPlace()));//总车位 | 
|---|
|  |  |  | data.setFreeParkingLot(Constants.formatIntegerNum(response.getData().getTodayParkingDataDto().getLeftPlace()));//剩余车位 | 
|---|
|  |  |  | data.setParkingUseRate(Constants.formatBigdecimal(response.getData().getTodayParkingDataDto().getUseRate()));//车位使用率 | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | .eq(Platform::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .orderByAsc(Platform::getSortnum) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *    WAIT_CONFIRM(0, "待确认","待确认" ), | 
|---|
|  |  |  | *         WART_SIGN_IN(1, "待签到","待签到" ), | 
|---|
|  |  |  | *         WAIT_CALL(2, "已签到","已签到"), | 
|---|
|  |  |  | *         IN_WAIT(3, "入园等待","入园等待" ), | 
|---|
|  |  |  | *         CALLED(4, "已叫号","已叫号" ), | 
|---|
|  |  |  | *         WORKING(5, "作业中","作业中" ), | 
|---|
|  |  |  | *         DONE(6, "作业完成 ","作业完成" ), | 
|---|
|  |  |  | *         TRANSFERING(7, "转移中","转移中" ), | 
|---|
|  |  |  | *         EXCEPTION(8, "异常挂起","异常挂起" ), | 
|---|
|  |  |  | *         AUTHED_LEAVE(9, "已授权离园","已授权离园" ), | 
|---|
|  |  |  | *         LEAVED(10, "已离园 ","已离园 " ), | 
|---|
|  |  |  | *         OVER_NUMBER(11, "已过号","已过号" ), | 
|---|
|  |  |  | *         CANCEL(12, "已取消","已取消" ), | 
|---|
|  |  |  | */ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | .apply("to_days(t.create_date) = to_days(now())") | 
|---|
|  |  |  | //.select(" (  select sum(ifnull(pl.IO_QTY , 0 ))   from platform_wms_detail pl  where   pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum) | 
|---|
|  |  |  | .select(" (  case when t.total_num is null  then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id  ) else t.total_num end )",PlatformJob::getWorkNum) | 
|---|
|  |  |  | //                    .apply("to_days(t.create_date) = to_days(now())") | 
|---|
|  |  |  | .eq(Platform::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() }) | 
|---|
|  |  |  | .orderByDesc(PlatformJob::getStatus )); | 
|---|
|  |  |  | //                    .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) | 
|---|
|  |  |  | .orderByDesc(PlatformJob::getStatus ) | 
|---|
|  |  |  | .orderByAsc(PlatformJob::getSortnum ) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | 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<WorkEfficiencyVO> workEfficiencyVOList = new ArrayList<>(); | 
|---|
|  |  |  | 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 )", PlatformJob::getIoQty) | 
|---|
|  |  |  | .apply("to_days(t.create_date) = to_days(now())") | 
|---|
|  |  |  | //                .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.done_date) = to_days(now())") | 
|---|
|  |  |  | .eq(Platform::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() | 
|---|
|  |  |  | , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() | 
|---|
|  |  |  | 
|---|
|  |  |  | if(jobList==null || jobList.size()==0){ | 
|---|
|  |  |  | return workEfficiencyVOList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /*      List<PlatformWmsDetail> jobList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, new MPJLambdaWrapper<PlatformWmsDetail>() | 
|---|
|  |  |  | .selectAll( PlatformWmsDetail.class) | 
|---|
|  |  |  | .selectAs( PlatformJob::getDoneDate,PlatformWmsDetail::getDoneDate) | 
|---|
|  |  |  | .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId) | 
|---|
|  |  |  | .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .eq(PlatformJob::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .in(Constants.equalsInteger(type,Constants.ZERO),PlatformJob::getType,new Integer[]{0,2,4}) | 
|---|
|  |  |  | .in(Constants.equalsInteger(type,Constants.ONE),PlatformJob::getType,new Integer[]{1,3}) | 
|---|
|  |  |  | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() | 
|---|
|  |  |  | , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() | 
|---|
|  |  |  | , Constants.PlatformJobStatus.LEAVED.getKey()) | 
|---|
|  |  |  | .apply("to_days(t1.create_date) = to_days(now())") | 
|---|
|  |  |  | );*/ | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public      List<PlatformWarnEvent> warningList(int limit){ | 
|---|
|  |  |  | List<PlatformWarnEvent> platformLogList = platformWarnEventMapper.selectList(new QueryWrapper<PlatformWarnEvent>().lambda() | 
|---|
|  |  |  | List<PlatformWarnEvent> platformLogList = platformWarnEventJoinMapper | 
|---|
|  |  |  | .selectJoinList(PlatformWarnEvent.class,new MPJLambdaWrapper<PlatformWarnEvent>() | 
|---|
|  |  |  | .selectAll(PlatformWarnEvent.class) | 
|---|
|  |  |  | .selectAs(Platform::getName,PlatformWarnEvent::getPlatformName) | 
|---|
|  |  |  | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) | 
|---|
|  |  |  | .eq(PlatformWarnEvent::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .apply("to_days(t.create_date) = to_days(now())") | 
|---|
|  |  |  | .orderByDesc(PlatformWarnEvent::getCreateDate) | 
|---|
|  |  |  | .last(" limit "+limit) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | 
|---|
|  |  |  | if( Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())){ | 
|---|
|  |  |  | data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); | 
|---|
|  |  |  | data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); | 
|---|
|  |  |  | data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //已叫号(预约车、签到数、已叫号) | 
|---|
|  |  |  | if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.CALLED.getKey()) ){ | 
|---|
|  |  |  | data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); | 
|---|
|  |  |  | data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); | 
|---|
|  |  |  | data.setCalledNum(data.getCalledNum()+Constants.formatIntegerNum(model.getCountum())); | 
|---|
|  |  |  | data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 作业车辆(预约车、签到数、已叫号、作业车) | 
|---|
|  |  |  | if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.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 = initWholeProvinceBoardVOData(factoryCode); | 
|---|
|  |  |  | /* 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  WholeProvinceBoardVO centerProvinceDataNew(String  factoryCode){ | 
|---|
|  |  |  | WholeProvinceBoardVO data = initWholeProvinceBoardVOData(factoryCode); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | initOutboundCapabilityNew(data,factoryCode); | 
|---|
|  |  |  | return  data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private WholeProvinceBoardVO initWholeProvinceBoardVOData(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()))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return  data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void initOutboundCapabilityNew(WholeProvinceBoardVO data, String code) { | 
|---|
|  |  |  | TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest(); | 
|---|
|  |  |  | if(StringUtils.isNotBlank(code)){ | 
|---|
|  |  |  | param.setFacrotyCodeList(new ArrayList<>()); | 
|---|
|  |  |  | param.getFacrotyCodeList().add(code); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TmsGetOutCapabilityResponse result=  tmsService.getOutCapacity(param); | 
|---|
|  |  |  | if(result !=null){ | 
|---|
|  |  |  | data.setCrrentOutNum(Constants.formatBigdecimal(result.getCurrentOutNum())  );//今日出库量 | 
|---|
|  |  |  | data.setNeedTransportOrderNum(Constants.formatBigdecimal(result.getCurrentTransportNum()));//当前任务量-已配载未出库 | 
|---|
|  |  |  | data.setNoNeedTransportOrderNum(Constants.formatBigdecimal(result.getCurrentNotTransportNum())  );//当前任务量-无需调度 | 
|---|
|  |  |  | data.setCrrentRestNum(Constants.formatBigdecimal(result.getCurrentTransportNum()));//剩余任务量-已配载未出库 | 
|---|
|  |  |  | data.setCurrentOrderNum(Constants.formatBigdecimal(result.getCurrentOrderNum())  );//当前订单量 | 
|---|
|  |  |  | data.setCurrentPlanCarNum(Constants.formatBigdecimal(result.getCurrentTransportVehicleNum()).intValue() );//当前任务车次 | 
|---|
|  |  |  | data.setCrrentRestCarNum(Constants.formatBigdecimal(result.getCurrentTransportVehicleNum()).intValue() );//剩余任务车次量 | 
|---|
|  |  |  | data.setCrrentOutCarNum(Constants.formatBigdecimal(result.getCurrentOutVehicleNum()).intValue());//今日出库车次 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //当前任务量和剩余任务量,为(无需配载+需要配载的任务量之和) | 
|---|
|  |  |  | data.setCurrentPlanNum(data.getNeedTransportOrderNum().add(data.getNoNeedTransportOrderNum()));//当前任务量 | 
|---|
|  |  |  | data.setCrrentRestNum(data.getCurrentPlanNum());//当前任务量 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //处理单位成“箱”,一箱=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)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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())); | 
|---|
|  |  |  | t.setProvinceCode(model.getToProvinceCode()); | 
|---|
|  |  |  | t.setProvinceName(model.getToProvinceName()); | 
|---|
|  |  |  | result.add(t); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(Constants.UNIT_TYPE == 1) { | 
|---|
|  |  |  | for(WholeProvinceMapVO t : result){ | 
|---|
|  |  |  | //处理单位成“箱”,一箱=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)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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 ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|