From 1110e717afecf1cc78950a5f054bfa0c1b159ae1 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 13 十二月 2024 17:20:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 104 insertions(+), 14 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 a37bbe6..476825c 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
@@ -17,6 +17,8 @@
import com.doumee.core.tms.model.response.TmsBaseResponse;
import com.doumee.core.tms.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.SmsConfigMapper;
import com.doumee.dao.business.dao.SmsEmailMapper;
@@ -27,6 +29,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;
@@ -47,14 +50,17 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.net.URLEncoder;
import java.util.*;
import java.util.Date;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -115,9 +121,17 @@
private EmayService emayService;
@Autowired
+ private RedisTemplate<String, Object> redisTemplate;
+ @Autowired
private PlatformBroadcastLogMapper platformBroadcastLogMapper;
@Autowired
private PlatformWarnEventServiceImpl platformWarnEventService;
+ @Autowired
+ private MemberMapper memberMapper;
+ @Autowired
+ private WxNoticeConfigMapper wxNoticeConfigMapper;
+ @Autowired
+ private SystemUserMapper systemUserMapper;
@Override
public Integer create(PlatformJob platformJob) {
@@ -645,11 +659,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(),"浜岀淮鐮佸凡杩囨湡,璇峰埛鏂伴噸璇�");
}
}
@@ -694,7 +708,7 @@
}
}
platformJob.dealTime();
- this.getWorkTime(platformJob);
+ this.getWorkTime(platformJob,platformLogMapper);
this.getWmsJobData(platformJob);
return platformJob;
}
@@ -776,7 +790,7 @@
* 鑾峰彇宸蹭綔涓氭椂闂�
* @param platformJob
*/
- public Long getWorkTime(PlatformJob platformJob){
+ public static Long getWorkTime(PlatformJob platformJob,PlatformLogMapper platformLogMapper){
List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>()
.lambda().eq(PlatformLog::getIsdeleted,Constants.ZERO)
.eq(PlatformLog::getJobId,platformJob.getId())
@@ -799,7 +813,7 @@
.last(" limit 1 ")
);
if(Objects.nonNull(lastBeginPlatform)){
- String v = Long.toString(System.currentTimeMillis() - lastBeginPlatform.getCreateDate().getTime() / 1000) ;
+ String v = Long.toString((System.currentTimeMillis() - lastBeginPlatform.getCreateDate().getTime() )/ 1000) ;
optTime = optTime + Long.valueOf(v);
}
}
@@ -860,8 +874,38 @@
emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
SmsConstants.platformJobContent.platformJobCallIn,null,null
);
-
+
+ //鍏紬鍙锋ā鏉挎秷鎭�
+ if(Objects.nonNull(platformJob.getDriverId())) {
+ 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);
@@ -1058,6 +1102,12 @@
SmsConstants.platformJobContent.platformJobSingIn,platform.getName(),null
);
+ //鍏紬鍙锋ā鏉挎秷鎭�
+ if(Objects.nonNull(platformJob.getDriverId())){
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobSingIn,platformJob);
+ }
+
+
//骞挎挱 led閫氱煡
platformJob.setPlatformName(platform.getName());
this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.CALLING.getInfo(),
@@ -1188,6 +1238,11 @@
SmsConstants.platformJobContent.platformJobMove,oldPlatform.getName(),platform.getName()
);
+ //鍏紬鍙锋ā鏉挎秷鎭�
+ if(Objects.nonNull(platformJob.getDriverId())) {
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobMove,platformJob);
+ }
+
platformJob.setPlatformName(oldPlatform.getName());
platformJob.setPlatformId(oldPlatform.getId());
this.broadcastAndLEed(platformJob, StringUtils.isBlank(oldPlatform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getName():oldPlatform.getLedContent(),
@@ -1216,7 +1271,7 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
}
- Platform platform = platformJoinMapper.selectById(jobOperateDTO.getPlatformId());
+ Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId());
if(Objects.isNull(platform)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
}
@@ -1235,6 +1290,12 @@
emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
SmsConstants.platformJobContent.platformJobOverNum,null,null
);
+
+ //鍏紬鍙锋ā鏉挎秷鎭�
+ if(Objects.nonNull(platformJob.getDriverId())){
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobOverNum,platformJob);
+ }
+
platformJob.setPlatformName(platform.getName());
this.broadcastAndLEed(platformJob, StringUtils.isBlank(platform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getName():platform.getLedContent(),
null
@@ -1281,6 +1342,11 @@
emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
SmsConstants.platformJobContent.platformJobError,platform.getName(),null
);
+
+ //鍏紬鍙锋ā鏉挎秷鎭�
+ if(Objects.nonNull(platformJob.getDriverId())) {
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobError,platformJob);
+ }
platformJob.setPlatformName(platform.getName());
this.broadcastAndLEed(platformJob, StringUtils.isBlank(platform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getName():platform.getLedContent(),
@@ -1331,7 +1397,10 @@
emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
SmsConstants.platformJobContent.platformJobWorking,platform.getName(),null
);
-
+ //鍏紬鍙锋ā鏉挎秷鎭�
+ if(Objects.nonNull(platformJob.getDriverId())) {
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobWorking,platformJob);
+ }
//骞挎挱 led閫氱煡
platformJob.setPlatformName(platform.getName());
this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.WORKING.getInfo(),
@@ -1340,11 +1409,22 @@
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)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝浜岀淮鐮佸凡澶辨晥锛�");
+ }
+ PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getDrivierPhone,loginUser.getMobile())
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WART_SIGN_IN.getKey())
+ .orderByDesc(PlatformJob::getCreateDate)
+ .last(" limit 1 ") );
+ return platformJob;
+ }
+
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public PlatformJob finishWork(JobOperateDTO jobOperateDTO){
@@ -1416,6 +1496,12 @@
emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
SmsConstants.platformJobContent.platformJobFinish,platform.getName(),null
);
+
+ //鍏紬鍙锋ā鏉挎秷鎭�
+ if(Objects.nonNull(platformJob.getDriverId())) {
+ this.sendWxNotice(WxPlatConstants.platformJobContent.platformJobFinish,platformJob);
+ }
+
//骞挎挱 led閫氱煡
platformJob.setPlatformName(platform.getName());
this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.DONE.getInfo(),
@@ -2003,7 +2089,11 @@
List<PlatformJob> calledList = platformJobList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())).collect(Collectors.toList());
largeScreenDataVO.setWaitWorkList(calledList);
}
- largeScreenDataVO.setQrCode(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode());
+ String u = UUID.randomUUID().toString();
+ redisTemplate.opsForValue().set(Constants.RedisKeys.BIGSCREEN_UUID,u,3, TimeUnit.MINUTES);
+ 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;
}
--
Gitblit v1.9.3