From e6456d2196b3e57bd06be0fbc74dd3e0fc28fdeb Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 22 七月 2025 19:17:55 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java |  207 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 207 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java
new file mode 100644
index 0000000..7d59715
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java
@@ -0,0 +1,207 @@
+package com.ruoyi.system.service.impl;
+
+import java.io.IOException;
+import java.sql.Date;
+import java.time.LocalDate;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.Gson;
+import com.ruoyi.common.enums.MsgLSEnum;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.OkHttpExample;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysConfigService;
+import com.smartor.common.LSHospTokenUtil;
+import com.smartor.domain.ServiceSubtask;
+import com.smartor.mapper.ServiceSubtaskMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.SmsRecordsMapper;
+import com.ruoyi.system.domain.SmsRecords;
+import com.ruoyi.system.service.ISmsRecordsService;
+
+/**
+ * 鐭俊璁板綍Service涓氬姟灞傚鐞�
+ *
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Slf4j
+@Service
+public class SmsRecordsServiceImpl implements ISmsRecordsService {
+    @Autowired
+    private SmsRecordsMapper smsRecordsMapper;
+
+    @Autowired
+    private ISysConfigService iSysConfigService;
+
+    @Autowired
+    private ServiceSubtaskMapper serviceSubtaskMapper;
+
+    /**
+     * 鏌ヨ鐭俊璁板綍
+     *
+     * @param recordid 鐭俊璁板綍涓婚敭
+     * @return 鐭俊璁板綍
+     */
+    @Override
+    public SmsRecords selectSmsRecordsByRecordid(Long recordid) {
+        return smsRecordsMapper.selectSmsRecordsByRecordid(recordid);
+    }
+
+    /**
+     * 鏌ヨ鐭俊璁板綍鍒楄〃
+     *
+     * @param smsRecords 鐭俊璁板綍
+     * @return 鐭俊璁板綍
+     */
+    @Override
+    public List<SmsRecords> selectSmsRecordsList(SmsRecords smsRecords) {
+        return smsRecordsMapper.selectSmsRecordsList(smsRecords);
+    }
+
+    /**
+     * 鏂板鐭俊璁板綍
+     *
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSmsRecords(SmsRecords smsRecords) {
+        smsRecords.setCreateTime(DateUtils.getNowDate());
+        return smsRecordsMapper.insertSmsRecords(smsRecords);
+    }
+
+    /**
+     * 鏂板鐭俊璁板綍
+     *
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    @Override
+    public Boolean sendSmsRecords(SmsRecords smsRecords) {
+        //鑾峰彇閫氱煡鐭俊鎻愬墠"鍑犲ぉ"鍙戦��
+        Integer days = 0;
+        String noticeSmsBeforeSend = iSysConfigService.selectConfigByKey("notice_sms_before_send");
+        //鑾峰彇鍖婚櫌鏈烘瀯ID
+        String hospOrgid = iSysConfigService.selectConfigByKey("hosp_orgid");
+        if (StringUtils.isNotEmpty(noticeSmsBeforeSend)) days = Integer.valueOf(noticeSmsBeforeSend);
+
+        //閫氳繃褰撳墠鏃ユ湡锛屽姞涓婃彁鍓嶇殑澶╂暟锛岃幏鍙栬
+        LocalDate newDate = LocalDate.now().plusDays(days);
+        Date date = Date.valueOf(newDate);
+        smsRecords.setVisitTime(date);
+
+        List<String> orgidList = null;
+        if (StringUtils.isNotEmpty(hospOrgid)) {
+            orgidList = Arrays.asList(hospOrgid.split(","));
+            smsRecords.setOrgidList(orgidList);
+        }
+        List<SmsRecords> selectSmsRecordsList = smsRecordsMapper.selectSmsRecordsList(smsRecords);
+        for (SmsRecords record : selectSmsRecordsList) {
+            Boolean aBoolean = sendSMS(record.getOrgid(), record.getPhone(), record.getMsg());
+            ServiceSubtask serviceSubtask = new ServiceSubtask();
+            serviceSubtask.setId(record.getSubId());
+            if (aBoolean) serviceSubtask.setVisitNotice(1);
+            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+        }
+
+        return true;
+    }
+
+
+    public Boolean sendSMS(String orgid, String phone, String content) {
+        //涓芥按鐨勭煭淇″彂閫佹柟寮�
+        Boolean isSuccess = false;
+        try {
+            Map<String, String> map = MsgLSEnum.getAddressByCode(orgid);
+            String token = LSHospTokenUtil.getToken(orgid);
+            log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫侊紝鍦板潃锛歿}锛屽弬鏁帮細{}锛屾満鏋処D锛歿}", map.get("address"), orgid);
+            String dxCode = getDXCode(map.get("address"), phone, content, map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(orgid), token);
+            log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫佺粨鏋滐細{}", dxCode);
+            ObjectMapper objectMapper = new ObjectMapper();
+            Map<String, Object> textParam = null;
+            textParam = objectMapper.readValue(dxCode, Map.class);
+            String code = textParam.get("Code").toString();
+            if (code.equals("0")) {
+                isSuccess = true;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return isSuccess;
+    }
+
+    /**
+     * 淇敼鐭俊璁板綍
+     *
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSmsRecords(SmsRecords smsRecords) {
+        smsRecords.setUpdateTime(DateUtils.getNowDate());
+        return smsRecordsMapper.updateSmsRecords(smsRecords);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊璁板綍
+     *
+     * @param recordids 闇�瑕佸垹闄ょ殑鐭俊璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmsRecordsByRecordids(Long[] recordids) {
+        return smsRecordsMapper.deleteSmsRecordsByRecordids(recordids);
+    }
+
+    /**
+     * 鍒犻櫎鐭俊璁板綍淇℃伅
+     *
+     * @param recordid 鐭俊璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmsRecordsByRecordid(Long recordid) {
+        return smsRecordsMapper.deleteSmsRecordsByRecordid(recordid);
+    }
+
+
+    private String getDXCode(String address, String ShouJiHM, String FaSongNR, String FaSongRID, String FaSongRXM, Map<String, Object> headerMap, String token) {
+        Map<String, Object> map = new LinkedHashMap<>();
+
+        Map<String, Object> YeWuXX = new LinkedHashMap<>();
+        Map<String, Object> DuanXinXX = new LinkedHashMap<>();
+        DuanXinXX.put("ShouJiHM", ShouJiHM);
+        DuanXinXX.put("FaSongNR", FaSongNR);
+        DuanXinXX.put("FaSongRID", FaSongRID);
+        DuanXinXX.put("FaSongRXM", FaSongRXM);
+        YeWuXX.put("DuanXinXX", DuanXinXX);
+
+        map.put("XiaoXiTou", headerMap);
+        map.put("YeWuXX", YeWuXX);
+
+        String body = new Gson().toJson(map);
+
+//        String result = HttpUtils.sendPost(address, body);
+        String result = null;
+        try {
+            result = OkHttpExample.sendPostRequest(address, body, token);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        log.info("銆恎etDXCode銆戠煭淇″彂閫佺粨鏋滐細{}", result);
+
+        JSONObject jsonObject = JSONObject.parseObject(result);
+        String code = (String) jsonObject.toString();
+        return code;
+    }
+}

--
Gitblit v1.9.3