From c5cc7da07c7f202f336468c0cd0d2789b4775b03 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 09 十月 2024 11:31:15 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 100 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 71 insertions(+), 29 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java index 22d5638..191e785 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java @@ -6,7 +6,6 @@ import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.param.BaseResponse; -import com.doumee.core.haikang.model.param.request.CarChargeAddRequest; import com.doumee.core.haikang.model.param.request.ParkReservationAddRequest; import com.doumee.core.haikang.model.param.request.ParkReservationDelRequest; import com.doumee.core.haikang.model.param.respose.ParkReservationAddResponse; @@ -36,13 +35,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.RequestBody; import java.math.BigDecimal; import java.math.RoundingMode; @@ -55,6 +56,7 @@ * @date 2024/06/28 10:03 */ @Service +@Slf4j public class PlatformJobServiceImpl implements PlatformJobService { @Autowired @@ -297,7 +299,7 @@ .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode) .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId) .eq(PlatformJob::getIsdeleted,Constants.ZERO) - .eq(Platform::getIsdeleted,Constants.ZERO) + .apply("( t1.isdeleted = 0 or t.PLATFORM_ID is null )") .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId()) .like(pageWrap.getModel().getCarCodeFront() != null, PlatformJob::getCarCodeFront, pageWrap.getModel().getCarCodeFront()) @@ -359,12 +361,30 @@ List<PlatformWmsDetail> platformWmsDetailList = platformWmsDetailMapper.selectList(new QueryWrapper<PlatformWmsDetail>().lambda() .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) .eq(PlatformWmsDetail::getJobId,platformJob.getId())); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformWmsDetailList)){ platformJob.setTotalNum( platformWmsDetailList.stream().map(m->m.getIoQty()).reduce(BigDecimal.ZERO,BigDecimal::add) ); platformWmsJob.setPlatformWmsDetailList(platformWmsDetailList); platformJob.setPlatformWmsJob(platformWmsJob); + + if(Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zyczh) + || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxczh)){ + + Integer unLockCount = platformWmsDetailList.stream().filter(i->Constants.equalsInteger(i.getLockStatus(),Constants.ZERO)).collect(Collectors.toList()).size(); + if(Constants.equalsInteger(unLockCount,Constants.ZERO)){ + platformJob.setLockStatus(Constants.TWO); //鍏ㄩ儴涓婇攣 + }else if(Constants.equalsInteger(unLockCount,platformWmsDetailList.size())){ + platformJob.setLockStatus(Constants.ZERO); //鏈笂閿� + }else{ + platformJob.setLockStatus(Constants.ONE); //閮ㄥ垎涓婇攣 + } + + } + + + } } } @@ -406,7 +426,7 @@ platformJob.setWaitTime(waitTime); } }else{ - platformJob.setWaitTime("绛夊緟鍙彿"); + platformJob.setWaitTime("棰勮绛夊緟锛�-灏忔椂-鍒嗛挓"); } }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey()) || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){ @@ -428,7 +448,6 @@ .ne(PlatformLog::getParam3,Constants.ZERO+"") .orderByDesc(PlatformLog::getCreateDate)); platformJob.setWorkTime(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum)); - } } @@ -461,7 +480,6 @@ //鏌ヨ鍓嶆柟鎺掗槦鏁伴噺 this.queryWaitNum(platformJob); } - driverHomeVO.setPlatformJobList(platformJobList); @@ -808,13 +826,14 @@ return platformJob; } + private Logger logger = LoggerFactory.getLogger(PlatformJobServiceImpl.class); @Override public void sendInPark(PlatformJob platformJob){ + log.info("銆愪笅鍙戝仠杞﹀満鏉冮檺銆�================寮�濮�===="+platformJob.getCarCodeFront()); if(Constants.equalsInteger(platformJob.getType(),Constants.TWO) || Constants.equalsInteger(platformJob.getType(),Constants.THREE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){ - //鏌ヨ褰撳墠鍚敤鐨勫仠杞﹀満 List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>() .lambda() @@ -827,16 +846,24 @@ .eq(VisitPark::getObjType,Constants.ONE) .eq(VisitPark::getHkStatus,Constants.ONE) .isNotNull(VisitPark::getHkId) - .apply(" END_TIME > now() ") ); + + log.info("銆愪笅鍙戝仠杞﹀満鏉冮檺銆�================寮�濮嬪彇娑堝綋鍓嶈溅杈嗘墍鏈夋潈闄�===="+JSONObject.toJSONString(cancelParkList)); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(cancelParkList)){ for (VisitPark visitPark:cancelParkList) { ParkReservationDelRequest param = new ParkReservationDelRequest(); param.setReserveOrderNo(visitPark.getHkId()); - HKService.parkReservationDeletion(param); + BaseResponse response = HKService.parkReservationDeletion(param); + if(response!=null + && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ + visitPark.setHkStatus(Constants.THREE); + visitPark.setIsdeleted(Constants.ONE); + visitPark.setRemark("鍐嶆涓嬪彂娓呯┖鏉冮檺"); + visitPark.setEditDate(new Date()); + visitParkMapper.updateById(visitPark); + } } } - List<VisitPark> visitParkList = new ArrayList<>(); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(parksList)){ @@ -907,7 +934,6 @@ .eq(VisitPark::getObjType,Constants.ONE) .eq(VisitPark::getHkStatus,Constants.ONE) .isNotNull(VisitPark::getHkId) - .apply(" END_TIME > now() ") ); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(visitParkList)){ for (VisitPark visitPark:visitParkList) { @@ -1042,7 +1068,7 @@ */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) - public void platformOverNumber(JobOperateDTO jobOperateDTO){ + public PlatformJob platformOverNumber(JobOperateDTO jobOperateDTO){ if(Objects.isNull(jobOperateDTO) || Objects.isNull(jobOperateDTO.getJobId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); @@ -1063,8 +1089,7 @@ //瀛樺偍鎿嶄綔鏃ュ織 savePlatformLog(Constants.PlatformJobLogType.OVER_NUMBER.getKey(),oldPlatformJob,platformJob, Constants.PlatformJobLogType.OVER_NUMBER.getInfo()); - - + return platformJob; } @@ -1486,8 +1511,7 @@ platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda() .eq(PlatformJob::getIsdeleted,Constants.ZERO) .and(i-> - i.like(PlatformJob::getDoneDate,queryDateStr) - .or().ne(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey()) + i.like(PlatformJob::getArriveDate,queryDateStr) ) ) ); @@ -1512,31 +1536,50 @@ .eq(Platform::getStatus,Constants.ZERO) ); for (Platform platform:platformList) { - PlatformDataListResponse platformDataListResponse = new PlatformDataListResponse(); + PlatformDataListResponse platformDataListResponse = new PlatformDataListResponse(); platformDataListResponse.setId(platform.getId()); platformDataListResponse.setHkId(platform.getHkId()); platformDataListResponse.setName(platform.getName()); platformDataListResponse.setWorkStatus(Constants.ZERO); //鏌ヨ褰撳墠浣滀笟杞﹁締 - PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda() - .eq(PlatformJob::getIsdeleted,Constants.ZERO) - .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey()) - .orderByDesc(PlatformJob::getWorkTime) + + PlatformJob platformJob = platformJobJoinMapper.selectJoinOne(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() + .selectAll(PlatformJob.class) + .selectAs(Platform::getWorkRate, PlatformJob::getWorkRate) + .selectAs(Platform::getName, PlatformJob::getPlatformName) + .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 workNum ") + .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 ") + .leftJoin(Platform.class, Platform::getId, PlatformJob::getPlatformId) + .eq(PlatformJob::getStatus, Constants.PlatformJobStatus.WORKING.getKey()) + .eq(PlatformJob::getPlatformId, platform.getId()) + .orderByDesc(PlatformJob::getStatus) + .orderByDesc(PlatformJob::getStartDate) .last(" limit 1") ); - if(Objects.nonNull(platformJob)){ + + if (Objects.nonNull(platformJob)) { platformDataListResponse.setCarCode(platformJob.getCarCodeFront()); platformDataListResponse.setWorkType( - Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zycxh) - ||Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxcxh) - ||Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.sgscxh)?Constants.ZERO:Constants.ONE + Constants.equalsInteger(platformJob.getType(), Constants.platformJobType.zycxh) + || Constants.equalsInteger(platformJob.getType(), Constants.platformJobType.wxcxh) + || Constants.equalsInteger(platformJob.getType(), Constants.platformJobType.sgscxh) ? Constants.ZERO : Constants.ONE ); platformDataListResponse.setWorkStatus(Constants.ONE); //鏌ヨ浣滀笟鏃堕暱 platformDataListResponse.setWorkTime( this.getWorkTime(platformJob) ); + //璁$畻宸蹭綔涓氭椂闀� 鏍规嵁鏈堝彴宸ヤ綔鏁堢巼 璁$畻浠诲姟閲忛渶瑕佹椂闂� + if (Objects.isNull(platformJob.getWorkNum()) || Objects.isNull(platformJob.getWorkRate())) { + platformDataListResponse.setFinishTime(null); + } else { + Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate()).intValue(); + Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(), workMinute); + platformDataListResponse.setFinishTime(overDate); + } } + platformDataListResponseList.add(platformDataListResponse); } return platformDataListResponseList; } @@ -1642,9 +1685,8 @@ .selectAll(PlatformJob.class) .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId) - .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()) - .in(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()) - .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()) + .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(), + Constants.PlatformJobStatus.IN_WAIT.getKey(),Constants.PlatformJobStatus.CALLED.getKey()) .eq(PlatformJob::getIsdeleted,Constants.ZERO) .isNotNull(PlatformJob::getCarCodeFront) .orderByDesc(PlatformJob::getCreateDate) @@ -1702,7 +1744,7 @@ .selectAll(PlatformJob.class) .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate) .selectAs(Platform::getName,PlatformJob::getPlatformName) - .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 workNum ") + .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 workNum ") .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 ") .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) -- Gitblit v1.9.3