fengjin
2022-12-06 6e93de03d7608dcd792266e80e2c52e240762886
1.更改短信平台 2.添加短信提醒功能的定时任务
8个文件已修改
113 ■■■■■ 已修改文件
flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/task/SendWsListener.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/util/SmsUtil.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 否)
     */
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);
}
flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
@@ -140,4 +140,11 @@
     */
    ResultData deleteComment(Integer id, SysUser sysUser);
    /**
     * 发送工单提醒信息
     * @return
     */
    ResultData  pushNoticeTimeRepairOrder();
}
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();
    }
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);
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信息监听--已启动!");
        /**
         * ----------------每日任务 ----------------
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("短信发送成功");
    }
}
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>