Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r33138 -r33416 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 33138) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 33416) @@ -25,8 +25,10 @@ import org.hibernate.Session; import com.forgon.Constants; +import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.OrgUnit; +import com.forgon.directory.model.Org_OrgGroup; import com.forgon.directory.service.OrgUnitManager; import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.adverseeventrecord.service.AdverseEventRecordManager; @@ -132,6 +134,12 @@ private AdverseEventRecordManager adverseEventRecordManager; + private DateQueryAdapter dateQueryAdapter; + + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { + this.dateQueryAdapter = dateQueryAdapter; + } + public void setAdverseEventRecordManager( AdverseEventRecordManager adverseEventRecordManager) { this.adverseEventRecordManager = adverseEventRecordManager; @@ -2326,4 +2334,72 @@ } return false; } + + + @SuppressWarnings("unchecked") + @Override + public JSONArray printWaitReceiveForeignTousse(Date startDate, Date endDate, Long orgUnitGroupID) { + if(startDate == null || endDate == null){ + throw new RuntimeException("时间不能为空!"); + } + String orgUnitGroupSql = ""; + if(DatabaseUtil.isPoIdValid(orgUnitGroupID)){ + orgUnitGroupSql = String.format(" and po.departCoding in (select orgUnitCoding from %s " + + "where id in (select orgUnitId from %s where orgGroupId = %s)) ", + OrgUnit.class.getSimpleName(), + Org_OrgGroup.class.getSimpleName(), + orgUnitGroupID); + } + String dateSql = dateQueryAdapter.dateAreaSql("po.applicationTime", + DateTools.getFormatDateStr(startDate, DateTools.COMMON_DATE_HMS), + DateTools.getFormatDateStr(endDate, DateTools.COMMON_DATE_HMS)); + String hql = String.format("select po from %s po where po.recyclingStatus in ('%s','%s') and %s %s order by po.applicationTime ", + ForeignTousseApplication.class.getSimpleName(), + ForeignTousseApplication.RECYCLINGSTATUS_AWAITRECEIVE, + ForeignTousseApplication.RECYCLINGSTATUS_PARTAWAITRECEIVE, + dateSql, + orgUnitGroupSql); + + List foreignTousseApplicationList = objectDao.findByHql(hql); + JSONArray result = new JSONArray(); + if(CollectionUtils.isEmpty(foreignTousseApplicationList)){ + return result; + } + + for (ForeignTousseApplication fta : foreignTousseApplicationList) { + JSONObject json = new JSONObject(); + json.put("applicationTime", fta.getApplicationTimeStr()); + json.put("depart", fta.getDepart()); + json.put("bedNumber", StringUtils.defaultString(fta.getBedNumber())); + json.put("patient", StringUtils.defaultString(fta.getPatient())); + json.put("hospitalNumber", StringUtils.defaultString(fta.getHospitalNumber())); + json.put("surgery", StringUtils.defaultString(fta.getSurgery())); + json.put("doctor", StringUtils.defaultString(fta.getDoctor())); + //物品名称 + List applicationItems = fta.getApplicationItems(); + JSONArray tousseArray = new JSONArray(); + if(CollectionUtils.isNotEmpty(applicationItems)){ + for (TousseItem tousseItem : applicationItems) { + Integer amount = tousseItem.getAmount(); + Integer recyclingAmount = tousseItem.getRecyclingAmount(); + if(amount == null){ + amount = 0; + } + if(recyclingAmount == null){ + recyclingAmount = 0; + } + if(amount > recyclingAmount){ + JSONObject tousseJSON = new JSONObject(); + tousseJSON.put("tousseName", tousseItem.getTousseName()); + tousseJSON.put("supplier", tousseItem.getSupplierName()); + tousseArray.add(tousseJSON); + } + } + } + json.put("applicationItems", tousseArray); + result.add(json); + } + + return result; + } } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java =================================================================== diff -u -r32958 -r33416 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java (.../ForeignTousseApplicationAction.java) (revision 32958) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java (.../ForeignTousseApplicationAction.java) (revision 33416) @@ -2,9 +2,12 @@ import java.io.IOException; import java.io.PrintWriter; +import java.text.SimpleDateFormat; import java.util.Arrays; +import java.util.Calendar; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -744,4 +747,37 @@ } StrutsResponseUtils.output(obj); } + + /** + * 在外来器械包申请模块增加【打印待接收外来器械包】功能(GDSZYY-148) + */ + public void printWaitReceiveForeignTousse(){ + + JSONObject obj = new JSONObject(); + try { + //【开始时间】默认为前一天的12:00 + Calendar defaultStartCalendar = Calendar.getInstance(); + defaultStartCalendar.add(Calendar.DAY_OF_YEAR, -1); + defaultStartCalendar.set(Calendar.HOUR_OF_DAY, 12); + defaultStartCalendar.set(Calendar.MINUTE, 0); + defaultStartCalendar.set(Calendar.SECOND, 0); + //【结束时间】默认为当天的12:00 + Calendar defaultEndCalendar = Calendar.getInstance(); + defaultEndCalendar.set(Calendar.HOUR_OF_DAY, 12); + defaultEndCalendar.set(Calendar.MINUTE, 0); + defaultEndCalendar.set(Calendar.SECOND, 59); + Date startDate = StrutsParamUtils.getDatePraramValue("startDate", defaultStartCalendar.getTime(), new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); + Date endDate = StrutsParamUtils.getDatePraramValue("endDate", defaultEndCalendar.getTime(), new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); + //科室分组ID + Long orgUnitGroupID = StrutsParamUtils.getPraramLongValue("orgUnitGroupID", null); + obj.put("data", foreignTousseApplicationManager.printWaitReceiveForeignTousse(startDate, endDate, orgUnitGroupID)); + obj.put("success", true); + } catch (Exception e) { + e.printStackTrace(); + obj.put("success", false); + obj.put("msg",e.getMessage()); + } + StrutsResponseUtils.output(obj); + } + } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java =================================================================== diff -u -r32981 -r33416 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java (.../ForeignTousseApplicationManager.java) (revision 32981) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java (.../ForeignTousseApplicationManager.java) (revision 33416) @@ -1,26 +1,14 @@ package com.forgon.disinfectsystem.foreigntousseapplication.service; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.Date; import java.util.List; -import java.util.Map; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang.StringUtils; - import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; -import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; -import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; -import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; -import com.forgon.tools.StrutsParamUtils; -import com.forgon.tools.StrutsResponseUtils; -import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.BasePoManager; -import com.forgon.tools.json.JSONUtil; /** * @author panhaowen @@ -122,4 +110,13 @@ * @return */ public JSONArray queryForeignTousseSpecificationStore(); + + /** + * 在外来器械包申请模块增加【打印待接收外来器械包】功能(GDSZYY-148) + * @param orgUnitGroupID 科室分组ID + * @param startDate 申请开始时间 + * @param endDate 申请结束时间 + * @return + */ + public JSONArray printWaitReceiveForeignTousse(Date startDate, Date endDate, Long orgUnitGroupID); }