|
@@ -2,12 +2,16 @@ package com.platform.service.check.impl;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import com.platform.common.bean.AbstractPageResultBean;
|
|
import com.platform.common.bean.AbstractPageResultBean;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
+import com.platform.common.exception.BusinessException;
|
|
|
|
+import com.platform.common.util.BeanConverterUtil;
|
|
import com.platform.common.util.DateUtils;
|
|
import com.platform.common.util.DateUtils;
|
|
import com.platform.common.util.IdGeneratorUtils;
|
|
import com.platform.common.util.IdGeneratorUtils;
|
|
import com.platform.common.util.ListUtils;
|
|
import com.platform.common.util.ListUtils;
|
|
import com.platform.dao.bean.MyPage;
|
|
import com.platform.dao.bean.MyPage;
|
|
|
|
+import com.platform.dao.dto.check.CheckJobDTO;
|
|
import com.platform.dao.dto.check.CheckStandardDTO;
|
|
import com.platform.dao.dto.check.CheckStandardDTO;
|
|
import com.platform.dao.dto.check.CheckStandardParamDTO;
|
|
import com.platform.dao.dto.check.CheckStandardParamDTO;
|
|
|
|
+import com.platform.dao.dto.part.PartInfoDTO;
|
|
import com.platform.dao.dto.sb.SbInfoDTO;
|
|
import com.platform.dao.dto.sb.SbInfoDTO;
|
|
import com.platform.dao.entity.check.CheckJob;
|
|
import com.platform.dao.entity.check.CheckJob;
|
|
import com.platform.dao.entity.check.CheckProjectStandardRelation;
|
|
import com.platform.dao.entity.check.CheckProjectStandardRelation;
|
|
@@ -15,7 +19,9 @@ import com.platform.dao.entity.check.CheckStandard;
|
|
import com.platform.dao.entity.check.CheckStandardParam;
|
|
import com.platform.dao.entity.check.CheckStandardParam;
|
|
import com.platform.dao.entity.maintain.MaintainProjectStandardRelation;
|
|
import com.platform.dao.entity.maintain.MaintainProjectStandardRelation;
|
|
import com.platform.dao.entity.maintain.MaintainStandardParam;
|
|
import com.platform.dao.entity.maintain.MaintainStandardParam;
|
|
|
|
+import com.platform.dao.entity.part.PartInfo;
|
|
import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
|
|
import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
|
|
|
|
+import com.platform.dao.entity.store.InStoreDetail;
|
|
import com.platform.dao.entity.upms.SysFile;
|
|
import com.platform.dao.entity.upms.SysFile;
|
|
import com.platform.dao.enums.CheckJobStatusEnum;
|
|
import com.platform.dao.enums.CheckJobStatusEnum;
|
|
import com.platform.dao.enums.CheckPlanPeriodTypeEnum;
|
|
import com.platform.dao.enums.CheckPlanPeriodTypeEnum;
|
|
@@ -25,10 +31,12 @@ import com.platform.dao.mapper.check.CheckProjectStandardRelationMapper;
|
|
import com.platform.dao.mapper.check.CheckStandardMapper;
|
|
import com.platform.dao.mapper.check.CheckStandardMapper;
|
|
import com.platform.dao.mapper.check.CheckStandardParamMapper;
|
|
import com.platform.dao.mapper.check.CheckStandardParamMapper;
|
|
import com.platform.dao.mapper.maintain.MaintainProjectStandardRelationMapper;
|
|
import com.platform.dao.mapper.maintain.MaintainProjectStandardRelationMapper;
|
|
|
|
+import com.platform.dao.mapper.part.PartInfoMapper;
|
|
import com.platform.dao.mapper.upms.SysFileMapper;
|
|
import com.platform.dao.mapper.upms.SysFileMapper;
|
|
import com.platform.dao.vo.query.check.CheckStandardVO;
|
|
import com.platform.dao.vo.query.check.CheckStandardVO;
|
|
import com.platform.service.check.CheckStandardParamService;
|
|
import com.platform.service.check.CheckStandardParamService;
|
|
import com.platform.service.check.CheckStandardService;
|
|
import com.platform.service.check.CheckStandardService;
|
|
|
|
+import com.platform.service.part.PartInfoService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import com.platform.service.base.impl.BaseServiceImpl;
|
|
import com.platform.service.base.impl.BaseServiceImpl;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -40,7 +48,9 @@ import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.time.LocalTime;
|
|
import java.time.temporal.ChronoUnit;
|
|
import java.time.temporal.ChronoUnit;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description 点检标准 service 实现类
|
|
* @Description 点检标准 service 实现类
|
|
@@ -55,6 +65,7 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
|
|
private CheckProjectStandardRelationMapper relationMapper;
|
|
private CheckProjectStandardRelationMapper relationMapper;
|
|
private CheckStandardParamMapper paramMapper;
|
|
private CheckStandardParamMapper paramMapper;
|
|
private CheckJobMapper checkJobMapper;
|
|
private CheckJobMapper checkJobMapper;
|
|
|
|
+ private PartInfoService partInfoService;
|
|
private final SysFileMapper sysFileMapper;
|
|
private final SysFileMapper sysFileMapper;
|
|
@Override
|
|
@Override
|
|
public boolean cascadingDeleteByKey(String id) {
|
|
public boolean cascadingDeleteByKey(String id) {
|
|
@@ -105,6 +116,13 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public CheckStandard saveModelByDTO(CheckStandardDTO model) {
|
|
public CheckStandard saveModelByDTO(CheckStandardDTO model) {
|
|
|
|
+ Weekend<CheckStandard> weekendExsit = new Weekend<>(CheckStandard.class);
|
|
|
|
+ weekendExsit.weekendCriteria().andEqualTo(CheckStandard::getSbId, model.getSbId()).andEqualTo(CheckStandard::getName, model.getName());
|
|
|
|
+ Integer exsitCount = mapper.selectCountByExample(weekendExsit);
|
|
|
|
+ if(exsitCount>0){
|
|
|
|
+ throw new BusinessException("名称已存在,请重新命名");
|
|
|
|
+ }
|
|
|
|
+
|
|
// 设置编码
|
|
// 设置编码
|
|
Weekend<CheckStandard> weekend = new Weekend<>(CheckStandard.class);
|
|
Weekend<CheckStandard> weekend = new Weekend<>(CheckStandard.class);
|
|
weekend.weekendCriteria().andIsNotNull(CheckStandard::getId);
|
|
weekend.weekendCriteria().andIsNotNull(CheckStandard::getId);
|
|
@@ -124,6 +142,13 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public void modModelByDTO(CheckStandardDTO model) {
|
|
public void modModelByDTO(CheckStandardDTO model) {
|
|
|
|
+ Weekend<CheckStandard> weekendExsit = new Weekend<>(CheckStandard.class);
|
|
|
|
+ weekendExsit.weekendCriteria().andEqualTo(CheckStandard::getSbId, model.getSbId()).andEqualTo(CheckStandard::getName, model.getName());
|
|
|
|
+ Integer exsitCount = mapper.selectCountByExample(weekendExsit);
|
|
|
|
+ if(exsitCount>0){
|
|
|
|
+ throw new BusinessException("名称已存在,请重新命名");
|
|
|
|
+ }
|
|
|
|
+
|
|
super.modModelByDTO(model);
|
|
super.modModelByDTO(model);
|
|
// 删掉参数后插入
|
|
// 删掉参数后插入
|
|
Weekend<CheckStandardParam> weekend = new Weekend<>(CheckStandardParam.class);
|
|
Weekend<CheckStandardParam> weekend = new Weekend<>(CheckStandardParam.class);
|
|
@@ -194,14 +219,19 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public void generate(String id) {
|
|
|
|
|
|
+ public void generate(CheckJobDTO checkJobDTO) {
|
|
LocalDateTime currentDate = LocalDateTime.now();
|
|
LocalDateTime currentDate = LocalDateTime.now();
|
|
- CheckStandard standard = super.getModelById(id);
|
|
|
|
|
|
+ CheckStandard standard = super.getModelById(checkJobDTO.getStandardId());
|
|
CheckJob checkJob = new CheckJob();
|
|
CheckJob checkJob = new CheckJob();
|
|
checkJob.setSbId(standard.getSbId());
|
|
checkJob.setSbId(standard.getSbId());
|
|
checkJob.setStatus(CheckJobStatusEnum.NOT_EXECUTE.getValue());
|
|
checkJob.setStatus(CheckJobStatusEnum.NOT_EXECUTE.getValue());
|
|
- // 计算计划开始时间和结束时间
|
|
|
|
- calcTime(checkJob, currentDate, standard);
|
|
|
|
|
|
+ if(checkJobDTO.getStartTime() == null){
|
|
|
|
+ // 计算计划开始时间和结束时间
|
|
|
|
+ calcTime(checkJob, currentDate, standard);
|
|
|
|
+ } else {
|
|
|
|
+ // 计算计划开始时间和结束时间
|
|
|
|
+ calcTime(checkJob, checkJobDTO.getStartTime(), standard);
|
|
|
|
+ }
|
|
checkJob.setCreatedTime(currentDate);
|
|
checkJob.setCreatedTime(currentDate);
|
|
checkJob.setUpdateTime(currentDate);
|
|
checkJob.setUpdateTime(currentDate);
|
|
checkJob.setUpdateUserId(standard.getCheckUserId());
|
|
checkJob.setUpdateUserId(standard.getCheckUserId());
|
|
@@ -216,9 +246,75 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
|
|
checkJobMapper.insert(checkJob);
|
|
checkJobMapper.insert(checkJob);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 从一个设备复制保养内容,保养内容是关联到设备的,不会重复,所以不需要判断重复,而备件需要判断是否重复了
|
|
|
|
+ *
|
|
|
|
+ * 注意:保养是关联的部位,如果设备还没有部位,则同时新建部位。如果部位名称已经存在了,则不新增。
|
|
|
|
+ *
|
|
|
|
+ * @param model
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public String copyFormSb(CheckStandardDTO model) {
|
|
|
|
+ PartInfoDTO partInfoDTO = new PartInfoDTO();
|
|
|
|
+ partInfoDTO.setSbId(model.getSbId());
|
|
|
|
+ partInfoDTO.setCopySbId(model.getCopySbId());
|
|
|
|
+ String addPartResult = partInfoService.copyFormSb(partInfoDTO);
|
|
|
|
+
|
|
|
|
+ CheckStandardDTO record = new CheckStandardDTO();
|
|
|
|
+ record.setSbId(model.getSbId());
|
|
|
|
+ List<CheckStandardVO> list = mapper.selectList(record);
|
|
|
|
+
|
|
|
|
+ CheckStandardDTO copyRecord = new CheckStandardDTO();
|
|
|
|
+ copyRecord.setSbId(model.getCopySbId());
|
|
|
|
+ List<CheckStandardVO> copyList = mapper.selectList(copyRecord);
|
|
|
|
+ List<CheckStandardVO> addList = new ArrayList<CheckStandardVO>();
|
|
|
|
+
|
|
|
|
+ // 复制保养内容,刨除已经存在的:根据名称判断
|
|
|
|
+ for(CheckStandardVO copyCheckStandardVO:copyList){
|
|
|
|
+ boolean find = false;
|
|
|
|
+ for(CheckStandardVO checkStandardVO:list){
|
|
|
|
+ if(copyCheckStandardVO.getName().equals(checkStandardVO.getName())){
|
|
|
|
+ find = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(!find){
|
|
|
|
+ CheckStandardVO checkStandardVO = copyCheckStandardVO;
|
|
|
|
+ checkStandardVO.setId(IdGeneratorUtils.getObjectId());
|
|
|
|
+ checkStandardVO.setSbId(model.getSbId());
|
|
|
|
+ addList.add(checkStandardVO);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 设置新增保养内容的部位,根据部位名称进行判断
|
|
|
|
+ PartInfoDTO partDTO = new PartInfoDTO();
|
|
|
|
+ partDTO.setSbId(model.getSbId());
|
|
|
|
+ List<PartInfo> partList = partInfoService.getModelListByDTO(partDTO);
|
|
|
|
+
|
|
|
|
+ PartInfoDTO copyDTO = new PartInfoDTO();
|
|
|
|
+ copyDTO.setSbId(model.getCopySbId());
|
|
|
|
+ List<PartInfo> copyPartList = partInfoService.getModelListByDTO(copyDTO);
|
|
|
|
+ if(CollectionUtil.isNotEmpty(addList)){
|
|
|
|
+ for(CheckStandardVO copyCheckStandardVO:addList){
|
|
|
|
+ for(PartInfo copyPart:copyPartList){
|
|
|
|
+ if(copyPart.getId().equals(copyCheckStandardVO.getPart())){
|
|
|
|
+ for(PartInfo part:partList){
|
|
|
|
+ if(part.getName().equals(copyPart.getName())){
|
|
|
|
+ copyCheckStandardVO.setPart(part.getId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ mapper.insertListforComplex(BeanConverterUtil.copyListProperties(addList, CheckStandard.class));
|
|
|
|
+ }
|
|
|
|
+ return addPartResult + ",复制保养内容:" + addList.size() + "个";
|
|
|
|
+ }
|
|
|
|
+
|
|
private void calcTime(CheckJob checkJob, LocalDateTime currentDate, CheckStandard checkStandard) {
|
|
private void calcTime(CheckJob checkJob, LocalDateTime currentDate, CheckStandard checkStandard) {
|
|
LocalDate endDate = null;
|
|
LocalDate endDate = null;
|
|
- checkJob.setStartTime(currentDate);
|
|
|
|
|
|
+ checkJob.setStartTime(currentDate.toLocalDate());
|
|
if (CheckPlanPeriodTypeEnum.DAY.getValue().equals(checkStandard.getPeriodType())) {
|
|
if (CheckPlanPeriodTypeEnum.DAY.getValue().equals(checkStandard.getPeriodType())) {
|
|
endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.DAYS);
|
|
endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.DAYS);
|
|
}
|
|
}
|
|
@@ -235,7 +331,7 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
|
|
endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.YEARS);
|
|
endDate = DateUtils.plus(currentDate.toLocalDate(), checkStandard.getPeriod(), ChronoUnit.YEARS);
|
|
}
|
|
}
|
|
endDate = DateUtils.plus(endDate, -1, ChronoUnit.DAYS);
|
|
endDate = DateUtils.plus(endDate, -1, ChronoUnit.DAYS);
|
|
- checkJob.setEndTime(LocalDateTime.of(endDate, LocalTime.of(18, 0)));
|
|
|
|
|
|
+ checkJob.setEndTime(endDate);
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|