Lius
2024-08-12 16e35b191d910e5e586a9eae5678324bfa679408
update
已修改6个文件
76 ■■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessQuantityMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcProcessQuantityService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcProcessQuantityServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java
@@ -68,6 +68,9 @@
            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());
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessQuantityMapper.java
@@ -44,4 +44,11 @@
     */
    MdcProcessQuantityDto findById(@Param("id") String id);
    /**
     * @param equipmentId
     * @param validDate
     * @return
     */
    List<MdcProcessQuantityDto> findList(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml
@@ -133,4 +133,23 @@
            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>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcProcessQuantityService.java
@@ -10,6 +10,7 @@
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
/**
 * @Description: 加工数量表
@@ -55,4 +56,11 @@
     */
    boolean addData(MdcProcessQuantity mdcProcessQuantity);
    /**
     *
     * @param equipmentId
     * @param validDate
     * @return
     */
    BigDecimal findTemporarily(String equipmentId, String validDate);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java
@@ -63,6 +63,9 @@
    @Resource
    private IMdcProductionService mdcProductionService;
    @Resource
    private IMdcProcessQuantityService mdcProcessQuantityService;
    /**
     * 计算设备综合效率OEE
     */
@@ -213,12 +216,23 @@
            } 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 {
//
//                }
            }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcProcessQuantityServiceImpl.java
@@ -22,6 +22,7 @@
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;
@@ -165,4 +166,22 @@
        }
        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;
    }
}