Commit b5c8c19d by xieshaohua

工单修改

parent 91fdf5aa
package com.keymobile.governworkorder;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
\ No newline at end of file
......@@ -14,49 +14,66 @@ import lombok.Data;
public class WorkOrderDataVO {
/**
* 资产id
* id
*/
@Schema(description = "id")
private String id;
/**
* 工单id
*/
@Schema(description = "工单id")
private String workOrderId;
@Schema(description = "关联资产id")
private String dataId;
/**
* 资产名称
*/
@Schema(description = "资产名称")
private String name;
/**
* 资产编号
*/
@Schema(description = "资产编号")
private String code;
/**
* 资产描述
*/
@Schema(description = "资产描述")
private String desc;
/**
* 处理意见
*/
@Schema(description = "处理意见")
private String opinion;
/**
* 工单类型 资产属性变更、资产下架、资产新增等 待讨论 资产转移
*/
@Schema(description = "工单类型 资产属性变更、资产下架、资产新增等 待讨论 资产转移")
private String type;
/**
* 资产类型 数据指标、数据资产
* 资产类型 数据指标、数据资产、元数据、标准
*/
@Schema(description = "资产类型 数据指标、数据资产、元数据、标准")
private String dataType;
/**
* 处理状态 是、否
*/
@Schema(description = "处理状态 是、否")
private String handleStatus;
/**
* 确认状态 是、否
*/
@Schema(description = "确认状态 是、否")
private String confirmStatus;
@Schema(description = "创建时间")
private String createTime;
@Schema(description = "更新时间")
private String updateTime;
}
package com.keymobile.governworkorder.common.bo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
......@@ -12,80 +13,120 @@ import java.util.List;
*/
@Data
@Schema(description = "工单信息")
public class WorkOrderInfoVO {
/**
* id
*/
@Schema(description = "id")
private String id;
private String name;
/**
* 工单标题
*/
@Schema(description = "工单标题")
private String title;
/**
* 工单描述
*/
@Schema(description = "工单描述")
private String desc;
/**
* 工单级别
*/
@Schema(description = "工单级别")
private String level;
/**
* 工单状态 待处理、处理中
*/
@Schema(description = "工单状态 待处理、处理中")
private String status;
/**
* 流程环节 发起人、处理人、审批人
*/
@Schema(description = "流程环节 发起人、处理人、审批人")
private String stage;
/**
* 工单创建时间
*/
@Schema(description = "工单创建时间")
private String createTime;
/**
* 创建毫秒
*/
@Schema(description = "创建毫秒")
private long createTimeMill;
/**
* 工单类型 资产变更、资产下架、资产新增等 待讨论 资产转移
*/
@Schema(description = "工单类型 资产变更、资产下架、资产新增等 待讨论 资产转移")
private String type;
/**
* 资产类型 数据指标、数据资产
* 资产类型 数据指标、数据资产、元数据、数据标准
*/
@Schema(description = "资产类型 数据指标、数据资产、元数据、数据标准")
private String dataType;
/**
* 处理人
*/
@Schema(description = "处理人")
private String handleUserName;
/**
* 处理人展示名
*/
private String handleUserDName;
@Schema(description = "处理人展示名")
private String handleUserDname;
/**
* 下一步操作人展示名
*/
private String nextUserDName;
@Schema(description = "下一步操作人展示名")
private String nextUserDname;
/**
* 下一步操作人账号
*/
@Schema(description = "下一步操作人账号")
private String nextUserName;
/**
* 创建人展示名
*/
private String createUserDName;
@Schema(description = "创建人展示名")
private String createUserDname;
/**
* 创建人账号
*/
@Schema(description = "创建人账号")
private String createUserName;
/**
* 文件id
*/
@Schema(description = "文件id")
private String fileId;
/**
* 结束时间
*/
@Schema(description = "结束时间")
private String endTime;
/**
* 结束时间毫秒
*/
@Schema(description = "结束时间毫秒")
private String endTimeMill;
/**
* 期望结束时间
*/
@Schema(description = "结束时间")
private String expectedEndTime;
/**
* 更新时间
*/
@Schema(description = "更新时间")
private String updateTime;
@Schema(description = "关联资产数据")
private List<WorkOrderDataVO> data;
@Schema(description = "关联审批数据")
private List<WorkOrderProcessVO> process;
}
package com.keymobile.governworkorder.common.bo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @author xiesh
* @version 1.0.0
* @date 2025/8/14
* @desc
* @desc 流程审批信息
*/
@Data
@Schema(description = "工单信息")
public class WorkOrderProcessVO {
@Schema(description = "id")
private String id;
/**
* 工单id
*/
@Schema(description = "工单id")
private String workOrderId;
/**
* 流程环节 发起人、处理人、审批人
*/
@Schema(description = "流程环节 发起人、处理人、审批人")
private String stage;
/**
* 类型 通过、驳回
*/
@Schema(description = "类型 通过、驳回")
private String type;
/**
* 处理意见
*/
@Schema(description = "处理意见")
private String content;
/**
* 处理人账号
*/
@Schema(description = "处理人账号")
private String userName;
/**
* 处理人展示名
*/
private String userDName;
@Schema(description = "处理人展示名")
private String userDname;
/**
* 下一步处理人
*/
@Schema(description = "下一步处理人")
private String nextUserName;
/**
* 下一步处理人展示名
*/
private String nextUserDName;
@Schema(description = "下一步处理人展示名")
private String nextUserDname;
/**
* 创建时间
*/
@Schema(description = "createTime")
private String createTime;
......
......@@ -3,10 +3,6 @@ package com.keymobile.governworkorder.common.type;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum OrderDataTypeEnum {
......
......@@ -13,7 +13,8 @@ public enum OrderMessageTypeEnum {
MSG_CREATE("create", "工单创建"),
MSG_UPDATE("update", "工单更新"),
MSG_DELETE("delete", "工单删除"),
MSG_FINISH("finish", "工单完成");
MSG_FINISH("finish", "工单完成"),
MSG_INVALIDATE("invalidate", "工单失效");
public static final String[] ARRAYS = Arrays.stream(values()).map(OrderMessageTypeEnum::getType).toArray(String[]::new);
......
package com.keymobile.governworkorder.common.type;
/**
* @author xiesh
* @version 1.0.0
* @date 2025/8/15
* @desc
*/
public enum OrderProcessStageTypeEnum {
PROCESS_CREATE("发起人"),
PROCESS_HANDLER("处理人"),
PROCESS_APPROVER("审批人");
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
OrderProcessStageTypeEnum() {
}
OrderProcessStageTypeEnum(String name) {
this.name = name;
}
}
......@@ -4,7 +4,8 @@ public enum OrderStatusTypeEnum {
STATUS_TO_BE_START("待发起"),
STATUS_PROCESSING("处理中"),
STATUS_DONE("工单关闭");
STATUS_DONE("工单关闭"),
STATUS_INVALIDATE("工单失效");
public String getName() {
return name;
......
......@@ -97,7 +97,10 @@ public class WorkOrderApi {
}
@RequestMapping(value = "/checkCreate", method = {RequestMethod.GET})
@Operation(summary = "校验是否具有创建工单的权限", description = "")
public boolean checkCreatePermission(@RequestParam(required = false) String userName) {
return workOrderService.checkCreatePermission(userName);
}
}
package com.keymobile.governworkorder.core.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.data.domain.Sort;
......@@ -10,20 +11,32 @@ import org.springframework.data.domain.Sort;
* @desc
*/
@Data
@Schema(description = "工单查询条件")
public class WorkOrdeQueryDto {
@Schema(description = "分页页数")
private int page = 1;
@Schema(description = "分页大小")
private int size = 10;
@Schema(description = "排序字段")
private String sort = "createTime";
@Schema(description = "排序 DESC 降序、ASC 升序")
private Sort.Direction direction = Sort.Direction.DESC;
@Schema(description = "工单级别")
private String level;
@Schema(description = "工单状态")
private String status;
@Schema(description = "工单类型")
private String type;
@Schema(description = "关键字")
private String keyword;
@Schema(description = "创建开始时间")
private String startTime;
@Schema(description = "创建结束时间")
private String endTime;
/**
* 待办已办类型: 1待办、2待办
* 待办已办类型: 1待办、2待办
*/
@Schema(description = "待办已办类型: 1待办、2待办")
private String doType;
}
......@@ -28,25 +28,12 @@ public class WorkOrderMessageService {
@Autowired
private FanoutExchange exchange;
public void create(WorkOrderInfoVO vo) {
public void sendMsg(String type, WorkOrderInfoVO vo) {
CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString());
String content = toMessage(OrderMessageTypeEnum.MSG_CREATE.getType(), vo);
String content = toMessage(type, vo);
log.info("sendMessage.exchange:{},content:{}", exchange.getName(), content);
this.rabbitTemplate.convertAndSend(exchange.getName(), null, content, correlationId);
}
public void delete(WorkOrderInfoVO vo) {
CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString());
String content = toMessage(OrderMessageTypeEnum.MSG_DELETE.getType(), vo);
log.info("sendMessage.exchange:{},content:{}", exchange.getName(), content);
this.rabbitTemplate.convertAndSend(exchange.getName(), null, content, correlationId);
}
public void finsh(WorkOrderInfoVO vo) {
CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString());
String content = toMessage(OrderMessageTypeEnum.MSG_FINISH.getType(), vo);
log.info("sendMessage.exchange:{},content:{}", exchange.getName(), content);
this.rabbitTemplate.convertAndSend(exchange.getName(), null, content, correlationId);
}
private String toMessage(String type, WorkOrderInfoVO vo) {
......
......@@ -23,6 +23,11 @@ public class WorkOrderData {
private String workOrderId;
/**
* 资产id
*/
private String dataId;
/**
* 资产名称
*/
private String name;
......
......@@ -23,7 +23,6 @@ public class WorkOrderInfo {
@Id
private String id;
private String name;
/**
* 工单标题
*/
......@@ -41,6 +40,10 @@ public class WorkOrderInfo {
*/
private String status;
/**
* 流程环节 发起人、处理人、审批人
*/
private String stage;
/**
* 工单创建时间
*/
private String createTime;
......@@ -65,11 +68,11 @@ public class WorkOrderInfo {
/**
* 处理人展示名
*/
private String handleUserDName;
private String handleUserDname;
/**
* 下一步操作人展示名
*/
private String nextUserDName;
private String nextUserDname;
/**
* 下一步操作人账号
*/
......@@ -77,18 +80,33 @@ public class WorkOrderInfo {
/**
* 创建人展示名
*/
private String createUserDName;
private String createUserDname;
/**
* 创建人账号
*/
private String createUserName;
/**
* 文件id
*/
private String fileId;
/**
* 结束时间
*/
private String endTime;
/**
* 结束时间毫秒
*/
private String endTimeMill;
/**
* 期望结束时间
*/
private String expectedEndTime;
/**
* 更新时间
*/
private String updateTime;
private String fileId;
@Transient
private List<WorkOrderData> data;
......
......@@ -22,6 +22,10 @@ public class WorkOrderProcess {
*/
private String workOrderId;
/**
* 环节
*/
private String stage;
/**
* 类型 通过、驳回
*/
private String type;
......@@ -36,7 +40,7 @@ public class WorkOrderProcess {
/**
* 处理人展示名
*/
private String userDName;
private String userDname;
/**
* 下一步处理人
......@@ -45,7 +49,7 @@ public class WorkOrderProcess {
/**
* 下一步处理人展示名
*/
private String nextUserDName;
private String nextUserDname;
/**
* 创建时间
*/
......
package com.keymobile.governworkorder.core.remote;
import com.keymobile.governworkorder.core.remote.user.User;
import com.keymobile.governworkorder.core.remote.user.UserGroup;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
@FeignClient(name = "AuthService")
public interface AuthService {
@GetMapping(value = "/users")
List<User> getUserList();
@GetMapping(value = "/userGroups")
List<UserGroup> getUserGroups();
@GetMapping(value = "/userGroups/{userGroupId}/users")
List<User> getUserListByGroupId(@PathVariable("userGroupId") Long userGroupId);
}
package com.keymobile.governworkorder.core.remote.user;
import lombok.Data;
import java.io.Serializable;
@Data
public class User implements Serializable {
private Long id;
private String name;
private String dname;
}
\ No newline at end of file
package com.keymobile.governworkorder.core.remote.user;
import lombok.Data;
import java.io.Serializable;
@Data
public class UserGroup implements Serializable {
private Long id;
private String name;
private String desc;
private Integer membersCount;
}
\ No newline at end of file
......@@ -36,4 +36,6 @@ public interface WorkOrderService {
WorkOrderInfoVO getById(String workOrderId);
boolean checkCreatePermission(String userName);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment