Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

zhangcl 2 kuukautta sitten
vanhempi
commit
6ad8f43fbb
21 muutettua tiedostoa jossa 245 lisäystä ja 37 poistoa
  1. 1 1
      yudao-module-pms/yudao-module-pms-api/src/main/java/cn/iocoder/yudao/module/pms/enums/ErrorCodeConstant.java
  2. 1 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java
  3. 11 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotprojectinfo/IotProjectInfoController.java
  4. 16 3
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotprojecttask/IotProjectTaskController.java
  5. 25 13
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/IotStaticController.java
  6. 18 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/vo/OrderVo.java
  7. 22 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotprojectinfo/IotProjectInfoMapper.java
  8. 20 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotprojecttask/IotProjectTaskMapper.java
  9. 9 6
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/maintain/IotMaintainMapper.java
  10. 16 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/message/PmsMessage.java
  11. 2 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotProductClassifyServiceImpl.java
  12. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojectinfo/IotProjectInfoService.java
  13. 5 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojectinfo/IotProjectInfoServiceImpl.java
  14. 3 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojecttask/IotProjectTaskService.java
  15. 9 2
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojecttask/IotProjectTaskServiceImpl.java
  16. 5 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainService.java
  17. 15 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainServiceImpl.java
  18. 55 0
      yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotMaintainMapper.xml
  19. 10 0
      yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/iotprojecttask/IotProjectTaskMapper.xml
  20. 0 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java
  21. 0 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.java

+ 1 - 1
yudao-module-pms/yudao-module-pms-api/src/main/java/cn/iocoder/yudao/module/pms/enums/ErrorCodeConstant.java

@@ -68,5 +68,5 @@ public interface ErrorCodeConstant{
     ErrorCode IOT_MATERIAL_REQUISITION_DETAIL_NOT_EXISTS = new ErrorCode(155, "PMS 物料领用明细不存在");
     ErrorCode IOT_PROJECT_INFO_NOT_EXISTS = new ErrorCode(152, "项目信息不存在");
     ErrorCode IOT_PROJECT_TASK_NOT_EXISTS = new ErrorCode(153, "该任务不存在");
-
+    ErrorCode PRODUCT_EXITS_CHILDREN = new ErrorCode(1_002_004_003, "存在子分类,无法删除");
 }

+ 1 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java

@@ -238,9 +238,7 @@ public class IotOpeationFillController {
             idList.add(pageReqVO.getDeptId());
         }
 
-        PageResult<IotOpeationFillOrderDO> fillList = new PageResult<>();
-
-        fillList = iotOpeationFillService.fillList2(pageReqVO,idList);
+        PageResult<IotOpeationFillOrderDO> fillList = iotOpeationFillService.fillList2(pageReqVO,idList);
 
         return success(BeanUtils.toBean(fillList, IotOpeationFillOrderDO.class));
     }

+ 11 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotprojectinfo/IotProjectInfoController.java

@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttask.vo.IotProject
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojectinfo.IotProjectInfoDO;
 import cn.iocoder.yudao.module.pms.service.iotprojectinfo.IotProjectInfoService;
 import cn.iocoder.yudao.module.pms.service.iotprojecttask.IotProjectTaskService;
+import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -44,6 +45,8 @@ public class IotProjectInfoController {
     private IotProjectInfoService iotProjectInfoService;
     @Resource
     private IotProjectTaskService iotProjectTaskService;
+    @Resource
+    private DeptService deptService;
 
     @PostMapping("/create")
     @Operation(summary = "创建项目信息")
@@ -89,7 +92,14 @@ public class IotProjectInfoController {
     @Operation(summary = "获得项目信息分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-project-info:query')")
     public CommonResult<PageResult<IotProjectInfoRespVO>> getIotProjectInfoPage(@Valid IotProjectInfoPageReqVO pageReqVO) {
-        PageResult<IotProjectInfoDO> pageResult = iotProjectInfoService.getIotProjectInfoPage(pageReqVO);
+
+        Set<Long> idList = new HashSet<>();
+        if(Objects.nonNull(pageReqVO.getDeptId())){
+            idList =  deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
+            idList.add(pageReqVO.getDeptId());
+        }
+
+        PageResult<IotProjectInfoDO> pageResult = iotProjectInfoService.getIotProjectInfoPage1(pageReqVO,idList);
         return success(BeanUtils.toBean(pageResult, IotProjectInfoRespVO.class));
     }
 

+ 16 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotprojecttask/IotProjectTaskController.java

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttask.vo.IotProject
 import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttask.vo.IotTaskSaveVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttask.IotProjectTaskDO;
 import cn.iocoder.yudao.module.pms.service.iotprojecttask.IotProjectTaskService;
+import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -40,6 +41,8 @@ public class IotProjectTaskController {
 
     @Resource
     private IotProjectTaskService iotProjectTaskService;
+    @Resource
+    private DeptService deptService;
 
     @PostMapping("/create")
     @Operation(summary = "创建项目信息任务拆分")
@@ -78,15 +81,25 @@ public class IotProjectTaskController {
     @Operation(summary = "获得项目信息任务拆分分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-project-task:query')")
     public CommonResult<PageResult<IotProjectTaskRespVO>> getIotProjectTaskPage(@Valid IotProjectTaskPageReqVO pageReqVO) {
-        PageResult<IotProjectTaskDO> pageResult = iotProjectTaskService.getIotProjectTaskPage(pageReqVO);
+        Set<Long> idList = new HashSet<>();
+        if(Objects.nonNull(pageReqVO.getDeptId())){
+            idList =  deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
+            idList.add(pageReqVO.getDeptId());
+        }
+        PageResult<IotProjectTaskDO> pageResult = iotProjectTaskService.getIotProjectTaskPage1(pageReqVO,idList);
         return success(BeanUtils.toBean(pageResult, IotProjectTaskRespVO.class));
     }
 
     @GetMapping("/list")
     @Operation(summary = "获得项目信息任务拆分全部数据")
     @PreAuthorize("@ss.hasPermission('rq:iot-project-task:query')")
-    public CommonResult<PageResult<IotProjectTaskRespVO>> getTaskList( IotProjectTaskPageReqVO taskDO) {
-        PageResult<IotProjectTaskDO> taskList = iotProjectTaskService.taskList(taskDO);
+    public CommonResult<PageResult<IotProjectTaskRespVO>> getTaskList( IotProjectTaskPageReqVO pageReqVO) {
+        Set<Long> idList = new HashSet<>();
+        if(Objects.nonNull(pageReqVO.getDeptId())){
+            idList =  deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
+            idList.add(pageReqVO.getDeptId());
+        }
+        PageResult<IotProjectTaskDO> taskList = iotProjectTaskService.taskList(pageReqVO,idList);
         return success(BeanUtils.toBean(taskList, IotProjectTaskRespVO.class));
     }
 

+ 25 - 13
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/IotStaticController.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.pms.controller.admin.stat;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.Pms;
 import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.DeviceHistoryParam;
@@ -9,7 +10,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportP
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
-import cn.iocoder.yudao.module.pms.controller.admin.vo.DeviceVO;
+import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.OrderVo;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
@@ -28,8 +29,10 @@ import cn.iocoder.yudao.module.pms.dal.mysql.iotsapstock.IotSapStockMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMapper;
 import cn.iocoder.yudao.module.pms.service.DeviceServiceImpl;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderService;
+import cn.iocoder.yudao.module.pms.service.maintain.IotMaintainService;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
 import cn.iocoder.yudao.module.system.service.dict.DictDataService;
 import com.alibaba.fastjson.JSON;
@@ -40,21 +43,18 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.Data;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
-import java.sql.Timestamp;
+import javax.validation.Valid;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.getLastYearMonthRanges;
 
 @Tag(name = "统计接口")
@@ -86,6 +86,8 @@ public class IotStaticController {
     private IotSapStockMapper iotSapStockMapper;
     @Autowired
     private RestTemplate restTemplate;
+    @Autowired
+    private IotMaintainService iotMaintainService;
 
     @GetMapping("/main/day")
     public CommonResult<Map<String, Object>> getMaintainDay() {
@@ -99,12 +101,22 @@ public class IotStaticController {
         return CommonResult.success(ImmutableMap.of("failureDay", failure, "maintainDay", maintain));
     }
 
-
-
-    public static class OrderVo{
-        private String title;
-        private String status;
-        private String person;
+    @GetMapping("/notice")
+    public CommonResult<PageResult<OrderVo>> getNotice(@Valid OrderVo pageReqVO) {
+        pageReqVO.setPageSize(1);
+        PageResult<OrderVo> notice = iotMaintainService.getNotice(pageReqVO);
+        if (CollUtil.isEmpty(notice.getList())) {
+            return success(new PageResult<>(notice.getTotal()));
+        }
+        notice.getList().forEach(orderVo -> {
+            if ("维修工单".equals(orderVo.getType())||"保养工单".equals(orderVo.getType())) {
+                if (Objects.nonNull(orderVo.getPerson())) {
+                    AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(orderVo.getPerson()));
+                    orderVo.setPerson(user.getNickname());
+                }
+            }
+        });
+        return success(notice);
     }
 
     @GetMapping("/main/week")

+ 18 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/vo/OrderVo.java

@@ -0,0 +1,18 @@
+package cn.iocoder.yudao.module.pms.controller.admin.stat.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OrderVo extends PageParam {
+    private Long id;
+    private String title;
+    private String status;
+    private String person;
+    private String type;
+    private String createTime;
+}

+ 22 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotprojectinfo/IotProjectInfoMapper.java

@@ -39,5 +39,27 @@ public interface IotProjectInfoMapper extends BaseMapperX<IotProjectInfoDO> {
                 .orderByDesc(IotProjectInfoDO::getId));
     }
 
+    default PageResult<IotProjectInfoDO> selectPage1(IotProjectInfoPageReqVO reqVO,Collection<Long> deptIds) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<IotProjectInfoDO>()
+                .inIfPresent(IotProjectInfoDO::getDeptId,  deptIds)
+                .likeIfPresent(IotProjectInfoDO::getManufactureName, reqVO.getManufactureName())
+                .likeIfPresent(IotProjectInfoDO::getDeptName, reqVO.getDeptName())
+                .likeIfPresent(IotProjectInfoDO::getContractName, reqVO.getContractName())
+                .eqIfPresent(IotProjectInfoDO::getContractCode, reqVO.getContractCode())
+                .eqIfPresent(IotProjectInfoDO::getWorkloadTotal, reqVO.getWorkloadTotal())
+                .eqIfPresent(IotProjectInfoDO::getWorkloadFinish, reqVO.getWorkloadFinish())
+                .betweenIfPresent(IotProjectInfoDO::getStartTime, reqVO.getStartTime())
+                .betweenIfPresent(IotProjectInfoDO::getEndTime, reqVO.getEndTime())
+                .eqIfPresent(IotProjectInfoDO::getLocation, reqVO.getLocation())
+                .eqIfPresent(IotProjectInfoDO::getTechnique, reqVO.getTechnique())
+                .eqIfPresent(IotProjectInfoDO::getPayment, reqVO.getPayment())
+                .betweenIfPresent(IotProjectInfoDO::getCreateTime, reqVO.getCreateTime())
+                .likeIfPresent(IotProjectInfoDO::getUserName, reqVO.getUserName())
+                .eqIfPresent(IotProjectInfoDO::getManufacturerId, reqVO.getManufacturerId())
+                .eqIfPresent(IotProjectInfoDO::getUserId, reqVO.getUserId())
+                .likeIfPresent(IotProjectInfoDO::getRemark, reqVO.getRemark())
+                .orderByDesc(IotProjectInfoDO::getId));
+    }
+
     List<IotProjectInfoDO> projectList();
 }

+ 20 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotprojecttask/IotProjectTaskMapper.java

@@ -36,11 +36,30 @@ public interface IotProjectTaskMapper extends BaseMapperX<IotProjectTaskDO> {
                 .orderByDesc(IotProjectTaskDO::getId));
     }
 
+    default PageResult<IotProjectTaskDO> selectPage1(IotProjectTaskPageReqVO reqVO,Collection<Long> deptIds) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<IotProjectTaskDO>()
+                .eqIfPresent(IotProjectTaskDO::getProjectId, reqVO.getProjectId())
+                .likeIfPresent(IotProjectTaskDO::getWellName, reqVO.getWellName())
+                .eqIfPresent(IotProjectTaskDO::getWellType, reqVO.getWellType())
+                .eqIfPresent(IotProjectTaskDO::getLocation, reqVO.getLocation())
+                .eqIfPresent(IotProjectTaskDO::getTechnique, reqVO.getTechnique())
+                .eqIfPresent(IotProjectTaskDO::getWorkloadDesign, reqVO.getWorkloadDesign())
+                .betweenIfPresent(IotProjectTaskDO::getCreateTime, reqVO.getCreateTime())
+                .likeIfPresent(IotProjectTaskDO::getUserName, reqVO.getUserName())
+                .eqIfPresent(IotProjectTaskDO::getUserId, reqVO.getUserId())
+                .inIfPresent(IotProjectTaskDO::getDeptId,deptIds)
+                .eqIfPresent(IotProjectTaskDO::getRemark, reqVO.getRemark())
+                .orderByDesc(IotProjectTaskDO::getId));
+    }
+
+
     IPage<IotProjectTaskDO> taskList(IPage<IotProjectTaskPageReqVO> page,
                                      @Param("manufactureName") String manufactureName,
                                      @Param("contractName") String contractName,
                                      @Param("contractCode") String contractCode,
-                                     @Param("createTime") LocalDateTime[] createTime
+                                     @Param("wellName") String wellName,
+                                     @Param("createTime") LocalDateTime[] createTime,
+                                     @Param("deptIds") Collection<Long> deptIds
     );
 
 }

+ 9 - 6
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/maintain/IotMaintainMapper.java

@@ -1,16 +1,18 @@
 package cn.iocoder.yudao.module.pms.dal.mysql.maintain;
 
-import java.util.*;
-
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportPageReqVO;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
+import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.OrderVo;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Collection;
+import java.util.List;
 
 /**
  * 维修工单 Mapper
@@ -56,4 +58,5 @@ public interface IotMaintainMapper extends BaseMapperX<IotMaintainDO> {
                 .eq(IotMaintainDO::getAuditStatus, auditStatus)
                 .in(IotMaintainDO::getDeviceId, deviceIds));
     }
+    IPage<OrderVo> selectNotice(IPage<OrderVo> page, @Param("reqVO")OrderVo reqVO);
 }

+ 16 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/message/PmsMessage.java

@@ -12,6 +12,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
@@ -40,6 +43,13 @@ public class PmsMessage {
             templateParams.put("deptId",fillDO.getDeptId());
             templateParams.put("userId",userId);
             templateParams.put("orderStatus",fillDO.getOrderStatus());
+            ZoneId zoneId = ZoneId.of("UTC");
+            ZonedDateTime zonedDateTime = fillDO.getCreateTime().atZone(zoneId);
+            Instant instant = zonedDateTime.toInstant();
+            long timestamp = instant.toEpochMilli();
+            templateParams.put("createTime",timestamp);
+            templateParams.put("userName",fillDO.getUserName());
+            templateParams.put("orderName",fillDO.getOrderName());
 
         }else{
             templateParams.put("name", name);
@@ -64,8 +74,13 @@ public class PmsMessage {
             String url = "";
 
             if(PmsConstants.GENERATE_OPERATION.equals(businessType)){
+                ZoneId zoneId = ZoneId.of("UTC");
+                ZonedDateTime zonedDateTime = fillDO.getCreateTime().atZone(zoneId);
+                Instant instant = zonedDateTime.toInstant();
+                long timestamp = instant.toEpochMilli();
                 url="https://iot.deepoil.cc/dingding?deptId="+fillDO.getDeptId()+"&userId="+userId
-                        +"&createTime="+fillDO.getCreateTime()+"&id="+businessId+"&orderStatus="+fillDO.getOrderStatus()+"&type="+businessType;
+                        +"&createTime="+timestamp+"&id="
+                        +businessId+"&orderStatus="+fillDO.getOrderStatus()+"&type="+businessType+"&userName="+fillDO.getUserName()+"&orderName="+fillDO.getOrderName();
             }else{
                 url="https://iot.deepoil.cc/dingding?id="+businessId+"&type="+businessType+"&userId="+userId;
             }

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotProductClassifyServiceImpl.java

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.vo.IotProductClassifyListReq
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotProductClassifySaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotProductClassifyMapper;
+import cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant;
 import com.google.common.annotations.VisibleForTesting;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -71,7 +72,7 @@ public class IotProductClassifyServiceImpl implements IotProductClassifyService
         validateIotProductClassifyExists(id);
         // 校验是否有子产品分类
         if (iotProductClassifyMapper.selectCountByParentId(id) > 0) {
-            throw exception(DEPT_EXITS_CHILDREN);
+            throw exception(ErrorCodeConstant.PRODUCT_EXITS_CHILDREN);
         }
         // 删除产品分类
         iotProductClassifyMapper.deleteById(id);

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojectinfo/IotProjectInfoService.java

@@ -54,6 +54,8 @@ public interface IotProjectInfoService {
      */
     PageResult<IotProjectInfoDO> getIotProjectInfoPage(IotProjectInfoPageReqVO pageReqVO);
 
+    PageResult<IotProjectInfoDO> getIotProjectInfoPage1(IotProjectInfoPageReqVO pageReqVO,Collection<Long> deptIds);
+
     List<IotProjectInfoDO> projectList();
 
 }

+ 5 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojectinfo/IotProjectInfoServiceImpl.java

@@ -71,6 +71,11 @@ public class IotProjectInfoServiceImpl implements IotProjectInfoService {
         return iotProjectInfoMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public PageResult<IotProjectInfoDO> getIotProjectInfoPage1(IotProjectInfoPageReqVO pageReqVO, Collection<Long> deptIds) {
+        return iotProjectInfoMapper.selectPage1(pageReqVO,deptIds);
+    }
+
     @Override
     public List<IotProjectInfoDO> projectList() {
         return iotProjectInfoMapper.projectList();

+ 3 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojecttask/IotProjectTaskService.java

@@ -58,7 +58,9 @@ public interface IotProjectTaskService {
      */
     PageResult<IotProjectTaskDO> getIotProjectTaskPage(IotProjectTaskPageReqVO pageReqVO);
 
+    PageResult<IotProjectTaskDO> getIotProjectTaskPage1(IotProjectTaskPageReqVO pageReqVO,Collection<Long> deptIds);
 
-    PageResult<IotProjectTaskDO> taskList(IotProjectTaskPageReqVO taskDO);
+
+    PageResult<IotProjectTaskDO> taskList(IotProjectTaskPageReqVO taskDO,Collection<Long> deptIds);
 
 }

+ 9 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojecttask/IotProjectTaskServiceImpl.java

@@ -96,12 +96,19 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
     }
 
     @Override
-    public PageResult<IotProjectTaskDO> taskList(IotProjectTaskPageReqVO vo) {
+    public PageResult<IotProjectTaskDO> getIotProjectTaskPage1(IotProjectTaskPageReqVO pageReqVO, Collection<Long> deptIds) {
+        return iotProjectTaskMapper.selectPage1(pageReqVO,deptIds);
+    }
+
+    @Override
+    public PageResult<IotProjectTaskDO> taskList(IotProjectTaskPageReqVO vo,Collection<Long> deptIds) {
         IPage<IotProjectTaskDO> taskDOIPage = iotProjectTaskMapper.taskList(Page.of(vo.getPageNo(), vo.getPageSize()),
                 vo.getManufactureName(),
                 vo.getContractName(),
                 vo.getContractCode(),
-                vo.getCreateTime());
+                vo.getWellName(),
+                vo.getCreateTime(),
+                deptIds);
         return new PageResult<>(taskDOIPage.getRecords(),taskDOIPage.getTotal());
     }
 

+ 5 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainService.java

@@ -4,12 +4,16 @@ import java.util.*;
 import javax.validation.*;
 
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportProcessVO;
+import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveVO;
+import cn.iocoder.yudao.module.pms.controller.admin.stat.IotStaticController;
+import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.OrderVo;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 
 /**
  * 维修工单 Service 接口
@@ -17,6 +21,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
  * @author 袁超
  */
 public interface IotMaintainService {
+    PageResult<OrderVo> getNotice(OrderVo pageReqVO);
     void approvalMaintain(Long businessKey, Integer bpmStatus);
     Long submitForApproval(Long id);
     Long updateMaintainProcess(IotFailureReportProcessVO iotFailureReportProcessVO);

+ 15 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainServiceImpl.java

@@ -11,18 +11,23 @@ import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
 import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportProcessVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.bom.vo.IotMaintainBomSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveVO;
+import cn.iocoder.yudao.module.pms.controller.admin.stat.IotStaticController;
+import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.OrderVo;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.information.IotInformationDbDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotlockstock.IotLockStockDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotoutbound.IotOutboundDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainBomDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainMaterialsDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.information.IotInformationDbMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotlockstock.IotLockStockMapper;
@@ -41,7 +46,10 @@ import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
 import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.collect.ImmutableMap;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -372,4 +380,11 @@ public class IotMaintainServiceImpl implements IotMaintainService {
         iotMaintainMapper.updateBatch(maintainDOS);
     }
 
+
+    @Override
+    public PageResult<OrderVo> getNotice(OrderVo pageReqVO) {
+
+        IPage<OrderVo> notices = iotMaintainMapper.selectNotice(Page.of(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO);
+        return new PageResult<>(notices.getRecords(), notices.getTotal());
+    }
 }

+ 55 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotMaintainMapper.xml

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMapper">
+
+    <select id="selectNotice"
+            resultType="cn.iocoder.yudao.module.pms.controller.admin.stat.vo.OrderVo">
+select * from (select a.id,
+                      a.failure_name    title,
+                      '待填写'   as     status,
+                      a.maintain_person person,
+                      '维修工单' as     type,
+                      a.create_time
+               from rq_iot_maintain a
+               where status = 'tx'
+                 and deleted = false
+               union all
+               select b.id,
+                      b.inspect_order_title title,
+                      '待执行'   as         status,
+                      b.charge_name         person,
+                      '巡检工单' as         type,
+                      b.create_time
+               from rq_iot_inspect_order b
+               where status = 'todo'
+                 and deleted = false
+               union all
+               select c.id,
+                      c.name               title,
+                      '待填写'   as        status,
+                      c.responsible_person person,
+                      '保养工单' as        type,
+                      c.create_time
+               from rq_iot_main_work_order c
+               where result = 1
+                 and deleted = false
+               union all
+               select d.id,
+                      d.order_name  title,
+                      '待填写'   as status,
+                      user_name  as person,
+                      '运行记录' as type,
+                      d.create_time
+               from rq_iot_opeation_fill_order d
+               where order_status = 0
+                 and deleted = false)fin
+        <where>
+            <if test="reqVO.title!=null and reqVO.title!=''">
+                and fin.title LIKE CONCAT('%',#{reqVO.title},'%')
+            </if>
+            <if test="reqVO.type!=null and reqVO.type!=''">
+                and fin.type LIKE CONCAT('%',#{reqVO.type},'%')
+            </if>
+        </where>
+    </select>
+</mapper>

+ 10 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/iotprojecttask/IotProjectTaskMapper.xml

@@ -20,6 +20,7 @@
         a.workload_design,
         a.create_time,
         a.dept_ids,
+        a.remark,
         b.manufacture_name,
         b.contract_name,
         b.contract_code
@@ -39,6 +40,9 @@
         <if test="contractCode != null  and contractCode != ''">
             and b.contract_code like concat('%', #{contractCode}, '%')
         </if>
+        <if test="wellName != null  and wellName != ''">
+            and a.wellName like concat('%', #{wellName}, '%')
+        </if>
         <if test="createTime != null and createTime.length > 0">
             <choose>
                 <when test="createTime.length == 1">
@@ -49,6 +53,12 @@
                 </otherwise>
             </choose>
         </if>
+        <if test="deptIds != null and !deptIds.isEmpty()">
+            AND a.dept_id IN
+            <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+                #{deptId}
+            </foreach>
+        </if>
     </select>
 
 </mapper>

+ 0 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java

@@ -51,6 +51,4 @@ public class NotifyMessageRespVO {
 
     @Schema(description = "业务id")
     private String businessId;
-
-    private String paramJson;
 }

+ 0 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.java

@@ -107,6 +107,4 @@ public class NotifyMessageDO extends BaseDO {
      * 业务id
      */
     private String businessId;
-
-    private String paramJson;
 }