From 2d727903343feb01fedc988370091395c368faf2 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期二, 17 十二月 2024 16:06:42 +0800
Subject: [PATCH] OEE功能及设备管理调整
---
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPlanCloseMapper.java | 10 +
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java | 6
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalInfoMapper.xml | 5
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java | 7
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPartProcessInfoService.java | 26 ++
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java | 6
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java | 97 +++++++++
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java | 35 +--
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalInfoServiceImpl.java | 19 +
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java | 4
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java | 8
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPartProcessInfoMapper.xml | 15 +
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java | 5
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPlanCloseMapper.xml | 12 +
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPartProcessInfoServiceImpl.java | 53 +++++
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalInfoMapper.java | 9
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPartProcessInfoMapper.java | 27 ++
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java | 9
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 8
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPlanCloseService.java | 10
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java | 184 +++++++++---------
21 files changed, 408 insertions(+), 147 deletions(-)
diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
index 5ffcb6c..d030448 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
@@ -598,4 +598,11 @@
Integer AUTO_FLAG_Y = 1;
Integer AUTO_FLAG_N = 2;
+ /**
+ * 鍋滄満绫诲瀷 1(璁″垝鍋滄満) 2 (闈炶鍒掑仠鏈�)
+ */
+ String CLOSE_TYPE_1 = "1";
+
+ String CLOSE_TYPE_2 = "2";
+
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java
index 816cc92..5f3a954 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java
@@ -13,7 +13,6 @@
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.mdc.dto.MdcEquipmentDto;
import org.jeecg.modules.mdc.entity.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor;
import org.jeecg.modules.mdc.model.MdcEquipmentTree;
@@ -74,7 +73,6 @@
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
- //QueryWrapper<MdcEquipment> queryWrapper = QueryGenerator.initQueryWrapper(mdcEquipment, req.getParameterMap());
Page<MdcEquipment> page = new Page<MdcEquipment>(pageNo, pageSize);
IPage<MdcEquipment> pageList = mdcEquipmentService.pageList(page, mdcEquipment, req);
@@ -428,7 +426,6 @@
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, MdcEquipmentVo mdcEquipment) {
// Step.1 缁勮鏌ヨ鏉′欢
- //QueryWrapper<MdcEquipment> queryWrapper = QueryGenerator.initQueryWrapper(mdcEquipment, request.getParameterMap());
//Step.2 AutoPoi 瀵煎嚭Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
List<MdcEquipment> pageList = mdcEquipmentService.exportXlsList(mdcEquipment);
@@ -445,7 +442,6 @@
mv.addObject(NormalExcelConstants.CLASS, MdcEquipment.class);
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
ExportParams exportParams = new ExportParams("璁惧鍒楄〃鏁版嵁", "瀵煎嚭浜�:" + user.getRealname(), "瀵煎嚭淇℃伅");
-// exportParams.setImageBasePath(upLoadPath);
mv.addObject(NormalExcelConstants.PARAMS, exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java
index 1c766c3..40de87a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java
@@ -24,19 +24,15 @@
List<MdcEquipmentDto> getMacingDataList(@Param("tableName") String tableName);
@InterceptorIgnore(tenantLine = "1")
- @Select("select Sequencenumber,CollectTime from [${tableName}] " +
+ @Select("select Sequencenumber,CollectTime from ${tableName} " +
" where CollectTime > #{startTime} and CollectTime <= #{endTime} and Sequencenumber is not null" +
" order by CollectTime desc ")
List<Map<String, Object>> getEquipmentSequenceNumber(@Param("tableName") String tableName, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
@InterceptorIgnore(tenantLine = "1")
- @Select("select CollectTime ${columns} from [${tableName}] where CollectTime > #{startTime} and CollectTime <= #{endTime} order by CollectTime asc")
+ @Select("select CollectTime ${columns} from ${tableName} where CollectTime > #{startTime} and CollectTime <= #{endTime} order by CollectTime asc")
List<Map<String, Object>> getWorkLineList(Map<String, Object> param);
-
- @InterceptorIgnore(tenantLine = "1")
- @Select("SELECT COUNT(*) FROM SysObjects WHERE XType='U' AND name = '${tableName}'")
- Integer isTableExist(@Param("tableName") String tableName);
@InterceptorIgnore(tenantLine = "1")
List<String> findRunningData(@Param("tableName") String saveTableName, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalInfoMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalInfoMapper.java
index c542e18..3815783 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalInfoMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalInfoMapper.java
@@ -16,4 +16,13 @@
* 鑾峰彇璁惧鏈�鏂版棩鏈熺殑杩愯鏁版嵁
*/
MdcEquipmentStatisticalInfo getMaxStaticsData(@Param("equipmentId") String equipmentId);
+
+ /**
+ * 鏌ヨ璁惧杩愯鏃堕棿
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ Integer selectProcessLong(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPartProcessInfoMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPartProcessInfoMapper.java
index 19bec11..148619f 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPartProcessInfoMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPartProcessInfoMapper.java
@@ -22,4 +22,31 @@
* @return
*/
IPage<MdcPartProcessInfo> pageList(Page<MdcPartProcessInfo> page, @Param("mdcPartProcessInfo") MdcPartProcessInfoVo mdcPartProcessInfo);
+
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ユ椂闂�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ Integer selectTotalProcessLong(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
+
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ユ暟閲�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ Integer selectTotalProcessCount(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
+
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ュ悎鏍兼暟閲�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ Integer selectTotalPassCount(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPlanCloseMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPlanCloseMapper.java
index 9bcf52e..1074cc2 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPlanCloseMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcPlanCloseMapper.java
@@ -24,4 +24,14 @@
* @return
*/
IPage<MdcPlanClose> pageList(Page<MdcPlanClose> page, @Param("mdcPlanClose") MdcPlanCloseVo mdcPlanClose);
+
+ /**
+ * 璁$畻 璁″垝/闈炶鍒掑仠鏈哄綋澶╂�绘椂闀�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @param closeType
+ * @return
+ */
+ Integer findPlanTimeDuration(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate, @Param("closeType") String closeType);
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalInfoMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalInfoMapper.xml
index 77c17f3..e5d1c6b 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalInfoMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalInfoMapper.xml
@@ -7,4 +7,9 @@
<select id="getMaxStaticsData" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentStatisticalInfo">
SELECT TOP 1 * FROM mdc_equipment_statistical_info WHERE equipment_id = #{equipmentId} ORDER BY the_date DESC
</select>
+
+ <!--鏌ヨ璁惧杩愯鏃堕棿-->
+ <select id="selectProcessLong" resultType="java.lang.Integer">
+ SELECT TOP 1 process_long FROM mdc_equipment_statistical_info WHERE equipment_id = #{equipmentId} AND the_date = #{validDate}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPartProcessInfoMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPartProcessInfoMapper.xml
index b2ceba1..2f3b308 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPartProcessInfoMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPartProcessInfoMapper.xml
@@ -33,4 +33,19 @@
ORDER BY the_date DESC, equipment_id ASC
</select>
+ <!--鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ユ椂闂�-->
+ <select id="selectTotalProcessLong" resultType="java.lang.Integer">
+ SELECT sum(total_process_long) FROM mdc_part_process_info WHERE equipment_id = #{equipmentId} AND the_date = #{validDate}
+ </select>
+
+ <!--鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ユ暟閲�-->
+ <select id="selectTotalProcessCount" resultType="java.lang.Integer">
+ SELECT sum(process_count) FROM mdc_part_process_info WHERE equipment_id = #{equipmentId} AND the_date = #{validDate}
+ </select>
+
+ <!--鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ュ悎鏍兼暟閲�-->
+ <select id="selectTotalPassCount" resultType="java.lang.Integer">
+ SELECT sum(pass_count) FROM mdc_part_process_info WHERE equipment_id = #{equipmentId} AND the_date = #{validDate}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPlanCloseMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPlanCloseMapper.xml
index ad62fad..af2f3af 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPlanCloseMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcPlanCloseMapper.xml
@@ -33,4 +33,16 @@
</where>
ORDER BY the_date DESC, equipment_id ASC
</select>
+
+ <!--璁$畻 璁″垝/闈炶鍒掑仠鏈哄綋澶╂�绘椂闀�-->
+ <select id="findPlanTimeDuration" resultType="java.lang.Integer">
+ SELECT
+ sum(plan_close_time_long)
+ FROM
+ mdc_plan_close
+ WHERE
+ equipment_id = #{equipmentId}
+ AND the_date = #{validDate}
+ AND close_type = #{closeType}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java
index 076e641..d087a46 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java
@@ -23,11 +23,6 @@
List<EquipmentMachingDto> getEquipmentSequencenumber(String tableName, Date startTime, Date endTime);
/**
- * 鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦�
- */
- Boolean isTableExist(String tableName);
-
- /**
* 鏌ヨ涓�娈垫椂闂村唴鐨勬暟鎹�
*/
List<String> findRunningData(String tableName, Date startTime, Date endTime);
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java
index 51473ea..51d56e6 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalInfoService.java
@@ -17,4 +17,13 @@
* @param dateTime
*/
void runningAllEquipmentStatisticalProcess(String dateTime);
+
+ /**
+ * 鏌ヨ璁惧杩愯鏃堕棿
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ Integer selectProcessLong(String equipmentId, String validDate);
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPartProcessInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPartProcessInfoService.java
index f88c2a3..ca744d1 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPartProcessInfoService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPartProcessInfoService.java
@@ -44,4 +44,30 @@
*/
ModelAndView exportXls(String userId, MdcPartProcessInfoVo mdcPartProcessInfo);
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ユ椂闂�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ Integer selectTotalProcessLong(String equipmentId, String validDate);
+
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ユ暟閲�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ Integer selectTotalProcessCount(String equipmentId, String validDate);
+
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ュ悎鏍兼暟閲�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ Integer selectTotalPassCount(String equipmentId, String validDate);
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPlanCloseService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPlanCloseService.java
index 0241c30..50d0fe1 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPlanCloseService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcPlanCloseService.java
@@ -18,7 +18,15 @@
*/
public interface IMdcPlanCloseService extends IService<MdcPlanClose> {
- BigDecimal findPlanTimeDuration(BigDecimal actualWorkDayCount, String planCloseType);
+ /**
+ * 璁$畻 璁″垝/闈炶鍒掑仠鏈哄綋澶╂�绘椂闀�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @param closeType
+ * @return
+ */
+ Integer findPlanTimeDuration(String equipmentId, String validDate, String closeType);
/**
* 鍒嗛〉鏌ヨ
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java
index c0b336d..c75cd7e 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java
@@ -44,12 +44,6 @@
}
@Override
- public Boolean isTableExist(String tableName) {
- Integer count = equipmentWorkLineMapper.isTableExist(tableName);
- return count != 0;
- }
-
- @Override
public List<String> findRunningData(String tableName, Date startTime, Date endTime) {
return equipmentWorkLineMapper.findRunningData(tableName, startTime, endTime);
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
index 28ebc28..749ce8d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
@@ -67,17 +67,17 @@
if (!running.isEmpty()) {
MdcEquipmentRunningSectionDto dto;
String tableName = "";
- Boolean isTableExist = false;
+ String backupTableName = "";
if (equip != null) {
if (StringUtils.isNotBlank(equip.getDrivetype())) {
tableName = equip.getDrivetype() + "_" + equip.getEquipmentid();
- isTableExist = equipmentWorkLineService.isTableExist(tableName);
+ backupTableName = equipmentService.checkTableExists(tableName);
}
}
for (MdcEquipmentRunningSection entity : running) {
dto = new MdcEquipmentRunningSectionDto();
BeanUtils.copyProperties(entity, dto);
- if (entity.getStatus() == 3 && StringUtils.isBlank(entity.getSequenceNumber()) && isTableExist && !"ZUOLAN".equals(equip.getDrivetype())) {
+ if (entity.getStatus() == 3 && StringUtils.isBlank(entity.getSequenceNumber()) && StringUtils.isNotBlank(backupTableName) && !"ZUOLAN".equals(equip.getDrivetype())) {
List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipmentSequencenumber(tableName, entity.getStartTime(), entity.getEndTime());
if (esList != null && esList.size() > 1) {
dto.setSequenceNumber(esList.get(0).getSequencenumber());
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
index ad9d45f..6864afd 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -438,16 +438,16 @@
}
map.put("value", value);
runData.add(map);
- if ("spindlebeilv".equals(englishName)) {
+ if ("spindlebeilv".equals(englishName) && !"".equals(value)) {
result.put("spindlebeilv", value);
}
- if ("feedbeilv".equals(englishName)) {
+ if ("feedbeilv".equals(englishName) && !"".equals(value)) {
result.put("feedbeilv", value);
}
- if ("spindleload".equals(englishName)) {
+ if ("spindleload".equals(englishName) && !"".equals(value)) {
result.put("spindleload", value);
}
- if ("rapidfeed".equals(englishName)) {
+ if ("rapidfeed".equals(englishName) && !"".equals(value)) {
result.put("rapidfeed", value);
}
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalInfoServiceImpl.java
index 5f89d3e..2a09c05 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalInfoServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.swagger.models.auth.In;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.modules.mdc.entity.*;
@@ -14,6 +15,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
/**
@@ -75,6 +77,23 @@
}
}
+ /**
+ * 鏌ヨ璁惧杩愯鏃堕棿
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ @Override
+ public Integer selectProcessLong(String equipmentId, String validDate) {
+ Integer processLong = this.baseMapper.selectProcessLong(equipmentId, validDate);
+ if (processLong == null) {
+ return 0;
+ } else {
+ return Integer.parseInt(new BigDecimal(processLong).divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).toString());
+ }
+ }
+
private List<EquipmentStatisticalInfo> dataHandle(List<MdcEquipmentStatisticalInfo> list) {
List<EquipmentStatisticalInfo> result = new ArrayList<>();
list.forEach(item -> {
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
index ee6dd03..18d0f4a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
@@ -6,20 +6,26 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.mdc.entity.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcOeeInfo;
import org.jeecg.modules.mdc.mapper.MdcOeeInfoMapper;
-import org.jeecg.modules.mdc.service.IMdcEquipmentService;
-import org.jeecg.modules.mdc.service.IMdcOeeInfoService;
+import org.jeecg.modules.mdc.service.*;
+import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.vo.MdcOeeInfoVo;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -34,6 +40,15 @@
@Resource
private IMdcEquipmentService mdcEquipmentService;
+
+ @Resource
+ private IMdcPlanCloseService mdcPlanCloseService;
+
+ @Resource
+ private IMdcPartProcessInfoService mdcPartProcessInfoService;
+
+ @Resource
+ private IMdcEquipmentStatisticalInfoService mdcEquipmentStatisticalInfoService;
/**
* 鍒嗛〉鍒楄〃
@@ -140,10 +155,84 @@
/**
* 璁$畻oee
- * @param dateTime
+ * @param dateTime 鍙傛暟
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public void runningComputeOee(String dateTime) {
-
+ List<MdcOeeInfo> result = new ArrayList<>();
+ // 鑾峰彇鏈夋晥鏃ユ湡 鏍煎紡 yyyy-MM-dd
+ String validDate = LocalDate.now().minusDays(1).toString();
+ if (StringUtils.isNotBlank(dateTime)) {
+ validDate = DateUtils.format(DateUtils.toDate(dateTime, DateUtils.STRDATE), DateUtils.STR_DATE);
+ }
+ try {
+ this.remove(new LambdaQueryWrapper<MdcOeeInfo>().eq(MdcOeeInfo::getTheDate, validDate));
+ } catch (Exception e) {
+ log.error("鍙傛暟鏍煎紡涓嶅", e);
+ }
+ //鑾峰彇璁惧鍒楄〃
+ List<MdcEquipment> equipmentList = mdcEquipmentService.list();
+ for (MdcEquipment mdcEquipment : equipmentList) {
+ String equipmentId = mdcEquipment.getEquipmentId();
+ MdcOeeInfo mdcOeeInfo = new MdcOeeInfo();
+ // 璁惧缂栧彿
+ mdcOeeInfo.setEquipmentId(equipmentId);
+ // 璁$畻鏃ユ湡
+ mdcOeeInfo.setTheDate(validDate);
+ // 宸ヤ綔鏃ュ巻鏃堕棿(min) --- 鎸夋瘡澶�24灏忔椂绠�
+ mdcOeeInfo.setCalendarLong(1440);
+ // 璁″垝鍋滄満鏃堕棿(min) --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶╂�绘椂闀�
+ Integer planCloseLong = mdcPlanCloseService.findPlanTimeDuration(equipmentId, validDate, CommonConstant.CLOSE_TYPE_1);
+ mdcOeeInfo.setPlanCloseLong(planCloseLong);
+ // 璐熻嵎鏃堕棿(min) --- 鏃ュ巻宸ヤ綔鏃堕棿-璁″垝鍋滄満鏃堕棿
+ Integer loadLong = mdcOeeInfo.getCalendarLong() - planCloseLong;
+ mdcOeeInfo.setLoadLong(loadLong);
+ // 闈炶鍒掑仠鏈烘椂闂�(min) --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶╂�绘椂闀�
+ Integer noPlanCloseLong = mdcPlanCloseService.findPlanTimeDuration(equipmentId, validDate, CommonConstant.CLOSE_TYPE_2);
+ mdcOeeInfo.setNoplanCloseLong(noPlanCloseLong);
+ // 寮�鍔ㄦ椂闂�(min) --- 璐熻嵎鏃堕棿-闈炶鍒掑仠鏈烘椂闂�
+ int actuateLong = loadLong - noPlanCloseLong;
+ mdcOeeInfo.setActuateLong(actuateLong);
+ // 鏃堕棿寮�鍔ㄧ巼 --- 寮�鍔ㄦ椂闂�/璐熻嵎鏃堕棿
+ BigDecimal timeActuationRate = new BigDecimal(actuateLong).divide(new BigDecimal(loadLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
+ mdcOeeInfo.setTimeActuationRate(timeActuationRate);
+ // 鏈夋晥杩愯鏃堕棿 --- 鎸夐渶姹傜淮鎶ら浂浠跺姞宸ユ�绘椂闀縷|绯荤粺涓昏酱璐熻浇鏃堕棿
+ Integer effectiveRunLong = 0;
+ Integer totalProcessLong = mdcPartProcessInfoService.selectTotalProcessLong(equipmentId, validDate);
+ if (totalProcessLong == 0) {
+ //鏌ヨ璁惧杩愯鏃堕棿
+ effectiveRunLong = mdcEquipmentStatisticalInfoService.selectProcessLong(equipmentId, validDate.replace("-", ""));
+ } else {
+ effectiveRunLong = totalProcessLong;
+ }
+ mdcOeeInfo.setEffectiveRunLong(effectiveRunLong);
+ // 鎬ц兘寮�鍔ㄧ巼 --- 鏈夋晥杩愯鏃堕棿/寮�鍔ㄦ椂闂�
+ BigDecimal performanceRate = BigDecimal.ZERO;
+ if (effectiveRunLong != 0 && actuateLong != 0) {
+ performanceRate = new BigDecimal(effectiveRunLong).divide(new BigDecimal(actuateLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
+ }
+ mdcOeeInfo.setPerformanceRate(performanceRate);
+ // 鍔犲伐闆朵欢鏁伴噺 --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶�
+ Integer processCount = mdcPartProcessInfoService.selectTotalProcessCount(equipmentId, validDate);
+ mdcOeeInfo.setProcessCount(processCount);
+ // 鍚堟牸闆朵欢鏁伴噺 --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶�
+ Integer passCount = mdcPartProcessInfoService.selectTotalPassCount(equipmentId, validDate);
+ mdcOeeInfo.setPassCount(passCount);
+ // 鍚堟牸鐜� --- 鍚堟牸鏁�/鍔犲伐鏁�
+ BigDecimal passRate = BigDecimal.ZERO;
+ if (processCount != 0 && passCount != 0) {
+ passRate = new BigDecimal(passCount).divide(new BigDecimal(processCount), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
+ }
+ mdcOeeInfo.setPassRate(passRate);
+ // OEE --- 鏃堕棿寮�鍔ㄧ巼 * 鎬ц兘寮�鍔ㄧ巼 * 涓�娆″悎鏍肩巼
+ BigDecimal oee = BigDecimal.ZERO;
+ if (!timeActuationRate.equals(BigDecimal.ZERO) && !performanceRate.equals(BigDecimal.ZERO) && !passRate.equals(BigDecimal.ZERO)) {
+ oee = timeActuationRate.multiply(performanceRate).multiply(passRate).divide(new BigDecimal("10000"), 4, RoundingMode.HALF_UP);
+ }
+ mdcOeeInfo.setOee(oee);
+ result.add(mdcOeeInfo);
+ }
+ super.saveBatch(result);
}
}
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 9c4526c..1f922cc 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
@@ -127,33 +127,33 @@
// 鏈堝害瀹為檯鐝骇鎬绘椂闂�(鍒嗛挓)
mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().multiply(actualWorkDayCount).multiply(new BigDecimal("60")).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 = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.PLANNED_MAINTENANCE);
- mdcOverallEquipmentEfficiency.setPlannedMaintenanceDuration(plannedMaintenanceDuration);
- // 浼氳/鍩硅鏃堕暱缁熻(鍒嗛挓)
- BigDecimal conferenceTrainingDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.CONFERENCE_TRAINING);
- mdcOverallEquipmentEfficiency.setConferenceTrainingDuration(conferenceTrainingDuration);
- // 鍏跺畠浼戞伅鏃堕暱缁熻(鍒嗛挓)
- BigDecimal otherRestDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.OTHER_REST);
- mdcOverallEquipmentEfficiency.setOtherRestDuration(otherRestDuration);
+// // 鏁呴殰鍋滄満鏃堕暱缁熻(鍒嗛挓)
+// 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 = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.PLANNED_MAINTENANCE);
+// mdcOverallEquipmentEfficiency.setPlannedMaintenanceDuration(plannedMaintenanceDuration);
+// // 浼氳/鍩硅鏃堕暱缁熻(鍒嗛挓)
+// BigDecimal conferenceTrainingDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.CONFERENCE_TRAINING);
+// mdcOverallEquipmentEfficiency.setConferenceTrainingDuration(conferenceTrainingDuration);
+// // 鍏跺畠浼戞伅鏃堕暱缁熻(鍒嗛挓)
+// BigDecimal otherRestDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.OTHER_REST);
+// mdcOverallEquipmentEfficiency.setOtherRestDuration(otherRestDuration);
/*
璐熻嵎鏃堕棿(灏忔椂) = 宸ヤ綔鏃ュ巻鏃堕棿 - 璁″垝鍋滄満鏃堕棿
宸ヤ綔鏃ュ巻鏃堕棿 = 鏃ュ巻鏃堕棿 - 娉曞畾鍋囨棩 - 鍙屼紤鏃� + 鍔犵彮鏃堕棿
@@ -161,78 +161,78 @@
*/
// mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration
// 璐熻嵎鏃堕棿(鍒嗛挓)
- BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration);
- if (loadTime.compareTo(BigDecimal.ZERO) < 0) {
- loadTime = BigDecimal.ZERO;
- }
- mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP));
+// BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration);
+// if (loadTime.compareTo(BigDecimal.ZERO) < 0) {
+// loadTime = BigDecimal.ZERO;
+// }
+// mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP));
// 鏃堕棿寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿
// 鏌ヨ涓昏酱杩愯鏃堕棿(鍒嗛挓)
- BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate);
- BigDecimal timeActuationRate = BigDecimal.ZERO;
- if (loadTime.compareTo(BigDecimal.ZERO) == 0) {
- mdcOverallEquipmentEfficiency.setTimeActuationRate(BigDecimal.ZERO);
- } else {
- timeActuationRate = spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP);
- mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate);
- }
+// BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate);
+// BigDecimal timeActuationRate = BigDecimal.ZERO;
+// if (loadTime.compareTo(BigDecimal.ZERO) == 0) {
+// mdcOverallEquipmentEfficiency.setTimeActuationRate(BigDecimal.ZERO);
+// } else {
+// timeActuationRate = spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP);
+// mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate);
+// }
- BigDecimal processQuantity;
- // 鍔犲伐闆朵欢鏁�(浠�) processQuantity
- if ("FANUC".equals(mdcEquipment.getDriveType())) {
- processQuantity = processCountService.findCount(equipmentId, validDate);
- } else {
- processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate);
- }
- mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity);
+// BigDecimal processQuantity;
+// // 鍔犲伐闆朵欢鏁�(浠�) processQuantity
+// if ("FANUC".equals(mdcEquipment.getDriveType())) {
+// processQuantity = processCountService.findCount(equipmentId, validDate);
+// } else {
+// 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);
+// }
- // 鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓)
- 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);
- }
-
- if ("FANUC".equals(mdcEquipment.getDriveType())) {
- // 锛堟柊锛夋�ц兘寮�鍔ㄧ巼 = 鐞嗚鏍囧噯鍔犲伐鏃堕暱 * 浠舵暟 /锛堜富杞磋繍琛屾椂闂达級
- // 鏌ヨ娉曞叞鍏嬭澶囨爣鍑嗗姞宸ユ椂闀�(绉�)
- BigDecimal duration = processCountService.findDuration(mdcEquipment.getEquipmentId(), validDate);
- if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0 && duration.compareTo(BigDecimal.ZERO) != 0) {
- mdcOverallEquipmentEfficiency.setStandardProcessDuration(duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP));
- BigDecimal performanceRate = duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).divide(spindleRunDuration, 4, RoundingMode.HALF_UP);
- if (performanceRate.compareTo(BigDecimal.ONE) == 1) {
- performanceRate = new BigDecimal("0.95").add(BigDecimal.valueOf(Math.random() * 5).divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP));
- }
- mdcOverallEquipmentEfficiency.setPerformanceRate(performanceRate);
- } else {
- mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO);
- }
- } else {
- // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿
- if (loadTime.compareTo(BigDecimal.ZERO) != 0) {
- mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP));
- } else {
- mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO);
- }
- }
+// if ("FANUC".equals(mdcEquipment.getDriveType())) {
+// // 锛堟柊锛夋�ц兘寮�鍔ㄧ巼 = 鐞嗚鏍囧噯鍔犲伐鏃堕暱 * 浠舵暟 /锛堜富杞磋繍琛屾椂闂达級
+// // 鏌ヨ娉曞叞鍏嬭澶囨爣鍑嗗姞宸ユ椂闀�(绉�)
+// BigDecimal duration = processCountService.findDuration(mdcEquipment.getEquipmentId(), validDate);
+// if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0 && duration.compareTo(BigDecimal.ZERO) != 0) {
+// mdcOverallEquipmentEfficiency.setStandardProcessDuration(duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP));
+// BigDecimal performanceRate = duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).divide(spindleRunDuration, 4, RoundingMode.HALF_UP);
+// if (performanceRate.compareTo(BigDecimal.ONE) == 1) {
+// performanceRate = new BigDecimal("0.95").add(BigDecimal.valueOf(Math.random() * 5).divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP));
+// }
+// mdcOverallEquipmentEfficiency.setPerformanceRate(performanceRate);
+// } else {
+// mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO);
+// }
+// } else {
+// // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿
+// 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()).setScale(4, RoundingMode.HALF_UP));
- if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) {
- mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ZERO);
- }
+// 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()).setScale(4, RoundingMode.HALF_UP));
+// if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) {
+// mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ZERO);
+// }
result.add(mdcOverallEquipmentEfficiency);
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPartProcessInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPartProcessInfoServiceImpl.java
index eaccb68..2d41fb1 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPartProcessInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPartProcessInfoServiceImpl.java
@@ -142,7 +142,7 @@
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
List<MdcPartProcessInfo> mdcPartProcessInfos = this.baseMapper.selectList(queryWrapper);
// 瀵煎嚭鏂囦欢鍚嶇О
- mv.addObject(NormalExcelConstants.FILE_NAME, "闆朵欢鍔犲伐鏁版嵁鍒楄〃");
+ mv.addObject(NormalExcelConstants.FILE_NAME, "闆朵欢鍔犲伐鏁版嵁鍒楄〃");
mv.addObject(NormalExcelConstants.CLASS, MdcPartProcessInfo.class);
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("闆朵欢鍔犲伐鏁版嵁鍒楄〃鏁版嵁", "瀵煎嚭浜�:" + user.getRealname(), "闆朵欢鍔犲伐鏁版嵁"));
@@ -150,4 +150,55 @@
mv.addObject(NormalExcelConstants.DATA_LIST, mdcPartProcessInfos);
return mv;
}
+
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ユ椂闂�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ @Override
+ public Integer selectTotalProcessLong(String equipmentId, String validDate) {
+ Integer totalProcessLong = this.baseMapper.selectTotalProcessLong(equipmentId, validDate);
+ if (totalProcessLong == null) {
+ return 0;
+ } else {
+ return totalProcessLong;
+ }
+ }
+
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ユ暟閲�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ @Override
+ public Integer selectTotalProcessCount(String equipmentId, String validDate) {
+ Integer totalProcessCount = this.baseMapper.selectTotalProcessCount(equipmentId, validDate);
+ if (totalProcessCount == null) {
+ return 0;
+ } else {
+ return totalProcessCount;
+ }
+ }
+
+ /**
+ * 鏌ヨ璁惧鏌愬ぉ鎬诲姞宸ュ悎鏍兼暟閲�
+ *
+ * @param equipmentId
+ * @param validDate
+ * @return
+ */
+ @Override
+ public Integer selectTotalPassCount(String equipmentId, String validDate) {
+ Integer totalPassCount = this.baseMapper.selectTotalPassCount(equipmentId, validDate);
+ if (totalPassCount == null) {
+ return 0;
+ } else {
+ return totalPassCount;
+ }
+ }
}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java
index e678fbc..e54d198 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcPlanCloseServiceImpl.java
@@ -165,28 +165,21 @@
return mv;
}
+ /**
+ * 璁$畻 璁″垝/闈炶鍒掑仠鏈哄綋澶╂�绘椂闀�
+ * @param equipmentId
+ * @param validDate
+ * @param closeType
+ * @return
+ */
@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, Arrays.asList(planCloseType.split(","))));
-// if (mdcPlanCloses != null && !mdcPlanCloses.isEmpty()) {
-// for (MdcPlanClose mdcPlanClose : mdcPlanCloses) {
-// switch (mdcPlanClose.getPlanCloseTimeType()) {
-// case MdcConstant.DAY:
-// result = result.add(actualWorkDayCount.multiply(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong())));
-// break;
-// case MdcConstant.WEEK:
-// result = result.add(new BigDecimal("4").multiply(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong())));
-// break;
-// case MdcConstant.MONTH:
-// result = result.add(new BigDecimal(mdcPlanClose.getPlanCloseTimeLong()));
-// break;
-// default:
-// break;
-// }
-// }
-// }
- return result;
+ public Integer findPlanTimeDuration(String equipmentId, String validDate, String closeType) {
+ Integer planTimeDuration = this.baseMapper.findPlanTimeDuration(equipmentId, validDate, closeType);
+ if (planTimeDuration == null) {
+ return 0;
+ } else {
+ return planTimeDuration;
+ }
}
}
--
Gitblit v1.9.3