Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r17164 -r17188 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 17164) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 17188) @@ -70,6 +70,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.taskGroup.TaskGroup; import com.forgon.disinfectsystem.entity.basedatamanager.tousseGroup.TousseGroup; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseComposite; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseOrgUint; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; @@ -663,6 +664,13 @@ comboTousse.setAncestorID(comboTousse.getId()); objectDao.saveOrUpdate(comboTousse); + ComboTousseOrgUint ctOrgUnito = new ComboTousseOrgUint(); + ctOrgUnito.setTousseType(TousseDefinition.PACKAGE_TYPE_COMBO); + ctOrgUnito.setUnitCode(Constants.ORG_UNIT_CODE_NEIKE); + ctOrgUnito.setUnitName(Constants.ORG_UNIT_NAME_NEIKE); + ctOrgUnito.setComboTousseDefinitionId(comboTousse.getId()); + objectDao.saveOrUpdate(ctOrgUnito); + //聚合包内普通器械包 TousseDefinition td_开胸包 = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); TousseDefinition td_开颅包 = tousseDefinitionManager.getTousseDefinitionByName("Test开颅包"); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r17149 -r17188 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 17149) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 17188) @@ -106,6 +106,7 @@ import com.forgon.disinfectsystem.packingrecordclassifybasket.service.PackingRecordClassifyBasketManager; import com.forgon.disinfectsystem.stockmanage.cssdstock.service.TousseStockManager; import com.forgon.disinfectsystem.stockmanage.departmentstock.service.DepartmentStockManager; +import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; @@ -125,7 +126,6 @@ import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; -import com.forgon.tools.string.StringTools; import com.forgon.tools.util.SqlUtils; import com.google.gson.Gson; import com.google.gson.JsonObject; @@ -192,9 +192,16 @@ private InitDbConnection dbConnection; + private ComboTousseManager comboTousseManagerImpl; + private SterilisationManager sterilisationManager; + private PackingRecordClassifyBasketManager packingRecordClassifyBasketManager; + public void setComboTousseManagerImpl(ComboTousseManager comboTousseManagerImpl) { + this.comboTousseManagerImpl = comboTousseManagerImpl; + } + public void setPackingRecordClassifyBasketManager( PackingRecordClassifyBasketManager packingRecordClassifyBasketManager) { this.packingRecordClassifyBasketManager = packingRecordClassifyBasketManager; @@ -5867,8 +5874,8 @@ if (comboTousseTD == null) { throw new RuntimeException(comboTousseName + "定义已不存在!"); } - String departCoding = comboTousseTD.getHandlerDepartCode(); - if(StringUtils.isBlank(departCoding)){ + List> list = comboTousseManagerImpl.getComboTousseOrgUnitByTdId(comboTousseTD.getId()); + if (CollectionUtils.isEmpty(list)) { throw new RuntimeException(comboTousseName + ",包定义未设置所属科室!"); } //验证失效期 @@ -5885,7 +5892,7 @@ Integer packingAmount = tousseJson.optInt("amount"); Integer amount = tousseJson.optInt("amount"); if(amount > 0){ - List taskList = findPackingTaskBySQL(tousseDefinitionId, handlerDepartCode, departCoding); + List taskList = findPackingTaskBySQL(tousseDefinitionId, handlerDepartCode, list); String ids = ""; if(taskList != null){ for (PackingTask packingTask : taskList) { @@ -5910,13 +5917,27 @@ } @SuppressWarnings("unchecked") - public List findPackingTaskBySQL(Long tousseDefinitionId,String handlerDepartCode,String departCoding){ + public List findPackingTaskBySQL(Long tousseDefinitionId,String handlerDepartCode,List> departCodingList){ if(tousseDefinitionId == null){ return null; } + if(CollectionUtils.isEmpty(departCodingList)){ + return null; + } + List orgUnitCodingList = new ArrayList(); + for (Map map : departCodingList) { + String code = (String)map.get("unitCode"); + if(StringUtils.isEmpty(code)){ + throw new RuntimeException("ID="+tousseDefinitionId+"的聚合包定义所属科室数据异常!"); + } + orgUnitCodingList.add(code); + } + + String codingSQL = StringUtils.join(orgUnitCodingList, "','"); + String sql = String.format("where po.tousseDefinition.id = %s and po.orgUnitCoding = '%s' " - + "and po.departCoding = '%s' and po.status = '%s'", tousseDefinitionId,handlerDepartCode, - departCoding,PackingTask.STATUS_AWAIT_PACKING); + + "and po.departCoding in ('%s') and po.status = '%s'", tousseDefinitionId,handlerDepartCode, + codingSQL,PackingTask.STATUS_AWAIT_PACKING); if(StringUtils.isNotBlank(sql)){ return objectDao.findBySql(PackingTask.class.getSimpleName(), sql); } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/packing/service/ComboToussePackingTests.java =================================================================== diff -u -r16918 -r17188 --- ssts-web/src/test/java/test/forgon/disinfectsystem/packing/service/ComboToussePackingTests.java (.../ComboToussePackingTests.java) (revision 16918) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/packing/service/ComboToussePackingTests.java (.../ComboToussePackingTests.java) (revision 17188) @@ -23,6 +23,7 @@ import test.forgon.disinfectsystem.AbstractCSSDTest; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseComposite; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseOrgUint; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.packing.PackingRecord; @@ -382,6 +383,13 @@ comboTousse.setHandlerDepartName(Constants.ORG_UNIT_NAME_NEIKE); objectDao.saveOrUpdate(comboTousse); + ComboTousseOrgUint ctOrgUnito = new ComboTousseOrgUint(); + ctOrgUnito.setTousseType(TousseDefinition.PACKAGE_TYPE_COMBO); + ctOrgUnito.setUnitCode(Constants.ORG_UNIT_CODE_NEIKE); + ctOrgUnito.setUnitName(Constants.ORG_UNIT_NAME_NEIKE); + ctOrgUnito.setComboTousseDefinitionId(comboTousse.getId()); + objectDao.saveOrUpdate(ctOrgUnito); + //聚合包内普通器械包 TousseDefinition td_穿刺包 = tousseDefinitionManager.getTousseDefinitionByName("Test穿刺包"); ComboTousseComposite ct = new ComboTousseComposite(); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java =================================================================== diff -u -r17093 -r17188 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 17093) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 17188) @@ -44,6 +44,7 @@ import com.forgon.disinfectsystem.packing.service.PackingManager; import com.forgon.disinfectsystem.packing.vo.ReviewerVo; import com.forgon.disinfectsystem.recyclingerror.service.RecyclingErrorManager; +import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; @@ -91,6 +92,12 @@ private IDCardInstanceManager idCardInstanceManager; private RecyclingErrorManager recyclingErrorManager; + + private ComboTousseManager comboTousseManagerImpl; + + public void setComboTousseManagerImpl(ComboTousseManager comboTousseManagerImpl) { + this.comboTousseManagerImpl = comboTousseManagerImpl; + } public void setRecyclingErrorManager(RecyclingErrorManager recyclingErrorManager) { this.recyclingErrorManager = recyclingErrorManager; @@ -823,8 +830,8 @@ if (comboTousseTD == null) { throw new RuntimeException("聚合包定义已不存在!"); } - String departCoding = comboTousseTD.getHandlerDepartCode(); - if (StringUtils.isBlank(departCoding)) { + List> list = comboTousseManagerImpl.getComboTousseOrgUnitByTdId(comboTousseDefinitionId); + if (CollectionUtils.isEmpty(list)) { throw new RuntimeException("该聚合包未定义所属科室"); } array = JSONArray.fromObject(includeTousseString); @@ -841,7 +848,7 @@ Long tousseDefinitionId = item.optLong("id"); List taskList = packingManager .findPackingTaskBySQL(tousseDefinitionId, - handlerDepartCode, departCoding); + handlerDepartCode, list); if (taskList != null) { int totalAmount = 0; int unWashAmount = 0; Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r17093 -r17188 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 17093) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 17188) @@ -4,6 +4,7 @@ import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @@ -174,5 +175,5 @@ * @param departCoding * @return */ - public List findPackingTaskBySQL(Long tousseDefinitionId,String handlerDepartCode,String departCoding); + public List findPackingTaskBySQL(Long tousseDefinitionId,String handlerDepartCode,List> departCodingList); }