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 execute(PhoneRequest 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 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); } } }