首页数据添加工单数量

main
litao 3 years ago
parent 15a047e577
commit 6caf0eee97
  1. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java
  2. 65
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java
  3. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/DataBaseController.java
  4. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataBaseServiceImpl.java
  5. 9
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java
  6. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java
  7. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/entity/WorkOrder.java
  8. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/IWorkOrderService.java
  9. 48
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java
  10. 12
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/service/impl/AutoStartModelServiceImpl.java

@ -74,7 +74,7 @@ public class TaskConfig {
workOrder.setType(autoStartModel.getType()); workOrder.setType(autoStartModel.getType());
workOrder.setTenantId(autoStartModel.getTenantId()); workOrder.setTenantId(autoStartModel.getTenantId());
workOrder.setUploadRecord(autoStartModel.getUploadRecord()); workOrder.setUploadRecord(autoStartModel.getUploadRecord());
workOrder.setExpectedCompletionTime(autoStartModel.getNextEndTime().toString()); workOrder.setExpectedCompletionTime(autoStartModel.getNextEndTime());
//新增 //新增
workOrderService.save(workOrder); workOrderService.save(workOrder);
//修改nextFlag = 1,表示已经生成新工单了 //修改nextFlag = 1,表示已经生成新工单了

@ -3,6 +3,7 @@ package org.springblade.plugin.homepage.service.impl;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.shaded.com.google.gson.JsonObject; import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import liquibase.pro.packaged.E; import liquibase.pro.packaged.E;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
@ -23,6 +24,8 @@ import org.springblade.core.tool.utils.StringUtil;
import org.springblade.plugin.homepage.enumutil.TaskTypeColorEnum; import org.springblade.plugin.homepage.enumutil.TaskTypeColorEnum;
import org.springblade.plugin.homepage.enumutil.WorkingStatusEnum; import org.springblade.plugin.homepage.enumutil.WorkingStatusEnum;
import org.springblade.plugin.homepage.service.IHomePageService; import org.springblade.plugin.homepage.service.IHomePageService;
import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.operation.workorder.service.IWorkOrderService;
import org.springblade.plugin.workflow.core.utils.WfTaskUtil; import org.springblade.plugin.workflow.core.utils.WfTaskUtil;
import org.springblade.system.cache.DictBizCache; import org.springblade.system.cache.DictBizCache;
import org.springblade.system.user.cache.UserCache; import org.springblade.system.user.cache.UserCache;
@ -31,6 +34,7 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult; import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDate; import java.time.LocalDate;
@ -49,8 +53,7 @@ public class HomePageServiceImpl implements IHomePageService {
private final TaskService taskService; private final TaskService taskService;
private final HistoryService historyService; private final HistoryService historyService;
private final RuntimeService runtimeService; private final RuntimeService runtimeService;
private final IWorkOrderService workOrderService;
/** /**
@ -188,7 +191,14 @@ public class HomePageServiceImpl implements IHomePageService {
} }
} }
return new AsyncResult<>(expireNum); // 工单记录待实施
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getIsFinish, 0);
wrapper.ge(WorkOrder::getExpectedCompletionTime, new Date());
int count = workOrderService.count(wrapper);
return new AsyncResult<>(expireNum + count);
} }
@ -208,7 +218,14 @@ public class HomePageServiceImpl implements IHomePageService {
; ;
List<Task> listNeedDo = taskQuery.list(); List<Task> listNeedDo = taskQuery.list();
return new AsyncResult<>(listNeedDo.size());
// 工单记录待实施
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getIsFinish, 0);
int count = workOrderService.count(wrapper);
return new AsyncResult<>(listNeedDo.size() + count);
} }
@Async @Async
@ -242,7 +259,14 @@ public class HomePageServiceImpl implements IHomePageService {
} }
} }
return new AsyncResult<>(todayAddNum);
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getIsFinish, 0);
wrapper.between(WorkOrder::getCreateTime, startTime(), endTime());
int count = workOrderService.count(wrapper);
return new AsyncResult<>(todayAddNum + count);
} }
@Async @Async
@ -273,11 +297,39 @@ public class HomePageServiceImpl implements IHomePageService {
} }
} }
return new AsyncResult<>(todayFinishNum);
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getIsFinish, 1);
wrapper.between(WorkOrder::getFinishTime, startTime(), endTime());
int count = workOrderService.count(wrapper);
return new AsyncResult<>(todayFinishNum + count);
}
private Date startTime() {
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MILLISECOND, 0);
return todayStart.getTime();
}
private Date endTime() {
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.HOUR_OF_DAY, 23);
todayEnd.set(Calendar.MILLISECOND, 999);
return todayEnd.getTime();
} }
/** /**
* 近一年与当前用户所在部门相关的新增工单和完成工单数量按照月份进行统计 * 近一年与当前用户所在部门相关的新增工单和完成工单数量按照月份进行统计
*
* @return * @return
*/ */
@Override @Override
@ -440,6 +492,7 @@ System.out.println("上一年1-" +DateUtil.plusYears(DateUtil.now(), -1));
/** /**
* 流程状态统计 * 流程状态统计
*
* @return * @return
*/ */
@Override @Override

@ -188,13 +188,13 @@ public class DataBaseController extends BladeController {
try { try {
// 4、将临时文件转存到指定位置 // 4、将临时文件转存到指定位置
file.transferTo(new File(basePath + "//" + fileName)); file.transferTo(new File(basePath + "/" + fileName));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
UploadReturn uploadReturn = new UploadReturn(); UploadReturn uploadReturn = new UploadReturn();
uploadReturn.setName(originalFilename); uploadReturn.setName(originalFilename);
uploadReturn.setPath(basePath + "//" + fileName); uploadReturn.setPath(basePath + "/" + fileName);
uploadReturn.setCreateUser(AuthUtil.getNickName()); uploadReturn.setCreateUser(AuthUtil.getNickName());
uploadReturn.setCreateTime(new Date()); uploadReturn.setCreateTime(new Date());
return R.data(uploadReturn); return R.data(uploadReturn);

@ -21,6 +21,7 @@ import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient; import org.springblade.system.user.feign.IUserClient;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
@ -42,10 +43,11 @@ public class DataBaseServiceImpl extends BaseServiceImpl<DataBaseMapper, DataBas
private final IUserClient userClient; private final IUserClient userClient;
@Override @Override
@Transactional(rollbackFor = Exception.class)
public boolean dataImport(MultipartFile file) { public boolean dataImport(MultipartFile file) {
List<DatabaseExcel> excelList = ExcelUtil.read(file, DatabaseExcel.class); List<DatabaseExcel> excelList = ExcelUtil.read(file, DatabaseExcel.class);
if (CollectionUtils.isNotEmpty(excelList)) { if (CollectionUtils.isNotEmpty(excelList)) {
List<DataTable> dataTableList = new ArrayList<>(); // List<DataTable> dataTableList = new ArrayList<>();
excelList.forEach(item -> { excelList.forEach(item -> {
Integer databaseType = Integer.parseInt(DictBizCache.getKey("database_type", item.getDataBaseType())); Integer databaseType = Integer.parseInt(DictBizCache.getKey("database_type", item.getDataBaseType()));
LambdaQueryWrapper<DataBase> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DataBase> wrapper = new LambdaQueryWrapper<>();

@ -144,10 +144,13 @@ public class TaskInfoController extends BladeController {
@GetMapping("/taskTypeData") @GetMapping("/taskTypeData")
public R taskTypeData(String parentId) { public R taskTypeData(String parentId) {
QueryWrapper<TaskInfo> wrapper = new QueryWrapper<>(); QueryWrapper<TaskInfo> wrapper = new QueryWrapper<>();
if (StringUtils.isNotBlank(parentId)) { // if (StringUtils.isNotBlank(parentId)) {
wrapper.eq("task_parent_id", parentId); wrapper.eq("task_parent_id", parentId);
} else { // } else {
wrapper.select("DISTINCT task_type_name"); // wrapper.select("DISTINCT task_type_name");
// }
if (!"运维公司".equals(AuthUtil.getUser().getRoleName())) {
wrapper.ne("task_level", 1625035000825049090L);
} }
return R.data(taskInfoService.list(wrapper)); return R.data(taskInfoService.list(wrapper));
} }

@ -65,7 +65,7 @@ public class WorkOrderController extends BladeController {
* 我的待办 * 我的待办
*/ */
@GetMapping("/myToDo") @GetMapping("/myToDo")
public R<IPage<WorkOrder>> myToDo(WorkOrder workOrder, Query query) { public R<IPage<WorkOrder>> myToDo(WorkOrder workOrder, Query query) throws ParseException {
return R.data(workOrderService.myToDo(workOrder, query)); return R.data(workOrderService.myToDo(workOrder, query));
} }

@ -72,7 +72,7 @@ public class WorkOrder extends TenantEntity {
// 期望完成时间 // 期望完成时间
// @TableField(exist = false) // @TableField(exist = false)
private String expectedCompletionTime; private Date expectedCompletionTime;
@TableField(exist = false) @TableField(exist = false)
private String taskId; private String taskId;

@ -23,7 +23,7 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
IPage<Map<String, Object>> historyWorkOrder(WorkOrder workOrder, Query query); IPage<Map<String, Object>> historyWorkOrder(WorkOrder workOrder, Query query);
IPage<WorkOrder> myToDo(WorkOrder workOrder, Query query); IPage<WorkOrder> myToDo(WorkOrder workOrder, Query query) throws ParseException;
void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException; void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException;

@ -1,6 +1,5 @@
package org.springblade.plugin.operation.workorder.service.impl; package org.springblade.plugin.operation.workorder.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils; import com.alibaba.nacos.common.utils.StringUtils;
@ -93,7 +92,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
@Override @Override
public IPage<WorkOrder> myToDo(WorkOrder workOrder, Query query) { public IPage<WorkOrder> myToDo(WorkOrder workOrder, Query query) throws ParseException {
IPage<WorkOrder> page = new Page<>(); IPage<WorkOrder> page = new Page<>();
String taskUser = WfTaskUtil.getTaskUser(); String taskUser = WfTaskUtil.getTaskUser();
@ -109,9 +108,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
.taskTenantId(WfTaskUtil.getTenantId()) .taskTenantId(WfTaskUtil.getTenantId())
.active(); .active();
taskQuery.taskCandidateOrAssigned(taskUser); taskQuery.taskCandidateOrAssigned(taskUser);
long count = taskQuery.count();
// List<Task> listNeedDo = taskQuery.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize()); List<Task> listNeedDo = taskQuery.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize());
List<Task> listNeedDo = taskQuery.list(); // List<Task> listNeedDo = taskQuery.list();
List<WorkOrder> workOrders = new ArrayList<>(); List<WorkOrder> workOrders = new ArrayList<>();
@ -153,7 +153,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
order.setEndTime(historicProcessInstance.getEndTime()); order.setEndTime(historicProcessInstance.getEndTime());
if (variables.get("qiwangwanchengshijian") != null) { if (variables.get("qiwangwanchengshijian") != null) {
order.setExpectedCompletionTime(variables.get("qiwangwanchengshijian").toString()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
order.setExpectedCompletionTime(dateFormat.parse(variables.get("qiwangwanchengshijian").toString()));
} }
order.setTaskId(task.getId()); order.setTaskId(task.getId());
order.setProcessInstanceId(task.getProcessInstanceId()); order.setProcessInstanceId(task.getProcessInstanceId());
@ -162,13 +163,22 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
// 工单记录 // 工单记录
Page<WorkOrder> objectPage = new Page<>(query.getCurrent() - (count / query.getSize()), query.getSize());
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getIsFinish, 0); wrapper.eq(WorkOrder::getIsFinish, 0);
List<WorkOrder> records = list(wrapper); wrapper.orderByDesc(WorkOrder::getCreateTime);
setAllName(records); IPage<WorkOrder> iPage = page(objectPage, wrapper);
// 总条数
page.setTotal(count + iPage.getTotal());
workOrders.addAll(records); // List<WorkOrder> records = list(wrapper);
List<WorkOrder> orders = iPage.getRecords();
setAllName(orders);
workOrders.addAll(orders);
// 任务父类 // 任务父类
if (StringUtils.isNotBlank(workOrder.getTaskParentName())) { if (StringUtils.isNotBlank(workOrder.getTaskParentName())) {
@ -205,25 +215,16 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList()); workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList());
} }
// 总条数
page.setTotal(workOrders.size());
// 分页
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList());
// 排序 // 排序
workOrders = workOrders.stream().sorted(Comparator.comparing(WorkOrder::getCreateTime).reversed()).collect(Collectors.toList()); workOrders = workOrders.stream().sorted(Comparator.comparing(WorkOrder::getCreateTime).reversed()).collect(Collectors.toList());
// 分页
// workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList());
workOrders = workOrders.stream().skip(0).limit(query.getSize()).collect(Collectors.toList());
// 数据 // 数据
page.setRecords(workOrders); page.setRecords(workOrders);
// 总条数
// page.setTotal(taskService.createTaskQuery()
// .orderByTaskCreateTime()
// .desc()
// .taskTenantId(WfTaskUtil.getTenantId())
// .active().taskCandidateOrAssigned(taskUser).count());
// 当前页数 // 当前页数
page.setCurrent(query.getCurrent()); page.setCurrent(query.getCurrent());
@ -233,7 +234,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
@Override @Override
public void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException { public void exportExcel(WorkOrder workOrder, HttpServletResponse response) {
List<WorkOrderExcel> excels = new ArrayList<>(); List<WorkOrderExcel> excels = new ArrayList<>();
List<Map<String, Object>> workOrders = new ArrayList<>(); List<Map<String, Object>> workOrders = new ArrayList<>();
@ -394,7 +395,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} else { } else {
excel.setEndTime(""); excel.setEndTime("");
} }
excel.setExpectedCompletionTime(record.getExpectedCompletionTime()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
excel.setExpectedCompletionTime(dateFormat.format(record.getExpectedCompletionTime()));
excels.add(excel); excels.add(excel);
} }
} }

@ -56,6 +56,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Duration; import java.time.Duration;
import java.util.*; import java.util.*;
@ -343,7 +344,12 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
workOrder.setMaintenanceCompany(variables.get("yunweigongsi").toString()); workOrder.setMaintenanceCompany(variables.get("yunweigongsi").toString());
workOrder.setTenantId(WfTaskUtil.getTenantId()); workOrder.setTenantId(WfTaskUtil.getTenantId());
workOrder.setProcessInstanceId(processInstanceId); workOrder.setProcessInstanceId(processInstanceId);
workOrder.setExpectedCompletionTime(variables.get("qiwangwanchengshijian").toString()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
workOrder.setExpectedCompletionTime(dateFormat.parse(variables.get("qiwangwanchengshijian").toString()));
} catch (ParseException e) {
e.printStackTrace();
}
workOrder.setRepeatMode(variables.get("chongfumoshi").toString()); workOrder.setRepeatMode(variables.get("chongfumoshi").toString());
//如果是运维公司发起的日常任务(普通),生成工单,并标记为已完成 //如果是运维公司发起的日常任务(普通),生成工单,并标记为已完成
User applyUser = UserCache.getUser(Long.valueOf(variables.get("applyUser").toString())); User applyUser = UserCache.getUser(Long.valueOf(variables.get("applyUser").toString()));
@ -390,7 +396,7 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
// autoStartModel.setCreateDept(Long.valueOf(deptId)); // autoStartModel.setCreateDept(Long.valueOf(deptId));
autoStartModel.setCreateTime(DateUtil.now()); autoStartModel.setCreateTime(DateUtil.now());
autoStartModel.setStatus(10); autoStartModel.setStatus(10);
baseMapper.insert(autoStartModel); save(autoStartModel);
} }
@ -427,7 +433,7 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
workOrder.setOperateSys(autoStartModel.getOperateSys().toString()); workOrder.setOperateSys(autoStartModel.getOperateSys().toString());
workOrder.setOperateModule(autoStartModel.getOperateModule().toString()); workOrder.setOperateModule(autoStartModel.getOperateModule().toString());
workOrder.setUploadRecord(autoStartModel.getUploadRecord()); workOrder.setUploadRecord(autoStartModel.getUploadRecord());
workOrder.setExpectedCompletionTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(autoStartModel.getNextEndTime())); workOrder.setExpectedCompletionTime(autoStartModel.getNextEndTime());
workOrder.setIsFinish(0); workOrder.setIsFinish(0);
//如果是运维公司发起的日常任务(普通),生成工单,并标记为已完成 //如果是运维公司发起的日常任务(普通),生成工单,并标记为已完成
if(StringUtils.equals(autoStartModel.getApplyRole(),"运维公司") && StringUtils.equals(autoStartModel.getTaskLevel().toString(),"1625035000825049090")){ if(StringUtils.equals(autoStartModel.getApplyRole(),"运维公司") && StringUtils.equals(autoStartModel.getTaskLevel().toString(),"1625035000825049090")){

Loading…
Cancel
Save