fix bug 44022 芜湖正式:产线看板,需要关联显示异常停线时间

dev-temp-xw-202501031219-44700
臧学普 5 months ago
parent 101f359f32
commit ee8c085bb0

@ -147,8 +147,6 @@ public class MesWorkCenterBoardController {
ValidatorBean.beginValid(conditionModel)
.notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList())
.notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification());
String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
conditionModel.setOrganizeCode(organizeCode);
return ResultBean.success("查询异常停线时间").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).
setResultObject(mesYfBoardService.queryAbnormalDowntime(conditionModel));
} catch (ImppBusiException e) {

@ -18,6 +18,7 @@ import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.repository.wh.MesCimGmGepicsRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import com.xxl.job.core.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -61,6 +62,10 @@ public class IMesYfBoardServiceImpl implements IMesYfBoardService {
@Autowired
private MesCimGmGepicsRepository mesCimGmGepicsRepository;
@Autowired
private MesDowntimeRecordRepository mesDowntimeRecordRDao;
private static final String START_TIME = "START_TIME";
private static final String END_TIME = "END_TIME";
@ -339,9 +344,46 @@ public class IMesYfBoardServiceImpl implements IMesYfBoardService {
public MesWorkCenterBoardResultModel queryAbnormalDowntime(MesWorkCenterBoardConditionModel conditionModel) {
MesWorkCenterBoardResultModel resultModel = new MesWorkCenterBoardResultModel();
//获取查询时间区间(需求未明确,暂时注释,返回固定值)
// Map<String, Map<String, String>> timeZoneMap = getTimeZoneMap(conditionModel.getWorkCenterCodeList(),
// conditionModel.getTimeRangeIdentification(), conditionModel.getOrganizeCode());
resultModel.setAbnormalDowntime("00:00");
Map<String, Map<String, String>> timeZoneMap = getTimeZoneMap(conditionModel.getWorkCenterCodeList(),
conditionModel.getTimeRangeIdentification(), conditionModel.getOrganizeCode());
if(!timeZoneMap.isEmpty()){
Set<String> keySet = timeZoneMap.keySet();
for (String key : keySet) {
Map<String, String> map = timeZoneMap.get(key);
String startTime = map.get("START_TIME");
String endTime = map.get("END_TIME");
//根据产线查询停机记录表汇总
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(conditionModel.getOrganizeCode());
DdlPreparedPack.getStringSmallerPack(startTime,"createDatetime",ddlPackBean);
DdlPreparedPack.getStringBiggerPack(endTime,"createDatetime",ddlPackBean);
List<MesDowntimeRecord> recordList = mesDowntimeRecordRDao.findByHqlWhere(ddlPackBean);
//遍历recordList汇总停机时间
long total = 0L;
for (MesDowntimeRecord record : recordList) {
// 如果停机结束时间还在,则需要补充动态停机时间,否则需要有停机时间
if (StringUtils.isEmpty(record.getModifyDatetime())) {
Date startTDateTime = DateUtil.parseDateTime(record.getCreateDatetime());
Date currentTime = new Date();
total += (currentTime.getTime() - startTDateTime.getTime())/(1000 * 60);
} else {
Date startTDateTime = DateUtil.parseDateTime(record.getCreateDatetime());
Date endDateTime = DateUtil.parseDateTime(record.getModifyDatetime());
total += (endDateTime.getTime() - startTDateTime.getTime())/(1000 * 60);
}
}
if (total > 0){
//转换成小时分钟
long minutes = total % 60;
long hours = total / 60;
resultModel.setAbnormalDowntime(String.format("%02d",hours)+":"+String.format("%02d",minutes));
}
}
}else {
resultModel.setAbnormalDowntime("00:00");
}
return resultModel;
}

Loading…
Cancel
Save