xiaogang
2022-09-22 dea2325896c7f8bd7df5107569b71d15fede79c7
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
55
56
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.java110.api.bmo.inspectionTaskDetail.impl;
 
import com.alibaba.fastjson.JSONObject;
import com.java110.api.bmo.ApiBaseBMO;
import com.java110.api.bmo.inspectionTaskDetail.IInspectionTaskDetailBMO;
import com.java110.core.context.DataFlowContext;
import com.java110.dto.inspectionPlan.InspectionTaskDto;
import com.java110.intf.community.IInspectionTaskDetailInnerServiceSMO;
import com.java110.dto.inspectionPlan.InspectionTaskDetailDto;
import com.java110.intf.community.IInspectionTaskInnerServiceSMO;
import com.java110.po.inspection.InspectionTaskDetailPo;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
 
@Service("inspectionTaskDetailBMOImpl")
public class InspectionTaskDetailBMOImpl extends ApiBaseBMO implements IInspectionTaskDetailBMO {
 
    @Autowired
    private IInspectionTaskDetailInnerServiceSMO inspectionTaskDetailInnerServiceSMOImpl;
 
    @Autowired
    private IInspectionTaskInnerServiceSMO inspectionTaskInnerServiceSMOImpl;
 
    /**
     * 添加小区信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    public void addInspectionTaskDetail(JSONObject paramInJson, DataFlowContext dataFlowContext) {
        paramInJson.put("taskDetailId", "-1");
        InspectionTaskDetailPo inspectionTaskPo = BeanConvertUtil.covertBean(paramInJson, InspectionTaskDetailPo.class);
        super.insert(dataFlowContext, inspectionTaskPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_INSPECTION_TASK_DETAIL);
    }
 
    /**
     * 添加活动信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    public void updateInspectionTaskDetail(JSONObject paramInJson, DataFlowContext dataFlowContext) throws ParseException {
        InspectionTaskDetailDto inspectionTaskDetailDto = new InspectionTaskDetailDto();
        inspectionTaskDetailDto.setTaskDetailId(paramInJson.getString("taskDetailId"));
        inspectionTaskDetailDto.setCommunityId(paramInJson.getString("communityId"));
        List<InspectionTaskDetailDto> inspectionTaskDetailDtos = inspectionTaskDetailInnerServiceSMOImpl.queryInspectionTaskDetails(inspectionTaskDetailDto);
        Assert.listOnlyOne(inspectionTaskDetailDtos, "未找到需要修改的活动 或多条数据");
        JSONObject businessInspectionTaskDetail = new JSONObject();
        businessInspectionTaskDetail.putAll(BeanConvertUtil.beanCovertMap(inspectionTaskDetailDtos.get(0)));
        businessInspectionTaskDetail.putAll(paramInJson);
        InspectionTaskDetailPo inspectionTaskDetailPoPo = BeanConvertUtil.covertBean(businessInspectionTaskDetail, InspectionTaskDetailPo.class);
        inspectionTaskDetailPoPo.setInspectionTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        inspectionTaskDetailPoPo.setActUserId(paramInJson.getString("userId"));
        inspectionTaskDetailPoPo.setActUserName(paramInJson.getString("userName"));
        //获取任务id
        String taskId = paramInJson.getString("taskId");
        InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
        inspectionTaskDto.setTaskId(taskId);
        List<InspectionTaskDto> inspectionTaskDtos = inspectionTaskInnerServiceSMOImpl.queryInspectionTasks(inspectionTaskDto);
        Assert.listOnlyOne(inspectionTaskDtos, "查询巡检任务数据错误!");
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        String currentDate=sdf1.format(date);
        System.out.println(currentDate);
 
 
        //获取巡检点的巡检点时间限制
        String inspectionStartTime="";
        String inspectionEndTime="";
        long planStartTime;
        long planFinishTime;
        String pointStartTime = inspectionTaskDetailDtos.get(0).getPointStartTime();
        String pointEndTime = inspectionTaskDetailDtos.get(0).getPointEndTime();
        if(!StringUtil.isEmpty(pointStartTime)){
            inspectionStartTime=currentDate+" "+pointStartTime+":00";
            Date startTime = format.parse(inspectionStartTime);
            planStartTime = startTime.getTime();
        }else{
            //获取计划巡检开始时间
            String planInsTime = inspectionTaskDtos.get(0).getPlanInsTime();
            Date startTime = format.parse(planInsTime);
            planStartTime = startTime.getTime();
        }
        if(!StringUtil.isEmpty(pointEndTime)){
            inspectionEndTime=currentDate+" "+pointEndTime+":00";
            Date endTime = format.parse(inspectionEndTime);
            planFinishTime = endTime.getTime();
        }else{
            //获取计划巡检结束时间
            String planEndTime = inspectionTaskDtos.get(0).getPlanEndTime();
            Date endTime = format.parse(planEndTime);
            planFinishTime = endTime.getTime();
        }
 
        //获取计划巡检开始时间
//        String planInsTime = inspectionTaskDtos.get(0).getPlanInsTime();
//        Date startTime = format.parse(planInsTime);
//        long planStartTime = startTime.getTime();
//        //获取计划巡检结束时间
//        String planEndTime = inspectionTaskDtos.get(0).getPlanEndTime();
//        Date endTime = format.parse(planEndTime);
//        long planFinishTime = endTime.getTime();
        //获取巡检点签到时间
        String inspectionTime = inspectionTaskDetailPoPo.getInspectionTime();
        Date inspectionDetailTime = format.parse(inspectionTime);
        long detailTime = inspectionDetailTime.getTime();
        if (detailTime < planStartTime) {  //如果巡检点签到时间小于巡检计划开始时间,签到状态就是早到
            inspectionTaskDetailPoPo.setInspectionState("40000");
        } else if (detailTime > planFinishTime) {  //如果巡检点签到时间大于巡检计划结束时间,签到状态就是迟到
            inspectionTaskDetailPoPo.setInspectionState("50000");
        } else {  //如果巡检点签到时间在巡检计划开始时间和巡检计划结束时间之间,签到状态就是正常
            inspectionTaskDetailPoPo.setInspectionState("60000");
        }
        super.insert(dataFlowContext, inspectionTaskDetailPoPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_INSPECTION_TASK_DETAIL);
    }
}