Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r34750 -r34756 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 34750) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 34756) @@ -108,7 +108,6 @@ import com.forgon.disinfectsystem.entity.sterilizationTransition.SterilizationTransition; import com.forgon.disinfectsystem.entity.sterilizationTransition.SterilizationTransitionItem; import com.forgon.disinfectsystem.entity.sterilizationTransition.SterilizationTransitionItemVO; -import com.forgon.disinfectsystem.entity.sterilizationmanager.proxydisinfection.ProxyDisinfection; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.entity.stocktakemanager.InventoryItemOfBaseNum; import com.forgon.disinfectsystem.entity.systemwarning.SystemWarningItemVO; @@ -4350,13 +4349,16 @@ throw new RuntimeException("领用人不能为空!"); } - if(DatabaseUtil.isPoIdValid(destId)){ - //器械包流转操作 - tousseOperationChangePosition(params); - }else{ - //不启用目的位置时,流转记录的目的位置取器械包实例原来的位置,流转记录保存领用人(KSDQDYRMYY-13) - tousseOperationNotChangePosition(params); + if(!supplyRoomConfig.getIsEnableTousseOpDestLocation() && !DatabaseUtil.isPoIdValid(destId)){ + //不启用目的位置时,流转记录的目的位置默认取当前登录科室的默认仓库,流转记录保存领用人(KSDQDYRMYY-13) + params.put("destType", TousseOperation.DESTTYPE_WAREHOUSE); + WareHouse wareHouse = wareHouseManager.getDefaultWareHouseByUnitCode(AcegiHelper.getCurrentOrgUnitCode()); + if(wareHouse != null){ + params.put("destId", wareHouse.getId()); + } } + //器械包流转操作 + tousseOperationChangePosition(params); } @Override public void submitSignTousseInstance(JSONObject params){ @@ -9959,104 +9961,4 @@ } } - /** - * 器械流转并且不修改位置,只保存领用人(KSDQDYRMYY-13) - * @param params - */ - private void tousseOperationNotChangePosition(JSONObject params) { - TousseOperationVo tousseOperationVo = new TousseOperationVo(); - tousseOperationVo.setOperator(JSONUtil.optString(params, "operator", "")); - tousseOperationVo.setRecipient(JSONUtil.optString(params, "recipient", "")); - tousseOperationVo.setOperation(TousseOperation.OPERATION_INVOICE); - - if(StringUtils.isBlank(tousseOperationVo.getRecipient())){ - throw new RuntimeException("领用人不能为空!"); - } - - JSONArray items = params.optJSONArray("items"); - List list = parseAndLockTousseInstances(items); - - for (TousseInstance tousseInstance : list) { - String status2 = tousseInstance.getStatus2(); - if (StringUtils.equals(status2, TousseOperation.STATUS_SENDING)) { - throw new RuntimeException("运送中的包不能流转!"); - } - tousseOperationNotChangePosition(tousseOperationVo, tousseInstance); - } - } - - /** - * 器械流转并且不修改位置,只保存领用人 - * @param tousseOperationVo - * @param tousseInstance - */ - private void tousseOperationNotChangePosition(TousseOperationVo tousseOperationVo, - TousseInstance tousseInstance) { - TousseOperation tousseOperation = new TousseOperation(); - tousseOperation.setOperation(tousseOperationVo.getOperation()); - tousseOperation.setOperationTime(new Date()); - tousseOperation.setOperator(tousseOperationVo.getOperator()); - tousseOperation.setRecipient(tousseOperationVo.getRecipient()); - - if(StringUtils.isBlank(tousseInstance.getStatus2())){ - { - if(StringUtils.isBlank(tousseInstance.getLocationForDisplay()) || StringUtils.isBlank(tousseInstance.getLocation())){ - throw new RuntimeException("当前科室为空,无法发货!"); - } - if(StringUtils.isBlank(tousseInstance.getWareHouseName())){ - throw new RuntimeException("当前科室为空,无法发货!"); - } - if(!DatabaseUtil.isPoIdValid(tousseInstance.getWareHouseId())){ - throw new RuntimeException("当前科室为空,无法发货!"); - } - } - tousseOperation.setSrcDepart(tousseInstance.getLocationForDisplay()); - tousseOperation.setSrcDepartCoding(tousseInstance.getLocation()); - tousseOperation.setSrcLocation(tousseInstance.getWareHouseName()); - tousseOperation.setSrcLocationType(TousseOperation.DESTTYPE_WAREHOUSE); - tousseOperation.setSrcWareHouseId(tousseInstance.getWareHouseId()); - - //流转记录的目的位置取器械包实例原来的位置 - tousseOperation.setDestDepart(tousseInstance.getLocationForDisplay()); - tousseOperation.setDestDepartCoding(tousseInstance.getLocation()); - tousseOperation.setDestLocation(tousseInstance.getWareHouseName()); - tousseOperation.setDestLocationType(TousseOperation.DESTTYPE_WAREHOUSE); - tousseOperation.setDestWareHouseId(tousseInstance.getWareHouseId()); - }else{ - tousseOperation.setSrcStatus(tousseInstance.getStatus2()); - tousseOperation.setSrcDepart(tousseInstance.getDepart2()); - tousseOperation.setSrcDepartCoding(tousseInstance.getDepartCoding2()); - tousseOperation.setSrcLocation(tousseInstance.getLocation2()); - tousseOperation.setSrcLocationType(tousseInstance.getLocation2Type()); - tousseOperation.setSrcOperationRoomId(tousseInstance.getOperationRoomId()); - tousseOperation.setSrcWareHouseId(tousseInstance.getWareHouseId2()); - - //流转记录的目的位置取器械包实例原来的位置 - tousseOperation.setDestDepart(tousseInstance.getDepart2()); - tousseOperation.setDestDepartCoding(tousseInstance.getDepartCoding2()); - tousseOperation.setDestLocation(tousseInstance.getLocation2()); - tousseOperation.setDestLocationType(tousseInstance.getLocation2Type()); - tousseOperation.setDestWareHouseId(tousseInstance.getWareHouseId2()); - } - - tousseOperation.setTousseInstanceId(tousseInstance.getId()); - objectDao.saveOrUpdate(tousseOperation); - - //器械包实例流转位置 - tousseInstance.setStatus2(TousseOperation.STATUS_SENDING); - tousseInstance.setDepart2(tousseOperation.getDestDepart()); - tousseInstance.setDepartCoding2(tousseOperation.getDestDepartCoding()); - tousseInstance.setLocation2(tousseOperation.getDestLocation()); - tousseInstance.setLocation2Type(tousseOperation.getDestLocationType()); - - if(DatabaseUtil.isPoIdValid(tousseOperation.getDestOperationRoomId())){ - tousseInstance.setOperationRoomId(tousseOperation.getDestOperationRoomId()); - } - if(DatabaseUtil.isPoIdValid(tousseOperation.getDestWareHouseId())){ - tousseInstance.setWareHouseId2(tousseOperation.getDestWareHouseId()); - } - tousseInstance.setTousseOperationId(tousseOperation.getId()); - objectDao.saveOrUpdate(tousseInstance); - } - }