From a254023810a00706b427241d1e0a7d58e55b9334 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 10 二月 2025 15:13:55 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 150 ++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 122 insertions(+), 28 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 265e4a9..ff3aea9 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
@@ -10,6 +10,7 @@
import com.doumee.core.haikang.model.param.request.ParkReservationDelRequest;
import com.doumee.core.haikang.model.param.respose.ParkReservationAddResponse;
import com.doumee.core.haikang.service.HKService;
+import com.doumee.service.business.third.WmsService;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -296,16 +297,17 @@
.apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')")
.apply(pageWrap.getModel().getQueryStatusForPower() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatusForPower()+"')")
.apply(pageWrap.getModel().getQueryType() != null, " find_in_set(t.TYPE,'"+pageWrap.getModel().getQueryType()+"')")
+ .ge(pageWrap.getModel().getCreateDateStart() != null, PlatformJob::getCreateDate, pageWrap.getModel().getCreateDateStart())
+ .le(pageWrap.getModel().getCreateDateEnd() != null, PlatformJob::getCreateDate, pageWrap.getModel().getCreateDateEnd())
.ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart()))
.le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd()))
.ge(pageWrap.getModel().getBeginDoneDateStart() != null, PlatformJob::getDoneDate, Utils.Date.getStart(pageWrap.getModel().getBeginDoneDateStart()))
.le(pageWrap.getModel().getBeginDoneDateEnd() != null, PlatformJob::getDoneDate, Utils.Date.getEnd(pageWrap.getModel().getBeginDoneDateEnd()))
- .ge(pageWrap.getModel().getCreateDateStart() != null, PlatformWmsJob::getIoCreatedate, Utils.Date.getStart(pageWrap.getModel().getCreateDateStart()))
- .le(pageWrap.getModel().getCreateDateEnd() != null, PlatformWmsJob::getIoCreatedate, Utils.Date.getEnd(pageWrap.getModel().getCreateDateEnd()))
.isNotNull(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getJobType()), PlatformJob::getContractNum)
.isNull(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getContractNum)
- ;
+ .exists(StringUtils.isNotBlank(pageWrap.getModel().getWmsContractNum()),
+ "select tt.id from platform_wms_detail tt where tt.isdeleted=0 and tt.contract_num='"+pageWrap.getModel().getWmsContractNum()+"' and tt.job_id=t.id");
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -344,15 +346,12 @@
.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())
-
.apply(Objects.nonNull(pageWrap.getModel().getCallType())
&&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE),
" ( " +
" ( t.`STATUS` = "+Constants.PlatformJobStatus.WAIT_CALL.getKey()+" and t.PLATFORM_GROUP_ID = ( SELECT p.group_id FROM platform p WHERE p.id = "+pageWrap.getModel().getPlatformId()+" LIMIT 1 ) )" +
") "
)
-
-
.apply(Objects.nonNull(pageWrap.getModel().getCallType())
&&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.TWO),
" ( " +
@@ -363,8 +362,6 @@
" (t.`STATUS` = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" ) " +
") "
)
-
-
.and(Objects.nonNull(pageWrap.getModel().getCallType())
&&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.THREE),
i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or()
@@ -426,8 +423,6 @@
}
}
}
-
-
public void queryWaitNum(PlatformJob platformJob){
if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
//鏌ヨ褰撳墠鎵�鏈夋帓闃熸暟閲�
@@ -440,22 +435,24 @@
.eq(PlatformJob::getPlatformGroupId,platformJob.getPlatformGroupId())
// .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(platformJob.getArriveDate(),"yyyy-MM-dd"))
);
-
- for (PlatformJob linePlatformJob:lineUpAllList) {
- this.getWmsJobData(linePlatformJob);
- }
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(lineUpAllList)){
+ for (PlatformJob linePlatformJob:lineUpAllList) {
+ this.getWmsJobData(linePlatformJob);
+ }
//鏌ヨ鎺掗槦鍦ㄦ垜鍓嶉潰鐨勬暟鎹�
List<PlatformJob> lineUpNum = lineUpAllList.stream().filter(i->Objects.nonNull(i.getSignDate())&&i.getSignDate().getTime()<platformJob.getSignDate().getTime()).collect(Collectors.toList());
platformJob.setLineUpNum(lineUpNum.size());
- BigDecimal sumWorkRate = platformJob.getTotalNum();
+ BigDecimal sumWorkRate = Constants.formatBigdecimal(platformJob.getTotalNum());
for (PlatformJob linePlatformJob:lineUpNum) {
- sumWorkRate = sumWorkRate.add(linePlatformJob.getTotalNum());
+ sumWorkRate = sumWorkRate.add(Constants.formatBigdecimal(linePlatformJob.getTotalNum()));
}
//璁$畻棰勮绛夊緟鏃堕棿
List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda()
.eq(Platform::getIsdeleted,Constants.ZERO).eq(Platform::getGroupId,platformJob.getPlatformGroupId()));
- BigDecimal workRate = platformList.stream().map(m->m.getWorkRate()).reduce(BigDecimal.ZERO,BigDecimal::add);
+ BigDecimal workRate = new BigDecimal(0);
+ if(platformList!=null){
+ workRate = platformList.stream().map(m->Constants.formatBigdecimal(m.getWorkRate())).reduce(BigDecimal.ZERO,BigDecimal::add);
+ }
if(sumWorkRate.compareTo(BigDecimal.ZERO) > Constants.ZERO && workRate.compareTo(BigDecimal.ZERO) > Constants.ZERO ){
BigDecimal sumMinute = sumWorkRate.divide(workRate,1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
Integer sumMinuteInteger = sumMinute.intValue();
@@ -474,7 +471,9 @@
platformJob.setWaitTime("棰勮绛夊緟锛�-灏忔椂-鍒嗛挓");
}
}else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())
- || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
+ || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())
+ || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
+ || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey())){
//鏌ヨ鏈�鍚庡紑濮嬩换鍔$殑鏈堝彴璁板綍 鏃ュ織琛� 鍥犱负瀛樺湪寮傚父鎸傝捣 杞Щ 绛夐棶棰�
PlatformLog platformLog = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
.eq(PlatformLog::getJobId,platformJob.getId())
@@ -482,7 +481,7 @@
.orderByDesc(PlatformLog::getCreateDate)
.last(" limit 1")
);
- if(Objects.nonNull(platformLog)){
+ if(Objects.nonNull(platformLog) && platformJob.getWorkRate()!=null && platformJob.getWorkRate().compareTo(new BigDecimal(0))>0){
BigDecimal sumMinute = platformJob.getTotalNum().divide(platformJob.getWorkRate(),1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
platformJob.setFinishTimeStr(DateUtil.DateToStr(DateUtil.afterMinutesDate(platformLog.getCreateDate(),sumMinute.intValue()),"HH:mm"));
}
@@ -492,9 +491,12 @@
.isNotNull(PlatformLog::getParam3)
.ne(PlatformLog::getParam3,Constants.ZERO+"")
.orderByDesc(PlatformLog::getCreateDate));
- platformJob.setWorkTime(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum));
+ if(platformLogList!=null){
+ platformJob.setWorkTime(platformLogList.stream().map(m->Long.valueOf(StringUtils.defaultString(m.getParam3(),"0"))).reduce(Long.valueOf(0),Long::sum));
+ }
}
+ platformJob.setWorkTimeStr(DateUtil.getTimeStrBySecond(platformJob.getWorkTime()));
}
@@ -532,7 +534,6 @@
//鏌ヨ鍓嶆柟鎺掗槦鏁伴噺
this.queryWaitNum(platformJob);
}
-
driverHomeVO.setPlatformJobList(platformJobList);
// 鍥尯瀵艰鍥� 鍥剧墖
driverHomeVO.setReservationMap(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_GUIDEMAP).getCode());
@@ -629,7 +630,8 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈湪宸ヤ綔鏃堕棿["+platformGroup.getStartTime() + "-" + platformGroup.getEndTime() +"]锛屾棤娉曡繘琛岀鍒�");
}
//鏌ヨ浠婃棩鏈�澶х殑绛惧埌鏁�
- List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda().apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null "));
+ List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda()
+ .apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null "));
if(CollectionUtils.isEmpty(signList)){
platformJob.setSignNum(Constants.ONE);
} else{
@@ -924,6 +926,23 @@
@Override
public void sendInPark(PlatformJob platformJob){
log.info("銆愪笅鍙戝仠杞﹀満鏉冮檺銆�================寮�濮�===="+platformJob.getCarCodeFront());
+ if(Constants.equalsInteger(platformJob.getType(),Constants.THREE)
+ && Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) ){
+ //濡傛灉鏄凡瀹屾垚鐨勫鍗忚溅鍗歌揣浣滀笟锛屾煡璇㈡墍鏈夊悎鍚屾槸鍚︿互涓婄數瀛愰攣锛屽鏋滄病鏈夛紝涓嶈嚜鍔ㄦ巿鏉冪鍥�
+ List<PlatformWmsDetail> details = platformWmsDetailMapper.selectList(new QueryWrapper<PlatformWmsDetail>().lambda()
+ .select(PlatformWmsDetail::getLockStatus,PlatformWmsDetail::getId)
+ .eq(PlatformWmsDetail::getJobId,platformJob.getId())
+ .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)
+ );
+ if(details!=null && details.size()>0){
+ for(PlatformWmsDetail d : details){
+ if(Constants.equalsInteger(d.getLockStatus(),Constants.ZERO)){
+ //濡傛灉瀛樺湪鏈笂閿侊紝涓嶈嚜鍔ㄦ巿鏉冪鍥�
+ return;
+ }
+ }
+ }
+ }
if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)
|| Constants.equalsInteger(platformJob.getType(),Constants.THREE)
|| Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
@@ -1005,6 +1024,10 @@
platformJob.setInHkdate(new Date());
if(sendStatus){
platformJob.setInHkstatus(Constants.TWO);
+ if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
+ //濡傛灉宸蹭笅鍙戞垚鍔燂紝鏍囪宸叉巿鏉冪鍥姸鎬�
+ platformJob.setStatus(Constants.PlatformJobStatus.AUTHED_LEAVE.getKey());
+ }
}else{
platformJob.setInHkstatus(Constants.THREE);
}
@@ -1122,7 +1145,7 @@
//骞挎挱 led閫氱煡
platformJob.setPlatformName(platform.getName());
this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.CALLING.getInfo(),
- Constants.PlatformBroadcastContent.CALLING.getInfo()
+ Constants.PlatformBroadcastContent.CALLING.getInfo()+ Constants.PlatformBroadcastContent.CALLING.getInfo() + Constants.PlatformBroadcastContent.CALLING.getInfo()
);
platformJob.setPlatformWmsCode(platform.getCode());
@@ -1478,19 +1501,21 @@
Date date = new Date();
List<String> codeList =new ArrayList<>();
for(PlatformWmsDetail d : details){
- codeList.add(d.getIocode());
+ codeList.add(d.getContractNum());
}
TmsLockStatusQueryRequest tmsLock = new TmsLockStatusQueryRequest();
tmsLock.setContractNumbers(codeList);
TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockResult = tmsService.lockStatusQuery(tmsLock);
- if(lockResult!=null && lockResult.isSuccess()&& lockResult.getData()!=null ){
+ if(lockResult!=null && lockResult.getCode()!=null && lockResult.getCode().equals("0")&& lockResult.getData()!=null ){
for(TmsLockStatusQueryResponse s : lockResult.getData()){
+ if(StringUtils.isBlank(s.getContractNumber())){
+ continue;
+ }
platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda()
- .eq(PlatformWmsDetail::getIocode,s.getContractNumber())
+ .eq(PlatformWmsDetail::getContractNum,s.getContractNumber())
.set(PlatformWmsDetail::getEditDate,date)
.set(PlatformWmsDetail::getLockDate,s.getOutDate())
.set(PlatformWmsDetail::getLockStatus,Constants.ONE)
- .eq(PlatformWmsDetail::getJobId,platformJob.getId())
.eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO));
}
}
@@ -1498,7 +1523,6 @@
}else if(Constants.equalsInteger(platformJob.getType(),Constants.ONE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
//TODO 澶栧崗杞﹀嵏璐� 鎴栬�� 甯傚叕鍙歌溅鍗歌揣 鍒欐牴鎹换鍔℃儏鍐�
-
}
@@ -1519,6 +1543,76 @@
Constants.PlatformBroadcastContent.DONE.getInfo());
return platformJob;
}
+ @Override
+ public void checkWmsLockStatus(){
+ List<PlatformWmsDetail> details = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class,new MPJLambdaWrapper<PlatformWmsDetail>()
+ .selectAll(PlatformWmsDetail.class)
+ .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())//鏌ヨ宸插畬鎴愪綔涓氱殑
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .and(wr->{wr.isNull(PlatformWmsDetail::getLockStatus).or().eq(PlatformWmsDetail::getLockStatus,Constants.ZERO);})
+ .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO));
+ if(details !=null && details.size()>0){
+ Date date = new Date();
+ List<String> codeList =new ArrayList<>();
+ for(PlatformWmsDetail d : details){
+ codeList.add(d.getContractNum());
+ }
+ TmsLockStatusQueryRequest tmsLock = new TmsLockStatusQueryRequest();
+ tmsLock.setContractNumbers(codeList);
+ List<Integer> jobIds = new ArrayList<>();
+ TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockResult = tmsService.lockStatusQuery(tmsLock);
+ if(lockResult!=null && lockResult.getCode()!=null && lockResult.getCode().equals("0")&& lockResult.getData()!=null ){
+ for(TmsLockStatusQueryResponse s : lockResult.getData()){
+ try {
+ //寮傚父澶勭悊锛岃兘澶勭悊涓�涓槸涓�涓�
+ platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda()
+ .eq(PlatformWmsDetail::getContractNum,s.getContractNumber())
+ .set(PlatformWmsDetail::getEditDate,date)
+ .set(PlatformWmsDetail::getLockDate,s.getOutDate())
+ .set(PlatformWmsDetail::getLockStatus,Constants.ONE)
+ .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO));
+ PlatformWmsDetail job = getJobByContractnumFromDetail(s.getContractNumber(),details);
+ if(job != null){
+ jobIds.add(job.getJobId());
+ }
+ }catch (Exception e){
+ logger.error("=============鏇存柊鐢靛瓙閿佺姸鎬佷俊鎭紓甯革細"+e.getMessage());
+ }
+ }
+ }
+ if(jobIds.size()>0){
+ List<PlatformJob> list = platformJobMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+ .selectAll(PlatformJob.class)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())
+ .in(PlatformJob::getId,jobIds)
+ );
+ if(list!=null){
+ for(PlatformJob platformJob : list){
+ sendInPark(platformJob);//妫�鏌ユ槸鍚﹂渶瑕佽嚜鍔ㄦ巿鏉冪鍥�
+ }
+ }
+ }
+ }
+
+ }
+
+ private PlatformWmsJob getJobByContractnum(String contractNumber, List<PlatformWmsJob> details) {
+ for(PlatformWmsJob d : details){
+ if(StringUtils.equals(contractNumber,d.getContractNum())){
+ return d;
+ }
+ }
+ return null;
+ }
+ private PlatformWmsDetail getJobByContractnumFromDetail(String contractNumber, List<PlatformWmsDetail> details) {
+ for(PlatformWmsDetail d : details){
+ if(StringUtils.equals(contractNumber,d.getContractNum())){
+ return d;
+ }
+ }
+ return null;
+ }
/**
--
Gitblit v1.9.3