Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js =================================================================== diff -u -r14416 -r14438 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14416) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14438) @@ -606,6 +606,8 @@ preReturn = true; }else if(result == "已回收"){ canReturn = true; + }else if(result == "待接收"){ + canReturn = false; }else{//已接收、未发货状态 preReturn = true; canReturn = true; Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r14435 -r14438 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 14435) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 14438) @@ -3971,8 +3971,8 @@ public PackingTask getForeignToussePackingTask(Long sourceId) { if(DatabaseUtil.isPoIdValid(sourceId)){ String hql = "where po.tousseDefinition.tousseType='" + TousseDefinition.PACKAGE_TYPE_FOREIGN + "'"; - hql += " and po.sourceId=" + sourceId; - hql += " and po.taskType=" + PackingTask.TASK_APPLICATION; + hql += " and po.tousseDefinition.invoicePlanID = " + sourceId; + hql += " and po.taskType=" + PackingTask.TASK_RECYCLINGRECORD; return (PackingTask) objectDao.getBySql(PackingTask.class.getSimpleName(), hql); } return null; Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.2.7_4.2.8.sql =================================================================== diff -u -r14407 -r14438 --- ssts-web/src/main/webapp/dataUpdater/sqls/4.2.7_4.2.8.sql (.../4.2.7_4.2.8.sql) (revision 14407) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.2.7_4.2.8.sql (.../4.2.7_4.2.8.sql) (revision 14438) @@ -2,3 +2,4 @@ update invoicePlan set recyclingStatus = '已接收' where id in (select id from ForeignTousseApplication f where f.packagestatus = '已接收') and type = '外来器械包申请单' and deliverstatus = '待发货' and endStatus is null; update invoicePlan set recyclingStatus = '待回收' where id in (select id from ForeignTousseApplication f where f.packagestatus = '已接收') and type = '外来器械包申请单' and deliverstatus = '已发货' and endStatus is null; update invoicePlan set recyclingStatus = '已回收' where id in (select id from ForeignTousseApplication f where (f.packagestatus = '已回收' or f.packagestatus = '已归还')) and type = '外来器械包申请单' and deliverstatus = '已发货' and endStatus is null; +update tousseitem set toussedefinitionid = (select min(t.id) from toussedefinition t where t.invoiceplanid = tousseitem.recyclingapplication_id) where toussetype = '外来器械包' and toussedefinitionid is null; Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r14036 -r14438 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 14036) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 14438) @@ -478,12 +478,12 @@ } private TousseDefinition getTousseDefinition( - Map map, String tousseName) { - if (StringUtils.isNotBlank(tousseName)) { - TousseDefinition td = map.get(tousseName); + Map map, Long tousseDefinitionId) { + if (tousseDefinitionId != null) { + TousseDefinition td = map.get(tousseDefinitionId); if (td == null) { - td = tousseDefinitionManager - .getTousseDefinitionByName(tousseName); + td = tousseDefinitionManager.getTousseDefinitionById(tousseDefinitionId); + map.put(tousseDefinitionId, td); } return td; } @@ -499,31 +499,48 @@ int disinfectMaterialAmount = 0; GoodsOption option = goodsOptionManager.getGoodsOption( GoodsOption.MODEL_SURGICALINSTRUMENTS_DEPT, null); - Map tdMap = new HashMap(); + Map tdMap = new HashMap(); Set classifiedItem = classifyBasket.getClassfiedItems(); for (ClassifiedItem ci : classifiedItem) { String itemType = ci.getItemType(); if (ClassifiedItem.TYPE_MATERIAL.equals(itemType)) {// 材料 - String tousseName = ci.getTousseNameForMaterial(); - TousseDefinition td = getTousseDefinition(tdMap, tousseName); + TousseDefinition td = getTousseDefinition(tdMap, ci.getTousseDefinitionID()); + Integer amount = ci.getAmount(); if (td != null) { String tousseType = td.getTousseType(); - if (TousseDefinition.PACKAGE_TYPE_DISINFECTION - .equals(tousseType)) { - disinfectMaterialAmount += ci.getAmount(); - } else if (TousseDefinition.PACKAGE_TYPE_FOREIGN - .equals(tousseType)) { - foreignMaterialAmount += ci.getAmount(); + if (TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseType)) { + disinfectMaterialAmount += amount; + } else if (TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType)) { + //外来器械材料扣减植入物使用数量 + List ms = td.getMaterialInstances(); + if(ms != null){ + for (MaterialInstance materialInstance : ms) { + if(MaterialInstance.INCLUDE_IMPLANT.equals(materialInstance.getIncludeImplant())){ + Integer usedAmount = materialInstance.getUsedAmountOfIncludeImplant(); + if(usedAmount == null){ + continue; + } + if(StringUtils.isNotBlank(ci.getName()) && ci.getName().equals(materialInstance.getMaterialName())){ + if(amount >= usedAmount){ + amount -= usedAmount; + } + break; + } + } + } + } + foreignMaterialAmount += amount; + } else if (isSurgicalInstruments(ci, option)) { - operateMaterialAmount += ci.getAmount(); + operateMaterialAmount += amount; } else { - generalMaterialAmount += ci.getAmount(); + generalMaterialAmount += amount; } // 包定义为空,当普通器械处理 } else { - generalMaterialAmount += ci.getAmount(); + generalMaterialAmount += amount; } - washMaterialAmount += ci.getAmount(); + washMaterialAmount += amount; } else if (ClassifiedItem.TYPE_TOUSSE.equals(itemType) || ClassifiedItem.TYPE_CUSTOM_TOUSSE.equals(itemType)) {// 器械包 TousseDefinition toussedefinition = ci.getTousseDefinition(); Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/customIntoBasket.jsp =================================================================== diff -u -r14416 -r14438 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/customIntoBasket.jsp (.../customIntoBasket.jsp) (revision 14416) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/customIntoBasket.jsp (.../customIntoBasket.jsp) (revision 14438) @@ -173,9 +173,7 @@ $('#tousseItemsTr'+i).show(); $('#deleted'+i).val('0'); - var recycleAmount = parseInt($('#recycleAmount'+i).val(),10); var loadedAmount = parseInt($('#loadedAmount'+i).val(),10); - $('#recycleAmount'+i).val(recycleAmount - intoBasketAmount ); $('#loadedAmount'+i).val(loadedAmount - intoBasketAmount ); } }); Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java =================================================================== diff -u -r14217 -r14438 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 14217) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 14438) @@ -1,12 +1,10 @@ package com.forgon.disinfectsystem.washanddisinfectmanager.washanddisinfectrecord.action; import java.io.IOException; -import java.io.PrintWriter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; -import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -23,7 +21,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang3.time.DateUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/setForeignTousseDefinition.jsp =================================================================== diff -u -r14416 -r14438 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/setForeignTousseDefinition.jsp (.../setForeignTousseDefinition.jsp) (revision 14416) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/setForeignTousseDefinition.jsp (.../setForeignTousseDefinition.jsp) (revision 14438) @@ -115,7 +115,6 @@ function appendTR(){ var rowNum = $("#recyclingErrorTable tr").length; var materialElement = $('' - + '' + '' + ' ' + '' Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r14420 -r14438 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14420) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14438) @@ -285,9 +285,9 @@ setForeignTousseDefinition(application,jsonArray, systemParams); - saveOrUpdateForeignTousseApplication(application,jsonArray); + saveOrUpdateForeignTousseApplication(application,jsonArray,actionType); - if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RECEIVE.equals(actionType)){ + /*if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RECEIVE.equals(actionType)){ application.setReceiveMan(AcegiHelper.getLoginUserFullName()); application.setReceiveTime(new Date()); application.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_SIGNED); @@ -333,7 +333,9 @@ tousseItem.getAmount(), container); } - }else if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN.equals(actionType)){ + }else*/ + + if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN.equals(actionType)){ foreignTousseReturn(application); //干预管理 }else if("interfere".equals(actionType)){ @@ -416,7 +418,7 @@ */ private void saveOrUpdateForeignTousseApplication( ForeignTousseApplication foreignTousseApplication, - JSONArray jsonArray) { + JSONArray jsonArray,String actionType) { List foreignTousseItems = new ArrayList(); SupplyRoomConfig cfg = supplyRoomConfigManager.getSystemParamsObj(); String cleanedEntirely = ""; @@ -458,18 +460,20 @@ } //为外来器械申请单设置科室查看权限 setReaders(foreignTousseApplication); - - String remark = foreignTousseApplication.getRemark(); - if(StringUtils.isBlank(remark)){ - remark = ""; + //提交时增加备注 + if("".equals(actionType)){ + String remark = foreignTousseApplication.getRemark(); + if(StringUtils.isBlank(remark)){ + remark = ""; + } + if(StringUtils.isNotBlank(foreignTousseApplication.getPatient())){ + remark += (",病人:"+foreignTousseApplication.getPatient()); + } + if(StringUtils.isNotBlank(foreignTousseApplication.getHospitalNumber())){ + remark += (",住院号:"+foreignTousseApplication.getHospitalNumber()); + } + foreignTousseApplication.setRemark(remark); } - if(StringUtils.isNotBlank(foreignTousseApplication.getPatient())){ - remark += (",病人:"+foreignTousseApplication.getPatient()); - } - if(StringUtils.isNotBlank(foreignTousseApplication.getHospitalNumber())){ - remark += (",住院号:"+foreignTousseApplication.getHospitalNumber()); - } - foreignTousseApplication.setRemark(remark); foreignTousseApplication.setApplicationItems(foreignTousseItems); } @@ -531,6 +535,10 @@ throw new RuntimeException("外来器械包供应商不能为空!"); } + if(!DatabaseUtil.isPoIdValid(tousseDefinitionId)){ + throw new RuntimeException("参数错误!"); + } + TousseDefinition tousseDefinition = tousseDefinitionManager .getForeignTousseDefinition(tousseDefinitionId, "" + appid); // 已存在的外来器械包明细信息