|
@@ -6,6 +6,7 @@ import cn.com.ty.lift.business.framework.util.MessageUtils;
|
|
|
import cn.com.ty.lift.business.library.dao.entity.Lift;
|
|
|
import cn.com.ty.lift.business.library.service.LiftService;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.MaintenancePlan;
|
|
|
+import cn.com.ty.lift.business.maintenance.dao.entity.MaintenanceRecord;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenancePlanRequest;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MtPlanRequest;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.model.response.LiftPrintResponse;
|
|
@@ -69,6 +70,9 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
@Resource
|
|
|
private CommonMapper commonMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private MaintenanceRecordService maintenanceRecordService;
|
|
|
+
|
|
|
@Resource
|
|
|
private ProjectLiftRelevanceService projectLiftRelevanceService;
|
|
|
|
|
@@ -106,7 +110,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
return baseMapper.findByCondition(request.getPage(), request);
|
|
|
}
|
|
|
|
|
|
- public List<Map<String,String>> exportList(List<String> ids){
|
|
|
+ public List<Map<String, String>> exportList(List<String> ids) {
|
|
|
return baseMapper.exportList(ids);
|
|
|
}
|
|
|
|
|
@@ -128,7 +132,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param planList 需生成维保计划的电梯列表
|
|
|
+ * @param planList 需生成维保计划的电梯列表
|
|
|
* @param firstTime 首保时间
|
|
|
* @return 判断结果
|
|
|
* @description 新增维保计划前置判断条件
|
|
@@ -154,14 +158,14 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param liftId 电梯ID
|
|
|
- * @param projectId 项目ID
|
|
|
+ * @param liftId 电梯ID
|
|
|
+ * @param projectId 项目ID
|
|
|
* @param mtCompanyId 公司ID
|
|
|
- * @param interval 保养间隔
|
|
|
- * @param planDate 保养时间
|
|
|
- * @param type 保养类型
|
|
|
- * @param liftCharge 电梯负责人
|
|
|
- * @param operator 操作人
|
|
|
+ * @param interval 保养间隔
|
|
|
+ * @param planDate 保养时间
|
|
|
+ * @param type 保养类型
|
|
|
+ * @param liftCharge 电梯负责人
|
|
|
+ * @param operator 操作人
|
|
|
* @return
|
|
|
* @description 生成保养计划消息推送
|
|
|
* @date 2020/5/5 9:26 下午
|
|
@@ -183,21 +187,21 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
ProjectDetailResponse detail = projectAppService.detail(projectId);
|
|
|
Optional<Lift> lift = liftService.getOne(null, liftId);
|
|
|
lift.ifPresent(l ->
|
|
|
- PushMessage.maintainCreatePlan(detail.getAreaName(), detail.getProjectName(), l.getDevicePosition(),
|
|
|
- l.getRegistrationCode(), interval, planDate, type, liftCharge, operator).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos));
|
|
|
+ PushMessage.maintainCreatePlan(detail.getAreaName(), detail.getProjectName(), l.getDevicePosition(),
|
|
|
+ l.getRegistrationCode(), interval, planDate, type, liftCharge, operator).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param liftId 电梯ID
|
|
|
- * @param projectId 项目ID
|
|
|
+ * @param liftId 电梯ID
|
|
|
+ * @param projectId 项目ID
|
|
|
* @param mtCompanyId 公司ID
|
|
|
- * @param interval 保养间隔
|
|
|
- * @param planDate 保养时间
|
|
|
- * @param type 保养类型
|
|
|
- * @param liftCharge 电梯负责人
|
|
|
- * @param operator 操作人
|
|
|
- * @param workerId 维保工
|
|
|
+ * @param interval 保养间隔
|
|
|
+ * @param planDate 保养时间
|
|
|
+ * @param type 保养类型
|
|
|
+ * @param liftCharge 电梯负责人
|
|
|
+ * @param operator 操作人
|
|
|
+ * @param workerId 维保工
|
|
|
* @return
|
|
|
* @description 修改保养计划消息推送
|
|
|
* @date 2020/5/8 10:25 上午
|
|
@@ -231,6 +235,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
* @description 批量生成维保计划
|
|
|
* @date 2019/12/16 2:14 PM
|
|
|
*/
|
|
|
+ // FIXME: 2021/2/20 电梯制定计划count值有问题
|
|
|
public RestResponse insertBatch(MaintenancePlanRequest request) {
|
|
|
String demand = request.getDemand();
|
|
|
if ("0".equals(demand)) {
|
|
@@ -265,9 +270,9 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
|
|
|
/**
|
|
|
* @param mtCompanyId 公司id
|
|
|
- * @param projectId 项目id
|
|
|
+ * @param projectId 项目id
|
|
|
* @param intervalMap 维保间隔map
|
|
|
- * @param endDate 项目结束时间
|
|
|
+ * @param endDate 项目结束时间
|
|
|
* @return 是否成功
|
|
|
* @description 修改项目结束时间生成维保计划
|
|
|
* @date 2020/12/14 7:14 下午
|
|
@@ -324,9 +329,9 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param interval 保养间隔
|
|
|
+ * @param interval 保养间隔
|
|
|
* @param beginTime 开始时间
|
|
|
- * @param endTime 结束时间
|
|
|
+ * @param endTime 结束时间
|
|
|
* @return 期数
|
|
|
* @description 获取维保计划生成期数
|
|
|
* @date 2020/1/8 8:11 下午
|
|
@@ -339,11 +344,11 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param plan 维保计划
|
|
|
- * @param periods 期数
|
|
|
- * @param interval 保养间隔
|
|
|
+ * @param plan 维保计划
|
|
|
+ * @param periods 期数
|
|
|
+ * @param interval 保养间隔
|
|
|
* @param beginTime 开始时间
|
|
|
- * @param endTime 结束时间
|
|
|
+ * @param endTime 结束时间
|
|
|
* @return 维保计划列表
|
|
|
* @description 生成维保计划
|
|
|
* @date 2020/1/8 8:20 下午
|
|
@@ -388,8 +393,8 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
|
|
|
/**
|
|
|
* @param currentTime 当前时间
|
|
|
- * @param liftId 电梯id
|
|
|
- * @param projectId 项目id
|
|
|
+ * @param liftId 电梯id
|
|
|
+ * @param projectId 项目id
|
|
|
* @param mtCompanyId 公司id
|
|
|
* @return List<MaintenancePlan> 维保计划列表
|
|
|
* @description 查询当前时间之后的维保计划
|
|
@@ -412,7 +417,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
|
|
|
/**
|
|
|
* @param mtCompanyId 公司id
|
|
|
- * @param liftId 电梯id
|
|
|
+ * @param liftId 电梯id
|
|
|
* @return 维保计划列表
|
|
|
* @description 获取当前期数后的维保计划列表
|
|
|
* @date 2020/1/8 10:33 上午
|
|
@@ -422,7 +427,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
LambdaQueryWrapper<MaintenancePlan> lambdaQueryWrapper = queryWrapper.lambda();
|
|
|
lambdaQueryWrapper.eq(MaintenancePlan::getMtCompanyId, mtCompanyId);
|
|
|
lambdaQueryWrapper.eq(MaintenancePlan::getLiftId, liftId);
|
|
|
- lambdaQueryWrapper.eq(MaintenancePlan::getStatus,0);
|
|
|
+ lambdaQueryWrapper.eq(MaintenancePlan::getStatus, 0);
|
|
|
lambdaQueryWrapper.ge(MaintenancePlan::getCount, periods);
|
|
|
return list(lambdaQueryWrapper);
|
|
|
}
|
|
@@ -433,7 +438,9 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
* @description 修改维保计划
|
|
|
* @date 2019/12/16 5:25 PM
|
|
|
*/
|
|
|
+ // fixme: 2021/2/20 修改计划有问题
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
+ @SuppressWarnings("all")
|
|
|
public boolean modifyPlan(MaintenancePlanRequest request) {
|
|
|
//获取公司id
|
|
|
Long mtCompanyId = request.getMtCompanyId();
|
|
@@ -473,6 +480,9 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
boolean isNull = ObjectUtil.isEmpty(currentTime) && ObjectUtil.isEmpty(updateTime);
|
|
|
List<MaintenancePlan> planList;
|
|
|
List<MaintenancePlan> plans = new ArrayList<>();
|
|
|
+
|
|
|
+
|
|
|
+ //Situation1 修改维保计划日期,但是维保间隔不变
|
|
|
if (isNotNull && ObjectUtil.isEmpty(updateInterval)) {
|
|
|
//获取当前时间后的维保计划列表,并清除计划
|
|
|
planList = findPlanList(liftId, projectId, mtCompanyId, currentTime, "plan");
|
|
@@ -481,6 +491,8 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
//按照修改时间重新生成计划
|
|
|
plans = generatePlan(plan, periods, interval, updateTime, endDate);
|
|
|
} else return false;
|
|
|
+
|
|
|
+ //situation2 维保计划日期不变,但是维保间隔改变
|
|
|
} else if (isNull && ObjectUtil.isNotEmpty(updateInterval)) {
|
|
|
//获取当前期数后的维保计划列表,并清除计划
|
|
|
planList = findPlanList(mtCompanyId, liftId, periods);
|
|
@@ -491,6 +503,8 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
projectLiftRelevanceService.modify(relevance);
|
|
|
plans = generatePlan(plan, periods, updateInterval, planDate, endDate);
|
|
|
} else return false;
|
|
|
+
|
|
|
+ //situation3 同时修改
|
|
|
} else if (isNotNull && ObjectUtil.isNotEmpty(updateInterval)) {
|
|
|
//获取当前期数后的维保计划列表,并清除计划
|
|
|
planList = findPlanList(mtCompanyId, liftId, periods);
|
|
@@ -512,7 +526,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
|
|
|
/**
|
|
|
* @param mtCompanyId 公司id
|
|
|
- * @param liftList 电梯id列表
|
|
|
+ * @param liftList 电梯id列表
|
|
|
* @return 是否成功
|
|
|
* @description 批量清除维保计划
|
|
|
* @date 2019/12/28 2:00 PM
|
|
@@ -527,7 +541,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
|
|
|
/**
|
|
|
* @param mtCompanyId 公司id
|
|
|
- * @param liftList 电梯id列表
|
|
|
+ * @param liftList 电梯id列表
|
|
|
* @return List<MaintenancePlan> 维保计划列表
|
|
|
* @description 根据公司id和电梯id列表获取维保计划
|
|
|
* @date 2020/5/23 3:58 下午
|
|
@@ -582,8 +596,8 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
|
|
|
/**
|
|
|
* @param mtCompanyId 公司id
|
|
|
- * @param liftIdList 电梯id列表
|
|
|
- * @param beginTime 开始时间
|
|
|
+ * @param liftIdList 电梯id列表
|
|
|
+ * @param beginTime 开始时间
|
|
|
* @return List<LiftPrintResponse> 电梯维保计划列表
|
|
|
* @description 根据公司id和电梯id列表查询维保计划列表,并组装电梯列表数据
|
|
|
* @date 2020/3/2 4:39 下午
|
|
@@ -646,26 +660,28 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
project.setLiftList(liftPrintResponses);
|
|
|
project.setNum(project.getLiftList().size());
|
|
|
}
|
|
|
- return projectList;
|
|
|
+ return projectList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据条件分页查询 维保计划-超期计划
|
|
|
- * @author wcz
|
|
|
+ *
|
|
|
* @param request MtPlanRequest
|
|
|
* @return IPage<MtPlanResponse>
|
|
|
+ * @author wcz
|
|
|
*/
|
|
|
- public IPage<MtPlanResponse> pagePlanByCondition(MtPlanRequest request){
|
|
|
- return baseMapper.pagePlanByCondition(request.getPage(),request);
|
|
|
+ public IPage<MtPlanResponse> pagePlanByCondition(MtPlanRequest request) {
|
|
|
+ return baseMapper.pagePlanByCondition(request.getPage(), request);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据条件统计 维保计划-超期计划
|
|
|
- * @author wcz
|
|
|
+ *
|
|
|
* @param request MtPlanRequest
|
|
|
* @return long
|
|
|
+ * @author wcz
|
|
|
*/
|
|
|
- public long countPlanByCondition(MtPlanRequest request){
|
|
|
+ public long countPlanByCondition(MtPlanRequest request) {
|
|
|
return baseMapper.countPlanByCondition(request);
|
|
|
}
|
|
|
|
|
@@ -681,11 +697,12 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
|
|
|
/**
|
|
|
* 根据条件统计 维保计划-超期计划
|
|
|
- * @author wcz
|
|
|
+ *
|
|
|
* @param limit 条数
|
|
|
* @return List<MaintenancePlan>
|
|
|
+ * @author wcz
|
|
|
*/
|
|
|
- public boolean updateOverduePlan(int limit){
|
|
|
+ public boolean updateOverduePlan(int limit) {
|
|
|
LambdaUpdateWrapper<MaintenancePlan> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
|
|
|
lambdaUpdateWrapper.lt(MaintenancePlan::getPlanDate, LocalDate.now());
|
|
|
lambdaUpdateWrapper.isNull(MaintenancePlan::getWorkDate);
|
|
@@ -695,7 +712,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
return update(lambdaUpdateWrapper);
|
|
|
}
|
|
|
|
|
|
- public IPage<MaintenancePlan> pageOverduePlan(IPage<MaintenancePlan> page){
|
|
|
+ public IPage<MaintenancePlan> pageOverduePlan(IPage<MaintenancePlan> page) {
|
|
|
LambdaQueryWrapper<MaintenancePlan> lambdaQueryWrapper = Wrappers.lambdaQuery();
|
|
|
lambdaQueryWrapper.lt(MaintenancePlan::getPlanDate, LocalDate.now());
|
|
|
lambdaQueryWrapper.isNull(MaintenancePlan::getWorkDate);
|
|
@@ -729,4 +746,109 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
|
|
|
lambdaQueryWrapper.eq(MaintenancePlan::getStatus, 0);
|
|
|
return list(lambdaQueryWrapper);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改计划 重新写的接口
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public RestResponse revisePlan(MaintenancePlanRequest request) {
|
|
|
+
|
|
|
+ //判断是否传入时间
|
|
|
+ if (Objects.isNull(request.getUpdateTime()) || Objects.isNull(request.getCurrentTime())) {
|
|
|
+ return RestResponse.fail("必须修改维保日期!");
|
|
|
+ }
|
|
|
+ //根据电梯维当前保计划时间查询维保计划时候存在
|
|
|
+ MaintenancePlan maintenancePlan = baseMapper.selectOne(new QueryWrapper<MaintenancePlan>()
|
|
|
+ .lambda()
|
|
|
+ .eq(MaintenancePlan::getLiftId, request.getLiftId())
|
|
|
+ .eq(MaintenancePlan::getMtCompanyId, request.getMtCompanyId())
|
|
|
+ .eq(MaintenancePlan::getProjectId, request.getProjectId())
|
|
|
+ .eq(MaintenancePlan::getPlanDate, request.getCurrentTime())
|
|
|
+ .last("limit 1"));
|
|
|
+ if (Objects.isNull(maintenancePlan)) {
|
|
|
+ return RestResponse.fail("计划的当前时间未查询到计划!");
|
|
|
+ }
|
|
|
+ //判断当前维保计划的电梯是否有保养记录
|
|
|
+ MaintenanceRecord maintenanceRecord = maintenanceRecordService.getBaseMapper().selectOne(
|
|
|
+ new QueryWrapper<MaintenanceRecord>()
|
|
|
+ .lambda()
|
|
|
+ .eq(MaintenanceRecord::getMtCompanyId, request.getMtCompanyId())
|
|
|
+ .eq(MaintenanceRecord::getLiftId, request.getLiftId())
|
|
|
+ .eq(MaintenanceRecord::getMtPlanId, maintenancePlan.getId())
|
|
|
+ .last("limit 1")
|
|
|
+ );
|
|
|
+ if (Objects.nonNull(maintenanceRecord)) {
|
|
|
+ return RestResponse.fail("当前计划时间的电梯已经产生保养或正在保养,无法重新修改计划!");
|
|
|
+ }
|
|
|
+ //获取项目的结束时间
|
|
|
+ Project project = projectService.getBaseMapper().selectById(request.getProjectId());
|
|
|
+ if (Objects.isNull(project)) {
|
|
|
+ return RestResponse.fail("当前电梯未查询到项目,无法重新修改计划!");
|
|
|
+ }
|
|
|
+ //项目结束时间默认增加三个月
|
|
|
+ LocalDate endDate = project.getEndDate().plusMonths(3);
|
|
|
+ //取出当前时间上一次的维保计划
|
|
|
+ MaintenancePlan lastMaintenancePlan = baseMapper.selectOne(
|
|
|
+ new QueryWrapper<MaintenancePlan>()
|
|
|
+ .lambda()
|
|
|
+ .eq(MaintenancePlan::getMtCompanyId, request.getMtCompanyId())
|
|
|
+ .eq(MaintenancePlan::getLiftId, request.getLiftId())
|
|
|
+ .lt(MaintenancePlan::getPlanDate, request.getCurrentTime())
|
|
|
+ .orderByDesc(MaintenancePlan::getPlanDate)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (Objects.isNull(lastMaintenancePlan)) {
|
|
|
+ return RestResponse.fail("未找到上一次的维保计划,无法修改计划!");
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除当前时间以后的全部维保计划
|
|
|
+ baseMapper.delete(new QueryWrapper<MaintenancePlan>()
|
|
|
+ .lambda()
|
|
|
+ .eq(MaintenancePlan::getMtCompanyId, request.getMtCompanyId())
|
|
|
+ .eq(MaintenancePlan::getLiftId, request.getLiftId())
|
|
|
+ .eq(MaintenancePlan::getProjectId, request.getProjectId())
|
|
|
+ .ge(MaintenancePlan::getPlanDate, request.getCurrentTime()));
|
|
|
+
|
|
|
+ //维保间隔判断
|
|
|
+ if (Objects.nonNull(request.getInterval())) {
|
|
|
+ //更新维保间隔 写入
|
|
|
+ ProjectLiftRelevance relevance = new ProjectLiftRelevance();
|
|
|
+ relevance.setId(request.getRelevanceId());
|
|
|
+ relevance.setPlanInterval(request.getInterval());
|
|
|
+ projectLiftRelevanceService.modify(relevance);
|
|
|
+ } else {
|
|
|
+ //查出维保间隔
|
|
|
+ request.setInterval(projectLiftRelevanceService.getBaseMapper().selectById(request.getRelevanceId()).getPlanInterval());
|
|
|
+ }
|
|
|
+
|
|
|
+ //生成新的计划,根据上一次的计划得到下次的count值
|
|
|
+ Integer count = lastMaintenancePlan.getCount();
|
|
|
+ if (count == null) {
|
|
|
+ count = 0;
|
|
|
+ }
|
|
|
+ count++;
|
|
|
+ if (count > 24) {
|
|
|
+ count = count % 24;
|
|
|
+ }
|
|
|
+ if (count == 24) {
|
|
|
+ count = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<MaintenancePlan> plans = generatePlan(lastMaintenancePlan, count, request.getInterval(), request.getUpdateTime(), endDate);
|
|
|
+ //批量保存
|
|
|
+ saveBatch(plans);
|
|
|
+
|
|
|
+ MaintenancePlan newPlan = plans.get(0);
|
|
|
+ String workerName = commonMapper.queryUserNameById(request.getWorkerId());
|
|
|
+ String creatorName = commonMapper.queryUserNameById(newPlan.getCreatorId());
|
|
|
+ //发送修改计划消息推送
|
|
|
+ sendModifyMessage(request.getLiftId(), request.getProjectId(), request.getMtCompanyId(), request.getInterval(), newPlan.getPlanDate(), newPlan.getType(), workerName, creatorName, request.getWorkerId());
|
|
|
+
|
|
|
+ return RestResponse.success(null, "修改计划成功!");
|
|
|
+ }
|
|
|
+
|
|
|
}
|