From fb5aa087eaf6a68cf7ea8114beb270551016e7dd Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期二, 29 七月 2025 11:27:45 +0800 Subject: [PATCH] 添加定型指派设备 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java | 89 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 86 insertions(+), 3 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java index c6e8111..2834fa9 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java @@ -3,14 +3,18 @@ import cn.hutool.core.date.DatePattern; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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; @@ -20,13 +24,15 @@ import org.jeecg.modules.mdc.service.IMdcEquipmentService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.AndonOrderWebSocketVo; +import org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo; 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 javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.stream.Collectors; @@ -47,8 +53,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 +75,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 +159,78 @@ } 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)); + + //淇濆瓨鎴愬姛鍚庤澶囧彂閫亀ebsocket娑堟伅 + 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); + } + + //鍙戦�亀ebsocket璇锋眰 + 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); + } + + @Override + public IPage<AndonOrder> pageList(String userId, AndonOrder andonOrder, Integer pageNo, Integer pageSize, HttpServletRequest req) { + IPage<AndonOrder> pageData = new Page<>(pageNo, pageSize); + return this.baseMapper.pageList(pageData, andonOrder, userId); + } } -- Gitblit v1.9.3