2023年6月13日16:09:45

main
litao 3 years ago
parent 5deb28c7f2
commit a11f3e37b2
  1. 3
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java
  2. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/ProjectDatabaseController.java
  3. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/excel/DatabaseExcel.java
  4. 6
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/mapper/ModuleDatatableMapper.xml
  5. 5
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java
  6. 83
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java
  7. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/excel/OrderExcel.java
  8. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/excel/WorkOrderExcel.java
  9. 94
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java
  10. 35
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/util/RestTemplateConfig.java
  11. 43
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/service/impl/AutoStartModelServiceImpl.java
  12. 28
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workflow/process/service/impl/WfProcessService.java
  13. 10
      lab-service-api/lab-user-api/src/main/java/org/springblade/system/user/entity/User.java
  14. 22
      lab-service/lab-user/src/main/java/org/springblade/system/user/controller/UserController.java
  15. 3
      lab-service/lab-user/src/main/java/org/springblade/system/user/feign/UserClient.java
  16. 2
      lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserMapper.java
  17. 4
      lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
  18. 2
      lab-service/lab-user/src/main/java/org/springblade/system/user/service/IUserService.java
  19. 6
      lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@ -355,6 +355,7 @@ public class HomePageServiceImpl implements IHomePageService {
List<HistoricProcessInstance> collect1 = historicProcessInstanceStartList.stream().filter(process -> {
String startUserId = process.getStartUserId();
User user = UserCache.getUser(Long.parseLong(startUserId));
if (user != null) {
String userDept = user.getDeptId();
List<Long> userDeptList = Func.toLongList(userDept);
for (Long l : userDeptList) {
@ -362,6 +363,7 @@ public class HomePageServiceImpl implements IHomePageService {
return true;
}
}
}
return false;
}).collect(Collectors.toList());
@ -608,6 +610,7 @@ public class HomePageServiceImpl implements IHomePageService {
//查询近一个月的
Date lastMonthDate = DateUtil.minusMonths(DateUtil.now(), 1);
List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().startedAfter(lastMonthDate)
.finished()
.processInstanceTenantId(WfTaskUtil.getTenantId())
.list();

@ -78,7 +78,7 @@ public class ProjectDatabaseController extends BladeController {
if (CollectionUtils.isNotEmpty(dataTableList)) {
for (ProjectDatabaseVo table : dataTableList) {
table.setDeptName(sysClient.getDeptName(table.getDeptId()).getData());
table.setCompanyName(userClient.userInfoById(table.getCompany()).getData().getName());
// table.setCompanyName(userClient.userInfoById(table.getCompany()).getData().getName());
if (StringUtils.isNotBlank(table.getDataBaseAlias())) {
table.setDatabaseProjectName(table.getDataBaseAlias() + "(" + table.getDatabaseProjectName() + ")");
}

@ -20,7 +20,7 @@ public class DatabaseExcel implements Serializable {
private String dataBasePort;
@ColumnWidth(20)
@ExcelProperty("数据库/系统名称")
@ExcelProperty("部门系统")
private String databaseProjectName;
@ColumnWidth(20)
@ -40,7 +40,7 @@ public class DatabaseExcel implements Serializable {
// private String systemModuleName;
@ColumnWidth(20)
@ExcelProperty("管理部门")
@ExcelProperty("部门名称")
private String deptId;
@ColumnWidth(20)

@ -3,7 +3,6 @@
<mapper namespace="org.springblade.plugin.operation.database.mapper.ModuleDatatableMapper">
<select id="page" resultType="org.springblade.plugin.operation.database.entity.ProjectDatabaseVo">
select
b.data_base_ip,
@ -14,9 +13,12 @@
b.system_name,
b.dept_id,
b.company,
u.name as companyName,
t.datatable_module_name,
t.data_table_alias
from t_project_database b left join t_module_datatable t on b.id = t.project_database_id
from t_project_database b
left join t_module_datatable t on b.id = t.project_database_id
left join lims.blade_user u on u.id = b.company
where t.is_deleted = 0
<if test="dataBase.getDatabaseProjectName!=null and dataBase.getDatabaseProjectName != ''">
and b.database_project_name = #{dataBase.databaseProjectName}

@ -1,7 +1,6 @@
package org.springblade.plugin.operation.task.controller;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -10,7 +9,6 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
@ -25,6 +23,8 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.plugin.operation.task.entity.TaskInfo;
import org.springblade.plugin.operation.task.service.ITaskInfoService;
import org.springblade.plugin.operation.webservice.WebServiceUtils;
import org.springblade.plugin.operation.workorder.entity.InsertTodealByPollCode;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.DictBiz;
import org.springframework.web.bind.annotation.*;
@ -32,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**

@ -1,13 +1,11 @@
package org.springblade.plugin.operation.workorder.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tenant.annotation.NonDS;
@ -15,7 +13,6 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.plugin.operation.task.entity.TaskInfo;
import org.springblade.plugin.operation.task.service.ITaskInfoService;
import org.springblade.plugin.operation.workorder.entity.InsertTodealByPollCode;
import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.operation.workorder.service.IWorkOrderService;
import org.springblade.system.cache.DictBizCache;
@ -24,14 +21,7 @@ import org.springblade.system.entity.DictBiz;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
@ -39,6 +29,7 @@ import java.util.*;
/**
* 工单
*
* @Description
* @Author lt
* @Date 2023年2月17日09:46:45
@ -55,9 +46,6 @@ public class WorkOrderController extends BladeController {
private final ISysClient sysClient;
private final IUserClient userClient;
private RestTemplate restTemplate;
// private RestTemplateToInterface restTemplateToInterface;
/**
* 流程中心
*/
@ -130,75 +118,6 @@ public class WorkOrderController extends BladeController {
*/
@GetMapping("/workOrderRecord")
public R<IPage<WorkOrder>> workOrderRecord(WorkOrder workOrder, Query query) {
InsertTodealByPollCode code = new InsertTodealByPollCode();
code.setTodealGuid("{20180407-1554-0306-6507-00FF718FC7C2}");
code.setFileGuid("{20180407-1554-0306-6507-00FF718FC7C2}");
// code.setFlowGuid("");
code.setTitle("测试标题");
code.setDocType("2");
code.setReceiveLocalPerson("qdsn.dsjyyk");
code.setReceiveLocalPersonGuid("{9DEEE6C9-1419-47FF-B76D-4BF3753CC00A}");
code.setSendperson("qdsn.dsjyyk");
code.setSendpersonGuid("{9DEEE6C9-1419-47FF-B76D-4BF3753CC00A}");
code.setTypeName("其他");
// code.setKeyNumber("20");
code.setIsout("0");
// code.setUrl("");
code.setOpenFlag("1");
code.setIsReply("0");
code.setIsTop("0");
code.setFromExchangeCode("00020000000000000001");
code.setToExchangeCode("00020000000000000001");
code.setPollCode("000000");
// String s = restTemplateToInterface.doPostWith1("http://15.72.158.155/jhoa200/OAReceiver/OuterSystemOAReceiver.asmx", code);
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
JSONObject param = new JSONObject();
param.put("todealGuid", code.getTodealGuid());
param.put("fileGuid", code.getFileGuid());
// param.put("flowGuid", code.getTodealGuid());
param.put("title", code.getTitle());
param.put("docType", code.getDocType());
param.put("receiveLocalPerson", code.getReceiveLocalPerson());
param.put("receiveLocalPersonGuid", code.getReceiveLocalPersonGuid());
param.put("sendperson", code.getSendperson());
param.put("sendpersonGuid", code.getSendpersonGuid());
param.put("typeName", code.getTypeName());
// param.put("keyNumber", code.getTodealGuid());
param.put("isout", code.getIsout());
// param.put("url", code.getTodealGuid());
param.put("openFlag", code.getOpenFlag());
param.put("isReply", code.getIsReply());
param.put("isTop", code.getIsTop());
param.put("fromExchangeCode", code.getFromExchangeCode());
param.put("toExchangeCode", code.getToExchangeCode());
param.put("pollCode", code.getPollCode());
// 2.设置请求体的参数
// HttpEntity<InsertTodealByPollCode> formEntity = new HttpEntity<>(code, headers);
HttpEntity<JSONObject> formEntity = new HttpEntity<>(param, headers);
System.out.println("=============================================");
System.out.println(code);
String url = "http://15.72.158.155/jhoa200/OAReceiver/OuterSystemOAReceiver.asmx";
ResponseEntity<JSONObject> responseEntity = null;
JSONObject object = null;
try {
object = restTemplate.postForObject(url, formEntity, JSONObject.class);
System.out.println("结果:" + object);
responseEntity = restTemplate.postForEntity(url, param, JSONObject.class);
System.out.println("结果:" + responseEntity.getBody());
} catch (RestClientException e) {
System.out.println(e.toString());
}
System.out.println("=============================================");
return R.data(workOrderService.myPage(workOrder, query));
}

@ -20,11 +20,11 @@ public class OrderExcel implements Serializable {
private String taskType;
@ColumnWidth(20)
@ExcelProperty("操作模块")
@ExcelProperty("操作对象")
private String operationModule;
@ColumnWidth(20)
@ExcelProperty("分管部门")
@ExcelProperty("部门名称")
private String dept;
@ColumnWidth(20)

@ -20,7 +20,7 @@ public class WorkOrderExcel implements Serializable {
private String taskType;
@ColumnWidth(20)
@ExcelProperty("操作模块")
@ExcelProperty("操作对象")
private String operationModule;
@ColumnWidth(20)
@ -28,7 +28,7 @@ public class WorkOrderExcel implements Serializable {
private String currentResponsiblePerson;
@ColumnWidth(20)
@ExcelProperty("分管部门")
@ExcelProperty("部门名称")
private String dept;
@ColumnWidth(20)

@ -226,7 +226,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 创建时间范围
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) {
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());
}
// 排序
@ -454,16 +456,16 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
historicVars.forEach(var ->
varMap.put(var.getVariableName(), var.getValue()));
// 任务父类
varMap.put("renwufulei", DictBizCache.getById(Long.parseLong(varMap.get("renwufulei").toString())).getDictValue());
ProjectDatabase byId = dataBaseService.getById(varMap.get("xitongmingchengshujuku").toString());
if (byId != null) {
varMap.put("xitongmingchengshujuku", byId.getDatabaseProjectName());
}
// 运维公司
varMap.put("yunweigongsi", userClient.userInfoById(Long.parseLong(varMap.get("yunweigongsi").toString())).getData().getRealName());
// // 任务父类
// varMap.put("renwufulei", DictBizCache.getById(Long.parseLong(varMap.get("renwufulei").toString())).getDictValue());
//
// ProjectDatabase byId = dataBaseService.getById(varMap.get("xitongmingchengshujuku").toString());
// if (byId != null) {
// varMap.put("xitongmingchengshujuku", byId.getDatabaseProjectName());
// }
//
// // 运维公司
// varMap.put("yunweigongsi", userClient.userInfoById(Long.parseLong(varMap.get("yunweigongsi").toString())).getData().getRealName());
Task task = taskService.createTaskQuery().processInstanceId(historicProcessInstance.getId()).singleResult();
if (task != null) {
@ -485,9 +487,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
varMap.put("startTime", historicProcessInstance.getStartTime());
varMap.put("endTime", historicProcessInstance.getEndTime());
varMap.put("startUserId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName());
varMap.put("processInstanceId", historicProcessInstance.getId());
varMap.put("taskId", "");
// varMap.put("startUserId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName());
// varMap.put("processInstanceId", historicProcessInstance.getId());
// varMap.put("taskId", "");
workOrders.add(varMap);
}
}
@ -497,13 +499,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
for (Map<String, Object> order : workOrders) {
WorkOrderExcel excel = new WorkOrderExcel();
excel.setTaskType(order.get("$renwuzhonglei").toString());
excel.setTaskParent(order.get("renwufulei").toString());
excel.setOperationModule(order.get("xitongmingchengshujuku").toString());
// excel.setTaskParent(order.get("renwufulei").toString());
// excel.setOperationModule(order.get("xitongmingchengshujuku").toString());
excel.setCurrentResponsiblePerson(order.get("currentResponsiblePerson").toString());
excel.setDept(order.get("$guanlibumen").toString());
excel.setLevel(order.get("$renwudengji").toString());
excel.setCompany(order.get("yunweigongsi").toString());
excel.setSponsor(order.get("startUserId").toString());
// excel.setCompany(order.get("yunweigongsi").toString());
// excel.setSponsor(order.get("startUserId").toString());
excel.setApprovalStatus(order.get("status").toString());
excel.setCreateTime(format.format(order.get("startTime")));
@ -527,8 +529,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
wrapper.in(WorkOrder::getManagement, Func.toStrList(AuthUtil.getDeptId()));
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) {
wrapper.between(WorkOrder::getCreateTime, workOrder.getStartTime(), workOrder.getEndTime());
wrapper.ge(WorkOrder::getCreateTime, workOrder.getStartTime());
wrapper.le(WorkOrder::getFinishTime, workOrder.getEndTime());
// wrapper.ge(WorkOrder::getCreateTime, workOrder.getStartTime());
// wrapper.le(WorkOrder::getFinishTime, workOrder.getEndTime());
}
wrapper.orderByDesc(WorkOrder::getCreateTime);
IPage<WorkOrder> page = page(Condition.getPage(query), wrapper);
@ -607,34 +609,20 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
.processInstanceTenantId(WfTaskUtil.getTenantId()).list();
List<Map<String, Object>> workOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(list)) {
for (HistoricProcessInstance historicProcessInstance : list) {
Map<String, Object> varMap = new HashMap<>();
List<HistoricVariableInstance> historicVars = historyService.createHistoricVariableInstanceQuery()
.processInstanceId(historicProcessInstance.getId()).list();
historicVars.forEach(var ->
varMap.put(var.getVariableName(), var.getValue()));
historicVars.forEach(var -> varMap.put(var.getVariableName(), var.getValue()));
// 任务父类
varMap.put("renwufulei", DictBizCache.getById(Long.parseLong(varMap.get("renwufulei").toString())).getDictValue());
// 操作模块
// if ("1".equals(varMap.get("type").toString())) {
// varMap.put("xitongmingchengshujuku", projectInfoService.getById(varMap.get("xitongmingchengshujuku").toString()).getProjectName());
// } else {
ProjectDatabase byId = dataBaseService.getById(varMap.get("xitongmingchengshujuku").toString());
if (byId != null) {
varMap.put("xitongmingchengshujuku", byId.getDatabaseProjectName());
}
// }
// ProjectInfo projectInfo = projectInfoService.getById(varMap.get("xitongmingchengshujuku").toString());
// if (projectInfo != null) {
// varMap.put("xitongmingchengshujuku", projectInfo.getProjectName());
// } else {
// varMap.put("xitongmingchengshujuku", dataBaseService.getById(varMap.get("xitongmingchengshujuku").toString()).getDataBaseName());
// }
// 运维公司
varMap.put("yunweigongsi", userClient.userInfoById(Long.parseLong(varMap.get("yunweigongsi").toString())).getData().getRealName());
@ -668,7 +656,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
varMap.put("processInstanceId", historicProcessInstance.getId());
List<HistoricTaskInstance> taskInstanceList = historyService.createHistoricTaskInstanceQuery().processInstanceId(historicProcessInstance.getId()).orderByTaskCreateTime().desc().list();
varMap.put("taskId", taskInstanceList.get(0).getId());
workOrders.add(varMap);
}
@ -676,16 +663,17 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 只看本部门数据权限
List<Map<String, Object>> workOrderList = new ArrayList<>();
// List<Map<String, Object>> workOrderList = new ArrayList<>();
List<String> deptIds = Func.toStrList(AuthUtil.getDeptId());
workOrders.forEach(order -> {
String deptId = order.get("startDeptId").toString();
if (deptIds.contains(deptId)) {
workOrderList.add(order);
}
});
workOrders = workOrderList;
// workOrders.forEach(order -> {
// String deptId = order.get("startDeptId").toString();
// if (deptIds.contains(deptId)) {
// workOrderList.add(order);
// }
// });
// workOrders = workOrderList;
workOrders = workOrders.stream().filter(s -> deptIds.contains(s.get("guanlibumen").toString())).collect(Collectors.toList());
// 任务父类
if (StringUtils.isNotBlank(workOrder.getTaskParent())) {
@ -732,32 +720,16 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) {
workOrders = workOrders.stream().filter(s ->
{
if (s.get("endTime") != null) {
try {
return (format.parse(format.format(s.get("startTime"))).after(workOrder.getStartTime())) &&
(format.parse(format.format(s.get("endTime"))).before(workOrder.getEndTime()));
(format.parse(format.format(s.get("startTime"))).before(workOrder.getEndTime()));
} catch (ParseException e) {
e.printStackTrace();
}
}
return false;
}).collect(Collectors.toList());
}
// 结束时间范围
// if (workOrder.getEndTime() != null) {
// workOrders = workOrders.stream().filter(s ->
// {
// if (s.get("endTime") != null) {
// try {
// return format.parse(format.format(s.get("endTime"))).before(workOrder.getEndTime());
// } catch (ParseException e) {
// e.printStackTrace();
// }
// }
// return false;
// }).collect(Collectors.toList());
// }
return workOrders;
}
}

@ -1,35 +0,0 @@
package org.springblade.plugin.operation.workorder.util;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
// @Bean
// public RestTemplate restTemplate(){
// // RestTemplate restTemplate = new RestTemplate();
// //设置中文乱码问题方式一
// // restTemplate.getMessageConverters().add(1,new StringHttpMessageConverter(Charset.forName("UTF-8")));
// // 设置中文乱码问题方式二
// // restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 支持中文编码
// return new RestTemplate();
// }
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory){
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(20000);
factory.setReadTimeout(30000);
return factory;
}
}

@ -23,6 +23,8 @@ import org.springblade.plugin.operation.system.entity.ProjectInfo;
import org.springblade.plugin.operation.system.service.IModuleInfoService;
import org.springblade.plugin.operation.system.service.IProjectInfoService;
import org.springblade.plugin.operation.task.service.ITaskInfoService;
import org.springblade.plugin.operation.webservice.WebServiceUtils;
import org.springblade.plugin.operation.workorder.entity.InsertTodealByPollCode;
import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.operation.workorder.service.IWorkOrderService;
import org.springblade.plugin.workbench.entity.AutoStartModel;
@ -39,6 +41,7 @@ import org.springblade.system.entity.Dept;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.cache.UserCache;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
@ -61,6 +64,8 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
private final ISysClient sysClient;
private final IUserClient userClient;
private final ITaskInfoService taskInfoService;
private final IProjectDatabaseService dataBaseService;
@ -200,6 +205,7 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
/**
* 不重复任务直接生成工单
*
* @param processInstanceId
* @param variables
*/
@ -233,6 +239,10 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
if (StringUtils.equals(roleId, "1623514957507272705") && StringUtils.equals(variables.get("renwudengji").toString(), "1625035000825049090")) {
workOrder.setIsFinish(1);
workOrder.setFinishTime(new Date());
} else {
workOrder.setIsFinish(0);
// 消息推送
messagePush(variables.get("applyUser").toString(), variables.get("yunweigongsi").toString());
}
save = workOrderService.save(workOrder);
@ -259,10 +269,10 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
* 1.新建工单
* 2.保存模板数据
* 3.更新模板的下一次开始和结束时间
*
* @param processinstanceId
* @param variables
* @return
* "更新模板数据失败"
* @return "更新模板数据失败"
* 生成工单失败
* 保存工单模板数据失败
*/
@ -303,6 +313,7 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
/**
* 新增工单并保存模板数据返回结果 0 成功 生成工单失败 保存工单模板数据失败
*
* @param processinstanceId
* @param variables
* @return
@ -473,6 +484,9 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
if (StringUtils.equals(autoStartModel.getApplyRole(), "运维公司") && StringUtils.equals(autoStartModel.getTaskLevel().toString(), "1625035000825049090")) {
workOrder.setIsFinish(1);
workOrder.setFinishTime(new Date());
} else {
// 消息推送
messagePush(workOrder.getApplyUser(), workOrder.getMaintenanceCompany());
}
workOrder.setExpectedCompletionTime(autoStartModel.getNextEndTime());
save = workOrderService.save(workOrder);
@ -501,6 +515,8 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
workOrder.setDetail(autoStartModel.getDetail());
workOrder.setExpectedCompletionTime(autoStartModel.getNextEndTime());
save = workOrderService.save(workOrder);
// 消息推送
messagePush(workOrder.getApplyUser(), workOrder.getMaintenanceCompany());
return save;
}
@ -548,4 +564,27 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
}
}
}
private void messagePush(String applyUserId,String userId) {
// 发起人
User startUser = userClient.userInfoById(Long.parseLong(applyUserId)).getData();
// 接收人
User user = userClient.userInfoById(Long.parseLong(userId)).getData();
InsertTodealByPollCode code = new InsertTodealByPollCode();
code.setTitle("新的工单待处理");
if (user != null) {
// 接收人
code.setReceiveLocalPerson(user.getName());
code.setReceiveLocalPersonGuid(user.getGuid());
code.setToExchangeCode(user.getMobile());
}
if (startUser != null) {
// 发送人
code.setSendperson(startUser.getName());
code.setSendpersonGuid(startUser.getGuid());
code.setFromExchangeCode(startUser.getMobile());
}
WebServiceUtils.InsertTodealByPollCode(WebServiceUtils.getData(code));
}
}

@ -41,6 +41,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.plugin.operation.webservice.WebServiceUtils;
import org.springblade.plugin.operation.workorder.entity.InsertTodealByPollCode;
import org.springblade.plugin.workbench.cache.FlowCache;
import org.springblade.plugin.workbench.entity.AutoStartModel;
import org.springblade.plugin.workbench.service.IAutoStartModelService;
@ -61,6 +63,7 @@ import org.springblade.plugin.workflow.process.model.WfTaskUser;
import org.springblade.plugin.workflow.process.service.*;
import org.springblade.system.user.cache.UserCache;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springblade.system.user.feign.IUserSearchClient;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Async;
@ -100,6 +103,8 @@ public class WfProcessService implements IWfProcessService {
private final RedisTemplate redisTemplate;
private final IUserClient userClient;
// private final LimsInvoked limsInvoked;
@Override
@ -1638,6 +1643,29 @@ public class WfProcessService implements IWfProcessService {
.list();
if (list.size() == 0) return;
if (ObjectUtil.isNotEmpty(assignee)) {
/*======================================消息推送====================================*/
// 发起人
User startUser = userClient.userInfoById(AuthUtil.getUserId()).getData();
// 接收人
User user = userClient.userInfoById(Long.parseLong(assignee.toString())).getData();
InsertTodealByPollCode code = new InsertTodealByPollCode();
code.setTitle("新的工单待处理");
if (user != null) {
// 接收人
code.setReceiveLocalPerson(user.getName());
code.setReceiveLocalPersonGuid(user.getGuid());
code.setToExchangeCode(user.getMobile());
}
if (startUser != null) {
// 发送人
code.setSendperson(startUser.getName());
code.setSendpersonGuid(startUser.getGuid());
code.setFromExchangeCode(startUser.getMobile());
}
WebServiceUtils.InsertTodealByPollCode(WebServiceUtils.getData(code));
/*====================================消息推送=====================================*/
String[] ids = assignee.toString().split(",");
if (list.size() > 1 || (list.size() == 1 && this.isMultiInstance(list.get(0).getTaskDefinitionKey(), list.get(0).getProcessDefinitionId()))) { // 多实例
int index = 0;

@ -95,4 +95,14 @@ public class User extends TenantEntity {
*/
private Integer accountStatus;
/**
* GUID
*/
private String guid;
/**
* 交换码
*/
private String mobile;
}

@ -5,6 +5,7 @@ package org.springblade.system.user.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@ -16,6 +17,7 @@ import lombok.AllArgsConstructor;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
@ -423,11 +425,11 @@ public class UserController {
* 运维公司
*/
@GetMapping("/maintenanceCompany")
public R<List<User>> maintenanceCompany() {
public R<List<User>> maintenanceCompany(Integer isDetail) {
BladeUser user = AuthUtil.getUser();
List<User> users = new ArrayList<>();
// 判断是否运维公司
if ("运维公司".equals(user.getRoleName())) {
if (isDetail == 0 && "运维公司".equals(user.getRoleName())) {
User byId = userService.getById(user.getUserId());
users.add(byId);
return R.data(users);
@ -436,11 +438,21 @@ public class UserController {
String roleId = sysClient.getRoleIdByAlias(AuthUtil.getTenantId(), "运维公司").getData();
// 查当前操作人部门下的运维公司
List<String> strings = Func.toStrList(user.getDeptId());
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.in(User::getDeptId, Func.toStrList(user.getDeptId()));
Set<User> userSet = new TreeSet<>(Comparator.comparing(BaseEntity::getId));
if (CollectionUtils.isNotEmpty(strings)) {
for (String string : strings) {
wrapper.like(User::getDeptId, string);
wrapper.eq(User::getRoleId, roleId);
users = userService.list(wrapper);
return R.data(users);
users.addAll(userService.list(wrapper));
wrapper.clear();
}
}
userSet.addAll(users);
return R.data(new ArrayList<>(userSet));
}
}

@ -37,7 +37,8 @@ public class UserClient implements IUserClient {
@Override
@GetMapping(USER_INFO_BY_ID)
public R<User> userInfoById(Long userId) {
return R.data(service.getById(userId));
// return R.data(service.getById(userId));
return R.data(service.getUserOne(userId));
}
@Override

@ -46,4 +46,6 @@ public interface UserMapper extends BaseMapper<User> {
List<UserExcel> exportUser(@Param("ew") Wrapper<User> queryWrapper);
List<User> userList (@Param("deptIdList") List<Long> deptIdList);
User getUserOne(@Param("userId") Long userId);
}

@ -87,4 +87,8 @@
)
</select>
<select id="getUserOne" resultType="org.springblade.system.user.entity.User">
SELECT * FROM blade_user WHERE id = #{userId}
</select>
</mapper>

@ -216,4 +216,6 @@ public interface IUserService extends BaseService<User> {
* @return
*/
public List<User> listRolebyId(String rolename);
public User getUserOne(Long userId);
}

@ -66,6 +66,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
private final ISysClient sysClient;
private final BladeTenantProperties tenantProperties;
private final IRoleClient roleClient;
private final UserMapper userMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@ -610,5 +611,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
return null;
}
@Override
public User getUserOne(Long userId) {
return userMapper.getUserOne(userId);
}
}

Loading…
Cancel
Save