From 6c84eff9302df57bc41a5200c2f88f67b669c460 Mon Sep 17 00:00:00 2001
From: fengjin <1435304038@qq.com>
Date: 星期二, 06 十二月 2022 10:46:49 +0800
Subject: [PATCH] Merge branch 'zigonggao_dev' into huacheng_test

---
 flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java           |    7 +++
 flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java         |    7 +++
 flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml                    |    8 ++++
 flower_city/src/main/java/com/dg/core/task/SendWsListener.java                      |   10 +++-
 flower_city/src/main/java/com/dg/core/util/SmsUtil.java                             |   37 ++++++++++++++++++
 flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java     |    7 +++
 flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java        |   14 ++++--
 flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java |   23 ++++++++++-
 8 files changed, 103 insertions(+), 10 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java
index a4caaf6..eabd2c6 100644
--- a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java
@@ -194,6 +194,13 @@
     @ApiModelProperty("是否推送过(1 是 2 否)")
     private Integer isPush;
 
+
+    /**
+     * 是否提醒推送过(1 是 2 否)
+     */
+    @ApiModelProperty("是否提醒推送过(1 是 2 否)")
+    private Integer isRemindPush;
+
     /**
      * 是否隐藏评论(1 是 2 否)
      */
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java
index 3e74bdc..a5e2982 100644
--- a/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java
@@ -133,4 +133,11 @@
     List<GuideRepairOrder> selectEvaluate();
 
 
+    /**
+     * 获取需要通知的单据
+     * @return
+     */
+    List<GuideRepairOrder> selectNoticeTime(@Param("minute") Integer minute);
+
+
 }
diff --git a/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java b/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
index 0e57c8c..ced70b5 100644
--- a/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
+++ b/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
@@ -140,4 +140,11 @@
      */
     ResultData deleteComment(Integer id, SysUser sysUser);
 
+
+    /**
+     * 发送工单提醒信息
+     * @return
+     */
+    ResultData  pushNoticeTimeRepairOrder();
+
 }
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
index 683e8a6..b8c7614 100644
--- a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
+++ b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
@@ -403,13 +403,13 @@
             throw new RuntimeException(e);
         }
         for (GuideRepairOrder guideRepairOrder : guideRepairOrders) {
-            List<SysUser> sysUsers = sysUserMapper.selectList(new QueryWrapper<SysUser>().lambda().eq(SysUser::getDepartmentId, guideRepairOrder.getGuideUserPhone()).eq(SysUser::getIsDivisionHead, 1));
+            List<SysUser> sysUsers = sysUserMapper.selectList(new QueryWrapper<SysUser>().lambda().eq(SysUser::getDepartmentId, guideRepairOrder.getGuideDepartmentId()).eq(SysUser::getIsDivisionHead, 1));
             if (sysUsers != null && sysUsers.size() > 0) {
                 for (SysUser sysUser : sysUsers) {
 //            transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getId, guideRepairOrder.getMatterId()));
 //            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
                     if (sysUser != null) {
-                        smsUtil.sendSmsOvertime(sysUser.getPhonenumber(), sysUser.getUserName());
+                        smsUtil.sendSmsOvertimeNew(sysUser.getPhonenumber(), sysUser.getUserName());
                         wxUtil.sendGuideRepairOrderOvertime(sysUser.getOpenid(), accessToken, "86JgWHhR8b1XxD72WYqMnndyfkiMtSSoCk9NFMwLEZ8", sysUser);
                         guideRepairOrder.setIsPush(1);
                         guideRepairOrder.setIsTimeout("2");
@@ -417,6 +417,25 @@
                     }
                 }
             }
+
+        }
+        return ResultData.success();
+    }
+
+    @Override
+    public ResultData  pushNoticeTimeRepairOrder(){
+        AutomessageSysSettings automessageSysSettings = iSysSettingsMapper.selectOne(
+                new QueryWrapper<AutomessageSysSettings>().lambda()
+                        .eq(AutomessageSysSettings::getSettingName, "系统超时基础设置"));
+        Integer timeoutRemindNum = automessageSysSettings.getTimeoutRemindNum();
+        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectNoticeTime(timeoutRemindNum);
+        for (GuideRepairOrder guideRepairOrder:guideRepairOrders){
+            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
+            if (sysUser != null) {
+                smsUtil.sendSmsOvertimeRemind(sysUser.getPhonenumber(), sysUser.getUserName());
+                guideRepairOrder.setIsRemindPush(1);
+                baseMapper.updateById(guideRepairOrder);
+            }
         }
         return ResultData.success();
     }
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
index 56fc15b..d235426 100644
--- a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
+++ b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
@@ -300,10 +300,14 @@
         // 获取excel的sheet页数
         int numberOfSheets = wb.getNumberOfSheets();
         for (int j = 0; j < numberOfSheets; j++) {
+            int i = 2;
             //获取excel字段名称进行比较
             Sheet sheetAt = wb.getSheetAt(j);
             if(sheetAt.getRow(2)!=null){
-            Row row1 = sheetAt.getRow(2);
+            if (new DataFormatter().formatCellValue(sheetAt.getRow(1).getCell(1)).length()>=3){
+                i--;
+            }
+            Row row1 = sheetAt.getRow(i);
             TransactionEvent transactionEvent = baseMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getMatterName, new DataFormatter().formatCellValue(row1.getCell(1))));
             boolean isAdd = false;
             if (transactionEvent == null) {
@@ -311,15 +315,15 @@
                 isAdd = true;
             }
             transactionEvent.setMatterName(new DataFormatter().formatCellValue(row1.getCell(1)));
-            Row row2 = sheetAt.getRow(3);
+            Row row2 = sheetAt.getRow(i+1);
             transactionEvent.setSetGist("<p>" + new DataFormatter().formatCellValue(row2.getCell(1)) + "</p>");
-            Row row3 = sheetAt.getRow(4);
-            Row row4 = sheetAt.getRow(5);
+            Row row3 = sheetAt.getRow(i+2);
+            Row row4 = sheetAt.getRow(i+3);
             transactionEvent.setBasicInformation("<p> 事项名称:" + new DataFormatter().formatCellValue(row1.getCell(1)) + "<br />"
                     + new DataFormatter().formatCellValue(row3.getCell(0)) + ":" + new DataFormatter().formatCellValue(row3.getCell(1))+ "<br />"
                     + new DataFormatter().formatCellValue(row3.getCell(3)) + ":" + new DataFormatter().formatCellValue(row3.getCell(4)) + "<br />"
                     + new DataFormatter().formatCellValue(row4.getCell(0)) + ":" + new DataFormatter().formatCellValue(row4.getCell(1)) + "</p>");
-            int i = 7;
+             i = i+5;
             String applicationMaterial = "<p>";
             while (true) {
                 Row row = sheetAt.getRow(i);
diff --git a/flower_city/src/main/java/com/dg/core/task/SendWsListener.java b/flower_city/src/main/java/com/dg/core/task/SendWsListener.java
index 33780a3..492c6ef 100644
--- a/flower_city/src/main/java/com/dg/core/task/SendWsListener.java
+++ b/flower_city/src/main/java/com/dg/core/task/SendWsListener.java
@@ -2,6 +2,7 @@
 
 import com.dg.core.service.IGuideRepairOrderService;
 import com.dg.core.util.TestDate;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.redis.core.RedisTemplate;
 
 import javax.annotation.Resource;
@@ -11,6 +12,7 @@
 import java.util.*;
 
 @WebListener
+@Slf4j
 public class SendWsListener implements ServletContextListener {
 
     @Resource
@@ -21,7 +23,7 @@
 
     @Override
     public void contextDestroyed(ServletContextEvent arg0) {
-        System.out.println("定时发送Xml信息监听--已关闭!");
+        log.info("定时发送Xml信息监听--已关闭!");
     }
 
     @Override
@@ -55,18 +57,20 @@
 
             @Override
             public void run() {
-                System.out.println("每刻任务已执行");
+                log.info("每刻任务已执行");
                 //定时更新超时状态
                 iGuideRepairOrderService.pushOvertimeGuideRepairOrder();
                 //定时更新未评价的单据评价状态
                 iGuideRepairOrderService.updateEvaluate();
+                //定时发送工单提醒信息
+                iGuideRepairOrderService.pushNoticeTimeRepairOrder();
                 TestDate td = new TestDate();
                 Map weather = td.getWeather("510400");
                 redisTemplate.opsForValue().set("weather",weather);
                 // TODO 写你的逻辑
             }
         }, defaultdate, 1 * 60 * 1000);// 定时每15分钟
-        System.out.println("每刻定时发送Xml信息监听--已启动!");
+        log.info("每刻定时发送Xml信息监听--已启动!");
 
         /**
          * ----------------每日任务 ----------------
diff --git a/flower_city/src/main/java/com/dg/core/util/SmsUtil.java b/flower_city/src/main/java/com/dg/core/util/SmsUtil.java
index 483471c..cde4fd0 100644
--- a/flower_city/src/main/java/com/dg/core/util/SmsUtil.java
+++ b/flower_city/src/main/java/com/dg/core/util/SmsUtil.java
@@ -399,4 +399,41 @@
         }
         return ResultData.success("短信发送成功");
     }
+
+
+    /**
+     * 发送工单提交短信(电信平台)
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsOvertimeRemind(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content="您的待处理导办工单已超时,请 "+name+"尽快处理。";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
 }
\ No newline at end of file
diff --git a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
index aa728cd..730bb4a 100644
--- a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
+++ b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
@@ -33,6 +33,8 @@
         <id     property="timeoutTime"      column="timeout_time"      />
         <id     property="isPush"      column="is_push"      />
         <id     property="isHideComments"      column="is_hide_comments"      />
+        <id     property="isRemindPush"      column="is_remind_push"      />
+
     </resultMap>
 
     <sql id="selectGuideRepairOrderVo">
@@ -291,6 +293,12 @@
         </where>
     </select>
 
+    <select id="selectNoticeTime"  resultMap="GuideRepairOrderResult">
+        <include refid="selectGuideRepairOrderVo"/>
+        <where>
+       state=2 and is_remind_push=2 and  SYSDATE()>subdate(timeout_time, interval    ${minute}  minute ) and  1>(select count(*)  from automessage_guide_evolve where state=9 and  a.id=guide_id )
+     </where>
+        </select>
     <select id="selectEvaluate"  resultMap="GuideRepairOrderResult">
         <include refid="selectGuideRepairOrderVo"/>
         <where>

--
Gitblit v1.7.1