From 8cc9e9601aab48e511831f62f3b71bd3c68fea06 Mon Sep 17 00:00:00 2001 From: fengjin <1435304038@qq.com> Date: 星期四, 20 十月 2022 10:58:09 +0800 Subject: [PATCH] 1.定时任务修改超时状态 2.定时任务默认好评 3.修改bug --- flower_city/src/main/java/com/dg/core/WMApplication.java | 2 flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java | 13 +++ flower_city/src/main/java/com/dg/core/util/WxUtil.java | 31 +++++++ flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml | 14 +++ flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java | 4 flower_city/src/main/java/com/dg/core/task/SendWsListener.java | 66 +++++++++------- flower_city/src/main/resources/mapper/SysUserMapper.xml | 2 flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java | 4 flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java | 11 ++ flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java | 8 +- flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java | 52 ++++++++++++ 11 files changed, 165 insertions(+), 42 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/WMApplication.java b/flower_city/src/main/java/com/dg/core/WMApplication.java index 1b68bbc..8cb9a82 100644 --- a/flower_city/src/main/java/com/dg/core/WMApplication.java +++ b/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 { diff --git a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java index 0b6e42b..2d70d6e 100644 --- a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java +++ b/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); diff --git a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java index bc0a632..6e448b7 100644 --- a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java +++ b/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); diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java index 807503e..afb2058 100644 --- a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java +++ b/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; 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 dd5e973..7e2bf84 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 @@ -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(); } 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 e42d3b0..e954fb8 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 @@ -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(); + } 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 d9da9ee..534597c 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 @@ -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; + } + } 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 d05cbe6..a4b30fc 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 @@ -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信息监听--已启动!"); } } \ No newline at end of file diff --git a/flower_city/src/main/java/com/dg/core/util/WxUtil.java b/flower_city/src/main/java/com/dg/core/util/WxUtil.java index fcf3365..49bcfbf 100644 --- a/flower_city/src/main/java/com/dg/core/util/WxUtil.java +++ b/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()); + } + } + + } diff --git a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml index 6f48a62..30684bf 100644 --- a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml +++ b/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> + diff --git a/flower_city/src/main/resources/mapper/SysUserMapper.xml b/flower_city/src/main/resources/mapper/SysUserMapper.xml index 77a9a96..953fd63 100644 --- a/flower_city/src/main/resources/mapper/SysUserMapper.xml +++ b/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=","> -- Gitblit v1.7.1