xiongchao 3 år sedan
förälder
incheckning
afe366d4b9

+ 6 - 0
platform-dao/src/main/java/com/platform/dao/dto/sqarepartmanage/SparePartInfoDTO.java

@@ -2,6 +2,7 @@ package com.platform.dao.dto.sqarepartmanage;
 
 import com.platform.common.bean.BaseDTO;
 import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.entity.upms.SysFile;
 import com.platform.office.annotation.Excel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -217,4 +218,9 @@ public class SparePartInfoDTO extends BaseDTO implements Serializable {
     @Transient
     private String modelId;
 
+    /**
+     * 报修图片
+     */
+    private List<SysFile> applicationFileList;
+
 }

+ 7 - 0
platform-dao/src/main/java/com/platform/dao/entity/sqarepartmanage/SparePartInfo.java

@@ -1,5 +1,6 @@
 package com.platform.dao.entity.sqarepartmanage;
 
+import com.platform.dao.entity.upms.SysFile;
 import lombok.Data;
 
 import javax.persistence.Id;
@@ -8,6 +9,8 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalDate;
+import java.util.List;
+
 import com.platform.common.bean.DataScope;
 import lombok.experimental.Accessors;
 
@@ -204,6 +207,10 @@ public class SparePartInfo implements Serializable{
      * 英文名称
      */
     private String englishName;
+    /**
+     * 报修图片
+     */
+    private List<SysFile> applicationFileList;
     /**
      * 助记码
      */

+ 2 - 2
platform-dao/src/main/java/com/platform/dao/enums/SysFileTypeEnum.java

@@ -24,8 +24,8 @@ public enum SysFileTypeEnum {
     SB_IMG(4, "设备图片"),
     REPAIR_APPLICATION_IMGS(11, "维修-报修图片"),
     REPAIR_REPAIR_IMGS(12, "维修-维修图片"),
-    REPAIR_CHECK_IMGS(13, "维修-验收图片");
-
+    REPAIR_CHECK_IMGS(13, "维修-验收图片"),
+    SPARE_IMGS(14, "备件图片");
     private Integer value;
     private final String description;
 }

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

@@ -1,6 +1,7 @@
 package com.platform.rest.controller.check;
 
 import com.platform.common.util.R;
+import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.entity.check.CheckStandard;
 import com.platform.service.check.CheckStandardService;
@@ -80,6 +81,30 @@ public class CheckStandardController {
       return new R<>();
   }
 
+    /**
+     * 通过标准直接生成任务
+     *
+     * @param id 点检标准DTO
+     * @return R
+     */
+    @SysLog("修改点检标准")
+    @PutMapping("generate/{id}")
+    public R generate(@PathVariable("id") String id) {
+        checkStandardService.generate(id);
+        return new R<>();
+    }
+
+    /**
+     * 任务数量
+     *
+     * @param checkStandardDTO 点检任务DTO
+     * @return R
+     */
+    @GetMapping("/num")
+    public R getNum(CheckStandardDTO checkStandardDTO) {
+        return new R<>(checkStandardService.getCountByDTO(checkStandardDTO));
+    }
+
   /**
    * 通过id删除一条记录
    *

+ 12 - 0
platform-rest/src/main/java/com/platform/rest/controller/part/PartInfoController.java

@@ -5,6 +5,7 @@ import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
 import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.dto.part.PartInfoDTO;
 import com.platform.dao.entity.part.PartInfo;
 import com.platform.dao.util.ExcelUtil;
@@ -123,6 +124,17 @@ public class PartInfoController {
         return new R<>(partInfoService.getModelListByDTO(partInfoDTO));
     }
 
+    /**
+     * 部位数量
+     *
+     * @param partInfoDTO
+     * @return R
+     */
+    @GetMapping("/num")
+    public R getNum(PartInfoDTO partInfoDTO) {
+        return new R<>(partInfoService.getCountByDTO(partInfoDTO));
+    }
+
     /**
      * 部件信息导出
      *

+ 12 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbModelSpareBomController.java

@@ -10,6 +10,7 @@ import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.lubricationmanage.LubricationPlanStandardRelationDTO;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.entity.lubricationmanage.LubricationPlanStandardRelation;
 import com.platform.dao.entity.sb.SbModel;
 import com.platform.dao.entity.sb.SbModelSpareBom;
@@ -60,6 +61,17 @@ public class SbModelSpareBomController {
       return new R<>(sbModelSpareBomService.getModelById(id));
   }
 
+    /**
+     * 数量
+     *
+     * @param sbModelSpareBomDTO
+     * @return R
+     */
+    @GetMapping("/num")
+    public R getNum(SbModelSpareBomDTO sbModelSpareBomDTO) {
+        return new R<>(sbModelSpareBomService.getCountByDTO(sbModelSpareBomDTO));
+    }
+
   /**
    * 新增记录
    *

+ 7 - 0
platform-service/src/main/java/com/platform/service/check/CheckStandardService.java

@@ -35,4 +35,11 @@ public interface CheckStandardService extends IBaseService<CheckStandard, CheckS
     List<CheckStandardVO> selectCheckstandardListByModelId(String modelId);
 
     List<CheckStandardVO> selectProjectStandardList(String projectId);
+
+    /**
+     * 生成某一個保养标准的保养任务
+     *
+     * @param id
+     */
+    public void generate(String id);
 }

+ 57 - 1
platform-service/src/main/java/com/platform/service/check/impl/CheckStandardServiceImpl.java

@@ -1,16 +1,21 @@
 package com.platform.service.check.impl;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.github.pagehelper.PageHelper;
+import com.platform.common.util.DateUtils;
 import com.platform.common.util.IdGeneratorUtils;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.dto.check.CheckStandardParamDTO;
+import com.platform.dao.entity.check.CheckJob;
 import com.platform.dao.entity.check.CheckProjectStandardRelation;
 import com.platform.dao.entity.check.CheckStandard;
 import com.platform.dao.entity.check.CheckStandardParam;
 import com.platform.dao.entity.maintain.MaintainProjectStandardRelation;
 import com.platform.dao.entity.maintain.MaintainStandardParam;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
+import com.platform.dao.enums.CheckJobStatusEnum;
+import com.platform.dao.enums.CheckPlanPeriodTypeEnum;
+import com.platform.dao.mapper.check.CheckJobMapper;
 import com.platform.dao.mapper.check.CheckProjectStandardRelationMapper;
 import com.platform.dao.mapper.check.CheckStandardMapper;
 import com.platform.dao.mapper.check.CheckStandardParamMapper;
@@ -25,6 +30,10 @@ import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 import lombok.AllArgsConstructor;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.temporal.ChronoUnit;
 import java.util.List;
 
 /**
@@ -39,7 +48,7 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
     private CheckStandardParamService paramService;
     private CheckProjectStandardRelationMapper relationMapper;
     private CheckStandardParamMapper paramMapper;
-
+    private CheckJobMapper checkJobMapper;
     @Override
     public boolean cascadingDeleteByKey(String id) {
         int result = mapper.deleteByPrimaryKey(id);
@@ -129,4 +138,51 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
         checkStandard.setParamList(paramList);
         return checkStandard;
     }
+
+
+    @Override
+    public void generate(String id) {
+        LocalDateTime currentDate = LocalDateTime.now();
+        CheckStandard standard = super.getModelById(id);
+        CheckJob checkJob = new CheckJob();
+        checkJob.setSbId(standard.getSbId());
+        checkJob.setStatus(CheckJobStatusEnum.NOT_EXECUTE.getValue());
+        // 计算计划开始时间和结束时间
+        calcTime(checkJob, currentDate, standard);
+        checkJob.setCreatedTime(currentDate);
+        checkJob.setUpdateTime(currentDate);
+        checkJob.setUpdateUserId(standard.getCheckUserId());
+        checkJob.setCheckUserId(standard.getCheckUserId());
+        checkJob.setId(IdGeneratorUtils.getObjectId());
+        checkJob.setPartId(standard.getPart());
+        checkJob.setStandardId(standard.getId());
+        checkJob.setType(standard.getType());
+        checkJob.setRequirement(standard.getRequirement());
+        checkJob.setRemark(standard.getRemark());
+        checkJob.setName(standard.getName());
+        checkJobMapper.insert(checkJob);
+    }
+
+    private void calcTime(CheckJob checkJob, LocalDateTime currentDate, CheckStandard checkStandard) {
+        LocalDate endDate = null;
+        checkJob.setStartTime(currentDate);
+        if (CheckPlanPeriodTypeEnum.DAY.getValue().equals(checkStandard.getPeriodType())) {
+            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.DAYS);
+        }
+        if (CheckPlanPeriodTypeEnum.WEEK.getValue().equals(checkStandard.getPeriodType())) {
+            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod() * 7, ChronoUnit.DAYS);
+        }
+        if (CheckPlanPeriodTypeEnum.MONTH.getValue().equals(checkStandard.getPeriodType())) {
+            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.MONTHS);
+        }
+        if (CheckPlanPeriodTypeEnum.SEASON.getValue().equals(checkStandard.getPeriodType())) {
+            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod() * 3, ChronoUnit.MONTHS);
+        }
+        if (CheckPlanPeriodTypeEnum.YEAR.getValue().equals(checkStandard.getPeriodType())) {
+            endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.YEARS);
+        }
+        endDate = DateUtils.plus(endDate, -1, ChronoUnit.DAYS);
+        checkJob.setEndTime(LocalDateTime.of(endDate, LocalTime.of(18, 0)));
+
+    }
 }

+ 0 - 1
platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

@@ -139,7 +139,6 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         RepairApplicationForm model = mapper.selectById(id);
         RepairApplicationFormVO vo = new RepairApplicationFormVO();
         BeanUtil.copyProperties(model, vo);
-
         Weekend<SysFile> weekend = new Weekend<>(SysFile.class);
         weekend.weekendCriteria().andEqualTo(SysFile::getTargetId, vo.getId());
         List<SysFile> sysFiles = sysFileMapper.selectByExample(weekend);

+ 71 - 12
platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartInfoServiceImpl.java

@@ -1,14 +1,15 @@
 package com.platform.service.sqarepartmanage.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.constant.CommonConstants;
 import com.platform.common.exception.BusinessException;
-import com.platform.common.util.BeanConverterUtil;
-import com.platform.common.util.IdGeneratorUtils;
-import com.platform.common.util.StringUtils;
+import com.platform.common.model.UserInfo;
+import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
+import com.platform.dao.dto.repair.RepairApplicationFormDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.entity.sb.SbInfo;
@@ -18,12 +19,15 @@ import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.sqarepartmanage.SpareType;
 import com.platform.dao.entity.store.SpareStore;
 import com.platform.dao.entity.upms.SysDept;
+import com.platform.dao.entity.upms.SysFile;
 import com.platform.dao.entity.upms.SysUser;
+import com.platform.dao.enums.SysFileTypeEnum;
 import com.platform.dao.mapper.sb.SbModelMapper;
 import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.mapper.sqarepartmanage.SparePartInfoMapper;
 import com.platform.dao.mapper.sqarepartmanage.SpareTypeMapper;
 import com.platform.dao.mapper.store.SpareStoreMapper;
+import com.platform.dao.mapper.upms.SysFileMapper;
 import com.platform.dao.util.CustomExcelImportUtil;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.sb.SbInfoVO;
@@ -62,6 +66,7 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
     private final SbModelSpareBomMapper sbModelSpareBomMapper;
     private final SpareStoreMapper spareStoreMapper;
     private final Environment environment;
+    private final SysFileMapper sysFileMapper;
     @Override
     public int batchDelete(List<String> ids) {
 
@@ -232,6 +237,17 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
                 model.setChildNo(type.getNo());
             }
         }
+        Weekend<SysFile> weekendFile = new Weekend<>(SysFile.class);
+        weekendFile.weekendCriteria().andEqualTo(SysFile::getTargetId, model.getId());
+        List<SysFile> sysFiles = sysFileMapper.selectByExample(weekendFile);
+        List<SysFile> s = ListUtils.newArrayList();
+        List<SysFile> applicationFileList = ListUtils.newArrayList();
+        sysFiles.forEach(item -> {
+            if (item.getType().equals(SysFileTypeEnum.SPARE_IMGS.getValue())) {
+                applicationFileList.add(item);
+            }
+        });
+        model.setApplicationFileList(applicationFileList);
         return model;
     }
 
@@ -241,10 +257,16 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
         // 设置备件的统一编号
         SpareType parentType = spareTypeMapper.selectByPrimaryKey(model.getParentTypeId());
         SpareType middleType = spareTypeMapper.selectByPrimaryKey(model.getMiddleTypeId());
-        String parentTypeNo = parentType.getNo();
-        String middleTypeNo = middleType.getNo();
-        model.setParentNo(parentTypeNo);
-        model.setMiddleNo(middleTypeNo);
+        String parentTypeNo = "";
+        String middleTypeNo = "";
+        if(parentType !=null){
+            parentTypeNo = parentType.getNo();
+            model.setParentNo(parentTypeNo);
+        }
+        if(middleType != null){
+            middleTypeNo = middleType.getNo();
+            model.setMiddleNo(middleTypeNo);
+        }
         String nameNo = model.getNameNo();
         String ggNo = model.getGgNo();
         String childTypeNo = null;
@@ -264,12 +286,12 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
             }
         }
 
-        Weekend<SparePartInfo> weekend = new Weekend<>(SparePartInfo.class);
+       /* Weekend<SparePartInfo> weekend = new Weekend<>(SparePartInfo.class);
         weekend.weekendCriteria().andEqualTo(SparePartInfo::getUniteNo, model.getUniteNo());
         int checkInfo = mapper.selectCountByExample(weekend);
         if(checkInfo > 0){
             throw new BusinessException("编码已存在,请重新设置名称编码或者规格编码," + model.getUniteNo());
-        }
+        }*/
         model.setId(IdGeneratorUtils.getObjectId());
         // 保存二维码
         String path = CommonConstants.RESOURCE_PREFIX + "/png/" + DateUtil.formatDate(new Date()) + "/" + IdGeneratorUtils.getObjectId() + "/";
@@ -278,6 +300,25 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
         String codePath = path + model.getId() + ".png";
         model.setQrCode(codePath);
         CodeFileUtils.uploadFileECode(model.getId(), rootPath, filePath, model.getId() + ".png");
+
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        LocalDateTime time = LocalDateTime.now();
+        // 如果由sbId,则要创建bom
+        if(StringUtils.isNotBlank(model.getSbId())){
+            SbModelSpareBom bom = new SbModelSpareBom();
+            bom.setId(IdGeneratorUtils.getObjectId());
+            bom.setSpareId(model.getId());
+            bom.setNum(new BigDecimal(1));
+            bom.setCreatedTime(time);
+            bom.setCreatedUserId(userInfo.getUserId());
+            bom.setPeriod(1);
+            bom.setPeriodType(1);
+            bom.setSbId(model.getSbId());
+            bom.setUpdateTime(time);
+            bom.setUpdateUserId(userInfo.getUserId());
+            sbModelSpareBomMapper.insert(bom);
+        }
+        this.saveFile(model);
         return super.saveModelHaveCreateInfo(model);
     }
 
@@ -317,15 +358,33 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
             }
         }
 
-        Weekend<SparePartInfo> weekend = new Weekend<>(SparePartInfo.class);
+       /* Weekend<SparePartInfo> weekend = new Weekend<>(SparePartInfo.class);
         weekend.weekendCriteria().andEqualTo(SparePartInfo::getUniteNo, model.getUniteNo());
         SparePartInfo checkInfo = mapper.selectOneByExample(weekend);
         if(checkInfo != null && !checkInfo.getId().equals(model.getId())){
             throw new BusinessException("编码已存在,请重新设置名称编码或者规格编码," + model.getUniteNo());
-        }
+        }*/
+        this.saveFile(model);
         super.modModelByDTO(model);
     }
-
+    private void saveFile(SparePartInfoDTO model) {
+        Weekend<SysFile> weekend = new Weekend<>(SysFile.class);
+        weekend.weekendCriteria().andEqualTo(SysFile::getTargetId, model.getId());
+        sysFileMapper.deleteByExample(weekend);
+        List<SysFile> applicationFileList = model.getApplicationFileList();
+        List<SysFile> list = ListUtils.newArrayList();
+        if (CollectionUtil.isNotEmpty(applicationFileList)) {
+            applicationFileList.forEach(item -> {
+                item.setType(SysFileTypeEnum.SPARE_IMGS.getValue());
+                item.setId(IdGeneratorUtils.getObjectId());
+                item.setTargetId(model.getId());
+                list.add(item);
+            });
+        }
+        if (CollectionUtil.isNotEmpty(list)) {
+            sysFileMapper.insertListforComplex(list);
+        }
+    }
     /**
      * 导入备件基础信息
      *