Răsfoiți Sursa

巡检工单调整

lipenghui 2 luni în urmă
părinte
comite
565e46e203
13 a modificat fișierele cu 88 adăugiri și 7 ștergeri
  1. 2 2
      yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/NumberUtils.java
  2. 1 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobMapper.java
  3. 8 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/route/IotInspectRouteController.java
  4. 12 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/IotMaintainController.java
  5. 1 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/IotDeviceDO.java
  6. 2 2
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/IotDeviceMapper.java
  7. 6 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/inspect/IotInspectRouteMapper.java
  8. 3 2
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/InspectCreateOrderJob.java
  9. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectRouteService.java
  10. 10 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectRouteServiceImpl.java
  11. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainService.java
  12. 14 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainServiceImpl.java
  13. 25 0
      yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotInspectRouteMapper.xml

+ 2 - 2
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/NumberUtils.java

@@ -75,13 +75,13 @@ public class NumberUtils {
         return NumberUtil.mul(values);
     }
 
-    public static int extractNumber(String code) {
+    public static long extractNumber(String code) {
         int numberEnd = code.length() - 1;
         while (numberEnd >= 0 && Character.isDigit(code.charAt(numberEnd))) {
             numberEnd--;
         }
         String numberStr = code.substring(numberEnd + 1);
-        return numberStr.isEmpty() ? 0 : Integer.parseInt(numberStr);
+        return numberStr.isEmpty() ? 0 : Long.parseLong(numberStr);
     }
 
 }

+ 1 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobMapper.java

@@ -24,6 +24,7 @@ public interface JobMapper extends BaseMapperX<JobDO> {
                 .likeIfPresent(JobDO::getName, reqVO.getName())
                 .eqIfPresent(JobDO::getStatus, reqVO.getStatus())
                 .likeIfPresent(JobDO::getHandlerName, reqVO.getHandlerName())
+                .orderByDesc(JobDO::getId)
         );
     }
 

+ 8 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/route/IotInspectRouteController.java

@@ -81,6 +81,14 @@ public class IotInspectRouteController {
         return success(BeanUtils.toBean(pageResult, IotInspectRouteRespVO.class));
     }
 
+    @GetMapping("/plan/page")
+    @Operation(summary = "获得设备巡检路线分页")
+    @PreAuthorize("@ss.hasPermission('rq:iot-inspect-route:query')")
+    public CommonResult<PageResult<IotInspectRouteRespVO>> getDeviceIotInspectRoutePage(@Valid IotInspectRoutePageReqVO pageReqVO) {
+        PageResult<IotInspectRouteDO> pageResult = iotInspectRouteService.getRoute(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, IotInspectRouteRespVO.class));
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "导出巡检路线 Excel")
     @PreAuthorize("@ss.hasPermission('rq:iot-inspect-route:export')")

+ 12 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/IotMaintainController.java

@@ -1,5 +1,7 @@
 package cn.iocoder.yudao.module.pms.controller.admin.maintain;
 
+import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportProcessVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
@@ -113,4 +115,14 @@ public class IotMaintainController {
                         BeanUtils.toBean(list, IotMaintainRespVO.class));
     }
 
+
+    @PutMapping("/process-info")
+    @Operation(summary = "委外维修更新流程信息")
+    @PreAuthorize("@ss.hasPermission('rq:iot-maintain:update')")
+    public CommonResult<Long> updateIotFailureReportProcess(@RequestParam("id")String id, @RequestParam("assigneeUserId") String assigneeUserId) {
+        IotFailureReportProcessVO iotFailureReportProcessVO = new IotFailureReportProcessVO();
+        iotFailureReportProcessVO.setId(id);
+        iotFailureReportProcessVO.setAssigneeUserId(Long.valueOf(assigneeUserId));
+        return success(iotMaintainService.updateMaintainProcess(iotFailureReportProcessVO));
+    }
 }

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/IotDeviceDO.java

@@ -140,5 +140,5 @@ public class IotDeviceDO extends BaseDO {
 
     private Long assetClass;
 
-    private Integer sortColumn;
+    private Long sortColumn;
 }

+ 2 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/IotDeviceMapper.java

@@ -52,8 +52,8 @@ public interface IotDeviceMapper extends BaseMapperX<IotDeviceDO> {
                 .likeIfPresent(IotDeviceDO::getInfoName, reqVO.getInfoName())
                 .eqIfPresent(IotDeviceDO::getInfoRemark, reqVO.getInfoRemark())
                 .eqIfPresent(IotDeviceDO::getInfoUrl, reqVO.getInfoUrl())
-                .eqIfPresent(IotDeviceDO::getTemplateJson, reqVO.getTemplateJson())
-                .orderByAsc(IotDeviceDO::getSortColumn));
+                .eqIfPresent(IotDeviceDO::getTemplateJson, reqVO.getTemplateJson()));
+//                .orderByAsc(IotDeviceDO::getSortColumn));
     }
 
     default List<IotDeviceDO> selectSimpleList(Collection<Long> deptIds) {

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/inspect/IotInspectRouteMapper.java

@@ -6,8 +6,13 @@ 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.inspect.route.vo.IotInspectRoutePageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteRespVO;
+import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 巡检路线 Mapper
@@ -30,5 +35,6 @@ public interface IotInspectRouteMapper extends BaseMapperX<IotInspectRouteDO> {
                 .eqIfPresent(IotInspectRouteDO::getDeptId, reqVO.getDeptId())
                 .orderByDesc(IotInspectRouteDO::getId));
     }
+    IPage<IotInspectRouteDO> getRoute(IPage<IotInspectRouteRespVO> page,@Param("reqVO")  IotInspectRoutePageReqVO reqVO);
 
 }

+ 3 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/InspectCreateOrderJob.java

@@ -108,18 +108,19 @@ public class InspectCreateOrderJob implements JobHandler {
         }
         return personToDevices;
     }
+
     private void createPlan(IotInspectPlanDO iotInspectPlan)  {
         Map<Long, List<IotInspectRouteDO>> generate = generate(iotInspectPlan.getDeviceIds());
         generate.forEach((k, v)->{
             IotInspectOrderDO iotInspectOrderDO = new IotInspectOrderDO();
-            iotInspectOrderDO.setInspectOrderTitle(iotInspectPlan.getPlanTitle()+"-巡检工单");
+            AdminUserRespDTO user = adminUserApi.getUser(k);
+            iotInspectOrderDO.setInspectOrderTitle((Objects.nonNull(user)?user.getNickname():"")+DateUtil.format(LocalDateTime.now(), "yyyy-MM-dd")+"-巡检工单");
             iotInspectOrderDO.setInspectOrderCode("IN"+ DateUtil.format(new Date(),"yyyyMMddHHmmss"));
             iotInspectOrderDO.setCharge(k);
             iotInspectOrderDO.setStatus("todo");
             iotInspectOrderDO.setType("计划生成");
             iotInspectOrderDO.setPlanCode(iotInspectPlan.getPlanCode());
             iotInspectOrderDO.setDeleted(false);
-            AdminUserRespDTO user = adminUserApi.getUser(k);
             iotInspectOrderDO.setChargeName(Objects.nonNull(user)?user.getNickname():"");
             iotInspectOrderDO.setDeptId(v.get(0).getDeptId());
             iotInspectOrderMapper.insert(iotInspectOrderDO);

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

@@ -5,6 +5,7 @@ import javax.validation.*;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRoutePageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
 
@@ -53,4 +54,5 @@ public interface IotInspectRouteService {
      */
     PageResult<IotInspectRouteDO> getIotInspectRoutePage(IotInspectRoutePageReqVO pageReqVO);
 
+    PageResult<IotInspectRouteDO> getRoute(IotInspectRoutePageReqVO pageReqVO);
 }

+ 10 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectRouteServiceImpl.java

@@ -3,12 +3,16 @@ package cn.iocoder.yudao.module.pms.service.inspect;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRoutePageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectRouteMapper;
 import cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant;
 import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -78,4 +82,10 @@ public class IotInspectRouteServiceImpl implements IotInspectRouteService {
         return iotInspectRouteMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public PageResult<IotInspectRouteDO> getRoute(IotInspectRoutePageReqVO pageReqVO) {
+        IPage<IotInspectRouteDO> page = iotInspectRouteMapper.getRoute(
+                new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO);
+        return new PageResult<>(page.getRecords(), page.getTotal());
+    }
 }

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

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pms.service.maintain;
 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.vo.IotMaintainPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -18,6 +19,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
 public interface IotMaintainService {
     void approvalMaintain(Long businessKey, Integer bpmStatus);
     Long submitForApproval(Long id);
+    Long updateMaintainProcess(IotFailureReportProcessVO iotFailureReportProcessVO);
     /**
      * 创建维修工单
      *

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

@@ -9,6 +9,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 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.vo.IotMaintainPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
@@ -99,7 +100,11 @@ public class IotMaintainServiceImpl implements IotMaintainService {
 
     @Override
     public void approvalMaintain(Long businessKey, Integer bpmStatus) {
+        if (bpmStatus ==2 ){
 
+        } else if (bpmStatus ==3 ){
+
+        }
     }
 
     @Override
@@ -110,6 +115,15 @@ public class IotMaintainServiceImpl implements IotMaintainService {
         return 0L;
     }
 
+    @Override
+    public Long updateMaintainProcess(IotFailureReportProcessVO iotFailureReportProcessVO) {
+        //更新责任人
+        IotMaintainDO iotMaintainDO = iotMaintainMapper.selectById(iotFailureReportProcessVO.getId());
+        iotMaintainDO.setMaintainPerson(iotFailureReportProcessVO.getAssigneeUserId());
+        iotMaintainMapper.updateById(iotMaintainDO);
+        return iotMaintainDO.getId();
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long createIotMaintain(IotMaintainSaveVO createReqVO) {

+ 25 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotInspectRouteMapper.xml

@@ -0,0 +1,25 @@
+<?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.inspect.IotInspectRouteMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+    <select id="getRoute"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO">
+        select* from (select * from (select route.route_name, device.device_name, device.id device_id,route.id, route.item_json,route.create_time from rq_iot_inspect_route route left join
+            rq_iot_device device on
+            route.device_classify = device.asset_class
+                and route.device_id is null)a where a.id not in (select device_id from rq_iot_inspect_route)
+                                                and a.id is not null
+        union all
+        select route_name, device_name, device_id,id,item_json,create_time from rq_iot_inspect_route where device_id is not null)fin
+        <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
+            AND fin.device_name LIKE concat(concat("%",#{reqVO.deviceName}),"%")
+        </if>
+
+    </select>
+</mapper>