|
@@ -1,38 +1,46 @@
|
|
package cn.iocoder.yudao.module.pms.controller.admin.inspect.order;
|
|
package cn.iocoder.yudao.module.pms.controller.admin.inspect.order;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
|
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
|
+import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
|
+import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderRespVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderRespVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderSaveReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderSaveReqVO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
|
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectPlanDO;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
|
|
|
|
+import cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant;
|
|
import cn.iocoder.yudao.module.pms.service.IotDeviceService;
|
|
import cn.iocoder.yudao.module.pms.service.IotDeviceService;
|
|
import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderService;
|
|
import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderService;
|
|
|
|
+import cn.iocoder.yudao.module.pms.service.inspect.IotInspectPlanService;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import javax.annotation.security.PermitAll;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.validation.Valid;
|
|
import javax.validation.Valid;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Set;
|
|
|
|
|
|
+import java.time.ZoneId;
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
@@ -51,6 +59,8 @@ public class IotInspectOrderController {
|
|
private IotInspectOrderDetailMapper iotInspectOrderDetailMapper;
|
|
private IotInspectOrderDetailMapper iotInspectOrderDetailMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private IotDeviceService iotDeviceService;
|
|
private IotDeviceService iotDeviceService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IotInspectPlanService iotInspectPlanService;
|
|
|
|
|
|
@PostMapping("/create")
|
|
@PostMapping("/create")
|
|
@Operation(summary = "创建巡检工单")
|
|
@Operation(summary = "创建巡检工单")
|
|
@@ -90,12 +100,17 @@ public class IotInspectOrderController {
|
|
IotDeviceDO iotDevice = iotDeviceService.getIotDevice(k);
|
|
IotDeviceDO iotDevice = iotDeviceService.getIotDevice(k);
|
|
OrderDetail orderDetail = new OrderDetail();
|
|
OrderDetail orderDetail = new OrderDetail();
|
|
orderDetail.setDeviceId(k);
|
|
orderDetail.setDeviceId(k);
|
|
- orderDetail.setDeviceName(iotDevice.getDeviceName());
|
|
|
|
- orderDetail.setDeviceCode(iotDevice.getDeviceCode());
|
|
|
|
- orderDetail.setOrderDetails(v);
|
|
|
|
- orderDetails.add(orderDetail);
|
|
|
|
|
|
+ if (Objects.nonNull(iotDevice)) {
|
|
|
|
+ orderDetail.setDeviceName(iotDevice.getDeviceName());
|
|
|
|
+ orderDetail.setDeviceCode(iotDevice.getDeviceCode());
|
|
|
|
+ orderDetail.setOrderDetails(v);
|
|
|
|
+ orderDetails.add(orderDetail);
|
|
|
|
+ }
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+ if (CollUtil.isEmpty(orderDetails)) {
|
|
|
|
+ throw new ServiceException(ErrorCodeConstant.INSPECT_DEVICE_CHANGE);
|
|
|
|
+ }
|
|
bean.setDetails(orderDetails);
|
|
bean.setDetails(orderDetails);
|
|
return success(bean);
|
|
return success(bean);
|
|
}
|
|
}
|
|
@@ -112,10 +127,15 @@ public class IotInspectOrderController {
|
|
IotDeviceDO iotDevice = iotDeviceService.getIotDevice(k);
|
|
IotDeviceDO iotDevice = iotDeviceService.getIotDevice(k);
|
|
OrderDetail orderDetail = new OrderDetail();
|
|
OrderDetail orderDetail = new OrderDetail();
|
|
orderDetail.setDeviceId(k);
|
|
orderDetail.setDeviceId(k);
|
|
- orderDetail.setDeviceName(iotDevice.getDeviceCode()+iotDevice.getDeviceName());
|
|
|
|
- orderDetail.setOrderDetails(v);
|
|
|
|
- orderDetails.add(orderDetail);
|
|
|
|
|
|
+ if (Objects.nonNull(iotDevice)) {
|
|
|
|
+ orderDetail.setDeviceName(iotDevice.getDeviceCode()+iotDevice.getDeviceName());
|
|
|
|
+ orderDetail.setOrderDetails(v);
|
|
|
|
+ orderDetails.add(orderDetail);
|
|
|
|
+ }
|
|
});
|
|
});
|
|
|
|
+ if (CollUtil.isEmpty(orderDetails)) {
|
|
|
|
+ throw new ServiceException(ErrorCodeConstant.INSPECT_DEVICE_CHANGE);
|
|
|
|
+ }
|
|
return success(orderDetails);
|
|
return success(orderDetails);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -170,4 +190,22 @@ public class IotInspectOrderController {
|
|
return CommonResult.success("成功");
|
|
return CommonResult.success("成功");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @GetMapping("/test")
|
|
|
|
+ @PermitAll
|
|
|
|
+ @DataPermission(enable = false)
|
|
|
|
+ @TenantIgnore
|
|
|
|
+ public void test(){
|
|
|
|
+ IotInspectPlanDO plan = iotInspectPlanService.getIotInspectPlan(38L);
|
|
|
|
+ Date date = Date.from(
|
|
|
|
+ plan.getLastCreateTime().atZone(ZoneId.systemDefault()) // 使用系统默认时区
|
|
|
|
+ .toInstant() // 转为 Instant(时间戳)
|
|
|
|
+ );
|
|
|
|
+ Date date1 = new Date();
|
|
|
|
+ int i = Integer.parseInt(StringUtils.substringBeforeLast(String.valueOf(plan.getPlanCycle()), "."));
|
|
|
|
+ DateTime dateTime = DateUtil.offsetHour(date, i);
|
|
|
|
+ if (date1.compareTo(dateTime) > 0){
|
|
|
|
+ System.out.println("-----------------");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|