server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
@@ -230,7 +230,9 @@ @PostMapping("/powerLevel") public ApiResponse powerLevel (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { jobOperateDTO.setLoginUserInfo(getLoginUser(token)); platformJobService.powerLevel(jobOperateDTO); PlatformJob platformJob = platformJobService.powerLevel(jobOperateDTO); //下发离园权限 platformJobService.sendInPark(platformJob); return ApiResponse.success("操作成功"); } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -217,6 +217,8 @@ @TableField(exist = false) private BigDecimal useRata; @ApiModelProperty(value = "月台作业数据") @TableField(exist = false) private PlatformWorkVO platformWorkVO; server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -35,7 +35,6 @@ @ApiModelProperty(value = "创建时间") @ExcelColumn(name="创建时间") private Date createDate; @ApiModelProperty(value = "更新人编码", example = "1") @@ -144,8 +143,10 @@ @ApiModelProperty(value = "叫号时间") @ExcelColumn(name="叫号时间") private Date callDate; @ApiModelProperty(value = "叫号人编码", example = "1") @ExcelColumn(name="叫号人编码") @@ -286,6 +287,13 @@ @ExcelColumn(name="确认任务时间") private Date confirmTaskDate; @ApiModelProperty(value = "最新叫号时间") @TableField(exist = false) private Date newCallDate; @ApiModelProperty(value = "最新开始作业时间") @TableField(exist = false) private Date newStartDate; @ApiModelProperty(value = "前方排队数量", example = "1") @TableField(exist = false) @@ -359,10 +367,12 @@ private Integer jobType; @ApiModelProperty(value = "开始作业时间起") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date beginWorkDateStart; @ApiModelProperty(value = "开始作业时间止") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date beginWorkDateEnd; server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -197,7 +197,7 @@ * 手动授权车辆离场 * @param jobOperateDTO */ void powerLevel(JobOperateDTO jobOperateDTO); PlatformJob powerLevel(JobOperateDTO jobOperateDTO); /** * 获取月台下的任务信息 * @param groupId server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -252,6 +252,8 @@ //查询今天所有的任务数据 List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>() .selectAll(PlatformJob.class) .select(" ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 5 order by pl.CREATE_DATE desc limit 1 ) as newStartDate ") .select(" ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 4 order by pl.CREATE_DATE desc limit 1 ) as newCallDate ") .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName) .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode) .eq(PlatformJob::getIsdeleted,Constants.ZERO) @@ -296,7 +298,6 @@ ); platformWorkVO.setWaitNum( platformJobs.stream().filter(i-> Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.TRANSFERING.getKey()) || Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey()) @@ -331,10 +332,9 @@ platformGroupWorkVO.setWaitNum(platformJobJoinMapper.selectCount(new QueryWrapper<PlatformJob>().lambda() .eq(PlatformJob::getPlatformGroupId,platformGroupId) .in(PlatformJob::getStatus, Constants.PlatformJobStatus.WAIT_CALL.getKey(), Constants.PlatformJobStatus.IN_WAIT.getKey(), Constants.PlatformJobStatus.CALLED.getKey() .and( i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or() .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()).or() .apply(" ( status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and PLATFORM_GROUP_ID = "+platformGroupId+" ) ") ) ) ); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -175,7 +175,7 @@ .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate) .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName) .selectAs(PlatformWmsJob::getIoCreatedate,PlatformJob::getIoCreatedate) .selectAs(SystemUser::getUsername,PlatformJob::getOutUserName) .selectAs(SystemUser::getRealname,PlatformJob::getOutUserName) .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) .leftJoin(PlatformGroup.class,PlatformGroup::getId,Platform::getGroupId) .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode) @@ -203,6 +203,7 @@ .eq(pageWrap.getModel().getSingType() != null, PlatformJob::getSingType, pageWrap.getModel().getSingType()) .eq(pageWrap.getModel().getSignDistance() != null, PlatformJob::getSignDistance, pageWrap.getModel().getSignDistance()) .eq(pageWrap.getModel().getPlatformNames() != null, PlatformJob::getPlatformNames, pageWrap.getModel().getPlatformNames()) .like(pageWrap.getModel().getPlatformName() != null, Platform::getName, pageWrap.getModel().getPlatformName()) .eq(pageWrap.getModel().getPlatforms() != null, PlatformJob::getPlatforms, pageWrap.getModel().getPlatforms()) .eq(pageWrap.getModel().getPlatformId() != null, PlatformJob::getPlatformId, pageWrap.getModel().getPlatformId()) .ge(pageWrap.getModel().getInwaitDate() != null, PlatformJob::getInwaitDate, Utils.Date.getStart(pageWrap.getModel().getInwaitDate())) @@ -296,10 +297,6 @@ .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode) .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId()) .like(pageWrap.getModel().getCarCodeFront() != null, PlatformJob::getCarCodeFront, pageWrap.getModel().getCarCodeFront()) // .eq(Objects.nonNull(pageWrap.getModel().getCallType()) // &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE), // PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey() // ) .apply(Objects.nonNull(pageWrap.getModel().getCallType()) &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE), @@ -325,7 +322,7 @@ &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.THREE), i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or() .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()).or() .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()).or() // .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()).or() .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_GROUP_ID = "+pageWrap.getModel().getPlatformGroupId()+" ) ") ) // .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd")) @@ -550,6 +547,16 @@ }else{ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"签到类型错误"); } //查询月台组数据 PlatformGroup platformGroup = platformGroupMapper.selectById(platformJob.getPlatformGroupId()); if(Objects.isNull(platformGroup)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"未查询到月台组信息"); } if(System.currentTimeMillis() > DateUtil.getDateByString(DateUtil.getCurrDate() + " " + platformGroup.getEndTime() + ":59" ).getTime() || System.currentTimeMillis() < DateUtil.getDateByString(DateUtil.getCurrDate() + " " + platformGroup.getStartTime() + ":00" ).getTime()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未在工作时间["+platformGroup.getStartTime() + "-" + platformGroup.getEndTime() +"],无法进行签到"); } platformJob.setSignDate(new Date()); platformJob.setSingType(signInDTO.getSignType()); platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey()); @@ -617,13 +624,16 @@ ){ //查询前方排队数量 this.queryWaitNum(platformJob); Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId()); if(Objects.nonNull(platform)){ platformJob.setPlatformName(platform.getName()); } }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ //作业月台信息 Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId()); if(Objects.nonNull(platform)){ platformJob.setPlatformName(platform.getName()); } } platformJob.dealTime(); this.getWorkTime(platformJob); @@ -1116,7 +1126,8 @@ if(Objects.isNull(platformJob)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ if(! (Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey()) ||Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.EXCEPTION.getKey()) )){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转!"); } PlatformJob oldPlatformJob = new PlatformJob(); @@ -1146,7 +1157,7 @@ */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void powerLevel(JobOperateDTO jobOperateDTO){ public PlatformJob powerLevel(JobOperateDTO jobOperateDTO){ if(Objects.isNull(jobOperateDTO) || Objects.isNull(jobOperateDTO.getJobId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); @@ -1164,11 +1175,16 @@ platformJob.setOutHkdate(new Date()); platformJob.setStatus(Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()); platformJob.setEditDate(new Date()); platformJob.setRemark(jobOperateDTO.getRemark()); platformJobMapper.updateById(platformJob); //存储操作日志 savePlatformLog(Constants.PlatformJobLogType.AUTHED_LEAVE.getKey(),oldPlatformJob,platformJob , Constants.PlatformJobLogType.AUTHED_LEAVE.getInfo()); //TODO 授权车辆离场权限 return platformJob; } @@ -1273,6 +1289,7 @@ platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); String v = Long.toString((platformLog.getCreateDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime() )/ 1000) ; platformLog.setParam3(v); platformLog.setRemark(platformJobBefor.getPlatformId().toString()); }else{ platformLog.setParam3("0"); } @@ -1300,6 +1317,7 @@ platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); String v = Long.toString((platformJobAfter.getDoneDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime()) / 1000) ; platformLog.setParam3(v); platformLog.setRemark(platformJobBefor.getPlatformId().toString()); } }else if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.WORKING.getKey())){ platformLog.setParam1(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformReasonServiceImpl.java
@@ -107,6 +107,7 @@ public List<PlatformReason> findList(PlatformReason platformReason) { QueryWrapper<PlatformReason> wrapper = new QueryWrapper<>(platformReason); wrapper.eq("isdeleted",Constants.ZERO); wrapper.orderByAsc("SORTNUM"); return platformReasonMapper.selectList(wrapper); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -316,6 +316,9 @@ .selectAs(PlatformGroup::getName,Platform::getGroupName) .select(" (select ifnull(TIMESTAMPDIFF(HOUR, '2023-01-01 '||pg.start_time||':00', '2023-01-01 '||pg.end_time||':00' ),0) from platform_group pg " + " where t.group_id = pg.id ) as openTime ") .select(" ( select ROUND( ifnull(SUM(pl.PARAM3),0) / 3600 , 2 ) from platform_log pl where pl.OBJ_ID = t.id and pl.remark = t.id " + " and pl.CREATE_DATE > '"+Utils.Date.getStart(platform.getQueryDateStart())+"' " + "and pl.CREATE_DATE <= '"+Utils.Date.getEnd(platform.getQueryDateEnd())+"' ) as workCountTime ") .leftJoin(PlatformGroup.class,PlatformGroup::getId,Platform::getGroupId); queryWrapper .eq(platform.getGroupId() != null, Platform::getGroupId, platform.getGroupId()) @@ -328,8 +331,6 @@ List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() .selectAll(PlatformJob.class) .select(" ( select ROUND( ifnull(SUM(pl.PARAM3),0) / 3600 , 2 ) from platform_log pl where pl.OBJ_ID = t.id " + " ) as workTimes ") .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey(), Constants.PlatformJobStatus.DONE.getKey(), Constants.PlatformJobStatus.TRANSFERING.getKey(), @@ -346,16 +347,13 @@ for (Platform bean:platformList) { List<PlatformJob> beanJobList = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),bean.getId())).collect(Collectors.toList()); bean.setStopCount(beanJobList.size()); bean.setWorkCountTime( beanJobList.stream().map(i->i.getWorkTimes()).reduce(BigDecimal.ZERO,BigDecimal::add) ); if(Objects.isNull(bean.getOpenTime())||bean.getOpenTime().compareTo(BigDecimal.ZERO)<=0){ bean.setUseRata(BigDecimal.ZERO); continue; } BigDecimal sumTime = BigDecimal.valueOf(sumDays).multiply(bean.getOpenTime()); bean.setUseRata( bean.getWorkCountTime().divide(sumTime,BigDecimal.ROUND_HALF_DOWN,2) bean.getWorkCountTime().multiply(new BigDecimal(100)).divide(sumTime,BigDecimal.ROUND_HALF_DOWN,2) ); } } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1011,6 +1011,7 @@ .orderByDesc(PlatformLog::getCreateDate) .last(" limit 1")); String v = Long.toString(job.getDoneDate().getTime() - lastBeginPlatform.getCreateDate().getTime() / 1000) ; lastBeginPlatform.setRemark(job.getPlatformId().toString()); lastBeginPlatform.setParam3(v); lastBeginPlatform.setParam2(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); platformLogMapper.updateById(lastBeginPlatform);//更新上一次作业的完成时间和作业时长