Index: ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml
===================================================================
diff -u -r16644 -r16820
--- ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 16644)
+++ ssts-web/src/main/resources/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 16820)
@@ -2097,8 +2097,11 @@
-
-
+
+
+
+
+
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/entity/GoodFilterConfig.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/entity/GoodFilterConfig.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/entity/GoodFilterConfig.java (revision 16820)
@@ -0,0 +1,136 @@
+package com.forgon.disinfectsystem.goodFilterConfig.entity;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.forgon.disinfectsystem.goodFilterConfig.enums.ListType;
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+import org.hibernate.annotations.Cascade;
+
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhonghaowen
+ * @apiNote 物品黑白过滤名单模板实体类
+ * @since 2017-01-11
+ */
+@Entity
+@Table(name = "GoodFilterConfig")
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class GoodFilterConfig {
+
+ /**
+ * 自增主键
+ */
+ private Long id;
+
+ /**
+ * 模板名称
+ */
+ private String templateName;
+
+ /**
+ * 操作人
+ */
+ private String operator;
+
+ /**
+ * 修改时间
+ */
+ private Date modifyTime;
+
+ /**
+ * 模板的类型(白名单或黑名单)
+ */
+ private ListType listType;
+
+
+ /**
+ * 模板下的器械包
+ */
+ @JsonIgnore
+ private List tousseDefinitionTemplateItems = new ArrayList<>();
+
+ /**
+ * 模板下的部门编号
+ */
+ @JsonIgnore
+ private List orgUnitTemplateItems = new ArrayList<>();
+
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getTemplateName() {
+ return templateName;
+ }
+
+ public void setTemplateName(String templateName) {
+ this.templateName = templateName;
+ }
+
+ public String getOperator() {
+ return operator;
+ }
+
+ public void setOperator(String operator) {
+ this.operator = operator;
+ }
+
+ public Date getModifyTime() {
+ return modifyTime;
+ }
+
+ public void setModifyTime(Date modifyTime) {
+ this.modifyTime = modifyTime;
+ }
+
+ @OneToMany(fetch = FetchType.LAZY)
+ @Cascade(value = {org.hibernate.annotations.CascadeType.ALL})
+ @JoinColumn(name = "goodFilterConfig_id")
+ public List getTousseDefinitionTemplateItems() {
+ return tousseDefinitionTemplateItems;
+ }
+
+ public void setTousseDefinitionTemplateItems(List tousseDefinitionTemplateItems) {
+ this.tousseDefinitionTemplateItems = tousseDefinitionTemplateItems;
+ }
+
+ @OneToMany(fetch = FetchType.LAZY)
+ @Cascade(value = {org.hibernate.annotations.CascadeType.ALL})
+ @JoinColumn(name = "goodFilterConfig_id")
+ public List getOrgUnitTemplateItems() {
+ return orgUnitTemplateItems;
+ }
+
+ public void setOrgUnitTemplateItems(List orgUnitTemplateItems) {
+ this.orgUnitTemplateItems = orgUnitTemplateItems;
+ }
+
+ @Enumerated(EnumType.STRING)
+ public ListType getListType() {
+ return listType;
+ }
+
+ public void setListType(ListType listType) {
+ this.listType = listType;
+ }
+}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/entity/OrgUnitTemplateItem.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/entity/OrgUnitTemplateItem.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/entity/OrgUnitTemplateItem.java (revision 16820)
@@ -0,0 +1,76 @@
+package com.forgon.disinfectsystem.goodFilterConfig.entity;
+
+
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+/**
+ * @author zhonghaowen
+ * @apiNote 物品黑白过滤名单模板下的部门实体类
+ * @since 2017-01-11
+ */
+@Entity
+@Table(name = "OrgUnitTemplateItem")
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class OrgUnitTemplateItem {
+
+ /**
+ * 自增id
+ */
+ private Long id;
+
+ /**
+ * 物品过滤模板
+ */
+ private GoodFilterConfig goodFilterConfig;
+
+ /**
+ * 部门编号
+ */
+ private String orgUnitCoding;
+
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getOrgUnitCoding() {
+ return orgUnitCoding;
+ }
+
+ public void setOrgUnitCoding(String orgUnitCoding) {
+ this.orgUnitCoding = orgUnitCoding;
+ }
+
+ @ManyToOne
+ @JoinColumn(name = "goodFilterConfig_id")
+ public GoodFilterConfig getGoodFilterConfig() {
+ return goodFilterConfig;
+ }
+
+ public void setGoodFilterConfig(GoodFilterConfig goodFilterConfig) {
+ this.goodFilterConfig = goodFilterConfig;
+ }
+
+ @Override
+ public String toString() {
+ return "OrgUnitTemplateItem{" +
+ "id=" + id +
+ ", orgUnitCoding='" + orgUnitCoding + '\'' +
+ '}';
+ }
+}
Index: ssts-web/src/main/webapp/disinfectsystem/goodFilterConfig/goodFilterTemplate.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/goodFilterConfig/goodFilterTemplate.jsp (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/goodFilterConfig/goodFilterTemplate.jsp (revision 16820)
@@ -0,0 +1,76 @@
+<%@page import="java.util.Date" %>
+<%@page import="java.text.SimpleDateFormat" %>
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ include file="/common/taglibs.jsp" %>
+<%
+ LoginUserData userData = AcegiHelper.getLoginUser();
+ request.setAttribute("userName", userData.getUserFullName());
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ request.setAttribute("today", dateFormat.format(new Date()));
+ session.setAttribute("userName", userData.getUserFullName());
+//session.setAttribute("today",dateFormat.format(new Date()));
+%>
+
+
+
+ 科室物品过滤模板
+
+
+
+<%@ include file="/common/includeExtJsAndCss.jsp" %>
+
+
+<%----%>
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/service/GoodFilterConfigManagerImpl.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/service/GoodFilterConfigManagerImpl.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/goodFilterConfig/service/GoodFilterConfigManagerImpl.java (revision 16820)
@@ -0,0 +1,304 @@
+package com.forgon.disinfectsystem.goodFilterConfig.service;
+
+import com.beust.jcommander.ParameterException;
+import com.forgon.directory.acegi.tools.AcegiHelper;
+import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition;
+import com.forgon.disinfectsystem.goodFilterConfig.entity.GoodFilterConfig;
+import com.forgon.disinfectsystem.goodFilterConfig.entity.OrgUnitTemplateItem;
+import com.forgon.disinfectsystem.goodFilterConfig.entity.TousseDefinitionTemplateItems;
+import com.forgon.disinfectsystem.goodFilterConfig.enums.ListType;
+import com.forgon.disinfectsystem.goodFilterConfig.factory.BWHandlerFactory;
+import com.forgon.disinfectsystem.goodFilterConfig.vo.GoodFilterConfigVo;
+import com.forgon.tools.Constants;
+import com.forgon.tools.SqlBuilder;
+import com.forgon.tools.hibernate.ObjectDao;
+import com.forgon.tools.json.JSONUtil;
+import com.google.gson.reflect.TypeToken;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.hibernate.SQLQuery;
+import org.hibernate.Session;
+import org.hibernate.type.LongType;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhonghaowen
+ * @apiNote 黑白名单过滤模板服务层接口实现类
+ * @since 2017-01-13
+ */
+public class GoodFilterConfigManagerImpl implements GoodFilterConfigManager {
+
+ private ObjectDao objectDao;
+
+ protected Logger logger = Logger.getLogger(this.getClass());
+
+ public void setObjectDao(ObjectDao objectDao) {
+ this.objectDao = objectDao;
+ }
+
+ @Override
+ @Transactional(propagation = Propagation.REQUIRED)
+ public void saveOrUpdate(GoodFilterConfigVo goodFilterConfigVo) {
+ try {
+ GoodFilterConfig goodFilterConfig = this.getGoodFilterConfig(goodFilterConfigVo);
+ this.prepareUpdate(goodFilterConfig, goodFilterConfigVo);
+ objectDao.saveOrUpdate(goodFilterConfig);
+ }
+ catch (Exception e) {
+ logger.error(e);
+ throw new RuntimeException(e);
+ }
+ }
+
+
+ @Override
+ @Transactional(propagation = Propagation.REQUIRED)
+ public void delete(String ids) {
+ try {
+ if (StringUtils.isNotBlank(ids)) {
+ String[] idLists = ids.split(Constants.IDS_SEPARATOR_COMMA);
+ List list = Arrays.asList(idLists);
+ objectDao.delete(GoodFilterConfig.class.getSimpleName(), list);
+ }
+ }
+ catch (Exception e) {
+ logger.error(e);
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public JSONObject loadGoodFilterById(Long id) {
+ try {
+ if (id == null) {
+ throw new ParameterException("模板id不能为空!");
+ }
+ GoodFilterConfig goodFilterConfig = objectDao.getHt().get(GoodFilterConfig.class, id);
+ GoodFilterReBuilder instance = GoodFilterReBuilder.getInstance(this);
+ JSONArray jsonArray = instance.buildAllInfo(goodFilterConfig);
+ logger.debug(jsonArray);
+ return instance.buildResult(jsonArray);
+ }
+ catch (Exception e) {
+ logger.error(e, e);
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public JSONArray getTousseItem(GoodFilterConfig goodFilterConfig) {
+ JSONArray jsonArray = new JSONArray();
+ List tousseItems = goodFilterConfig.getTousseDefinitionTemplateItems();
+ for (TousseDefinitionTemplateItems tousseItem : tousseItems) {
+ TousseDefinition tousseDefinition = tousseItem.getTousseDefinition();
+ JSONArray array = new JSONArray();
+ array.add(tousseItem.getId());
+ array.add(tousseDefinition.getId());
+ array.add(tousseDefinition.getName());
+ jsonArray.add(array);
+ }
+ return jsonArray;
+ }
+
+
+ @Override
+ public JSONArray getDepart(GoodFilterConfig goodFilterConfig) {
+ List orgUnitTemplateItems = goodFilterConfig.getOrgUnitTemplateItems();
+ StringBuilder code = new StringBuilder();
+ for (OrgUnitTemplateItem orgUnitTemplateItem : orgUnitTemplateItems) {
+ code.append(orgUnitTemplateItem.getOrgUnitCoding()).append(",");
+ }
+ JSONArray jsonArray = new JSONArray();
+ if (StringUtils.isNotBlank(code)) {
+ String codes = code.substring(0, code.length() - 1);
+ String orgUnitCoding = SqlBuilder.createStatus("orgUnitCoding", codes.split(Constants.IDS_SEPARATOR_COMMA));
+ String sql = "select po.id as orgUnitTemplateId,ou.orgUnitCoding,ou.name from OrgUnitTemplateItem po,OrgUnit ou where po.orgUnitCoding=ou.orgUnitCoding " +
+ " and " + orgUnitCoding + " and po.goodFilterConfig.id = " + goodFilterConfig.getId();
+ Session session = objectDao.getHibernateSession();
+ List