Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r30034 -r30042 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 30034) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 30042) @@ -8547,4 +8547,93 @@ } } + @Override + public JSONArray findTousseInstanceByGoodsStock(String departCode, String tousseName) { + JSONArray array = new JSONArray(); + boolean isFirst = supplyRoomConfigManager.isFirstSupplyRoomOrgUnit(departCode); + String sql = ""; + if(isFirst){ + OrgUnit orgUnit = new OrgUnit(); + orgUnit.setOrgUnitCoding(departCode); + List wareHouselist = wareHouseManager.getWareHouseListByOrgUnit(orgUnit); + if(CollectionUtils.isEmpty(wareHouselist)){ + throw new RuntimeException("该一级供应室没有仓库,不能计算库存数量"); + } + String wareHouseIdSql = null; + if(wareHouselist.size() == 1){ + Long wareHouseId = wareHouselist.get(0).getId(); + wareHouseIdSql = String.format("and ((wareHouseId2 is null and wareHouseId =%s) or (wareHouseId2 is not null and wareHouseId2=%s)) ", wareHouseId,wareHouseId); + }else{ + Set wareHouseIds = new HashSet(); + for(WareHouse wareHouse : wareHouselist){ + wareHouseIds.add(wareHouse.getId()); + } + wareHouseIdSql = String.format("and ((wareHouseId2 is null and %s ) or (wareHouseId2 is not null and %s)) ", + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.wareHouseId", wareHouseIds), + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.wareHouseId2", wareHouseIds)); + } + sql = String.format("select ti.id,ti.signedDate,ti.signedUser,bd.barcode,ti.validUntil, ti.invoiceSender, ti.invoiceSendTime, ti.depart from %s ti " + + "inner join %s td on td.id =ti.tousseDefinition_id " + + "inner join %s bd on bd.id=ti.id " + + "where tousseFixedBarcode=0 %s " + + "and td.name='%s' ", + //+ "and comboTousseInstanceId is null " + //+ "and (ti.status='%s' or ti.status='%s') ", + TousseInstance.class.getSimpleName(), + TousseDefinition.class.getSimpleName(), + BarcodeDevice.class.getSimpleName(), + wareHouseIdSql, + tousseName); + }else{ + sql = String.format("select ti.id,ti.signedDate,ti.signedUser,bd.barcode,ti.validUntil, ti.invoiceSender, ti.invoiceSendTime, ti.depart from %s ti " + + "inner join %s i on i.id=ti.invoice_id inner join %s td on td.id =ti.tousseDefinition_id " + + "inner join %s gs on gs.tousseDefinitionId=ti.tousseDefinition_id inner join %s bd on bd.id=ti.id " + + "where tousseFixedBarcode=0 and i.departCoding=gs.orgUnitCode and i.departCoding='%s' " + + "and ( td.isCommonTousse is null or td.isCommonTousse !=1) and comboTousseInstanceId is null " + + "and td.name='%s' and (ti.status='%s' or ti.status='%s') ", + TousseInstance.class.getSimpleName(), + Invoice.class.getSimpleName(), + TousseDefinition.class.getSimpleName(), + GoodsStock.class.getSimpleName(), + BarcodeDevice.class.getSimpleName(), + departCode, tousseName, TousseInstance.STATUS_SHIPPED, TousseInstance.STATUS_SIGNED); + } + ResultSet rs = null; + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + rs = objectDao.executeSql(sql); + while(rs.next()){ + JSONObject obj = new JSONObject(); + Long id = rs.getLong("id"); + Date signedDate = rs.getTimestamp("signedDate"); + String signedUser = rs.getString("signedUser"); + String barcode = rs.getString("barcode"); + String invoiceSender = rs.getString("invoiceSender"); + String depart = rs.getString("depart"); + obj.put("id", id); + if(signedDate != null){ + obj.put("signedDate", sdf.format(signedDate)); + } + Date validUntil = rs.getTimestamp("validUntil"); + if(validUntil != null){ + obj.put("validUntil", sdf.format(validUntil)); + } + Date invoiceSendTime = rs.getTimestamp("invoiceSendTime"); + if(invoiceSendTime != null){ + obj.put("invoiceSendTime", sdf.format(invoiceSendTime)); + } + obj.put("signedUser", signedUser); + obj.put("barcode", barcode); + obj.put("invoiceSender", invoiceSender); + obj.put("depart", depart); + array.add(obj); + } + } catch (Exception e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return array; + } + } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r29677 -r30042 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 29677) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 30042) @@ -1796,4 +1796,20 @@ } StrutsResponseUtils.output(arr); } + + /** + * 器械包库存页面查看器械包信息 + */ + public void findTousseInstanceByGoodsStock(){ + String departCode = StrutsParamUtils.getPraramValue("departCode", null); + String tousseName = StrutsParamUtils.getPraramValue("tousseName", null); + try { + JSONArray array = tousseInstanceManager.findTousseInstanceByGoodsStock(departCode, tousseName); + StrutsResponseUtils.output(true, array); + } catch (Exception e) { + e.printStackTrace(); + StrutsResponseUtils.output(false); + } + } + } \ No newline at end of file Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r29932 -r30042 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 29932) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 30042) @@ -1114,5 +1114,13 @@ */ public JSONArray getNotTraceableToussesInfoByAmountAndTousseNameMap(Long warehouseId,String departCode,Map tousseNameAndAmountMap); + /** + * 器械包库存页面查看器械包信息 + * @param departCoding + * @param tousseName + * @return + */ + public JSONArray findTousseInstanceByGoodsStock(String departCoding, String tousseName); + }