Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationViewVersion2.js =================================================================== diff -u -r14668 -r14719 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationViewVersion2.js (.../goodsApplicationViewVersion2.js) (revision 14668) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationViewVersion2.js (.../goodsApplicationViewVersion2.js) (revision 14719) @@ -17,9 +17,9 @@ //消毒物品申请单 Ext.get('disinfectGoodsApplication').addListener('click', function (e) { - openApplication(invoicePlanForTousseType_Tousse, ""); - addAndEditUntracableTousse('', 0, "01", function () { - }); + openApplication(invoicePlanForTousseType_Tousse, disinfectGoodsApplicationForm); + // addAndEditUntracableTousse('', 0, "01", function () { }); + }); } Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js =================================================================== diff -u -r14686 -r14719 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js (.../goodsTemplateApplicationView.js) (revision 14686) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js (.../goodsTemplateApplicationView.js) (revision 14719) @@ -2715,7 +2715,8 @@ }else if(type == tousseLeaseApplicationForm){ addAndEditTousseLease(id); }else if(type == disinfectGoodsApplicationForm){ - addAndEditUntracableTousse(id,null,"01",function(){}); + // addAndEditUntracableTousse(id,null,"01",function(){}); + RecyclingApplicationTableManager.getRecyclingApplicationAndVerifyEdit(id,setRecyclingApplicationForm); }else if(type == foreignTousseApplicationForm){ addAndEditForeignTousseApplication(id); }else if(type == customTousseApplicationForm){ @@ -2776,7 +2777,7 @@ if(type == comboApplicationForm || type == recyclingCreateApplicationForm){ comboApplication(recyclingApplication.id,"true",hiddenCommitButton,hiddenSaveButton,hiddenReturnButton,type, recyclingApplication.committedStatus); } - else if(type == tousseApplicationForm || type == diposableGoodsApplicationForm){ + else if(type == tousseApplicationForm || type == diposableGoodsApplicationForm || type == disinfectGoodsApplicationForm){ comboApplication(recyclingApplication.id,"true",hiddenCommitButton,hiddenSaveButton,hiddenReturnButton,type, recyclingApplication.committedStatus); } @@ -2841,7 +2842,8 @@ if(type==customTousseApplicationForm) {//自定义器械包申请单 cell = "" + v + ""; } else if (type==disinfectGoodsApplicationForm){//消毒物品申请单 - cell = "" + v + ""; + cell = "" + v + ""; + // cell = "" + v + ""; } else if (type==foreignTousseApplicationForm){//外来器械包申请单 cell = "" + v + ""; } else if(type == tousseLeaseApplicationForm){ @@ -3277,7 +3279,8 @@ handleDepartStore.proxy.extraParams.tousseType = invoicePlanForTousseType; comboGoodsStore.proxy.extraParams.cssdOrgUnitCode = ""; - addAndEditUntracableTousse('',0,"01",function(){}); + comboApplication(0, "true",false,false,true,disinfectGoodsApplicationForm, false);//待发货 + // addAndEditUntracableTousse('',0,"01",function(){}); } },{ text : '申请外来器械', Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r14674 -r14719 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 14674) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 14719) @@ -1409,6 +1409,9 @@ else if (tousseType.indexOf(TousseItem.TYPE_DIPOSABLE_GOODS) >= 0){ tousseType = TousseItem.TYPE_DIPOSABLE_GOODS; } + else if (tousseType.indexOf(TousseDefinition.PACKAGE_TYPE_DISINFECTION) >= 0){ + tousseType = TousseDefinition.PACKAGE_TYPE_DISINFECTION; + } else{ tousseType = ""; } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java =================================================================== diff -u -r14604 -r14719 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 14604) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 14719) @@ -1,43 +1,5 @@ package com.forgon.disinfectsystem.recyclingapplication.action; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.net.URLDecoder; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.forgon.tools.string.StringTools; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; -import net.sf.json.JsonConfig; -import net.sf.json.util.CycleDetectionStrategy; -import net.sf.json.util.PropertyFilter; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.Predicate; -import org.apache.commons.collections4.Transformer; -import org.apache.commons.collections4.map.MultiValueMap; -import org.apache.commons.lang3.BooleanUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.math.NumberUtils; -import org.apache.struts2.convention.annotation.Action; -import org.apache.struts2.convention.annotation.Namespace; -import org.apache.struts2.convention.annotation.ParentPackage; -import org.hibernate.Query; - import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.common.Constants; @@ -77,11 +39,37 @@ import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JsonPropertyFilter; +import com.forgon.tools.string.StringTools; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; +import net.sf.json.util.CycleDetectionStrategy; +import net.sf.json.util.PropertyFilter; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.Predicate; +import org.apache.commons.collections4.Transformer; +import org.apache.commons.collections4.map.MultiValueMap; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import org.apache.struts2.convention.annotation.Action; +import org.apache.struts2.convention.annotation.Namespace; +import org.apache.struts2.convention.annotation.ParentPackage; +import org.hibernate.Query; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.URLDecoder; +import java.text.SimpleDateFormat; +import java.util.*; + /** * @author songwei * @@ -658,6 +646,7 @@ public void loadDepartmentAppTemplate() { String applicationFormType = StrutsParamUtils.getPraramValue("applicationType", ""); boolean isTousseApplicationForm = applicationFormType.equals(InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM); + boolean isTousseDisinfectFrom = applicationFormType.equals(InvoicePlan.TYPE_DISINFECT_GOODS_APPLICATION_FORM); // 模板Id String templateId = StrutsParamUtils.getPraramValue("templateId", null); // 申请单Id @@ -766,7 +755,8 @@ // 供应室默认拿第一个模板(供应室支持多张模板,页面提供模板切换功能) if (isSupplyRoom) { - if (isTousseApplicationForm) { + //如果是机械包申请单或者消毒物品申请单 + if (isTousseApplicationForm || isTousseDisinfectFrom) { if (templates != null && templates.size() > 0) { for (DepartmentAppTemplate template : templates) { String templateType = template.getTemplateType(); @@ -777,11 +767,9 @@ .equals(templateType)) { JSONArray toussesJsonArray = new JSONArray(); - - departmentAppTemplateManager - .tousseDefinitionTemplateItems2JsonArray( - toussesJsonArray, template.getTousseDefinitionTemplateItems(), - tousseDefinitionFloatPercent); + //如果是普通机械包申请单则要过滤掉消毒物品,如果是消毒物品申请单则要过滤机械包的普通物品(只留消毒物品) + List tempList = this.filterGoodByType(template,isTousseApplicationForm ? TousseDefinition.PACKAGE_TYPE_DISINFECTION:TousseDefinition.PACKAGE_TYPE_INSIDE); + departmentAppTemplateManager.tousseDefinitionTemplateItems2JsonArray(toussesJsonArray, tempList, tousseDefinitionFloatPercent); updateItemsApplyInfo(applicationItemMap, toussesJsonArray,applicationId); @@ -842,16 +830,16 @@ } // 临床科室查询所有申请模板后合并所有模板 } else { - if (isTousseApplicationForm) { + if (isTousseApplicationForm || isTousseDisinfectFrom) { if (templates != null) { for (DepartmentAppTemplate template : templates) { JSONArray toussesJsonArray = new JSONArray(); - departmentAppTemplateManager - .tousseDefinitionTemplateItems2JsonArray( - toussesJsonArray, template.getTousseDefinitionTemplateItems(), - tousseDefinitionFloatPercent); + //如果是普通机械包申请单则要过滤掉消毒物品,如果是消毒物品申请单则要过滤机械包的普通物品(只留消毒物品) + List tempList = this.filterGoodByType(template,isTousseApplicationForm ? TousseDefinition.PACKAGE_TYPE_DISINFECTION:TousseDefinition.PACKAGE_TYPE_INSIDE); + + departmentAppTemplateManager.tousseDefinitionTemplateItems2JsonArray(toussesJsonArray, tempList, tousseDefinitionFloatPercent); updateItemsApplyInfo(applicationItemMap, toussesJsonArray,applicationId); @@ -948,7 +936,7 @@ } // 增加组合申请单之前的逻辑 else { - if (isTousseApplicationForm) { + if (isTousseApplicationForm || isTousseDisinfectFrom) { if (rightStoreJson.length() > 0) { rightStoreJson.append(","); } @@ -1001,6 +989,24 @@ setApplicationReaded(application, config); } + + /** + * 迭代模板查出来的物品,根据提供的物品种类来过滤相关的物品 + * @param template 申请模板 + * @param goodType 物品种类 + * @return 返回过滤后的物品 + */ + private List filterGoodByType(DepartmentAppTemplate template,String goodType){ + List tempList = new ArrayList<>(); + List tempLists = template.getTousseDefinitionTemplateItems(); + for (TousseDefinitionTemplateItem t : tempLists) { + if (!goodType.equals(t.getTousseDefinition().getTousseType())){ + tempList.add(t); + } + } + return tempList; + } + private void setApplicationReaded(RecyclingApplication application, SupplyRoomConfig config) { String userOrgCode = AcegiHelper.getLoginUser().getCurrentOrgUnitCode(); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r14715 -r14719 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14715) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14719) @@ -1394,6 +1394,10 @@ mapList.addAll(searchTousseOrDiposableGoodsBySpellAndWbCode( searchString, false, false, false,false,true,"1","0",false,showExternalCodeOfDisposableGoods,deptCode)); } + //只搜索消毒物品 + else if (TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseType)){ + mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(searchString, new String[]{TousseDefinition.PACKAGE_TYPE_DISINFECTION},false); + } // 搜索多种器械包(含消毒物品)和一次性物品,用于组合申请单 else{ mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(