结束服务指令、将每天未点击结束的服务工单的结束时间设置为23:59:59定时任务:计算并存储工单执行状态(正常执行、超时等)
This commit is contained in:
parent
57115f0d91
commit
c5ef80c63f
|
|
@ -149,6 +149,10 @@ public class DirectiveOrderEndTplinkJob implements Job {
|
||||||
System.out.println("===============================================");
|
System.out.println("===============================================");
|
||||||
}
|
}
|
||||||
directiveOrderService.updateById(directiveOrder);
|
directiveOrderService.updateById(directiveOrder);
|
||||||
|
|
||||||
|
if (directiveOrderList.indexOf(directiveOrder) < directiveOrderList.size() - 1) {
|
||||||
|
Thread.sleep(10000);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,4 +69,6 @@ public interface DirectiveOrderMapper extends BaseMapper<DirectiveOrder> {
|
||||||
List<DirectiveOrder> findErrorFiles();
|
List<DirectiveOrder> findErrorFiles();
|
||||||
|
|
||||||
int cleanErrorFilePath(@Param("ids") List<String> ids);
|
int cleanErrorFilePath(@Param("ids") List<String> ids);
|
||||||
|
|
||||||
|
int updateEmpEndTimeByJob();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -273,6 +273,14 @@
|
||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
|
<update id="updateEmpEndTimeByJob">
|
||||||
|
UPDATE nu_biz_directive_order
|
||||||
|
SET emp_end_time = DATE_FORMAT(emp_start_time, '%Y-%m-%d 23:59:59'),
|
||||||
|
order_status = '3'
|
||||||
|
WHERE emp_start_time IS NOT NULL
|
||||||
|
AND emp_end_time IS NULL
|
||||||
|
AND DATE(emp_start_time) = CURDATE()
|
||||||
|
</update>
|
||||||
|
|
||||||
<select id="getDirectivePrice" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">
|
<select id="getDirectivePrice" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">
|
||||||
select toll_price as tollPrice,
|
select toll_price as tollPrice,
|
||||||
|
|
|
||||||
|
|
@ -17,4 +17,6 @@ public interface IDirectiveOrderService extends IService<DirectiveOrder> {
|
||||||
Result<?> generateOrdersBatch();
|
Result<?> generateOrdersBatch();
|
||||||
Map<String, Object> generateOrdersInstant(DirectiveOrder directiveOrder);
|
Map<String, Object> generateOrdersInstant(DirectiveOrder directiveOrder);
|
||||||
String getEmployeeName(String employeeId);
|
String getEmployeeName(String employeeId);
|
||||||
|
|
||||||
|
void updateEmpEndTimeByJob();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.nu.modules.biz.order.service.impl;
|
package com.nu.modules.biz.order.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.io.unit.DataUnit;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
|
@ -300,6 +301,11 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
}
|
}
|
||||||
|
|
||||||
directiveOrder.setEmpEndTime(new Date());
|
directiveOrder.setEmpEndTime(new Date());
|
||||||
|
{
|
||||||
|
//判断正常结束还是超时(无论定时、计时 只要实际结束时间 大于 应该结束时间 就是超时 否则正常)
|
||||||
|
boolean izCs = new Date().after(directiveOrder.getServEndTime());
|
||||||
|
directiveOrder.setOrderStatus(izCs ? "3" : "2");
|
||||||
|
}
|
||||||
baseMapper.updateById(directiveOrder);
|
baseMapper.updateById(directiveOrder);
|
||||||
|
|
||||||
// List<DirectiveOrderInfo> list = directiveOrderInfoMapper.selectList(new QueryWrapper<DirectiveOrderInfo>().eq("main_id", directiveOrder.getId()));
|
// List<DirectiveOrderInfo> list = directiveOrderInfoMapper.selectList(new QueryWrapper<DirectiveOrderInfo>().eq("main_id", directiveOrder.getId()));
|
||||||
|
|
|
||||||
|
|
@ -887,6 +887,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取员工姓名
|
* 获取员工姓名
|
||||||
|
*
|
||||||
* @param employeeId
|
* @param employeeId
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -901,4 +902,9 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
|
||||||
return employeeName;
|
return employeeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEmpEndTimeByJob() {
|
||||||
|
baseMapper.updateEmpEndTimeByJob();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,20 +25,26 @@ public class DirectiveEndOrderJob implements Job {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||||
DirectiveOrder upData = new DirectiveOrder();
|
// DirectiveOrder upData = new DirectiveOrder();
|
||||||
//设置为当天23:59:59
|
// //设置为当天23:59:59
|
||||||
Calendar calendar = Calendar.getInstance();
|
// Calendar calendar = Calendar.getInstance();
|
||||||
upData.setEmpEndTime(new Date(calendar.get(Calendar.YEAR) - 1900,
|
// upData.setEmpEndTime(new Date(calendar.get(Calendar.YEAR) - 1900,
|
||||||
calendar.get(Calendar.MONTH),
|
// calendar.get(Calendar.MONTH),
|
||||||
calendar.get(Calendar.DAY_OF_MONTH),
|
// calendar.get(Calendar.DAY_OF_MONTH),
|
||||||
23, 59, 59));
|
// 23, 59, 59));
|
||||||
|
//
|
||||||
|
// //当天任务且已开始的
|
||||||
|
// UpdateWrapper<DirectiveOrder> uw = new UpdateWrapper<>();
|
||||||
|
// uw.apply("DATE(serv_start_time) = CURDATE()");
|
||||||
|
// uw.isNotNull("emp_start_time");
|
||||||
|
// uw.isNull("emp_end_time");
|
||||||
|
// directiveOrderService.update(upData,uw);
|
||||||
|
|
||||||
//当天任务且已开始的
|
//条件是工单已开始未结束 且 员工开始时间是今天 存在问题:
|
||||||
UpdateWrapper<DirectiveOrder> uw = new UpdateWrapper<>();
|
// 1)任务设置在每天23:59:50 如果当天由于系统原因比如重启后才补发定时任务 则缺少了一天的定时任务
|
||||||
uw.apply("DATE(serv_start_time) = CURDATE()");
|
// 2)如果员工在23:59:50~23:59:59 点击开始 则结束时间无法被定时任务执行到
|
||||||
uw.isNotNull("emp_start_time");
|
// 3)解决办法:条件只要已开始未结束(那以后就不能有让历史工单的结束时间需要保持空的需求了 - 定时会自动赋值 一旦出错这种数据因为没有日志就只能用数据库备份比对解决)
|
||||||
uw.isNull("emp_end_time");
|
directiveOrderService.updateEmpEndTimeByJob();
|
||||||
directiveOrderService.update(upData,uw);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue