lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverallEquipmentEfficiencyController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,62 @@ 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.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency; import org.jeecg.modules.mdc.service.IMdcOverallEquipmentEfficiencyService; import org.jeecg.modules.mdc.vo.MdcOverallEquipmentEfficiencyVo; 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; /** * @Description: OEE设å¤ç»¼åæç表 * @Author: Lius * @Date: 2023-11-13 * @Version: V1.0 */ @Slf4j @Api(tags = "OEE设å¤ç»¼åæç表") @RestController @RequestMapping("/mdc/mdcOverallEquipmentEfficiency") public class MdcOverallEquipmentEfficiencyController extends JeecgController<MdcOverallEquipmentEfficiency, IMdcOverallEquipmentEfficiencyService> { @Resource private IMdcOverallEquipmentEfficiencyService mdcOverallEquipmentEfficiencyService; /** * * @param mdcOverallEquipmentEfficiencyVo * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "OEE设å¤ç»¼åæç表-å页å表æ¥è¯¢") @ApiOperation(value = "OEE设å¤ç»¼åæç表-å页å表æ¥è¯¢", notes = "OEE设å¤ç»¼åæç表-å页å表æ¥è¯¢") @GetMapping("/list") public Result queryPageList(MdcOverallEquipmentEfficiencyVo mdcOverallEquipmentEfficiencyVo, @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<MdcOverallEquipmentEfficiency> page = new Page<MdcOverallEquipmentEfficiency>(pageNo, pageSize); IPage<MdcOverallEquipmentEfficiency> pageList = mdcOverallEquipmentEfficiencyService.pageList(userId, page, mdcOverallEquipmentEfficiencyVo, req); return Result.OK(pageList); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java
@@ -1,11 +1,25 @@ 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.MdcOverallEquipmentEfficiency; import org.jeecg.modules.mdc.vo.MdcOverallEquipmentEfficiencyVo; /** * @author Lius * @date 2023/11/3 14:29 */ public interface MdcOverallEquipmentEfficiencyMapper extends BaseMapper<MdcOverallEquipmentEfficiency> { /** * å页æ¥è¯¢ * * @param page * @param mdcOverallEquipmentEfficiencyVo * @return */ IPage<MdcOverallEquipmentEfficiency> pageList(Page<MdcOverallEquipmentEfficiency> page, @Param("mdcOverallEquipmentEfficiency") MdcOverallEquipmentEfficiencyVo mdcOverallEquipmentEfficiencyVo); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml
@@ -2,4 +2,56 @@ <!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.MdcOverallEquipmentEfficiencyMapper"> <!--å页å表--> <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency"> SELECT t1.id, t1.equipment_id, t1.equipment_name, t1.equipment_model, t1.valid_date, t2.shift_sub_name shiftSubId, t1.shift_time_count, t1.overtime, t1.actual_work_day_count, t1.month_actual_work_day_time_count, t1.breakdown_down_duration, t1.conversion_debug_duration, t1.material_shortage_duration, t1.planned_task_duration, t1.inspect_duration, t1.other_duration, t1.planned_maintenance_duration, t1.conference_training_duration, t1.other_rest_duration, t1.load_time, t1.time_actuation_rate, t1.process_quantity, t1.standard_process_duration, t1.performance_rate, t1.unqualified_quantity, t1.pass_rate, t1.overall_equipment_efficiency, t1.create_by, t1.create_time, t1.update_by, t1.update_time FROM mdc_overall_equipment_efficiency t1 LEFT JOIN mdc_shift_sub t2 ON t1.shift_sub_id = t2.id LEFT JOIN mdc_shift t3 ON t2.shift_id = t3.id <where> <if test="mdcOverallEquipmentEfficiency.shiftId != null and mdcOverallEquipmentEfficiency.shiftId != ''"> AND t3.id = #{ mdcOverallEquipmentEfficiency.shiftId } </if> <if test="mdcOverallEquipmentEfficiency.shiftSubId != null and mdcOverallEquipmentEfficiency.shiftSubId != ''"> AND t1.shift_sub_id = #{ mdcOverallEquipmentEfficiency.shiftSubId } </if> <if test="mdcOverallEquipmentEfficiency.equipmentIdList != null and mdcOverallEquipmentEfficiency.equipmentIdList.size() > 0 "> AND t1.equipment_id IN <foreach collection="mdcOverallEquipmentEfficiency.equipmentIdList" item="id" index="index" open="(" close=")" separator=","> #{ id } </foreach> </if> </where> </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverallEquipmentEfficiencyService.java
@@ -1,14 +1,32 @@ 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.MdcOverallEquipmentEfficiency; import org.jeecg.modules.mdc.vo.MdcOverallEquipmentEfficiencyVo; import javax.servlet.http.HttpServletRequest; /** * @author: LiuS * @create: 2023-10-18 09:25 */ public interface IMdcOverallEquipmentEfficiencyService { public interface IMdcOverallEquipmentEfficiencyService extends IService<MdcOverallEquipmentEfficiency> { /** * 计ç®è®¾å¤ç»¼åæçOEE */ void runningOverallEquipmentEfficiency(); /** * å页å表æ¥è¯¢ * * @param userId * @param page * @param mdcOverallEquipmentEfficiencyVo * @param req * @return */ IPage<MdcOverallEquipmentEfficiency> pageList(String userId, Page<MdcOverallEquipmentEfficiency> page, MdcOverallEquipmentEfficiencyVo mdcOverallEquipmentEfficiencyVo, HttpServletRequest req); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java
@@ -1,20 +1,26 @@ package org.jeecg.modules.mdc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.apache.commons.lang3.StringUtils; import org.jeecg.modules.mdc.constant.MdcConstant; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency; 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.vo.MdcOverallEquipmentEfficiencyVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.YearMonth; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** @@ -158,8 +164,8 @@ // æ§è½å¼å¨ç = 主轴è¿è¡æ¶é´/è´è·æ¶é´ // æ¥è¯¢ä¸»è½´è¿è¡æ¶é´(åé) BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate, shiftSubId); if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0) { BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate, shiftSubId); if (loadTime.compareTo(BigDecimal.ZERO) != 0) { mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); } else { mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); @@ -184,4 +190,46 @@ } super.saveBatch(result); } /** * å页å表æ¥è¯¢ * * @param userId * @param page * @param mdcOverallEquipmentEfficiencyVo * @param req * @return */ @Override public IPage<MdcOverallEquipmentEfficiency> pageList(String userId, Page<MdcOverallEquipmentEfficiency> page, MdcOverallEquipmentEfficiencyVo mdcOverallEquipmentEfficiencyVo, HttpServletRequest req) { List<String> equipmentIds = new ArrayList<>(); if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getParentId()) && StringUtils.isEmpty(mdcOverallEquipmentEfficiencyVo.getEquipmentId())) { if ("2".equals(mdcOverallEquipmentEfficiencyVo.getTypeTree())) { // é¨é¨å±çº§ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcOverallEquipmentEfficiencyVo.getParentId()); } else { // 产线å±çº§ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcOverallEquipmentEfficiencyVo.getParentId()); } } else if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getEquipmentId())) { // åå°è®¾å¤ä¿¡æ¯ mdcOverallEquipmentEfficiencyVo.setEquipmentIdList(Collections.singletonList(mdcOverallEquipmentEfficiencyVo.getEquipmentId())); } else { // æ¥è¯¢ç¨æ·æ¥æçææè®¾å¤ä¿¡æ¯ if ("2".equals(mdcOverallEquipmentEfficiencyVo.getTypeTree())) { // é¨é¨å±çº§ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); } else { // 产线å±çº§ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); } } if (mdcOverallEquipmentEfficiencyVo.getEquipmentIdList() == null || mdcOverallEquipmentEfficiencyVo.getEquipmentIdList().isEmpty()) { mdcOverallEquipmentEfficiencyVo.setEquipmentIdList(equipmentIds); } if (mdcOverallEquipmentEfficiencyVo.getEquipmentIdList() == null || mdcOverallEquipmentEfficiencyVo.getEquipmentIdList().isEmpty()) { return null; } return this.baseMapper.pageList(page, mdcOverallEquipmentEfficiencyVo); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ package org.jeecg.modules.mdc.vo; import lombok.Data; import java.util.List; /** * @author Lius * @date 2023/11/13 17:10 */ @Data public class MdcOverallEquipmentEfficiencyVo { /** * å¼å§æ¶é´ -> 20220101 */ private String startTime; /** * ç»ææ¶é´ -> 20220101 */ private String endTime; /** * æ ç±»å -> 1:车é´å±çº§ 2:é¨é¨å±çº§ */ private String typeTree; /** * å±çº§ID */ private String parentId; /** * 设å¤Id */ private String equipmentId; /** * çå¶Id */ private String shiftId; /** * çæ¬¡Id */ private String shiftSubId; /** * 设å¤ids */ private List<String> equipmentIdList; }