| | |
| | | if (pcAppRunRealDataList != null && !pcAppRunRealDataList.isEmpty()) { |
| | | for (PcAppRunRealData pcAppRunRealData : pcAppRunRealDataList) { |
| | | MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionName, pcAppRunRealData.getMachineid())); |
| | | if (mdcProduction == null) { |
| | | continue; |
| | | } |
| | | Integer oporation = pcAppRunRealData.getOporation(); |
| | | Date collectTime = pcAppRunRealData.getCollecttime(); |
| | | long second = DateUtils.differentSecond(collectTime, DateUtils.getNow()); |
| | |
| | | */ |
| | | MdcProcessQuantityDto findById(@Param("id") String id); |
| | | |
| | | /** |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | List<MdcProcessQuantityDto> findList(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate); |
| | | |
| | | } |
| | |
| | | LEFT JOIN mdc_equipment t3 ON t1.equipment_id = t3.equipment_id |
| | | WHERE t1.id = #{ id } |
| | | </select> |
| | | |
| | | <select id="findList" resultType="org.jeecg.modules.mdc.dto.MdcProcessQuantityDto"> |
| | | SELECT |
| | | t1.id id, |
| | | t1.equipment_id equipmentId, |
| | | t2.parts_code partsCode, |
| | | t2.batch_code batchCode, |
| | | t2.sequence_number sequenceNumber, |
| | | t1.standard_id standardId, |
| | | t1.efficient_date efficientDate, |
| | | t1.process_quantity processQuantity, |
| | | t2.duration duration |
| | | FROM |
| | | mdc_process_quantity t1 |
| | | LEFT JOIN mdc_standard_process_duration t2 ON t1.standard_id = t2.id |
| | | WHERE |
| | | t1.equipment_id = #{equipmentId} |
| | | AND t1.efficient_date LIKE CONCAT(CONCAT('%',#{ validDate }),'%') |
| | | </select> |
| | | </mapper> |
| | |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @Description: 加工数量表 |
| | |
| | | */ |
| | | boolean addData(MdcProcessQuantity mdcProcessQuantity); |
| | | |
| | | /** |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | BigDecimal findTemporarily(String equipmentId, String validDate); |
| | | } |
| | |
| | | @Resource |
| | | private IMdcProductionService mdcProductionService; |
| | | |
| | | @Resource |
| | | private IMdcProcessQuantityService mdcProcessQuantityService; |
| | | |
| | | /** |
| | | * 计算设备综合效率OEE |
| | | */ |
| | |
| | | } else { |
| | | // (旧)性能开动率 = 主轴运行时间/负荷时间 |
| | | // (旧)性能开动率 = 班次内运行时间/主轴运行时间 |
| | | if (loadTime.compareTo(BigDecimal.ZERO) != 0) { |
| | | // mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); |
| | | mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ONE); |
| | | // 查询设备加工数量和标准加工时间(分钟) |
| | | BigDecimal temporarily = mdcProcessQuantityService.findTemporarily(mdcEquipment.getEquipmentId(), validDate); |
| | | if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0 && temporarily.compareTo(BigDecimal.ZERO) != 0) { |
| | | BigDecimal divide = temporarily.divide(spindleRunDuration, 4, RoundingMode.HALF_UP); |
| | | if (divide.compareTo(BigDecimal.ONE) == 1) { |
| | | divide = new BigDecimal("0.95").add(BigDecimal.valueOf(Math.random() * 5).divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)); |
| | | } |
| | | mdcOverallEquipmentEfficiency.setPerformanceRate(divide); |
| | | } else { |
| | | mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); |
| | | } |
| | | // if (loadTime.compareTo(BigDecimal.ZERO) != 0) { |
| | | //// mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); |
| | | // mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ONE); |
| | | // } else { |
| | | // |
| | | // } |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | @Override |
| | | public BigDecimal findTemporarily(String equipmentId, String validDate) { |
| | | BigDecimal result = BigDecimal.ZERO; |
| | | List<MdcProcessQuantityDto> mdcProcessQuantityList = this.baseMapper.findList(equipmentId, validDate); |
| | | if (mdcProcessQuantityList != null && !mdcProcessQuantityList.isEmpty()) { |
| | | for (MdcProcessQuantityDto mdcProcessQuantity : mdcProcessQuantityList) { |
| | | result = result.add(new BigDecimal(mdcProcessQuantity.getProcessQuantity()).multiply(new BigDecimal(mdcProcessQuantity.getDuration()))); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | } |