|
|
@@ -3,6 +3,7 @@ package com.xunmei.core.safetyCheck.service.impl;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateField;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
@@ -40,6 +41,7 @@ import com.xunmei.system.api.RemoteUserService;
|
|
|
import com.xunmei.system.api.domain.SysOrg;
|
|
|
import com.xunmei.system.api.domain.SysUser;
|
|
|
import com.xunmei.system.api.model.LoginUser;
|
|
|
+import io.reactivex.rxjava3.core.Completable;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -87,8 +89,8 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
|
|
|
@Override
|
|
|
public TableDataInfo appList(AppPageDto dto) {
|
|
|
- if(ObjectUtil.isNotNull(dto.getTaskTime())){
|
|
|
- DateRange r= DateUtils.getStartAndEnd(dto.getTaskTime(), CycleCommonEnum.MONTHLY);
|
|
|
+ if (ObjectUtil.isNotNull(dto.getTaskTime())) {
|
|
|
+ DateRange r = DateUtils.getStartAndEnd(dto.getTaskTime(), CycleCommonEnum.MONTHLY);
|
|
|
dto.setStartTime(r.getStartTime());
|
|
|
dto.setEndTime(r.getEndTime());
|
|
|
}
|
|
|
@@ -121,7 +123,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
// }
|
|
|
// wrapper.in(CoreSafetyTask::getPlanId, page.getRecords().stream().map(r -> r.getPlanId()).collect(Collectors.toList()));
|
|
|
|
|
|
- List<CoreSafetyTask> list = baseMapper.selectTaskList(dto,SecurityUtils.getUserId());
|
|
|
+ List<CoreSafetyTask> list = baseMapper.selectTaskList(dto, SecurityUtils.getUserId());
|
|
|
// Map<Long, List<CoreSafetyTask>> grouped = list.stream().collect(Collectors.groupingBy(t -> t.getBatchId()));
|
|
|
|
|
|
List<Long> planIds = page.getRecords().stream().map(r -> r.getPlanId()).distinct().collect(Collectors.toList());
|
|
|
@@ -142,12 +144,22 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
vo.setUncompleted(convertToAppItemVo(v, i -> !ObjectUtil.equal(i.getStatus(), SafetyCheckTaskStatus.Completed.getValue())));
|
|
|
}
|
|
|
|
|
|
- Date date=DateUtil.beginOfDay(new Date());
|
|
|
- Date planStartDate=DateUtil.beginOfDay(vo.getPlanStartTime());
|
|
|
- Date planEndDate=DateUtil.beginOfDay(vo.getPlanEndTime());
|
|
|
- vo.setInRegisterTime((planStartDate.before(date) && planEndDate.after(date) || date.getTime()==planStartDate.getTime())?1:0);
|
|
|
+ vo.setInRegisterTime(getInRegisterTime(vo.getPlanStartTime(), vo.getPlanEndTime()));
|
|
|
});
|
|
|
|
|
|
+ page.getRecords().sort(new Comparator<AppPageVo>() {
|
|
|
+ @Override
|
|
|
+ public int compare(AppPageVo o1, AppPageVo o2) {
|
|
|
+ int o1Uncount = o1.getUncompleted().size();
|
|
|
+ int o2Uncount = o2.getUncompleted().size();
|
|
|
+
|
|
|
+ if (o1Uncount == o2Uncount) {
|
|
|
+ return o1.getPlanStartTime().compareTo(o2.getPlanStartTime());
|
|
|
+ } else {
|
|
|
+ return -NumberUtil.compare(o1Uncount, o2Uncount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
return TableDataInfo.success(page);
|
|
|
}
|
|
|
|
|
|
@@ -211,7 +223,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
BeanUtils.copyProperties(baseData, vo);
|
|
|
List<AppTaskRegisterItemVo> itemVos = new ArrayList<>();
|
|
|
//for (Long itemId : groupByItem.keySet()) {
|
|
|
- for(Map.Entry<Long, List<AppTaskRegisterPointVo>> map:groupByItem.entrySet()){
|
|
|
+ for (Map.Entry<Long, List<AppTaskRegisterPointVo>> map : groupByItem.entrySet()) {
|
|
|
List<AppTaskRegisterPointVo> pointVos = map.getValue();//groupByItem.get(itemId);
|
|
|
AppTaskRegisterItemVo itemVo = new AppTaskRegisterItemVo();
|
|
|
itemVo.setItemId(pointVos.get(0).getItemId());
|
|
|
@@ -235,7 +247,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
if (ObjectUtil.isNotNull(task.getPlanId())) {
|
|
|
plan = coreSafecheckPlanMapper.get(task.getPlanId());
|
|
|
} else {
|
|
|
- throw new RuntimeException("计划id不存在");
|
|
|
+ throw new RuntimeException("计划id不存在");
|
|
|
}
|
|
|
|
|
|
SysOrg beCheckedOrg = remoteOrgService.selectOrgById(task.getOrgId(), SecurityConstants.INNER);
|
|
|
@@ -272,7 +284,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
taskImgs = imgs.stream().collect(Collectors.groupingBy(CoreSafetyTaskDataRemarkimg::getTaskDataId));
|
|
|
}
|
|
|
|
|
|
- TaskRegisterVo<AppTaskRegisterPointVo> vo = TaskRegisterVo.of(task, beCheckedOrg.getType().toString(), roleNames);
|
|
|
+ TaskRegisterVo<AppTaskRegisterPointVo> vo = TaskRegisterVo.of(task, beCheckedOrg.getType().toString(), roleNames, getInRegisterTime(task.getPlanStartTime(), task.getPlanEndTime()));
|
|
|
if (ObjectUtil.isNotNull(plan)) {
|
|
|
vo.setPlanType(plan.getCheckType().intValue());
|
|
|
}
|
|
|
@@ -289,13 +301,13 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
}
|
|
|
|
|
|
point.setNfcList(new ArrayList<>());
|
|
|
- if(ObjectUtil.equal( point.getMustCheck(),1)){
|
|
|
+ if (ObjectUtil.equal(point.getMustCheck(), 1)) {
|
|
|
for (TaskRegisterNfcVo nfc : nfcs) {
|
|
|
- if(usedNfcId.contains(nfc.getNfcId())){
|
|
|
+ if (usedNfcId.contains(nfc.getNfcId())) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- if(ObjectUtil.equal(point.getAreaId(),nfc.getAreaId())){
|
|
|
+ if (ObjectUtil.equal(point.getAreaId(), nfc.getAreaId())) {
|
|
|
point.getNfcList().add(nfc);
|
|
|
usedNfcId.add(nfc.getNfcId());
|
|
|
}
|
|
|
@@ -307,6 +319,13 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
return vo;
|
|
|
}
|
|
|
|
|
|
+ private int getInRegisterTime(Date startTime, Date endTime) {
|
|
|
+ Date date = DateUtil.beginOfDay(new Date());
|
|
|
+ Date planStartDate = DateUtil.beginOfDay(startTime);
|
|
|
+ Date planEndDate = DateUtil.endOfDay(endTime);
|
|
|
+ return (!planStartDate.after(date) && !planEndDate.before(date)) ? 1 : 0;
|
|
|
+ }
|
|
|
+
|
|
|
private List<IdNameVo> getTaskRoles(CoreSafecheckPlan plan, CoreSafetyTask task) {
|
|
|
List<Long> roleIds = new ArrayList<>();
|
|
|
if (ObjectUtil.equal(task.getSourceType(), SafetyTaskSourceType.TempTask.getCode().longValue())) {
|
|
|
@@ -407,11 +426,11 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
*/
|
|
|
@Transactional
|
|
|
public Boolean submit(TaskRegisterVo<AppTaskRegisterPointVo> data, Boolean isNewTask) {
|
|
|
- if(DateUtil.beginOfDay(data.getPlanStartTime()).after(DateUtil.beginOfDay(new Date()))){
|
|
|
+ if (DateUtil.beginOfDay(data.getPlanStartTime()).after(DateUtil.beginOfDay(new Date()))) {
|
|
|
throw new ServiceException("任务未到开始时间");
|
|
|
}
|
|
|
|
|
|
- if(DateUtil.beginOfDay(data.getPlanEndTime()).before(DateUtil.beginOfDay(new Date()))){
|
|
|
+ if (DateUtil.beginOfDay(data.getPlanEndTime()).before(DateUtil.beginOfDay(new Date()))) {
|
|
|
throw new ServiceException("任务已过结束时间");
|
|
|
}
|
|
|
|
|
|
@@ -433,8 +452,8 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
|
|
|
if (!isNewTask) {
|
|
|
removeExistData(data.getId());
|
|
|
- }else{
|
|
|
- SysOrg checkOrg =null;
|
|
|
+ } else {
|
|
|
+ SysOrg checkOrg = null;
|
|
|
checkOrg = remoteOrgService.selectOrgById(data.getCheckOrgId(), SecurityConstants.INNER);
|
|
|
data.setBeCheckOrgType(org.getType().toString());
|
|
|
data.setBeCheckedOrgName(org.getShortName());
|
|
|
@@ -478,13 +497,13 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
}
|
|
|
}
|
|
|
if (isNewTask) {
|
|
|
- addTask(data, questions.size(), data.getIsSubmit(),org);
|
|
|
+ addTask(data, questions.size(), data.getIsSubmit(), org);
|
|
|
} else {
|
|
|
updateTask(data, questions.size(), data.getIsSubmit());
|
|
|
}
|
|
|
if (data.getIsSubmit() > 0) {
|
|
|
coreSafecheckPlanService.buildPdf(data.getId());
|
|
|
- coreSafecheckPlanService.updatePlanCompletedState(data.getPlanId(),1);
|
|
|
+ coreSafecheckPlanService.updatePlanCompletedState(data.getPlanId(), 1);
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
@@ -588,7 +607,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
* @param isSubmit
|
|
|
* @return
|
|
|
*/
|
|
|
- private boolean addTask(TaskRegisterVo data, Integer exceptionCount, Integer isSubmit,SysOrg beCheckedOrg) {
|
|
|
+ private boolean addTask(TaskRegisterVo data, Integer exceptionCount, Integer isSubmit, SysOrg beCheckedOrg) {
|
|
|
CoreSafetyTask task = new CoreSafetyTask();
|
|
|
task.setId(data.getId());
|
|
|
task.setPlanId(-1L);
|
|
|
@@ -686,17 +705,17 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
|
|
|
}
|
|
|
|
|
|
// if (ObjectUtil.isNull(task.getGrantUserId())) {
|
|
|
- Long canGrantCount = tasks.stream()
|
|
|
- .filter(t -> ObjectUtil.notEqual(t.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) &&
|
|
|
- ObjectUtil.notEqual(t.getStatus(),SafetyCheckTaskStatus.OverDue.getValue()) &&
|
|
|
- (ObjectUtil.isNull(t.getGrantUserId()) || ObjectUtil.equal(t.getId(),dto.getTaskId())))
|
|
|
- .count();
|
|
|
- Long selfCompletedCount = tasks.stream()
|
|
|
- .filter(t -> ObjectUtil.equal(t.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) && ObjectUtil.isNull(t.getGrantUserId()))
|
|
|
- .count();
|
|
|
- if (canGrantCount <= 1 && selfCompletedCount == 0) {
|
|
|
- throw new ServiceException("网点负责人每月亲自检查不少于1次");
|
|
|
- }
|
|
|
+ Long canGrantCount = tasks.stream()
|
|
|
+ .filter(t -> ObjectUtil.notEqual(t.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) &&
|
|
|
+ ObjectUtil.notEqual(t.getStatus(), SafetyCheckTaskStatus.OverDue.getValue()) &&
|
|
|
+ (ObjectUtil.isNull(t.getGrantUserId()) || ObjectUtil.equal(t.getId(), dto.getTaskId())))
|
|
|
+ .count();
|
|
|
+ Long selfCompletedCount = tasks.stream()
|
|
|
+ .filter(t -> ObjectUtil.equal(t.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) && ObjectUtil.isNull(t.getGrantUserId()))
|
|
|
+ .count();
|
|
|
+ if (canGrantCount <= 1 && selfCompletedCount == 0) {
|
|
|
+ throw new ServiceException("网点负责人每月亲自检查不少于1次");
|
|
|
+ }
|
|
|
// }
|
|
|
|
|
|
LambdaUpdateWrapper<CoreSafetyTask> updateWrapper = new LambdaUpdateWrapper<>();
|