|
@@ -3,6 +3,7 @@ package com.care.bms.service;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.lang.Dict;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
@@ -22,8 +23,12 @@ import com.care.common.vo.UserLogindConvertVO;
|
|
|
import com.care.common.vo.order.*;
|
|
|
import com.care.common.vo.outcall.CcCallResultVO;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.compress.utils.Lists;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.lang3.math.NumberUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -66,6 +71,8 @@ public class BmsEventOrderService {
|
|
|
private CareHouseService careHouseService;
|
|
|
@Resource
|
|
|
private SmsSendService smsSendService;
|
|
|
+ @Autowired
|
|
|
+ private BmsEventOrderService bmsEventOrderService;
|
|
|
|
|
|
@Resource
|
|
|
private BigScreenService bigScreenService;
|
|
@@ -88,12 +95,13 @@ public class BmsEventOrderService {
|
|
|
* @param pageReqVo
|
|
|
* @return
|
|
|
*/
|
|
|
- public IPage<EventOrderVO> listEvent(String orderStatus, String title, String olderName, UserLogindConvertVO loginUser, PageReqVO pageReqVo) {
|
|
|
+ public IPage<EventOrderVO> listEvent(String orderStatus, String title, String olderName, String chambId, String deviceCode, UserLogindConvertVO loginUser, PageReqVO pageReqVo) {
|
|
|
IPage<CareEventOrder> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
|
|
|
QueryWrapper<CareEventOrder> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.lambda().eq(StrUtil.isNotEmpty(orderStatus), CareEventOrder::getStatus, orderStatus)
|
|
|
// .like(StrUtil.isNotEmpty(title), CareEventOrder::getTitle, title)
|
|
|
.like(StrUtil.isNotEmpty(olderName), CareEventOrder::getOlderName, olderName)
|
|
|
+ .eq(StringUtils.isNotBlank(deviceCode), CareEventOrder::getDevCode, deviceCode)
|
|
|
.eq(CareEventOrder::getOrgId, loginUser.getOrgId())
|
|
|
.eq(loginUser.getStationId() != null, CareEventOrder::getStationId, loginUser.getStationId())
|
|
|
.orderByDesc(CareEventOrder::getCreateTime);
|
|
@@ -101,6 +109,9 @@ public class BmsEventOrderService {
|
|
|
if (StrUtil.isNotEmpty(title)) {
|
|
|
queryWrapper.lambda().and(wrapper -> wrapper.like(CareEventOrder::getTitle, title).or().eq(CareEventOrder::getDevCode, title));
|
|
|
}
|
|
|
+ if (StringUtils.isNotBlank(chambId)) {
|
|
|
+ queryWrapper.apply("(select chamb_id from care_event_order_chamb where care_event_order_chamb.order_id = care_event_order.id) = " + chambId);
|
|
|
+ }
|
|
|
|
|
|
IPage<CareEventOrder> pageRes = this.careEventOrderService.page(page, queryWrapper);
|
|
|
IPage<EventOrderVO> results = new Page<>(pageRes.getCurrent(), pageRes.getSize(), pageRes.getTotal());
|
|
@@ -117,6 +128,71 @@ public class BmsEventOrderService {
|
|
|
}
|
|
|
return results;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 工单查询
|
|
|
+ *
|
|
|
+ * @param orderStatus
|
|
|
+ * @param chambId
|
|
|
+ * @param loginUser
|
|
|
+ * @param pageReqVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public IPage<EventOrderVO> listEventByChamb(String orderStatus, String chambId, UserLogindConvertVO loginUser, PageReqVO pageReqVo) {
|
|
|
+ IPage<CareEventOrder> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
|
|
|
+ QueryWrapper<CareEventOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(StrUtil.isNotEmpty(orderStatus), CareEventOrder::getStatus, orderStatus)
|
|
|
+ .eq(CareEventOrder::getOrgId, loginUser.getOrgId())
|
|
|
+ .eq(loginUser.getStationId() != null, CareEventOrder::getStationId, loginUser.getStationId())
|
|
|
+ .orderByDesc(CareEventOrder::getCreateTime);
|
|
|
+ queryWrapper.apply("(select chamb_id from care_event_order_chamb where care_event_order_chamb.order_id = care_event_order.id) = " + chambId);
|
|
|
+ IPage<CareEventOrder> pageRes = this.careEventOrderService.page(page, queryWrapper);
|
|
|
+ IPage<EventOrderVO> results = new Page<>(pageRes.getCurrent(), pageRes.getSize(), pageRes.getTotal());
|
|
|
+ if (CollUtil.isNotEmpty(pageRes.getRecords())) {
|
|
|
+ List<EventOrderVO> list = new ArrayList<>();
|
|
|
+ pageRes.getRecords().forEach(item -> {
|
|
|
+ EventOrderVO resVO = new EventOrderVO();
|
|
|
+ BeanUtils.copyProperties(item, resVO);
|
|
|
+ resVO.setOrderTypeName(OrderTypeEnum.getCodeToName(item.getOrderType()));
|
|
|
+ resVO.setStatusName(OrderStatusEnum.getCodeToName(item.getStatus()));
|
|
|
+ list.add(resVO);
|
|
|
+ });
|
|
|
+ results.setRecords(list);
|
|
|
+ }
|
|
|
+ return results;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 工单查询
|
|
|
+ *
|
|
|
+ * @param orderStatus
|
|
|
+ * @param deviceCode
|
|
|
+ * @param loginUser
|
|
|
+ * @param pageReqVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public IPage<EventOrderVO> listEventByDevice(String orderStatus, String deviceCode, UserLogindConvertVO loginUser, PageReqVO pageReqVo) {
|
|
|
+ IPage<CareEventOrder> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
|
|
|
+ QueryWrapper<CareEventOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(StrUtil.isNotEmpty(orderStatus), CareEventOrder::getStatus, orderStatus)
|
|
|
+ .eq(CareEventOrder::getOrgId, loginUser.getOrgId())
|
|
|
+ .eq(StringUtils.isNotBlank(deviceCode), CareEventOrder::getDevCode, deviceCode)
|
|
|
+ .eq(loginUser.getStationId() != null, CareEventOrder::getStationId, loginUser.getStationId())
|
|
|
+ .orderByDesc(CareEventOrder::getCreateTime);
|
|
|
+ IPage<CareEventOrder> pageRes = this.careEventOrderService.page(page, queryWrapper);
|
|
|
+ IPage<EventOrderVO> results = new Page<>(pageRes.getCurrent(), pageRes.getSize(), pageRes.getTotal());
|
|
|
+ if (CollUtil.isNotEmpty(pageRes.getRecords())) {
|
|
|
+ List<EventOrderVO> list = new ArrayList<>();
|
|
|
+ pageRes.getRecords().forEach(item -> {
|
|
|
+ EventOrderVO resVO = new EventOrderVO();
|
|
|
+ BeanUtils.copyProperties(item, resVO);
|
|
|
+ resVO.setOrderTypeName(OrderTypeEnum.getCodeToName(item.getOrderType()));
|
|
|
+ resVO.setStatusName(OrderStatusEnum.getCodeToName(item.getStatus()));
|
|
|
+ list.add(resVO);
|
|
|
+ });
|
|
|
+ results.setRecords(list);
|
|
|
+ }
|
|
|
+ return results;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 工单查询
|
|
@@ -516,6 +592,53 @@ public class BmsEventOrderService {
|
|
|
this.bigScreenService.pushRtEventFlag(order.getOrgId(), order.getStationId(), orderId.toString(), "bigscreenRefresh");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新工单状态
|
|
|
+ *
|
|
|
+ * @param orderIds
|
|
|
+ * @param loginUser
|
|
|
+ */
|
|
|
+ public boolean completeByIds(List orderIds, UserLogindConvertVO loginUser) {
|
|
|
+ if (CollectionUtils.isEmpty(orderIds)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ List<Dict> pushRecords = Lists.newArrayList();
|
|
|
+ for (Object orderId : orderIds) {
|
|
|
+ CareEventOrder order = this.careEventOrderService.getById(NumberUtils.toLong(Objects.toString(orderId)));
|
|
|
+ UpdateWrapper<CareEventOrder> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.lambda().eq(CareEventOrder::getId, orderId)
|
|
|
+ .set(CareEventOrder::getStatus, OrderStatusEnum.COMPLETE.getValue())
|
|
|
+ .set(CareEventOrder::getModifyTime, DateUtil.date());
|
|
|
+ this.careEventOrderService.update(updateWrapper);
|
|
|
+ CareEventOrderHandleHis log = new CareEventOrderHandleHis();
|
|
|
+ log.setOrgId(order.getOrgId());
|
|
|
+ log.setStationId(order.getStationId());
|
|
|
+ log.setOrderId(order.getId());
|
|
|
+ log.setLogType(LogTypeEnum.CLOSE.getValue());
|
|
|
+ log.setLogObjectId(loginUser.getId());
|
|
|
+ log.setLogObjectName(loginUser.getName());
|
|
|
+ log.setLogResult("完成工单");
|
|
|
+ log.setOpUserRole(UserRoleEnum.SEAT.getValue());
|
|
|
+ log.setCreateTime(DateUtil.date());
|
|
|
+ log.setRelationTypeDesc(UserRoleEnum.getCodeToName(loginUser.getRole()));
|
|
|
+ boolean saved = this.careEventOrderHandleHisService.save(log);
|
|
|
+ if (!saved) {
|
|
|
+ throw new BDException("事件归档出现错误, 请稍后重试");
|
|
|
+ }
|
|
|
+ pushRecords.add(Dict.create()
|
|
|
+ .set("orgId", order.getOrgId())
|
|
|
+ .set("stationId", order.getStationId())
|
|
|
+ .set("orderId", orderId));
|
|
|
+ }
|
|
|
+ for (Dict dict : pushRecords) {
|
|
|
+ this.bigScreenService.pushRtEventFlag(dict.getLong("orgId"), dict.getLong("stationId"), dict.getStr("orderId"), "bigscreenRefresh");
|
|
|
+ }
|
|
|
+ for (Dict dict : pushRecords) {
|
|
|
+ this.bmsEventOrderService.sendSmsToMemberAndLianxiren(dict.getLong("orderId"),"工单完成");
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取钥匙请求历史
|
|
|
*
|
|
@@ -860,8 +983,8 @@ public class BmsEventOrderService {
|
|
|
* @param loginUser
|
|
|
* @return
|
|
|
*/
|
|
|
- public EventStaVO statOrder(UserLogindConvertVO loginUser) {
|
|
|
- return this.careEventOrderService.statOrder(loginUser.getOrgId(),null);
|
|
|
+ public EventStaVO statOrder(UserLogindConvertVO loginUser, Long chambId, String deviceCode) {
|
|
|
+ return this.careEventOrderService.statOrder(loginUser.getOrgId(),null, chambId, deviceCode);
|
|
|
}
|
|
|
|
|
|
/**
|