package org.jeecg.modules.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang.StringUtils; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.system.entity.SysIdentity; import org.jeecg.modules.system.mapper.SysIdentityMapper; import org.jeecg.modules.system.service.SysIdentityService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.List; @Service public class SysIdentityServiceImpl extends ServiceImpl implements SysIdentityService { /*@Autowired @Lazy private SerialNumberMapService serialNumberMapService;*/ /** * 通过type获取mom_sys_identity表实例,实现方法 * * @param type 业务类型 * @return SysIdentity mom_sys_identity表实例对象 */ @Override public SysIdentity findIdentityByType(String type) { String yearValue = DateUtils.date2Str(new SimpleDateFormat("yyyy")); String monthValue = DateUtils.date2Str(new SimpleDateFormat("MM")); SysIdentity identityByType = super.getBaseMapper().findIdentityByType(type, yearValue, monthValue); return identityByType; } @Override @Transactional(rollbackFor = {Exception.class}) public String getNumByTypeAndLength(String type, Integer length) { String currentDate = DateUtils.getCurrentDateStr(); String yearValue = currentDate.split("-")[0]; String monthValue = currentDate.split("-")[1]; List systemIdentityList = lambdaQuery() .eq(SysIdentity::getType, type) .eq(SysIdentity::getYearValue, yearValue) .eq(SysIdentity::getMonthValue, monthValue) .list(); SysIdentity mesSysIdentity = systemIdentityList.size() > 0 ? systemIdentityList.get(0) : new SysIdentity(); Integer num = 1; if (StringUtils.isBlank(mesSysIdentity.getId())) { mesSysIdentity.setType(type); mesSysIdentity.setMonthValue(monthValue); mesSysIdentity.setYearValue(yearValue); mesSysIdentity.setNum(num); super.saveOrUpdate(mesSysIdentity); } else { num = mesSysIdentity.getNum() + 1; mesSysIdentity.setNum(num); super.saveOrUpdate(mesSysIdentity); } String serialNum = StringUtils.leftPad(String.valueOf(num), length, "0"); return serialNum; } }