ke
2024-07-19 2e4a5ceda924d410d08632ec3bd8c6d42cf5bc08
白蚁预警发短信7-19 12
4 files modified
2 files added
254 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/controller/SkBaiYiController.java 106 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/entity/WarnMsg.java 22 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/controller/SkPanoramaController.java 7 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/mapper/SkPanoramaMapper.xml 18 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java 74 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java 27 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/controller/SkBaiYiController.java
New file
@@ -0,0 +1,106 @@
package cn.gistack.sm.skBaiYiTest.controller;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
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 io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Slf4j
@Api(tags="白蚁预警")
@RestController
@RequestMapping("/SkBaiYi")
@AllArgsConstructor
public class SkBaiYiController  {
    private ISkBaiYiService skBaiYiService;
    @GetMapping("/baiyitest")
    public void  baiyitest() {
//        List<BaiYiTestEntity> list = skBaiYiService.selectList();
//        if (list!= null && list.size()>0) {
//            for (BaiYiTestEntity item:list ) {
//                System.err.println(item.toString());
//            }
//        }
        sendBaiYiWarn();
    }
    /**
     * 白蚁预警发短信
     */
    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);
            }
        }
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/entity/WarnMsg.java
New file
@@ -0,0 +1,22 @@
package cn.gistack.sm.skBaiYiTest.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class WarnMsg {
    @ApiModelProperty(value = "水库名称")
    private String skName;
    @ApiModelProperty(value = "责任人名称")
    private String personInCharge;
    @ApiModelProperty(value = "负责人联系方式")
    private String     phone;
    @ApiModelProperty(value = "白蚁测点(多个)")
    private String     bayistate;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/controller/SkPanoramaController.java
@@ -122,6 +122,13 @@
        return R.data(pages);
    }
//    @GetMapping("/page")
//    @ApiOperation(value = "分页", notes = "传入skPanorama")
//    public R<IPage<SkPanoramaVO>> page2(SkPanoramaVO skPanorama, Query query) {
//        IPage<SkPanoramaVO> pages = skPanoramaService.selectSkPanoramaPage(Condition.getPage(query), skPanorama);
//        return R.data(pages);
//    }
    /**
     * 水库全景图 新增
     */
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/mapper/SkPanoramaMapper.xml
@@ -25,9 +25,23 @@
    <select id="selectSkPanoramaPage" resultMap="skPanoramaResultMap">
        select
            *
            t1."guid",
            t1."res_reg_code",
            t1."res_type",
            t1."res_func",
            t1."res_category",
            t1."eng_scal"
        from
            sk_panorama
            SJZT_MD."att_res_base" t1
            left join  (
                select
                    res_guid,
                    count(res_guid) AS "num"
                from
                    YWXT."SK_PANORAMA"
                where is_deleted = 0
                group by res_guid
            )t2  on t1."guid" = t2."res_guid"
        where
            is_deleted = 0
    </select>
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);
            }
        }
    }
}
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java
@@ -8,8 +8,11 @@
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
import org.jetbrains.annotations.NotNull;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * 短信定时发送任务执行器
@@ -24,6 +27,7 @@
    @Autowired
    private IDataAbnormalWarnClient dataAbnormalWarnClient;
    /**
     * 外呼未接通-发送短信
@@ -64,6 +68,29 @@
        return ReturnT.SUCCESS;
    }
    /**
     * 试点白蚁报警,发送短信给水库人员监测监测点
     * @param param
     * @return
     */
    @XxlJob("sendWarmInfo")
    public  ReturnT<String> sendWarmInfo(String param) {
        XxlJobLogger.log("开始执行任务...");
        List<BaseEntity> baseEntities = skBaiYiService.selectList();
//        JSONObject jsonParam = JSON.parseObject(param);
//        java.lang.String tableName = jsonParam.getString("resultList");
//        java.lang.String phones = jsonParam.getString("phone");
//        dataAbnormalWarnClient.sendOperate(tableName, phones);
        XxlJobLogger.log("结束执行任务...");
        return ReturnT.SUCCESS;
    }
    @XxlJob("sendOperateCZ")
    public ReturnT<String> sendOperateCZ(String param) {
        XxlJobLogger.log("开始执行任务...");