From 77946261ec663aa1fe7f6f97e550532ed879f982 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 06 六月 2025 13:47:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 102 insertions(+), 16 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
index 0afc0a7..cb32343 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONObject;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -15,6 +16,9 @@
import com.doumee.dao.business.YwPatrolTaskMapper;
import com.doumee.dao.business.YwPatrolTaskRecordMapper;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.join.NoticesJoinMapper;
+import com.doumee.dao.system.model.Notices;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwPatrolSchemeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -49,7 +53,11 @@
@Autowired
private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper;
@Autowired
+ private SystemUserMapper systemUserMapper;
+ @Autowired
private RedisTemplate<String, Object> redisTemplate;
+ @Autowired
+ private NoticesJoinMapper noticesJoinMapper;
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -104,6 +112,23 @@
this.createTask(schemeDate,ywPatrolScheme);
}
}
+
+
+ @Override
+ public void timerAuto(){
+ List<YwPatrolScheme> ywPatrolSchemeList = ywPatrolSchemeMapper.selectList(new QueryWrapper<YwPatrolScheme>().lambda()
+ .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
+ .eq(YwPatrolScheme::getStatus,Constants.ZERO)
+ .apply(" START_DATE <= now() and END_DATE>= now() ")
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolSchemeList)){
+ for (YwPatrolScheme ywPatrolScheme:ywPatrolSchemeList) {
+ this.createTask(DateUtil.getXDayAfterDate(new Date(),2),ywPatrolScheme);
+ }
+ }
+ }
+
+
/**
* 鏍规嵁鏃ユ湡鐢熸垚浠诲姟
@@ -186,12 +211,59 @@
ywPatrolTaskRecordList.add(ywPatrolTaskRecord);
}
ywPatrolTaskRecordMapper.insert(ywPatrolTaskRecordList);
+
+ if(StringUtils.isNotBlank(ywPatrolScheme.getUserIds())){
+ String [] userIds = ywPatrolScheme.getUserIds().split(",");
+ List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda().in(SystemUser::getId,userIds));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemUserList)){
+ List<String> names = systemUserList.stream().filter(i->StringUtils.isNotBlank(i.getRealname())).map(i->i.getRealname()).collect(Collectors.toList());
+ for (SystemUser systemUser:systemUserList) {
+ //娣诲姞寰呭姙淇℃伅
+ Notices notices = new Notices();
+ notices.setCreateDate(new Date());
+ notices.setCreator(ywPatrolScheme.getCreator());
+ notices.setIsdeleted(Constants.ZERO);
+ notices.setParam1(DateUtil.formatDate(ywPatrolTask.getStartDate(),"yyyy-MM-dd"));
+ notices.setTitle("宸℃浠诲姟寰呭姙");
+ notices.setContent("["+ywPatrolTask.getCode()+"]灏嗗湪["+notices.getParam1()+"]杩涜宸℃锛岃鎸夋椂鎵ц");
+ notices.setObjId(ywPatrolTask.getId());
+ notices.setObjType(Constants.ONE);
+ notices.setType(notices.getObjType());
+ notices.setUserId(Integer.valueOf(systemUser.getId()));
+ notices.setStatus(Constants.ZERO);
+ //鏁寸悊json鏁版嵁
+ Map<String,Object> jsonMap = new HashMap<>();
+ jsonMap.put("key1", ywPatrolScheme.getTitle());
+ jsonMap.put("key2", DateUtil.getFomartDate(ywPatrolTask.getStartDate(),"yyyy-MM-dd"));
+ jsonMap.put("key3", DateUtil.getFomartDate(ywPatrolTask.getStartDate(),"HH:mm") + "-" + DateUtil.getFomartDate(ywPatrolTask.getEndDate(),"HH:mm"));
+ jsonMap.put("key4", StringUtils.join(names , "銆�"));
+ notices.setParam2(JSONObject.toJSONString(jsonMap));
+ notices.setParam3(Constants.ZERO+"");
+ noticesJoinMapper.insert(notices);
+ }
+ }
+
+ }
}
@Override
public void deleteById(Integer id, LoginUserInfo user) {
+ //鍒ゆ柇鏄惁鏈夎繘琛屼腑鎴栧凡瓒呮湡鐨勪换鍔�
+ if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda()
+ .eq(YwPatrolTask::getSchemeId,id)
+ .in(YwPatrolTask::getStatus,Constants.ONE,Constants.THREE,Constants.TWO)
+ )>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪杩涜涓�/宸插畬鎴愮殑浠诲姟锛屾棤娉曡繘琛屽垹闄�");
+ }
+ if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda()
+ .eq(YwPatrolTask::getSchemeId,id)
+ .eq(YwPatrolTask::getStatus,Constants.ZERO)
+ .le(YwPatrolTask::getEndDate,"now()")
+ )>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪宸茶秴鏈熺殑浠诲姟锛屾棤娉曡繘琛屽垹闄�");
+ }
ywPatrolSchemeMapper.deleteById(id);
}
@@ -229,6 +301,7 @@
ywPatrolScheme.setEditDate(new Date());
ywPatrolScheme.setEditor(loginUserInfo.getId());
ywPatrolSchemeMapper.updateById(ywPatrolScheme);
+ this.createThreeDaysData(ywPatrolScheme);
}
@Override
@@ -284,25 +357,35 @@
YwPatrolScheme model = pageWrap.getModel();
queryWrapper.selectAll(YwPatrolScheme.class)
.select(" t2.realName as createUserName ")
- .select(" t1.realName as userName ")
- .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolScheme::getUserIds)
.leftJoin(" system_user t2 on t.creator = t2.id ")
.eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
.like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
- //鏌ヨ鏈夋椂娈典氦闆嗙殑鏁版嵁
- .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
- " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' and t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' "
- )
-// .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
-// .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
+ .ge( model.getStartDate()!=null,YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
+ .le(Objects.nonNull(model.getEndDate()),YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
+ .ge(Objects.nonNull(model.getStartDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getStartDateSec()))
+ .le(Objects.nonNull(model.getEndDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDateSec()))
.orderByDesc(YwPatrolScheme::getCreateDate)
;
IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper);
for (YwPatrolScheme ywPatrolScheme:iPage.getRecords()) {
this.getSchemeStatus(ywPatrolScheme);
+ //宸℃浜哄憳
+ this.getUserNames(ywPatrolScheme);
}
return PageData.from(iPage);
}
+
+
+ public void getUserNames(YwPatrolScheme ywPatrolScheme){
+ if(Objects.nonNull(ywPatrolScheme)&&StringUtils.isNotBlank(ywPatrolScheme.getUserIds())){
+ List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda()
+ .apply(" find_in_set(id,'"+ywPatrolScheme.getUserIds()+"') ")
+ );
+ String userName = String.join(",",systemUserList.stream().map(i->i.getRealname()).collect(Collectors.toList()));
+ ywPatrolScheme.setUserName(userName);
+ }
+ }
+
//鑾峰彇鐘舵��
public void getSchemeStatus(YwPatrolScheme ywPatrolScheme){
@@ -317,21 +400,24 @@
ywPatrolScheme.setTimeOutTaskNum(Constants.ZERO);
return;
}
+
+ //杩囨护鏁版嵁鏄笉鏄叏閮ㄦ湭寮�濮�
+ if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO))
+ .collect(Collectors.toList()).size(),ywPatrolTaskList.size())){
+ ywPatrolScheme.setSchemeStatus(Constants.ZERO);
+ ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
+ .collect(Collectors.toList()).size());
+ return;
+ }
+
//杩囨护鏁版嵁鏄惁瀛樺湪杩涜涓殑
- if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()>Constants.ZERO){
+ if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)||Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size()>Constants.ZERO){
ywPatrolScheme.setSchemeStatus(Constants.ONE);
ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
.collect(Collectors.toList()).size());
return;
}
- //杩囨护鏁版嵁鏄笉鏄叏閮ㄦ湭寮�濮�
- if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size(),ywPatrolTaskList.size())){
- ywPatrolScheme.setSchemeStatus(Constants.ZERO);
- ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
- .collect(Collectors.toList()).size());
- return;
- }
//杩囨护鏁版嵁鏄笉鏄叏閮ㄥ凡瀹屾垚
if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size()
,ywPatrolTaskList.size())){
--
Gitblit v1.9.3