Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousseitem/service/TousseItemManagerImpl.java =================================================================== diff -u -r29045 -r29057 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousseitem/service/TousseItemManagerImpl.java (.../TousseItemManagerImpl.java) (revision 29045) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousseitem/service/TousseItemManagerImpl.java (.../TousseItemManagerImpl.java) (revision 29057) @@ -21,7 +21,10 @@ import com.forgon.Constants; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; +import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; @@ -277,7 +280,7 @@ JSONObject jsonObject = JSONUtil.toJSONObjectWithInclude(ti, new String[] {"id", "tousseName", "amount", "type"}); TousseDefinition td = (TousseDefinition)objectDao.getById(TousseDefinition.class.getSimpleName(), ti.getTousseDefinitionId()); - JSONArray materialsJsonArray = tousseDefinitionManager.getMaterialsOfTousseDefinition(td); + JSONArray materialsJsonArray = getMaterialsOfTousseDefinition(td); String isImplant = "否"; if(td.getIncludeImplant() == 0){ isImplant = "是"; @@ -291,6 +294,80 @@ invoicePlanObj.put("applicationItems", tousseItemsArray); return invoicePlanObj; } + + /** + * 获取器械包的材料和一次性物品 + * @param td + * @return + */ + private JSONArray getMaterialsOfTousseDefinition(TousseDefinition td){ + JSONArray array = new JSONArray(); + + List materialList = td.getMaterialInstances(); + if (materialList != null) { + for (MaterialInstance materialInstance : materialList) { + String materialName = null; + String specification = null; + int amount = materialInstance.getCount(); + MaterialDefinition materialDefinition = materialInstance.getMaterialDefinition(); + + String includeImplant = materialInstance.materialIsImplant(); + if (materialDefinition == null) {// 外来器械 + materialName = materialInstance.getMaterialName(); + + JSONObject obj = new JSONObject(); + obj.put("materialName", materialName); + obj.put("splitAmount", materialInstance.getCount()); + obj.put("materialAmount", materialInstance.getCount()); + obj.put("includeImplant", includeImplant); + obj.put("type", "器械"); + + array.add(obj); + + } else {// 内部器械 + materialName = materialDefinition.getName(); + specification = materialDefinition.getSpecification(); + if (StringUtils.isNotBlank(specification)) { + materialName += "[" + specification + "]"; + } + JSONObject obj = new JSONObject(); + obj.put("materialId", materialDefinition.getId()); + obj.put("materialName", materialName); + obj.put("splitAmount", amount); + obj.put("materialAmount", amount); + obj.put("includeImplant", includeImplant); + obj.put("type", "器械"); + array.add(obj); + + } + } + } + + List diposableGoodsList = td.getDiposableGoodsItems(); + if (diposableGoodsList != null) { + for (DiposableGoodsInstance instance : diposableGoodsList) { + String name = instance.getDiposableGoods().getName(); + String specification = instance.getDiposableGoods() + .getSpecification(); + if (StringUtils.isNotBlank(specification)) { + name += "[" + specification + "]"; + } + + JSONObject obj = new JSONObject(); + obj.put("materialName", name); + obj.put("splitAmount", instance.getAmount()); + obj.put("materialAmount", instance.getAmount()); + obj.put("type", DisposableGoods.TYPE_NAME); + + array.add(obj); + + } + } + + return array; + } + + @Override public Map> getTerminatedTousseItemToInvoicePlanMap(Set invoicePlanIds, Set tdIds){ String tdSql = null; Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/CustomRecyclingApplicationAction.java =================================================================== diff -u -r29045 -r29057 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/CustomRecyclingApplicationAction.java (.../CustomRecyclingApplicationAction.java) (revision 29045) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/CustomRecyclingApplicationAction.java (.../CustomRecyclingApplicationAction.java) (revision 29057) @@ -199,6 +199,8 @@ } } + String recyclingStatus = null; + Integer includeRecyclingItems = InvoicePlan.SIGNED_FALSE; if (jsonArray != null) { Long appid = recyclingApplication.getId(); List items = new ArrayList(); @@ -219,6 +221,10 @@ if(!(StringUtils.equals(isRecycle, TousseDefinition.STR_YES) || StringUtils.equals(isRecycle, TousseDefinition.STR_NO))){ throw new RuntimeException("【是否回收】必须为“是”或者“否”!"); } + if(StringUtils.equals(isRecycle, TousseDefinition.STR_YES)){ + recyclingStatus = InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE; + includeRecyclingItems = InvoicePlan.SIGNED_TRUE; + } // 已经提交的申请单,【是否回收】由“是”改为“否”时,装配时需要产生装配任务 // 非自定义器械包申请单保存已经提交的申请单时,如果数量不变,就不会调整装配任务数量 Boolean modifyPackingTask = false; @@ -387,11 +393,11 @@ } else { recyclingApplication.setApplicationTime(tempApplicationTime); } - recyclingApplication.setIncludeRecyclingItems(InvoicePlan.SIGNED_TRUE); + recyclingApplication.setIncludeRecyclingItems(includeRecyclingItems); recyclingApplication.setIncludeInvoiceItems(InvoicePlan.SIGNED_FALSE); recyclingApplication.setType(RecyclingApplication.TYPE_CUSTOM_TOUSSE_APPLIACTION_FORM);// 申请单 recyclingApplication.setApplicationItems(items); - recyclingApplication.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE); + recyclingApplication.setRecyclingStatus(recyclingStatus); recyclingApplication.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); recyclingApplication.setOrderByFiled(InvoicePlan.RECYCLING_AWAITRECYCLE); if(taskGroup != null){ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r29045 -r29057 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29045) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29057) @@ -507,7 +507,7 @@ String type = obj.optString("tousseType"); String count = obj.optString("count"); Integer sequence = JSONUtil.optInteger(obj, "sequence", 0); - if ("器械材料".equals(type) || "器械".equals(type) || MaterialDefinition.TYPE_NAME.equals(type)) { + if ("器械".equals(type) || MaterialDefinition.TYPE_NAME.equals(type)) { MaterialInstance materialInstance = new MaterialInstance(); MaterialDefinition materialDefinition = null;