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.dto.DoorAccessParam;
|
import com.ld.igds.door.service.CoreDoorService;
|
import com.ld.igds.models.ApplyOrder;
|
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;
|
|
/**
|
* 工单模块-工单审核
|
*
|
* @author chen
|
*/
|
@Slf4j
|
@Service
|
public class ServiceImpl5704 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_5704;
|
}
|
|
@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 || StringUtils.isEmpty(param.getId()) || StringUtils.isEmpty(param.getStatus())){
|
return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "参数有误,请重试!");
|
}
|
|
//审核工单更新
|
ApplyOrderData data = new ApplyOrderData();
|
data.setId(param.getId());
|
data.setStatus(param.getStatus());
|
data.setAuditTime(new Date());
|
data.setAuditUser(authUser.getUsername());
|
data.setAuditUserName(authUser.getCname());
|
applyOrderService.updateApplyOrder(data);
|
|
//判断审核状态,通过或者拒绝需要进行下一步操作
|
if(OrderStatus.Status_20.getCode().equals(param.getStatus()) ||
|
OrderStatus.Status_30.getCode().equals(param.getStatus())){
|
//查询工单信息,判断是否是门禁类型
|
ApplyOrderParam orderParam = new ApplyOrderParam();
|
orderParam.setId(param.getId());
|
|
ApplyOrderData orderData = applyOrderService.getApplyOrder(orderParam);
|
if(OrderType.Type_10.getCode().equals(orderData.getType())){
|
DoorAccessParam param1;
|
if(OrderStatus.Status_20.getCode().equals(orderData.getStatus())){
|
//通过,进行门禁权限码生成并推送
|
param1 = new DoorAccessParam();
|
param1.setId(ContextUtil.getTimeId());
|
param1.setCompanyId(orderData.getCompanyId());
|
param1.setDeptId(orderData.getDeptId());
|
param1.setDepotId(orderData.getDepotId());
|
param1.setUser(orderData.getApplyUser());
|
String newToken = coreDoorService.getNewToken(null);
|
param1.setToken(newToken);
|
param1.setStart(orderData.getStart());
|
param1.setEnd(orderData.getEnd());
|
coreDoorService.addDoorAccess(param1);
|
|
//审核推送微信
|
this.pushAudit(orderData, param1.getToken());
|
}
|
|
if(OrderStatus.Status_30.getCode().equals(orderData.getStatus())){
|
//拒绝,门禁权限码记录进行删除
|
param1 = new DoorAccessParam();
|
param1.setCompanyId(orderData.getCompanyId());
|
param1.setDeptId(orderData.getDeptId());
|
param1.setDepotId(orderData.getDepotId());
|
param1.setUser(orderData.getApplyUserName());
|
coreDoorService.delDoorAccess(param1);
|
}
|
}
|
}
|
|
return PhoneRespUtil.success(null, req);
|
}
|
|
/**
|
* 门禁审核推送
|
* @param data
|
*/
|
private void pushAudit(ApplyOrder data, String token){
|
|
try{
|
//推送微信
|
DefaultUser user = phoneCommonMapper.phoneGetUser(data.getApplyUser());
|
if(null == user || StringUtils.isEmpty(user.getMobile())){
|
return;
|
}
|
ApplyOrderParam applyOrderParam = new ApplyOrderParam();
|
applyOrderParam.setPhone(user.getMobile());
|
applyOrderParam.setRecord("您的工单审核已通过");
|
applyOrderParam.setId(data.getId());
|
applyOrderParam.setType(OrderType.getMsg(data.getType()) + "权限码=" + token);
|
String info = "您申请的工单已通过,注意查看!" ;
|
applyOrderParam.setInfo(info);
|
|
//调用推送接口
|
warnSendService.noticeOrder(applyOrderParam);
|
}catch (Exception e){
|
log.error("-----后台异常:{}-----", e);
|
}
|
}
|
}
|