Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r17447 -r17463 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 17447) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 17463) @@ -1,6 +1,5 @@ package com.forgon.disinfectsystem.tousse.toussedefinition.service; -import java.io.File; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; @@ -17,10 +16,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.forgon.disinfectsystem.goodFilterConfig.enums.ListType; import com.forgon.disinfectsystem.goodFilterConfig.service.GoodFilterConfigManager; import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; -import com.forgon.tools.SqlBuilder; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -50,9 +47,11 @@ import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseComposite; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; import com.forgon.disinfectsystem.entity.idcarddefinition.IDCardDefinition; import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; +import com.forgon.disinfectsystem.entity.recall.RecallRecord; import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; @@ -67,7 +66,6 @@ import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; import com.forgon.tools.MathTools; -import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.BasePoManagerImpl; @@ -550,96 +548,60 @@ /** * 更新其它实体表的器械包名称的值 - * @param originalTousseName + * @param oldName * @param td */ - private void updateOtherEntityTousseName(String originalTousseName , TousseDefinition td){ - String targetTousseName = td.getName(); + private void updateOtherEntityTousseName(String oldName , TousseDefinition td){ + Long id = td.getId(); + String newName = td.getName(); String tousseType = td.getTousseType(); try{ - List updateSqlList = new ArrayList(); + List updateSqlList = new LinkedList(); - //清洗记录ClassifiedItem(拆包清洗相应字段的修改) - updateSqlList.add("update ClassifiedItem set tousseNameForMaterial='" + targetTousseName + "'" - + " where itemType='材料' and tousseNameForMaterial='" + originalTousseName + "'"); - - //科室库存DepartmentStock - updateSqlList.add("update DepartmentStock set tousseName='"+ targetTousseName +"' where tousseName='"+ originalTousseName +"'"); - - //发货项InvoiceItem - updateSqlList.add("update InvoiceItem set tousseName='"+ targetTousseName - + "' where tousseType='"+ tousseType +"' and tousseName='"+ originalTousseName +"'"); - - //装配记录PackingRecord - updateSqlList.add("update PackingRecord set tousseName='"+ targetTousseName - + "' where tousseType='"+ tousseType +"' and tousseName='"+ originalTousseName +"'"); - - //质量监测QualityMonitoring - updateSqlList.add("update QualityMonitoring set tousseName='"+ targetTousseName - + "' where scope='"+ tousseType +"' and tousseName='"+ originalTousseName +"'"); - - //召回记录RecallRecord - updateSqlList.add("update RecallRecord set objectName='"+ targetTousseName - + "' where type='"+ tousseType +"' and objectName='"+ originalTousseName +"'"); - - //回收报损项ReceiveGoodsItem - updateSqlList.add("update ReceiveRecordItem set goodsName='"+ targetTousseName - + "' where type='"+ tousseType +"' and goodsName='"+ originalTousseName +"'"); - - //回收报损项RecyclingDamageItem - updateSqlList.add("update RecyclingDamageItem set tousseName='"+ targetTousseName +"' where tousseName='"+ originalTousseName +"'"); - - //申请项TousseStock - updateSqlList.add("update TousseStock set tousseName='"+ targetTousseName +"' where tousseName='"+ originalTousseName +"'"); - - //如果修改前的名称与修改后的名称不一致,则修改器械包定义的器械包名称为相应修改其它相关表的器械包名称 - if(td.isDisinfection()){ - //退物项ReturnGoodsItem - updateSqlList.add("update ReturnGoodsItem set tousseName='"+ targetTousseName +"' where tousseDefinition_id in (select id from TousseDefinition where ancestorId="+ td.getId() +")"); - - //器械包实例TousseInstance - updateSqlList.add("update TousseInstance set tousseName='"+ targetTousseName +"' where tousseDefinition_id in (select id from TousseDefinition where ancestorId="+ td.getId() +")"); - - //申请项TousseItem - updateSqlList.add("update TousseItem set tousseName='"+ targetTousseName +"' where tousseDefinitionId in (select id from TousseDefinition where ancestorId="+ td.getId() +")"); - - //清洗记录ClassifiedItem(整包清洗相应字段的修改) - updateSqlList.add("update ClassifiedItem set name='" + targetTousseName + "'" - + " where itemType<>'材料' and toussedefinition_id in (select id from TousseDefinition where ancestorId="+ td.getId() +")"); + //1、GoodsStock(物品库存) + updateSqlList.add(String.format("update GoodsStock set name='%s' where tousseDefinitionId=%s", newName, id)); + //2、TousseStock(器械包库存) + updateSqlList.add(String.format("update TousseStock set tousseName='%s' where tousseName='%s'", newName, oldName)); + //3、DepartmentStock(科室库存) + updateSqlList.add(String.format("update DepartmentStock set tousseName='%s' where tousseName='%s'", newName, oldName)); + //4、CssdHandleTousses(供应室处理器械包配置) + updateSqlList.add(String.format("update CssdHandleTousses set tousseName='%s' where tousseDefinitionId=%s",newName, id)); + //5、IDCardInstance(标识牌实例) + updateSqlList.add(String.format("update IDCardInstance set tousseName='%s' where idCardDefinitionID in (select id from IDCardDefinition where tousseDefinitionID=%s)", newName, id)); + //6、RecyclingDamageItem(回收报损项) + updateSqlList.add(String.format("update RecyclingDamageItem set tousseName='%s' where tousseName='%s'", newName, oldName)); + //7、ClassifiedItem(清洗篮筐项,拆包清洗) + updateSqlList.add(String.format("update ClassifiedItem set tousseNameForMaterial='%s' where itemType='%s' and tousseNameForMaterial='%s'", newName, ClassifiedItem.TYPE_MATERIAL, oldName)); + //8、PackingRecord(装配记录) + updateSqlList.add(String.format("update PackingRecord set tousseName='%s' where tousseType='%s' and tousseName='%s'", newName, tousseType, oldName)); + //9、InvoiceItem(发货项) + updateSqlList.add(String.format("update InvoiceItem set tousseName='%s' where tousseType='%s' and tousseName='%s'", newName, tousseType, oldName)); + //10、RecallRecord(召回记录) + updateSqlList.add(String.format("update RecallRecord set objectName='%s' where type='%s' and objectName='%s'", newName,RecallRecord.TYPE_TOUSSE, oldName)); + + /** + * 11、ReturnGoodsItem(退物项) 12、TousseInstance(器械包实例) 13、TousseItem(申请项) 14、ClassifiedItem(清洗篮筐项,整包清洗) + * 这四个表,消毒物品处理方式有所不同,需要修改所有子代产生的数据 + */ + if(td.isDisinfection()){ //消毒物品 + updateSqlList.add(String.format("update ReturnGoodsItem set tousseName='%s' where tousseDefinition_id in (select id from TousseDefinition where ancestorId=%s)", newName, id)); + updateSqlList.add(String.format("update TousseInstance set tousseName='%s' where tousseDefinition_id in (select id from TousseDefinition where ancestorId=%s)", newName, id)); + updateSqlList.add(String.format("update TousseItem set tousseName='%s' where tousseDefinitionId in (select id from TousseDefinition where ancestorId=%s)", newName, id)); + updateSqlList.add(String.format("update ClassifiedItem set name='%s' where itemType<>'%s' and toussedefinition_id in (select id from TousseDefinition where ancestorId=%s)", newName, ClassifiedItem.TYPE_MATERIAL, id)); }else if(TousseDefinition.PACKAGE_TYPE_INSIDE.equals(td.getTousseType()) || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(td.getTousseType()) || TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY.equals(td.getTousseType()) || td.isComboTousse()){ - //退物项ReturnGoodsItem - updateSqlList.add("update ReturnGoodsItem set tousseName='"+ targetTousseName +"' where tousseDefinition_id="+ td.getId()); - - //器械包实例TousseInstance - updateSqlList.add("update TousseInstance set tousseName='"+ targetTousseName +"' where tousseDefinition_id="+ td.getId()); - - //申请项TousseItem - updateSqlList.add("update TousseItem set tousseName='"+ targetTousseName +"' where tousseDefinitionId="+ td.getId()); - - // 器械包库存GoodsStock更改名字 - updateSqlList.add(String.format("update %s set name='%s' where tousseDefinitionId=%s",GoodsStock.class.getSimpleName(), targetTousseName,td.getId())); - - //清洗记录ClassifiedItem(整包清洗相应字段的修改) - updateSqlList.add("update ClassifiedItem set name='" + targetTousseName + "'" - + " where itemType<>'材料' and toussedefinition_id=" + td.getId()); + updateSqlList.add(String.format("update ReturnGoodsItem set tousseName='%s' where tousseDefinition_id=%s", newName, id)); + updateSqlList.add(String.format("update TousseInstance set tousseName='%s' where tousseDefinition_id=%s", newName, id)); + updateSqlList.add(String.format("update TousseItem set tousseName='%s' where tousseDefinitionId=%s", newName, id)); + updateSqlList.add(String.format("update ClassifiedItem set name='%s' where itemType<>'%s' and toussedefinition_id=%s", newName, ClassifiedItem.TYPE_MATERIAL, id)); } - // 器械包库存GoodsStock更改名字 - updateSqlList.add(String.format("update %s set name='%s' where tousseDefinitionId=%s",GoodsStock.class.getSimpleName(), targetTousseName,td.getId())); - //供应室处理器械包配置CssdHandleTousses - updateSqlList.add(String.format("update %s set tousseName='%s' where tousseDefinitionId=%s",CssdHandleTousses.class.getSimpleName(), targetTousseName,td.getId())); + //执行修改 for(String updateSql : updateSqlList){ objectDao.excuteSQL(updateSql); } - // 标识牌实例 - { - String updateSql = String.format("update IDCardInstance set tousseName='%s' where idCardDefinitionID in (select id from IDCardDefinition where tousseDefinitionID=%s)", targetTousseName,td.getId()); - objectDao.excuteSQL(updateSql); - } - }catch(Exception e){ logger.error("更新其它实体表的器械包名称的值" + e); } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/basedatamanager/toussedefinition/service/SaveOrUpdateTousseDefinitionTest.java =================================================================== diff -u -r17315 -r17463 --- ssts-web/src/test/java/test/forgon/disinfectsystem/basedatamanager/toussedefinition/service/SaveOrUpdateTousseDefinitionTest.java (.../SaveOrUpdateTousseDefinitionTest.java) (revision 17315) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/basedatamanager/toussedefinition/service/SaveOrUpdateTousseDefinitionTest.java (.../SaveOrUpdateTousseDefinitionTest.java) (revision 17463) @@ -1,5 +1,6 @@ package test.forgon.disinfectsystem.basedatamanager.toussedefinition.service; +import java.util.LinkedList; import java.util.List; import net.sf.json.JSONArray; @@ -10,11 +11,27 @@ import org.testng.annotations.Test; import com.forgon.Constants; +import com.forgon.directory.model.CssdHandleTousses; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; +import com.forgon.disinfectsystem.entity.departmentstock.DepartmentStock; +import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; +import com.forgon.disinfectsystem.entity.idcarddefinition.IDCardDefinition; +import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; +import com.forgon.disinfectsystem.entity.packing.PackingRecord; +import com.forgon.disinfectsystem.entity.recall.RecallRecord; +import com.forgon.disinfectsystem.entity.receiverecord.ReceiveRecordItem; +import com.forgon.disinfectsystem.entity.recyclingdamagerecord.RecyclingDamageItem; +import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsItem; +import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.forgon.serialnumber.model.SerialNum; import com.forgon.tools.string.StringTools; import static org.testng.Assert.*; @@ -27,23 +44,23 @@ public class SaveOrUpdateTousseDefinitionTest extends AbstractCSSDTest { /** - 缝合包_器械包的部分属性: - forDisplay=true tousseType=器械包 isApplyEntireTousse=是 - isCleanedEntirely=是 price=1 proxyDisinfectionPrice=1 - printAmount=1 isCustomPacking=是 isDisable=否 - isSterile=是 - 缝合包_器械包的材料清单: - 名称 规格 数量 材料类型 - Test镊子 2 器械 - Test静脉拉钩 1对 2 器械 - - 模拟以下3个操作场景:(触发的位置:器械包定义管理) - 1、保存缝合包_器械包 - 2、再填加2个一次性物品材料(注射器[20ML]) - 3、再修改缝合包_器械包为缝合包2_器械包 + 此方法主要模拟以下2个操作场景:(触发的位置:器械包定义管理) + 1、新增“缝合包_器械包” + 2、再填加2个一次性物品材料(注射器[20ML]) + + 备注“缝合包_器械包”新增时的一些属性如下: + “缝合包_器械包”的部分属性: + forDisplay=true tousseType=器械包 isApplyEntireTousse=是 + isCleanedEntirely=是 price=1 proxyDisinfectionPrice=1 + printAmount=1 isCustomPacking=是 isDisable=否 + isSterile=是 + “缝合包_器械包”的材料清单: + 名称 规格 数量 材料类型 + Test镊子 2 器械 + Test静脉拉钩 1对 2 器械 */ @Test - public void testINSIDE() { + public void testSaveINSIDE() { initCSSDData(); TousseDefinition td1 = new TousseDefinition(); @@ -114,30 +131,26 @@ assertEquals(dgi1.getAmount(), new Integer(2)); assertEquals(dg1.getName(), "注射器"); assertEquals(dg1.getSpecification(), "20ML"); - - td1.setName("缝合包2_器械包"); - tousseDefinitionManager.saveTousseDefinition(td1, array.toString(), null); //保存包实例 - assertEquals(td_缝合包_器械包.getName(), "缝合包2_器械包"); } /** - 缝合包_敷料包的部分属性: - forDisplay=true tousseType=敷料包 isApplyEntireTousse=是 - isCleanedEntirely=是 price=1 proxyDisinfectionPrice=1 - printAmount=1 isCustomPacking=是 isDisable=否 - isSterile=是 - 缝合包_敷料包的材料清单: - 名称 规格 数量 材料类型 - Test镊子 2 器械 - Test静脉拉钩 1对 2 器械 - - 模拟以下3个操作场景:(触发的位置:器械包定义管理) - 1、保存缝合包_敷料包 - 2、再填加2个一次性物品材料(注射器[20ML]) - 3、再修改缝合包_敷料包为缝合包2_敷料包 + 此方法主要模拟以下2个操作场景:(触发的位置:器械包定义管理) + 1、新增“缝合包_敷料包” + 2、再填加2个一次性物品材料(注射器[20ML]) + + 备注“缝合包_敷料包”新增时的一些属性如下: + “缝合包_敷料包”的部分属性: + forDisplay=true tousseType=敷料包 isApplyEntireTousse=是 + isCleanedEntirely=是 price=1 proxyDisinfectionPrice=1 + printAmount=1 isCustomPacking=是 isDisable=否 + isSterile=是 + “缝合包_敷料包”的材料清单: + 名称 规格 数量 材料类型 + Test镊子 2 器械 + Test静脉拉钩 1对 2 器械 */ @Test - public void testDRESSING() { + public void testSaveDRESSING() { initCSSDData(); TousseDefinition td1 = new TousseDefinition(); @@ -208,30 +221,26 @@ assertEquals(dgi1.getAmount(), new Integer(2)); assertEquals(dg1.getName(), "注射器"); assertEquals(dg1.getSpecification(), "20ML"); - - td1.setName("缝合包2_敷料包"); - tousseDefinitionManager.saveTousseDefinition(td1, array.toString(), null); - assertEquals(td_缝合包_敷料包.getName(), "缝合包2_敷料包"); } /** - 缝合包_消毒物品的部分属性: - forDisplay=true tousseType=消毒物品 isApplyEntireTousse=是 - isCleanedEntirely=是 price=1 proxyDisinfectionPrice=1 - printAmount=1 isCustomPacking=是 isDisable=否 - isSterile=否 - 缝合包_敷料包的材料清单: - 名称 规格 数量 材料类型 - Test镊子 2 器械 - Test静脉拉钩 1对 2 器械 - - 模拟以下3个操作场景:(触发的位置:器械包定义管理) - 1、保存缝合包_消毒物品 - 2、再填加2个一次性物品材料(注射器[20ML]) - 3、再修改缝合包_消毒物品为缝合包2_消毒物品,并且把(isApplyEntireTousse改为否、isSterile改为是) + 此方法主要模拟以下2个操作场景:(触发的位置:器械包定义管理) + 1、新增“缝合包_消毒物品” + 2、再填加2个一次性物品材料(注射器[20ML]) + + 备注“缝合包_消毒物品”新增时的一些属性如下: + “缝合包_消毒物品”的部分属性: + forDisplay=true tousseType=消毒物品 isApplyEntireTousse=是 + isCleanedEntirely=是 price=1 proxyDisinfectionPrice=1 + printAmount=1 isCustomPacking=是 isDisable=否 + isSterile=否 + “缝合包_消毒物品”的材料清单: + 名称 规格 数量 材料类型 + Test镊子 2 器械 + Test静脉拉钩 1对 2 器械 */ @Test - public void testDISINFECTION() { + public void testSaveDISINFECTION() { initCSSDData(); TousseDefinition td1 = new TousseDefinition(); @@ -302,32 +311,26 @@ assertEquals(dgi1.getAmount(), new Integer(2)); assertEquals(dg1.getName(), "注射器"); assertEquals(dg1.getSpecification(), "20ML"); - - td1.setName("缝合包2_消毒物品"); - td1.setIsSterile(Constants.STR_YES); - tousseDefinitionManager.saveTousseDefinition(td1, array.toString(), null); - assertEquals(td_缝合包_消毒物品.getName(), "缝合包2_消毒物品"); - assertEquals(td_缝合包_消毒物品.getIsSterile(), Constants.STR_YES); } /** - 缝合包_外部代理灭菌的部分属性: - forDisplay=true tousseType=外部代理灭菌 isApplyEntireTousse=是 - isCleanedEntirely=是 price=1 proxyDisinfectionPrice=1 - printAmount=1 isCustomPacking=是 isDisable=否 - isSterile=是 - 缝合包_外部代理灭菌的材料清单: - 名称 规格 数量 材料类型 - Test镊子 2 器械 - Test静脉拉钩 1对 2 器械 - - 模拟以下3个操作场景:(触发的位置:器械包定义管理) - 1、保存缝合包_外部代理灭菌 - 2、再填加2个一次性物品材料(注射器[20ML]) - 3、再修改缝合包_外部代理灭菌为缝合包2_外部代理灭菌 + 此方法主要模拟以下2个操作场景:(触发的位置:器械包定义管理) + 1、新增“缝合包_外部代理灭菌” + 2、再填加2个一次性物品材料(注射器[20ML]) + + 备注“缝合包_外部代理灭菌”新增时的一些属性如下: + “缝合包_外部代理灭菌”的部分属性: + forDisplay=true tousseType=外部代理灭菌 isApplyEntireTousse=是 + isCleanedEntirely=是 price=1 proxyDisinfectionPrice=1 + printAmount=1 isCustomPacking=是 isDisable=否 + isSterile=是 + “缝合包_外部代理灭菌”的材料清单: + 名称 规格 数量 材料类型 + Test镊子 2 器械 + Test静脉拉钩 1对 2 器械 */ @Test - public void testFOREIGNPROXY() { + public void testSaveFOREIGNPROXY() { initCSSDData(); TousseDefinition td1 = new TousseDefinition(); @@ -398,29 +401,23 @@ assertEquals(dgi1.getAmount(), new Integer(2)); assertEquals(dg1.getName(), "注射器"); assertEquals(dg1.getSpecification(), "20ML"); - - td1.setName("缝合包2_外部代理灭菌"); - td1.setIsSterile(Constants.STR_YES); - tousseDefinitionManager.saveTousseDefinition(td1, array.toString(), null); - assertEquals(td_缝合包_外部代理灭菌.getName(), "缝合包2_外部代理灭菌"); - assertEquals(td_缝合包_外部代理灭菌.getIsSterile(), Constants.STR_YES); } /** - 缝合包_外来器械包的部分属性: - forDisplay=true tousseType=外来器械包 supplierName=外包供应商1 - packageType=棉布 barcodePaperType=大标签 printAmount=1 - 缝合包_外来器械包的材料清单: - 名称 规格 数量 材料类型 - Test镊子 2 器械 - Test静脉拉钩 1对 2 器械 - - 模拟以下2个操作场景:(触发的位置:外来器械包管理) - 1、保存缝合包_外来器械包 - 2、再修改缝合包_外来器械包为缝合包2_外来器械包并且把packageType改为纸塑 + 此方法主要模拟以下1个操作场景:(触发的位置:器械包定义管理) + 1、新增“缝合包_外来器械包” + + 备注“缝合包_外来器械包”新增时的一些属性如下: + “缝合包_外来器械包”的部分属性: + forDisplay=true tousseType=外来器械包 supplierName=外包供应商1 + packageType=棉布 barcodePaperType=大标签 printAmount=1 + “缝合包_外来器械包”的材料清单: + 名称 规格 数量 材料类型 + Test镊子 2 器械 + Test静脉拉钩 1对 2 器械 */ @Test - public void testFOREIGN() { + public void testSaveFOREIGN() { initCSSDData(); TousseDefinition td1 = new TousseDefinition(); td1.setName("缝合包_外来器械包"); @@ -467,28 +464,23 @@ assertEquals(mi1.getCount(), 2); assertEquals(md2.getName(), "Test静脉拉钩"); assertEquals(md2.getSpecification(), "1对"); - - td1.setName("缝合包2_外来器械包"); - td1.setPackageType("纸塑"); - tousseDefinitionManager.saveTousseDefinition(td1, array.toString(), null); - assertEquals(td_缝合包_外来器械包.getName(), "缝合包2_外来器械包"); - assertEquals(td_缝合包_外来器械包.getPackageType(), "纸塑"); } /** - 缝合包_消毒物品的部分属性: - forDisplay=false tousseType=消毒物品 - 缝合包_敷料包的材料清单: - 名称 规格 数量 材料类型 - Test镊子 2 器械 - Test静脉拉钩 1对 2 器械 - 注射器 20ML 2 一次性物品 - - 模拟以下1个操作场景:(触发的位置:科室申领) - 1、保存缝合包_消毒物品,只看此消毒物品的价格是否正确,其他的上面已经测试过(因为消毒物品申请单里面的的消毒物品的价格是材料的总价格) + 此方法主要模拟以下1个操作场景:(触发的位置:科室申领) + 1、保存“缝合包_消毒物品”申请单,只看此消毒物品的价格是否正确,其他的属性上面已经测试过(因为消毒物品申请单里面的的消毒物品的价格是材料的总价格) + + 备注“缝合包_消毒物品”新增时的一些属性如下: + “缝合包_消毒物品”的部分属性: + forDisplay=false tousseType=消毒物品 + “缝合包_消毒物品”的材料清单: + 名称 规格 数量 材料类型 + Test镊子 2 器械 + Test静脉拉钩 1对 2 器械 + 注射器 20ML 2 一次性物品 */ @Test - public void testDISINFECTION2() { + public void testSaveDISINFECTION2() { initCSSDData(); Session session = objectDao.getHibernateSession(); @@ -535,19 +527,20 @@ } /** - 缝合包_自定义器械包的部分属性: - forDisplay=false tousseType=自定义器械包 - 缝合包_自定义器械包的材料清单: - 名称 规格 数量 材料类型 - Test镊子 2 器械 - Test静脉拉钩 1对 2 器械 - 注射器 20ML 2 一次性物品 - - 模拟以下1个操作场景:(触发的位置:科室申领) - 1、保存缝合包_自定义器械包 + 此方法主要模拟以下1个操作场景:(触发的位置:科室申领) + 1、保存“缝合包_自定义器械包”申请单 + + 备注“缝合包_自定义器械包”新增时的一些属性如下: + “缝合包_自定义器械包”的部分属性: + forDisplay=false tousseType=自定义器械包 + “缝合包_自定义器械包”的材料清单: + 名称 规格 数量 材料类型 + Test镊子 2 器械 + Test静脉拉钩 1对 2 器械 + 注射器 20ML 2 一次性物品 */ @Test - public void testCUSTOM() { + public void testSaveCUSTOM() { initCSSDData(); TousseDefinition td1 = new TousseDefinition(); @@ -600,4 +593,268 @@ assertEquals(dg1.getSpecification(), "20ML"); } + + + + + + /** + 此方法主要模拟以下1个操作场景:(触发的位置:器械包定义管理、外来器械包管理) + 1、修改“Test开胸包”的名称为“Test开胸包NEW”,预期结果:与之相关联的表也要联动修改成“Test开胸包NEW” + + */ + @Test + public void testUpdateTousseName() { + this.initCSSDData(); + Session session = objectDao.getHibernateSession(); + + TousseDefinition td_Test开胸包 = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); + String oldName = td_Test开胸包.getName(); + String tousseType = td_Test开胸包.getTousseType(); + Long id = td_Test开胸包.getId(); + + //1、GoodsStock(物品库存) + GoodsStock gs = new GoodsStock(); + gs.setTousseDefinitionId(id); + gs.setName(oldName); + objectDao.save(gs); + + //2、TousseStock(器械包库存) + TousseStock ts = new TousseStock(); + ts.setTousseName(oldName); + objectDao.save(ts); + + //3、DepartmentStock(科室库存) + DepartmentStock ds = new DepartmentStock(); + ds.setTousseName(oldName); + objectDao.save(ds); + + //4、CssdHandleTousses(供应室处理器械包配置) + CssdHandleTousses cht = new CssdHandleTousses(); + cht.setTousseDefinitionId(id); + cht.setTousseName(oldName); + objectDao.save(cht); + + //5、IDCardInstance(标识牌实例) + IDCardDefinition idd = new IDCardDefinition(); + idd.setTousseDefinitionID(id); + objectDao.save(idd); + IDCardInstance idi1 = new IDCardInstance(); + idi1.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + idi1.setTousseName(oldName); + idi1.setIdCardDefinitionID(idd.getId()); + objectDao.save(idi1); + IDCardInstance idi2 = new IDCardInstance(); + idi1.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + idi2.setTousseName(oldName); + idi2.setIdCardDefinitionID(idd.getId()); + objectDao.save(idi2); + + //6、RecyclingDamageItem(回收报损项) + RecyclingDamageItem rdi = new RecyclingDamageItem(); + rdi.setTousseName(oldName); + objectDao.save(rdi); + + //7、ClassifiedItem(清洗篮筐项,拆包清洗) + ClassifiedItem ci_拆包清洗 = new ClassifiedItem(); + ci_拆包清洗.setItemType(ClassifiedItem.TYPE_MATERIAL); + ci_拆包清洗.setTousseNameForMaterial(oldName); + objectDao.save(ci_拆包清洗); + + //8、PackingRecord(装配记录) + PackingRecord pr = new PackingRecord(); + pr.setTousseName(oldName); + pr.setTousseType(tousseType); + objectDao.save(pr); + + //9、InvoiceItem(发货项) + InvoiceItem ii = new InvoiceItem(); + ii.setTousseName(oldName); + ii.setTousseType(tousseType); + objectDao.save(ii); + + //10、RecallRecord(召回记录) + RecallRecord rr = new RecallRecord(); + rr.setObjectName(oldName); + rr.setType(RecallRecord.TYPE_TOUSSE); + objectDao.save(rr); + + //11、ReturnGoodsItem(退物项) + ReturnGoodsItem rgi = new ReturnGoodsItem(); + rgi.setTousseDefinition(td_Test开胸包); + rgi.setTousseName(oldName); + objectDao.save(rgi); + + //12、TousseInstance(器械包实例) + TousseInstance ti = new TousseInstance(); + ti.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti.setTousseDefinition(td_Test开胸包); + ti.setTousseName(oldName); + objectDao.save(ti); + + //13、TousseItem(申请单的物品) + TousseItem t = new TousseItem(); + t.setTousseDefinitionId(id); + t.setTousseName(oldName); + objectDao.save(t); + + //14、ClassifiedItem(清洗篮筐项,整包清洗) + ClassifiedItem ci_整包清洗 = new ClassifiedItem(); + ci_整包清洗.setTousseDefinition(td_Test开胸包); + ci_整包清洗.setName(oldName); + ci_整包清洗.setItemType(tousseType); + objectDao.save(ci_整包清洗); + + String newName = oldName + "NEW"; + td_Test开胸包.setOrginalName(oldName); + td_Test开胸包.setName(newName); + tousseDefinitionManager.saveTousseDefinition(td_Test开胸包, "", null); + session.refresh(gs); + session.refresh(ts); + session.refresh(ds); + session.refresh(cht); + session.refresh(idi1); + session.refresh(idi2); + session.refresh(idd); + session.refresh(rdi); + session.refresh(ci_拆包清洗); + session.refresh(pr); + session.refresh(ii); + session.refresh(rr); + session.refresh(rgi); + session.refresh(ti); + session.refresh(t); + session.refresh(ci_整包清洗); + + assertEquals(gs.getName(), newName); + assertEquals(ts.getTousseName(), newName); + assertEquals(ds.getTousseName(), newName); + assertEquals(cht.getTousseName(), newName); + assertEquals(idi1.getTousseName(), newName); + assertEquals(idi2.getTousseName(), newName); + assertEquals(rdi.getTousseName(), newName); + assertEquals(ci_拆包清洗.getTousseNameForMaterial(), newName); + assertEquals(pr.getTousseName(), newName); + assertEquals(ii.getTousseName(), newName); + assertEquals(rr.getObjectName(), newName); + assertEquals(rgi.getTousseName(), newName); + assertEquals(ti.getTousseName(), newName); + assertEquals(t.getTousseName(), newName); + assertEquals(ci_整包清洗.getName(), newName); + } + + /** + 此方法主要模拟以下1个操作场景:(触发的位置:器械包定义管理) + 1、修改消毒物品“Test雾化器”的名称为“Test雾化器NEW”,预期结果:与之相关联的表也要联动修改成“Test雾化器NEW” + + */ + @Test + public void testUpdateTousseNameForDisinfection() { + this.initCSSDData(); + Session session = objectDao.getHibernateSession(); + + TousseDefinition td_Test雾化器 = tousseDefinitionManager.getTousseDefinitionByName("Test雾化器"); + String oldName = td_Test雾化器.getName(); + String tousseType = td_Test雾化器.getTousseType(); + Long id = td_Test雾化器.getId(); + + TousseDefinition td_Test雾化器_children1 = new TousseDefinition(); + td_Test雾化器_children1.setAncestorID(id); + objectDao.save(td_Test雾化器_children1); + TousseDefinition td_Test雾化器_children2 = new TousseDefinition(); + td_Test雾化器_children2.setAncestorID(id); + objectDao.save(td_Test雾化器_children2); + Long children1Id = td_Test雾化器_children1.getId(); + Long children2Id = td_Test雾化器_children2.getId(); + + //11、ReturnGoodsItem(退物项) + ReturnGoodsItem rgi1 = new ReturnGoodsItem(); + rgi1.setTousseDefinition(td_Test雾化器_children1); + rgi1.setTousseName(oldName); + objectDao.save(rgi1); + ReturnGoodsItem rgi2 = new ReturnGoodsItem(); + rgi2.setTousseDefinition(td_Test雾化器_children2); + rgi2.setTousseName(oldName); + objectDao.save(rgi2); + + //12、TousseInstance(器械包实例) + TousseInstance ti1 = new TousseInstance(); + ti1.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti1.setTousseDefinition(td_Test雾化器_children1); + ti1.setTousseName(oldName); + objectDao.save(ti1); + TousseInstance ti2 = new TousseInstance(); + ti2.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti2.setTousseDefinition(td_Test雾化器_children2); + ti2.setTousseName(oldName); + objectDao.save(ti2); + + //13、TousseItem(申请单的物品) + TousseItem t1 = new TousseItem(); + t1.setTousseDefinitionId(children1Id); + t1.setTousseName(oldName); + objectDao.save(t1); + TousseItem t2 = new TousseItem(); + t2.setTousseDefinitionId(children2Id); + t2.setTousseName(oldName); + objectDao.save(t2); + + //14、ClassifiedItem(清洗篮筐项,整包清洗) + ClassifiedItem ci_整包清洗1 = new ClassifiedItem(); + ci_整包清洗1.setTousseDefinition(td_Test雾化器_children1); + ci_整包清洗1.setName(oldName); + ci_整包清洗1.setItemType(tousseType); + objectDao.save(ci_整包清洗1); + ClassifiedItem ci_整包清洗2 = new ClassifiedItem(); + ci_整包清洗2.setTousseDefinition(td_Test雾化器_children2); + ci_整包清洗2.setName(oldName); + ci_整包清洗2.setItemType(tousseType); + objectDao.save(ci_整包清洗2); + + String newName = oldName + "NEW"; + td_Test雾化器.setOrginalName(oldName); + td_Test雾化器.setName(newName); + tousseDefinitionManager.saveTousseDefinition(td_Test雾化器, "", null); + session.refresh(rgi1); + session.refresh(rgi2); + session.refresh(ti1); + session.refresh(ti2); + session.refresh(t1); + session.refresh(t2); + session.refresh(ci_整包清洗1); + session.refresh(ci_整包清洗2); + + assertEquals(rgi1.getTousseName(), newName); + assertEquals(rgi2.getTousseName(), newName); + assertEquals(ti1.getTousseName(), newName); + assertEquals(ti2.getTousseName(), newName); + assertEquals(t1.getTousseName(), newName); + assertEquals(t2.getTousseName(), newName); + assertEquals(ci_整包清洗1.getName(), newName); + assertEquals(ci_整包清洗2.getName(), newName); + } + + + + + + + + + + + + + + + + + + + + + + + + }