Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java =================================================================== diff -u -r27452 -r27453 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 27452) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 27453) @@ -1270,9 +1270,23 @@ return getWaitingforRecyclingInvoicePlans(sql); } @Override - public List getExpressRecyclingTousseVo(){ - StringBuffer sql = new StringBuffer(800); - sql.append(" select ip.id,po.tousseDefinitionId,ip.readed,ip.depart,ip.departCoding,ip.[version],ip.applicationTime,po.tousseName,po.amount,po.prepareRecycleAmount,po.isCleanedEntirely,po.isApplyEntireTousse,po.tousseType,td.tousseGroupID ") + public List getExpressRecyclingTousseVo(Long tousseGroupId, Long departmentGroupId){ + String tousseGroupIdSql = null; + if(DatabaseUtil.isPoIdValid(tousseGroupId)){ + tousseGroupIdSql = " and td.tousseGroupID=" + tousseGroupId; + }else{ + tousseGroupIdSql = ""; + } + String departmentGroupIdSql = ""; + if(DatabaseUtil.isPoIdValid(departmentGroupId)){ + List departCodesList = departmentGroupManager.getProperty("departCodes", "id="+departmentGroupId); + if(CollectionUtils.isNotEmpty(departCodesList)){ + String departCodes = departCodesList.get(0); + departmentGroupIdSql = " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("ip.departCoding", SqlUtils.splitStringToSet(departCodes, ";")); + } + } + StringBuffer sql = new StringBuffer(1000); + sql.append(" select ip.id,po.tousseDefinitionId,ip.readed,ip.depart,ip.departCoding,ip.[version],ip.applicationTime,po.tousseName,po.amount,po.prepareRecycleAmount,po.isCleanedEntirely,po.isApplyEntireTousse,po.tousseType ") .append(" from ") .append(TousseItem.class.getSimpleName()) .append(" po inner join ") @@ -1287,7 +1301,8 @@ .append(InvoicePlan.RECYCLINGSTATUS_PARTRECYCLE) .append("')") .append(" and ip.committedStatus=1 ") - .append("and ip.type != '") + .append(tousseGroupIdSql) + .append(" and ip.type != '") .append(InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION) .append("' and po.tousseType != '") .append(TousseDefinition.PACKAGE_TYPE_FOREIGN) @@ -1299,53 +1314,45 @@ .append(Constants.STR_YES) .append("' and (po.isThereIdentificationCard is null or po.isThereIdentificationCard='") .append(Constants.STR_NO) - .append("') and po.recyclingAmount is null") + .append("') and po.recyclingAmount is null ") + .append(departmentGroupIdSql) .append(" order by po.tousseName asc ").toString(); ResultSet rs = null; List quickRecyclingList = new ArrayList(); Set ipIds = new HashSet(); - Set departCodings = new HashSet(); try { rs = objectDao.executeSql(sql.toString()); - List groups = departmentGroupManager.getAll(); - Map departCodingToGroupIdMap = new HashedMap(); - if (rs != null) { - while (rs.next()) { - Long ipId = rs.getLong("id"); - Long tousseDefinitionId = rs.getLong("tousseDefinitionId"); - int readed = rs.getInt("readed"); - String depart = rs.getString("depart"); - String departCoding = rs.getString("departCoding"); - int version = rs.getInt("version"); - Date applicationTime = rs.getTimestamp("applicationTime"); - String tousseName = rs.getString("tousseName"); - int amount = rs.getInt("amount"); - int prepareRecycleAmount = rs.getInt("prepareRecycleAmount"); - String isCleanedEntirely = rs.getString("isCleanedEntirely"); - String isApplyEntireTousse = rs.getString("isApplyEntireTousse"); - String tousseType = rs.getString("tousseType"); - Long tousseGroupID = rs.getLong("tousseGroupID"); - ExpressRecyclingVo vo = new ExpressRecyclingVo(); - if(readed == 0){ - ipIds.add(ipId); - } - vo.setApplicationId(ipId); - vo.setDepart(depart); - vo.setInvoicePlanVersion(version); - vo.setApplicationTime(applicationTime); - vo.setTousseName(tousseName); - vo.setAmount(amount); - vo.setPrepareRecycleAmount(prepareRecycleAmount); - vo.setTousseDefinitionID(tousseDefinitionId); - vo.setIsCleanedEntirely(StringUtils.isBlank(isCleanedEntirely)?"是":isCleanedEntirely); - vo.setIsApplyEntireTousse(StringUtils.isBlank(isApplyEntireTousse)?"是":isApplyEntireTousse); - vo.setTousseType(tousseType); - vo.setDepartCoding(departCoding); - vo.setDepartGroupId(getDepartGroupId(vo.getDepartCoding(),groups,departCodingToGroupIdMap)); - vo.setTousseGroupId(tousseGroupID); - departCodings.add(departCoding); - quickRecyclingList.add(vo); + while (rs.next()) { + Long ipId = rs.getLong("id"); + Long tousseDefinitionId = rs.getLong("tousseDefinitionId"); + int readed = rs.getInt("readed"); + String depart = rs.getString("depart"); + String departCoding = rs.getString("departCoding"); + int version = rs.getInt("version"); + Date applicationTime = rs.getTimestamp("applicationTime"); + String tousseName = rs.getString("tousseName"); + int amount = rs.getInt("amount"); + int prepareRecycleAmount = rs.getInt("prepareRecycleAmount"); + String isCleanedEntirely = rs.getString("isCleanedEntirely"); + String isApplyEntireTousse = rs.getString("isApplyEntireTousse"); + String tousseType = rs.getString("tousseType"); + ExpressRecyclingVo vo = new ExpressRecyclingVo(); + if(readed == 0){ + ipIds.add(ipId); } + vo.setApplicationId(ipId); + vo.setDepart(depart); + vo.setInvoicePlanVersion(version); + vo.setApplicationTime(applicationTime); + vo.setTousseName(tousseName); + vo.setAmount(amount); + vo.setPrepareRecycleAmount(prepareRecycleAmount); + vo.setTousseDefinitionID(tousseDefinitionId); + vo.setIsCleanedEntirely(StringUtils.isBlank(isCleanedEntirely)?"是":isCleanedEntirely); + vo.setIsApplyEntireTousse(StringUtils.isBlank(isApplyEntireTousse)?"是":isApplyEntireTousse); + vo.setTousseType(tousseType); + vo.setDepartCoding(departCoding); + quickRecyclingList.add(vo); } } catch (SQLException e) { e.printStackTrace(); Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManager.java =================================================================== diff -u -r27443 -r27453 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManager.java (.../InvoicePlanManager.java) (revision 27443) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManager.java (.../InvoicePlanManager.java) (revision 27453) @@ -241,9 +241,11 @@ /** * 获取快速回收的待回收申请项。申请单回收状态为待回收和部分回收的。外来器械包申请单不处理(包括通用申请单里的外来器械也不处理)。isThereIdentificationCard为是的也不处理。expressRecycling不为是的也过滤掉 + * @param tousseGroupId 器械包分组id + * @param departmentGroupId 部门分组id * @return */ - public List getExpressRecyclingTousseVo(); + public List getExpressRecyclingTousseVo(Long tousseGroupId, Long departmentGroupId); /** * 发货计划列表扫描科室条码或者单号条码,打开对应的发货单。先按条码找科室,找不到科室就按流水号找申请单 * @param barcode 科室条码或者单号条码 Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r27443 -r27453 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 27443) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 27453) @@ -1316,7 +1316,9 @@ */ public void getAwaitForQuickRecyclingTousse() { try { - StrutsResponseUtils.output(JSONArray.fromObject(invoicePlanManager.getExpressRecyclingTousseVo())); + Long tousseGroupId = StrutsParamUtils.getPraramLongValue("tousseGroupId", null); + Long departmentGroupId = StrutsParamUtils.getPraramLongValue("departmentGroupId", null); + StrutsResponseUtils.output(JSONArray.fromObject(invoicePlanManager.getExpressRecyclingTousseVo(tousseGroupId, departmentGroupId))); } catch (Exception e) { e.printStackTrace(); }