From be3aa0812cb43be7484e162b4fece5344e9eb5c8 Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期四, 14 三月 2024 11:12:43 +0800 Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/mdc_430 into develop --- lxzn-boot-base-core/src/main/java/org/jeecg/common/system/vo/LoginUser.java | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml | 42 + lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java | 212 ++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java | 8 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java | 8 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java | 22 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverrunAlarmMapper.java | 27 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java | 22 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java | 14 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java | 154 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverrunAlarm.java | 54 + lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java | 13 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentRunningSection.java | 17 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverrunAlarmServiceImpl.java | 28 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml | 24 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcCommonVo.java | 13 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverrunAlarmController.java | 155 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java | 56 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java | 18 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverrunAlarmService.java | 30 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentWorkLineServiceImpl.java | 76 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java | 43 + lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/MdcProduction.java | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml | 4 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java | 8 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml | 25 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java | 13 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/constant/MdcConstant.java | 26 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java | 2 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/MdcProductionTreeModel.java | 3 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java | 97 +++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java | 3 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipment.java | 21 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java | 13 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunMonitoringSpeedJob.java | 6 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java | 2 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 243 ++++++- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml | 11 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentStatusVo.java | 27 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java | 129 +++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml | 22 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java | 20 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java | 66 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java | 2 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java | 8 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java | 19 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java | 18 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java | 23 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml | 9 57 files changed, 1,738 insertions(+), 159 deletions(-) diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/system/vo/LoginUser.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/system/vo/LoginUser.java index b7c0be1..d996096 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/system/vo/LoginUser.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/system/vo/LoginUser.java @@ -51,6 +51,10 @@ */ private String orgCode; /** + * 鐢ㄦ埛绫诲瀷 + */ + private Integer userType; + /** * 澶村儚 */ @SensitiveField diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/constant/MdcConstant.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/constant/MdcConstant.java index d727367..68fcaae 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/constant/MdcConstant.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/constant/MdcConstant.java @@ -57,4 +57,30 @@ public static final String MONTH = "鏈�"; + /** + * 璁惧绠$悊鍛� + */ + public static final String MDC_EQUIPMENT_MANAGER = "mdcEquipmentManager"; + + /** + * 璁惧瓒呯骇绠$悊鍛� + */ + public static final String MDC_EQUIPMENT_SUPER_MANAGER = "mdcEquipmentSuperManager"; + + /** + * 娑堟伅鐘舵�侊紙0寰呭鐞嗭紝1寰呯‘璁�, 2宸茬‘璁わ紝3宸叉嫆缁濓級 + */ + public static final String MSG_STATUS_0 = "0"; + public static final String MSG_STATUS_1 = "1"; + public static final String MSG_STATUS_2 = "2"; + public static final String MSG_STATUS_3 = "3"; + + /** + * 鐢ㄦ埛绫诲瀷(1 鏅�氭垚鍛� 2 宸ユ 3 杞﹂棿 4 鍏徃锛� + */ + public static final Integer USER_TYPE_1 = 1; + public static final Integer USER_TYPE_2 = 2; + public static final Integer USER_TYPE_3 = 3; + public static final Integer USER_TYPE_4 = 4; + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java index 9ff87ae..d1c20c4 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java @@ -426,7 +426,7 @@ * @param mdcEquipment */ @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, MdcEquipment mdcEquipment) { + public ModelAndView exportXls(HttpServletRequest request, MdcEquipmentVo mdcEquipment) { // Step.1 缁勮鏌ヨ鏉′欢 //QueryWrapper<MdcEquipment> queryWrapper = QueryGenerator.initQueryWrapper(mdcEquipment, request.getParameterMap()); //Step.2 AutoPoi 瀵煎嚭Excel @@ -525,4 +525,20 @@ } return Result.OK("鍙嶉鎴愬姛锛�"); } + + + @AutoLog(value = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�") + @ApiOperation(value = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�", notes = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�") + @GetMapping(value = "/loadTreeListByProductionIds") + public Result<?> loadTreeListByProductionIds(@RequestParam(name = "ids", required = true) String ids) { + Result<List<MdcEquipmentTree>> result = new Result<>(); + try { + List<MdcEquipmentTree> mdcEquipmentTreeList = mdcEquipmentService.loadTreeListByProductionIds(ids); + result.setSuccess(true); + result.setResult(mdcEquipmentTreeList); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return result; + } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java new file mode 100644 index 0000000..901b846 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java @@ -0,0 +1,66 @@ +package org.jeecg.modules.mdc.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.mdc.constant.MdcConstant; +import org.jeecg.modules.mdc.service.IMdcEquipmentService; +import org.jeecg.modules.mdc.vo.MdcCommonVo; +import org.jeecg.modules.system.entity.MdcProduction; +import org.jeecg.modules.system.service.IMdcProductionService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author Lius + * @Description: MDC棣栭〉鎺ュ彛 + * @date 2024/3/13 14:27 + */ +@Slf4j +@Api(tags = "MDC棣栭〉鎺ュ彛") +@RestController +@RequestMapping("/mdc/home") +public class MdcHomeController { + + @Resource + private IMdcEquipmentService mdcEquipmentService; + + @Resource + private IMdcProductionService mdcProductionService; + + @ApiOperation(value = "MDC棣栭〉鎺ュ彛-璁惧杩愯鐘舵�佺粺璁�", notes = "MDC棣栭〉鎺ュ彛-璁惧杩愯鐘舵�佺粺璁�") + @GetMapping("/equipmentStatusStatistics") + public Result<?> equipmentStatusStatistics(String productionCode) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + Integer userType = user.getUserType(); + String userId = user.getId(); + String key = ""; + if (StringUtils.isNotBlank(productionCode)) { + //鍘傚尯 + MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); + key = mdcProduction.getId(); + } else { + //鍒ゆ柇鏄叕鍙哥骇杩樻槸鍘傚尯 + MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, "")); + if (userType.equals(MdcConstant.USER_TYPE_4)) { + //鍏徃 + key = mdcProduction.getId(); + } else if (userType.equals(MdcConstant.USER_TYPE_3)) { + //鍘傚尯 + key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId()); + } + } + List<MdcCommonVo> resultMap = mdcEquipmentService.getEquipmentStatusStatistics(userId, key); + return Result.OK(resultMap); + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java new file mode 100644 index 0000000..951b653 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java @@ -0,0 +1,212 @@ +package org.jeecg.modules.mdc.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.api.ISysBaseAPI; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.mdc.constant.MdcConstant; +import org.jeecg.modules.mdc.entity.MdcMessageApproval; +import org.jeecg.modules.mdc.service.IMdcMessageApprovalService; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + +/** + * @Description: mdc娑堟伅纭琛� + * @Author: Lius + * @Date: 2024-03-06 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "mdc娑堟伅纭琛�") +@RestController +@RequestMapping("/mdc/mdcMessageApproval") +public class MdcMessageApprovalController extends JeecgController<MdcMessageApproval, IMdcMessageApprovalService> { + + @Resource + private IMdcMessageApprovalService mdcMessageApprovalService; + + @Resource + private ISysBaseAPI sysBaseApi; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param mdcMessageApproval + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "mdc娑堟伅纭琛�-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value = "mdc娑堟伅纭琛�-鍒嗛〉鍒楄〃鏌ヨ", notes = "mdc娑堟伅纭琛�-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(MdcMessageApproval mdcMessageApproval, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = user.getId(); + Page<MdcMessageApproval> page = new Page<MdcMessageApproval>(pageNo, pageSize); + IPage<MdcMessageApproval> pageList = mdcMessageApprovalService.pageList(userId, page, mdcMessageApproval, req); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param mdcMessageApproval + * @return + */ + @AutoLog(value = "mdc娑堟伅纭琛�-娣诲姞") + @ApiOperation(value = "mdc娑堟伅纭琛�-娣诲姞", notes = "mdc娑堟伅纭琛�-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody MdcMessageApproval mdcMessageApproval) { + mdcMessageApprovalService.save(mdcMessageApproval); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param mdcMessageApproval + * @return + */ + @AutoLog(value = "mdc娑堟伅纭琛�-缂栬緫") + @ApiOperation(value = "mdc娑堟伅纭琛�-缂栬緫", notes = "mdc娑堟伅纭琛�-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody MdcMessageApproval mdcMessageApproval) { + mdcMessageApprovalService.updateById(mdcMessageApproval); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "mdc娑堟伅纭琛�-閫氳繃id鍒犻櫎") + @ApiOperation(value = "mdc娑堟伅纭琛�-閫氳繃id鍒犻櫎", notes = "mdc娑堟伅纭琛�-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + mdcMessageApprovalService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "mdc娑堟伅纭琛�-鎵归噺鍒犻櫎") + @ApiOperation(value = "mdc娑堟伅纭琛�-鎵归噺鍒犻櫎", notes = "mdc娑堟伅纭琛�-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.mdcMessageApprovalService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @AutoLog(value = "mdc娑堟伅纭琛�-閫氳繃id鏌ヨ") + @ApiOperation(value = "mdc娑堟伅纭琛�-閫氳繃id鏌ヨ", notes = "mdc娑堟伅纭琛�-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + MdcMessageApproval mdcMessageApproval = mdcMessageApprovalService.getById(id); + return Result.OK(mdcMessageApproval); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param mdcMessageApproval + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, MdcMessageApproval mdcMessageApproval) { + return super.exportXls(request, mdcMessageApproval, MdcMessageApproval.class, "mdc娑堟伅纭琛�"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, MdcMessageApproval.class); + } + + /** + * 涓婃姤鍘熷洜 + */ + @AutoLog(value = "mdc娑堟伅纭琛�-涓婃姤鍘熷洜") + @ApiOperation(value = "mdc娑堟伅纭琛�-涓婃姤鍘熷洜", notes = "mdc娑堟伅纭琛�-涓婃姤鍘熷洜") + @RequestMapping(value = "/reportReason", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> reportReason(@RequestBody MdcMessageApproval mdcMessageApproval) { + mdcMessageApproval.setMsgStatus(MdcConstant.MSG_STATUS_1); + mdcMessageApprovalService.updateById(mdcMessageApproval); + List<String> approverIdList = Arrays.asList(mdcMessageApproval.getApproverIds().split(",")); + for (String approverId : approverIdList) { + //涓婃姤鍘熷洜鍙戦�佹秷鎭粰纭浜� + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧鐘舵�侀暱鏃堕棿鏈彉鍖栧師鍥犱笂鎶ョ‘璁わ紒"); + messageDTO.setCategory("娑堟伅"); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + messageDTO.setFromUser(user.getUsername()); + LoginUser userById = sysBaseApi.getUserById(approverId); + messageDTO.setToUser(userById.getUsername()); + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcMessageApproval.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏃堕棿鏈彉鍖栧師鍥犱笂鎶ュ緟纭锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + + return Result.OK("涓婃姤鎴愬姛锛�"); + } + + /** + * 澶勭悊纭 + */ + @AutoLog(value = "mdc娑堟伅纭琛�-澶勭悊纭") + @ApiOperation(value = "mdc娑堟伅纭琛�-澶勭悊纭", notes = "mdc娑堟伅纭琛�-澶勭悊纭") + @RequestMapping(value = "/handleConfirm", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> handleConfirm(@RequestBody MdcMessageApproval mdcMessageApproval) { + if (mdcMessageApproval.getMsgStatus().equals(MdcConstant.MSG_STATUS_3)) { + //澶勭悊琚嫆缁濓紝闇�閲嶆柊涓婃姤鍘熷洜 + //涓婃姤鍘熷洜鍙戦�佹秷鎭粰纭浜� + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧鐘舵�佹秷鎭紒"); + messageDTO.setCategory("娑堟伅"); + messageDTO.setFromUser("admin"); + messageDTO.setToUser(mdcMessageApproval.getUpdateBy()); + messageDTO.setContent("鎮ㄧ殑璁惧缂栧彿涓� [" + mdcMessageApproval.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏃堕棿鏈彉鍖栦笂鎶ュ凡琚澶囪秴绾х鐞嗗憳鎷掔粷锛岃閲嶆柊濉啓涓婃姤鍘熷洜锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + mdcMessageApprovalService.updateById(mdcMessageApproval); + + return Result.OK("鎴愬姛锛�"); + } + + + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverrunAlarmController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverrunAlarmController.java new file mode 100644 index 0000000..441ee91 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverrunAlarmController.java @@ -0,0 +1,155 @@ +package org.jeecg.modules.mdc.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +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.common.system.query.QueryGenerator; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.entity.MdcOverrunAlarm; +import org.jeecg.modules.mdc.service.IMdcOverrunAlarmService; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; + +/** + * @Description: mdc瓒呴檺鎶ヨ + * @Author: Lius + * @Date: 2024-03-01 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "mdc瓒呴檺鎶ヨ") +@RestController +@RequestMapping("/mdc/mdcOverrunAlarm") +public class MdcOverrunAlarmController extends JeecgController<MdcOverrunAlarm, IMdcOverrunAlarmService> { + + @Resource + private IMdcOverrunAlarmService mdcOverrunAlarmService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param mdcEquipment + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "mdc瓒呴檺鎶ヨ-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value = "mdc瓒呴檺鎶ヨ-鍒嗛〉鍒楄〃鏌ヨ", notes = "mdc瓒呴檺鎶ヨ-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(MdcEquipment mdcEquipment, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + //QueryWrapper<MdcOverrunAlarm> queryWrapper = QueryGenerator.initQueryWrapper(mdcOverrunAlarm, req.getParameterMap()); + Page<MdcOverrunAlarm> page = new Page<MdcOverrunAlarm>(pageNo, pageSize); + IPage<MdcOverrunAlarm> pageList = mdcOverrunAlarmService.pageList(page, mdcEquipment, req); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param mdcOverrunAlarm + * @return + */ + @AutoLog(value = "mdc瓒呴檺鎶ヨ-娣诲姞") + @ApiOperation(value = "mdc瓒呴檺鎶ヨ-娣诲姞", notes = "mdc瓒呴檺鎶ヨ-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody MdcOverrunAlarm mdcOverrunAlarm) { + mdcOverrunAlarmService.save(mdcOverrunAlarm); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param mdcOverrunAlarm + * @return + */ + @AutoLog(value = "mdc瓒呴檺鎶ヨ-缂栬緫") + @ApiOperation(value = "mdc瓒呴檺鎶ヨ-缂栬緫", notes = "mdc瓒呴檺鎶ヨ-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody MdcOverrunAlarm mdcOverrunAlarm) { + mdcOverrunAlarmService.updateById(mdcOverrunAlarm); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "mdc瓒呴檺鎶ヨ-閫氳繃id鍒犻櫎") + @ApiOperation(value = "mdc瓒呴檺鎶ヨ-閫氳繃id鍒犻櫎", notes = "mdc瓒呴檺鎶ヨ-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + mdcOverrunAlarmService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "mdc瓒呴檺鎶ヨ-鎵归噺鍒犻櫎") + @ApiOperation(value = "mdc瓒呴檺鎶ヨ-鎵归噺鍒犻櫎", notes = "mdc瓒呴檺鎶ヨ-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.mdcOverrunAlarmService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @AutoLog(value = "mdc瓒呴檺鎶ヨ-閫氳繃id鏌ヨ") + @ApiOperation(value = "mdc瓒呴檺鎶ヨ-閫氳繃id鏌ヨ", notes = "mdc瓒呴檺鎶ヨ-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + MdcOverrunAlarm mdcOverrunAlarm = mdcOverrunAlarmService.getById(id); + return Result.OK(mdcOverrunAlarm); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param mdcOverrunAlarm + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, MdcOverrunAlarm mdcOverrunAlarm) { + return super.exportXls(request, mdcOverrunAlarm, MdcOverrunAlarm.class, "mdc瓒呴檺鎶ヨ"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, MdcOverrunAlarm.class); + } + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java index 0552e7b..2c1b4ef 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java @@ -7,6 +7,7 @@ import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.mdc.entity.MdcDriveTypeParamConfig; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -153,6 +154,7 @@ private String collectData; + private BigDecimal spindleCurrent; /*娴嬭瘯浣跨敤*/ private String dataLine1; diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipment.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipment.java index cc47df4..afb4a9a 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipment.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipment.java @@ -131,6 +131,27 @@ @ApiModelProperty(value = "璁惧鐘舵��") private Integer equipmentStatus; + /** + * 绯荤粺绫诲瀷 + */ + @Excel(name = "绯荤粺绫诲瀷", width = 15) + @ApiModelProperty(value = "绯荤粺绫诲瀷") + private String systemType; + + /** + * 璁惧绾у埆 + */ + @Excel(name = "璁惧绾у埆", width = 15) + @ApiModelProperty(value = "璁惧绾у埆") + private String deviceLevel; + + /** + * 璁惧绉嶇被 + */ + @Excel(name = "璁惧绉嶇被", width = 15) + @ApiModelProperty(value = "璁惧绉嶇被") + private String deviceCategory; + /**閮ㄩ棬鍚嶇О*/ @Excel(name = "閮ㄩ棬鍚嶇О", width = 15) private transient String orgCodeTxt; diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentRunningSection.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentRunningSection.java index a9486bb..df2abf4 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentRunningSection.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentRunningSection.java @@ -1,23 +1,20 @@ package org.jeecg.modules.mdc.entity; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; -import java.util.Set; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -import com.fasterxml.jackson.annotation.JsonFormat; import org.jeecg.common.system.base.entity.JeecgEntity; -import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.Set; /** * @Description: 璁惧杩愯鏃舵鐘舵�佽〃 diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java new file mode 100644 index 0000000..1ac751e --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMessageApproval.java @@ -0,0 +1,97 @@ +package org.jeecg.modules.mdc.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecg.common.system.base.entity.JeecgEntity; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Description: mdc娑堟伅纭琛� + * @Author: Lius + * @Date: 2024-03-06 + * @Version: V1.0 + */ +@Data +@TableName("mdc_message_approval") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "mdc_message_approval瀵硅薄", description = "mdc娑堟伅纭琛�") +public class MdcMessageApproval extends JeecgEntity implements Serializable { + + private static final long serialVersionUID = 3826726426360323366L; + + /** + * 璁惧缂栫爜 + */ + @Excel(name = "璁惧缂栫爜", width = 15) + @ApiModelProperty(value = "璁惧缂栫爜") + private String equipmentId; + /** + * 鏍囬 + */ + @Excel(name = "鏍囬", width = 15) + @ApiModelProperty(value = "鏍囬") + private String titile; + /** + * 鍐呭 + */ + @Excel(name = "鍐呭", width = 15) + @ApiModelProperty(value = "鍐呭") + private String msgContent; + /** + * 澶勭悊浜篿ds + */ + @ApiModelProperty(value = "澶勭悊浜篿ds") + private String senderIds; + /** + * 澶勭悊浜哄鍚� + */ + @Excel(name = "澶勭悊浜哄鍚�", width = 15) + @ApiModelProperty(value = "澶勭悊浜哄鍚�") + private String senderNames; + /** + * 娑堟伅鐘舵�侊紙0寰呭鐞嗭紝1寰呯‘璁�, 2宸茬‘璁わ紝3宸叉嫆缁濓級 + */ + @Excel(name = "娑堟伅鐘舵�侊紙0寰呭鐞嗭紝1寰呯‘璁�, 2宸茬‘璁わ紝3宸叉嫆缁濓級", width = 15) + @ApiModelProperty(value = "娑堟伅鐘舵�侊紙0寰呭鐞嗭紝1寰呯‘璁�, 2宸茬‘璁わ紝3宸叉嫆缁濓級") + @Dict(dicCode = "mdcMsgStatus") + private String msgStatus; + /** + * 娑堟伅纭浜篿ds + */ + @Excel(name = "娑堟伅纭浜篿ds", width = 15) + @ApiModelProperty(value = "娑堟伅纭浜篿ds") + private String approverIds; + /** + * 娑堟伅纭浜哄鍚� + */ + @Excel(name = "娑堟伅纭浜哄鍚�", width = 15) + @ApiModelProperty(value = "娑堟伅纭浜哄鍚�") + private String approverNames; + /** + * 涓婃姤鍐呭 + */ + @Excel(name = "涓婃姤鍐呭", width = 15) + @ApiModelProperty(value = "涓婃姤鍐呭") + private String reportContent; + /** + * 澶勭悊鎸夐挳 + */ + @TableField(exist = false) + @ApiModelProperty(value = "澶勭悊鎸夐挳") + private Boolean hasProcess = false; + /** + * 纭鎸夐挳 + */ + @TableField(exist = false) + @ApiModelProperty(value = "纭鎸夐挳") + private Boolean hasConfirm = false; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverrunAlarm.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverrunAlarm.java new file mode 100644 index 0000000..e81850d --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverrunAlarm.java @@ -0,0 +1,54 @@ +package org.jeecg.modules.mdc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.system.base.entity.JeecgEntity; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Description: mdc瓒呴檺鎶ヨ + * @Author: Lius + * @Date: 2024-03-01 + * @Version: V1.0 + */ +@Data +@TableName("mdc_overrun_alarm") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "mdc_overrun_alarm瀵硅薄", description = "mdc瓒呴檺鎶ヨ") +public class MdcOverrunAlarm extends JeecgEntity implements Serializable { + + private static final long serialVersionUID = 3633764093859258849L; + + /** + * 璁惧缂栫爜 + */ + @Excel(name = "璁惧缂栫爜", width = 15) + @ApiModelProperty(value = "璁惧缂栫爜") + private String equipmentId; + /** + * 璁惧畾鑼冨洿 + */ + @Excel(name = "璁惧畾鑼冨洿", width = 15) + @ApiModelProperty(value = "璁惧畾鑼冨洿") + private String setValue; + /** + * 瀹為檯鍊� + */ + @Excel(name = "瀹為檯鍊�", width = 15) + @ApiModelProperty(value = "瀹為檯鍊�") + private String realValue; + /** + * 鎶ヨ鍐呭 + */ + @Excel(name = "鎶ヨ鍐呭", width = 15) + @ApiModelProperty(value = "鎶ヨ鍐呭") + private String alarmContent; + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunMonitoringSpeedJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunMonitoringSpeedJob.java index 6e1e457..ae0c2d4 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunMonitoringSpeedJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunMonitoringSpeedJob.java @@ -17,7 +17,7 @@ /** * @author Lius - * @Description: 鐩戞帶璁惧杞�熶换鍔� + * @Description: 鐩戞帶璁惧杩愯鍙傛暟浠诲姟 * @date 2024/1/16 17:36 */ @PersistJobDataAfterExecution @@ -45,7 +45,7 @@ if (byJobClassName != null && !byJobClassName.isEmpty()) { quartzLog.setJobId(byJobClassName.get(0).getId()); } - log.info("鐩戞帶璁惧杞�熶换鍔� RunMonitoringSpeedJob start! 鏃堕棿:" + DateUtils.now()); + log.info("鐩戞帶璁惧杩愯鍙傛暟浠诲姟 RunMonitoringSpeedJob start! 鏃堕棿:" + DateUtils.now()); long startTime = System.currentTimeMillis(); try { mdcEquipmentService.monitoringSpeedProcess(); @@ -54,7 +54,7 @@ quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); // 鍙戦�佹秷鎭�氱煡 - sysAnnouncementService.jobSendMessage("鐩戞帶璁惧杞�熶换鍔″け璐ワ紒", quartzLog.getExceptionDetail()); + sysAnnouncementService.jobSendMessage("鐩戞帶璁惧杩愯鍙傛暟浠诲姟锛�", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java index 8acc779..793eb81 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java @@ -6,9 +6,12 @@ import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.system.vo.DictModel; +import org.jeecg.modules.mdc.constant.MdcConstant; import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.entity.MdcMessageApproval; import org.jeecg.modules.mdc.service.IMdcEquipmentRunningSectionService; import org.jeecg.modules.mdc.service.IMdcEquipmentService; +import org.jeecg.modules.mdc.service.IMdcMessageApprovalService; import org.jeecg.modules.mdc.service.MdcEfficiencyReportService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.ThrowableUtil; @@ -16,8 +19,11 @@ import org.jeecg.modules.quartz.entity.SysQuartzLog; import org.jeecg.modules.quartz.service.IQuartzJobService; import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.entity.SysAnnouncement; +import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.service.ISysAnnouncementService; import org.jeecg.modules.system.service.ISysDictService; +import org.jeecg.modules.system.service.ISysUserService; import org.quartz.*; import javax.annotation.Resource; @@ -26,6 +32,7 @@ import java.time.LocalDate; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @author Lius @@ -61,6 +68,12 @@ @Resource private IMdcEquipmentRunningSectionService mdcEquipmentRunningSectionService; + @Resource + private IMdcMessageApprovalService mdcMessageApprovalService; + + @Resource + private ISysUserService sysUserService; + @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { SysQuartzLog quartzLog = new SysQuartzLog(); @@ -73,7 +86,7 @@ long startTime = System.currentTimeMillis(); try { List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<>()); - //List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); +// List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "3140045")); // 鑾峰彇鍒╃敤鐜囧垽瀹氬ぉ鏁� List<DictModel> dictModelList1 = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_RATE_JUDGE); Integer equipmentRateJudge = 5; @@ -94,28 +107,53 @@ } for (MdcEquipment mdcEquipment : equipmentList) { // 鍒ゆ柇鍒╃敤鐜� - String date = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-equipmentRateJudge).toString(), DateUtils.STR_DATE), DateUtils.STRDATE); - List<BigDecimal> efficiencyRateList = mdcEfficiencyReportService.getEfficiencyRate(mdcEquipment.getEquipmentId(), date); - if (efficiencyRateList != null && !efficiencyRateList.isEmpty()) { - boolean flag = true; - for (BigDecimal processLong : efficiencyRateList) { - BigDecimal efficiencyRate = processLong.divide(new BigDecimal("86400"), 4, RoundingMode.HALF_UP); - if (efficiencyRate.compareTo(new BigDecimal(equipmentRateNormal)) > -1) { - flag = false; - } - } - if (flag) { - // 涓婃姤 - MessageDTO messageDTO = new MessageDTO(); - messageDTO.setTitle("璁惧鍒╃敤鐜囨姤璀︼紒"); - messageDTO.setCategory("棰勮娑堟伅"); - messageDTO.setFromUser("admin"); - messageDTO.setToUser("admin"); - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊兼姤璀︼紒"); - sysBaseApi.sendSysAnnouncement(messageDTO); + // step.1 鏌ヨ娑堟伅涓璁惧鎶ヨ鏃堕棿 + SysAnnouncement sysAnnouncement = sysAnnouncementService.findLastMessage("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊兼姤璀︼紒"); + boolean flag1 = true; + if (sysAnnouncement != null) { + Date createTime = sysAnnouncement.getCreateTime(); + Date msgDate = DateUtils.toDate(DateUtils.format(createTime, DateUtils.STR_DATE), DateUtils.STR_DATE); + Date now = DateUtils.toDate(LocalDate.now().toString(), DateUtils.STR_DATE); + Integer days = DateUtils.getDays(msgDate, now); + if (days < equipmentRateJudge) { + flag1 = false; } } - // 鍒ゆ柇璁惧鐘舵�� + if (flag1) { + String date = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-equipmentRateJudge).toString(), DateUtils.STR_DATE), DateUtils.STRDATE); + List<BigDecimal> efficiencyRateList = mdcEfficiencyReportService.getEfficiencyRate(mdcEquipment.getEquipmentId(), date); + if (efficiencyRateList != null && !efficiencyRateList.isEmpty()) { + boolean flag = true; + for (BigDecimal processLong : efficiencyRateList) { + BigDecimal efficiencyRate = processLong.divide(new BigDecimal("86400"), 4, RoundingMode.HALF_UP); + if (efficiencyRate.compareTo(new BigDecimal(equipmentRateNormal)) > -1) { + flag = false; + } + } + if (flag) { + // 涓婃姤 + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧鍒╃敤鐜囨姤璀︼紒"); + messageDTO.setCategory("棰勮娑堟伅"); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊兼姤璀︼紒"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + } + } + + // 鍒ゆ柇璁惧鐘舵�侀暱鏃堕棿鏃犲彉鍖栧鎵逛汉 + SysAnnouncement sysAnnouncement1 = sysAnnouncementService.findLastMessage("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + if (sysAnnouncement1 != null) { + Date createTime = sysAnnouncement1.getCreateTime(); + Date msgDate = DateUtils.toDate(DateUtils.format(createTime, DateUtils.STR_DATE), DateUtils.STR_DATE); + Date now = DateUtils.toDate(LocalDate.now().toString(), DateUtils.STR_DATE); + Integer days = DateUtils.getDays(msgDate, now); + if (days < equipmentStatusJudge) { + continue; + } + } Date date1 = DateUtils.toDate(LocalDate.now().plusDays(-equipmentStatusJudge).toString(), DateUtils.STR_DATE); List<Integer> sectionList = mdcEquipmentRunningSectionService.getDataList(mdcEquipment.getEquipmentId(), date1); if (sectionList != null && !sectionList.isEmpty() && sectionList.size() > 1) { @@ -128,13 +166,46 @@ } if (flag) { // 涓婃姤 - MessageDTO messageDTO = new MessageDTO(); - messageDTO.setTitle("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); - messageDTO.setCategory("棰勮娑堟伅"); - messageDTO.setFromUser("admin"); - messageDTO.setToUser("admin"); - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); - sysBaseApi.sendSysAnnouncement(messageDTO); + // 鏌ヨ璁惧绠$悊鍛� + List<SysUser> adminList = sysUserService.getEquipmentAdmin(MdcConstant.MDC_EQUIPMENT_MANAGER, mdcEquipment.getEquipmentId()); + // 鏌ヨ璁惧瓒呯骇绠$悊鍛� + List<SysUser> superList = sysUserService.getEquipmentAdmin(MdcConstant.MDC_EQUIPMENT_SUPER_MANAGER, mdcEquipment.getEquipmentId()); + if (adminList != null && !adminList.isEmpty()) { + for (SysUser sysUser : adminList) { + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + messageDTO.setCategory("棰勮娑堟伅"); + messageDTO.setFromUser("admin"); + messageDTO.setToUser(sysUser.getUsername()); + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + } else { + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + messageDTO.setCategory("棰勮娑堟伅"); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + + if (adminList != null && !adminList.isEmpty() && superList != null && !superList.isEmpty()) { + MdcMessageApproval mdcMessageApproval = new MdcMessageApproval(); + mdcMessageApproval.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcMessageApproval.setTitile("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + mdcMessageApproval.setMsgContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + List<String> senderIdList = adminList.stream().map(SysUser::getId).collect(Collectors.toList()); + mdcMessageApproval.setSenderIds(String.join(",", senderIdList)); + List<String> senderNameList = adminList.stream().map(SysUser::getRealname).collect(Collectors.toList()); + mdcMessageApproval.setSenderNames(String.join(",", senderNameList)); + List<String> superIdList = superList.stream().map(SysUser::getId).collect(Collectors.toList()); + mdcMessageApproval.setApproverIds(String.join(",", superIdList)); + List<String> superNameList = superList.stream().map(SysUser::getRealname).collect(Collectors.toList()); + mdcMessageApproval.setApproverNames(String.join(",", superNameList)); + mdcMessageApproval.setMsgStatus(MdcConstant.MSG_STATUS_0); + mdcMessageApprovalService.save(mdcMessageApproval); + } } } } @@ -143,7 +214,7 @@ quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); // 鍙戦�佹秷鎭�氱煡 - sysAnnouncementService.jobSendMessage("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ浠诲姟澶辫触锛�", quartzLog.getExceptionDetail()); + sysAnnouncementService.jobSendMessage("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ浠诲姟", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java new file mode 100644 index 0000000..ebf871a --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java @@ -0,0 +1,154 @@ +package org.jeecg.modules.mdc.job; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.api.ISysBaseAPI; +import org.jeecg.common.system.vo.DictModel; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.mdc.dto.MdcEquipmentDto; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.entity.MdcOverrunAlarm; +import org.jeecg.modules.mdc.service.IMdcEquipmentService; +import org.jeecg.modules.mdc.service.IMdcOverrunAlarmService; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysAnnouncementService; +import org.jeecg.modules.system.service.ISysDictService; +import org.quartz.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Date; +import java.util.List; + +/** + * @author Lius + * @Description: 鐩戞帶璁惧杩愯杞�熶笌NC绋嬪簭璁惧畾杞�熷姣� + * @date 2024/3/4 16:14 + */ +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +@Slf4j +public class RunningMonitoringSpeedJob implements Job { + + @Resource + private IQuartzJobService quartzJobService; + + @Resource + private ISysQuartzLogService sysQuartzLogService; + + @Resource + private ISysAnnouncementService sysAnnouncementService; + + @Resource + private IMdcEquipmentService mdcEquipmentService; + + @Resource + private ISysDictService sysDictService; + + @Resource + private ISysBaseAPI sysBaseApi; + + @Resource + private IMdcOverrunAlarmService mdcOverrunAlarmService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + log.info("鐩戞帶璁惧杩愯杞�熶笌NC绋嬪簭璁惧畾杞�熷姣� RunningMonitoringSpeedJob start! 鏃堕棿:" + DateUtils.now()); + long startTime = System.currentTimeMillis(); + try { + List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().ne(MdcEquipment::getDriveType, "ZUOLAN")); + + // 鑾峰彇瀛楀吀鏁版嵁 + List<DictModel> dictModelList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_OPERATING_SPEED_RANGE); + BigDecimal range = BigDecimal.ZERO; + if (dictModelList != null && !dictModelList.isEmpty()) { + range = new BigDecimal(dictModelList.get(0).getValue()); + } + + for (MdcEquipment mdcEquipment : mdcEquipmentList) { + String saveTableName = mdcEquipment.getSaveTableName(); + MdcEquipmentDto mdcEquipmentDto = new MdcEquipmentDto(); + try { + //鏌ヨ鍗曡〃鏁版嵁 + mdcEquipmentDto = mdcEquipmentService.getWorkLineLast(saveTableName); + + } catch (Exception e) { + log.error("鏌ヨ鍗曡〃鏁版嵁澶辫触!", e); + } + if (mdcEquipmentDto != null && StringUtils.isNotBlank(mdcEquipmentDto.getSpindlespeed()) && StringUtils.isNotBlank(mdcEquipmentDto.getActualspindlespeed())) { + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧杩愯杞�熸姤璀︼紒"); + messageDTO.setCategory("棰勮娑堟伅"); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + //璁惧畾 + BigDecimal spindlespeed = new BigDecimal(mdcEquipmentDto.getSpindlespeed()); + //瀹為檯 + BigDecimal actualspindlespeed = new BigDecimal(mdcEquipmentDto.getActualspindlespeed()); + + MdcOverrunAlarm mdcOverrunAlarm = new MdcOverrunAlarm(); + mdcOverrunAlarm.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcOverrunAlarm.setSetValue(spindlespeed.toString()); + mdcOverrunAlarm.setRealValue(actualspindlespeed.toString()); + if (range.equals(BigDecimal.ZERO)) { + if (spindlespeed.compareTo(actualspindlespeed) == 1) { + // 璁惧畾鍊煎ぇ浜庡疄闄呭�� 浣� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆鎶ヨ"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); + } else if (spindlespeed.compareTo(actualspindlespeed) == -1) { + // 璁惧畾鍊煎皬浜庡疄闄呭�� 楂� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊奸珮鎶ヨ"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); + } + } else { + BigDecimal multiply = spindlespeed.multiply(range.divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)); + BigDecimal max = spindlespeed.add(multiply); + BigDecimal min = spindlespeed.subtract(multiply); + if (actualspindlespeed.compareTo(max) == 1 || actualspindlespeed.compareTo(min) == -1) { + if (spindlespeed.compareTo(actualspindlespeed) == 1) { + // 璁惧畾鍊煎ぇ浜庡疄闄呭�� 浣� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆鎶ヨ"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); + } else if (spindlespeed.compareTo(actualspindlespeed) == -1) { + // 璁惧畾鍊煎皬浜庡疄闄呭�� 楂� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊奸珮鎶ヨ"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); + } + } + } + } + } + quartzLog.setIsSuccess(0); + } catch (Exception e) { + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + // 鍙戦�佹秷鎭�氱煡 + sysAnnouncementService.jobSendMessage("鐩戞帶璁惧杩愯杞�熶笌NC绋嬪簭璁惧畾杞�熷姣旓紒", quartzLog.getExceptionDetail()); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java index 3c42552..32f01e6 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java @@ -79,8 +79,8 @@ quartzLog.setParams(this.parameter); log.info(String.format("瀹氭椂缁熻璁惧鍔犵彮鏃堕暱浠诲姟 param: %s RunningOvertimeDurationJob start! 鏃堕棿:" + DateUtils.getNow(), this.parameter)); long startTime = System.currentTimeMillis(); + String date = ""; try { - String date = ""; if (StringUtils.isNotBlank(this.parameter)) { date = DateUtils.format(DateUtils.toDate(this.parameter, DateUtils.STRDATE), DateUtils.STR_DATE); Date initDate = DateUtils.toDate(this.parameter, DateUtils.STRDATE); @@ -99,7 +99,7 @@ List<MdcEquipmentOvertime> result = new ArrayList<>(); for (MdcEquipment mdcEquipment : equipmentList) { // 鑾峰彇璁惧宸ヤ綔鏃ュ巻 - List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = mdcDeviceCalendarService.listByEquipmentIdAndDate(mdcEquipment.getEquipmentId(), this.parameter); + List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = mdcDeviceCalendarService.listByEquipmentIdAndDate(mdcEquipment.getEquipmentId(), DateUtils.format(DateUtils.toDate(date, DateUtils.STR_DATE),DateUtils.STRDATE)); if (mdcDeviceCalendarVos != null && !mdcDeviceCalendarVos.isEmpty()) { //鑾峰彇鏈�鍚庝竴涓彮娆$粨鏉熸椂闂� Date startDate = this.getCalendarEndDate(mdcDeviceCalendarVos, date); @@ -121,7 +121,7 @@ mdcEquipmentOvertime.setEquipmentId(mdcEquipment.getEquipmentId()); mdcEquipmentOvertime.setDuration(duration); mdcEquipmentOvertime.setAutoFlag(CommonConstant.AUTO_FLAG_Y); - mdcEquipmentOvertime.setTheDate(this.parameter); + mdcEquipmentOvertime.setTheDate(DateUtils.format(DateUtils.toDate(date, DateUtils.STR_DATE),DateUtils.STRDATE)); result.add(mdcEquipmentOvertime); } @@ -146,7 +146,7 @@ mdcEquipmentOvertime.setEquipmentId(mdcEquipment.getEquipmentId()); mdcEquipmentOvertime.setDuration(duration); mdcEquipmentOvertime.setAutoFlag(CommonConstant.AUTO_FLAG_Y); - mdcEquipmentOvertime.setTheDate(this.parameter); + mdcEquipmentOvertime.setTheDate(DateUtils.format(DateUtils.toDate(date, DateUtils.STR_DATE),DateUtils.STRDATE)); result.add(mdcEquipmentOvertime); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java index cee8044..cfa1ba1 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java @@ -15,5 +15,5 @@ EquipmentLog getRow(@Param("equipmentid") String equipmentid, @Param("startTime") Date startTime); - Integer selectEquipmentOporation(@Param("equipmentId") String equipmentId); + EquipmentLog selectEquipmentOporation(@Param("equipmentId") String equipmentId); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java index 4cab5f9..2c844a6 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java @@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.jeecg.modules.mdc.dto.MdcEquDepDto; import org.jeecg.modules.mdc.dto.MdcEquProDto; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; +import org.jeecg.modules.mdc.entity.EquipmentLog; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor; import org.jeecg.modules.mdc.vo.MdcEquipmentDepVo; @@ -16,6 +18,7 @@ import org.jeecg.modules.mdc.vo.WorkshopEquipmentVo; import java.util.List; +import java.util.Map; /** * @Description: 璁惧琛� @@ -97,12 +100,23 @@ IPage<MdcEquipment> pageList(Page<MdcEquipment> page, @Param("mdcEquipment") MdcEquipmentVo mdcEquipment); @InterceptorIgnore(tenantLine = "1") - MdcEquipmentDto getWorkLineLast(@Param("tableName") String saveTableName); + @Select("select TOP 1 CollectTime ${columns} from [${tableName}] order by CollectTime desc") + Map<String, Object> getWorkLineLast(Map<String, Object> param); /** * 瀵煎嚭list * @param mdcEquipment * @return */ - List<MdcEquipment> exportXlsList(@Param("mdcEquipment") MdcEquipment mdcEquipment); + List<MdcEquipment> exportXlsList(@Param("mdcEquipment") MdcEquipmentVo mdcEquipment); + + /** + * 鏌ヨ鍗曡〃鏁版嵁 + * @param tableName + * @return + */ + @InterceptorIgnore(tenantLine = "1") + MdcEquipmentDto findWorkLineLast(@Param("tableName") String tableName); + + List<EquipmentLog> getEquipmentStatusList(@Param("equipmentIdList") List<String> equipmentIdList); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java new file mode 100644 index 0000000..d5fae4d --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMessageApprovalMapper.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.mdc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.mdc.entity.MdcMessageApproval; + +/** + * @Description: mdc娑堟伅纭琛� + * @Author: Lius + * @Date: 2024-03-06 + * @Version: V1.0 + */ +public interface MdcMessageApprovalMapper extends BaseMapper<MdcMessageApproval> { + + /** + * 鍒楄〃鏌ヨ + */ + IPage<MdcMessageApproval> pageList(@Param("userId") String userId, Page<MdcMessageApproval> page, @Param("mdcMessageApproval") MdcMessageApproval mdcMessageApproval); + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverrunAlarmMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverrunAlarmMapper.java new file mode 100644 index 0000000..6d5acd5 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverrunAlarmMapper.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.mdc.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.entity.MdcOverrunAlarm; + +/** + * @Description: mdc瓒呴檺鎶ヨ + * @Author: Lius + * @Date: 2024-03-01 + * @Version: V1.0 + */ +public interface MdcOverrunAlarmMapper extends BaseMapper<MdcOverrunAlarm> { + + /** + * 鍒嗛〉鏌ヨ + * + * @param page + * @param mdcEquipment + * @return + */ + IPage<MdcOverrunAlarm> pageList(Page<MdcOverrunAlarm> page, @Param("mdcEquipment") MdcEquipment mdcEquipment); +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml index b178c17..d31b630 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml @@ -6,7 +6,7 @@ SELECT top 1 * FROM EquipmentLog WHERE EquipmentID = #{ equipmentid } AND CollectTime <= #{ startTime } AND Oporation in ('0','1','2','3') ORDER BY CollectTime ASC </select> - <select id="selectEquipmentOporation" resultType="java.lang.Integer"> - SELECT TOP 1 Oporation FROM EquipmentLog WHERE EquipmentID = #{ equipmentId } ORDER BY CollectTime DESC + <select id="selectEquipmentOporation" resultType="org.jeecg.modules.mdc.entity.EquipmentLog"> + SELECT TOP 1 * FROM EquipmentLog WHERE EquipmentID = #{ equipmentId } ORDER BY CollectTime DESC </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml index a63838e..b47450f 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml @@ -52,15 +52,12 @@ t3.sleep_start_date, t3.sleep_end_date, t3.is_day_span, - t4.equipment_name, - t5.start_time overtimeStartTime, - t5.end_time overtimeEndTime + t4.equipment_name FROM mdc_device_calendar t1 LEFT JOIN mdc_shift t2 ON t1.shift_id = t2.id LEFT JOIN mdc_shift_sub t3 ON t1.shift_sub_id = t3.id LEFT JOIN mdc_equipment t4 ON t1.equipment_id = t4.equipment_id - LEFT JOIN mdc_equipment_overtime t5 ON t5.calendar_id = t1.id <where> <if test="equipmentId != null and equipmentId != ''"> AND t4.equipment_id = #{ equipmentId } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml index 5320b97..357a4b8 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEfficiencyReportMapper.xml @@ -28,6 +28,9 @@ <if test="vo.equipmentType != null and vo.equipmentType != '' "> AND t2.equipment_type = #{ vo.equipmentType } </if> + <if test="vo.driveType != null and vo.driveType != '' "> + AND t2.drive_type = #{ vo.driveType } + </if> <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 "> AND t2.equipment_id IN <foreach collection="vo.equipmentIdList" item="id" index="index" open="(" close=")" separator=","> @@ -65,6 +68,9 @@ AND t1.the_date >= #{ vo.startTime } <if test="vo.equipmentType != null and vo.equipmentType != '' "> AND t2.equipment_type = #{ vo.equipmentType } + </if> + <if test="vo.driveType != null and vo.driveType != '' "> + AND t2.drive_type = #{ vo.driveType } </if> <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 "> AND t2.equipment_id IN @@ -110,6 +116,9 @@ <if test="vo.equipmentType != null and vo.equipmentType != '' "> AND t2.equipment_type = #{ vo.equipmentType } </if> + <if test="vo.driveType != null and vo.driveType != '' "> + AND t2.drive_type = #{ vo.driveType } + </if> </where> GROUP BY t2.equipment_id, diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml index 492e4b3..480d71e 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml @@ -238,16 +238,14 @@ <if test="mdcEquipment.driveType != null and mdcEquipment.driveType != '' "> AND t1.drive_type = #{mdcEquipment.driveType} </if> - <if test="mdcEquipment.productionName != null and mdcEquipment.productionName != '' "> - AND t3.id = #{ mdcEquipment.productionName } OR t3.parent_id = #{ mdcEquipment.productionName } + <if test="mdcEquipment.productionIds != null and mdcEquipment.productionIds.size() > 0 "> + AND t3.id IN + <foreach collection="mdcEquipment.productionIds" index="index" item="id" open="(" separator="," close=")"> + #{id} + </foreach> </if> </where> order by t1.sort_no - </select> - - - <select id="getWorkLineLast" resultType="org.jeecg.modules.mdc.dto.MdcEquipmentDto"> - select top 1 spindlespeed, actualspindlespeed from [${tableName}] order by CollectTime desc </select> <select id="exportXlsList" resultType="org.jeecg.modules.mdc.entity.MdcEquipment"> @@ -268,16 +266,40 @@ AND t1.equipment_name = #{mdcEquipment.equipmentModel} </if> <if test="mdcEquipment.equipmentType != null and mdcEquipment.equipmentType != '' "> - AND t1.equipmentType = #{mdcEquipment.equipmentType} + AND t1.equipment_type = #{mdcEquipment.equipmentType} </if> <if test="mdcEquipment.driveType != null and mdcEquipment.driveType != '' "> AND t1.drive_type = #{mdcEquipment.driveType} </if> - <if test="mdcEquipment.productionName != null and mdcEquipment.productionName != '' "> - AND t3.id = #{ mdcEquipment.productionName } OR t3.parent_id = #{ mdcEquipment.productionName } + <if test="mdcEquipment.productionIds != null and mdcEquipment.productionIds.size() > 0 "> + AND t3.id IN + <foreach collection="mdcEquipment.productionIds" index="index" item="id" open="(" separator="," close=")"> + #{id} + </foreach> </if> </where> order by t1.sort_no </select> + <!--鏌ヨ鍗曡〃鏁版嵁--> + <select id="findWorkLineLast" resultType="org.jeecg.modules.mdc.dto.MdcEquipmentDto"> + select top 1 spindlespeed, actualspindlespeed from [${tableName}] order by CollectTime desc + </select> + + <!--鏌ヨ璁惧鏈�鏂颁竴鏉℃暟鎹�--> + <select id="getEquipmentStatusList" resultType="org.jeecg.modules.mdc.entity.EquipmentLog"> + SELECT + t1.* + FROM + EquipmentLog t1 + INNER JOIN ( SELECT MAX ( CollectTime ) AS CollectTime, EquipmentID FROM EquipmentLog GROUP BY EquipmentID ) t2 ON t1.CollectTime= t2.CollectTime + AND t1.EquipmentID= t2.EquipmentID + <if test="equipmentIdList != null and equipmentIdList.size() > 0"> + AND t1.EquipmentID IN + <foreach collection="equipmentIdList" index="index" item="id" open="(" separator="," close=")"> + #{id} + </foreach> + </if> + </select> + </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml new file mode 100644 index 0000000..4e53609 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml @@ -0,0 +1,22 @@ +<?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.MdcMessageApprovalMapper"> + + <!--鍒楄〃鏌ヨ--> + <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcMessageApproval"> + SELECT + * + FROM + mdc_message_approval + <where> + (sender_ids LIKE CONCAT(CONCAT('%',#{userId}),'%') OR approver_ids LIKE CONCAT(CONCAT('%',#{userId}),'%')) + <if test="mdcMessageApproval.equipmentId != null and mdcMessageApproval.equipmentId != ''"> + AND equipment_id = #{mdcMessageApproval.equipmentId} + </if> + <if test="mdcMessageApproval.msgStatus != null and mdcMessageApproval.msgStatus != ''"> + AND msg_status = #{mdcMessageApproval.msgStatus} + </if> + </where> + ORDER BY create_time DESC + </select> +</mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml new file mode 100644 index 0000000..f812bb9 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml @@ -0,0 +1,25 @@ +<?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.MdcOverrunAlarmMapper"> + + <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcOverrunAlarm"> + SELECT + t1.* + FROM + mdc_overrun_alarm t1 + LEFT JOIN mdc_equipment t2 ON t1.equipment_id = t2.equipment_id + <where> + <if test="mdcEquipment.equipmentId != null and mdcEquipment.equipmentId != '' "> + AND t1.equipment_id LIKE CONCAT(CONCAT('%',#{mdcEquipment.equipmentId}),'%') + </if> + <if test="mdcEquipment.equipmentType != null and mdcEquipment.equipmentType != '' "> + AND t2.equipment_type = #{mdcEquipment.equipmentType} + </if> + <if test="mdcEquipment.driveType != null and mdcEquipment.driveType != '' "> + AND t2.drive_type = #{mdcEquipment.driveType} + </if> + </where> + ORDER BY + t1.create_time DESC + </select> +</mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java index 31622b0..c98f2b1 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java @@ -27,5 +27,5 @@ */ EquipmentLog getRow(String equipmentid, Date startTime); - Integer selectEquipmentOporation(String equipmentId); + EquipmentLog selectEquipmentOporation(String equipmentId); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java index 1880efa..198b5fe 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java @@ -9,6 +9,7 @@ import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor; import org.jeecg.modules.mdc.model.MdcEquipmentTree; +import org.jeecg.modules.mdc.vo.MdcCommonVo; import org.jeecg.modules.mdc.vo.MdcEquipmentVo; import org.jeecg.modules.mdc.vo.WorkshopEquipmentVo; @@ -178,7 +179,7 @@ IPage<MdcEquipment> pageList(Page<MdcEquipment> page, MdcEquipmentVo mdcEquipment, HttpServletRequest req); /** - * 鐩戞帶璁惧杞�熶换鍔� + * 鐩戞帶璁惧杩愯鍙傛暟浠诲姟 */ void monitoringSpeedProcess(); @@ -187,6 +188,24 @@ * @param mdcEquipment * @return */ - List<MdcEquipment> exportXlsList(MdcEquipment mdcEquipment); + List<MdcEquipment> exportXlsList(MdcEquipmentVo mdcEquipment); + /** + * 閫氳繃杞﹂棿ids鑾峰彇璁惧鏍� + * @param ids + * @return + */ + List<MdcEquipmentTree> loadTreeListByProductionIds(String ids); + + /** + * 鏌ヨ鍗曡〃鏁版嵁 + * @param tableName + * @return + */ + MdcEquipmentDto getWorkLineLast(String tableName); + + /** + * 璁惧杩愯鐘舵�佺粺璁� + */ + List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java new file mode 100644 index 0000000..aa7cb03 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMessageApprovalService.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.mdc.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.mdc.entity.MdcMessageApproval; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Description: mdc娑堟伅纭琛� + * @Author: Lius + * @Date: 2024-03-06 + * @Version: V1.0 + */ +public interface IMdcMessageApprovalService extends IService<MdcMessageApproval> { + + /** + * 鍒楄〃鏌ヨ + */ + IPage<MdcMessageApproval> pageList(String userId, Page<MdcMessageApproval> page, MdcMessageApproval mdcMessageApproval, HttpServletRequest req); +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverrunAlarmService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverrunAlarmService.java new file mode 100644 index 0000000..ce75112 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverrunAlarmService.java @@ -0,0 +1,30 @@ +package org.jeecg.modules.mdc.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.entity.MdcOverrunAlarm; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Description: mdc瓒呴檺鎶ヨ + * @Author: Lius + * @Date: 2024-03-01 + * @Version: V1.0 + */ +public interface IMdcOverrunAlarmService extends IService<MdcOverrunAlarm> { + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param page + * @param mdcEquipment + * @param req + * @return + */ + IPage<MdcOverrunAlarm> pageList(Page<MdcOverrunAlarm> page, MdcEquipment mdcEquipment, HttpServletRequest req); + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java index 29d1671..76de098 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java @@ -50,7 +50,7 @@ } @Override - public Integer selectEquipmentOporation(String equipmentId) { + public EquipmentLog selectEquipmentOporation(String equipmentId) { return this.baseMapper.selectEquipmentOporation(equipmentId); } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java index 238de3a..2b3ae6f 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java @@ -7,10 +7,7 @@ import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.mdc.entity.*; import org.jeecg.modules.mdc.mapper.MdcDeviceCalendarMapper; -import org.jeecg.modules.mdc.service.IMdcDeviceCalendarService; -import org.jeecg.modules.mdc.service.IMdcEquipmentService; -import org.jeecg.modules.mdc.service.IMdcShiftSubService; -import org.jeecg.modules.mdc.service.IMdcVacationManagementService; +import org.jeecg.modules.mdc.service.*; import org.jeecg.modules.mdc.vo.EquipmentCalendarVo; import org.jeecg.modules.mdc.vo.MdcDeviceCalendarQueryVo; import org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo; @@ -41,6 +38,9 @@ @Resource private IMdcVacationManagementService mdcVacationManagementService; + + @Resource + private IMdcEquipmentOvertimeService mdcEquipmentOvertimeService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -212,7 +212,17 @@ @Override public List<MdcDeviceCalendarVo> listByEquipmentIdAndDate(String equipmentId, String date) { - return this.baseMapper.listByEquipmentAndDate(equipmentId, date); + List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = this.baseMapper.listByEquipmentAndDate(equipmentId, date); + if (mdcDeviceCalendarVos != null && !mdcDeviceCalendarVos.isEmpty()) { + for (MdcDeviceCalendarVo mdcDeviceCalendarVo : mdcDeviceCalendarVos) { + List<MdcEquipmentOvertime> list = mdcEquipmentOvertimeService.list(new LambdaQueryWrapper<MdcEquipmentOvertime>().eq(MdcEquipmentOvertime::getEquipmentId, mdcDeviceCalendarVo.getEquipmentId()).eq(MdcEquipmentOvertime::getTheDate, mdcDeviceCalendarVo.getEndDate())); + if (list != null && !list.isEmpty()) { + mdcDeviceCalendarVo.setOvertimeStartTime(list.get(0).getStartTime()); + mdcDeviceCalendarVo.setOvertimeEndTime(list.get(0).getEndTime()); + } + } + } + return mdcDeviceCalendarVos; } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java index d0f0311..01e7d16 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java @@ -1,11 +1,15 @@ package org.jeecg.modules.mdc.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.mdc.dto.MdcAlarmAnalyzeDto; import org.jeecg.modules.mdc.dto.MdcAlarmDto; import org.jeecg.modules.mdc.dto.MdcAlarmListDto; import org.jeecg.modules.mdc.dto.MdcAlarmTrendDto; +import org.jeecg.modules.mdc.entity.MdcAlarmInfo; +import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection; +import org.jeecg.modules.mdc.service.IMdcAlarmInfoService; import org.jeecg.modules.mdc.service.IMdcEquipmentRunningSectionService; import org.jeecg.modules.mdc.service.IMdcEquipmentService; import org.jeecg.modules.mdc.service.MdcEquipmentAlarmAnalyzeService; @@ -29,6 +33,9 @@ @Resource private IMdcEquipmentService mdcEquipmentService; + + @Resource + private IMdcAlarmInfoService mdcAlarmInfoService; @Override public List<MdcAlarmAnalyzeDto> alarmList(String userId, MdcAlarmAnalyzeQueryVo vo) { @@ -77,6 +84,12 @@ mdcAlarmAnalyzeDto.setAlarmCode(mdcEquipmentRunningSection.getAlarm()); mdcAlarmAnalyzeDto.setCount(1); mdcAlarmAnalyzeDto.setTimeCount(new BigDecimal(mdcEquipmentRunningSection.getDuration())); + //鏌ヨ鎶ヨ鍙峰唴瀹� + List<MdcEquipment> list = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, mdcEquipmentRunningSection.getEquipmentId())); + List<MdcAlarmInfo> mdcAlarmInfo = mdcAlarmInfoService.list(new LambdaQueryWrapper<MdcAlarmInfo>().eq(MdcAlarmInfo::getDriveType, list.get(0).getDriveType()).eq(MdcAlarmInfo::getAlarmCode, mdcEquipmentRunningSection.getAlarm()).eq(MdcAlarmInfo::getIsUse, 0)); + if (mdcAlarmInfo != null && !mdcAlarmInfo.isEmpty()) { + mdcAlarmAnalyzeDto.setAlarmContent(mdcAlarmInfo.get(0).getAlarmContent()); + } map.put(mdcEquipmentRunningSection.getAlarm(), mdcAlarmAnalyzeDto); } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java index 1d64041..f97637b 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java @@ -49,6 +49,9 @@ @Resource private IEquipmentRunningTraceService equipmentRunningTraceService; + @Resource + private IMdcAlarmInfoService mdcAlarmInfoService; + @Override public List<MdcEquipmentRunningSectionDto> logList(MdcEquipmentRunningSectionVo equipmentRunningSectionVo) { @@ -60,9 +63,9 @@ List<MdcEquipmentRunningSection> running = loadEquipmentRunningTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr()); //鏌ヨ鎶ヨ鏁版嵁 List<MdcEquipmentRunningSection> errs = loadEquipmentErrorTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr()); + Equipment equip = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentid, equipmentRunningSectionVo.getEquipmentId())); if (!running.isEmpty()) { MdcEquipmentRunningSectionDto dto; - Equipment equip = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentid, equipmentRunningSectionVo.getEquipmentId())); String tableName = ""; Boolean isTableExist = false; if (equip != null) { @@ -88,21 +91,54 @@ for (MdcEquipmentRunningSection entity : errs) { dto = new MdcEquipmentRunningSectionDto(); BeanUtils.copyProperties(entity, dto); - Set<TmpEquipmentAlarm> set = entity.getTmpEquipmentAlarmSet(); - if (entity.getStatus() == 22 && set != null && !set.isEmpty()) { - Iterator<TmpEquipmentAlarm> iterator = entity.getTmpEquipmentAlarmSet().iterator(); - //鑾峰彇鎶ヨ缂栧彿鐩稿悓鐨勬姤璀︿俊鎭� - while (iterator.hasNext()) { - TmpEquipmentAlarm next = iterator.next(); - if (StringUtils.isNotBlank(next.getAlarmNo()) && next.getAlarmNo().equals(entity.getStatus())) { - dto.setAlarmContent(next.getAlarmContent()); + if (entity.getStatus() == 22) { + if (equip != null) { + List<MdcAlarmInfo> mdcAlarmInfo = mdcAlarmInfoService.list(new LambdaQueryWrapper<MdcAlarmInfo>().eq(MdcAlarmInfo::getDriveType, equip.getDrivetype()).eq(MdcAlarmInfo::getAlarmCode, entity.getAlarm()).eq(MdcAlarmInfo::getIsUse, 0)); + if (mdcAlarmInfo != null && !mdcAlarmInfo.isEmpty()) { + dto.setAlarmContent(mdcAlarmInfo.get(0).getAlarmContent()); } } } +// Set<TmpEquipmentAlarm> set = entity.getTmpEquipmentAlarmSet(); +// if (entity.getStatus() == 22 && set != null && !set.isEmpty()) { +// Iterator<TmpEquipmentAlarm> iterator = entity.getTmpEquipmentAlarmSet().iterator(); +// //鑾峰彇鎶ヨ缂栧彿鐩稿悓鐨勬姤璀︿俊鎭� +// while (iterator.hasNext()) { +// TmpEquipmentAlarm next = iterator.next(); +// if (StringUtils.isNotBlank(next.getAlarmNo()) && next.getAlarmNo().equals(entity.getStatus())) { +// dto.setAlarmContent(next.getAlarmContent()); +// } +// } +// } dtos.add(dto); } } - return dtos; + + List<MdcEquipmentRunningSectionDto> result = new ArrayList<>(); + //鍚堝苟鐩稿悓鐘舵�佹暟鎹� + for (int i = 0; i < dtos.size() - 1; i++) { + MdcEquipmentRunningSectionDto mdcEquipmentRunningSectionDto = dtos.get(i); + MdcEquipmentRunningSectionDto next = dtos.get(i + 1); + if (mdcEquipmentRunningSectionDto.getStatus().equals(next.getStatus()) && mdcEquipmentRunningSectionDto.getEndTime().equals(next.getStartTime())) { + MdcEquipmentRunningSectionDto equipmentRunningSectionDto = new MdcEquipmentRunningSectionDto(); + BeanUtils.copyProperties(mdcEquipmentRunningSectionDto, equipmentRunningSectionDto); + equipmentRunningSectionDto.setEndTime(next.getEndTime()); + equipmentRunningSectionDto.setDuration(mdcEquipmentRunningSectionDto.getDuration() + next.getDuration()); + result.add(equipmentRunningSectionDto); + i++; + } else { + result.add(mdcEquipmentRunningSectionDto); + } + } + if (dtos.size() > 1) { + MdcEquipmentRunningSectionDto a = dtos.get(dtos.size() - 2); + MdcEquipmentRunningSectionDto b = dtos.get(dtos.size() - 1); + if (!a.getStatus().equals(b.getStatus()) && a.getEndTime().equals(b.getStartTime())) { + result.add(dtos.get(dtos.size() - 1)); + } + } + + return result; } /** diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java index 5eb7085..1e21981 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java @@ -9,7 +9,6 @@ import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.api.ISysBaseAPI; -import org.jeecg.common.system.vo.DictModel; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.mdc.dto.MdcEquDepDto; import org.jeecg.modules.mdc.dto.MdcEquProDto; @@ -22,17 +21,17 @@ import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.FindsEquipmentDepartUtil; import org.jeecg.modules.mdc.util.FindsEquipmentProductionUtil; -import org.jeecg.modules.mdc.vo.MdcEquipmentDepVo; -import org.jeecg.modules.mdc.vo.MdcEquipmentProVo; -import org.jeecg.modules.mdc.vo.MdcEquipmentVo; -import org.jeecg.modules.mdc.vo.WorkshopEquipmentVo; +import org.jeecg.modules.mdc.vo.*; import org.jeecg.modules.system.entity.MdcEquipmentDepart; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.MdcProductionEquipment; import org.jeecg.modules.system.entity.SysDepart; import org.jeecg.modules.system.mapper.MdcEquipmentDepartMapper; import org.jeecg.modules.system.mapper.MdcProductionEquipmentMapper; -import org.jeecg.modules.system.service.*; +import org.jeecg.modules.system.service.IMdcProductionService; +import org.jeecg.modules.system.service.IMdcUserProductionService; +import org.jeecg.modules.system.service.ISysDepartService; +import org.jeecg.modules.system.service.ISysUserDepartService; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -82,10 +81,16 @@ private IEquipmentBaseInfoService equipmentBaseInfoService; @Resource - private ISysDictService sysDictService; + private ISysBaseAPI sysBaseApi; @Resource - private ISysBaseAPI sysBaseApi; + private IMdcAlarmInfoService mdcAlarmInfoService; + + @Resource + private IMdcEquipmentThresholdService mdcEquipmentThresholdService; + + @Resource + private IMdcOverrunAlarmService mdcOverrunAlarmService; @Override @@ -369,7 +374,8 @@ mdcEquipmentDto.setDataFlag(Integer.parseInt(CommonConstant.STATUS_1)); ControlSystem controlSystem = controlSystemService.getByDriveType(mdcEquipmentDto.getDriveType()); // 鏌ヨ璁惧鐘舵�� - Integer oporation = equipmentLogService.selectEquipmentOporation(mdcEquipment.getEquipmentId()); + EquipmentLog equipmentLog = equipmentLogService.selectEquipmentOporation(mdcEquipment.getEquipmentId()); + Integer oporation = equipmentLog.getOporation(); if (controlSystem != null) { //鑾峰彇宸ヤ綔鏁版嵁骞跺垵濮嬪寲 @@ -439,6 +445,21 @@ value = String.valueOf(mdcTorqueConfig.getTorqueValue()); } else { value = "0"; + } + } else if ("alarm".equals(englishName)) { + if (oporation == 22) { + value = equipmentLog.getAlarm(); + } else { + value = "鏃�"; + } + } else if ("alarmContent".equals(englishName)) { + if (oporation == 22) { + List<MdcAlarmInfo> mdcAlarmInfo = mdcAlarmInfoService.list(new LambdaQueryWrapper<MdcAlarmInfo>().eq(MdcAlarmInfo::getDriveType, mdcEquipment.getDriveType()).eq(MdcAlarmInfo::getAlarmCode, equipmentLog.getAlarm()).eq(MdcAlarmInfo::getIsUse, 0)); + if (mdcAlarmInfo != null && !mdcAlarmInfo.isEmpty()) { + value = mdcAlarmInfo.get(0).getAlarmContent(); + } + } else { + value = "鏃�"; } } else { value = result == null ? null : result.toString(); @@ -707,60 +728,69 @@ @Override public IPage<MdcEquipment> pageList(Page<MdcEquipment> page, MdcEquipmentVo mdcEquipment, HttpServletRequest req) { + if (StringUtils.isNotBlank(mdcEquipment.getProductionName())) { + // 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣 + List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName()); + mdcEquipment.setProductionIds(productionIds); + } return this.baseMapper.pageList(page, mdcEquipment); } /** - * 鐩戞帶璁惧杞�熶换鍔� + * 鐩戞帶璁惧杩愯鍙傛暟浠诲姟 */ @Override public void monitoringSpeedProcess() { - List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC")); +// List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC")); + List<MdcEquipment> equipmentList = super.list(); //List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); - // 鑾峰彇瀛楀吀鏁版嵁 - List<DictModel> dictModelList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_OPERATING_SPEED_RANGE); - Integer range = 0; - if (dictModelList != null && !dictModelList.isEmpty()) { - range = Integer.valueOf(dictModelList.get(0).getValue()); - } + for (MdcEquipment mdcEquipment : equipmentList) { - String saveTableName = mdcEquipment.getSaveTableName(); - //鏌ヨ鍗曡〃鏁版嵁 - MdcEquipmentDto mdcEquipmentDto = this.baseMapper.getWorkLineLast(saveTableName); - if (mdcEquipmentDto != null) { - MessageDTO messageDTO = new MessageDTO(); - messageDTO.setTitle("璁惧杩愯杞�熸姤璀︼紒"); - messageDTO.setCategory("棰勮娑堟伅"); - messageDTO.setFromUser("admin"); - messageDTO.setToUser("admin"); - Integer spindlespeed = Integer.valueOf(mdcEquipmentDto.getSpindlespeed()); - Integer actualspindlespeed = Integer.valueOf(mdcEquipmentDto.getActualspindlespeed()); - if (range.equals(0)) { - if (spindlespeed > actualspindlespeed) { - // 瀹為檯鍊煎ぇ浜庤瀹氬�� 楂� - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); - sysBaseApi.sendSysAnnouncement(messageDTO); - } else if (spindlespeed < actualspindlespeed) { - // 瀹為檯鍊煎皬浜庤瀹氬�� 浣� - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); - sysBaseApi.sendSysAnnouncement(messageDTO); - } - } else { - int max = actualspindlespeed + actualspindlespeed * (range / 100); - int min = actualspindlespeed - actualspindlespeed * (range / 100); - if (spindlespeed > max || spindlespeed < min) { - if (spindlespeed > actualspindlespeed) { - // 瀹為檯鍊煎ぇ浜庤瀹氬�� 楂� - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); + List<MdcEquipmentThreshold> mdcEquipmentThresholdList = mdcEquipmentThresholdService.list(new LambdaQueryWrapper<MdcEquipmentThreshold>().eq(MdcEquipmentThreshold::getControlSystemType, mdcEquipment.getDriveType())); + if (mdcEquipmentThresholdList != null && !mdcEquipmentThresholdList.isEmpty()) { + String saveTableName = mdcEquipment.getSaveTableName(); + StringBuilder builder = new StringBuilder(); + for (MdcEquipmentThreshold mdcEquipmentThreshold : mdcEquipmentThresholdList) { + builder.append(",").append(mdcEquipmentThreshold.getEnglishName()).append(" as \"").append(mdcEquipmentThreshold.getEnglishName()).append("\" "); + } + Map<String, Object> param = new HashMap<>(); + param.put("columns", builder.toString()); + param.put("tableName", saveTableName); + Map<String, Object> map = new HashMap<>(); + try { + map = this.baseMapper.getWorkLineLast(param); + } catch (Exception e) { + log.error("鏌ヨ鍗曡〃鏁版嵁鍑哄樊锛�", e); + } + if (!map.isEmpty()) { + for (MdcEquipmentThreshold mdcEquipmentThreshold : mdcEquipmentThresholdList) { + Integer actualValue = Integer.valueOf(map.get(mdcEquipmentThreshold.getEnglishName()).toString()); + Integer max = mdcEquipmentThreshold.getMaxThreshold(); + Integer min = mdcEquipmentThreshold.getMinThreshold(); + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧" + mdcEquipmentThreshold.getChineseName() + "鎶ヨ锛�"); + messageDTO.setCategory("棰勮娑堟伅"); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + MdcOverrunAlarm mdcOverrunAlarm = new MdcOverrunAlarm(); + mdcOverrunAlarm.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcOverrunAlarm.setSetValue(min + "-" + max); + mdcOverrunAlarm.setRealValue(actualValue.toString()); + if (actualValue > max) { + // 楂� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "楂樻姤璀︼紒"); sysBaseApi.sendSysAnnouncement(messageDTO); - } else if (spindlespeed < actualspindlespeed) { - // 瀹為檯鍊煎皬浜庤瀹氬�� 浣� - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); + mdcOverrunAlarm.setAlarmContent(mdcEquipmentThreshold.getChineseName() + "楂樻姤璀�"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); + } else if (actualValue < min) { + // 浣� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "浣庢姤璀︼紒"); sysBaseApi.sendSysAnnouncement(messageDTO); + mdcOverrunAlarm.setAlarmContent(mdcEquipmentThreshold.getChineseName() + "浣庢姤璀�"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); } } } - } } @@ -773,8 +803,121 @@ * @return */ @Override - public List<MdcEquipment> exportXlsList(MdcEquipment mdcEquipment) { + public List<MdcEquipment> exportXlsList(MdcEquipmentVo mdcEquipment) { + if (StringUtils.isNotBlank(mdcEquipment.getProductionName())) { + // 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣 + List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName()); + mdcEquipment.setProductionIds(productionIds); + } return this.baseMapper.exportXlsList(mdcEquipment); } + /** + * 閫氳繃杞﹂棿ids鑾峰彇璁惧鏍� + * + * @param ids + * @return + */ + @Override + public List<MdcEquipmentTree> loadTreeListByProductionIds(String ids) { + List<String> productionIds = Arrays.asList(ids.split(",")); + //鑾峰彇鎵�鏈変骇绾挎暟鎹� + List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder)); + List<String> allProductionIds = new ArrayList<>(); + //鎵惧埌鎵�鏈変骇绾縤d鐨勪笂绾d + if (!productionIds.isEmpty()) { + for (String productionId : productionIds) { + this.getAllProductionIds(productionList, productionId, allProductionIds); + } + } + //杩囨护浜х嚎鏁版嵁 + List<MdcProduction> list = productionList.stream().filter((MdcProduction mdcProduction) -> allProductionIds.contains(mdcProduction.getId())).collect(Collectors.toList()); + //缁勮浜х嚎璁惧鏍� + List<MdcEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list); + //濉厖璁惧鏁版嵁 + FillEquipmentByProduction(treeList); + return treeList; + } + + /** + * 鏌ヨ鍗曡〃鏁版嵁 + * @param tableName + * @return + */ + @Override + public MdcEquipmentDto getWorkLineLast(String tableName) { + return this.baseMapper.findWorkLineLast(tableName); + } + + /** + * 璁惧杩愯鐘舵�佺粺璁� + */ + @Override + public List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key) { + List<MdcCommonVo> result = new ArrayList<>(); + MdcCommonVo mdcCommonVo1 = new MdcCommonVo(); + mdcCommonVo1.setName("鍏虫満"); + mdcCommonVo1.setValue(0); + result.add(mdcCommonVo1); + MdcCommonVo mdcCommonVo2 = new MdcCommonVo(); + mdcCommonVo2.setName("鎶ヨ"); + mdcCommonVo2.setValue(0); + result.add(mdcCommonVo2); + MdcCommonVo mdcCommonVo3 = new MdcCommonVo(); + mdcCommonVo3.setName("寰呮満"); + mdcCommonVo3.setValue(0); + result.add(mdcCommonVo3); + MdcCommonVo mdcCommonVo4 = new MdcCommonVo(); + mdcCommonVo4.setName("杩愯"); + mdcCommonVo4.setValue(0); + result.add(mdcCommonVo4); + MdcEquipmentStatusVo mdcEquipmentStatusVo = new MdcEquipmentStatusVo(); + List<String> equipmentIdList = this.getEquipmentIdsProduction(userId, key); + if (equipmentIdList == null || equipmentIdList.isEmpty()) { + return result; + } + List<EquipmentLog> logList = this.baseMapper.getEquipmentStatusList(equipmentIdList); + if (logList != null && !logList.isEmpty()) { + for (EquipmentLog equipmentLog : logList) { + if (equipmentLog.getOporation() != null) { + switch (equipmentLog.getOporation()) { + case 1: + case 2: + mdcEquipmentStatusVo.setWaitCount(mdcEquipmentStatusVo.getWaitCount() + 1); + break; + case 3: + mdcEquipmentStatusVo.setRunCount(mdcEquipmentStatusVo.getRunCount() + 1); + break; + case 22: + mdcEquipmentStatusVo.setAlarmCount(mdcEquipmentStatusVo.getAlarmCount() + 1); + break; + default: + mdcEquipmentStatusVo.setCloseCount(mdcEquipmentStatusVo.getCloseCount() + 1); + break; + } + } else { + mdcEquipmentStatusVo.setCloseCount(mdcEquipmentStatusVo.getCloseCount() + 1); + } + } + } + result.clear(); + MdcCommonVo mdcCommonVo5 = new MdcCommonVo(); + mdcCommonVo5.setName("鍏虫満"); + mdcCommonVo5.setValue(mdcEquipmentStatusVo.getCloseCount()); + result.add(mdcCommonVo5); + MdcCommonVo mdcCommonVo6 = new MdcCommonVo(); + mdcCommonVo6.setName("鎶ヨ"); + mdcCommonVo6.setValue(mdcEquipmentStatusVo.getAlarmCount()); + result.add(mdcCommonVo6); + MdcCommonVo mdcCommonVo7 = new MdcCommonVo(); + mdcCommonVo7.setName("寰呮満"); + mdcCommonVo7.setValue(mdcEquipmentStatusVo.getWaitCount()); + result.add(mdcCommonVo7); + MdcCommonVo mdcCommonVo8 = new MdcCommonVo(); + mdcCommonVo8.setName("杩愯"); + mdcCommonVo8.setValue(mdcEquipmentStatusVo.getRunCount()); + result.add(mdcCommonVo8); + return result; + } + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentWorkLineServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentWorkLineServiceImpl.java index fe773d0..0701d87 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentWorkLineServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentWorkLineServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -111,6 +112,20 @@ } } resultList = resultList.stream().sorted(Comparator.comparing(EquipmentMachingDto::getCollectTime)).collect(Collectors.toList()); + for (MdcDriveTypeParamConfig mdcDriveTypeParamConfig : mdcDriveTypeParamConfigs) { + if ("spindleCurrent".equals(mdcDriveTypeParamConfig.getEnglishName())) { + for (EquipmentMachingDto equipmentMachingDto : resultList) { + String devicePower = mdcEquipment.getDevicePower(); + if (StringUtils.isNotBlank(devicePower)) { + devicePower = "2500"; + } + String spindleload = equipmentMachingDto.getSpindleload(); + if (StringUtils.isNotBlank(spindleload)) { + equipmentMachingDto.setSpindleCurrent(new BigDecimal(devicePower).divide(new BigDecimal("380"), 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(spindleload))); + } + } + } + } return resultList; } @@ -157,35 +172,56 @@ } for (int i = 1; i <= collentParams.size(); i++) { try { - switch (i) { - case 1: - ei.setDataLine1(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); + switch (collentParams.get(i - 1).getEnglishName()) { + case "spindlespeed": + ei.setSpindlespeed(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); break; - case 2: - ei.setDataLine2(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); + case "spindleload": + ei.setSpindleload(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); break; - case 3: - ei.setDataLine3(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); + case "spindlebeilv": + ei.setSpindlebeilv(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); break; - case 4: - ei.setDataLine4(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); + case "feedrate": + ei.setFeedrate(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); break; - case 5: - ei.setDataLine5(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); - break; - case 6: - ei.setDataLine6(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); - break; - case 7: - ei.setDataLine7(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); - break; - case 8: - ei.setDataLine8(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); + case "feedbeilv": + ei.setFeedbeilv(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); break; } } catch (Exception e) { e.printStackTrace(); } +// try { +// switch (i) { +// case 1: +// ei.setDataLine1(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); +// break; +// case 2: +// ei.setDataLine2(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); +// break; +// case 3: +// ei.setDataLine3(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); +// break; +// case 4: +// ei.setDataLine4(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); +// break; +// case 5: +// ei.setDataLine5(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); +// break; +// case 6: +// ei.setDataLine6(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); +// break; +// case 7: +// ei.setDataLine7(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); +// break; +// case 8: +// ei.setDataLine8(map.get(collentParams.get(i - 1).getEnglishName()) == null ? null : map.get(collentParams.get(i - 1).getEnglishName()).toString()); +// break; +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } } dto.add(ei); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java new file mode 100644 index 0000000..657f19f --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMessageApprovalServiceImpl.java @@ -0,0 +1,43 @@ +package org.jeecg.modules.mdc.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.mdc.constant.MdcConstant; +import org.jeecg.modules.mdc.entity.MdcMessageApproval; +import org.jeecg.modules.mdc.mapper.MdcMessageApprovalMapper; +import org.jeecg.modules.mdc.service.IMdcMessageApprovalService; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Description: mdc娑堟伅纭琛� + * @Author: Lius + * @Date: 2024-03-06 + * @Version: V1.0 + */ +@Service +public class MdcMessageApprovalServiceImpl extends ServiceImpl<MdcMessageApprovalMapper, MdcMessageApproval> implements IMdcMessageApprovalService { + + /** + * 鍒〃鏌ヨ + */ + @Override + public IPage<MdcMessageApproval> pageList(String userId, Page<MdcMessageApproval> page, MdcMessageApproval mdcMessageApproval, HttpServletRequest req) { + IPage<MdcMessageApproval> pageList = this.baseMapper.pageList(userId, page, mdcMessageApproval); + List<MdcMessageApproval> mdcMessageApprovalList = pageList.getRecords(); + if (mdcMessageApprovalList != null && !mdcMessageApprovalList.isEmpty()) { + pageList.getRecords().forEach(item -> { + if (item.getSenderIds().contains(userId) && (item.getMsgStatus().equals(MdcConstant.MSG_STATUS_0) || item.getMsgStatus().equals(MdcConstant.MSG_STATUS_3))) { + item.setHasProcess(true); + } + if (item.getApproverIds().contains(userId) && item.getMsgStatus().equals(MdcConstant.MSG_STATUS_1)) { + item.setHasConfirm(true); + } + }); + } + return pageList; + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverrunAlarmServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverrunAlarmServiceImpl.java new file mode 100644 index 0000000..3e46eff --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverrunAlarmServiceImpl.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.mdc.service.impl; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.entity.MdcOverrunAlarm; +import org.jeecg.modules.mdc.mapper.MdcOverrunAlarmMapper; +import org.jeecg.modules.mdc.service.IMdcOverrunAlarmService; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Description: mdc瓒呴檺鎶ヨ + * @Author: Lius + * @Date: 2024-03-01 + * @Version: V1.0 + */ +@Service +public class MdcOverrunAlarmServiceImpl extends ServiceImpl<MdcOverrunAlarmMapper, MdcOverrunAlarm> implements IMdcOverrunAlarmService { + + @Override + public IPage<MdcOverrunAlarm> pageList(Page<MdcOverrunAlarm> page, MdcEquipment mdcEquipment, HttpServletRequest req) { + return this.baseMapper.pageList(page, mdcEquipment); + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcCommonVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcCommonVo.java new file mode 100644 index 0000000..d37ef5f --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcCommonVo.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; + +/** + * @author Lius + * @date 2024/3/13 18:02 + */ +@Data +public class MdcCommonVo { + private Integer value; + private String name; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java index e6ffd89..04db1e5 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportQueryVo.java @@ -46,4 +46,9 @@ */ private String equipmentType; + /** + * 椹卞姩绫诲瀷 + */ + private String driveType; + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java index 221e89e..3e55858 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEfficiencyReportShiftQueryVo.java @@ -49,4 +49,9 @@ */ private String equipmentType; + /** + * 椹卞姩绫诲瀷 + */ + private String driveType; + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentStatusVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentStatusVo.java new file mode 100644 index 0000000..4232a78 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentStatusVo.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; + +/** + * @author Lius + * @date 2024/3/13 15:43 + */ +@Data +public class MdcEquipmentStatusVo { + /** + * 杩愯 + */ + private Integer runCount = 0; + /** + * 鍏虫満 + */ + private Integer closeCount = 0; + /** + * 鎶ヨ + */ + private Integer alarmCount = 0; + /** + * 寰呮満 + */ + private Integer waitCount = 0; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java index 19ec3ef..20397fb 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java @@ -2,6 +2,8 @@ import lombok.Data; +import java.util.List; + /** * @author: LiuS * @create: 2023-04-11 10:34 @@ -16,4 +18,5 @@ private String equipmentType; private String driveType; private String productionName; + private List<String> productionIds; } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/MdcProduction.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/MdcProduction.java index f23d1f6..5d36ad0 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/MdcProduction.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/MdcProduction.java @@ -64,6 +64,11 @@ @ApiModelProperty(value = "浜х嚎缂栫爜") private String orgCode; /** + * 浜х嚎缂栫爜 + */ + @ApiModelProperty(value = "杞﹂棿缂栫爜") + private String productionCode; + /** * 鍦板潃 */ @Excel(name = "鍦板潃", width = 15) diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java index 5d15bac..99fd90f 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java @@ -169,6 +169,12 @@ private Integer userIdentity; /** + * 鐢ㄦ埛绫诲瀷锛�1 鏅�氭垚鍛� 2 宸ユ 3 杞﹂棿 4 鍏徃锛� + */ + @Excel(name="锛�1鏅�氭垚鍛� 2宸ユ 3杞﹂棿 4鍏徃锛�",width = 15) + private Integer userType; + + /** * 璐熻矗閮ㄩ棬 */ @Excel(name="璐熻矗閮ㄩ棬",width = 15,dictTable ="sys_depart",dicText = "depart_name",dicCode = "id") @@ -210,5 +216,7 @@ */ private Date passwordTime; + private String equipmentIds; + } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java index d6313fc..0b9f429 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java @@ -21,4 +21,17 @@ */ @Select("SELECT * FROM mdc_production where del_flag ='0' AND parent_id = #{parentId,jdbcType=VARCHAR}") List<MdcProduction> queryProdByPid(@Param("parentId") String parentId); + + /** + * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣 + */ + List<String> recursionChildren(@Param("productionId") String productionId); + + /** + * 鏍规嵁鐢ㄦ埛id鍜岃溅闂磇d鑾峰彇鐢ㄦ埛鎷ユ湁鐨勮溅闂磇d + * @param userId + * @param productionId + * @return + */ + String findFirstProduction(@Param("userId") String userId, @Param("productionId") String productionId); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java index 4c2aad7..2ad2698 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java @@ -1,13 +1,13 @@ package org.jeecg.modules.system.mapper; -import java.util.List; - +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.system.entity.SysAnnouncement; import org.jeecg.modules.system.entity.SysAnnouncementSend; import org.jeecg.modules.system.model.AnnouncementSendModel; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.List; /** * @Description: 鐢ㄦ埛閫氬憡闃呰鏍囪琛� @@ -48,4 +48,9 @@ * 鑾峰彇棣栭〉娑堟伅 */ List<SysAnnouncementSend> getPrimaryInfo(@Param("userId") String userId,@Param("msgCategoryList")List<String> msgCategoryList); + + /** + * 鏍规嵁娑堟伅鍐呭鏌ヨ娑堟伅閫氱煡 + */ + SysAnnouncement findLastMessage(@Param("messageContent") String messageContent); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java index cb3734c..7966336 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java @@ -178,4 +178,9 @@ * 鏍规嵁瑙掕壊缂栫爜鏌ヨ鐢ㄦ埛id闆嗗悎 */ List<String> getUserByRoleCode(@Param("roleCode") String roleCode); + + /** + * 鏍规嵁瑙掕壊缂栫爜鍜岃澶囩紪鍙锋煡璇㈢敤鎴� + */ + List<SysUser> getEquipmentAdmin(@Param("roleCode") String roleCode, @Param("equipmentId") String equipmentId); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml index ce695b0..e1cad5c 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml @@ -2,4 +2,28 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.system.mapper.MdcProductionMapper"> + <!--閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣--> + <select id="recursionChildren" resultType="java.lang.String"> + WITH temp ( id ) AS ( + SELECT + id + FROM + mdc_production + WHERE + id = #{ productionId } UNION ALL + SELECT + a.id + FROM + mdc_production a + INNER JOIN temp ON a.parent_id = temp.id + ) SELECT + * + FROM + temp + </select> + + <!--鏍规嵁鐢ㄦ埛id鍜岃溅闂磇d鑾峰彇鐢ㄦ埛鎷ユ湁鐨勮溅闂磇d--> + <select id="findFirstProduction" resultType="java.lang.String"> + SELECT TOP 1 id FROM mdc_user_production t1 LEFT JOIN mdc_production t2 ON t1.pro_id = t2.id WHERE t1.user_id = #{ userId } AND t2.parent_id = #{productionId} + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml index 532dd8f..df2baa5 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml @@ -125,4 +125,8 @@ </if> </select> + <select id="findLastMessage" resultType="org.jeecg.modules.system.entity.SysAnnouncement"> + SELECT TOP 1 * FROM sys_announcement WHERE msg_content = #{messageContent} ORDER BY create_time DESC; + </select> + </mapper> diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml index feef5b8..3e751a9 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml @@ -206,4 +206,15 @@ WHERE sr.role_code = #{ roleCode } </select> + <!--鏍规嵁瑙掕壊缂栫爜鍜岃澶囩紪鍙锋煡璇㈢敤鎴�--> + <select id="getEquipmentAdmin" resultType="org.jeecg.modules.system.entity.SysUser"> + SELECT + t1.* + FROM + sys_user t1 + LEFT JOIN sys_user_role t2 ON t1.id = t2.user_id + LEFT JOIN sys_role t3 ON t2.role_id = t3.id + WHERE + t3.role_code = #{roleCode} AND equipment_ids LIKE concat(concat('%',#{equipmentId}),'%') + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/MdcProductionTreeModel.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/MdcProductionTreeModel.java index 3fc3399..c7f84f5 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/MdcProductionTreeModel.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/MdcProductionTreeModel.java @@ -57,6 +57,8 @@ private String orgCode; + private String productionCode; + private String address; private String memo; @@ -101,6 +103,7 @@ this.description = mdcProduction.getDescription(); this.orgType = mdcProduction.getOrgType(); this.orgCode = mdcProduction.getOrgCode(); + this.productionCode = mdcProduction.getProductionCode(); this.address = mdcProduction.getAddress(); this.memo = mdcProduction.getMemo(); this.status = mdcProduction.getStatus(); diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java index e2f6d55..8dd86b9 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java @@ -64,4 +64,18 @@ * 鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」 */ List<ProductionIdModel> loadProductionTreeOptions(String userId); + + /** + * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣 + */ + List<String> recursionChildren(String productionId); + + /** + * 鏍规嵁鐢ㄦ埛id鍜岃溅闂磇d鑾峰彇鐢ㄦ埛鎷ユ湁鐨勮溅闂磇d + * @param userId + * @param productionId + * @return + */ + String findFirstProduction(String userId, String productionId); + } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java index a9314bb..d08dfaf 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java @@ -67,4 +67,8 @@ void jobSendMessage(String jobDescription, String exceptionDetail); + /** + * 鏍规嵁娑堟伅鍐呭鏌ヨ娑堟伅閫氱煡鏃堕棿 + */ + SysAnnouncement findLastMessage(String messageContent); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 0a4567f..751395e 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -318,4 +318,6 @@ public List<SysUser> getAllUsersByRoleId(String roleId); List<String> getUserByRoleCode(String roleCode); + + List<SysUser> getEquipmentAdmin(String roleCode, String equipmentId); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java index 0e8f025..d95c890 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java @@ -217,6 +217,25 @@ } /** + * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣id + */ + @Override + public List<String> recursionChildren(String productionId) { + return this.baseMapper.recursionChildren(productionId); + } + + /** + * 鏍规嵁鐢ㄦ埛id鍜岃溅闂磇d鑾峰彇鐢ㄦ埛鎷ユ湁鐨勮溅闂磇d + * @param userId + * @param productionId + * @return + */ + @Override + public String findFirstProduction(String userId, String productionId) { + return this.baseMapper.findFirstProduction(userId, productionId); + } + + /** * delete 鏂规硶璋冪敤 閫掑綊鏌ユ壘瀛愰泦id */ private void checkChildrenExists(String id, List<String> idList) { diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java index 783aa0c..427d0b4 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java @@ -251,4 +251,12 @@ } + /** + * 鏍规嵁娑堟伅鍐呭鏌ヨ娑堟伅閫氱煡 + */ + @Override + public SysAnnouncement findLastMessage(String messageContent) { + return sysAnnouncementSendMapper.findLastMessage(messageContent); + } + } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 4decd8a..106de85 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -705,4 +705,12 @@ public List<String> getUserByRoleCode(String roleCode) { return this.baseMapper.getUserByRoleCode(roleCode); } + + /** + * 鏍规嵁瑙掕壊缂栫爜鍜岃澶囩紪鍙锋煡璇㈢敤鎴� + */ + @Override + public List<SysUser> getEquipmentAdmin(String roleCode, String equipmentId) { + return this.baseMapper.getEquipmentAdmin(roleCode, equipmentId); + } } -- Gitblit v1.9.3