|
@@ -509,7 +509,7 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public R createCheckPlanByTempId(String id,Boolean mode) {
|
|
|
+ public R createCheckPlanByTempId(String id, Boolean mode) {
|
|
|
CheckTemplateDo checkTemplateDo = this.getById(id);
|
|
|
parameterCheck(() -> checkTemplateDo == null, "检查模板不存在", "检查模板不存在");
|
|
|
// 生产检查任务
|
|
@@ -528,11 +528,38 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
|
|
|
List<CheckTemplateItemsDo> templateItemsDos = checkTemplateItemsService.list(new LambdaQueryWrapper<CheckTemplateItemsDo>()
|
|
|
.in(CheckTemplateItemsDo::getChecktemplateid, checkTemplateDo.getId())
|
|
|
.eq(BaseDo::getDeleted, "0"));
|
|
|
- if(!mode){
|
|
|
+ if (!mode) {
|
|
|
templateItemsDos = templateItemsDos.stream().filter(data -> isNowCreateByFrequency(data.getFrequency())).collect(Collectors.toList());
|
|
|
}
|
|
|
- logger.debug("本次需要生成检查计划的模板数据有:{}",templateItemsDos.size());
|
|
|
+ logger.debug("本次需要生成检查计划的模板数据有:{}", templateItemsDos.size());
|
|
|
+
|
|
|
+ SysUserVo currentUser = JSCommonUtils.getCurrentUser();
|
|
|
+ // 获取当前时间的0点0分0秒
|
|
|
+ Calendar startCalendar = Calendar.getInstance();
|
|
|
+ startCalendar.setTime(new Date());
|
|
|
+ startCalendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ startCalendar.set(Calendar.MINUTE, 0);
|
|
|
+ startCalendar.set(Calendar.SECOND, 1);
|
|
|
+ Calendar endCalendar = Calendar.getInstance();
|
|
|
+ endCalendar.setTime(new Date());
|
|
|
+ // 获取当前时间的23点59分59秒
|
|
|
+ endCalendar.set(Calendar.HOUR_OF_DAY, 23);
|
|
|
+ endCalendar.set(Calendar.MINUTE, 59);
|
|
|
+ endCalendar.set(Calendar.SECOND, 59);
|
|
|
+ endCalendar.set(Calendar.MILLISECOND, 999);
|
|
|
+ // 检查任务
|
|
|
+ List<ThemeCheckItemDo> themeCheckItemSaveDos = new ArrayList<>();
|
|
|
+ // 检查任务对应的检查项
|
|
|
+ List<ThemeCheckContentDo> themeCheckContentDos = new ArrayList<>();
|
|
|
+ ThemeCheckItemDo checkItemDo;
|
|
|
+ ThemeCheckContentDo themeCheckContentDo;
|
|
|
+ Date startTime = startCalendar.getTime();
|
|
|
+ Date endTime = endCalendar.getTime();
|
|
|
templateItemsDos.forEach(tempDao -> {
|
|
|
+ if (StringUtils.isBlank(tempDao.getShift())) {
|
|
|
+ shiftTypeAndTempMap.computeIfAbsent("blank", k -> new ArrayList<>()).add(tempDao);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_SHIFT)) {
|
|
|
// 每班
|
|
|
shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_DAY_SHIFT, k -> new ArrayList<>()).add(tempDao);
|
|
@@ -560,28 +587,6 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
|
|
|
});
|
|
|
|
|
|
|
|
|
- SysUserVo currentUser = JSCommonUtils.getCurrentUser();
|
|
|
- // 获取当前时间的0点0分0秒
|
|
|
- Calendar startCalendar = Calendar.getInstance();
|
|
|
- startCalendar.setTime(new Date());
|
|
|
- startCalendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
- startCalendar.set(Calendar.MINUTE, 0);
|
|
|
- startCalendar.set(Calendar.SECOND, 1);
|
|
|
- Calendar endCalendar = Calendar.getInstance();
|
|
|
- endCalendar.setTime(new Date());
|
|
|
- // 获取当前时间的23点59分59秒
|
|
|
- endCalendar.set(Calendar.HOUR_OF_DAY, 23);
|
|
|
- endCalendar.set(Calendar.MINUTE, 59);
|
|
|
- endCalendar.set(Calendar.SECOND, 59);
|
|
|
- endCalendar.set(Calendar.MILLISECOND, 999);
|
|
|
- // 检查任务
|
|
|
- List<ThemeCheckItemDo> themeCheckItemSaveDos = new ArrayList<>();
|
|
|
- // 检查任务对应的检查项
|
|
|
- List<ThemeCheckContentDo> themeCheckContentDos = new ArrayList<>();
|
|
|
- ThemeCheckItemDo checkItemDo;
|
|
|
- ThemeCheckContentDo themeCheckContentDo;
|
|
|
- Date startTime = startCalendar.getTime();
|
|
|
- Date endTime = endCalendar.getTime();
|
|
|
// 模板对应的检查项
|
|
|
List<CheckTemplateItemsDo> items;
|
|
|
|
|
@@ -590,7 +595,11 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
|
|
|
AspShiftTimeDo aspShiftTimeDo = aspShiftTimeDos.stream().filter(info -> k.equals(info.getShift())).findFirst().orElse(null);
|
|
|
|
|
|
//当前班次最大的任务数量
|
|
|
- int maxFrequency = entry.getValue().stream().mapToInt(CheckTemplateItemsDo::getShiftcount).max().orElse(1);
|
|
|
+// int maxFrequency = entry.getValue().stream().mapToInt(CheckTemplateItemsDo::getShiftcount).max().orElse(1);
|
|
|
+ int maxFrequency = entry.getValue().stream()
|
|
|
+ .mapToInt(item -> Optional.ofNullable(item.getShiftcount()).orElse(1))
|
|
|
+ .max()
|
|
|
+ .orElse(1);
|
|
|
for (int i = 1; i <= maxFrequency; i++) {
|
|
|
checkItemDo = new ThemeCheckItemDo();
|
|
|
checkItemDo.setId(SecurityUtil.getUUID());
|
|
@@ -599,8 +608,13 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
|
|
|
"SC@{date:yyyyMM}@{serialNumber:#000000}", "date:yyyyMM", ""));
|
|
|
checkItemDo.setThemecheckid(checkTemplateDo.getId());
|
|
|
checkItemDo.setThemecheckname(checkTemplateDo.getTemplatename());
|
|
|
- checkItemDo.setPlanstarttime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getStarttime));
|
|
|
- checkItemDo.setPlanendtime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getEndtime));
|
|
|
+ if (aspShiftTimeDo != null) {
|
|
|
+ checkItemDo.setPlanstarttime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getStarttime));
|
|
|
+ checkItemDo.setPlanendtime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getEndtime));
|
|
|
+ } else {
|
|
|
+ checkItemDo.setPlanstarttime(startTime);
|
|
|
+ checkItemDo.setPlanendtime(endTime);
|
|
|
+ }
|
|
|
checkItemDo.setChecktype(checkTemplateDo.getTemplatetype());
|
|
|
checkItemDo.setTenantid(checkTemplateDo.getTenantid());
|
|
|
// TODO:XH add 2024/8/16 暂不止如何处理
|
|
@@ -613,10 +627,18 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
|
|
|
checkItemDo.setCheckstatus(THEME_CHECK_STATUS_WAIT);
|
|
|
themeCheckItemSaveDos.add(checkItemDo);
|
|
|
int finalI = i;
|
|
|
- items = entry.getValue().stream().filter(info -> info.getShiftcount()>= finalI ).collect(Collectors.toList());
|
|
|
+// items = entry.getValue().stream().filter(info -> info.getShiftcount() >= finalI).collect(Collectors.toList());
|
|
|
+ items = entry.getValue().stream()
|
|
|
+ .map(info -> {
|
|
|
+ Integer shiftcount = Optional.ofNullable(info.getShiftcount()).orElse(1);
|
|
|
+ info.setShiftcount(shiftcount);
|
|
|
+ return info;
|
|
|
+ })
|
|
|
+ .filter(info -> info.getShiftcount() >= finalI)
|
|
|
+ .collect(Collectors.toList());
|
|
|
for (int j = 0; j < items.size(); j++) {
|
|
|
themeCheckContentDo = new ThemeCheckContentDo();
|
|
|
- themeCheckContentDo.setItemsort(j+1);
|
|
|
+ themeCheckContentDo.setItemsort(j + 1);
|
|
|
themeCheckContentDo.setTenantid(checkTemplateDo.getTenantid());
|
|
|
themeCheckContentDo.setId(SecurityUtil.getUUID());
|
|
|
themeCheckContentDo.setThemecheckitemid(checkItemDo.getId());
|
|
@@ -637,12 +659,12 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
|
|
|
public Date basedOnShiftGenerateTime(AspShiftTimeDo aspShiftTimeDo,
|
|
|
Function<AspShiftTimeDo, String> getTimeFunction) {
|
|
|
if (aspShiftTimeDo == null) {
|
|
|
- return new Date();
|
|
|
+ return new Date();
|
|
|
}
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
calendar.setTime(new Date());
|
|
|
String timeStr = getTimeFunction.apply(aspShiftTimeDo);
|
|
|
- if(CHECK_SHIFT_EVERY_NIGHT_SHIFT.equals(aspShiftTimeDo.getShift())){
|
|
|
+ if (CHECK_SHIFT_EVERY_NIGHT_SHIFT.equals(aspShiftTimeDo.getShift())) {
|
|
|
calendar.add(Calendar.DATE, 1);
|
|
|
}
|
|
|
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeStr.split(":")[0]));
|