修订数据导入校验问题;修复工单办结bug
This commit is contained in:
parent
6b5935f880
commit
0d443be4bc
@ -4,8 +4,11 @@ import cn.hutool.core.util.IdUtil;
|
|||||||
import com.alibaba.excel.EasyExcel;
|
import com.alibaba.excel.EasyExcel;
|
||||||
import com.alibaba.excel.context.AnalysisContext;
|
import com.alibaba.excel.context.AnalysisContext;
|
||||||
import com.alibaba.excel.exception.ExcelDataConvertException;
|
import com.alibaba.excel.exception.ExcelDataConvertException;
|
||||||
|
import com.alibaba.excel.metadata.data.ReadCellData;
|
||||||
import com.alibaba.excel.read.listener.ReadListener;
|
import com.alibaba.excel.read.listener.ReadListener;
|
||||||
|
import com.alibaba.excel.util.ConverterUtils;
|
||||||
import com.alibaba.excel.util.ListUtils;
|
import com.alibaba.excel.util.ListUtils;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.cpop.api.tencent.wxWork.handler.WebHookSendHandler;
|
import com.cpop.api.tencent.wxWork.handler.WebHookSendHandler;
|
||||||
import com.cpop.common.utils.StringUtils;
|
import com.cpop.common.utils.StringUtils;
|
||||||
import com.cpop.common.utils.bean.BeanUtils;
|
import com.cpop.common.utils.bean.BeanUtils;
|
||||||
@ -50,6 +53,7 @@ import java.time.LocalDate;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.Lock;
|
||||||
|
|
||||||
import static com.alibaba.excel.cache.Ehcache.BATCH_COUNT;
|
import static com.alibaba.excel.cache.Ehcache.BATCH_COUNT;
|
||||||
@ -196,6 +200,9 @@ public class DataImportServiceImpl extends ServiceImpl<DataImportMapper, DataImp
|
|||||||
if (StringUtils.isBlank(dataImportDto.getBillingType())) {
|
if (StringUtils.isBlank(dataImportDto.getBillingType())) {
|
||||||
throw new ServiceException(String.format("第%s行课卡类型不为暂无时计费类型不能为空,请核实", analysisContext.readRowHolder().getRowIndex() + 1));
|
throw new ServiceException(String.format("第%s行课卡类型不为暂无时计费类型不能为空,请核实", analysisContext.readRowHolder().getRowIndex() + 1));
|
||||||
} else {
|
} else {
|
||||||
|
if (StringUtils.equals(dataImportDto.getBillingType(), "限时卡")){
|
||||||
|
dataImportDto.setBillingType("时限卡");
|
||||||
|
}
|
||||||
if (!StringUtils.equals(dataImportDto.getBillingType(), "时限卡")){
|
if (!StringUtils.equals(dataImportDto.getBillingType(), "时限卡")){
|
||||||
//首充课时
|
//首充课时
|
||||||
if (dataImportDto.getFirstChargePeriod() == null || dataImportDto.getFirstChargePeriod() <= 0) {
|
if (dataImportDto.getFirstChargePeriod() == null || dataImportDto.getFirstChargePeriod() <= 0) {
|
||||||
@ -259,6 +266,16 @@ public class DataImportServiceImpl extends ServiceImpl<DataImportMapper, DataImp
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 这里会一行行的返回头
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void invokeHead(Map<Integer, ReadCellData<?>> headMap, AnalysisContext context) {
|
||||||
|
if (!StringUtils.equals(headMap.get(15).getStringValue(), "停卡缓冲天数")) {
|
||||||
|
throw new ServiceException("模板错误,请使用Oam导入模板");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在转换异常 获取其他异常下会调用本接口。抛出异常则停止读取。如果这里不抛出异常则 继续读取下一行。
|
* 在转换异常 获取其他异常下会调用本接口。抛出异常则停止读取。如果这里不抛出异常则 继续读取下一行。
|
||||||
*
|
*
|
||||||
|
|||||||
@ -266,14 +266,13 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|||||||
String taskRating = task.getTaskRating();
|
String taskRating = task.getTaskRating();
|
||||||
LocalDate now = LocalDate.now();
|
LocalDate now = LocalDate.now();
|
||||||
String dictValue = DictUtils.getDictValue(OAM_TASK_RATING, taskRating);
|
String dictValue = DictUtils.getDictValue(OAM_TASK_RATING, taskRating);
|
||||||
task.setExpectedCompletionDate(now.plusDays(Integer.parseInt(dictValue.split(",")[1])));
|
task.setExpectedCompletionDate(now.plusDays(Integer.parseInt(dictValue.split(",")[1]) - 1));
|
||||||
}
|
}
|
||||||
// 获取当前用户
|
// 获取当前用户
|
||||||
JSONObject loginUser = SecurityUtils.getInstance().getLoginUserInfo();
|
JSONObject loginUser = SecurityUtils.getInstance().getLoginUserInfo();
|
||||||
if (!Constants.SUPER_ADMIN.equals(loginUser.getString("userName"))) {
|
if (!Constants.SUPER_ADMIN.equals(loginUser.getString("userName"))) {
|
||||||
// 获取当前员工
|
// 获取当前员工
|
||||||
Staff staff = SpringUtils.getBean(StaffService.class)
|
Staff staff = SpringUtils.getBean(StaffService.class).getOne(QueryWrapper.create().where(STAFF.USER_ID.eq(loginUser.getString("userId"))));
|
||||||
.getOne(QueryWrapper.create().where(STAFF.USER_ID.eq(loginUser.getString("userId"))));
|
|
||||||
task.setResponsibleStaffId(staff.getId());
|
task.setResponsibleStaffId(staff.getId());
|
||||||
}
|
}
|
||||||
this.updateById(task);
|
this.updateById(task);
|
||||||
@ -283,8 +282,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|||||||
SpringUtils.getBean(TaskStaffGroupService.class).save(taskStaffGroup);
|
SpringUtils.getBean(TaskStaffGroupService.class).save(taskStaffGroup);
|
||||||
// 通知所有人
|
// 通知所有人
|
||||||
try {
|
try {
|
||||||
SpringUtils.getBean(WebHookSendHandler.class)
|
SpringUtils.getBean(WebHookSendHandler.class).webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
|
||||||
.webHookSendText(WebHookKeyConstant.PRODUCT_BOT,
|
|
||||||
Collections.singletonList(loginUser.getString("phoneNumber")),
|
Collections.singletonList(loginUser.getString("phoneNumber")),
|
||||||
"==========任务领取==========" + "\n" + task.getTaskContent(),
|
"==========任务领取==========" + "\n" + task.getTaskContent(),
|
||||||
false);
|
false);
|
||||||
|
|||||||
@ -332,11 +332,11 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
|
|||||||
QuartzUtils quartzUtils = SpringUtils.getBean(QuartzUtils.class);
|
QuartzUtils quartzUtils = SpringUtils.getBean(QuartzUtils.class);
|
||||||
try {
|
try {
|
||||||
QuartzEnums acceptEnums = QuartzEnums.WORK_ORDER_FINISH_OVERTIME_REMIND_TASK;
|
QuartzEnums acceptEnums = QuartzEnums.WORK_ORDER_FINISH_OVERTIME_REMIND_TASK;
|
||||||
|
// 开始
|
||||||
|
if (status == 0) {
|
||||||
LocalDateTime localDateTime = dateTime.plusMinutes(105);
|
LocalDateTime localDateTime = dateTime.plusMinutes(105);
|
||||||
ZoneId zoneId = ZoneId.systemDefault();
|
ZoneId zoneId = ZoneId.systemDefault();
|
||||||
String cron = quartzUtils.convertToCron(Date.from(localDateTime.atZone(zoneId).toInstant()));
|
String cron = quartzUtils.convertToCron(Date.from(localDateTime.atZone(zoneId).toInstant()));
|
||||||
// 开始
|
|
||||||
if (status == 0) {
|
|
||||||
// 通过JobBuilder构建JobDetail实例,JobDetail规定其job只能是实现Job接口的实例
|
// 通过JobBuilder构建JobDetail实例,JobDetail规定其job只能是实现Job接口的实例
|
||||||
JobDetail jobDetail = JobBuilder.newJob(WorkOrderFinishOverTimeRemindTask.class)
|
JobDetail jobDetail = JobBuilder.newJob(WorkOrderFinishOverTimeRemindTask.class)
|
||||||
.withIdentity(acceptEnums.getName() + workOrderId, acceptEnums.getGroup())
|
.withIdentity(acceptEnums.getName() + workOrderId, acceptEnums.getGroup())
|
||||||
@ -350,6 +350,9 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
|
|||||||
.build();
|
.build();
|
||||||
scheduler.scheduleJob(jobDetail, cronTrigger);
|
scheduler.scheduleJob(jobDetail, cronTrigger);
|
||||||
} else if (status == 1) {
|
} else if (status == 1) {
|
||||||
|
LocalDateTime localDateTime = dateTime.plusMinutes(105);
|
||||||
|
ZoneId zoneId = ZoneId.systemDefault();
|
||||||
|
String cron = quartzUtils.convertToCron(Date.from(localDateTime.atZone(zoneId).toInstant()));
|
||||||
//修改
|
//修改
|
||||||
quartzUtils.modifyJob(acceptEnums.getName() + workOrderId, QuartzEnums.WORK_ORDER_OVERTIME_TASK.getGroup(), cron);
|
quartzUtils.modifyJob(acceptEnums.getName() + workOrderId, QuartzEnums.WORK_ORDER_OVERTIME_TASK.getGroup(), cron);
|
||||||
} else {
|
} else {
|
||||||
@ -756,9 +759,7 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl<TaskWorkOrderMapper, T
|
|||||||
}
|
}
|
||||||
// 删除工单完结超时任务
|
// 删除工单完结超时任务
|
||||||
try {
|
try {
|
||||||
SpringUtils.getBean(QuartzUtils.class)
|
SpringUtils.getBean(QuartzUtils.class).deleteJob(QuartzEnums.WORK_ORDER_OVERTIME_TASK.getName() + workOrderId, QuartzEnums.WORK_ORDER_OVERTIME_TASK.getGroup());
|
||||||
.deleteJob(QuartzEnums.WORK_ORDER_OVERTIME_TASK.getName() + workOrderId,
|
|
||||||
QuartzEnums.WORK_ORDER_OVERTIME_TASK.getGroup());
|
|
||||||
// 删除工单暂停恢复任务
|
// 删除工单暂停恢复任务
|
||||||
startOrRemoveWorkOrderPauseRecover(workOrderId, false, null);
|
startOrRemoveWorkOrderPauseRecover(workOrderId, false, null);
|
||||||
// 删除工单完结超时任务
|
// 删除工单完结超时任务
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user