| 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<SysCodeRuleDao, SysCodeRule> { | 
|     /** | 
|      * 分页查询 | 
|      * | 
|      * @param queryFilter | 
|      * @return | 
|      */ | 
|     public List<SysCodeRule> page(QueryFilter queryFilter) { | 
|         return baseDao.getList(queryFilter.getQueryParams()); | 
|     } | 
|   | 
|     /** | 
|      * 删除 | 
|      * | 
|      * @param ids | 
|      */ | 
|     public void delete(Long[] ids) { | 
|         super.deleteLogic(ids); | 
|     } | 
|   | 
|     public String getNewCode(Map<String, String> map) { | 
|         SysCodeRule codeRule = baseDao.getCodeRule(map); | 
|         String newCodeTemplet = codeRule.getCodeRule(); | 
|         SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); | 
|         String year = sdf.format(new Date()); | 
|         if (map.get("year")!=null){ | 
|             year = map.get("year"); | 
|         } | 
|         if (map.get("projectId")!=null){ | 
|             Map<String, String> mapProject = baseDao.getMapProjectIdentity(map.get("projectId")); | 
|             newCodeTemplet = newCodeTemplet.replace("[项目编号]",mapProject.get("software_identity")); | 
|             year = mapProject.get("year"); | 
|         } | 
|         newCodeTemplet = newCodeTemplet.replace("[年份]",year); | 
|   | 
|         String xhTemplet = StringUtils.substring("__________",0,codeRule.getNoByteNum()); | 
|         newCodeTemplet = newCodeTemplet.replace("[序号]",xhTemplet); | 
|         int xhStartPosition = newCodeTemplet.indexOf(xhTemplet); | 
|   | 
|         String maxCode = baseDao.getMaxCode(codeRule.getTableName(),codeRule.getCodeFieldName(),newCodeTemplet); | 
|         String maxCodeXh = "0"; | 
|         if (StringUtils.isNotBlank(maxCode)) | 
|             maxCodeXh = StringUtils.substring(maxCode,xhStartPosition,xhStartPosition+codeRule.getNoByteNum()); | 
|         Integer a = Convert.toInt(maxCodeXh)+1; | 
|         String newCodeXh = String.format("%0"+codeRule.getNoByteNum()+"d", a); | 
|         String newCode = newCodeTemplet.replace(xhTemplet,newCodeXh); | 
|         return newCode; | 
|     } | 
| } |