From c4b6f572e8680f04fdee4744a58a68b308b44311 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 14 十一月 2023 11:12:00 +0800 Subject: [PATCH] OEE设备综合效率报表接口 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml | 52 ++++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverallEquipmentEfficiencyService.java | 20 +++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java | 53 ++++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java | 14 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverallEquipmentEfficiencyController.java | 62 ++++++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java | 52 ++++++++++ 6 files changed, 250 insertions(+), 3 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverallEquipmentEfficiencyController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverallEquipmentEfficiencyController.java new file mode 100644 index 0000000..7d16641 --- /dev/null +++ b/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); + } + + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java index ffc1042..a6de59d 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java +++ b/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); + } 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 6e4a36c..4480bc5 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 @@ -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> \ 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 2f9385e..14c284b 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 @@ -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); } 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 c7a87ab..62ec94a 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 @@ -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); + } } 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 new file mode 100644 index 0000000..45accee --- /dev/null +++ b/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; + + + + + + +} -- Gitblit v1.9.3