Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r12799 -r12827 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 12799) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 12827) @@ -7,6 +7,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; @@ -23,6 +24,7 @@ import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.Predicate; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; @@ -1501,7 +1503,6 @@ boolean isPrintUserName = supplyRoomConfigManager.getSystemParamsObj().isPrintUserFullName(); Date now = new Date(); - for (TousseInstance tousseInstance : tousses) { tousseInstance.setReviewTime(now); @@ -1594,7 +1595,6 @@ tousseInstanceManager.saveOrUpdate(tousseInstance); } - String tousseName = tousseInstance.getTousseName(); JSONArray barcodeArray = new JSONArray(); JSONArray virtualBasketSeqNumArray = new JSONArray(); @@ -1708,6 +1708,7 @@ tousseInstanceManager.saveOrUpdate(tousseInstance); } + updateGoodsStock(coding, tousses); json.put("success", success); json.put("message", msg); @@ -2672,6 +2673,8 @@ ReviewedBasket belongVirtualBasket = null;//所属虚拟篮筐序列号 + List tousseList = new ArrayList(); + for (int i = 0; i < currentPackAmount; i++) { String barcodeStr = sns[i]; @@ -2695,6 +2698,8 @@ fluctuationPrice, tousseAmount, orgUnitCoding, orgUnitName, unTraceableTousse, barcodeStr, prePackingTask); + tousseList.add(tousseInstance); + if(packingAmountPerVirtualBasket != null && packingAmountPerVirtualBasket > 0 && CollectionUtils.isNotEmpty(reviewedBasketList)){ @@ -2742,6 +2747,10 @@ } } + //已消毒或已灭菌的包入库 + if(tousseList.size() > 0){ + updateGoodsStock(orgUnitCoding, tousseList); + } obj.put("success", "true"); obj.put("barcodes", barcodes); @@ -2753,7 +2762,30 @@ System.out.println("批量insert "+ currentPackAmount +"个包所花费时间:" + (t2 - t1) +" ms" ); return obj; } + + private void updateGoodsStock(String orgUnitCoding,List tousseList) { + Collection tiList = CollectionUtils.select(tousseList, + new Predicate() { + public boolean evaluate(TousseInstance arg0) { + String status = arg0.getStatus(); + return (TousseInstance.STATUS_DISINFECTED + .equals(status) || TousseInstance.STATUS_STERILED + .equals(status)); + } + } + ); + if(tiList != null && tiList.size() > 0){ + WareHouse wareHouse = wareHouseManager.getDefaultWareHouseByUnitCode(orgUnitCoding); + List goodsStock = TousseInstanceUtils.newGoodsStockList(tiList, wareHouse); + try { + goodsStockManager.saveOrUpdateGoodsStock(goodsStock, GoodsStockManager.MODE_INSTOCK); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + } + } + /** * 更新清洗明细记录及修改删除对应的装配任务(外来器械装配与虚拟篮筐装配成功后调用) * @param packingTaskList 装配任务集合 @@ -2897,7 +2929,6 @@ } } } - return tousseInstance; } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/recyclingrecord/service/UnPackingDisinfectGoodsInstanceTests.java =================================================================== diff -u -r12607 -r12827 --- ssts-web/src/test/java/test/forgon/disinfectsystem/recyclingrecord/service/UnPackingDisinfectGoodsInstanceTests.java (.../UnPackingDisinfectGoodsInstanceTests.java) (revision 12607) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/recyclingrecord/service/UnPackingDisinfectGoodsInstanceTests.java (.../UnPackingDisinfectGoodsInstanceTests.java) (revision 12827) @@ -3,16 +3,12 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; - import static org.testng.Assert.*; import net.sf.json.JSONArray; import net.sf.json.JSONObject; - import org.springframework.beans.factory.annotation.Autowired; import org.testng.annotations.Test; - import test.forgon.disinfectsystem.AbstractCSSDTest; - import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.container.ContainerGroup; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; @@ -299,14 +295,17 @@ createContainerGroup(); newIsCleanedEntirelyDefinition(); newDisinfectionGoodsDefinition(); + TousseDefinition td_湿化瓶_小口 = tousseDefinitionManager.getTousseDefinitionByName("湿化瓶(小口)"); + TousseDefinition td_雾化器_小口 = tousseDefinitionManager.getTousseDefinitionByName("雾化器(小口)"); + TousseDefinition td_临床治疗碗 = tousseDefinitionManager.getTousseDefinitionByName("临床治疗碗包"); String str = "{'tousseJson':["; - str += "{'basketBarcode':'019000001','basketId':0,'tousseName':'临床治疗碗','amount':2,'itemType':'材料','tousseNameForMaterial':'临床治疗碗包','idCardBarcode':'','tousseAmountForMaterial':1},"; - str += "{'basketBarcode':'019000002','basketId':0,'tousseName':'临床敷料镊[14CM]','amount':1,'itemType':'材料','tousseNameForMaterial':'临床治疗碗包','idCardBarcode':'','tousseAmountForMaterial':1},"; - str += "{'basketBarcode':'019000002','basketId':0,'tousseName':'临床组织镊[14cm]','amount':1,'itemType':'材料','tousseNameForMaterial':'临床治疗碗包','idCardBarcode':'','tousseAmountForMaterial':1},"; - str += "{'basketBarcode':'019000002','basketId':0,'tousseName':'湿化瓶(小口)','amount':0,'itemType':'器械包','tousseNameForMaterial':'','idCardBarcode':'','tousseAmountForMaterial':0},"; - str += "{'basketBarcode':'019000002','basketId':0,'tousseName':'雾化器(小口)','amount':0,'itemType':'器械包','tousseNameForMaterial':'','idCardBarcode':'','tousseAmountForMaterial':0},"; - str += "{'basketBarcode':'019000003','basketId':0,'tousseName':'湿化瓶(小口)','amount':2,'itemType':'器械包','tousseNameForMaterial':'','idCardBarcode':'','tousseAmountForMaterial':2},"; - str += "{'basketBarcode':'019000003','basketId':0,'tousseName':'雾化器(小口)','amount':2,'itemType':'器械包','tousseNameForMaterial':'','idCardBarcode':'','tousseAmountForMaterial':2}"; + str += "{'basketBarcode':'019000001','basketId':0,'tousseName':'临床治疗碗','amount':2,'tousseDefinitionID':"+td_临床治疗碗.getId()+",'itemType':'材料','tousseNameForMaterial':'临床治疗碗包','idCardBarcode':'','tousseAmountForMaterial':1},"; + str += "{'basketBarcode':'019000002','basketId':0,'tousseName':'临床敷料镊[14CM]','amount':1,'tousseDefinitionID':"+td_临床治疗碗.getId()+",'itemType':'材料','tousseNameForMaterial':'临床治疗碗包','idCardBarcode':'','tousseAmountForMaterial':1},"; + str += "{'basketBarcode':'019000002','basketId':0,'tousseName':'临床组织镊[14cm]','amount':1,'tousseDefinitionID':"+td_临床治疗碗.getId()+",'itemType':'材料','tousseNameForMaterial':'临床治疗碗包','idCardBarcode':'','tousseAmountForMaterial':1},"; + str += "{'basketBarcode':'019000002','basketId':0,'tousseName':'湿化瓶(小口)','amount':0,'tousseDefinitionID':"+td_湿化瓶_小口.getId()+",'itemType':'器械包','tousseNameForMaterial':'','idCardBarcode':'','tousseAmountForMaterial':0},"; + str += "{'basketBarcode':'019000002','basketId':0,'tousseName':'雾化器(小口)','amount':0,'tousseDefinitionID':"+td_雾化器_小口.getId()+",'itemType':'器械包','tousseNameForMaterial':'','idCardBarcode':'','tousseAmountForMaterial':0},"; + str += "{'basketBarcode':'019000003','basketId':0,'tousseName':'湿化瓶(小口)','amount':2,'tousseDefinitionID':"+td_湿化瓶_小口.getId()+",'itemType':'器械包','tousseNameForMaterial':'','idCardBarcode':'','tousseAmountForMaterial':2},"; + str += "{'basketBarcode':'019000003','basketId':0,'tousseName':'雾化器(小口)','amount':2,'tousseDefinitionID':"+td_雾化器_小口.getId()+",'itemType':'器械包','tousseNameForMaterial':'','idCardBarcode':'','tousseAmountForMaterial':2}"; str += "],'errors':'','damages':'','confirmation':false}"; RecyclingRecord recyclingRecord = new RecyclingRecord(); Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js =================================================================== diff -u -r12798 -r12827 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js (.../invoicePlanExtractedForm.js) (revision 12798) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js (.../invoicePlanExtractedForm.js) (revision 12827) @@ -860,7 +860,7 @@ },{ columnWidth : .5, layout : 'form', - labelWidth : 40, + labelWidth : 70, items:[{ xtype : 'combo', fieldLabel : '仓库', @@ -876,7 +876,7 @@ hideTrigger : true, typeAhead : false, allowBlank : false, - width : 100, + anchor : '99%', listeners : { select : function(combo, record, index) { top.Ext.getCmp('warehouse').setValue(record.data.name);