手册排序优化

This commit is contained in:
zhal 2023-07-07 15:24:22 +08:00
parent be4a711ac6
commit 84d9ffb931
3 changed files with 1736 additions and 1716 deletions

View File

@ -1,5 +1,11 @@
package com.actionsoft.apps.coe.pal.pal.repository.upfile.dao;
import com.actionsoft.apps.coe.pal.pal.repository.upfile.model.UpfileModel;
import com.actionsoft.bpms.commons.database.RowMapper;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.exception.AWSDataAccessException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@ -9,246 +15,261 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.actionsoft.apps.coe.pal.constant.CoEConstant;
import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepository;
import com.actionsoft.apps.coe.pal.pal.repository.model.impl.PALRepositoryModelImpl;
import com.actionsoft.bpms.commons.database.RowMapper;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.apps.coe.pal.pal.repository.upfile.model.UpfileModel;
import com.actionsoft.exception.AWSDataAccessException;
import com.actionsoft.sdk.local.SDK;
/**
* @author 作者 renmm
* @version 创建时间2014-4-8
*
*/
public class UpFileDao {
/**
* 创建附件Model
*
* @param model
* @return
*/
public int create(UpfileModel model) {
int result = 0;
Map<String, Object> paraMap = new HashMap<String, Object>();
paraMap.put(UpfileModel.FIELD_UUID, model.getUuid());
paraMap.put(UpfileModel.FIELD_PL_UUID, model.getPl_uuid());
paraMap.put(UpfileModel.FIELD_SHAPE_UUID, model.getShape_uuid());
paraMap.put(UpfileModel.FIELD_FILENAME, model.getFileName());
paraMap.put(UpfileModel.FIELD_DOWNLOAD, model.getDownload());
paraMap.put(UpfileModel.FIELD_TYPE, model.getType());
paraMap.put(UpfileModel.FIELD_CREATEUSER, model.getCreateUser());
paraMap.put(UpfileModel.FIELD_CREATETIME, model.getCreateTime());
if (model.getSecurityLevel()!=null){
paraMap.put(UpfileModel.FIELD_SECURITY_LEVEL,model.getSecurityLevel());
}
String sql = DBSql.getInsertStatement(UpfileModel.DATABASE_ENTITY, paraMap);
result = DBSql.update(sql.toString(), paraMap);
return result;
}
/**
* 创建附件Model
*
* @param model
* @return
*/
public int create(UpfileModel model) {
int result = 0;
Map<String, Object> paraMap = new HashMap<String, Object>();
paraMap.put(UpfileModel.FIELD_UUID, model.getUuid());
paraMap.put(UpfileModel.FIELD_PL_UUID, model.getPl_uuid());
paraMap.put(UpfileModel.FIELD_SHAPE_UUID, model.getShape_uuid());
paraMap.put(UpfileModel.FIELD_FILENAME, model.getFileName());
paraMap.put(UpfileModel.FIELD_DOWNLOAD, model.getDownload());
paraMap.put(UpfileModel.FIELD_TYPE, model.getType());
paraMap.put(UpfileModel.FIELD_CREATEUSER, model.getCreateUser());
paraMap.put(UpfileModel.FIELD_CREATETIME, model.getCreateTime());
if (model.getSecurityLevel() != null) {
paraMap.put(UpfileModel.FIELD_SECURITY_LEVEL, model.getSecurityLevel());
}
String sql = DBSql.getInsertStatement(UpfileModel.DATABASE_ENTITY, paraMap);
result = DBSql.update(sql.toString(), paraMap);
return result;
}
/**
* 按条件进行更新
* @param model
* @return
*/
public int update(UpfileModel model){
List<Object> args = new ArrayList<>();
StringBuffer sql = new StringBuffer("update " +UpfileModel.DATABASE_ENTITY+" set ");
if (null != model.getPl_uuid()){
sql.append(UpfileModel.FIELD_PL_UUID + "=?,");
args.add(model.getPl_uuid());
}
if (null != model.getShape_uuid()){
sql.append(UpfileModel.FIELD_SHAPE_UUID + "=?,");
args.add(model.getShape_uuid());
}
if (null != model.getFileName()){
sql.append(UpfileModel.FIELD_FILENAME +"=?,");
args.add(model.getFileName());
}
if (null != model.getSecurityLevel()){
sql.append(UpfileModel.FIELD_SECURITY_LEVEL + "=?,");
args.add(model.getSecurityLevel());
}
int index = sql.lastIndexOf(",");
sql.setCharAt(index,' ');
sql.append("where "+UpfileModel.FIELD_UUID+"=?");
args.add(model.getUuid());
return DBSql.update(sql.toString(), args.toArray());
}
public boolean batchInsert(List<UpfileModel> list) {
Connection conn = DBSql.open();
PreparedStatement prest = null;
try {
conn.setAutoCommit(false);
String sql = "insert into " + UpfileModel.DATABASE_ENTITY + "(" + UpfileModel.FIELD_UUID + "," + UpfileModel.FIELD_PL_UUID + "," + UpfileModel.FIELD_SHAPE_UUID + "," + UpfileModel.FIELD_TYPE + "," + UpfileModel.FIELD_FILENAME + "," + UpfileModel.FIELD_DOWNLOAD + "," + UpfileModel.FIELD_CREATEUSER + "," + UpfileModel.FIELD_CREATETIME +","+UpfileModel.FIELD_SECURITY_LEVEL+")" + " VALUES(?,?,?,?,?,?,?,?,?)";
prest = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < list.size(); i++) {
UpfileModel model = list.get(i);
prest.setString(1, model.getUuid());
prest.setString(2, model.getPl_uuid());
prest.setString(3, model.getShape_uuid());
prest.setString(4, model.getType());
prest.setString(5, model.getFileName());
prest.setInt(6, model.getDownload());
prest.setString(7, model.getCreateUser());
prest.setTimestamp(8, model.getCreateTime());
if (null != model.getSecurityLevel()){
prest.setInt(9,model.getSecurityLevel());
}else {
prest.setInt(9,-1);
}
prest.addBatch();
}
prest.executeBatch();
conn.commit();
return true;
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
} finally {
DBSql.close(conn, prest, null);
}
return false;
}
/**
* 按条件进行更新
*
* @param model
* @return
*/
public int update(UpfileModel model) {
List<Object> args = new ArrayList<>();
StringBuffer sql = new StringBuffer("update " + UpfileModel.DATABASE_ENTITY + " set ");
if (null != model.getPl_uuid()) {
sql.append(UpfileModel.FIELD_PL_UUID + "=?,");
args.add(model.getPl_uuid());
}
if (null != model.getShape_uuid()) {
sql.append(UpfileModel.FIELD_SHAPE_UUID + "=?,");
args.add(model.getShape_uuid());
}
if (null != model.getFileName()) {
sql.append(UpfileModel.FIELD_FILENAME + "=?,");
args.add(model.getFileName());
}
if (null != model.getSecurityLevel()) {
sql.append(UpfileModel.FIELD_SECURITY_LEVEL + "=?,");
args.add(model.getSecurityLevel());
}
int index = sql.lastIndexOf(",");
sql.setCharAt(index, ' ');
sql.append("where " + UpfileModel.FIELD_UUID + "=?");
args.add(model.getUuid());
return DBSql.update(sql.toString(), args.toArray());
}
public List<UpfileModel> search(String sqlWhere) {
StringBuffer sql = new StringBuffer();
sql.append("select * from ").append(UpfileModel.DATABASE_ENTITY).append(" where 1 = 1 ").append(sqlWhere);
try {
return DBSql.query(sql.toString(), new UpfileModelMapper());
} catch (AWSDataAccessException e) {
e.printStackTrace();
}
return new ArrayList<UpfileModel>();
}
public boolean batchInsert(List<UpfileModel> list) {
Connection conn = DBSql.open();
PreparedStatement prest = null;
try {
conn.setAutoCommit(false);
String sql = "insert into " + UpfileModel.DATABASE_ENTITY + "(" + UpfileModel.FIELD_UUID + "," + UpfileModel.FIELD_PL_UUID + "," + UpfileModel.FIELD_SHAPE_UUID + "," + UpfileModel.FIELD_TYPE + "," + UpfileModel.FIELD_FILENAME + "," + UpfileModel.FIELD_DOWNLOAD + "," + UpfileModel.FIELD_CREATEUSER + "," + UpfileModel.FIELD_CREATETIME + "," + UpfileModel.FIELD_SECURITY_LEVEL + ")" + " VALUES(?,?,?,?,?,?,?,?,?)";
prest = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < list.size(); i++) {
UpfileModel model = list.get(i);
prest.setString(1, model.getUuid());
prest.setString(2, model.getPl_uuid());
prest.setString(3, model.getShape_uuid());
prest.setString(4, model.getType());
prest.setString(5, model.getFileName());
prest.setInt(6, model.getDownload());
prest.setString(7, model.getCreateUser());
prest.setTimestamp(8, model.getCreateTime());
if (null != model.getSecurityLevel()) {
prest.setInt(9, model.getSecurityLevel());
} else {
prest.setInt(9, -1);
}
prest.addBatch();
}
prest.executeBatch();
conn.commit();
return true;
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
} finally {
DBSql.close(conn, prest, null);
}
return false;
}
private class UpfileModelMapper implements RowMapper<UpfileModel> {
public UpfileModel mapRow(ResultSet rs, int arg1) throws SQLException {
UpfileModel model = new UpfileModel();
try {
model.setUuid(rs.getString(UpfileModel.FIELD_UUID));
model.setPl_uuid(rs.getString(UpfileModel.FIELD_PL_UUID));
model.setShape_uuid(rs.getString(UpfileModel.FIELD_SHAPE_UUID));
model.setType(rs.getString(UpfileModel.FIELD_TYPE));
model.setFileName(rs.getString(UpfileModel.FIELD_FILENAME));
model.setCreateUser(rs.getString(UpfileModel.FIELD_CREATEUSER));
model.setCreateTime(rs.getTimestamp(UpfileModel.FIELD_CREATETIME));
model.setDownload(rs.getInt(UpfileModel.FIELD_DOWNLOAD));
//文件密级
model.setSecurityLevel(rs.getInt(UpfileModel.FIELD_SECURITY_LEVEL));
// model.setFileType(rs.getString(UpfileModel.FIELD_FILETYPE));
public List<UpfileModel> search(String sqlWhere) {
StringBuffer sql = new StringBuffer();
sql.append("select * from ").append(UpfileModel.DATABASE_ENTITY).append(" where 1 = 1 ").append(sqlWhere);
try {
return DBSql.query(sql.toString(), new UpfileModelMapper());
} catch (AWSDataAccessException e) {
e.printStackTrace();
}
return new ArrayList<UpfileModel>();
}
} catch (SQLException e) {
e.printStackTrace();
}
return model;
}
}
public List<UpfileModel> searchBGroup(String sqlWhere) {
StringBuffer sql = new StringBuffer();
sql.append("select ID,SHAPEID,FILETYPE,DOWNLOAD,PALREPOSITORYID,FILENAME from ").append(UpfileModel.DATABASE_ENTITY).append(" where 1 = 1 ").append(sqlWhere);
try {
return DBSql.query(sql.toString(), new UpfileModelMapper());
} catch (AWSDataAccessException e) {
e.printStackTrace();
}
return new ArrayList<UpfileModel>();
}
public UpfileModel record2Model(ResultSet rs) {
UpfileModel model = new UpfileModel();
try {
model.setUuid(rs.getString(UpfileModel.FIELD_UUID));
model.setPl_uuid(rs.getString(UpfileModel.FIELD_PL_UUID));
model.setShape_uuid(rs.getString(UpfileModel.FIELD_SHAPE_UUID));
model.setType(rs.getString(UpfileModel.FIELD_TYPE));
model.setFileName(rs.getString(UpfileModel.FIELD_FILENAME));
model.setDownload(rs.getInt(UpfileModel.FIELD_DOWNLOAD));
} catch (SQLException e) {
e.printStackTrace();
}
return model;
}
private class UpfileModelMapper implements RowMapper<UpfileModel> {
public UpfileModel mapRow(ResultSet rs, int arg1) throws SQLException {
UpfileModel model = new UpfileModel();
try {
model.setUuid(rs.getString(UpfileModel.FIELD_UUID));
model.setPl_uuid(rs.getString(UpfileModel.FIELD_PL_UUID));
model.setShape_uuid(rs.getString(UpfileModel.FIELD_SHAPE_UUID));
model.setType(rs.getString(UpfileModel.FIELD_TYPE));
model.setFileName(rs.getString(UpfileModel.FIELD_FILENAME));
model.setCreateUser(rs.getString(UpfileModel.FIELD_CREATEUSER));
model.setCreateTime(rs.getTimestamp(UpfileModel.FIELD_CREATETIME));
model.setDownload(rs.getInt(UpfileModel.FIELD_DOWNLOAD));
//文件密级
model.setSecurityLevel(rs.getInt(UpfileModel.FIELD_SECURITY_LEVEL));
// model.setFileType(rs.getString(UpfileModel.FIELD_FILETYPE));
public int delete(String uuid) {
int result = 0;
StringBuffer sql = new StringBuffer();
sql.append("delete from ").append(UpfileModel.DATABASE_ENTITY).append(" where id = '" + uuid + "'");
result = DBSql.update(sql.toString());
return result;
}
public int deleteByShape(String sqlWhere) {
int result = 0;
StringBuffer sql = new StringBuffer();
sql.append("delete from ").append(UpfileModel.DATABASE_ENTITY).append(" where 1 = 1 ").append(sqlWhere);
result = DBSql.update(sql.toString());
return result;
}
} catch (SQLException e) {
e.printStackTrace();
}
return model;
public UpfileModel get(String uuid) {
List<UpfileModel> search = search(" and id ='" + uuid + "'");
return search.size() == 0 ? null : search.get(0);
}
}
}
// 查询某个模型的所有附件
public List<UpfileModel> searchByRepositoryId(String repositoryId) {
return search(" AND PALREPOSITORYID='" + repositoryId + "'");
}
public UpfileModel record2Model(ResultSet rs) {
UpfileModel model = new UpfileModel();
try {
model.setUuid(rs.getString(UpfileModel.FIELD_UUID));
model.setPl_uuid(rs.getString(UpfileModel.FIELD_PL_UUID));
model.setShape_uuid(rs.getString(UpfileModel.FIELD_SHAPE_UUID));
model.setType(rs.getString(UpfileModel.FIELD_TYPE));
model.setFileName(rs.getString(UpfileModel.FIELD_FILENAME));
model.setDownload(rs.getInt(UpfileModel.FIELD_DOWNLOAD));
} catch (SQLException e) {
e.printStackTrace();
}
return model;
public List<UpfileModel> searchByRepositoryId(String repositoryId, String type) {
StringBuffer sqlWhere = new StringBuffer();
if (!UtilString.isEmpty(type)) {
sqlWhere.append(" and PALREPOSITORYID ='").append(repositoryId).append("' and FILETYPE='").append(type).append("'");
}
return search(sqlWhere.toString());
}
}
/**
* 按照条件查询
* @param repositoryId
* @param shapeId
* @param type f,s
* @return
*/
public List<UpfileModel> search(String repositoryId, String shapeId, String type) {
StringBuffer sql = new StringBuffer();
sql.append("select * from ").append(UpfileModel.DATABASE_ENTITY).append(" where 1 = 1 ");
Map<String, Object> param = new HashMap<String, Object>();
if (UtilString.isNotEmpty(repositoryId)) {
sql.append(" and PALREPOSITORYID=:PALREPOSITORYID");
param.put("PALREPOSITORYID", repositoryId);
}
if (UtilString.isNotEmpty(type)) {
sql.append(" and FILETYPE=:FILETYPE");
param.put("FILETYPE", "file".equals(type) ? "f" : "shape".equals(type) ? "s" : type);
}
if (UtilString.isNotEmpty(shapeId)) {
sql.append(" and SHAPEID=:SHAPEID");
param.put("SHAPEID", shapeId);
}
sql.append(" ORDER BY " + UpfileModel.FIELD_CREATETIME + " DESC");
return DBSql.query(sql.toString(), param, new UpfileModelMapper());
}
/**
* 获取关联附件
*
* @param uuid
* @param shapeId
* @param type
* @return
* @author zhangming
*/
@Deprecated
public List<UpfileModel> getRelationUpfile(String uuid, String shapeId, String type) {
String sql = "SELECT f.* FROM APP_ACT_COE_PAL_UPFILE f, APP_ACT_COE_PAL_SHAPE_RLAT r WHERE r.FILEID=? AND f.PALREPOSITORYID = r.RELATIONFILEID AND f.SHAPEID = r.RELATIONSHAPEID";
if (type.equals("file")) {
return DBSql.query(sql, new UpfileModelMapper(), new Object[] { uuid });
} else {
sql += " AND r.SHAPEID=?";
return DBSql.query(sql, new UpfileModelMapper(), new Object[] { uuid, shapeId });
}
}
public int delete(String uuid) {
int result = 0;
StringBuffer sql = new StringBuffer();
sql.append("delete from ").append(UpfileModel.DATABASE_ENTITY).append(" where id = '" + uuid + "'");
result = DBSql.update(sql.toString());
return result;
}
public int deleteByShape(String sqlWhere) {
int result = 0;
StringBuffer sql = new StringBuffer();
sql.append("delete from ").append(UpfileModel.DATABASE_ENTITY).append(" where 1 = 1 ").append(sqlWhere);
result = DBSql.update(sql.toString());
return result;
}
public UpfileModel get(String uuid) {
List<UpfileModel> search = search(" and id ='" + uuid + "'");
return search.size() == 0 ? null : search.get(0);
}
// 查询某个模型的所有附件
public List<UpfileModel> searchByRepositoryId(String repositoryId) {
return search(" AND PALREPOSITORYID='" + repositoryId + "'");
}
public List<UpfileModel> searchByRepositoryId(String repositoryId, String type) {
StringBuffer sqlWhere = new StringBuffer();
if (!UtilString.isEmpty(type)) {
sqlWhere.append(" and PALREPOSITORYID ='").append(repositoryId).append("' and FILETYPE='").append(type).append("'");
}
return search(sqlWhere.toString());
}
public List<UpfileModel> searchByRepositoryIdGroupByFilename(String repositoryId, String type) {
StringBuffer sqlWhere = new StringBuffer();
if (!UtilString.isEmpty(type)) {
sqlWhere.append(" and PALREPOSITORYID ='").append(repositoryId).append("' and FILETYPE='").append(type).append("'").append("GROUP BY ID,SHAPEID,FILETYPE,DOWNLOAD,PALREPOSITORYID,FILENAME");
}
System.out.println("sqlWhere=============" + sqlWhere);
return searchBGroup(sqlWhere.toString());
}
/**
* 按照条件查询
*
* @param repositoryId
* @param shapeId
* @param type f,s
* @return
*/
public List<UpfileModel> search(String repositoryId, String shapeId, String type) {
StringBuffer sql = new StringBuffer();
sql.append("select * from ").append(UpfileModel.DATABASE_ENTITY).append(" where 1 = 1 ");
Map<String, Object> param = new HashMap<String, Object>();
if (UtilString.isNotEmpty(repositoryId)) {
sql.append(" and PALREPOSITORYID=:PALREPOSITORYID");
param.put("PALREPOSITORYID", repositoryId);
}
if (UtilString.isNotEmpty(type)) {
sql.append(" and FILETYPE=:FILETYPE");
param.put("FILETYPE", "file".equals(type) ? "f" : "shape".equals(type) ? "s" : type);
}
if (UtilString.isNotEmpty(shapeId)) {
sql.append(" and SHAPEID=:SHAPEID");
param.put("SHAPEID", shapeId);
}
sql.append(" ORDER BY " + UpfileModel.FIELD_CREATETIME + " DESC");
return DBSql.query(sql.toString(), param, new UpfileModelMapper());
}
/**
* 获取关联附件
*
* @param uuid
* @param shapeId
* @param type
* @return
* @author zhangming
*/
@Deprecated
public List<UpfileModel> getRelationUpfile(String uuid, String shapeId, String type) {
String sql = "SELECT f.* FROM APP_ACT_COE_PAL_UPFILE f, APP_ACT_COE_PAL_SHAPE_RLAT r WHERE r.FILEID=? AND f.PALREPOSITORYID = r.RELATIONFILEID AND f.SHAPEID = r.RELATIONSHAPEID";
if (type.equals("file")) {
return DBSql.query(sql, new UpfileModelMapper(), new Object[]{uuid});
} else {
sql += " AND r.SHAPEID=?";
return DBSql.query(sql, new UpfileModelMapper(), new Object[]{uuid, shapeId});
}
}
}