package com.chinaztt.mes.production.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.chinaztt.mes.common.numgen.NumberGenerator; import com.chinaztt.mes.production.dto.HandymanTemplateDTO; import com.chinaztt.mes.production.entity.HandymanTemplate; import com.chinaztt.mes.production.entity.HandymanType; import com.chinaztt.mes.production.mapper.ArtificialInformationRelationMapper; import com.chinaztt.mes.production.mapper.HandymanTemplateMapper; import com.chinaztt.mes.production.service.HandymanTemplateService; import io.micrometer.core.instrument.util.StringUtils; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; /** * 人工模板 * * @author cxf * @date 2021-02-04 14:04:20 */ @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) public class HandymanTemplateServiceImpl extends ServiceImpl implements HandymanTemplateService { private NumberGenerator handymanTemplateNumberGenerator; @Override public boolean save(HandymanTemplate handymanTemplate) { checkTemplateNo(handymanTemplate); return SqlHelper.retBool(baseMapper.insert(handymanTemplate)); } @Override public boolean updateById(HandymanTemplate handymanTemplate) { checkTemplateNo(handymanTemplate); return SqlHelper.retBool(baseMapper.updateById(handymanTemplate)); } private void checkTemplateNo(HandymanTemplate handymanTemplate) { if (StringUtils.isBlank(handymanTemplate.getTemplateNo())) { // 1. 自动生成人工编号 handymanTemplate.setTemplateNo(handymanTemplateNumberGenerator.generateNumberWithPrefix(HandymanTemplate.DIGIT, HandymanTemplate.PREFIX + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATE_PATTERN) + "-", HandymanTemplate::getTemplateNo)); } else { // 2.判断是否重复 List repeatNumbers = baseMapper.selectList(Wrappers.query().lambda().eq(HandymanTemplate::getTemplateNo, handymanTemplate.getTemplateNo()).ne(HandymanTemplate::getId, handymanTemplate.getId())); if (CollectionUtil.isNotEmpty(repeatNumbers)) { throw new RuntimeException("编号重复"); } } } @Override public List getList(QueryWrapper gen) { return baseMapper.getList(gen); } @Override public List getProductionHandymanTemplateByWorkstation(List workstationIdList) { return baseMapper.getProductionHandymanTemplateByWorkstation(workstationIdList); } }