package com.qianwen.smartman.modules.tpm.service.impl;
|
|
import java.time.LocalDate;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.qianwen.core.excel.util.ExcelUtil;
|
import com.qianwen.core.log.exception.ServiceException;
|
import com.qianwen.core.mp.service.impl.BladeServiceImpl;
|
import com.qianwen.core.mp.support.Condition;
|
import com.qianwen.core.mp.support.Query;
|
import com.qianwen.core.oss.model.BladeFile;
|
import com.qianwen.core.tool.utils.DateUtil;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.common.utils.MessageUtils;
|
import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder;
|
import com.qianwen.smartman.modules.system.service.ICodeGeneratorService;
|
import com.qianwen.smartman.modules.tpm.convert.CheckRecordConvert;
|
import com.qianwen.smartman.modules.tpm.dto.CheckRecordFileDTO;
|
import com.qianwen.smartman.modules.tpm.dto.CheckRecordItemDTO;
|
import com.qianwen.smartman.modules.tpm.entity.CheckRecord;
|
import com.qianwen.smartman.modules.tpm.entity.CheckRecordFile;
|
import com.qianwen.smartman.modules.tpm.entity.CheckRecordItem;
|
import com.qianwen.smartman.modules.tpm.enums.FileTypeEnum;
|
import com.qianwen.smartman.modules.tpm.enums.MetaTypeEnum;
|
import com.qianwen.smartman.modules.tpm.mapper.CheckRecordMapper;
|
import com.qianwen.smartman.modules.tpm.service.ICheckRecordFileService;
|
import com.qianwen.smartman.modules.tpm.service.ICheckRecordItemService;
|
import com.qianwen.smartman.modules.tpm.service.ICheckRecordService;
|
import com.qianwen.smartman.modules.tpm.vo.CheckRecordDetailVO;
|
import com.qianwen.smartman.modules.tpm.vo.CheckRecordItemVO;
|
import com.qianwen.smartman.modules.tpm.vo.CheckRecordSearchVO;
|
import com.qianwen.smartman.modules.tpm.vo.CheckRecordSubmitVO;
|
import com.qianwen.smartman.modules.tpm.vo.CheckRecordTodayVO;
|
import com.qianwen.smartman.modules.tpm.vo.CheckRecordUpdateVO;
|
import com.qianwen.smartman.modules.tpm.vo.CheckRecordVO;
|
import com.qianwen.smartman.modules.tpm.vo.RecordFilesVO;
|
import com.qianwen.smartman.modules.tpm.vo.excel.CheckRecordExcel;
|
|
@Service
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/tpm/service/impl/CheckRecordServiceImpl.class */
|
public class CheckRecordServiceImpl extends BladeServiceImpl<CheckRecordMapper, CheckRecord> implements ICheckRecordService {
|
private static final Logger log = LoggerFactory.getLogger(CheckRecordServiceImpl.class);
|
private final ICheckRecordItemService itemService;
|
private final ICheckRecordFileService fileService;
|
private final CheckRecordMapper checkRecordMapper;
|
private final ICodeGeneratorService codeGeneratorService;
|
private final OssBuilder ossBuilder;
|
|
public CheckRecordServiceImpl(final ICheckRecordItemService itemService, final ICheckRecordFileService fileService, final CheckRecordMapper checkRecordMapper, final ICodeGeneratorService codeGeneratorService, final OssBuilder ossBuilder) {
|
this.itemService = itemService;
|
this.fileService = fileService;
|
this.checkRecordMapper = checkRecordMapper;
|
this.codeGeneratorService = codeGeneratorService;
|
this.ossBuilder = ossBuilder;
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
@Transactional(rollbackFor = {Exception.class})
|
public CheckRecord createCheckRecord(CheckRecordSubmitVO vo) {
|
CheckRecord checkRecord = CheckRecordConvert.INSTANCE.convert(vo);
|
if (Func.isBlank(vo.getCheckCode())) {
|
String code = this.codeGeneratorService.getGeneratorCode(vo, MetaTypeEnum.CHECK_RECORD.getCode());
|
log.info("点检记录编码规则生成的code:{}", code + " ," + code.length());
|
checkRecord.setCheckCode(code);
|
}
|
String checkCode = checkRecord.getCheckCode();
|
validCheckCode(checkCode);
|
save(checkRecord);
|
List<CheckRecordItemDTO> itemList = vo.getItemList();
|
if (Func.isEmpty(itemList)) {
|
throw new ServiceException(MessageUtils.message("cps.tpm.check.item.can.not.empty", new Object[0]));
|
}
|
List<CheckRecordItem> items = itemList.stream().map(c -> {
|
return CheckRecordItem.builder().checkRecordId(checkRecord.getId()).checkValue(c.getCheckValue()).itemId(c.getItemId()).name(c.getName()).valueType(c.getValueType()).requirement(c.getRequirement()).standardValue(c.getStandardValue()).build();
|
}).collect(Collectors.toList());
|
this.itemService.saveBatch(items);
|
List<CheckRecordFileDTO> pictureList = vo.getPictureList();
|
if (Func.isNotEmpty(pictureList)) {
|
List<CheckRecordFile> files = pictureList.stream().map(c2 -> {
|
return CheckRecordFile.builder().checkRecordId(checkRecord.getId()).fileName(c2.getFileName()).objectKey(c2.getObjectKey()).link(c2.getLink()).contentType(c2.getContentType()).fileSize(c2.getFileSize()).uploadTime(c2.getUploadTime()).fileType(FileTypeEnum.PICTURE.getType()).build();
|
}).collect(Collectors.toList());
|
this.fileService.saveBatch(files);
|
}
|
List<CheckRecordFileDTO> fileList = vo.getFileList();
|
if (Func.isNotEmpty(fileList)) {
|
List<CheckRecordFile> files2 = fileList.stream().map(c3 -> {
|
return CheckRecordFile.builder().checkRecordId(checkRecord.getId()).fileName(c3.getFileName()).objectKey(c3.getObjectKey()).link(c3.getLink()).contentType(c3.getContentType()).fileSize(c3.getFileSize()).uploadTime(c3.getUploadTime()).fileType(FileTypeEnum.FILE.getType()).build();
|
}).collect(Collectors.toList());
|
this.fileService.saveBatch(files2);
|
}
|
return checkRecord;
|
}
|
|
private void validCheckCode(String code) {
|
long count = count(Wrappers.<CheckRecord>lambdaQuery().eq(CheckRecord::getCheckCode, code));
|
if (count > 0) {
|
throw new ServiceException(MessageUtils.message("cps.tpm.check.record.code.exists", new Object[0]));
|
}
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
public IPage<CheckRecordVO> pageCheckRecord(Query query, String keyWords, String deviceTypeId) {
|
return this.baseMapper.pageCheckRecord(Condition.getPage(query), keyWords, deviceTypeId);
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
@Transactional(rollbackFor = {Exception.class})
|
public boolean deleteCheckRecord(List<String> ids) {
|
if (Func.isNotEmpty(ids)) {
|
removeByIds(Func.toLongList(ids));
|
|
this.itemService.remove(Wrappers.<CheckRecordItem>lambdaQuery().in(CheckRecordItem::getCheckRecordId, ids));
|
this.fileService.remove(Wrappers.<CheckRecordFile>lambdaQuery().in(CheckRecordFile::getCheckRecordId, ids));
|
/*
|
this.itemService.remove((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
|
return v0.getCheckRecordId();
|
}, ids));
|
this.fileService.remove((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
|
return v0.getCheckRecordId();
|
}, ids));*/
|
return true;
|
}
|
return true;
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
@Transactional(rollbackFor = {Exception.class})
|
public boolean updateCheckRecord(CheckRecordUpdateVO vo) {
|
Long id = vo.getId();
|
Long checkProjectId = vo.getCheckProjectId();
|
Integer checkResult = vo.getCheckResult();
|
String remark = vo.getRemark();
|
update(Wrappers.<CheckRecord>lambdaUpdate()
|
.set(Func.isNotEmpty(checkProjectId), CheckRecord::getCheckProjectId, checkProjectId)
|
.set(Func.isNotEmpty(vo.getCheckProjectCode()), CheckRecord::getCheckProjectCode, vo.getCheckProjectCode())
|
.set(Func.isNotEmpty(vo.getCheckProjectName()), CheckRecord::getCheckProjectName, vo.getCheckProjectName())
|
.set(Func.isNotEmpty(checkResult), CheckRecord::getCheckResult, checkResult)
|
.set(CheckRecord::getRemark, remark)
|
.eq(CheckRecord::getId, id));
|
/*
|
update((Wrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().set(Func.isNotEmpty(checkProjectId), (v0) -> {
|
return v0.getCheckProjectId();
|
}, checkProjectId)).set(Func.isNotEmpty(vo.getCheckProjectCode()), (v0) -> {
|
return v0.getCheckProjectCode();
|
}, vo.getCheckProjectCode())).set(Func.isNotEmpty(vo.getCheckProjectName()), (v0) -> {
|
return v0.getCheckProjectName();
|
}, vo.getCheckProjectName())).set(Func.isNotEmpty(checkResult), (v0) -> {
|
return v0.getCheckResult();
|
}, checkResult)).set((v0) -> {
|
return v0.getRemark();
|
}, remark)).eq((v0) -> {
|
return v0.getId();
|
}, id));*/
|
List<CheckRecordItemDTO> itemList = vo.getItemList();
|
if (Func.isNotEmpty(checkProjectId)) {
|
this.itemService.remove(Wrappers.<CheckRecordItem>lambdaQuery().eq(CheckRecordItem::getCheckRecordId, id));
|
|
if (Func.isNotEmpty(itemList)) {
|
List<CheckRecordItem> items = itemList.stream().map(c -> {
|
return CheckRecordItem.builder().checkRecordId(id).itemId(c.getItemId()).checkValue(c.getCheckValue()).name(c.getName()).valueType(c.getValueType()).requirement(c.getRequirement()).standardValue(c.getStandardValue()).build();
|
}).collect(Collectors.toList());
|
this.itemService.saveBatch(items);
|
return true;
|
}
|
return true;
|
}
|
return true;
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
public boolean removeItems(String recordId, List<String> ids) {
|
boolean flag = true;
|
if (Func.isNotEmpty(ids)) {
|
flag = this.itemService.remove(Wrappers.<CheckRecordItem>lambdaQuery()
|
.eq(CheckRecordItem::getCheckRecordId, recordId)
|
.in(CheckRecordItem::getId, ids));
|
/*
|
flag = this.itemService.remove((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getCheckRecordId();
|
}, recordId)).in((v0) -> {
|
return v0.getId();
|
}, ids));
|
*/
|
}
|
return flag;
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
public boolean removeFiles(String recordId, List<String> ids) {
|
boolean flag = true;
|
if (Func.isNotEmpty(ids)) {
|
flag = this.fileService.remove(Wrappers.<CheckRecordFile>lambdaQuery()
|
.eq(CheckRecordFile::getCheckRecordId, recordId)
|
.in(CheckRecordFile::getId, ids));
|
/*
|
flag = this.fileService.remove((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getCheckRecordId();
|
}, recordId)).in((v0) -> {
|
return v0.getId();
|
}, ids));*/
|
}
|
return flag;
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
public boolean addFiles(Long recordId, RecordFilesVO vo) {
|
List<CheckRecordFileDTO> files = vo.getFiles();
|
boolean fileFlag = true;
|
if (Func.isNotEmpty(files)) {
|
List<CheckRecordFile> recordFiles = files.stream().map(c -> {
|
return CheckRecordFile.builder().checkRecordId(recordId).fileName(c.getFileName()).link(c.getLink()).objectKey(c.getObjectKey()).contentType(c.getContentType()).fileSize(c.getFileSize()).uploadTime(c.getUploadTime()).fileType(FileTypeEnum.FILE.getType()).build();
|
}).collect(Collectors.toList());
|
fileFlag = this.fileService.saveBatch(recordFiles);
|
}
|
List<CheckRecordFileDTO> pictures = vo.getPictures();
|
boolean pictureFlag = true;
|
if (Func.isNotEmpty(pictures)) {
|
List<CheckRecordFile> recordFiles2 = pictures.stream().map(c2 -> {
|
return CheckRecordFile.builder().checkRecordId(recordId).fileName(c2.getFileName()).link(c2.getLink()).objectKey(c2.getObjectKey()).contentType(c2.getContentType()).fileSize(c2.getFileSize()).uploadTime(c2.getUploadTime()).fileType(FileTypeEnum.PICTURE.getType()).build();
|
}).collect(Collectors.toList());
|
pictureFlag = this.fileService.saveBatch(recordFiles2);
|
}
|
return fileFlag && pictureFlag;
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
public IPage<CheckRecordTodayVO> getTodayCheckRecords(CheckRecordSearchVO checkRecordSearchVO, Query query) {
|
IPage<CheckRecordTodayVO> page = Condition.getPage(query);
|
List<CheckRecordTodayVO> todayPage = this.checkRecordMapper.getTodayPage(checkRecordSearchVO, page);
|
if (Func.isNotEmpty(todayPage)) {
|
return page.setRecords(todayPage);
|
}
|
return page.setRecords(new ArrayList<>());
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
public Long checkRecordStatisticsNum() {
|
LocalDate localDate = LocalDate.now();
|
Date now = DateUtil.toDate(localDate);
|
Date plusDays = DateUtil.plusDays(now, 1L);
|
return Long.valueOf(count(Wrappers.<CheckRecord>lambdaQuery().between(CheckRecord::getCreateTime, now, plusDays)));
|
/*
|
return Long.valueOf(count((Wrapper) Wrappers.lambdaQuery().between((v0) -> {
|
return v0.getCreateTime();
|
}, now, plusDays)));*/
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
public CheckRecordDetailVO detail(String id) {
|
List<CheckRecordFile> files = this.fileService.list(Wrappers.<CheckRecordFile>lambdaQuery().eq(CheckRecordFile::getCheckRecordId, id).eq(CheckRecordFile::getFileType, FileTypeEnum.FILE.getType()));
|
List<CheckRecordFile> pictures = this.fileService.list(Wrappers.<CheckRecordFile>lambdaQuery().eq(CheckRecordFile::getCheckRecordId, id).eq(CheckRecordFile::getFileType, FileTypeEnum.PICTURE.getType()));
|
|
/*
|
List<CheckRecordFile> files = this.fileService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getCheckRecordId();
|
}, id)).eq((v0) -> {
|
return v0.getFileType();
|
}, FileTypeEnum.FILE.getType()));
|
List<CheckRecordFile> pictures = this.fileService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getCheckRecordId();
|
}, id)).eq((v0) -> {
|
return v0.getFileType();
|
}, FileTypeEnum.PICTURE.getType()));*/
|
List<CheckRecordItemVO> items = this.itemService.listItem(id);
|
return CheckRecordDetailVO.builder().files(CheckRecordConvert.INSTANCE.convertFile(files)).pictures(CheckRecordConvert.INSTANCE.convertFile(pictures)).items(items).build();
|
}
|
|
@Override // org.springblade.modules.tpm.service.ICheckRecordService
|
public BladeFile exportCheckRecord(String keyWords, String deviceTypeId) {
|
List<CheckRecordVO> list = this.baseMapper.exportCheckRecord(keyWords, deviceTypeId);
|
String fileName = String.format("%s-%s.xlsx", "点检记录数据", DateUtil.time());
|
List<CheckRecordExcel> result = CheckRecordConvert.INSTANCE.convertExcel(list);
|
MultipartFile multipartFile = ExcelUtil.exportToMultipartFile(fileName, "点检记录数据表", result, CheckRecordExcel.class);
|
return this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile);
|
}
|
}
|