Browse Source

Merge remote-tracking branch 'origin/yang_shj'

zhongwei
yang_shj 1 year ago
parent
commit
48c8600428
  1. 6
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessTaskEntity.java
  2. 5
      hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/MessageConstants.java
  3. 2
      hzims-service/hzims-middle/src/main/java/com/hnac/hzims/middle/processflow/strategy/serviceimpl/OverhaulPlanServiceImpl.java
  4. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/AccessTaskV4Controller.java
  5. 3
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/dto/OperAccessTaskDetailDTO.java
  6. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/AccessTaskV4Service.java
  7. 57
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java
  8. 85
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessTaskV4ServiceImpl.java
  9. 12
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/DangerSourceController.java
  10. 2
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IDangerSourceService.java
  11. 22
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/DangerSourceServiceImpl.java

6
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessTaskEntity.java

@ -160,4 +160,10 @@ public class OperAccessTaskEntity extends TenantEntity {
private YearMonth yearMonth;
@ApiModelProperty("当前步骤任务名称")
private String taskName;
@ApiModelProperty("当前环节处理人")
private String nextStepOperator;
}

5
hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/MessageConstants.java

@ -52,10 +52,15 @@ public class MessageConstants {
DUTY("duty","值班消息"),
SAFE("safe","安全消息"),
ACCESS("access","检修消息"),
BUSINESS("business","事务消息"),
TICKETMESSAGE("ticket-message","工作票消息"),
OPERATIONTICKETMESSAGE("operation-ticket-message","操作票消息"),
ROUTINEMAINTENANCE("operation-maintenance-message","日常维护消息"),
OPERATIONDEFECTMESSAGE("operation-defect-message","消缺消息"),
OVERHAUL_PLAN("overhaul-plan","检修计划"),
OVERHAUL_TASK("overhaul-task","检修任务"),
;
@Getter
private String key;

2
hzims-service/hzims-middle/src/main/java/com/hnac/hzims/middle/processflow/strategy/serviceimpl/OverhaulPlanServiceImpl.java

@ -5,14 +5,12 @@ import com.hnac.hzims.middle.processflow.service.ProcessDictService;
import com.hnac.hzims.middle.processflow.strategy.abstracts.ProcessAbstractService;
import com.hnac.hzims.middle.processflow.strategy.entity.WorkflowQueue;
import com.hnac.hzims.operational.access.feign.IAccessPlanV4Client;
import com.hnac.hzims.operational.defect.feign.IOperDefectClient;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Service;
import static com.hnac.hzims.middle.process.constant.TicketProcessConstant.DEFECT_KEY;
import static com.hnac.hzims.middle.process.constant.TicketProcessConstant.OVERHAUL_PLAN;
/**

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/AccessV4Controller.java → hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/AccessTaskV4Controller.java

@ -14,6 +14,6 @@ import org.springframework.web.bind.annotation.RestController;
@AllArgsConstructor
@RequestMapping("/overhaul_task")
@Api(tags = "v4检修计划流程")
public class AccessV4Controller extends BladeController {
public class AccessTaskV4Controller extends BladeController {
}

3
hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/dto/OperAccessTaskDetailDTO.java

@ -1,9 +1,8 @@
package com.hnac.hzims.operational.access.dto;
import io.swagger.annotations.ApiModelProperty;
import com.hnac.hzims.operational.access.entity.OperAccessTaskDetailEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.hnac.hzims.operational.access.entity.OperAccessTaskDetailEntity;
/**
* 模型DTO

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/AccessTaskV4Service.java

@ -8,7 +8,7 @@ import com.hnac.hzims.operational.access.dto.AccessTaskV4DTO;
*/
public interface AccessTaskV4Service {
boolean startProcessV4(AccessTaskV4DTO entity);
void startProcessV4(AccessTaskV4DTO entity);
boolean listener(ProcessWorkFlowResponse processWorkFlowResponse);
}

57
hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java

@ -1,9 +1,11 @@
package com.hnac.hzims.operational.access.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hnac.hzims.message.MessageConstants;
import com.hnac.hzims.message.dto.BusinessMessageDTO;
import com.hnac.hzims.message.fegin.IMessageClient;
import com.hnac.hzims.middle.process.to.ProcessWorkFlowResponse;
import com.hnac.hzims.operational.access.dto.*;
import com.hnac.hzims.operational.access.entity.OperAccessContentEntity;
@ -23,6 +25,9 @@ import org.springblade.flow.core.entity.BladeFlow;
import org.springblade.flow.core.feign.IFlowClient;
import org.springblade.flow.core.utils.FlowUtil;
import org.springblade.flow.core.utils.TaskUtil;
import org.springblade.system.feign.ISysClient;
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.util.CollectionUtils;
@ -47,8 +52,14 @@ public class AccessPlanV4ServiceImpl implements AccessPlanV4Service{
private final AccessTaskV4Service accessTaskV4Service;
private final ISysClient sysClient;
private final IFlowClient flowClient;
private final IUserClient userClient;
private final IMessageClient messageClient;
/**
* 开启检修计划流程
* @param entity
@ -179,12 +190,21 @@ public class AccessPlanV4ServiceImpl implements AccessPlanV4Service{
entity.setTaskName("流程结束");
entity.setNextStepOperator("流程结束,无需人员处理");
entity.setActEndTime(new Date());
// 开启检修任务
this.startTaskProcess(entity);
return this.planService.updateById(entity);
// 审核不通过
} else if(ObjectUtil.isNotEmpty(variables.get("examine")) && !(Boolean) variables.get("examine")){
String content = "您有一条检修计划待调整!检修计划名称:".concat(entity.getName())
.concat(",当前环节:")
.concat(processWorkFlowResponse.getTaskName());
this.sendMessage(entity,processWorkFlowResponse.getUserId(),content);
return this.planService.updateById(entity);
}
this.planService.updateById(entity);
this.saveAccessMaterial(entity);
this.saveAccessContent(entity);
String content = "您有一条检修计划待审批!检修计划名称:".concat(entity.getName())
.concat(",当前环节:")
.concat(processWorkFlowResponse.getTaskName());
this.sendMessage(entity,processWorkFlowResponse.getUserId(),content);
return true;
}
@ -196,6 +216,7 @@ public class AccessPlanV4ServiceImpl implements AccessPlanV4Service{
for(OperAccessContentDTO item : entity.getAccessContents()){
//任务参数
AccessTaskV4DTO task = BeanUtil.copy(item, AccessTaskV4DTO.class);
task.setId(null);
task.setCreateTime(new Date());
task.setCreateUser(entity.getCreateUser());
task.setProcDefId(entity.getProcDefId());
@ -220,4 +241,32 @@ public class AccessPlanV4ServiceImpl implements AccessPlanV4Service{
accessTaskV4Service.startProcessV4(task);
}
}
/**
* 推送业务流程消息
* @param entity
* @param userId
* @param content
*/
private void sendMessage(AccessPlanV4DTO entity, String userId, String content) {
BusinessMessageDTO message = new BusinessMessageDTO();
// 计划Id
message.setTaskId(entity.getId());
message.setBusinessClassify(MessageConstants.BusinessClassifyEnum.BUSINESS.getKey());
message.setBusinessKey(MessageConstants.BusinessClassifyEnum.OVERHAUL_PLAN.getKey());
// 主题
message.setSubject(MessageConstants.BusinessClassifyEnum.OVERHAUL_PLAN.getDescription());
message.setDeptId(entity.getCreateDept());
R<String> result = sysClient.getDeptName(entity.getCreateDept());
if (result.isSuccess()) {
message.setDeptName(result.getData());
}
// 内容
message.setContent(content);
message.setTenantId("200000");
User admin = userClient.userByAccount("200000", "admin").getData();
message.setCreateUser(admin.getId());
message.setUserIds(userId);
messageClient.sendAppAndWsMsgByUsers(message);
}
}

85
hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessTaskV4ServiceImpl.java

@ -2,8 +2,13 @@ package com.hnac.hzims.operational.access.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hnac.hzims.message.MessageConstants;
import com.hnac.hzims.message.dto.BusinessMessageDTO;
import com.hnac.hzims.message.fegin.IMessageClient;
import com.hnac.hzims.middle.process.to.ProcessWorkFlowResponse;
import com.hnac.hzims.operational.access.dto.AccessPlanV4DTO;
import com.hnac.hzims.operational.access.dto.AccessTaskV4DTO;
import com.hnac.hzims.operational.access.dto.OperAccessTaskDetailDTO;
import com.hnac.hzims.operational.access.entity.OperAccessMaterialEntity;
@ -24,15 +29,15 @@ import org.springblade.flow.core.entity.BladeFlow;
import org.springblade.flow.core.feign.IFlowClient;
import org.springblade.flow.core.utils.FlowUtil;
import org.springblade.flow.core.utils.TaskUtil;
import org.springblade.system.feign.ISysClient;
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.util.CollectionUtils;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -49,8 +54,14 @@ public class AccessTaskV4ServiceImpl implements AccessTaskV4Service {
private final IOperAccessTaskDetailService detailService;
private final ISysClient sysClient;
private final IFlowClient flowClient;
private final IUserClient userClient;
private final IMessageClient messageClient;
/**
* 开启检修任务流程
* @param entity
@ -58,7 +69,7 @@ public class AccessTaskV4ServiceImpl implements AccessTaskV4Service {
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean startProcessV4(AccessTaskV4DTO entity) {
public void startProcessV4(AccessTaskV4DTO entity) {
// 步骤1.保存检修任务
this.save(entity);
@ -70,7 +81,6 @@ public class AccessTaskV4ServiceImpl implements AccessTaskV4Service {
// 步骤4.开启检修任务流程
this.startProcess(entity);
return true;
}
/**
@ -78,8 +88,8 @@ public class AccessTaskV4ServiceImpl implements AccessTaskV4Service {
* @param entity
*/
private void startProcess(AccessTaskV4DTO entity) {
Map<String, Object> variables = JSONObject.parseObject(JSONObject.toJSONString(entity), Map.class);
variables.put("handler",TaskUtil.getTaskUser(entity.getHandler().toString()));
Map<String, Object> variables = JSONObject.parseObject(JSONObject.toJSONStringWithDateFormat(entity,DateUtil.PATTERN_DATETIME), Map.class);
variables.put("solve",TaskUtil.getTaskUser(entity.getHandler().toString()));
R<BladeFlow> result = flowClient.startProcessInstanceContainNameByKey("overhaul_task", FlowUtil.getBusinessKey("access_task_v4", String.valueOf(entity.getId())), entity.getName(),variables);
// 更新任务流程Id
if (result.isSuccess()) {
@ -110,8 +120,8 @@ public class AccessTaskV4ServiceImpl implements AccessTaskV4Service {
return;
}
materialService.saveOrUpdateBatch(entity.getAccessMaterials().stream().peek(material -> {
material.setPlanId(null);
material.setId(null);
material.setPlanId(entity.getPlanId());
material.setTaskId(entity.getId());
}).collect(Collectors.toList()));
}
@ -154,7 +164,62 @@ public class AccessTaskV4ServiceImpl implements AccessTaskV4Service {
*/
@Override
public boolean listener(ProcessWorkFlowResponse processWorkFlowResponse) {
// 对象转换
Map<String, Object> variables = (Map<String, Object>) processWorkFlowResponse.getVariables();
AccessTaskV4DTO entity = JSONObject.parseObject(JSONObject.toJSONString(variables), new TypeReference<AccessTaskV4DTO>(){});
// 当前流程名称
entity.setTaskName(processWorkFlowResponse.getTaskName());
// 流程阶段执行人员名称
entity.setNextStepOperator(processWorkFlowResponse.getNextStepOperator());
if(ObjectUtil.isNotEmpty(variables.get("examine")) && (Boolean) variables.get("examine")){
entity.setTaskName("流程结束");
entity.setNextStepOperator("流程结束,无需人员处理");
// 更新任务数据
this.taskService.updateById(entity);
}else if(ObjectUtil.isEmpty(variables.get("examine")) && !(Boolean) variables.get("examine")){
String content = "您有一条检修任务待处理!检修任务名称:".concat(entity.getName())
.concat(",当前环节:")
.concat(processWorkFlowResponse.getTaskName());
this.sendMessage(entity,processWorkFlowResponse.getUserId(),content);
return this.taskService.updateById(entity);
}
// 保存检修材料
this.saveMaterial(entity);
// 保存检修详情
this.saveDetails(entity);
// 发送消息
String content = "您有一条检修任务待审批!检修任务名称:".concat(entity.getName())
.concat(",当前环节:")
.concat(processWorkFlowResponse.getTaskName());
this.sendMessage(entity,processWorkFlowResponse.getUserId(),content);
return true;
}
return false;
/**
* 推送业务流程消息
* @param entity
* @param userId
* @param content
*/
private void sendMessage(AccessTaskV4DTO entity, String userId, String content) {
BusinessMessageDTO message = new BusinessMessageDTO();
// 计划Id
message.setTaskId(entity.getId());
message.setBusinessClassify(MessageConstants.BusinessClassifyEnum.BUSINESS.getKey());
message.setBusinessKey(MessageConstants.BusinessClassifyEnum.OVERHAUL_TASK.getKey());
// 主题
message.setSubject(MessageConstants.BusinessClassifyEnum.OVERHAUL_TASK.getDescription());
message.setDeptId(entity.getCreateDept());
R<String> result = sysClient.getDeptName(entity.getCreateDept());
if (result.isSuccess()) {
message.setDeptName(result.getData());
}
// 内容
message.setContent(content);
message.setTenantId("200000");
User admin = userClient.userByAccount("200000", "admin").getData();
message.setCreateUser(admin.getId());
message.setUserIds(userId);
messageClient.sendAppAndWsMsgByUsers(message);
}
}

12
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/DangerSourceController.java

@ -21,6 +21,8 @@ import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author xiashandong
@ -89,6 +91,16 @@ public class DangerSourceController extends BladeController {
}
/**
* 根据ID查询危险源
*/
@GetMapping("/safes")
@ApiOperationSupport(order = 60)
@ApiOperation(value = "查询危险源", notes = "传入safeInfos")
public R<List<DangerSourceEntity>> safes(@RequestParam String safeInfos) {
return R.data(dangerSourceService.safes(safeInfos));
}
/**
* 导入数据
*/
@ApiOperation(value = "导入Excel")

2
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IDangerSourceService.java

@ -39,4 +39,6 @@ public interface IDangerSourceService extends BaseService<DangerSourceEntity> {
List<SourceVO> listByTenantId(String tenantId);
List<CreateTableVO> getSafeCreateTable(List<String> tableNames);
List<DangerSourceEntity> safes(String safeInfos);
}

22
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/DangerSourceServiceImpl.java

@ -31,6 +31,7 @@ import com.hnac.hzims.safeproduct.wrapper.DangerSourceWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang.ArrayUtils;
import org.springblade.core.excel.support.ExcelException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
@ -46,17 +47,16 @@ import org.springblade.system.vo.CreateTableVO;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
* @author xiashandong
@ -308,6 +308,20 @@ public class DangerSourceServiceImpl extends BaseServiceImpl<DangerSourceMapper,
}
@Override
public List<DangerSourceEntity> safes(String safeInfos) {
if(StringUtil.isEmpty(safeInfos)){
return new ArrayList<>();
}
List<DangerSourceEntity> sources = this.listByIds(Arrays.asList(safeInfos.split(",")));
//未查到数据返回空集合
if (CollectionUtils.isEmpty(sources)) {
return new ArrayList<>();
}
//查到数据则将数据排序后再返回
return sources.stream().sorted(Comparator.comparing(DangerSourceEntity::getId)).collect(Collectors.toList());
}
@Override
public List<SourceVO> listByTenantId(String tenantId) {
return this.baseMapper.listByTenantId(tenantId);
}

Loading…
Cancel
Save