Index: ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/service/UrgentGoodsWarningManagerImpl.java =================================================================== diff -u -r32126 -r39636 --- ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/service/UrgentGoodsWarningManagerImpl.java (.../UrgentGoodsWarningManagerImpl.java) (revision 32126) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/service/UrgentGoodsWarningManagerImpl.java (.../UrgentGoodsWarningManagerImpl.java) (revision 39636) @@ -2,21 +2,52 @@ import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang.StringUtils; + import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.forgon.Constants; +import com.forgon.databaseadapter.service.DateQueryAdapter; +import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingItem; +import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; +import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.entity.urgentgoodswarning.UrgentGoodsWarning; +import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; +import com.forgon.disinfectsystem.urgentgoodswarning.vo.UrgentWaringGoodsVo; +import com.forgon.disinfectsystem.urgentgoodswarning.vo.UrgentWaringTousseItemVo; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.ConfigUtils; +import com.forgon.tools.util.SqlUtils; public class UrgentGoodsWarningManagerImpl implements UrgentGoodsWarningManager { private ObjectDao objectDao; private InitDbConnection dbConnection; + private DateQueryAdapter dateQueryAdapter; + + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { + this.dateQueryAdapter = dateQueryAdapter; + } public void setDbConnection(InitDbConnection dbConnection) { this.dbConnection = dbConnection; } @@ -26,29 +57,45 @@ @Override public JSONArray getAllUrgentGoodsInfo(String orgUnitCode) { - String sql = String.format("select ti.tousseName,sum(ti.urgentAmount) urgentAmount,min(ip.depart) department from TousseItem ti " - + "join invoicePlan ip on ip.id=ti.recyclingApplication_ID " - + "where ti.urgentAmount > 0 and (ti.isTerminated is null or ti.isTerminated<>1) and ip.handleDepartCoding='%s' and ti.diposable<>'%s' " - + "group by ip.departCoding,ti.tousseName order by %s(ti.tousseName) asc", - orgUnitCode, Constants.STR_YES, DatabaseUtil.getSqlLengthFunctionName(dbConnection)); - + JSONArray jsonArr = new JSONArray(); - ResultSet result = objectDao.executeSql(sql); - try { - while(result.next()){ - String tousseName = StringTools.defaultString(result.getString("tousseName")); - String department = StringTools.defaultString(result.getString("department")); - Integer urgentAmount = result.getInt("urgentAmount"); - JSONObject jsonObj = new JSONObject(); - jsonObj.put("tousseName", tousseName); - jsonObj.put("urgentAmount", urgentAmount); - jsonObj.put("department", department); - jsonArr.add(jsonObj); + int enableTousseVoluntarilyUrgent = ConfigUtils.getSystemSetConfigByNameInt("enableTousseVoluntarilyUrgent", 0); + if(enableTousseVoluntarilyUrgent == 0){ + return jsonArr; + } + + if(enableTousseVoluntarilyUrgent == 1){ + String sql = String.format("select ti.tousseName,sum(ti.urgentAmount) urgentAmount,min(ip.depart) department from TousseItem ti " + + "join invoicePlan ip on ip.id=ti.recyclingApplication_ID " + + "where ti.urgentAmount > 0 and (ti.isTerminated is null or ti.isTerminated<>1) and ip.handleDepartCoding='%s' and ti.diposable<>'%s' " + + "group by ip.departCoding,ti.tousseName order by %s(ti.tousseName) asc", + orgUnitCode, Constants.STR_YES, DatabaseUtil.getSqlLengthFunctionName(dbConnection)); + + ResultSet result = objectDao.executeSql(sql); + try { + while(result.next()){ + String tousseName = StringTools.defaultString(result.getString("tousseName")); + String department = StringTools.defaultString(result.getString("department")); + Integer urgentAmount = result.getInt("urgentAmount"); + JSONObject jsonObj = new JSONObject(); + jsonObj.put("tousseName", tousseName); + jsonObj.put("urgentAmount", urgentAmount); + jsonObj.put("department", department); + jsonArr.add(jsonObj); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result); } - } catch (SQLException e) { - e.printStackTrace(); - }finally { - DatabaseUtil.closeResultSetAndStatement(result); + return jsonArr; + } else if (enableTousseVoluntarilyUrgent == 2){ + //配置项“enableTousseVoluntarilyUrgent”新增加急信息详细模式DGSDBZXYY-251 + List urgentWaringGoodsVos = getUrgentWaringGoodsVo(orgUnitCode); + if(CollectionUtils.isEmpty(urgentWaringGoodsVos)){ + return jsonArr; + } + jsonArr = JSONArray.fromObject(urgentWaringGoodsVos); } return jsonArr; } @@ -82,4 +129,618 @@ String sql = "delete from UrgentGoodsWarning where userName='" + userName + "' and departmentCode='" + departmentCode+ "'"; objectDao.executeUpdate(sql); } + + /** + * 查询加急告警物品vo + * DGSDBZXYY-251 + * @param orgUnitCode + * @return + */ + private List getUrgentWaringGoodsVo(String orgUnitCode) { + + List urgentWaringGoodsVoList = new ArrayList(); + + //1、查询待处理加急数、已经回收数 + List tousseItemVoList = getUrgentWaringTousseItemVoApplicationInfo(orgUnitCode); + if(CollectionUtils.isEmpty(tousseItemVoList)){ + return urgentWaringGoodsVoList; + } + + //2、查询已装配数量、已审核数量、已灭菌数量 + tousseItemVoList = getUrgentWaringTousseItemVoTousseInstanceInfo(tousseItemVoList); + + //3、查询清洗数量 + tousseItemVoList = getUrgentWaringTousseItemVoWashInfo(tousseItemVoList); + + //根据科室编码+器械包祖先包定义id合并数量 + urgentWaringGoodsVoList = buildUrgentWaringGoodsVo(tousseItemVoList); + + return urgentWaringGoodsVoList; + } + + /** + * 查询清洗数量 + * @param tousseItemVoList + * @return + */ + private List getUrgentWaringTousseItemVoWashInfo(List tousseItemVoList) { + if(CollectionUtils.isEmpty(tousseItemVoList)){ + return tousseItemVoList; + } + Set tousseItemIdSet = new HashSet(); + for (UrgentWaringTousseItemVo tousseItemVo : tousseItemVoList) { + Integer urgentAmount = tousseItemVo.getUrgentAmount(); + if(urgentAmount == null){ + continue; + } + Integer recyclingAmount = tousseItemVo.getRecyclingAmount(); + Integer packedAmount = tousseItemVo.getPackedAmount(); + Integer reviewAmount = tousseItemVo.getReviewAmount(); + Integer sterilizationAmount = tousseItemVo.getSterilizationAmount(); + Integer totalPackedAmount = 0; + if(packedAmount != null){ + totalPackedAmount += packedAmount; + } + if(reviewAmount != null){ + totalPackedAmount += reviewAmount; + } + if(sterilizationAmount != null){ + totalPackedAmount += sterilizationAmount; + } + if(totalPackedAmount.intValue() >= urgentAmount.intValue()){ + //加急物品全部装配时,不需要显示清洗数量 + continue; + } + if(recyclingAmount == null || recyclingAmount.intValue() == 0){ + //还没回收,不需要计算清洗数量 + continue; + } + tousseItemIdSet.add(tousseItemVo.getTousseItemId()); + } + + if(CollectionUtils.isEmpty(tousseItemIdSet)){ + return tousseItemVoList; + } + + Map tousseItemIdWashAmountMap = new HashMap(); + //申请项id对应的最新清洗记录id + Map tousseItemIdWashAndDisinfectRecordIDMap = new HashMap(); + StringBuffer sql = new StringBuffer(); + sql.append("select distinct ti.id tousseItemId, ri.amount washAmount, wdr.id washAndDisinfectRecordID, wdr.washStatus from "); + sql.append(TousseItem.class.getSimpleName()); + sql.append(" ti join "); + sql.append(RecyclingRecord.class.getSimpleName()); + sql.append(" rr on rr.recyclingApplication_id = ti.recyclingApplication_ID join "); + sql.append(RecyclingItem.class.getSimpleName()); + sql.append(" ri on ri.recyclingRecord_id = rr.id "); + sql.append(" join ClassifyBasket_RecyclingRecord cbrr on cbrr.RecyclingRecord_ID = rr.id "); + sql.append(" join ClassifiedItem ci on ci.classifybasket_id = cbrr.ClassifyBasket_ID "); + sql.append(" join ClassifyBasket_WashRecord cbwr on cbwr.ClassifyBasket_ID = cbrr.ClassifyBasket_ID "); + sql.append(" join WashAndDisinfectRecord wdr on wdr.id = cbwr.WashAndDisinfectRecord_ID "); + sql.append(" where ti.tousseDefinitionId = ri.tousseDefinitionId and ri.tousseDefinitionId = ci.tousseDefinitionID and "); + sql.append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.id", tousseItemIdSet)); + sql.append(" order by wdr.id desc "); + + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql.toString()); + while(rs.next()){ + Long tousseItemId = rs.getLong("tousseItemId"); + Integer washAmount = rs.getInt("washAmount"); + Long washAndDisinfectRecordID = rs.getLong("washAndDisinfectRecordID"); + String washStatus = rs.getString("washStatus"); + if(tousseItemIdWashAndDisinfectRecordIDMap.containsKey(tousseItemId)){ + //只取最新的清洗记录 + continue; + } + tousseItemIdWashAndDisinfectRecordIDMap.put(tousseItemId, washAndDisinfectRecordID); + if(!StringUtils.equals(washStatus, WashAndDisinfectRecord.STATUS_WASHED)){ + // "清洗完成"才统计清洗数量 + continue; + } + tousseItemIdWashAmountMap.put(tousseItemId, washAmount); + } + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + + if(MapUtils.isEmpty(tousseItemIdWashAmountMap)){ + return tousseItemVoList; + } + + for (UrgentWaringTousseItemVo tousseItemVo : tousseItemVoList) { + Long tousseItemId = tousseItemVo.getTousseItemId(); + Integer urgentAmount = tousseItemVo.getUrgentAmount(); + Integer recyclingAmount = tousseItemVo.getRecyclingAmount(); + Integer washAmount = tousseItemIdWashAmountMap.get(tousseItemId); + if(washAmount == null || urgentAmount == null){ + continue; + } + if(recyclingAmount == null || recyclingAmount.intValue() <= 0){ + continue; + } + if(urgentAmount.intValue() >= washAmount.intValue()){ + tousseItemVo.setWashAmount(washAmount); + }else{ + //全部清洗了 + tousseItemVo.setWashAmount(urgentAmount); + } + if(recyclingAmount != null && recyclingAmount.intValue() > 0){ + //回收数量-清洗数量 + recyclingAmount -= tousseItemVo.getWashAmount(); + if(recyclingAmount.intValue() < 0){ + recyclingAmount = 0; + } + tousseItemVo.setRecyclingAmount(recyclingAmount); + } + } + + return tousseItemVoList; + } + + /** + * 合并,根据科室名称+器械祖先包定义id合并加急数量 + * @param tousseItemVoList + * @return + */ + private List buildUrgentWaringGoodsVo(List tousseItemVoList) { + List urgentWaringGoodsVoList = new ArrayList(); + if(CollectionUtils.isEmpty(tousseItemVoList)){ + return urgentWaringGoodsVoList; + } + //根据科室编码+器械包定义id合并数量 + Map> departTousseDefinitionIdUrgentWaringGoodsVoMap = new LinkedHashMap>(); + for (UrgentWaringTousseItemVo tousseItemVo : tousseItemVoList) { + String departCode = tousseItemVo.getDepartCode(); + Long tousseDefinitionAncestorID = tousseItemVo.getAncestorID(); + Map tousseDefinitionIdUrgentWaringGoodsVoMap = departTousseDefinitionIdUrgentWaringGoodsVoMap.get(departCode); + if(tousseDefinitionIdUrgentWaringGoodsVoMap == null){ + tousseDefinitionIdUrgentWaringGoodsVoMap = new HashMap(); + } + UrgentWaringGoodsVo urgentWaringGoodsVo = tousseDefinitionIdUrgentWaringGoodsVoMap.get(tousseDefinitionAncestorID); + if(urgentWaringGoodsVo == null){ + urgentWaringGoodsVo = new UrgentWaringGoodsVo(); + urgentWaringGoodsVo.setDepartment(tousseItemVo.getDepart()); + urgentWaringGoodsVo.setTousseName(tousseItemVo.getTousseName()); + urgentWaringGoodsVo.setIsRecycling(tousseItemVo.getIsRecycling()); + } + //加急数量 + if(tousseItemVo.getUrgentAmount() != null && tousseItemVo.getUrgentAmount().intValue() > 0){ + urgentWaringGoodsVo.setUrgentAmount(urgentWaringGoodsVo.getUrgentAmount() + tousseItemVo.getUrgentAmount()); + } + //回收数量 + if(tousseItemVo.getRecyclingAmount() != null && tousseItemVo.getRecyclingAmount().intValue() > 0){ + urgentWaringGoodsVo.setRecyclingAmount(urgentWaringGoodsVo.getRecyclingAmount() + tousseItemVo.getRecyclingAmount()); + } + //清洗数量 + if(tousseItemVo.getWashAmount() != null && tousseItemVo.getWashAmount().intValue() > 0){ + urgentWaringGoodsVo.setWashAmount(urgentWaringGoodsVo.getWashAmount() + tousseItemVo.getWashAmount()); + } + //装配数量 + if(tousseItemVo.getPackedAmount() != null && tousseItemVo.getPackedAmount().intValue() > 0){ + urgentWaringGoodsVo.setPackedAmount(urgentWaringGoodsVo.getPackedAmount() + tousseItemVo.getPackedAmount()); + } + //审核数量 + if(tousseItemVo.getReviewAmount() != null && tousseItemVo.getReviewAmount().intValue() > 0){ + urgentWaringGoodsVo.setReviewAmount(urgentWaringGoodsVo.getReviewAmount() + tousseItemVo.getReviewAmount()); + } + //灭菌数量 + if(tousseItemVo.getSterilizationAmount() != null && tousseItemVo.getSterilizationAmount().intValue() > 0){ + urgentWaringGoodsVo.setSterilizationAmount(urgentWaringGoodsVo.getSterilizationAmount() + tousseItemVo.getSterilizationAmount()); + } + tousseDefinitionIdUrgentWaringGoodsVoMap.put(tousseDefinitionAncestorID, urgentWaringGoodsVo); + departTousseDefinitionIdUrgentWaringGoodsVoMap.put(departCode, tousseDefinitionIdUrgentWaringGoodsVoMap); + } + + for (Entry> entry : departTousseDefinitionIdUrgentWaringGoodsVoMap.entrySet()) { + Map value = entry.getValue(); + if(MapUtils.isNotEmpty(value)){ + urgentWaringGoodsVoList.addAll(value.values()); + } + } + + /*if(CollectionUtils.isNotEmpty(urgentWaringGoodsVoList)){ + for (UrgentWaringGoodsVo urgentWaringGoodsVo : urgentWaringGoodsVoList) { + Integer recyclingAmount = urgentWaringGoodsVo.getRecyclingAmount(); + Integer washAmount = urgentWaringGoodsVo.getWashAmount(); + Integer packedAmount = urgentWaringGoodsVo.getPackedAmount(); + Integer reviewAmount = urgentWaringGoodsVo.getReviewAmount(); + Integer sterilizationAmount = urgentWaringGoodsVo.getSterilizationAmount(); + if(recyclingAmount != null && recyclingAmount.intValue() > 0){ + if(washAmount != null){ + recyclingAmount -= washAmount; + } + if(packedAmount != null){ + recyclingAmount -= packedAmount; + } + if(reviewAmount != null){ + recyclingAmount -= reviewAmount; + } + if(sterilizationAmount != null){ + recyclingAmount -= sterilizationAmount; + } + if(recyclingAmount < 0){ + recyclingAmount = 0; + } + urgentWaringGoodsVo.setRecyclingAmount(recyclingAmount); + } + } + }*/ + + return urgentWaringGoodsVoList; + } + + /** + * 查询已装配数量、已审核数量、已灭菌数量 + * @param tousseItemVoList + * @return + */ + private List getUrgentWaringTousseItemVoTousseInstanceInfo(List tousseItemVoList) { + if(CollectionUtils.isEmpty(tousseItemVoList)){ + return tousseItemVoList; + } + //申请单id + Set invoicePlanIdSet = new HashSet(); + //器械包定义id + Set tousseDefinitionIdSet = new HashSet(); + //外来器械包定义id + Set foreignTousseDefinitionIdSet = new HashSet(); + for (UrgentWaringTousseItemVo tousseItemVo : tousseItemVoList) { + Integer recyclingAmount = tousseItemVo.getRecyclingAmount(); + if(StringUtils.equals(tousseItemVo.getIsRecycling(), Constants.STR_NO) || (recyclingAmount != null && recyclingAmount.intValue() > 0)){ + //不回收或者已经回收的物品才需要统计装配数量 + invoicePlanIdSet.add(tousseItemVo.getInvoicePlanId()); + tousseDefinitionIdSet.add(tousseItemVo.getTousseDefinitionId()); + if(StringUtils.equals(TousseDefinition.PACKAGE_TYPE_FOREIGN, tousseItemVo.getTousseType())){ + foreignTousseDefinitionIdSet.add(tousseItemVo.getTousseDefinitionId()); + } + } + /*invoicePlanIdSet.add(tousseItemVo.getInvoicePlanId()); + tousseDefinitionIdSet.add(tousseItemVo.getTousseDefinitionId()); + if(StringUtils.equals(TousseDefinition.PACKAGE_TYPE_FOREIGN, tousseItemVo.getTousseType())){ + foreignTousseDefinitionIdSet.add(tousseItemVo.getTousseDefinitionId()); + }*/ + } + if(CollectionUtils.isEmpty(invoicePlanIdSet) || CollectionUtils.isEmpty(tousseDefinitionIdSet)){ + return tousseItemVoList; + } + + //装配数量的map + Map> invoicePlanIdTousseDefinitionIdPackAmountMap = new HashMap>(); + //审核数量的map + Map> invoicePlanIdTousseDefinitionIdReviewAmountMap = new HashMap>(); + //灭菌数量的map + Map> invoicePlanIdTousseDefinitionIdSterilizationAmountMap = new HashMap>(); + StringBuffer sql = new StringBuffer(); + sql.append("select ti.invoicePlanID, ti.tousseDefinition_id, ti.status, ti.sterilizationRecord_id, ti.invoice_id, ti.invoice2_id, ti.operationTime from "); + sql.append(TousseInstance.class.getSimpleName()); + sql.append(" ti where "); + sql.append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.invoicePlanID", invoicePlanIdSet)); + sql.append(" and "); + sql.append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.tousseDefinition_id", tousseDefinitionIdSet)); + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql.toString()); + while(rs.next()){ + Long invoicePlanID = rs.getLong("invoicePlanID"); + Long tousseDefinition_id = rs.getLong("tousseDefinition_id"); + String status = rs.getString("status"); + Long sterilizationRecord_id = rs.getLong("sterilizationRecord_id"); + Date operationTime = rs.getTimestamp("operationTime"); + Long invoice_id = rs.getLong("invoice_id"); + Long invoice2_id = rs.getLong("invoice2_id"); + if(DatabaseUtil.isPoIdValid(invoice_id) || DatabaseUtil.isPoIdValid(invoice2_id)){ + //已经发货的不统计 + continue; + } + if(operationTime == null){ + //回收后产生的包实例不计入装配数量 + continue; + } + + //统计申请单对应物品的装配、审核、灭菌数量 + buildInvoicePlanIdTousseDefinitionIdAmountMap(invoicePlanID, tousseDefinition_id, status, sterilizationRecord_id, + invoicePlanIdTousseDefinitionIdPackAmountMap, invoicePlanIdTousseDefinitionIdReviewAmountMap, invoicePlanIdTousseDefinitionIdSterilizationAmountMap); + + if(foreignTousseDefinitionIdSet.contains(tousseDefinition_id)){ + //外来器械包没有拆包装配 + foreignTousseDefinitionIdSet.remove(tousseDefinition_id); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + + //拆分装配的外来器械包定义 + Set splitPackForeignTousseDefinitionIdset = new HashSet(); + //根据申请单id+器械包定义id查询装配的外来器械拆分小包包实例信息 + if(CollectionUtils.isNotEmpty(foreignTousseDefinitionIdSet)){ + StringBuffer foreignSql = new StringBuffer(); + foreignSql.append("select ti.invoicePlanID, td.parentID tousseDefinition_id, ti.status, ti.sterilizationRecord_id, ti.invoice_id, ti.invoice2_id, ti.operationTime from "); + foreignSql.append(TousseInstance.class.getSimpleName()); + foreignSql.append(" ti join "); + foreignSql.append(TousseDefinition.class.getSimpleName()); + foreignSql.append(" td on td.id = ti.tousseDefinition_id where "); + foreignSql.append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.invoicePlanID", invoicePlanIdSet)); + foreignSql.append(" and "); + foreignSql.append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("td.parentID", foreignTousseDefinitionIdSet)); + ResultSet foreignRS = null; + try { + foreignRS = objectDao.executeSql(foreignSql.toString()); + while(foreignRS.next()){ + Long invoicePlanID = foreignRS.getLong("invoicePlanID"); + Long tousseDefinition_id = foreignRS.getLong("tousseDefinition_id"); + String status = foreignRS.getString("status"); + Long sterilizationRecord_id = foreignRS.getLong("sterilizationRecord_id"); + Date operationTime = foreignRS.getTimestamp("operationTime"); + Long invoice_id = foreignRS.getLong("invoice_id"); + Long invoice2_id = foreignRS.getLong("invoice2_id"); + if(DatabaseUtil.isPoIdValid(invoice_id) || DatabaseUtil.isPoIdValid(invoice2_id)){ + //已经发货的不统计 + continue; + } + if(operationTime == null){ + //回收后产生的包实例不计入装配数量 + continue; + } + /*if(tousseDefinitionIdset.contains(tousseDefinition_id)){ + //同一个外来器械包拆分成多个小包时,装配数量算1 + continue; + }*/ + splitPackForeignTousseDefinitionIdset.add(tousseDefinition_id); + //统计申请单对应物品的装配、审核、灭菌数量 + buildInvoicePlanIdTousseDefinitionIdAmountMap(invoicePlanID, tousseDefinition_id, status, sterilizationRecord_id, + invoicePlanIdTousseDefinitionIdPackAmountMap, invoicePlanIdTousseDefinitionIdReviewAmountMap, invoicePlanIdTousseDefinitionIdSterilizationAmountMap); + } + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } finally { + DatabaseUtil.closeResultSetAndStatement(foreignRS); + } + } + + for (UrgentWaringTousseItemVo tousseItemVo : tousseItemVoList) { + Long invoicePlanId = tousseItemVo.getInvoicePlanId(); + Long tousseDefinitionId = tousseItemVo.getTousseDefinitionId(); + + Integer urgentAmount = tousseItemVo.getUrgentAmount(); + + if(urgentAmount == null){ + continue; + } + + //装配数量 + Map tousseDefinitionIdPackAmountMap = invoicePlanIdTousseDefinitionIdPackAmountMap.get(invoicePlanId); + if(tousseDefinitionIdPackAmountMap != null){ + Integer packAmount = tousseDefinitionIdPackAmountMap.get(tousseDefinitionId); + if(packAmount != null){ + if(StringUtils.equals(tousseItemVo.getTousseType(), TousseDefinition.PACKAGE_TYPE_FOREIGN)){ + tousseItemVo.setPackedAmount(packAmount); + }else{ + if(urgentAmount.intValue() >= packAmount.intValue()){ + tousseItemVo.setPackedAmount(packAmount); + }else{ + tousseItemVo.setPackedAmount(urgentAmount); + } + } + } + } + //审核数量 + Map tousseDefinitionIdReviewAmountMap = invoicePlanIdTousseDefinitionIdReviewAmountMap.get(invoicePlanId); + if(tousseDefinitionIdReviewAmountMap != null){ + Integer reviewAmount = tousseDefinitionIdReviewAmountMap.get(tousseDefinitionId); + if(reviewAmount != null){ + if(StringUtils.equals(tousseItemVo.getTousseType(), TousseDefinition.PACKAGE_TYPE_FOREIGN)){ + tousseItemVo.setReviewAmount(reviewAmount); + }else{ + if(urgentAmount.intValue() >= reviewAmount.intValue()){ + tousseItemVo.setReviewAmount(reviewAmount); + }else{ + tousseItemVo.setReviewAmount(urgentAmount); + } + } + } + } + //灭菌数量 + Map tousseDefinitionIdSterilizationAmountMap = invoicePlanIdTousseDefinitionIdSterilizationAmountMap.get(invoicePlanId); + if(tousseDefinitionIdSterilizationAmountMap != null){ + Integer sterilizationAmount = tousseDefinitionIdSterilizationAmountMap.get(tousseDefinitionId); + if(sterilizationAmount != null){ + if(StringUtils.equals(tousseItemVo.getTousseType(), TousseDefinition.PACKAGE_TYPE_FOREIGN)){ + tousseItemVo.setSterilizationAmount(sterilizationAmount); + }else{ + if(urgentAmount.intValue() >= sterilizationAmount.intValue()){ + tousseItemVo.setSterilizationAmount(sterilizationAmount); + }else{ + tousseItemVo.setSterilizationAmount(urgentAmount); + } + } + } + } + } + + //回收数量-清洗数量-装配数量-审核数量-灭菌数量 + reduceRecyclingAmount(tousseItemVoList, splitPackForeignTousseDefinitionIdset); + + return tousseItemVoList; + } + + /** + * 回收数量-清洗数量-装配数量-审核数量-灭菌数量 + * 同一个外来器械有多个拆分小包时,回收数量只-1 + * @param tousseItemVoList + * @param splitPackForeignTousseDefinitionIdset + */ + private void reduceRecyclingAmount(List tousseItemVoList, Set splitPackForeignTousseDefinitionIdset) { + if(CollectionUtils.isEmpty(tousseItemVoList)){ + return; + } + for (UrgentWaringTousseItemVo tousseItemVo : tousseItemVoList) { + Integer recyclingAmount = tousseItemVo.getRecyclingAmount(); + Integer washAmount = tousseItemVo.getWashAmount(); + Integer packedAmount = tousseItemVo.getPackedAmount(); + Integer reviewAmount = tousseItemVo.getReviewAmount(); + Integer sterilizationAmount = tousseItemVo.getSterilizationAmount(); + if(recyclingAmount != null && recyclingAmount.intValue() > 0){ + if(splitPackForeignTousseDefinitionIdset.contains(tousseItemVo.getTousseDefinitionId())){ + recyclingAmount -= 1; + }else{ + if(washAmount != null){ + recyclingAmount -= washAmount; + } + if(packedAmount != null){ + recyclingAmount -= packedAmount; + } + if(reviewAmount != null){ + recyclingAmount -= reviewAmount; + } + if(sterilizationAmount != null){ + recyclingAmount -= sterilizationAmount; + } + } + if(recyclingAmount < 0){ + recyclingAmount = 0; + } + tousseItemVo.setRecyclingAmount(recyclingAmount); + } + } + } + + /** + * 统计申请单对应物品的装配、审核、灭菌数量 + * @param invoicePlanID + * @param tousseDefinition_id + * @param status + * @param sterilizationRecord_id + * @param invoicePlanIdTousseDefinitionIdPackAmountMap + * @param invoicePlanIdTousseDefinitionIdReviewAmountMap + * @param invoicePlanIdTousseDefinitionIdSterilizationAmountMap + */ + private void buildInvoicePlanIdTousseDefinitionIdAmountMap(Long invoicePlanID, Long tousseDefinition_id, + String status, Long sterilizationRecord_id, + Map> invoicePlanIdTousseDefinitionIdPackAmountMap, + Map> invoicePlanIdTousseDefinitionIdReviewAmountMap, + Map> invoicePlanIdTousseDefinitionIdSterilizationAmountMap) { + + if(StringUtils.equals(TousseInstance.STATUS_REVIEWED, status) || StringUtils.equals(TousseInstance.STATUS_STERILING, status) + || StringUtils.equals(TousseInstance.STATUS_DISINFECTED, status)){ + //审核数量 + Map tousseDefinitionIdReviewAmountMap = invoicePlanIdTousseDefinitionIdReviewAmountMap.get(invoicePlanID); + if(tousseDefinitionIdReviewAmountMap == null){ + tousseDefinitionIdReviewAmountMap = new HashMap(); + } + Integer reviewAmount = tousseDefinitionIdReviewAmountMap.get(tousseDefinition_id); + if(reviewAmount == null){ + reviewAmount = 0; + } + reviewAmount++; + tousseDefinitionIdReviewAmountMap.put(tousseDefinition_id, reviewAmount); + invoicePlanIdTousseDefinitionIdReviewAmountMap.put(invoicePlanID, tousseDefinitionIdReviewAmountMap); + }else if(DatabaseUtil.isPoIdValid(sterilizationRecord_id)){ + //灭菌数量 + Map tousseDefinitionIdSterilizationAmountMap = invoicePlanIdTousseDefinitionIdSterilizationAmountMap.get(invoicePlanID); + if(tousseDefinitionIdSterilizationAmountMap == null){ + tousseDefinitionIdSterilizationAmountMap = new HashMap(); + } + Integer sterilizationAmount = tousseDefinitionIdSterilizationAmountMap.get(tousseDefinition_id); + if(sterilizationAmount == null){ + sterilizationAmount = 0; + } + sterilizationAmount++; + tousseDefinitionIdSterilizationAmountMap.put(tousseDefinition_id, sterilizationAmount); + invoicePlanIdTousseDefinitionIdSterilizationAmountMap.put(invoicePlanID, tousseDefinitionIdSterilizationAmountMap); + }else{ + //装配数量 + Map tousseDefinitionIdPackAmountMap = invoicePlanIdTousseDefinitionIdPackAmountMap.get(invoicePlanID); + if(tousseDefinitionIdPackAmountMap == null){ + tousseDefinitionIdPackAmountMap = new HashMap(); + } + Integer packAmount = tousseDefinitionIdPackAmountMap.get(tousseDefinition_id); + if(packAmount == null){ + packAmount = 0; + } + packAmount++; + tousseDefinitionIdPackAmountMap.put(tousseDefinition_id, packAmount); + invoicePlanIdTousseDefinitionIdPackAmountMap.put(invoicePlanID, tousseDefinitionIdPackAmountMap); + } + } + + /** + * 查询待处理加急数、已经回收数 + * @param orgUnitCode + * @return + */ + private List getUrgentWaringTousseItemVoApplicationInfo(String orgUnitCode) { + List tousseItemVoList = new ArrayList(); + //1、查询待处理加急数、已经回收数 + StringBuffer sql = new StringBuffer(); + sql.append("select ip.id invoicePlanId, ip.departCoding departCode, ip.depart, ti.id tousseItemId, ti.ancestorID, ti.tousseDefinitionId, ti.tousseType, ti.tousseName, ti.isRecycling, ti.urgentAmount, ti.recyclingAmount from "); + sql.append(InvoicePlan.class.getSimpleName()); + sql.append(" ip join "); + sql.append(TousseItem.class.getSimpleName()); + sql.append(" ti on ti.recyclingApplication_ID = ip.id "); + sql.append(" where ip.handleDepartCoding = '" + orgUnitCode + "' "); + String[] defaultQueryStartDateAndEndDateArray = CssdUtils.getQueryPeroidOfModule(CssdUtils.getQueryPeroidOfModule("urgent_AlarmWindow")); + if(defaultQueryStartDateAndEndDateArray == null){ + //默认查询最近3天内的申请单 + defaultQueryStartDateAndEndDateArray = CssdUtils.getQueryPeroidOfModule(3); + } + //根据申请单最后修改时间过滤 + sql.append(" and " + dateQueryAdapter.dateAreaSql("ip.submitTime", defaultQueryStartDateAndEndDateArray[0] + " 00:00:00", defaultQueryStartDateAndEndDateArray[1] + " 23:59:59")); + sql.append(" and ti.urgentAmount > 0 "); + sql.append(" and ti.diposable <> '是' "); + sql.append(" and (ti.isTerminated is null or ti.isTerminated<>1) "); + + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql.toString()); + while(rs.next()){ + Long invoicePlanId = rs.getLong("invoicePlanId"); + String departCode = rs.getString("departCode"); + String depart = rs.getString("depart"); + Long tousseItemId = rs.getLong("tousseItemId"); + Long ancestorID = rs.getLong("ancestorID"); + Long tousseDefinitionId = rs.getLong("tousseDefinitionId"); + String tousseType = rs.getString("tousseType"); + String isRecycling = rs.getString("isRecycling"); + String tousseName = rs.getString("tousseName"); + Integer urgentAmount = rs.getInt("urgentAmount"); + Integer recyclingAmount = rs.getInt("recyclingAmount"); + recyclingAmount = recyclingAmount == null ? 0 : recyclingAmount; + + UrgentWaringTousseItemVo tousseItemVo = new UrgentWaringTousseItemVo(); + tousseItemVo.setInvoicePlanId(invoicePlanId); + tousseItemVo.setDepartCode(departCode); + tousseItemVo.setDepart(depart); + tousseItemVo.setAncestorID(ancestorID); + tousseItemVo.setTousseDefinitionId(tousseDefinitionId); + tousseItemVo.setTousseType(tousseType); + tousseItemVo.setTousseItemId(tousseItemId); + tousseItemVo.setTousseName(tousseName); + tousseItemVo.setUrgentAmount(urgentAmount); + tousseItemVo.setIsRecycling(isRecycling); + if(urgentAmount > recyclingAmount){ + //默认优先回收加急的物品 + tousseItemVo.setRecyclingAmount(recyclingAmount); + }else{ + //回收数量=加急数量 + tousseItemVo.setRecyclingAmount(urgentAmount); + } + tousseItemVoList.add(tousseItemVo); + } + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return tousseItemVoList; + } } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r39621 -r39636 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 39621) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 39636) @@ -5035,7 +5035,7 @@ if (!autoReturnTheBorrowingTousse) { JSONObject jsonObject = submitRecyclingApplication(recyclingApplication, srcTousseItemVoList, committedStatus); //如果申请的物品有加急物品,则清空UrgentGoodsWarning表 - if (CssdUtils.getSystemSetConfigByNameBool("enableTousseVoluntarilyUrgent", false) + if (CssdUtils.getSystemSetConfigByNameInt("enableTousseVoluntarilyUrgent", 0) != 0 && urgentItems.size() > 0) { objectDao.executeUpdate("delete from UrgentGoodsWarning"); } Index: ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/vo/UrgentWaringTousseItemVo.java =================================================================== diff -u --- ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/vo/UrgentWaringTousseItemVo.java (revision 0) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/vo/UrgentWaringTousseItemVo.java (revision 39636) @@ -0,0 +1,204 @@ +package com.forgon.disinfectsystem.urgentgoodswarning.vo; + +/** + * 加急告警申请项vo + * DGSDBZXYY-251 + */ +public class UrgentWaringTousseItemVo { + + /** + * 申请单id + */ + private Long invoicePlanId; + + /** + * 申请项id + */ + private Long tousseItemId; + + /** + * 祖先包定义ID + */ + private Long ancestorID; + + /** + * 器械包定义id + */ + private Long tousseDefinitionId; + + /** + * 器械包类型 + */ + private String tousseType; + + /** + * 科室编码 + */ + private String departCode; + + /** + * 科室名称 + */ + private String depart; + + /** + * 器械包名称 + */ + private String tousseName; + + /** + * 是否回收 + */ + private String isRecycling; + + /** + * 待处理(发货)加急数量 + */ + private Integer urgentAmount = 0; + + /** + * 当前已回收数量 + */ + private Integer recyclingAmount = 0; + + /** + * 当前已清洗数量 + */ + private Integer washAmount = 0; + + /** + * 当前已装配数量 + */ + private Integer packedAmount = 0; + + /** + * 当前已审核数量 + */ + private Integer reviewAmount = 0; + + /** + * 当前已灭菌数量 + */ + private Integer sterilizationAmount = 0; + + public Long getInvoicePlanId() { + return invoicePlanId; + } + + public void setInvoicePlanId(Long invoicePlanId) { + this.invoicePlanId = invoicePlanId; + } + + public Long getTousseItemId() { + return tousseItemId; + } + + public void setTousseItemId(Long tousseItemId) { + this.tousseItemId = tousseItemId; + } + + public Long getAncestorID() { + return ancestorID; + } + + public void setAncestorID(Long ancestorID) { + this.ancestorID = ancestorID; + } + + public Long getTousseDefinitionId() { + return tousseDefinitionId; + } + + public void setTousseDefinitionId(Long tousseDefinitionId) { + this.tousseDefinitionId = tousseDefinitionId; + } + + public String getTousseType() { + return tousseType; + } + + public void setTousseType(String tousseType) { + this.tousseType = tousseType; + } + + public String getDepartCode() { + return departCode; + } + + public void setDepartCode(String departCode) { + this.departCode = departCode; + } + + public String getDepart() { + return depart; + } + + public void setDepart(String depart) { + this.depart = depart; + } + + public String getTousseName() { + return tousseName; + } + + public void setTousseName(String tousseName) { + this.tousseName = tousseName; + } + + public String getIsRecycling() { + return isRecycling; + } + + public void setIsRecycling(String isRecycling) { + this.isRecycling = isRecycling; + } + + public Integer getUrgentAmount() { + return urgentAmount; + } + + public void setUrgentAmount(Integer urgentAmount) { + this.urgentAmount = urgentAmount; + } + + public Integer getRecyclingAmount() { + return recyclingAmount; + } + + public void setRecyclingAmount(Integer recyclingAmount) { + this.recyclingAmount = recyclingAmount; + } + + public Integer getWashAmount() { + return washAmount; + } + + public void setWashAmount(Integer washAmount) { + this.washAmount = washAmount; + } + + public Integer getPackedAmount() { + return packedAmount; + } + + public void setPackedAmount(Integer packedAmount) { + this.packedAmount = packedAmount; + } + + public Integer getReviewAmount() { + return reviewAmount; + } + + public void setReviewAmount(Integer reviewAmount) { + this.reviewAmount = reviewAmount; + } + + public Integer getSterilizationAmount() { + return sterilizationAmount; + } + + public void setSterilizationAmount(Integer sterilizationAmount) { + this.sterilizationAmount = sterilizationAmount; + } + +} Index: ssts-web/src/main/webapp/disinfectsystem/config/demo_xk/config.js =================================================================== diff -u -r33152 -r39636 --- ssts-web/src/main/webapp/disinfectsystem/config/demo_xk/config.js (.../config.js) (revision 33152) +++ ssts-web/src/main/webapp/disinfectsystem/config/demo_xk/config.js (.../config.js) (revision 39636) @@ -266,7 +266,7 @@ //装配回收时被拆分的外来器械包时询问是否装配为1个包? askWhetherMergeAllPartsOfForeignTousseSplitInRecyclingToOneWhenPacking:true, //是否启用器械包自动加急功能 - //enableTousseVoluntarilyUrgent:true, + //enableTousseVoluntarilyUrgent:1, //是否限制同一科室(一级、二级供应室除外)只能在科室申领那里填写一张申请单。此参数目前只对通用申请单进行了限制。 //limitApply:true, //是否启用临床护理质量管理与控制指标报表 Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r39594 -r39636 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 39594) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 39636) @@ -2400,7 +2400,7 @@ } } } - if (CssdUtils.getSystemSetConfigByNameBool("enableTousseVoluntarilyUrgent", false)) { + if (CssdUtils.getSystemSetConfigByNameInt("enableTousseVoluntarilyUrgent", 0) != 0) { voluntarilyUrgent(record.getDepart(),tousseItemJson, urgentTousseItems, params, tousseDefIdTousseItemVoMap,tousseDefinitions); } @@ -3218,7 +3218,7 @@ terminateTousseItem(application, returnedTousseAmount, tousseDefinitions); } } - if (CssdUtils.getSystemSetConfigByNameBool("enableTousseVoluntarilyUrgent", false)) { + if (CssdUtils.getSystemSetConfigByNameInt("enableTousseVoluntarilyUrgent", 0) != 0) { voluntarilyUrgent(record.getDepart(),tousseItemJson, urgentTousseItems,params, tousseDefIdTousseItemVoMap,tousseDefinitions); } if(CollectionUtils.isEmpty(tousseItemJson) Index: ssts-web/src/main/webapp/disinfectsystem/config/demo/config.js =================================================================== diff -u -r38493 -r39636 --- ssts-web/src/main/webapp/disinfectsystem/config/demo/config.js (.../config.js) (revision 38493) +++ ssts-web/src/main/webapp/disinfectsystem/config/demo/config.js (.../config.js) (revision 39636) @@ -294,7 +294,7 @@ //装配回收时被拆分的外来器械包时询问是否装配为1个包? askWhetherMergeAllPartsOfForeignTousseSplitInRecyclingToOneWhenPacking:true, //是否启用器械包自动加急功能(启用后会自动加急,并且也会自动弹出加急窗口) - //enableTousseVoluntarilyUrgent:true, + //enableTousseVoluntarilyUrgent:1, //加急物品的提示时间间隔(单位秒) // urgentGoodsWarningTimeInterval : 60, //是否限制同一科室(一级、二级供应室除外)只能在科室申领那里填写一张申请单。此参数目前只对通用申请单进行了限制。 Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r39632 -r39636 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 39632) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 39636) @@ -3584,7 +3584,7 @@ * 是否启用器械包自动加急功能(只有为true时才启用,false或不配置都不启用). * 若启用则重新计算并设置器械包实例是否加急 */ - if (CssdUtils.getSystemSetConfigByNameBool("enableTousseVoluntarilyUrgent", false)) { + if (CssdUtils.getSystemSetConfigByNameInt("enableTousseVoluntarilyUrgent", 0) != 0) { recalculateUrgentTousse(AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(), submitInvoiceContext); } appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_INVOICE, Log.TYPE_ADD, "发货结束,params=" + params); Index: ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/vo/UrgentWaringGoodsVo.java =================================================================== diff -u --- ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/vo/UrgentWaringGoodsVo.java (revision 0) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/urgentgoodswarning/vo/UrgentWaringGoodsVo.java (revision 39636) @@ -0,0 +1,126 @@ +package com.forgon.disinfectsystem.urgentgoodswarning.vo; + +/** + * 加急告警物品vo + * DGSDBZXYY-251 + */ +public class UrgentWaringGoodsVo { + + /** + * 科室名称 + */ + private String department; + + /** + * 器械包名称 + */ + private String tousseName; + + /** + * 是否回收 + */ + private String isRecycling; + + /** + * 待处理(发货)加急数量 + */ + private Integer urgentAmount = 0; + + /** + * 当前已回收数量 + */ + private Integer recyclingAmount = 0; + + /** + * 当前已清洗数量 + */ + private Integer washAmount = 0; + + /** + * 当前已装配数量 + */ + private Integer packedAmount = 0; + + /** + * 当前已审核数量 + */ + private Integer reviewAmount = 0; + + /** + * 当前已灭菌数量 + */ + private Integer sterilizationAmount = 0; + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getTousseName() { + return tousseName; + } + + public void setTousseName(String tousseName) { + this.tousseName = tousseName; + } + + public String getIsRecycling() { + return isRecycling; + } + + public void setIsRecycling(String isRecycling) { + this.isRecycling = isRecycling; + } + + public Integer getUrgentAmount() { + return urgentAmount; + } + + public void setUrgentAmount(Integer urgentAmount) { + this.urgentAmount = urgentAmount; + } + + public Integer getRecyclingAmount() { + return recyclingAmount; + } + + public void setRecyclingAmount(Integer recyclingAmount) { + this.recyclingAmount = recyclingAmount; + } + + public Integer getWashAmount() { + return washAmount; + } + + public void setWashAmount(Integer washAmount) { + this.washAmount = washAmount; + } + + public Integer getPackedAmount() { + return packedAmount; + } + + public void setPackedAmount(Integer packedAmount) { + this.packedAmount = packedAmount; + } + + public Integer getReviewAmount() { + return reviewAmount; + } + + public void setReviewAmount(Integer reviewAmount) { + this.reviewAmount = reviewAmount; + } + + public Integer getSterilizationAmount() { + return sterilizationAmount; + } + + public void setSterilizationAmount(Integer sterilizationAmount) { + this.sterilizationAmount = sterilizationAmount; + } + +}