package com.yuanchu.mom.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.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.InstructionDto;
import com.yuanchu.mom.dto.OperationInstructionDto;
import com.yuanchu.mom.mapper.InstructionMapper;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.Instruction;
import com.yuanchu.mom.service.InstructionService;
import com.yuanchu.mom.service.OperationInstructionService;
import com.yuanchu.mom.utils.QueryWrappers;
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 InstructionServiceImpl extends ServiceImpl implements InstructionService {
@Autowired
private OperationInstructionService operationInstructionService;
@Autowired
private NumberGenerator numberGenerator;
@Autowired
private GetLook getLook;
@Override
public IPage pageByPageQueryOfHomeworkInstructions(Page page, OperationInstructionDto operationInstructionDto) {
return baseMapper.pageByPageQueryOfHomeworkInstructions(page, QueryWrappers.queryWrappers(operationInstructionDto));
}
@Override
public void newHomeworkGuidebookAdded(InstructionDto instructionDto) {
Map map1 = getLook.selectPowerByMethodAndUserId(null);
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, Instruction::getApplicationNumber);
instructionDto.setApplicationNumber(processNumber);
}
saveOrUpdate(instructionDto);
if (ObjectUtils.isNotEmpty(instructionDto.getFeTempHumRecordList())) {
instructionDto.getFeTempHumRecordList().forEach(i -> {
i.setInstructionId(instructionDto.getId());
i.setUploader(map1.get("userId"));
i.setUpdateTime(LocalDateTime.now());
});
operationInstructionService.saveOrUpdateBatch(instructionDto.getFeTempHumRecordList());
}
}
}