hyingbo
2 天以前 1fe574598c60427c4b8a56fc64c5d2041b97018f
安灯管理
已修改4个文件
116 ■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/AndonOrderController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/AndonOrder.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/AndonOrderController.java
@@ -14,10 +14,8 @@
import org.jeecg.modules.mdc.service.IAndonOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
/**
@@ -85,18 +83,30 @@
    }
    /**
     * 程序呼叫
     * 安灯管理-响应
     *
     * @param id
     * @return
     */
    @AutoLog(value = "安灯管理-响应")
    @ApiOperation(value = "安灯管理-响应", notes = "安灯管理-响应")
    @GetMapping(value = "/responseData")
    public Result<?> responseData(@RequestParam(name="id",required=true) String id) {
        andonOrderService.responseData(Arrays.asList(id));
        return Result.OK("响应成功!");
    }
    /**
     * 安灯管理-处理
     *
     * @param andonOrder
     * @return
     */
    @AutoLog(value = "安灯工单-程序呼叫")
    @ApiOperation(value = "安灯工单-程序呼叫", notes = "安灯工单-程序呼叫")
    @PostMapping(value = "/procedureCall")
    public Result<?> procedureCall(@RequestBody AndonOrder andonOrder) {
        andonOrderService.procedureCall(andonOrder);
        return Result.OK("呼叫成功!");
    @AutoLog(value = "安灯管理-处理")
    @ApiOperation(value="安灯管理-处理", notes="安灯管理-处理")
    @PostMapping(value = "/dealWith")
    public Result<?> dealWith(@RequestBody AndonOrder andonOrder) {
        andonOrderService.dealWith(andonOrder);
        return Result.OK("添加成功!");
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/AndonOrder.java
@@ -99,6 +99,7 @@
     */
    @Excel(name = "处理人", width = 15)
    @ApiModelProperty(value = "处理人")
    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
    private String processor;
    /**
     * 处理完成时间
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java
@@ -20,4 +20,8 @@
    List<EquAndon> equAndonList(List<String> equipmentIdList);
    List<AndonOrderWebSocketVo> untreatedAndonList();
    void responseData(List<String> ids);
    void dealWith(AndonOrder andonOrder);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java
@@ -2,7 +2,6 @@
import cn.hutool.core.date.DatePattern;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -11,6 +10,7 @@
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.constant.WebsocketConst;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.board.vo.EquAndon;
import org.jeecg.modules.mdc.dto.MdcEquProDto;
@@ -21,10 +21,10 @@
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.vo.AndonOrderWebSocketVo;
import org.jeecg.modules.message.websocket.WebSocket;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysDictService;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
@@ -47,8 +47,11 @@
    private ISysUserService userService;
    @Resource
    private ISysDictService sysDictService;
    @Resource
    private ISysBaseAPI sysBaseApi;
    @Override
    @Transactional
    public void procedureCall(AndonOrder andonOrder) {
        if (StringUtils.isBlank(andonOrder.getEquipmentId())) {
            throw new JeecgBootException("请选择设备!");
@@ -66,9 +69,9 @@
            andonOrderInfo.setPlantName(equipmentIdToProductionIdMap != null && equipmentIdToProductionIdMap.containsKey(equipmentId) ? equipmentIdToProductionIdMap.get(equipmentId).getId() : null);
            andonOrderInfo.setAndonType(StringPool.ONE);
            andonOrderInfo.setOrderStatus(StringPool.ONE);
            andonOrderInfo.setOperator(andonOrder.getOperator());
            andonOrderInfo.setOperator(userId);
            andonOrderInfo.setOperateTime(new Date());
            andonOrderInfo.setResponder(userId);
            andonOrderInfo.setResponder(andonOrder.getOperator());
            andonOrderInfo.setCallReason(andonOrder.getCallReason());
            list.add(andonOrderInfo);
        }
@@ -150,4 +153,72 @@
        }
        return result;
    }
    @Override
    @Transactional
    public void responseData(List<String> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            throw new JeecgBootException("请选择要响应的数据");
        }
        List<AndonOrder> andonOrderList = this.listByIds(ids);
        List<AndonOrder> existAlreadyResponsedList = andonOrderList.stream().filter(andonOrder -> !"1".equals(andonOrder.getOrderStatus())).collect(Collectors.toList());
        if (CollectionUtils.isNotEmpty(existAlreadyResponsedList)) {
            throw new JeecgBootException("存在已响应的安灯信息,无需重复响应");
        }
        for (AndonOrder andonOrder : andonOrderList) {
            andonOrder.setOrderStatus("2");
            andonOrder.setResponseTime(new Date());
        }
        //查询厂房信息
        List<String> equipmentIds = andonOrderList.stream().map(AndonOrder::getEquipmentId).collect(Collectors.toList());
        List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(equipmentIds);
        Map<String, MdcEquProDto> equipmentIdToProductionIdMap = equipmentList.stream().collect(Collectors.toMap(MdcEquProDto::getEquipmentId, comRateDto -> comRateDto));
        //保存成功后设备发送websocket消息
        if (this.updateBatchById(andonOrderList)) {
            List<AndonOrderWebSocketVo> andonOrderWebSocketVoList = Lists.newArrayList();
            //设置websocket请求消息数据
            for (AndonOrder order : andonOrderList) {
                AndonOrderWebSocketVo andonOrderWebSocketVo = new AndonOrderWebSocketVo();
                andonOrderWebSocketVo.setEquipmentId(order.getEquipmentId());
                andonOrderWebSocketVo.setCallPersonnel(userService.getById(order.getOperator()).getRealname());
                andonOrderWebSocketVo.setCallTime(DateUtils.format(order.getOperateTime(), DatePattern.NORM_DATE_PATTERN));
                andonOrderWebSocketVo.setCallReason(order.getCallReason());
                andonOrderWebSocketVo.setAndonType("程序呼叫");
                andonOrderWebSocketVo.setPersonResponsible(sysBaseApi.getUserById(order.getOperator()).getRealname());
                andonOrderWebSocketVo.setRepairTime(StringPool.EMPTY);
                andonOrderWebSocketVo.setFaultInfo(StringPool.EMPTY);
                andonOrderWebSocketVo.setType("close");
                andonOrderWebSocketVo.setPlantName(equipmentIdToProductionIdMap != null && equipmentIdToProductionIdMap.containsKey(order.getEquipmentId()) ? equipmentIdToProductionIdMap.get(order.getEquipmentId()).getProductionName() : null);
                andonOrderWebSocketVoList.add(andonOrderWebSocketVo);
            }
            //发送websocket请求
            JSONObject jsonObject = new JSONObject();
            jsonObject.put(WebsocketConst.MSG_CMD, "andon");
            jsonObject.put("data", andonOrderWebSocketVoList);
            webSocket.sendMessage(jsonObject.toJSONString());
        }
    }
    @Override
    @Transactional
    public void dealWith(AndonOrder andonOrder) {
        if (Objects.isNull(andonOrder)) {
            throw new JeecgBootException("请选择需要处理的安灯信息");
        }
        if (StringUtils.isBlank(andonOrder.getResolutionDescreption())) {
            throw new JeecgBootException("处理结果描述不能为空");
        }
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        andonOrder.setProcessor(user.getId());
        andonOrder.setProcessTime(new Date());
        andonOrder.setOrderStatus("3");
        this.updateById(andonOrder);
    }
}