guarantee-lsq 2 سال پیش
والد
کامیت
07c273468f

+ 22 - 0
platform-dao/src/main/java/com/platform/dao/dto/hidden/HiddenDangerDTO.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import javax.persistence.Transient;
 import javax.validation.constraints.*;
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -170,4 +171,25 @@ public class HiddenDangerDTO extends BaseDTO implements Serializable {
      * 计划结束时间
      */
     private LocalDateTime planEndTime;
+
+    /**
+     * 维修部门ID
+     */
+    private String repairDeptId;
+
+    /**
+     * 委托单位
+     */
+    private Integer trustDept;
+
+    /**
+     * 生产装置  时代思康->甲八车间
+     */
+    private String sbPosition;
+
+    /**
+     * 是否停机: 0-否 1-是
+     */
+    private Integer needStop;
+
 }

+ 14 - 0
platform-rest/src/main/java/com/platform/rest/controller/hidden/HiddenDangerController.java

@@ -56,6 +56,20 @@ public class HiddenDangerController {
       return new R<>(hiddenDangerService.saveModelByDTO(hiddenDangerDTO));
   }
 
+  /**
+   * 隐患转维修单
+   *
+   * @param hiddenDangerDTO 隐患管理表DTO
+   * @return R
+   */
+  @SysLog("隐患任务转维修单")
+  @PostMapping("/transfer/repair")
+  @PreAuthorize("@pms.hasPermission('hidden-dangers-add')")
+  public R transferToRepair(@Validated({AddGroup.class}) @RequestBody HiddenDangerDTO hiddenDangerDTO) {
+    hiddenDangerService.transferToRepair(hiddenDangerDTO);
+    return new R<>();
+  }
+
   /**
    * 修改记录
    *

+ 44 - 5
platform-service/src/main/java/com/platform/service/hidden/impl/HiddenDangerServiceImpl.java

@@ -2,21 +2,32 @@ package com.platform.service.hidden.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.exception.DeniedException;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.ListUtils;
+import com.platform.common.util.SecurityUtils;
+import com.platform.common.util.StringUtils;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.hidden.HiddenDangerDTO;
+import com.platform.dao.dto.repair.RepairApplicationFormDTO;
 import com.platform.dao.entity.hidden.HiddenDanger;
+import com.platform.dao.entity.upms.SysFile;
 import com.platform.dao.enums.HiddenDangerStatusEnum;
 import com.platform.dao.enums.SysFileTypeEnum;
+import com.platform.dao.enums.SysRoleCodeEnum;
 import com.platform.dao.mapper.hidden.HiddenDangerMapper;
 import com.platform.dao.vo.query.hidden.HiddenDangerVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.hidden.HiddenDangerService;
+import com.platform.service.repair.strategy.RepairBaseStrategy;
+import com.platform.service.repair.strategy.RepairStrategyFactory;
 import com.platform.service.upms.SysFileService;
 import org.springframework.stereotype.Service;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -57,14 +68,42 @@ public class HiddenDangerServiceImpl extends BaseServiceImpl<HiddenDangerMapper,
 
     @Override
     public void transferToRepair(HiddenDangerDTO model) {
-
+        if(StringUtils.isBlank(model.getId())){
+            throw new DeniedException("隐患任务ID不能为空");
+        }
+        String role = StringUtils.getRoles();
+        if(role.contains(SysRoleCodeEnum.Maintenance_Leader.name())){
+            throw new DeniedException("不具备该权限");
+        }
         // 复制信息
-
-        // 确定报修人,应该是班组长
-
+        RepairApplicationFormDTO applicationFormDTO = BeanConverterUtil.copyObjectProperties(model,RepairApplicationFormDTO.class);
+        // 获取整改前文件和图片
+        List<SysFile> sysFiles = sysFileService.getListByTargetAndType(model.getId(), null);
+        List<SysFile> applicationFileList = ListUtils.newArrayList();
+        List<SysFile> reportFileList = ListUtils.newArrayList();
+        sysFiles.forEach(item -> {
+            if (item.getType().equals(SysFileTypeEnum.HIDDEN_DANGER_BEFORE_IMGS.getValue())) {
+                item.setId(null);
+                applicationFileList.add(item);
+            }
+            if (item.getType().equals(SysFileTypeEnum.HIDDEN_DANGER_FILES.getValue())) {
+                item.setId(null);
+                reportFileList.add(item);
+            }
+        });
+        applicationFormDTO.setApplicationFileList(applicationFileList);
+        applicationFormDTO.setReportFileList(reportFileList);
         // 调用相关维修类,生成维修单
-
+        RepairBaseStrategy strategy = RepairStrategyFactory.getStrategy(applicationFormDTO.getCategory());
+        strategy.callRepair(applicationFormDTO);
         // 修改隐患任务状态
+        HiddenDanger updInfo = new HiddenDanger();
+        updInfo.setId(model.getId());
+        updInfo.setUpdateTime(LocalDateTime.now());
+        updInfo.setUpdateUserId(SecurityUtils.getUserInfo().getUserId());
+        updInfo.setUpdateUserName(SecurityUtils.getUserInfo().getUsername());
+        updInfo.setStatus(HiddenDangerStatusEnum.ON_GOING.getValue());
+        mapper.updateByPrimaryKeySelective(updInfo);
     }
 
     @Override