ke
2024-07-19 2e4a5ceda924d410d08632ec3bd8c6d42cf5bc08
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java
@@ -6,6 +6,9 @@
import cn.gistack.sm.sjztmd.service.*;
import cn.gistack.sm.sjztods.constant.ZtApiUrlConstant;
import cn.gistack.sm.sjztods.constant.ZtConfigConstant;
import cn.gistack.sm.skBaiYiTest.entity.BaiYiTestEntity;
import cn.gistack.sm.skBaiYiTest.entity.WarnMsg;
import cn.gistack.sm.skBaiYiTest.service.ISkBaiYiService;
import cn.gistack.sm.sms.util.SmsUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
@@ -28,6 +31,10 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
 * @PROJECT_NAME: skjcmanager
@@ -58,6 +65,9 @@
   @Autowired
   private RestTemplate restTemplate;
   @Autowired
   private ISkBaiYiService skBaiYiService;
   @Override
   public void sendOperate(String tableName, String phones) {
@@ -227,4 +237,68 @@
      }
   }
   /**
    * 白蚁预警发短信
    */
   public void sendBaiYiWarn() {
      List<BaiYiTestEntity> list = skBaiYiService.selectList();
      Set<String> skNameSet = new HashSet<>();
      ArrayList<WarnMsg> msgEntityList = new ArrayList<>();
      if (list!= null && list.size()>0) {
         log.info("白蚁预警水库数量:" +  list.size());
         for (BaiYiTestEntity item : list ) {
            skNameSet.add(item.getSkName());
         }
         if(skNameSet.size()>0){
            for (String sknm : skNameSet) {
               WarnMsg warnMsg = new WarnMsg();
               warnMsg.setSkName(sknm);
               String statListStr = ""; // 测点集
               String personInCharge = ""; // 责任人名称
               String phone = ""; // 责任人联系方式
               for (BaiYiTestEntity item : list ) {
                  String skName = item.getSkName();
                  String termitePointNum = item.getTermitePointNum();
                  personInCharge = item.getPersonInCharge();
                  phone = item.getPhone();
                  if(sknm.equals(skName)){
                     statListStr = statListStr + termitePointNum + ","; // 同一个水库的报警白蚁测点拼接起来
                  }
               }
               warnMsg.setPhone(phone);
               warnMsg.setPersonInCharge(personInCharge);
               warnMsg.setBayistate(statListStr);
               msgEntityList.add(warnMsg);
            }
         }
      }
      // 获取到了数据开始发短信
      if (msgEntityList!= null && msgEntityList.size()>0) {
         for (WarnMsg item : msgEntityList) {
            String skName = item.getSkName();
            String personInCharge = item.getPersonInCharge();
            String phone = item.getPhone();
            String bayistate = item.getBayistate();
            SMSSendRequest request = new SMSSendRequest();
            request.setUserNumber(phone);
            request.setTemplateId("2431012268292");//短信模版编号
            request.setMessageContent("紧急通知:"+skName+" 中 "+bayistate+" 以上白蚁监测点发生白蚁预警,请立安排人前去检查是否真实存在白蚁。");
            SmsUtils.sendMsg(request);
         }
      }
   }
}