From a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 06 六月 2025 19:19:34 +0800
Subject: [PATCH] 开发更新

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java |   83 ++++++++++++++++++++++++++++++++++-------
 1 files changed, 68 insertions(+), 15 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 375b2f6..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})
@@ -115,7 +123,7 @@
         );
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolSchemeList)){
             for (YwPatrolScheme ywPatrolScheme:ywPatrolSchemeList) {
-                this.createTask(new Date(),ywPatrolScheme);
+                this.createTask(DateUtil.getXDayAfterDate(new Date(),2),ywPatrolScheme);
             }
         }
     }
@@ -203,6 +211,39 @@
             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);
+                }
+            }
+
+        }
     }
 
 
@@ -260,6 +301,7 @@
         ywPatrolScheme.setEditDate(new Date());
         ywPatrolScheme.setEditor(loginUserInfo.getId());
         ywPatrolSchemeMapper.updateById(ywPatrolScheme);
+        this.createThreeDaysData(ywPatrolScheme);
     }
 
     @Override
@@ -315,15 +357,9 @@
         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()+"' or t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' "
-                )*/
                 .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()))
@@ -333,9 +369,23 @@
         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){
@@ -350,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