结束服务指令、将每天未点击结束的服务工单的结束时间设置为23:59:59定时任务:计算并存储工单执行状态(正常执行、超时等)

This commit is contained in:
1378012178@qq.com 2026-04-23 14:29:26 +08:00
parent 57115f0d91
commit c5ef80c63f
7 changed files with 103 additions and 69 deletions

View File

@ -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();
} }

View File

@ -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();
} }

View File

@ -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,

View File

@ -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();
} }

View File

@ -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;
@ -254,7 +255,7 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
return map; return map;
} else { } else {
QueryWrapper<DirectiveOrder> qw = new QueryWrapper<>(); QueryWrapper<DirectiveOrder> qw = new QueryWrapper<>();
qw.eq("nu_id",directiveOrder.getNuId()); qw.eq("nu_id", directiveOrder.getNuId());
qw.eq("serv_start_time", directiveOrder.getServStartTime()); qw.eq("serv_start_time", directiveOrder.getServStartTime());
List<DirectiveOrder> list = baseMapper.selectList(qw); List<DirectiveOrder> list = baseMapper.selectList(qw);
@ -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()));
@ -422,7 +428,7 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
return Result.error("当前服务已超时,不可转单"); return Result.error("当前服务已超时,不可转单");
} else { } else {
QueryWrapper<DirectiveOrder> qw = new QueryWrapper<>(); QueryWrapper<DirectiveOrder> qw = new QueryWrapper<>();
qw.eq("nu_id",beforeData.getNuId()); qw.eq("nu_id", beforeData.getNuId());
qw.eq("serv_start_time", beforeData.getServStartTime()); qw.eq("serv_start_time", beforeData.getServStartTime());
List<DirectiveOrder> list = baseMapper.selectList(qw); List<DirectiveOrder> list = baseMapper.selectList(qw);
@ -478,7 +484,7 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
return Result.error("当前服务已超时,不可协助执行"); return Result.error("当前服务已超时,不可协助执行");
} else { } else {
QueryWrapper<DirectiveOrder> qw = new QueryWrapper<>(); QueryWrapper<DirectiveOrder> qw = new QueryWrapper<>();
qw.eq("nu_id",beforeData.getNuId()); qw.eq("nu_id", beforeData.getNuId());
qw.eq("serv_start_time", beforeData.getServStartTime()); qw.eq("serv_start_time", beforeData.getServStartTime());
List<DirectiveOrder> list = baseMapper.selectList(qw); List<DirectiveOrder> list = baseMapper.selectList(qw);

View File

@ -112,10 +112,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
List<DirectiveOrder> ordersList = baseMapper.queryDataPoolList(null); List<DirectiveOrder> ordersList = baseMapper.queryDataPoolList(null);
for (int i = 0; i < ordersList.size(); i++) { for (int i = 0; i < ordersList.size(); i++) {
DirectiveOrder orders = ordersList.get(i); DirectiveOrder orders = ordersList.get(i);
if(orders.getIzPackage().equals("N")){ if (orders.getIzPackage().equals("N")) {
//获取有效服务指令 //获取有效服务指令
DirectiveOrder directiveEntity = baseMapper.getDirectiveById(orders); DirectiveOrder directiveEntity = baseMapper.getDirectiveById(orders);
if(directiveEntity==null){ if (directiveEntity == null) {
continue; continue;
} }
orders.setDirectiveName(directiveEntity.getDirectiveName()); orders.setDirectiveName(directiveEntity.getDirectiveName());
@ -126,10 +126,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
orders.setServiceContent(directiveEntity.getServiceContent()); orders.setServiceContent(directiveEntity.getServiceContent());
orders.setServiceDuration(directiveEntity.getServiceDuration()); orders.setServiceDuration(directiveEntity.getServiceDuration());
orders.setTimeoutDuration(directiveEntity.getTimeoutDuration()); orders.setTimeoutDuration(directiveEntity.getTimeoutDuration());
}else{ } else {
//获取有效服务指令包 //获取有效服务指令包
DirectiveOrder packageEntity = baseMapper.getPackageById(orders); DirectiveOrder packageEntity = baseMapper.getPackageById(orders);
if(packageEntity==null){ if (packageEntity == null) {
continue; continue;
} }
orders.setDirectiveName(packageEntity.getDirectiveName()); orders.setDirectiveName(packageEntity.getDirectiveName());
@ -141,17 +141,17 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
//生成结束时间 //生成结束时间
String duration = orders.getServiceDuration(); String duration = orders.getServiceDuration();
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
if(duration.equals("")||duration.equals("0")){ if (duration.equals("") || duration.equals("0")) {
c.set(Calendar.YEAR,3000); c.set(Calendar.YEAR, 3000);
c.set(Calendar.MONTH,Calendar.DECEMBER); c.set(Calendar.MONTH, Calendar.DECEMBER);
c.set(Calendar.DAY_OF_MONTH,31); c.set(Calendar.DAY_OF_MONTH, 31);
c.set(Calendar.HOUR_OF_DAY,0); c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE,0); c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND,0); c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND,0); c.set(Calendar.MILLISECOND, 0);
}else{ } else {
c.setTime(orders.getStartTime()); c.setTime(orders.getStartTime());
c.add(Calendar.MINUTE,Integer.valueOf(duration)); c.add(Calendar.MINUTE, Integer.valueOf(duration));
} }
Date endTime = c.getTime(); Date endTime = c.getTime();
orders.setEndTime(endTime); orders.setEndTime(endTime);
@ -194,11 +194,11 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
// System.out.println("护理单元:" + orders.getNuId() + ",服务时间" + orders.getStartTime()); // System.out.println("护理单元:" + orders.getNuId() + ",服务时间" + orders.getStartTime());
if (orders.getIzPackage().equals("N")) { if (orders.getIzPackage().equals("N")) {
List<DirectiveOrderInfo> ordersInfoList = ordersInfoService.getDirectiveList(orders.getDirectiveId()); List<DirectiveOrderInfo> ordersInfoList = ordersInfoService.getDirectiveList(orders.getDirectiveId());
if(ordersInfoList!=null&&ordersInfoList.size()>0){ if (ordersInfoList != null && ordersInfoList.size() > 0) {
String directiveIds = ordersInfoList.stream().map(DirectiveOrderInfo::getDirectiveId).collect(Collectors.joining(",")); String directiveIds = ordersInfoList.stream().map(DirectiveOrderInfo::getDirectiveId).collect(Collectors.joining(","));
//获取满足条件的员工 //获取满足条件的员工
DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), null, orders.getStartTime()); DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), null, orders.getStartTime());
if(employee!=null){ if (employee != null) {
orders.setEmployeeId(employee.getEmployeeId()); orders.setEmployeeId(employee.getEmployeeId());
orders.setEmployeeName(employee.getEmployeeName()); orders.setEmployeeName(employee.getEmployeeName());
orders.setOptIds(employee.getEmployeeId()); orders.setOptIds(employee.getEmployeeId());
@ -239,14 +239,14 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
} else { } else {
List<DirectiveOrderInfo> ordersInfoList = ordersInfoService.getSubDirectiveList(orders.getDirectiveId()); List<DirectiveOrderInfo> ordersInfoList = ordersInfoService.getSubDirectiveList(orders.getDirectiveId());
if(ordersInfoList!=null&&ordersInfoList.size()>0){ if (ordersInfoList != null && ordersInfoList.size() > 0) {
String directiveIds = ordersInfoList.stream().map(DirectiveOrderInfo::getDirectiveId).collect(Collectors.joining(",")); String directiveIds = ordersInfoList.stream().map(DirectiveOrderInfo::getDirectiveId).collect(Collectors.joining(","));
List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量 List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量
emps.removeIf(data -> data.getOwnCn() < ordersInfoList.size());//删除没有权限的数据 emps.removeIf(data -> data.getOwnCn() < ordersInfoList.size());//删除没有权限的数据
String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(",")); String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(","));
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),employeeIds,orders.getStartTime()); DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), employeeIds, orders.getStartTime());
if(employee!=null){ if (employee != null) {
orders.setEmployeeId(employee.getEmployeeId()); orders.setEmployeeId(employee.getEmployeeId());
orders.setEmployeeName(employee.getEmployeeName()); orders.setEmployeeName(employee.getEmployeeName());
orders.setOptIds(employee.getEmployeeId()); orders.setOptIds(employee.getEmployeeId());
@ -267,7 +267,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersSub.setCycleType(orders.getCycleType()); ordersSub.setCycleType(orders.getCycleType());
ordersSub.setCycleValue(orders.getCycleValue()); ordersSub.setCycleValue(orders.getCycleValue());
ordersSub.setIzPackage(orders.getIzPackage()); ordersSub.setIzPackage(orders.getIzPackage());
if(!orders.getIzPackage().equals("N")){ if (!orders.getIzPackage().equals("N")) {
ordersSub.setPackageId(orders.getDirectiveId()); ordersSub.setPackageId(orders.getDirectiveId());
ordersSub.setPackageName(orders.getDirectiveName()); ordersSub.setPackageName(orders.getDirectiveName());
} }
@ -643,22 +643,22 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
* *
* @return * @return
*/ */
private String getOrderNo(String orderType){ private String getOrderNo(String orderType) {
JSONObject deptInfo = sysBaseAPI.getDeptInfo(); JSONObject deptInfo = sysBaseAPI.getDeptInfo();
String deptCode = deptInfo.getString("code"); String deptCode = deptInfo.getString("code");
String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
// 构建今天的前缀模式 // 构建今天的前缀模式
String todayPrefix = ""; String todayPrefix = "";
if(orderType.equals("1")){ if (orderType.equals("1")) {
todayPrefix = "HL"; todayPrefix = "HL";
} }
if(orderType.equals("2")){ if (orderType.equals("2")) {
todayPrefix = "YL"; todayPrefix = "YL";
} }
if(orderType.equals("3")){ if (orderType.equals("3")) {
todayPrefix = "CK"; todayPrefix = "CK";
} }
if(orderType.equals("4")){ if (orderType.equals("4")) {
todayPrefix = "HQ"; todayPrefix = "HQ";
} }
todayPrefix = todayPrefix + deptCode + today; todayPrefix = todayPrefix + deptCode + today;
@ -742,10 +742,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
String employeeName = ""; String employeeName = "";
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
Date startTime = c.getTime(); Date startTime = c.getTime();
if(orders.getIzPackage().equals("N")){ if (orders.getIzPackage().equals("N")) {
//获取服务指令 //获取服务指令
DirectiveOrder directiveEntity = baseMapper.getDirectiveById(orders); DirectiveOrder directiveEntity = baseMapper.getDirectiveById(orders);
if(directiveEntity==null){ if (directiveEntity == null) {
map.put("success", false); map.put("success", false);
map.put("message", "服务指令无效"); map.put("message", "服务指令无效");
return map; return map;
@ -758,10 +758,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
orders.setServiceContent(directiveEntity.getServiceContent()); orders.setServiceContent(directiveEntity.getServiceContent());
orders.setServiceDuration(directiveEntity.getServiceDuration()); orders.setServiceDuration(directiveEntity.getServiceDuration());
orders.setTimeoutDuration(directiveEntity.getTimeoutDuration()); orders.setTimeoutDuration(directiveEntity.getTimeoutDuration());
}else{ } else {
//获取服务指令包 //获取服务指令包
DirectiveOrder packageEntity = baseMapper.getPackageById(orders); DirectiveOrder packageEntity = baseMapper.getPackageById(orders);
if(packageEntity==null){ if (packageEntity == null) {
map.put("success", false); map.put("success", false);
map.put("message", "服务指令包无效"); map.put("message", "服务指令包无效");
return map; return map;
@ -774,41 +774,41 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
//生成结束时间 //生成结束时间
String duration = orders.getServiceDuration(); String duration = orders.getServiceDuration();
if(duration.equals("")||duration.equals("0")){ if (duration.equals("") || duration.equals("0")) {
c.set(Calendar.YEAR,3000); c.set(Calendar.YEAR, 3000);
c.set(Calendar.MONTH,Calendar.DECEMBER); c.set(Calendar.MONTH, Calendar.DECEMBER);
c.set(Calendar.DAY_OF_MONTH,31); c.set(Calendar.DAY_OF_MONTH, 31);
c.set(Calendar.HOUR_OF_DAY,0); c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE,0); c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND,0); c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND,0); c.set(Calendar.MILLISECOND, 0);
}else{ } else {
c.add(Calendar.MINUTE,Integer.valueOf(duration)); c.add(Calendar.MINUTE, Integer.valueOf(duration));
} }
Date endTime = c.getTime(); Date endTime = c.getTime();
orders.setStartTime(startTime); orders.setStartTime(startTime);
orders.setEndTime(endTime); orders.setEndTime(endTime);
if(orders.getIzPackage().equals("N")){ if (orders.getIzPackage().equals("N")) {
infoList = ordersInfoService.getDirectiveList(orders.getDirectiveId()); infoList = ordersInfoService.getDirectiveList(orders.getDirectiveId());
String directiveIds = infoList.stream().map(DirectiveOrderInfo::getDirectiveId).collect(Collectors.joining(",")); String directiveIds = infoList.stream().map(DirectiveOrderInfo::getDirectiveId).collect(Collectors.joining(","));
if(!directiveOrder.getTriggerMode().equals("1")){ if (!directiveOrder.getTriggerMode().equals("1")) {
getSendOrderRule(); getSendOrderRule();
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),null,orders.getStartTime()); DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), null, orders.getStartTime());
employeeId = employee.getEmployeeId(); employeeId = employee.getEmployeeId();
employeeName = employee.getEmployeeName(); employeeName = employee.getEmployeeName();
} }
}else{ } else {
infoList = ordersInfoService.getSubDirectiveList(orders.getDirectiveId()); infoList = ordersInfoService.getSubDirectiveList(orders.getDirectiveId());
String directiveIds = infoList.stream().map(DirectiveOrderInfo::getDirectiveId).collect(Collectors.joining(",")); String directiveIds = infoList.stream().map(DirectiveOrderInfo::getDirectiveId).collect(Collectors.joining(","));
if(!directiveOrder.getTriggerMode().equals("1")){ if (!directiveOrder.getTriggerMode().equals("1")) {
getSendOrderRule(); getSendOrderRule();
List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量 List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量
if(infoList!=null){ if (infoList != null) {
int size = infoList.size(); int size = infoList.size();
emps.removeIf(data -> data.getOwnCn() < size);//删除没有权限的数据 emps.removeIf(data -> data.getOwnCn() < size);//删除没有权限的数据
} }
String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(",")); String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(","));
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),employeeIds,orders.getStartTime()); DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), employeeIds, orders.getStartTime());
employeeId = employee.getEmployeeId(); employeeId = employee.getEmployeeId();
employeeName = employee.getEmployeeName(); employeeName = employee.getEmployeeName();
} }
@ -834,8 +834,8 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
orders.setOptNames(employeeName); orders.setOptNames(employeeName);
orders.setDelFlag("0"); orders.setDelFlag("0");
this.save(orders);//生成工单主表 this.save(orders);//生成工单主表
if(infoList!=null){ if (infoList != null) {
for(int i=0;i<infoList.size();i++){ for (int i = 0; i < infoList.size(); i++) {
DirectiveOrderInfo ordersInfo = infoList.get(i); DirectiveOrderInfo ordersInfo = infoList.get(i);
ordersInfo.setOrderNo(getOrderInfoNo(orderNo)); ordersInfo.setOrderNo(getOrderInfoNo(orderNo));
ordersInfo.setOrderType(orderType); ordersInfo.setOrderType(orderType);
@ -849,7 +849,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersInfo.setCycleTypeId(orders.getCycleTypeId()); ordersInfo.setCycleTypeId(orders.getCycleTypeId());
ordersInfo.setCycleType(orders.getCycleType()); ordersInfo.setCycleType(orders.getCycleType());
ordersInfo.setIzPackage(orders.getIzPackage()); ordersInfo.setIzPackage(orders.getIzPackage());
if(!orders.getIzPackage().equals("N")){ if (!orders.getIzPackage().equals("N")) {
ordersInfo.setPackageId(orders.getDirectiveId()); ordersInfo.setPackageId(orders.getDirectiveId());
ordersInfo.setPackageName(orders.getDirectiveName()); ordersInfo.setPackageName(orders.getDirectiveName());
} }
@ -887,18 +887,24 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 获取员工姓名 * 获取员工姓名
*
* @param employeeId * @param employeeId
*/ */
@Override @Override
public String getEmployeeName(String employeeId){ public String getEmployeeName(String employeeId) {
String employeeName = ""; String employeeName = "";
if(employeeId!=null&&!employeeId.equals("")){ if (employeeId != null && !employeeId.equals("")) {
DirectiveOrder employeeInfo = baseMapper.getEmployeeById(employeeId); DirectiveOrder employeeInfo = baseMapper.getEmployeeById(employeeId);
if(employeeInfo!=null){ if (employeeInfo != null) {
employeeName = employeeInfo.getEmployeeName(); employeeName = employeeInfo.getEmployeeName();
} }
} }
return employeeName; return employeeName;
} }
@Override
public void updateEmpEndTimeByJob() {
baseMapper.updateEmpEndTimeByJob();
}
} }

View File

@ -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);
} }