package cn.ksource.web.service.cmdb.impl;
|
|
import java.util.Map;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import cn.ksource.beans.CMDB_CI_CATEGORY;
|
import cn.ksource.core.dao.BaseDao;
|
import cn.ksource.core.dao.SqlParameter;
|
import cn.ksource.core.util.ConvertUtil;
|
import cn.ksource.web.service.cmdb.CICategory;
|
import cn.ksource.web.service.cmdb.CIPropertityService;
|
import cn.ksource.web.service.cmdb.DSLCategory;
|
import cn.ksource.web.service.cmdb.SequenceService;
|
|
@Service
|
public class SequenceServiceImpl implements SequenceService {
|
|
@Autowired
|
private BaseDao baseDao;
|
|
@Autowired
|
private CIPropertityService ciPropertityService;
|
|
|
@Override
|
public String getDslCategorySequence(String categoryid) {
|
|
DSLCategory propertity = ciPropertityService.getDSLCategory(categoryid);
|
Map category = propertity.getCategory();
|
String prefix = propertity.getFirstCategory().get("CATE_CODE")+"-"+propertity.getSecondCategory().get("CATE_CODE");
|
if (propertity.getLevel() == 3) {
|
prefix+= "-"+propertity.getThirdCategory().get("CATE_CODE");
|
}
|
|
//表序号,预留字段,以后分表时使用
|
String tableIndex = "01";
|
int sequenceLong = 10;
|
String strSequence = "";
|
Integer serial_number = baseDao.queryForInteger("select SERIAL_NUMBER from CMDB_CI_SEQUENCE where CATEGORY_ID=:CATEGORY_ID",
|
new SqlParameter("CATEGORY_ID",categoryid));
|
if (serial_number == null) {
|
baseDao.execute("insert into CMDB_CI_SEQUENCE(CATEGORY_ID,SERIAL_NUMBER) VALUES(:CATEGORY_ID,:SERIAL_NUMBER)",
|
new SqlParameter("CATEGORY_ID",categoryid).addValue("SERIAL_NUMBER", 1));
|
serial_number = 1;
|
}
|
|
int length = sequenceLong - String.valueOf(serial_number).length();
|
for (int i = 0; i < length; i++) {
|
strSequence += "0";
|
}
|
return prefix.toUpperCase()+"-"+tableIndex+strSequence+String.valueOf(serial_number);
|
}
|
|
|
|
|
@Override
|
public String getCICategorySequence(String categoryid) {
|
|
CICategory propertity = ciPropertityService.getCICategory(categoryid);
|
Map category = propertity.getCategory();
|
|
String prefix = propertity.getFirstCategory().get("CODE")+"-"+propertity.getSecondCategory().get("CODE");
|
if (propertity.getLevel() == 3) {
|
prefix+= "-"+propertity.getThirdCategory().get("CODE");
|
}
|
|
//表序号,预留字段,以后分表时使用
|
String tableIndex = "01";
|
int sequenceLong = 10;
|
String strSequence = "";
|
Integer serial_number = baseDao.queryForInteger("select SERIAL_NUMBER from CMDB_CI_SEQUENCE where CATEGORY_ID=:CATEGORY_ID",
|
new SqlParameter("CATEGORY_ID",categoryid));
|
if (serial_number == null) {
|
baseDao.execute("insert into CMDB_CI_SEQUENCE(CATEGORY_ID,SERIAL_NUMBER,SUB_CI_SERIAL_NUMBER) VALUES(:CATEGORY_ID,:SERIAL_NUMBER,:SUB_CI_SERIAL_NUMBER)",
|
new SqlParameter("CATEGORY_ID",categoryid).addValue("SERIAL_NUMBER", 1).addValue("SUB_CI_SERIAL_NUMBER", 1));
|
serial_number = 1;
|
}
|
|
int length = sequenceLong - String.valueOf(serial_number).length();
|
for (int i = 0; i < length; i++) {
|
strSequence += "0";
|
}
|
return prefix.toUpperCase()+"-"+tableIndex+strSequence+String.valueOf(serial_number);
|
}
|
|
@Override
|
public int getMemberSequence(String memberid) {
|
Integer serial_number = baseDao.queryForInteger("select SERIAL_NUMBER from CMDB_CI_USER_SEQUENCE where MEMBER_ID=:MEMBER_ID",
|
new SqlParameter("MEMBER_ID",memberid));
|
if (serial_number == null) {
|
baseDao.execute("insert into CMDB_CI_USER_SEQUENCE(MEMBER_ID,SERIAL_NUMBER,SUB_CI_SERIAL_NUMBER) VALUES(:MEMBER_ID,:SERIAL_NUMBER,:SUB_CI_SERIAL_NUMBER)",
|
new SqlParameter("MEMBER_ID",memberid).addValue("SERIAL_NUMBER", 1).addValue("SUB_CI_SERIAL_NUMBER", 1));
|
serial_number = 1;
|
}
|
return serial_number;
|
}
|
|
@Override
|
public void nextCICategorySequence(String categoryid) {
|
baseDao.execute("update CMDB_CI_SEQUENCE set SERIAL_NUMBER=SERIAL_NUMBER+1 where CATEGORY_ID=:CATEGORY_ID",
|
new SqlParameter("CATEGORY_ID",categoryid));
|
}
|
|
@Override
|
public void nextMemberSequence(String memberid) {
|
baseDao.execute("update CMDB_CI_USER_SEQUENCE set SERIAL_NUMBER=SERIAL_NUMBER+1 where MEMBER_ID=:MEMBER_ID",
|
new SqlParameter("MEMBER_ID",memberid));
|
}
|
|
@Override
|
public String getSUBCICategorySequence(String categoryid) {
|
|
CMDB_CI_CATEGORY category = new CMDB_CI_CATEGORY(categoryid).getInstanceById();
|
|
//表序号,预留字段,以后分表时使用
|
String tableIndex = "01";
|
int sequenceLong = 10;
|
String strSequence = "";
|
Integer serial_number = 1;
|
Map serial_numberMap = baseDao.queryForMap("select * from CMDB_CI_SEQUENCE where CATEGORY_ID=:CATEGORY_ID",
|
new SqlParameter("CATEGORY_ID",categoryid));
|
if (serial_numberMap == null || serial_numberMap.size() == 0) {
|
baseDao.execute("insert into CMDB_CI_SEQUENCE(CATEGORY_ID,SERIAL_NUMBER,SUB_CI_SERIAL_NUMBER) VALUES(:CATEGORY_ID,:SERIAL_NUMBER,:SUB_CI_SERIAL_NUMBER)",
|
new SqlParameter("CATEGORY_ID",categoryid).addValue("SERIAL_NUMBER", 1).addValue("SUB_CI_SERIAL_NUMBER", 1));
|
} else {
|
serial_number = ConvertUtil.obj2Integer(serial_numberMap.get("SUB_CI_SERIAL_NUMBER"));
|
}
|
|
if (serial_number == null) {
|
baseDao.execute("update CMDB_CI_SEQUENCE set SUB_CI_SERIAL_NUMBER=1 where CATEGORY_ID=:CATEGORY_ID",
|
new SqlParameter("CATEGORY_ID",categoryid));
|
serial_number = 1;
|
}
|
|
int length = sequenceLong - String.valueOf(serial_number).length();
|
for (int i = 0; i < length; i++) {
|
strSequence += "0";
|
}
|
return category.getCode().toUpperCase()+"-"+tableIndex+strSequence+String.valueOf(serial_number);
|
}
|
|
@Override
|
public int getSUBMemberSequence(String memberid) {
|
Map serial_numberMap = baseDao.queryForMap("select * from CMDB_CI_USER_SEQUENCE where MEMBER_ID=:MEMBER_ID",
|
new SqlParameter("MEMBER_ID",memberid));
|
Integer serial_number = 1;
|
if (serial_numberMap == null || serial_numberMap.size() == 0) {
|
baseDao.execute("insert into CMDB_CI_USER_SEQUENCE(MEMBER_ID,SERIAL_NUMBER,SUB_CI_SERIAL_NUMBER) VALUES(:MEMBER_ID,:SERIAL_NUMBER,:SUB_CI_SERIAL_NUMBER)",
|
new SqlParameter("MEMBER_ID",memberid).addValue("SERIAL_NUMBER", 1).addValue("SUB_CI_SERIAL_NUMBER", 1));
|
} else {
|
serial_number = ConvertUtil.obj2Integer(serial_numberMap.get("SUB_CI_SERIAL_NUMBER"));
|
}
|
if (serial_number == null) {
|
baseDao.execute("update CMDB_CI_USER_SEQUENCE set SUB_CI_SERIAL_NUMBER=1 where MEMBER_ID=:MEMBER_ID",
|
new SqlParameter("MEMBER_ID",memberid));
|
serial_number = 1;
|
}
|
return serial_number;
|
}
|
|
@Override
|
public void nextSUBCICategorySequence(String categoryid) {
|
baseDao.execute("update CMDB_CI_SEQUENCE set SUB_CI_SERIAL_NUMBER=SUB_CI_SERIAL_NUMBER+1 where CATEGORY_ID=:CATEGORY_ID",
|
new SqlParameter("CATEGORY_ID",categoryid));
|
}
|
|
@Override
|
public void nextSUBMemberSequence(String memberid) {
|
baseDao.execute("update CMDB_CI_USER_SEQUENCE set SUB_CI_SERIAL_NUMBER=SUB_CI_SERIAL_NUMBER+1 where MEMBER_ID=:MEMBER_ID",
|
new SqlParameter("MEMBER_ID",memberid));
|
}
|
|
}
|