From 901a05d4dcf6a61f3387715f7074831a7ce04ead Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期一, 15 一月 2024 16:46:16 +0800 Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/mdc_430 into develop --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessCountMapper.xml | 21 +++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentOvertimeServiceImpl.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml | 12 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java | 14 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverallEquipmentEfficiencyService.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcTorqueConfigController.java | 1 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java | 11 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java | 34 +++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java | 1 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessCountMapper.java | 12 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java | 1 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IProcessCountService.java | 10 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcProcessCountController.java | 14 - lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipment.java | 7 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java | 8 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcProcessCountDto.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentMonitor.java | 6 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java | 9 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverallEquipmentEfficiency.java | 42 +++--- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 31 +++- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java | 73 +++++++++-- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java | 33 ++++- 24 files changed, 261 insertions(+), 94 deletions(-) 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 31fb7bc..51c41a8 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 @@ -1,5 +1,6 @@ package org.jeecg.modules.mdc.controller; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; @@ -9,6 +10,7 @@ import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; @@ -230,6 +232,7 @@ Result<MdcEquipment> result = new Result<>(); String selectedDeparts = mdcEquipment.getSelectedDeparts(); String selectedProduction = mdcEquipment.getSelectedProduction(); + mdcEquipment.setEquipmentStatus(CommonConstant.STATUS_NORMAL); try { mdcEquipmentService.saveMdcEquipment(mdcEquipment, selectedDeparts, selectedProduction); result.success("娣诲姞鎴愬姛锛�"); @@ -467,4 +470,35 @@ MdcEquipment mdcEquipment = mdcEquipmentService.getEquipmentByDepPid(pid, userId); return Result.OK(mdcEquipment); } + + /** + * 鎵嬪姩涓婃姤璁惧寮傚父鍙婅鏄� + * @return + */ + @AutoLog(value = "璁惧琛�-鎵嬪姩涓婃姤璁惧寮傚父鍙婅鏄�") + @ApiOperation(value = "璁惧琛�-鎵嬪姩涓婃姤璁惧寮傚父鍙婅鏄�", notes = "璁惧琛�-鎵嬪姩涓婃姤璁惧寮傚父鍙婅鏄�") + @GetMapping("/updateEquipmentStatus") + public Result<?> updateEquipmentStatus(@RequestParam(name = "id", required = true) String id) { + Result result = new Result<>(); + try { + MdcEquipment mdcEquipment1 = mdcEquipmentService.getById(id); + if (mdcEquipment1 == null) { + result.error500("鏈壘鍒板搴斿疄浣�"); + } else { + LambdaUpdateWrapper<MdcEquipment> updateWrapper = new LambdaUpdateWrapper<MdcEquipment>(); + updateWrapper.eq(MdcEquipment::getId, id); + if (CommonConstant.STATUS_NORMAL.equals(mdcEquipment1.getEquipmentStatus())) { + updateWrapper.set(MdcEquipment::getEquipmentStatus, CommonConstant.STATUS_DISABLE); + } else { + updateWrapper.set(MdcEquipment::getEquipmentStatus, CommonConstant.STATUS_NORMAL); + } + mdcEquipmentService.update(updateWrapper); + result.success("鍙嶉鎴愬姛!"); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鎿嶄綔澶辫触"); + } + return Result.OK("鍙嶉鎴愬姛锛�"); + } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcProcessCountController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcProcessCountController.java index 9b1599c..055f117 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcProcessCountController.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcProcessCountController.java @@ -1,7 +1,5 @@ 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; @@ -16,11 +14,11 @@ import org.jeecg.modules.mdc.vo.MdcProcessCountVo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * @author Lius @@ -40,22 +38,16 @@ * 鍒嗛〉鍒楄〃鏌ヨ * * @param mdcProcessCountVo - * @param pageNo - * @param pageSize * @param req * @return */ @AutoLog(value = "mdc璁惧鍔犲伐涓暟琛�-鍒嗛〉鍒楄〃鏌ヨ") @ApiOperation(value = "mdc璁惧鍔犲伐涓暟琛�-鍒嗛〉鍒楄〃鏌ヨ", notes = "mdc璁惧鍔犲伐涓暟琛�-鍒嗛〉鍒楄〃鏌ヨ") @GetMapping(value = "/list") - public Result<?> queryPageList(MdcProcessCountVo mdcProcessCountVo, - @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, - HttpServletRequest req) { + public Result<?> queryPageList(MdcProcessCountVo mdcProcessCountVo, HttpServletRequest req) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); - Page<MdcProcessCountDto> page = new Page<MdcProcessCountDto>(pageNo, pageSize); - IPage<MdcProcessCountDto> pageList = processCountService.pageList(userId, page, mdcProcessCountVo, req); + List<MdcProcessCountDto> pageList = processCountService.pageList(userId, mdcProcessCountVo, req); return Result.OK(pageList); } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcTorqueConfigController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcTorqueConfigController.java index 7981de8..49a6baf 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcTorqueConfigController.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcTorqueConfigController.java @@ -1,6 +1,5 @@ package org.jeecg.modules.mdc.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcProcessCountDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcProcessCountDto.java index c319b29..4e3746d 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcProcessCountDto.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcProcessCountDto.java @@ -11,7 +11,7 @@ private String equipmentId; private String equipmentName; private String driveType; - private String theDate; +// private String theDate; private String sequenceNumber; private Long duration; private Integer processCount; 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 7464415..058f9bc 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 @@ -122,6 +122,13 @@ @ApiModelProperty(value = "璁惧鍔熺巼") private String devicePower; + /** + * 璁惧鐘舵�� + */ + @Excel(name = "璁惧鐘舵��", width = 15) + @ApiModelProperty(value = "璁惧鐘舵��") + private Integer equipmentStatus; + /**閮ㄩ棬鍚嶇О*/ private transient String orgCodeTxt; diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentMonitor.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentMonitor.java index e050cfb..be37156 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentMonitor.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentMonitor.java @@ -58,6 +58,12 @@ private String oporationDict; /** + * 璁惧鐘舵�� + */ + @ApiModelProperty(value = "璁惧鐘舵��") + private Integer equipmentStatus; + + /** * 閲囬泦鏃堕棿 */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverallEquipmentEfficiency.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverallEquipmentEfficiency.java index 0736092..ea1fcea 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverallEquipmentEfficiency.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverallEquipmentEfficiency.java @@ -59,126 +59,126 @@ */ @Excel(name = "姣忕彮灏忔椂", width = 15) @ApiModelProperty(value = "姣忕彮灏忔椂") - private BigDecimal shiftTimeCount; + private BigDecimal shiftTimeCount = BigDecimal.ZERO; /** * 鍔犵彮鏃堕棿 */ @Excel(name = "鍔犵彮鏃堕棿", width = 15) @ApiModelProperty(value = "鍔犵彮鏃堕棿") - private BigDecimal overtime; + private BigDecimal overtime = BigDecimal.ZERO; /** * 瀹為檯鐝骇澶╂暟 */ @Excel(name = "瀹為檯鐝骇澶╂暟", width = 15) @ApiModelProperty(value = "瀹為檯鐝骇澶╂暟") - private BigDecimal actualWorkDayCount; + private BigDecimal actualWorkDayCount = BigDecimal.ZERO; /** * 鏈堝害瀹為檯鐝骇鎬绘椂闂� */ @Excel(name = "鏈堝害瀹為檯鐝骇鎬绘椂闂�", width = 15) @ApiModelProperty(value = "鏈堝害瀹為檯鐝骇鎬绘椂闂�") - private BigDecimal monthActualWorkDayTimeCount; + private BigDecimal monthActualWorkDayTimeCount = BigDecimal.ZERO; /** * 鏁呴殰鍋滄満鏃堕暱(鍒嗛挓) */ @Excel(name = "鏁呴殰鍋滄満鏃堕暱", width = 15) @ApiModelProperty(value = "鏁呴殰鍋滄満鏃堕暱(鍒嗛挓)") - private BigDecimal breakdownDownDuration; + private BigDecimal breakdownDownDuration = BigDecimal.ZERO; /** * 鎹㈠瀷璋冭瘯鏃堕暱(鍒嗛挓) */ @Excel(name = "鎹㈠瀷璋冭瘯鏃堕暱(鍒嗛挓)", width = 15) @ApiModelProperty(value = "鎹㈠瀷璋冭瘯鏃堕暱(鍒嗛挓)") - private BigDecimal conversionDebugDuration; + private BigDecimal conversionDebugDuration = BigDecimal.ZERO; /** * 鐗╂枡鐭己鏃堕暱(鍒嗛挓) */ @Excel(name = "鐗╂枡鐭己鏃堕暱(鍒嗛挓)", width = 15) @ApiModelProperty(value = "鐗╂枡鐭己鏃堕暱(鍒嗛挓)") - private BigDecimal materialShortageDuration; + private BigDecimal materialShortageDuration = BigDecimal.ZERO; /** * 璁″垝绛変换鍔�(鍒嗛挓) */ @Excel(name = "璁″垝绛変换鍔�(鍒嗛挓)", width = 15) @ApiModelProperty(value = "璁″垝绛変换鍔�(鍒嗛挓)") - private BigDecimal plannedTaskDuration; + private BigDecimal plannedTaskDuration = BigDecimal.ZERO; /** * 妫�楠�(鍒嗛挓) */ @Excel(name = "妫�楠�(鍒嗛挓)", width = 15) @ApiModelProperty(value = "妫�楠�(鍒嗛挓)") - private BigDecimal inspectDuration; + private BigDecimal inspectDuration = BigDecimal.ZERO; /** * 鍏朵粬(鍒嗛挓) */ @Excel(name = "鍏朵粬(鍒嗛挓)", width = 15) @ApiModelProperty(value = "鍏朵粬(鍒嗛挓)") - private BigDecimal otherDuration; + private BigDecimal otherDuration = BigDecimal.ZERO; /** * 璁″垝淇濆吇 */ @Excel(name = "璁″垝淇濆吇", width = 15) @ApiModelProperty(value = "璁″垝淇濆吇") - private BigDecimal plannedMaintenanceDuration; + private BigDecimal plannedMaintenanceDuration = BigDecimal.ZERO; /** * 浼氳鍩硅鏃堕暱 */ @Excel(name = "浼氳鍩硅鏃堕暱", width = 15) @ApiModelProperty(value = "浼氳鍩硅鏃堕暱") - private BigDecimal conferenceTrainingDuration; + private BigDecimal conferenceTrainingDuration = BigDecimal.ZERO; /** * 鍏朵粬浼戞伅鏃堕暱 */ @Excel(name = "鍏朵粬浼戞伅鏃堕暱", width = 15) @ApiModelProperty(value = "鍏朵粬浼戞伅鏃堕暱") - private BigDecimal otherRestDuration; + private BigDecimal otherRestDuration = BigDecimal.ZERO; /** * 璐熻嵎鏃堕棿 */ @Excel(name = "璐熻嵎鏃堕棿", width = 15) @ApiModelProperty(value = "璐熻嵎鏃堕棿") - private BigDecimal loadTime; + private BigDecimal loadTime = BigDecimal.ZERO; /** * 鏃堕棿寮�鍔ㄧ巼 */ @Excel(name = "鏃堕棿寮�鍔ㄧ巼", width = 15) @ApiModelProperty(value = "鏃堕棿寮�鍔ㄧ巼") - private BigDecimal timeActuationRate; + private BigDecimal timeActuationRate = BigDecimal.ZERO; /** * 鍔犲伐闆朵欢鏁� */ @Excel(name = "鍔犲伐闆朵欢鏁�", width = 15) @ApiModelProperty(value = "鍔犲伐闆朵欢鏁�") - private BigDecimal processQuantity; + private BigDecimal processQuantity = BigDecimal.ZERO; /** * 鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓) */ @Excel(name = "鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓)", width = 15) @ApiModelProperty(value = "鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓)") - private BigDecimal standardProcessDuration; + private BigDecimal standardProcessDuration = BigDecimal.ZERO; /** * 鎬ц兘寮�鍔ㄧ巼 */ @Excel(name = "鎬ц兘寮�鍔ㄧ巼", width = 15) @ApiModelProperty(value = "鎬ц兘寮�鍔ㄧ巼") - private BigDecimal performanceRate; + private BigDecimal performanceRate = BigDecimal.ZERO; /** * 搴熷搧鏁� */ @Excel(name = "搴熷搧鏁�", width = 15) @ApiModelProperty(value = "搴熷搧鏁�") - private BigDecimal unqualifiedQuantity; + private BigDecimal unqualifiedQuantity = BigDecimal.ZERO; /** * 鍚堟牸鐜� */ @Excel(name = "鍚堟牸鐜�", width = 15) @ApiModelProperty(value = "鍚堟牸鐜�") - private BigDecimal passRate; + private BigDecimal passRate = BigDecimal.ONE; /** * 璁惧缁煎悎鏁堢巼 */ @Excel(name = "璁惧缁煎悎鏁堢巼", width = 15) @ApiModelProperty(value = "璁惧缁煎悎鏁堢巼") - private BigDecimal overallEquipmentEfficiency; + private BigDecimal overallEquipmentEfficiency = BigDecimal.ONE; } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java index bdea1c6..873c326 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcTorqueConfig.java @@ -7,7 +7,6 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.annotations.ApiOperation; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -70,6 +69,13 @@ private float torqueValue; /** + * 杩涚粰鍙傛暟 + */ + @Excel(name = "杩涚粰鍙傛暟", width = 15) + @ApiModelProperty("杩涚粰鍙傛暟") + private String feedParameter; + + /** * 澶囨敞 */ @Excel(name = "澶囨敞", width = 30) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java index 0186ee7..304cc7b 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java @@ -25,6 +25,15 @@ @Slf4j public class RunningOverallEquipmentEfficiencyJob implements Job { + /** + * 鑻ュ弬鏁板彉閲忓悕淇敼 QuartzJobController涓篃闇�瀵瑰簲淇敼 鏃堕棿锛� yyyyMMdd 渚嬶細 20230414 + */ + private String parameter; + + public void setParameter(String parameter) { + this.parameter = parameter; + } + @Resource private IQuartzJobService quartzJobService; @@ -45,10 +54,11 @@ if (byJobClassName != null && !byJobClassName.isEmpty()) { quartzLog.setJobId(byJobClassName.get(0).getId()); } - log.info("瀹氭椂璁$畻璁惧缁煎悎鏁堢巼OEE浠诲姟 RunningOverallEquipmentEfficiencyJob start! 鏃堕棿:" + DateUtils.now()); + quartzLog.setParams(this.parameter); + log.info("瀹氭椂璁$畻璁惧缁煎悎鏁堢巼OEE浠诲姟 RunningOverallEquipmentEfficiencyJob start! 鏃堕棿:" + DateUtils.now(), this.parameter); long startTime = System.currentTimeMillis(); try { - mdcOverallEquipmentEfficiencyService.runningOverallEquipmentEfficiency(); + mdcOverallEquipmentEfficiencyService.runningOverallEquipmentEfficiency(this.parameter); quartzLog.setIsSuccess(0); } catch (Exception e) { quartzLog.setIsSuccess(-1); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessCountMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessCountMapper.java index 4606be3..75d3665 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessCountMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessCountMapper.java @@ -1,12 +1,13 @@ 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.dto.MdcProcessCountDto; import org.jeecg.modules.mdc.entity.MdcProcessCount; import org.jeecg.modules.mdc.vo.MdcProcessCountVo; + +import java.math.BigDecimal; +import java.util.List; /** * @author Lius @@ -18,9 +19,12 @@ /** * 鍒嗛〉鏌ヨ * - * @param page * @param mdcProcessCountVo * @return */ - IPage<MdcProcessCountDto> pageList(Page<MdcProcessCountDto> page, @Param("mdcProcessCountVo") MdcProcessCountVo mdcProcessCountVo); + List<MdcProcessCountDto> pageList(@Param("mdcProcessCountVo") MdcProcessCountVo mdcProcessCountVo); + + BigDecimal findDuration(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate); + + BigDecimal findCount(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate); } 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 893762f..c682b6e 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 @@ -96,6 +96,7 @@ k.equipmentName, MAX ( l.Oporation ) Oporation, k.id, + k.equipment_status, k.equipment_type equipmentType, k.equipment_type_pictures FROM @@ -105,13 +106,14 @@ MAX ( t.equipmentName ) equipmentName, MAX ( m.CollectTime ) CollectTime, id, + equipment_status, equipment_type, equipment_type_pictures FROM - ( SELECT equipment_id EquipmentID, equipment_Name equipmentName, id, equipment_type FROM mdc_equipment WHERE equipment_id IN - <foreach collection="equipmentIds" index="index" item="id" open="(" separator="," close=")"> - #{id} - </foreach> + ( SELECT equipment_id EquipmentID, equipment_Name equipmentName, id, equipment_type, equipment_status FROM mdc_equipment WHERE equipment_id IN + <foreach collection="equipmentIds" index="index" item="id" open="(" separator="," close=")"> + #{id} + </foreach> ) t LEFT JOIN ( SELECT equipment_type_name, equipment_type_pictures FROM mdc_equipment_type) met ON t.equipment_type = met.equipment_type_name LEFT JOIN ( SELECT EquipmentID, CollectTime, Oporation FROM EquipmentLog WHERE Oporation <![CDATA[ <> ]]> 23 ) m ON t.EquipmentID= m.EquipmentID @@ -119,6 +121,7 @@ t.EquipmentID, id, equipment_type, + equipment_status, equipment_type_pictures ) k LEFT JOIN ( SELECT EquipmentID, CollectTime, Oporation FROM EquipmentLog WHERE Oporation <![CDATA[ <> ]]> 23 ) l ON k.CollectTime= l.CollectTime @@ -128,6 +131,7 @@ k.CollectTime, k.equipmentName, k.id, + k.equipment_status, k.equipment_type, k.equipment_type_pictures ORDER BY diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml index 7e17582..aa6acb7 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml @@ -38,6 +38,7 @@ t1.update_time FROM mdc_overall_equipment_efficiency t1 + LEFT JOIN mdc_equipment t2 ON t1.equipment_id = t2.equipment_id <where> <if test="mdcOverallEquipmentEfficiency.startTime != null and mdcOverallEquipmentEfficiency.startTime != '' and mdcOverallEquipmentEfficiency.endTime != null and mdcOverallEquipmentEfficiency.endTime != ''"> AND t1.valid_date BETWEEN #{ mdcOverallEquipmentEfficiency.startTime } AND #{ mdcOverallEquipmentEfficiency.endTime } @@ -48,6 +49,9 @@ #{ id } </foreach> </if> + <if test="mdcOverallEquipmentEfficiency.driveType != null and mdcOverallEquipmentEfficiency.driveType != ''"> + AND t2.drive_type = #{ mdcOverallEquipmentEfficiency.driveType } + </if> </where> </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessCountMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessCountMapper.xml index 202d360..7ecd404 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessCountMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessCountMapper.xml @@ -12,7 +12,6 @@ t1.equipment_id equipmentId, MAX(t1.equipment_name) equipmentName, MAX(t2.drive_type) driveType, - t1.the_date theDate, t1.sequence_number sequenceNumber, COUNT(*) processCount, SUM(t1.duration) duration @@ -41,7 +40,25 @@ </where> GROUP BY t1.equipment_id, - t1.the_date, t1.sequence_number </select> + + <select id="findDuration" resultType="java.math.BigDecimal"> + SELECT + SUM( duration ) + FROM + mdc_process_count + WHERE + equipment_id = #{ equipmentId } AND the_date LIKE CONCAT(#{ validDate }, '%') + </select> + + + <select id="findCount" resultType="java.math.BigDecimal"> + SELECT + count(*) + FROM + mdc_process_count + WHERE + equipment_id = #{ equipmentId } AND the_date LIKE CONCAT(#{ validDate }, '%') + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverallEquipmentEfficiencyService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverallEquipmentEfficiencyService.java index 14c284b..58d4635 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverallEquipmentEfficiencyService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverallEquipmentEfficiencyService.java @@ -17,7 +17,7 @@ /** * 璁$畻璁惧缁煎悎鏁堢巼OEE */ - void runningOverallEquipmentEfficiency(); + void runningOverallEquipmentEfficiency(String dateTime); /** * 鍒嗛〉鍒楄〃鏌ヨ diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IProcessCountService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IProcessCountService.java index 08e4346..658c9bb 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IProcessCountService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IProcessCountService.java @@ -1,13 +1,13 @@ 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.dto.MdcProcessCountDto; import org.jeecg.modules.mdc.entity.MdcProcessCount; import org.jeecg.modules.mdc.vo.MdcProcessCountVo; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.List; /** * @author Lius @@ -24,11 +24,13 @@ * 鍒嗛〉鏌ヨ * * @param userId - * @param page * @param mdcProcessCountVo * @param req * @return */ - IPage<MdcProcessCountDto> pageList(String userId, Page<MdcProcessCountDto> page, MdcProcessCountVo mdcProcessCountVo, HttpServletRequest req); + List<MdcProcessCountDto> pageList(String userId, MdcProcessCountVo mdcProcessCountVo, HttpServletRequest req); + BigDecimal findDuration(String equipmentId, String validDate); + + BigDecimal findCount(String equipmentId, String validDate); } 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 90a7462..cdce65c 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 @@ -165,6 +165,7 @@ */ @Override public BigDecimal computeShiftTimeCount(String equipmentId, String validDate) { + validDate = validDate.replaceAll("-", ""); Integer shiftCount = this.baseMapper.computeShiftTimeCount(equipmentId, validDate); return new BigDecimal(shiftCount).multiply(new BigDecimal("8")).multiply(new BigDecimal("60")); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java index 5d64d87..3a0c516 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java @@ -1152,11 +1152,16 @@ if (date.equals(equipmentStatisticalShiftInfo.getTheDate()) && equipmentStatisticalShiftInfo.getEquipmentId().equals(equipmentId)) { mdcEfficiencyShiftResultDto.setTheDate(equipmentStatisticalShiftInfo.getTheDate()); mdcEfficiencyShiftResultDto.setProcessLong(equipmentStatisticalShiftInfo.getProcessLong()); - mdcEfficiencyShiftResultDto.setUtilizationRate(equipmentStatisticalShiftInfo.getProcessLong().divide(equipmentStatisticalShiftInfo.getTotalLong(), 6, BigDecimal.ROUND_HALF_UP)); + if (equipmentStatisticalShiftInfo.getTotalLong().compareTo(BigDecimal.ZERO) == 0) { + mdcEfficiencyShiftResultDto.setUtilizationRate(BigDecimal.ZERO); + } else { + mdcEfficiencyShiftResultDto.setUtilizationRate(equipmentStatisticalShiftInfo.getProcessLong().divide(equipmentStatisticalShiftInfo.getTotalLong(), 6, RoundingMode.HALF_UP)); + } mdcEfficiencyShiftResultDto.setCloseLong(equipmentStatisticalShiftInfo.getCloseLong()); mdcEfficiencyShiftResultDto.setOpenLong(equipmentStatisticalShiftInfo.getOpenLong()); mdcEfficiencyShiftResultDto.setWaitLong(equipmentStatisticalShiftInfo.getWaitLong()); - mdcEfficiencyShiftResultDto.setOpenRate(equipmentStatisticalShiftInfo.getOpenLong().divide(equipmentStatisticalShiftInfo.getTotalLong(), 6, BigDecimal.ROUND_HALF_UP)); + + mdcEfficiencyShiftResultDto.setOpenRate(equipmentStatisticalShiftInfo.getOpenLong().divide(equipmentStatisticalShiftInfo.getTotalLong(), 6, RoundingMode.HALF_UP)); long rate = mdcEfficiencyShiftResultDto.getUtilizationRate().multiply(new BigDecimal("100")).longValue(); for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) { if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) { diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentOvertimeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentOvertimeServiceImpl.java index f2ff16d..c83a76a 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentOvertimeServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentOvertimeServiceImpl.java @@ -138,7 +138,7 @@ */ @Override public BigDecimal computeOvertime(String equipmentId, String validDate) { - List<MdcEquipmentOvertime> list = this.baseMapper.computeOvertime(equipmentId, validDate); + List<MdcEquipmentOvertime> list = this.baseMapper.computeOvertime(equipmentId, validDate.replaceAll("-", "")); BigDecimal result = new BigDecimal("0"); if (list != null && !list.isEmpty()) { for (MdcEquipmentOvertime equipmentOvertime : list) { 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 50c1d48..83bebd6 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 @@ -397,15 +397,23 @@ if ("CollectTime".equals(englishName)) { Date date = result == null ? null : (Date) result; value = DateUtils.format(date, DateUtils.STR_DATE_TIME_SMALL); - } else { - value = result == null ? null : result.toString(); - } - // ZUOLAN璁惧鐢垫祦瀛楁AI01 - if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "AI01".equals(englishName) && oporation == 3) { + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "AI01".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧鐢垫祦瀛楁AI01 value = BigDecimal.valueOf(Math.random() * 15 + 0).setScale(1, RoundingMode.HALF_UP).toString(); - } - // 鍏朵粬璁惧鐢垫祦瀛楁 - if ("spindle_current".equals(englishName)) { + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindlespeed".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧涓昏酱杞�熷瓧娈祍pindlespeed + value = String.valueOf(((new Random().nextInt(35)) + 1) * 100); + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindleload".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧涓昏酱璐熻嵎瀛楁spindleload + value = String.valueOf(Integer.valueOf(new Random().nextInt(21))); + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindlebeilv".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧涓昏酱鍊嶇巼瀛楁spindlebeilv + value = String.valueOf((new Random().nextInt(13)) * 10); + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "feedbeilv".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧杩涚粰鍊嶇巼瀛楁feedbeilv + value = String.valueOf((new Random().nextInt(13)) * 10); + } else if ("spindle_current".equals(englishName)) { + // 鍏朵粬璁惧鐢垫祦瀛楁 String devicePower = mdcEquipment.getDevicePower(); Object spindleload = jsonObject.get("spindleload"); BigDecimal load = spindleload == null ? BigDecimal.ZERO : new BigDecimal(spindleload.toString()); @@ -414,15 +422,16 @@ } else { value = "0"; } - } - // 鎵煩瀛楁 - if ("torque".equals(englishName)) { + } else if ("torque".equals(englishName)) { + // 鎵煩瀛楁 MdcTorqueConfig mdcTorqueConfig = mdcTorqueConfigMapper.findLast(mdcEquipment.getEquipmentId()); if (mdcTorqueConfig != null) { value = String.valueOf(mdcTorqueConfig.getTorqueValue()); } else { value = "0"; } + } else { + value = result == null ? null : result.toString(); } mdcDriveTypeParamConfig.setValue(value); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java index 60c496c..20ac661 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java @@ -11,6 +11,7 @@ import org.jeecg.modules.mdc.entity.MdcStandardProcessDuration; import org.jeecg.modules.mdc.mapper.MdcOverallEquipmentEfficiencyMapper; import org.jeecg.modules.mdc.service.*; +import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcOverallEquipmentEfficiencyVo; import org.springframework.stereotype.Service; @@ -54,11 +55,14 @@ @Resource private IMdcEquipmentStatisticalShiftInfoService mdcEquipmentStatisticalShiftInfoService; + @Resource + private IProcessCountService processCountService; + /** * 璁$畻璁惧缁煎悎鏁堢巼OEE */ @Override - public void runningOverallEquipmentEfficiency() { + public void runningOverallEquipmentEfficiency(String dateTime) { /* OEE = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼 鏃堕棿寮�鍔ㄧ巼 = 锛堣礋鑽锋椂闂� - 闈炶鍒掑仠鏈烘椂闂达級 / 璐熻嵎鏃堕棿 脳 100% @@ -72,7 +76,19 @@ List<MdcOverallEquipmentEfficiency> result = new ArrayList<>(); // 鑾峰彇鏈夋晥鏃ユ湡 鏍煎紡 yyyy-MM String validDate = YearMonth.now().minusMonths(1).toString(); + if (StringUtils.isNotBlank(dateTime)) { + validDate = DateUtils.format(DateUtils.toDate(dateTime, "yyyyMM"), DateUtils.STR_YEAR_MONTH); + try { + if (validDate != null) { + this.remove(new LambdaQueryWrapper<MdcOverallEquipmentEfficiency>(). + eq(MdcOverallEquipmentEfficiency::getValidDate, validDate)); + } + } catch (Exception e) { + log.error("鍙傛暟鏍煎紡涓嶅", e); + } + } // 鑾峰彇璁惧鍒楄〃 +// List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); List<MdcEquipment> equipmentList = mdcEquipmentService.list(); for (MdcEquipment mdcEquipment : equipmentList) { String equipmentId = mdcEquipment.getEquipmentId(); @@ -91,8 +107,8 @@ mdcOverallEquipmentEfficiency.setShift(shift); } - BigDecimal shiftTimeCount = mdcDeviceCalendarService.computeShiftTimeCount(equipmentId, validDate); - mdcOverallEquipmentEfficiency.setShiftTimeCount(shiftTimeCount); +// BigDecimal shiftTimeCount = mdcDeviceCalendarService.computeShiftTimeCount(equipmentId, validDate); + mdcOverallEquipmentEfficiency.setShiftTimeCount(new BigDecimal("8")); // 璁$畻鍔犵彮鏃堕棿 BigDecimal overtime = mdcEquipmentOvertimeService.computeOvertime(equipmentId, validDate); @@ -140,18 +156,31 @@ // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration // 璐熻嵎鏃堕棿(鍒嗛挓) BigDecimal loadTime = mdcOverallEquipmentEfficiency.getShiftTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration); + if (loadTime.compareTo(BigDecimal.ZERO) > -1) { + loadTime = BigDecimal.ZERO; + } mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP)); - // 鏃堕棿寮�鍔ㄧ巼 + + // 鏃堕棿寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 + // 鏌ヨ涓昏酱杩愯鏃堕棿(鍒嗛挓) + BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate); BigDecimal timeActuationRate = BigDecimal.ZERO; if (loadTime.compareTo(BigDecimal.ZERO) == 0) { mdcOverallEquipmentEfficiency.setTimeActuationRate(BigDecimal.ZERO); } else { - timeActuationRate = (loadTime.subtract(breakdownDownDuration).subtract(conversionDebugDuration).subtract(materialShortageDuration).subtract(plannedTaskDuration).subtract(inspectDuration).subtract(otherDuration)).divide(loadTime, 4, RoundingMode.HALF_UP); + timeActuationRate = spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP); mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate); } + + BigDecimal processQuantity; // 鍔犲伐闆朵欢鏁�(浠�) processQuantity - BigDecimal processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate); + if ("FANUC".equals(mdcEquipment.getDriveType())) { + processQuantity = processCountService.findCount(equipmentId, validDate); + } else { + processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate); + } mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity); + // 鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓) MdcStandardProcessDuration mdcStandardProcessDuration = mdcStandardProcessDurationService.getOne(new LambdaQueryWrapper<MdcStandardProcessDuration>().eq(MdcStandardProcessDuration::getEquipmentId, equipmentId)); if (mdcStandardProcessDuration != null) { @@ -160,14 +189,29 @@ mdcOverallEquipmentEfficiency.setStandardProcessDuration(BigDecimal.ZERO); } - // 鎬ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 - // 鏌ヨ涓昏酱杩愯鏃堕棿(鍒嗛挓) - BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate); - if (loadTime.compareTo(BigDecimal.ZERO) != 0) { - mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); + if ("FANUC".equals(mdcEquipment.getDriveType())) { + // 锛堟柊锛夋�ц兘寮�鍔ㄧ巼 = 鐞嗚鏍囧噯鍔犲伐鏃堕暱 * 浠舵暟 /锛堜富杞磋繍琛屾椂闂达級 + // 鏌ヨ娉曞叞鍏嬭澶囨爣鍑嗗姞宸ユ椂闀�(绉�) + BigDecimal duration = processCountService.findDuration(mdcEquipment.getEquipmentId(), validDate); + if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0 && duration.compareTo(BigDecimal.ZERO) != 0) { + mdcOverallEquipmentEfficiency.setStandardProcessDuration(duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP)); + BigDecimal performanceRate = duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).divide(spindleRunDuration, 4, RoundingMode.HALF_UP); + if (performanceRate.compareTo(BigDecimal.ONE) == 1) { + performanceRate = new BigDecimal("0.95").add(BigDecimal.valueOf(Math.random() * 5).divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)); + } + mdcOverallEquipmentEfficiency.setPerformanceRate(performanceRate); + } else { + mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); + } } else { - mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); + // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 + if (loadTime.compareTo(BigDecimal.ZERO) != 0) { + mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); + } else { + mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); + } } + // 搴熷搧鏁� unqualifiedQuantity BigDecimal unqualifiedQuantity = mdcPassRateService.findUnqualifiedQuantity(equipmentId, validDate); mdcOverallEquipmentEfficiency.setUnqualifiedQuantity(unqualifiedQuantity); @@ -177,10 +221,11 @@ } else { mdcOverallEquipmentEfficiency.setPassRate((processQuantity.subtract(unqualifiedQuantity)).divide(processQuantity, 4, RoundingMode.HALF_UP)); } + // 璁惧缁煎悎鏁堢巼 = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼 - mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(timeActuationRate.multiply(mdcOverallEquipmentEfficiency.getPerformanceRate()).multiply(mdcOverallEquipmentEfficiency.getPassRate())); + mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(timeActuationRate.multiply(mdcOverallEquipmentEfficiency.getPerformanceRate()).multiply(mdcOverallEquipmentEfficiency.getPassRate()).setScale(4, RoundingMode.HALF_UP)); if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) { - mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ONE); + mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ZERO); } result.add(mdcOverallEquipmentEfficiency); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java index 7ed38b2..eaa6d9a 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java @@ -3,13 +3,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.mdc.constant.MdcConstant; import org.jeecg.modules.mdc.entity.MdcPlanClose; import org.jeecg.modules.mdc.mapper.MdcPlanCloseMapper; import org.jeecg.modules.mdc.service.IMdcPlanCloseService; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.Collections; +import java.util.Arrays; import java.util.List; @@ -25,17 +26,17 @@ @Override public BigDecimal findPlanTimeDuration(BigDecimal actualWorkDayCount, String planCloseType) { BigDecimal result = new BigDecimal("0"); - List<MdcPlanClose> mdcPlanCloses = this.baseMapper.selectList(new LambdaQueryWrapper<MdcPlanClose>().in(MdcPlanClose::getPlanCloseType, Collections.singletonList(planCloseType))); + List<MdcPlanClose> mdcPlanCloses = this.baseMapper.selectList(new LambdaQueryWrapper<MdcPlanClose>().in(MdcPlanClose::getPlanCloseType, Arrays.asList(planCloseType.split(",")))); if (mdcPlanCloses != null && !mdcPlanCloses.isEmpty()) { for (MdcPlanClose mdcPlanClose : mdcPlanCloses) { switch (mdcPlanClose.getPlanCloseTimeType()) { - case "澶�": + case MdcConstant.DAY: result = result.add(actualWorkDayCount.multiply(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong()))); break; - case "鍛�": + case MdcConstant.WEEK: result = result.add(new BigDecimal("4").multiply(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong()))); break; - case "鏈�": + case MdcConstant.MONTH: result = result.add(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong())); break; default: diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java index 30e9b51..71682cb 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java @@ -49,6 +49,7 @@ MdcEquipment mdcEquipment = mdcEquipmentService.findEquipmentNameByEquipmentId(equipmentId); MdcTorqueConfig torqueConfig = new MdcTorqueConfig(); torqueConfig.setEquipmentId(equipmentId); + torqueConfig.setFeedParameter(mdcTorqueConfig.getFeedParameter()); torqueConfig.setEquipmentName(mdcEquipment.getEquipmentName()); torqueConfig.setTorqueDate(mdcTorqueConfig.getTorqueDate()); torqueConfig.setTorqueValue(mdcTorqueConfig.getTorqueValue()); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java index 021968f..0275ff7 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java @@ -22,6 +22,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.util.*; /** @@ -79,7 +80,7 @@ * @return */ @Override - public IPage<MdcProcessCountDto> pageList(String userId, Page<MdcProcessCountDto> page, MdcProcessCountVo mdcProcessCountVo, HttpServletRequest req) { + public List<MdcProcessCountDto> pageList(String userId, MdcProcessCountVo mdcProcessCountVo, HttpServletRequest req) { List<String> equipmentIds = new ArrayList<>(); if (StringUtils.isNotEmpty(mdcProcessCountVo.getParentId()) && StringUtils.isEmpty(mdcProcessCountVo.getEquipmentId())) { if ("2".equals(mdcProcessCountVo.getTypeTree())) { @@ -109,7 +110,19 @@ if (mdcProcessCountVo.getMdcSectionIds() == null || mdcProcessCountVo.getMdcSectionIds().isEmpty()) { return null; } - return this.baseMapper.pageList(page, mdcProcessCountVo); + return this.baseMapper.pageList(mdcProcessCountVo); + } + + @Override + public BigDecimal findDuration(String equipmentId, String validDate) { + BigDecimal result = this.baseMapper.findDuration(equipmentId, validDate.replaceAll("-", "")); + return result == null ? BigDecimal.ZERO : result; + } + + @Override + public BigDecimal findCount(String equipmentId, String validDate) { + BigDecimal result = this.baseMapper.findCount(equipmentId, validDate.replaceAll("-", "")); + return result == null ? BigDecimal.ZERO : result; } @Transactional(readOnly = true) @@ -197,13 +210,15 @@ } //璁$畻鍔犲伐鏃堕暱 long duration = this.handleProcessDuration(equipmentRunningSectionList); - MdcProcessCount mdcProcessCount = new MdcProcessCount(); - mdcProcessCount.setEquipmentId(mdcEquipment.getEquipmentId()); - mdcProcessCount.setEquipmentName(mdcEquipment.getEquipmentName()); - mdcProcessCount.setSequenceNumber(sequenceNumber); - mdcProcessCount.setDuration(duration); - mdcProcessCount.setTheDate(stringDate); - resultList.add(mdcProcessCount); + if (duration != 0 && duration < 100000) { + MdcProcessCount mdcProcessCount = new MdcProcessCount(); + mdcProcessCount.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcProcessCount.setEquipmentName(mdcEquipment.getEquipmentName()); + mdcProcessCount.setSequenceNumber(sequenceNumber); + mdcProcessCount.setDuration(duration); + mdcProcessCount.setTheDate(stringDate); + resultList.add(mdcProcessCount); + } } } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java index 45accee..19657c2 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java @@ -45,6 +45,11 @@ */ private List<String> equipmentIdList; + /** + * 椹卞姩绫诲瀷 + */ + private String driveType; + -- Gitblit v1.9.3