|
@@ -0,0 +1,159 @@
|
|
|
|
+package com.huimv.wine.ws.admin;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.alibaba.fastjson.JSONPObject;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
+import com.huimv.wine.common.EventWsErrUtil;
|
|
|
|
+import com.huimv.wine.entity.Manager;
|
|
|
|
+import com.huimv.wine.entity.Warn;
|
|
|
|
+import com.huimv.wine.entity.vo.*;
|
|
|
|
+import com.huimv.wine.mapper.WarnMapper;
|
|
|
|
+import com.huimv.wine.mapper.WineMapper;
|
|
|
|
+import com.huimv.wine.mapper.WorkerMapper;
|
|
|
|
+import com.huimv.wine.utils.Result;
|
|
|
|
+import com.huimv.wine.utils.SpringContextUtil;
|
|
|
|
+import com.huimv.wine.utils.WebsocketManagerUtil;
|
|
|
|
+import com.huimv.wine.utils.WebsocketWorkerUtil;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
+
|
|
|
|
+import javax.websocket.Session;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+@Component
|
|
|
|
+public class AdminWine {
|
|
|
|
+
|
|
|
|
+ public void handle(JSONObject message, Session session, Manager manager) {
|
|
|
|
+ String event = message.getString("event");
|
|
|
|
+ JSONObject data = message.getJSONObject("data");
|
|
|
|
+ switch (event) {
|
|
|
|
+ case "adminWineChangeQuery":
|
|
|
|
+ query(session, manager, data);
|
|
|
|
+ break;
|
|
|
|
+ case "adminWineChangeQueryWine":
|
|
|
|
+ queryWine(session, message.getString("data"));
|
|
|
|
+ break;
|
|
|
|
+ case "adminWineChangeQueryWorker":
|
|
|
|
+ queryWorker(session, manager, message.getString("data"));
|
|
|
|
+ break;
|
|
|
|
+ case "adminWineChangeAssign":
|
|
|
|
+ assign(session, manager, data);
|
|
|
|
+ break;
|
|
|
|
+ case "adminWineDeviceFix":
|
|
|
|
+ deviceFix(session, manager, data);
|
|
|
|
+ break;
|
|
|
|
+ case "adminWineHistoryQueryWorker":
|
|
|
|
+ historyQueryWorker(session, manager, data);
|
|
|
|
+ break;
|
|
|
|
+ case "adminWineHistoryQueryOrder":
|
|
|
|
+ queryOrder(session, manager, data);
|
|
|
|
+ break;
|
|
|
|
+ case "adminWineHistoryOrderUpdate":
|
|
|
|
+ orderUpdate(session, data);
|
|
|
|
+ break;
|
|
|
|
+ case "adminWineHistoryOrderDelete":
|
|
|
|
+ orderDelete(session, data);
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ WsEvent wsEvent = EventWsErrUtil.getWsErr("unrecognized event");
|
|
|
|
+ WebsocketManagerUtil.sendMessage(session, wsEvent);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void query(Session session, Manager manager, JSONObject data) {
|
|
|
|
+ WarnMapper warnMapper = SpringContextUtil.getBean(WarnMapper.class);
|
|
|
|
+ AdminWineChangeQueryParam adminWineChangeQueryParam = JSONObject.toJavaObject(data,AdminWineChangeQueryParam.class);
|
|
|
|
+ Page<WarnQueryResult> page = new Page<>(adminWineChangeQueryParam.getPage(),adminWineChangeQueryParam.getLimit());
|
|
|
|
+ String like = "%s"+adminWineChangeQueryParam.getCond()+"%s";
|
|
|
|
+ Page<WarnQueryResult> warnQueryResultPage = warnMapper.warnQuery(page,manager.getId(),adminWineChangeQueryParam.getDeal(),like);
|
|
|
|
+ Page<WarnQueryResultVo> warnQueryResultVoPage = new Page<>();
|
|
|
|
+ List warnQueryResultVoList = new ArrayList<>();
|
|
|
|
+ for (WarnQueryResult record : warnQueryResultPage.getRecords()) {
|
|
|
|
+ WarnQueryResultVo warnQueryResultVo = new WarnQueryResultVo();
|
|
|
|
+ BeanUtil.copyProperties(record,warnQueryResultVo);
|
|
|
|
+ List<WineWithIdNameRemainVo> olds = new ArrayList();
|
|
|
|
+
|
|
|
|
+ olds.add(createWineWithIdNameRemain(record.getW1id(),record.getW1name(),record.getW1remain()));
|
|
|
|
+ olds.add(createWineWithIdNameRemain(record.getW2id(),record.getW2name(),record.getW2remain()));
|
|
|
|
+ olds.add(createWineWithIdNameRemain(record.getW3id(),record.getW3name(),record.getW3remain()));
|
|
|
|
+ olds.add(createWineWithIdNameRemain(record.getW4id(),record.getW4name(),record.getW4remain()));
|
|
|
|
+
|
|
|
|
+ warnQueryResultVo.setOld(olds);
|
|
|
|
+ warnQueryResultVoList.add(warnQueryResultVo);
|
|
|
|
+ }
|
|
|
|
+ warnQueryResultVoPage.setRecords(warnQueryResultVoList);
|
|
|
|
+ warnQueryResultVoPage.setCurrent(warnQueryResultPage.getCurrent());
|
|
|
|
+ warnQueryResultVoPage.setTotal(warnQueryResultPage.getTotal());
|
|
|
|
+ warnQueryResultVoPage.setCountId(warnQueryResultPage.getCountId());
|
|
|
|
+
|
|
|
|
+ WsEvent wsEvent = new WsEvent("adminWineChangeQueryRes",Result.success(warnQueryResultVoPage));
|
|
|
|
+ WebsocketWorkerUtil.sendMessage(session,wsEvent);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void queryWine(Session session, String cond) {
|
|
|
|
+ WineMapper wineMapper = SpringContextUtil.getBean(WineMapper.class);
|
|
|
|
+ String like = "%"+cond+"%s";
|
|
|
|
+ List<WineWithIdNameVo> wineWithIdNameVos = wineMapper.WinesQueryByIdOrName(like);
|
|
|
|
+ WsEvent wsEvent = new WsEvent("adminWineChangeQueryWineRes",Result.success(wineWithIdNameVos));
|
|
|
|
+ WebsocketWorkerUtil.sendMessage(session,wsEvent);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void queryWorker(Session session, Manager manager, String cond) {
|
|
|
|
+ WorkerMapper workerMapper = SpringContextUtil.getBean(WorkerMapper.class);
|
|
|
|
+ String like = "%"+cond+"%s";
|
|
|
|
+ List<WorkerWithIdPhoneName> workerWithIdPhoneNames = workerMapper.WorkersQueryByPhoneOrName(manager.getId(),like);
|
|
|
|
+ WsEvent wsEvent = new WsEvent("adminWineChangeQueryWorkerRes",Result.success(workerWithIdPhoneNames));
|
|
|
|
+ WebsocketWorkerUtil.sendMessage(session,wsEvent);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void assign(Session session, Manager manager, JSONObject data) {
|
|
|
|
+ WarnMapper warnMapper = SpringContextUtil.getBean(WarnMapper.class);
|
|
|
|
+
|
|
|
|
+ AdminWineAssignParam adminWineAssignParam = JSONObject.toJavaObject(data, AdminWineAssignParam.class);
|
|
|
|
+ if (ObjectUtil.isEmpty(adminWineAssignParam.getWorker())){
|
|
|
|
+ WsEvent wsEvent = new WsEvent("adminWineChangeAssignRes",Result.fail("请选择上酒工"));
|
|
|
|
+ WebsocketWorkerUtil.sendMessage(session,wsEvent);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ Warn warn = warnMapper.selectById(adminWineAssignParam.getId());
|
|
|
|
+ if (ObjectUtil.isEmpty(warn)){
|
|
|
|
+ WsEvent wsEvent = new WsEvent("adminWineChangeAssignRes",Result.fail("报警不存在"));
|
|
|
|
+ WebsocketWorkerUtil.sendMessage(session,wsEvent);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void deviceFix(Session session, Manager manager, JSONObject data) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void historyQueryWorker(Session session, Manager manager, JSONObject data) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void queryOrder(Session session, Manager manager, JSONObject data) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void orderUpdate(Session session, JSONObject data) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void orderDelete(Session session, JSONObject data) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private static WineWithIdNameRemainVo createWineWithIdNameRemain(int id, String name, int remain) {
|
|
|
|
+ WineWithIdNameRemainVo wine = new WineWithIdNameRemainVo();
|
|
|
|
+ wine.setId(id);
|
|
|
|
+ wine.setName(name);
|
|
|
|
+ wine.setRemain(remain);
|
|
|
|
+ return wine;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|