Merge remote-tracking branch 'origin/master'

This commit is contained in:
2025-09-10 20:24:45 +08:00
6 changed files with 109 additions and 67 deletions

View File

@@ -71,7 +71,7 @@ public class InspectionTaskDetailVo implements Serializable {
* 巡检计划text * 巡检计划text
*/ */
@ExcelProperty(value = " 巡检计划text") @ExcelProperty(value = " 巡检计划text")
private Long planText; private String planText;
/** /**
* 巡检点id * 巡检点id
@@ -82,7 +82,7 @@ public class InspectionTaskDetailVo implements Serializable {
* 巡检点text * 巡检点text
*/ */
@ExcelProperty(value = "巡检点text") @ExcelProperty(value = "巡检点text")
private Long pointText; private String pointText;
/** /**
* 签到类型(1.现场拍照、2.摄像头签到、3.现场扫码) * 签到类型(1.现场拍照、2.摄像头签到、3.现场扫码)

View File

@@ -35,6 +35,11 @@ public class InspectionTaskVo implements Serializable {
*/ */
@ExcelProperty(value = "主键id") @ExcelProperty(value = "主键id")
private Long id; private Long id;
/**
* 任务名称
*/
@ExcelProperty(value = "任务名称")
private String taskName;
/** /**
* 巡检计划id * 巡检计划id

View File

@@ -111,8 +111,9 @@ public class TbRoomVo implements Serializable {
/** /**
* 状态('空置','已售','已租','自用' * 状态('空置','已售','已租','自用'
*/ */
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class) // @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "'=空置','已售','已租','自用'") @ExcelProperty(value = "状态")
//@ExcelDictFormat(readConverterExp = "'=空置','已售','已租','自用'")
private Integer status; private Integer status;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "status", other = "wy_fjzt") @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "status", other = "wy_fjzt")

View File

@@ -258,20 +258,18 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId()); staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId());
//查询该计划巡查人员 //查询该计划巡查人员
List<InspectionPlanStaffVo> inspectionPlanStaffVos = inspectionPlanStaffMapper.selectVoList(staffQueryWrapper); List<InspectionPlanStaffVo> inspectionPlanStaffVos = inspectionPlanStaffMapper.selectVoList(staffQueryWrapper);
// 使用Optional安全处理可能为null的对象
Optional.ofNullable(plan).ifPresent(p -> {
DateTime today = DateUtil.date(); DateTime today = DateUtil.date();
DateTime startDate = DateUtil.date(plan.getStartDate()); DateTime startDate = DateUtil.date(plan.getStartDate());
DateTime endDate = DateUtil.date(plan.getEndDate()); DateTime endDate = DateUtil.date(plan.getEndDate());
String week = String.valueOf(DateUtil.dayOfWeek(DateUtil.date())); String week = String.valueOf(DateUtil.dayOfWeek(DateUtil.date()));
List<String> inspectionWorkdayList = Arrays.asList(p.getInspectionWorkday().split(",")); List<String> inspectionWorkdayList = Arrays.asList(plan.getInspectionWorkday().split(","));
if (DateUtil.isIn(today, startDate, endDate) && inspectionWorkdayList.contains(week)) { if (DateUtil.isIn(today, startDate, endDate) && inspectionWorkdayList.contains(week)) {
InspectionTask task = new InspectionTask(); InspectionTask task = new InspectionTask();
task.setInspectionPlanId(p.getId()); task.setInspectionPlanId(plan.getId());
task.setInspectionPlanId(p.getId()); task.setInspectionPlanId(plan.getId());
task.setTaskType(plan.getSignType()); task.setTaskType(plan.getSignType());
task.setTaskName(plan.getPlanName() + "的任务"); task.setTaskName(plan.getPlanName() + "的任务");
task.setPlanInsTime(startDate + "~" + p.getEndTime()); task.setPlanInsTime(startDate + "~" + plan.getEndTime());
task.setTenantId(plan.getTenantId()); task.setTenantId(plan.getTenantId());
task.setStatus("0"); task.setStatus("0");
if (CollectionUtil.isNotEmpty(inspectionPlanStaffVos)) { if (CollectionUtil.isNotEmpty(inspectionPlanStaffVos)) {
@@ -289,7 +287,6 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
createTaskDetail(task, plan); createTaskDetail(task, plan);
} }
} }
});
} }
/** /**

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import org.apache.commons.beanutils.BeanMap; import org.apache.commons.beanutils.BeanMap;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -30,6 +31,7 @@ import org.dromara.property.domain.vo.mobile.MServiceWorkOrdersRecordVo;
import org.dromara.property.domain.vo.mobile.MServiceWorkOrdersVo; import org.dromara.property.domain.vo.mobile.MServiceWorkOrdersVo;
import org.dromara.property.mapper.*; import org.dromara.property.mapper.*;
import org.dromara.property.mapper.attendanceMapper.AttendanceUserGroupMapper; import org.dromara.property.mapper.attendanceMapper.AttendanceUserGroupMapper;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.model.LoginUser; import org.dromara.system.api.model.LoginUser;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.InspectionTaskDetailBo; import org.dromara.property.domain.bo.InspectionTaskDetailBo;
@@ -60,7 +62,8 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
private final ServiceWorkOrdersMapper serviceWorkOrdersMapper; private final ServiceWorkOrdersMapper serviceWorkOrdersMapper;
private final ServiceWorkOrdersRecordMapper workOrdersRecordMapper; private final ServiceWorkOrdersRecordMapper workOrdersRecordMapper;
private final AttendanceUserGroupMapper attendanceUserGroupMapper; private final AttendanceUserGroupMapper attendanceUserGroupMapper;
@DubboReference
private RemoteUserService remoteUserService;
/** /**
* 查询巡检明细 * 查询巡检明细
* *
@@ -84,35 +87,49 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
LambdaQueryWrapper<InspectionTaskDetail> lqw = buildQueryWrapper(bo); LambdaQueryWrapper<InspectionTaskDetail> lqw = buildQueryWrapper(bo);
Page<InspectionTaskDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<InspectionTaskDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (CollUtil.isNotEmpty(result.getRecords())) { if (CollUtil.isNotEmpty(result.getRecords())) {
// //收集任务id为list //收集任务id为list
// List<Long> taskIds = result.getRecords().stream().map(InspectionTaskDetailVo::getTaskId).toList(); List<Long> taskIds = result.getRecords().stream().map(InspectionTaskDetailVo::getTaskId).toList();
// //收集任务为map id和名称 //收集任务为map id和名称
// Map<Long, String> taskNameMap = inspectionTaskMapper.selectVoByIds(taskIds).stream() Map<Long, String> taskNameMap = inspectionTaskMapper.selectVoByIds(taskIds).stream()
// .collect(Collectors.toMap(InspectionTaskVo::getId, InspectionTaskVo::getPlanName)); .collect(Collectors.toMap(InspectionTaskVo::getId, InspectionTaskVo::getTaskName));
// //收集路线id为list //收集路线id为list
// List<Long> routeIds = result.getRecords().stream().map(InspectionTaskDetailVo::getRouteId).toList(); List<Long> routeIds = result.getRecords().stream().map(InspectionTaskDetailVo::getRouteId).toList();
// //收集任务为map id和名称 //收集任务为map id和名称
// Map<Long, String> routeNameMap = inspectionRouteMapper.selectVoByIds(routeIds).stream() Map<Long, String> routeNameMap = inspectionRouteMapper.selectVoByIds(routeIds).stream()
// .collect(Collectors.toMap(InspectionRouteVo::getId, InspectionRouteVo::getRouteName)); .collect(Collectors.toMap(InspectionRouteVo::getId, InspectionRouteVo::getRouteName));
// //收集路线列表 //收集计划id为list
// List<InspectionRouteVo> inspectionRoutes = inspectionRouteMapper.selectVoByIds(routeIds); List<Long> planIds = result.getRecords().stream().map(InspectionTaskDetailVo::getPlanId).toList();
// //收集计划id为list //收集计划列表
// List<Long> planIds = result.getRecords().stream().map(InspectionTaskDetailVo::getPlanId).toList(); Map<Long, String> planNameMap = inspectionPlanMapper.selectVoByIds(planIds).stream()
// //收集计划列表 .collect(Collectors.toMap(InspectionPlanVo::getId, InspectionPlanVo::getPlanName));
// Map<Long, String> planNameMap = inspectionPlanMapper.selectVoByIds(routeIds).stream() //巡检点id为list
// .collect(Collectors.toMap(InspectionPlanVo::getId, InspectionPlanVo::getPlanName)); List<Long> pointIds = result.getRecords().stream().map(InspectionTaskDetailVo::getPointId).toList();
// //巡检点id为list //巡检点列表
// List<Long> pointIds = result.getRecords().stream().map(InspectionTaskDetailVo::getPointId).toList(); Map<Long, String> pointNameMap = inspectionPointMapper.selectVoByIds(pointIds).stream()
.collect(Collectors.toMap(InspectionPointVo::getId, InspectionPointVo::getPointName));
result.getRecords().stream().forEach(vo -> { result.getRecords().stream().forEach(vo -> {
disposeData(vo); disposeData(vo,taskNameMap,routeNameMap,planNameMap,pointNameMap);
}); });
} }
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
private void disposeData(InspectionTaskDetailVo vo) { private void disposeData(InspectionTaskDetailVo vo,Map<Long, String> taskNameMap,Map<Long, String> routeNameMap, Map<Long, String> planNameMap,Map<Long, String> pointNameMap ) {
vo.setTaskText(taskNameMap.get(vo.getTaskId()));
vo.setRouteText(routeNameMap.get(vo.getRouteId()));
vo.setPlanText(planNameMap.get(vo.getPlanId()));
vo.setPointText(pointNameMap.get(vo.getPointId()));
// if(ObjectUtil.isNotEmpty( vo.getPlanInspectionPersonText() )){
// //以,切割拼接成
// String[] split = vo.getPlanInspectionPersonText().split(",");
// remoteUserService.selectNicknameById(Long.valueOf(vo.getPlanInspectionPerson()));
// vo.setPlanInspectionPersonText( )
// }
// if(ObjectUtil.isNotEmpty(vo.setActualInspectionPerson())){
//
// vo.setActualInspectionPersonText();
// }
} }
/** /**
@@ -346,6 +363,10 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
serviceWorkOrders.setProcessingWeight(serviceWorkOrdersType.getProcessingWeight()); serviceWorkOrders.setProcessingWeight(serviceWorkOrdersType.getProcessingWeight());
serviceWorkOrders.setType(serviceWorkOrdersType.getId()); serviceWorkOrders.setType(serviceWorkOrdersType.getId());
serviceWorkOrders.setLocation(bo.getInspectionLocation()); serviceWorkOrders.setLocation(bo.getInspectionLocation());
serviceWorkOrders.setIsTimeOut("0");
Date originalDate = new Date(); // 当前时间
Date newDate = DateUtil.offsetHour(originalDate, serviceWorkOrdersType.getCompletionNumber());
serviceWorkOrders.setPlanCompleTime(newDate);
boolean flag = serviceWorkOrdersMapper.insert(serviceWorkOrders) > 0; boolean flag = serviceWorkOrdersMapper.insert(serviceWorkOrders) > 0;
if (flag) { if (flag) {
bo.setId(serviceWorkOrders.getId()); bo.setId(serviceWorkOrders.getId());
@@ -358,6 +379,10 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
if (serviceWorkOrdersType.getOperationMode().equals(OrderTypeOperationEnum.AUTOMATE_DISPATCH.getValue())) { if (serviceWorkOrdersType.getOperationMode().equals(OrderTypeOperationEnum.AUTOMATE_DISPATCH.getValue())) {
handleServiceWorkOrder(serviceWorkOrders, serviceWorkOrdersType, bo); handleServiceWorkOrder(serviceWorkOrders, serviceWorkOrdersType, bo);
} }
//修改巡检明细接口绑定工单id
InspectionTaskDetail update = BeanUtil.copyProperties(bo, InspectionTaskDetail.class);
update.setOrderId(serviceWorkOrders.getId());
baseMapper.updateById(update);
} }
} }
return flag; return flag;
@@ -411,10 +436,6 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
// 5. 更新工单 // 5. 更新工单
serviceWorkOrders.setDispatchTime(new Date()); serviceWorkOrders.setDispatchTime(new Date());
serviceWorkOrdersMapper.updateById(serviceWorkOrders); serviceWorkOrdersMapper.updateById(serviceWorkOrders);
//修改巡检明细接口
InspectionTaskDetail inspectionTaskDetail = baseMapper.selectById(bo.getId());
inspectionTaskDetail.setOrderId(serviceWorkOrders.getId());
baseMapper.updateById(inspectionTaskDetail);
log.info("成功派单,工单号:{}", serviceWorkOrders.getOrderNo()); log.info("成功派单,工单号:{}", serviceWorkOrders.getOrderNo());
} }
} }

View File

@@ -228,6 +228,10 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
add.setStatus(WorkOrderStatusEnum.CREATE_ORDER.getValue()); add.setStatus(WorkOrderStatusEnum.CREATE_ORDER.getValue());
add.setInitiatorPeople(user.getNickname()); add.setInitiatorPeople(user.getNickname());
add.setProcessingWeight(serviceWorkOrdersType.getProcessingWeight()); add.setProcessingWeight(serviceWorkOrdersType.getProcessingWeight());
add.setIsTimeOut("0");
Date originalDate = new Date(); // 当前时间
Date newDate = DateUtil.offsetHour(originalDate, serviceWorkOrdersType.getCompletionNumber());
add.setPlanCompleTime(newDate);
validEntityBeforeSave(add); validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
@@ -332,11 +336,21 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
ordersLambdaQueryWrapper.eq(ServiceWorkOrdersRecord::getStatus, entity.getStatus()); ordersLambdaQueryWrapper.eq(ServiceWorkOrdersRecord::getStatus, entity.getStatus());
boolean exists = workOrdersRecordMapper.exists(ordersLambdaQueryWrapper); boolean exists = workOrdersRecordMapper.exists(ordersLambdaQueryWrapper);
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
if (!exists) {
ServiceWorkOrdersRecord serviceWorkOrdersRecord = new ServiceWorkOrdersRecord(); ServiceWorkOrdersRecord serviceWorkOrdersRecord = new ServiceWorkOrdersRecord();
serviceWorkOrdersRecord.setOrderId(entity.getId()); serviceWorkOrdersRecord.setOrderId(entity.getId());
serviceWorkOrdersRecord.setStatus(entity.getStatus()); serviceWorkOrdersRecord.setStatus(entity.getStatus());
serviceWorkOrdersRecord.setHandler(entity.getHandler()); serviceWorkOrdersRecord.setHandler(entity.getHandler());
workOrdersRecordMapper.insert(serviceWorkOrdersRecord); boolean b = workOrdersRecordMapper.insert(serviceWorkOrdersRecord) > 0;
if (b) {
if (serviceWorkOrdersRecord.getStatus().equals(WorkOrderStatusEnum.DONE.getValue())) {
entity.setCompleTime(new Date());
entity.setIsTimeOut( DateUtil.compare(new Date(), entity.getPlanCompleTime())>0?"1":"0");
baseMapper.updateById(entity);
}
}
}
} }
/** /**
@@ -594,6 +608,10 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
add.setReportingType(OrderReportingTypeEnum.PHONE_REPORT.getValue()); add.setReportingType(OrderReportingTypeEnum.PHONE_REPORT.getValue());
add.setProcessingWeight(serviceWorkOrdersType.getProcessingWeight()); add.setProcessingWeight(serviceWorkOrdersType.getProcessingWeight());
add.setInitiatorPeople(user.getNickname()); add.setInitiatorPeople(user.getNickname());
add.setIsTimeOut("0");
Date originalDate = new Date(); // 当前时间
Date newDate = DateUtil.offsetHour(originalDate, serviceWorkOrdersType.getCompletionNumber());
add.setPlanCompleTime(newDate);
validEntityBeforeSave(add); validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {