From 14f37814a441d795ae7a15dfe4b7be05aa49f96f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 23 一月 2025 16:30:28 +0800
Subject: [PATCH] 最新版本541200007
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 295 ++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 183 insertions(+), 112 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 c184c0e..3135e0c 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,16 +10,18 @@
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.core.model.LoginUserInfo;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
-import com.doumee.core.tms.model.response.TmsBaseResponse;
-import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
+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;
+import com.doumee.service.business.third.model.request.TmsLockStatusQueryRequest;
+import com.doumee.service.business.third.model.response.TmsBaseResponse;
+import com.doumee.service.business.third.model.response.TmsLockStatusQueryResponse;
import com.doumee.core.utils.*;
import com.doumee.core.wx.wxPlat.WxPlatConstants;
import com.doumee.core.wx.wxPlat.WxPlatNotice;
import com.doumee.dao.business.*;
+import com.doumee.dao.business.dao.MemberMapper;
import com.doumee.dao.business.dao.SmsConfigMapper;
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.join.PlatformJobJoinMapper;
@@ -29,6 +31,7 @@
import com.doumee.dao.openapi.request.*;
import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
@@ -128,6 +131,8 @@
private MemberMapper memberMapper;
@Autowired
private WxNoticeConfigMapper wxNoticeConfigMapper;
+ @Autowired
+ private SystemUserMapper systemUserMapper;
@Override
public Integer create(PlatformJob platformJob) {
@@ -292,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, Utils.Date.getStart(pageWrap.getModel().getCreateDateStart()))
+ .le(pageWrap.getModel().getCreateDateEnd() != null, PlatformJob::getCreateDate, Utils.Date.getStart(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)) {
@@ -340,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),
" ( " +
@@ -359,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()
@@ -422,8 +423,6 @@
}
}
}
-
-
public void queryWaitNum(PlatformJob platformJob){
if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
//鏌ヨ褰撳墠鎵�鏈夋帓闃熸暟閲�
@@ -436,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();
@@ -478,7 +479,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"));
}
@@ -488,7 +489,9 @@
.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));
+ }
}
}
@@ -512,6 +515,14 @@
.leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
.eq(PlatformJob::getIsdeleted,Constants.ZERO)
.eq(PlatformJob::getDrivierPhone,loginUserInfo.getMobile())
+ .and(i->i.like(PlatformJob::getDoneDate,DateUtil.getCurrDate())
+ .or().in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()
+ ,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(),
+ Constants.PlatformJobStatus.WART_SIGN_IN.getKey(),
+ Constants.PlatformJobStatus.IN_WAIT.getKey(),
+ Constants.PlatformJobStatus.CALLED.getKey(),
+ Constants.PlatformJobStatus.WORKING.getKey())
+ )
.orderByDesc(PlatformJob::getId)
);
for (PlatformJob platformJob:platformJobList) {
@@ -520,9 +531,7 @@
//鏌ヨ鍓嶆柟鎺掗槦鏁伴噺
this.queryWaitNum(platformJob);
}
-
driverHomeVO.setPlatformJobList(platformJobList);
-
// 鍥尯瀵艰鍥� 鍥剧墖
driverHomeVO.setReservationMap(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_GUIDEMAP).getCode());
// 棰勭害鎸囧崡 鏂囨湰
@@ -618,7 +627,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{
@@ -655,11 +665,11 @@
}
public void sceneSignIn(SignInDTO signInDTO){
-
if( StringUtils.isNotBlank(signInDTO.getQrCodeKey())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- if(!signInDTO.getQrCodeKey().equals(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode())){
+ if(!signInDTO.getQrCodeKey().equals(
+ systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode() + systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"浜岀淮鐮佸凡杩囨湡,璇峰埛鏂伴噸璇�");
}
}
@@ -732,6 +742,7 @@
,PlatformJob::getId,lineUpDetailDTO.getJobId())
.in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(),
Constants.PlatformJobStatus.IN_WAIT.getKey(),
+ Constants.PlatformJobStatus.WORKING.getKey(),
Constants.PlatformJobStatus.CALLED.getKey())
.orderByDesc(PlatformJob::getStatus)
.orderByAsc(PlatformJob::getSignDate)
@@ -873,26 +884,62 @@
//鍏紬鍙锋ā鏉挎秷鎭�
if(Objects.nonNull(platformJob.getDriverId())) {
- Member member = memberMapper.selectById(platformJob.getDriverId());
- if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
- WxPlatNotice wxPlatNotice = new WxPlatNotice();
- wxPlatNotice.sendPlatformJobTemplateNotice(
- wxNoticeConfigMapper, platformJob,
- WxPlatConstants.platformJobContent.platformJobCallIn,
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
- Arrays.asList(member.getOpenid().split(","))
- );
- }
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobCallIn,platformJob);
}
-
return platformJob;
}
+
+ public void sendWxNotice(String objCode,PlatformJob platformJob){
+ SystemUser driver = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+ .eq(SystemUser::getDeleted, Constants.ZERO)
+ .eq(SystemUser::getType, Constants.ZERO)
+ .eq(SystemUser::getMobile,platformJob.getDrivierPhone())
+ .last(" limit 1 "));
+ if (Objects.nonNull(driver) && StringUtils.isNotBlank(driver.getOpenid())) {
+ PlatformJob p = platformJobJoinMapper.selectJoinOne(PlatformJob.class,
+ new MPJLambdaWrapper<PlatformJob>()
+ .selectAll(PlatformJob.class)
+ .selectAs(Platform::getName,PlatformJob::getPlatformName)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .eq(PlatformJob::getId,platformJob.getId())
+ .last(" limit 1")
+ );
+
+ WxPlatNotice wxPlatNotice = new WxPlatNotice();
+ wxPlatNotice.sendPlatformJobTemplateNotice(systemDictDataBiz,
+ wxNoticeConfigMapper, p,
+ objCode,
+ systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+ Arrays.asList(driver.getOpenid().split(","))
+ );
+ }
+ }
+
+
+
private Logger logger = LoggerFactory.getLogger(PlatformJobServiceImpl.class);
@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)){
@@ -974,6 +1021,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);
}
@@ -1083,24 +1134,15 @@
);
//鍏紬鍙锋ā鏉挎秷鎭�
- if(Objects.nonNull(platformJob.getDriverId())){
- Member member = memberMapper.selectById(platformJob.getDriverId());
- if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
- WxPlatNotice wxPlatNotice = new WxPlatNotice();
- wxPlatNotice.sendPlatformJobTemplateNotice(
- wxNoticeConfigMapper,platformJob,
- WxPlatConstants.platformJobContent.platformJobSingIn,
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
- Arrays.asList(member.getOpenid().split(","))
- );
- }
+ if(Objects.nonNull(platformJob.getDriverId())){
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobSingIn,platformJob);
}
//骞挎挱 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());
@@ -1228,17 +1270,8 @@
);
//鍏紬鍙锋ā鏉挎秷鎭�
- if(Objects.nonNull(platformJob.getDriverId())) {
- Member member = memberMapper.selectById(platformJob.getDriverId());
- if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
- WxPlatNotice wxPlatNotice = new WxPlatNotice();
- wxPlatNotice.sendPlatformJobTemplateNotice(
- wxNoticeConfigMapper, platformJob,
- WxPlatConstants.platformJobContent.platformJobMove,
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
- Arrays.asList(member.getOpenid().split(","))
- );
- }
+ if(Objects.nonNull(platformJob.getDriverId())) {
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobMove,platformJob);
}
platformJob.setPlatformName(oldPlatform.getName());
@@ -1291,16 +1324,7 @@
//鍏紬鍙锋ā鏉挎秷鎭�
if(Objects.nonNull(platformJob.getDriverId())){
- Member member = memberMapper.selectById(platformJob.getDriverId());
- if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
- WxPlatNotice wxPlatNotice = new WxPlatNotice();
- wxPlatNotice.sendPlatformJobTemplateNotice(
- wxNoticeConfigMapper,platformJob,
- WxPlatConstants.platformJobContent.platformJobOverNum,
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
- Arrays.asList(member.getOpenid().split(","))
- );
- }
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobOverNum,platformJob);
}
platformJob.setPlatformName(platform.getName());
@@ -1352,16 +1376,7 @@
//鍏紬鍙锋ā鏉挎秷鎭�
if(Objects.nonNull(platformJob.getDriverId())) {
- Member member = memberMapper.selectById(platformJob.getDriverId());
- if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
- WxPlatNotice wxPlatNotice = new WxPlatNotice();
- wxPlatNotice.sendPlatformJobTemplateNotice(
- wxNoticeConfigMapper, platformJob,
- WxPlatConstants.platformJobContent.platformJobError,
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
- Arrays.asList(member.getOpenid().split(","))
- );
- }
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobError,platformJob);
}
platformJob.setPlatformName(platform.getName());
@@ -1415,16 +1430,7 @@
);
//鍏紬鍙锋ā鏉挎秷鎭�
if(Objects.nonNull(platformJob.getDriverId())) {
- Member member = memberMapper.selectById(platformJob.getDriverId());
- if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
- WxPlatNotice wxPlatNotice = new WxPlatNotice();
- wxPlatNotice.sendPlatformJobTemplateNotice(
- wxNoticeConfigMapper, platformJob,
- WxPlatConstants.platformJobContent.platformJobWorking,
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
- Arrays.asList(member.getOpenid().split(","))
- );
- }
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobWorking,platformJob);
}
//骞挎挱 led閫氱煡
platformJob.setPlatformName(platform.getName());
@@ -1434,7 +1440,8 @@
return platformJob;
}
-
+
+ @Override
public PlatformJob getLastWaitJob(String uuid, LoginUserInfo loginUser){
String u = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.BIGSCREEN_UUID);
if(!StringUtils.equals(u,uuid)){
@@ -1448,6 +1455,7 @@
.last(" limit 1 ") );
return platformJob;
}
+
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public PlatformJob finishWork(JobOperateDTO jobOperateDTO){
@@ -1490,19 +1498,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));
}
}
@@ -1510,7 +1520,6 @@
}else if(Constants.equalsInteger(platformJob.getType(),Constants.ONE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
//TODO 澶栧崗杞﹀嵏璐� 鎴栬�� 甯傚叕鍙歌溅鍗歌揣 鍒欐牴鎹换鍔℃儏鍐�
-
}
@@ -1522,16 +1531,7 @@
//鍏紬鍙锋ā鏉挎秷鎭�
if(Objects.nonNull(platformJob.getDriverId())) {
- Member member = memberMapper.selectById(platformJob.getDriverId());
- if (Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())) {
- WxPlatNotice wxPlatNotice = new WxPlatNotice();
- wxPlatNotice.sendPlatformJobTemplateNotice(
- wxNoticeConfigMapper, platformJob,
- WxPlatConstants.platformJobContent.platformJobFinish,
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
- Arrays.asList(member.getOpenid().split(","))
- );
- }
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobFinish,platformJob);
}
//骞挎挱 led閫氱煡
@@ -1539,6 +1539,76 @@
this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.DONE.getInfo(),
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;
}
@@ -2123,7 +2193,9 @@
}
String u = UUID.randomUUID().toString();
redisTemplate.opsForValue().set(Constants.RedisKeys.BIGSCREEN_UUID,u,3, TimeUnit.MINUTES);
- largeScreenDataVO.setQrCode(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode());
+ String url = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),Constants.WxUrlParams.BISCREEN_CODE,u);
+ largeScreenDataVO.setQrCode(url);
+ largeScreenDataVO.setAttention(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_ATTENTION).getCode());
return largeScreenDataVO;
}
@@ -2230,7 +2302,6 @@
}
}
-
--
Gitblit v1.9.3