Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java =================================================================== diff -u -r25246 -r34699 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java (.../MaterialEntryManagerImpl.java) (revision 25246) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java (.../MaterialEntryManagerImpl.java) (revision 34699) @@ -45,8 +45,10 @@ import com.forgon.disinfectsystem.entity.materialmanager.MaterialEntryItem; import com.forgon.disinfectsystem.idpredicate.IDOperators; import com.forgon.disinfectsystem.inventorymanagement.service.WriteBackInventoryManager; +import com.forgon.disinfectsystem.tousse.instrumentinstance.service.InstrumentInstanceManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.vo.PriceAmount; +import com.forgon.exception.SystemException; import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.MathTools; @@ -82,6 +84,8 @@ */ @Autowired(required=false) private WriteBackInventoryManager writeBackInventoryManager; + + private InstrumentInstanceManager instrumentInstanceManager; public void setMaterialEntryItemManager( MaterialEntryItemManager materialEntryItemManager) { @@ -118,6 +122,11 @@ // } + public void setInstrumentInstanceManager( + InstrumentInstanceManager instrumentInstanceManager) { + this.instrumentInstanceManager = instrumentInstanceManager; + } + @Override public MaterialEntryItem getMaterialEntryItemById(String id) { return (MaterialEntryItem) objectDao @@ -132,6 +141,7 @@ @Override public void deleteMaterialEntry(String ids) { + if(true)throw new SystemException("系统不允许删除入库单,只能添加退库单进行退库"); for (String id : ids.split(";")) { if (StringUtils.isNotBlank(id)) { MaterialEntry materialEntry = get(id); @@ -164,6 +174,7 @@ */ @Override public String deleteMaterialEntryOutAndReturnMessage(String ids) { + if(true)throw new SystemException("系统不允许删除退库单,只能添加入库单进行入库"); String returnValue = ""; for (String id : ids.split(";")) { if (StringUtils.isNotBlank(id)) { @@ -206,6 +217,12 @@ if(materialEntry.getWareHouseId() == null){ throw new RuntimeException("请选择仓库"); } + //如果启用器械生命周期追溯管理,则不允许创建退库单 + if(CssdUtils.getSystemSetConfigByNameBool("enableInstrumentLifeCycleTraceabilityManagement")){ + if(materialEntry.typeOut()){ + throw new SystemException("项目启用启用器械生命周期追溯管理功能,不允许创建退库单"); + } + } //旧的入库材料信息字典 Map oldMaterialEntryItemsMap = new HashMap(); for (MaterialEntryItem oldItem : materialEntry.getItemsList()) { @@ -292,6 +309,8 @@ //设置入库单总价 materialEntry.setTotalPrice(totalPrice.doubleValue()); saveOrUpdate(materialEntry); + //根据材料入库单创建器械实例 + createInstrumentInstanceByMaterialEntry(materialEntry); List goodsStockList = new ArrayList(); for (MaterialEntryItem materialEntryItem : materialEntryItems) { @@ -334,10 +353,19 @@ */ @Override public void saveMaterialEntry(MaterialEntry materialEntry, String items,boolean accordingToSupplier) throws Exception { + //如果启用器械生命周期追溯管理,则不允许创建退库单 + if(CssdUtils.getSystemSetConfigByNameBool("enableInstrumentLifeCycleTraceabilityManagement")){ + if(materialEntry.typeOut()){ + throw new SystemException("项目启用启用器械生命周期追溯管理功能,不允许创建退库单"); + } + } LoginUserData loginUser = AcegiHelper.getLoginUser(); String orgUnitCode = loginUser.getOrgUnitCodingFromSupplyRoomConfig(); String orgUnitName = loginUser.getOrgUnitNameCodingFromSupplyRoomConfig(); saveMaterialEntry(materialEntry, items,accordingToSupplier,orgUnitCode,orgUnitName); + /*if(1==1){ + throw new SystemException("test saveMaterialEntry ............"); + }*/ } /** @@ -350,7 +378,12 @@ */ @Override public void saveMaterialEntry(MaterialEntry materialEntry, String items , String orgUnitCode ,boolean accordingToSupplier){ - + //如果启用器械生命周期追溯管理,则不允许生成退库单 + if(CssdUtils.getSystemSetConfigByNameBool("enableInstrumentLifeCycleTraceabilityManagement")){ + if(materialEntry.typeOut()){ + throw new SystemException("项目启用启用器械生命周期追溯管理功能,不允许生成退库单"); + } + } if(materialEntry.getWareHouseId() == null){ throw new RuntimeException("该科室仓库未定义,不能入库!"); } @@ -436,7 +469,8 @@ //设置入库单总价 materialEntry.setTotalPrice(totalPrice.doubleValue()); saveOrUpdate(materialEntry); - + //根据材料入库单创建器械实例 + createInstrumentInstanceByMaterialEntry(materialEntry); List goodsStockList = new ArrayList(); String orgUnitName = null; if(StringUtils.isNotBlank(orgUnitCode)){ @@ -476,6 +510,14 @@ } } + /** + * 根据材料入库单创建器械实例 + * @param materialEntry 材料入库单 + */ + private void createInstrumentInstanceByMaterialEntry(MaterialEntry materialEntry){ + instrumentInstanceManager.generateInstrumentInstanceData(materialEntry); + } + @SuppressWarnings("unchecked") @Override public void loadMaterialEntryPrintData(String[] idStrs, @@ -790,6 +832,10 @@ */ @Override public void saveAppropriateEntry_TRANS_REQUIRED(MaterialEntry entry){ + //如果启用器械生命周期追溯管理,则不允许创建调拨单 + if(CssdUtils.getSystemSetConfigByNameBool("enableInstrumentLifeCycleTraceabilityManagement")){ + throw new SystemException("项目启用启用器械生命周期追溯管理功能,不允许创建调拨单"); + } if(entry != null){ entry.setId(null); entry.setType(MaterialEntry.TYPE_APPROPRIATE); @@ -927,6 +973,4 @@ entry.getItemsList().add(materialEntryItem); } - - } - +}