Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r14687 -r14715 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 14687) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 14715) @@ -6368,14 +6368,10 @@ try { while (rs.next()) { String materialNameWithSpec = rs.getString(1); - materialName = rs.getString(1); Integer amount = rs.getInt(2); - int index = materialName.indexOf("["); - if (index > 0) { - String[] tempArr = materialName.split("\\["); - materialName = tempArr[0]; - specification = tempArr[1].replace("]", ""); - } + JSONObject obj = CssdUtils.getGoodsNameAndSp(rs.getString(1)); + materialName = obj.optString("materialName"); + specification = obj.optString("specification"); MaterialDefinition materialDefinition = materialDefinitionManager .getMaterialDefinitionByName(materialName, specification); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManager.java =================================================================== diff -u -r14590 -r14715 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManager.java (.../MaterialDefinitionManager.java) (revision 14590) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManager.java (.../MaterialDefinitionManager.java) (revision 14715) @@ -29,6 +29,12 @@ public List getMaterialDefinitionByType(String type); + /** + * 不包含外来器械 + * @param name + * @param specification + * @return + */ public MaterialDefinition getMaterialDefinitionByName(String name,String specification); public MaterialDefinition getForeignTousseMaterialDefinition(String name,String specification); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r14684 -r14715 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14684) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14715) @@ -31,6 +31,7 @@ import com.forgon.directory.model.CssdServiceDepts; import com.forgon.directory.model.OrgUnit; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; +import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; @@ -365,16 +366,15 @@ Integer sequence = JSONUtil.optInteger(obj, "sequence", 0); if ("器械".equals(type)) { MaterialInstance materialInstance = new MaterialInstance(); - String materialName = name; - String specification = null; - if (name.lastIndexOf("[") >= 0) { - materialName = name.substring(0, name.lastIndexOf("[")); - specification = name.substring( - name.lastIndexOf("[") + 1, name.length() - 1); + JSONObject materialobj = CssdUtils.getGoodsNameAndSp(name); + String materialName = materialobj.optString("materialName"); + String specification = materialobj.optString("specification"); + MaterialDefinition materialDefinition = null; + if(TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(td.getTousseType())){ + materialDefinition = materialDefinitionManager.getForeignTousseMaterialDefinition(materialName, specification); + }else{ + materialDefinition = materialDefinitionManager.getMaterialDefinitionByName(materialName,specification); } - MaterialDefinition materialDefinition = materialDefinitionManager - .getMaterialDefinitionByName(materialName, - specification); materialInstance.setMaterialDefinition(materialDefinition); materialInstance.setMaterialName(materialName); materialInstance.setTousse(td); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManagerImpl.java =================================================================== diff -u -r14590 -r14715 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManagerImpl.java (.../MaterialDefinitionManagerImpl.java) (revision 14590) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/service/MaterialDefinitionManagerImpl.java (.../MaterialDefinitionManagerImpl.java) (revision 14715) @@ -135,6 +135,7 @@ } else { sql += " and po.specification is null"; } + sql += " and (po.isForeignMaterial is null or po.isForeignMaterial = '" + Constants.STR_NO + "')"; return (MaterialDefinition) objectDao.getBySql( MaterialDefinition.class.getSimpleName(), sql); } @@ -253,16 +254,18 @@ if (isSeachMaterialDefinition) {// 查询再生材料 if(CollectionUtils.isNotEmpty(warehouseIds)){ String wareHousePredicate = SqlUtils.getNonStringFieldInCollectionsPredicate("gs.wareHouseId", warehouseIds); - long l = System.currentTimeMillis(); String materialSql = "select md.id,md.name,md.specification,md.externalCode,md.cost,gs.amount as storage " + "from MaterialDefinition md left join (select materialDefinitionId , wareHouseId ,sum(amount) as amount from goodsstock where materialDefinitionId is not null and materialDefinitionId<>0 group by wareHouseId,materialDefinitionId ) gs on md.id=gs.materialDefinitionId and " + wareHousePredicate; + materialSql += " where 1=1 "; if(StringUtils.isNotBlank(simpleSpell)){ - materialSql += " where md.spelling like '%" + simpleSpell + materialSql += " and md.spelling like '%" + simpleSpell + "%' or md.wbCode like '%" + simpleSpell + "%' or md.name like '%" + simpleSpell + "%' or md.specification like '%" + simpleSpell - + "%' or md.externalCode like '%" + simpleSpell + "%' order by externalCode "; + + "%' or md.externalCode like '%" + simpleSpell + "%' "; } + materialSql += " and (md.isForeignMaterial is null or md.isForeignMaterial = '" + Constants.STR_NO + "') "; + materialSql += " order by externalCode"; ResultSet rs = objectDao.executeSql(materialSql); try { @@ -294,6 +297,7 @@ DatabaseUtil.closeResultSetAndStatement(rs); } }else{ + sql += " and (po.isForeignMaterial is null or po.isForeignMaterial = '" + Constants.STR_NO + "') "; List materialDefinitions = objectDao.findBySql( MaterialDefinition.class.getSimpleName(), sql); Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r14574 -r14715 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14574) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14715) @@ -288,54 +288,6 @@ saveOrUpdateForeignTousseApplication(application,jsonArray,actionType); - /*if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RECEIVE.equals(actionType)){ - application.setReceiveMan(AcegiHelper.getLoginUserFullName()); - application.setReceiveTime(new Date()); - application.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_SIGNED); - application.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_RECYCLED); - application.setOrderByFiled(InvoicePlan.DELIVER_DELIVERED); - Container container = getContaner(basketBarcode); - List tousseItems = application.getApplicationItems(); - for (TousseItem tousseItem : tousseItems) { - tousseItem.setRecyclingAmount(tousseItem.getAmount()); - // 待分类的 外来包 - TousseDefinition tousseDefinition = tousseDefinitionManager - .getForeignTousseDefinitionByTousseItem(tousseItem); - if(tousseDefinition == null){ - throw new RuntimeException(tousseItem.getTousseName() + ",定义已经不存在!"); - } - - //将器械包放入篮筐 - addTousseIntoBasket(application, tousseDefinition, - tousseItem.getAmount(), container); - - // 装配任务 - packingManager.createPackingTask(tousseDefinition, - tousseItem.getAmount(), application.getId(), - PackingTask.TASK_APPLICATION, basketBarcode, - container.getContainerName(), application.getDepart()); - } - }else if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RECYCLE.equals(actionType)){ - application.setRecylingTime(new Date()); - application.setRecyclingMan(AcegiHelper.getLoginUserFullName()); - application.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_RECYCLING); - application.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_RECYCLED); - application.setOrderByFiled(InvoicePlan.DELIVER_DELIVERED); - Container container = getContaner(basketBarcode); - List tousseItems = application.getApplicationItems(); - for (TousseItem tousseItem : tousseItems) { - // 待分类的 外来包 - TousseDefinition tousseDefinition = tousseDefinitionManager - .getForeignTousseDefinitionByTousseItem(tousseItem); - if(tousseDefinition == null){ - throw new RuntimeException(tousseItem.getTousseName() + ",定义已经不存在!"); - } - addTousseIntoBasket(application, tousseDefinition, - tousseItem.getAmount(), container); - } - - }else*/ - if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN.equals(actionType)){ foreignTousseReturn(application); //干预管理 Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r14671 -r14715 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 14671) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 14715) @@ -20,7 +20,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; import org.apache.commons.collections4.map.MultiValueMap; -import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -623,9 +622,13 @@ JSONObject obj = CssdUtils.getGoodsNameAndSp(name); name = obj.optString("materialName"); specification = obj.optString("specification"); - MaterialDefinition md = materialDefinitionManager - .getMaterialDefinitionByName(name, - specification); + TousseDefinition td = getTousseDefinition(tdMap, tousseDefinitionID); + MaterialDefinition md = null; + if(TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(td.getTousseType())){ + md = materialDefinitionManager.getForeignTousseMaterialDefinition(name, specification); + }else{ + md = materialDefinitionManager.getMaterialDefinitionByName(name,specification); + } if(md == null){ throw new RuntimeException(name+",材料定义已不存在,保存失败!"); } Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java =================================================================== diff -u -r14595 -r14715 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java (.../ImportBasedataManagerImpl.java) (revision 14595) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/importbasedata/service/ImportBasedataManagerImpl.java (.../ImportBasedataManagerImpl.java) (revision 14715) @@ -2197,9 +2197,9 @@ } // 从材料里加载 MaterialDefinition materialDefinition = materialDefinitionManager - .getMaterialDefinitionByName(newMaterialDefinitionName, + .getForeignTousseMaterialDefinition(newMaterialDefinitionName, specification); - if (materialDefinition != null && "是".equals(materialDefinition.getIsForeignMaterial())) { + if (materialDefinition != null) { for (MaterialInstance instance : existingMaterialInstanceList) { if (materialDefinition.getId().equals( instance.getMaterialDefinition().getId())) { Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java =================================================================== diff -u -r14438 -r14715 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 14438) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 14715) @@ -30,6 +30,7 @@ import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; +import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; @@ -151,18 +152,10 @@ } material.setAmount(Integer.valueOf(amountStr)); - String name = null; - String specification = null; - if (nameStr.lastIndexOf("[") >= 0) { - name = nameStr.substring(0, nameStr.lastIndexOf("[")); - specification = nameStr.substring( - nameStr.lastIndexOf("[") + 1, nameStr.length() - 1); - } else { - name = nameStr; - } - - MaterialDefinition materialDefinition = materialDefinitionManager - .getMaterialDefinitionByName(name, specification); + JSONObject obj = CssdUtils.getGoodsNameAndSp(nameStr); + String name = obj.optString("materialName"); + String specification = obj.optString("specification"); + MaterialDefinition materialDefinition = materialDefinitionManager.getMaterialDefinitionByName(name, specification); material.setMaterialDefinition(materialDefinition); materials.add(material); }