Newspaper 1 年間 前
コミット
4b24a5c82c

+ 11 - 0
src/main/java/com/huimv/wine/entity/vo/AdminWineAssignParam.java

@@ -0,0 +1,11 @@
+package com.huimv.wine.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class AdminWineAssignParam {
+    private Integer id;
+    private String worker;
+    private WineWithIdRemainVo[] old;
+    private WineWithIdRemainVo[] now;
+}

+ 9 - 0
src/main/java/com/huimv/wine/entity/vo/AdminWineChangeQueryParam.java

@@ -0,0 +1,9 @@
+package com.huimv.wine.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class AdminWineChangeQueryParam {
+    private String cond;
+    private Integer deal,page,limit;
+}

+ 31 - 0
src/main/java/com/huimv/wine/entity/vo/WarnQueryResult.java

@@ -0,0 +1,31 @@
+package com.huimv.wine.entity.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class WarnQueryResult {
+    private Integer id;
+    private String device;
+    private LocalDateTime time;
+    private Boolean deal;
+    private String addr;
+
+    private Integer w1id;
+    private String w1name;
+    private Integer w1remain;
+
+    private Integer w2id;
+    private String w2name;
+    private Integer w2remain;
+
+    private Integer w3id;
+    private String w3name;
+    private Integer w3remain;
+
+    private Integer w4id;
+    private String w4name;
+    private Integer w4remain;
+}

+ 16 - 0
src/main/java/com/huimv/wine/entity/vo/WarnQueryResultVo.java

@@ -0,0 +1,16 @@
+package com.huimv.wine.entity.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class WarnQueryResultVo {
+    private Integer id;
+    private String device;
+    private LocalDateTime time;
+    private Boolean deal;
+    private String addr;
+    private List<WineWithIdNameRemainVo> old;
+}

+ 9 - 0
src/main/java/com/huimv/wine/entity/vo/WineWithIdNameVo.java

@@ -0,0 +1,9 @@
+package com.huimv.wine.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class WineWithIdNameVo {
+    private Integer id;
+    private String name;
+}

+ 8 - 0
src/main/java/com/huimv/wine/entity/vo/WorkerWithIdPhoneName.java

@@ -0,0 +1,8 @@
+package com.huimv.wine.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class WorkerWithIdPhoneName {
+    private String id,phone,name;
+}

+ 3 - 0
src/main/java/com/huimv/wine/mapper/WarnMapper.java

@@ -1,7 +1,9 @@
 package com.huimv.wine.mapper;
 package com.huimv.wine.mapper;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.wine.entity.Warn;
 import com.huimv.wine.entity.Warn;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.wine.entity.vo.WarnQueryResult;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
  */
 public interface WarnMapper extends BaseMapper<Warn> {
 public interface WarnMapper extends BaseMapper<Warn> {
 
 
+    Page<WarnQueryResult> warnQuery(Page<WarnQueryResult> page, String managerId, Integer deal, String like);
 }
 }

+ 5 - 0
src/main/java/com/huimv/wine/mapper/WineMapper.java

@@ -2,8 +2,11 @@ package com.huimv.wine.mapper;
 
 
 import com.huimv.wine.entity.Wine;
 import com.huimv.wine.entity.Wine;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.wine.entity.vo.WineWithIdNameVo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 酒 Mapper 接口
  * 酒 Mapper 接口
@@ -15,4 +18,6 @@ import org.apache.ibatis.annotations.Param;
 public interface WineMapper extends BaseMapper<Wine> {
 public interface WineMapper extends BaseMapper<Wine> {
 
 
     Wine selectWineById(@Param(value = "id")Integer id);
     Wine selectWineById(@Param(value = "id")Integer id);
+
+    List<WineWithIdNameVo> WinesQueryByIdOrName(String like);
 }
 }

+ 3 - 0
src/main/java/com/huimv/wine/mapper/WorkerMapper.java

@@ -5,6 +5,7 @@ import com.huimv.wine.entity.Worker;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.wine.entity.vo.RankAdminsVo;
 import com.huimv.wine.entity.vo.RankAdminsVo;
 import com.huimv.wine.entity.vo.WorkerQueryResult;
 import com.huimv.wine.entity.vo.WorkerQueryResult;
+import com.huimv.wine.entity.vo.WorkerWithIdPhoneName;
 import com.huimv.wine.entity.vo.workQueryResVo;
 import com.huimv.wine.entity.vo.workQueryResVo;
 
 
 import java.util.List;
 import java.util.List;
@@ -28,4 +29,6 @@ public interface WorkerMapper extends BaseMapper<Worker> {
     Page<workQueryResVo> WorkerQuery(Page<workQueryResVo> page,String cond);
     Page<workQueryResVo> WorkerQuery(Page<workQueryResVo> page,String cond);
 
 
     Page<workQueryResVo> WorkerQuery2(Page<workQueryResVo> page,String manager,String cond);
     Page<workQueryResVo> WorkerQuery2(Page<workQueryResVo> page,String manager,String cond);
+
+    List<WorkerWithIdPhoneName> WorkersQueryByPhoneOrName(String managerId,String like);
 }
 }

+ 3 - 1
src/main/java/com/huimv/wine/ws/ManagerController.java

@@ -12,10 +12,10 @@ import com.huimv.wine.mapper.DeviceMapper;
 import com.huimv.wine.mapper.ManagerMapper;
 import com.huimv.wine.mapper.ManagerMapper;
 import com.huimv.wine.mapper.WorkerMapper;
 import com.huimv.wine.mapper.WorkerMapper;
 import com.huimv.wine.utils.*;
 import com.huimv.wine.utils.*;
+import com.huimv.wine.ws.admin.AdminWine;
 import com.huimv.wine.ws.su.SuperDashboard;
 import com.huimv.wine.ws.su.SuperDashboard;
 import com.huimv.wine.ws.su.SuperOrder;
 import com.huimv.wine.ws.su.SuperOrder;
 import com.huimv.wine.ws.su.SuperRole;
 import com.huimv.wine.ws.su.SuperRole;
-import jdk.internal.joptsimple.internal.Strings;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
@@ -122,6 +122,8 @@ public class ManagerController extends TextWebSocketHandler {
             } else if (event.startsWith("adminWorker")) {
             } else if (event.startsWith("adminWorker")) {
             } else if (event.startsWith("adminTrade")) {
             } else if (event.startsWith("adminTrade")) {
             } else if (event.startsWith("adminWine")) {
             } else if (event.startsWith("adminWine")) {
+                AdminWine adminWine = SpringContextUtil.getBean(AdminWine.class);
+                adminWine.handle(jsonObject, session, manager);
             } else {
             } else {
 
 
             }
             }

+ 159 - 0
src/main/java/com/huimv/wine/ws/admin/AdminWine.java

@@ -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;
+    }
+
+
+}

+ 14 - 0
src/main/resources/com/huimv/wine/mapper/WarnMapper.xml

@@ -10,5 +10,19 @@
         <result column="time" property="time" />
         <result column="time" property="time" />
         <result column="deal" property="deal" />
         <result column="deal" property="deal" />
     </resultMap>
     </resultMap>
+    <select id="warnQuery" resultType="com.huimv.wine.entity.vo.WarnQueryResult">
+        SELECT w.`id` ,w.`device`,w.`time`,w.`deal`,d.`addr`,
+            d.`wine1` AS 'w1id',w1.`name` AS 'w1name',d.`remain1` AS 'w1remain',
+            d.`wine2` AS 'w2id',w2.`name` AS 'w2name',d.`remain2` AS 'w2remain',
+            d.`wine3` AS 'w3id',w3.`name` AS 'w3name',d.`remain3` AS 'w3remain',
+            d.`wine4` AS 'w4id',w4.`name` AS 'w4name',d.`remain4` AS 'w4remain'
+        FROM `warn` AS w LEFT JOIN `device` AS d ON w.`device`=d.`id`
+            INNER JOIN `wine` AS w1 ON d.`wine1`=w1.`id` INNER JOIN `wine` AS w2 ON d.`wine1`=w2.`id`
+            INNER JOIN `wine` AS w3 ON d.`wine1`=w3.`id` INNER JOIN `wine` AS w4 ON d.`wine1`=w4.`id`
+        WHERE w.`manager`=#{managerId} AND (w.`device` LIKE #{like} OR d.`addr` LIKE #{like})
+            <if test="deal != -1">
+                AND w.`deal`= #{deal}
+            </if>
+    </select>
 
 
 </mapper>
 </mapper>

+ 3 - 0
src/main/resources/com/huimv/wine/mapper/WineMapper.xml

@@ -19,5 +19,8 @@
     <select id="selectWineById" resultType="com.huimv.wine.entity.Wine">
     <select id="selectWineById" resultType="com.huimv.wine.entity.Wine">
         SELECT `name`,`price`,`degree`,`density`,`picture`,`describe`,`time`,`order`,`income`,`deleted` FROM `wine` WHERE `id`=#{id}
         SELECT `name`,`price`,`degree`,`density`,`picture`,`describe`,`time`,`order`,`income`,`deleted` FROM `wine` WHERE `id`=#{id}
     </select>
     </select>
+    <select id="WinesQueryByIdOrName" resultType="com.huimv.wine.entity.vo.WineWithIdNameVo">
+        SELECT `id`,`name` FROM `wine` WHERE `id`!= '10100' AND (`id` LIKE #{like} OR `name` LIKE #{like}) LIMIT 10;
+    </select>
 
 
 </mapper>
 </mapper>

+ 3 - 6
src/main/resources/com/huimv/wine/mapper/WorkerMapper.xml

@@ -20,12 +20,6 @@
         <result column="last" property="last"/>
         <result column="last" property="last"/>
         <association property="managerVo" javaType="com.huimv.wine.entity.vo.ManagerVo" select="com.huimv.wine.mapper.ManagerMapper" column="mangerId"></association>
         <association property="managerVo" javaType="com.huimv.wine.entity.vo.ManagerVo" select="com.huimv.wine.mapper.ManagerMapper" column="mangerId"></association>
     </resultMap>
     </resultMap>
-
-    <select id="login" resultType="com.huimv.wine.entity.Worker">
-        select *  FROM `worker` WHERE phone=#{account} AND password = #{password}
-    </select>
-    <select id="ChangesQueryForWorker" resultType="com.huimv.wine.entity.vo.WorkerQueryResult">
-        SELECT c.`id` as 'id',d.`id` as 'device.id',d.`addr` as 'device.addr',c.`status` as 'status',c.`publish` as 'publish',c.`finish` as 'finish'
     <select id="ChangesQueryForWorker" resultMap="WorkerQueryResultMap">
     <select id="ChangesQueryForWorker" resultMap="WorkerQueryResultMap">
         SELECT c.`id` as 'id',d.`id` as 'deviceId',c.`status` as 'status',c.`publish` as 'publish',c.`finish` as 'finish'
         SELECT c.`id` as 'id',d.`id` as 'deviceId',c.`status` as 'status',c.`publish` as 'publish',c.`finish` as 'finish'
                 FROM `change` AS c LEFT JOIN `device` AS d ON c.`device`=d.`id`
                 FROM `change` AS c LEFT JOIN `device` AS d ON c.`device`=d.`id`
@@ -54,4 +48,7 @@
 		FROM `worker` AS w LEFT JOIN `manager` AS m ON w.`manager`=m.`id`
 		FROM `worker` AS w LEFT JOIN `manager` AS m ON w.`manager`=m.`id`
 		WHERE w.`manager`=#{manager} AND (w.`name` LIKE #{cond} OR w.`phone` LIKE #{cond})
 		WHERE w.`manager`=#{manager} AND (w.`name` LIKE #{cond} OR w.`phone` LIKE #{cond})
     </select>
     </select>
+    <select id="WorkersQueryByPhoneOrName" resultType="com.huimv.wine.entity.vo.WorkerWithIdPhoneName">
+        SELECT `id`,`phone`,`name` FROM `worker` WHERE `manager`= #{managerId} AND (`phone` LIKE #{like} OR `name` LIKE #{like}) LIMIT 10;
+    </select>
 </mapper>
 </mapper>