Blame view

service-community/src/main/java/com/java110/community/cmd/inspection/QueryInspectionTaskDetailCmd.java 4.5 KB
88e030b7   王彪总   init project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  package com.java110.community.cmd.inspection;
  
  import com.alibaba.fastjson.JSONObject;
  import com.java110.core.annotation.Java110Cmd;
  import com.java110.core.context.ICmdDataFlowContext;
  import com.java110.core.event.cmd.Cmd;
  import com.java110.core.event.cmd.CmdEvent;
  import com.java110.dto.inspection.InspectionTaskDetailDto;
  import com.java110.intf.community.IInspectionTaskDetailInnerServiceSMO;
  import com.java110.intf.community.IInspectionTaskDetailV1InnerServiceSMO;
  import com.java110.utils.exception.CmdException;
  import com.java110.utils.util.Assert;
  import com.java110.utils.util.BeanConvertUtil;
  import com.java110.vo.ResultVo;
  import com.java110.vo.api.inspectionTaskDetail.ApiInspectionTaskDetailDataVo;
  import com.java110.vo.api.inspectionTaskDetail.ApiInspectionTaskDetailVo;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.http.HttpStatus;
  import org.springframework.http.ResponseEntity;
  
  import java.text.ParseException;
  import java.util.ArrayList;
  import java.util.List;
  
  /**
   * 查询巡检任务明细命令类
   * 负责处理巡检任务明细的查询请求,包括参数验证、数据查询和结果返回
   * 通过服务码 inspection.queryInspectionTaskDetail 标识该命令处理器
   */
  @Java110Cmd(serviceCode = "inspection.queryInspectionTaskDetail")
  public class QueryInspectionTaskDetailCmd extends Cmd {
  
      /**
       * 巡检任务明细服务接口,用于查询巡检任务明细数据
       */
      @Autowired
      private IInspectionTaskDetailV1InnerServiceSMO inspectionTaskDetailV1InnerServiceSMOImpl;
  
      /**
       * 参数验证方法
       * 验证请求参数是否完整和有效
       *
       * @param event   命令事件对象,包含请求相关信息
       * @param context 命令数据流上下文,用于获取和设置请求/响应数据
       * @param reqJson 请求参数的JSON对象
       * @throws CmdException   当命令执行出现异常时抛出
       * @throws ParseException 当参数解析出现异常时抛出
       */
      @Override
      public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
          // 验证分页参数
          super.validatePageInfo(reqJson);
          // 验证属性参数
          super.validateProperty(context);
9750b443   王彪总   fix(config): 更新配置...
55
56
          // 验证必须包含项目ID
          Assert.hasKeyAndValue(reqJson, "communityId", "未包含项目ID");
88e030b7   王彪总   init project
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
          // 验证必须包含任务ID
          Assert.hasKeyAndValue(reqJson, "taskId", "未包含任务ID");
      }
  
      /**
       * 命令执行方法
       * 处理巡检任务明细的查询业务逻辑,包括数据查询、结果封装和响应返回
       *
       * @param event   命令事件对象
       * @param context 命令数据流上下文
       * @param reqJson 请求参数的JSON对象
       * @throws CmdException   当命令执行出现异常时抛出
       * @throws ParseException 当参数解析出现异常时抛出
       */
      @Override
      public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
          // 将请求JSON转换为巡检任务明细数据传输对象
          InspectionTaskDetailDto inspectionTaskDetailDto = BeanConvertUtil.covertBean(reqJson, InspectionTaskDetailDto.class);
          
          // 查询巡检任务明细总记录数
          int count = inspectionTaskDetailV1InnerServiceSMOImpl.queryInspectionTaskDetailsCount(inspectionTaskDetailDto);
          
          List<InspectionTaskDetailDto> inspectionTaskDetails = null;
          
          // 根据查询结果数量决定是否查询详细数据
          if (count > 0) {
              // 查询巡检任务明细列表数据
              inspectionTaskDetails = BeanConvertUtil.covertBeanList(
                      inspectionTaskDetailV1InnerServiceSMOImpl.queryInspectionTaskDetails(inspectionTaskDetailDto),
                      InspectionTaskDetailDto.class);
          } else {
              // 如果没有数据,返回空列表
              inspectionTaskDetails = new ArrayList<>();
          }
          
          // 计算总页数:总记录数 / 每页记录数,向上取整
          int totalPage = (int) Math.ceil((double) count / (double) reqJson.getInteger("row"));
          // 封装返回结果对象
          ResultVo resultVo = new ResultVo(totalPage, count, inspectionTaskDetails);
  
          // 创建HTTP响应实体
          ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
  
          // 设置响应到上下文
          context.setResponseEntity(responseEntity);
      }
  }