fengjin
2022-10-20 8cc9e9601aab48e511831f62f3b71bd3c68fea06
1.定时任务修改超时状态 2.定时任务默认好评 3.修改bug
11个文件已修改
207 ■■■■ 已修改文件
flower_city/src/main/java/com/dg/core/WMApplication.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/task/SendWsListener.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/util/WxUtil.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/SysUserMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/WMApplication.java
@@ -5,7 +5,7 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
//@ServletComponentScan("com.dg.core.task")  //定时任务启动开关
@ServletComponentScan("com.dg.core.task")  //定时任务启动开关
@SpringBootApplication
@MapperScan("com.dg.core.db")
public class WMApplication {
flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
@@ -193,8 +193,8 @@
        //新增已办结记录
        entity.setCreateTime(LocalDateTime.now());
        entity.setUpdateTime(LocalDateTime.now());
        entity.setDepartmentalId(order.getGuideDepartmentId());
        entity.setToUserId(order.getGuideUserId());
        entity.setFromDepartmentalId(sysUser.getDepartmentId());
        entity.setFromUserId(sysUser.getUserId()+"");
        entity.setGuideId(order.getId().toString());
        iGuideEvolveService.insertConfig(entity);
        iGuideRepairOrderService.updateSysUserOrderNum(entity);
flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
@@ -129,10 +129,10 @@
        entity.setCreateTime(LocalDateTime.now());
        entity.setUpdateTime(LocalDateTime.now());
        entity.setState("11");
        entity.setDepartmentalId(sysUser.getDepartmentId());
        entity.setToUserId(sysUser.getUserId()+"");
        entity.setFromUserId(order.getGuideUserId());
        entity.setFromDepartmentalId(order.getGuideDepartmentId());
        entity.setDepartmentalId(order.getGuideDepartmentId());
        entity.setToUserId(order.getGuideUserId());
        entity.setFromUserId(sysUser.getUserId().toString());
        entity.setFromDepartmentalId(sysUser.getDepartmentId());
        entity.setGuideId(order.getId().toString());
        iGuideRepairOrderService.updateSysUserOrderNum(entity);
        iGuideEvolveService.insertConfig(entity);
flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java
@@ -54,9 +54,9 @@
    private String fromUserId;
    /**
     * state", value = "状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复 10转派 11手动分配)
     * state", value = "状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复 10转派 11手动分配12默认好评)
     */
    @ApiModelProperty(name = "state", value = "状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复 10转派 11手动分配)")
    @ApiModelProperty(name = "state", value = "状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复 10转派 11手动分配 12默认好评)")
    private String state;
flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java
@@ -98,6 +98,17 @@
    List<CountListNum> countListNum(@Param("state") String state,
                                    @Param("ids") List<String> ids,
                                    @Param("time") Integer time);
    /**
     * 获取超时工单
     * @return
     */
   List<GuideRepairOrder> selectOvertime();
    /**
     * 更改状态为好评
     * @return
     */
    List<GuideRepairOrder> selectEvaluate();
}
flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
@@ -1,6 +1,7 @@
package com.dg.core.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dg.core.ResultData;
import com.dg.core.db.gen.entity.*;
import org.springframework.data.repository.query.Param;
@@ -110,4 +111,16 @@
     */
    int deleteConfigById(String Id);
    /**
     * 推送超时工单
     * @return
     */
    ResultData pushOvertimeGuideRepairOrder();
    /**
     * 更改状态为好评
     * @return
     */
    int updateEvaluate();
}
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dg.core.ResultData;
import com.dg.core.db.gen.entity.*;
import com.dg.core.db.gen.mapper.*;
import com.dg.core.service.IGuideRepairOrderService;
@@ -110,8 +111,8 @@
                    entity.setState("8");
                    entity.setDepartmentalId(sysUser.getDepartmentId());
                    entity.setToUserId(guideRepairOrder.getGuideUserId() + "");
                    entity.setFromUserId(guideRepairOrder.getSubmitUserId());
                    entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId());
//                    entity.setFromUserId(guideRepairOrder.getSubmitUserId());
//                    entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId());
                    entity.setGuidOrderNum(guideRepairOrder.getOrderNum());
                    //超时时间设置业务开始
                    guideRepairOrder = this.setTimeoutTim(guideRepairOrder);
@@ -340,5 +341,52 @@
        return baseMapper.deleteConfigById(Id);
    }
    @Override
    public ResultData pushOvertimeGuideRepairOrder() {
        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectOvertime();
        WxUtil wxUtil = new WxUtil();
        String accessToken = "0";
        try {
            accessToken = wxUtil.getBatteryCarAccessToken();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        for (GuideRepairOrder guideRepairOrder:guideRepairOrders) {
            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
            if (sysUser!=null)
            {
                smsUtil.sendSmsOvertime(sysUser.getPhonenumber(), sysUser.getUserName());
                wxUtil.sendGuideRepairOrderOvertime(sysUser.getOpenid(),accessToken,"86JgWHhR8b1XxD72WYqMnndyfkiMtSSoCk9NFMwLEZ8",sysUser);
                guideRepairOrder.setIsPush(1);
                guideRepairOrder.setIsTimeout("2");
                baseMapper.updateById(guideRepairOrder);
            }
        }
        return ResultData.success();
    }
    @Override
    public int updateEvaluate() {
        //查找一天没有评价的单据
        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectEvaluate();
        for (GuideRepairOrder guideRepairOrder:guideRepairOrders) {
            guideRepairOrder.setEvaluateState("1");
            guideRepairOrder.setEvaluateContent("好评");
            guideRepairOrder.setServiceState(1);
            guideRepairOrder.setState("3");
            baseMapper.updateById(guideRepairOrder);
            //新增默认好评进展
            GuideEvolveEntity entity = new GuideEvolveEntity();
            entity.setCreateTime(LocalDateTime.now());
            entity.setUpdateTime(LocalDateTime.now());
            entity.setState("12");
            entity.setFromUserId(guideRepairOrder.getSubmitUserId()+"");
            entity.setGuideId(guideRepairOrder.getId().toString());
            guideEvolveMapper.insertConfig(entity);
        }
        return 0;
    }
}
flower_city/src/main/java/com/dg/core/task/SendWsListener.java
@@ -1,5 +1,8 @@
package com.dg.core.task;
import com.dg.core.service.IGuideRepairOrderService;
import javax.annotation.Resource;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@@ -10,6 +13,9 @@
@WebListener
public class SendWsListener implements ServletContextListener {
    @Resource
    private IGuideRepairOrderService iGuideRepairOrderService;
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("定时发送Xml信息监听--已关闭!");
@@ -47,6 +53,10 @@
            @Override
            public void run() {
                System.out.println("每刻任务已执行");
                //定时更新超时状态
                iGuideRepairOrderService.pushOvertimeGuideRepairOrder();
                //定时更新未评价的单据评价状态
                iGuideRepairOrderService.updateEvaluate();
                // TODO 写你的逻辑
            }
        }, defaultdate, 1 * 60 * 1000);// 定时每15分钟
@@ -57,40 +67,40 @@
         * 启动服务器后,若此时时间没过8点,等待。到了8点自动执行一次,24小时后(第二天8点)再执行一次,周而复始
         * 启动服务器后,若此时时间已经超过8点,则等到24小时后(第二天8点)才执行一次,周而复始
         */
        Timer dTimer = new Timer();
        dTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("每日任务已经执行");
                // TODO 写你的逻辑
            }
        }, sendDate, 24 * 60 * 60 * 1000);// 定时24小时:24 * 60 * 60 * 1000
        System.out.println("每日定时发送Xml信息监听--已启动!");
//        Timer dTimer = new Timer();
//        dTimer.schedule(new TimerTask() {
//
//            @Override
//            public void run() {
//                System.out.println("每日任务已经执行");
//                // TODO 写你的逻辑
//            }
//        }, sendDate, 24 * 60 * 60 * 1000);// 定时24小时:24 * 60 * 60 * 1000
//        System.out.println("每日定时发送Xml信息监听--已启动!");
        /**
         * ----------------每月任务 ----------------
         * 启动服务器后,若此时时间没过8点,等待。到了8点自动执行判断是否是当前月份的1号,若是则执行一次,
         * 24小时后(第二天8点)再执行一次判断(每月1号以后后的29天或30天后才会是下月1号,再执行一次),周而复始 启动服务器后,若此时时间已经超过8点,会立刻执行一次,等到下个月1号再次执行一次,周而复始
         */
        Timer mTimer = new Timer();
        mTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                Calendar c = Calendar.getInstance();
                int day = c.get(Calendar.DAY_OF_MONTH);
                System.out.println("月任务 判断中");
                if (day == 1) {
                    // 每天执行,若为每月1号才执行
                    System.out.println("月任务执行已执行");
                    // TODO 写你的逻辑
                }
            }
        }, sendDate, 24 * 60 * 60 * 1000);// 每天执行一次检查
        System.out.println("每月定时发送Xml信息监听--已启动!");
//        Timer mTimer = new Timer();
//        mTimer.schedule(new TimerTask() {
//
//            @Override
//            public void run() {
//                Calendar c = Calendar.getInstance();
//                int day = c.get(Calendar.DAY_OF_MONTH);
//                System.out.println("月任务 判断中");
//                if (day == 1) {
//                    // 每天执行,若为每月1号才执行
//                    System.out.println("月任务执行已执行");
//                    // TODO 写你的逻辑
//                }
//
//            }
//        }, sendDate, 24 * 60 * 60 * 1000);// 每天执行一次检查
//
//        System.out.println("每月定时发送Xml信息监听--已启动!");
    }
}
flower_city/src/main/java/com/dg/core/util/WxUtil.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.dg.core.db.gen.entity.GuideEvolveEntity;
import com.dg.core.db.gen.entity.GuideRepairOrder;
import com.dg.core.db.gen.entity.SysUser;
import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -230,8 +231,7 @@
        subscribeDTO.setTemplate_id(templateId);
        subscribeDTO.setMiniprogram_state("formal");//测试,部署正式版本时候需要更改为formal
        List<TemplateParam> paras=new ArrayList<TemplateParam>();
        Calendar calendar = Calendar.getInstance();
        paras.add(new TemplateParam("thing4","您有一个新的导办工单需要处理"));//超时提示内容
         paras.add(new TemplateParam("thing4","您有一个新的导办工单需要处理"));//工单新增提示内容
        paras.add(new TemplateParam("thing2",guideRepairOrder.getConsultUserName()));//咨询人
        paras.add(new TemplateParam("thing3",guideRepairOrder.getConsultContent()));//咨询内容
        subscribeDTO.setTemplateParamList(paras);
@@ -243,5 +243,32 @@
    }
    /**
     * 工单超时推送
     *
     * @param openId
     *            用户openid
     * @param accessToken
     *            token会话标识
     */
    public  void sendGuideRepairOrderOvertime(String openId, String accessToken, String templateId, SysUser sysUser){
        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
        subscribeDTO.setTouser(openId);
        subscribeDTO.setTemplate_id(templateId);
        subscribeDTO.setMiniprogram_state("formal");//测试,部署正式版本时候需要更改为formal
        List<TemplateParam> paras=new ArrayList<TemplateParam>();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        paras.add(new TemplateParam("time1",calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+calendar.get(Calendar.DATE)+"日"));//超时时间
        paras.add(new TemplateParam("thing2",sysUser.getUserName()+"导办人员有个工单已超时"));//咨询人
         subscribeDTO.setTemplateParamList(paras);
        try {
            sendSubscribe(accessToken,subscribeDTO);
        }catch (Exception e){
            System.out.println(e.getMessage());
        }
    }
}
flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
@@ -244,6 +244,20 @@
        LIMIT #{time}
    </select>
    <select id="selectOvertime"  resultMap="GuideRepairOrderResult">
        <include refid="selectGuideRepairOrderVo"/>
        <where>
            state=2 and is_push=2 and  SYSDATE()>timeout_time 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>
           state=4 and datediff(now(),update_time)>=1
        </where>
    </select>
flower_city/src/main/resources/mapper/SysUserMapper.xml
@@ -165,7 +165,7 @@
    <select id="selectListByDepartmentId"  resultMap="SysUserResult">
        <include refid="selectSysUserVo"/>
         <where>
            user_type=2 and status=0
            user_type=2 and status=0 and leisure_state=0
            <if test="list!=null">
                and  department_id in
                <foreach collection="list" item="id" index="index" open="(" close=")" separator=",">