Ver Fonte

【钉钉对接】【订阅推送】

wuyx há 1 ano atrás
pai
commit
33e5563b1e

+ 24 - 0
uas-office-dingtalk/src/main/java/com/usoftchina/uas/office/dingtalk/service/UasConfigsService.java

@@ -0,0 +1,24 @@
+package com.usoftchina.uas.office.dingtalk.service;
+
+import com.usoftchina.uas.office.service.AbstractService;
+import org.springframework.dao.EmptyResultDataAccessException;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author wuyx
+ * @date 2024/7/03
+ * @desc: 参数配置判断
+ */
+@Service
+public class UasConfigsService extends AbstractService {
+    public boolean checkEnable(String caller,String code){
+        boolean enableFlag = false;
+        try{
+           int count = jdbcTemplate.queryForObject( "select count(1) from configs where caller ='"+caller+"' and code = '"+code+"' and nvl(DATA,'0')<>'0'",Integer.class);
+            enableFlag= count > 0;
+        } catch (EmptyResultDataAccessException e) {
+
+        }
+        return enableFlag;
+    }
+}

+ 0 - 10
uas-office-dingtalk/src/main/java/com/usoftchina/uas/office/dingtalk/service/UasSubsService.java

@@ -15,16 +15,6 @@ import java.util.Map;
  */
 @Service
 public class UasSubsService extends AbstractService {
-    public boolean pushSubsDataEnable(){
-        boolean pushFlag = false;
-        try{
-           int count = jdbcTemplate.queryForObject( "select count(1) from configs where caller ='sys' and code = 'enableMSubsPush' and nvl(DATA,'0')<>'0'",Integer.class);
-           pushFlag= count > 0;
-        } catch (EmptyResultDataAccessException e) {
-
-        }
-        return pushFlag;
-    }
     public List<Map<String,Object>> getSubs_instance(Integer emId) {
         List<Map<String,Object>> resList = new ArrayList<>();
         try{

+ 6 - 1
uas-office-dingtalk/src/main/java/com/usoftchina/uas/office/dingtalk/task/DingTalkCheckinTask.java

@@ -7,6 +7,7 @@ import com.usoftchina.uas.office.dingtalk.entity.Employee;
 import com.usoftchina.uas.office.dingtalk.entity.OutSign;
 import com.usoftchina.uas.office.dingtalk.manage.service.DingTalkSettingService;
 import com.usoftchina.uas.office.dingtalk.service.UasCardLogService;
+import com.usoftchina.uas.office.dingtalk.service.UasConfigsService;
 import com.usoftchina.uas.office.dingtalk.service.UasEmployeeService;
 import com.usoftchina.uas.office.dingtalk.service.UasOutSignService;
 import com.usoftchina.uas.office.entity.DataCenter;
@@ -47,7 +48,8 @@ public class DingTalkCheckinTask {
 
     @Autowired
     private UasOutSignService outSignService;
-
+    @Autowired
+    private UasConfigsService uasConfigsService;
     /**
      * 每次最多条数据
      */
@@ -64,6 +66,9 @@ public class DingTalkCheckinTask {
         if (null != dataCenter.getUsername() && null != dataCenter.getPassword() && null != dataCenter.getUrl()) {
             try {
                 DataSourceHolder.set(dataCenter);
+                if(uasConfigsService.checkEnable("CardLog","disabledByMobile")){//关闭打卡记录对接
+                    return;
+                }
                 List<Employee> employees = employeeService.getAll();
                 if (!CollectionUtils.isEmpty(employees)) {
                     Map<String, Employee> employeeMap = employees.stream().collect(Collectors.toMap(Employee::getEm_ding, e -> e));

+ 9 - 4
uas-office-dingtalk/src/main/java/com/usoftchina/uas/office/dingtalk/task/DingTalkSubsTask.java

@@ -6,6 +6,7 @@ import com.usoftchina.dingtalk.sdk.util.UrlUtils;
 import com.usoftchina.uas.office.dingtalk.entity.Employee;
 import com.usoftchina.uas.office.dingtalk.manage.entity.DingTalkAgent;
 import com.usoftchina.uas.office.dingtalk.manage.service.DingTalkAgentService;
+import com.usoftchina.uas.office.dingtalk.service.UasConfigsService;
 import com.usoftchina.uas.office.dingtalk.service.UasEmployeeService;
 import com.usoftchina.uas.office.dingtalk.service.UasSubsService;
 import com.usoftchina.uas.office.entity.DataCenter;
@@ -36,7 +37,8 @@ public class DingTalkSubsTask {
 
     @Autowired
     private UasEmployeeService uasEmployeeService;
-
+    @Autowired
+    private UasConfigsService uasConfigsService;
     @Autowired
     private DingTalkAgentService agentService;
 
@@ -48,14 +50,15 @@ public class DingTalkSubsTask {
     @Scheduled(cron="0 35 19 * * ? ")
 //    @Scheduled(fixedDelay = 180000, initialDelay = 10000)
     public void pushSubsData() {
-        logger.error("pushSubsData-begin");
+        logger.info("pushSubsData-begin");
         DataCenter dataCenter = DataCenter.INSTANCE;
         if (null != dataCenter.getUrl()) {
             try {
                 DataSourceHolder.set(dataCenter);
                 try {
-                    boolean pushFlag = uasSubsService.pushSubsDataEnable();
+                    boolean pushFlag = uasConfigsService.checkEnable("sys","enableMSubsPush");
                     System.out.println("pushFlag:"+pushFlag);
+                    logger.info("pushSubsData-pushFlag:"+String.valueOf(pushFlag));
                     if(!pushFlag){
                         return;
                     }
@@ -69,6 +72,7 @@ public class DingTalkSubsTask {
                 if(emp!=null){
                     emList.add(emp);
                 }
+                logger.info("pushSubsData-emList.size:"+emList.size());
                 if(CollectionUtils.isEmpty(emList)){
                     return;
                 }
@@ -81,6 +85,7 @@ public class DingTalkSubsTask {
                         String process = agentUrl.substring(agentUrl.indexOf("/",10)+1,agentUrl.indexOf("/",agentUrl.indexOf("/",10)+1));
                         //获取待推送的订阅信息
                         List<Map<String,Object>> remindList =uasSubsService.getSubs_instance(employee.getEm_id());
+                        logger.info("pushSubsData-remindList.size:"+remindList.size());
                         if(remindList.size() > 0){
                             try {
                                 // 往uas应用发送
@@ -116,7 +121,7 @@ public class DingTalkSubsTask {
                 DataSourceHolder.clear();
             }
         }
-        logger.error("pushSubsData-end");
+        logger.info("pushSubsData-end");
     }
     public DingTalkAgent getUasAgent() {
         return agentService.findByCode("Uas");