Commit 6177d707 authored by 雍欢's avatar 雍欢

涉密等级查询条件

parent db75c28a
......@@ -21,6 +21,8 @@ public class DictionaryDesc implements Serializable {
private String value;
private Integer sequence;
public DictionaryDesc() {
}
......@@ -70,4 +72,11 @@ public class DictionaryDesc implements Serializable {
this.typeId = typeId;
}
public Integer getSequence() {
return sequence;
}
public void setSequence(Integer sequence) {
this.sequence = sequence;
}
}
package com.huigou.uasp.bmp.opm.domain.query;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;
import com.huigou.cache.DictionaryDesc;
import com.huigou.cache.SystemCache;
import com.huigou.context.ThreadLocalUtil;
import com.huigou.data.domain.model.CommonDomainConstants;
......@@ -18,6 +11,10 @@ import com.huigou.uasp.bmp.opm.domain.model.org.Org;
import com.huigou.util.Constants;
import com.huigou.util.SDO;
import com.huigou.util.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;
import java.util.*;
/**
* 组织机构查询模型
......@@ -307,7 +304,8 @@ public class OrgQueryModel extends QueryModel {
putParam("maxSecurityGrade", maxSecurityGrade);
}
// 人员等级
// 人员涉密等级
Map<String, DictionaryDesc> personSecurityGradeDictionary = SystemCache.getDictionary("personSecurityGrade");
List<String> personSecurityGrades = inputParams.getStringList("personSecurityGrade");
if (personSecurityGrades != null && personSecurityGrades.size() > 0) {
condition.append(" and (o.org_kind_id<>'psm' or p.person_security_grade_id in (");
......@@ -319,19 +317,28 @@ public class OrgQueryModel extends QueryModel {
if (ltr.hasNext()) {
condition.append(",");
}
this.putParam(paramName, personSecurityGrade);
Integer personSecurityGradeSequence = Optional.ofNullable(personSecurityGradeDictionary.get(personSecurityGrade))
.map(DictionaryDesc::getSequence)
.orElse(null);
this.putParam(paramName, personSecurityGradeSequence);
}
condition.append("))");
}
String minPersonSecurityGrade = inputParams.getString("minPersonSecurityGrade");
if (StringUtils.isNotBlank(minPersonSecurityGrade)) {
condition.append(" and (o.org_kind_id<>'psm' or p.person_security_grade_id >= :minPersonSecurityGrade)");
putParam("minPersonSecurityGrade", minPersonSecurityGrade);
condition.append(" and (o.org_kind_id<>'psm' or dd.sequence >= :minPersonSecurityGrade)");
Integer personSecurityGradeSequence = Optional.ofNullable(personSecurityGradeDictionary.get(minPersonSecurityGrade))
.map(DictionaryDesc::getSequence)
.orElse(null);
putParam("minPersonSecurityGrade", personSecurityGradeSequence);
}
String maxPersonSecurityGrade = inputParams.getString("maxPersonSecurityGrade");
if (StringUtils.isNotBlank(maxPersonSecurityGrade)) {
condition.append(" and (o.org_kind_id<>'psm' or p.person_security_grade_id <= :maxPersonSecurityGrade)");
putParam("maxPersonSecurityGrade", maxPersonSecurityGrade);
condition.append(" and (o.org_kind_id<>'psm' or dd.sequence <= :maxPersonSecurityGrade)");
Integer personSecurityGradeSequence = Optional.ofNullable(personSecurityGradeDictionary.get(maxPersonSecurityGrade))
.map(DictionaryDesc::getSequence)
.orElse(null);
putParam("maxPersonSecurityGrade", personSecurityGradeSequence);
}
this.countCondition.append(condition);
if (first != last) {
......
......@@ -1091,6 +1091,7 @@ public class OrgApplicationImpl extends BaseApplication implements OrgApplicatio
parameter.setTreeQuery(true);
parameter.parse();
parameter.setDefaultOrderBy("Full_Sequence");
parameter.getDictionaryMap().put("personSecurityGradeId", DictUtil.getDictionary("personSecurityGrade"));
Map<String, Object> data = this.sqlExecutorDao.executeQuery(parameter);
buildOrgManagementPermissionAndChildrenCount((List<Map<String, Object>>) data.get(Constants.ROWS), parameter);
return data;
......@@ -1109,6 +1110,7 @@ public class OrgApplicationImpl extends BaseApplication implements OrgApplicatio
* }
*/
parameter.setSql(this.getQuerySqlByName(parameter.getSqlName()));
parameter.getDictionaryMap().put("personSecurityGradeId", DictUtil.getDictionary("personSecurityGrade"));
parameter.parse();
return this.sqlExecutorDao.executeSlicedQuery(parameter);
}
......
......@@ -2,13 +2,13 @@ package com.huigou.demo.controller;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.demo.application.LeaveApplication;
import com.huigou.demo.domain.model.Leave;
import com.huigou.demo.domain.query.LeaveQuery;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
import com.huigou.demo.application.LeaveApplication;
import com.huigou.demo.domain.model.Leave;
import com.huigou.demo.domain.query.LeaveQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -21,6 +21,7 @@ import org.springframework.stereotype.Controller;
@Controller
public class LeaveController extends CommonController {
private Logger LOG = LoggerFactory.getLogger(LeaveController.class);
@Autowired
private LeaveApplication leaveApplication;
......
package com.huigou.demo.domain.model;
import com.huigou.data.domain.model.FlowBillAbstractEntity;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @author yonghuan
*/
@Getter
@Setter
@Table(name = "demo_leave")
@Entity
public class Leave extends FlowBillAbstractEntity {
/** 请假天数 */
/**
* 请假天数
*/
private Long days;
public Long getDays() {
return days;
}
public void setDays(Long days) {
this.days = days;
}
/**
* 密级
*/
@Column(name = "secret_level", length = 20)
private String secretLevel;//
/**
* 密级年限
*/
@Column(name = "secrecy_limit", length = 20)
private String secrecyLimit;
@Override
protected String getCodeRuleId() {
......
......@@ -70,4 +70,17 @@
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>topsunit</id>
<name>topsunit</name>
<url>http://nexus.local.topsunit.com/repository/huigou-repostitory/</url>
</repository>
<snapshotRepository>
<id>topsunit</id>
<name>topsunit SNAPSHOTS</name>
<url>http://nexus.local.topsunit.com/repository/huigou-snapshot/</url>
</snapshotRepository>
</distributionManagement>
</project>
......@@ -2339,12 +2339,14 @@ public class FlowBroker extends BaseApplication implements TaskListener, Executi
// 查询人员密级
for (Map<String, Object> handler : (List<Map<String, Object>>) result.get(Constants.ROWS)) {
String handlerId = (String) handler.get("handlerId");
Person person = orgApplication.loadOrg(handlerId).getPerson();
String personSecurityGrade = person.getPersonSecurityGrade();
if (StringUtils.isNotBlank(personSecurityGrade)) {
String personSecurityGradeText = SystemCache.getDictionaryDetailText("personSecurityGrade", personSecurityGrade);
handler.put("personSecurityGrade", personSecurityGrade);
handler.put("personSecurityGradeTextView", personSecurityGradeText);
if (StringUtils.isNotBlank(handlerId)) {
Person person = orgApplication.loadOrg(handlerId).getPerson();
String personSecurityGrade = person.getPersonSecurityGrade();
if (StringUtils.isNotBlank(personSecurityGrade)) {
String personSecurityGradeText = SystemCache.getDictionaryDetailText("personSecurityGrade", personSecurityGrade);
handler.put("personSecurityGradeId", personSecurityGrade);
handler.put("personSecurityGradeIdTextView", personSecurityGradeText);
}
}
}
ThreadLocalUtil.putVariable("queryHandlers", result);
......
......@@ -26,7 +26,7 @@
select t.* from sa_dictionary t where 1 = 1
</sql-query>
<sql name="queryAllEnabled">
select o.code, d.name, d.type_id, d.value
select o.code, d.name, d.type_id, d.value,d.sequence
from sa_dictionary o, sa_dictionarydetail d
where o.id = d.dictionary_id
and o.status = 1
......@@ -133,4 +133,4 @@
order by t.sequence asc
</sql>
</query>
</query-mappings>
\ No newline at end of file
</query-mappings>
......@@ -123,8 +123,9 @@
o.status, o.full_Sequence, p.sex, p.certificate_no, p.status as personStatus,
o.full_Org_Kind_Id, p.main_Org_Id, o.is_Virtual, o.sequence,
(select pos.name from SA_OPOrg pos where pos.id = p.main_org_id) main_org_name,
o.version
o.version,p.person_security_grade_id
from SA_OPOrg o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where 1=1
</sql>
<sql name="queryOrgExcludePos">
......@@ -134,13 +135,15 @@
o.position_Name, o.org_Kind_Id, p.id as person_Id, o.description,
o.status, o.full_Sequence, p.sex, p.certificate_no, p.status as personStatus,
o.full_Org_Kind_Id, p.main_Org_Id, o.is_Virtual, o.sequence,
o.version
o.version,p.person_security_grade_id
from V_SA_OPOrg_Exclude_Pos o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where 1=1
</sql>
<sql name="queryCount">
select count(o.id)
from SA_OPOrg o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where o.parent_id = :parentId
</sql>
<sql name="deleteOrgChildren">
......@@ -1318,4 +1321,4 @@
<condition column="name" name="keyword" symbol="like" alias="p"/>
</query>
</query-mappings>
\ No newline at end of file
</query-mappings>
......@@ -125,8 +125,9 @@
o.position_Name, o.org_Kind_Id, p.id as person_Id, o.description,
o.status, o.full_Sequence, p.sex, p.certificate_no, p.status as personStatus,
o.full_Org_Kind_Id, p.main_Org_Id, o.is_Virtual, o.sequence,
o.version
o.version,p.person_security_grade_id
from SA_OPOrg o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where 1=1
</sql>
<sql name="queryOrgExcludePos">
......@@ -136,15 +137,17 @@
o.position_Name, o.org_Kind_Id, p.id as person_Id, o.description,
o.status, o.full_Sequence, p.sex, p.certificate_no, p.status as personStatus,
o.full_Org_Kind_Id, p.main_Org_Id, o.is_Virtual, o.sequence,
o.version
o.version,p.person_security_grade_id
from V_SA_OPOrg_Exclude_Pos o left join SA_OPPerson p on o.person_id = p.id
where 1=1
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where 1=1
</sql>
<sql name="queryCount">
select count(o.id)
from SA_OPOrg o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where o.parent_id = :parentId
</sql>
</query>
</query-mappings>
\ No newline at end of file
</query-mappings>
......@@ -123,8 +123,9 @@
o.status, o.full_Sequence, p.sex, p.certificate_no, p.status as personStatus,
o.full_Org_Kind_Id, p.main_Org_Id, o.is_Virtual, o.sequence,
(select pos.name from SA_OPOrg pos where pos.id = p.main_org_id) main_org_name,
o.version
o.version,p.person_security_grade_id
from SA_OPOrg o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where 1=1
</sql>
<sql name="queryOrgExcludePos">
......@@ -134,13 +135,15 @@
o.position_Name, o.org_Kind_Id, p.id as person_Id, o.description,
o.status, o.full_Sequence, p.sex, p.certificate_no, p.status as personStatus,
o.full_Org_Kind_Id, p.main_Org_Id, o.is_Virtual, o.sequence,
o.version
o.version,p.person_security_grade_id
from V_SA_OPOrg_Exclude_Pos o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where 1=1
</sql>
<sql name="queryCount">
select count(o.id)
from SA_OPOrg o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where o.parent_id = :parentId
</sql>
<sql name="deleteOrgChildren">
......@@ -1209,4 +1212,4 @@
<condition column="name" name="keyword" symbol="like" alias="p"/>
</query>
</query-mappings>
\ No newline at end of file
</query-mappings>
......@@ -125,8 +125,9 @@
o.position_Name, o.org_Kind_Id, p.id as person_Id, o.description,
o.status, o.full_Sequence, p.sex, p.certificate_no, p.status as personStatus,
o.full_Org_Kind_Id, p.main_Org_Id, o.is_Virtual, o.sequence,
o.version
o.version,p.person_security_grade_id
from SA_OPOrg o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where 1=1
</sql>
<sql name="queryOrgExcludePos">
......@@ -136,15 +137,17 @@
o.position_Name, o.org_Kind_Id, p.id as person_Id, o.description,
o.status, o.full_Sequence, p.sex, p.certificate_no, p.status as personStatus,
o.full_Org_Kind_Id, p.main_Org_Id, o.is_Virtual, o.sequence,
o.version
o.version,p.person_security_grade_id
from V_SA_OPOrg_Exclude_Pos o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where 1=1
</sql>
<sql name="queryCount">
select count(o.id)
from SA_OPOrg o left join SA_OPPerson p on o.person_id = p.id
left join ( select dd.value,dd.sequence from sa_dictionarydetail dd left join sa_dictionary d on dd.dictionary_id=d.id where d.code='personSecurityGrade') dd on p.person_security_grade_id=dd.value
where o.parent_id = :parentId
</sql>
</query>
</query-mappings>
\ No newline at end of file
</query-mappings>
......@@ -25,16 +25,21 @@
<x:hidden name="positionName"/>
<x:hidden name="personMemberId"/>
<x:hidden name="personMemberName"/>
<x:hidden name="statusId" />
<div class="hg-form-cols">
<div class="hg-form-row">
<x:inputC name="field0" title="请假天数" required="true" label="请假天数" labelCol="2" fieldCol="6"
maxlength="32" spinner="true" mask="nnn" dataOptions="min:1" />
<x:selectC name="secretLevel" title="密级" required="true" label="密级" labelCol="2" fieldCol="2"
dictionary="personSecurityGrade"/>
<x:inputC name="secrecyLimit" title="密级年限" required="false" label="密级年限" labelCol="2" fieldCol="2"
mask="nnn"/>
</div>
<div class="hg-form-row">
<x:inputC name="days" title="请假天数" required="true" label="请假天数" labelCol="2" fieldCol="6"
maxlength="32" spinner="true" mask="nnn" dataOptions="min:1"/>
</div>
</div>
</form>
<div class="blank_div clearfix"></div>
<x:fileList id="fileList" bizCode="demoLeave" title="附件" bizId="id" />
<x:fileList id="fileList" bizCode="demoLeave" title="附件" bizId="id"/>
<div id="showAttachmentExplain"></div>
</div>
<script>
......@@ -61,6 +66,12 @@
return $("#leaveId").val() || "";
}
/**
* 获取表单的密级
*/
function getSecretLevel() {
return $('#secretLevel').val();
}
</script>
</body>
</html>
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