Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r13757 -r13814 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 13757) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 13814) @@ -179,6 +179,38 @@ } function deleteTousseItem(row){ + + var returnMsg = ""; + var recyclingErrorJsonArrayStr = $('#recyclingError'+row).val(); + if(recyclingErrorJsonArrayStr != ""){ + var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); + for(var j = 0;j < recyclingErrorJsonArray.length;j++) { + var errorAmount = recyclingErrorJsonArray[j].amount; + if(errorAmount > 0){ + returnMsg = "该器械包有登记丢失信息,请先删除丢失信息后再删除!"; + break; + } + } + } + if(returnMsg == ""){ + var recyclingItemDamageJsonStr = $('#recyclingDamage'+row).val(); + if(recyclingItemDamageJsonStr != ""){ + var jsonArray = JSON.parse(recyclingItemDamageJsonStr); + for(var j = 0;j < jsonArray.length ; j++){ + var errorAmount = jsonArray[j].amount; + if(errorAmount > 0){ + returnMsg = "该器械包有登记报废信息,请先删除报废信息后再删除!"; + break; + } + } + } + } + + if(returnMsg != ""){ + alertDiv(returnMsg); + return false; + } + $('#tousseItemsTr'+row).hide(); $('#deleted'+row).val('1'); var tousseName = $('#tousseName'+row).val(); @@ -2188,6 +2220,7 @@ materialDefinitionId: error.materialDefinitionId, materialName: error.materialName, amount: error.amount, + errorType: error.errorType, intoBasketAmount:error.amount }; recyclingErrorJsonArray.push(errorObj); Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r13801 -r13814 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 13801) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 13814) @@ -238,8 +238,9 @@ } tousseItem.setAmount(oldRecyclingAmount + amount); tousseItem.setRecyclingAmount(tousseItem.getAmount()); - String basketName = getBasketName(recyclingRecord,tousseItem); - tousseItem.setBasketName(basketName); + //名字太长保存不了 +// String basketName = getBasketName(recyclingRecord,tousseItem); +// tousseItem.setBasketName(basketName); if(tousseItem.getAmount() <= 0){ tousseItem.setRecyclingRecord(null); items.remove(tousseItem); @@ -271,11 +272,6 @@ Long tousseDefinitionID = obj.optLong("tousseDefinitionID"); String materialName = obj.optString("materialName"); - TousseItem tousseItem = tousseItemMap.get(tousseDefinitionID); - if(tousseItem == null){ - throw new RuntimeException("报损器械未找到相应的器械包"); - } - RecyclingDamageItem item = null; if (recyclingDamageId != null) { item = (RecyclingDamageItem) objectDao.getByProperty( @@ -285,31 +281,38 @@ damageRecordId = item.getDamageRecordId(); } } - if(item == null){ - item = new RecyclingDamageItem(); - item.setHandleDepartCode(record.getOrgUnitCoding()); - MaterialDefinition md = materialDefinitionManager.getMaterialDefinitionById("" + materialDefinitionId); - if(md == null){ - throw new RuntimeException(materialName+",未找到材料定义"); - } - item.setMaterialCost(md.getCost()); - item.setMaterialName(materialName); - item.setTousseDefinitionId(tousseDefinitionID); - item.setMaterialDefinitionId(materialDefinitionId); - item.setTousseItem_ID(tousseItem.getId()); - tousseItem.getRecyclingDamages().add(item); - } - item.setAmount(amount); - items.add(item); + //删除该回收项后tousseItem为null + TousseItem tousseItem = tousseItemMap.get(tousseDefinitionID); - if(item.getAmount() <= 0){ - item.setPackingTask_ID(null); - item.setTousseItem_ID(null); - tousseItem.getRecyclingDamages().remove(item); - items.remove(item); - if(item.getId() != null){ + if(amount <= 0){ + if(item != null){ + item.setPackingTask_ID(null); + item.setTousseItem_ID(null); + if(tousseItem != null){ + tousseItem.getRecyclingDamages().remove(item); + } objectDao.delete(item); } + }else{ + if(item == null){ + item = new RecyclingDamageItem(); + item.setHandleDepartCode(record.getOrgUnitCoding()); + MaterialDefinition md = materialDefinitionManager.getMaterialDefinitionById("" + materialDefinitionId); + if(md == null){ + throw new RuntimeException(materialName+",未找到材料定义"); + } + item.setMaterialCost(md.getCost()); + item.setMaterialName(materialName); + item.setTousseDefinitionId(tousseDefinitionID); + item.setMaterialDefinitionId(materialDefinitionId); + if(tousseItem == null){ + throw new RuntimeException("报损器械未找到相应的器械包"); + } + item.setTousseItem_ID(tousseItem.getId()); + tousseItem.getRecyclingDamages().add(item); + } + item.setAmount(amount); + items.add(item); } } RecyclingDamageRecord damageRecord = null; @@ -359,48 +362,56 @@ Long materialDefinitionId = obj.optLong("materialDefinitionId"); Long tousseDefinitionID = obj.optLong("tousseDefinitionID"); String materialName = obj.optString("materialName"); - RecyclingError error = null; - TousseItem tousseItem = tousseItemMap.get(tousseDefinitionID); - if(tousseItem == null){ - throw new RuntimeException("丢失器械未找到相应的器械包"); + if(StringUtils.isBlank(errorType)){ + throw new RuntimeException(materialName + ",未定义误差类型!"); } + RecyclingError error = null; + if(StringUtils.isNotBlank(recyclingErrorId)){ error = recyclingErrorManager.getById(recyclingErrorId); } - if(error == null){ - error = new RecyclingError(); - error.setDepart(record.getDepart()); - error.setDepartCode(record.getDepartCode()); - error.setDepartCodeForId(record.getDepartCode()); - error.setErrorType(errorType); - error.setHandleDepartCode(record.getOrgUnitCoding()); - MaterialDefinition md = materialDefinitionManager.getMaterialDefinitionById("" + materialDefinitionId); - if(!"器械包标识牌".equals(materialName) && md == null){ - throw new RuntimeException(materialName+",未找到材料定义"); + //当删除物品时tousseItem为null + TousseItem tousseItem = tousseItemMap.get(tousseDefinitionID); + + if(amount <= 0){ + if(error != null){ + error.setPackingTask_ID(null); + error.setTousseItemId(null); + if(tousseItem != null){ + tousseItem.getRecyclingErrors().remove(error); + } + objectDao.delete(error); } - if(md != null){ - error.setMaterialCost(md.getCost()); + }else{ + if(error == null){ + error = new RecyclingError(); + error.setDepart(record.getDepart()); + error.setDepartCode(record.getDepartCode()); + error.setDepartCodeForId(record.getDepartCode()); + error.setHandleDepartCode(record.getOrgUnitCoding()); + MaterialDefinition md = materialDefinitionManager.getMaterialDefinitionById("" + materialDefinitionId); + if(!"器械包标识牌".equals(materialName) && md == null){ + throw new RuntimeException(materialName+",未找到材料定义"); + } + if(md != null){ + error.setMaterialCost(md.getCost()); + } + error.setMaterialName(materialName); + error.setMissTime(new Date()); + error.setTousseDefinitionId(tousseDefinitionID); + error.setMaterialDefinitionId(materialDefinitionId); + error.setType(RecyclingError.TYPE_RECYCLINGRECORD); + if(tousseItem == null){ + throw new RuntimeException("丢失器械未找到相应的器械包"); + } + error.setTousseItemId(tousseItem.getId()); + tousseItem.getRecyclingErrors().add(error); } - error.setMaterialName(materialName); - error.setMissTime(new Date()); - error.setTousseDefinitionId(tousseDefinitionID); - error.setMaterialDefinitionId(materialDefinitionId); - error.setType(RecyclingError.TYPE_RECYCLINGRECORD); - error.setTousseItemId(tousseItem.getId()); - tousseItem.getRecyclingErrors().add(error); + error.setAmount(amount); + error.setErrorType(errorType); } - error.setAmount(amount); - //删除的回收误差 - if(error.getAmount() <= 0){ - error.setPackingTask_ID(null); - error.setTousseItemId(null); - tousseItem.getRecyclingErrors().remove(error); - if(error.getId() != null){ - objectDao.delete(error); - } - } } } }