zhubaomin
2024-11-13 7d387aa126262ee12068f5b31aad661501edd286
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
package com.dy.pipIrrApp.issue;
 
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrApp.issue.dto.DtoDeleteParam;
import com.dy.pipIrrApp.issue.qo.QoIssueReport;
import com.dy.pipIrrGlobal.daoOp.OpeIssueReportMapper;
import com.dy.pipIrrGlobal.daoOp.OpeReportReplyMapper;
import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport;
import com.dy.pipIrrGlobal.pojoOp.OpeReportReply;
import com.dy.pipIrrGlobal.voOp.VoIssueReport;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.Date;
import java.util.List;
import java.util.Map;
 
/**
 * @author ZhuBaoMin
 * @date 2024-11-11 16:29
 * @LastEditTime 2024-11-11 16:29
 * @Description
 */
 
@Slf4j
@Service
public class IssueSv {
    @Autowired
    private OpeIssueReportMapper opeIssueReportMapper;
 
    @Autowired
    private OpeReportReplyMapper opeReportReplyMapper;
 
    /**
     * 添加巡检员问题上报
     * @param po
     * @return
     */
    public String addIssueReport(OpeIssueReport po) {
        po.setReportTime(new Date());
        po.setState((byte)1);
        opeIssueReportMapper.insert(po);
        Long issueReportId = po.getId();
        if(issueReportId == null) {
            return "巡检员问题上报失败";
        }
 
        return "success";
    }
 
    /**
     * 根据条件获取巡检员问题上报记录
     * @param queryVo
     * @return
     */
    public QueryResultVo<List<VoIssueReport>> getIssueReports(QoIssueReport queryVo) {
        //完善查询充值记录的起止时间
        String timeStart = queryVo.getTimeStart();
        String timeStop = queryVo.getTimeStop();
        if (timeStart != null) {
            timeStart = timeStart + " 00:00:00";
            queryVo.setTimeStart(timeStart);
        }
        if (timeStop != null) {
            timeStop = timeStop + " 23:59:59";
            queryVo.setTimeStop(timeStop);
        }
 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
 
        Long itemTotal = opeIssueReportMapper.getIssueReportsCount(params);
        QueryResultVo<List<VoIssueReport>> rsVo = new QueryResultVo<>();
 
        rsVo.pageSize = queryVo.pageSize;
        rsVo.pageCurr = queryVo.pageCurr;
 
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = opeIssueReportMapper.getIssueReports(params);
        return rsVo;
    }
 
    /**
     * 逻辑删除巡检员问题上报,删除前先判断要删除的上报是否存在
     * @param po
     * @return
     */
    public String deleteIssueReport(DtoDeleteParam po) {
        // 根据上报ID及巡检员ID获取未删除的上报,删除上报判断使用
        OpeIssueReport opeIssueReport = opeIssueReportMapper.getReport(po.getIssueReportId(), po.getInspectorId());
        if(opeIssueReport == null) {
            return "您要删除的问题上报不存在";
        }
 
        if(opeIssueReportMapper.deleteIssueReport(po.getIssueReportId()) == 0) {
            return "巡检员问题上报删除失败";
        }
 
        return "success";
    }
 
    /**
     * 添加巡检员问题上报回复
     *  添加问题上报回复记录
     *  问题上报状态改为已回复
     * @param po
     * @return
     */
    public String replyReport(OpeReportReply po) {
        po.setReplyTime(new Date());
        opeReportReplyMapper.insert(po);
        if(po.getId() == 0) {
            return "回复记录添加失败";
        }
 
        OpeIssueReport issueReport = new OpeIssueReport();
        issueReport.setId(po.getReportId());
        issueReport.setState((byte)2);
        Integer rec = opeIssueReportMapper.updateByPrimaryKeySelective(issueReport);
        if(rec == 0) {
            return "巡检员问题上报状态修改失败";
        }
        return "sucess";
    }
 
}