Browse Source

流程联调

lipenghui 4 months ago
parent
commit
b7c973c594
13 changed files with 104 additions and 5 deletions
  1. 13 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/IotFailureReportController.java
  2. 6 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportPageReqVO.java
  3. 22 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportProcessVO.java
  4. 5 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportRespVO.java
  5. 6 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportSaveReqVO.java
  6. 9 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/IotMaintainController.java
  7. 1 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/vo/IotMaintainPageReqVO.java
  8. 6 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/vo/IotMaintainRespVO.java
  9. 5 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/failure/IotFailureReportDO.java
  10. 2 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportService.java
  11. 21 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportServiceImpl.java
  12. 3 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/material/IotMaintainMaterialService.java
  13. 5 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/material/IotMaintainMaterialServiceImpl.java

+ 13 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/IotFailureReportController.java

@@ -1,8 +1,10 @@
 package cn.iocoder.yudao.module.pms.controller.admin.failure;
 
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportProcessVO;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 import cn.iocoder.yudao.module.pms.service.failure.IotFailureReportService;
 import org.springframework.web.bind.annotation.*;
@@ -100,4 +102,15 @@ public class IotFailureReportController {
         iotFailureReportService.submitForApproval(id);
         return success(true);
     }
+
+    @PutMapping("/process-info")
+    @Operation(summary = "故障上报更新流程信息")
+    @PreAuthorize("@ss.hasPermission('rq:iot-failure-report:create')")
+    public CommonResult<Long> updateIotFailureReportProcess(@RequestParam("id")String id, @RequestParam("type") String type, @RequestParam("assigneeUserId") String assigneeUserId) {
+        IotFailureReportProcessVO iotFailureReportProcessVO = new IotFailureReportProcessVO();
+        iotFailureReportProcessVO.setId(id);
+        iotFailureReportProcessVO.setType(type);
+        iotFailureReportProcessVO.setAssigneeUserId(Long.valueOf(assigneeUserId));
+        return success(iotFailureReportService.updateIotFailureReportProcess(iotFailureReportProcessVO));
+    }
 }

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportPageReqVO.java

@@ -69,4 +69,10 @@ public class IotFailureReportPageReqVO extends PageParam {
 
     @Schema(description = "部门id")
     private Long deptId;
+
+    @Schema(description = "维修负责人")
+    private Long assigneeUserId;
+
+    @Schema(description = "维修类型内外")
+    private String type;
 }

+ 22 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportProcessVO.java

@@ -0,0 +1,22 @@
+package cn.iocoder.yudao.module.pms.controller.admin.failure.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class IotFailureReportProcessVO {
+    @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "任务编号不能为空")
+    private String id;
+
+    @Schema(description = "新审批人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
+    @NotNull(message = "新审批人的用户编号不能为空")
+    private Long assigneeUserId;
+
+    @Schema(description = "转办原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "做不了决定,需要你先帮忙瞅瞅")
+    @NotEmpty(message = "转办原因不能为空")
+    private String type;
+}

+ 5 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportRespVO.java

@@ -82,4 +82,9 @@ public class IotFailureReportRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "维修负责人")
+    private Long assigneeUserId;
+
+    @Schema(description = "维修类型内外")
+    private String type;
 }

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportSaveReqVO.java

@@ -62,4 +62,10 @@ public class IotFailureReportSaveReqVO {
 
     @Schema(description = "部门id")
     private Long deptId;
+
+    @Schema(description = "维修负责人")
+    private Long assigneeUserId;
+
+    @Schema(description = "维修类型内外")
+    private String type;
 }

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

@@ -5,7 +5,10 @@ import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainRespV
 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.dal.dataobject.maintain.IotMaintainDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 import cn.iocoder.yudao.module.pms.service.maintain.IotMaintainService;
+import cn.iocoder.yudao.module.pms.service.maintain.material.IotMaintainMaterialService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -40,6 +43,8 @@ public class IotMaintainController {
 
     @Resource
     private IotMaintainService iotMaintainService;
+    @Autowired
+    private IotMaintainMaterialService iotMaintainMaterialService;
 
     @PostMapping("/create")
     @Operation(summary = "创建维修工单")
@@ -71,7 +76,10 @@ public class IotMaintainController {
     @PreAuthorize("@ss.hasPermission('rq:iot-maintain:query')")
     public CommonResult<IotMaintainRespVO> getIotMaintain(@RequestParam("id") Long id) {
         IotMaintainDO iotMaintain = iotMaintainService.getIotMaintain(id);
-        return success(BeanUtils.toBean(iotMaintain, IotMaintainRespVO.class));
+        IotMaintainRespVO bean = BeanUtils.toBean(iotMaintain, IotMaintainRespVO.class);
+        List<IotMaintainMaterialDO> listByMaintainId = iotMaintainMaterialService.getListByMaintainId(id);
+        bean.setMaintainMaterialDOS(listByMaintainId);
+        return success(bean);
     }
 
     @GetMapping("/page")

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/vo/IotMaintainPageReqVO.java

@@ -74,5 +74,5 @@ public class IotMaintainPageReqVO extends PageParam {
 
     @Schema(description = "部门id", example = "27456")
     private Long deptId;
-
+    private String type;
 }

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/vo/IotMaintainRespVO.java

@@ -1,9 +1,12 @@
 package cn.iocoder.yudao.module.pms.controller.admin.maintain.vo;
 
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
 import java.time.LocalDateTime;
+import java.util.List;
+
 import com.alibaba.excel.annotation.*;
 
 import javax.validation.constraints.NotEmpty;
@@ -97,4 +100,7 @@ public class IotMaintainRespVO {
     private String maintainDescription;
     @Schema(description = "维修负责人")
     private Long maintainPerson;
+    @Schema(description = "工单物料")
+    private List<IotMaintainMaterialDO> maintainMaterialDOS;
+    private String type;
 }

+ 5 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/failure/IotFailureReportDO.java

@@ -98,4 +98,9 @@ public class IotFailureReportDO extends BaseDO {
     private String processInstanceId;
 
     private Long deptId;
+
+    private Long assigneeUserId;
+
+    private String type;
+
 }

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportService.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.failure.vo.IotFailureReportPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportProcessVO;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 
@@ -27,7 +28,7 @@ public interface IotFailureReportService {
      * @return 编号
      */
     Long createIotFailureReport(@Valid IotFailureReportSaveReqVO createReqVO);
-
+    Long updateIotFailureReportProcess(IotFailureReportProcessVO processVO);
     /**
      * 更新故障上报
      *

+ 21 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportServiceImpl.java

@@ -6,11 +6,14 @@ 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.IotFailureReportPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportProcessVO;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportSaveReqVO;
 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.dal.dataobject.maintain.IotMaintainDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMapper;
 import cn.iocoder.yudao.module.pms.enums.common.FailureAuditStatusEnum;
 import cn.iocoder.yudao.module.supplier.dal.dataobject.product.SupplierDO;
 import cn.iocoder.yudao.module.supplier.enums.common.SupplierAuditStatusEnum;
@@ -22,6 +25,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import cn.iocoder.yudao.module.system.service.user.AdminUserService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -61,8 +65,11 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
     private DingtalkSendApi dingtalkSendApi;
     @Resource
     private BpmProcessInstanceApi processInstanceApi;
+    @Autowired
+    private IotMaintainMapper iotMaintainMapper;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void approvalFailureReport(Long id, Integer bpmResult) {
         //更新故障上报状态及审核状态
         IotFailureReportDO failureReportDO = iotFailureReportMapper.selectById(id);
@@ -70,7 +77,11 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
         failureReportDO.setAuditStatus(FailureAuditStatusEnum.APPROVE.getStatus());
         iotFailureReportMapper.insertOrUpdate(failureReportDO);
         //生成工单
-
+        IotMaintainDO iotMaintainDO = new IotMaintainDO();
+        BeanUtils.copyProperties(failureReportDO, iotMaintainDO);
+        iotMaintainDO.setStatus("tx");
+        iotMaintainDO.setAuditStatus(0);
+        iotMaintainMapper.insert(iotMaintainDO);
     }
 
     @Override
@@ -124,6 +135,15 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
         return iotFailureReport.getId();
     }
 
+    @Override
+    public Long updateIotFailureReportProcess(IotFailureReportProcessVO processVO) {
+        IotFailureReportDO reportDO = iotFailureReportMapper.selectById(processVO.getId());
+        reportDO.setAssigneeUserId(processVO.getAssigneeUserId());
+        reportDO.setType(processVO.getType());
+        iotFailureReportMapper.insertOrUpdate(reportDO);
+        return reportDO.getId();
+    }
+
     @Override
     public void updateIotFailureReport(IotFailureReportSaveReqVO updateReqVO) {
         // 校验存在

+ 3 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/material/IotMaintainMaterialService.java

@@ -7,13 +7,15 @@ import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMain
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 
+import java.util.List;
+
 /**
  * 工单物料 Service 接口
  *
  * @author 李鹏辉
  */
 public interface IotMaintainMaterialService {
-
+    List<IotMaintainMaterialDO> getListByMaintainId(Long maintainId);
     /**
      * 创建工单物料
      *

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

@@ -36,6 +36,11 @@ public class IotMaintainMaterialServiceImpl implements IotMaintainMaterialServic
     @Autowired
     private DeptService deptService;
 
+    @Override
+    public List<IotMaintainMaterialDO> getListByMaintainId(Long maintainId) {
+        return iotMaintainMaterialMapper.selectList("maintain_id", maintainId);
+    }
+
     @Override
     public Long createIotMaintainMaterial(IotMaintainMaterialSaveReqVO createReqVO) {
         // 插入