From 82425d8e56ea692c9edfd280b1cce193c94252b9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 09 十月 2024 16:32:50 +0800
Subject: [PATCH] 最新版本
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 145 ++++++++++++++++++++++++++++++-----------------
1 files changed, 92 insertions(+), 53 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 d611dd0..6b1dbb8 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);
@@ -675,6 +693,7 @@
.in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(),
Constants.PlatformJobStatus.IN_WAIT.getKey(),
Constants.PlatformJobStatus.CALLED.getKey())
+ .orderByDesc(PlatformJob::getStatus)
.orderByAsc(PlatformJob::getSignDate)
);
//鑾峰彇鎵�鏈夋湀鍙扮粍
@@ -702,6 +721,7 @@
.in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(),
Constants.PlatformJobStatus.IN_WAIT.getKey(),
Constants.PlatformJobStatus.CALLED.getKey())
+ .orderByDesc(PlatformJob::getStatus)
.orderByDesc(PlatformJob::getSignDate));
platformGroup.setSignJobList(platformJobSignInList);
//鏌ヨ褰撳墠鏈堝彴缁勪笅
@@ -808,13 +828,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 +848,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 +936,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 +1070,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 +1091,7 @@
//瀛樺偍鎿嶄綔鏃ュ織
savePlatformLog(Constants.PlatformJobLogType.OVER_NUMBER.getKey(),oldPlatformJob,platformJob,
Constants.PlatformJobLogType.OVER_NUMBER.getInfo());
-
-
+ return platformJob;
}
@@ -1351,7 +1378,8 @@
}
}else if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.WORKING.getKey())){
platformLog.setParam1(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
- platformLog.setParam3("0");
+ platformLog.setParam3("0");
+ platformLog.setRemark(platformJobBefor.getPlatformId().toString());
}else{
platformLog.setParam3("0");
}
@@ -1486,8 +1514,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)
)
)
);
@@ -1507,43 +1534,56 @@
@Override
public List<PlatformDataListResponse> platformWorkingDataList(PlatformDataListRequest param){
List<PlatformDataListResponse> platformDataListResponseList = new ArrayList<>();
- try {
- List<Platform> platformList = platformJoinMapper.selectList(
- new MPJLambdaWrapper<Platform>().eq(Platform::getIsdeleted,Constants.ZERO)
- .eq(Platform::getStatus,Constants.ZERO)
+ List<Platform> platformList = platformJoinMapper.selectList(
+ new MPJLambdaWrapper<Platform>().eq(Platform::getIsdeleted,Constants.ZERO)
+ .eq(Platform::getStatus,Constants.ZERO)
+ );
+ for (Platform platform:platformList) {
+ PlatformDataListResponse platformDataListResponse = new PlatformDataListResponse();
+ platformDataListResponse.setId(platform.getId());
+ platformDataListResponse.setHkId(platform.getHkId());
+ platformDataListResponse.setName(platform.getName());
+ platformDataListResponse.setWorkStatus(Constants.ZERO);
+ //鏌ヨ褰撳墠浣滀笟杞﹁締
+
+ 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")
);
- for (Platform platform:platformList) {
- 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)
- .last(" limit 1")
+
+ 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
);
- 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
- );
- platformDataListResponse.setWorkStatus(Constants.ONE);
- //鏌ヨ浣滀笟鏃堕暱
- platformDataListResponse.setWorkTime(
- this.getWorkTime(platformJob)
- );
+ 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);
}
}
- }catch (Exception e){
- System.out.println("===============================鎶ラ敊鍟︼細\n");
- e.printStackTrace();
+ platformDataListResponseList.add(platformDataListResponse);
}
-
return platformDataListResponseList;
}
@@ -1648,9 +1688,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)
@@ -1708,7 +1747,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