Parcourir la source

首页统计,定时任务

LIVE_YE il y a 2 ans
Parent
commit
64d65b88e4

+ 11 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/fgw/FgwCommonController.java

@@ -113,6 +113,17 @@ public class FgwCommonController {
         return fgwCommonService.index();
     }
 
+    /**
+     * 首页统计
+     *
+     * @return
+     */
+    @PostMapping("/sbAndJdNum")
+    @PreAuthorize("@ss.hasPermi('fgw:common:sbAndJdNum')")
+    public AjaxResult sbAndJdNum() {
+        return fgwCommonService.sbAndJdNum();
+    }
+
     /**
      * 本周汇报进度
      *

+ 3 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java

@@ -58,7 +58,9 @@ public class DataScopeAspect
     @Before("@annotation(controllerDataScope)")
     public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable
     {
-        clearDataScope(point);
+        if(StringUtils.isNotEmpty(point.getArgs())){
+            clearDataScope(point);
+        }
         handleDataScope(point, controllerDataScope);
     }
 

+ 87 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/Task.java

@@ -10,10 +10,18 @@ import com.ruoyi.common.utils.jPush.JPushToolUtil;
 import com.ruoyi.framework.manager.AsyncManager;
 import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.system.domain.SysHoliday;
+import com.ruoyi.system.domain.fgw.FgwJdap;
+import com.ruoyi.system.domain.fgw.FgwJdapDw;
+import com.ruoyi.system.domain.fgw.FgwXmsb;
+import com.ruoyi.system.domain.fgw.FgwYjpz;
 import com.ruoyi.system.domain.projectV2.*;
 import com.ruoyi.system.domain.projectV2.common.SendSmsConfig;
 import com.ruoyi.system.mapper.SysHolidayMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
+import com.ruoyi.system.mapper.fgw.FgwJdapDwMapper;
+import com.ruoyi.system.mapper.fgw.FgwJdapMapper;
+import com.ruoyi.system.mapper.fgw.FgwXmsbMapper;
+import com.ruoyi.system.mapper.fgw.FgwYjpzMapper;
 import com.ruoyi.system.mapper.projectV2.*;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.projectV2.common.ISendSmsConfigService;
@@ -65,6 +73,18 @@ public class Task {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private FgwYjpzMapper fgwYjpzMapper;
+
+    @Autowired
+    private FgwJdapMapper fgwJdapMapper;
+
+    @Autowired
+    private FgwXmsbMapper fgwXmsbMapper;
+
+    @Autowired
+    private FgwJdapDwMapper fgwJdapDwMapper;
+
 
 
 
@@ -901,6 +921,73 @@ public class Task {
     /***
      * 发改委节点安排未完成数据推送
      */
+    @Async
+    @Scheduled(cron = "0 18 0 * * ? ")
+    public void jdapY() throws Exception {
+        //将消息推送给相关人员
+        List<SendSmsConfig> sendSmsConfigs = new ArrayList<>();
+        List<SysUser> sysUserList = new ArrayList<>();
+
+        //获取当前年月
+        String nowTime = DateUtils.getYearMonth();
+        //当前时间
+        //查询预警配置时间
+        FgwYjpz fgwYjpz = fgwYjpzMapper.selectFgwYjpzNew();
+        //预警项目
+        List<FgwJdap> fgwJdapList = fgwJdapMapper.selectFgwJdapNum(fgwYjpz.getYjts());
+        List<FgwXmsb> fgwXmsbList = new ArrayList<>();
+        List<FgwJdapDw> fgwJdapDwList = new ArrayList<>();
+        FgwXmsb fgwXmsb = new FgwXmsb();
+        if (fgwJdapList!=null && fgwJdapList.size() > 0) {
+            List<Long> xmidList = fgwJdapList.stream().map(FgwJdap::getXmId).collect(Collectors.toList());
+            fgwXmsb.setIdList(xmidList);
+            fgwXmsbList = fgwXmsbMapper.selectFgwXmsbList(fgwXmsb);
+
+            //查询项目的所有人员
+            List<Long> idList = fgwJdapList.stream().map(FgwJdap::getId).collect(Collectors.toList());
+            fgwJdapDwList = fgwJdapDwMapper.selectFgwJdapDwListByXmid(idList);
+
+        }
+
+        if (fgwXmsbList!=null && fgwXmsbList.size() > 0) {
 
+            for (FgwXmsb xmsb : fgwXmsbList) {
+                SysUser sysUse = userMapper.selectUserById(xmsb.getUserId());
+                sysUserList.add(sysUse);
+            }
+
+        }
+
+        if (fgwJdapDwList!=null && fgwJdapDwList.size() > 0) {
+            List<Long> deptIdList = fgwJdapDwList.stream().map(FgwJdapDw::getDeptId).collect(Collectors.toList());
+            List<SysUser> sysUsers = userMapper.selectUserByDeptIdList(deptIdList);
+            sysUserList.addAll(sysUsers);
+        }
+        if (sysUserList != null) {
+            //发极光推送
+            String notificationTitle = "消息通知";
+            String msgTitle = "节点催办";
+            String msgContent = "您有一条节点催办信息,请及时处理!";
+            String jPushVO = "";
+            List<String> listS = sysUserList.stream().map(SysUser::getJgId).collect(Collectors.toList());
+            listS.removeAll(Collections.singleton(null));
+            if(listS!=null && listS.size()>0){
+                String[]  registrationId = listS.toArray(new String[listS.size()]);
+                JPushToolUtil.sendToRegistrationId(notificationTitle,msgTitle,msgContent,jPushVO,registrationId);
+            }
+
+            for (SysUser sysUser : sysUserList) {
+                if (StringUtils.isNotEmpty(sysUser.getPhonenumber())) {
+                    SendSmsConfig sendSmsConfig = new SendSmsConfig();
+                    sendSmsConfig.setPhone(sysUser.getPhonenumber());
+                    sendSmsConfigs.add(sendSmsConfig);
+                }
+            }
+            if (sendSmsConfigs.size() > 0) {
+                //TOdo 模板
+                //AsyncManager.me().execute(AsyncFactory.sendSms(sendSmsConfigs, "SMS_272470945"));
+            }
+        }
+    }
 
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/fgw/FgwJdapDwMapper.java

@@ -62,4 +62,6 @@ public interface FgwJdapDwMapper
     void deleteFgwJdapDwByJdids(Long[] ids);
 
     void deleteFgwJdapDwByJdid(Long id);
+
+    List<FgwJdapDw> selectFgwJdapDwListByXmid(List<Long> xmidList);
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/fgw/IFgwCommonService.java

@@ -16,4 +16,6 @@ public interface IFgwCommonService {
      * @return
      */
     AjaxResult hbjd();
+
+    AjaxResult sbAndJdNum();
 }

+ 89 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/fgw/FgwCommonServiceImpl.java

@@ -2,13 +2,15 @@ package com.ruoyi.system.service.impl.fgw;
 
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.system.domain.fgw.FgwDbd;
-import com.ruoyi.system.domain.fgw.FgwJzqk;
-import com.ruoyi.system.domain.fgw.FgwXmsb;
+import com.ruoyi.system.domain.fgw.*;
 import com.ruoyi.system.domain.projectV2.ZsyzSbbzb;
 import com.ruoyi.system.mapper.fgw.FgwDbdMapper;
+import com.ruoyi.system.mapper.fgw.FgwJdapMapper;
+import com.ruoyi.system.mapper.fgw.FgwXmsbMapper;
+import com.ruoyi.system.mapper.fgw.FgwYjpzMapper;
 import com.ruoyi.system.service.fgw.IFgwCommonService;
 import com.ruoyi.system.service.fgw.IFgwJzqkService;
 import com.ruoyi.system.service.fgw.IFgwXmsbService;
@@ -41,6 +43,15 @@ public class FgwCommonServiceImpl implements IFgwCommonService {
     @Autowired
     private FgwDbdMapper fgwDbdMapper;
 
+    @Autowired
+    private FgwXmsbMapper fgwXmsbMapper;
+
+    @Autowired
+    private FgwYjpzMapper fgwYjpzMapper;
+
+    @Autowired
+    private FgwJdapMapper fgwJdapMapper;
+
     /**
      * 首页统计
      *
@@ -189,6 +200,81 @@ public class FgwCommonServiceImpl implements IFgwCommonService {
         return AjaxResult.success(map);
     }
 
+    @Override
+    public AjaxResult sbAndJdNum() {
+
+        //当前时间
+        String dataTime = DateUtils.getDate();
+
+        //查询配置时间
+        FgwYjpz fgwYjpz = fgwYjpzMapper.selectFgwYjpzNew();
+        if(fgwYjpz==null){
+            fgwYjpz = new FgwYjpz();
+            fgwYjpz.setYzcqts(15L);
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        //项目总数
+        map.put("xmzs", 0);
+        //正常项目
+        map.put("zcxm", 0);
+        //超期节点项目
+        map.put("cqjdxm", 0);
+        //严重滞后项目
+        map.put("yzzhxm", 0);
+        //节点总数
+        map.put("jdzs", 0);
+        //正常节点
+        map.put("zcjd", 0);
+        //超期节点
+        map.put("cqjd", 0);
+        //严重滞后节点
+        map.put("yzzhjd", 0);
+
+        //查询所有项目
+        FgwXmsb fgwXmsb = new FgwXmsb();
+        List<FgwXmsb> fgwXmsbList = fgwXmsbMapper.selectFgwXmsbList(fgwXmsb);
+        if(fgwXmsbList!=null && fgwXmsbList.size()>0){
+            map.put("xmzs", fgwXmsbList.size());
+            Map<String, List<FgwXmsb>> fgwXmsbZcMap = fgwXmsbList.stream().collect(Collectors.groupingBy(FgwXmsb::getIsWt));
+            map.put("zcxm", fgwXmsbZcMap.get("N").size());
+        }
+        //查询所有的节点
+        FgwJdap fgwJdap = new FgwJdap();
+        fgwJdap.setShjg("1");
+        List<FgwJdap> fgwJdapList = fgwJdapMapper.selectFgwJdapList(fgwJdap);
+        if(fgwJdapList!=null && fgwJdapList.size()>0){
+            Set<Long> xmIdCqjdxmList = new HashSet<>();
+            Set<Long> xmIdYzzhxmList = new HashSet<>();
+            int zcjd = 0;
+            int cqjd = 0;
+            int yzzhjd = 0;
+            for (FgwJdap jdap : fgwJdapList) {
+                //判断时间相隔的天数
+                if(DateUtils.daysBetween(dataTime,jdap.getJdsj())>0 && !"3".equals(jdap.getSfwc())){
+                    xmIdCqjdxmList.add(jdap.getXmId());
+                    cqjd++;
+                }
+                if(DateUtils.daysBetween(dataTime,jdap.getJdsj())>fgwYjpz.getYzcqts() && !"3".equals(jdap.getSfwc())){
+                    xmIdYzzhxmList.add(jdap.getXmId());
+                    yzzhjd++;
+                }
+
+                if(!"2".equals(jdap.getSfwc())){
+                    zcjd++;
+                }
+            }
+            map.put("cqjdxm", xmIdCqjdxmList.size());
+            map.put("yzzhxm", xmIdYzzhxmList.size());
+            map.put("jdzs", fgwJdapList.size());
+            map.put("zcjd", zcjd);
+            map.put("cqjd", cqjd);
+            map.put("yzzhjd", yzzhjd);
+
+        }
+        return AjaxResult.success(map);
+    }
+
 
     /**
      * 传入时间戳获取日期格式时间

+ 1 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/fgw/FgwXmsbServiceImpl.java

@@ -79,8 +79,7 @@ public class FgwXmsbServiceImpl implements IFgwXmsbService {
      */
     @Override
     public List<FgwXmsb> selectFgwXmsbListTj(FgwXmsb fgwXmsb) {
-        fgwXmsbMapper.selectFgwXmsbListTj(fgwXmsb);
-        return null;
+        return fgwXmsbMapper.selectFgwXmsbListTj(fgwXmsb);
     }
 
     /**

+ 8 - 1
ruoyi-system/src/main/resources/mapper/system/fgw/FgwJdapDwMapper.xml

@@ -37,7 +37,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectFgwJdapDwVo"/>
         where id = #{id}
     </select>
-        
+    <select id="selectFgwJdapDwListByXmid" resultMap="FgwJdapDwResult">
+        <include refid="selectFgwJdapDwVo"/>
+        where jdap_id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
     <insert id="insertFgwJdapDw" parameterType="FgwJdapDw" useGeneratedKeys="true" keyProperty="id">
         insert into fgw_jdap_dw
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 16 - 0
ruoyi-system/src/main/resources/mapper/system/fgw/FgwJdapMapper.xml

@@ -50,6 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectFgwJdapNum" resultMap="FgwJdapResult">
         SELECT
+            ANY_VALUE(id) as id,
             xm_id
         FROM
             fgw_jdap
@@ -61,6 +62,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         GROUP BY
             xm_id
     </select>
+
+    <!--<select id="selectFgwJdapNum" resultMap="FgwJdapResult">
+        SELECT
+            id,
+            xm_id
+        FROM
+            fgw_jdap
+        WHERE
+            DATEDIFF(NOW(), jdsj) &gt;= - #{yjts}
+          AND DATEDIFF(NOW(), jdsj) &lt;=0
+          and shjg = '1'
+          and sfwc = '0'
+        GROUP BY
+            xm_id
+    </select>-->
     <select id="selectFgwJdapCqxmNum" resultMap="FgwJdapResult">
         SELECT
             xm_id

+ 1 - 1
ruoyi-system/src/main/resources/mapper/system/fgw/FgwYjpzMapper.xml

@@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
     <select id="selectFgwYjpzNew" resultMap="FgwYjpzResult">
         <include refid="selectFgwYjpzVo"/>
-        order by updateTime desc limit 1
+        order by update_time desc limit 1
     </select>
 
     <insert id="insertFgwYjpz" parameterType="FgwYjpz" useGeneratedKeys="true" keyProperty="id">