jiazx0107@163.com
2023-06-08 08cea428e888b6fdd2a3c3783e87e4f828385783
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package com.ld.igds.phone.service.impl;
 
import com.alibaba.fastjson.JSONObject;
import com.bstek.bdf2.core.model.DefaultUser;
import com.ld.igds.constant.OrderStatus;
import com.ld.igds.constant.OrderType;
import com.ld.igds.constant.RespCodeEnum;
import com.ld.igds.door.service.CoreDoorService;
import com.ld.igds.models.ApplyOrder;
import com.ld.igds.models.DoorConf;
import com.ld.igds.phone.constant.PhoneConstant;
import com.ld.igds.phone.dto.AuthUser;
import com.ld.igds.phone.dto.PhoneResponse;
import com.ld.igds.phone.mapper.PhoneCommonMapper;
import com.ld.igds.phone.param.ParamOrder;
import com.ld.igds.phone.param.PhoneRequest;
import com.ld.igds.phone.service.PhoneService;
import com.ld.igds.phone.util.PhoneRespUtil;
import com.ld.igds.util.ContextUtil;
import com.ld.igds.warn.service.CoreWarnService;
import com.ld.igds.work.CoreApplyOrderService;
import com.ld.igds.work.dto.ApplyOrderData;
import com.ld.igds.work.dto.ApplyOrderParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
 
/**
 * 工单模块-工单申请
 *
 * @author chen
 */
@Slf4j
@Service
public class ServiceImpl5702 implements PhoneService {
 
    @Autowired
    private CoreApplyOrderService applyOrderService;
    @Autowired
    private CoreDoorService coreDoorService;
    @Autowired
    private PhoneCommonMapper phoneCommonMapper;
    @Autowired
    private CoreWarnService warnSendService;
 
    @Override
    public String getInterfaceId() {
        return PhoneConstant.API_PHONE_5702;
    }
 
    @SuppressWarnings("unchecked")
    @Override
    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser)
            throws Exception {
 
        ParamOrder param = JSONObject.parseObject(req.getData().toString(), ParamOrder.class);
        if(param == null){
            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "请求参数为空!");
        }
 
        ApplyOrderData applyOrder = new ApplyOrderData();
        applyOrder.setId(ContextUtil.getTimeId());
        applyOrder.setType(param.getType());
        applyOrder.setCompanyId(authUser.getCompanyId());
        if(StringUtils.isNotEmpty(param.getDeptId())){
            applyOrder.setDeptId(param.getDeptId());
        }
        if(StringUtils.isNotEmpty(param.getDepotId())){
            applyOrder.setDepotId(param.getDepotId());
        }
        if(null != param.getStart()){
            applyOrder.setStart(param.getStart());
        }
        if(null != param.getEnd()){
            applyOrder.setEnd(param.getEnd());
        }
        applyOrder.setApplyUser(authUser.getUsername());
        applyOrder.setApplyUserName(authUser.getCname());
        applyOrder.setApplyTime(new Date());
 
        applyOrder.setStatus(OrderStatus.Status_10.getCode());
        List<DoorConf> list = coreDoorService.getDoorSysConf(applyOrder.getCompanyId(), applyOrder.getDeptId());
        if(list != null && list.size() > 0){
            DoorConf doorConf = list.get(0);
            String str = "";
            if(StringUtils.isNotEmpty(doorConf.getAudit1())){
                str += doorConf.getAudit1() + ",";
            }
            if(StringUtils.isNotEmpty(doorConf.getAudit2())){
                str += doorConf.getAudit2() + ",";
            }
            if(StringUtils.isNotEmpty(doorConf.getAudit3())){
                str += doorConf.getAudit3() + ",";
            }
            applyOrder.setConductUser(str);
        }
        //保存工单
        applyOrderService.addApplyOrder(applyOrder);
 
        try{
            //推送微信
            //判断处理人不为空,则进行微信推送
            if(StringUtils.isNotEmpty(applyOrder.getConductUser())){
                //申请推送微信
                this.pushApply(applyOrder);
            }
            return PhoneRespUtil.success(null, req);
        }catch (Exception e){
            return PhoneRespUtil.success(null, req);
        }
    }
 
    /**
     * 门禁申请推送
     * @param data
     */
    private void pushApply(ApplyOrder data){
        try{
            String conductUser = data.getConductUser();
            String[] users = conductUser.split(",");
            String phone = "";
            DefaultUser user;
            for (String username : users) {
                if(StringUtils.isNotEmpty(username)){
                    user = phoneCommonMapper.phoneGetUser(username);
                    if(null != user && StringUtils.isNotEmpty(user.getMobile())){
                        phone += user.getMobile() + ",";
                    }
                }
            }
 
            //判断推送人电话是否存在
            if(StringUtils.isEmpty(phone)){
                return;
            }
 
            //推送到微信
            ApplyOrderParam param = new ApplyOrderParam();
            param.setPhone(phone);
            param.setType(OrderType.getMsg(data.getType()) + "工单");
 
            param.setRecord("来新工单了");
            String info = "有新工单提交,请及时进行处理。" ;
 
            param.setId(data.getId());
            param.setInfo(info);
 
            //调用推送接口
            warnSendService.noticeOrder(param);
        }catch (Exception e){
            log.error("-----后台异常:{}-----", e);
        }
    }
}