package com.ruoyi.device.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.numgen.NumberGenerator;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.device.dto.DeviceInstructionDto;
import com.ruoyi.device.dto.DeviceOperationInstructionDto;
import com.ruoyi.device.mapper.InstructionMapper;
import com.ruoyi.device.pojo.DeviceInstruction;
import com.ruoyi.device.service.DeviceInstructionService;
import com.ruoyi.device.service.DeviceOperationInstructionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Locale;
import java.util.Map;
/**
*
* 作业指导书添加受控文件表 服务实现类
*
*
* @author
* @since 2024-12-04 10:29:18
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class DeviceInstructionServiceImpl extends ServiceImpl implements DeviceInstructionService {
@Autowired
private DeviceOperationInstructionService operationInstructionService;
@Autowired
private NumberGenerator numberGenerator;
@Override
public IPage pageByPageQueryOfHomeworkInstructions(Page page, DeviceOperationInstructionDto operationInstructionDto) {
return baseMapper.pageByPageQueryOfHomeworkInstructions(page, QueryWrappers.queryWrappers(operationInstructionDto));
}
@Override
public void newHomeworkGuidebookAdded(DeviceInstructionDto instructionDto) {
if (ObjectUtils.isEmpty(instructionDto.getApplicationNumber())) {
String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
String day = new SimpleDateFormat("dd", Locale.CHINESE).format(new Date());
String processNumber = numberGenerator.generateNumberWithPrefix(3, "WJSK" + year + month + day, DeviceInstruction::getApplicationNumber);
instructionDto.setApplicationNumber(processNumber);
}
saveOrUpdate(instructionDto);
if (ObjectUtils.isNotEmpty(instructionDto.getFeTempHumRecordList())) {
instructionDto.getFeTempHumRecordList().forEach(i -> {
i.setInstructionId(instructionDto.getId());
i.setUploader(SecurityUtils.getUserId().intValue());
i.setUpdateTime(LocalDateTime.now());
});
operationInstructionService.saveOrUpdateBatch(instructionDto.getFeTempHumRecordList());
}
}
}