From 0c3e6b2d5edd46c3476a1a51a70540258b3c39dc Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 29 十月 2025 15:56:06 +0800
Subject: [PATCH] 最新版本541200007
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java | 188 +++++++++++++++++++++++++++++++++++++++-------
1 files changed, 157 insertions(+), 31 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
index b0b1113..72875bd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
@@ -2,16 +2,18 @@
import com.alibaba.fastjson.JSONObject;
import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.dingTalk.DingTalk;
+import com.doumee.core.dingTalk.DingTalkStream;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.*;
-import com.doumee.dao.business.dto.OptGridDTO;
-import com.doumee.dao.business.dto.CloseGridDTO;
-import com.doumee.dao.business.dto.GetDriverGridDTO;
-import com.doumee.dao.business.dto.OpenGridDriverDTO;
+import com.doumee.dao.business.dao.MemberMapper;
+import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.core.utils.Utils;
@@ -49,11 +51,24 @@
private JkKeysMapper jkKeysMapper;
@Autowired
+ private SystemUserMapper systemUserMapper;
+
+ @Autowired
private JkCabinetMapper jkCabinetMapper;
@Autowired
private JkCabinetLogMapper jkCabinetLogMapper;
+ @Autowired
+ private WarningMapper warningMapper;
+ @Autowired
+ private MemberMapper memberMapper;
+
+ @Autowired
+ private WarningRuleMapper warningRuleMapper;
+
+ @Autowired
+ private DingTalk dingTalk;
@Override
public Integer create(JkCabinetGrid jkCabinetGrid) {
@@ -117,11 +132,15 @@
);
return;
}else if(Objects.nonNull(jkCabinetGrid.getChannelCode())||Objects.nonNull(jkCabinetGrid.getBoardCode())){
- jkCabinetGridMapper.update(new UpdateWrapper<JkCabinetGrid>().lambda()
- .set(Objects.nonNull(jkCabinetGrid.getChannelCode()),JkCabinetGrid::getChannelCode,jkCabinetGrid.getChannelCode())
- .set(Objects.nonNull(jkCabinetGrid.getBoardCode()),JkCabinetGrid::getBoardCode,jkCabinetGrid.getBoardCode())
- .set(JkCabinetGrid::getEditDate, DateUtil.getCurrDateTime())
- .eq(JkCabinetGrid::getId,jkCabinetGrid.getId()));
+ try{
+ jkCabinetGridMapper.update(new UpdateWrapper<JkCabinetGrid>().lambda()
+ .set(Objects.nonNull(jkCabinetGrid.getChannelCode()),JkCabinetGrid::getChannelCode,jkCabinetGrid.getChannelCode())
+ .set(Objects.nonNull(jkCabinetGrid.getBoardCode()),JkCabinetGrid::getBoardCode,jkCabinetGrid.getBoardCode())
+ .set(JkCabinetGrid::getEditDate, DateUtil.getCurrDateTime())
+ .eq(JkCabinetGrid::getId,jkCabinetGrid.getId()));
+ }catch (Exception e){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇风‘淇濋挜鍖欐煖閫氶亾鍙�/鏉垮彿鍞竴");
+ }
}
}
@@ -168,7 +187,10 @@
.eq(Objects.nonNull(model.getStatus()),JkCabinetGrid::getStatus,model.getStatus())
.isNull(Objects.nonNull(model.getBindStatus())&&Constants.equalsInteger(model.getBindStatus(),Constants.ZERO),JkCabinetGrid::getKeyId)
.isNotNull(Objects.nonNull(model.getBindStatus())&&Constants.equalsInteger(model.getBindStatus(),Constants.ONE),JkCabinetGrid::getKeyId)
- .like(StringUtils.isNotBlank(model.getKeyCode()),JkKeys::getCode,model.getKeyCode());
+ .like(StringUtils.isNotBlank(model.getKeyCode()),JkKeys::getCode,model.getKeyCode())
+ .orderByAsc(JkCabinetGrid::getId)
+ ;
+
IPage<JkCabinetGrid> iPage = jkCabinetGridMapper.selectJoinPage(page,JkCabinetGrid.class,wrapper);
for (JkCabinetGrid jkCabinetGrid:iPage.getRecords()) {
jkCabinetGrid.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
@@ -232,7 +254,7 @@
jkCabinetGridMapper.update(new UpdateWrapper<JkCabinetGrid>().lambda()
.set(JkCabinetGrid::getKeyId,null)
.set(JkCabinetGrid::getEditDate, DateUtil.getCurrDateTime())
- .eq(JkCabinetGrid::getId,jkCabinetGridList.stream().map(i->i.getId()).collect(Collectors.toList())));
+ .in(JkCabinetGrid::getId,jkCabinetGridList.stream().map(i->i.getId()).collect(Collectors.toList())));
List<Integer> keyIdList = jkCabinetGridList.stream().filter(i->Objects.nonNull(i.getKeyId())).map(i->i.getKeyId()).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(keyIdList)){
jkKeysMapper.update(new UpdateWrapper<JkKeys>().lambda()
@@ -293,7 +315,7 @@
.selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
.leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
.eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
- .eq(JkKeys::getStatus,Constants.ONE)
+ .eq(JkKeys::getStatus,Constants.TWO)
.eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
.eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
.isNotNull(JkCabinetGrid::getKeyId)
@@ -303,7 +325,7 @@
for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
.set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
- .set(JkKeys::getStatus,Constants.TWO)
+ .set(JkKeys::getStatus,Constants.THREE)
.eq(JkKeys::getId,jkCabinetGrid.getKeyId())
);
}
@@ -369,7 +391,9 @@
jkCabinetLog.setGridId(jkCabinetGrid.getId());
jkCabinetLog.setAuthType(Constants.TWO);
jkCabinetLog.setMemberId(loginUserInfo.getMemberId());
+ jkCabinetLog.setStatus(Constants.ZERO);
if(Objects.nonNull(jkCabinetGrid.getKeyId())){
+ jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
if(Objects.nonNull(jkKeys)){
if(!Constants.equalsInteger(jkKeys.getStatus(),Constants.ZERO)){
@@ -400,7 +424,6 @@
|| Objects.isNull(dto.getCabinetId())
|| Objects.isNull(dto.getKeyStatus())
|| Objects.isNull(dto.getAuthType())
- || Objects.isNull(dto.getMemberId())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
@@ -418,10 +441,11 @@
jkCabinetLog.setAuthType(dto.getAuthType());
jkCabinetLog.setMemberId(dto.getMemberId());
jkCabinetLog.setKeyStatus(Constants.ZERO);
- Boolean isChange = false;
+ jkCabinetLog.setStatus(Constants.ZERO);
if(Objects.nonNull(jkCabinetGrid.getKeyId())){
//鍙湁閽ュ寵鏌滅粦瀹氫簡閽ュ寵淇℃伅 鎵嶄細鏇存柊閽ュ寵鐨勪俊鎭�
JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
+ jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
if(Objects.nonNull(jkKeys)){
if(!Constants.equalsInteger(jkKeys.getStatus(),Constants.ZERO)){
jkCabinetLog.setCarId(jkKeys.getCarId());
@@ -431,27 +455,23 @@
jkCabinetLog.setKeyStatus(dto.getKeyStatus());
//閽ュ寵鐘舵�佷笌褰撳墠鎿嶄綔鐘舵�佷笉涓�鑷达紝鍒欒繘琛屾洿鏂伴挜鍖欑姸鎬�
if(!Constants.equalsInteger(jkKeys.getStatus(),dto.getKeyStatus())
- && (Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)||Constants.equalsInteger(dto.getKeyStatus(),Constants.TWO))){
+ && (Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)||Constants.equalsInteger(dto.getKeyStatus(),Constants.TWO))){
jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
.set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
.set(JkKeys::getStatus,dto.getKeyStatus())
.eq(JkKeys::getId,jkKeys.getId())
);
- isChange = true;
}
}
}
jkCabinetLog.setType(Constants.ONE);
jkCabinetLogMapper.insert(jkCabinetLog);
- //鏌ヨ閽ュ寵瀵瑰簲鐨勫�熷嚭浜嗛挜鍖欑殑寮�闂ㄨ褰� 杩涜娣诲姞鍏抽棬璁板綍涓婚敭
- if(isChange && Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)){
- jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
- .set(JkCabinetLog::getCloseLogId,jkCabinetLog.getId())
- .eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
- .eq(JkCabinetLog::getType,Constants.ZERO)
- .eq(JkCabinetLog::getKeyStatus,Constants.TWO)
- .isNotNull(JkCabinetLog::getCloseLogId));
- }
+ //鏌ヨ閽ュ寵鐨勫紑闂ㄨ褰� 杩涜娣诲姞鍏抽棬璁板綍涓婚敭
+ jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
+ .set(JkCabinetLog::getCloseLogId,jkCabinetLog.getId())
+ .eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
+ .eq(JkCabinetLog::getType,Constants.ZERO)
+ .isNull(JkCabinetLog::getCloseLogId));
}
}
@@ -481,7 +501,7 @@
List<String> authMemberList = Arrays.asList(jkCabinet.getAuthMemberId().split(","));
Boolean flag = true;
for (String id:authMemberList) {
- if(id.equals(jkCabinet.getAuthMemberId())){
+ if(Arrays.asList(jkCabinet.getAuthMemberId().split(",")).contains(id)){
flag = false;
break;
}
@@ -495,15 +515,23 @@
.selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
.selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
.selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+ .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
.leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
.eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
.eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+ .eq(JkCabinetGrid::getStatus,Constants.ZERO)
.eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
.in(Constants.equalsInteger(dto.getType(),Constants.ONE),JkKeys::getStatus,Constants.TWO,Constants.THREE)
.in(Constants.equalsInteger(dto.getType(),Constants.ZERO),JkKeys::getStatus,Constants.ONE)
.isNotNull(JkCabinetGrid::getKeyId)
- .apply(" t1.car_id in ( select c.CAR_ID from car_driver c left join cars c1 on c.car_id = c1.id where c.ISDELETED = 0 and c.TYPE != 0 and c.MEMBER_ID = "+dto.getMemberId()+" ) ")
+ .apply(" t1.car_id in ( select c.id from cars c where c.ISDELETED = 0 and c.MEMBER_ID = "+dto.getMemberId()+" ) ")
+ .orderByAsc(JkCabinetGrid::getCode)
);
+ for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
+ jkCabinetGrid.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
+ jkCabinetGrid.setKeyStatus(Objects.isNull(jkCabinetGrid.getKeyStatus())?Constants.ZERO:jkCabinetGrid.getKeyStatus());
+ }
+
}
return jkCabinetGridList;
}
@@ -523,17 +551,19 @@
if(Objects.isNull(jkCabinetGrid)){
return ;
}
- LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
+// LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
JkCabinetLog jkCabinetLog = new JkCabinetLog();
jkCabinetLog.setCreateDate(new Date());
- jkCabinetLog.setCreator(loginUserInfo.getId());
+// jkCabinetLog.setCreator(loginUserInfo.getId());
jkCabinetLog.setIsdeleted(Constants.ZERO);
jkCabinetLog.setCabinetId(openGridDriverDTO.getCabinetId());
jkCabinetLog.setGridId(jkCabinetGrid.getId());
jkCabinetLog.setAuthType(openGridDriverDTO.getAuthType());
- jkCabinetLog.setMemberId(loginUserInfo.getMemberId());
+ jkCabinetLog.setMemberId(openGridDriverDTO.getMemberId());
jkCabinetLog.setType(Constants.ZERO);
+ jkCabinetLog.setStatus(Constants.ZERO);
if(Objects.nonNull(jkCabinetGrid.getKeyId())){
+ jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
if(Objects.nonNull(jkKeys)){
if(!Constants.equalsInteger(jkKeys.getStatus(),Constants.ZERO)){
@@ -548,5 +578,101 @@
+ @Override
+ public void timeOutUnCloseAlarm(TimeOutCloseGridDTO dto){
+ if(Objects.nonNull(dto)
+ && Objects.nonNull(dto.getGridId())){
+ JkCabinetGrid jkCabinetGrid = jkCabinetGridMapper.selectJoinOne(JkCabinetGrid.class,
+ new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+ .selectAs(JkCabinet::getName,JkCabinetGrid::getCabinetName)
+ .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetGrid::getCabinetId)
+ .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .eq(JkCabinetGrid::getId,dto.getGridId())
+ .last(" limit 1 ")
+ );
+
+ if(Objects.nonNull(jkCabinetGrid)){
+ log.error("鏌滄牸寮�闂ㄨ秴鏃舵湭鍏抽棴鍛婅淇℃伅锛歿}"+JSONObject.toJSONString(jkCabinetGrid));
+ Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
+ .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,Constants.WarningConfig.GRID_TIME_OUT_INFO.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
+ if(Objects.isNull(warning)){
+ return;
+ }
+ List<Member> memberList = this.getWarningList(warning);
+ if(CollectionUtils.isEmpty(memberList)){
+ return;
+ }
+ //todo 瀛樺偍寮傚父鏃ュ織
+
+
+ }else{
+
+ }
+ }
+ }
+
+
+ public List<Member> getWarningList(Warning warning){
+ if(Constants.equalsInteger(warning.getStatus(),Constants.ZERO)){
+ return null;
+ }
+ //鏌ヨ閫氱煡浜哄憳
+ List<WarningRule> warningRuleList = warningRuleMapper.selectList(new QueryWrapper<WarningRule>().lambda()
+ .eq(WarningRule::getIsdeleted,Constants.ZERO)
+ .apply(" id in ( select w.RULE_ID from warning_rule_detail w where w.WARNING_ID = '"+warning.getId()+"' and w.ISDELETED = 0 ) ")
+ );
+ List<Member> memberList = new ArrayList<>();
+ if(org.apache.commons.collections.CollectionUtils.isNotEmpty(warningRuleList)){
+ List<String> memberIdStr = warningRuleList.stream().map(i->i.getMemberIds()).collect(Collectors.toList());
+ if(org.apache.commons.collections.CollectionUtils.isNotEmpty(memberIdStr)){
+ List<String> memberIdList = new ArrayList<>();
+ for (String s:memberIdStr) {
+ memberIdList.addAll(
+ Arrays.asList(s.split(","))
+ );
+ }
+ memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO)
+ .notIn(Member::getErpId)
+ .in(Member::getId,memberIdList)
+ );
+ }
+ }
+ return memberList;
+
+
+
+ }
+
+
+
+ @Override
+ public void alcoholTestAlarm(AlcoholTestAlarmDTO dto){
+ if(Objects.nonNull(dto)
+ && Objects.nonNull(dto.getMemberId())){
+ SystemUser systemUser =
+ systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+ .eq(SystemUser::getMemberId,dto.getMemberId())
+ .eq(SystemUser::getDeleted,Constants.ZERO)
+ .last(" limit 1 ")
+ );
+
+ Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
+ .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,Constants.WarningConfig.KEY_TIME_OUT_BACK.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
+ if(Objects.isNull(warning)){
+ return;
+ }
+ List<Member> memberList = this.getWarningList(warning);
+ if(CollectionUtils.isEmpty(memberList)){
+ return;
+ }
+ //todo 瀛樺偍寮傚父鏃ュ織
+
+ //瀛樺偍寮傚父鏃ュ織
+ if(Objects.nonNull(systemUser)){
+ log.error("鍙告満閰掔簿妫�娴嬶紝瓒呭嚭閰掔簿鍊煎憡璀︿俊鎭細{}"+JSONObject.toJSONString(systemUser));
+ }
+ }
+ }
+
}
--
Gitblit v1.9.3