wuxw
2024-01-02 e42df6bfd9cb5d2182c1082fbad5117543bebd53
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
package com.java110.job.adapt.oa;
 
import com.alibaba.fastjson.JSONObject;
import com.java110.core.log.LoggerFactory;
import com.java110.dto.system.Business;
import com.java110.dto.workPool.WorkPoolDto;
import com.java110.dto.workTask.WorkTaskDto;
import com.java110.dto.workType.WorkTypeDto;
import com.java110.intf.oa.IWorkPoolV1InnerServiceSMO;
import com.java110.intf.oa.IWorkTaskV1InnerServiceSMO;
import com.java110.intf.oa.IWorkTypeV1InnerServiceSMO;
import com.java110.job.adapt.DatabusAdaptImpl;
import com.java110.job.msgNotify.IMsgNotify;
import com.java110.job.msgNotify.MsgNotifyFactory;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.MappingConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ListUtil;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import java.text.ParseException;
import java.util.List;
 
@Component("oaWorkTaskToStaffAdapt")
public class OaWorkTaskToStaffAdapt extends DatabusAdaptImpl {
    private static Logger logger = LoggerFactory.getLogger(OaWorkTaskToStaffAdapt.class);
 
    @Autowired
    private IWorkTaskV1InnerServiceSMO workTaskV1InnerServiceSMOImpl;
 
    @Autowired
    private IWorkPoolV1InnerServiceSMO workPoolV1InnerServiceSMOImpl;
 
    @Autowired
    private IWorkTypeV1InnerServiceSMO workTypeV1InnerServiceSMOImpl;
 
    @Override
    public void execute(Business business, List<Business> businesses) throws ParseException {
        JSONObject data = business.getData();
 
        Assert.hasKeyAndValue(data, "taskId", "未包含任务ID");
 
        WorkTaskDto workTaskDto = new WorkTaskDto();
        workTaskDto.setTaskId(data.getString("taskId"));
        List<WorkTaskDto> workTaskDtos = workTaskV1InnerServiceSMOImpl.queryWorkTasks(workTaskDto);
 
        if (ListUtil.isNull(workTaskDtos)) {
            return;
        }
        workTaskDto = workTaskDtos.get(0);
 
        WorkPoolDto workPoolDto = new WorkPoolDto();
        workPoolDto.setWorkId(workTaskDto.getWorkId());
        List<WorkPoolDto> workPoolDtos = workPoolV1InnerServiceSMOImpl.queryWorkPools(workPoolDto);
 
        if (ListUtil.isNull(workPoolDtos)) {
            return;
        }
 
        WorkTypeDto workTypeDto = new WorkTypeDto();
        workTypeDto.setWtId(workPoolDtos.get(0).getWtId());
        List<WorkTypeDto> workTypeDtos = workTypeV1InnerServiceSMOImpl.queryWorkTypes(workTypeDto);
        if (ListUtil.isNull(workTypeDtos)) {
            return;
        }
 
        if (WorkTaskDto.STATE_WAIT.equals(workTaskDto)) {
            todoStaff(workTaskDto, workPoolDtos.get(0), workTypeDtos.get(0));
        } else if (WorkTaskDto.STATE_COMPLETE.equals(workTaskDto)) {
            todoStartStaff(workTaskDto, workPoolDtos.get(0), workTypeDtos.get(0));
        }
    }
 
    /**
     * 通知
     *
     * @param workTaskDto
     * @param workPoolDto
     * @param workTypeDto
     */
    private void todoStartStaff(WorkTaskDto workTaskDto, WorkPoolDto workPoolDto, WorkTypeDto workTypeDto) {
 
        //todo 给申请人发消息
        JSONObject content = new JSONObject();
        content.put("flowName", workPoolDto.getWorkName());
        content.put("staffName", "处理完成("+workTaskDto.getStaffName()+")");
        content.put("orderId", workPoolDto.getWorkId());
        String wechatUrl = MappingCache.getValue(MappingConstant.URL_DOMAIN, "STAFF_WECHAT_URL");
        content.put("url", wechatUrl);
 
        if(WorkTypeDto.SMS_WAY_WECHAT.equals(workTypeDto.getSmsWay())){
            IMsgNotify msgNotify = MsgNotifyFactory.getMsgNotify(MsgNotifyFactory.NOTIFY_WAY_WECHAT);
            msgNotify.sendOaCreateStaffMsg(workTypeDto.getCommunityId(), workTaskDto.getCreateUserId(), content);
        }else if(WorkTypeDto.SMS_WAY_ALI.equals(workTypeDto.getSmsWay())){
            IMsgNotify msgNotify = MsgNotifyFactory.getMsgNotify(MsgNotifyFactory.NOTIFY_WAY_ALI);
            msgNotify.sendOaCreateStaffMsg(workTypeDto.getCommunityId(), workTaskDto.getCreateUserId(), content);
        }
    }
 
    /**
     * 派单或转单
     *
     * @param workTaskDto
     * @param workPoolDto
     * @param workTypeDto
     */
    private void todoStaff(WorkTaskDto workTaskDto, WorkPoolDto workPoolDto, WorkTypeDto workTypeDto) {
 
        JSONObject content = new JSONObject();
        content.put("flowName", workPoolDto.getWorkName());
        content.put("create_user_name", workTaskDto.getStaffName());
        content.put("create_time", workTaskDto.getCreateTime());
        content.put("date", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
        content.put("orderId", workPoolDto.getWorkId());
 
        String wechatUrl = MappingCache.getValue(MappingConstant.URL_DOMAIN, "STAFF_WECHAT_URL");
        content.put("url", wechatUrl);
        if(WorkTypeDto.SMS_WAY_WECHAT.equals(workTypeDto.getSmsWay())){
            IMsgNotify msgNotify = MsgNotifyFactory.getMsgNotify(MsgNotifyFactory.NOTIFY_WAY_WECHAT);
            msgNotify.sendOaDistributeMsg(workTypeDto.getCommunityId(), workTaskDto.getStaffId(), content);
        }else if(WorkTypeDto.SMS_WAY_ALI.equals(workTypeDto.getSmsWay())){
            IMsgNotify msgNotify = MsgNotifyFactory.getMsgNotify(MsgNotifyFactory.NOTIFY_WAY_ALI);
            msgNotify.sendOaDistributeMsg(workTypeDto.getCommunityId(), workTaskDto.getStaffId(), content);
        }
    }
}