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

View File

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

View File

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

View File

@@ -228,7 +228,7 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
if (DateUtil.isIn(today, startDate, endDate) && inspectionDayList.contains(day)) {
InspectionTask task = new InspectionTask();
task.setInspectionPlanId(p.getId());
task.setTaskName(plan.getPlanName()+"的任务");
task.setTaskName(plan.getPlanName() + "的任务");
task.setTaskType(plan.getSignType());
task.setPlanInsTime(startDate + "~" + p.getEndTime());
task.setTenantId(plan.getTenantId());
@@ -258,38 +258,35 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId());
//查询该计划巡查人员
List<InspectionPlanStaffVo> inspectionPlanStaffVos = inspectionPlanStaffMapper.selectVoList(staffQueryWrapper);
// 使用Optional安全处理可能为null的对象
Optional.ofNullable(plan).ifPresent(p -> {
DateTime today = DateUtil.date();
DateTime startDate = DateUtil.date(plan.getStartDate());
DateTime endDate = DateUtil.date(plan.getEndDate());
String week = String.valueOf(DateUtil.dayOfWeek(DateUtil.date()));
List<String> inspectionWorkdayList = Arrays.asList(p.getInspectionWorkday().split(","));
if (DateUtil.isIn(today, startDate, endDate) && inspectionWorkdayList.contains(week)) {
InspectionTask task = new InspectionTask();
task.setInspectionPlanId(p.getId());
task.setInspectionPlanId(p.getId());
task.setTaskType(plan.getSignType());
task.setTaskName(plan.getPlanName()+"的任务");
task.setPlanInsTime(startDate + "~" + p.getEndTime());
task.setTenantId(plan.getTenantId());
task.setStatus("0");
if (CollectionUtil.isNotEmpty(inspectionPlanStaffVos)) {
String userIds = inspectionPlanStaffVos.stream().map(vo -> vo.getUserId().toString()).collect(Collectors.joining(","));
DateTime today = DateUtil.date();
DateTime startDate = DateUtil.date(plan.getStartDate());
DateTime endDate = DateUtil.date(plan.getEndDate());
String week = String.valueOf(DateUtil.dayOfWeek(DateUtil.date()));
List<String> inspectionWorkdayList = Arrays.asList(plan.getInspectionWorkday().split(","));
if (DateUtil.isIn(today, startDate, endDate) && inspectionWorkdayList.contains(week)) {
InspectionTask task = new InspectionTask();
task.setInspectionPlanId(plan.getId());
task.setInspectionPlanId(plan.getId());
task.setTaskType(plan.getSignType());
task.setTaskName(plan.getPlanName() + "的任务");
task.setPlanInsTime(startDate + "~" + plan.getEndTime());
task.setTenantId(plan.getTenantId());
task.setStatus("0");
if (CollectionUtil.isNotEmpty(inspectionPlanStaffVos)) {
String userIds = inspectionPlanStaffVos.stream().map(vo -> vo.getUserId().toString()).collect(Collectors.joining(","));
String userNames = inspectionPlanStaffVos.stream().map(InspectionPlanStaffVo::getUserName).collect(Collectors.joining(","));
task.setPlanUserId(userIds);
task.setPlanUserName(userNames);
} else {
task.setPlanUserId("");
task.setPlanUserName("");
}
boolean b = inspectionTaskMapper.insert(task) > 0;
if (b) {
createTaskDetail(task, plan);
}
String userNames = inspectionPlanStaffVos.stream().map(InspectionPlanStaffVo::getUserName).collect(Collectors.joining(","));
task.setPlanUserId(userIds);
task.setPlanUserName(userNames);
} else {
task.setPlanUserId("");
task.setPlanUserName("");
}
});
boolean b = inspectionTaskMapper.insert(task) > 0;
if (b) {
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.ObjectUtil;
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.StringUtils;
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.mapper.*;
import org.dromara.property.mapper.attendanceMapper.AttendanceUserGroupMapper;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.model.LoginUser;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.InspectionTaskDetailBo;
@@ -60,7 +62,8 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
private final ServiceWorkOrdersMapper serviceWorkOrdersMapper;
private final ServiceWorkOrdersRecordMapper workOrdersRecordMapper;
private final AttendanceUserGroupMapper attendanceUserGroupMapper;
@DubboReference
private RemoteUserService remoteUserService;
/**
* 查询巡检明细
*
@@ -84,35 +87,49 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
LambdaQueryWrapper<InspectionTaskDetail> lqw = buildQueryWrapper(bo);
Page<InspectionTaskDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (CollUtil.isNotEmpty(result.getRecords())) {
// //收集任务id为list
// List<Long> taskIds = result.getRecords().stream().map(InspectionTaskDetailVo::getTaskId).toList();
// //收集任务为map id和名称
// Map<Long, String> taskNameMap = inspectionTaskMapper.selectVoByIds(taskIds).stream()
// .collect(Collectors.toMap(InspectionTaskVo::getId, InspectionTaskVo::getPlanName));
// //收集路线id为list
// List<Long> routeIds = result.getRecords().stream().map(InspectionTaskDetailVo::getRouteId).toList();
// //收集任务为map id和名称
// Map<Long, String> routeNameMap = inspectionRouteMapper.selectVoByIds(routeIds).stream()
// .collect(Collectors.toMap(InspectionRouteVo::getId, InspectionRouteVo::getRouteName));
// //收集路线列表
// List<InspectionRouteVo> inspectionRoutes = inspectionRouteMapper.selectVoByIds(routeIds);
// //收集计划id为list
// List<Long> planIds = result.getRecords().stream().map(InspectionTaskDetailVo::getPlanId).toList();
// //收集计划列表
// Map<Long, String> planNameMap = inspectionPlanMapper.selectVoByIds(routeIds).stream()
// .collect(Collectors.toMap(InspectionPlanVo::getId, InspectionPlanVo::getPlanName));
// //巡检点id为list
// List<Long> pointIds = result.getRecords().stream().map(InspectionTaskDetailVo::getPointId).toList();
//收集任务id为list
List<Long> taskIds = result.getRecords().stream().map(InspectionTaskDetailVo::getTaskId).toList();
//收集任务为map id和名称
Map<Long, String> taskNameMap = inspectionTaskMapper.selectVoByIds(taskIds).stream()
.collect(Collectors.toMap(InspectionTaskVo::getId, InspectionTaskVo::getTaskName));
//收集路线id为list
List<Long> routeIds = result.getRecords().stream().map(InspectionTaskDetailVo::getRouteId).toList();
//收集任务为map id和名称
Map<Long, String> routeNameMap = inspectionRouteMapper.selectVoByIds(routeIds).stream()
.collect(Collectors.toMap(InspectionRouteVo::getId, InspectionRouteVo::getRouteName));
//收集计划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));
//巡检点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 -> {
disposeData(vo);
disposeData(vo,taskNameMap,routeNameMap,planNameMap,pointNameMap);
});
}
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.setType(serviceWorkOrdersType.getId());
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;
if (flag) {
bo.setId(serviceWorkOrders.getId());
@@ -358,6 +379,10 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
if (serviceWorkOrdersType.getOperationMode().equals(OrderTypeOperationEnum.AUTOMATE_DISPATCH.getValue())) {
handleServiceWorkOrder(serviceWorkOrders, serviceWorkOrdersType, bo);
}
//修改巡检明细接口绑定工单id
InspectionTaskDetail update = BeanUtil.copyProperties(bo, InspectionTaskDetail.class);
update.setOrderId(serviceWorkOrders.getId());
baseMapper.updateById(update);
}
}
return flag;
@@ -411,10 +436,6 @@ public class InspectionTaskDetailServiceImpl implements IInspectionTaskDetailSer
// 5. 更新工单
serviceWorkOrders.setDispatchTime(new Date());
serviceWorkOrdersMapper.updateById(serviceWorkOrders);
//修改巡检明细接口
InspectionTaskDetail inspectionTaskDetail = baseMapper.selectById(bo.getId());
inspectionTaskDetail.setOrderId(serviceWorkOrders.getId());
baseMapper.updateById(inspectionTaskDetail);
log.info("成功派单,工单号:{}", serviceWorkOrders.getOrderNo());
}
}

View File

@@ -228,6 +228,10 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
add.setStatus(WorkOrderStatusEnum.CREATE_ORDER.getValue());
add.setInitiatorPeople(user.getNickname());
add.setProcessingWeight(serviceWorkOrdersType.getProcessingWeight());
add.setIsTimeOut("0");
Date originalDate = new Date(); // 当前时间
Date newDate = DateUtil.offsetHour(originalDate, serviceWorkOrdersType.getCompletionNumber());
add.setPlanCompleTime(newDate);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@@ -332,11 +336,21 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
ordersLambdaQueryWrapper.eq(ServiceWorkOrdersRecord::getStatus, entity.getStatus());
boolean exists = workOrdersRecordMapper.exists(ordersLambdaQueryWrapper);
//TODO 做一些数据校验,如唯一约束
ServiceWorkOrdersRecord serviceWorkOrdersRecord = new ServiceWorkOrdersRecord();
serviceWorkOrdersRecord.setOrderId(entity.getId());
serviceWorkOrdersRecord.setStatus(entity.getStatus());
serviceWorkOrdersRecord.setHandler(entity.getHandler());
workOrdersRecordMapper.insert(serviceWorkOrdersRecord);
if (!exists) {
ServiceWorkOrdersRecord serviceWorkOrdersRecord = new ServiceWorkOrdersRecord();
serviceWorkOrdersRecord.setOrderId(entity.getId());
serviceWorkOrdersRecord.setStatus(entity.getStatus());
serviceWorkOrdersRecord.setHandler(entity.getHandler());
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.setProcessingWeight(serviceWorkOrdersType.getProcessingWeight());
add.setInitiatorPeople(user.getNickname());
add.setIsTimeOut("0");
Date originalDate = new Date(); // 当前时间
Date newDate = DateUtil.offsetHour(originalDate, serviceWorkOrdersType.getCompletionNumber());
add.setPlanCompleTime(newDate);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {