From 1fe574598c60427c4b8a56fc64c5d2041b97018f Mon Sep 17 00:00:00 2001 From: hyingbo <1363390067@qq.com> Date: 星期四, 24 七月 2025 14:13:40 +0800 Subject: [PATCH] 安灯管理 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java | 4 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java | 79 +++++++++++++++++++++++++++++++++++++-- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/AndonOrderController.java | 32 ++++++++++----- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/AndonOrder.java | 1 4 files changed, 101 insertions(+), 15 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/AndonOrderController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/AndonOrderController.java index 2b63b2a..e445c04 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/AndonOrderController.java +++ b/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("娣诲姞鎴愬姛锛�"); } - - } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/AndonOrder.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/AndonOrder.java index b12d4ba..11282e0 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/AndonOrder.java +++ b/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; /** * 澶勭悊瀹屾垚鏃堕棿 diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java index edf2a79..b315837 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java +++ b/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); } 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..630a9af 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 @@ -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)); + + //淇濆瓨鎴愬姛鍚庤澶囧彂閫亀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); + } } -- Gitblit v1.9.3