Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/service/AdverseEventRecordManager.java =================================================================== diff -u --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/service/AdverseEventRecordManager.java (revision 0) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/service/AdverseEventRecordManager.java (revision 32918) @@ -0,0 +1,33 @@ +package com.forgon.disinfectsystem.adverseeventrecord.service; + +import java.util.List; + +import com.forgon.disinfectsystem.entity.adverseeventrecord.AdverseEventRecord; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.vo.AdverseEventRecordVO; +import com.forgon.entity.PageEntity; +import com.forgon.tools.hibernate.BasePoManager; + +public interface AdverseEventRecordManager extends BasePoManager { + + /** + * 分页加载“不良事件”列表 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param eventName 事件编码 + * @param pageEntity 分页查询的信息 + * @return + */ + public List loadAdverseEventRecordVOList(String startTime, String endTime, String eventCode, + PageEntity pageEntity); + + /** + * 保存不良事件 + * @param invoicePlan + * @param eventCode + * @param eventName + * @param timeoutHandType + */ + public void saveAdverseEventRecord(InvoicePlan invoicePlan, String eventCode, String eventName, String timeoutHandType); + +} Index: ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml =================================================================== diff -u -r32710 -r32918 --- ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 32710) +++ ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 32918) @@ -2734,4 +2734,15 @@ class="com.forgon.disinfectsystem.foreigntoussecharge.service.ChargeSettingManagerImpl"> + + + + + + + + + + \ No newline at end of file Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/AdverseEventRecordVO.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/AdverseEventRecordVO.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/AdverseEventRecordVO.java (revision 32918) @@ -0,0 +1,92 @@ +package com.forgon.disinfectsystem.vo; + +import java.util.Date; + +/** + * 不良事件的VO + */ +public class AdverseEventRecordVO { + + private Long id; + /** + * 事件代码 + */ + private String eventCode; + /** + * 事件名称 + */ + private String eventName; + /** + * 事件发生时间 + */ + private Date eventTime; + /** + * 申请单单号 + */ + private String invoicePlanSerialNumber; + /** + * 备注 + */ + private String remark; + /** + * 超时处理方式 + */ + private String timeoutHandType; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getEventCode() { + return eventCode; + } + + public void setEventCode(String eventCode) { + this.eventCode = eventCode; + } + + public String getEventName() { + return eventName; + } + + public void setEventName(String eventName) { + this.eventName = eventName; + } + + public Date getEventTime() { + return eventTime; + } + + public void setEventTime(Date eventTime) { + this.eventTime = eventTime; + } + + public String getInvoicePlanSerialNumber() { + return invoicePlanSerialNumber; + } + + public void setInvoicePlanSerialNumber(String invoicePlanSerialNumber) { + this.invoicePlanSerialNumber = invoicePlanSerialNumber; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getTimeoutHandType() { + return timeoutHandType; + } + + public void setTimeoutHandType(String timeoutHandType) { + this.timeoutHandType = timeoutHandType; + } + +} Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/service/AdverseEventRecordManagerImpl.java =================================================================== diff -u --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/service/AdverseEventRecordManagerImpl.java (revision 0) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/service/AdverseEventRecordManagerImpl.java (revision 32918) @@ -0,0 +1,97 @@ +package com.forgon.disinfectsystem.adverseeventrecord.service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import com.forgon.databaseadapter.service.DateQueryAdapter; +import com.forgon.disinfectsystem.entity.adverseeventrecord.AdverseEventRecord; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.vo.AdverseEventRecordVO; +import com.forgon.entity.PageEntity; +import com.forgon.tools.hibernate.BasePoManagerImpl; +import com.forgon.tools.hibernate.ObjectDao; + +public class AdverseEventRecordManagerImpl extends BasePoManagerImpl implements AdverseEventRecordManager { + + private DateQueryAdapter dateQueryAdapter; + + private ObjectDao objectDao; + + public void setObjectDao(ObjectDao objectDao) { + this.objectDao = objectDao; + } + + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { + this.dateQueryAdapter = dateQueryAdapter; + } + + @SuppressWarnings("unchecked") + @Override + public List loadAdverseEventRecordVOList( + String startDateTime, String endDateTime, String eventCode, PageEntity pageEntity) { + String sql = " where 1=1 "; + //开始结束时间查询条件 + if(StringUtils.isNotBlank(startDateTime) && StringUtils.isNotBlank(endDateTime)){ + sql += " and " + dateQueryAdapter.dateAreaSql("eventTime", startDateTime, endDateTime); + } + //事件名称查询条件 + if(StringUtils.isNotBlank(eventCode)){ + sql += " and po.eventCode = " + eventCode; + } + //总记录数 + String countSql = "select count(*) from " + AdverseEventRecord.class.getSimpleName() + " po " + sql; + int totalCount = objectDao.countBySql(countSql); + pageEntity.setCount(totalCount); + List adverseEventRecordVOList = new ArrayList(); + if(totalCount > 0){ + //查询记录 + String hql = String.format("select po from %s po %s ", AdverseEventRecord.class.getSimpleName(), sql); + List adverseEventRecordList = objectDao.findByHql(hql, pageEntity.getStart(), pageEntity.getLimit()); + adverseEventRecordVOList = buildAdverseEventRecordVO(adverseEventRecordList); + } + return adverseEventRecordVOList; + } + + /** + * 构造VO对象 + * @param adverseEventRecordList + * @return + */ + private List buildAdverseEventRecordVO( + List adverseEventRecordList) { + List voList = new ArrayList(); + if(CollectionUtils.isNotEmpty(adverseEventRecordList)){ + for (AdverseEventRecord adverseEventRecord : adverseEventRecordList) { + AdverseEventRecordVO vo = new AdverseEventRecordVO(); + vo.setInvoicePlanSerialNumber(adverseEventRecord.getInvoicePlan().getSerialNumber()); + try { + BeanUtils.copyProperties(vo, adverseEventRecord); + } catch (Exception e) { + e.printStackTrace(); + } + voList.add(vo); + } + } + return voList; + } + + @Override + public void saveAdverseEventRecord(InvoicePlan invoicePlan, + String eventCode, String eventName, String timeoutHandType) { + if(invoicePlan != null && objectDao.countBySql("select count(*) from " + AdverseEventRecord.class.getSimpleName() + " where recyclingApplication_ID="+ invoicePlan.getId()) == 0){ + AdverseEventRecord adverseEventRecord = new AdverseEventRecord(); + adverseEventRecord.setEventCode(eventCode); + adverseEventRecord.setEventName(eventName); + adverseEventRecord.setEventTime(new Date()); + adverseEventRecord.setTimeoutHandType(timeoutHandType); + adverseEventRecord.setInvoicePlan(invoicePlan); + objectDao.save(adverseEventRecord); + } + } + +} Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/action/AdverseEventRecordAction.java =================================================================== diff -u --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/action/AdverseEventRecordAction.java (revision 0) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/adverseeventrecord/action/AdverseEventRecordAction.java (revision 32918) @@ -0,0 +1,89 @@ +package com.forgon.disinfectsystem.adverseeventrecord.action; + +import java.util.Date; +import java.util.List; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; + +import org.apache.commons.collections4.CollectionUtils; +import org.apache.struts2.convention.annotation.Action; +import org.apache.struts2.convention.annotation.Namespace; +import org.apache.struts2.convention.annotation.ParentPackage; + +import com.forgon.disinfectsystem.adverseeventrecord.service.AdverseEventRecordManager; +import com.forgon.disinfectsystem.entity.adverseeventrecord.AdverseEventRecord; +import com.forgon.disinfectsystem.vo.AdverseEventRecordVO; +import com.forgon.entity.PageEntity; +import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; +import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.json.DateJsonValueProcessor; +import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.util.PageUtil; +import com.opensymphony.xwork2.ModelDriven; +import com.opensymphony.xwork2.Preparable; + +@ParentPackage(value = "default") +@Namespace(value = "/disinfectSystem/adverseeventrecord") +@Action(value = "adverseEventRecordAction") +public class AdverseEventRecordAction implements Preparable, ModelDriven { + + private AdverseEventRecord adverseEventRecord; + + private AdverseEventRecordManager adverseEventRecordManager; + + public void setAdverseEventRecordManager( + AdverseEventRecordManager adverseEventRecordManager) { + this.adverseEventRecordManager = adverseEventRecordManager; + } + + /** + * 分页加载“不良事件”列表 + */ + public void loadAdverseEventRecordList(){ + //开始时间 + String startTime = StrutsParamUtils.getPraramValue("startTime", ""); + //结束时间 + String endTime = StrutsParamUtils.getPraramValue("endTime", ""); + //事件编码 + String eventCode = StrutsParamUtils.getPraramValue("eventCode", ""); + //分页的参数 + PageEntity pageEntity = PageUtil.getPagePara(); + + JSONObject result = new JSONObject(); + JSONUtil.addSuccess(result, true); + JSONArray data = new JSONArray(); + try { + List adverseEventRecordVOList = + adverseEventRecordManager.loadAdverseEventRecordVOList(startTime, endTime, eventCode, pageEntity); + if(CollectionUtils.isNotEmpty(adverseEventRecordVOList)){ + JsonConfig config = new JsonConfig(); + config.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss")); + data = JSONArray.fromObject(adverseEventRecordVOList, config); + } + JSONUtil.addProperty(result, "data", data); + JSONUtil.addProperty(result, "totalCount", pageEntity.getCount()); + } catch (Exception e) { + JSONUtil.addSuccess(result, false); + JSONUtil.addMessage(result, "查询失败:" + e.getMessage()); + } + StrutsResponseUtils.output(result); + } + + @Override + public AdverseEventRecord getModel() { + return adverseEventRecord; + } + + @Override + public void prepare() throws Exception { + adverseEventRecord = new AdverseEventRecord(); + String id = StrutsParamUtils.getPraramValue("id", ""); + if(DatabaseUtil.isPoIdValid(id)){ + adverseEventRecord = adverseEventRecordManager.get(id); + } + } + +}