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);
|
}
|
}
|
}
|