package com.zt.modules.coderule.service; import cn.hutool.core.convert.Convert; import com.zt.common.service.BaseService; import com.zt.modules.coderule.dao.SysCodeRuleDao; import com.zt.modules.coderule.model.SysCodeRule; import com.zt.modules.workflowconfig.dao.WfDefDao; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zt.common.db.query.QueryFilter; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; /** * sys_code_rule * * @author zt generator * @since 1.0.0 2023-11-09 */ @Service public class SysCodeRuleService extends BaseService { /** * 分页查询 * * @param queryFilter * @return */ public List page(QueryFilter queryFilter) { return baseDao.getList(queryFilter.getQueryParams()); } /** * 删除 * * @param ids */ public void delete(Long[] ids) { super.deleteLogic(ids); } public String getNewCode(Map map) { SysCodeRule codeRule = baseDao.getCodeRule(map); String newCodeTemplet = codeRule.getCodeRule(); if (map.get("projectId")!=null){ String projectIdentity = baseDao.getProjectIdentity(map.get("projectId")); newCodeTemplet = newCodeTemplet.replace("[项目编号]",projectIdentity); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); String year = sdf.format(new Date()); newCodeTemplet = newCodeTemplet.replace("[年份]",year); String xhTemplet = StringUtils.substring("__________",0,codeRule.getNoByteNum()-1); newCodeTemplet = newCodeTemplet.replace("[序号]",xhTemplet); int xhStartPosition = newCodeTemplet.indexOf(xhTemplet); String maxCode = baseDao.getMaxCode(codeRule.getTableName(),newCodeTemplet); String maxCodeXh = "0"; if (StringUtils.isNotBlank(maxCode)) maxCodeXh = StringUtils.substring(maxCode,xhStartPosition,xhStartPosition+codeRule.getNoByteNum()-1); String newCodeXh = String.format("%0"+codeRule.getNoByteNum()+"d", Convert.toInt(maxCodeXh)+1); String newCode = newCodeTemplet.replace(xhTemplet,newCodeXh); return newCode; } }