Commit 4c4b4713 by liuyang

Merge branch 'dev' of http://git.pseer.com:8800/platform/hg-smart into dev-ly

parents 2990d0ac 12ac6646
package com.baosight.hggp.hg.wd.domain;
import com.baosight.iplat4j.core.util.NumberUtils;
import com.baosight.iplat4j.core.ei.EiColumn;
import com.baosight.iplat4j.core.data.DaoEPBase;
import com.baosight.iplat4j.core.ei.EiColumn;
import com.baosight.iplat4j.core.util.NumberUtils;
import com.baosight.iplat4j.core.util.StringUtils;
import java.util.HashMap;
import java.util.Map;
import com.baosight.iplat4j.core.util.StringUtils;
/**
* Project: <br>
......@@ -46,6 +47,7 @@ public class HGWD001 extends DaoEPBase {
public static final String FIELD_REMARK = "remark"; /* 备注*/
public static final String FIELD_RELEASE_DATE = "releaseDate"; /* 发布时间*/
public static final String FIELD_FILE_PATH = "filePath"; /* 文件路径*/
public static final String FIELD_FILE_ID_PATH = "filePath"; /* 文件ID路径*/
public static final String COL_ID = "ID";
public static final String COL_ACCOUNT_CODE = "ACCOUNT_CODE"; /* 企业编码*/
......@@ -104,6 +106,7 @@ public class HGWD001 extends DaoEPBase {
private String remark = " "; /* 备注*/
private String releaseDate = " "; /* 发布时间*/
private String filePath = " ";
private String fileIdPath = " ";
/**
* initialize the metadata.
......@@ -211,6 +214,10 @@ public class HGWD001 extends DaoEPBase {
eiColumn = new EiColumn(FIELD_FILE_PATH);
eiColumn.setDescName("文件路径");
eiMetadata.addMeta(eiColumn);
eiColumn = new EiColumn(FIELD_FILE_ID_PATH);
eiColumn.setDescName("文件ID路径");
eiMetadata.addMeta(eiColumn);
}
/**
......@@ -603,6 +610,15 @@ public class HGWD001 extends DaoEPBase {
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public String getFileIdPath() {
return fileIdPath;
}
public void setFileIdPath(String fileIdPath) {
this.fileIdPath = fileIdPath;
}
/**
* get the value from Map.
*
......@@ -636,6 +652,7 @@ public class HGWD001 extends DaoEPBase {
setRemark(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_REMARK)), remark));
setReleaseDate(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_RELEASE_DATE)), releaseDate));
setFilePath(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_FILE_PATH)), filePath));
setFileIdPath(StringUtils.defaultIfEmpty(StringUtils.toString(map.get(FIELD_FILE_ID_PATH)), fileIdPath));
}
/**
......@@ -670,6 +687,7 @@ public class HGWD001 extends DaoEPBase {
map.put(FIELD_REMARK, StringUtils.toString(remark, eiMetadata.getMeta(FIELD_REMARK)));
map.put(FIELD_RELEASE_DATE, StringUtils.toString(releaseDate, eiMetadata.getMeta(FIELD_RELEASE_DATE)));
map.put(FIELD_FILE_PATH, StringUtils.toString(filePath, eiMetadata.getMeta(FIELD_FILE_PATH)));
map.put(FIELD_FILE_ID_PATH, StringUtils.toString(fileIdPath, eiMetadata.getMeta(FIELD_FILE_ID_PATH)));
return map;
}
......
......@@ -516,18 +516,19 @@ public class ServiceHGWD001 extends ServiceEPBase {
queryMap.get(HGWD001.FIELD_PARENT_ID));
}*/
// 要复制目录集合
if (Objects.nonNull(detail2Rows)){
String parentId = detail2Rows.get(0).getFileId().length()>0?detail2Rows.get(0).getFileId():detail2Rows.get(0).getProjCode();
if (Objects.nonNull(detail2Rows)) {
String parentId = detail2Rows.get(0).getFileId().length() > 0 ? detail2Rows.get(0).getFileId()
: detail2Rows.get(0).getProjCode();
if (!StringUtils.isNull(result2Rows)) {
result2Rows.forEach(hgwd001 -> {
hgwd001.setParentId(parentId);
hgwd001.setFilePath(detail2Rows.get(0).getFilePath()+"/"+hgwd001.getFileName());
hgwd001.setFilePath(detail2Rows.get(0).getFilePath() + "/" + hgwd001.getFileName());
hgwd001.setFileIdPath(detail2Rows.get(0).getFileIdPath() + "/" + hgwd001.getFileId());
});
// 查询添加子节点
addNode(result2Rows);
}
}
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作复制文件成功!");
} catch (Exception e) {
......@@ -546,7 +547,8 @@ public class ServiceHGWD001 extends ServiceEPBase {
hgwd001s.forEach(o -> {
if (o.getParentId().equals(hgwd001.getFileId())) {
o.setParentId(fileId);
o.setFilePath(hgwd001.getFilePath()+"/"+o.getFileName());
o.setFilePath(hgwd001.getFilePath() + "/" + o.getFileName());
o.setFileIdPath(hgwd001.getFileIdPath() + "/" + o.getFileId());
}
});
}
......
......@@ -35,7 +35,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
/**
......@@ -226,7 +225,7 @@ public class ServiceHGWD001D extends TreeService {
if (CommonConstant.Field.ROOT.equals(node) || CommonConstant.Field.ROOT2.equals(node)) {
inInfo.addBlock(node).setRows(queryTopNode(node));
} else if (ProjectSourceEnum.contains(node)) {
inInfo.addBlock(node).setRows(queryFirstNode(node, ename));
inInfo.addBlock(node).setRows(queryFirstNode(node, ename, pageCode));
} else {
inInfo.addBlock(node).setRows(queryChildNode(projCode, node, ename, pageCode));
}
......@@ -287,9 +286,10 @@ public class ServiceHGWD001D extends TreeService {
*
* @param parentId
* @param ename
* @param pageCode 页码
* @return
*/
public List queryFirstNode(String parentId, String ename) {
public List queryFirstNode(String parentId, String ename, String pageCode) {
// SPARE:备件制造图不限制;非管理员仅查询自己有权限的项目
String userId = UserSessionUtils.getLoginName();
boolean isManager = HgWdUtils.HgWd009.isManager(userId);
......@@ -307,9 +307,12 @@ public class ServiceHGWD001D extends TreeService {
return results;
}
for (HGSC001 dbSc001 : dbSc001s) {
int count = getChildCount(dbSc001.getProjCode(), isManager, isSpare, pageCode);
if ("HGWD002".equals(pageCode) && count == 0) {
continue;
}
String text = dbSc001.getProjName() + "(" + dbSc001.getProjCode() + ")";
Map leafMap = buildLeaf(parentId, dbSc001.getProjCode(), text, HgWdConstant.LeafType.P);
int count = getChildCount(dbSc001.getProjCode(), isManager, isSpare, null);
leafMap.put("projCode", dbSc001.getProjCode());
leafMap.put("projName", dbSc001.getProjName());
leafMap.put("ename", dbSc001.getProjCode());
......@@ -355,8 +358,11 @@ public class ServiceHGWD001D extends TreeService {
// 查询目录授权人数
List<HGWD003> dbWd003s = HGWDTools.HgWd003.list(fileIds);
for (HGWD001 dbWd001 : dbWd001s) {
Map leafMap = buildLeaf(parentId, dbWd001.getFileId(), dbWd001.getFileName(), HgWdConstant.LeafType.C);
int count = getChildCount(dbWd001.getFileId(), isManager, isSpare, pageCode);
if ("HGWD002".equals(pageCode) && count == 0) {
continue;
}
Map leafMap = buildLeaf(parentId, dbWd001.getFileId(), dbWd001.getFileName(), HgWdConstant.LeafType.C);
leafMap.put("projCode", dbWd001.getProjCode());
leafMap.put("projName", dbWd001.getProjName());
leafMap.put("ename", dbWd001.getProjCode());
......@@ -364,9 +370,6 @@ public class ServiceHGWD001D extends TreeService {
leafMap.put("leafLevel", dbWd001.getLeafLevel());
leafMap.put("count", count);
leafMap.put("filePath", dbWd001.getFilePath());
if ("HGWD002".equals(pageCode) && count == 0) {
continue;
}
if (!isManager && !isSpare) {
leafMap.put("isAuth", "1");
// 从已授权的信息中查找出自己
......@@ -385,6 +388,27 @@ public class ServiceHGWD001D extends TreeService {
}
/**
* 搜索树
*
* @param inInfo
* @return
*/
public EiInfo searchTree(EiInfo inInfo) {
try {
Map queryMap = EiInfoUtils.getFirstRow(inInfo);
// 查询有权限的目录和备件目录,管理员不做限制
if (!HgWdUtils.HgWd009.isManager()) {
queryMap.put("userId", UserSessionUtils.getLoginName());
}
List<HGWD001> nodeWds = dao.query(HGWD001.QUERY, queryMap);
// 查询父级结构
} catch (Exception e) {
LogUtils.setMsg(inInfo, e, "搜索节点失败");
}
return inInfo;
}
/**
* 设置叶子节点是否可以展开
*
* @param nodes
......@@ -430,9 +454,7 @@ public class ServiceHGWD001D extends TreeService {
* @return 节点数量
*/
public int getChildCount(String fileId, boolean isManager, boolean isSpare, String pageCode) {
List<HGWD001> hgwd001List = HgWdUtils.HgWd001.queryChildren(fileId, isManager, isSpare); //查询子级目录
List<String> childIds = Optional.ofNullable(hgwd001List).orElse(new ArrayList<>()).stream()
.map(HGWD001::getFileId).collect(Collectors.toList());
List<String> childIds = HgWdUtils.HgWd001.queryChildrenId(fileId, isManager, isSpare); //查询子级目录
// 已授权人员信息
List<HGWD003> dbWd003List = HGWDTools.HgWd003.list(childIds);
List<HGWD099> fWd099s = HGWDTools.HgWd099.queryByBiz("WD", childIds, pageCode);
......
......@@ -13,10 +13,12 @@ import com.baosight.hggp.hg.sc.tools.HGSCTools;
import com.baosight.hggp.hg.wd.constant.HgWdConstant;
import com.baosight.hggp.hg.wd.domain.HGWD001;
import com.baosight.hggp.hg.wd.domain.HGWD001A;
import com.baosight.hggp.hg.wd.domain.HGWD005;
import com.baosight.hggp.hg.wd.tools.HGWDTools;
import com.baosight.hggp.hg.xs.domain.Org;
import com.baosight.hggp.util.*;
import com.baosight.hggp.util.AssertUtils;
import com.baosight.hggp.util.CommonMethod;
import com.baosight.hggp.util.EiInfoUtils;
import com.baosight.hggp.util.LogUtils;
import com.baosight.hggp.util.contants.ACConstants;
import com.baosight.iplat4j.core.ei.EiBlock;
import com.baosight.iplat4j.core.ei.EiConstant;
......@@ -24,7 +26,11 @@ import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.service.impl.ServiceEPBase;
import com.baosight.iplat4j.ed.util.SequenceGenerator;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -84,12 +90,14 @@ public class ServiceHGWD001E extends ServiceEPBase {
hgwd001.setStatus(HgWdConstant.FileStatus.S_0);
// 设置项目信息
this.setProjectInfo(hgwd001);
if (wd001 == null){
String filePath = setFilePath(hgsc001,edcm01Map.get("app.sc.projectSource"));
hgwd001.setFilePath(filePath+"/"+hgwd001.getFileName());
}else {
hgwd001.setFilePath(wd001.getFilePath()+"/"+hgwd001.getFileName());
}
if (wd001 == null) {
String filePath = setFilePath(hgsc001, edcm01Map.get("app.sc.projectSource"));
hgwd001.setFilePath(filePath + "/" + hgwd001.getFileName());
hgwd001.setFileIdPath(setFileIdPath(hgsc001));
} else {
hgwd001.setFilePath(wd001.getFilePath() + "/" + hgwd001.getFileName());
hgwd001.setFileIdPath(wd001.getFilePath() + "/" + hgwd001.getFileId());
}
if (hgwd001.getId() == null || hgwd001.getId() == 0) {
this.add(hgwd001);
} else {
......@@ -182,4 +190,8 @@ public class ServiceHGWD001E extends ServiceEPBase {
String filePath = edcm01List.stream().filter(map -> map.get("itemCode").equals(hgsc001.getProjectSource())).findAny().get().get("itemCname").toString();
return filePath+"/"+hgsc001.getProjName();
}
private String setFileIdPath(HGSC001 hgsc001) {
return hgsc001.getProjectSource() + "/" + hgsc001.getProjCode();
}
}
......@@ -76,22 +76,25 @@ public class ServiceHGWD001F extends ServiceEPBase {
// 写入数据
for (Map resultRow : resultRows) {
HGWD001 hgwd001 = new HGWD001();
hgwd001.fromMap(resultRow);
hgwd001.setStatus(HgWdConstant.FileStatus.S_0);
if (wd001 == null){
AssertUtils.isEmpty(Collections.singleton(hgwd001), "项目编号不能为空");
String filePath = setFilePath(hgsc001,edcm01Map.get("app.sc.projectSource"));
hgwd001.setFilePath(filePath+"/"+hgwd001.getFileName());
}else {
hgwd001.setFilePath(wd001.getFilePath()+"/"+hgwd001.getFileName());
}
if (hgwd001.getId() == null || hgwd001.getId() == 0) {
this.add(hgwd001);
} else {
String wd001FilePath = wd001 == null? setFilePath(hgsc001,edcm01Map.get("app.sc.projectSource")):wd001.getFilePath();
this.modify(hgwd001,wd001FilePath,edcm01Map);
}
hgwd001.fromMap(resultRow);
hgwd001.setStatus(HgWdConstant.FileStatus.S_0);
if (wd001 == null) {
AssertUtils.isEmpty(Collections.singleton(hgwd001), "项目编号不能为空");
String filePath = setFilePath(hgsc001, edcm01Map.get("app.sc.projectSource"));
hgwd001.setFilePath(filePath + "/" + hgwd001.getFileName());
hgwd001.setFileIdPath(setFileIdPath(hgsc001));
} else {
hgwd001.setFilePath(wd001.getFilePath() + "/" + hgwd001.getFileName());
hgwd001.setFileIdPath(wd001.getFilePath() + "/" + hgwd001.getFileId());
}
if (hgwd001.getId() == null || hgwd001.getId() == 0) {
this.add(hgwd001);
} else {
String wd001FilePath = wd001 == null ? setFilePath(hgsc001, edcm01Map.get("app.sc.projectSource"))
: wd001.getFilePath();
String wd001FileIdPath = wd001 == null ? setFileIdPath(hgsc001) : wd001.getFileIdPath();
this.modify(hgwd001, wd001FilePath, wd001FileIdPath, edcm01Map);
}
}
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + resultRows.size() + "]条数据保存成功!");
......@@ -124,9 +127,10 @@ public class ServiceHGWD001F extends ServiceEPBase {
* 修改操作
* @param hgwd001 文件信息
* @param wd001FilePath 文件路径
* @param wd001FileIdPath 文件ID路径
* @param edcm01Map 小代碼
*/
public void modify(HGWD001 hgwd001,String wd001FilePath,Map<String, List<Map<String, Object>>> edcm01Map) {
public void modify(HGWD001 hgwd001,String wd001FilePath, String wd001FileIdPath, Map<String, List<Map<String, Object>>> edcm01Map) {
HGWD001 wd001out =HGWDTools.HgWd001.get(hgwd001.getId());
HGWD001A hgwd001a = new HGWD001A();
hgwd001a.setCompanyCode(hgwd001.getCompanyCode());
......@@ -150,27 +154,36 @@ public class ServiceHGWD001F extends ServiceEPBase {
}
DaoUtils.update(HGWD001.UPDATE, hgwd001);
updateFilePath(hgwd001,wd001out,wd001FilePath);
updateFilePath(hgwd001,wd001out,wd001FilePath, wd001FileIdPath);
}
public void updateFilePath(HGWD001 hgwd001,HGWD001 wd001out,String wd001FilePath) {
public void updateFilePath(HGWD001 hgwd001,HGWD001 wd001out,String wd001FilePath, String wd001FileIdPath) {
List<Map> childList = HGWDTools.HgWd001.queryFileChild(hgwd001.getFileId());
List<String> childFileIdList = Optional.ofNullable(childList).orElse(new ArrayList<>()).stream()
.filter(map -> !hgwd001.getFileId().equals(map.get(HGWD001.FIELD_FILE_ID)))
.map(map -> map.get(HGWD001.FIELD_FILE_ID).toString()).collect(Collectors.toList());
List<HGWD099> hgwd099List = HGWDTools.HgWd099.queryByBiz("WD",childFileIdList);
Map<String, List<HGWD099>> listMap = Optional.ofNullable(hgwd099List).orElse(new ArrayList<>()).stream().collect(Collectors.groupingBy(HGWD099::getBizId,Collectors.toList()));
int end =wd001out ==null ? 0: wd001out.getFilePath().length()+1;
if (childList != null && childList.size() > 0) {
for (Map child : childList) {
List<String> childFileIdList = Optional.ofNullable(childList).orElse(new ArrayList<>()).stream()
.filter(map -> !hgwd001.getFileId().equals(map.get(HGWD001.FIELD_FILE_ID)))
.map(map -> map.get(HGWD001.FIELD_FILE_ID).toString()).collect(Collectors.toList());
List<HGWD099> hgwd099List = HGWDTools.HgWd099.queryByBiz("WD", childFileIdList);
Map<String, List<HGWD099>> listMap = Optional.ofNullable(hgwd099List).orElse(new ArrayList<>()).stream()
.collect(Collectors.groupingBy(HGWD099::getBizId, Collectors.toList()));
int end = wd001out == null ? 0 : wd001out.getFilePath().length() + 1;
int endFileIdPathIndex = wd001out == null ? 0 : wd001out.getFileIdPath().length() + 1;
if (childList != null && childList.size() > 0) {
for (Map child : childList) {
HGWD001 childOut = new HGWD001();
childOut.fromMap(child);
if (!hgwd001.getFileId().equals(childOut.getFileId())){
String filePathEnd = child.get(HGWD001.FIELD_FILE_PATH).toString().substring(end);
StringBuffer filePath = new StringBuffer();
filePath.append(wd001FilePath).append("/").append(hgwd001.getFileName()).append("/").append(filePathEnd);
childOut.setFilePath(filePath.toString());
DaoUtils.update(HgWdSqlConstant.HgWd001.UPDATE_FILE_PATH, childOut);
if (!hgwd001.getFileId().equals(childOut.getFileId())) {
String filePathEnd = child.get(HGWD001.FIELD_FILE_PATH).toString().substring(end);
String fileIdPathEnd = child.get(HGWD001.FIELD_FILE_ID_PATH).toString()
.substring(endFileIdPathIndex);
StringBuffer filePath = new StringBuffer();
filePath.append(wd001FilePath).append("/").append(hgwd001.getFileName()).append("/")
.append(filePathEnd);
childOut.setFilePath(filePath.toString());
StringBuffer fileIdPath = new StringBuffer();
fileIdPath.append(wd001FileIdPath).append("/").append(hgwd001.getFileId()).append("/")
.append(fileIdPathEnd);
childOut.setFileIdPath(fileIdPath.toString());
DaoUtils.update(HgWdSqlConstant.HgWd001.UPDATE_FILE_PATH, childOut);
if (listMap.containsKey(childOut.getFileId())){
for (HGWD099 hgwd099: listMap.get(childOut.getFileId())) {
hgwd099.setFilePath(filePath.toString());
......@@ -186,4 +199,8 @@ public class ServiceHGWD001F extends ServiceEPBase {
String filePath = edcm01List.stream().filter(map -> map.get("itemCode").equals(hgsc001.getProjectSource())).findAny().get().get("itemCname").toString();
return filePath+"/"+hgsc001.getProjName();
}
private String setFileIdPath(HGSC001 hgsc001) {
return hgsc001.getProjectSource() + "/" + hgsc001.getProjCode();
}
}
......@@ -3,11 +3,11 @@ package com.baosight.hggp.hg.wd.service;
import com.baosight.hggp.aspect.annotation.OperationLogAnnotation;
import com.baosight.hggp.common.DdynamicEnum;
import com.baosight.hggp.core.security.UserSessionUtils;
import com.baosight.hggp.hg.sc.enums.ProjectSourceEnum;
import com.baosight.hggp.hg.wd.constant.HgWdConstant;
import com.baosight.hggp.hg.wd.domain.HGWD001;
import com.baosight.hggp.hg.wd.domain.HGWD002;
import com.baosight.hggp.hg.wd.utils.HgWdUtils;
import com.baosight.hggp.hg.xs.domain.User;
import com.baosight.hggp.util.CommonMethod;
import com.baosight.hggp.util.EiInfoUtils;
import com.baosight.hggp.util.LogUtils;
......@@ -56,21 +56,23 @@ public class ServiceHGWD002 extends ServiceBase {
try {
Map queryRow = EiInfoUtils.getFirstRow(inInfo);
// 未选择文件目录时,返回空
String projCode = MapUtils.getString(queryRow, HGWD001.FIELD_PROJ_CODE);
String fileId = MapUtils.getString(queryRow, HGWD001.FIELD_FILE_ID);
if (StringUtils.isBlank(fileId)) {
return inInfo;
}
String parentId = MapUtils.getString(queryRow, HGWD001.FIELD_PARENT_ID);
String projCode = MapUtils.getString(queryRow, HGWD001.FIELD_PROJ_CODE);
// 判断是否备件制造图
boolean isSpare = HgWdUtils.HgWd001.isSpare(parentId, projCode);
// 仅查询已发布的文件
queryRow.put(HGWD001.FIELD_STATUS, HgWdConstant.FileStatus.S_1);
// 管理员、无权限的目录不做权限验证
if (!(isSpare || HgWdUtils.HgWd009.isManager())) {
queryRow.put(User.FIELD_USER_ID, UserSessionUtils.getUserId());
// 顶级分类目录
if (ProjectSourceEnum.getByCode(fileId) != null) {
queryRow.put("projectSource", fileId);
} else {
queryRow.put("parentId", fileId);
}
// 管理员或者备件制造图
if (HgWdUtils.HgWd001.isAuth(fileId, projCode)) {
queryRow.put("userId", UserSessionUtils.getLoginName());
}
builder(inInfo);
inInfo = super.query(inInfo, HGWD002.QUERY, new HGWD002());
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败");
......@@ -78,79 +80,4 @@ public class ServiceHGWD002 extends ServiceBase {
return inInfo;
}
public void builder(EiInfo eiInfo) {
String[] orderBy = eiInfo.getBlock(EiConstant.resultBlock).getString("orderBy").split(",");
if (orderBy.length > 0) {
StringBuilder orderByStr = new StringBuilder();
for (int i = 0; i < orderBy.length; i++) {
if (i != 0 && i != orderByStr.length() - 1) {
orderByStr.append(",");
}
switch (orderBy[i]) {
case "fileType asc":
orderByStr.append(orderBy[i].replace("fileType asc", "a.fileType asc"));
break;
case "docId asc":
orderByStr.append(orderBy[i].replace("docId asc", "b.docId asc"));
break;
case "docName asc":
orderByStr.append(orderBy[i].replace("docName asc", "b.docName asc"));
break;
case "docVersion asc":
orderByStr.append(orderBy[i].replace("docVersion asc", "b.docVersion asc"));
break;
case "createdTime asc":
orderByStr.append(orderBy[i].replace("createdTime asc", "b.createdTime asc"));
break;
case "updatedTime asc":
orderByStr.append(orderBy[i].replace("updatedTime asc", "b.updatedTime asc"));
break;
case "previewNum asc":
orderByStr.append(orderBy[i].replace("previewNum asc", "b.previewNum asc"));
break;
case "downloadNum asc":
orderByStr.append(orderBy[i].replace("downloadNum asc", "b.downloadNum asc"));
break;
case "fileType desc":
orderByStr.append(orderBy[i].replace("fileType desc", "a.fileType desc"));
break;
case "docId desc":
orderByStr.append(orderBy[i].replace("docId desc", "b.docId desc"));
break;
case "docName desc":
orderByStr.append(orderBy[i].replace("docName desc", "b.docName desc"));
break;
case "docVersion desc":
orderByStr.append(orderBy[i].replace("docVersion desc", "b.docVersion desc"));
break;
case "createdTime desc":
orderByStr.append(orderBy[i].replace("createdTime desc", "b.createdTime desc"));
break;
case "previewNum desc":
orderByStr.append(orderBy[i].replace("previewNum desc", "b.previewNum desc"));
break;
case "downloadNum desc":
orderByStr.append(orderBy[i].replace("downloadNum desc", "b.downloadNum desc"));
break;
case "updatedTime desc":
orderByStr.append(orderBy[i].replace("updatedTime desc", "b.updatedTime desc"));
break;
case "changeContent asc":
orderByStr.append(orderBy[i].replace("downloadNum desc", "b.changeContent asc"));
break;
case "changeContent desc":
orderByStr.append(orderBy[i].replace("updatedTime desc", "b.changeContent desc"));
break;
default:
if (!orderBy[i].isEmpty()) {
orderByStr.append(orderBy[i]);
} else {
orderByStr.append(orderBy[i]);
}
break;
}
}
eiInfo.getBlock(EiConstant.resultBlock).set("orderBy", orderByStr);
}
}
}
......@@ -5,6 +5,7 @@ import com.baosight.hggp.common.ChangeTypeEnum;
import com.baosight.hggp.core.constant.CommonConstant;
import com.baosight.hggp.core.dao.DaoUtils;
import com.baosight.hggp.core.security.UserSessionUtils;
import com.baosight.hggp.hg.sc.enums.ProjectSourceEnum;
import com.baosight.hggp.hg.wd.constant.HgWdConstant;
import com.baosight.hggp.hg.wd.domain.HGWD001;
import com.baosight.hggp.hg.wd.domain.HGWD001A;
......@@ -58,8 +59,8 @@ public class ServiceHGWD099 extends ServiceEPBase {
* @param inInfo
* @return
*/
@OperationLogAnnotation(operModul = "附件清单",operType = "查询",operDesc = "文档库-附件清单A-查询")
@Override
@OperationLogAnnotation(operModul = "附件清单",operType = "查询",operDesc = "文档库-附件清单A-查询")
public EiInfo query(EiInfo inInfo) {
try {
Map queryRow = EiInfoUtils.getFirstRow(inInfo);
......@@ -68,15 +69,15 @@ public class ServiceHGWD099 extends ServiceEPBase {
if (StringUtils.isBlank(parentId)) {
return inInfo;
}
// 查询子节点
List<HGWD001> children = HgWdUtils.HgWd001.queryChildren(parentId, projCode);
if (CollectionUtils.isEmpty(children)) {
return inInfo;
// 顶级分类目录
ProjectSourceEnum projectSourceEnum = ProjectSourceEnum.getByCode(parentId);
if (projectSourceEnum != null) {
queryRow.put("projectSource", parentId);
}
// 管理员或者备件制造图
if (HgWdUtils.HgWd001.isAuth(parentId, projCode)) {
queryRow.put("userId", UserSessionUtils.getLoginName());
}
// 需要包含自身
queryRow.put("bizIds", children.stream().map(HGWD001::getFileId).collect(Collectors.toList()));
queryRow.remove(HGWD099.FIELD_BIZ_ID);
inInfo.getBlock(EiConstant.queryBlock).getRow(ACConstants.ROW_CODE_0).remove(HGWD001.FIELD_PARENT_ID);
inInfo = super.query(inInfo, HGWD099.QUERY, new HGWD099());
} catch (Throwable e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败");
......
......@@ -27,7 +27,8 @@
STATUS as "status", <!-- 状态 -->
REMARK as "remark", <!-- 备注 -->
RELEASE_DATE as "releaseDate", <!-- 发布时间 -->
FILE_PATH as "filePath" <!-- 文件路径 -->
FILE_PATH as "filePath", <!-- 文件路径 -->
FILE_ID_PATH as "fileIdPath" <!-- 文件路径 -->
</sql>
<sql id="condition">
......@@ -206,12 +207,13 @@
STATUS, <!-- 状态 -->
REMARK, <!-- 备注 -->
RELEASE_DATE,
FILE_PATH
FILE_PATH,
FILE_ID_PATH
) VALUES (
#accountCode#, #depCode#, #createdBy#, #createdName#, #createdTime#,
#deleteFlag#, #companyCode#, #companyName#, #projCode#, #projName#, #projectSource#,
#leafLevel#, #parentId#, #fileId#, #fileType#, #fileName#,
#docVersion#, #status#, #remark#, #releaseDate#, #filePath#
#docVersion#, #status#, #remark#, #releaseDate#, #filePath#, #fileIdPath#
)
<selectKey resultClass="long" keyProperty="id">
SELECT MAX(ID) AS "id" FROM ${hggpSchema}.HGWD001
......@@ -234,6 +236,7 @@
REMARK = #remark#, <!-- 备注 -->
RELEASE_DATE = #releaseDate#, <!--发布时间-->
FILE_PATH = #filePath#,
FILE_ID_PATH = #fileIdPath#,
<include refid="SqlBase.updateRevise"/>
WHERE ID = #id#
</update>
......@@ -261,6 +264,7 @@
UPDATE ${hggpSchema}.HGWD001
SET
FILE_PATH = #filePath#,
FILE_ID_PATH = #fileIdPath#,
<include refid="SqlBase.updateRevise"/>
WHERE ID = #id#
</update>
......@@ -277,7 +281,8 @@
FILE_ID as "fileId", <!-- 文件ID -->
FILE_TYPE as "fileType", <!-- 文件类型 -->
FILE_NAME as "fileName", <!-- 文件名称 -->
FILE_PATH as "filePath"
FILE_PATH as "filePath",
FILE_ID_PATH as "fileIdPath"
FROM ${hggpSchema}.HGWD001
WHERE 1=1
<isNotEmpty prepend=" AND " property="accountCode">
......@@ -317,7 +322,8 @@
PARENT_ID as "parentId",
DELETE_FLAG as "isDeleted",
LEAF_LEVEL as "leafLevel",
FILE_PATH as "filePath"
FILE_PATH as "filePath",
FILE_ID_PATH as "fileIdPath"
FROM ${hggpSchema}.HGWD001
WHERE 1=1
<isEmpty prepend=" AND " property="deletedQuery">
......@@ -336,7 +342,7 @@
order by CREATED_TIME asc
</select>
<!-- 查询节点,包含自身 -->
<!-- 查询节点,包含自身 -->
<select id="queryChildren" resultClass="com.baosight.hggp.hg.wd.domain.HGWD001">
SELECT
<include refid="column"/>
......@@ -348,6 +354,7 @@
)
</isNotEmpty>
</select>
<!--档库所有子节点树查询-->
<select id="queryFileChild" resultClass="java.util.HashMap">
SELECT
......@@ -355,7 +362,8 @@
T3.FILE_ID AS "fileId",
T3.FILE_TYPE AS "fileType",
T3.PARENT_ID as "parentId",
T3.FILE_PATH as "filePath"
T3.FILE_PATH as "filePath",
T3.FILE_ID_PATH as "fileIdPath"
FROM (
SELECT
@CODES AS CODES,
......@@ -400,7 +408,8 @@
FILE_ID as "fileId", <!-- 文件ID -->
FILE_TYPE as "fileType", <!-- 文件类型 -->
FILE_NAME as "fileName", <!-- 文件名称 -->
FILE_PATH as "filePath"
FILE_PATH as "filePath",
FILE_ID_PATH as "fileIdPath"
from (
SELECT
PROJ_CODE, <!-- 项目编码 -->
......@@ -410,7 +419,8 @@
'' as "FILE_ID", <!-- 文件ID -->
'' as "FILE_TYPE", <!-- 文件类型 -->
'' as "FILE_NAME", <!-- 文件名称 -->
project_source as "FILE_PATH"
PROJECT_SOURCE as "FILE_PATH",
PROJ_CODE as "fileIdPath"
FROM ${hggpSchema}.HGSC001 T WHERE 1=1
<isNotEmpty prepend=" AND " property="accountCode">
ACCOUNT_CODE = #accountCode#
......@@ -438,7 +448,8 @@
FILE_ID, <!-- 文件ID -->
FILE_TYPE, <!-- 文件类型 -->
FILE_NAME, <!-- 文件名称 -->
FILE_PATH
FILE_PATH,
FILE_ID_PATH
FROM ${hggpSchema}.HGWD001 T WHERE 1=1
<include refid="condition"/>
) a
......
......@@ -26,7 +26,8 @@
B.CREATED_TIME as "createdTime", <!-- 创建时间 -->
B.UPDATED_BY as "updatedBy", <!-- 记录修改者 -->
B.UPDATED_NAME as "updatedName", <!-- 记录修改名称 -->
B.UPDATED_TIME as "updatedTime" <!-- 记录修改时间 -->
B.UPDATED_TIME as "updatedTime", <!-- 记录修改时间 -->
B.FILE_PATH as "filePath" <!-- 文件路径 -->
</sql>
<sql id="condition">
......@@ -37,21 +38,12 @@
<isNotEmpty prepend=" AND " property="id">
A.ID = #id#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="companyName">
A.COMPANY_NAME LIKE CONCAT('%', #companyName#, '%')
</isNotEmpty>
<isNotEmpty prepend=" AND " property="projName">
A.PROJ_NAME LIKE CONCAT('%', #projName#, '%')
</isNotEmpty>
<isNotEmpty prepend=" AND " property="fileId">
A.FILE_ID = #fileId#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="fileType">
A.FILE_TYPE = #fileType#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="fileName">
A.FILE_NAME LIKE CONCAT('%', #fileName#, '%')
</isNotEmpty>
<isNotEmpty prepend=" AND " property="status">
B.STATUS = #status#
</isNotEmpty>
......@@ -61,9 +53,6 @@
<isNotEmpty prepend=" AND " property="docName">
B.DOC_NAME LIKE CONCAT('%', #docName#, '%')
</isNotEmpty>
<isNotEmpty prepend=" AND " property="userId">
B.BIZ_ID IN (SELECT FILE_ID FROM ${hggpSchema}.HGWD003 WHERE USER_ID = #userId#)
</isNotEmpty>
<isNotEmpty prepend=" AND " property="createdDateFrom">
B.CREATED_TIME &gt;= CONCAT(REPLACE(#createdDateFrom#, '-', ''), '000000')
</isNotEmpty>
......@@ -73,8 +62,29 @@
<isNotEmpty prepend=" AND " property="docType">
B.DOC_TYPE = #docType#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="filePath">
B.FILE_PATH LIKE CONCAT('%', #filePath#, '%')
</isNotEmpty>
</sql>
<sql id="customCondition">
<include refid="condition"/>
<!-- projectSource和parentId只能同时存在一个, APPROVAL_STATUS=2:已审核 -->
<isNotEmpty prepend=" AND " property="projectSource">
EXISTS (SELECT PROJ_CODE FROM ${hggpSchema}.HGSC001 M WHERE M.PROJ_CODE = A.PROJ_CODE
AND APPROVAL_STATUS = 2 AND A.PROJECT_SOURCE = #projectSource#
)
</isNotEmpty>
<isNotEmpty prepend=" AND " property="parentId">
FIND_IN_SET(A.FILE_ID, (SELECT ${hggpSchema}.queryWdTreeInfo(#parentId#)))
</isNotEmpty>
<isNotEmpty prepend=" AND " property="userId">
EXISTS (SELECT FILE_ID FROM ${hggpSchema}.HGWD003 M WHERE M.FILE_ID = A.FILE_ID
AND M.DELETE_FLAG = 0 AND M.USER_ID = #userId#
)
</isNotEmpty>
</sql>
<sql id="orderBy">
<dynamic prepend="ORDER BY">
<isNotEmpty property="orderBy">
......@@ -92,7 +102,7 @@
FROM ${hggpSchema}.HGWD001 A
INNER JOIN ${hggpSchema}.HGWD099 B ON A.FILE_ID = B.BIZ_ID
WHERE 1=1
<include refid="condition"/>
<include refid="customCondition"/>
<include refid="orderBy"/>
</select>
......@@ -101,7 +111,7 @@
FROM ${hggpSchema}.HGWD001 A
INNER JOIN ${hggpSchema}.HGWD099 B ON A.FILE_ID = B.BIZ_ID
WHERE 1=1
<include refid="condition"/>
<include refid="customCondition"/>
</select>
</sqlMap>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="HGWD099">
<sql id="column">
......@@ -38,9 +38,6 @@
<isNotEmpty prepend=" AND " property="bizId">
BIZ_ID = #bizId#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="bizIds">
BIZ_ID IN <iterate close=")" open="(" conjunction="," property="bizIds">#bizIds[]#</iterate>
</isNotEmpty>
<isNotEmpty prepend=" AND " property="docId">
DOC_ID = #docId#
</isNotEmpty>
......@@ -50,15 +47,9 @@
<isNotEmpty prepend=" AND " property="status">
STATUS = #status#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="docVersion">
DOC_VERSION = #docVersion#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="releaseDate">
RELEASE_DATE = #releaseDate#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="parentId">
BIZ_ID = #parentId#
</isNotEmpty>
<isEmpty prepend=" AND " property="deleteFlag">
DELETE_FLAG = 0
</isEmpty>
......@@ -96,6 +87,24 @@
<isNotEmpty prepend=" AND " property="bizIds">
BIZ_ID in <iterate close=")" open="(" conjunction="," property="bizIds">#bizIds[]#</iterate>
</isNotEmpty>
<!-- projectSource和parentId只能同时存在一个, APPROVAL_STATUS=2:已审核 -->
<isNotEmpty prepend=" AND " property="projectSource">
EXISTS (SELECT FILE_ID FROM ${hggpSchema}.HGWD001 M, ${hggpSchema}.HGSC001 N
WHERE M.FILE_ID = T.BIZ_ID AND M.PROJ_CODE = N.PROJ_CODE
AND M.DELETE_FLAG = 0 AND N.APPROVAL_STATUS = 2
AND N.PROJECT_SOURCE = #projectSource#
)
</isNotEmpty>
<isEmpty property="projectSource">
<isNotEmpty prepend=" AND " property="parentId">
FIND_IN_SET(BIZ_ID, (SELECT ${hggpSchema}.queryWdTreeInfo(#parentId#)))
</isNotEmpty>
</isEmpty>
<isNotEmpty prepend=" AND " property="userId">
EXISTS (SELECT FILE_ID FROM ${hggpSchema}.HGWD003 M WHERE M.FILE_ID = T.BIZ_ID
AND M.DELETE_FLAG = 0 AND M.USER_ID = #userId#
)
</isNotEmpty>
</sql>
<sql id="orderBy">
......@@ -112,7 +121,7 @@
<select id="query" resultClass="com.baosight.hggp.hg.wd.domain.HGWD099">
SELECT
<include refid="column"/>
FROM ${hggpSchema}.HGWD099
FROM ${hggpSchema}.HGWD099 T
WHERE 1=1
<include refid="customCondition"/>
<include refid="orderBy"/>
......@@ -120,7 +129,7 @@
<select id="count" resultClass="int">
SELECT COUNT(*)
FROM ${hggpSchema}.HGWD099
FROM ${hggpSchema}.HGWD099 T
WHERE 1=1
<include refid="customCondition"/>
</select>
......
......@@ -8,8 +8,10 @@ import com.baosight.hggp.hg.wd.domain.HGWD001;
import com.baosight.hggp.hg.wd.domain.HGWD003;
import com.baosight.hggp.hg.wd.tools.HGWDTools;
import com.baosight.hggp.util.StringUtils;
import org.apache.commons.collections.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author:songx
......@@ -27,6 +29,21 @@ public class HgWdUtils {
public static class HgWd001 {
/**
* 管理员和备件制造图不需要权限控制
*
* @param treeId 树节点ID
* @param projCode 项目编码
* @return true:需要权限
*/
public static boolean isAuth(String treeId, String projCode) {
boolean isManager = HgWdUtils.HgWd009.isManager();
if (isManager) {
return false;
}
return !HgWdUtils.HgWd001.isSpare(treeId, projCode);
}
/**
* 是否备件制造图
*
* @param treeId
......@@ -92,6 +109,23 @@ public class HgWdUtils {
/**
* 查询子节点
*
* @param parentId 父级节点
* @param isManager true:管理员
* @param isSpare true:备件制造图
* @return
*/
public static List<String> queryChildrenId(String parentId, boolean isManager, boolean isSpare) {
// 管理员或者备件制造图查询所有子节点;其余查询当前节点有权限的子节点
List<HGWD001> dbWd001s = queryChildren(parentId, isManager, isSpare);
if (CollectionUtils.isEmpty(dbWd001s)) {
return null;
}
return dbWd001s.stream().map(HGWD001::getFileId).collect(Collectors.toList());
}
/**
* 查询子节点
*
* @param parentId
* @param isManager true:管理员
* @param isSpare true:备件制造图
......
......@@ -63,17 +63,17 @@
<EF:EFComboColumn ename="status" cname="状态" enable="false" width="80" align="center" defaultValue="0">
<EF:EFCodeOption codeName="hggp.hgcg.contractStatus" condition="ITEM_CODE IN ('0','2','4','5')"/>
</EF:EFComboColumn>
<EF:EFComboColumn ename="supCode" cname="供应商名称" width="120" align="left" defaultValue=""
filter="contains" required="true">
<EF:EFComboColumn ename="supCode" cname="供应商名称" readonly="true" width="120" align="left"
defaultValue="" filter="contains" required="true">
<EF:EFOptions blockId="sup_record_block_id" valueField="valueField" textField="textField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="supName" cname="供应商名称" enable="false" width="120" align="center" hidden="true"/>
<EF:EFComboColumn ename="purUserId" cname="采购员" width="120" align="left" defaultValue=""
filter="contains" required="true" columnTemplate="#=valueField# - #=textField#"
itemTemplate="#=valueField# - #=textField#">
<EF:EFOptions blockId="user_block_id" valueField="valueField" textField="textField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="purUserName" cname="采购员姓名" enable="false" width="120" align="center" hidden="true"/>
<%-- <EF:EFComboColumn ename="purUserId" cname="采购员" readonly="true" width="120" align="left" defaultValue=""--%>
<%-- filter="contains" required="true" columnTemplate="#=valueField# - #=textField#"--%>
<%-- itemTemplate="#=valueField# - #=textField#">--%>
<%-- <EF:EFOptions blockId="user_block_id" valueField="valueField" textField="textField"/>--%>
<%-- </EF:EFComboColumn>--%>
<EF:EFColumn ename="purUserName" cname="采购员姓名" readonly="true" width="120" align="center"/>
<EF:EFColumn ename="purQty" cname="采购数量" width="120" align="right" format="{0:N3}" enable="false"
defaultValue="0" sumType="page"/>
<EF:EFColumn ename="purWeight" cname="采购重量" width="120" align="right" format="{0:N3}" enable="false"
......
......@@ -92,13 +92,11 @@ let checkParam = function () {
}
let supCode = $("#inqu_status-0-supCode").val();
if (isBlank(supCode)) {
message("供应商不能为空");
return;
return "供应商不能为空";
}
let purUserId = $("#inqu_status-0-purUserId").val();
if (isBlank(purUserId)) {
message("采购员不能为空");
return;
return "采购员不能为空";
}
return "";
}
\ No newline at end of file
......@@ -48,25 +48,25 @@ $(function () {
}
}
}
return dataItem["purUserName"];
},
editor: function (container, options) {
var input = $('<input />');
input.attr("name", options.field);
input.attr("id", options.field);
input.appendTo(container);
input.kendoDropDownList({
dataSource: userByCompany,
minLength: 0,
dataTextField: "userName",
dataValueField: "userName",
optionLabelTemplate: "[#:loginName#]#:userName#-#:depName#",
valueTemplate: "[#:loginName#]#:userName#-#:depName#",
template: "[#:loginName#]#:userName#-#:depName#",
filter: "contains"
});
}
}, {
return dataItem["purUserName"];
},
editor: function (container, options) {
var input = $('<input />');
input.attr("name", options.field);
input.attr("id", options.field);
input.appendTo(container);
input.kendoDropDownList({
dataSource: userByCompany,
minLength: 0,
dataTextField: "userName",
dataValueField: "userName",
optionLabelTemplate: "[#:loginName#]#:userName#-#:depName#",
valueTemplate: "[#:loginName#]#:userName#-#:depName#",
template: "[#:loginName#]#:userName#-#:depName#",
filter: "contains"
});
}
}, {
field: "projCode",
title: "项目编码",
template: function (dataItem) {
......
......@@ -65,12 +65,12 @@
<EF:EFOptions blockId="sup_record_block_id" valueField="valueField" textField="textField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="supName" cname="供应商名称" enable="false" width="120" align="center" hidden="true"/>
<EF:EFComboColumn ename="purUserId" cname="采购员" width="120" align="left" defaultValue=""
filter="contains" required="true" columnTemplate="#=valueField# - #=textField#"
itemTemplate="#=valueField# - #=textField#">
<EF:EFOptions blockId="user_block_id" valueField="valueField" textField="textField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="purUserName" cname="采购员姓名" enable="false" width="120" align="center" hidden="true"/>
<%-- <EF:EFComboColumn ename="purUserId" cname="采购员" width="120" align="left" defaultValue=""--%>
<%-- filter="contains" required="true" columnTemplate="#=valueField# - #=textField#"--%>
<%-- itemTemplate="#=valueField# - #=textField#">--%>
<%-- <EF:EFOptions blockId="user_block_id" valueField="valueField" textField="textField"/>--%>
<%-- </EF:EFComboColumn>--%>
<EF:EFColumn ename="purUserName" cname="采购员姓名" width="120" align="center"/>
<EF:EFColumn ename="receiveQty" cname="收货数量" enable="false" width="120" align="right" format="{0:N3}"
sumType="page"/>
<EF:EFColumn ename="deliverQty" cname="退货数量" enable="false" width="120" align="right" format="{0:N3}"
......
......@@ -27,7 +27,7 @@
<EF:EFColumn ename="fieldCode" cname="字段英文名" enable="false" width="180" align="left"/>
<EF:EFColumn ename="fieldName" cname="字段中文名" enable="false" width="180" align="left" sort="false"/>
<EF:EFColumn ename="aliasName" cname="字段别名" enable="false" width="160" align="left" sort="false"/>
<EF:EFColumn ename="sortNum" cname="排序" width="80" align="center" required="true"/>
<EF:EFColumn ename="sortNum" cname="排序" width="100" align="center" required="true"/>
<EF:EFComboColumn ename="isDefault" cname="是否默认" width="100" align="center" copy="true" required="true"
sort="false">
<EF:EFCodeOption codeName="hggp.common.yesNo"/>
......
......@@ -54,27 +54,29 @@
</div>
<div id="right-pane" class="i-fit-height">
<EF:EFRegion id="inqu" title="查询条件">
<EF:EFInput cname="项目代码" ename="projCode" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库id" ename="parentId" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库id" ename="fileId" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="类型" ename="type" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="层级" ename="leafLevel" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="是否是文件" ename="leafType" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="父级Id" ename="orgParentId" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="业务类型" ename="bizType" blockId="inqu_status" row="0" type="hidden" value="WD"/>
<div class="row">
<EF:EFInput cname="项目代码" ename="projCode" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库id" ename="parentId" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库id" ename="fileId" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="类型" ename="type" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="层级" ename="leafLevel" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="是否是文件" ename="leafType" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库名称" ename="fileName" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="父级Id" ename="orgParentId" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="登录用户" ename="userId" blockId="inqu_status" row="0" colWidth="3" value="${loginName}" type="hidden"/>
<EF:EFInput cname="业务类型" ename="bizType" blockId="inqu_status" row="0" type="hidden" value="WD"/>
<EF:EFInput cname="附件名称" ename="docName" blockId="inqu_status" row="0" colWidth="3" />
<EF:EFSelect blockId="inqu_status" row="0" ename="status" cname="状态" colWidth="3">
<EF:EFInput ename="fileName" cname="目录名称" blockId="inqu_status" row="0" colWidth="3"
readonly="true"/>
<EF:EFInput ename="docName" cname="附件名称" blockId="inqu_status" row="0" colWidth="3"/>
<EF:EFInput ename="filePath" cname="文件路径" blockId="inqu_status" row="0" colWidth="3"/>
<EF:EFSelect ename="status" cname="状态" blockId="inqu_status" row="0" colWidth="3">
<EF:EFOption label="全部" value=""/>
<EF:EFCodeOption codeName="hggp.hgwd.status"/>
</EF:EFSelect>
</div>
<div class="row">
<EF:EFDateSpan startCname="修改时间" endCname="至" blockId="inqu_status" row="0"
startName="updateDateFrom" endName="updateDateTo" role="date"
format="yyyy-MM-dd" ratio="3:3" satrtRatio="4:8" endRatio="4:8" readonly="false">
startName="updateDateFrom" endName="updateDateTo" role="date"
format="yyyy-MM-dd" ratio="3:3" satrtRatio="4:8" endRatio="4:8" readonly="true">
</EF:EFDateSpan>
<EF:EFInput cname="文件路径" ename="filePath" blockId="inqu_status" row="0" colWidth="3" />
</div>
</EF:EFRegion>
<EF:EFRegion id="result" title="明细信息" fitHeight="true">
......@@ -84,9 +86,9 @@
<EF:EFColumn ename="docId" cname="文件ID" enable="false" width="180" hidden="true"/>
<EF:EFColumn ename="operator" cname="操作" enable="false" width="150" align="center" sort="false"/>
<EF:EFColumn ename="docName" cname="附件名称" enable="false" width="200"/>
<EF:EFColumn ename="changeContent" cname="变更内容" enable="false" width="200" sort="false"/>
<EF:EFColumn ename="filePath" cname="文件路径" enable="false" width="200"/>
<EF:EFColumn ename="docType" cname="附件类型" enable="false" width="110" align="center"/>
<EF:EFColumn ename="changeContent" cname="变更内容" enable="false" width="200" align="center"/>
<EF:EFColumn ename="filePath" cname="文件路径" enable="false" width="200" align="center"/>
<EF:EFColumn ename="docVersion" cname="版本号" enable="false" width="90" align="center" sort="true"/>
<EF:EFComboColumn ename="status" cname="状态" enable="false" width="100" align="center"
defaultValue="0" hidden="false">
......
......@@ -98,7 +98,7 @@ $(function () {
// 设置选中节点
treeSelectClick(model);
inInfo.set("inqu_status-0-projCode", $("#inqu_status-0-projCode").val());
inInfo.set("inqu_status-0-pageCode","HGWD002");
inInfo.set("inqu_status-0-pageCode", "HGWD002");
return inInfo;
},
select: function (e) {
......@@ -124,15 +124,13 @@ $(function () {
return ' <span class="' + icon + '" style="padding-right: 8px"> </span> <span class="titleClass" title="' + item.label + '">' + title + '</span>'
},
loadComplete: function (options) {
// 树节点查询
$("#search").on("click", treeSearch);
},
selectTreeNode: {
fileId: '',
parentId: '',
projCode: '',
companyCode: '',
leafLevel: '',
type: '',
leafType: '',
downloadFlag: '0'
},
// expandLevel:1,
......@@ -296,21 +294,14 @@ let treeSelectClick = function (nodeData) {
* @param nodeData
*/
let setTreeNodeValue = function (nodeData) {
let leafLevel = nodeData.leafLevel == null ? 0 : nodeData.leafLevel;
IPLATUI.EFTree.docTree.selectTreeNode.fileId = nodeData.label;
IPLATUI.EFTree.docTree.selectTreeNode.parentId = nodeData.parentId;
IPLATUI.EFTree.docTree.selectTreeNode.fileName = nodeData.text;
IPLATUI.EFTree.docTree.selectTreeNode.companyCode = nodeData.companyCode;
IPLATUI.EFTree.docTree.selectTreeNode.fileId = nodeData.id;
IPLATUI.EFTree.docTree.selectTreeNode.projCode = nodeData.projCode;
IPLATUI.EFTree.docTree.selectTreeNode.leafLevel = leafLevel;
IPLATUI.EFTree.docTree.selectTreeNode.leafType = nodeData.leafType;
IPLATUI.EFTree.docTree.selectTreeNode.downloadFlag = nodeData.downloadFlag == null ? 0
: nodeData.downloadFlag;
$("[name = 'inqu_status-0-parentId']").val(nodeData.label);
$("[name = 'inqu_status-0-parentId']").val(nodeData.id);
$("[name = 'inqu_status-0-fileId']").val(nodeData.id);
$("[name = 'inqu_status-0-projCode']").val(nodeData.projCode);
$("[name = 'inqu_status-0-leafLevel']").val(leafLevel);
$("[name = 'inqu_status-0-type']").val(nodeData.type);
$("[name = 'inqu_status-0-fileName']").val(nodeData.text);
}
/**
......@@ -318,8 +309,8 @@ let setTreeNodeValue = function (nodeData) {
*/
let showAuthButton = function () {
// C:目录
let leafType = IPLATUI.EFTree.docTree.selectTreeNode.leafLevel;
if (leafType && leafType > 0) {
let leafType = IPLATUI.EFTree.docTree.selectTreeNode.leafType;
if (leafType === 'C') {
CommonUtils.showButton("PREVIEW");
} else {
CommonUtils.hideButton("PREVIEW");
......@@ -350,3 +341,65 @@ let showPreview = function (docId) {
let fileId = IPLATUI.EFTree.docTree.selectTreeNode.fileId;
addRecordWindow(fileId, docId);
}
/**
* 树节点查询
*/
let treeSearch = function (){
let tree = $("#docTree").data("kendoTreeView");
let leafName = $("#searchText").val();
if (leafName == null || leafName.trim() === '') {
tree.reload("root");
return
}
let inInfo = new EiInfo();
inInfo.set("inqu_status-0-fileName", leafName);
EiCommunicator.send("HGWD001D", "searchTree", inInfo, {
onSuccess: function (res) {
if (res.status === -1) {
message(res.msg);
return;
}
// 获取所有满足条件的子节点路径
const allPath = res.get("allPath")
if (allPath.length <= 0) {
return;
}
tree.reload("root");
// 根据路径一层层展开树节点,先剔除重复的节点
let expandNodes = []
for (let path of allPath) {
for (let index = 0; index < path.length - 1; index++) {
if (-1 === expandNodes.indexOf(path[index])) {
expandNodes.push(path[index]);
}
}
}
expandTreeNodeList(tree, expandNodes);
}, onFail: function (res) {
IPLAT.alert(res.msg);
}
});
}
/**
* 批量展开树节点
*
* @param tree
* @param nodeIds
*/
function expandTreeNodeList(tree, nodeIds) {
if (nodeIds.length === 0 || tree == null) {
// 所有节点都已展开完毕,结束递归
return;
}
const orgId = nodeIds[0];
let barDataItem = tree.dataSource.get(orgId);
if (barDataItem) {
tree.expandPath(nodeIds)
} else {
setTimeout(() => {
expandTreeNodeList(tree, nodeIds)
}, 100)
}
}
\ No newline at end of file
......@@ -9,6 +9,12 @@
<div id="splitter" class="i-fit-height">
<div id="left-pane" class="i-fit-height">
<EF:EFRegion title="文档目录树" id="tree" fitHeight="true">
<%-- <div class="row" style="display: block">--%>
<%-- <div class="col-md-8" style="display:flex;align-items: center">--%>
<%-- <EF:EFInput ename="searchText" colWidth="8" inline="true"/>--%>
<%-- <EF:EFButton ename="search" class="fa fa-search" layout="2"/>--%>
<%-- </div>--%>
<%-- </div>--%>
<div id="menu" style="margin-top: 12px; margin-bottom: 8px">
<EF:EFTree bindId="docTree" ename="tree_name" textField="text" valueField="label"
hasChildren="leaf" pid="parentId" serviceName="HGWD001D" methodName="queryTree"
......@@ -19,14 +25,9 @@
</div>
<div id="right-pane" class="i-fit-height">
<EF:EFRegion id="inqu" title="查询条件">
<EF:EFInput cname="项目代码" ename="projCode" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库id" ename="fileId" blockId="inqu_status" row="0" type="hidden"/>
<div class="row">
<EF:EFInput cname="项目代码" ename="projCode" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库id" ename="parentId" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库id" ename="fileId" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="类型" ename="type" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="层级" ename="leafLevel" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="文档库名称" ename="fileName" blockId="inqu_status" row="0" type="hidden"/>
<EF:EFInput cname="业务类型" ename="bizType" blockId="inqu_status" row="0" type="hidden" value="WD"/>
<EF:EFSelect blockId="inqu_status" row="0" ename="fileType" cname="附件分类" colWidth="3"
filter="contains">
<EF:EFOption label="全部" value=""/>
......@@ -38,28 +39,32 @@
format="yyyy-MM-dd" ratio="3:3" satrtRatio="4:8" endRatio="4:8" readonly="false">
</EF:EFDateSpan>
</div>
<div class="row">
<EF:EFInput cname="文件路径" ename="filePath" blockId="inqu_status" row="0" colWidth="3"/>
</div>
</EF:EFRegion>
<EF:EFRegion id="result" title="明细信息" fitHeight="true">
<EF:EFGrid blockId="result" autoDraw="override" showCount="true" height="73vh" sort="setted"
<EF:EFGrid blockId="result" autoDraw="override" showCount="true" height="73vh" sort="single"
checkMode="row">
<EF:EFColumn ename="id" cname="ID" hidden="true"/>
<EF:EFColumn ename="fileId" cname="ID" hidden="true"/>
<EF:EFColumn ename="docId" cname="附件ID" enable="false" width="120" align="center" sort="false"
hidden="true"/>
<EF:EFColumn ename="docId" cname="附件ID" hidden="true"/>
<EF:EFColumn ename="operator" cname="操作" enable="false" width="80" align="center" sort="false"/>
<EF:EFComboColumn ename="fileType" cname="附件分类" enable="false" width="90" align="center">
<EF:EFColumn ename="docName" cname="附件名称" enable="false" width="220" alias="b.docName"/>
<EF:EFColumn ename="changeContent" cname="变更内容" enable="false" width="200" sort="false"/>
<EF:EFColumn ename="filePath" cname="文件路径" enable="false" width="200" alias="b.filePath"/>
<EF:EFComboColumn ename="fileType" cname="附件分类" enable="false" width="100" align="center"
alias="a.fileType">
<EF:EFCodeOption codeName="hggp.hgwd.fileType"/>
</EF:EFComboColumn>
<EF:EFColumn ename="docName" cname="附件名称" enable="false" width="220" sort="true"/>
<EF:EFColumn ename="docType" cname="附件后缀" enable="false" width="110" align="center" sort="true"/>
<EF:EFColumn ename="docVersion" cname="版本号" enable="false" width="90" align="center" sort="true"/>
<EF:EFColumn ename="changeContent" cname="变更内容" enable="false" width="200" align="center" sort="true"/>
<EF:EFColumn ename="updatedTime" cname="上传时间" parseFormats="['yyyyMMddHHmmss']" editType="datetime"
dateFormat="yyyy-MM-dd HH:mm:ss" align="center" width="140" readonly="true"
required="false" enable="false" sort="true"/>
<%-- <EF:EFColumn ename="previewNum" cname="预览次数" enable="false" width="100" align="right" sort="true"/>--%>
<%-- <EF:EFColumn ename="downloadNum" cname="下载次数" enable="false" width="100" align="right" sort="true"/>--%>
<EF:EFColumn ename="docType" cname="附件后缀" enable="false" width="110" align="center"
alias="b.docType"/>
<EF:EFColumn ename="docVersion" cname="版本号" enable="false" width="100" align="center"
alias="b.docVersion"/>
<EF:EFColumn ename="updatedTime" cname="上传时间" parseFormats="['yyyyMMddHHmmss']"
editType="datetime" dateFormat="yyyy-MM-dd HH:mm:ss" align="center" width="140"
enable="false" alias="b.updatedTime"/>
</EF:EFGrid>
</EF:EFRegion>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment