package cn.ksource.web.facade.dsl;
|
|
import cn.ksource.beans.*;
|
import cn.ksource.core.dao.BaseDao;
|
import cn.ksource.core.dao.SqlParameter;
|
import cn.ksource.core.page.PageInfo;
|
import cn.ksource.core.util.*;
|
import cn.ksource.core.web.TreeNode;
|
import cn.ksource.core.web.WebUtil;
|
import cn.ksource.entity.FacedeResponse;
|
import cn.ksource.web.Constants;
|
import cn.ksource.web.service.cmdb.SequenceService;
|
import cn.ksource.web.service.file.FileService;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.File;
|
import java.io.IOException;
|
import java.util.*;
|
|
@Service("dslFacade")
|
public class DSLFacadeImpl implements DSLFacade{
|
|
@Resource
|
private BaseDao baseDao;
|
|
@Resource
|
private FileService fileService;
|
|
@Autowired
|
private SequenceService sequenceService;
|
|
/*@Autowired
|
private SequenceService sequenceService;*/
|
|
|
@Override
|
public List<Map> getOrderDslList(String flowId) {
|
SqlParameter param = new SqlParameter();
|
param.addValue("flowId", flowId);
|
String sql = " SELECT * FROM ( "+
|
" SELECT D.FLOW_ID,V.UPDATE_TIME,CONCAT(D.DSL_FIRST_CATEGORY_NAME,'-',D.DSL_SECOND_CATEGORY_NAME,'-',D.DSL_THIRD_CATEGORY_NAME) CATE_NAME,D.ID DSL_ID,V.ID VER_ID,L.ID LINK_ID,D.DSL_SEARCHCODE,D.DSL_NAME,V.EDITION " +
|
" FROM DSL_ORDER_LINK L " +
|
" INNER JOIN PROJECT_DSL D ON L.DSL_ID = D.ID " +
|
" LEFT JOIN ( " +
|
" SELECT UPDATE_TIME,ID,EDITION FROM DSL_VERSION WHERE (STATE=1 OR STATE=3) " +
|
" ) V ON L.DSL_VERSION_ID = V.ID " +
|
" WHERE (D.STATE=1 OR D.STATE=3) AND L.FLOW_ID=:flowId " +
|
" ORDER BY V.UPDATE_TIME DESC " +
|
" ) T GROUP BY DSL_ID,T.FLOW_ID, T.UPDATE_TIME, T.CATE_NAME,T.VER_ID,T.LINK_ID,T.DSL_SEARCHCODE,T.DSL_NAME,T.EDITION ORDER BY UPDATE_TIME DESC ";
|
return baseDao.queryForList(sql,param);
|
}
|
|
@Override
|
public void saveConfigDslDealRecord(String flowId) {
|
String sql = "SELECT ID,DSL_VERSION_ID,CI_ID,DSL_ID,NEW_VERSION_ID,FLOW_ID,STATE,DEALER_ID,DEALER_NAME,UPDATE_TIME " +
|
"FROM CMDB_DSL_LINK WHERE FLOW_ID = :flowId AND STATE IS NOT NULL ";
|
String sqlinsert = " INSERT INTO CMDB_CI_DSL_RELATION_RECORD (ID,DSL_VERSION_ID,CI_ID,DSL_ID,NEW_VERSION_ID,FLOW_ID,STATE,DEALER_ID,DEALER_NAME,UPDATE_TIME) " +
|
"VALUES (:ID,:DSL_VERSION_ID,:CI_ID,:DSL_ID,:NEW_VERSION_ID,:FLOW_ID,:STATE,:DEALER_ID,:DEALER_NAME,:UPDATE_TIME) " ;
|
SqlParameter param = new SqlParameter();
|
param.addValue("flowId", flowId);
|
List<Map> record = baseDao.queryForList(sql, param);
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
for(Map map:record){
|
SqlParameter params = new SqlParameter();
|
String id = StringUtil.getUUID();
|
params.putAll(map);
|
params.put("ID", id);
|
paramList.add(params);
|
}
|
|
baseDao.executeBatch(sqlinsert, paramList);
|
}
|
|
@Override
|
public void updateConfigDslWhenFinish(String flowId) {
|
SqlParameter param = new SqlParameter();
|
param.addValue("flowId", flowId);
|
//删除
|
baseDao.execute(" DELETE FROM CMDB_DSL_LINK WHERE STATE=3 AND FLOW_ID = :flowId ", param);
|
//新增
|
baseDao.execute(" UPDATE CMDB_DSL_LINK SET STATE=NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE STATE=1 AND FLOW_ID = :flowId ", param);
|
//修改
|
baseDao.execute(" UPDATE CMDB_DSL_LINK SET DSL_VERSION_ID=NEW_VERSION_ID,STATE=NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE STATE=2 AND FLOW_ID = :flowId ", param);
|
//更新dsl状态
|
baseDao.execute(" UPDATE PROJECT_DSL SET STATE=1 WHERE FLOW_ID = :flowId ", param);
|
baseDao.execute(" UPDATE DSL_VERSION SET STATE=1 WHERE CREATE_FLOW_ID = :flowId ", param);
|
|
}
|
|
|
@Override
|
public void updateConfigDslWhenClose(String flowId) {
|
SqlParameter param = new SqlParameter();
|
param.addValue("flowId", flowId);
|
//新增的数据删除
|
baseDao.execute(" DELETE FROM CMDB_DSL_LINK WHERE STATE=1 AND FLOW_ID = :flowId ", param);
|
//将要删除的数据恢复
|
baseDao.execute(" UPDATE CMDB_DSL_LINK SET STATE=NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE STATE=3 AND FLOW_ID = :flowId ", param);
|
//将要修改的数据恢复
|
baseDao.execute(" UPDATE CMDB_DSL_LINK SET NEW_VERSION_ID=DSL_VERSION_ID,STATE=NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE STATE=2 AND FLOW_ID = :flowId ", param);
|
}
|
|
@Override
|
public void addDslByFlow(PROJECT_DSL proDsl,String flowId){
|
String searchcode = sequenceService.getDslCategorySequence(proDsl.getDsl_third_category_id());
|
proDsl.setDsl_searchcode(searchcode);
|
proDsl.setState(3);
|
proDsl.setAdd_time(DateUtil.getCurrentDate14());
|
proDsl.insert();
|
String dslId = proDsl.getId();
|
String sql = "";
|
SqlParameter param = new SqlParameter();
|
if(StringUtil.isNotBlank(flowId)){
|
sql = " insert into DSL_ORDER_LINK (ID,FLOW_ID,DSL_ID) values (:id,:flowId,:dslId) ";
|
param.addValue("id", StringUtil.getUUID())
|
.addValue("flowId", flowId)
|
.addValue("dslId", dslId);
|
baseDao.execute(sql, param);
|
}
|
}
|
|
@Override
|
public PageInfo getProDslContainAddData(HttpServletRequest request) {
|
Map support = getProDslContainAddSupport(request);
|
String sql = (String)support.get("sql");
|
SqlParameter param = (SqlParameter)support.get("param");
|
PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, sql, param);
|
return pageInfo;
|
}
|
|
@Override
|
public int getProDslContainAddCount(HttpServletRequest request) {
|
Map support = getProDslContainAddSupport(request);
|
String sql = "SELECT COUNT(*) FROM ( " + (String)support.get("sql") + " ) A";
|
SqlParameter param = (SqlParameter)support.get("param");
|
int count = baseDao.queryForInteger(sql, param);
|
return count;
|
}
|
|
private Map getProDslContainAddSupport(HttpServletRequest request) {
|
Map support = new HashMap();
|
SqlParameter param = new SqlParameter();
|
StringBuilder builder = new StringBuilder();
|
builder.append(" SELECT * FROM ( ");
|
builder.append(" SELECT * FROM ( ");
|
builder.append(" SELECT D.STATE,D.DSL_THIRD_CATEGORY_NAME DSL_CATEGORY_ID,V.UPDATE_TIME,CONCAT(D.DSL_FIRST_CATEGORY_NAME,'-',D.DSL_SECOND_CATEGORY_NAME,'-',D.DSL_THIRD_CATEGORY_NAME) CATE_NAME,D.ID DSL_ID,V.ID VER_ID,D.DSL_SEARCHCODE,D.DSL_NAME,V.EDITION ");
|
builder.append(" FROM PROJECT_DSL D LEFT JOIN (SELECT * FROM DSL_VERSION WHERE STATE=1) V ON D.ID = V.DSL_ID ");
|
builder.append(" WHERE D.STATE=1 ");
|
builder.append(" ) T1 ");
|
|
String flowId = request.getParameter("flowId");
|
if(StringUtil.notEmpty(flowId)) {
|
builder.append(" UNION SELECT * FROM ( ");
|
builder.append(" SELECT D.STATE,D.DSL_THIRD_CATEGORY_NAME DSL_CATEGORY_ID,V.UPDATE_TIME,CONCAT(D.DSL_FIRST_CATEGORY_NAME,'-',D.DSL_SECOND_CATEGORY_NAME,'-',D.DSL_THIRD_CATEGORY_NAME) CATE_NAME,D.ID DSL_ID,V.ID VER_ID,D.DSL_SEARCHCODE,D.DSL_NAME,V.EDITION ");
|
builder.append(" FROM PROJECT_DSL D INNER JOIN DSL_ORDER_LINK L ON D.ID = L.DSL_ID LEFT JOIN ");
|
builder.append(" ( ");
|
builder.append(" SELECT * FROM DSL_VERSION WHERE STATE=3 ");
|
builder.append(" ) V ON L.DSL_VERSION_ID = V.ID ");
|
builder.append(" WHERE (D.STATE=1 OR D.STATE=3) AND L.FLOW_ID= :flowId ");
|
builder.append(" ) T1 ");
|
param.put("flowId", flowId);
|
}
|
|
builder.append(" ORDER BY UPDATE_TIME DESC ");
|
builder.append(" ) T WHERE 1=1 ");
|
|
String proId = request.getParameter("proId");
|
if(StringUtil.notEmpty(proId)) {
|
param.put("proId", proId);
|
}
|
|
String dslName = request.getParameter("dslName");
|
if(StringUtil.notEmpty(dslName)) {
|
builder.append(" AND DSL_NAME LIKE :dslName ");
|
param.put("dslName", "%" + dslName + "%");
|
}
|
String dslCate = request.getParameter("dslCate");
|
if(StringUtil.notEmpty(dslCate)) {
|
builder.append(" AND DSL_CATEGORY_ID = :dslCate ");
|
param.put("dslCate", dslCate);
|
}
|
String dslSearchCode = request.getParameter("dslSearchCode");
|
if(StringUtil.notEmpty(dslSearchCode)) {
|
builder.append(" AND DSL_SEARCHCODE like :dslSearchCode ");
|
param.put("dslSearchCode", "%"+dslSearchCode+"%");
|
}
|
|
String dslIds = request.getParameter("dslIds");
|
if(StringUtil.notEmpty(dslIds)) {
|
dslIds = "'" + dslIds.replace(",", "','") + "'";
|
builder.append(" AND DSL_ID NOT IN ("+dslIds+") ");
|
}
|
builder.append(" GROUP BY DSL_ID ORDER BY UPDATE_TIME DESC ");
|
|
support.put("sql", builder.toString());
|
support.put("param", param);
|
return support;
|
}
|
|
@Override
|
public int queryDslCount(HttpServletRequest request) {
|
|
StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM PROJECT_DSL A WHERE A.PARTNER_ID = :partnerId AND A.STATE != 3 ");
|
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
|
Map paramMap = new HashMap();
|
//paramMap.put("partnerId", partnerId);
|
String projectId = request.getParameter("projectId");
|
if(StringUtil.notEmpty(projectId)) {
|
builder.append(" AND A.PROJECT_ID = :projectId ");
|
paramMap.put("projectId", projectId);
|
}
|
|
String dslName = request.getParameter("dslName");
|
if(StringUtil.notEmpty(dslName)) {
|
builder.append(" AND A.DSL_NAME LIKE :dslName ");
|
paramMap.put("dslName", "%"+dslName+"%");
|
}
|
|
String dslCate = request.getParameter("dslCate");
|
if(StringUtil.notEmpty(dslCate)) {
|
builder.append(" AND A.DSL_THIRD_CATEGORY_ID = :dslCate ");
|
paramMap.put("dslCate", dslCate);
|
}
|
|
String dslSearchCode = request.getParameter("dslSearchCode");
|
if(StringUtil.notEmpty(dslSearchCode)) {
|
builder.append(" AND A.DSL_SEARCHCODE = :dslSearchCode ");
|
paramMap.put("dslSearchCode", dslSearchCode);
|
}
|
|
|
|
int count = baseDao.queryForInteger(builder.toString(),paramMap);
|
|
return count;
|
}
|
|
@Override
|
public PageInfo queryDslData(HttpServletRequest request) {
|
|
StringBuilder builder = new StringBuilder("SELECT A.*,C.EDITION FROM PROJECT_DSL A LEFT JOIN (SELECT E.DSL_ID,E.EDITION FROM DSL_VERSION E,(SELECT MAX(B.CREATE_TIME) AS TIME,B.DSL_ID FROM DSL_VERSION B WHERE B.STATE = 1 GROUP BY B.DSL_ID) F WHERE E.DSL_ID = F.DSL_ID AND E.CREATE_TIME = F.TIME) C ON A.ID = C.DSL_ID WHERE A.STATE != 3 ");
|
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
|
Map paramMap = new HashMap();
|
//paramMap.put("partnerId", partnerId);
|
String projectId = request.getParameter("projectId");
|
if(StringUtil.notEmpty(projectId)) {
|
builder.append(" AND A.PROJECT_ID = :projectId ");
|
paramMap.put("projectId", projectId);
|
}
|
|
String dslName = request.getParameter("dslName");
|
if(StringUtil.notEmpty(dslName)) {
|
builder.append(" AND A.DSL_NAME LIKE :dslName ");
|
paramMap.put("dslName", "%"+dslName+"%");
|
}
|
|
String dslCate = request.getParameter("dslCate");
|
if(StringUtil.notEmpty(dslCate)) {
|
builder.append(" AND A.DSL_THIRD_CATEGORY_ID = :dslCate ");
|
paramMap.put("dslCate", dslCate);
|
}
|
|
String dslSearchCode = request.getParameter("dslSearchCode");
|
if(StringUtil.notEmpty(dslSearchCode)) {
|
builder.append(" AND A.DSL_SEARCHCODE like :dslSearchCode ");
|
paramMap.put("dslSearchCode", "%"+dslSearchCode+"%");
|
}
|
|
builder.append(" ORDER BY A.STATE ASC, A.ORDER_NUM ASC,ADD_TIME DESC ");
|
PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
|
|
return pageInfo;
|
}
|
|
|
@Override
|
public List<Map> getDslCateTree(String pid, String partnerId) {
|
String sql = " SELECT ID as id,P_ID AS pid,CATEGORY_NAME AS name,LEVEL AS jb FROM DSL_CATEGORY WHERE STATE=1 AND PARTNER_ID=:partnerId";
|
SqlParameter param = new SqlParameter();
|
param.addValue("partnerId", partnerId);
|
if(StringUtil.isNotBlank(pid)){
|
sql += " AND P_ID =:pid ";
|
param.addValue("pid", pid);
|
}else{
|
sql += " AND LEVEL = 1 ";
|
}
|
sql += " ORDER BY STATE,LEVEL,ORDER_NUM ";
|
List<Map> list = baseDao.queryForList(sql,param);
|
for(Map map:list){
|
map.put("isParent", true);
|
}
|
return list;
|
}
|
|
@Override
|
public Map queryDslLevelTree(String partnerId, String cates) {
|
String selectSql = "SELECT A.* FROM DSL_CATEGORY A WHERE A.STATE = 1 ORDER BY A.LEVEL,A.ORDER_NUM ";
|
List<Map> categoryList = baseDao.queryForList(selectSql,new SqlParameter("partnerId",partnerId));
|
Map slMap = new HashMap();
|
if(StringUtil.notEmpty(cates)) {
|
String[] catess = cates.split(",");
|
for(String s : catess) {
|
slMap.put(s, s);
|
}
|
}
|
|
|
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
for (Map map : categoryList) {
|
String level = ConvertUtil.obj2StrBlank(map.get("LEVEL"));
|
String id = ConvertUtil.obj2StrBlank(map.get("ID"));
|
|
//一级树
|
if (level.equalsIgnoreCase("1")) {
|
yjgnCache.put(id, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (level.equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("P_ID").toString());
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
list.add(map);
|
|
ejgnCache.put(id, map);
|
continue;
|
}
|
//三级树
|
if (level.equalsIgnoreCase("3")) {
|
if(null!=map.get("P_ID")){
|
|
if(slMap.containsKey(id)) {
|
slMap.put(id, map.get("CATEGORY_NAME"));
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
Map ejgnMap = ejgnCache.get(map.get("P_ID").toString());
|
List<Map> list = (List<Map>)ejgnMap.get("sjTree");
|
list.add(map);
|
}
|
}
|
}
|
Map resultMap = new HashMap();
|
resultMap.put("categoryList", resultList);
|
resultMap.put("slMap", slMap);
|
return resultMap;
|
}
|
|
@Override
|
public void addOrderLinkDsl(String flowId, String dslIds, String verIds) {
|
List<SqlParameter> params = new ArrayList<SqlParameter>();
|
String[] dslArr = dslIds.split(",");
|
String[] verArr = verIds.split(",");
|
for(int i=0;i<dslArr.length;i++){
|
SqlParameter param = new SqlParameter();
|
param.addValue("flowId", flowId)
|
.addValue("dslId", dslArr[i])
|
.addValue("id", StringUtil.getUUID());
|
if(verArr[i].equals("blank")){
|
param.addValue("verId", "");
|
}else{
|
param.addValue("verId", verArr[i]);
|
}
|
params.add(param);
|
}
|
String sql = "insert into DSL_ORDER_LINK (ID,FLOW_ID,DSL_VERSION_ID,DSL_ID) values (:id,:flowId,:verId,:dslId) ";
|
baseDao.executeBatch(sql, params);
|
}
|
|
@Override
|
public int queryDslChangeVersionCount(HttpServletRequest request) {
|
StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM DSL_VERSION A WHERE A.DSL_ID = :dslId AND (A.STATE = 1 OR (A.STATE = 3 AND A.CREATE_FLOW_ID = :flowId ) ) ORDER BY A.CREATE_TIME DESC ");
|
|
String dslId = request.getParameter("dslId");
|
String flowId = request.getParameter("flowId");
|
|
Map paramMap = new HashMap();
|
paramMap.put("dslId", dslId);
|
paramMap.put("flowId", flowId);
|
int count = baseDao.queryForInteger(builder.toString(), paramMap);
|
return 0;
|
}
|
|
@Override
|
public PageInfo queryDslChangeVersionData(HttpServletRequest request) {
|
StringBuilder builder = new StringBuilder("SELECT A.*,B.WFNAME FROM DSL_VERSION A LEFT JOIN WORKFLOW_BASE B ON A.CREATE_FLOW_ID = B.ID WHERE A.DSL_ID = :dslId AND (A.STATE = 1 OR (A.STATE = 3 AND A.CREATE_FLOW_ID = :flowId ) ) ORDER BY A.CREATE_TIME DESC ");
|
|
String dslId = request.getParameter("dslId");
|
String flowId = request.getParameter("flowId");
|
|
Map paramMap = new HashMap();
|
paramMap.put("dslId", dslId);
|
paramMap.put("flowId", flowId);
|
PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
|
|
return pageInfo;
|
}
|
|
@Override
|
public List getDSLConfigListData(String configId) {
|
StringBuilder builder = new StringBuilder();
|
builder.append(" select NAME,SORT_ID,STATE from CONFIG_DSL where PID = :configId ");
|
return baseDao.queryForList(builder.toString(),new SqlParameter("configId",configId));
|
}
|
|
@Override
|
public List<Map> getDSLConfigTreeData(String thirdCateId,String partnerId,String configId) {
|
TreeNode root = new TreeNode("0","DSL配置树");
|
StringBuilder sql = new StringBuilder();
|
sql.append("select SORT_ID,NAME,ID,PID,LV,STATE from CONFIG_DSL WHERE PARTNER_ID=:partnerId AND THIRD_CATEGORY_ID = :thirdCateId ");
|
if (StringUtils.isBlank(configId) || "0".equals(configId)) {
|
sql.append(" AND LV=1 AND (PID IS NULL OR PID ='' OR PID =0) ");
|
} else {
|
sql.append(" AND PID=:pid ");
|
}
|
sql.append(" ORDER BY SORT_ID ");
|
|
SqlParameter param = new SqlParameter("pid",configId);
|
param.addValue("partnerId", partnerId);
|
param.addValue("thirdCateId", thirdCateId);
|
|
List<Map> firstList = new LinkedList<Map>();
|
List<Map> dataList = baseDao.queryForList(sql.toString(), param);
|
|
for (Map map : dataList) {
|
firstList.add(map);
|
if (ConvertUtil.obj2Int(map.get("STATE")) == 1) {
|
map.put("STATE_TEXT", "已启用");
|
} else {
|
map.put("STATE_TEXT", "未启用");
|
}
|
|
if (!EqualUtil.isStringEqual(map.get("LV"), "2")) {
|
map.put("state", "closed");
|
map.put("children", new LinkedList<Map>());
|
}
|
|
}
|
|
if (StringUtils.isBlank(configId)) {
|
List<Map> resultList = new LinkedList<Map>();
|
Map map = new HashMap();
|
map.put("NAME", "配置分类树");
|
map.put("ID", "0");
|
map.put("LV", 0);
|
map.put("children", firstList);
|
resultList.add(map);
|
return resultList;
|
}
|
return firstList;
|
}
|
|
@Override
|
public String addDslConfig(HttpServletRequest request) {
|
String configId = request.getParameter("configId");
|
String thirdCateId = request.getParameter("thirdCate");
|
String sortId = request.getParameter("sort_id");
|
String pId = request.getParameter("pId");
|
String partnerId = "";
|
String note = request.getParameter("note");
|
String name = request.getParameter("name");
|
String thirdCateName = new DSL_CATEGORY(thirdCateId).getInstanceById().getCategory_name();
|
|
if(StringUtil.notEmpty(configId)) {
|
DSL_CONFIG dsl = new DSL_CONFIG(configId).getInstanceById();
|
pId = dsl.getPid();
|
String updateSql = "UPDATE DSL_CONFIG SET NAME = :name,NOTE = :note,sort_id = :sort_id WHERE ID = :id";
|
Map paramMap = new HashMap();
|
paramMap.put("id", configId);
|
paramMap.put("sort_id", sortId);
|
paramMap.put("note", note);
|
paramMap.put("name", name);
|
baseDao.execute(updateSql, paramMap);
|
} else {
|
int level = 0;
|
if(StringUtil.notEmpty(pId)) {
|
level = 2;
|
} else {
|
level = 1;
|
}
|
|
String insertSql = "INSERT INTO DSL_CONFIG(ID,THIRD_CATEGORY_ID,THIRD_CATEGORY_NAME,LV,SORT_ID,STATE,PID,PARTNER_ID,NOTE,NAME) " +
|
"VALUES (:id,:third_category_id,:third_category_name,:lv,:sort_id,1,:pid,:partner_id,:note,:name)";
|
Map paramMap = new HashMap();
|
paramMap.put("id", StringUtil.getUUID());
|
paramMap.put("third_category_id", thirdCateId);
|
paramMap.put("third_category_name", thirdCateName);
|
paramMap.put("lv", level);
|
paramMap.put("sort_id", sortId);
|
paramMap.put("pid", pId);
|
paramMap.put("partner_id", partnerId);
|
paramMap.put("note", note);
|
paramMap.put("name", name);
|
baseDao.execute(insertSql, paramMap);
|
}
|
|
return pId;
|
|
|
}
|
|
@Override
|
public void saveProDslInfo(HttpServletRequest request) {
|
|
String flowId = request.getParameter("flowId");
|
String projectId = request.getParameter("projectId");
|
String configureId = request.getParameter("configureId");
|
String versionNo = request.getParameter("versionNo");
|
|
SqlParameter param = new SqlParameter();
|
param.addValue("flowId", flowId)
|
.addValue("projectId", projectId)
|
.addValue("versionNo", versionNo)
|
.addValue("configureId", configureId)
|
.addValue("id", StringUtil.getUUID());
|
|
|
StringBuilder builder = new StringBuilder();
|
builder.append(" delete from config_dsl_pro where RELEASE_FLOW_ID = :flowId and CONFIGURE_ID=:configureId and PROJECT_ID=:projectId ");
|
baseDao.execute(builder.toString(), param);
|
|
builder.setLength(0);
|
builder.append(" insert into config_dsl_pro (id,PROJECT_ID,CONFIGURE_ID,VERSION_NO,RELEASE_FLOW_ID,SOURCE_TYPE) ");
|
builder.append(" values (:id,:projectId,:configureId,:versionNo,:flowId,1) ");
|
baseDao.execute(builder.toString(), param);
|
}
|
|
@Override
|
public List<Map> getSecondDslfileList(String orderId,String configureId,String secondDslId){
|
SqlParameter param = new SqlParameter();
|
param.addValue("orderId", orderId)
|
.addValue("configureId", configureId)
|
.addValue("secondDslId", secondDslId);
|
String sql = "select *,TRUNCATE(FILE_SIZE/(1024*1024),2) FILE_SIZE_M from GG_FILES WHERE DEL_FLAG = 1 " +
|
"and BUSINESS_ID = :orderId and EXTEND1 =:configureId and EXTEND2 = :secondDslId ";
|
return baseDao.queryForList(sql,param);
|
}
|
|
@Override
|
public void saveDslFile(HttpServletRequest request){
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String configureId = request.getParameter("configureId");
|
String secondDslId = request.getParameter("secondDslId");
|
String orderId = request.getParameter("orderId");
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
//保存文件
|
String saveSql = "INSERT INTO GG_FILES(ID,FILE_NAME,FILE_PATH,FILE_SIZE,FILE_FORMAT,BUSINESS_ID,CREATE_TIME,USER_ID,USER_NAME,EXTEND1,EXTEND2) VALUES (:id,:fileName,:filePath,:fileSize,:fileFormat,:businessId,:createTime,:userId,:userName,:EXTEND1,:EXTEND2)";
|
// 解析器解析request的上下文
|
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
|
// 先判断request中是否包涵multipart类型的数据,
|
if (multipartResolver.isMultipart(request)) {
|
// 再将request中的数据转化成multipart类型的数据
|
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
|
Iterator iter = (Iterator)multiRequest.getFileNames();
|
while (iter.hasNext()) {
|
MultipartFile file = multiRequest.getFile((String)iter.next());
|
if (file != null) {
|
String fileName = file.getOriginalFilename();
|
String path = "/upload/infofiles/" + fileName;
|
//System.out.println("-----------"+request.getSession().getServletContext().getRealPath("/"));
|
String fullPath = request.getSession().getServletContext().getRealPath("/")+"/upload/infofiles/" + fileName;
|
long size = file.getSize();
|
String fileFormat = fileName.substring(fileName.lastIndexOf(".")+1);
|
File localFile = new File(fullPath);
|
// 写文件到本地
|
try {
|
file.transferTo(localFile);
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", StringUtil.getUUID());
|
param.addValue("fileName", fileName);
|
param.addValue("filePath", path);
|
param.addValue("fileSize", size);
|
param.addValue("fileFormat", fileFormat);
|
param.addValue("businessId", orderId);
|
param.addValue("EXTEND1", configureId);
|
param.addValue("EXTEND2", secondDslId);
|
param.addValue("createTime", DateUtil.getCurrentDate14());
|
param.addValue("userId", user.get("ID"));
|
param.addValue("userName", user.get("ZSXM"));
|
paramList.add(param);
|
} catch (IllegalStateException e) {
|
e.printStackTrace();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
baseDao.executeBatch(saveSql, paramList);
|
}
|
}
|
|
@Override
|
public List dslconfigCateTree(HttpServletRequest request) {
|
Map paramMap = new HashMap();
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
String selectSubSql = "SELECT * FROM DSL_CONFIG WHERE THIRD_CATEGORY_ID = :thirdCateId AND STATE = 1 ORDER BY LV,SORT_ID ";
|
String thirdCateId = request.getParameter("thirdCate");
|
|
paramMap.put("thirdCateId", thirdCateId);
|
//paramMap.put("partnerId", partnerId);
|
|
List<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
|
for (Map map : cates) {
|
String level = map.get("LV").toString();
|
String id = map.get("ID").toString();
|
|
//一级树
|
if (level.equalsIgnoreCase("1")) {
|
yjgnCache.put(id, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (level.equalsIgnoreCase("2")) {
|
String pId = map.get("PID").toString();
|
if(yjgnCache.containsKey(pId)) {
|
Map yjgnMap = yjgnCache.get(pId);
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
list.add(map);
|
}
|
continue;
|
}
|
}
|
System.out.println(JsonUtil.list2Json(resultList));
|
return resultList;
|
}
|
|
@Override
|
public int dslconfigCateCount(HttpServletRequest request) {
|
StringBuilder sql = new StringBuilder();
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
String thirdCateId = request.getParameter("thirdCate");
|
String pId = request.getParameter("pId");
|
sql.append("SELECT COUNT(ID) FROM DSL_CONFIG WHERE THIRD_CATEGORY_ID = :thirdCateId ");
|
|
|
Map paramMap = new HashMap();
|
//paramMap.put("partnerId", partnerId);
|
paramMap.put("thirdCateId", thirdCateId);
|
if(StringUtil.notEmpty(pId)) {
|
sql.append(" AND PID=:pid ");
|
paramMap.put("pid", pId);
|
} else {
|
sql.append(" AND LV=1 AND (PID IS NULL OR PID ='' OR PID =0) ");
|
|
}
|
|
|
return baseDao.queryForInteger(sql.toString(), paramMap);
|
}
|
|
@Override
|
public PageInfo dslconfigCateData(HttpServletRequest request) {
|
StringBuilder sql = new StringBuilder();
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
String thirdCateId = request.getParameter("thirdCate");
|
String pId = request.getParameter("pId");
|
sql.append("SELECT SORT_ID,NAME,ID,PID,LV,STATE FROM DSL_CONFIG WHERE THIRD_CATEGORY_ID = :thirdCateId ");
|
|
|
Map paramMap = new HashMap();
|
//paramMap.put("partnerId", partnerId);
|
paramMap.put("thirdCateId", thirdCateId);
|
if(StringUtil.notEmpty(pId)) {
|
sql.append(" AND PID=:pid ");
|
paramMap.put("pid", pId);
|
} else {
|
sql.append(" AND LV=1 AND (PID IS NULL OR PID ='' OR PID =0) ");
|
|
}
|
|
sql.append(" ORDER BY SORT_ID ");
|
|
return baseDao.queryforSplitPageInfo(request, sql.toString(), paramMap);
|
|
}
|
|
/**
|
* 查询下级的状态
|
*/
|
@Override
|
public int getDSLConfig(String configId) {
|
String selectSql = "SELECT COUNT(ID) FROM DSL_CONFIG WHERE PID = :pid AND STATE = 1 ";
|
return baseDao.queryForInteger(selectSql,new SqlParameter("pid",configId));
|
}
|
|
|
|
@Override
|
public boolean saveProjectDsl(HttpServletRequest request) {
|
String dsl_name = request.getParameter("dsl_name");
|
String dslCateName = request.getParameter("dslCateName");
|
String dslCateId = request.getParameter("dslCateId");
|
String note = request.getParameter("note");
|
String id = StringUtil.getUUID();
|
String projectId = request.getParameter("projectId");
|
String order_num = request.getParameter("order_num");
|
|
String[] cates = dslCateId.split("-");
|
String dsl_first_category_id = cates[0];
|
String dsl_second_category_id = cates[1];
|
String dsl_third_category_id = cates[2];
|
|
|
String searchcode = sequenceService.getDslCategorySequence(dsl_third_category_id);
|
sequenceService.nextCICategorySequence(dsl_third_category_id);
|
|
String[] cateNames = dslCateName.split("-");
|
String dsl_first_category_name = cateNames[0];
|
String dsl_second_category_name = cateNames[1];
|
String dsl_third_category_name = cateNames[2];
|
|
|
String insertSql = "INSERT INTO PROJECT_DSL(ID,DSL_NAME,DSL_FIRST_CATEGORY_ID,DSL_FIRST_CATEGORY_NAME,DSL_SECOND_CATEGORY_ID,DSL_SECOND_CATEGORY_NAME,DSL_THIRD_CATEGORY_ID,DSL_THIRD_CATEGORY_NAME,NOTE,DSL_SEARCHCODE,STATE,PROJECT_ID,PARTNER_ID,ADD_TIME,ORDER_NUM)" +
|
"VALUES (:id,:dsl_name,:dsl_first_category_id,:dsl_first_category_name,:dsl_second_category_id,:dsl_second_category_name,:dsl_third_category_id,:dsl_third_category_name,:note,:dsl_searchcode,1,:project_id,:partner_id,:add_time,:order_num)";
|
|
Map paramMap = new HashMap();
|
paramMap.put("id", id);
|
paramMap.put("dsl_name", dsl_name);
|
paramMap.put("dsl_first_category_id", dsl_first_category_id);
|
paramMap.put("dsl_first_category_name", dsl_first_category_name);
|
paramMap.put("dsl_second_category_id", dsl_second_category_id);
|
paramMap.put("dsl_second_category_name", dsl_second_category_name);
|
paramMap.put("dsl_third_category_id", dsl_third_category_id);
|
paramMap.put("dsl_third_category_name", dsl_third_category_name);
|
paramMap.put("note", note);
|
paramMap.put("dsl_searchcode", searchcode);
|
paramMap.put("project_id", projectId);
|
//paramMap.put("partner_id", WebUtil.getLoginedPartnerId(request));
|
paramMap.put("add_time", DateUtil.getCurrentDate14());
|
paramMap.put("order_num", order_num);
|
|
baseDao.execute(insertSql, paramMap);
|
|
return true;
|
}
|
|
@Override
|
public Map queryDslById(String id) {
|
String selectSql = "SELECT A.*,(SELECT COUNT(B.ID) FROM DSL_VERSION B WHERE A.ID = B.DSL_ID) AS VERSION_NUM FROM PROJECT_DSL A WHERE A.ID = :id ";
|
Map dsl = baseDao.queryForMap(selectSql,new SqlParameter("id",id));
|
if(null!=dsl && dsl.size()>0) {
|
int versionNum = ConvertUtil.obj2Int(dsl.get("VERSION_NUM"));
|
if(versionNum>0) {
|
dsl.put("type", 1);
|
} else {
|
dsl.put("type", 2);
|
}
|
}
|
return dsl;
|
}
|
|
@Override
|
public boolean updateProjectDsl(HttpServletRequest request) {
|
String dsl_name = request.getParameter("dsl_name");
|
String dslCateName = request.getParameter("dslCateName");
|
String dslCateId = request.getParameter("dslCateId");
|
String note = request.getParameter("note");
|
String id = request.getParameter("id");
|
String order_num = request.getParameter("order_num");
|
|
String[] cates = dslCateId.split("-");
|
String dsl_first_category_id = cates[0];
|
String dsl_second_category_id = cates[1];
|
String dsl_third_category_id = cates[2];
|
|
|
String searchcode = sequenceService.getDslCategorySequence(dsl_third_category_id);
|
|
|
String[] cateNames = dslCateName.split("-");
|
String dsl_first_category_name = cateNames[0];
|
String dsl_second_category_name = cateNames[1];
|
String dsl_third_category_name = cateNames[2];
|
|
String updateSql = "UPDATE PROJECT_DSL SET DSL_NAME = :dsl_name,DSL_FIRST_CATEGORY_ID = :dsl_first_category_id,DSL_FIRST_CATEGORY_NAME = :dsl_first_category_name," +
|
"DSL_SECOND_CATEGORY_ID = :dsl_second_category_id,DSL_SECOND_CATEGORY_NAME = :dsl_second_category_name,DSL_THIRD_CATEGORY_ID = :dsl_third_category_id,DSL_THIRD_CATEGORY_NAME = :dsl_third_category_name,NOTE = :note,ORDER_NUM = :order_num WHERE ID = :id ";
|
|
Map paramMap = new HashMap();
|
paramMap.put("id", id);
|
paramMap.put("dsl_name", dsl_name);
|
paramMap.put("dsl_first_category_id", dsl_first_category_id);
|
paramMap.put("dsl_first_category_name", dsl_first_category_name);
|
paramMap.put("dsl_second_category_id", dsl_second_category_id);
|
paramMap.put("dsl_second_category_name", dsl_second_category_name);
|
paramMap.put("dsl_third_category_id", dsl_third_category_id);
|
paramMap.put("dsl_third_category_name", dsl_third_category_name);
|
paramMap.put("note", note);
|
paramMap.put("order_num", order_num);
|
|
baseDao.execute(updateSql, paramMap);
|
return true;
|
}
|
|
|
@Override
|
public String updateDslState(HttpServletRequest request) {
|
String id = request.getParameter("id");
|
String state = request.getParameter("state");
|
String updateSql = "UPDATE PROJECT_DSL SET STATE = :state WHERE ID = :id ";
|
Map paramMap = new HashMap();
|
paramMap.put("state", state);
|
paramMap.put("id", id);
|
baseDao.execute(updateSql, paramMap);
|
return "1";
|
}
|
|
@Override
|
public List dslCateTree(HttpServletRequest request) {
|
Map paramMap = new HashMap();
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
String selectSubSql = "SELECT * FROM DSL_CATEGORY WHERE STATE = 1 ORDER BY LEVEL,ORDER_NUM ";
|
//paramMap.put("partnerId", partnerId);
|
List<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
for (Map map : cates) {
|
String level = map.get("LEVEL").toString();
|
String id = map.get("ID").toString();
|
|
//一级树
|
if (level.equalsIgnoreCase("1")) {
|
yjgnCache.put(id, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (level.equalsIgnoreCase("2")) {
|
String pId = map.get("P_ID").toString();
|
if(yjgnCache.containsKey(pId)) {
|
Map yjgnMap = yjgnCache.get(pId);
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
list.add(map);
|
|
ejgnCache.put(id, map);
|
}
|
continue;
|
}
|
//三级树
|
if (level.equalsIgnoreCase("3")) {
|
if(null!=map.get("P_ID")){
|
String pId = map.get("P_ID").toString();
|
if(ejgnCache.containsKey(pId)) {
|
Map ejgnMap = ejgnCache.get(map.get("P_ID").toString());
|
List<Map> list = (List<Map>)ejgnMap.get("sjTree");
|
list.add(map);
|
}
|
}
|
}
|
}
|
System.out.println(JsonUtil.list2Json(resultList));
|
return resultList;
|
}
|
|
@Override
|
public int dslCateCount(HttpServletRequest request) {
|
String pId = request.getParameter("pId");
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
StringBuilder builder = new StringBuilder("SELECT COUNT(C.ID) FROM DSL_CATEGORY C WHERE 1=1 ");
|
Map paramMap = new HashMap();
|
//paramMap.put("partnerId", partnerId);
|
if(StringUtil.notEmpty(pId)) {
|
builder.append(" AND C.P_ID = :pId ");
|
paramMap.put("pId", pId);
|
} else {
|
builder.append(" AND C.LEVEL = 1 ");
|
}
|
|
|
int count = baseDao.queryForInteger(builder.toString(),paramMap);
|
return count;
|
}
|
|
@Override
|
public PageInfo dslCateData(HttpServletRequest request) {
|
String pId = request.getParameter("pId");
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
StringBuilder builder = new StringBuilder("SELECT C.* FROM DSL_CATEGORY C WHERE 1=1 ");
|
Map paramMap = new HashMap();
|
//paramMap.put("partnerId", partnerId);
|
if(StringUtil.notEmpty(pId)) {
|
builder.append(" AND C.P_ID = :pId ");
|
paramMap.put("pId", pId);
|
} else {
|
builder.append(" AND C.LEVEL = 1 ");
|
}
|
|
builder.append(" ORDER BY STATE,ORDER_NUM ");
|
|
PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
|
|
return pageInfo;
|
}
|
|
@Override
|
public Map addDslCate(HttpServletRequest request,DSL_CATEGORY dsl_category) {
|
String partner_id = "";
|
String id = dsl_category.getId();
|
String categoryid = request.getParameter("pId");
|
|
String firstCate = "";
|
String secondCate = "";
|
if(!StringUtil.notEmpty(id)) {
|
if(StringUtil.notEmpty(categoryid)){
|
DSL_CATEGORY pCate = new DSL_CATEGORY(categoryid).getInstanceById();
|
int level = ConvertUtil.obj2Integer(pCate.getLevel());
|
dsl_category.setP_id(categoryid);
|
dsl_category.setLevel(level+1);
|
|
if(level==2) {
|
firstCate = pCate.getP_id();
|
secondCate = pCate.getId();
|
} else {
|
firstCate = pCate.getId();
|
}
|
|
} else {
|
dsl_category.setP_id(null);
|
dsl_category.setLevel(1);
|
}
|
|
|
|
dsl_category.setState(Constants.COMMON_STATE_ENABLE);//所有节点添加时
|
dsl_category.setPartner_id(partner_id);
|
}
|
|
dsl_category.insertOrUpdate();
|
|
Map result = new HashMap();
|
result.put("firstCate", firstCate);
|
result.put("secondCate", secondCate);
|
return result;
|
}
|
|
|
|
|
@Override
|
public List<Map> getConfigDslList(String configId) {
|
SqlParameter param = new SqlParameter();
|
param.addValue("configId", configId);
|
String sql = " SELECT L.NEW_VERSION_ID,L.STATE FLAG,V.UPDATE_TIME,CONCAT(D.DSL_FIRST_CATEGORY_NAME,'-',D.DSL_SECOND_CATEGORY_NAME,'-',D.DSL_THIRD_CATEGORY_NAME) CATE_NAME,D.ID DSL_ID,V.ID VER_ID,L.ID LINK_ID,D.DSL_SEARCHCODE,D.DSL_NAME,V.EDITION " +
|
" FROM CMDB_DSL_LINK L ,DSL_VERSION V , PROJECT_DSL D " +
|
" WHERE L.DSL_ID = D.ID AND L.NEW_VERSION_ID = V.ID AND L.CI_ID = :configId AND (L.STATE IS NULL OR L.STATE = 1 OR L.STATE = 2 )";
|
return baseDao.queryForList(sql,param);
|
}
|
|
|
|
@Override
|
public void addDslByConfig(PROJECT_DSL proDsl,String configId){
|
proDsl.setState(3);
|
proDsl.setAdd_time(DateUtil.getCurrentDate14());
|
proDsl.insert();
|
String dslId = proDsl.getId();
|
String sql = "";
|
SqlParameter param = new SqlParameter();
|
if(StringUtil.isNotBlank(configId)){
|
sql = " insert into CMDB_DSL_LINK (ID,CI_ID,DSL_ID) values (:id,:configId,:dslId) ";
|
param.addValue("id", StringUtil.getUUID())
|
.addValue("configId", configId)
|
.addValue("dslId", dslId);
|
baseDao.execute(sql, param);
|
}
|
}
|
|
|
@Override
|
public void addDslVersionByOrder(DSL_VERSION dslVersion){
|
String id = StringUtil.getUUID();
|
Map oldversion = queryDslNewestVersionById(dslVersion.getDsl_id());
|
if(oldversion != null){
|
if(!StringUtil.isEmpty(ConvertUtil.obj2StrBlank(oldversion.get("VER_ID")))){
|
dslVersion.setLast_version(ConvertUtil.obj2StrBlank(oldversion.get("VER_ID")));
|
}
|
}
|
dslVersion.setState(3);
|
dslVersion.setCreate_time(DateUtil.getCurrentDate14());
|
dslVersion.setUpdate_time(DateUtil.getCurrentDate14());
|
dslVersion.setId(id).insert();
|
String versionId = dslVersion.getId();
|
String sql = "";
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", StringUtil.getUUID())
|
.addValue("flowId", dslVersion.getCreate_flow_id())
|
.addValue("versionId", versionId)
|
.addValue("dslId", dslVersion.getDsl_id())
|
.addValue("dealer_id", dslVersion.getDealer_user_id())
|
.addValue("dealer_name", dslVersion.getDealer_user_name())
|
.addValue("update_time", dslVersion.getCreate_time());
|
baseDao.execute("delete from DSL_ORDER_LINK where FLOW_ID=:flowId and DSL_ID = :dslId ", param);
|
sql = " insert into DSL_ORDER_LINK (ID,FLOW_ID,DSL_ID,DSL_VERSION_ID) values (:id,:flowId,:dslId,:versionId) ";
|
|
if(oldversion != null){
|
if(!StringUtil.isEmpty(ConvertUtil.obj2StrBlank(oldversion.get("VER_ID")))){
|
//复制最新版本的配置信息
|
saveDslConfig(ConvertUtil.obj2StrBlank(oldversion.get("VER_ID")),id);
|
}
|
|
}
|
baseDao.execute(sql, param);
|
//dsl关联配置默认为最新版本
|
baseDao.execute("UPDATE CMDB_DSL_LINK SET STATE = 2,NEW_VERSION_ID = :versionId , FLOW_ID = :flowId,DEALER_ID = :dealer_id,DEALER_NAME = :dealer_name,UPDATE_TIME = :update_time WHERE DSL_ID = :dslId ", param);
|
|
}
|
|
|
@Override
|
public int selectByCode(String code, String id,String partnerId,String pId) {
|
StringBuffer sql=new StringBuffer("select count(*) from DSL_CATEGORY where CATE_CODE= :code AND PARTNER_ID =:partner_id AND P_ID =:p_id ");
|
if (StringUtils.isNotBlank(id)) {
|
sql.append(" and id <> :id");
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("code", code);
|
param.addValue("partner_id", partnerId);
|
param.addValue("id", id);
|
param.addValue("p_id", pId);
|
int count=baseDao.queryForInteger(sql.toString(),param);
|
return count;
|
}
|
|
@Override
|
public int selectByName(String name, String id,String partnerId,String pId) {
|
StringBuffer sql=new StringBuffer("select count(*) from DSL_CATEGORY where CATEGORY_NAME= :name AND PARTNER_ID =:partner_id AND P_ID =:p_id ");
|
if (StringUtils.isNotBlank(id)) {
|
sql.append(" and id <> :id");
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("name", name);
|
param.addValue("partner_id", partnerId);
|
param.addValue("id", id);
|
param.addValue("p_id", pId);
|
int count=baseDao.queryForInteger(sql.toString(),param);
|
return count;
|
}
|
|
@Override
|
public FacedeResponse execDisableDslCategory(String id, String partnerId) {
|
FacedeResponse res = new FacedeResponse();
|
|
//获取该分类下的所有子类
|
List<Map> list = this.getAllChildList(id);
|
Map map = new HashMap();
|
map.put("ID", id);
|
list.add(map);
|
|
//先删除原来的分类
|
String sql = "UPDATE DSL_CATEGORY SET STATE = 2 WHERE ID=:id AND PARTNER_ID=:partner_id ";
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
|
if (list != null && list.size() > 0) {
|
for (Map map2 : list) {
|
String categoryId = ConvertUtil.obj2Str(map2.get("ID"));
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", categoryId);
|
param.addValue("partner_id", partnerId);
|
|
paramList.add(param);
|
}
|
|
baseDao.executeBatch(sql, paramList);
|
}
|
return res;
|
}
|
|
@Override
|
public FacedeResponse execEnableDslCategory(String id, String partnerId) {
|
FacedeResponse res = new FacedeResponse();
|
|
//获取该分类的父类
|
List<Map> pList = this.getAllParentList(id, new ArrayList<Map>());
|
|
//获取该分类下的所有子类
|
List<Map> list = this.getAllChildList(id);
|
Map map = new HashMap();
|
map.put("ID", id);
|
list.add(map);
|
|
//合并父类和子类列表
|
list.addAll(pList);
|
|
//修改DSL分类状态
|
this.saveDslCategory(list, partnerId);
|
|
return res;
|
}
|
|
/**
|
* 保存加盟商DSL分类
|
* @param categoryIdList
|
* @param partnerId
|
*/
|
private void saveDslCategory(List<Map> categoryIdList, String partnerId) {
|
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
|
if (categoryIdList != null && categoryIdList.size() > 0) {
|
for (Map map : categoryIdList) {
|
String categoryId = ConvertUtil.obj2Str(map.get("ID"));
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", categoryId);
|
param.addValue("partner_id", partnerId);
|
paramList.add(param);
|
}
|
|
String sql = "UPDATE DSL_CATEGORY SET STATE = 1 WHERE ID = :id AND PARTNER_ID=:partner_id ";
|
baseDao.executeBatch(sql, paramList);
|
}
|
}
|
|
/**
|
* 递归,获取分类下的所有子类,一直到三级分类
|
* @param pid
|
* @return
|
*/
|
private List<Map> getAllChildList(String pid) {
|
String sql = "select ID,LEVEL from DSL_CATEGORY where STATE=1 and P_ID=:pid ";
|
|
List<Map> list = baseDao.queryForList(sql, new SqlParameter("pid", pid));
|
if (list != null && list.size() > 0) {
|
for (int i=0 ;i<list.size();i++) {
|
Map map = list.get(i);
|
String jb = ConvertUtil.obj2Str(map.get("LEVEL"));
|
if (!"3".equals(jb)) {
|
//不是三级分类时,继续查找
|
pid = ConvertUtil.obj2Str(map.get("ID"));
|
list.addAll(getAllChildList(pid));
|
}
|
}
|
}
|
|
return list;
|
}
|
|
/**
|
* 递归,获取当前子类的所有父级分类
|
* @param id
|
* @return
|
*/
|
private List<Map> getAllParentList(String id, List<Map> tList) {
|
String sql = "select c.ID,c.LEVEL from DSL_CATEGORY c where c.STATE=1 and c.ID=(select P_ID from DSL_CATEGORY c2 where c2.STATE=1 and c2.ID=:id) ";
|
Map map = baseDao.queryForMap(sql, new SqlParameter("id", id));
|
|
if (map != null && map.size() > 0) {
|
tList.add(map);
|
String cid = ConvertUtil.obj2Str(map.get("ID"));
|
String jb = ConvertUtil.obj2Str(map.get("LEVEL"));
|
if (!"1".equals(jb)) {
|
//目前只考虑三级分类
|
this.getAllParentList(cid, tList);
|
}
|
}
|
return tList;
|
}
|
|
@Override
|
public int selectByconfigName(String name, String id,String partnerId,String pId,String thirdCate) {
|
StringBuffer sql=new StringBuffer("select count(*) from DSL_CONFIG where NAME= :name AND PARTNER_ID =:partner_id AND PID =:p_id AND THIRD_CATEGORY_ID = :thirdCate ");
|
if (StringUtils.isNotBlank(id)) {
|
sql.append(" and id <> :id");
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("name", name);
|
param.addValue("partner_id", partnerId);
|
param.addValue("id", id);
|
param.addValue("p_id", pId);
|
param.addValue("thirdCate", thirdCate);
|
int count=baseDao.queryForInteger(sql.toString(),param);
|
return count;
|
}
|
|
@Override
|
public FacedeResponse execDisableDslconfigCate(String id, String partnerId) {
|
FacedeResponse res = new FacedeResponse();
|
|
//获取该分类下的所有子类
|
List<Map> list = this.getAllChildconfigList(id);
|
Map map = new HashMap();
|
map.put("ID", id);
|
list.add(map);
|
|
//先删除原来的分类
|
String sql = "UPDATE DSL_CONFIG SET STATE = 2 WHERE ID=:id AND PARTNER_ID=:partner_id ";
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
|
if (list != null && list.size() > 0) {
|
for (Map map2 : list) {
|
String categoryId = ConvertUtil.obj2Str(map2.get("ID"));
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", categoryId);
|
param.addValue("partner_id", partnerId);
|
|
paramList.add(param);
|
}
|
|
baseDao.executeBatch(sql, paramList);
|
}
|
return res;
|
}
|
|
@Override
|
public FacedeResponse execEnableDslconfigCate(String id, String partnerId) {
|
FacedeResponse res = new FacedeResponse();
|
|
//获取该分类的父类
|
List<Map> pList = this.getAllParentconfigList(id, new ArrayList<Map>());
|
|
//获取该分类下的所有子类
|
List<Map> list = this.getAllChildconfigList(id);
|
Map map = new HashMap();
|
map.put("ID", id);
|
list.add(map);
|
|
//合并父类和子类列表
|
list.addAll(pList);
|
|
//修改DSL分类状态
|
this.saveDslconfigCate(list, partnerId);
|
|
return res;
|
}
|
/**
|
* 保存加盟商DSL分类
|
* @param categoryIdList
|
* @param partnerId
|
*/
|
private void saveDslconfigCate(List<Map> categoryIdList, String partnerId) {
|
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
|
if (categoryIdList != null && categoryIdList.size() > 0) {
|
for (Map map : categoryIdList) {
|
String categoryId = ConvertUtil.obj2Str(map.get("ID"));
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", categoryId);
|
param.addValue("partner_id", partnerId);
|
paramList.add(param);
|
}
|
|
String sql = "UPDATE DSL_CONFIG SET STATE = 1 WHERE ID = :id AND PARTNER_ID=:partner_id ";
|
baseDao.executeBatch(sql, paramList);
|
}
|
}
|
|
/**
|
* 递归,获取分类下的所有子类,一直到三级分类
|
* @param pid
|
* @return
|
*/
|
private List<Map> getAllChildconfigList(String pid) {
|
String sql = "select ID,LV from DSL_CONFIG where STATE=1 and PID=:pid ";
|
|
List<Map> list = baseDao.queryForList(sql, new SqlParameter("pid", pid));
|
if (list != null && list.size() > 0) {
|
for (int i=0 ;i<list.size();i++) {
|
Map map = list.get(i);
|
String jb = ConvertUtil.obj2Str(map.get("LV"));
|
if (!"3".equals(jb)) {
|
//不是三级分类时,继续查找
|
pid = ConvertUtil.obj2Str(map.get("ID"));
|
list.addAll(getAllChildconfigList(pid));
|
}
|
}
|
}
|
|
return list;
|
}
|
|
/**
|
* 递归,获取当前子类的所有父级分类
|
* @param id
|
* @return
|
*/
|
private List<Map> getAllParentconfigList(String id, List<Map> tList) {
|
String sql = "select c.ID,c.LV from DSL_CONFIG c where c.STATE=1 and c.ID=(select PID from DSL_CATEGORY c2 where c2.STATE=1 and c2.ID=:id) ";
|
Map map = baseDao.queryForMap(sql, new SqlParameter("id", id));
|
|
if (map != null && map.size() > 0) {
|
tList.add(map);
|
String cid = ConvertUtil.obj2Str(map.get("ID"));
|
String jb = ConvertUtil.obj2Str(map.get("LV"));
|
if (!"1".equals(jb)) {
|
//目前只考虑三级分类
|
this.getAllParentconfigList(cid, tList);
|
}
|
}
|
return tList;
|
}
|
|
@Override
|
public Map preview(String id,HttpServletRequest request) {
|
Map cate = new DSL_CATEGORY(id).getBeanMapById();
|
Map paramMap = new HashMap();
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
String selectSubSql = "SELECT * FROM DSL_CONFIG WHERE THIRD_CATEGORY_ID = :thirdCateId AND STATE = 1 ORDER BY LV,SORT_ID ";
|
|
//paramMap.put("partnerId", partnerId);
|
paramMap.put("thirdCateId", id);
|
|
List<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
|
for (Map map : cates) {
|
String level = map.get("LV").toString();
|
String configId = map.get("ID").toString();
|
|
//一级树
|
if (level.equalsIgnoreCase("1")) {
|
yjgnCache.put(configId, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (level.equalsIgnoreCase("2")) {
|
String pId = map.get("PID").toString();
|
if(yjgnCache.containsKey(pId)) {
|
Map yjgnMap = yjgnCache.get(pId);
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
list.add(map);
|
}
|
continue;
|
}
|
}
|
int count = 0;
|
for(Map map:resultList){
|
List<Map> list = (List<Map>)map.get("ejTree");
|
map.put("count", list.size());
|
count = count +list.size();
|
}
|
cate.put("count", count+4);
|
System.out.println(JsonUtil.list2Json(resultList));
|
cate.put("resultList", resultList);
|
return cate;
|
}
|
|
@Override
|
public int queryDslVersionCount(HttpServletRequest request) {
|
StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM DSL_VERSION A WHERE A.DSL_ID = :dslId AND A.STATE <> 3 ");
|
|
String dslId = request.getParameter("dslId");
|
|
Map paramMap = new HashMap();
|
paramMap.put("dslId", dslId);
|
int count = baseDao.queryForInteger(builder.toString(), paramMap);
|
return count;
|
}
|
|
@Override
|
public PageInfo queryDslVersionData(HttpServletRequest request) {
|
StringBuilder builder = new StringBuilder("SELECT A.*,B.WFNAME FROM DSL_VERSION A LEFT JOIN WORKFLOW_BASE B ON A.CREATE_FLOW_ID = B.ID WHERE A.DSL_ID = :dslId AND A.STATE <> 3 ORDER BY A.CREATE_TIME DESC ");
|
|
String dslId = request.getParameter("dslId");
|
|
Map paramMap = new HashMap();
|
paramMap.put("dslId", dslId);
|
PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
|
|
return pageInfo;
|
}
|
|
@Override
|
public boolean saveDslVersion(HttpServletRequest request) {
|
String dsl_id = request.getParameter("dsl_id");
|
String edition = request.getParameter("edition");
|
String note = request.getParameter("note");
|
long update_time = DateUtil.getCurrentDate14();
|
long create_time = update_time;
|
String dealer_user_id = WebUtil.getLoginedUserId(request);
|
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String dealer_user_name = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
|
|
|
String id = StringUtil.getUUID();
|
|
Map paramMap = new HashMap();
|
paramMap.put("id", id);
|
paramMap.put("dsl_id", dsl_id);
|
paramMap.put("edition", edition);
|
paramMap.put("dealer_user_id", dealer_user_id);
|
paramMap.put("dealer_user_name", dealer_user_name);
|
paramMap.put("create_time", create_time);
|
paramMap.put("update_time", update_time);
|
paramMap.put("note", note);
|
|
String insertSql = "INSERT INTO DSL_VERSION(ID,DSL_ID,EDITION,STATE,UPDATE_TIME,DEALER_USER_ID,DEALER_USER_NAME,CREATE_TIME,NOTE,LAST_VERSION) VALUES (:id,:dsl_id,:edition,1,:update_time,:dealer_user_id,:dealer_user_name,:create_time,:note,:lastVersion)";
|
|
|
//查询当前最新的版本信息
|
Map newestVersion = queryDslNewestVersionById(dsl_id);
|
String oldVersion = new String();
|
|
if(null!=newestVersion && newestVersion.size()>0) {
|
oldVersion = ConvertUtil.obj2StrBlank(newestVersion.get("VER_ID"));
|
}
|
|
paramMap.put("lastVersion", oldVersion);
|
|
baseDao.execute(insertSql, paramMap);
|
|
if(StringUtil.notEmpty(oldVersion)) {
|
//复制版本信息
|
saveDslConfig(oldVersion, id);
|
}
|
|
|
|
|
return true;
|
}
|
|
@Override
|
public String updateDslVersionState(HttpServletRequest request) {
|
String id = request.getParameter("id");
|
String state = request.getParameter("state");
|
String updateSql = "UPDATE DSL_VERSION SET STATE = :state WHERE ID = :id ";
|
Map paramMap = new HashMap();
|
paramMap.put("state", state);
|
paramMap.put("id", id);
|
baseDao.execute(updateSql, paramMap);
|
return "1";
|
}
|
|
|
@Override
|
public Map versionMore(String id) {
|
String selectSql = "SELECT A.*,B.DSL_NAME,B.DSL_FIRST_CATEGORY_NAME,B.DSL_SECOND_CATEGORY_NAME,B.DSL_THIRD_CATEGORY_NAME FROM DSL_VERSION A,PROJECT_DSL B WHERE A.DSL_ID = B.ID AND A.ID = :id ";
|
Map version = baseDao.queryForMap(selectSql,new SqlParameter("id",id));
|
return version;
|
}
|
|
@Override
|
public Map queryDslNewestVersionById(String dslId) {
|
String selectSql = "SELECT A.*,C.EDITION,C.VER_ID,C.UPDATE_TIME FROM PROJECT_DSL A LEFT JOIN (SELECT B.DSL_ID,B.EDITION,B.ID AS VER_ID,B.UPDATE_TIME FROM DSL_VERSION B WHERE B.STATE = 1 AND B.DSL_ID = :dslId ORDER BY B.CREATE_TIME DESC LIMIT 0,1 ) C ON A.ID = C.DSL_ID WHERE A.ID = :dslId ";
|
Map newestVersion = baseDao.queryForMap(selectSql,new SqlParameter("dslId",dslId));
|
return newestVersion;
|
}
|
|
@Override
|
public String checkVersion(HttpServletRequest request) {
|
String dslId = request.getParameter("dslId");
|
String edition = request.getParameter("edition");
|
String selectSql = "SELECT COUNT(ID) FROM DSL_VERSION WHERE EDITION = :edition AND DSL_ID = :dslId ";
|
Map paramMap = new HashMap();
|
paramMap.put("dslId", dslId);
|
paramMap.put("edition", edition);
|
int count = baseDao.queryForInteger(selectSql,paramMap);
|
if(count>0) {
|
return "1";
|
}
|
return "0";
|
}
|
|
|
@Override
|
public List queryDslConfigFolder(String partnerId,String cateId) {
|
Map paramMap = new HashMap();
|
String selectSubSql = "SELECT * FROM DSL_CONFIG WHERE PARTNER_ID=:partnerId AND THIRD_CATEGORY_ID = :cateId AND STATE = 1 ORDER BY LV,SORT_ID ";
|
paramMap.put("partnerId", partnerId);
|
paramMap.put("cateId", cateId);
|
List<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
|
for (Map map : cates) {
|
String level = map.get("LV").toString();
|
String id = map.get("ID").toString();
|
|
//一级树
|
if (level.equalsIgnoreCase("1")) {
|
yjgnCache.put(id, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (level.equalsIgnoreCase("2")) {
|
String pId = map.get("PID").toString();
|
if(yjgnCache.containsKey(pId)) {
|
Map yjgnMap = yjgnCache.get(pId);
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
list.add(map);
|
}
|
}
|
}
|
System.out.println(JsonUtil.list2Json(resultList));
|
return resultList;
|
}
|
|
@Override
|
public int queryDslVersionFileCount(String folderId, String versionId) {
|
StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM DSL_CONFIG_FILE A WHERE A.VERSION_ID = :versionId AND DEL_FLAG = 1 ");
|
Map paramMap = new HashMap();
|
paramMap.put("versionId", versionId);
|
if(StringUtil.notEmpty(folderId)) {
|
builder.append(" AND DSL_SECOND_CATE = :folderId ");
|
paramMap.put("folderId", folderId);
|
}
|
|
int count = baseDao.queryForInteger(builder.toString(),paramMap);
|
|
return count;
|
}
|
|
@Override
|
public PageInfo queryDslVersionFileData(HttpServletRequest request,String folderId, String versionId) {
|
StringBuilder builder = new StringBuilder("SELECT A.* FROM DSL_CONFIG_FILE A WHERE A.VERSION_ID = :versionId AND DEL_FLAG = 1 ");
|
Map paramMap = new HashMap();
|
paramMap.put("versionId", versionId);
|
if(StringUtil.notEmpty(folderId)) {
|
builder.append(" AND DSL_SECOND_CATE = :folderId ");
|
paramMap.put("folderId", folderId);
|
}
|
|
builder.append(" ORDER BY CREATE_TIME DESC ");
|
|
PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
|
|
List<Map> files = pageInfo.getDatas();
|
if(null!=files && files.size()>0) {
|
for(Map file : files) {
|
file.put("FILE_SIZE", StringUtil.getFileSize(ConvertUtil.obj2Double(file.get("FILE_SIZE"))));
|
}
|
}
|
|
return pageInfo;
|
}
|
|
@Override
|
public boolean deleteDslFile(HttpServletRequest request,String fileId) {
|
String userId = WebUtil.getLoginedUserId(request);
|
String userName = ConvertUtil.obj2StrBlank(WebUtil.getLoginUser(request).getLoginUser().get("ZSXM"));
|
String updateSql = "UPDATE DSL_CONFIG_FILE SET DEL_FLAG = 2 WHERE ID = :fileId ";
|
baseDao.execute(updateSql, new SqlParameter("fileId",fileId));
|
DSL_CONFIG_FILE file = new DSL_CONFIG_FILE(fileId).getInstanceById();
|
|
//添加删除文件记录
|
DSL_VERSION version = new DSL_VERSION(file.getVersion_id()).getInstanceById();
|
String saverecordSql = "INSERT INTO DSL_CONFIG_FILE_CHANGE_DETAIL(ID,FIRST_CONFIG_CATE,SECOND_CONFIG_CATE,DSL_VERSION_ID,FILE_ID,DEAL_TYPE,FLOW_ID,CREATE_TIME,USER_ID,USER_NAME) VALUES(:id,:first_config_cate,:folderId,:versionId,:file_id,:deal_type,:flow_id,:createTime,:userId,:userName)";
|
Map param = new HashMap();
|
param.put("id", StringUtil.getUUID());
|
param.put("file_id", fileId);
|
param.put("versionId", file.getVersion_id());
|
param.put("deal_type", 2);
|
param.put("first_config_cate", file.getDsl_first_cate());
|
param.put("folderId", file.getDsl_second_cate());
|
param.put("flow_id", version.getCreate_flow_id());
|
param.put("createTime", DateUtil.getCurrentDate14());
|
param.put("userId", userId);
|
param.put("userName", userName);
|
baseDao.execute(saverecordSql, param);
|
return true;
|
}
|
|
|
|
@Override
|
public void addConfigLinkDsl(String configId, String dslIds, String verIds, String delFlags, String flowId, String userId, String userName) {
|
List<SqlParameter> addParams = new ArrayList<SqlParameter>();
|
List<SqlParameter> updateParams = new ArrayList<SqlParameter>();
|
Long curDate = DateUtil.getCurrentDate14();
|
String[] dslArr = dslIds.split(",");
|
String[] verArr = verIds.split(",");
|
String[] flagArr = delFlags.split(",");
|
for(int i=0;i<dslArr.length;i++){
|
SqlParameter param = new SqlParameter();
|
param.addValue("configId", configId)
|
.addValue("flowId", flowId)
|
.addValue("dslId", dslArr[i])
|
.addValue("id", StringUtil.getUUID())
|
.addValue("userId", userId)
|
.addValue("userName", userName)
|
.addValue("curDate", curDate);
|
if(verArr[i].equals("blank")){
|
param.addValue("verId", "");
|
}else{
|
param.addValue("verId", verArr[i]);
|
}
|
if(flagArr[i].equals("0")){
|
addParams.add(param);
|
}else{
|
updateParams.add(param);
|
}
|
}
|
//无记录则插入
|
String sql = " INSERT INTO CMDB_DSL_LINK (ID,CI_ID,DSL_ID,DSL_VERSION_ID,NEW_VERSION_ID,FLOW_ID,STATE,DEALER_ID,DEALER_NAME,UPDATE_TIME) " +
|
" VALUES (:id,:configId,:dslId,:verId,:verId,:flowId,1,:userId,:userName,:curDate) ";
|
if(addParams.size()>0){
|
baseDao.executeBatch(sql, addParams);
|
}
|
//有记录则去掉state为删除状态的标识
|
if(updateParams.size()>0){
|
sql = " UPDATE CMDB_DSL_LINK SET STATE = NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE CI_ID=:configId AND DSL_ID =:dslId AND STATE=3 ";
|
baseDao.executeBatch(sql, updateParams);
|
}
|
|
}
|
|
|
|
private Map getSelConfigDslSupport(HttpServletRequest request) {
|
Map support = new HashMap();
|
SqlParameter param = new SqlParameter();
|
StringBuilder builder = new StringBuilder();
|
|
builder.append(" SELECT * FROM ( ");
|
builder.append(" SELECT 0 AS DEL_FLAG,D.STATE,D.DSL_THIRD_CATEGORY_ID,V.UPDATE_TIME,CONCAT(D.DSL_FIRST_CATEGORY_NAME,'-',D.DSL_SECOND_CATEGORY_NAME,'-',D.DSL_THIRD_CATEGORY_NAME) CATE_NAME,D.ID DSL_ID,V.ID VER_ID,D.DSL_SEARCHCODE,D.DSL_NAME,V.EDITION ");
|
builder.append(" FROM PROJECT_DSL D ,DSL_VERSION V ");
|
builder.append(" WHERE D.ID = V.DSL_ID AND ((D.STATE=1 AND V.STATE=1) OR (D.STATE=3 AND D.FLOW_ID=:flowId)) AND PROJECT_ID= :proId ");
|
builder.append(" AND NOT EXISTS ( ");
|
builder.append(" SELECT L.DSL_ID FROM CMDB_DSL_LINK L WHERE L.STATE!=3 AND L.CI_ID= :configId AND L.DSL_ID = D.ID ");
|
builder.append(" ) ");
|
builder.append(" UNION ");
|
builder.append(" SELECT 1 AS DEL_FLAG,D.STATE,D.DSL_THIRD_CATEGORY_ID,V.UPDATE_TIME,CONCAT(D.DSL_FIRST_CATEGORY_NAME,'-',D.DSL_SECOND_CATEGORY_NAME,'-',D.DSL_THIRD_CATEGORY_NAME) CATE_NAME,D.ID DSL_ID,V.ID VER_ID,D.DSL_SEARCHCODE,D.DSL_NAME,V.EDITION ");
|
builder.append(" FROM CMDB_DSL_LINK L,PROJECT_DSL D,DSL_VERSION V ");
|
builder.append(" WHERE L.DSL_ID = D.ID AND L.DSL_VERSION_ID = V.ID AND L.STATE=3 AND L.CI_ID = :configId ORDER BY UPDATE_TIME DESC ");
|
builder.append(" ) T WHERE 1=1 ");
|
|
String proId = request.getParameter("proId");
|
if(StringUtil.notEmpty(proId)) {
|
param.put("proId", proId);
|
}
|
|
String configId = request.getParameter("configId");
|
if(StringUtil.notEmpty(configId)) {
|
param.put("configId", configId);
|
}
|
|
String flowId = request.getParameter("flowId");
|
if(StringUtil.notEmpty(flowId)) {
|
param.put("flowId", flowId);
|
}
|
|
String dslName = request.getParameter("dslName");
|
if(StringUtil.notEmpty(dslName)) {
|
builder.append(" AND DSL_NAME LIKE :dslName ");
|
param.put("dslName", "%" + dslName + "%");
|
}
|
String dslCate = request.getParameter("dslCate");
|
if(StringUtil.notEmpty(dslCate)) {
|
builder.append(" AND DSL_THIRD_CATEGORY_ID = :dslCate ");
|
param.put("dslCate", dslCate);
|
}
|
String dslSearchCode = request.getParameter("dslSearchCode");
|
if(StringUtil.notEmpty(dslSearchCode)) {
|
builder.append(" AND DSL_SEARCHCODE like :dslSearchCode ");
|
param.put("dslSearchCode", "%"+dslSearchCode+"%");
|
}
|
|
String dslIds = request.getParameter("dslIds");
|
if(StringUtil.notEmpty(dslIds)) {
|
dslIds = "'" + dslIds.replace(",", "','") + "'";
|
builder.append(" AND DSL_ID NOT IN ("+dslIds+") ");
|
}
|
builder.append(" GROUP BY DSL_ID ORDER BY UPDATE_TIME DESC ");
|
|
support.put("sql", builder.toString());
|
support.put("param", param);
|
return support;
|
}
|
|
|
|
|
@Override
|
public Map getDslMsgById(String id,HttpServletRequest request) {
|
StringBuilder builder = new StringBuilder("SELECT c.*,A.EDITION,A.CREATE_TIME,A.VERSIONID FROM PROJECT_DSL c LEFT JOIN (SELECT MAX(B.CREATE_TIME),B.ID AS VERSIONID,B.DSL_ID,B.EDITION,B.CREATE_TIME FROM DSL_VERSION B WHERE B.STATE = 1 AND B.ID = :id ) A ON c.ID = A.DSL_ID WHERE c.STATE <> 3 ");
|
// String partnerId = WebUtil.getLoginedPartnerId(request);
|
|
Map paramMap = new HashMap();
|
paramMap.put("id", id);
|
//paramMap.put("partnerId", partnerId);
|
Map dslMap = baseDao.queryForMap(builder.toString(), paramMap);
|
return dslMap;
|
}
|
|
@Override
|
public void deleteConfigLinkDsl(String linkId, String flag, String userId, String userName,String flowId) {
|
Long curDate = DateUtil.getCurrentDate14();
|
String sql = "DELETE FROM CMDB_DSL_LINK WHERE ID = :linkId";
|
if(!flag.equals("1")){//不是当前流程新增的dsl关系
|
sql = " UPDATE CMDB_DSL_LINK SET STATE=3,DEALER_ID=:userId,DEALER_NAME=:userName,UPDATE_TIME=:curDate,FLOW_ID = :flowId WHERE ID = :linkId ";
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("linkId", linkId)
|
.addValue("userId", userId)
|
.addValue("userName", userName)
|
.addValue("curDate", curDate)
|
.addValue("flowId", flowId);
|
baseDao.execute(sql, param);
|
}
|
|
@Override
|
public PageInfo getSelConfigDslListData(HttpServletRequest request) {
|
Map support = getSelConfigDslSupport(request);
|
String sql = (String)support.get("sql");
|
SqlParameter param = (SqlParameter)support.get("param");
|
PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, sql, param);
|
return pageInfo;
|
}
|
|
|
|
@Override
|
public int getSelConfigDslListCount(HttpServletRequest request) {
|
Map support = getSelConfigDslSupport(request);
|
String sql = "SELECT COUNT(*) FROM ( " + (String)support.get("sql") + " ) A";
|
SqlParameter param = (SqlParameter)support.get("param");
|
int count = baseDao.queryForInteger(sql, param);
|
return count;
|
}
|
|
|
@Override
|
public void updateConfigLinkDsl(String linkId, String verId, String flag, String userId, String userName,String flowId) {
|
Long curDate = DateUtil.getCurrentDate14();
|
String sql = " UPDATE CMDB_DSL_LINK SET STATE=2,NEW_VERSION_ID=:verId,DEALER_ID=:userId,DEALER_NAME=:userName,UPDATE_TIME=:curDate,FLOW_ID = :flowId WHERE ID = :linkId";
|
if(flag.equals("1")){//新增的数据,修改所有版本号,但不修改标识
|
sql = " UPDATE CMDB_DSL_LINK SET DSL_VERSION_ID=:verId,NEW_VERSION_ID=:verId,DEALER_ID=:userId,DEALER_NAME=:userName,UPDATE_TIME=:curDate WHERE ID = :linkId";
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("linkId", linkId)
|
.addValue("verId", verId)
|
.addValue("userId", userId)
|
.addValue("userName", userName)
|
.addValue("curDate", curDate)
|
.addValue("flowId", flowId);
|
baseDao.execute(sql, param);
|
|
}
|
|
|
|
|
@Override
|
public void doRevertConfigDsl(String configId, String flowId) {
|
SqlParameter param = new SqlParameter();
|
param.addValue("flowId", flowId)
|
.addValue("configId", configId);
|
//新增的数据删除
|
baseDao.execute(" DELETE FROM CMDB_DSL_LINK WHERE STATE=1 AND FLOW_ID = :flowId AND CI_ID=:configId ", param);
|
//将要删除的数据恢复
|
baseDao.execute(" UPDATE CMDB_DSL_LINK SET STATE=NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE STATE=3 AND FLOW_ID = :flowId AND CI_ID=:configId ", param);
|
//将要修改的数据恢复
|
baseDao.execute(" UPDATE CMDB_DSL_LINK SET NEW_VERSION_ID=DSL_VERSION_ID,STATE=NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE STATE=3 AND FLOW_ID = :flowId AND CI_ID=:configId ", param);
|
}
|
|
@Override
|
public int getIsCanAddversion(HttpServletRequest request) {
|
String dslId = request.getParameter("dslId");
|
String flowId = request.getParameter("flowId");
|
Map param = new HashMap();
|
param.put("dslId", dslId);
|
param.put("flowId", flowId);
|
String sql = "SELECT COUNT(ID) FROM DSL_VERSION WHERE DSL_ID = :dslId AND (STATE = 1 OR (STATE = 3 AND CREATE_FLOW_ID =:flowId)) ";
|
int count = baseDao.queryForInteger(sql, param);
|
return count;
|
}
|
|
@Override
|
public Map queryDslMsgByVerId(String verId) {
|
if(StringUtil.notEmpty(verId)) {
|
String selectSql = "SELECT B.* FROM DSL_VERSION A,PROJECT_DSL B WHERE A.DSL_ID = B.ID AND A.ID = :verId";
|
Map dsl = baseDao.queryForMap(selectSql,new SqlParameter("verId",verId));
|
return dsl;
|
}
|
return new HashMap();
|
}
|
|
@Override
|
public void saveDslConfig(String oldVersion, String newVersion) {
|
String selectSql = "SELECT * FROM DSL_CONFIG_FILE WHERE VERSION_ID = :oldVersion AND DEL_FLAG = 1 ";
|
List<Map> configs = baseDao.queryForList(selectSql,new SqlParameter("oldVersion",oldVersion));
|
if(null!=configs && configs.size()>0) {
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
long create_time = DateUtil.getCurrentDate14();
|
for(Map map : configs) {
|
SqlParameter sqlParameter = new SqlParameter();
|
sqlParameter.putAll(map);
|
sqlParameter.put("ID", StringUtil.getUUID());
|
sqlParameter.put("CREATE_TIME", DateUtil.getCurrentDate14());
|
sqlParameter.put("VERSION_ID", newVersion);
|
paramList.add(sqlParameter);
|
}
|
|
String insertSql = "INSERT INTO DSL_CONFIG_FILE(ID,FILE_NAME,FILE_PATH,FILE_SIZE,FILE_FORMAT,VERSION_ID,ORDERNUM,FILE_NOTE,DSL_FIRST_CATE,DSL_SECOND_CATE,CREATE_TIME,USER_ID,USER_NAME,DEL_FLAG) VALUES (:ID,:FILE_NAME,:FILE_PATH,:FILE_SIZE,:FILE_FORMAT,:VERSION_ID,:ORDERNUM,:FILE_NOTE,:DSL_FIRST_CATE,:DSL_SECOND_CATE,:CREATE_TIME,:USER_ID,:USER_NAME,:DEL_FLAG)";
|
baseDao.executeBatch(insertSql,paramList);
|
}
|
|
}
|
|
@Override
|
public int queryDsllinkorderCount(HttpServletRequest request, String id) {
|
String sql = "SELECT COUNT(B.ID) FROM DSL_ORDER_LINK A,WORKFLOW_BASE B WHERE A.FLOW_ID = B.ID AND A.DSL_ID = :dsl_id ";
|
Map param = new HashMap();
|
param.put("dsl_id", id);
|
int count = baseDao.queryForInteger(sql, param);
|
return count;
|
}
|
|
@Override
|
public PageInfo queryDsllinkorderData(HttpServletRequest request, String id) {
|
String sql = "SELECT B.* FROM DSL_ORDER_LINK A,WORKFLOW_BASE B WHERE A.FLOW_ID = B.ID AND A.DSL_ID = :dsl_id ";
|
Map param = new HashMap();
|
param.put("dsl_id", id);
|
PageInfo info = baseDao.queryforSplitPageInfo(request, sql, param);
|
return info;
|
}
|
|
@Override
|
public int queryDsllinkciCount(HttpServletRequest request, String id) {
|
String sql = "SELECT COUNT(ID) FROM CMDB_DSL_LINK WHERE DSL_ID = :dslId AND STATE IS NULL ";
|
Map param = new HashMap();
|
param.put("dslId", id);
|
int count = baseDao.queryForInteger(sql, param);
|
return count;
|
}
|
|
@Override
|
public PageInfo queryDsllinkciData(HttpServletRequest request, String id) {
|
String sql = "SELECT A.*,B.ID AS CI_ID,B.CINAME,B.SEARCHCODE SEACHCODE,B.STATE USINGSTATE,B.LV3_ID THIRDLEVELID,(SELECT E.NAME FROM CMDB_CI_CATEGORY E WHERE B.LV1_ID = E.ID) AS FIRSTLEVELNAME,(SELECT C.NAME FROM CMDB_CI_CATEGORY C WHERE B.LV2_ID = C.ID) AS SECONDLEVELNAME,(SELECT D.NAME FROM CMDB_CI_CATEGORY D WHERE B.LV3_ID = D.ID) AS THIRDLEVELNAME FROM CMDB_DSL_LINK A,CMDB_CI_BASE B WHERE A.CI_ID = B.ID AND A.DSL_ID = :dslId AND A.STATE = 1 ";
|
Map param = new HashMap();
|
param.put("dslId", id);
|
PageInfo info = baseDao.queryforSplitPageInfo(request, sql, param);
|
return info;
|
}
|
|
@Override
|
public int queryDslHistoryCount(HttpServletRequest request, String id) {
|
String sql = "SELECT COUNT(ID) FROM DSL_VERSION WHERE DSL_ID = :dsl_id ";
|
Map param = new HashMap();
|
param.put("dsl_id", id);
|
int count = baseDao.queryForInteger(sql, param);
|
return count;
|
}
|
|
@Override
|
public PageInfo queryDslHistoryData(HttpServletRequest request, String id) {
|
String sql = "SELECT A.*,B.WFNAME FROM DSL_VERSION A LEFT JOIN WORKFLOW_BASE B ON A.CREATE_FLOW_ID = B.ID WHERE DSL_ID = :dsl_id ";
|
Map param = new HashMap();
|
param.put("dsl_id", id);
|
PageInfo info = baseDao.queryforSplitPageInfo(request, sql, param);
|
return info;
|
}
|
|
|
}
|