xiongchao vor 3 Jahren
Ursprung
Commit
cb3d8a3a16

+ 1 - 1
platform-dao/src/main/java/com/platform/dao/dto/check/CheckJobDTO.java

@@ -93,7 +93,7 @@ public class CheckJobDTO extends BaseDTO implements Serializable {
     /**
      * 任务开始时间
      */
-    private LocalDateTime startTime;
+    private LocalDate startTime;
     /**
      * 任务开始时间开始
      */

+ 1 - 1
platform-dao/src/main/java/com/platform/dao/entity/check/CheckStandard.java

@@ -69,7 +69,7 @@ public class CheckStandard implements Serializable{
      */
     private Integer periodType;
     /**
-     * 负责人类型: 参考数据字典:1车间,2维修员,3厂商
+     * 负责人类型: 参考数据字典:1使用人员,2第一维修员
      */
     private Integer checkUserType;
     /**

+ 30 - 0
platform-dao/src/main/java/com/platform/dao/enums/CheckUserTypeEnum.java

@@ -0,0 +1,30 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 保养任务执行人方式:1使用人,2维修人
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2019,安徽阡陌网络科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum CheckUserTypeEnum {
+
+    /**
+     *1使用人
+     */
+    USE_USER(1),
+    /**
+     * 2维修人
+     */
+    REPAIR_USER(2),
+    /**
+     *指定
+     */
+    ZHIDING(3);
+    private final Integer value;
+
+}

+ 131 - 32
platform-dao/src/main/java/com/platform/dao/util/CustomExcelImportUtil.java

@@ -540,14 +540,14 @@ public class CustomExcelImportUtil {
     }
 
     private static Integer getUseType(String stringCellValue) {
-        if ("工程设备".equals(stringCellValue)) {
-            return 1;
-        } else if ("车辆".equals(stringCellValue)) {
-            return 2;
-        } else if ("通用设备".equals(stringCellValue)) {
+        if ("一般性生产设备".equals(stringCellValue)) {
             return 3;
-        } else {
+        } else if ("计量设备".equals(stringCellValue)) {
             return 4;
+        } else if ("特种设备及附件".equals(stringCellValue)) {
+            return 5;
+        } else {
+            return 3;
         }
     }
 
@@ -997,6 +997,56 @@ public class CustomExcelImportUtil {
         return result;
     }
 
+    /**
+     * 导入老版本的点检标准
+     *
+     * @param inputstream
+     * @return
+     * @throws IOException
+     * @throws InvalidFormatException
+     */
+    public static List<CheckStandard> importCheckStandardListOldVerison(InputStream inputstream) throws IOException, InvalidFormatException {
+        if (inputstream == null) {
+            return Collections.emptyList();
+        }
+        Workbook book = null;
+        if (!(inputstream.markSupported())) {
+            inputstream = new PushbackInputStream(inputstream, 8);
+        }
+        if (POIFSFileSystem.hasPOIFSHeader(inputstream)) {
+            book = new HSSFWorkbook(inputstream);
+        } else if (POIXMLDocument.hasOOXMLHeader(inputstream)) {
+            book = new XSSFWorkbook(OPCPackage.open(inputstream));
+        }
+        Sheet sheet = book.getSheetAt(0);
+        int rowCounts = sheet.getLastRowNum();
+        List<CheckStandard> result = new ArrayList<>(rowCounts);
+        CheckStandard record = null;
+        String sbNo = "" ;
+        int type = 0;// 没有负责人的,1有
+        sbNo = sheet.getRow(4).getCell(11).getStringCellValue().trim();
+        StringBuffer error = new StringBuffer();
+        LOGGER.info("文件行数:" + rowCounts);
+        int sort = 1;
+        for (int i = 12; i <= rowCounts; i++) {
+            record = new CheckStandard();
+            Row row = sheet.getRow(i);
+            if(isRowEmpty(row)){
+                break;
+            }
+            try {
+                setNoPersonOldVersion(sbNo, row, record);
+            } catch (Exception e) {
+                throw new BusinessException("导入异常,行号:"+ i + ", 错误信息" + e.getMessage() +  ", 错误原因" + e.getCause());
+            }
+            record.setSort(sort++);
+            if(StringUtils.isNotBlank(record.getName())){
+                result.add(record);
+            }
+        }
+        return result;
+    }
+
     private static void setPerson(String sbNo, Row row, CheckStandard record) {
         //i,j i:行 j:列
         setPeriod(row, record);
@@ -1027,6 +1077,21 @@ public class CustomExcelImportUtil {
         setNoRemark(row, record);
     }
 
+    private static void setNoPersonOldVersion(String sbNo, Row row, CheckStandard record) {
+        //i,j i:行 j:列
+        setPeriodOldVersion(row, record);
+        record.setRequirement(row.getCell(10).getStringCellValue().trim());
+        int length = record.getRequirement().length();
+        length = (length>20)?20:length;
+        record.setName(record.getRequirement().substring(0,length));
+        record.setId(IdGeneratorUtils.getObjectId());
+        record.setType(CheckStandardTypeEnum.POLLING.getValue());
+        record.setNo(sbNo);// 需要根据no来判断设备的id
+        record.setStandardHours("0");
+        record.setEnable(1);
+        setNoRemark(row, record);
+    }
+
     private static void setRemark(Row row, CheckStandard record) {
         if(StringUtils.isNotEmpty(row.getCell(7).getStringCellValue())){
             record.setCheckUserType(1);
@@ -1050,7 +1115,7 @@ public class CustomExcelImportUtil {
         }
         if(row.getCell(1) != null && StringUtils.isNotEmpty(row.getCell(1).getStringCellValue())){
             record.setCheckUserType(1);
-            record.setRemark("车间");
+            record.setRemark("维修");
             return;
         }
 
@@ -1060,31 +1125,65 @@ public class CustomExcelImportUtil {
     }
 
     private static void setPeriod(Row row, CheckStandard record) {
-     if(row.getCell(0) !=null && StringUtils.isNotBlank(row.getCell(0).getStringCellValue())){
-        record.setPeriod(1);
-        record.setPeriodType(1);
-     }else if(row.getCell(1) !=null && StringUtils.isNotBlank(row.getCell(1).getStringCellValue())){
-         record.setPeriod(1);
-         record.setPeriodType(2);
-     }else if(row.getCell(2) !=null && StringUtils.isNotBlank(row.getCell(2).getStringCellValue())){
-         record.setPeriod(1);
-         record.setPeriodType(3);
-     }else if(row.getCell(3) !=null && StringUtils.isNotBlank(row.getCell(3).getStringCellValue())){
-         record.setPeriod(1);
-         record.setPeriodType(4);
-     }else if(row.getCell(4) !=null && StringUtils.isNotBlank(row.getCell(4).getStringCellValue())){
-         record.setPeriod(2);
-         record.setPeriodType(4);
-     }else if(row.getCell(5) !=null && StringUtils.isNotBlank(row.getCell(5).getStringCellValue())){
-         record.setPeriod(1);
-         record.setPeriodType(5);
-     }else if(row.getCell(6) !=null && StringUtils.isNotBlank(row.getCell(6).getStringCellValue())){
-         record.setPeriod(3);
-         record.setPeriodType(5);
-     }else{
-         record.setPeriod(1);
-         record.setPeriodType(1);
-     }
+         if(row.getCell(0) !=null && StringUtils.isNotBlank(row.getCell(0).getStringCellValue())){
+            record.setPeriod(1);
+            record.setPeriodType(1);
+         }else if(row.getCell(1) !=null && StringUtils.isNotBlank(row.getCell(1).getStringCellValue())){
+             record.setPeriod(1);
+             record.setPeriodType(2);
+         }else if(row.getCell(2) !=null && StringUtils.isNotBlank(row.getCell(2).getStringCellValue())){
+             record.setPeriod(1);
+             record.setPeriodType(3);
+         }else if(row.getCell(3) !=null && StringUtils.isNotBlank(row.getCell(3).getStringCellValue())){
+             record.setPeriod(1);
+             record.setPeriodType(4);
+         }else if(row.getCell(4) !=null && StringUtils.isNotBlank(row.getCell(4).getStringCellValue())){
+             record.setPeriod(2);
+             record.setPeriodType(4);
+         }else if(row.getCell(5) !=null && StringUtils.isNotBlank(row.getCell(5).getStringCellValue())){
+             record.setPeriod(1);
+             record.setPeriodType(5);
+         }else if(row.getCell(6) !=null && StringUtils.isNotBlank(row.getCell(6).getStringCellValue())){
+             record.setPeriod(3);
+             record.setPeriodType(5);
+         }else{
+             record.setPeriod(1);
+             record.setPeriodType(1);
+         }
+    }
+
+    private static void setPeriodOldVersion(Row row, CheckStandard record) {
+        if(row.getCell(0) !=null && StringUtils.isNotBlank(row.getCell(0).getStringCellValue())){
+            record.setPeriod(1);
+            record.setPeriodType(1);
+        }else if(row.getCell(1) !=null && StringUtils.isNotBlank(row.getCell(1).getStringCellValue())){
+            record.setPeriod(1);
+            record.setPeriodType(2);
+        }else if(row.getCell(2) !=null && StringUtils.isNotBlank(row.getCell(2).getStringCellValue())){
+            record.setPeriod(1);
+            record.setPeriodType(3);
+        }else if(row.getCell(3) !=null && StringUtils.isNotBlank(row.getCell(3).getStringCellValue())){
+            record.setPeriod(1);
+            record.setPeriodType(4);
+        }else if(row.getCell(4) !=null && StringUtils.isNotBlank(row.getCell(4).getStringCellValue())){
+            record.setPeriod(2);
+            record.setPeriodType(4);
+        }else if(row.getCell(5) !=null && StringUtils.isNotBlank(row.getCell(5).getStringCellValue())){
+            record.setPeriod(1);
+            record.setPeriodType(5);
+        }else if(row.getCell(6) !=null && StringUtils.isNotBlank(row.getCell(6).getStringCellValue())){
+            record.setPeriod(3);
+            record.setPeriodType(5);
+        }else if(row.getCell(7) !=null && StringUtils.isNotBlank(row.getCell(7).getStringCellValue())){
+            record.setPeriod(5);
+            record.setPeriodType(5);
+        }else if(row.getCell(8) !=null && StringUtils.isNotBlank(row.getCell(8).getStringCellValue())){
+            record.setPeriod(2);
+            record.setPeriodType(5);
+        }else{
+            record.setPeriod(1);
+            record.setPeriodType(1);
+        }
 
     }
 

+ 48 - 66
platform-dao/src/main/java/com/platform/dao/vo/export/check/ExportCheckJobVO.java

@@ -4,10 +4,11 @@ import com.platform.office.annotation.Excel;
 import lombok.Data;
 import lombok.experimental.Accessors;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
- * @Description 点检记录导出VO
+ * @Description 负责记录导出VO
  * @Author liuyu
  * @Date 2020-05-29 10:39:40
  * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
@@ -21,94 +22,75 @@ public class ExportCheckJobVO implements Serializable {
    */
   @Excel(name = "主键", orderNum = "1")
   private String id;
-
     /**
-   * 计划id
-   */
-  @Excel(name = "计划id", orderNum = "2")
-  private String planId;
-  /**
-   * 点检人id
-   */
-  private String checkUserId;
+     * 设备新号
+     */
+    @Excel(name = "设备新号", orderNum = "2")
+    private String no;
+    /**
+     * 设备名称
+     */
+    @Excel(name = "设备名称", orderNum = "3")
+    private String sbName;
+    /**
+     * 设备部位
+     */
+    @Excel(name = "设备部位", orderNum = "4")
+    private String partName;
+    /**
+     * 任务名称
+     */
+    @Excel(name = "任务名称", orderNum = "5")
+    private String name;
+    /**
+     * 计划周期
+     */
+    @Excel(name = "计划周期", orderNum = "6")
+    private String period;
+    /**
+     * 周期类型
+     */
+    @Excel(name = "周期类型", orderNum = "7", dicCode="CHECK_PLAN_PERIOD_TYPE")
+    private String periodType;
   /**
-   * 点检人
+   * 负责
    */
-  @Excel(name = "点检人", orderNum = "3")
+  @Excel(name = "负责人", orderNum = "8")
   private String checkUserName;
 
     /**
    * 任务开始时间
    */
-  @Excel(name = "任务开始时间", orderNum = "3")
-  private LocalDateTime startTime;
-
+  @Excel(name = "执行日期", orderNum = "9")
+  private LocalDate startTime;
     /**
-   * 任务结束时间
-   */
-  @Excel(name = "任务结束时间", orderNum = "4")
-  private LocalDateTime endTime;
-
+     * 标准工时
+     */
+    @Excel(name = "标准工时", orderNum = "10")
+    private LocalDate standardHour;
+    /**
+     * 标准工时
+     */
+    @Excel(name = "实际工时", orderNum = "11")
+    private LocalDate realHours;
     /**
    * 实际开始时间
    */
-  @Excel(name = "实际开始时间", orderNum = "5")
+  @Excel(name = "实际开始时间", orderNum = "12")
   private LocalDateTime actualStartTime;
 
     /**
    * 实际结束时间
    */
-  @Excel(name = "实际结束时间", orderNum = "6")
+  @Excel(name = "实际完成时间", orderNum = "13")
   private LocalDateTime actualEndTime;
 
     /**
-   * 已检设备数
+   * 任务状态: 1-未负责 2-负责中 3-已完成 4-已逾期
    */
-  @Excel(name = "已检设备数", orderNum = "7")
-  private Integer checkedNum;
-
-    /**
-   * 异常设备数
-   */
-  @Excel(name = "异常设备数", orderNum = "8")
-  private Integer abnormalNum;
-
-    /**
-   * 应检设备数
-   */
-  @Excel(name = "应检设备数", orderNum = "9")
-  private Integer checkNum;
-
-    /**
-   * 任务状态: 1-未执行 2-执行中 3-已完成 4-已逾期
-   */
-  @Excel(name = "任务状态: 1-未执行 2-执行中 3-已完成 4-已逾期", orderNum = "10")
+  @Excel(name = "任务状态: 1-未负责 2-负责中 3-已完成 4-已逾期", orderNum = "14", dicCode="CHECK_JOB_STATUS")
   private Integer status;
 
-    /**
-   * 创建人
-   */
-  @Excel(name = "创建人", orderNum = "11")
-  private String createdUserId;
-
-    /**
-   * 更新人
-   */
-  @Excel(name = "更新人", orderNum = "12")
-  private String updateUserId;
-
-    /**
-   * 创建人名称
-   */
-  @Excel(name = "创建人名称", orderNum = "13")
-  private String createdUserName;
-
-    /**
-   * 更新人名称
-   */
-  @Excel(name = "更新人名称", orderNum = "14")
-  private String updateUserName;
-
     /**
    * 创建时间
    */

+ 17 - 0
platform-rest/src/main/java/com/platform/rest/controller/check/CheckStandardController.java

@@ -205,4 +205,21 @@ public class CheckStandardController {
         }
         return new R<>(result);
     }
+
+    /**
+     * 导入保养标准老版本
+     *
+     * @param files bom excel文件
+     *
+     * @return R
+     */
+    @SysLog("新增导入设备的保养标准")
+    @PostMapping(value="/import/old",headers = "content-type=multipart/form-data")
+    public R importListByAddOldVersion( @RequestParam("files") MultipartFile[] files) throws Exception {
+        String result ="";
+        for(MultipartFile file: files){
+            result = result + checkStandardService.importListByAdd(file);
+        }
+        return new R<>(result);
+    }
 }

+ 17 - 1
platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java

@@ -14,6 +14,7 @@ import com.platform.dao.dto.check.CheckPlanDTO;
 import com.platform.dao.dto.check.CheckProjectPlanRelationDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.check.*;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.upms.SysFile;
 import com.platform.dao.enums.*;
 import com.platform.dao.mapper.check.*;
@@ -280,12 +281,27 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
                 if(!find){
                     CheckJob checkJob = new CheckJob();
                     checkJob.setSbId(standard.getSbId());
+                    SbInfo sbInfo = sbInfoService.getModelById(standard.getSbId());
+                    if(standard.getCheckUserType() == null){
+                        if(standard.getPeriodType()< CheckPlanPeriodTypeEnum.WEEK.getValue()){
+                            checkJob.setCheckUserId(sbInfo.getSaveUser());
+                        }else{
+                            checkJob.setCheckUserId(sbInfo.getRepairUser());
+                        }
+                    }else{
+                        if(standard.getCheckUserType().equals(CheckUserTypeEnum.USE_USER.getValue())){
+                            checkJob.setCheckUserId(sbInfo.getSaveUser());
+                        }else if(standard.getCheckUserType().equals(CheckUserTypeEnum.REPAIR_USER.getValue())){
+                            checkJob.setCheckUserId(sbInfo.getRepairUser());
+                        }else if(standard.getCheckUserType().equals(CheckUserTypeEnum.ZHIDING.getValue())){
+                            checkJob.setCheckUserId(standard.getCheckUserId());
+                        }
+                    }
                     checkJob.setStandardHours(standard.getStandardHours());
                     checkJob.setStatus(CheckJobStatusEnum.NOT_EXECUTE.getValue());
                     // 计算计划开始时间和结束时间
                     calcTime(checkJob, currentDate, standard);
                     checkJob.setCreatedTime(LocalDateTime.now());
-                    checkJob.setCheckUserId(standard.getCheckUserId());
                     checkJob.setId(IdGeneratorUtils.getObjectId());
                     checkJob.setPartId(standard.getPart());
                     checkJob.setStandardId(standard.getId());

+ 11 - 10
platform-service/src/main/java/com/platform/service/check/impl/CheckStandardServiceImpl.java

@@ -284,7 +284,8 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
 
     @Override
     public void generate(CheckJobDTO checkJobDTO) {
-        LocalDateTime currentDate = LocalDateTime.now();
+        LocalDateTime now = LocalDateTime.now();
+        LocalDate currentDate = now.toLocalDate();
         CheckStandard standard = super.getModelById(checkJobDTO.getStandardId());
         CheckJob checkJob = new CheckJob();
         checkJob.setSbId(standard.getSbId());
@@ -296,8 +297,8 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
             // 计算计划开始时间和结束时间
             calcTime(checkJob, checkJobDTO.getStartTime(), standard);
         }
-        checkJob.setCreatedTime(currentDate);
-        checkJob.setUpdateTime(currentDate);
+        checkJob.setCreatedTime(now);
+        checkJob.setUpdateTime(now);
         checkJob.setUpdateUserId(standard.getCheckUserId());
         checkJob.setCheckUserId(standard.getCheckUserId());
         checkJob.setId(IdGeneratorUtils.getObjectId());
@@ -376,23 +377,23 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
         return addPartResult + ",复制保养内容:" + addList.size() + "个";
     }
 
-    private void calcTime(CheckJob checkJob, LocalDateTime currentDate, CheckStandard checkStandard) {
+    private void calcTime(CheckJob checkJob, LocalDate currentDate, CheckStandard checkStandard) {
         LocalDate endDate = null;
-        checkJob.setStartTime(currentDate.toLocalDate());
+        checkJob.setStartTime(currentDate);
         if (CheckPlanPeriodTypeEnum.DAY.getValue().equals(checkStandard.getPeriodType())) {
-            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.DAYS);
+            endDate = DateUtils.plus(currentDate, checkStandard.getPeriod(), ChronoUnit.DAYS);
         }
         if (CheckPlanPeriodTypeEnum.WEEK.getValue().equals(checkStandard.getPeriodType())) {
-            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod() * 7, ChronoUnit.DAYS);
+            endDate = DateUtils.plus(currentDate, checkStandard.getPeriod() * 7, ChronoUnit.DAYS);
         }
         if (CheckPlanPeriodTypeEnum.MONTH.getValue().equals(checkStandard.getPeriodType())) {
-            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.MONTHS);
+            endDate = DateUtils.plus(currentDate, checkStandard.getPeriod(), ChronoUnit.MONTHS);
         }
         if (CheckPlanPeriodTypeEnum.SEASON.getValue().equals(checkStandard.getPeriodType())) {
-            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod() * 3, ChronoUnit.MONTHS);
+            endDate = DateUtils.plus(currentDate, checkStandard.getPeriod() * 3, ChronoUnit.MONTHS);
         }
         if (CheckPlanPeriodTypeEnum.YEAR.getValue().equals(checkStandard.getPeriodType())) {
-            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.YEARS);
+            endDate = DateUtils.plus(currentDate, checkStandard.getPeriod(), ChronoUnit.YEARS);
         }
         endDate = DateUtils.plus(endDate, -1, ChronoUnit.DAYS);
         checkJob.setEndTime(endDate);