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.getFunCode();
|
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;
|
}
|
}
|