|
|
@@ -1,30 +1,39 @@
|
|
|
package com.huaxu.order.controller;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.huaxu.client.UserCenterClient;
|
|
|
import com.huaxu.common.FileUploadUtil;
|
|
|
+import com.huaxu.entity.Message;
|
|
|
import com.huaxu.model.AjaxMessage;
|
|
|
import com.huaxu.model.LoginUser;
|
|
|
+import com.huaxu.model.Pagination;
|
|
|
import com.huaxu.model.ResultStatus;
|
|
|
+import com.huaxu.order.dto.WorkOrderManageByAlarmDto;
|
|
|
import com.huaxu.order.dto.WorkOrderManageDto;
|
|
|
import com.huaxu.order.entity.WorkFlowDetail;
|
|
|
import com.huaxu.order.entity.WorkFlowLog;
|
|
|
+import com.huaxu.order.entity.WorkOrderInfo;
|
|
|
import com.huaxu.order.entity.WorkOrderManage;
|
|
|
import com.huaxu.order.service.WorkFlowDetailService;
|
|
|
import com.huaxu.order.service.WorkFlowLogService;
|
|
|
import com.huaxu.order.service.WorkOrderManageService;
|
|
|
import com.huaxu.process.dto.TaskPorcessResult;
|
|
|
+import com.huaxu.process.entity.ProcessDefinition;
|
|
|
import com.huaxu.process.service.WorkFlowService;
|
|
|
import com.huaxu.process.utils.Action;
|
|
|
import com.huaxu.task.entity.PlanManage;
|
|
|
import com.huaxu.task.service.PlanManageService;
|
|
|
import com.huaxu.util.DatesUtil;
|
|
|
+import com.huaxu.util.MessageSendUtil;
|
|
|
import com.huaxu.util.UserUtil;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.activiti.engine.task.Task;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
@@ -54,6 +63,9 @@ public class WorkOrderManageController {
|
|
|
@Autowired
|
|
|
UserCenterClient userCenterClient;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MessageSendUtil messageSendUtil;
|
|
|
+
|
|
|
@Value("${UMIS.sys_config_path}")
|
|
|
private String baseDir;
|
|
|
|
|
|
@@ -71,12 +83,36 @@ public class WorkOrderManageController {
|
|
|
public AjaxMessage<Integer> insertSelective(@ApiParam(value = "工单信息", required = true) @RequestBody WorkOrderManage workOrderManage) {
|
|
|
LoginUser currentUser = UserUtil.getCurrentUser();
|
|
|
workOrderManage.setTenantId(currentUser.getTenantId());
|
|
|
- workOrderManage.setCreateBy(currentUser.getUsername());
|
|
|
- workOrderManage.setDateCreate(new Date());
|
|
|
+ workOrderManage.setCreateBy(currentUser.getId().toString());
|
|
|
+ workOrderManage.setDateCreate(workOrderManage.getDateCreate()==null?new Date():workOrderManage.getDateCreate());
|
|
|
workOrderManage.setOrderStatus(0);
|
|
|
workOrderManage.setTaskNo(DatesUtil.formatDate(new Date(),"yyyyMMddHHmmss")+String.valueOf((int) (Math.random()*(9999-1000)+1000)));
|
|
|
workOrderManageService.insertSelective(workOrderManage);
|
|
|
int result =workOrderManage.getId();//返回新增数据的id
|
|
|
+ if(workOrderManage.getEventType()==1) {
|
|
|
+ //发消息
|
|
|
+ try {
|
|
|
+ Message message=new Message();
|
|
|
+ message.setStatus(1);
|
|
|
+ message.setCreateBy(currentUser.getId().toString());
|
|
|
+ message.setTenantId(currentUser.getTenantId());
|
|
|
+ message.setMessageContent(workOrderManage.getTaskDesc());
|
|
|
+ message.setMessageId(UUID.randomUUID().toString());
|
|
|
+ message.setMessageType(3);
|
|
|
+ message.setMessageTemplateId(3);
|
|
|
+ message.setChannel(0);
|
|
|
+ message.setUrl(String.valueOf(result));
|
|
|
+ //获取需要发消息的用户
|
|
|
+ List<Long> users=userCenterClient.findUserIdsForOrg();
|
|
|
+ for(Long user : users){
|
|
|
+ message.setUserId(user.intValue());
|
|
|
+ messageSendUtil.send(message);
|
|
|
+ }
|
|
|
+ }catch(Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return new AjaxMessage<>(ResultStatus.OK, result);
|
|
|
}
|
|
|
/**
|
|
|
@@ -128,7 +164,7 @@ public class WorkOrderManageController {
|
|
|
workFlowLog.setFlowId(flowId);
|
|
|
workFlowLog.setFlowType(flowType);
|
|
|
workFlowLog.setFlowResult(flowResult);
|
|
|
- workFlowLog.setCreateBy(currentUser.getUsername());
|
|
|
+ workFlowLog.setCreateBy(currentUser.getId().toString());
|
|
|
workFlowLog.setDateCreate(new Date());
|
|
|
workFlowLog.setHandleUserId(currentUser.getId()!=null?currentUser.getId().toString():null);
|
|
|
workFlowLog.setHandleUserName(currentUser.getUsername());
|
|
|
@@ -155,7 +191,7 @@ public class WorkOrderManageController {
|
|
|
plan.setCurrentTaskId(handleResult.size()>0?handleResult.get(0).getCurrentTaskId():null);
|
|
|
plan.setCurrentUsers(handleResult.size()>0?handleResult.get(0).getCurrentTaskUsers():null);
|
|
|
plan.setCurrentTaskName(handleResult.size()>0?handleResult.get(0).getCurrentTaskName():null);
|
|
|
- plan.setUpdateBy(currentUser.getUsername());
|
|
|
+ plan.setUpdateBy(currentUser.getId().toString());
|
|
|
plan.setDateUpdate(new Date());
|
|
|
if(handleResult.size()==0||handleResult==null) {
|
|
|
plan.setPlanStatus(2);
|
|
|
@@ -171,7 +207,7 @@ public class WorkOrderManageController {
|
|
|
if(actionId==4||actionId==5){
|
|
|
WorkOrderManage workOrderManage=new WorkOrderManage();
|
|
|
workOrderManage.setTenantId(currentUser.getTenantId());
|
|
|
- workOrderManage.setCreateBy(currentUser.getUsername());
|
|
|
+ workOrderManage.setCreateBy(currentUser.getId().toString());
|
|
|
workOrderManage.setDateCreate(new Date());
|
|
|
workOrderManage.setOrderStatus(0);
|
|
|
workOrderManage.setTaskNo(DatesUtil.formatDate(new Date(),"yyyyMMddHHmmss")+String.valueOf((int) (Math.random()*(9999-1000)+1000)));
|
|
|
@@ -202,7 +238,7 @@ public class WorkOrderManageController {
|
|
|
order.setCurrentTaskId(handleResult.size()>0?handleResult.get(0).getCurrentTaskId():null);
|
|
|
order.setCurrentUsers(handleResult.size()>0?handleResult.get(0).getCurrentTaskUsers():null);
|
|
|
order.setCurrentTaskName(handleResult.size()>0?handleResult.get(0).getCurrentTaskName():null);
|
|
|
- order.setUpdateBy(currentUser.getUsername());
|
|
|
+ order.setUpdateBy(currentUser.getId().toString());
|
|
|
order.setDateUpdate(new Date());
|
|
|
if(handleResult.size()==0||handleResult==null) {
|
|
|
order.setOrderStatus(2);
|
|
|
@@ -247,11 +283,11 @@ public class WorkOrderManageController {
|
|
|
|
|
|
//插入或更新详情
|
|
|
if(detailId==null) {
|
|
|
- workFlowDetail.setCreateBy(currentUser.getUsername());
|
|
|
+ workFlowDetail.setCreateBy(currentUser.getId().toString());
|
|
|
workFlowDetail.setDateCreate(new Date());
|
|
|
workFlowDetailService.insertSelective(workFlowDetail);
|
|
|
}else{
|
|
|
- workFlowDetail.setUpdateBy(currentUser.getUsername());
|
|
|
+ workFlowDetail.setUpdateBy(currentUser.getId().toString());
|
|
|
workFlowDetail.setDateUpdate(new Date());
|
|
|
workFlowDetail.setId(detailId);
|
|
|
workFlowDetailService.updateByPrimaryKeySelective(workFlowDetail);
|
|
|
@@ -287,4 +323,139 @@ public class WorkOrderManageController {
|
|
|
}
|
|
|
return new AjaxMessage<>(ResultStatus.OK, avatar);
|
|
|
}
|
|
|
+
|
|
|
+ @GetMapping("/event/select")
|
|
|
+ @ApiOperation(value = "查询事件隐患/所有工单")
|
|
|
+ public AjaxMessage<Pagination<WorkOrderInfo>> selectEvent(
|
|
|
+ @ApiParam(value = "页数", required = true)@RequestParam Integer pageNum,
|
|
|
+ @ApiParam(value = "条数", required = true)@RequestParam Integer pageSize,
|
|
|
+ @ApiParam(value = "状态(0:事件隐患;null:所有工单;1:执行中;2:完成)", required = false) @RequestParam(required = false) Integer orderStatus,
|
|
|
+ @ApiParam(value = "事件类型(1:运维上报,2:用户上报,3:设备告警)", required = false) @RequestParam(required = false) Integer eventType,
|
|
|
+ @ApiParam(value = "事件隐患ID", required = false) @RequestParam(required = false) String taskNo,
|
|
|
+ @ApiParam(value = "计划起始日期(yyyy-MM-dd)", required = false) @RequestParam(required = false) String startDate,
|
|
|
+ @ApiParam(value = "计划截至日期(yyyy-MM-dd)", required = false) @RequestParam(required = false) String endDate){
|
|
|
+ WorkOrderManageDto workOrderManageDto = new WorkOrderManageDto();
|
|
|
+ //根据用户编号,获取用户的权限
|
|
|
+ LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ workOrderManageDto.setTaskNo(taskNo);
|
|
|
+ if(!org.springframework.util.StringUtils.isEmpty(startDate)&& !StringUtils.isEmpty(endDate)) {
|
|
|
+ workOrderManageDto.setStartDate(startDate);
|
|
|
+ workOrderManageDto.setEndDate(endDate);
|
|
|
+ }
|
|
|
+ workOrderManageDto.setOrderStatus(orderStatus);
|
|
|
+ workOrderManageDto.setEventType(eventType);
|
|
|
+ workOrderManageDto.setTenantId(loginUser.getTenantId());
|
|
|
+ workOrderManageDto.setProgramItems(loginUser.getProgramItemList());
|
|
|
+ workOrderManageDto.setUserType(loginUser.getType());
|
|
|
+ //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
|
|
|
+ workOrderManageDto.setPermissonType(loginUser.getPermissonType());
|
|
|
+ IPage<WorkOrderInfo> iPage = new Page<>(pageNum, pageSize);
|
|
|
+ iPage = workOrderManageService.selectPage(iPage, workOrderManageDto);
|
|
|
+ Pagination<WorkOrderInfo> pages = new Pagination<>(iPage);
|
|
|
+ //setUserName(pages);
|
|
|
+ return new AjaxMessage<>(ResultStatus.OK, pages);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/pending")
|
|
|
+ @ApiOperation(value = "查询待处理工单")
|
|
|
+ public AjaxMessage<Pagination<WorkOrderInfo>> selectPendingOrder(
|
|
|
+ @ApiParam(value = "页数", required = true)@RequestParam Integer pageNum,
|
|
|
+ @ApiParam(value = "条数", required = true)@RequestParam Integer pageSize,
|
|
|
+ @ApiParam(value = "工单类型(1表务、2停通水、3抢修、4漏点定位、5测漏、6违章跑水)", required = false) @RequestParam(required = false) Integer orderTypeId,
|
|
|
+ @ApiParam(value = "工单ID", required = false) @RequestParam(required = false) String taskNo,
|
|
|
+ @ApiParam(value = "计划起始日期(yyyy-MM-dd)", required = false) @RequestParam(required = false) String startDate,
|
|
|
+ @ApiParam(value = "计划截至日期(yyyy-MM-dd)", required = false) @RequestParam(required = false) String endDate){
|
|
|
+ WorkOrderManageDto workOrderManageDto = new WorkOrderManageDto();
|
|
|
+ //根据用户编号,获取用户的权限
|
|
|
+ LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ if(!StringUtils.isEmpty(startDate)&& !StringUtils.isEmpty(endDate)) {
|
|
|
+ workOrderManageDto.setStartDate(startDate);
|
|
|
+ workOrderManageDto.setEndDate(endDate);
|
|
|
+ }
|
|
|
+ workOrderManageDto.setOrderTypeId(orderTypeId);
|
|
|
+ if(loginUser.getId() != null) {
|
|
|
+ workOrderManageDto.setCurrentUsers(String.format("%s,", loginUser.getId()));
|
|
|
+ }
|
|
|
+ IPage<WorkOrderInfo> iPage = new Page<>(pageNum, pageSize);
|
|
|
+ iPage = workOrderManageService.selectPage(iPage, workOrderManageDto);
|
|
|
+ Pagination<WorkOrderInfo> pages = new Pagination<>(iPage);
|
|
|
+ //setUserName(pages);
|
|
|
+ return new AjaxMessage<>(ResultStatus.OK, pages);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/submit")
|
|
|
+ @ApiOperation(value = "工单派单")
|
|
|
+ public AjaxMessage submitPlan(
|
|
|
+ @ApiParam(value = "工单ID", required = true) @RequestParam(required = false) Integer id,
|
|
|
+ @ApiParam(value = "工单类型编号", required = true) @RequestParam(required = false) Integer orderTypeId,
|
|
|
+ @ApiParam(value = "工单类型名称", required = true) @RequestParam(required = true) String orderType,
|
|
|
+ @ApiParam(value = "紧急程度", required = true) @RequestParam(required = true) String urgency,
|
|
|
+ @ApiParam(value = "接单人编号", required = true) @RequestParam(required = true) String orderUserId){
|
|
|
+ LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ WorkOrderManage workOrderManage = workOrderManageService.selectByPrimaryKey(id);
|
|
|
+// ProcessDefinition processDefinition = workFlowService.findProcessDefinition(
|
|
|
+// loginUser.getTenantId(),
|
|
|
+// loginUser.getCompanyId(),
|
|
|
+// planManage.getTaskType());
|
|
|
+ //流程查询, 测试参数:(test1 1 1)
|
|
|
+ ProcessDefinition processDefinition = workFlowService.findProcessDefinition(
|
|
|
+ "test1",
|
|
|
+ 1,
|
|
|
+ 1);
|
|
|
+ if(processDefinition == null){
|
|
|
+ new AjaxMessage(ResultStatus.ERROR,"没有创建流程,不能提交!");
|
|
|
+ }
|
|
|
+ Map<String,Object> vars = new HashMap<>();
|
|
|
+ vars.put("assineeFormUserId",loginUser.getId().toString());
|
|
|
+ //巡检发送系统消息所需参数
|
|
|
+ vars.put("任务类型",orderType);
|
|
|
+ vars.put("任务编号",workOrderManage.getId());
|
|
|
+ vars.put("templateId",7);
|
|
|
+ vars.put("msgType",7);
|
|
|
+ String startProcess = workFlowService.startProcess(processDefinition,vars);
|
|
|
+ Task task = workFlowService.getProcessRuntimeTask(startProcess).get(0);
|
|
|
+ Set<String> taskParticipator = workFlowService.getTaskParticipator(task.getId(),false,null);
|
|
|
+ String currentUsers = "";
|
|
|
+ for (String str : taskParticipator) {
|
|
|
+ currentUsers += String.format("%s,",str);
|
|
|
+ }
|
|
|
+ //更新计划表的流程相关字段值。
|
|
|
+ workOrderManage.setOrderStatus(1);//已执行
|
|
|
+ workOrderManage.setOrderTypeId(orderTypeId);//工单类型ID
|
|
|
+ workOrderManage.setUrgency(urgency);//紧急程度
|
|
|
+ workOrderManage.setOrderUserId(orderUserId);//接单人ID
|
|
|
+ if(loginUser.getId() != null) {
|
|
|
+ workOrderManage.setUpdateBy(String.valueOf(loginUser.getId()));
|
|
|
+ workOrderManage.setSendBy(String.valueOf(loginUser.getId()));//派单人
|
|
|
+ }
|
|
|
+ workOrderManage.setSendTime(new Date());// 派单时间
|
|
|
+ workOrderManage.setDateUpdate(new Date());// 更新时间
|
|
|
+ workOrderManage.setProcessInstanceId(task.getProcessInstanceId());
|
|
|
+ workOrderManage.setProcessDefId(task.getProcessDefinitionId());
|
|
|
+ workOrderManage.setCurrentTaskId(task.getId());
|
|
|
+ workOrderManage.setCurrentUsers(currentUsers);
|
|
|
+ workOrderManage.setCurrentTaskName(task.getName());
|
|
|
+ int rows = workOrderManageService.updateByPrimaryKeySelective(workOrderManage);
|
|
|
+ if(rows > 0) {
|
|
|
+ return new AjaxMessage<>(ResultStatus.OK);
|
|
|
+ }
|
|
|
+ return new AjaxMessage<>(ResultStatus.ERROR);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value="batchDelete" , method = RequestMethod.DELETE)
|
|
|
+ @ApiOperation(value = "批量删除")
|
|
|
+ public AjaxMessage<Integer> batchDelete( @ApiParam(value = "工单Ids") @RequestParam List<Integer> ids){
|
|
|
+ return new AjaxMessage<>(ResultStatus.OK, workOrderManageService.batchDelete(ids));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量插入工单信息(报警生成的)
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "saveByAlarms", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "批量插入工单信息(报警生成的)")
|
|
|
+ public Integer saveByAlarms(
|
|
|
+ @ApiParam(value = "工单信息", required = true) @RequestBody List<WorkOrderManageByAlarmDto> workOrderManages){
|
|
|
+
|
|
|
+ return workOrderManageService.batchInsertByAlarms(workOrderManages);
|
|
|
+ }
|
|
|
}
|