Index: ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml
===================================================================
diff -u -r29658 -r29847
--- ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 29658)
+++ ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 29847)
@@ -956,7 +956,16 @@
class="com.forgon.disinfectsystem.idcardinstance.service.IDCardInstanceManagerImpl">
+
+
+
+
+
+
+
+
- 0 0/5 * * * ?
+ 0 0/2 * * * ?
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardRemarkMaintain.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardRemarkMaintain.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardRemarkMaintain.java (revision 29847)
@@ -0,0 +1,47 @@
+package com.forgon.disinfectsystem.entity.idcardinfomaintain;
+
+import javax.persistence.Entity;
+
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+/**
+ * 标识牌备注
+ * @author zhouPeiMian
+ * @since 2020-12-08
+ */
+@Entity
+@DynamicInsert(false)
+@DynamicUpdate(true)
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class IDCardRemarkMaintain extends IDCardInfoMaintain {
+
+ /**
+ * 序号
+ */
+ private Long serialNumber;
+
+ /**
+ * 备注内容(不超100字)
+ */
+ private String remark;
+
+ public Long getSerialNumber() {
+ return serialNumber;
+ }
+
+ public void setSerialNumber(Long serialNumber) {
+ this.serialNumber = serialNumber;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+}
Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/action/IDCardInfoMaintainAction.java
===================================================================
diff -u
--- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/action/IDCardInfoMaintainAction.java (revision 0)
+++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/action/IDCardInfoMaintainAction.java (revision 29847)
@@ -0,0 +1,162 @@
+package com.forgon.disinfectsystem.idcardinstance.action;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.apache.struts2.convention.annotation.Action;
+import org.apache.struts2.convention.annotation.Namespace;
+import org.apache.struts2.convention.annotation.ParentPackage;
+
+import com.forgon.directory.model.BarcodeDevice;
+import com.forgon.disinfectsystem.barcode.service.BarcodeManager;
+import com.forgon.disinfectsystem.entity.idcardinfomaintain.IDCardInfoMaintain;
+import com.forgon.disinfectsystem.entity.idcardinfomaintain.IDCardQuestionMaintain;
+import com.forgon.disinfectsystem.entity.idcardinfomaintain.IDCardRemarkMaintain;
+import com.forgon.disinfectsystem.idcardinstance.service.IDCardInfoMaintainManager;
+import com.forgon.security.model.User;
+import com.forgon.tools.StrutsParamUtils;
+import com.forgon.tools.StrutsResponseUtils;
+import com.forgon.tools.date.DateTools;
+import com.forgon.tools.db.DatabaseUtil;
+import com.opensymphony.xwork2.ModelDriven;
+import com.opensymphony.xwork2.Preparable;
+
+@ParentPackage(value = "default")
+@Namespace(value = "/disinfectSystem")
+@Action(value = "idCardInfoMaintainAction")
+public class IDCardInfoMaintainAction implements ModelDriven, Preparable {
+
+ private IDCardInfoMaintain iDCardInfoMaintain;
+
+ private IDCardInfoMaintainManager iDCardInfoMaintainManager;
+
+ private BarcodeManager barcodeManager;
+
+ public void setBarcodeManager(BarcodeManager barcodeManager) {
+ this.barcodeManager = barcodeManager;
+ }
+
+ public void setiDCardInfoMaintainManager(IDCardInfoMaintainManager iDCardInfoMaintainManager) {
+ this.iDCardInfoMaintainManager = iDCardInfoMaintainManager;
+ }
+
+ /**
+ * 根据标识牌定义ID获取标识牌信息
+ */
+ public void getIDCardInfoMaintainListByIDCardDefinitionId(){
+ String iDCardDefinitionId = StrutsParamUtils.getPraramValue("idCardDefinitionId", "");
+ String type = StrutsParamUtils.getPraramValue("type", "");
+ String status = StrutsParamUtils.getPraramValue("status", "");
+ try {
+ JSONArray iDCardInfoMaintainArr = iDCardInfoMaintainManager.getIDCardInfoMaintainListByIDCardDefinitionId(iDCardDefinitionId, type, status);
+ StrutsResponseUtils.output(true, iDCardInfoMaintainArr);
+ } catch (Exception e) {
+ StrutsResponseUtils.output(true, e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 批量处理标识牌信息(启用/停用标识牌问题、标识牌备注)
+ */
+ public void dealIDCardInfoMaintain(){
+ String status = StrutsParamUtils.getPraramValue("status", "");
+ String infoIds = StrutsParamUtils.getPraramValue("infoIds", "");
+ try {
+ iDCardInfoMaintainManager.dealIDCardInfoMaintain(infoIds, status);
+ StrutsResponseUtils.output(true, status + "成功!");
+ } catch (Exception e) {
+ StrutsResponseUtils.output(false, e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 批量删除标识牌信息(标识牌问题、标识牌备注)
+ */
+ public void deleteIDCardInfoMaintain(){
+ String infoIds = StrutsParamUtils.getPraramValue("infoIds", "");
+ try {
+ iDCardInfoMaintainManager.deleteIDCardInfoMaintain(infoIds);
+ StrutsResponseUtils.output(true, "删除成功!");
+ } catch (Exception e) {
+ StrutsResponseUtils.output(false, e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 保存标识牌信息(标识牌问题、标识牌备注)
+ */
+ public void saveOrUpdateIDCardInfoMaintain(){
+ String serialNumber = StrutsParamUtils.getPraramValue("serialNumber", "");
+ String type = StrutsParamUtils.getPraramValue("type", "");
+ String text = StrutsParamUtils.getPraramValue("text", "");
+ try {
+ iDCardInfoMaintainManager.saveOrUpdateIDCardInfoMaintain(iDCardInfoMaintain, serialNumber, type, text);
+ } catch (Exception e) {
+ StrutsResponseUtils.output(false, e.getMessage());
+ e.printStackTrace();
+ }
+ StrutsResponseUtils.output(true, "保存成功!");
+ }
+
+ /**
+ * 加载标识牌问题或者备注信息
+ */
+ public void loadIDCardInfoMaintain(){
+ if(!DatabaseUtil.isPoIdValid(iDCardInfoMaintain.getId())){
+ StrutsResponseUtils.output(false, "记录不存在!");
+ }else{
+ JSONObject json = new JSONObject();
+ json.put("registTime", DateTools.getFormatDateStr(iDCardInfoMaintain.getRegistTime(), DateTools.COMMON_DATE_HMS));
+ json.put("registUser", iDCardInfoMaintain.getRegistUser());
+ json.put("discoverUser", iDCardInfoMaintain.getDiscoverUser());
+ if(iDCardInfoMaintain instanceof IDCardQuestionMaintain){
+ IDCardQuestionMaintain IDCardQuestionMaintain = (IDCardQuestionMaintain)iDCardInfoMaintain;
+ json.put("serialNumber", IDCardQuestionMaintain.getSerialNumber());
+ json.put("text", IDCardQuestionMaintain.getQuestion());
+ }else if(iDCardInfoMaintain instanceof IDCardRemarkMaintain){
+ IDCardRemarkMaintain IDCardRemarkMaintain = (IDCardRemarkMaintain)iDCardInfoMaintain;
+ json.put("serialNumber", IDCardRemarkMaintain.getSerialNumber());
+ json.put("text", IDCardRemarkMaintain.getRemark());
+ }
+ StrutsResponseUtils.output(true, json);
+ }
+ }
+
+ /**
+ * 根据条码加载用户信息
+ */
+ public void loadUserInfoByBarcode(){
+ String barcode = StrutsParamUtils.getPraramValue("barcode", "");
+ BarcodeDevice barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode);
+ if(barcodeDevice != null && barcodeDevice instanceof User){
+ User user = (User) barcodeDevice;
+ JSONObject json = new JSONObject();
+ json.put("id", user.getId());
+ json.put("name", user.getName());
+ json.put("fullName", user.getFullName());
+ StrutsResponseUtils.output(true, json);
+ }else{
+ StrutsResponseUtils.output(false, "请输入用户条码!");
+ }
+ }
+
+ @Override
+ public void prepare() throws Exception {
+ String id = StrutsParamUtils.getPraramValue("id", "");
+ if(DatabaseUtil.isPoIdValid(id)){
+ iDCardInfoMaintain = iDCardInfoMaintainManager.get(id);
+ }
+ }
+
+ @Override
+ public IDCardInfoMaintain getModel() {
+ if(iDCardInfoMaintain == null){
+ iDCardInfoMaintain = new IDCardInfoMaintain();
+ }
+ return iDCardInfoMaintain;
+ }
+
+}
Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/service/IDCardInfoMaintainManagerImpl.java
===================================================================
diff -u
--- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/service/IDCardInfoMaintainManagerImpl.java (revision 0)
+++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/service/IDCardInfoMaintainManagerImpl.java (revision 29847)
@@ -0,0 +1,138 @@
+package com.forgon.disinfectsystem.idcardinstance.service;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import com.forgon.disinfectsystem.entity.idcardinfomaintain.IDCardInfoMaintain;
+import com.forgon.disinfectsystem.entity.idcardinfomaintain.IDCardQuestionMaintain;
+import com.forgon.disinfectsystem.entity.idcardinfomaintain.IDCardRemarkMaintain;
+import com.forgon.exception.SystemException;
+import com.forgon.tools.date.DateTools;
+import com.forgon.tools.db.DatabaseUtil;
+import com.forgon.tools.hibernate.BasePoManagerImpl;
+
+public class IDCardInfoMaintainManagerImpl extends BasePoManagerImpl implements IDCardInfoMaintainManager {
+
+ @Override
+ public JSONArray getIDCardInfoMaintainListByIDCardDefinitionId(String iDCardDefinitionId, String type, String status) {
+ String typeSql = "";
+ if(StringUtils.equals(type, IDCardQuestionMaintain.class.getSimpleName())){
+ typeSql = IDCardQuestionMaintain.class.getSimpleName();
+ }else if(StringUtils.equals(type, IDCardRemarkMaintain.class.getSimpleName())){
+ typeSql = IDCardRemarkMaintain.class.getSimpleName();
+ }else{
+ typeSql = IDCardInfoMaintain.class.getSimpleName();
+ }
+ String statusSql = "";
+ if(StringUtils.isNotBlank(status)){
+ statusSql = " and po.status = '" + status + "' ";
+ }
+ JSONArray jsonArr = new JSONArray();
+ String hql = String.format("select po from %s po where po.idCardDefinitionId = %s %s order by po.serialNumber, po.registTime ",
+ typeSql, iDCardDefinitionId, statusSql);
+ List list = objectDao.findByHql(hql);
+ if(CollectionUtils.isEmpty(list)){
+ return jsonArr;
+ }
+ for (int i=0; i IDCardInfoMaintainList = this.getCollection(infoIds, ";");
+ if(CollectionUtils.isEmpty(IDCardInfoMaintainList)){
+ throw new SystemException("记录不存在!");
+ }
+ for (IDCardInfoMaintain idCardInfoMaintain : IDCardInfoMaintainList) {
+ idCardInfoMaintain.setStatus(status);
+ }
+ objectDao.batchSaveOrUpdate(IDCardInfoMaintainList);
+ }
+
+ @Override
+ public void deleteIDCardInfoMaintain(String infoIds) {
+ if(StringUtils.isBlank(infoIds)){
+ throw new SystemException("id不能为空!");
+ }
+ List IDCardInfoMaintainList = this.getCollection(infoIds, ";");
+ if(CollectionUtils.isEmpty(IDCardInfoMaintainList)){
+ throw new SystemException("记录不存在!");
+ }
+ objectDao.deleteAll(IDCardInfoMaintainList);
+ }
+
+ @Override
+ public void saveOrUpdateIDCardInfoMaintain(IDCardInfoMaintain iDCardInfoMaintain, String serialNumber, String type, String text) {
+ if(iDCardInfoMaintain == null || !DatabaseUtil.isPoIdValid(serialNumber)
+ || StringUtils.isBlank(type) || StringUtils.isBlank(text)){
+ throw new SystemException("参数错误,保存失败!");
+ }
+ if(StringUtils.equals(type, IDCardQuestionMaintain.class.getSimpleName())){
+ IDCardQuestionMaintain IDCardQuestionMaintain = new IDCardQuestionMaintain();
+ Date registTime = new Date();
+ if(DatabaseUtil.isPoIdValid(iDCardInfoMaintain.getId())){
+ IDCardQuestionMaintain = (IDCardQuestionMaintain)iDCardInfoMaintain;
+ registTime = IDCardQuestionMaintain.getRegistTime();
+ }
+ IDCardQuestionMaintain.setDiscoverUser(iDCardInfoMaintain.getDiscoverUser());
+ IDCardQuestionMaintain.setRegistUser(iDCardInfoMaintain.getRegistUser());
+ IDCardQuestionMaintain.setRegistTime(registTime);
+ IDCardQuestionMaintain.setIdCardDefinitionId(iDCardInfoMaintain.getIdCardDefinitionId());
+ IDCardQuestionMaintain.setQuestion(text);
+ IDCardQuestionMaintain.setSerialNumber(Long.parseLong(serialNumber));
+ IDCardQuestionMaintain.setStatus(iDCardInfoMaintain.getStatus());
+ objectDao.saveOrUpdate(IDCardQuestionMaintain);
+ }else if(StringUtils.equals(type, IDCardRemarkMaintain.class.getSimpleName())){
+ IDCardRemarkMaintain IDCardRemarkMaintain = new IDCardRemarkMaintain();
+ Date registTime = new Date();
+ if(DatabaseUtil.isPoIdValid(iDCardInfoMaintain.getId())){
+ IDCardRemarkMaintain = (IDCardRemarkMaintain)iDCardInfoMaintain;
+ registTime = IDCardRemarkMaintain.getRegistTime();
+ }
+ IDCardRemarkMaintain.setDiscoverUser(iDCardInfoMaintain.getDiscoverUser());
+ IDCardRemarkMaintain.setIdCardDefinitionId(iDCardInfoMaintain.getIdCardDefinitionId());
+ IDCardRemarkMaintain.setRegistTime(registTime);
+ IDCardRemarkMaintain.setRegistUser(iDCardInfoMaintain.getRegistUser());
+ IDCardRemarkMaintain.setRemark(text);
+ IDCardRemarkMaintain.setSerialNumber(Long.parseLong(serialNumber));
+ IDCardRemarkMaintain.setStatus(iDCardInfoMaintain.getStatus());
+ objectDao.saveOrUpdate(IDCardRemarkMaintain);
+ }else{
+ throw new SystemException("参数错误,保存失败!");
+ }
+ }
+
+}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardQuestionMaintain.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardQuestionMaintain.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardQuestionMaintain.java (revision 29847)
@@ -0,0 +1,47 @@
+package com.forgon.disinfectsystem.entity.idcardinfomaintain;
+
+import javax.persistence.Entity;
+
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+/**
+ * 标识牌问题
+ * @author zhouPeiMian
+ * @since 2020-12-08
+ */
+@Entity
+@DynamicInsert(false)
+@DynamicUpdate(true)
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class IDCardQuestionMaintain extends IDCardInfoMaintain {
+
+ /**
+ * 序号
+ */
+ private Long serialNumber;
+
+ /**
+ * 问题描述(不超100字)
+ */
+ private String question;
+
+ public Long getSerialNumber() {
+ return serialNumber;
+ }
+
+ public void setSerialNumber(Long serialNumber) {
+ this.serialNumber = serialNumber;
+ }
+
+ public String getQuestion() {
+ return question;
+ }
+
+ public void setQuestion(String question) {
+ this.question = question;
+ }
+
+}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardInfoMaintain.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardInfoMaintain.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcardinfomaintain/IDCardInfoMaintain.java (revision 29847)
@@ -0,0 +1,133 @@
+package com.forgon.disinfectsystem.entity.idcardinfomaintain;
+
+import java.util.Date;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Transient;
+
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance;
+import com.forgon.tools.db.DatabaseUtil;
+import com.forgon.tools.hibernate.ObjectDao;
+
+/**
+ * 标识牌信息:标识牌问题、标识牌备注(ZSRY-5)
+ * @author zhouPeiMian
+ * @since 2020-12-08
+ */
+@Entity
+@DynamicInsert(false)
+@DynamicUpdate(true)
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class IDCardInfoMaintain {
+
+ /**
+ * ID
+ */
+ private Long id;
+
+ /**
+ * 标识牌定义ID
+ */
+ private Long idCardDefinitionId;
+
+ /**
+ * 登记时间
+ */
+ private Date registTime;
+
+ /**
+ * 登记人
+ */
+ private String registUser;
+
+ /**
+ * 发现人
+ */
+ private String discoverUser;
+
+ /**
+ * 状态:启用、停用
+ */
+ private String status = STATUS_ENABLE;
+
+ /**
+ * 启用状态(添加记录后,还没有点处理的问题或备注就是启用状态)
+ */
+ public static final String STATUS_ENABLE = "启用";
+ /**
+ * 停用状态(页面已经点处理的问题或备注就是停用状态)
+ */
+ public static final String STATUS_DISENABLE = "停用";
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getIdCardDefinitionId() {
+ return idCardDefinitionId;
+ }
+
+ public void setIdCardDefinitionId(Long idCardDefinitionId) {
+ this.idCardDefinitionId = idCardDefinitionId;
+ }
+
+ public Date getRegistTime() {
+ return registTime;
+ }
+
+ public void setRegistTime(Date registTime) {
+ this.registTime = registTime;
+ }
+
+ public String getRegistUser() {
+ return registUser;
+ }
+
+ public void setRegistUser(String registUser) {
+ this.registUser = registUser;
+ }
+
+ public String getDiscoverUser() {
+ return discoverUser;
+ }
+
+ public void setDiscoverUser(String discoverUser) {
+ this.discoverUser = discoverUser;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ /**
+ * 查询标识牌信息关联的标识牌实例
+ * @param objectDao
+ * @return
+ */
+ @Transient
+ public IDCardInstance getIDCardInstance(ObjectDao objectDao){
+ if(!DatabaseUtil.isPoIdValid(this.idCardDefinitionId)){
+ return null;
+ }
+ return (IDCardInstance) objectDao.getById(IDCardInstance.class.getSimpleName(), idCardDefinitionId);
+ }
+
+}
Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/service/IDCardInfoMaintainManager.java
===================================================================
diff -u
--- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/service/IDCardInfoMaintainManager.java (revision 0)
+++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/service/IDCardInfoMaintainManager.java (revision 29847)
@@ -0,0 +1,41 @@
+package com.forgon.disinfectsystem.idcardinstance.service;
+
+import net.sf.json.JSONArray;
+
+import com.forgon.disinfectsystem.entity.idcardinfomaintain.IDCardInfoMaintain;
+import com.forgon.tools.hibernate.BasePoManager;
+
+public interface IDCardInfoMaintainManager extends BasePoManager{
+
+ /**
+ * 根据标识牌定义ID获取标识牌问题或者标识牌备注
+ * @param iDCardDefinitionId 标识牌定义ID
+ * @param status 状态:启用、停用
+ * @param type 类型:IDCardQuestionMaintain、IDCardRemarkMaintain
+ * @return
+ */
+ public JSONArray getIDCardInfoMaintainListByIDCardDefinitionId(String iDCardDefinitionId, String type, String status);
+
+ /**
+ * 批量处理标识牌信息
+ * @param infoIds 标识牌信息id,多个id用";"分割
+ * @param status 状态(启用/停用)
+ */
+ public void dealIDCardInfoMaintain(String infoIds, String status);
+
+ /**
+ * 批量删除标识牌信息
+ * @param infoIds 标识牌信息id,多个id用";"分割
+ */
+ public void deleteIDCardInfoMaintain(String infoIds);
+
+ /**
+ * 保存标识牌问题、备注信息
+ * @param iDCardInfoMaintain 标识牌基本信息
+ * @param serialNumber 序号
+ * @param type 类型:IDCardQuestionMaintain、IDCardRemarkMaintain
+ * @param text 标识牌问题或者标识牌备注内容
+ */
+ public void saveOrUpdateIDCardInfoMaintain(IDCardInfoMaintain iDCardInfoMaintain, String serialNumber, String question, String remark);
+
+}