Ver código fonte

增加短信提醒接口类、提供短信提醒功能

zjc 11 meses atrás
pai
commit
316703aa63

+ 21 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/invest/TProjectApprovalController.java

@@ -1,11 +1,16 @@
 package com.ruoyi.web.controller.invest;
 
+import java.io.IOException;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.FileType;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.sms.SmsSenderUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.invest.service.ITProjectPoolService;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.tool.domain.TUnifyFile;
 import com.ruoyi.tool.service.ITUnifyFileService;
 import io.swagger.annotations.Api;
@@ -49,6 +54,9 @@ public class TProjectApprovalController extends BaseController
     @Autowired
     private ITProjectPoolService tProjectPoolService;
 
+    @Autowired
+    private ISysUserService sysUserService;
+
     /**
      * 查询立项申请列表
      */
@@ -111,6 +119,19 @@ public class TProjectApprovalController extends BaseController
         // todo 更改立项状态
         tProjectPoolService.updateTProjectPoolByApprovalFlag(tProjectApproval.getProjectPoolId(),"1");
 
+        // todo 短信提醒
+        if(StringUtils.isNotEmpty(tProjectApproval.getParticipantsId())){
+            StringUtils.str2List(tProjectApproval.getParticipantsId(),",",true,true).stream().forEach(str -> {
+                SysUser user = sysUserService.selectUserById(Long.valueOf(str));
+                String contents = "您好,"+user.getNickName()+"," + tProjectApproval.getProjectName() + "项目已发起立项申请。";
+                try {
+                    SmsSenderUtils.sendSms(user.getPhonenumber(),contents);
+                } catch (IOException e) {
+                    logger.error("短信发送失败"+e.getMessage());
+                }
+            });
+        }
+
         return toAjax(tProjectApprovalService.insertTProjectApproval(tProjectApproval));
     }
 

+ 21 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/invest/TProjectDecisionController.java

@@ -1,11 +1,16 @@
 package com.ruoyi.web.controller.invest;
 
+import java.io.IOException;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.FileType;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.sms.SmsSenderUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.invest.service.ITProjectPoolService;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.tool.domain.TUnifyFile;
 import com.ruoyi.tool.service.ITUnifyFileService;
 import io.swagger.annotations.Api;
@@ -49,6 +54,9 @@ public class TProjectDecisionController extends BaseController
     @Autowired
     private ITProjectPoolService tProjectPoolService;
 
+    @Autowired
+    private ISysUserService sysUserService;
+
     /**
      * 查询投决申请列表
      */
@@ -108,10 +116,22 @@ public class TProjectDecisionController extends BaseController
                 tUnifyFileService.insertTUnifyFile(tUnifyFile);
             }
         }
-
         // todo 更改投决状态
         tProjectPoolService.updateTProjectPoolByDecisionFlag(tProjectDecision.getProjectPoolId(),"1");
 
+        // todo 短信提醒
+        if(StringUtils.isNotEmpty(tProjectDecision.getParticipantsId())){
+            StringUtils.str2List(tProjectDecision.getParticipantsId(),",",true,true).stream().forEach(str -> {
+                SysUser user = sysUserService.selectUserById(Long.valueOf(str));
+                String contents = "您好,"+user.getNickName()+"," + tProjectDecision.getProjectName() + "项目已发起投决申请。";
+                try {
+                    SmsSenderUtils.sendSms(user.getPhonenumber(),contents);
+                } catch (IOException e) {
+                    logger.error("短信发送失败"+e.getMessage());
+                }
+            });
+        }
+
         return toAjax(tProjectDecisionService.insertTProjectDecision(tProjectDecision));
     }
 

+ 20 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/invest/TProjectInvestigateController.java

@@ -1,15 +1,19 @@
 package com.ruoyi.web.controller.invest;
 
+import java.io.IOException;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.FileType;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.sms.SmsSenderUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.invest.domain.TProjectCirculation;
 import com.ruoyi.invest.domain.TProjectScoring;
 import com.ruoyi.invest.service.ITProjectCirculationService;
 import com.ruoyi.invest.service.ITProjectPoolService;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.tool.domain.TUnifyFile;
 import com.ruoyi.tool.service.ITUnifyFileService;
 import io.swagger.annotations.Api;
@@ -56,6 +60,9 @@ public class TProjectInvestigateController extends BaseController
     @Autowired
     private ITProjectPoolService tProjectPoolService;
 
+    @Autowired
+    private ISysUserService sysUserService;
+
     /**
      * 查询尽调关联列表
      */
@@ -123,6 +130,19 @@ public class TProjectInvestigateController extends BaseController
         // todo 更改尽调状态
         tProjectPoolService.updateTProjectPoolByInvestigateFlag(tProjectInvestigate.getProjectPoolId(),"1");
 
+        // todo 短信提醒
+        if(StringUtils.isNotEmpty(tProjectInvestigate.getInvestigatePersonId())){
+            StringUtils.str2List(tProjectInvestigate.getInvestigatePersonId(),",",true,true).stream().forEach(str -> {
+                SysUser user = sysUserService.selectUserById(Long.valueOf(str));
+                String contents = "您好,"+user.getNickName()+"," + tProjectInvestigate.getProjectName() + "项目已开启尽职背调。";
+                try {
+                    SmsSenderUtils.sendSms(user.getPhonenumber(),contents);
+                } catch (IOException e) {
+                    logger.error("短信发送失败"+e.getMessage());
+                }
+            });
+        }
+
         return toAjax(tProjectInvestigateService.insertTProjectInvestigate(tProjectInvestigate));
     }
 

+ 39 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/invest/TProjectMeetingController.java

@@ -1,15 +1,18 @@
 package com.ruoyi.web.controller.invest;
 
+import java.io.IOException;
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.FileType;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.common.utils.file.FileUtils;
+import com.ruoyi.common.utils.sms.SmsSenderUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.framework.config.ServerConfig;
 import com.ruoyi.invest.domain.TProjectCirculation;
@@ -17,6 +20,7 @@ import com.ruoyi.invest.domain.TProjectMeeting;
 import com.ruoyi.invest.service.ITProjectCirculationService;
 import com.ruoyi.invest.service.ITProjectMeetingService;
 import com.ruoyi.system.service.ISysDictDataService;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.tool.domain.TUnifyFile;
 import com.ruoyi.tool.service.ITUnifyFileService;
 import io.swagger.annotations.Api;
@@ -62,6 +66,10 @@ public class TProjectMeetingController extends BaseController
     @Autowired
     private ISysDictDataService dictDataService;
 
+    @Autowired
+    private ISysUserService sysUserService;
+
+
     /**
      * 查询会议记录列表
      */
@@ -146,6 +154,37 @@ public class TProjectMeetingController extends BaseController
         tProjectCirculation.setCreateBy(getNickName());
         tProjectCirculationService.insertTProjectCirculation(tProjectCirculation);
 
+        // todo 发送短信-参与人-发起人
+        if(tProjectMeeting.getMeetingType().equals("LX") || tProjectMeeting.getMeetingType().equals("TJ")){
+            // todo 参与人
+            if(StringUtils.isNotEmpty(tProjectMeeting.getParticipantsId())){
+                StringUtils.str2List(tProjectMeeting.getParticipantsId(),",",true,true).stream().forEach(str -> {
+                    SysUser user = sysUserService.selectUserById(Long.valueOf(str));
+                    String contents = "您好," + user.getNickName() + ",兹定于 " +
+                            tProjectMeeting.getStartTime() + "时间 至 " + tProjectMeeting.getEndTime() +
+                            "时间 在" + tProjectMeeting.getPlace() + "会议室召开" + tProjectMeeting.getMeetingTheme() + "会议,请提前做好准备按时参加。";
+                    try {
+                        SmsSenderUtils.sendSms(user.getPhonenumber(),contents);
+                    } catch (IOException e) {
+                       logger.error("短信发送失败"+e.getMessage());
+                    }
+                });
+            }
+
+            // todo 发起人
+            if(StringUtils.isNotEmpty(tProjectMeeting.getPromoterId())){
+                SysUser user = sysUserService.selectUserById(Long.valueOf(tProjectMeeting.getPromoterId()));
+                String contents = "您好," + user.getNickName() + ",兹定于 " +
+                        tProjectMeeting.getStartTime() + "时间 至 " + tProjectMeeting.getEndTime() +
+                        "时间 在" + tProjectMeeting.getPlace() + "会议室召开" + tProjectMeeting.getMeetingTheme() + "会议,请提前做好准备按时参加。";
+                try {
+                    SmsSenderUtils.sendSms(user.getPhonenumber(),contents);
+                } catch (IOException e) {
+                    logger.error("短信发送失败"+e.getMessage());
+                }
+            }
+        }
+
         return toAjax(tProjectMeetingService.insertTProjectMeeting(tProjectMeeting));
     }
 

+ 0 - 70
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/OkHttpFGUtils.java

@@ -98,76 +98,6 @@ public class OkHttpFGUtils {
                 }
             }
         }
-
-
-//        Map<String, List<Object>> map = getSchoolMap(result);
-//
-//        for (Object majors: map.get("majorsList")) {
-//
-//            Map majorsMap = (Map) JSON.parse(majors.toString());
-//
-//            JSONArray childrens = JSONObject.parseArray(majorsMap.get("children").toString());
-//            List<Object> childrenList = childrens;
-//            if(StringUtils.isNotEmpty(childrenList)){
-//                for (Object children: childrenList) {
-//                    Map childrenMap = (Map) JSON.parse(children.toString());
-//
-//                    JSONArray childrens1 = JSONObject.parseArray(childrenMap.get("children").toString());
-//                    List<Object> children1List = childrens1;
-//                    if(StringUtils.isNotEmpty(children1List)) {
-//                        for (Object children1 : children1List) {
-//                            Map children1Map = (Map) JSON.parse(children1.toString());
-//                            String rankingsResult = HttpUtils.sendGet(URL,"year=2023&majorCode="+children1Map.get("code").toString());
-//
-//                            Map<String, List<Object>> univMap = getSchoolMap(rankingsResult);
-//
-//                            for (Object rankings:
-//                                    univMap.get("rankingsList")) {
-//                                Map rankingsMap = (Map) JSON.parse(rankings.toString());
-//
-//                                if(rankingsMap.get("grade").toString().equals("A+")||rankingsMap.get("grade").toString().equals("A")){
-//
-//                                    Map<String,String> univ = new HashMap<>();
-//                                    univ.put("lName",majorsMap.get("name").toString());
-//                                    univ.put("lCode",majorsMap.get("code").toString());
-//                                    univ.put("pName",childrenMap.get("name").toString());
-//                                    univ.put("pCode",childrenMap.get("code").toString());
-//                                    univ.put("zName",children1Map.get("name").toString());
-//                                    univ.put("zCode",children1Map.get("code").toString());
-//                                    univ.put("grade",rankingsMap.get("grade").toString());
-//                                    univ.put("univNameCn",rankingsMap.get("univNameCn").toString());
-//                                    univ.put("score",rankingsMap.get("score").toString());
-//                                    univ.put("province",rankingsMap.get("province").toString());
-//                                    univ.put("city",rankingsMap.get("city").toString());
-//                                    univ.put("univLikeCount",rankingsMap.get("univLikeCount").toString());
-//                                    univ.put("univTags",rankingsMap.get("univTags").toString());
-//                                    univ.put("ranking",rankingsMap.get("ranking").toString());
-//
-//                                    Map indGradesMap = (Map) JSON.parse(rankingsMap.get("indGrades").toString());
-//                                    if (!indGradesMap.isEmpty()){
-//                                        univ.put("12",indGradesMap.get(12)!=null?indGradesMap.get(12).toString():"");
-//                                        univ.put("13",indGradesMap.get(13)!=null?indGradesMap.get(15).toString():"");
-//                                        univ.put("14",indGradesMap.get(15)!=null?indGradesMap.get(15).toString():"");
-//                                        univ.put("15",indGradesMap.get(15)!=null?indGradesMap.get(15).toString():"");
-//                                        univ.put("16",indGradesMap.get(15)!=null?indGradesMap.get(15).toString():"");
-//                                    }else {
-//                                        univ.put("12","/");
-//                                        univ.put("13","/");
-//                                        univ.put("14","/");
-//                                        univ.put("15","/");
-//                                        univ.put("16","/");
-//                                    }
-//
-//                                    resultList.add(univ);
-//
-//                                }
-//                            }
-//                        }
-//                    }
-//                }
-//            }
-//        }
-
     }
 
 

+ 57 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/sms/SmsSenderUtils.java

@@ -0,0 +1,57 @@
+package com.ruoyi.common.utils.sms;
+
+import com.ruoyi.common.utils.sign.Md5Utils;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class SmsSenderUtils {
+
+    private static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
+    private static final OkHttpClient client = new OkHttpClient();
+
+    public static void sendSms(String phoneNumber, String contents) throws IOException {
+        // 替换为你的短信服务提供商的API URL
+        String url = "http://demo.dgtis.com/smscat/sms/sendSms";
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        String date = sdf.format(new Date());
+        String md5 = "phones=" + phoneNumber + "&key=dgtissms&date=" + date;
+        md5 = Md5Utils.hash(md5);
+
+        RequestBody formBody = new FormBody.Builder()
+                .add("phones",phoneNumber)
+                .add("contents",contents)
+                .add("md5",md5)
+                .build();
+
+        // 创建请求
+        Request request = new Request.Builder()
+                .url(url)
+                .post(formBody)
+                .build();
+
+        // 发送请求并获取响应
+        try (Response response = client.newCall(request).execute()) {
+            if (!response.isSuccessful()) {
+                throw new IOException("Unexpected code " + response);
+            } else {
+                // 处理响应,例如打印响应体
+                System.out.println(response.body().string());
+            }
+        }
+    }
+
+    public static void main(String[] args) {
+        SmsSenderUtils sender = new SmsSenderUtils();
+        try {
+            sender.sendSms("15896567520", "Hello, this is a test message!");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+
+}

+ 11 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectApproval.java

@@ -25,6 +25,9 @@ public class TProjectApproval extends BaseEntity
     @Excel(name = "项目ID")
     private String projectPoolId;
 
+    /** 项目名称 */
+    private String projectName;
+
     /** 项目概况 */
     @Excel(name = "项目概况")
     private String projectOverview;
@@ -117,6 +120,14 @@ public class TProjectApproval extends BaseEntity
         this.participantsId = participantsId;
     }
 
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 11 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectDecision.java

@@ -25,6 +25,9 @@ public class TProjectDecision extends BaseEntity
     @Excel(name = "项目ID")
     private String projectPoolId;
 
+    /** 项目名称 */
+    private String projectName;
+
     /** 参与人ID */
     @Excel(name = "参与人ID")
     private String participantsId;
@@ -108,6 +111,14 @@ public class TProjectDecision extends BaseEntity
         this.listFile = listFile;
     }
 
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 11 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectInvestigate.java

@@ -35,6 +35,9 @@ public class TProjectInvestigate extends BaseEntity
     @Excel(name = "项目id")
     private String projectPoolId;
 
+    /** 项目名称 */
+    private String projectName;
+
     /** 尽调人员 */
     @Excel(name = "尽调人员")
     private String investigatePerson;
@@ -229,6 +232,14 @@ public class TProjectInvestigate extends BaseEntity
         this.deadDate = deadDate;
     }
 
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)