|
|
@ -12,6 +12,8 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.time.LocalTime;
|
|
|
|
|
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
@ -44,10 +46,10 @@ public class MesShiftService extends BaseMesService<MesShift> implements IMesShi
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getAreaCode(), "areaCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getAreaCode(), "areaCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getShiftCode(), "shiftCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getShiftCode(), "shiftCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", cellBinPackBean);
|
|
|
|
cellBinPackBean.setWhereAppend(cellBinPackBean.getWhereAppend()+" " +
|
|
|
|
cellBinPackBean.setWhereAppend(cellBinPackBean.getWhereAppend() + " " +
|
|
|
|
" and ((model.beginDate <= '"+item.getBeginDate()+"' and model.endDate >= '"+item.getBeginDate()+"')"+
|
|
|
|
" and ((model.beginDate <= '" + item.getBeginDate() + "' and model.endDate >= '" + item.getBeginDate() + "')" +
|
|
|
|
" or (model.beginDate <= '"+item.getEndDate()+"' and model.endDate >= '"+item.getEndDate()+"')" +
|
|
|
|
" or (model.beginDate <= '" + item.getEndDate() + "' and model.endDate >= '" + item.getEndDate() + "')" +
|
|
|
|
" or (model.beginDate >= '"+item.getBeginDate()+"' and model.endDate <= '"+item.getEndDate()+"'))" );
|
|
|
|
" or (model.beginDate >= '" + item.getBeginDate() + "' and model.endDate <= '" + item.getEndDate() + "'))");
|
|
|
|
boolean flg = baseRDao.isExitByHql(cellBinPackBean);
|
|
|
|
boolean flg = baseRDao.isExitByHql(cellBinPackBean);
|
|
|
|
if (flg) {
|
|
|
|
if (flg) {
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
@ -56,9 +58,12 @@ public class MesShiftService extends BaseMesService<MesShift> implements IMesShi
|
|
|
|
.setErrorDetail("【%s】区域【%s】产线【%s】班次代码生效时间内已经存在有效数据,请检查数据", item.getAreaCode(), item.getWorkCenterCode(), item.getShiftCode())
|
|
|
|
.setErrorDetail("【%s】区域【%s】产线【%s】班次代码生效时间内已经存在有效数据,请检查数据", item.getAreaCode(), item.getWorkCenterCode(), item.getShiftCode())
|
|
|
|
.build();
|
|
|
|
.build();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//计算工时
|
|
|
|
|
|
|
|
item.setWorkTimes(houresBetweenTwoTime(item.getStartTime().split(":"),item.getEndTime().split(":")));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void onUpdateBean(MesShift item) {
|
|
|
|
protected void onUpdateBean(MesShift item) {
|
|
|
|
|
|
|
|
|
|
|
|
// 数据校验
|
|
|
|
// 数据校验
|
|
|
@ -77,10 +82,10 @@ public class MesShiftService extends BaseMesService<MesShift> implements IMesShi
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getAreaCode(), "areaCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getAreaCode(), "areaCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getShiftCode(), "shiftCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getShiftCode(), "shiftCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", cellBinPackBean);
|
|
|
|
cellBinPackBean.setWhereAppend(cellBinPackBean.getWhereAppend()+" " +
|
|
|
|
cellBinPackBean.setWhereAppend(cellBinPackBean.getWhereAppend() + " " +
|
|
|
|
" and ((model.beginDate <= '"+item.getBeginDate()+"' and model.endDate >= '"+item.getBeginDate()+"')"+
|
|
|
|
" and ((model.beginDate <= '" + item.getBeginDate() + "' and model.endDate >= '" + item.getBeginDate() + "')" +
|
|
|
|
" or (model.beginDate <= '"+item.getEndDate()+"' and model.endDate >= '"+item.getEndDate()+"')" +
|
|
|
|
" or (model.beginDate <= '" + item.getEndDate() + "' and model.endDate >= '" + item.getEndDate() + "')" +
|
|
|
|
" or (model.beginDate >= '"+item.getBeginDate()+"' and model.endDate <= '"+item.getEndDate()+"'))" );
|
|
|
|
" or (model.beginDate >= '" + item.getBeginDate() + "' and model.endDate <= '" + item.getEndDate() + "'))");
|
|
|
|
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", cellBinPackBean);
|
|
|
|
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", cellBinPackBean);
|
|
|
|
boolean flg = baseRDao.isExitByHql(cellBinPackBean);
|
|
|
|
boolean flg = baseRDao.isExitByHql(cellBinPackBean);
|
|
|
|
if (flg) {
|
|
|
|
if (flg) {
|
|
|
@ -90,6 +95,8 @@ public class MesShiftService extends BaseMesService<MesShift> implements IMesShi
|
|
|
|
.setErrorDetail("【%s】区域【%s】产线【%s】班次代码生效时间内已经存在有效数据,请检查数据", item.getAreaCode(), item.getWorkCenterCode(), item.getShiftCode())
|
|
|
|
.setErrorDetail("【%s】区域【%s】产线【%s】班次代码生效时间内已经存在有效数据,请检查数据", item.getAreaCode(), item.getWorkCenterCode(), item.getShiftCode())
|
|
|
|
.build();
|
|
|
|
.build();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//计算工时
|
|
|
|
|
|
|
|
item.setWorkTimes(houresBetweenTwoTime(item.getStartTime().split(":"),item.getEndTime().split(":")));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -100,8 +107,28 @@ public class MesShiftService extends BaseMesService<MesShift> implements IMesShi
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesShift.getShiftCode(), "shiftCode", packBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesShift.getShiftCode(), "shiftCode", packBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesShift.getWorkCenterCode(), "workCenterCode", packBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesShift.getWorkCenterCode(), "workCenterCode", packBean);
|
|
|
|
DdlPreparedPack.getStringLikerPack(mesShift.getShiftName(), "shiftName", packBean);
|
|
|
|
DdlPreparedPack.getStringLikerPack(mesShift.getShiftName(), "shiftName", packBean);
|
|
|
|
DdlPreparedPack.getStringSmallerPack(nowDate,"beginDate",packBean);
|
|
|
|
DdlPreparedPack.getStringSmallerPack(nowDate, "beginDate", packBean);
|
|
|
|
DdlPreparedPack.getStringBiggerPack(nowDate,"endDate",packBean);
|
|
|
|
DdlPreparedPack.getStringBiggerPack(nowDate, "endDate", packBean);
|
|
|
|
return baseRDao.findByHqlWhere(packBean);
|
|
|
|
return baseRDao.findByHqlWhere(packBean);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public double houresBetweenTwoTime(String[] start, String[] end) {
|
|
|
|
|
|
|
|
// 定义起始时间和结束时间
|
|
|
|
|
|
|
|
LocalTime startTime = LocalTime.of(Integer.parseInt(start[0]), Integer.parseInt(start[1]), Integer.parseInt(start[2]));
|
|
|
|
|
|
|
|
LocalTime endTime = LocalTime.of(Integer.parseInt(end[0]), Integer.parseInt(end[1]), Integer.parseInt(end[2]));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 计算时间间隔
|
|
|
|
|
|
|
|
long totalMinutes;
|
|
|
|
|
|
|
|
if (endTime.isBefore(startTime)) {
|
|
|
|
|
|
|
|
// 如果结束时间在起始时间之前,说明跨越了午夜
|
|
|
|
|
|
|
|
totalMinutes = ChronoUnit.MINUTES.between(startTime, LocalTime.MAX)
|
|
|
|
|
|
|
|
+ ChronoUnit.MINUTES.between(LocalTime.MIN, endTime);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
totalMinutes = ChronoUnit.MINUTES.between(startTime, endTime);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 计算小时
|
|
|
|
|
|
|
|
return (double)(totalMinutes / 60);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|