qushaowei
2023-11-22 e331906c3191f012deb28ee18384a7087d987687
Merge branch 'master' of http://117.34.109.166:18448/r/mdc_430 into develop
已添加2个文件
已修改22个文件
542 ■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/constant/MdcConstant.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOverallEquipmentEfficiencyController.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipment.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverallEquipmentEfficiency.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentOvertimeMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalShiftInfoMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentOvertimeMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcDeviceCalendarService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentOvertimeService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalShiftInfoService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOverallEquipmentEfficiencyService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPlanCloseService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentOvertimeServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/constant/MdcConstant.java
@@ -51,4 +51,10 @@
     */
    public static final String OTHER_REST = "休息用餐,预防性维修";
    public static final String DAY = "天";
    public static final String WEEK = "周";
    public static final String MONTH = "月";
}
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/entity/MdcEquipment.java
@@ -121,16 +121,6 @@
    @Excel(name = "设备功率", width = 15)
    @ApiModelProperty(value = "设备功率")
    private String devicePower;
    /**
     * åæ ‡-å·¦
     */
    @ApiModelProperty(value = "坐标-å·¦")
    private Integer coordinateLeft;
    /**
     * åæ ‡-上
     */
    @ApiModelProperty(value = "坐标-上")
    private Integer coordinateTop;
    /**部门名称*/
    private transient String orgCodeTxt;
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOverallEquipmentEfficiency.java
@@ -50,10 +50,10 @@
    @ApiModelProperty(value = "有效日期")
    private String validDate;
    /**
     * ç­æ¬¡id
     * ç­æ¬¡
     */
    @ApiModelProperty(value = "班次id")
    private String shiftSubId;
    @ApiModelProperty(value = "班次")
    private String shift;
    /**
     * æ¯ç­å°æ—¶
     */
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java
@@ -39,5 +39,11 @@
    @Excel(name = "背景图", width = 15)
    @ApiModelProperty(value = "背景图")
    private String backgroundImage;
    /**
     * è®¾å¤‡ç¼–号颜色
     */
    @ApiModelProperty(value = "设备编号颜色")
    private String equipmentIdColor;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java
@@ -23,9 +23,9 @@
    List<MdcDeviceCalendarVo> findAcquiesceShift();
    List<String> computeActualWorkDayCount(@Param("shiftSubId") String shiftSubId, @Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
    List<String> computeActualWorkDayCount(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
    List<String> findShiftSort(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
    Integer computeShiftTimeCount(@Param("shiftSubId") String shiftSubId, @Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
    Integer computeShiftTimeCount(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentOvertimeMapper.java
@@ -40,5 +40,5 @@
     * @param validDate
     * @return
     */
    List<MdcEquipmentOvertime> computeOvertime(@Param("shiftSubId") String shiftSubId, @Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
    List<MdcEquipmentOvertime> computeOvertime(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalShiftInfoMapper.java
@@ -20,5 +20,5 @@
     */
    MdcEquipmentStatisticalShiftInfo getMaxStaticsData(@Param("equipmentId") String equipmentid);
    BigDecimal findSpindleRunDuration(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate, @Param("shiftSubId") String shiftSubId);
    BigDecimal findSpindleRunDuration(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
}
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/MdcDeviceCalendarMapper.xml
@@ -93,18 +93,17 @@
        WHERE
            effective_date LIKE CONCAT(#{ validDate }, '%')
            AND equipment_id = #{ equipmentId }
            AND shift_sub_id = #{ shiftSubId }
    </select>
    <!--查询班次分类-->
    <select id="findShiftSort" resultType="java.lang.String">
        SELECT
            DISTINCT shift_sub_id
        SELECT DISTINCT
            t2.shift_name
        FROM
            mdc_device_calendar
            mdc_device_calendar t1 LEFT JOIN mdc_shift t2 ON t1.shift_id = t2.id
        WHERE
            effective_date LIKE CONCAT(#{ validDate }, '%')
            AND equipment_id = #{ equipmentId }
            t1.effective_date LIKE CONCAT(#{ validDate }, '%')
            AND t1.equipment_id = #{ equipmentId }
    </select>
    <!--查询班次数量-->
@@ -116,7 +115,6 @@
        WHERE
            effective_date LIKE CONCAT(#{ validDate }, '%')
            AND equipment_id = #{ equipmentId }
            AND shift_sub_id = #{ shiftSubId }
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentOvertimeMapper.xml
@@ -88,6 +88,5 @@
        WHERE
            mdc.effective_date LIKE CONCAT(#{ validDate }, '%')
            AND mdc.equipment_id = #{ equipmentId }
            AND mdc.shift_sub_id = #{ shiftSubId }
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml
@@ -15,7 +15,6 @@
            mdc_equipment_statistical_shift_info
        WHERE
            equipment_id = #{ equipmentId }
            AND shift_sub_id = #{ shiftSubId }
            AND the_date LIKE CONCAT(#{ validDate },'%')
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml
@@ -2,4 +2,52 @@
<!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,
            t1.shift,
            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
        <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 }
            </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/IMdcDeviceCalendarService.java
@@ -41,12 +41,11 @@
    /**
     * è®¡ç®—实际班产天数
     *
     * @param shiftSubId
     * @param equipmentId
     * @param validDate
     * @return
     */
    BigDecimal computeActualWorkDayCount(String shiftSubId, String equipmentId, String validDate);
    BigDecimal computeActualWorkDayCount(String equipmentId, String validDate);
    /**
     * æŸ¥è¯¢ç­æ¬¡åˆ†ç±»
@@ -60,12 +59,11 @@
    /**
     * è®¡ç®—班次时间
     *
     * @param shiftSubId
     * @param equipmentId
     * @param validDate
     * @return
     */
    BigDecimal computeShiftTimeCount(String shiftSubId, String equipmentId, String validDate);
    BigDecimal computeShiftTimeCount(String equipmentId, String validDate);
    /**
     * ç”Ÿæˆè®¾å¤‡å·¥ä½œæ—¥åކ
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentOvertimeService.java
@@ -41,10 +41,9 @@
    /**
     * è®¡ç®—加班时间
     *
     * @param shiftSubId
     * @param equipmentId
     * @param validDate
     * @return
     */
    BigDecimal computeOvertime(String shiftSubId, String equipmentId, String validDate);
    BigDecimal computeOvertime(String equipmentId, String validDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalShiftInfoService.java
@@ -24,9 +24,8 @@
     *
     * @param equipmentId
     * @param validDate
     * @param shiftSubId
     * @return
     */
    BigDecimal findSpindleRunDuration(String equipmentId, String validDate, String shiftSubId);
    BigDecimal findSpindleRunDuration(String equipmentId, String validDate);
}
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/IMdcPlanCloseService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdc.entity.MdcPlanClose;
import java.math.BigDecimal;
/**
 * @Description: mdc计划停机维护表
 * @Author: Lius
@@ -11,4 +13,5 @@
 */
public interface IMdcPlanCloseService extends IService<MdcPlanClose> {
    BigDecimal findPlanTimeDuration(BigDecimal actualWorkDayCount, String planCloseType);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
@@ -146,15 +146,14 @@
    /**
     * è®¡ç®—实际班产天数
     *
     * @param shiftSubId
     * @param equipmentId
     * @param validDate
     * @return
     */
    @Override
    public BigDecimal computeActualWorkDayCount(String shiftSubId, String equipmentId, String validDate) {
    public BigDecimal computeActualWorkDayCount(String equipmentId, String validDate) {
        validDate = validDate.replaceAll("-", "");
        List<String> validDateList = this.baseMapper.computeActualWorkDayCount(shiftSubId, equipmentId, validDate);
        List<String> validDateList = this.baseMapper.computeActualWorkDayCount(equipmentId, validDate);
        return new BigDecimal(validDateList.size());
    }
@@ -174,14 +173,13 @@
    /**
     * è®¡ç®—班次时间
     *
     * @param shiftSubId
     * @param equipmentId
     * @param validDate
     * @return
     */
    @Override
    public BigDecimal computeShiftTimeCount(String shiftSubId, String equipmentId, String validDate) {
        Integer shiftCount = this.baseMapper.computeShiftTimeCount(shiftSubId, equipmentId, validDate);
    public BigDecimal computeShiftTimeCount(String equipmentId, String validDate) {
        Integer shiftCount = this.baseMapper.computeShiftTimeCount(equipmentId, validDate);
        return new BigDecimal(shiftCount).multiply(new BigDecimal("8")).multiply(new BigDecimal("60"));
    }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentOvertimeServiceImpl.java
@@ -132,14 +132,13 @@
    /**
     * è®¡ç®—加班时间(分钟)
     *
     * @param shiftSubId
     * @param equipmentId
     * @param validDate
     * @return
     */
    @Override
    public BigDecimal computeOvertime(String shiftSubId, String equipmentId, String validDate) {
        List<MdcEquipmentOvertime> list = this.baseMapper.computeOvertime(shiftSubId, equipmentId, validDate);
    public BigDecimal computeOvertime(String equipmentId, String validDate) {
        List<MdcEquipmentOvertime> list = this.baseMapper.computeOvertime(equipmentId, validDate);
        BigDecimal result = new BigDecimal("0");
        if (list != null && !list.isEmpty()) {
            for (MdcEquipmentOvertime equipmentOvertime : list) {
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java
@@ -84,9 +84,9 @@
     * @return
     */
    @Override
    public BigDecimal findSpindleRunDuration(String equipmentId, String validDate, String shiftSubId) {
    public BigDecimal findSpindleRunDuration(String equipmentId, String validDate) {
        validDate = validDate.replaceAll("-", "");
        BigDecimal duration = this.baseMapper.findSpindleRunDuration(equipmentId, validDate, shiftSubId);
        BigDecimal duration = this.baseMapper.findSpindleRunDuration(equipmentId, validDate);
        if (duration != null && duration.compareTo(BigDecimal.ZERO) != 0) {
            return duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP);
        } else {
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;
/**
@@ -70,118 +76,157 @@
        List<MdcEquipment> equipmentList = mdcEquipmentService.list();
        for (MdcEquipment mdcEquipment : equipmentList) {
            String equipmentId = mdcEquipment.getEquipmentId();
            // æŸ¥è¯¢ç­æ¬¡åˆ†ç±»
            MdcOverallEquipmentEfficiency mdcOverallEquipmentEfficiency = new MdcOverallEquipmentEfficiency();
            // æ—¶é—´å¼€åŠ¨çŽ‡è®¡ç®—
            mdcOverallEquipmentEfficiency.setEquipmentId(equipmentId);
            mdcOverallEquipmentEfficiency.setEquipmentName(mdcEquipment.getEquipmentName());
            mdcOverallEquipmentEfficiency.setEquipmentModel(mdcEquipment.getEquipmentModel());
            mdcOverallEquipmentEfficiency.setValidDate(validDate);
            // æŸ¥è¯¢ç­åˆ¶åˆ†ç±»
            List<String> shiftSubIdList = mdcDeviceCalendarService.findShiftSort(equipmentId, validDate);
            if (shiftSubIdList != null && !shiftSubIdList.isEmpty()) {
                String shift = String.join(",", shiftSubIdList);
                mdcOverallEquipmentEfficiency.setShift(shift);
            }
            BigDecimal shiftTimeCount = mdcDeviceCalendarService.computeShiftTimeCount(equipmentId, validDate);
            mdcOverallEquipmentEfficiency.setShiftTimeCount(shiftTimeCount);
            // è®¡ç®—加班时间
            BigDecimal overtime = mdcEquipmentOvertimeService.computeOvertime(equipmentId, validDate);
            mdcOverallEquipmentEfficiency.setOvertime(overtime);
            // è®¡ç®—实际班产天数
            BigDecimal actualWorkDayCount = mdcDeviceCalendarService.computeActualWorkDayCount(equipmentId, validDate);
            mdcOverallEquipmentEfficiency.setActualWorkDayCount(actualWorkDayCount);
            // æœˆåº¦å®žé™…班产总时间(分钟)
            mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().add(overtime));
            // æ•…障停机时长统计(分钟)
            BigDecimal breakdownDownDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.BREAKDOWN_DOWN);
            mdcOverallEquipmentEfficiency.setBreakdownDownDuration(breakdownDownDuration);
            // æ¢åž‹è°ƒè¯•时长统计(分钟)
            BigDecimal conversionDebugDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.CONVERSION_DEBUG);
            mdcOverallEquipmentEfficiency.setConversionDebugDuration(conversionDebugDuration);
            // ç‰©æ–™çŸ­ç¼ºæ—¶é•¿ç»Ÿè®¡(分钟)
            BigDecimal materialShortageDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.MATERIAL_SHORTAGE);
            mdcOverallEquipmentEfficiency.setMaterialShortageDuration(materialShortageDuration);
            // è®¡åˆ’等任务时长统计(分钟)
            BigDecimal plannedTaskDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.PLANNED_TASK);
            mdcOverallEquipmentEfficiency.setPlannedTaskDuration(plannedTaskDuration);
            // æ£€éªŒæ—¶é•¿ç»Ÿè®¡(分钟)
            BigDecimal inspectDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.INSPECT);
            mdcOverallEquipmentEfficiency.setInspectDuration(inspectDuration);
            // å…¶ä»–时长统计(分钟)
            BigDecimal otherDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.OTHER);
            mdcOverallEquipmentEfficiency.setOtherDuration(otherDuration);
            // è®¡åˆ’保养时长统计(分钟)
            BigDecimal plannedMaintenanceDuration = new BigDecimal("0");
            BigDecimal plannedMaintenanceDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.PLANNED_MAINTENANCE);
            mdcOverallEquipmentEfficiency.setPlannedMaintenanceDuration(plannedMaintenanceDuration);
            // ä¼šè®®/培训时长统计(分钟)
            BigDecimal conferenceTrainingDuration = new BigDecimal("0");
            BigDecimal conferenceTrainingDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.CONFERENCE_TRAINING);
            mdcOverallEquipmentEfficiency.setConferenceTrainingDuration(conferenceTrainingDuration);
            // å…¶å®ƒä¼‘息时长统计(分钟)
            BigDecimal otherRestDuration = new BigDecimal("0");
            if (shiftSubIdList != null && !shiftSubIdList.isEmpty()) {
                for (String shiftSubId : shiftSubIdList) {
                    MdcOverallEquipmentEfficiency mdcOverallEquipmentEfficiency = new MdcOverallEquipmentEfficiency();
                    // æ—¶é—´å¼€åŠ¨çŽ‡è®¡ç®—
                    mdcOverallEquipmentEfficiency.setEquipmentId(equipmentId);
                    mdcOverallEquipmentEfficiency.setEquipmentName(mdcEquipment.getEquipmentName());
                    mdcOverallEquipmentEfficiency.setEquipmentModel(mdcEquipment.getEquipmentModel());
                    mdcOverallEquipmentEfficiency.setValidDate(validDate);
                    // ç­æ¬¡  ç­æ¬¡æ—¶é—´
                    mdcOverallEquipmentEfficiency.setShiftSubId(shiftSubId);
                    BigDecimal shiftTimeCount = mdcDeviceCalendarService.computeShiftTimeCount(shiftSubId, equipmentId, validDate);
                    mdcOverallEquipmentEfficiency.setShiftTimeCount(shiftTimeCount);
                    // è®¡ç®—加班时间
                    BigDecimal overtime = mdcEquipmentOvertimeService.computeOvertime(shiftSubId, equipmentId, validDate);
                    mdcOverallEquipmentEfficiency.setOvertime(overtime);
                    // è®¡ç®—实际班产天数
                    BigDecimal actualWorkDayCount = mdcDeviceCalendarService.computeActualWorkDayCount(shiftSubId, equipmentId, validDate);
                    mdcOverallEquipmentEfficiency.setActualWorkDayCount(actualWorkDayCount);
                    // æœˆåº¦å®žé™…班产总时间(分钟)
                    mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().add(overtime));
                    // æ•…障停机时长统计(分钟)
                    mdcOverallEquipmentEfficiency.setBreakdownDownDuration(breakdownDownDuration);
                    // æ¢åž‹è°ƒè¯•时长统计(分钟)
                    mdcOverallEquipmentEfficiency.setConversionDebugDuration(conversionDebugDuration);
                    // ç‰©æ–™çŸ­ç¼ºæ—¶é•¿ç»Ÿè®¡(分钟)
                    mdcOverallEquipmentEfficiency.setMaterialShortageDuration(materialShortageDuration);
                    // è®¡åˆ’等任务时长统计(分钟)
                    mdcOverallEquipmentEfficiency.setPlannedTaskDuration(plannedTaskDuration);
                    // æ£€éªŒæ—¶é•¿ç»Ÿè®¡(分钟)
                    mdcOverallEquipmentEfficiency.setInspectDuration(inspectDuration);
                    // å…¶ä»–时长统计(分钟)
                    mdcOverallEquipmentEfficiency.setOtherDuration(otherDuration);
                    // è®¡åˆ’保养时长统计(分钟)
                    mdcOverallEquipmentEfficiency.setPlannedMaintenanceDuration(plannedMaintenanceDuration);
                    // ä¼šè®®/培训时长统计(分钟)
                    mdcOverallEquipmentEfficiency.setConferenceTrainingDuration(conferenceTrainingDuration);
                    // å…¶å®ƒä¼‘息时长统计(分钟)
                    mdcOverallEquipmentEfficiency.setOtherRestDuration(otherRestDuration);
                    /*
                        è´Ÿè·æ—¶é—´(小时) = å·¥ä½œæ—¥åŽ†æ—¶é—´ - è®¡åˆ’停机时间
                        å·¥ä½œæ—¥åŽ†æ—¶é—´ = æ—¥åŽ†æ—¶é—´ - æ³•定假日 - åŒä¼‘æ—¥ + åŠ ç­æ—¶é—´
                        è®¡åˆ’停机时间 = è®¡åˆ’保养时长 + ä¼šè®®/培训时长 + ä¼šè®®/培训时长
                     */
                    // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration
                    // è´Ÿè·æ—¶é—´(分钟)
                    BigDecimal loadTime = mdcOverallEquipmentEfficiency.getShiftTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration);
                    mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP));
                    // æ—¶é—´å¼€åŠ¨çŽ‡
                    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);
                        mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate);
                    }
                    // åŠ å·¥é›¶ä»¶æ•°(ä»¶)  processQuantity
                    BigDecimal processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate);
                    mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity);
                    // æ ‡å‡†åŠ å·¥æ—¶é—´(分钟)
                    MdcStandardProcessDuration mdcStandardProcessDuration = mdcStandardProcessDurationService.getOne(new LambdaQueryWrapper<MdcStandardProcessDuration>().eq(MdcStandardProcessDuration::getEquipmentId, equipmentId));
                    if (mdcStandardProcessDuration != null) {
                        mdcOverallEquipmentEfficiency.setStandardProcessDuration(new BigDecimal(mdcStandardProcessDuration.getDuration()).multiply(processQuantity));
                    } else {
                        mdcOverallEquipmentEfficiency.setStandardProcessDuration(BigDecimal.ZERO);
                    }
                    // æ€§èƒ½å¼€åŠ¨çŽ‡ = ä¸»è½´è¿è¡Œæ—¶é—´/负荷时间
                    // æŸ¥è¯¢ä¸»è½´è¿è¡Œæ—¶é—´(分钟)
                    BigDecimal spindleRunDuration  = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate, shiftSubId);
                    if (spindleRunDuration.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);
                    // åˆæ ¼çއ
                    if (processQuantity.compareTo(BigDecimal.ZERO) == 0) {
                        mdcOverallEquipmentEfficiency.setPassRate(BigDecimal.ONE);
                    } else {
                        mdcOverallEquipmentEfficiency.setPassRate((processQuantity.subtract(unqualifiedQuantity)).divide(processQuantity, 4, RoundingMode.HALF_UP));
                    }
                    // è®¾å¤‡ç»¼åˆæ•ˆçއ = æ—¶é—´å¼€åŠ¨çŽ‡ Ã— æ€§èƒ½å¼€åŠ¨çŽ‡ Ã— åˆæ ¼å“çއ
                    mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(timeActuationRate.multiply(mdcOverallEquipmentEfficiency.getPerformanceRate()).multiply(mdcOverallEquipmentEfficiency.getPassRate()));
                    if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) {
                        mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ONE);
                    }
                    result.add(mdcOverallEquipmentEfficiency);
                }
            BigDecimal otherRestDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.OTHER_REST);
            mdcOverallEquipmentEfficiency.setOtherRestDuration(otherRestDuration);
            /*
                è´Ÿè·æ—¶é—´(小时) = å·¥ä½œæ—¥åŽ†æ—¶é—´ - è®¡åˆ’停机时间
                å·¥ä½œæ—¥åŽ†æ—¶é—´ = æ—¥åŽ†æ—¶é—´ - æ³•定假日 - åŒä¼‘æ—¥ + åŠ ç­æ—¶é—´
                è®¡åˆ’停机时间 = è®¡åˆ’保养时长 + ä¼šè®®/培训时长 + ä¼šè®®/培训时长
             */
            // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration
            // è´Ÿè·æ—¶é—´(分钟)
            BigDecimal loadTime = mdcOverallEquipmentEfficiency.getShiftTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration);
            mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP));
            // æ—¶é—´å¼€åŠ¨çŽ‡
            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);
                mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate);
            }
            // åŠ å·¥é›¶ä»¶æ•°(ä»¶)  processQuantity
            BigDecimal processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate);
            mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity);
            // æ ‡å‡†åŠ å·¥æ—¶é—´(分钟)
            MdcStandardProcessDuration mdcStandardProcessDuration = mdcStandardProcessDurationService.getOne(new LambdaQueryWrapper<MdcStandardProcessDuration>().eq(MdcStandardProcessDuration::getEquipmentId, equipmentId));
            if (mdcStandardProcessDuration != null) {
                mdcOverallEquipmentEfficiency.setStandardProcessDuration(new BigDecimal(mdcStandardProcessDuration.getDuration()).multiply(processQuantity));
            } else {
                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));
            } else {
                mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO);
            }
            // åºŸå“æ•° unqualifiedQuantity
            BigDecimal unqualifiedQuantity = mdcPassRateService.findUnqualifiedQuantity(equipmentId, validDate);
            mdcOverallEquipmentEfficiency.setUnqualifiedQuantity(unqualifiedQuantity);
            // åˆæ ¼çއ
            if (processQuantity.compareTo(BigDecimal.ZERO) == 0) {
                mdcOverallEquipmentEfficiency.setPassRate(BigDecimal.ONE);
            } else {
                mdcOverallEquipmentEfficiency.setPassRate((processQuantity.subtract(unqualifiedQuantity)).divide(processQuantity, 4, RoundingMode.HALF_UP));
            }
            // è®¾å¤‡ç»¼åˆæ•ˆçއ = æ—¶é—´å¼€åŠ¨çŽ‡ Ã— æ€§èƒ½å¼€åŠ¨çŽ‡ Ã— åˆæ ¼å“çއ
            mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(timeActuationRate.multiply(mdcOverallEquipmentEfficiency.getPerformanceRate()).multiply(mdcOverallEquipmentEfficiency.getPassRate()));
            if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) {
                mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ONE);
            }
            result.add(mdcOverallEquipmentEfficiency);
        }
        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/service/impl/MdcPlanCloseServiceImpl.java
@@ -1,11 +1,16 @@
package org.jeecg.modules.mdc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.List;
/**
@@ -17,4 +22,27 @@
@Service
public class MdcPlanCloseServiceImpl extends ServiceImpl<MdcPlanCloseMapper, MdcPlanClose> implements IMdcPlanCloseService {
    @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)));
        if (mdcPlanCloses != null && !mdcPlanCloses.isEmpty()) {
            for (MdcPlanClose mdcPlanClose : mdcPlanCloses) {
                switch (mdcPlanClose.getPlanCloseTimeType()) {
                    case "天":
                        result = result.add(actualWorkDayCount.multiply(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong())));
                        break;
                    case "周":
                        result = result.add(new BigDecimal("4").multiply(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong())));
                        break;
                    case "月":
                        result = result.add(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong()));
                        break;
                    default:
                        break;
                }
            }
        }
        return result;
    }
}
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;
}