lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/AndonOrderController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/AndonOrder.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/AndonOrderMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/AndonOrderMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/AndonOrderWebSocketVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/AndonOrderController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package org.jeecg.modules.mdc.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.mdc.entity.AndonOrder; import org.jeecg.modules.mdc.service.IAndonOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @Description: andon_order * @Author: jeecg-boot * @Date: 2025-06-11 * @Version: V1.0 */ @Api(tags="andon_order") @RestController @RequestMapping("/AndonOrder/andonOrder") @Slf4j public class AndonOrderController extends JeecgController<AndonOrder, IAndonOrderService> { @Autowired private IAndonOrderService andonOrderService; /** * ç¨åºå¼å« * * @param andonOrder * @return */ @AutoLog(value = "å®ç¯å·¥å-ç¨åºå¼å«") @ApiOperation(value = "å®ç¯å·¥å-ç¨åºå¼å«", notes = "å®ç¯å·¥å-ç¨åºå¼å«") @PostMapping(value = "/procedureCall") public Result<?> procedureCall(@RequestBody AndonOrder andonOrder) { andonOrderService.procedureCall(andonOrder); return Result.OK("å¼å«æåï¼"); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/AndonOrder.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,164 @@ package org.jeecg.modules.mdc.entity; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; import cn.hutool.core.date.DatePattern; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableLogic; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecg.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * @Description: andon_order * @Author: jeecg-boot * @Date: 2025-06-11 * @Version: V1.0 */ @Data @TableName("andon_order") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @ApiModel(value = "andon_order对象", description = "andon_order") public class AndonOrder implements Serializable { private static final long serialVersionUID = 1L; /** * ä¸»é® */ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /** * 设å¤ç¼å· */ @Excel(name = "设å¤ç¼å·", width = 15) @ApiModelProperty(value = "设å¤ç¼å·") private String equipmentId; /** * æå±åæ¿ */ @Excel(name = "æå±åæ¿", width = 15) @ApiModelProperty(value = "æå±åæ¿") private String plantName; /** * å®ç¯ç±»å */ @Excel(name = "å®ç¯ç±»å", width = 15) @ApiModelProperty(value = "å®ç¯ç±»å") private String andonType; /** * å®ç¯äºº(å¼å«äºº) */ @Excel(name = "å®ç¯äºº", width = 15) @ApiModelProperty(value = "å®ç¯äºº") private String operator; /** * å¼å«åå */ @Excel(name = "å¼å«åå ", width = 15) @ApiModelProperty(value = "å¼å«åå ") private String callReason; /** * å®ç¯æ¶é´ */ @Excel(name = "å®ç¯æ¶é´", width = 15, format = DatePattern.NORM_DATETIME_PATTERN) @JsonFormat(timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN) @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) @ApiModelProperty(value = "å®ç¯æ¶é´") private Date operateTime; /** * ååºäºº(责任人) */ @Excel(name = "ååºäºº", width = 15) @ApiModelProperty(value = "ååºäºº") private String responder; /** * ååºæ¶é´ */ @Excel(name = "ååºæ¶é´", width = 15, format = DatePattern.NORM_DATETIME_PATTERN) @JsonFormat(timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN) @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) @ApiModelProperty(value = "ååºæ¶é´") private Date responseTime; /** * å¤ç人 */ @Excel(name = "å¤ç人", width = 15) @ApiModelProperty(value = "å¤ç人") private String processor; /** * å¤ç宿æ¶é´ */ @Excel(name = "å¤ç宿æ¶é´", width = 15, format = DatePattern.NORM_DATETIME_PATTERN) @JsonFormat(timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN) @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) @ApiModelProperty(value = "å¤ç宿æ¶é´") private Date processTime; /** * å®ç¯ç¶æ;å¾ ååºãå¾ å¤çã已宿 */ @Excel(name = "å®ç¯ç¶æ;å¾ ååºãå¾ å¤çã已宿", width = 15) @ApiModelProperty(value = "å®ç¯ç¶æ;å¾ ååºãå¾ å¤çã已宿") private String orderStatus; /** * é®é¢æè¿° */ @Excel(name = "é®é¢æè¿°", width = 15) @ApiModelProperty(value = "é®é¢æè¿°") private String problemDescreption; /** * å¤çç»ææè¿° */ @Excel(name = "å¤çç»ææè¿°", width = 15) @ApiModelProperty(value = "å¤çç»ææè¿°") private String resolutionDescreption; /** * å¤çç»æå¾ç */ @Excel(name = "å¤çç»æå¾ç", width = 15) @ApiModelProperty(value = "å¤çç»æå¾ç") private String imageFiles; /** * å 餿 è®° */ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") @TableLogic private Integer delFlag; /** * å建人 */ @ApiModelProperty(value = "å建人") private String createBy; /** * å建æ¶é´ */ @JsonFormat(timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN) @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /** * æ´æ°äºº */ @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /** * æ´æ°æ¶é´ */ @JsonFormat(timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN) @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/AndonOrderMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ package org.jeecg.modules.mdc.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.jeecg.modules.mdc.entity.AndonOrder; /** * @Description: andon_order * @Author: jeecg-boot * @Date: 2025-06-11 * @Version: V1.0 */ public interface AndonOrderMapper extends BaseMapper<AndonOrder> { } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/AndonOrderMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.mdc.mapper.AndonOrderMapper"> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package org.jeecg.modules.mdc.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.mdc.entity.AndonOrder; /** * @Description: andon_order * @Author: jeecg-boot * @Date: 2025-06-11 * @Version: V1.0 */ public interface IAndonOrderService extends IService<AndonOrder> { void procedureCall(AndonOrder andonOrder); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,89 @@ package org.jeecg.modules.mdc.service.impl; import cn.hutool.core.date.DatePattern; import com.alibaba.fastjson.JSONObject; 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 org.apache.shiro.SecurityUtils; import org.jeecg.common.constant.WebsocketConst; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.dto.MdcEquProDto; import org.jeecg.modules.mdc.entity.AndonOrder; import org.jeecg.modules.mdc.mapper.AndonOrderMapper; import org.jeecg.modules.mdc.service.IAndonOrderService; 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.message.websocket.WebSocket; import org.jeecg.modules.system.service.ISysUserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * @Description: andon_order * @Author: jeecg-boot * @Date: 2025-06-11 * @Version: V1.0 */ @Service public class AndonOrderServiceImpl extends ServiceImpl<AndonOrderMapper, AndonOrder> implements IAndonOrderService { @Resource private IMdcEquipmentService mdcEquipmentService; @Resource private WebSocket webSocket; @Resource private ISysUserService userService; @Override public void procedureCall(AndonOrder andonOrder) { if (StringUtils.isBlank(andonOrder.getEquipmentId())) { throw new JeecgBootException("è¯·éæ©è®¾å¤ï¼"); } LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); List<String> equipmentIds = Arrays.asList(andonOrder.getEquipmentId().split(StringPool.COMMA)); List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(equipmentIds); Map<String, MdcEquProDto> equipmentIdToProductionIdMap = equipmentList.stream().collect(Collectors.toMap(MdcEquProDto::getEquipmentId, comRateDto -> comRateDto)); List<AndonOrder> list = Lists.newArrayList(); for (String equipmentId : equipmentIds) { AndonOrder andonOrderInfo = new AndonOrder(); andonOrderInfo.setEquipmentId(equipmentId); andonOrderInfo.setPlantName(equipmentIdToProductionIdMap != null && equipmentIdToProductionIdMap.containsKey(equipmentId) ? equipmentIdToProductionIdMap.get(equipmentId).getId() : null); andonOrderInfo.setAndonType(StringPool.ONE); andonOrderInfo.setOperator(andonOrder.getOperator()); andonOrderInfo.setOperateTime(new Date()); andonOrderInfo.setResponder(userId); andonOrderInfo.setCallReason(andonOrder.getCallReason()); list.add(andonOrderInfo); } if (this.saveBatch(list)) { List<AndonOrderWebSocketVo> andonOrderWebSocketVoList = Lists.newArrayList(); //设置websocketè¯·æ±æ¶æ¯æ°æ® for (AndonOrder order : list) { 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(user.getRealname()); 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()); } } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/AndonOrderWebSocketVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,52 @@ package org.jeecg.modules.mdc.vo; import lombok.Data; @Data public class AndonOrderWebSocketVo { /** * 设å¤ç¼å· */ private String equipmentId; /** * å¼å«äººå */ private String callPersonnel; /** * å®ç¯ç±»å */ private String andonType; /** * å¼å«æ¶é´ */ private String callTime; /** * å¼å«åå */ private String callReason; /** * 责任人 */ private String personResponsible; /** * æ¥ä¿®æ¶é´ */ private String repairTime; /** * æ éæè¿° */ private String faultInfo; /** * æå±åæ¿ */ private String plantName; }